Kiến trúc dựa trên Component

Component-based software engineering (CBSE) - Kiến trúc dựa trên Component tập trung vào việc phân chia thiết kế thành các thành phần chức năng hoặc các logic độc lập đại diện cho giao diện truyền thông có chứa các method, event và thuộc tính. Nó cũng cung cấp một mức độ trừu tượng cao hơn và chia các vấn đề thành các vần đề nhỏ hơn kết hợp với các phân vùng thành phần.

Mục tiêu chính của CBSE là đảm bảo sự tái sử dụng của các thành phần. Mỗi thành phần đóng gọi một chức năng và hành vi của 1 yếu tố phần mềm thành một đơn vị nhị phân giúp sử dụng lại và tự triển khai. Có rất nhiều standard component framework như COM/DCOM, JavaBean, EJB, CORBA, .NET, web services và grid services.

CBSE có nhiều ưu điểm so với các phương pháp tiếp cận đối tượng kiểu truyền thống như:

  • Giảm thời gian phát triển do sử dụng lại được các thành phần có sẵn.
  • Tăng độ tin cậy với việc sử dụng lại các thành phần đã có.

Component là gì?

Một component là một tập hợp module di động, có thể thay thế, có thể tái sử dụng các chức năng được đóng gói và có thể export thành các interface ở mức độ cao hơn.

Một component là một đối tượng phần mềm dùng để tương tác với các thành phần khác, được đóng gói thành các chức năng hoặc tập hợp chức năng nhất định. Nó có giao diện nhất định và hành vi phù hợp với hầu hết các component trong một kiến trúc.

Một software component có thể được định nghĩa là một đơn vị bố cục với giao diện được quy định rõ ràng và chỉ phụ thuộc vào bối cảnh. Nó là một phần mềm có thể triển khai độc lập hoặc cũng có thể phụ thuộc vào bên thứ ba.

Một component có 3 cách nhìn khác nhau là: xem hướng đối tượng, xem thông thường và xem quá trình liên quan

  • Xem hướng đối tượng

    Một thành phần được xem như là một tập hợp của một hoặc nhiều lớp hợp tác. Mỗi lớp miền vấn đề (phân tích) và lớp cơ sở hạ tầng (thiết kế) được giải thích để xác định tất cả các thuộc tính và hoạt động áp dụng cho việc thực hiện. Nó cũng bao gồm việc xác định các giao diện cho phép các lớp học để giao tiếp và hợp tác.

  • Xem thông thường

    Nó được xem như là một yếu tố chức năng hoặc một module của một chương trình tích hợp các xử lý logic, các cấu trúc dữ liệu nội bộ được yêu cầu để thực hiện các xử lý logic và một giao diện cho phép các thành phần được gọi và dữ liệu được truyền cho nó.

  • Xem quá trình liên quan

    Theo quan điểm này, thay vì tạo ra mỗi thành phần từ đầu, hệ thống này được xây dựng từ các thành phần hiện tại được duy trì trong một thư viện. Như các kiến trúc phần mềm được xây dựng, các thành phần được lựa chọn từ thư viện và sử dụng để cư trú trong kiến trúc.

    Một thành phần giao diện người dùng (UI) bao gồm các lưới, các nút gọi là kiểm soát, và các thành phần tiện ích phơi bày một tập hợp cụ thể của các chức năng được sử dụng trong các thành phần khác.

    loại phổ biến khác của các thành phần là những người là nguồn lực chuyên sâu, không thường xuyên truy cập, và phải được kích hoạt bằng cách sử dụng phương pháp just-in-time (JIT).

    Nhiều thành phần là vô hình mà được phân bố trong các ứng dụng doanh nghiệp và các ứng dụng web internet như Enterprise JavaBean (EJB), .NET, và các thành phần CORBA.

Đặc điểm của Component

  • Tính tái sử dụng: Các thành phần thường được thiết kế để được tái sử dụng trong các tình huống khác nhau trong các ứng dụng khác nhau. Tuy nhiên, một số thành phần có thể được thiết kế cho một công việc cụ thể.

  • Thay thế: Các thành phần có thể được tự do thay thế bằng các thành phần tương tự khác.

  • Không có bối cảnh cụ thể: Các thành phần được thiết kế để hoạt động trong môi trường và bối cảnh khác nhau.

  • Khả năng mở rộng: Một thành phần có thể được mở rộng từ các thành phần hiện có để cung cấp cho hành vi mới.

  • Tính đóng gói: Một thành phần A mô tả các giao diện, cho phép người gọi để sử dụng chức năng của nó, và không để lộ các chi tiết của các quy trình nội bộ hoặc bất kỳ biến nội bộ.

  • Các thành phần được thiết kế để có phụ thuộc tối thiểu vào các thành phần khác.

Nguyên tắc thiết kế của CBSE

Một thiết kế thành phần cấp có thể được biểu diễn bằng cách sử dụng một số đại diện trung gian (ví dụ đồ họa, bảng biểu, hoặc dựa trên văn bản) có thể được dịch thành mã nguồn. Việc thiết kế các cấu trúc dữ liệu, giao diện và thuật toán nên tuân theo nguyên tắc sau giúp phần mềm tránh xuất hiện của các lỗi.

  • Hệ thống phần mềm được phân rã thành các đơn vị thành phần tái sử dụng, gắn kết, và đóng gói.
  • Mỗi thành phần có giao diện riêng của nó mà xác định yêu cầu các cổng và cung cấp cổng; mỗi thành phần giấu thực hiện chi tiết của nó
  • Một thành phần cần được mở rộng mà không cần phải làm cho mã hoặc thiết kế sửa đổi nội bộ để các bộ phận hiện tại của các thành phần.
  • Phụ thuộc vào thành phần trừu tượng không phụ thuộc vào các thành phần cụ thể khác, làm tăng khó khăn trong việc mở rộng.
  • Kết nối các thành phần, chỉ định và quản lý tương tác giữa các thành phần. Các loại tương tác được quy định bởi các giao diện của các thành phần.
  • Các thành phần tương tác có thể mang hình thức của lời gọi phương thức, các viện dẫn không đồng bộ, phát thanh truyền hình, điều khiển tương tác tin nhắn, thông tin liên lạc dòng dữ liệu, và các tương tác cụ thể giao thức khác.
  • Đối với một lớp máy chủ, giao diện chuyên ngành phải được tạo ra để phục vụ mục chính của khách hàng. Chỉ có những hoạt động có liên quan đến một loại đặc biệt của khách hàng phải được quy định trong giao diện.
  • Một thành phần có thể mở rộng đến các thành phần khác và vẫn cung cấp các điểm mở rộng của riêng mình. Đó là khái niệm dựa trên kiến trúc plug-in. Điều này cho phép một plugin để cung cấp một API plugin.

Tài liệu tham khảo