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

21 1.2K 3
tiểu luận công nghệ phần mềm hướng  thành 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

M ĐẠI HỌC CÔNG NGHỆ TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TIỂU LUẬN: CÔNG NGHỆ PHẦN MỀM HƯỚNG THÀNH PHẦN Giáo viên hướng dẫn: TS Võ Đình Hiếu Nhóm học viên thực hiện: Đỗ Thị Loan Vũ Thị Ngọc Anh Phạm Công Thiên Lý Hà Nội, tháng 3/2013 Công nghệ phần mềm hướng thành phần Mục lục Giới thiệu Các thành phần mô hình thành phần 2.1 Các mô hình thành phần Quy trình CBSE 10 3.1 CBSE cho tái sử dụng .11 3.2 CBSE việc tái sử dụng 14 Thành phần phức hợp .17 Kết luận 21 Tài liệu tham khảo 21 2/21 Công nghệ phần mềm hướng thành phần 3/21 Giới thiệu Công nghệ phần mềm dựa thành phần (CBSE) xuất vào cuối năm 1990 cách tiếp cận để phát triển hệ thống phần mềm dựa việc tái sử dụng thành phần phần mềm Sự đời thúc bới thất bại nhà thiết kế phát triển hướng đối tượng không dẫn đến tái sử dụng mở rộng đề xuất ban đầu Các lớp đối tượng đơn lẻ chi tiết cụ thể thường phải bị ràng buộc với ứng dụng lúc biên dịch Bạn phải có hiểu biết chi tiết lớp để sử dụng chúng, điều thường có nghĩa bạn phải có mã nguồn thành phần Điều có nghĩa việc bán phân phối đối tượng thành phần tái sử dụng không thực tế Các thành phần trừu tượng hóa mức cao đối tượng xác định giao diện Chúng thường lớn đối tượng riêng lẻ tất chi tiết thực thi ẩn từ thành phần khác Công nghệ dựa thành phần (CBSE) môt quy trình xác định, thực thi, tích hợp thành phần độc lập vào hệ thống Nó trở thành cách tiếp cận phát triển phần mềm quan trọng hệ thống phần mềm trở lên lớn phức tạp Các khách hàng đòi hỏi phần mềm đáng tin cậy cung cấp triển khai nhanh Cách đối phó với phức tạp cung cấp phần mềm tốt cách nhanh chóng phải sử dụng lại thực lại thành phần phần mềm Các yếu tố cần thiết công nghệ phần mềm dựa thành phần là: 1.Các thành phần độc lập hoàn toàn xác định giao diện chúng Cần có tách biệt rõ ràng giao diện thành phần thực thi Điều có nghĩa thực thi thành phần thay khác, mà không thay đổi phần khác hệ thống 2.Các tiêu chuẩn thành phần tạo điều kiện kết hợp thành phần Các tiêu chuẩn chứa mô hính thành phần Chúng xác định, mức tối thiểu, giao giện thành phận nên xác định chúng giao tiếp với Một số mô hình tiến xa xác định giao diện mà nên thực thi tất thành phần thích ứng Nếu thành phần thích ứng với tiêu chuẩn, hoạt động chúng độc lập với ngôn ngữ lập trình chúng Các thành phần viết ngôn ngữ khác tích hợp vào cúng hệ thống 3.Lớp Middleware(lớp trung gian) cung cấp hỗ trợ phần mềm cho việc tích hợp thành phần Để tạo độc lập, phân phối thành phần làm việc nhau, bạn cần hỗ trợ lớp Middleware để xử lý giao tiếp thành phần Lớp Middleware cho việc hỗ trợ thành phần xử lý vấn đề mức thấp cách hiêu cho phép bạn tập trung vào vấn đề có liên quan đến ứng dụng Ngoài ra, lớp Middleware Công nghệ phần mềm hướng thành phần 4/21 cho hỗ trợ thành phần cung cấp hỗ trợ cho việc phân bổ tài nguyên, quản lý giao dịch bảo mật đồng 4.Một quy trình phát triển hướng đến công nghệ phần mềm dựa thành phần Bạn cần quy trình phát triển mà cho phép yêu cầu triển khai, tùy theo chức thành phần có sẵn Phát triển dựa thành phần thân việc thực hành kỹ thuật phần mềm tốt Nó tạo hướng để thiết kế hệ thống sử dụng thành phần, bạn phải phát triển tái sử dụng thành phần Về bản, CBSE nguyên lý thiết kế đắn mà hỗ trợ việc xây dựng phần mềm dễ hiểu dễ bảo trì: 5.Các thành phần độc lập để chúng không can thiệp vào hoạt động khác Các chi tiết thực thi ẩn Các thực thi thành phần thay đổi mà không ảnh hướng đến phần lại hệ thồng 6.Các thành phần giao tiếp thông qua giao diện xác định rõ ràng Nếu giao diện trì, thành phần thay thành phần khác mà cung cấp thêm nâng cao chuwca 7.Cơ sở hạ tầng thành phần cung cấp loạt dịch vụ chuẩn mà sử dụng hệ thống ứn dụng Điều làm giảm số lượng mã mà phải phát triển Các thành phần mô hình thành phần Có thống chung cộng đồng CBSE thành phần đơn vị phần mềm độc lập mà hợp thành với thành phần khác tạo hệ thống phần mềm Ngoài ra, người ta đề xuất vài định nghĩa khác thành phần phần mềm Councill Heineman (2001) định nghĩa thành phần là: “ Một yếu tố phần mềm mà phù hợp với mô hình thành phần tiêu chuẩn triển khai tạo độc lập mà không chỉnh sửa theo tiêu chuẩn thành phần nào” Định nghĩa chủ yếu dựa tiêu chuẩn để đơn vị phần mềm phù hợp với tiêu chuẩn thành phần Szyperski (2002), không đề cập đến tiêu chuẩn định nghĩa ông thành phần mà tập trung vào đặc điểm thành phần: “ Một thành phần phần mềm đơn vị thành phần giao kèo- giao diện thiết lập phụ thuộc ngữ cảnh rõ ràng Một thành phần phần mềm triển khai độc lập phụ thuộc vào thành phần bên thứ ba” Cả hai định nghĩa dựa khái niệm thành phần yếu tố mà bao gồm hệ thống, dịch vụ mà tham chiếu hệ thống Tuy nhiên chúng phù hợp với ý tưởng dịch vụ thành phần Szyperski cho thành phần trạng thái quan sát bên ĐIều nghĩa thành phần hoàn toàn Công nghệ phần mềm hướng thành phần 5/21 giống Tuy nhiên, vài mô hình thành phần, mô hình Enterprise Java Beans, cho phép thành phần có trạng thái (stateful) chúng không phù hợp với định nghĩa Szyperski Mặc dù thanhg phần phi trạng thái (stateless) chắn đơn giản để sử dụng, có vài hệ thống mà thành phần có trạng thái tiện lợi giảm độ phức tạp hệ thống Các định nghĩa có điểm chung đồng ý thành phần độc lập, chúng đơn vị thành phần hệ thống Theo quan điểm Ian Sommerville, định nghĩa tốt thành phần bắt nguồn cách kết hợp đề xuất Bảng bên cho thấy Ian Sommerville cho điểm thiết yếu thành phần sử dụng CBSE Các đặc điểm Mô tả thành phần Tiêu chuẩn hóa Tiêu chuẩn hóa thành phần có nghĩa thành phần sử dụng quy trình CBSE phải phù hợp với mô hình thành phần chuẩn Mô hình xác định giao diện thành phần, siêu liệu thành phần, tài liệu, hợp thành triển khai Độc lập Một thành phần độc lập – nên biện soạn triển khai mà không cần phải sử dụng thành phần cụ thể khác Trong trường hợp mà thành phần cần dịch vụ cung cấp bên ngoài, chúng cần thiết lập cách rõ ràng đặc tả yêu cầu giao diện Có khả hợp Để thành phần có khả hợp thành, tất tương thành tác bên phải thực thông qua việc công khai xác định giao diện Ngoài phải cung cấp truy cập ben thông tin nó, phương thức thuộc tính Có thể triển khai Để triển khai, thành phần phải độc lập Nó phải có khả hoạt động thực thể độc lập nên tảng thành phần mà cung cấp thực thi mô hình thành phần Điều thường có nghĩa cá thành phần nhị phân biên dịch trước triển khai Nếu thành phần thực thi dịch vụ, triển khai bới người dùng thành phần Thay vào triển khai nhà cung cấp dịch vụ Ghi chép Các thành phần phải ghi chép đầy đủ để người dùng tiềm đinh có hay không thành phần đáp ứng nhu cầu họ Cú pháp và, lý tưởng, ngữ nghĩa tất giao diện thành phần nên quy định Công nghệ phần mềm hướng thành phần 6/21 Cách hữu hiệu để suy nghĩ thành phần nhà cung cấp chủa nhiều dịch vụ Khi hệ thống cần dịch vụ, gọi thành phần để cung cấp dịch vụ mà không quan tâm nơi mà thành phần thực thi ngôn ngữ lập trình sử dụng để phát triển thành phần Ví dụ, thành phần hệ thống thư viện cung cấp dịch vụ tìm kiếm chi phép người dùng tìm kiếm loại thư viện khác Một thành phần chuyển đổi từ định dạng đồ họa sang môt định dạng đồ họa khác (vì dụ: tiff sang jpeg) cung cấp dịch vụ chuyển dổi liệu v.v Xem thành phần nhà cung cấp dịch vụ nhấn mạnh hai đặc tính quan trọng thành phần tái sử dụng: 1.Thành phần thực thể thực thi độc lập mà xác định giao diện Bạn không cần hiểu mà nguồn sử dụng Nó tham chiếu dịch vụ bên đưa trực tiếp vào chương trình 2.Các dịch vụ cung cấp thành phần thực thông qua giao diện tất tương tác thông qua giao diện Các giao diện thành phần biểu điều kiện hoạt động tham số trạng thái bên không lộ Các thành phần có hai giao diện liên quan, trình bày hình Các giao diện phản ảnh dịch vụ mà thành phần cung cấp dịch vụ mà thành phần yêu cầu để vận hành xác - Giao diện “cung cấp” xác định dịch vụ dược cung cấp thành phần Giao diện nầy, bản, thành phần API Nó định nghĩa phương thức mà gọi người dùng thành phần - Các giao diện “yêu cầu” xác định dịch vụ phải cung cấp thành phâng hệ thống thành phần để hoạt động xác Nếu sẵn, thành phần không làm việc Điều nàu không làm ảnh hưởng đến độc lập hay tính thực thi thành phần giao diện “yêu cầu” không xác định dịch vụ nên cung cấp Trong UML, ký hiệu cho giao diện “yêu cầu” hình bán nguyệt cuối dòng từ từ biểu tượng thành phần Để minh họa cho giao diện này, hình cho thấy mô hình thành phần thiết kế để thu thập tổng hợp thông tin từ mảng cảm biến Nó chạy tự động để thu thấp liệu qua khoảng thời gian theo yêu cầu, cung cấp liệu thu cho goi thành phần Giao diện “cung cấp” bao gồm phương thức thêm, loại bỏ, bắt đầu, dừng lại, kiểm tra cảm biến Phương thức báo cáo trả lại liệu cảm biến mà thu về, phương thức listAll cung cấp thông tin cảm biến kèm theo Các phương thức kết hợp tham số cụ thể định danh, địa điểm cảm biến Giao diện “yêu cầu” sử Công nghệ phần mềm hướng thành phần 7/21 dụng để kết nối thành phần tới cảm biến Giả thiết cảm biến có giao diện liệu, truy cập thông qua ensorData, giao diện quản lý truy câp thông qua phương thức sensorManagement Giao diện thiết kế để kết nối với loại cảm biến để không bao gồm thao tác cảm biến cụ thể Test, provideReading, vv Thay vào đó, lệnh dùng loại cụ thể cảm biến nhúng chuỗi, mà tham số cho thao tác giao diện “yêu cầu” Các thành phần Adaptor phân tích chuỗi dịch lệnh nhúng bên giao diện điều khiển đặc trưng loại cảm biến Hình 1: giao diện thành phần Hình Mô hình thành phần thu thập liệu Một khác biệt quan trọng thành phần dịch vụ bên thành phần yếu tố chương trình dịch vụ thực thể hoàn toàn độc lập Chúng giao diện “yêu cầu” Các chương trình khác sử dụng dịch vụ mà không cần phải thực thi hỗ trợ bổ xung yêu cầu dịch vụ 2.1 Các mô hình thành phần Một mô hình thành phần định nghĩa tiêu chuẩn thực thi, ghi chép tài liệu, phát triển thành phần Các chuẩn để nhà phát triển thành phần đảm bảo thành phần hoạt động Họ nhà cung cấp sở hạ thầng thực thành phần Công nghệ phần mềm hướng thành phần 8/21 Nhiều mô hình thành phần đề xuất, mô hình quan trọng mô hình WebServices, mô hình Sun’s Enterprise Java Beans (EJB) mô hình Microsoft’s NET (Lau and Wang, 2007) Các yếu tố mô hình thành phần lý tưởng trình bày Weinreich Sametinger (2001) Ian Sommerville tổng hợp yếu tố mô hình hình Đây biểu đồ biểu diễn yếu tố mô hình xác định giao diện thành phần, thông tin mà bạn cần sử dụng thành phần chương trình, mô hình nên triển khai nào: Các giao diện(Interfaces): Các thành phần xác định cách xác định giao diện chúng Mô hình thành phần quy định cụ thể giao diện nên xác định yếu tố tên hoạt động, tham số, trường hợp ngoại lệ nên bao gồm việc xác định giao diện Mô hình cung nên xác định ngôn ngữ sử dụng để xác đinh giao diện thành phần Một số mô hình thánh phần đòi hỏi giao diện cụ thể mà phải xác đinh thành phần Chúng sử dụng để tạo thành phần với sở hạ tầng mô hình thành phần, mà cung cấp dịch vụ tiêu chuẩn an ninh quản lý giao dịch Sử dụng(Usage): Để cho thành phần phân phối truy cập từ xa, chúng cẩn có tên kết hợp vử lý với chúng Điều phải toàn cục – ví dụ mô hình Enterprise Java Beans tên phân cấp sinh với gốc dựa tên miền internet Các dịch vụ có URL (Uniform Resource Identifier) Thành phần meta-data liệu thành phần nó, chẳng hạn thông tin giao diện thuộc tính Meta-data quan trọng cho phép người dùng thành phần tìm dịch vụ cung cấp yêu cầu Việc thực thi mô hình thành phần thông thường bao gồm cách cụ thể ( sử dụng một giao diện ảnh Java) để truy cập thành phần meta-data Hình 3: yếu tố mô hình thành phần Công nghệ phần mềm hướng thành phần 9/21 ` Các thành phần thực thể chung triển khai, chúng phải cấu hình để phù hợp với hệ thống ứng dụng Ví dụ, bạn cấu hình thành phần thu thập liệu (hình 2) cách xác định số lượng tối đa cảm biến mảng cảm biến Mô hình thành phần xác định thành phần nhị phân tùy chỉnh cho môi trường triển khai riêng 3.Triển khai(Deployment): Mô hình thành phần bao gồm đặc tả thành phần nên đóng gòi cho việc triển khai thực thể độc lập thi hành Bởi thành phần thực thể độc lập, chúng phải đóng gói với tất phần mềm hỗ trợ mà không cung cấp sở hạ tầng thành phần, howacj không xác định giao diện yêu cầu Thông tin triển khai bao gồm thông tin nội dung gòi tổ chức nhị phân Chắc chắn yêu cầu ló ra, thành phần phải thay đổi bị thay Mô hình thành phần bao gồm luật quản lý thay thành phần cho phép Cuối cùng, mô hình thành phần xác định tài liệu thành phần mà nên tạo Điều sử dụng để tìm kiếm thành phần định xem 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 thành phần mà thực thị đơn vị chương trình dịch vụ bên ngoài, mô hình thành phần đặt dịch vụ cung cấp middleware để hỗ trợ thành phần thực thi Weinreich and Sametinger (2001) sử dụng tương tụ hệ điều hành hệ thống để giải thích mô hình thành phần Một hệ điều hành cung cấp tập các dịch vụ chung mà sử dụng ứng dụng Sự thực thi mô hinh thành phần cung cấp dịch vụ chia sẻ Công nghệ phần mềm hướng thành phần 10/21 so sánh cho thành phần Hình cho thấy vài dịch vụ mà cung cấp thực thi mô hình thành phần Các dịch vụ cung cấp thực thi mô hình thành phần rơi vào hai hoại sau: 1.Các dịch vụ nên tảng (Platform services), cho phép thành phần giao tiếp tương thích môi trường phân phối Đây dịch vụ mà phải có sẵn hệ thống dựa thành phần 2.Các dịch vụ hỗ trợ (Support services), dịch vụ phổ biến mà đòi hỏi nhiều thành phần khác Ví dụ, nhiều thành phần yêu cầu xác thực để đảm bảo người dùng dịch vụ thành phần cho phép Nó tạo nên ý nghĩa để cung cấp cho tập tiêu chuẩn dịch vụ tầng middleware để sử dụng tất thành phần Điều làm giảm giá thành việc phát triển thành phần tính không tương thích thành phần tránh Middleware thực thi dịch vụ thành phần cung cấp giao diện cho dịch vụ 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 quy trình phần mềm có hỗ trợ công nghệ phần mềm hướng thành phần Các khả tái sử dụng phạm vi hoạt động quy trình khác liên quan đến phát triển sử dụng thành phần có khả tái sử dụng Hình biểu diễn cách tổng quan quy trình CBSE Hình Quy trình CBSE Tại mức cao nhất, có kiểu quy trình CBSE: Phát triển để tái sử dụng (Development for reuse) Quy trình liên quan đến việc phát triển thành phần dịch vụ tái sử dụng ứng dụng khác, thường liên quan đến thành phần có Công nghệ phần mềm hướng thành phần 11/21 Phát triển việc tái sử dụng ( Development with reuse): Đây quy trình phát triển ứng dụng sử dụng thành phần dịch vụ có Các quy trình có mục tiêu khác đó, bao hàm hoạt động khác Quá trình phát triển cho trình tái sử dụng, mục đích để sản xuất nhiều thành phần tái sử dụng.Bạn biết thành phần mà bạn làm việc bạn truy cập vào mã nguồn để tổng quát hóa chúng Quá trình phát triển việc tái sử dụng, bạn thành phần sẵn sàng, bạn cần tìm thành phần thiết kế hệ thống bạn để làm cho hiệu sử dụng chúng tốt Các quy trình CBSE với tái sử dụng cho tái sử dụng có quy trình hỗ trợ liên quan tới tiếp nhận thành phần (component acquisition), quản lý thành phần (component management), xác nhận thành phần (component certification): Xác nhận thành phần trình thu thành phần để tái sử dụng phát triển vào thành phần có khả tái sử dụng Nó liên quan đến việc truy cập vào thành phần dịch vụ phát triển cục tìm thành phần từ nguồn mở bên Quản lý thành phần liên quan đến quản lý thành phần có khả tái sử dụng công ty, đảm bảo chúng lập danh mục, lưu trữ, tạo sẵn cho tái sử dụng cách Xác nhận thành phần quy trình kiểm tra thành phần xác nhận đáp ứng đặc tả kỹ thuật Các thành phần bảo vệ kiểu tổ chức lưu trữ kho chứa thành phần bao gồm thành phần thông tin cách sử dụng chúng 3.1 CBSE cho tái sử dụng( CBSE for reuse) CBSE cho việc tái sử dụng trình phát triển thành phần có khả tái sử dụng làm chúng sẵn sàng cho việc tái sử dụng thông qua hệ thống quản lý thành phần Tầm nhìn người ủng hộ CBSE gần (Szyperski, 2002) thị trường thành phần lớn mạnh phát triển Sẽ có nhà cung cấp thành phần chuyên môn nhà cung cấp thành phần tổ chức việc bán thành phần từ nhà phát triển khác Những người phát triển phần mềm mua thành phần để gom vào hệ thống trả phí cho dịch vụ chúng sử dụng Tuy nhiên tầm nhìn không thực Có nhà cung cấp thành phần việc mua thành phần không phổ biến Tại thời điểm này, thị trường dịch vụ không phát triển có dự đoán cho mở rộng đáng kể vài năm tới Công nghệ phần mềm hướng thành phần 12/21 Do đó, CBSE cho tái sử dụng diễn bên tổ chức nơi tạo cam kết với công nghệ phần mềm hướng tái sử dụng Họ muốn khai thác tài sản phần mềm phát triển phận khác công ty Tuy nhiên, thành phần phát triển nội thường khả tái sử dụng mà thay đổi Chúng thường bao gổm tính ứng dụng cụ thể giao diện khả yêu cầu chương trình khác mà thành phần tái sử dụng Để tạo thành phần có khả tái sử dụng, bạn phải thích ứng mở rộng ứng dụng thành phần cụ thể để tạo nhiều thành phần phổ biến nhiều phiên có khả tái sử dụng Rõ ràng thích ứng có giá trị ghép Do bạn phải định: - Đầu tiên, có thành phần có khả tái sử dụng - Hai là, chi phí tiết kiệm từ tái sử dụng tương lai có biện minh cho giá trị việc tạo thành phần có khả tái sử dụng Để trả lời cho ý đầu tiên, bạn phải định dù có hay không thành phần thực thi nhiều khái niệm trừu tượng miền ổn định Các khái niệm trừu tượng miền ổn định yếu tố miền ứng dụng thay đổi chậm Ví dụ, hệ thống ngân hàng, khái niệm trừu tượng bao gồm tài khoản, chủ tài khoản, báo cáo tài Trong hệ thống quản lý bệnh viện, khái niệm trừu tượng miền bao gồm bệnh nhân, phương pháp điều trị y tá Các miền trừu tượng gọi “đối tượng thương mại” Nếu thành phần hệ thống xử lý miền trừu tượng thường sử dụng nhóm đối tượng thương mại liên quan, có khả tái sử dụng Để trả lời cho câu hỏi hiệu chi phí, bạn phải đánh giá giá trị thay đổi yêu cầu để tạo khả tái sử dụng thành phần Giá trị giá trị tài liệu thành phần, xác nhận thành phần, tạo thành phần phổ biến Những thay đổi mà bạn tạo thành phần để làm cho có khả tái sử dụng nhiều bao gồm: - Loại bỏ phương thức ứng dụng cụ thể; - Thay đổi tên để làm cho chúng phổ biến hơn; - Thêm phương thức để cung cấp phạm vi chức hoàn chỉnh hơn; - Tạo xử lý ngoại lệ phù hợp với tất phương thức; - Thêm giao diện ‘cấu hình’ cho phép thành phần thích nghi với tình sử dụng khác nhau; - Kết hợp thành phần yêu cầu để tăng tính độc lập Vấn đề xử lý ngoại lệ vấn đề khó Các thành phần không nên xử lý loại trừ chúng, ứng dụng có yêu cầu cho xử lý ngoại lệ chúng Đúng là, thành phần nên định nghĩa ngoại lệ xảy nên công bố ngoại lệ phận giao diện Tuy nhiên, thực tiễn có vấn đề: Công nghệ phần mềm hướng thành phần 13/21 1, Công khai tất ngoại lệ dẫn đến việc giao diện bị phồng lên khó hiểu Điều bỏ người dùng tiềm thành phần 2, Việc vận hành thành phần phụ thuộc vào xử lý ngoại lệ cục bộ, thay đổi điều có ảnh hưởng nghiêm trọng chức thành phần Mili et al (2002) thảo luận cách thức ước tính chi phí tạo thành phần tái sử dụng lợi nhuận từ đầu tư Lợi ích việc tái sử dụng lớn việc phát triển lại thành phần không đơn giản tăng suất Cũng có tăng chất lượng, thành phần tái sử dụng tin cậy hơn, tăng thời gian đưa thị trường Lợi nhuận tăng lên triển khai phần mềm nhanh Mili et al trình bày nhiều phương pháp khác để đánh giá tăng thêm này, mô hình COCOMO Chapter 23 (Boehm, et al., 2000) Tuy nhiên, thông số công thức khó đánh giá đúng, công thức phải điều chỉnh phù hợp với trường hợp cục bộ, làm cho chúng khó sử dụng ngờ phần nhỏ nhà quản lý dự án phần mềm dùng mô hình để đánh giá lợi nhuận đầu tư mang lại từ khả tái sử dụng thành phần Rõ ràng, có hay không thành phần có khả tái sử dụng dựa vào miền ứng dụng chức Khi bạn thêm vào tính khái quát cho thành phần, bạn tăng thêm khả tái sử dụng Tuy nhiên, điều thường có nghĩa thành phần có nhiều phép tính phức tạp hơn, làm cho thành phần khó hiểu khó sử dụng Do đó, có cân đối tránh khỏi khả tái sử dụng khả sử dụng thành phần Để tạo thành phần có khả tái sử dụng bạn phải cung cấp tập giao diện chung với hoạt động phục vụ cho tất cách thành phần sử dụng Việc tạo thành phần có khả sử dụng có nghĩa cung cấp giao diện đơn giản, tối thiểu mà dễ hiểu Khả tái sử dụng thêm tính phức tạp giảm tính dễ hiểu thành phần Vì khó khăn để định tái sử dụng thành phần vào Khi thiết kế thành phần có khả tái sử dụng, bạn phải tìm cách dàn xếp tính phổ biến dễ hiểu Nguồn tiềm thành phần tồn hệ thống kế thừa Như thảo luận Chapter 9, có hệ thống thực chức thương mại quan trọng viết sử dụng công nghệ phần mềm lỗi thời Vì khó khăn để sử dụng chúng với hệ thống Tuy nhiên bạn chuyển hệ thống cũ thành thành phần, chức chúng tái sử dụng ứng dụng Dĩ nhiên hệ thống lỗi thời thường định nghĩa rõ ràng yêu cầu cung cấp giao diện Để tạo khả tái sử dụng thành phần này, bạn phải tạo gói định nghĩa giao diện thành Công nghệ phần mềm hướng thành phần 14/21 phần Các gói ẩn độ phức tạp mã cung cấp giao diện cho thành phần bên truy cập vào phần mềm cung cấp Mặc dù gói phần phức tạp phần mềm, chi phí phát triển gói thường chi phí tái thực thi hệ thống cũ Một bạn phát triển kiểm thử thành phần tái sử dụng dịch vụ, thành phần sau phải quản lý để tái sử dụng tương lai Cách quản lý liên quan đến việc định phân loại thành phần để khai thác, tạo thành phần có sẵn kho chứa dịch vụ, trì thông tin cách sử dụng thành phần theo dõi phiên thành phần khác Nếu thành phần mã nguồn mở, bạn tạo sẵn kho chung nguồn giả (Sourceforge) Nếu dự định để sử dụng công ty, bạn sử dụng hệ thống kho nội Một công ty với chương trình tái sử dụng thực vài hình thức chứng nhận thành phần trước thành phần sẵn sàng cho tái sử dụng Chứng nhận có nghĩa vài người trừ nhà phát triển kiểm tra chất lượng thành phần Họ kiểm tra thành phần chứng thực đạt tới chuẩn chất lượng chấp nhận được, trước thành phần sẵn sàng cho việc tái sử dụng Tuy nhiên, quy trình tốn nhiều công ty đơn giản để thử nghiệm kiểm tra chất lượng nhà phát triển thành phần 3.2 CBSE với tái sử dụng Hình CBSE với tái sử dụng Tái sử dụng thành công thành phần yêu cầu tiến trình phát triển phù hợp với CBSE Quy trình CBSE với tái sử dụng phải bao gồm hoạt động tìm kiếm hợp thành phần có khả tái sử dụng Hình hoạt động bên tiến trình Một vài hoạt động bên tiến trình này, chẳng hạn khám phá ban đầu yêu cầu người dùng, thực giống cách quy trình phần mềm Tuy nhiên, khác chất CBSE với tái sử dụng quy trình phần mềm cho phát triển phần mềm nguyên là: 1.Các yêu cầu người dùng ban đầu phát triển nét chi tiết, bên liên quan khuyến khích khả linh Công nghệ phần mềm hướng thành phần 15/21 hoạt xác định yêu cầu họ Yêu cầu giới hạn cụ thể số thành phần đáp ứng yêu cầu Tuy nhiên, không giống phát triển gia tăng, bạn cần tập yêu cẩu hoàn chỉnh để xác định thành phần tái sử dụng Các yêu cầu sàng lọc sửa đổi tiến trình gần phụ thuộc vào tính sẵn sàng thành phần Nếu yêu cầu người dùng hoàn thành từ thành phần có sẵn, bạn phải tìm yêu cầu liên quan hỗ trợ Người dùng sẵn sàng thay đổi suy nghĩ họ suy nghĩ có nghĩa hệ thống phân phối rẻ nhanh Có hoạt động tìm kiếm thêm thành phần hoạt động thiết kế tinh tế sau hệ thống kiến trúc thiết kế Một số thành phần có khả sử dụng trở thành không phù hợp không làm việc với thành phần chọn khác Mặc dù không hình 6, điều có nghĩa yêu cầu thêm thay đổi cần thiết Phát triển quy trình hợp mà thành phần tìm tích hợp Điều liên quan đến việc hợp thành phần với mô hình sở hạ tầng thành phần và, thường phát triển điều phối điều hòa giao diện thành phần xung khắc với Tất nhiên việc bổ sung chức yêu cầu lần bên cung cấp thành phần tái sử dụng Giai đoạn thiết kế kiến trúc đặc biệt quan trọng Jacobson et al (1997) thấy định nghĩa kiến trúc thiết thực định cho tái sử dụng thành công Trong suốt hoạt động thiết kế kiến trúc, bạn chọn mẫu thành phần tảng thực Tuy nhiên nhiều công ty có chuẩn phát triển hệ thống (e.g., NET)vì mẫu thành phần định trước Như thảo luận chương 6, bạn thiết lập tổ chức cấp cao hệ thống giai đoạn đưa định hệ thống phân phối kiểm soát Một hoạt động cho quy trình CBSE xác định thành phần ứng viên dịch vụ cho việc tái sử dụng Điều liên quan đến số hoạt động con, Hình 17.8 Ban đầu, trọng tâm bạn nên tâm vào tìm kiếm lựa chọn Bạn cần thuyết phục rắdng có thành phần sẵn sàng đáp ứng yêu cầu bạn Hiển nhiên, bạn nên làm vài kiểm tra ban đầu thành phần phù hợp việc kiểm tra chi tiết không yêu cầu Trong giai đoạn sau, sau kiến trúc hệ thống thiết kế, bạn nên sử dụng thêm thời gian vào việc xác nhận thành phần Bạn cần chắn thành phần xác định thực phù hợp với ứng dụng bạn Nếu không, bạn phải lặp lại quy trình tìm kiếm lựa chọn Công nghệ phần mềm hướng thành phần 16/21 Hình Quá trình xác định thành phần Bước đầu việc xác định thành phần tìm thành phần có sẵn cục từ nhà cung cấp đáng tin cậy Như nói phần trước, có tương đối nhà cung cấp thành phần bạn nên tìm kiếm thành phần có khả phát triển công ty bạn Các công ty phát triển phần mềm xây dựng sở liệu riêng họ thành phần có khả tái sử dụng mà rủi ro vốn có việc sử dụng thành phần từ nhà cung cấp bên Ngoài ra, bạn định tìm kiếm thư viện mã có sẵn Web, Sourceforge Google Code, để xem mã nguồn thành phần mà bạn cần sẵn có Nếu bạn tìm kiếm dịch vụ, có số công cụ tìm kiếm web chuyên dụng có sẵn tìm dịch vụ web công cộng Khi trình tìm kiếm thành phần xác định thành phần thực được, bạn phải lựa chọn thành phần ứng viên cho hoạt động đánh giá Trong vài trường hợp, điều công việc đơn giản Các thành phần danh sách trực tiếp thực thi yêu cầu người dùng có các thành phần không hoàn chỉnh phù hợp với yêu cầu Tuy nhiên, trường hợp khác, trình lựa chọn phức tạp nhiều đồ rõ ràng yêu cầu thành phần bạn thấy vài thành phần phải hợp với để phù hợp với yêu cầu đặc biệt nhóm yêu cầu Vì thế, bạn phải định kết cấu thành phần cung cấp vùng phủ sóng tốt yêu cầu Khi bạn lựa chọn thành phần cho bao hàm hệ thống,sau bạn nên thông qua chúng để kiểm tra chúng vận hành thông báo Phạm vi thông qua yêu cầu phụ thuộc vào nguồn thành phần Nếu bạn sử dụng thành phần phát triển nguồn đáng tin cậy tiếng, bạn định việc kiểm tra thành phần không cần thiết Bạn thường kiểm tra thành phần kết hợp với thành phần khác Mặt khác, bạn sử dụng thành phần từ nguồn không rõ, bạn luôn nên kiểm tra kiểm thử thành phần trước đưa vào hệ thống bạn Việc xác nhận thành phần liên quan đến việc phát triển trường hợp thử nghiệm cho thành phần (hoặc có khả thực mở rộng trường hợp thử nghiệm cung cấp với thành phần đó) việc phát triển khai thác thử nghiệm để chạy thử nghiệm thành phần Vấn đề lớn với việc xác nhận thành phần đặc điểm kỹ thuật thành phần không đủ chi tiết phép bạn phát triển hoàn chỉnh kiểm thử phần mềm Các thành phần thường quy định cách thức, với tài liệu thức đặc tả kỹ thuật giao diện chúng Điều không bao gồm đầy đủ thông tin cho bạn để phát triển hoàn chỉnh kiểm thử mà thuyết phục bạn giao diện thông báo thành phần mà bạn yêu cầu Công nghệ phần mềm hướng thành phần 17/21 Cũng thử nghiệm mà thành phần để tái sử dụng làm mà bạn yêu cầu, bạn phải kiểm tra thành phần không bao gồm mã độc chức mà bạn không cần Các nhà phát triển chuyên nghiệp sử dụng thành phần từ nguồn không đáng tin, đặc biệt nguồn không cung cấp mã nguổn Vì vấn đề mã độc thường không tăng Tuy nhiên thành phần thường chứa hàm mà bạn không cần bạn phải kiểm tra chức không ảnh hưởng tới việc sử dụng thành phần bạn Vấn đề với chức không cần thiết kích hoạt thành phần Điều làm chậm lại thành phần, khiến tạo kết đáng ngạc nhiên hoặc, số trường hợp, tạo lỗi hệ thống nghiêm trọng Thành phần phức hợp Thành phần phức hợp trình tích hợp thành phần lại với nhau, đặc biệt với cách viết “glue code” tạo hệ thống thành phần khác, có nhiều cách khác để soạn thành phần, hình 17.10 Hình 9: Các loại thành phần phức hợp Từ trái qua phải sơ đồ minh họa cho thành phần liên tục, thành phần thứ bậc thành phần phức hợp Trong thảo luận đưa cách soạn hai thành phần(A B) để tạo thành phần mới: 1.Thành phần (a) hình Bạn tạo thành phần từ hai thành phần có cách gọi thành phần có chuỗi Bạn coi thành phần tích hợp thành phần tích hợp ‘provides interfaces’ Đó là, dịch vụ cung cấp thành phần A gọi kết trả A sau sử dụng để gọi đến dịch vụ cung cấp thành phần B Các thành phần không gọi thành phần phức hợp liên tiếp Một số mã glue yêu cầu gọi gọi thành phần dịch vụ theo thứ tự để đảm bảo kết cung Công nghệ phần mềm hướng thành phần 18/21 cấp thành phần phức hợp A tương thích với đầu vào dự kiến thành phần B Giao diện ‘provides’ phụ thuộc vào chức kết hợp thành phần phức hợp A B không bình thường thành phần phức hợp chúng ‘provides interfaces’ Đây loại thành phần phức hợp sử dụng với thành phần yếu tố chương trình thành phần dịch vụ 2.Thành phần thứ bậc (b) hình Đây loại thành phần phức hợp xảy phần gọi trực tiếp vào dịch vụ cung cấp thành phần khác Các thành phần gọi cung cấp dịch vụ yêu cầu thành phần gọi Do đó, giao diện thành phần gọi ‘provides’ phải phù hợp với 'yêu cầu' giao diện thành phần gọi Thành phần A gọi trực tiếp vào thành phần B, giao diện chúng phù hợp, không cần cho mã bổ sung Tuy nhiên, có không phù hợp giao diện ' requires ' A giao diện ‘provides’ B, sau số mã chuyển đổi yêu cầu Khi dịch vụ giao diện ‘requires’, chế độ thành phần phức hợp không sử dụng thành phần thực dịch vụ web 3.Thành phần phức hợp tương ứng với hình (c) Hình Điều xảy hai nhiều thành phần đặt lại với (tăng) để tạo thành phần để kết hợp chức chúng Giao diện ‘provides’ giao diện ‘requires’ thành phần kết hợp giao diện tương ứng thành phần A B Các thành phần gọi riêng thông qua giao diện bên thành phần Các thành phần A B độc lập không gọi Đây loại thành phần phức hợp sử dụng với thành phần chương trình thành phần dịch vụ Bạn sử dụng tất hình thức thành phần tổng hợp xây dựng hệ thống Trong trường hợp phải viết mã kết nối ("glue code") để liên kết thành phần lại với Ví dụ, ta có thành phần liên tục đầu thành phần A thường trở thành đầu vào thành phần B Bạn cần phải có câu lệnh trung gian gọi thành phần A, thu thập kết từ A, kết tham số truyền vào gọi thành phần B Khi thành phần gọi thành phần khác phải có thành phần trung gian để đảm bảo giao diện thành phần cung cấp (Provider) tương thích với giao diện thành phần yêu cầu(Requires) Khi bạn viết thành phần đặc biệt cho thành phần tổng hợp, bạn cần thiết kế giao diện thành phần để chúng tương thích với thành phần khác hệ thống Từ bạn dễ dàng tạo thành phần đơn vị Tuy nhiên, thành phần phát triển độc lập để tái sử dụng, bạn thường xuyên phải đối mặt với không tương thích giao diện Điều có nghĩa giao diện thành phần mà bạn muốn tạo không giống Ba loại không tương thích xảy : Công nghệ phần mềm hướng thành phần 19/21 1.Tham số không tương thích Các hoạt động bên giao diện có tên khác kiểu tham số số lượng tham số không giống 2.Không tương thích hoạt động Tên hoạt động giao diện thành phần cung cấp giao diện thành phần yêu cầu khác 3.Hoạt động không đầy đủ Giao diện thành phần cung cấp tập hợp giao diện thành phần yêu cầu ngược lại Trong trường hợp, để giải vấn đề không tương thích bạn phải viết chuyển đổi để hòa hợp giao diện hai thành phần sử dụng lại Một chuyển đổi thành phần chuyển đổi giao diện sang giao diện khác Hình thức xác chuyển đổi phụ thuộc vào loại thành phần tổng hợp Đôi khi, ví dụ tiếp theo, Bộ chuyển đổi chuyển đổi kết từ thành phần thành hình thức mà sử dụng đầu vào thành phần khác Trong trường hợp khác chuyển đổi gọi thành phần A giống proxy cho thành phần B Tình trạng xảy A có nhu cầu gọi B giao diện thành phần 'yêu cầu' A không phù hợp với giao diện thành phần "cung cấp" B Bộ chuyển đổi hòa hợp khác biệt cách chuyển đổi thông số đầu vào từ A vào thông số đầu vào cần thiết cho B sau gọi B để cung cấp dịch vụ theo yêu cầu A Hình 10 Các thành phần không tương thích giao diện Để minh họa cho chuyển đổi, xem xét hai thành phần thể hình 10 có giao diện không tương thích Đây phần hệ thống sử dụng dịch vụ cấp cứu Khi nhà điều hành cấp cứu nhận gọi, số điện thoại đầu vào cho thành phần addressFinder để xác định vị trí địa Sau đó, sử dụng thành phần Mapper để in đồ gửi đến xe cứu thương Trong thực tế, thành phần có giao diện phức tạp nhiều, để minh họa khái niệm chuyển đổi đưa mức đơn giản Công nghệ phần mềm hướng thành phần 20/21 Thành phần đầu tiên, addressFinder, tìm địa phù hợp với số điện thoại Nó trở lại chủ sở hữu người có quyền sở hữu gắn liền với số điện thoại loại quyền sở hữu Các thành phần mapper có mã bưu điện(ở Hoa Kỳ, mã bưu điện với tiêu chuẩn bổ sung bốn chữ số xác định quyền sở hữu) hiển thị in đồ đường phố khu vực xung quanh mã quy mô định Các thành phần biên soạn nguyên tắc quyền sở hữu bao gồm việc gửi liệu mã bưu điện Tuy nhiên, bạn phải viết thành phần gọi chuyển đổi từ postCodeStripper sang addressFinder dải post code Việc gửi mã sau sử dụng đầu vào để ánh xạ vào đồ đường phố với tỉ lệ 1/10.000 Đoạn mã sau ví dụ thành phần tuần tự, minh họa chuỗi gọi: Hình 11: Bộ điều hợp liên kết thu thập liệu cảm biến Một trường hợp khác, phần chuyển đổi sử dụng thành phần phức hợp phân cấp, nơi mà người ta mong muốn thành phần đươc sử dụng khác có không tương thích giao diện ‘provides’ giao diện ‘requires’ thành phần thành phần phức hợp Các thảo luận thành phần phức hợp giả sử bạn nói từ tài liệu thành phần có hay không giao diện tương thích Tất nhiên, định nghĩa giao diện bao gồm tên hoạt động loại tham số, bạn làm cho số đánh giá phù hợp từ Tuy nhiên, bạn phụ thuộc vào tài liệu thành phần để định liệu giao diện ngữ nghĩa có tương thích hay không Kết luận Công nghệ phần mềm hướng thành phần phương pháp dựa việc tái sử dụng để xác định, thực thi, tạo thành phần độc lập vào hệ thống Công nghệ phần mềm hướng thành phần 21/21 Một thành phần đơn vị phần mềm có chức phụ thuộc xác định hoàn toàn tập giao diện công cộng Các thành phần phối hợp với thành phần khác mà không cần biết thực thi chúng triển khai đơn vị thực thi Các thành phần thực thi đơn vị chương trình mà bao gồm hệ thống dịch vụ mở rộng tham khảo bên hệ thống Một mô hình thành phần xác định tập chuẩn thành phần, bao gồm chuẩn giao diện, chuẩn sử dụng chuẩn triển khai Việc thực thi mô hình thành phần cung cấp tập dịch vụ chung mà sử dụng tất thành phần Trong suốt quy trình công nghệ phần mềm hướng thành phần, bạn phải xen kẽ quy trình yêu cầu công nghệ thiết kế hệ thống bạn phải đánh đổi yêu cầu mong đợi với dịch vụ mà có sẵn từ thành phần tái sử dụng tồn Sản phẩm thành phần quy trình việc “lắp ráp” thành phần để tạo hệ thống Tài liệu tham khảo [1] Ian Sommerville - Software Engineering 9th editor (Pearson 2011) [...]... thành phần để quyết định liệu các giao diện ngữ nghĩa có tương thích hay không 5 Kết luận Công nghệ phần mềm hướng thành phần là một phương pháp dựa trên việc tái sử dụng để xác định, thực thi, và tạo các thành phần độc lập vào trong hệ thống Công nghệ phần mềm hướng thành phần 21/21 Một thành phần là một đơn vị phần mềm có chức năng và phụ thuộc được xác định hoàn toàn bởi một tập các giao diện công. .. kết các thành phần đó lại với nhau Ví dụ, ta có các thành phần liên tục thì đầu ra của thành phần A thường trở thành đầu vào của thành phần B Bạn cần phải có các câu lệnh trung gian gọi thành phần A, thu thập kết quả từ A, kết quả này sẽ là một tham số truyền vào khi gọi thành phần B Khi một thành phần này gọi một thành phần khác thì phải có một thành phần trung gian để đảm bảo giao diện thành phần cung... cung cấp bởi thành phần B Các thành phần không gọi nhau trong thành phần phức hợp liên tiếp Một số mã glue yêu cầu gọi gọi các thành phần dịch vụ theo đúng thứ tự và để đảm bảo rằng các kết quả cung Công nghệ phần mềm hướng thành phần 18/21 cấp bởi thành phần phức hợp A là tương thích với đầu vào dự kiến của thành phần B Giao diện ‘provides’ phụ thuộc vào các chức năng kết hợp của thành phần phức hợp... thành phần cung cấp một tập các dịch vụ chung mà có thể được sử dụng bởi tất cả các thành phần Trong suốt quy trình công nghệ phần mềm hướng thành phần, bạn phải xen kẽ các quy trình của các yêu cầu công nghệ và thiết kế hệ thống bạn phải đánh đổi các yêu cầu mong đợi với các dịch vụ mà có sẵn từ các thành phần tái sử dụng đang tồn tại Sản phẩm thành phần là quy trình của việc “lắp ráp” các thành phần. .. việc xác nhận thành phần Bạn cần chắc chắn rằng các thành phần được xác định thực sự phù hợp với ứng dụng của bạn Nếu không, bạn phải lặp lại quy trình tìm kiếm và lựa chọn Công nghệ phần mềm hướng thành phần 16/21 Hình 7 Quá trình xác định thành phần Bước đầu trong việc xác định các thành phần là tìm các thành phần có sẵn cục bộ hoặc từ nhà cung cấp đáng tin cậy Như tôi đã nói trong phần trước, có... thảo luận dưới đây đưa ra cách soạn hai thành phần( A và B) để tạo ra một thành phần mới: 1 .Thành phần tuần tự (a) trong hình 9 Bạn tạo ra một thành phần mới từ hai thành phần hiện có bằng cách gọi các thành phần hiện có trong chuỗi Bạn có thể coi thành phần tích hợp như là một thành phần tích hợp của ‘provides interfaces’ Đó là, các dịch vụ được cung cấp bởi thành phần A được gọi và kết quả trả về bởi... và cung cấp giao diện Để tạo ra khả năng tái sử dụng thành phần này, bạn phải tạo ra một gói định nghĩa các giao diện thành Công nghệ phần mềm hướng thành phần 14/21 phần Các gói ẩn đi độ phức tạp của mã cơ bản và cung cấp một giao diện cho các thành phần bên trong truy cập vào phần mềm được cung cấp Mặc dù gói này là một phần khá phức tạp của phần mềm, chi phí phát triển gói thường ít hơn chi phí tái... cho rằng nó sẽ mở rộng đáng kể trong vài năm tới đây Công nghệ phần mềm hướng thành phần 12/21 Do đó, CBSE cho tái sử dụng rất có thể sẽ diễn ra bên trong một tổ chức nơi đã tạo một cam kết với công nghệ phần mềm hướng tái sử dụng Họ muốn khai thác tài sản phần mềm đã được phát triển trong các bộ phận khác nhau của công ty Tuy nhiên, các thành phần phát triển nội bộ thường không có khả năng tái sử... phần phức hợp Thành phần phức hợp là quá trình tích hợp các thành phần lại với nhau, và đặc biệt với cách viết “glue code” tạo ra một hệ thống hoặc các thành phần khác, có nhiều cách khác nhau để soạn một thành phần, như trong hình 17.10 Hình 9: Các loại thành phần phức hợp Từ trái qua phải là sơ đồ minh họa cho thành phần liên tục, thành phần thứ bậc và thành phần phức hợp Trong thảo luận dưới đây... nhưng sẽ không bình thường là thành phần phức hợp của chúng ‘provides interfaces’ Đây là loại thành phần phức hợp có thể sử dụng với thành phần là những yếu tố chương trình hoặc các thành phần đó là dịch vụ 2 .Thành phần thứ bậc (b) trong hình 9 Đây là loại thành phần phức hợp xảy ra khi một phần cuộc gọi trực tiếp vào các dịch vụ được cung cấp bởi các thành phần khác Các thành phần được gọi là cung cấp ... dụng 14 Thành phần phức hợp .17 Kết luận 21 Tài liệu tham khảo 21 2/21 Công nghệ phần mềm hướng thành phần 3/21 Giới thiệu Công nghệ phần mềm dựa thành phần (CBSE)... (Component-based software engineering- công nghệ phần mềm hướng thành phần) Quy trình CBSE quy trình phần mềm có hỗ trợ công nghệ phần mềm hướng thành phần Các khả tái sử dụng phạm vi hoạt động... vào hệ thống Công nghệ phần mềm hướng thành phần 21/21 Một thành phần đơn vị phần mềm có chức phụ thuộc xác định hoàn toàn tập giao diện công cộng Các thành phần phối hợp với thành phần khác mà

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