Tu theo quan đi m mà có th phân lo i các h th ng thông tin theo các tiêu chí khác nhau... James Rumbaugh, Grady Booch và Ivar Jacobson đã cùng c g ng xây d ng... Modeling Language Hình 2
Trang 1PHÂN TÍCH THI T K
(Dùng cho sinh viên h đào t o đ i h c t xa)
L u hành n i b
Trang 2PHÂN TÍCH & THI T K
H TH NG THÔNG TIN
Tr n ình Qu Nguy n M nh S n
Trang 3M C L C
M C L C ii
L I NÓI U 1
CH NG 1 M U 3
1.2 KHÁI QUÁT VÒNG I PHÁT TRI N H TH NG THÔNG TIN 4
1.3 CÁC CÁCH TI P C N PHÂN TÍCH THI T K H TH NG 7
1.3.1 Ph ng pháp h ng c u trúc 8
1.3.2 Ph ng pháp h ng đ i t ng 9
1.5 CÁC KHÁI NI M C B N C A H NG ÓI T NG 10
1.6 CÁC B C PHÂN TÍCH THI T K H NG I T NG 11
T NG K T CH NG 1 13
CÂU H I VÀ BÀI T P 13
CH NG 2 : UML VÀ CÔNG C PHÁT TRI N H TH NG 15
2.1 GI I THI U V UML 15
2.1.1 L ch s ra đ i c a UML 15
2.1.2 UML – Ngôn ng mô hình hoá h ng đ i t ng 16
2.1.3 Các khái ni m c b n trong UML 17
2.2 CÁC BI U UML 20
2.2.1 Bi u đ use case 22
2.2.2 Bi u đ l p 24
2.2.3 Bi u đ tr ng thái 30
2.2.4 Bi u đ t ng tác d ng tu n t 33
2.2.5 Bi u đ t ng tác d ng c ng tác 35
2.2.6 Bi u đ ho t đ ng 36
2.2.7 Bi u đ thành ph n 39
2.2.8 Bi u đ tri n khai h th ng 40
2.3 GI I THI U CÔNG C RATIONAL ROSE 41
T NG K T CH NG 2 44
CÂU H I – BÀI T P 45
CH NG 3: PHÂN TÍCH H NG I T NG 46
3.1 T NG QUAN V PHÂN TÍCH H NG I T NG 46
3.1.1 Vai trò c a pha phân tích 46
3.1.2 Các b c phân tích h ng đ i t ng 47
3.1.3 Ví d 47
3.2 MÔ HÌNH USE CASE VÀ K CH B N 48
3.2.1 Vai trò c a mô hình use case 48
3.2.2 Xây d ng bi u đ use case 50
3.2.3 Xây d ng bi u đ use case trong Rational Rose 57
3.3 MÔ HÌNH L P 63
3.3.1 V n đ xác đ nh l p 63
3.3.2Xây d ng bi u đ l p trong pha phân tích 65
3.3.3Bi u di n bi u đ l p trong Rational Rose 67
3.4 MÔ HÌNH NG D A TRÊN BI U TR NG THÁI 71
Trang 43.4.3 Xây d ng bi u đ tr ng thái 74
3.4.3 Bi u di n bi u đ tr ng thái trong Rational Rose 75
T NG K T CH NG 3 78
CÂU H I – BÀI T P 79
CH NG 4: PHA THI T K H NG I T NG 83
4.1 T NG QUAN V THI T K H NG I T NG 83
4.1.1 Vai trò c a pha thi t k 83
4.1.2 Các b c thi t k h ng đ i t ng 84
3.2 CÁC BI U T NG TÁC 84
4.2.2 Xây d ng bi u đ tu n t 84
4.2.3 Xây d ng bi u đ c ng tác 88
4.2.4 Bi u di n các bi u đ t ng tác trong Rational Rose 89
4.3 BI U L P CHI TI T 91
4.3.1 Xác đ nh các ph ng th c cho m i l p 91
4.3.2 Xác đ nh m i quan h gi a các l p 92
4.3.4 Hoàn ch nh bi u đ l p chi ti t 93
4.3 THI T K CHI TI T 95
4.3.1 Xây d ng bi u đ ho t đ ng cho các ph ng th c 96
4.3.2 Xây d ng b ng thi t k chi ti t 98
4.4 BI U THÀNH PH N VÀ BI U TRI N KHAI 99
4.4.1 Xây d ng bi u đ thành ph n 99
4.4.2 Xây d ng bi u đ tri n khai 100
4.4.3 Bi u di n bi u đ thành ph n và tri n khai trong Rational Rose 102
T NG K T CH NG 4 104
CÂU H I – BÀI T P 104
PH L C PHÂN TÍCH THI T K H TH NG TH VI N I N T 108
1 GI I THI U H TH NG 108
1.1 Ho t đ ng nghi p v th vi n 108
1.2 Yêu c u h th ng 109
2 PHA PHÂN TÍCH 110
21 Xây d ng bi u đ use case 110
2.2 Xây d ng bi u đ l p phân tích 113
2.3 Bi u đ tr ng thái 113
3 PHA THI T K 114
3.1 Các bi u đ tu n t 115
3.2 Bi u đ l p chi ti t 121
3.3 Thi t k riêng t ng ch c n ng 122
3.4 Bi u đ ho t đ ng 126
3.5 Bi u đ tri n khai h th ng 127
G I Ý TR L I CÁC BÀI T P 129
TÀI LI U THAM KH O 133
Trang 5L I NÓI U
Ph ng pháp lu n phát tri n các h th ng thông tin luôn là m t trong nh ng ch
đ quan tr ng nh t c a công ngh thông tin Tr i qua m t giai đo n ti n hoá lâu dài, phát tri n theo cách ti p c n h ng đ i t ng đã d n d n chi m u th và ngày càng tr nên ph bi n và đã đ c chu n hoá trong công nghi p ph n m m Cùng v i s ra đ i c a ngôn ng mô hình hoá th ng nh t UML và nhi u công c h tr nh Rational Rose, AgroUML…ph ng pháp lu n phát tri n ph n
m m h ng đ i t ng đã đ c áp d ng r ng rãi trong công nghi p ph n m m trên
kh p th gi i Ngôn ng UML hi n th i v n đang đ c phát tri n đ đáp ng cho nhi u yêu c u và nhi u d ng h th ng khác nhau nh h phân tán, h nhúng… Tài li u này nh m gi i thi u cho sinh viên các khái ni m c b n c a h ng
đ i t ng và UML, sau đó trình bày các b c phân tích thi t k h th ng thông tin
d a trên UML và công c Rational Rose N i dung c a tài li u g m 4 ch ng và
ph n Ph l c:
b n c a cách ti p c n h ng đ i t ng; vòng đ i phát tri n h th ng
và so sánh các cách ti p c n phát tri n h th ng
b n c a UML, các bi u đ , các ký hi u UML và các b c phát tri n
h th ng s d ng các bi u đ đó Ch ng này c ng gi i thi u công c Rational Rose cho phân tích thi t k h th ng thông tin
th ng theo các bi u đ UML bao g m: xây d ng mô hình use case, xây d ng mô hình l p và bi u đ tr ng thái Tài li u c ng đ a ra
nh ng g i ý cho t ng b c và h ng d n s d ng công c Rational Rose cho các b c đó
bao g m: xây d ng các bi u đ t ng tác, bi u đ l p chi ti t, thi t k chi ti t và xây d ng bi u đ tri n khai h th ng Tài li u c ng có
nh ng g i ý cho t ng b c c a pha thi t k
Trang 6Ph n Ph l c Trình bày toàn b quá trình phân tích thi t k h th ng qu n lý th
vi n và phát sinh mã cho h th ng này
M i ch ng đ u có ph n câu h i, bài t p đ giúp sinh viên hi u rõ h n ki n th c
đ c h c và ki m tra kh n ng áp d ng ki n th c c a sinh viên vào các bài toán
th c t
Tài li u này đ c xây d ng nh m đáp ng nhu c u h c t p c a sinh viên t
xa c a H c vi n Công ngh B u chính Vi n thông Do th i gian có h n nên phiên
b n đ u tiên này ch c ch n còn nhi u h n ch và thi u sót Các tác gi r t mong
nh n đ c nh ng đóng góp ý ki n c a các đ ng nghi p và các b n sinh viên
Trang 7CH NG 1
Ch ng này t p trung trình bày các n i dung sau đây:
- Các h th ng thông tin và v n đ phát tri n h th ng thông tin
- Khái quát vòng đ i phát tri n h th ng thông tin
- Các cách ti p c n phân tích và thi t k h th ng
- Các khái ni m c b n c a h ng đ i t ng
1.1 CÁC H TH NG THÔNG TIN
Ngày nay, h th ng thông tin đã đ c ng d ng trong m i l nh v a khác nhau c a
đ i s ng xã h i Tu theo quan đi m mà có th phân lo i các h th ng thông tin theo các tiêu chí khác nhau Xét v m t ng d ng, h th ng thông tin có th đ c phân chia thành m t s d ng nh sau:
H th ng thông tin qu n lý: Bao g m các h th ng thông tin h tr các ho t đ ng nghi p v và qu n lý c a các doanh nghi p, các t ch c Ví d các h th ng qu n lý nhân s , h th ng k toán, h th ng tính c c và ch m sóc khách hàng, h th ng qu n
lý th vi n, h th ng đào t o tr c tuy n
Các h th ng Website: là các h th ng có nhi m v cung c p thông tin cho ng i dùng trên môi tr ng m ng Internet Các h th ng Website có đ c đi m là thông tin cung c p cho ng i dùng có tính đa d ng (có th là tin t c ho c các d ng file đa
ph ng ti n) và đ c c p nh t th ng xuyên
H th ng th ng m i đi n t : Là các h th ng website đ c bi t ph c v vi c trao đ i
mua bán hàng hoá, dich v trên môi tr ng Internet H th ng th ng m i đi n t bao
g m c các n n t ng h tr các giao th c mua bán, các hình th c thanh toán, chuy n giao hàng hoá
H th ng đi u khi n: là các h th ng ph n m m g n v i các thi t b ph n c ng ho c
các h th ng khác nh m m c đích đi u khi n và giám sát ho t đ ng c a thi t b hay
h th ng đó
M i lo i h th ng thông tin có nh ng đ c tr ng riêng và c ng đ t ra nh ng yêu
c u riêng cho vi c phát tri n h th ng Ví d , các h th ng đi u khi n đòi h i
đi u hành và ngôn ng l p trình riêng;
Trang 8các h website th c thi các ch c n ng trên m i tr ng m ng phân tán đòi h i cách phát tri n riêng Do v y, không có m t ph ng pháp lu n chung cho t t c các
d ng h th ng thông tin
Ph m vi c a tài li u này nh m gi i thi u m t s khái ni m c b n c a UML cho phát phi n các h th ng và đ d dàng minh ho chúng ta s xem xét v n đ phát tri n d ng h th ng thông tin ph bi n nh t là h th ng thông tin qu n lý
TIN
Vi c phát tri n các h th ng thông tin không ch đ n gi n là l p trình mà luôn
đ c xem nh m t ti n trình hoàn ch nh
ph n ch y u bao g m: mô hình vòng đ i phát tri n ph n m m, các công c h
Nh v y, ti n trình phát tri n ph n m m nói chung là s k t h p c hai khía
c nh k thu t (vòng đ i phát tri n, ph ng pháp phát tri n, các công c và ngôn
ng s d ng, …) và khía c nh qu n lý (qu n lý d án ph n m m)
Mô hình vòng đ i ph n m m là các b c phát tri n m t s n ph m ph n
m m c th M t vòng đ i phát tri n ph n m m th ng có các pha c b n sau:
Pha xác đ nh yêu c u: khám phá các khái ni m liên quan đ n vi c phát tri n ph n
m m, xác đ nh chính xác yêu c u và các ràng bu c c a khách hàng v i s n ph m
ph n m m đó
Pha phân tích: mô t ch c n ng c a s n ph m, các input c a s n ph m và các
output đ c yêu c u; khám phá các khái ni m trong mi n quan tâm c a s n ph m
Pha b o trì: ti n hành s a ch a ph n m m khi có các thay đ i ây là pha r t quan
tr ng, tiêu t n nhi u th i gian và chi phí nh t trong ti n trình phát tri n ph n m m
Pha lo i b : th c hi n lo i b ph n m m ho c thay th ph n m m b i m t ph n
m m hoàn toàn m i
Trang 9Thông th ng hai quá trình không th thi u đ c trong vòng đ i phát tri n ph n
m m là vi t tài li u và ki m th Các quá trình này không tr thành m t pha riêng
bi t mà đ c ti n hành song song v i t t c các pha khác trong ti n trình ph n
m m ngh a là t t c các pha đ u ph i vi t tài li u và ki m th v i các m c đ khác nhau
Có r t nhi u mô hình vòng đ i ph n m m nh ng hai mô hình đ n gi n và
đ c s d ng r ng rãi nh t là mô hình thác n c và mô hình làm b n m u nhanh
Theo mô hình thác n c, sau khi yêu c u c a h th ng đã đ c xác đ nh và ki m tra b i nhóm SQA, pha phân tích s đ c ti n hành đ xây d ng tài li u Sau khi tài li u phân tích đ c khách hàng ch p nh n, nhóm phát tri n s ti n hành l p k
ho ch và l ch bi u cho các quá trình phát tri n ti p theo Sau đó, các pha thi t k , cài đ t và tích h p s l n l t đ c ti n hành ; m i pha này đ u có ph n ki m tra
đ khi c n có th quay l i s a đ i tài li u c a pha tr c đó Khi ph n m m đã đ c tri n khai và chuy n sang pha b o trì; n u có l i ho c thay đ i x y ra, nhóm thi t
k s ph i quay tr l i s a đ i tài li u cho m t trong các pha tr c đó và n u c n
có th quay tr l i thay đ i m t s yêu c u ban đ u c a h th ng
Vì các pha c n i ti p nhau m t cách liên t c nh m t thác n c nên mô hình này đ c g i là mô hình thác n c Ti n trình ph n m m theo mô hình thác n c
đ c bi u di n nh trong Hình 1.1 Mô hình thác n c có m t s u đi m nh sau:
- Có vòng l p, cho phép tr v pha tr c trong vòng đ i ph n m m đ s a
ch a khi phát hi n l i ho c khi có thay đ i
- H ng tài li u: t t c các pha trong vòng đ i ph n m m theo mô hình thác
n c đ u đ c vi t tài li u c n th n và đ c ki m tra b i nhóm SQA tr c khi chuy n sang pha ti p theo Do v y, h th ng s d dàng b o trì khi có
nh ng thay đ i
Tuy nhiên, mô hình thác n c c ng có nh c đi m là s n ph m ph n m m cu i cùng có th không th a mãn nhu c u th c s c a khách hàng Lý do là khách hàng
ch đ c trao đ i m t l n duy nh t và ch a đ c hình dung s n ph m nên r t có
th các pha ti p theo s không th c hi n đúng nh ng gì khách hàng c n
Trang 10Hình 1.1: Ti n trình ph n m m theo mô hình thác n c
1.2.2 Mô hình làm b n m u nhanh
Trong mô hình làm b n m u nhanh, b c đ u tiên là nhóm phát tri n s xây d ng
m t b n m u và giao cho khách hàng và ng i s d ng h th ng dùng th Khi khách hàng đ ng ý ch p nh n b n m u thì nhóm phát tri n m i ti p t c ti n hành các pha khác c a vòng đ i ph n m m Trong các pha ti p theo, do đã có b n m u nên các pha s đ c ti n hành liên t c và không có b c quay v pha tr c đó
Ch khi h th ng đã tri n khai và chuy n sang pha b o trì, n u có thay đ i hay phát
hi n l i thì nhóm phát tri n m i quay l i m t trong nh ng pha tr c đó, nh ng không quay l i pha làm b n m u vì b n m u đã đ c ch p nh n
u đi m chính c a mô hình này là “nhanh” và h n n a do s n ph m ph n
m m đ c t o ra t mô hình làm b n m u nên có kh n ng cao là đ m b o th a mãn yêu c u th c s c a khách hàng Tuy nhiên, mô hình làm b n m u nhanh
B o trì
Pha lo i b
Trang 11c ng có nh c đi m do các pha đ c ti n hành liên t c mà không đ c vi t tài
li u Mô hình làm b n m u nhanh đ c bi u di n nh trong Hình 1.2
1.3 CÁC CÁCH TI P C N PHÂN TÍCH THI T K H TH NG
Trong nh ng n m 70 - 80, ph ng pháp h ng c u trúc đ c coi là ph ng pháp chu n đ phát tri n ph n m m Tuy nhiên, ph ng pháp này t ra không phù
h p trong phát tri n các h ph n m m l n và đ c bi t là kém hi u qu trong s
d ng l i - m t yêu c u quan tr ng trong công nghi p ph n m m Th p niên 90
ch ng ki n s n r trong nghiên c u và xây d ng ph ng pháp lu n phát tri n
ph n m m h ng đ i t ng và nhanh chóng tr thành ph bi n trong công nghi p
ph n m m ngày nay hi u rõ ph n nào s khác bi t này ph n này dành so sánh
B o trì
Pha lo i b
Trang 121.3.1 Ph ng pháp h ng c u trúc
c tr ng c a ph ng pháp h ng c u trúc là phân chia ch ng trình chính thành nhi u ch ng trình con, m i ch ng trình con nh m đ n th c hi n m t công vi c xác đ nh
Trong ph ng pháp h ng c u trúc, ph n m m đ c thi t k d a trên m t trong hai h ng : h ng d li u và h ng hành đ ng
- Cách ti p c n h ng d li u xây d ng ph n m m d a trên vi c phân rã
ph n m m theo các ch c n ng c n đáp ng và d li u cho các ch c n ng
đó Cách ti p c n h ng d li u s giúp cho nh ng ng i phát tri n h
th ng d dàng xây d ng ngân hàng d li u
- Cách ti p c n h ng hành đ ng l i t p trung phân tích h ph n m m d a trên các ho t đ ng th c thi các ch c n ng c a ph n m m đó
Cách th c th c hi n c a ph ng pháp h ng c u trúc là ph ng pháp thi t k t trên xu ng (top-down) Ph ng pháp này ti n hành phân rã bài toán thành các bài toán nh h n, r i ti p t c phân rã các bài toán con cho đ n khi nh n đ c các bài toán có th cài đ t đ c ngay s d ng các hàm c a ngôn ng l p trình h ng c u trúc
Ph ng pháp h ng c u trúc có u đi m là t duy phân tích thi t k rõ ràng,
ch ng trình sáng s a d hi u Tuy nhiên, ph ng pháp này có m t s nh c đi m sau:
- Không h tr vi c s d ng l i Các ch ng trình h ng c u trúc ph thu c ch t ch vào c u trúc d li u và bài toán c th , do đó không th dùng l i m t modul nào đó trong ph n m m này cho ph n m m m i v i các yêu c u v d li u khác
- Không phù h p cho phát tri n các ph n m m l n N u h th ng thông tin
l n, vi c phân ra thành các bài toán con c ng nh phân các bài toán con thành các modul và qu n lý m i quan h gi a các modul đó s là không
ph i là d dàng và d gây ra các l i trong phân tích và thi t k h th ng,
c ng nh khó ki m th và b o trì
Trang 13• Tr u t ng hóa (abstraction): trong ph ng pháp h ng đ i t ng, các th c
th ph n m m đ c mô hình hóa d i d ng các đ i t ng Các đ i t ng này
đ c tr u t ng hóa m c cao h n d a trên thu c tính và ph ng th c mô t
đ i t ng đ t o thành các l p Các l p c ng s đ c tr u t ng hóa m c cao h n n a đ t o thành m t s đ các l p đ c k th a l n nhau Trong
ph ng pháp h ng đ i t ng có th t n t i nh ng l p không có đ i t ng
t ng ng, g i là l p tr u t ng Nh v y, nguyên t c c b n đ xây d ng các khái ni m trong h ng đ i t ng là s tr u t ng hóa theo các m c đ khác
nhau
• Tính đóng gói (encapsulation) và n d u thông tin: các đ i t ng có th có
nh ng ph ng th c ho c thu c tính riêng (ki u private) mà các đ i t ng khác không th s d ng đ c D a trên nguyên t c n gi u thông tin này, cài đ t c a các đ i t ng s hoàn toàn đ c l p v i các đ i t ng khác, các l p đ c l p v i nhau và cao h n n a là cài đ t c a h th ng hoàn toàn đ c l p v i ng i s
d ng c ng nh các h th ng khác s d ng k t qu c a nó
• Tính modul hóa (modularity): các bài toán s đ c phân chia thành nh ng
v n đ nh h n, đ n gi n và qu n lý đ c
• Tính phân c p (hierarchy): c u trúc chung c a m t h th ng h ng đ i t ng
là d ng phân c p theo các m c đ tr u t ng t cao đ n th p
u đi m n i b t c a ph ng pháp h ng đ i t ng là đã gi i quy t đ c các v n
Trang 14• H tr s d ng l i mã ngu n : Ch ng trình l p trình theo ph ng pháp h ng
đ i t ng th ng đ c chia thành các gói là các nhóm c a các l p đ i t ng khác nhau Các gói này ho t đ ng t ng đ i đ c l p và hoàn toàn có th s
d ng l i trong các h th ng thông tin t ng t
• Phù h p v i các h th ng l n: Ph ng pháp h ng đ i t ng không chia bài toán thành các bài toán nh mà t p trung vào vi c xác đ nh các đ i t ng, d
li u và hành đ ng g n v i đ i t ng và m i quan h gi a các đ i t ng Các
đ i t ng ho t đ ng đ c l p và ch th c hi n hành đ ng khi nh n đ c yêu c u
t các đ i t ng khác Vì v y, ph ng pháp này h tr phân tích, thi t k và
qu n lý m t h th ng l n, có th mô t các ho t đ ng nghi p v ph c t p b i quá trình phân tích thi t k không ph thu c vào s bi n d li u hay s l ng thao tác c n th c hi n mà ch quan tâm đ n các đ i t ng t n t i trong h
• Gói (package): là m t cách t ch c các thành ph n, ph n t trong h th ng
thành các nhóm Nhi u gói có th đ c k t h p v i nhau đ tr thành m t h
th ng con (subsystem)
• K th a: Trong ph ng pháp h ng đ i t ng, m t l p có th có s d ng l i các thu c tính và ph ng th c c a m t ho c nhi u l p khác Ki u quan h này
g i là quan h k th a, đ c xây d ng d a trên m i quan h k th a trong bài
toán th c t Ví d , gi i s ta có l p Ng i g m các thu c tính : tên, ngày sinh,
Trang 15c các thu c tính trên và b sung thêm các thu c tính m i g m : ch c v ,
Vòng đ i phát tri n ph n m m h ng đ i t ng c ng có các pha t ng t nh các vòng đ i phát tri n ph n m m nói chung Các pha c b n đ c tr ng trong phát tri n ph n m m h ng đ i t ng bao g m:
• Phân tích h ng đ i t ng: xây d ng m t mô hình chính xác đ mô t h
th ng c n xây d ng là gì Thành ph n c a mô hình này là các đ i t ng g n
v i h th ng th c
• Thi t k h ng đ i t ng: Là giai đo n t ch c ch ng trình thành các t p
h p đ i t ng c ng tác, m i đ i t ng trong đó là th c th c a m t l p K t
qu c a pha thi t k cho bi t h th ng s đ c xây d ng nh th nào qua các
b n thi t k ki n trúc và thi t k chi ti t
• L p trình và tích h p: Th c hi n b n thi t k h ng đ i t ng b ng cách s
d ng các ngôn ng l p trình h ng đ i t ng (C++, Java, …)
Các b c phân tích thi t k h ng đ i t ng đ c xây d ng d a trên bi u đ các
ký hi u UML ó là ngôn ng mô hình hoá th ng nh t đ c xây d ng đ mô hình hoá quá trình phát tri n h th ng ph n m m h ng đ i t ng Các v n đ c b n
v UML s đ c gi i thi u chi ti t trong Ch ng 2 Ph n này ch nh m gi i thi u
m t cách khái quát các b c trong phân tích và thi t k h ng đ i t ng
Trang 16Pha thi t k
Bi u đ ho t đ ng
Pha phân tích
Xây d ng Bi u đ use case: D a trên t p yêu c u ban đ u, ng i phân tích ti n
hành xác đ nh các tác nhân, use case và các quan h gi a các use case đ mô t
l i các ch c n ng c a h th ng M t thành ph n quan tr ng trong bi u đ use case là các k ch b n mô t ho t đ ng c a h th ng trong m i use case c th
Xây d ng Bi u đ l p: Xác đ nh tên các l p, các thu c tính c a l p, m t s
ph ng th c và m i quan h c b n trong s đ l p
Xây d ng bi u đ tr ng thái: Mô t các tr ng thái và chuy n ti p tr ng thái
trong ho t đ ng c a m t đ i t ng thu c m t l p nào đó
Trong Pha thi t k
Xây d ng các bi u đ t ng tác (g m bi u đ c ng tác và bi u đ tu n t ): mô
t chi ti t ho t đ ng c a các use case d a trên các scenario đã có và các l p đã xác đ nh trong pha phân tích
Xây d ng bi u đ l p chi ti t: ti p t c hoàn thi n bi u đ l p bao g m b sung
các l p còn thi u, d a trên bi u đ tr ng thái đ b sung các thu c tính, d a trên
bi u đ t ng tác đ xác đ nh các ph ng th c và m i quan h gi a các l p
Trang 17Xây d ng bi u đ tri n khai h th ng: xác đ nh các thành ph n và các thi t b
c n thi t đ tri n khai h th ng, các giao th c và d ch v h tr
th ng thông tin s t ng ng v i m t ph ng pháp phát tri n riêng
• Vi c phát tri n các h th ng thông tin nói chung đ c xem nh m t vòng đ i
v i các pha : Xác đ nh yêu c u, đ c t , thi t k , cài đ t tích h p, b o trì và lo i
b Có hai mô hình vòng đ i đ n gi n và hay dùng nh t là mô hình thác n c
và mô hình làm b n m u nhanh
• Ph ng pháp phát tri n ph n m m h ng đ i t ng t ra có nhi u u đi m h n
so v i ph ng pháp h ng c u trúc Các pha đ c tr ng trong vòng đ i phát tri n ph n m m h ng đ i t ng là phân tích h ng đ i t ng, thi t k h ng
đ i t ng và l p trình h ng đ i t ng
• Các b c phát tri n ph n m m h ng đ i t ng đ c xây d ng d a trên các
bi u đ trong ngôn ng mô hình hoá th ng nh t UML Ch ng 2 s trình bày chi ti t v UML và t p ký hi u cho các b c phát tri n h th ng
CÂU H I VÀ BÀI T P
1 K tên m t s ví d cho các lo i h th ng thông tin: h th ng thông tin
qu n lý, h th ng website th ng m i đi n t , h th ng đi u khi n
2 Vì sao nói ti n trình ph n m m là s k t h p khía c nh k thu t và khía
c nh qu n lý
3 So sánh u, nh c đi m c a ph ng pháp phát tri n ph n m m h ng
Trang 184 Trình bày các khái ni m trong h ng đ i t ng : l p, đ i t ng, gói,
thành ph n, k th a Cho ví d
Trang 19
CH NG 2 UML VÀ CÔNG C PHÁT TRI N H TH NG
Ch ng này nh m gi i thi u v ngôn ng mô hình hoá th ng nh t UML và công
c phát tri n ph n m m h ng đ i t ng N i dung c th bao g m:
- Gi i thi u UML
- Các bi u đ trong UML
- Các b c phân tích thi t k h ng đ i t ng s d ng UML
- Gi i thi u b công c Rational Rose
2.1 GI I THI U V UML
Vi c áp d ng r ng rãi ph ng pháp h ng đ i t ng đã đ t ra yêu c u c n ph i xây d ng m t ph ng pháp mô hình hóa đ có th s d ng nh m t chu n chung cho nh ng ng i phát tri n ph n m m h ng đ i t ng trên kh p th gi i Trong khi các ngôn ng h ng đ i t ng ra đ i khá s m, ví d nh Simula-67 (n m 1967), Smalltalk (đ u nh ng n m 1980), C++, CLOS (gi a nh ng n m 1980)…thì
nh ng ph ng pháp lu n cho phát tri n h ng đ i t ng l i ra đ i khá mu n Cu i
nh ng n m 80, đ u nh ng n m 1990, m t lo t các ph ng pháp lu n và ngôn ng
mô hình hóa h ng đ i t ng m i ra đ i, nh Booch c a Grady Booch, OMT c a James Rambaugh, OOSE c a Ivar Jacobson, hay OOA and OOD c a Coad và Yordon.
M i ph ng pháp lu n và ngôn ng trên đ u có h th ng ký hi u riêng,
ph ng pháp x lý riêng và công c h tr riêng Chính đi u này đã thúc đ y
nh ng ng i tiên phong trong l nh v c mô hình hoá h ng đ i t ng ng i l i cùng nhau đ tích h p nh ng đi m m nh c a m i ph ng pháp và đ a ra m t mô hình
th ng nh t chung N l c th ng nh t đ u tiên b t đ u khi Rumbaugh gia nh p nhóm nghiên c u c a Booch t i t p đoàn Rational n m 1994 và sau đó Jacobson
c ng gia nh p nhóm này vào n m 1995
James Rumbaugh, Grady Booch và Ivar Jacobson đã cùng c g ng xây d ng
Trang 20Modeling Language) (Hình 2.1) UML đ u tiên đ c đ a ra n m 1997 và sau đó
đ c chu n hoá đ tr thành phiên b n 1.0 Hi n nay chúng ta đang s d ng ngôn
ng UML phiên b n 2.0
UML (Unified Modelling Language) là ngôn ng mô hình hoá t ng quát đ c xây
d ng đ đ c t , phát tri n và vi t tài li u cho các khía c nh trong phát tri n ph n
m m h ng đ i t ng UML giúp ng i phát tri n hi u rõ và ra quy t đ nh liên quan đ n ph n m m c n xây d ng UML bao g m m t t p các khái ni m, các ký
Trang 21Các m c đích c a ngôn ng mô hình hoá th ng nh t UML:
• Mô hình hoá các h th ng s d ng các khái ni m h ng đ i t ng
• Thi t l p s liên h t nh n th c c a con ng i đ n các s ki n c n mô hình hoá
• Gi i quy t v n đ v m c đ th a k trong các h th ng ph c t p v i nhi u ràng bu c khác nhau
• T o m t ngôn ng mô hình hoá có th s d ng đ c b i ng i và máy UML quy đ nh m t lo t các ký hi u và quy t c đ mô hình hoá các pha trong quá trình phát tri n ph n m m h ng đ i t ng d i d ng các bi u đ
2.1.3 Các khái ni m c b n trong UML
a) Khái ni m mô hình
Mô hình là m t bi u di n c a s v t hay m t t p các s v t trong m t l nh v c áp
d ng nào đó theo m t cách khác Mô hình nh m n m b t các khía c nh quan tr ng
c a s v t, b qua các khía c nh không quan tr ng và bi u di n theo m t t p ký
hi u và quy t c nào đó Các mô hình th ng đ c xây d ng sao cho có th v
đ c thành các bi u đ d a trên t p ký hi u và quy t c đã cho
Khi xây d ng các h th ng, mô hình đ c s d ng nh m tho mãn các m c đích sau:
- N m b t chính xác yêu c u và tri th c mi n mà h th ng c n phát tri n
- Th h ên t duy v thi t k h th ng
- Tr giúp ra quy t đ nh thi t k d a trên vi c phân tích yêu c u
- T ch c, tìm ki m, l c, ki m tra và s a đ i thông tin v các h th ng
hi n mô hình theo cách sao cho có th nhìn th y đ c
- Ng c nh: mô t t ch c bên trong, cách s d ng mô hình trong ti n trình ph n m m …
Trang 22Các mô hình trong UML nh m m c đích h tr phát tri n các h th ng ph n m m
h ng đ i t ng Trong ph ng pháp lu n h ng đ i t ng không có s phân bi t
r ch ròi gi a các pha hay các b c Tuy nhiên, thông th ng UML v n đ c chia thành m t s h ng nhìn và nhi u lo i bi u đ
đ bi u di n m t khía c nh nào đó c a h th ng
S phân bi t gi a các h ng nhìn là r t linh ho t Có th có nh ng bi u đ UML có m t trong c hai h ng nhìn Các h ng nhìn cùng các bi u đ t ng
ng đ c mô t trong b ng sau:
Khía c nh
chính
H ng nhìn Các bi u đ Các khái ni m chính
H ng nhìn t nh (static view)
Use case, tác nhân, liên h , extend, include …
Tr ng thái, s ki n, chuy n
ti p, hành đ ng
H ng nhìn ho t đ ng (activity view)
C ng tác, vai trò c ng tác, thông đi p …
Trang 23M t s ký hi u đ mô hình h ng đ i t ng th ng g p trong UML đ c bi u
di n trong Hình 2.2 i kèm v i các ph n t mô hình này là các quan h Các quan
h này có th xu t hi n trong b t c mô hình nào c a UML d i các d ng khác nhau (nh quan h gi a các use case, quan h trong bi u đ l p …) (Hình 2.3)
Trang 24Aggregation Association Generalization Dependency
Hình 2.3: M t s d ng quan h trong UML
Ý ngh a c a các ph n t mô hình và các quan h s đ c gi i thích c th h n trong các ch ng sau
Thành ph n mô hình chính trong UML là các bi u đ :
- Bi u đ use case bi u di n s đ ch c n ng c a h th ng T t p yêu c u c a
h th ng, bi u đ use case s ph i ch ra h th ng c n th c hi n đi u gì đ tho mãn các yêu c u c a ng i dùng h th ng đó i kèm v i bi u đ use case là các k ch b n
Trang 25- Bi u đ ho t đ ng bi u di n các ho t đ ng và s đ ng b , chuy n ti p các
ho t đ ng, th ng đ c s d ng đ bi u di n các ph ng th c ph c t p c a các l p
- Bi u đ thành ph n đ nh ngh a các thành ph n c a h th ng và m i liên h
gi a các thành ph n đó
- Bi u đ tri n khai mô t h th ng s đ c tri n khai nh th nào, thành ph n
nào đ c cài đ t đâu, các liên k t v t lý ho c giao th c truy n thông nào
c a bài toán Các bi u đ trong mô hình t nh bao g m:
Trang 262.2.1 Bi u đ use case
a) Ý ngh a
Bi u đ use case bi u di n s đ ch c n ng c a h th ng T t p yêu c u c a h
th ng, bi u đ use case s ph i ch ra h th ng c n th c hi n đi u gì đ tho mãn các yêu c u c a ng i dùng h th ng đó i kèm v i bi u đ use case là các k ch
b n (scenario) Có th nói, bi u đ use case ch ra s t ng tác gi a các tác nhân
và h th ng thông qua các use case
M i use case mô t m t ch c n ng mà h th ng c n ph i có xét t quan đi m
ng i s d ng Tác nhân là con ng i hay h th ng th c khác cung c p thông tin hay tác đ ng t i h th ng
M t bi u đ use case là m t t p h p các tác nhân, các use case và các m i
quan h gi a chúng Các use case trong bi u đ use case có th đ c phân rã theo nhi u m c khác nhau
b) T p ký hi u UML cho bi u đ use case
M t bi u đ Use Case ch a các ph n t mô hình bi u th h th ng, tác nhân c ng
nh các tr ng h p s d ng và các m i quan h gi a các Use Case Chúng ta s
l n l t xem xét các ph n t mô hình này:
a) H th ng: V i vai trò là thành ph n c a bi u đ use case, h th ng bi u
di n ranh gi i gi a bên trong và bên ngoài c a m t ch th trong ph n m m chúng ta đang xây d ng Chú ý r ng m t h th ng trong bi u đ use case không ph i bao gi c ng nh t thi t là m t h th ng ph n m m; nó có th là
m t chi c máy, ho c là m t h th ng th c (nh m t doanh nghi p, m t
tr ng đ i h c, …)
b) Tác nhân (actor): là ng i dùng c a h th ng, m t tác nhân có th là m t
ng i dùng th c ho c các h th ng máy tính khác có vai trò nào đó trong
ho t đ ng c a h th ng Nh v y, tác nhân th c hi n các use case M t tác nhân có th th c hi n nhi u use case và ng c l i m t use case c ng có th
đ c th c hi n b i nhi u tác nhân
c) Các use case: ây là thành ph n c b n c a bi u đ use case Các use case
đ c bi u di n b i các hình elip Tên các use case th hi n m t ch c n ng xác đ nh c a h th ng
d) M i quan h gi a các use case: gi a các use case có th có các m i quan
Trang 27- Include: use case này s d ng l i ch c n ng c a use case kia
- Extend: use case này m r ng t use case kia b ng cách thêm vào m t ch c
n ng c th
- Generalization: use case này đ c k th a các ch c n ng t use case kia
Các ph n t mô hình use case cùng v i ý ngh a và cách bi u di n c a nó đ c
Tác nhân Là m t đ i t ng bên
ngoài h th ng t ng tác tr c ti p v i các use case
Bi u di n b i m t
l p ki u actor (hình ng i t ng
Generalization có
d ng m i tên tam giác
Biên c a h
th ng
Tách bi t ph n bên trong và bên ngoài h
D i đây là m t use case cho h th ng qu n lý th vi n đ n gi n Ng i qu n tr
th vi n (th th ) thông qua đ ng nh p đ th c hi n C p nh t thông tin và Qu n lý các giao d ch m n - tr sách B n đ c ch có th tìm ki m, tra c u thông tin sách
Ch c n ng tìm ki m sách đ c dùng nh m t ph n trong ch c n ng C p nh t và
Qu n lý m n sách nên chúng ta s d ng quan h include Chi ti t h n v cách xây d ng bi u đ này s trình bày trong ch ng 3
Trang 28• Kí hi u l p: trong UML, m i l p đ c bi u di n b i hình ch nh t g m 3 ph n: tên l p, các thu c tính và các ph ng th c
• Thu c tính: các thu c tính trong bi u đ l p đ c bi u di n theo c u trúc chung nh sau:
Trong đó:
thu c tính ph bi n là:
+: thu c tính ki u public
Trang 29-: thu c tính ki u private
~: thu c tính đ c phép truy nh p t i t các l p trong cùng package Các ph m vi c a thu c tính có th đ c bi u di n d i d ng ký hi u (+, #, -,
~) ho c bi u di n d i d ng các t khoá (public, protected, private)
Tên: là xâu ký t bi u di n tên thu c tính
- ~: ph ng th c đ c phép truy nh p t i t các l p trong cùng package
danh_sách_tham_s : bi u di n danh sách các tham s trong khai báo c a
ph ng th c M i tham s đ c bi u di n d i d ng chung: tên tham s :
ki u giá tr = giá tr m c đ nh
th c có th nh n m t trong các ki u đ c bi t sau:
Trang 30Ví d m t khai báo ph ng th c cho m t l p:
- L p đi u khi n: th c hi n các ch c n ng đi u khi n ho t đ ng c a h th ng
k t (links), t c là m t s liên quan v ng ngh a (semantic connection) gi a
m t nhóm các đ i t ng đ c bi u di n b i các l p t ng ng
Trang 31M c đ nh, quan h k t h p đ c bi u di n b i đo n th ng 2 chi u n i 2 đ i
t ng và có th kèm theo ng ngh a c a quan h t i hai đ u c a đo n th ng
Xem ví d Hình 2.5 L p khách hàng có quan h k t h p v i l p s n ph m
Ng ngh a c a quan h này th hi n ch : khách hàng mua s n ph m, còn
s n ph m đ c bán cho khách hàng
Quan h k t h p c ng có th có d ng m t chi u Xem ví d Hình 2.6
- Khái quát hóa (Generalization): Khái quát hóa là m i quan h gi a m t l p
có các đ c tr ng mang tính khái quát cao h n và m t l p có tính ch t đ c
bi t h n Trong s đ l p, m i quan h khái quát hóa chính là s k th a
c a m t l p t l p khác Quan h khái quát hoá đ c bi u di n b ng m t
m i tên có tam giác r ng g n đ u Xem ví d Hình 2.7
Khách hàng
Hình 2.7: Quan h khái quát hoá
Khách hàng không th ng xuyên
Trang 32- Quan h c ng h p (Aggregation): là d ng quan h mô t m t l p A là m t
- Quan h g p (Composition): M t quan h g p bi u di n m t quan h ki u
- Quan h th c thi (Realization): bi u di n m i quan h ng ngh a gi a các
thành ph n c a bi u đ l p, trong đó m t thành ph n mô t m t công vi c
Trang 34D i đây là ví d m t ph n c a bi u đ l p trong h th ng qu n lý th vi n trong
đó các l p Th th (ng i qu n lý th viên) và B n đ c k th a t l p Person
Thuthu maThuthu : String password : String vaitro : String getVaitro() setVaitro()
Hình 2.12: Bi u đ l p ví d
2.2.3 Bi u đ tr ng thái
a) Ý ngh a
Bi u đ tr ng thái đ c s d ng đ bi u di n các tr ng thái và s chuy n ti p gi a
các tr ng thái c a các đ i t ng trong m t l p xác đ nh Thông th ng, m i l p s
có m t bi u đ tr ng thái (tr l p tr u t ng là l p không có đ i t ng)
tr ng thái và s chuy n ti p gi a các tr ng thái đó Có hai d ng bi u đ tr ng thái:
- Bi u đ tr ng thái cho m t use case: mô t các tr ng thái và chuy n ti p
tr ng thái c a m t đ i t ng thu c m t l p nào đó trong ho t đ ng c a m t use case c th
- Bi u đ tr ng thái h th ng mô t t t c các tr ng thái c a m t đ i t ng trong toàn b ho t đ ng c a c h th ng
b) T p ký hi u UML cho bi u đ tr ng thái
Các thành ph n trong m t bi u đ tr ng thái bao g m:
- Tr ng thái (state) Bên trong các tr ng thái có th miêu t các bi n tr ng
thái ho c các hành đ ng (action) t ng ng v i tr ng thái đó
Trang 35- Tr ng thái con (substate): là m t tr ng thái ch a bên trong m t tr ng thái
khác Tr ng thái có nhi u tr ng thái con g i là tr ng thái t h p Xem xét
m t ví d có tr ng thái con trong Hình 2.13
Th c hi n tính toán
Ch a tính toán
- Tr ng thái kh i đ u (initial state): tr ng thái đ u tiên khi kích ho t đ i
t ng
- Tr ng thái k t thúc (final state): k t thúc vòng đ i đ i t ng
- Các chuy n ti p (transition): bi u di n các chuy n đ i gi a các tr ng thái
- S ki n (event): s ki n tác đ ng gây ra s chuy n đ i tr ng thái M i s
ki n đ c đi kèm v i các đi u ki n (guard) và các hành đ ng (action) Trong bi u đ tr ng thái c a UML, m t s lo i s ki n sau đây s đ c xác đ nh:
- S ki n g i (call event): Yêu c u th c hi n m t hành đ ng (m t ph ng
th c)
- S ki n tín hi u (signal event): G i thông đi p (ch a các giá tr thu c tính
tham s liên quan) gi a các tr ng thái
- S ki n th i gian (time event): Bi u di n quá trình chuy n ti p theo th i
gian, th ng kèm theo t mô t th i gian c th
Các ph n t mô hình UML và ký hi u t ng ng cho bi u đ tr ng thái đ c t ng
Trang 36đ i t ng đó
Hình ch nh t vòng góc, g m
M i tên li n nét
v i tên g i là
bi u di n c a chuy n ti p đó
Trang 37- Các đ i t ng (object): đ c bi u di n b i các hình ch nh t, bên trong là
tên c a đ i t ng Cách vi t chung c a đ i t ng là: tên đ i t ng: tên l p
N u ch vi t :tên_l p thì có ngh a là b t c đ i t ng nào c a l p t ng
ng đó Trong bi u đ tu n t , không ph i các đ i t ng đ u xu t hi n trên cùng c a bi u đ mà chúng ch xu t hi n (v m t th i gian) khi th c s tham gia vào t ng tác
- Các message: đ c bi u di n b ng các m i tên h ng t đ i t ng g i sang đ i t ng nh n Tên các message có th bi u di n d i d ng phi hình
th c (nh các thông tin trong k ch b n) ho c d i d ng hình th c (v i d ng
Trang 38D i đây là m t ví d cho bi u đ tu n t cho ch c n ng Thêm sách trong h
th ng qu n lý th vi n Trong bi u đ này có đ i t ng giao di n FormThemSach,
đ i t ng đi u khi n DK Thêm sách và đ i t ng th c th Sach Chi ti t v xây
d ng bi u đ này s đ c trình bày trong Ch ng 4
Trang 39: Thu thu : FormThemSach : DK_ThemSach : Sach
Yeu cau Them sach
Yeu cau nhap thong tin
Nhap thong tin sach m oi
Tao doi tuong sach moi
Kiem tra thong tin sach
Nhap sach vao CSDL
Nhap thanh cong Nhap thanh cong
Thong bao nhap thanh cong
Bi u đ c ng tác c ng có các messgage v i n i dung t ng t nh trong bi u
đ tu n t Tuy nhiên, các đ i t ng đ c đ t m t cách t do trong không gian
c a bi u đ và không có đ ng life line cho m i đ i t ng Các message đ c đánh s th hi n th t th i gian
b) T p ký hi u UML cho bi u đ c ng tác
Các thành ph n c b n c a m t bi u đ c ng tác là:
- Các đ i t ng: đ c bi u di n b i các hình ch nh t, bên trong là tên c a
đ i t ng Cách vi t chung c a đ i t ng là: tên đ i t ng: tên l p Trong
Trang 40bi u đ c ng tác, các đ i t ng tham gia t ng tác luôn xu t hi n t i m t v
trí xác đ nh
- Các liên k t: gi a hai đ i t ng có t ng tác s có m t liên k t n i 2 đ i
t ng đó Liên k t này không có chi u
- Các message: đ c bi u di n b ng các m i tên h ng t đ i t ng g i
sang đ i t ng nh n bên c nh liên k t gi a 2 đ i t ng đó Trong bi u đ
c ng tác, các message đ c đánh s th t theo th t xu t hi n trong k ch
b n mô t use case t ng ng
1: Yeu cau them sach
2: Yeu cau nhap thong tin 3: Nhap thong tin sach moi
9: Thong bao nhap thanh cong
4: Tao doi tuong sach moi 8: Nhap thanh cong
6: Nhap sach vao CSDL
7: Nhap thanh cong