PHÁT TRIỂN PHẦN MỀM THEO HƯỚNG CẤU PHẦN

152 5K 21
PHÁT TRIỂN PHẦN MỀM THEO HƯỚNG CẤU PHẦN

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tư duy lập trình hướng thành phần (componentoriented programming) theo ý tưởng: • Giải quyết bài toán bằng cách xây dựng một tập các thành phần (component) có tính độc lập tương đối với nhau. Mỗithành phần đảm nhiệm một phần công việc nhất định. Các thành phần này phải tuân theo tiêu chuẩn nhất định được xác định trước bao gồm giao diện, các kết nối, phiên bản, và triển khai. Về nguyên tắc, mỗi thành phần có thể tái sử dụng độc lập với ngữ cảnh, nói cách khác có thể dễ dàng sử dụng tại mọi lúc, mọi nơi. • Sau đó, người ta ghép các thành phần với nhau để thu được một phần mềm thoả mãn một tập các yêu cầu xác định. Với lập trình hướng thành phần, người ta có thể tiến hành lập trình theo phương pháp sau: • Xây dựng một thư viện các thành phần, mỗi thành phần thực hiện một công việc xác định. • Khi cần phát triển một phần mềm cụ thể, người ta chỉ cần chọn những thành phần có sẵn trong thư viện để ghép lại với nhau. Người lập trình chỉ phải phát triển thêm các thành phần mình cần mà chưa có trong thư viện.

