-79- Ứng dụngcôngnghệhướngthànhphần vào xâydựnghệthống Nguyễn Anh Tuấn MSV: 0320349 Giáo viên hướng dẫn TS. Trương ninh thuận Đặt vấn đề: Trong thời đại ngày nay, côngnghệthông tin được ứng dụngtrong hầu hết các lĩnh vực của đời sống xã hội với tốc độ chóng mặt. Các hệthốngthông tin ngày càng có qui mô rộng và độ phức tạp ngày càng cao. Điều này đặt ra yêu cầu phải xâydựnghệthống như thế nào để có hệthống với chất lượng tốt, trong khoảng thời gian ngắn và đặc biệt thu ận lợi cho việc bảo trì. Liệu có thể xâydựnghệthống bằng cách ghép nối các thànhphần đã có hay không ? Côngnghệhướngthànhphần Hiện nay lập trình hướng đối tượng đã chứng minh được ưu điểm vượt trội của nó so với lập trình thủ tục trước kia, và đang dần thay thế mô hình lập trình thủ tục. Nhờ việc dễ dàng nâng cập version và bảo trì mã lệnh trong các hệthông lớn, lập trình hướng đối tượng ngày càng được sử dụng rộng rãi. Ngày nay, hầu như mọi ngôn ngữ đều h ỗ trợ và nâng cấp để có thể sử dụnghướng đối tượng, mở đầu là Smalltalk, C++, Object Pascal, Delphi, Visual Basic, tiếp đến là các hệ quản trị dữ liệu Visual Foxpro, Access, SQL Server, Oracle và sau cùng là ngôn ngữ Java, Visual Studio.Net thuần đối tượng. Có 1 điểm hạn chế rất lớn là khả năng chuyển đổi giữa các ngôn ngữ là các đối tượng được thiết kế bằng ngôn ngữ nào thì sau khi biên dịch ra dạng nhị phân, chỉ có mã lệnh tương ứng của ngôn ngữ đó mới truy cập được đối tượng. Vì thế khả năng sử dụng lại, tương tác giữa các đối tượng của các ngôn ngữ là rất khó khăn. Côngnghệhướngthànhphần là mong muốn tìm một tiếng nói chung cho tất cả các ngôn ngữ lập trình hiện có (tương tự như “quốc tế ngữ” với con người). Và do các hệthốngthông tin ngày càng có độ lớn và phức tạp, yêu cầu phải được xâydựngtrong một thời gian ngắn. Vì vậy quy trình phát triển phần mềm hướngthànhphần ra đời giảm bớt thời gian phát triển hệ thống. Thay vì phải xâydựng từ đầu, các nhà phát triển có thể lựa chọn trong số các thànhphầntrong thư viện của mình hoặc của các hãng khác, xâydựng thêm thànhphần mới phù hợp với yêu cầu, sau đó thích nghi và kết nối các thànhphần đó với nhau. Và điều này sẽ làm cho thời gian xâydựnghệthống được giảm đáng kể, chất lượng hệthống đáng tin cậy hơn và giá thànhxâydựnghệthống giảm xuống vì không phải mất thời gian kiểm tra và mã hoá lại. Hơn nữa, các thànhphầnphần mềm có thể dùng cho nhiều hệ thống, độc lập với ngôn ngữ -80- lập trình, có thể thích ứng với nhiều platform…. Trongcôngphần mềm, sử dụng lại là một ý tưởng mà các nhà phát triển xưa và nay vẫn thường dùng. Họ sử dụng lại ý tưởng sự trừu tượng hoá và xử lý, nhưng các cách tiếp cận sử dụng lại này thường không tuân theo một quy định chung nào. Ngày nay, với việc phải xâydựng các hệthống trên nền máy tính phức tạp, chất l ượng cao trong một khoảng thời gian ngắn, thì cách tiếp cận sử dụng lại càng được đề cập đến nhiều. Côngnghệphần mềm hướngthànhphần là một quá trình nhấn mạnh đến thiết kế và xâydựng các hệthốngphần mềm sử dụng các thành phần. Côngnghệphần mềm hướngthànhphần chuyển từ việc lập trình tạo ra các phần mềm sang việ c biên soạn, tập hợp các hệthống tin học, các nhà phát triển tập trung vào việc tích hợp. Tuy nhiên, có rất nhiều câu hỏi nảy sinh. Có thể tạo ra các hệthống phức tạp bằng việc ghép các thànhphầnphần mềm không? Việc này có thể đáp ứng được yêu cầu về giá thành và hiệu quả không? Lợi ích đem lại có đủ khuyến khích các kỹ sư phần mềm sử dụng lạ i hơn là làm từ đầu? Việc quản trị có nảy sinh nhiều vấn đề khi tạo ra các thànhphầnphần mềm khả dụng lại? Thư viện các thànhphần cần thiết có đủ đáp ứng các yêu cầu bài toán của người sử dụng không? Để trả lời được các câu hỏi đó cần phải có thêm thời gian cũng như việc đúc rút kinh nghiệm qua các dự án phát triển phầ m mềm hướngthành phần. Xâydựnghệthống quản lý cổ đông dựa trên côngnghệhướngthànhphần Vấn đề đặt ra Chương trình được băt đầu xâydựng từ tháng 7/2006 .Các doanh nghiệp đang cổ phần hóa để thu hút vốn đầu tư trong nước và nước ngoài. Với mong muốn viết 1 phần mềm quản lý cổ phần có thể dùng được cho mọi công ty, điều này khó thực hiện do quy trình quản lý cổ phần ở các công ty là rất khác nhau,các công ty hầu hết đều bỡ ngỡ với việc quản lý cổ đông, các sử a đổi phải diễn ra liên tục, vấn đề bảo trì phần mềm diễn ra thường xuyên, phiên bản dành cho công ty này không phù hợp với công ty khác, vì vậy việc sử đổi phiên bản cho phù hợp với từng công ty là tất yếu. Chúng tôi đã có rất nhiều trăn trở, làm thế nào để việc sửa đổi chương trình không tốn quá nhiều công sức. Giải quyết vấn đề Sau 1 thời gian tìm hiểu, chúng tôi đã giải quyết được phần lớn vấn đề trên dựa trên côngnghệhướngthành phần, côngnghệhướngthànhphần được bộ công cụ .Net của microsoft hỗ trợ rất mạnh. .Net làm việc rất tốt với DLL, ngoài ra chúng tôi còn sử dụng các component sẵn do các công ty khác xâydựng cụ thể như sau Công cụ codesmithtools tự động hóa việc kết nối tới cơ sở dữ li ệu giúp cho việc truy cập đến cơ sở dữ liệu được đơn giản hơn rất nhiều -81- 2 bộ công cụ Infragistic và Developer Express cung cấp các đối tượng đã được xâydựng mới, nhiều tính năng hơn nhiều so với những gì mà bộ .net 2005 đã cung cấp đáp ứng được các yêu cầu mà hệthống cần Hệthống được chia thành các thànhphần nhỏ phát triển độc lập với nhau. Kết Luận Hệthống được lắp ghép từ các thànhphần độc lập. Khi thực thi chương trình không phải dịch lại. Khi sửa, hoặc cập nhật một thànhphần nào đó thì không làm ảnh hưởng tới các thànhphần khác, và cũng không ảnh hưởng tới hệ thống…. Các thànhphần một khi đã được xâydựng cẩn thận thì có thể phổ biến cho nhiều người. Họ chỉ cần tích h ợp vào chương trình và sử dụng một cách dễ dàng. Đối với các nhà phát triển họ sử dụng lại các thànhphầntronghệthống của họ, điều này sẽ làm giảm thời gian, giảm chi phí phát triển hệ thống. Tạo ra một hệthống có chất lượng cao và dễ bảo trì… Việc Sử dụngcôngnghệhướng đối tượng rút ngắn thời gian phát triển hệ thống, giảm bớt rủi ro, tuy nhiên việc lựa chọn các thànhphần sẵn có là rất cần thiết, thànhphần được lựa chọn phải phù hợp với hệthống mình đang phát triển. Đề tài đã trình bày về côngnghệhướng đối tượng, đưa ra những trăn trở mà hầu hết các lập trình việc, các nhà phát triển hệthống gặp phải, chúng tôi đã đưa ra hướng giả i quyết cho 1 hệthống cụ thể. Hi vọng rằng đây sẽ là 1 hướng đi được nhiều người quan tâm và phát triển để ngày càng hoàn thiện Tài liệu tham khảo [1] Tìm hiểu lập trình COM, Hồ quang khải [2] Nền tảng .NET (.NET Framework),ThS. Nguyễn Hoàng Linh [3] Sun Microsystems. 100% Pure Java Cookbook -- Guidelines for achieving the 100% Pure Java Standard. Garg, M. Critchlow, P. Chen, C. van der Westhuizen, and A. van der Hoek [4] Mastering COM and COM+, BPB Publications, 2000. Ash Rofail [5] Series Editor. COM+ Developer's Reference Library, 2000 David Iseminger [6] Component-Based Software Engineering, Ralf H. Reussner . phầ m mềm hướng thành phần. Xây dựng hệ thống quản lý cổ đông dựa trên công nghệ hướng thành phần Vấn đề đặt ra Chương trình được băt đầu xây dựng từ tháng. dụng lại càng được đề cập đến nhiều. Công nghệ phần mềm hướng thành phần là một quá trình nhấn mạnh đến thiết kế và xây dựng các hệ thống phần mềm sử dụng