1. Trang chủ
  2. » Luận Văn - Báo Cáo

tiểu luận công nghệ phần mềm hướng thành phần

21 1,2K 6

Đ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

Thông tin cơ bản

Định dạng
Số trang 21
Dung lượng 523 KB

Nội dung

7.Cơ sở hạ tầng của thành phần cung cấp một loạt các dịch vụ chuẩn mà có thể được sử dụng trong các hệ thống ứn dụng.. Councill vàHeineman 2001 định nghĩa một thành phần là: “ Một yếu tố

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Hà Nội, tháng 3/2013

Trang 2

Mục lục

1 Giới thiệu 3

2 Các thành phần và các mô hình thành phần 4

2.1 Các mô hình thành phần 7

3 Quy trình CBSE 10

3.1 CBSE cho tái sử dụng 11

3.2 CBSE trong việc tái sử dụng 14

4 Thành phần phức hợp 17

5 Kết luận 21

6 Tài liệu tham khảo 21

Trang 3

1 Giới thiệu

Công nghệ phần mềm dựa trên thành phần (CBSE) xuất hiện vàocuối những năm 1990 là một cách tiếp cận để phát triển hệ thống phầnmềm dựa trên việc tái sử dụng các thành phần phần mềm Sự ra đời của nóđược thúc đấy bới sự thất bại của các nhà thiết kế phát triển hướng đốitượng đã không dẫn đến tái sử dụng mở rộng như được đề xuất ban đầu.Các lớp đối tượng đơn lẻ quá chi tiết và cụ thể và thường phải bị ràng buộcvới một ứng dụng lúc biên dịch Bạn phải có hiểu biết chi tiết các lớp để sửdụng chúng, điều này thường có nghĩa là bạn phải có mã nguồn thành phần.Điều này có nghĩa là việc bán và phân phối các đối tượng là các thành phầntái sử dụng là không thực tế

Các thành phần được trừu tượng hóa ở mức cao hơn các đối tượng vàđược xác định bởi các giao diện Chúng thường lớn hơn các đối tượngriêng lẻ và tất cả các chi tiết thực thi được ẩn từ các thành phần khác Côngnghệ dựa trên thành phần (CBSE) là môt quy trình xác định, thực thi, vàtích hợp các thành phần độc lập vào trong hệ thống Nó trở thành một cáchtiếp cận phát triển phần mềm quan trọng bởi vì các hệ thống phần mềmđang trở lên lớn hơn và phức tạp hơn Các khách hàng đang đòi hỏi phầnmềm đáng tin cậy được cung cấp và triển khai nhanh hơn Cách duy nhất làchúng ta có thể đối phó với sự phức tạp và cung cấp phần mềm tốt hơnmột cách nhanh chóng là phải sử dụng lại hơn là thực hiện lại các thànhphần phần mềm

Các yếu tố cần thiết của công nghệ phần mềm dựa trên thành phần là:

1.Các thành phần độc lập được hoàn toàn được xác định bởi giaodiện của chúng Cần có một sự tách biệt rõ ràng giao diện thành phần và sựthực thi của nó Điều này có nghĩa là một sự thực thi của một thành phần cóthể được thay thế bằng một cái khác, mà không thay đổi các phần khác của

hệ thống

2.Các tiêu chuẩn của các thành phần là tạo điều kiện kết hợp cácthành phần Các tiêu chuẩn này được chứa trong một mô hính thành phần.Chúng xác định, ở mức rất tối thiểu, các giao giện thành phận nên được xácđịnh như thế nào và chúng giao tiếp với nhau như thế nào Một số mô hìnhtiến xa hơn và xác định các giao diện mà nên được thực thi bởi tất cả cácthành phần thích ứng Nếu các thành phần thích ứng với các tiêu chuẩn, thìcác hoạt động của chúng độc lập với ngôn ngữ lập trình của chúng Cácthành phần được viết bằng ngôn ngữ khác nhau có thể được tích hợp vàocúng một hệ thống

3.Lớp Middleware(lớp trung gian) cung cấp hỗ trợ phần mềm choviệc tích hợp các thành phần Để tạo ra sự độc lập, phân phối các thànhphần làm việc cùng nhau, bạn cần sự hỗ trợ của lớp Middleware để xử lýcác giao tiếp của các thành phần Lớp Middleware cho việc hỗ trợ thànhphần xử lý các vấn đề ở mức thấp một cách hiêu quả và cho phép bạn tậptrung vào các vấn đề có liên quan đến ứng dụng Ngoài ra, lớp Middleware

Trang 4

cho sự hỗ trợ thành phần có thể cung cấp sự hỗ trợ cho việc phân bổ tàinguyên, quản lý giao dịch bảo mật và đồng bộ.

4.Một quy trình phát triển đó là hướng đến công nghệ phần mềmdựa trên thành phần Bạn cần một quy trình phát triển mà cho phép các yêucầu được triển khai, tùy theo chức năng của các thành phần có sẵn

Phát triển dựa trên thành phần là hiện thân của việc thực hành kỹ thuậtphần mềm tốt Nó tạo ra hướng để thiết kế một hệ thống sử dụng các thànhphần, ngay cả khi nếu bạn phải phát triển hơn là tái sử dụng các thành phầnnày Về cơ bản, CBSE là các nguyên lý thiết kế đúng đắn mà hỗ trợ việcxây dựng phần mềm dễ hiểu và dễ bảo trì:

5.Các thành phần là độc lập để chúng không can thiệp vào các hoạtđộng khác Các chi tiết của sự thực thi được ẩn Các thực thi của các thànhphần có thể được thay đổi mà không ảnh hướng đến phần còn lại của hệthồng

6.Các thành phần giao tiếp thông qua giao diện được xác định rõràng Nếu các giao diện được duy trì, một thành phần có thể được thay thếbằng một thành phần khác mà cung cấp thêm hoặc nâng cao chuwca năng

7.Cơ sở hạ tầng của thành phần cung cấp một loạt các dịch vụ chuẩn

mà có thể được sử dụng trong các hệ thống ứn dụng Điều này làm giảm sốlượng mã mới mà phải phát triển

2 Các thành phần và các mô hình thành phần.

Có sự thống nhất chung trong cộng đồng CBSE là một thành phần làmột đơn vị phần mềm độc lập mà có thể được hợp thành với các thànhphần khác tạo ra một hệ thống phần mềm Ngoài ra, người ta còn đề xuấtmột vài định nghĩa khác của một thành phần phần mềm Councill vàHeineman (2001) định nghĩa một thành phần là:

“ Một yếu tố phần mềm mà phù hợp với một mô hình thành phầntiêu chuẩn và có thể là được triển khai và tạo ra độc lập mà không chỉnhsửa theo một tiêu chuẩn của thành phần nào”

Định nghĩa này chủ yếu dựa trên tiêu chuẩn để một đơn vị phần mềmphù hợp với các tiêu chuẩn này là một thành phần Szyperski (2002), không

đề cập đến tiêu chuẩn trong định nghĩa của ông về một thành phần mà tậptrung vào các đặc điểm chính của các thành phần:

“ Một thành phần phần mềm là một đơn vị thành phần giao kèo- cácgiao diện được thiết lập và phụ thuộc ngữ cảnh rõ ràng duy nhất Một thànhphần phần mềm có thể được triển khai độc lập và phụ thuộc vào thànhphần bởi bên thứ ba”

Cả hai định nghĩa trên được dựa trên khái niệm của một thành phần

là một yếu tố mà được bao gồm bởi một hệ thống, chứ không phải là mộtdịch vụ mà được tham chiếu bởi hệ thống Tuy nhiên chúng cũng phù hợpvới ý tưởng một dịch vụ là một thành phần

Szyperski cũng cho rằng một thành phần không có trạng thái quansát bên ngoài ĐIều này nghĩa là các bản sao của các thành phần hoàn toàn

Trang 5

giống nhau Tuy nhiên, một vài mô hình thành phần, như là mô hìnhEnterprise Java Beans, cho phép các thành phần là có trạng thái (stateful) vìvậy chúng không phù hợp với định nghĩa của Szyperski Mặc dù cácthanhg phần phi trạng thái (stateless) chắc chắn đơn giản hơn để sử dụng,

có một vài hệ thống mà ở đó các thành phần có trạng thái tiện lợi hơn vàgiảm độ phức tạp của hệ thống Các định nghĩa ở trên có điểm chung làcùng đồng ý rằng các thành phần là độc lập, và chúng là những đơn vịthành phần trong một hệ thống Theo quan điểm của Ian Sommerville, mộtđịnh nghĩa tốt hơn của một thành phần có thể được bắt nguồn bằng cách kếthợp các đề xuất trên

Bảng bên dưới cho thấy những gì Ian Sommerville cho là các điểmthiết yếu của một thành phần được sử dụng trong CBSE

Các đặc điểm

của thành phần

Mô tả

Tiêu chuẩn hóa Tiêu chuẩn hóa thành phần có nghĩa là một thành phần được

sử dụng trong một quy trình CBSE phải phù hợp với một

mô hình thành phần chuẩn Mô hình này có thể được xácđịnh các giao diện thành phần, siêu dữ liệu thành phần, tàiliệu, sự hợp thành và triển khai

Độc lập Một thành phần nền được độc lập – nó nên có thể được biện

soạn và triển khai nó mà không cần phải sử dụng các thànhphần cụ thể khác Trong các trường hợp mà thành phần cầncác dịch vụ được cung cấp bên ngoài, chúng cần được thiếtlập một cách rõ ràng trong một đặc tả yêu cầu giao diện

Có khả năng hợp

thành

Để một thành phần có khả năng hợp thành, tất cả các tươngtác bên ngoài phải được thực hiện thông qua việc công khaixác định giao diện Ngoài ra nó phải cung cấp truy cập benngoài thông tin về chính nó, như các phương thức và thuộctính của nó

Có thể triển khai Để có thể triển khai, một thành phần phải được độc lập Nó

phải có khả năng hoạt động như một thực thể độc lập trênmột nên tảng thành phần mà cung cấp một thực thi của môhình thành phần Điều này thường có nghĩa là cá thành phần

là nhị phân và không phải được biên dịch trước khi nó đượctriển khai Nếu một thành phần được thực thi như một dịch

vụ, nó không phải được triển khai bới một người dùng củamột thành phần Thay vào đó nó được triển khai bởi nhàcung cấp dịch vụ

Ghi chép Các thành phần phải được ghi chép đầy đủ để người dùng

tiềm năng có thể quyết đinh có hay không các thành phầnđáp ứng nhu cầu của họ Cú pháp và, lý tưởng, các ngữnghĩa của tất cả các giao diện của thành phần nên được quyđịnh

Trang 6

Cách hữu hiệu để suy nghĩ về một thành phần như là một nhà cungcấp chủa một hoặc nhiều dịch vụ Khi một hệ thống cần một dịch vụ, nógọi trên một thành phần để cung cấp dịch vụ mà không quan tâm về nơi màthành phần được thực thi hoặc ngôn ngữ lập trình được sử dụng để pháttriển thành phần Ví dụ, một thành phần trong một hệ thống thư viện có thểcung cấp một dịch vụ tìm kiếm chi phép người dùng tìm kiếm các loại thưviện khác nhau.

Một thành phần có thể chuyển đổi từ một định dạng đồ họa này sangmôt định dạng đồ họa khác (vì dụ: tiff sang jpeg) cung cấp một dịch vụchuyển dổi dữ liệu v.v

Xem một thành phần là một nhà cung cấp dịch vụ được nhấn mạnhhai đặc tính quan trọng của thành phần tái sử dụng:

1.Thành phần là một thực thể thực thi độc lập mà được xác định bởicác giao diện của nó Bạn không cần hiểu bất kỳ cái gì về mà nguồn của nókhi sử dụng nó Nó có thể hoặc được tham chiếu như một dịch vụ bênngoài hoặc đưa trực tiếp vào trong một chương trình

2.Các dịch vụ được cung cấp bởi một thành phần được thực hiệnthông qua một giao diện và tất cả các tương tác được thông qua giao diện

đó Các giao diện thành phần được biểu hiện trong điều kiện của các hoạtđộng tham số và trạng thái bên trong nó không bao giờ lộ ra

Các thành phần có hai giao diện liên quan, trình bày trong hình 1.Các giao diện này phản ảnh các dịch vụ mà thành phần cung cấp và cácdịch vụ mà thành phần yêu cầu để vận hành chính xác

- Giao diện “cung cấp” xác định các dịch vụ dược cung cấp bởithành phần Giao diện nầy, về cơ bản, là các thành phần API Nó địnhnghĩa các phương thức mà có thể được gọi bởi người dùng các thành phần

- Các giao diện “yêu cầu” xác định dịch vụ gì phải được cung cấpbởi các thành phâng trong hệ thống nếu một thành phần là để hoạt độngchính xác Nếu những cái này không có sẵn, thì thành phần sẽ không làmviệc Điều nàu không làm ảnh hưởng đến sự độc lập hay tính thực thi củamột thành phần bởi vì giao diện “yêu cầu” không xác định các dịch vụ nàynên được cung cấp như thế nào Trong UML, ký hiệu cho một giao diện

“yêu cầu” là một hình bán nguyệt ở cuối một dòng từ từ biểu tượng thànhphần

Để minh họa cho các giao diện này, hình 2 cho thấy một mô hình củamột thành phần được thiết kế để thu thập và tổng hợp thông tin từ mộtmảng các cảm biến Nó chạy tự động để thu thấp dữ liệu qua một khoảngthời gian và theo yêu cầu, cung cấp dữ liệu thu được cho một cuộc goithành phần Giao diện “cung cấp” bao gồm các phương thức thêm, loại bỏ,bắt đầu, dừng lại, kiểm tra các cảm biến Phương thức báo cáo trả lại dữliệu cảm biến mà đã được thu về, và phương thức listAll cung cấp thông tin

về các cảm biến kèm theo Các phương thức này kết hợp các tham số cụthể các định danh, địa điểm của cảm biến Giao diện “yêu cầu” được sử

Trang 7

dụng để kết nối thành phần tới các cảm biến Giả thiết rằng các cảm biến cómột giao diện dữ liệu, được truy cập thông qua ensorData, và một giao diệnquản lý được truy câp thông qua phương thức sensorManagement Giaodiện này được thiết kế để kết nối với các loại cảm biến để nó không baogồm các thao tác cảm biến cụ thể như Test, provideReading, vv Thay vào

đó, các lệnh được dùng bởi một loại cụ thể của cảm biến được nhúng trongmột chuỗi, cái mà là một tham số cho các thao tác trong giao diện “yêucầu” Các thành phần Adaptor phân tích chuỗi này và dịch các lệnh đượcnhúng bên trong giao diện điều khiển đặc trưng của mỗi loại cảm biến

Hình 1: các giao diện thành phần

Hình 2 Mô hình của một thành phần thu thập dữ liệu

Một sự khác biệt quan trọng giữa một thành phần là một dịch vụ bên ngoài

và một thành phần là một yếu tố của một chương trình đó là các dịch vụ làcác thực thể hoàn toàn độc lập Chúng không có một giao diện “yêu cầu”.Các chương trình khác nhau có thể sử dụng các dịch vụ này mà không cầnphải thực thi bất kỳ một hỗ trợ bổ xung nào được yêu cầu bởi dịch vụ

2.1 Các mô hình thành phần

Một mô hình thành phần là một định nghĩa các tiêu chuẩn về sự thực thi,ghi chép tài liệu, và phát triển thành phần Các chuẩn này là để những nhàphát triển thành phần đảm bảo rằng các thành phần có thể hoạt động Họcũng là các nhà cung cấp cơ sở hạ thầng thực hiện thành phần

Trang 8

Nhiều mô hình thành phần đã được đề xuất, nhưng các mô hình quan trọngnhất hiện nay là mô hình WebServices, mô hình Sun’s Enterprise JavaBeans (EJB) và mô hình Microsoft’s NET (Lau and Wang, 2007)

Các yếu tố cơ bản của một mô hình thành phần lý tưởng được trình bày bởiWeinreich và Sametinger (2001) Ian Sommerville đã tổng hợp các yếu tốcủa các mô hình trong hình 3 Đây là một biểu đồ biểu diễn các yếu tố củamột mô hình xác định các giao diện thành phần, thông tin mà bạn cần sửdụng thành phần trong một chương trình, và một mô hình nên được triểnkhai như thế nào:

1 Các giao diện(Interfaces): Các thành phần được xác định bằng

cách xác định giao diện của chúng Mô hình thành phần quy định cụ thểcác giao diện nên được xác định như thế nào và các yếu tố như tên hoạtđộng, tham số, và các trường hợp ngoại lệ nên được bao gồm trong việcxác định giao diện Mô hình cung nên xác định ngôn ngữ được sử dụng đểxác đinh các giao diện thành phần Một số các mô hình thánh phần đòi hỏicác giao diện cụ thể mà phải được xác đinh bằng một thành phần Chúngđược sử dụng để tạo ra thành phần với cơ sở hạ tầng của mô hình thànhphần, cái mà cung cấp các dịch vụ tiêu chuẩn như an ninh và quản lý giaodịch

2 Sử dụng(Usage): Để cho các thành phần được phân phối và truy

cập từ xa, chúng cẩn có một cái tên duy nhất hoặc kết hợp vử lý với chúng.Điều này phải được toàn cục duy nhất – ví dụ trong mô hình EnterpriseJava Beans một cái tên phân cấp được sinh ra với một gốc dựa trên một tênmiền internet Các dịch vụ có một URL duy nhất (Uniform ResourceIdentifier)

Thành phần meta-data là một dữ liệu về chính thành phần của nó,chẳng hạn như thông tin về giao diện và các thuộc tính của nó Meta-data làquan trọng bởi vì nó cho phép người dùng của các thành phần tìm ra cácdịch vụ gì được cung cấp và yêu cầu Việc thực thi mô hình thành phầnthông thường bao gồm những cách cụ thể ( như sử dụng một một giao diệnảnh trong Java) để truy cập thành phần meta-data này