CHƯƠNG 1 TÔNG QUAN VỀ PHÁT TRIỂN PHẦN MỀM THEO HƯỚNG CẤU PHẦN 1.1 Các mô hình phát triển phần mềm. Nếu một kỹ thuật X cụ thể, đang được sử dụng để lập trình các chương trình máy tính, chúng ta sẽ nói là lập trình hướng X. Dưới đây là một số mô hình định hướng khác nhau: Gear-Oriented Programming( Lập trình hướng phụ tùng). Tương tự như máy Pascal đã nói ở trên, “động cơ ” của Charles Babbage năm 1822, lập trình có nghĩa là thay đổi bánh răng, trục, và bánh xe. Thông qua các chuyển động vật lý và sắp xếp các bánh răng, một tính toán mới có thể được thực hiện. Rõ ràng, hình thức này yêu cầu cả năng lực tinh thần và năng lực thể chất phải tốt. Switch-Oriented Programming( Lập trình hướng chuyển đổi). Đối với thế hệ máy tính điện tử đầu tiên ENIAC(Electronic Numerical Integrator And Computer) vào năm 1942, lập trình có nghĩa là cấu hình lại thiết bị chuyển mạch và viết lại toàn bộ hệ thống cho mỗi chương trình hoặc tính toán “mới”. Điều này có thể là một công việc tẻ nhạt vì ENIAC đã có 6.000 thiết bị chuyển mạch kết nối đa vị trí với vô số các khe cắm và các cầu nhảy jumper. Procedure-Oriented Programming (Lập trình hướng thủ tục). Với sự giúp đỡ của các ngôn ngữ lập trình cấp cao, các lập trình viên đã được giải phóng khỏi các thao tác về chi tiết phần cứng và ngôn ngữ máy. Ngôn ngữ lập trình như Fortran, Pascal, C và khuyến khích các lập trình viên suy nghĩ về thủ tục hoặc chức năng. Điều này được nêu bật bởi lập trình có cấu trúc, thiết kế từ trên xuống( top- down). Để phát triển một chương trình máy tính,đầu tiên các lập trình viên sẽ nghĩ về các chức năng cần được thực hiện. Mỗi yêu cầu chức năng sẽ được thực hiện và cuối cùng là một tập hợp các thủ tục hoặc chức năng. Object-Oriented Programming (Lập trình hướng đối tượng) Chương trình được xây dựng xung quanh các loại dữ liệu và các kiểu phân cấp dữ liệu. Các khối cơ bản trong một chương trình hướng đối tượng là các lớp và các đối tượng. Bài giảng COP – Chuyên ngành: CNPM - Version 1 Biên soạn: Ngô Thị Lan & Nguyễn Lan Oanh - 2 Một đối tượng là một gói thông tin được lưu trữ trong một đoạn bộ nhớ máy tính. Mỗi đối tượng được kết hợp với một loại dữ liệu, và các kiểu dữ liệu xác định những gì có thể được thực hiện lên đối tượng. Tất cả các ngôn ngữ lập trình đều có sẵn các loại dữ liệu, chẳng hạn như kiểu dữ liệu số nguyên và ký tự. Thông thường, các lập trình viên định nghĩa các kiểu dữ liệu và phân cấp dữ liệu để họ có thể mô tả các thực thể trong các ứng dụng. Phương pháp hướng đối tượng (Object-Oriented) đã thể hiện rõ tính ưu việt trong phát triển phần mềm. Trong đó, tính đóng gói, trừu tượng hóa và tính sử dụng lại làm tăng chất lượng phần mềm. Aspect-Oriented Programming( Lập trình hướng khía cạnh) Lập trình hướng khía cạnh (AOP) là một công nghệ mới để phân chia các mối quan tâm trong phát triển phần mềm. AOP cho khả năng module hóa xuyên suốt các khía cạnh của hệ thống. Giống như hướng đối tượng, khía cạnh có thể phát sinh tại bất kỳ giai đoạn nào trong vòng đời của phần mềm, bao gồm các yêu cầu đặc tả kỹ thuật, thiết kế, thực hiện, vv. Một vấn đề cơ bản của AOP là phân cấp đơn giản là không đủ để nắm bắt các cấu trúc phức tạp. Vì vậy, AOP cố gắng để khám phá một loạt các cơ chế mà giúp cho nó có thể xem và thực hiện một hệ thống từ nhiều khía cạnh. Theo hướng này, một ngôn ngữ lập trình mới gọi là AspectJ được thiết kế và triển khai thực hiện. AspectJ là một phần mở rộng theo hướng khía cạnh cho ngôn ngữ lập trình Java, cho phép các mô-đun hóa các quá trình xuyên suốt như kiểm tra và xử lý lỗi,đồng bộ hóa , hành vi ngữ cảnh, tối ưu hóa hiệu suất, giám sát và truy cập , gỡ lỗi, giao thức đa đối tượng… Component-Oriented Programming (Lập trình hướng cấu phần). Tư duy lập trình hướng thành phần (component-oriented programming) theo ý tưởng: • Giải quyết bài toán bằng cách xây dựng một tập các thành phần (component) có tính độc lập tương đối với nhau. Mỗi thành phần đảm nhiệm một phần công việc nhất định. Các thành phần này phải tuân theo tiêu chuẩn nhất định được xác định trước bao gồm giao diện, các kết nối, phiên bản, và triển khai. Về nguyên tắc, mỗi thành phần có thể tái sử dụng độc lập với ngữ cảnh, nói cách khác có thể dễ dàng sử dụng tại mọi lúc, mọi nơi. • Sau đó, người ta ghép các thành phần với nhau để thu được một phần mềm thoả mãn một tập các yêu cầu xác định. Bài giảng COP – Chuyên ngành: CNPM - Version 1 Biên soạn: Ngô Thị Lan & Nguyễn Lan Oanh - 3 Với lập trình hướng thành phần, người ta có thể tiến hành lập trình theo phương pháp sau: • Xây dựng một thư viện các thành phần, mỗi thành phần thực hiện một công việc xác định. • Khi cần phát triển một phần mềm cụ thể, người ta chỉ cần chọn những thành phần có sẵn trong thư viện để ghép lại với nhau. Người lập trình chỉ phải phát triển thêm các thành phần mình cần mà chưa có trong thư viện. 1.2. Tình hình nghiên cứu về COP. Năm 1975 Freed Brooks, một nhà quản lý dự án IBM, viết cuốn The Mythical Man-month. Brooks viết một chương với tiêu đề là “No Silver Bullet” giải thích rằng các hệ thống phần mềm là phức tạp. Ông dự đoán sẽ không có kỹ thuật nào là duy nhất – no silver bullet – mà nó có thể cải thiện năng suất theo danh sách yêu cầu cho mọi hệ thống. Brooks trình bày 2 phương pháp khả thi giúp giảm mức độ phức tạp của phần mềm đó là “Buy before Build” và “Reuse before Buy”. Các khái niệm mấu chốt được đưa ra nhằm giúp giảm được chi phí trong công nghệ phát triển phần mềm. IBM tiên phong mở ra lối nghiên cứu về Mô hình đối tượng hệ thống ngay đầu những năm 1990. Một số các đóng góp được ứng dụng trong phần mềm cấu phần đó là OLE và COM. Mô hình cấu phần phần mềm vẫn tiếp tục thu được những thành quả đáng kể. Theo Paul Allen thì hiện nay có đến hơn 70% hệ thống phần mềm mới được phát triển dựa trên cơ sở cấu phần. Các cấu phần thường được phát triển theo hướng đối tượng và được viết bằng các ngôn ngữ khác nhau, chạy trên các môi trường khác nhau, có thể phân tán khắp nơi và người phát triển phần mềm mới không được cung cấp các mã nguồn. Thực tế cho thấy phương pháp Phát triển phần mềm theo cấu phần đã làm giảm chi phí của dự án phát triển phần mềm. So với công nghệ truyền thống chuẩn, công nghệ phần mềm trên cơ sở cấu phần quan tâm đến cách xây dựng phần mềm nhiều hơn. Thông qua việc sử dụng lại các cấu phần, vòng đời phát triển phần mềm được rút ngắn lại, đồng thời tăng tính mềm dẻo khi sử dụng và bảo trì phần mềm. Hơn nữa, phát triển phần mềm có khả năng làm tăng chất lượng phần mềm 1.3 Các khái niệm cơ bản. 1.3.1. Cấu phần (component) Bài giảng COP – Chuyên ngành: CNPM - Version 1 Biên soạn: Ngô Thị Lan & Nguyễn Lan Oanh - 4 Trước tiên, ta đi vào việc tìm hiểu các thuật ngữ cơ bản được sử dụng trong CBSE, ta đi từ các khái niệm nhỏ nhất, đơn giản nhất về cấu phần. Các cấu phần phần mềm được định nghĩa trong nhiều cách khác nhau từ các điểm giống nhau và khác nhau của khung nhìn. [Brown 1998] trình bày bốn định nghĩa của một thành phần phần mềm, trong tổng kết Hội thảo quốc tế CBSE đầu tiên trong tháng 4 năm 1998: 1. Một cấu phần là một phần không tầm thường, gần như độc lập, và là một phần có thể thay thế của hệ thống, đáp ứng một chức năng rõ ràng trong một kiến trúc được xác định. Một cấu phần thích nghi và cung cấp việc thực hiện vật lý của một tập các giao diện.(Philippe Krutchen, Rational Software). 2. Một cấu phần phần mềm chạy thực (runtime) là gói kết nối động của một hoặc nhiều chương trình quản lý như một đơn vị và truy cập thông qua giao diện tài liệu có thể được phát hiện khi chạy thực. (Gartner Group). 3. Một cấu phần phần mềm là một đơn vị của thành phần với giao diện đặc tả và chỉ phụ thuộc bối cảnh. Một cấu phần phần mềm có thể được triển khai độc lập và có thể tham gia với tư cách là bên thứ 3. (Clemens Szyperski). 4. Một cấu phần thương mại đại diện cho việc thực hiện phần mềm của một quá trình kinh doanh. Nó bao gồm các thành phần phần mềm cần thiết để thể hiện, thực hiện, và triển khai các nội dung như có thể tái sử dụng các cấu phần cho một hệ thống kinh doanh lớn hơn. (Wojtek Kozaczynski, SSA). Thảo luận về định nghĩa cấu phần cũng có thể được tìm thấy trong nhiều hội nghị gần đây và các ấn phẩm [Koza 1999; Parrish 1999; Wang 2000; Yacoub 1999; Fischer 2002; Fukazawa 2002]. Trong tài liệu này, chúng ta sẽ sử dụng định nghĩa sau đây cho một cấu phần phần mềm: “Một cấu phần phần mềm là một mảnh khép kín, tự triển khai mã với các chức năng được xác định rõ và có thể được lắp ráp với các cấu phần khác thông qua giao diện của nó”. Từ định nghĩa này, một cấu phần là một chương trình hay một tập hợp các chương trình có thể được biên dịch và thực thi. Đó là khép kín, do đó, nó cung cấp chức năng mạch lạc. Nó là tự triển khai để nó có thể được cài đặt và thực hiện trong một môi trường người dùng cuối. Nó có thể được lắp ráp với các Bài giảng COP – Chuyên ngành: CNPM - Version 1 Biên soạn: Ngô Thị Lan & Nguyễn Lan Oanh - 5 thành phần khác để có thể được tái sử dụng như một đơn vị trong các ngữ cảnh khác nhau. Sự tích hợp được thực hiện thông qua giao diện của một cấu phần, có nghĩa là việc thực hiện nội bộ của một cấu phần thường được ẩn đối với người sử dụng. Một phần tử phần mềm chứa chuỗi các lệnh cấp cao, các tính toán được thực hiện bởi máy tính. Phần tử phần mềm là thực thi nếu: (1) máy tính trực tiếp thực thi các lệnh hoặc (2) có một bộ thông dịch chạy trên máy tính dịch các câu lệnh sang dạng máy thực thi được. Mã nguồn phần mềm là tập các file máy có thể đọc được, chứa các câu lệnh chương trình được viết ứng với một ngôn ngữ lập trình. Các câu lệnh này được dịch thành các câu lệnh thực thi được hoặc nhờ vào bộ biên dịch hoặc bộ thông dịch. Một cấu phần phần mềm là một tập các phần tử phần mềm được lập trình. Cấu phần đó được cài đặt, và đưa vào sử dụng. Sự khác nhau giữa phần tử phần mềm và cấu phần phần mềm được thể hiện ở cách sử dụng. Phần mềm bao gồm rất nhiều yếu tố trừu tượng, các đặc trưng chất lượng. Đó là thước đo để đánh giá một cấu phần hay một quy trình có đáp ứng yêu cầu đặc tả hay không (theo chuẩn IEEE 610.12 – 1990). Thuật ngữ phần tử được đặt trong phạm vi mô tả về cấu phần phần mềm như sau: • Một cấu phần phần mềm là một phần tử phần mềm tuân theo một mô hình cấu phần và có thể triển khai độc lập, được kết hợp mà không cần sửa đổi theo một chuẩn kết hợp. • Một mô hình cấu phần định nghĩa các đặc tả tương tác và các chuẩn kết hợp. • Một cài đặt mô hình cấu phần là một tập hợp các phần tử phần mềm xác định cần có để hỗ trợ việc thực thi của các cấu phần tuân theo mô hình. • Hạ tầng của cấu phần phần mềm, là một tập hợp các cấu phần phần mềm tương tác được thiết kế để đảm bảo rằng hệ thống phần mềm được xây dựng sử dụng các cấu phần và giao diện này sẽ thỏa mãn các đặc tả hiệu năng đã định nghĩa. Các định nghĩa này thể hiện mối quan hệ quan trọng giữa hạ tầng của cấu phần phần mềm, các cấu phần phần mềm và mô hình cấu phần. Bài giảng COP – Chuyên ngành: CNPM - Version 1 Biên soạn: Ngô Thị Lan & Nguyễn Lan Oanh - 6 1.3.2 Mô hình cấu phần và dịch vụ cấu phần Mô hình cấu phần : Cấu phần là một tập các thuộc tính(properties), phương thức (method), và các sự kiện (event). Mỗi cấu phần có một tên dùng để đại diện cho nó. Thuộc tính tóm lược các thuộc tính của một cấu phần. Phương thức mô tả các hành vi và dịch vụ của cấu phần. Mỗi phương thức một ký hiệu: visibility access return_type method_name (parameter-list). Sự kiện mô tả các hành động mà cấu phần này có thể thực hiện. Giao diện (Interface) là một tập hợp con của tập Đề-các tập hợp các thuộc tính, phương thức, và các sự kiện, quy định các giao tiếp với các thành phần của bên ngoài. Ta có thể sử dụng một ký hiệu đồ họa, được gọi là biểu đồ cấu phần ( hình 2.1), để trình bày một cấu phần. Biểu đồ cấu phần là một miêu tả của cấu phần phần mềm.Hình chữ nhật, hình tròn, và hình thoi ở hai bên trái và bên phải đại diện cho thuộc tính công khai, phương thức, và các sự kiện tương ứng trong giao diện của nó. Thành phần có thể được định nghĩa chính thức là: Hình 2.1 Cấu trúc một cấu phần Trong đó: P = {p:T | p ∈ Tập định nghĩa, T ∈ Kiểu} M = {(v,a,t,i(p)) | v ∈ Tập hiển thị, a ∈ truy cập, t ∈ kiểu i ∈ tập định nghĩa, p ∈ tham số} E = {e:T | e ∈ sự kiện, T ∈ kiểu} I : 2P × 2M × 2 E Cấu phần ở mức ứng dụng có thể được sử dụng, nhưng khả năng sử dụng lại cấu phần phần mềm mức ứng dụng là chưa đủ thích hợp. Thiếu sót của việc sử dụng lại xảy ra bởi vì các ứng dụng là quá thô, chúng thiếu hỗ trợ kết hợp, và C = ( P, M, E, I ) Bài giảng COP – Chuyên ngành: CNPM - Version 1 Biên soạn: Ngô Thị Lan & Nguyễn Lan Oanh - 7 hệ điều hành thiếu các chuẩn đặc tả miền. Các thiếu sót đó được thể hiện qua một số đặc điểm: Thiếu tính chất hạt nhân – Lack of granularity – Các ứng dụng là quá thô để có thể cải thiện việc sử dụng lại. Các nhà phát triển ứng dụng thường được yêu cầu thiết kế và cài đặt các chức năng chung chung mà bất kỳ ứng dụng nào cũng có thể có. CBSE tìm ra các nhân tố chung đưa vào các các dịch vụ được cung cấp bởi sự cài đặt mô hình cấu phần hoặc các cấu phần đã được đặt hàng và tích hợp vào hạ tầng cấu phần. Tư tưởng trọng tâm của CBSE là phát triển các công nghệ chi tiết hơn, các cấu phần được làm mịn dần và cho phép sử dụng lại ở mức các ứng dụng thành phần tương tự như tại mức ứng dụng. Thiếu sự hỗ kết hợp – lack of composition support –Trên thực tế, các hệ điều hành đảm bảo rằng các ứng dụng thực thi hoàn toàn độc lập với nhau. Cơ chế giao tiếp quy trình nội bộ được nói đến là khả năng trao đổi dữ liệu giữa các ứng dụng, nhưng các giao diện ứng dụng thường đặc tả kém và thiếu các chuẩn kết hợp. Thiếu các chuẩn đặc tả miền – (Lack of domain - specific standards) – Các dịch vụ trong một hệ điều hành là quá chung chung không hỗ trợ được các miền ứng dụng đặc tả. Ví dụ, một hệ thống đồng bộ cần các dịch vụ khác nhau và giao diện lập trình ứng dụng (APIs-Application programming Interfaces) hơn là một hệ thống điều khiển quy trình hoặc một ứng dụng viễn thông. Mục tiêu của CBSE là phát triển các hệ thống phần mềm bằng cách tạo ra các cấu phần có thể sử dụng lại tách biệt thì tốt hơn là các gắn vào ứng dụng. Một cách tự nhiên, các cấu phần thô này cần có các chuẩn tương tác và kết hợp, cũng như chuẩn hóa các hạ tầng và các dịch vụ. Sự tham gia của CBSE là để định nghĩa các mô hình cấu phần theo các chuẩn như vậy và để cung cấp các cài đặt mô hình cấu phần kết hợp để kích hoạt các cấu phần và các hạ tầng cấu phần được thiết kế, cài đặt, và triển khai. Cấu phần vận hành trên cơ sở các mô hình cấu phần gồm hai mức vận hành: [3] Mức thứ nhất: Một mô hình cấu phần định nghĩa cách xây dựng từng cấu phần riêng lẻ. Mức thứ hai: Một mô hình cấu phần điều khiển hoạt động chung một tập cấu phần trong hệ thống trên cơ sở cấu phần giao tiếp và tương tác với nhau. Một mô hình cấu phần tạo nên sự kết hợp bằng việc định nghĩa một chuẩn tương tác và nâng lên thành giao diện đặc tả tường minh. Nó có thể được tạo từ cấu Bài giảng COP – Chuyên ngành: CNPM - Version 1 Biên soạn: Ngô Thị Lan & Nguyễn Lan Oanh - 8 phần khác hoặc phần tử phần mềm khác bằng cách tạo ra các kết nối được tập hợp hoặc tích hợp riêng. Mô hình cấu phần định nghĩa cơ chế cấp phép cho việc tạo các kết nối được tập hợp hoặc tích hợp. Theo D’Souza và Wills (1999) thì “khả năng lắp ghép” chỉ thành công nếu một cấu phần biểu thị được chính xác yêu cầu của cấu phần khác mà nó kết nối tới. Quy trình đó cần phải đủ phức tạp để thu được kết quả đặc tả chính xác. Chúng ta sử dụng khái niệm gắn kết cho các cấu phần viết ra chẳng hạn như bao gói, liên kết tĩnh - động, “plug-and-play”. Mô hình cấu phần có thể định nghĩa các cơ chế tuỳ biến để mô tả cách mà các cấu phần có thể mở rộng mà không cần có sự sự hiệu chỉnh. Chúng ta coi việc hiệu chỉnh như một dạng cải tiến của tương tác. Một mô hình cấu phần có thể cũng định nghĩa các thuộc tính cấu phần bắt buộc như định dạng mã, các chuẩn tài liệu hoặc các giao diện độc lập của nhà sản xuất. [3]Mô hình cấu phần định nghĩa một tập các chuẩn bao gồm: cài đặt cấu phần, đặt tên, khả năng vận hành nội bộ, tuỳ biến, kết hợp, phát triển và triển khai. Một mô hình cấu phần cũng định nghĩa chuẩn cho việc triển khai mô hình liên kết các cấu, tập các đối tượng phần mềm thực thi được yêu cầu hỗ trợ thực thi của các cấu phần tuân theo mô hình. Một số các mô hình cấu phần đang được sử dụng hiện nay là mô hình thành phần CORBA của OMG, COM+/DOM, và SUN -javabean, Enterprise JavaBeans của Microsoft. Không nhất thiết khi phát triển cấu phần phải tuân theo một chuẩn, nhưng tại một thời điểm không nên có quá nhiều chuẩn. Các phần tử cơ bản của một mô hình cấu phần được Weinreich và Sametinger liệt kê chi tiết - 2001. Hình dưới đây tổng hợp lại các phần tử trong mô hình cấu phần, nó chỉ ra rằng các phần tử đã được phân loại theo các giao diện cấu phần, các phần tử liên quan đến thông tin mà ta cần sử dụng đến cấu phần đó trong một chương trình và các phần tử tập trung vào việc triển khai cấu phần. Hình 1. Các phần tử cơ bản của một mô hình cấu phần[1] Bài giảng COP – Chuyên ngành: CNPM - Version 1 Biên soạn: Ngô Thị Lan & Nguyễn Lan Oanh - 9 Các phần tử cấu phần được định nghĩa dựa trên giao diện của nó. Mô hình cấu phần đặc tả cách định nghĩa các phần tử đó, như tên hàm, tham số, các ngoại lệ. Một số mô hình cấu phần yêu cầu các giao diện đặc tả phải được định nghĩa bởi một cấu phần. Một phần quan trọng của mô hình cấu phần là định nghĩa cách mà các cấu phần nên được đóng gói triển khai độc lập, để các đối tượng thực hiện được. Bởi vì các cấu phần là những thực thể độc lập, chúng phải được đóng gói một cách độc lập với hạ tầng cấu phần xác định hoặc không được định nghĩa trong một giao diện yêu cầu. Các phần tử của một mô hình cấu phần Trong thị trường cấu phần phần mềm toàn cầu, các cấu phần được triển khai một cách độc lập và tùy thuộc vào sự kết hợp với bên thứ 3. Thị trường này cần có các chuẩn. Các chuẩn giao tiếp và chuẩn trao đổi dữ liệu giữa các cấu phần khác nhau của các nhà sản xuất cấu phần là rõ ràng. Như vậy, một chuẩn hoạt động nội bộ – đôi khi gọi là chuẩn lắp ráp hoặc kết nối – là một phần tử trung tâm trong một mô hình cấu phần. Các phần tử cơ bản khác của một mô hình cấu phần là các chuẩn: giao diện, đặt tên, siêu dữ liệu, tuỳ biến, kết hợp, phát triển và triển khai. Một mô hình cấu phần có thể cũng có các chuẩn đặc trưng để mô tả các tính năng đặc tả miền cần thiết trong các ứng dụng. Ví dụ, sự kết hợp các cấu phần trong các miền với các hoạt động đang diễn ra đòi hỏi tiếp cận các mô hình chuỗi được chuẩn hoá và các cơ chế đồng bộ. Một hệ xử lý phân tán mở đòi hỏi các chuần lời gọi phương thức từ xa, và chuẩn bảo mật. Các ứng dụng nghiệp vụ 3 lớp cần các dịch vụ giao dịch được chuẩn hoá và cơ sở dữ liệu APIs. Cuối cùng, một mô hình cấu phần với các tài liệu kết hợp (như OLE) cần đặc tả từng Bài giảng COP – Chuyên ngành: CNPM - Version 1 Biên soạn: Ngô Thị Lan & Nguyễn Lan Oanh - 10 phần, các quan hệ bao hàm và giao diện. Các mô hình cấu phần đặc tả miền gọi tới các chức năng đặc biệt trong cài đặt mô hình cấu phần. Giao diện, thỏa thuận và ngôn ngữ định nghĩa giao diện Mục đích của các cấu phần là được sử dụng lại trong phần mềm. Hai hình thức sử dụng lại là sử dụng lại hộp trắng và sử dụng lại hộp đen. Sử dụng lại hộp trắng nghĩa là mã nguồn của cấu phần phần là có sẵn đầy đủ và có thể nghiên cứu, sử dụng lại, lắp ghép hoặc chỉnh sửa. Sử dụng lại hộp trắng thể hiện vai trò chính trong các nền tảng hướng đối tượng, đáp ứng sức mạnh kế thừa cho các cài đặt phần mềm sử dụng lại. Nhược điểm của sử dụng lại hộp trắng là các khách hàng sử dụng cấu phần có thể thay đổi mã nguồn cấu phần đó nếu có sự thay đổi bên trong chương trình. Sử dụng lại hộp đen dựa trên nguyên tắc che giấu thông tin. Người dùng cấu phần chỉ có thể dựa trên vào các giao diện. Các giao diện này là sự mô tả hoặc đặc tả hành vi cấu phần. Thông qua các giao diện, các lời gọi cấu phần có thể được thay đổi tiếp tục thỏa mãn yêu cầu định nghĩa. Giao diện thể hiện một cách tường minh và qua các công cụ chẳng hạn như bộ biên dịch, có thể kiểm chứng tĩnh khả năng tương thích với các cấu phần client. Một giao diện không phải là phần hợp thành của cấu phần, mà các phần hợp thành cấu phần là các dịch vụ chẳng hạn như một thoả thuận giữa một cấu phần với các client quan hệ với nó. Một giao diện đặc tả các dịch vụ yêu cầu từ client đến cấu phần; cấu phần phải cung cấp một cài đặt các dịch vụ này. Thêm vào đó, một giao diện có thể bao gồm các ràng buộc trên các dịch vụ được sử dụng, nó phải được xét trên cấu phần và các client của nó. Các đặc tả giao diện là phần tử trung tâm trong một mô hình cấu phần. Một mô hình cấu phần định nghĩa cách mà một hành vi cấu phần được mô tả – dựa trên giao diện, các đặc tả khác (phi chức năng) và các tài liệu thích hợp. Một mô hình cấu phần định nghĩa các phần tử, mỗi phần tử có thể cấu thành một giao diện. Các phần tử của một giao diện gồm có: • Tên của các phép toán liên quan đến ngữ nghĩa. • Các tham số của chúng • Kiểu tham số Các giao diện gồm các ngoại lệ được đưa ra, các điều kiện trước, điều kiện sau phải được đáp ứng khi sử dụng các thao tác riêng lẻ, và các đặc tả từng phần hành vi mong muốn của một giao diện cài đặt cấu phần. Nhiều mô hình cấu phần có một ngôn ngữ định nghĩa giao diện (IDL – Interface definition [...]... dụng phần mềm bao gồm tái sử dụng bất kỳ thuộc tính phần mềm trong các định dạng khác nhau Có năm hình thức của các cấu phần phần mềm, cụ thể là : cấu phần đặc tả, cấu phần giao diện, cấu phần thực thi, cấu phần cài đặt và các cấu phần đối tượng Mỗi hình thức của các cấu phần phần mềm có thể được tái sử dụng trong các giai đoạn khác nhau của một vòng đời phần mềm Nguyên tắc 3: Phát triển phần mềm dựa... chúng luôn được đảm bảo Nguyên tắc 4: Phát triển phần mềm dựa trên cấu phần có thể tăng năng suất phần mềm Phần mềm dựa trên cấu phần được xây dựng bằng cách lắp ráp các cấu phần tái sử dụng hiện tại Quá trình này nhanh hơn nhiều so với phát triển một ứng dụng từ vạch xuất phát Nguyên tắc 5: Phát triển phần mềm dựa trên cấu phần khuyến khích việc tiêu chuẩn hóa phần mềm Như Clemens Czyperski mô tả trong... phân phối cài đặt mô hình cấu phần cung cấp các công cụ như chương trình biên dịch IDL nhằm hỗ trợ sự phát triển của các cấu phần Như vậy, sự cài đặt mô hình cấu phần giúp khả năng thực thi các cấu phần tuân theo mô hình Khi nhà sản xuất mô hình cấu phần cũng là nhà thiết kế mô hình cấu phần, mô hình cấu phần đó có thể bị trở thành độc quyền Một phần quan trọng của mô hình cấu phần là sự chuẩn hoá môi... thiết kế cho cấu phần xác định nhằm phát triển trong thời gian dài Cài đặt mô hình cấu phần hỗ trợ sự tương tác và kết hợp, từ đó các kỹ sư có thể tạo các hạ tầng cấu phần phần mềm, đặc tả miền cho các cấu phần của họ tương tác với các chức năng và hành vi của hệ thống gọi cấu phần trong CSLC Bảng dưới đây thể hiện so sánh giữa vòng đời phát triển phần mềm truyền thống với vòng đời phát triển CBSE Biên... vòng đời phát triển trên cơ sở cấu phần với vòng đời phát triển phần mềm truyền thống [3] Bước Vòng đời phát triển phần mềm truyền thống Vòng đời phát triển CBSE 1 Mô hình quy trình nghiệp vụ Mô hình quy trình nghiệp vụ 2 Quản lý yêu cầu Quản lý yêu cầu 3 Mô hình thiết kế hệ thống Mô hình thiết kế hệ thống (cấu phần) CBSE Lấp đầy khoảng trống (gap fullfilled) CBSE Đặc tả cấu phần mới CBSE Đưa cấu phần. .. COM (Component oriented management) thể hiện các thuật ngữ về phân tích hướng cấu phần, thiết kế hướng cấu phần và quản lý hướng cấu phần Mục tiêu của CBSE là phát triển phần mềm một cách nhanh chóng, và giảm chi phí bằng cách xây dựng các hệ thống thông qua việc thu thập các cấu phần có sẵn Thiết kế, phát triển, và duy trì các cấu phần nhằm mục đích sử dụng lại là một quy trình rất phức tạp, với các... các phần tử của một giao diện Nếu cấu phần chỉ có thể thực hiện chức năng của nó bằng cách tương tác với phần tử phần mềm khác, tất cả các phụ thuộc bối cảnh phải được đặc tả tường minh trong tài liệu cấu phần Chuẩn tương tác bao gồm các tương tác trực tiếp và gián tiếp giữa các cấu phần Một cấu phần có thể có một phụ thuộc bối cảnh tường minh trên HĐH, một cấu phần phần mềm, hoặc một phần tử phần mềm. .. đi kèm để phát triển các hệ thống phần mềm Một mô hình cấu phần mô tả cách mà các cấu phần được đóng gói, bởi vậy chúng có thể được triển khai độc lập Một cấu phần được triển khai nghĩa là nó được cài đặt và cấu hình trong một hạ tầng cấu phần Cấu phần được đóng gói thường gồm mã chương trình, dữ liệu cấu hình, các cấu phần khác và các tài nguyên đi kèm Một mô tả triển khai cung cấp thông tin bên trong... ý tưởng lớn trong phát triển phần mềm dựa trên cấu phần là tạo ra mô-đun phần mềm tự khép kín và triển khai độc lập Vì vậy các nhà phát triển khác nhau sẽ có thể làm việc trên các cấu phần khác nhau một cách độc lập, không cần giao tiếp nhiều với nhau, nhưng các cấu phần sẽ làm việc với nhau liền mạch Ngoài ra, trong giai đoạn bảo trì phần mềm, nó sẽ có khả năng sửa đổi một số cấu phần mà không ảnh... nhiều định nghĩa khác nhau về cấu phần phần mềm [Allen năm 1997; Garlan 2000; Liskov 2000; Luck năm 2000; 2000 Wang, 2002], các nguyên tắc về cấu phần phần mềm vẫn giữ nguyên Tiếp theo, ta sẽ tìm hiểu một số nguyên tắc cơ bản trong công nghệ phần mềm dựa trên cấu phần nói chung và trong lập trình hướng cấu phần nói riêng Nguyên tắc 1: Trừu tượng hóa và phân tích các cấu phần đại diện Chiến lược cơ bản . OOP là bị ràng bu c v o c c ngôn ngữ OOP. • COP đã lỏng hóa c c thành phần, trong khi OOP đã kết chặt chẽ c c đối tượng phụ thu c v o nhau thông qua vi c th c hiện kế thừa. • COP c c c cấu. giao diện giữa c c siêu l p và l p con. • COP hỗ trợ c c hình th c khám phá động, trong khi OOP cung c p hạn chế hỗ trợ cho c c đối tượng và c chế thu hồi thành phần thời gian chạy. • COP. nghĩa c chế c p ph p cho vi c t o c c kết nối đư c t p h p ho c tích h p. Theo D’Souza và Wills (1999) thì “khả năng l p gh p chỉ thành c ng nếu một c u phần biểu thị đư c chính x c yêu c u c a

Ngày đăng: 24/11/2014, 17:44

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan