CHƯƠNG 11: Component view... 10Source code libraries... Tools\ Check model.
Trang 1CHƯƠNG 11: Component view
Trang 2 Component là gì?
Anh x cac l p thi t k thành component a ơ ê ê
L ươ c đ component ô
◦ Phat mã (generating the code)
◦ D ch ngi ươ ưc t mã (reserve engineering)
Trang 3Review
Lược đ interaction và lồ ược đ design class -> ồ
đã đ chi ti t đ cho qua trình phat mã ủ ế ể
( generate code)
K t qu t thi t k ban đ u thế ả ừ ế ế ầ ường không
đ y đ , trong luc l p trình và th nghi m, s ầ ủ ậ ử ệ ẽ
có nhi u thay đ i , có th nhi u v n đ đề ổ ể ề ấ ề ược phat hi n và gi i quy t sau đó.ệ ả ế
Khi l p trình s có thay đ i và sai l ch so ậ ẽ ổ ệ
v i thi t k ớ ế ế
Trang 4Ki n truc h th ng ê ê ô
Ki n truc h th ng ê ê ô
Được phân thành hai lo i : logic và v t lýạ ậ
Ki n truc Logicế : được bi u di n thông qua cac ể ễ
lược đ use case, class, interaction, activityồ
Ki n truc physical: ế liên quan đ n cài đ t, đế ặ ược
mô hình hoa trong cac lược đ cài đ t g m ồ ặ ồ
lược đ component + lồ ược đ deploymentồ
Trang 5Component View
T p trung vào t ch c v t lý (physical ậ ổ ư ậ
organization) c a h th ng ủ ệ ô
Trang 6Component là gì?
Là 1 module v t lý c a code, bao g m:ậ ủ ồ
◦ Cac th vi n mã ngu n (source code ư ê ô
libraries)
◦ Cac file kh thi (runtime files) ả
Ví d : n u dùng C++, cac file cpp, h, exe đ u là ụ ế ề
component
Trang 7Component là gì?
Tr c khi phat mã, c n anh x m i file thành 1 ướ ầ ạ ỗ
Trang 8Component là gì?
Ngay khi component đượ ạc t o, chung s đẽ ược thêm vào lược đ Component cùng v i m i quan ồ ớ ô
h gi a chung ệ ữ
Ký hi u thông thệ ường c a componentủ
Component
Trang 1010Source code libraries
Trang 11Runtime Components
Trang 13Component view
Bi u di n cac module ph n m m (software ể ễ ầ ề
modules) được dùng đ th c thi h th ng ể ự ệ ô
Dùng component đ anh x m i class v i 1 ngôn ể ạ ỗ ớ
ng th c thi thích h p.ữ ự ợ
Ví d : đ phat mã cho 1 class trong logical view, ụ ể
class c n đầ ược gan vào 1 hay nhi u component ề
Ngươ ạ ểc l i, đ suy ngượ ạc l i mô hình t mã ừ
ngu n (source code), 1 component tồ ương ng ư
v i mã ngu n đó ph i t n t i trong mô hình.ớ ồ ả ồ ạ
M t mô hình có th ch a nhi u component c a ộ ể ư ề ủ
nhi u ngôn ng khac nhau nh ng 1 class ch có ề ữ ư ỉ
th để ược gan thành cac component c a cùng 1 ủ
Trang 15Quan h ph thu c gi a cac thành ph n ê u ô ư â
Quan h ph thu c gi a cac thành ph n ê u ô ư â
Ch có 1 lo i quan h duy nh t gi a cac ỉ ạ ệ ấ ữ
component – đó là quan h ph thu c ệ ụ ộ
(dependency relationship)
Ph thu c dùng đ ch ra m t component này ụ ộ ể ỉ ộ
ph thu c vào 1 component khac.ụ ộ
A ph thu c vào Bụ ộ
Component A Component B
Trang 16◦ Th t biên d ch (Compilation): ư ư i n u A ph thu c B thì ê u ô
B ph i đ ả ươ c biên d ch tr i ươ c A không th biên d ch ể i
đ ươ c n u B ch a biên d ch xong ê ư i
Tranh ph thu c xoay vòng (circular dependency) gi a u ô ư cac component T t c ph thu c xoay vòng ph i â ả u ô ả
đ ươ c xóa tr ươ c khi phat mã.
◦ Kh năng b o trì (maintenance): ả ả n u A ph thu c B, thì ê u ô
b t k thay đ i nào c a B c ng s nh h â ỳ ổ ủ u e ả ưở ng đ n A ê
◦ Kh năng s d ng l i (Reusage ): ả ử u a n u A ph thu c B, ê u ô thì n u mu n dùng l i A thì ph i dùng luôn c B ê ô a ả ả
Trang 17Anh x l p a ơ
Anh x l p a ơ
Cac class trong lược đ l p thi t k c n đồ ớ ế ế ầ ược anh x vào 1 thành ph n tạ ầ ương ng trong ư
component view Nh đó, Rose bi t đờ ế ược file v t ậ
lý nào s ch a mã cho class đó ẽ ư
Có th anh x nhi u class vào cùng 1 ể ạ ề
component
Sau khi 1 l p đã đớ ược anh x vào component, tên ạ
component s xu t hi n trong () sau tên l p ẽ ấ ệ ớ
trong lược đ l p ồ ớ
Trang 18Ki n truc 3 t ng ê â
Ki n truc 3 t ng ê â
Dùng đ h tr cac ng d ng client/server l n ể ỗ ợ ư ụ ớ
và ph c t p Nó tach giao di n ngư ạ ệ ười dùng
(user interface) và database kh i cac v n đ ỏ ấ ề
liên quan đ n nghi p v ế ệ ụ
Mô hình 3 l p giup t o đớ ạ ược cac ng d ng d a ư ụ ự
vào 1 t p h p cac thành ph n thông d ng có ậ ợ ầ ụ
th d dàng phân tan, m r ng và b o tri để ễ ở ộ ả ược
Mô hình 3 l p h tr cho vi c OOAD theo ớ ỗ ợ ệ
ti n trình RUPế
Trang 19Ki n truc 3 t ng ê â
Ki n truc 3 t ng ê â
Trang 20◦ Không quan tâm đ n cach th c hi n th cac ê ư ể i
đ i tô ương mà ch t p trung vào x lý nghi p i â ử ê
Trang 21 Ki n truc c a Design Model thế ủ ường đượ ổc t
ch c thành cac layer.ư
M t trong cac layer này là domain layer: nó s ộ ẽ
ch a cac l p ph n m m ( software classes) mà ư ớ ầ ề
tên và c u truc c a nó xu t phat t khai ni m ấ ủ ấ ừ ệ
và cac t v ng nghi p v (nh ừ ự ệ ụ ư Sale,
TaxLineltem, …)
Trang 22Phat mã (Code generation)
Sau bướ ơ ảc c b n đ phat mã:ể
◦ Ki m tra mô hìnhể
◦ T o cac componenta
◦ Anh x cac l p vào componentsa ơ
◦ Xac l p cac thu c tính phat mãâ ô
◦ Ch n l p, component hay packageo ơ
◦ Phat mã
PTTKHT bang UML - BM HTTT 22
Trang 23B ươ c 1: Ki m tra mô hình ể
B ươ c 1: Ki m tra mô hình ể
Rose có ch a ch c năng ki m tra mô hình đ c ư ư ể ộ
l p ngôn ng nh m b o mô hình thông nh t ậ ữ ă ả ấ
trước khi phat mã
Tools\ Check model
Trang 24B ươ c 1: Ki m tra mô hình ể
B ươ c 1: Ki m tra mô hình ể
Cac l i chung thỗ ường g p:ặ
◦ Cac thông bao trong lươc đ tô ương tac
không đươc anh x đ n m t operation c a 1 a ê ô ủ
l p thi t k nào đó ơ ê ê
◦ Cac đ i tô ương trong lươc đ tô ương tac
không đươc anh x đ n 1 l p thi t k a ê ơ ê ê
PTTKHT bang UML - BM HTTT 24
Trang 25B ươ c 2: T o cac component a
B ươ c 2: T o cac component a
M c đích c a vi c t o component: là đ ch a ụ ủ ệ ạ ể ư
cac class c n phat mã ầ
Có nhi u lo i thành ph n: source code files, ề ạ ầ
executable files, runtime libraries, ActiveX
components, and applets,
Tr c khi phat mã, c n anh x m i class vào ướ ầ ạ ỗ
thành ph n mã ngu n ( source code ầ ồ
component) thích h p.ợ
Trang 26B ươ c 2: T o cac component a
B ươ c 2: T o cac component a
Ngay khi t o xong cac component, c n xac đ nh ạ ầ ị
quan h ph thu c gi a chung trong lệ ụ ộ ữ ược đ ồ
component
Chính cac ph thu c này s quy đ nh th t biên u ô e i ư ư
d ch cac component và class trong h th ng i ê ô
N u dùng ngôn ng VB hay Java thì có th b ê ư ể ỏqua bươc này Rose s t đ ng t o component e ư ô athích h p cho m i class c a ngơ ỗ ủ ười dùng
Trang 27B ươ c 3: anh x class vào component a
B ươ c 3: anh x class vào component a
Đây là bước tu ch n n u dùng C++, Java, hay ỳ ọ ế
Visual Basic N u là Java hay VB, Rose s phat ế ẽ
cac component thích h p và anh x cac class ợ ạ
cho người dùng
T t h n là nên hoàn thành bô ơ ước này dù cho dùng b t k ngôn ng nào.ấ ỳ ữ
Trang 28Gan cac class vào component
Tr c hêt ph i t o s n cac component trong ướ ả ạ ẵ
component view, r i gan class theo 1 trong 2 ồ
Trang 29Gan cac class vào component
Sau khi anh x m t l p vào component thì tên ạ ộ ớ
component trong ngo c đ n s xu t hi n ngay ặ ơ ẽ ấ ệ
sau tên l p trong Logical viewớ
Trang 3030
Trang 31B ươ c 4: xac l p cac thu c tính phat mã â ô
B ươ c 4: xac l p cac thu c tính phat mã â ô
Có nhi u tu ch n phat mã có th cài đ t cho ề ỳ ọ ể ặ
class, attribute, components, và cac ph n t mô ầ ử
hình khac Cac thu c tính nộ ày sẽ đi u khi n ề ể
vi c phat mã ệ
Ví d : ụ
◦ M t trong nh ng thu c tính cho Java là ô ư ô
GenerateDefaultConstructor dùng đ ki m ể ểsoat vi c t o constructor t đ ng hay không.ê a ư ô
Trang 32Bươc 5: Ch n class, component hay packageo
Vi c phat mã cho class, component ho c ệ ặ
package không th c hi n cùng luc, m i l n ự ệ ỗ ầ
ch cho 1 lo i.ỉ ạ
N u phat mã cho 1 package, có th ch n nó ế ể ọ
ho c t lặ ừ ược đ class c a Logical View ho c ồ ủ ặ
t lừ ược đ component c a Component View ồ ủ
N u ch n t logical view, t t c class trong ế ọ ừ ấ ả
pakage đó đ u đề ược phat, n u ch n t ế ọ ừ
Component View t t c cac component ấ ả
trong package đo đ u đề ược phat
Trang 33B ươ c 6: Phat mã
B ươ c 6: Phat mã
Khi ch n l nh phat mã thì Rose s d a vào ọ ệ ẽ ự
thông tin t hai view: Logical view và ừ
Component view
Th c t không có 1 công c mô hình hóa nào ự ế ụ
có th t o ra 1 ng d ng đ y đ , nh ng Rose ể ạ ư ụ ầ ủ ư
có th phat ra 1 khung mã bao quat h t cac ể ế
l p, thu c tính, thao tac, m i quan h gi a cac ớ ộ ô ệ ữ
l p và c tài li u (documentation) n a ớ ả ệ ữ
Trang 34B ươ c 6: Phat mã
B ươ c 6: Phat mã
Khi phat mã, Rose s s d ng c u truc package ẽ ử ụ ấ
đã đượ ạc t o trong Component view đ t o ra ể ạ
cac th m c thích h p ư ụ ợ
M c đ nh th m c g c ch a mã c ng chính là ặ ị ư ụ ô ư u
th m c ch a file Rose (.mdl) c a h th ng ư ụ ư ủ ệ ô
đang phat tri n ể
N u không xây d ng cac component thì Rose ế ự
s dùng c u truc package trong logical view đ ẽ ấ ể
t o c u truc t m c ch a mã ạ ấ ư ụ ư
PTTKHT bang UML - BM HTTT 34
Trang 35Sau khi phat mã
Ngay khi cac file đã đượ ạc t o, v n còn 2 bâ ước mà cac nhà phat tri n c n th c hi n:ể ầ ự ệ
◦ M cac file ra và b sung thêm mã vào m i ở ổ ỗ
operation c a l p ủ ơ
◦ Thi t k giao di n ngê ê ê ười dùng (GUI) vì Rose không ph i là công c thi t k GUI ả u ê ê