KIẾN TRÚC HỆ THỐNG VÀ PHÁT SINH MÃ TRèNH
7.2 Biểu đồ thành phần
Biểu đồ thành phần (Component Diagram) là biểu đồ mụ tả cỏc thành phần và sự
phụ thuộc của chỳng trong hệ thống. Cỏc thành phần của hệ thống cú thể là:
Thành phần mó nguồn, cú ý nghĩa vào thời điểm dịch chương trỡnh. Thụng
thường nú là tập cỏc chương trỡnh cài đặt cỏc lớp. Vớ dụ, trong C++, mỗi tệp
hiện ỏnh xạ từng tệp vào thành phần tương ứng, thụng thường mỗi lớp được ỏnh xạ vào hai tệp (.cpp, và .h).
Thành phần mó nhị phõn là mó trỡnh nhị phõn được dịch từ mó chương trỡnh
nguồn. Nú cú thể là tệp mó đớch (.obj), tệp thư viện tĩnh (.lib) hay tệp thư viện động (.dll). Thành phần nhị phõn được sử dụng để liờn kết, hoặc để thực thi chương trỡnh (đối với thư viện động).
Thành phần thực thi là tệp chương trỡnh cú thể thực thi được (cỏc tệp .exe).
Nú là kết quả của chương trỡnh liờn kết cỏc thành phần nhị phõn.
Với biểu đồ thành phần, người phỏt triển hệ thống thực hiện dịch, triển khai hệ thống sẽ biết thư viện mó trỡnh nào tồn tại và những tệp cú thể thực thi (.exe) khi dịch và liờn kết thành cụng.
Giữa cỏc thành phần chỉ cú một loại quan hệ phụ thuộc được biểu diễn bằng đường mũi tờn đứt nột. Kết nối phụ thuộc cho biết thành phần phụ thuộc phải dịch sau thành phần kia. Lưu ý, nờn trỏnh phụ thuộc vũng trong biểu đồ thành phần.
Vớ dụ: biểu đồ thành phần mụ tả sự phụ thuộc giữa cỏc thành phần của hệ thống.
Hỡnh 7-2 Sự phụ thuộc của cỏc thành phần trong biểu đồ thành phần Trong UML (và Rose) cú một số biểu tượng biểu diễn cho cỏc thành phần, đú là:
Thành phần: biểu tượng thành phần (hỡnh 7-3a) được sử dụng để biểu diễn module chương trỡnh cú cỏc giao diện. Trong đặc tả cú xỏc định kiểu
Stereotype (AciveX, Applet, DLL, exe, v.v.).
Window Handler (whd.cpp) Comm Handler (chd.cpp) Window Handler (whd.obj) Comm Handler (chd.obj) Graphics Lib (graphics.dll) MainClass
(main.cpp) Main Class
(main.obj)
MyProgram (System.exe)
Đặc tả và thõn chương trỡnh con: biểu tượng thành phần cho đặc tả chương
trỡnh con hỡnh 7-3b, và cài đặt của chương trỡnh con hỡnh 7-3c. Chương trỡnh con khụng chứa cỏc định nghĩa lớp.
Chương trỡnh chớnh: biểu tượng thành phần (tệp) chứa điểm vào của chương
trỡnh chớnh hỡnh 7-3d, vớ dụ trong C/C++ đú là tệp chứa hàm main().
Đặc tả và thõn của gúi: đặc tả gúi hỡnh 7-3e là tệp header chứa thụng tin về
cỏc hàm thành phần của lớp, vớ dụ đặc gúi trong C/C++ là tệp .h định nghĩa cỏc hàm prototype. Biểu tượng cho thõn gúi hỡnh 7-3f gồm mó cỏc lệnh của
cỏc hàm thành phần của lớp chứa trong gúi. Trong C/C++, thành phần này là tệp .cpp.
Đặc tả và nội dung nhiệm vụ: cỏc biểu tượng này (hỡnh 7-3g, 7-3h) biểu diễn
cho phần đặc tả và nội dung của những nhiệm vụ độc lập.
Hỡnh 7-3 Cỏc thành phần của hệ thống
Tương tự như cỏc phần tử khỏc trong UML, cỏc thành phần cú thể bổ sung một số đặc tả chi tiết:
+ Stereotype: điều khiển biểu tượng nào sẽ được sử dụng để biểu diễn thành phần. Nú cú thể là một trong cỏc lựa chọn: <none>, đặc tả chương trỡnh con, chương trỡnh chớnh, đặc tả gúi, nội dung của gúi, đặc tả nhiệm vụ, nội dung cụng việc, ActiveX, Applet, ứng dụng, v.v.
+ Ngụn ngữ: Rose cho phộp lựa chọn ngụn ngữ lập trỡnh cho từng thành phần, như C++, Java, Visual Basic, Oracle 8, v.v.
+ Khai bỏo: phụ thuộc được gộp vào mó chương trỡnh cho mỗi thành phần. Lệnh
#include của C++ được xem như là lệnh khai bỏo.
+ Lớp: trước khi phỏt sinh mó chương trỡnh thỡ lớp phải được ỏnh xạ vào thành phần. Điều này bỏo cho Rose biết mó chương trỡnh của lớp sẽ được ghi vào tệp nào. Cú thể ỏnh xạ một hay nhiều lớp vào một thành phần.
MainSubprog SubprogSpec SubprogBody Component PackageSpec PackageBody TaskSpec TaskBody (c) (b) (a) (d) (a) ) (e) (a) ) (f) (a) ) (g) (a) ) (h) (a) )
Biểu đồ thành phần được xem như là tập cỏc biểu tượng thành phần biểu diễn cho cỏc thành phần vật lý trong một hệ thống. í tưởng cơ bản của biểu đồ thành phần là tạo ra cho những người thiết kế và phỏt triển hệ thống một bức tranh chung về cỏc thành phần của hệ thống.