- 17
7.2 Biểu đồ thành phần
Biểu đồ thành phần (Component Diagram)làbiểuđồmô tảcácthànhphầnvàsự
phụthuộccủachúngtronghệthống.Cácthànhphầncủahệthốngcóthểlà:
Thành phần mã nguồn (Source Code), có ýnghĩa vàothờiđiểmdị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 .cpp và .h là một thành phần. Trước khi phát sinh mã chương trình,phảithựchiệnánhxạtừngtệpvàothànhphầntươngứng, thôngthường mỗilớpđượcánhxạvàohaitệp(.cpp,và .h).
Thành phần mã nhị phân làmã trìnhnhị phânđượcdịch từmã chươngtrình
-139-
việnđộng(.dll). Thànhphần nhịphânđược sửdụng đểliênkết, hoặcđểthực thichươngtrình(đốivớithưviệnđộng).
Thành phần thực thi là tệp chương trình có thể thựcthi được (các tệp .exe).
Nólàkếtquảcủachươngtrìnhliênkếtcácthànhphầnnhịphân.
Với biểu đồ thành phần, ngườiphát triển thực hiện dịch, triển khai hệ thống sẽ biết thư việnmã trình nào tồn tạivà nhữngtệp có thể thựcthi (.exe) khi dịch vàliên kếtthà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 đườngmũitênđứtnét. Lưu ý,nêntránhphụthuộcvòngtrongbiểuđồthànhphần.
Vídụ:biểuđồthànhphầnmôtảsựphụthuộcgiữacácthànhphầncủahệthống. Window Handler (whd.cpp) Comm Handler (chd.cpp) Window Handler (whd.obj) Comm Handler (chd.obj) Graphics Lib (graphics.dll) MyProgram MainClass
(main.cpp) Main Class (System.exe) (main.obj)
Hình7-2 Sựphụthuộccủacácthànhphần trongbiểuđồthànhphần
Lưu ý:Trong Rose và một số ngôn ngữ khác, ngoàibiểu tượngtrên, thành phần cònđượckýhiệulà:
Trong C++, haysử dụng các biểu tượng đặc tả gói (Package Specification) cho tệp .h,biểutượngnộidunggói(Package Body)chotệp .cpp.
TươngtựnhưcácphầntửkháctrongUML,cácthànhphầncóthểbổsungmộtsố đặctảchitiết:
- 140 -
+ 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 trongcá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,VisualBasic,v.v.
+ Khai báo: phụthuộcđượcgộpvàomã chương trìnhchomỗithànhphần.Lệnh
#includecủaC++đượcxemnhưlàlệnhkhaibáo.
+ Lớp: trước khiphát sinh mã chương trình thì lớp phải được ánh xạ vào thành phần.Điềunàybáo cho Rosebiếtmã chươngtrình củalớp sẽđược ghivàotệp nào.Cóthểánhxạmộthaynhiều lớpvàomộtthànhphần.
Biểuđồthànhphầnđượcxemnhưlàtậpcácbiểutượngthànhphần biểudiễn cho các thànhphần vật lý trong mộthệ 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ànhphầncủahệthống.