Hình 3: các yếu tố cơ bản của mô hình thành phần

Trang 9

Các thành phần là các thực thể chung và khi triển khai, chúng phải đượccấu hình để phù hợp với hệ thống ứng dụng Ví dụ, bạn có thể cấu hìnhthành phần thu thập dữ liệu (hình 2) bằng cách xác định số lượng tối đa cáccảm biến trong một mảng cảm biến Mô hình thành phần có thể xác địnhcác thành phần nhị phân có thể được tùy chỉnh như thế nào cho một môitrường triển khai riêng

3.Triển khai(Deployment): Mô hình thành phần bao gồm một đặc tả

của các thành phần nên được đóng gòi như thế nào cho việc triển khai như

là các thực thể độc lập và có thể thi hành được Bởi vì các thành phần làcác thực thể độc lập, chúng phải được đóng gói với tất cả phần mềm hỗ trợ

mà nó không được cung cấp bởi cơ sở hạ tầng của thành phần, howacjkhông được xác định trong một giao diện các yêu cầu Thông tin triển khaibao gồm thông tin về nội dung của một gòi và tổ chức nhị phân của nó.Chắc chắn là các yêu cầu mới ló ra, các thành phần sẽ phải được thay đổihoặc bị thay thế Mô hình thành phần có thể bao gồm các luật quản lý khi

sự thay thế thành phần được cho phép như thế nào Cuối cùng, một môhình thành phần có thể xác định tài liệu thành phần mà nên được tạo ra.Điều này được sử dụng để tìm kiếm thành phần và quyết định xem nó cóphù hợp không

Hình 4: Các dịch vụ Middleware xác định mô hình thành phần

Đối với các thành phần mà được thực thị như các đơn vị chương trình chứkhông phải là các dịch vụ bên ngoài, mô hình thành phần đặt ra các dịch vụđược cung cấp bởi middleware để hỗ trợ các thành phần thực thi.Weinreich and Sametinger (2001) sử dụng sự tương tụ của một hệ điềuhành hệ thống để giải thích các mô hình thành phần Một hệ điều hànhcung cấp một tập các các dịch vụ chung mà có thể được sử dụng bởi cácứng dụng Sự thực thi của mô hinh thành phần cung cấp các dịch vụ chia sẻ

Trang 10

có thể so sánh được cho các thành phần Hình 4 cho thấy một vài dịch vụ

mà có thể được cung cấp bởi một sự thực thi của một mô hình thành phần.Các dịch vụ được cung cấp bằng sự thực thi của mô hình thành phần rơivào hai hoại sau:

1.Các dịch vụ nên tảng (Platform services), cho phép các thành phầngiao tiếp và tương thích trong môi trường phân phối Đây là những dịch vụ

cơ bản mà phải có sẵn trong các hệ thống dựa trên thành phần

2.Các dịch vụ hỗ trợ (Support services), là các dịch vụ phổ biến mà

có thể được đòi hỏi bởi nhiều thành phần khác nhau Ví dụ, nhiều thànhphần yêu cầu xác thực để đảm bảo rằng người dùng các dịch vụ thành phầnđược cho phép Nó tạo nên ý nghĩa để cung cấp cho một tập tiêu chuẩn củacác dịch vụ của tầng middleware để sử dụng bởi tất cả các thành phần.Điều này làm giảm giá thành của việc phát triển thành phần và tính khôngtương thích của thành phần có thể tránh được

Middleware thực thi các dịch vụ của thành phần và cung cấp cácgiao diện cho các dịch vụ này

3 Quy trình CBSE (Component-based software engineering- công nghệ

phần mềm hướng thành phần)

Quy trình CBSE là quy trình phần mềm có hỗ trợ công nghệ phầnmềm hướng thành phần Các khả năng tái sử dụng và phạm vi hoạt độngcủa các quy trình khác liên quan đến sự phát triển và sử dụng các thànhphần có khả năng tái sử dụng Hình 5 biểu diễn một cách tổng quan quytrình trong CBSE

Hình 5 Quy trình CBSE

Tại mức cao nhất, có 2 kiểu quy trình CBSE:

1 Phát triển để tái sử dụng (Development for reuse) Quy trình này

liên quan đến việc phát triển các thành phần và các dịch vụ sẽ được tái sửdụng trong các ứng dụng khác, thường liên quan đến các thành phần hiệncó

Ngày đăng: 07/11/2015, 17:33

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w