intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Ứng dụng phương pháp phát triển dựa trên thành phần trong quá trình phát triển phần mềm

Chia sẻ: Kinh Kha | Ngày: | Loại File: DOC | Số trang:6

49
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài viết này nhằm nêu bật vai trò của một phương pháp quan trọng trong ngành công nghệ phần mềm hiện nay, được xem là bước tiến hóa của phương pháp phát triển hướng đối tượng, đó là phương pháp hướng thành phần hay còn được gọi là phát triển dựa trên thành phần. Phương pháp này xem việc phát triển phần mềm là quá trình hợp nhất của những thành phần phần mềm tiền đóng gói.

Chủ đề:
Lưu

Nội dung Text: Ứng dụng phương pháp phát triển dựa trên thành phần trong quá trình phát triển phần mềm

TẠP CHÍ KHOA HỌC, Đại học Huế, Số 22, 2004<br /> <br />  <br /> <br /> <br /> ỨNG DỤNG PHƯƠNG PHÁP PHÁT TRIỂN DỰA TRÊN THÀNH PHẦN <br /> TRONG QUÁ TRÌNH PHÁT TRIỂN PHẦN MỀM<br /> Lê Văn Tường Lân<br /> Trường Đại học Khoa học, Đại học Huế<br /> <br /> Thế giới thực luôn biến động. Do vậy, để thích nghi, các hệ  thống phần mềm  <br /> mô tả nó luôn thay đổi. Phương pháp phát triển hướng đối tượng đã được xem là một <br /> phương tiện hữu hiệu để  giải quyết sự  khủng hoảng này trong công nghệ  phần  <br /> mềm. Tuy nhiên, trong các hệ  thống lớn, phức tạp, có chất lượng cao đòi hỏi phải  <br /> được xây dựng trong một thời gian ngắn thì bản thân nó lại bộc lộ  hạn chế về việc <br /> kiểm định chất lượng và chi phí phần mềm. Bài viết này nhằm nêu bật vai trò của  <br /> một phương pháp quan trọng trong ngành công nghệ phần mềm hiện nay, được xem  <br /> là bước tiến hoá của phương pháp phát triển hướng đối tượng, đó là phương pháp  <br /> hướng thành phần hay còn được gọi là phát triển dựa trên thành phần. Phương pháp  <br /> này xem việc phát triển phần mềm là quá trình hợp nhất của những thành phần phần <br /> mềm tiền đóng gói.<br /> I. QUAN ĐIỂM CỦA PHÁT TRIỂN DỰA TRÊN THÀNH PHẦN<br /> 1.Bài toán;<br /> Cho hệ  thống thông báo tự  động như  sau: Một máy tính kết nối với modem  <br /> điện thoại. Tại thời điểm T, hệ  thống cần tự động thông báo một bản tin M có độ <br /> dài L cho trước trong khoảng thời gian N. Hay trong một thời điểm nào đó, có thể <br /> được kích hoạt để  nhận một bản tin M' nào đó gởi đến. Hãy xây dựng phần mềm  <br /> cho bài toán trên.<br /> 2. Xây dựng hệ thống theo phương pháp hướng đối tượng: <br /> Để   phát   triển   phần   mềm   cho   hệ   thống   trên,   ta   phải   xây   dựng   đối   tượng <br /> MODEM với những vấn đề phải xét:<br /> + Các thuật toán xử lý trên modem: tạo kết nối, hủy kết nối,...<br /> + Hiểu biết tập lệnh AT của nhà sản xuất cung cấp cho mode,<br /> + Các hằng số trả lời của modem khi làm việc,...<br /> +...<br /> Rõ ràng, trong cách thức phát triển này, ta phải đầu tư một chi phí về thời gian <br /> và tiền bạc cho hệ thống. Thêm vào đó, chất lượng của hệ thống làm chúng ta phải <br /> xem xét vì nhiều lý do:<br /> 51<br /> + Các đối tượng cấu thành nên hệ thống đã là đối tượng tiêu chuẩn?<br /> + Chúng đã được kiểm chứng hình thức,...<br /> <br /> 3. Quan điểm của phát triển dựa trên thành phần: <br /> Xuất phát từ  quan điểm: "Buy do not build", liệu chúng ta phải xây dựng đối <br /> tượng MODEM trên hay có thể  tìm đối tượng tương tự  MODEM' trong thư  viện? <br /> Tư  tưởng của phát triển dựa trên thành phần là lắp ráp hệ  thống từ  những thành  <br /> phần đã có. Do vậy, kiến trúc phần mềm của hệ thống dựa vào kiến trúc phần mềm  <br /> của các thành phần phần mềm tiêu chuẩn nên hệ thống đạt chất lượng cao hơn.<br /> Để  phát triển hệ thống trên, thay vì phải xây dựng đối tượng MODEM, ta tìm  <br /> thấy thành phần MSCOMM trong thư viện của MicroSoft; công việc tiếp theo là chỉ <br /> cần làm thích nghi các thuộc tính và phương thức của nó trong hệ thống của ta.<br />    Tuy nhiên, cũng để phát triển hệ thống trên, người ta cũng tìm thấy thành phần <br /> EXCEL TELE trong thư viện TeleTools, tương tự như thành phần MSCOMM nhưng <br /> có khả  năng thích nghi cao hơn, chỉ  cần thay đổi các thuộc tính và phương thức của <br /> nó ta sẽ có được hệ thống cần xây dựng.<br /> 4. Mô hình phát triển dựa trên thành phần: <br /> Phương pháp phát triển dựa trên thành phần gần tương tự  như  phương pháp <br /> phát triển hướng đối tượng. Hoạt động công nghệ bắt đầu với sự chỉ ra các lớp tham  <br /> dự để phát triển hệ thống. Nếu các lớp này được tìm thấy trong thư viện và sự thích  <br /> nghi là tốt, chúng sẽ  được lấy ra và phát triển hệ thống. Ngược lại, chúng sẽ  được <br /> phát triển để sử dụng và bổ sung vào thư viện sử dụng lại.<br /> <br /> Thành phần để <br /> xây dựng <br /> Phân<br /> hệ thống<br /> tích lỗi<br /> Kế hoạch<br /> Hợp nhất cho  Tìm kiếm <br /> Giao tiếp với  phiên bản hệ  trong thư viện <br /> khách hàng thống thứ n thành phần <br /> <br /> <br /> Bổ sung thành  Sử dụng nếu <br /> phần mới vào  thành phần <br /> Đánh  giá của  thư viện  thích hợp<br /> khách hàng<br /> Xây dựng nếu <br /> Xây dựng hay  thành phần  <br /> dừng hệ thống  không thích hợp<br /> <br /> Hình 1: Mô hình phát triển hệ thống dựa trên thành phần<br /> <br /> II. HOẠT ĐỘNG CHÍNH CỦA CÔNG NGHỆ DỰA TRÊN THÀNH PHẦN<br /> 52<br /> 1. Tiến trình của công nghệ dựa trên thành phần: <br /> Như  đã chỉ  ra  ở trên, việc xây dựng hệ  thống bằng cách sử  dụng và làm thích  <br /> nghi hành phần MSCOMM sẽ tốt hơn việc xây dựng đối tượng MODEM và nếu sử <br /> dụng thành phần EXCEL TELE thì lại tốt hơn. Vấn đề  đặt ra là làm sao để  người <br /> phát triển hệ thống có thể biết hay tìm thấy các thành phần này để sử dụng? Và làm <br /> thế  nào để  biết được thành phần này là có thể  làm thích nghi để  đưa vào hệ  thống <br /> cần xây dựng?...<br /> Công nghệ phần mềm dựa trên thành phần chứa hai hoạt động công nghệ song  <br /> song: công nghệ lĩnh vực và phát triển dựa trên thành phần.<br /> i. Công nghệ  lĩnh vực là nhận ra, xây dựng, phân loại và phát triển những <br /> thành phần phần mềm mà chúng có thể áp dụng được đối với phần mềm hiện có và  <br /> phần mềm trong tương lai trong một lĩnh vực ứng dụng cụ thể. Công nghệ  lĩnh vực  <br /> gồm ba hoạt động chính: phân tích, xây dựng và phát triển. Như vậy, nó đóng vai trò  <br /> là thiết lập tập các thành phần phần mềm có thể sử dụng lại bởi kỹ sư phần mềm.<br /> Tuy vậy, khó xác định xem một thành phần tiềm năng có thể được sử dụng hay  <br /> không. Để  được điều này, phải chỉ  rõ tập hợp các đặc trưng lĩnh vực mà chúng có <br /> được. Gọi {Dp}là tập hợp các đặc trưng lĩnh vực của một thành phần phần mềm có <br /> thể sử dụng lại; với mỗi Dpi trong tập là một đặc trưng về lĩnh vực cụ thể. Khi xây <br /> dựng phần mềm W mới, ta có tập DWi  là tập các đặc trưng   về  lĩnh vực của  ứng <br /> dụng, ta so sánh với Dpi để có được quyết định. <br /> ii. Phát triển dựa trên thành phần là chỉ ra những đòi hỏi từ khách hàng, xác định  <br /> một kiểu kiến trúc thích hợp để đáp ứng mục tiêu hệ thống. Để từ đó có thể:<br /> + Chọn những thành phần tiềm năng cho việc sử dụng lại,<br /> + Đánh giá các thành phần để  chắc chắn chúng phù hợp với kiến trúc của hệ <br /> thống,<br /> + Làm thích nghi các thành phần để cần thiết cho việc hợp nhất,<br /> + Tích hợp những thành phần cho ứng dụng tổng thể.<br /> 2, Hoạt động đánh giá thành phần: <br /> Như đã nói, việc xây dựng hệ thống bằng cách sử dụng và làm thích nghi hành  <br /> phần EXCEL TELE sẽ  tốt hơn việc sử  dụng thành phần MSCOMM, tại sao? Dựa  <br /> vào đâu để  người sử  dụng quyết định sử   dụng thành phần này mà không sử  dụng  <br /> thành phần khác?...<br /> Khi quyết định sử dụng một thành phần trong thư viện phần mềm để xây dựng <br /> hệ  thống, các hoạt động đánh giá nó là cần thiết để  đảm bảo có hiệu quả  trong hệ <br /> thống.<br /> + Đánh giá khả  năng thành phần: đảm bảo rằng một thành phần tham dự  sẽ <br /> biễu diễn được yêu cầu chức năng, sẽ phù hợp trong kiến trúc cụ thể  của hệ thống. <br /> Cần để  ý rằng miêu tả  giao diện cung cấp thông tin hữu ích về  sự  điều hành và sử <br /> <br /> 53<br /> dụng thành phần nhưng không cung cấp tất cả  các thông tin để  chỉ  ra nó là thật sự <br /> hiệu quả trong ứng dụng mới mà phải phân tích, khám phá để đánh giá nó.  <br /> + Xác định sự thích nghi của thành phần: Về bản chất, kiến trúc phần mềm chỉ <br /> rõ những quy luật thiết kế đối với tất cả các thành phần, nhận ra những cách kết nối  <br /> và sắp đặt. Trong một vài trường hợp, việc sử dụng một thành phần nào đó có thể <br /> gây lỗi kiến trúc hệ  thống. Những thành phần này phải được loại bỏ  và thay thế <br /> bằng những thành phần phù hợp hơn.<br /> + Xác định cấu tạo của thành phần: nhận ra cơ chế kết nối và sắp đặt. Cấu tạo  <br /> thành phần phải thoả chất lượng, thích nghi và công nghệ để  tạo nên cấu trúc thiết  <br /> lập cho ứng dụng.<br /> 3. Phân loại và tìm lại thành phần: <br /> Theo đề cập trên, làm thế nào để khi cần ta có thể tìm, biết được có thành phần <br /> MSCOMM hay thành phần EXCEL TELE để đưa vào xây dựng hệ thống? Ngoại trừ <br /> các thành phần này trong thư viện có còn các thành phần khác hay không? Khả  năng <br /> thích nghi đối với hệ thống như thế nào?....<br /> Trong kho thành phần lớn, có hàng chục ngàn thành phần có thể  sử  dụng lại.  <br /> Do vậy, bằng cách nào để  các kỹ  sư  phần mềm có thể  tìm thấy thành phần mà họ <br /> cần? Để trả lời câu hỏi này, cần phải giải quyết: "Cần phải miêu tả các thành phần <br /> phần mềm theo nhóm như thế nào?"<br /> Một thành phần phần mềm có thể sử dụng lại có thể được mô tả theo mô hình  <br /> 3C như sau: Concept (khái niệm), Content (nội dung), và Context (ngữ cảnh).<br /> Concept: miêu tả  về  cái gì mà thành phần phần mềm làm, gắn với mục đích <br /> của thành phần. Giao diện đối với thành phần được miêu tả một cách đầy đủ và ngữ <br /> nghĩa được chỉ ra ở tiền và hậu điều kiện.<br /> Content: miêu tả  khái niệm được thực hành như  thế  nào. Về  bản chất thì nội <br /> dung của thành phần được dấu đối với người sử  dụng và chỉ  được biết đối với  <br /> những ai có ý định kiểm tra hay sửa đổi thành phần.<br /> Context: đặt cho thành phần phần mềm có thể sử dụng lại trong lĩnh vực ứng  <br /> dụng nào. Bằng cách chỉ ra những đặc trưng thuộc về khái niệm, thao tác và cài đặt, <br /> nó  cho phép ta có thể tìm ra những thành phần thích hợp để đáp ứng cho nhu cầu của <br /> ứng dụng.<br /> III. HIỆU QUẢ CỦA CÔNG NGHỆ DỰA TRÊN THÀNH PHẦN<br /> Để  đánh giá, trước hết, ta phải hiểu cái gì thực sự  được sử  dụng lại trong  <br /> phạm vi của công nghệ phần mềm, và hao phí thật sự liên quan đến sử dụng lại.<br /> 1. Độ đo sự sử dụng lại:  <br /> Để đo lợi ích liên quan đến sử dụng lại trong hệ thống S, ta có đẳng thức sau:<br /> Rb(S)=[Cnoreuse­Creuse]/ Cnoreuse<br /> Với:  Cnoreus: là chi phí để phát triển hệ thống S không dùng tính sử dụng lại,<br /> 54<br /> Creuse: là chi phí để phát triển hệ thống S dùng tính sử dụng lại.<br /> Ta có: Rb(S) không nguyên và  1  Rb(S)  0<br /> 2. Tác động về chất lượng:<br /> Thành phần phần mềm được sử  dụng lại có độ  chính xác cao và có thể  nói là  <br /> không chứa lỗi. Mặc dầu không thường xuyên được chứng minh về  mặt hình thức <br /> nhưng với việc sử  dụng lại, lỗi được tìm thấy và loại trừ; chất lượng của thành  <br /> phần được cải thiện như là một kết quả.<br /> 3. Tác động về hiệu suất:<br /> Khi những thành phần sử  dụng lại được  ứng dụng thông qua tiến trình phần <br /> mềm, chúng ta ít tốn thời gian để  tạo ra kế  hoạch, mô hình, tài liệu, mã và dữ  liệu <br /> mà chúng là cần thiết để tạo ra hệ thống. Thêm vào, chức năng cùng mức được phân  <br /> phối cho người sử  dụng với  đầu vào ít công sức hơn, do vậy, hiệu suất được cải <br /> thiện.<br /> 4. Tác động về giá thành:<br /> Tiết kiệm giá thành đối với việc sử dụng lại được ước lượng bằng cách ước  <br /> lượng giá thành của dự  án. Dựa trên nghiên cứu khả  năng sử  dụng lại, hiệp hội  <br /> QSM, Inc., báo cáo dây chuyền thành phần dẫn đến việc giảm 70% về quá trình phát <br /> triển, giảm 84% về giá dự án.<br /> <br /> IV. KẾT LUẬN<br /> Phần mềm tốt là kết quả phải đạt được của ngành công nghiệp phần mềm. Sự <br /> phát triển phần mềm dựa trên thành phần chỉ  ra nó là một phương pháp hiệu quả.  <br /> Bằng việc chỉ  ra những điểm chính của phương pháp cùng với bài toán dẫn chứng, <br /> bài viết khẳng định tính  ưu việt của phương pháp dần đang có vị  trí hàng đầu trong <br /> ngành công nghiệp phần mềm trên thế giới.<br /> <br /> TÀI LIỆU THAM KHẢO<br /> 1. Đoàn Văn Ban.  Phân tích thiết kế  và lập trình hướng đối tượng , Trung tâm <br /> Khoa học Tự nhiên và Công nghệ Quốc gia (1996).<br /> 2. Ngô Trung Việt.  Kỹ   nghệ  Phần  mềm  ­  bản dịch,  Nhà  xuất  bản  Giáo  dục <br /> (1999).<br /> 3. Roger S. Pressman Ph.D, Software Engineering a practitioner's, McGraw ­ Hill <br /> book Co.­Singapore (2001). <br /> 4. Yourdon, E. Software reuse, Application development strategies, Vol. 6, No. 12, <br /> (1994) 1 ­ 16.<br /> 5. Brown, A.W., and K., C. Wallnau, Engineering of component are system, IEEE <br /> computer society press  (1996).<br /> <br /> 55<br /> 6. Stephen   R.   Schach,  Classical   and   object­oriented   software   engineering, <br /> McGraw­ Hill  (1997).<br /> 7. Sommerville I., Software Engineering, Addison Wesley (1995).<br /> 8. Pitero ­ Diaz R.  Domain analysis for reuseability, Proc. COMPSAC'87, Tokyo, <br /> (1987) 23 ­ 29.<br /> 9. Mary Kirtland. Designing component ­ Based applications, A division  Microsoft  <br /> corporation, Washington (1998). <br /> <br /> <br /> <br /> APPLIED COMPONENT­BASED DEVELOPMENT IN THE <br /> DEVELOPEMENT SOFTWARE PROCESS<br /> Le Van Tuong Lan<br /> College of Sciences,  Hue University<br /> <br /> <br /> SUMMARY<br /> The real world is always changeable. So,in order to adapt to it, the systems that describe  <br /> it must be developed. In Software Engineering, the object­based software engineering has been  <br /> considered as a useful means to solve the changes of software. However, in the big, complex,  <br /> high quality systems must be completed in a short time but the oriented programming has some  <br /> limits such as verifying quality, the cost of the system, etc. <br /> In this paper, we describe the role of the important method in the Software Engineering  <br /> that   is   called   the   component   ­   based   software   engineering   or   the   component   ­   based  <br /> development. It is the developed step of the object ­ based software engineering. This method  <br /> indicates that the development software is an integrated process of the prepackaged software  <br /> components.<br /> <br /> <br /> <br /> <br /> 56<br />
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2