Ph ng pháp và các ngôn ng mô hình hoá .... H ng nhìn Use case Use case View .... H ng nhìn logic Logical View .... H ng nhìn song song Concurrency View .... Bi u Use case Use Case Diagra
Trang 1TÀI LI U MÔN H C PHÂN TÍCH VÀ THI T K HTTT
THEO UML ( ây là tài li u s u t m, t ng h p)
GI NG VIÊN PH TRÁCH: NGUY N C C NG
(S u t m t ng h p)
Trang 2M C L C
CH NG 1: T NG QUAN V PHÂN TÍCH THI T K H TH NG 6
1.1 D n nh p 6
1.1.1 Tính tr c quan 6
1.1.2 Mô hình tr u t ng 6
1.1.3 Mô hình hóa tr c quan 6
1.2 Mô t chu trình phát tri n ph n m m 7
1.2.1 Software Development – m t bài toán ph c t p 7
1.2.2 Chu Trình Phát Tri n Ph n M m (Software Development Life Cycle) 8
1.2.3 Các giai o n c a Chu Trình Phát Tri n Ph n M m 9
1.3 Ph ng pháp h ng ch c n ng và ph ng pháp h ng i t ng 13
1.4 u i m c a mô hình h ng i t ng 13
1.4.1 Tính tái s d ng (Reusable) 13
1.4.2 Các giai o n c a chu trình phát tri n ph n m m v i mô hình h ng i t ng 14
1.5 Ph n câu h i 16
CH NG 2: NGÔN NG MÔ HÌNH HÓA TH NG NH T LÀ GÌ? 17
2.1 Gi i thi u UML 17
2.1.1 Mô hình hóa h th ng ph n m m 17
2.1.2 Tr c khi UML ra i 18
2.1.3 S ra i c a UML 18
2.1.4 UML (Unifield Modeling Language) 19
2.1.5 Ph ng pháp và các ngôn ng mô hình hoá 19
2.2 UML trong phân tích thi!t k! h th ng 19
2.3 UML và các giai o"n phát tri n h th ng 20
2.4 Ph n câu h i 21
CH NG 3: KHÁI QUÁT V UML 22
3.1 UML và các giai o"n c a chu trình phát tri n ph n m m 22
3.1.1 Giai o n nghiên c u s b 22
3.1.2 Giai o n phân tích 22
3.1.3 Giai o n thi t k 22
3.1.4 Giai o n xây d ng 22
3.1.5 Th nghi m 23
3.2 Các thành ph n c a ngôn ng# UML 23
3.3 H ng nhìn (View) 23
3.3.1 H ng nhìn Use case (Use case View) 25
3.3.2 H ng nhìn logic (Logical View) 25
3.3.3 H ng nhìn thành ph n (Component View) 25
3.3.4 H ng nhìn song song (Concurrency View) 26
3.3.5 H ng nhìn tri n khai (Deployment View) 26
3.4 Bi u $ (diagram) 26
3.4.1 Bi u Use case (Use Case Diagram) 26
3.4.2 Bi u l p (Class Diagram) 27
3.4.3 Bi u i t ng (Object Diagram) 28
3.4.4 Bi u tr ng thái (State Diagram) 28
Trang 33.4.5 Bi u trình t (Sequence Diagram) 29
3.4.6 Bi u c ng tác (Collaboration Diagram) 29
3.4.7 Bi u ho t ng (Activity Diagram) 30
3.4.8 Bi u thành ph n (Component Diagram) 30
3.4.9 Bi u tri n khai (Deployment Diagram) 31
3.5 Ph n t% mô hình (model element) 32
3.6 C ch! chung (General Mechanism) 33
3.6.1 Trang trí (Adornment) 33
3.6.2 Ghi chú (Note) 34
3.6.3 c t (Specification) 34
3.7 M& r'ng UML 35
3.7.1 Khuôn m u (Stereotype) 35
3.7.2 Giá tr ính kèm (Tagged Value) 36
3.7.3 H n ch (Constraint) 36
3.8 Mô hình hóa v i UML 37
3.9 Công c( (Tool) 40
3.10 Tóm t)t v UML 41
3.11 Ph n câu h i 42
CH NG 4: MÔ HÌNH HÓA USE CASE 43
4.1 Gi i thi u Use Case 43
4.2 M't s ví d( Use Case 44
4.3 S* c n thi!t ph i có Use Case 44
4.4 Mô hình hóa Use Case 45
4.5 Bi u $ Use Case 46
4.5.1 H th ng 47
4.5.2 Tác nhân 48
4.5.3 Tìm tác nhân 49
4.5.4 Bi u di n tác nhân trong ngôn ng UML 49
4.5.5 Use Case 50
4.5.6 Tìm Use Case 51
4.5.7 Ví d tìm Use Case 52
4.6 Các bi!n th (Variations) trong m't Use Case 53
4.7 Quan h gi#a các Use Case 54
4.7.1 Quan h m r ng 54
4.7.2 Quan h s d ng 55
4.7.3 Quan h chung nhóm 56
4.8 Miêu t Use Case 57
4.9 Th% Use Case 60
4.10 Th*c hi n các Use Case 61
4.11 Tóm t)t v Use Case 63
4.12 Ph n câu h i 63
CH NG 5 : MÔ HÌNH I T +NG 65
5.1 L p, i t ng và quan h – các thành ph n c b n c a mô hình 65
5.1.1 i t ng (Object) 65
5.1.2 Tr ng thái, ng x và nh n di n c a i t ng 65
5.1.3 L p (Class) 66
Trang 45.1.4 Bi u l p (Class diagram) 67
5.2 Tìm l p 68
5.2.1 Phân tích ph m vi bài toán tìm l p 69
5.2.2 Các l p ng c viên 72
5.2.3 Lo i b các l p ng c viên không thích h p 73
5.3 L p và i t ng trong UML 74
5.3.1 Tên l p (class name) 74
5.3.2 Thu c tính (attribute) 74
5.3.3 Ph ng th c (method) 75
5.3.4 Kí hi u i t ng 76
5.4 Quan h gi#a các l p 77
5.5 Liên h (Association) 78
5.5.1 Vai trò trong liên h 78
5.5.2 Liên h m t chi u (Uni-Directional Association) 79
5.5.3 S l ng (Cardinality) trong liên h 79
5.5.4 Phát hi n liên h 80
5.5.5 X lý các liên h không c n thi t 80
5.5.6 Nâng c!p các m i liên h 81
5.6 Quan h k!t t p (Aggregation) 85
5.6.1 Khái ni m k t t p 85
5.6.2 Kí hi u k t t p 86
5.6.3 K t t p và liên h 87
5.7 Khái quát hóa và chuyên bi t hóa (Generalization & Specialization) 87
5.7.1 Kí hi u khái quát hóa và chuyên bi t hóa 88
5.7.2 Y u t phân bi t (Discriminatior) 89
5.8 Quan h ph( thu'c và nâng c,p (Dependency & Refinement) 92
5.9 Nâng c,p mô hình qua các vòng l-p k! ti!p 94
5.10 Ch,t l ng mô hình 95
5.10.1 Th nào là m t mô hình t t? 96
5.10.2 Ta có th giao ti p v i mô hình? 96
5.10.3 Mô hình có phù h p v i m c ích c a nó không? 96
5.10.4 N"m b"t nh ng i m tr#ng y u 97
5.10.5 Ph i h p các mô hình 97
5.10.6 ph c t p c a mô hình 97
5.11 Tóm t)t v mô hình i t ng 97
5.12 Ph n câu h i 98
CH NG 6 : MÔ HÌNH HÓA NG 100
6.1 S* c n thi!t có mô hình 'ng (Dynamic Model) 100
6.2 Các thành ph n c a mô hình 'ng 100
6.3 u i m c a mô hình 'ng 102
6.4 S* ki n và thông i p (Event & Message) 103
6.4.1 S ki n (Event) 103
6.4.2 Thông i p (Message) 105
6.5 Bi u $ tu n t* (Sequence Diagram) 106
6.6 Bi u $ c'ng tác (Collaboration Diagram) 108
Trang 56.7 Bi u $ tr"ng thái (State Diagram) 109
6.7.1 Tr ng thái và s bi n i tr ng thái (State transition) 109
6.7.2 Bi u tr ng thái 110
6.7.3 Nh n bi t tr ng thái và s ki n 111
6.7.4 M t s l i mách b o cho vi c t o d ng bi u tr ng thái 112
6.8 Bi u $ ho"t 'ng (Activity Diagram) 114
6.9 Vòng /i i t ng (Object Lifecycle) 117
6.9.1 Vòng i sinh ra và ch t i 118
6.9.2 Vòng i l p 118
6.10 Xem xét l"i mô hình 'ng 118
6.10.1 Th$m v!n bi u tr ng thái 118
6.10.2 Ph i h p s ki n 119
6.10.3 Bao gi thì s d ng bi u nào 119
6.10.4 L p con và bi u tr ng thái 120
6.11 Ph i h p mô hình i t ng và mô hình 'ng 120
6.12 Tóm t)t v mô hình 'ng 121
6.13 Ph n câu h i 121
Trang 6CH NG 1: T NG QUAN V PHÂN TÍCH THI T K H TH NG
1.1 D n nh p
1.1.1 Tính tr c quan
Chúng ta có th th!y r%ng: "M t s t p h p d li u ph c t p nh!t nh khi c trình bày b%ng th s& truy n t i n ng i #c nhi u thông tin h n so v i các d li u thô" V i ph n m m c'ng v y, khi ngành Công nghi p c a chúng ta ngày càng phát tri n, các h th ng s& tr nên ph c t p h n Kh n(ng n"m b"t và ki m soát s ph c t p ó c a chúng ta i kèm v i kh n(ng trình bày h th ng m t cách toàn di n - m t s trình bày v t ra ngoài gi i h n c a nh ng dòng l nh thô S thành công trên th
tr ng c a nh ng ngôn ng nh Visual Basic và ph n giao di n tr c quan c a C++, Java ã cho th!y
s trình bày tr c quan mang tính c t y u i v i quá trình phát tri n các h th ng ph c t p
1.1.2 Mô hình tr u t ng
Tr c ây, có m t th i gian dài, ngành công nghi p chúng ta ã ph i nói t i m t "Cu c kh ng ho ng
ph n m m" Các cu c tranh lu n u d a trên th c t là ch)ng nh ng nhi u án ph n m m không th
s n sinh ra nh ng h th ng tho mãn òi h i và nhu c u c a khách hàng, mà còn v t quá ngân sách và
th i h n Các công ngh m i nh l p trình h ng i t ng, l p trình tr c quan c'ng nh các môi
tr ng phát tri n tiên ti n có giúp chúng ta nâng cao n(ng su!t lao ng, nh ng trong nhi u tr ng
h p, chúng ch* h ng t i t ng th!p nh!t c a vi c phát tri n ph n m m: ph n vi t l nh (coding) M t trong nh ng v!n chính c a ngành phát tri n ph n m m th i nay là có nhi u án b"t tay vào l p trình quá s m và t p trung quá nhi u vào vi c vi t code Lý do m t ph n là do ban qu n tr thi u hi u
bi t v quy trình phát tri n ph n m m và h# n y lo âu khi th!y i quân l p trình c a h# không vi t code Và b n thân các l p trình viên c'ng c m th!y an tâm h n khi h# ng i vi t code - v n là tác v mà h# quen thu c! – h n là khi xây d ng các mô hình tr u t ng cho h th ng mà h# ph i t o nên
1.1.3 Mô hình hóa tr c quan
Mô hình hoá tr c quan là m t ph ng th c t duy v v!n s d ng các mô hình c t ch c xoay quanh các khái ni m i th c Mô hình giúp chúng ta hi u v!n , giao ti p v i m#i ng i có liên quan
n d án (khách hàng, chuyên gia l+nh v c thu c án, nhà phân tích, nhà thi t k , …) Mô hình r!t
h u d ng trong vi c mô hình hoá doanh nghi p, so n th o tài li u, thi t k ch ng trình c'ng nh ngân hàng d li u Mô hình giúp hi u các òi h i c a h th ng t t h n, t o các thi t k rõ ràng h n và xây
d ng nên các h th ng d b o trì h n
Mô hình là k t qu c a s tr u t ng hóa nh%m miêu t các thành ph n c t y u c a m t v!n hay m t c!u trúc ph c t p qua vi c l#c b t các chi ti t không quan tr#ng và làm cho v!n tr thành d hi u
h n Tr u t ng hóa là m t n(ng l c c(n b n c a con ng i, cho phép chúng ta gi i quy t các v!n
ph c t p Các k, s , ngh s+ và th th công ã xây d ng mô hình t hàng ngàn n(m nay th nghi m thi t k tr c khi th c hi n Phát tri n ph n m m c'ng không là ngo i l xây d ng các h
th ng ph c t p, nhà phát tri n ph i tr u t ng hóa nhi u h ng nhìn khác nhau c a h th ng, s d ng
ký hi u chính xác xây d ng mô hình, ki m tra xem mô hình có th a mãn các òi h i c a h th ng,
và d n d n b sung thêm chi ti t chuy n các mô hình thành th c hi n
Chúng ta xây d ng mô hình cho các h th ng ph c t p b i chúng ta không th hi u th!u áo nh ng h
th ng nh th trong tr ng thái toàn v-n c a chúng Kh n(ng th!u hi u và n"m b"t tính ph c t p c a
Trang 7con ng i là có h n i u này ta có th th!y rõ trong ví d c a ngành xây d ng N u b n mu n t o m t túp l u góc v n, b n có th b"t tay vào xây ngay N u b n xây m t ngôi nhà, có l& b n s& c n t i
b n v&, nh ng n u b n mu n xây m t toà nhà ch#c tr i thì ch"c ch"n b n không th không c n b n v&
Th gi i ph n m m c a chúng ta c'ng th Ch* t p trung vào các dòng code hay th m chí c phân tích Forms trong Visual Basic ch)ng cung c!p m t cái nhìn toàn c c v vi c phát tri n án Xây d ng mô hình cho phép nhà thi t k t p trung vào b c tranh l n v s t ng tác gi a các thành ph n trong án, tránh b sa l y vào nh ng chi ti t riêng bi t c a t ng thành ph n
M t môi tr ng kinh doanh mang tính c nh tranh gay g"t và luôn luôn thay i d n n tính ph c t p ngày càng t(ng cao, và tính ph c t p này t ra nh ng thách th c c tr ng cho các nhà phát tri n h
th ng Mô hình giúp chúng ta t ch c, trình bày tr c quan, th!u hi u và t o nên các h th ng ph c t p Chúng giúp chúng ta áp ng các thách th c c a vi c phát tri n ph n m m, hôm nay c'ng nh ngày mai
1.2 Mô t chu trình phát tri n ph n m m
1.2.1 Software Development – m t bài toán ph c t p
Kinh nghi m c a nhi u nhà thi t k và phát tri n cho th!y phát tri n ph n m m là m t bài toán ph c
t p Xin nêu m t s các lý do th ng c k n:
Nh ng ng i phát tri n ph n m m r!t khó hi u cho úng nh ng gì ng i dùng c n Yêu c u c a ng i dùng th ng thay i trong th i gian phát tri n
Yêu c u th ng c miêu t b%ng v(n b n, dài dòng, khó hi u, nhi u khi th m chí mâu thu n
i quân phát tri n ph n m m, v n là ng i "ngoài cu c", r!t khó nh n th c th!u áo các m i quan h ti m $n và ph c t p c n c th hi n chính xác trong các ng d ng
Trang 8Hi u không úng nh ng gì ng i dùng c n Không th thích ng cho phù h p v i nh ng thay i v yêu c u i v i h th ng Các Module không kh p v i nhau
Ph n m m khó b o trì và nâng c!p, m r ng Phát hi n tr các l h ng c a d án
Ch!t l ng ph n m m kém
Hi u n(ng c a ph n m m th!p Các thành viên trong nhóm không bi t c ai ã thay i cái gì, khi nào, âu, t i sao
ph i thay i
1.2.2 Chu Trình Phát Tri n Ph n M m (Software Development Life Cycle)
Vì phát tri n ph n m m là m t bài toán khó, nên có l& tr c h t ta c n i m qua m t s các công vi c c(n b n c a quá trình này Th ng ng i ta hay t p h p chúng theo ti n trình th i gian m t cách t ng
i, xoay quanh chu trình c a m t ph n m m, d n t i k t q a khái ni m Chu Trình Phát Tri n Ph n
M m (Software Development Life Cycle - SDLC) nh sau:
Chu Trình Phát Tri n Ph n M m là m t chu.i các ho t ng c a nhà phân tích (Analyst), nhà thi t k (Designer), ng i phát tri n (Developer) và ng i dùng (User) phát tri n và th c hi n m t h th ng thông tin Nh ng ho t ng này c th c hi n trong nhi u giai #an khác nhau
Nhà phân tích (Analyst): là ng i nghiên c u yêu c u c a khách hàng/ng i dùng nh
ngh+a m t ph m vi bài toán, nh n d ng nhu c u c a m t t ch c, xác nh xem nhân l c,
ph ng pháp và công ngh máy tính có th làm sao c i thi n m t cách t t nh!t công tác c a
t ch c này
Nhà thi!t k! (Designer): thi t k h th ng theo h ng c!u trúc c a database, screens, forms
và reports – quy t nh các yêu c u v ph n c ng và ph n m m cho h th ng c n c phát tri n
Chuyên gia l0nh v*c (Domain Experts): là nh ng ng i hi u th c ch!t v!n cùng t!t c
nh ng s ph c t p c a h th ng c n tin h#c hoá H# không nh!t thi t ph i là nhà l p trình,
nh ng h# có th giúp nhà l p trình hi u yêu c u t ra i v i h th ng c n phát tri n Quá trình phát tri n ph n m m s& có r!t nhi u thu n l i n u i ng' làm ph n m m có c s tr giúp
c a h#
L p trình viên (Programmer): là nh ng ng i d a trên các phân tích và thi t k vi t
ch ng trình (coding) cho h th ng b%ng ngôn ng l p trình ã c th ng nh!t
Ng /i dùng (User): là i t ng ph c v c a h th ng c n c phát tri n
cho rõ h n, xin l!y ví d v m t v!n n gi n sau:
Ng i bình th ng chúng ta khi nhìn m t chi c xe ô tô th ng s& có m t b c tranh t bên ngoài nh sau:
Trang 9V,n
Hình 1.1: Nhìn v!n ô tô c a ng i bình th ng
Chuyên gia l+nh v c s& giúp nhà phân tích "trình bày l i" v!n nh sau:
Hình 1.2: Nhìn v!n ô tô c a chuyên gia phân tích
Chính vì s tr giúp c a chuyên gia l+nh v c có th óng vai trò r!t quan tr#ng nên trong nh ng giai
o n u c a quá trình phát tri n ph n m m, k t qu phân tích nên c th hi n sao cho d hi u i
v i các chuyên gia l+nh v c ây c'ng là môt trong r!t nhi u lý do khi n cho ph ng pháp h ng i
t ng c nhi u ng i h ng ng
1.2.3 Các giai o n c a Chu Trình Phát Tri n Ph n M m
Chu trình c a m t ph n m m có th c chia thành các giai o n nh sau:
Nghiên c u s b (Preliminary Investigation hay còn g#i là Feasibility Study) Phân tích yêu c u (Analysis)
Thi t k h th ng (Design of the System) Xây d ng ph n m m (Software Construction)
Th nghi m h th ng (System Testing)
Th c hi n, tri n khai (System Implementation)
B o trì, nâng c!p (System Maintenance)
a) Nghiên c u s b':
Câu h i quan tr#ng nh!t khi phát tri n m t h th ng hoàn toàn không ph i câu h i mang tính ph ng pháp lu n Mà c'ng ch)ng ph i câu h i v k, thu t Nó là m t câu h i d ng nh có v/ n gi n,
Trang 10nh ng th t ra c bi t khó tr l i: “ ây có úng là m t h th ng th c hi n không?” áng bu n là chính câu h i này trong th c t th ng ch)ng h c t ra và l i càng không c tr l i M c dù
vi c l m l n v ph ng pháp hay quy t nh sai l m v k, thu t c'ng có th d n t i th!t b i, nh ng
th ng thì d án có th c c u vãn n u có y tài nguyên cùng s c g"ng quên mình c a các nhân viên tài gi i Nh ng s& ch)ng m t ai và m t i u gì c u vãn cho m t h th ng ph n m m hoàn toàn ch)ng c c n t i ho c c g"ng t ng hóa m t quy trình l m l c
Tr c khi b"t tay vào m t d án, b n ph i có m t ý t ng cho nó Ý t ng này i song song v i vi c n"m b"t các yêu c u và xu!t hi n trong giai o n kh i u Nó hoàn t!t m t phát bi u: "H th ng mà chúng ta mong mu n s& làm c nh ng vi c nh sau " Trong su t giai o n này, chúng ta t o nên
m t b c tranh v ý t ng ó, r!t nhi u gi thuy t s& c công nh n hay lo i b Các ho t ng trong
th i gian này th ng bao g m thu th p các ý t ng, nh n bi t r i ro, nh n bi t các giao di n bên ngoài,
nh n bi t các các ch c n(ng chính mà h th ng c n cung c!p, và có th t o m t vài nguyên m u dùng “minh ch ng các khái ni m c a h th ng” Ý t ng có th n t nhi u ngu n khác nhau: khách hàng, chuyên gia l+nh v c, các nhà phát tri n khác, chuyên gia v k, ngh , các b n nghiên c u tính kh thi c'ng nh vi c xem xét các h th ng khác ang t n t i M t khía c nh c n nh"c t i là code vi t trong
th i k0 này th ng s& b "b i”, b i chúng c vi t nh%m m c ích th$m tra hay tr giúp các gi thuy t khác nhau, ch ch a ph i th code c vi t theo k t qu phân tích và thi t k th!u áo
Trong giai #an nghiên c u s b , nhóm phát tri n h th ng c n xem xét các yêu c u c a doanh nghi p (c n dùng h th ng), nh ng ngu n tài nguyên có th s d ng, công ngh c'ng nh c ng ng ng i dùng cùng các ý t ng c a h# i v i h th ng m i Có th th c hi n th o lu n, nghiên c u, xem xét khía c nh th ng m i, phân tích kh n(ng l i-l., phân tích các tr ng h p s d ng và t o các nguyên
m u xây d ng nên m t khái ni m cho h th ng ích cùng v i các m c ích, quy n u tiên và ph m
vi c a nó
Th ng trong giai o n này ng i ta c'ng ti n hành t o m t phiên b n thô c a l ch trình và k ho ch
s d ng tài nguyên
M t giai o n nghiên c u s b thích áng s& l p nên t p h p các yêu c u (dù m c khái quát cao)
i v i m t h th ng kh thi và c mong mu n, k c v ph ng di n k, thu t l n xã h i M t giai
o n nghiên c u s b không c th c hi n tho áng s& d n t i các h th ng không c mong
mu n, "t ti n, b!t kh thi và c nh ngh+a l m l c – nh ng h th ng th ng ch)ng c hoàn t!t hay s d ng
K t qu c a giai o n nghiên c u s b là Báo Cáo K t Qu Nghiên C u Tính Kh Thi Khi h th ng
t ng lai c ch!p nh n d a trên b n báo cáo này c'ng là lúc giai o n Phân tích b"t u
b) Phân tích yêu c u:
Sau khi ã xem xét v tính kh thi c a h th ng c'ng nh t o l p m t b c tranh s b c a d án, chúng
ta b c sang giai o n th ng c coi là quan tr#ng nh!t trong các công vi c l p trình: hi u h th ng
c n xây d ng Ng i th c hi n công vi c này là nhà phân tích
Quá trình phân tích nhìn chung là h qu c a vi c tr l i câu h i "H th ng c n ph i làm gì?" Quá trình phân tích bao g m vi c nghiên c u chi ti t h th ng doanh nghi p hi n th i, tìm cho ra nguyên lý
ho t ng c a nó và nh ng v trí có th c nâng cao, c i thi n Bên c nh ó là vi c nghiên c u xem xét các ch c n(ng mà h th ng c n cung c!p và các m i quan h c a chúng, bên trong c'ng nh v i phía ngoài h th ng Trong toàn b giai o n này, nhà phân tích và ng i dùng c n c ng tác m t thi t
v i nhau xác nh các yêu c u i v i h th ng, t c là các tính n(ng m i c n ph i c a vào h
th ng
Trang 11Nh ng m c tiêu c th c a giai o n phân tích là:
Xác nh h th ng c n ph i làm gì
Nghiên c u th!u áo t!t c các ch c n(ng c n cung c!p và nh ng y u t liên quan Xây d ng m t mô hình nêu b t b n ch!t v!n t m t h ng nhìn có th c (trong i
s ng th c)
Trao nh ngh+a v!n cho chuyên gia l+nh v c nh n s ánh giá, góp ý
K t qu c a giai o n phân tích là b n c T Yêu C u (Requirements Specifications)
c) Thi!t k! h th ng:
Sau giai o n phân tích, khi các yêu c u c th i v i h th ng ã c xác nh, giai o n ti p theo
là thi t k cho các yêu c u m i Công tác thi t k xoay quanh câu h i chính: H th ng làm cách nào
th a mãn các yêu c u ã c nêu trong c T Yêu C u?
M t s các công vi c th ng c th c hi n trong giai o n thi t k :
Nh n bi t form nh p li u tùy theo các thành ph n d li u c n nh p
Nh n bi t reports và nh ng output mà h th ng m i ph i s n sinh Thi t k forms (v& trên gi!y hay máy tính, s d ng công c thi t k )
Nh n bi t các thành ph n d li u và b ng t o database
1 c tính các th t c gi i thích quá trình x lý t input n output
K t qu giai o n thi t k là c T Thi t K (Design Specifications) B n c T Thi t K Chi Ti t s& c chuy n sang cho các l p trình viên th c hi n giai o n xây d ng ph n m m
d) Xây d*ng ph n m m:
ây là giai o n vi t l nh (code) th c s , t o h th ng T ng ng i vi t code th c hi n nh ng yêu c u
ã c nhà thi t k nh s2n C'ng chính ng i vi t code ch u trách nhi m vi t tài li u liên quan n
ch ng trình, gi i thích th t c (procedure) mà anh ta t o nên c vi t nh th nào và lý do cho vi c này
m b o ch ng trình c vi t nên ph i tho mãn m#i yêu c u có ghi tr c trong b n c T Thi t K Chi Ti t, ng i vi t code c'ng ng th i ph i ti n hành th nghi m ph n ch ng trình c a mình Ph n th nghi m trong giai o n này có th c chia thành hai b c chính:
+ Th% nghi m n v1: Ng i vi t code ch y th các ph n ch ng trình c a mình v i d li u
gi (test/dummy data) Vi c này c th c hi n theo m t k ho ch th , c'ng do chính ng i
vi t code so n ra M c ích chính trong giai o n th này là xem ch ng trình có cho ra nh ng
k t qu mong i Giai o n th nghi m n v nhi u khi c g#i là "Th h p tr"ng" (White Box Testing)
+ Th% nghi m n v1 'c l p: Công vi c này do m t thành viên khác trong nhóm m trách
C n ch#n ng i không có liên quan tr c ti p n vi c vi t code c a n v ch ng trình c n th
Trang 12nghi m m b o tính “ c l p” Công vi c th t này c'ng c th c hi n d a trên k
f) Th*c hi n, tri n khai:
Trong giai o n này, h th ng v a phát tri n s& c tri n khai sao cho phía ng i dùng Tr c khi
ng i dùng th t s b"t tay vào s d ng h th ng, nhóm các nhà phát tri n c n t o các file d li u c n thi t c'ng nh hu!n luy n cho ng i dùng, m b o h th ng c s d ng h u hi u nh!t
g) B o trì, nâng c,p:
Tùy theo các bi n i trong môi tr ng s d ng, h th ng có th tr nên l.i th i hay c n ph i c s a
i nâng c!p s d ng có hi u qu Ho t ng b o trì h th ng có th r!t khác bi t tùy theo m c
s a i và nâng c!p c n thi t
S $ t ng quát các giai o"n c a Chu Trình Phát Tri n Ph n M m:
Hình 1.3: S t ng quát các giai o n c a Chu Trình Phát Tri n Ph n M m
Trang 131.3 Ph ng pháp h ng ch c n ng và ph ng pháp h ng i t ng
1.3.1 Ph ng pháp h ng ch c n ng
ây là l i ti p c n truy n th ng c a ngành Công ngh ph n m m Theo l i ti p c n này, chúng ta quan tâm ch y u t i nh ng thông tin mà h th ng s& gi gìn Chúng ta h i ng i dùng xem h# s& c n nh ng thông tin nào, r i chúng ta thi t k ngân hàng d li u ch a nh ng thông tin ó, cung c!p Forms
nh p thông tin và in báo cáo trình bày các thông tin Nói m t cách khác, chúng ta t p trung vào thông tin và không m!y ý n nh ng gì có th x y ra v i nh ng h th ng ó và cách ho t ng ( ng
x ) c a h th ng là ra sao ây là l i ti m c n xoay quanh d li u và ã c áp d ng t o nên hàng ngàn h th ng trong su t nhi u n(m tr i
L i ti p c n xoay quanh d li u là ph ng pháp t t cho vi c thi t k ngân hàng d li u và n"m b"t thông tin, nh ng n u áp d ng cho vi c thi t k ng d ng l i có th khi n phát sinh nhi u khó kh(n M t trong nh ng thách th c l n là yêu c u i v i các h th ng th ng xuyên thay i M t h th ng xoay quanh d li u có th d dàng x lý vi c thay i ngân hàng d li u, nh ng l i khó th c thi nh ng thay
i trong nguyên t"c nghi p v hay cách ho t ng c a h th ng
Ph ng pháp h ng i t ng ã c phát tri n tr l i cho v!n ó V i l i ti p c n h ng i
t ng, chúng ta t p trung vào c hai m t c a v!n : thông tin và cách ho t ng
1.3.2 Ph ng pháp h ng i t ng
H ng i t ng là thu t ng thông d ng hi n th i c a ngành công nghi p ph n m m Các công ty
ang nhanh chóng tìm cách áp d ng và tích h p công ngh m i này vào các ng d ng c a h# Th t s
là a ph n các ng d ng hi n th i u mang tính h ng i t ng Nh ng h ng i t ng có ngh+a là gì?
L i ti p c n h ng i t ng là m t l i t duy v v!n theo l i ánh x các thành ph n trong bài toán vào các i t ng ngoài i th c V i l i ti p c n này, chúng ta chia ng d ng thành các thành ph n
nh , g#i là các i t ng, chúng t ng i c l p v i nhau Sau ó ta có th xây d ng ng d ng b%ng cách ch"p các i t ng ó l i v i nhau Hãy ngh+ n trò ch i xây lâu ài b%ng các m u g B c u tiên là t o hay mua m t vài lo i m u g c(n b n, t ó t o nên các kh i xây d ng c(n b n c a mình
M t khi ã có các kh i xây d ng ó, b n có th ch"p ráp chúng l i v i nhau t o lâu ài T ng t
nh v y m t khi ã xây d ng m t s i t ng c(n b n trong th gi i máy tính, b n có th ch"p chúng
l i v i nhau t o ng d ng c a mình
Xin l!y m t ví d n gi n: v!n rút ti n m t t i nhà b(ng Các “m u g.“ thành ph n ây s& là ánh
x c a các i t ng ngoài i th c nh tài kho n, nhân viên, khách hàng, …Và ng d ng s& c s&
c nh n di n c'ng nh gi i áp xoay quanh các i t ng ó
1.4 u i m c a mô hình h ng i t ng
1.4.1 Tính tái s d ng (Reusable)
Ph ng pháp phân tích và thi t k h ng i t ng th c hi n theo các thu t ng và khái ni m c a
ph m vi l+nh v c ng d ng (t c là c a doanh nghi p hay n v mà h th ng t ng lai c n ph c v ), nên nó t o s ti p c n t ng ng gi a h th ng và v!n th c ngoài i Trong ví d bán xe ô tô, m#i giai o n phân tích thi t k và th c hi n u xoay quanh các khái ni m nh khách hàng, nhân viên bán
Trang 14hàng/ng i dùng, nhà phân tích, nhà thi t k , nhà phát tri n, chuyên gia l+nh v c, chuyên gia k, thu t, nên l i ti p c n này khi n cho vi c giao ti p gi a h# v i nhau c d dàng h n
M t trong nh ng u i m quan tr#ng b c nh!t c a ph ng pháp phân tích và thi t k h ng i t ng
là tính tái s d ng: b n có th t o các thành ph n ( i t ng) m t l n và dùng chúng nhi u l n sau ó
Gi ng nh vi c b n có th tái s d ng các kh i xây d ng (hay b n sao c a nó ) trong m t toà lâu ài,
m t ngôi nhà , m t con tàu v' tr , b n c'ng có th tái s d ng các thành ph n ( i t ng) c(n b n trong các thi t k h ng i t ng c'ng nh code c a m t h th ng k toán, h th ng ki m kê, ho c
m t h th ng t hàng
Vì các i t ng ã c th nghi m k, càng trong l n dùng tr c ó, nên kh n(ng tái s d ng i
t ng có tác d ng gi m thi u l.i và các khó kh(n trong vi c b o trì, giúp t(ng t c thi t k và phát tri n ph n m m
Ph ng pháp h ng i t ng giúp chúng ta x lý các v!n ph c t p trong phát tri n ph n m m và
t o ra các th h ph n m m có kh n(ng thích ng và b n ch"c
1.4.2 Các giai o n c a chu trình phát tri n ph n m m v i mô hình h ng i t ng
Phân tích h ng i t ng (Object Oriented Analysis - OOA):
Là giai #an phát tri n m t mô hình chính xác và súc tích c a v!n , có thành ph n là các i t ng
ta có th mô hình hóa các th c th thu c m t v!n có th c mà v n gi c c!u trúc, quan h c'ng
nh hành vi c a chúng
i v i ví d m t phòng bán ô tô, giai o n OOA s& nh n bi t c các th c th nh :
Khách hàng
Ng i bán hàng Phi u t hàng Phi u (hoá n) thanh toán
Xe ô tô
T ng tác và quan h gi a các i t ng trên là:
Ng i bán hàng d n khách hàng tham quan phòng tr ng bày xe
Khách hàng ch#n m t chi c xe
Trang 15Khách hàng vi t phi u t xe Khách hàng tr ti n xe
Xe ô tô c giao n cho khách hàng
i v i ví d nhà b(ng l/, giai o n OOA s& nh n bi t c các th c th nh :
Lo i tài kho n: ATM (rút ti n t ng), Savings (ti t ki m), Current (bình th ng), Fixed ( u t ),
Khách hàng Nhân viên Phòng máy tính
T ng tác và quan h gi a các i t ng trên:
M t khách hàng m i m m t tài kho n ti t ki m Chuy n ti n t tài kho n ti t ki m sang tài kho n u t Chuy n ti n t tài kho n ti t ki m sang tài kho n ATM Xin chú ý là ây, nh ã nói, ta chú ý n c hai khía c nh: thông tin và cách ho t ng c a h th ng
(t c là nh ng gì có th x y ra v i nh ng thông tin ó)
L i phân tích b%ng ki u ánh x " i th c” vào máy tính nh th th t s là u i m l n c a ph ng pháp h ng i t ng
Thi!t k! h ng i t ng (Object Oriented Design - OOD):
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 Các l p là thành viên c a m t cây c!u trúc v i m i quan h th a k
M c ích c a giai o n OOD là t o thi t k d a trên k t qu c a giai o n OOA, d a trên nh ng quy
nh phi ch c n(ng, nh ng yêu c u v môi tr ng, nh ng yêu c u v kh n(ng th c thi, OOD t p trung vào vi c c i thi n k t qu c a OOA, t i u hóa gi i pháp ã c cung c!p trong khi v n m
b o tho mãn t!t c các yêu c u ã c xác l p
Trong giai o n OOD, nhà thi t k nh ngh+a các ch c n(ng, th t c (operations), thu c tính (attributes) c'ng nh m i quan h c a m t hay nhi u l p (class) và quy t nh chúng c n ph i c
i u ch*nh sao cho phù h p v i môi tr ng phát tri n ây c'ng là giai o n thi t k ngân hàng d
li u và áp d ng các k, thu t tiêu chu$n hóa
V cu i giai o n OOD, nhà thi t k a ra m t lo t các bi u (diagram) khác nhau Các bi u này
có th c chia thành hai nhóm chính là T+nh và ng Các bi u t+nh bi u th các l p và i t ng, trong khi bi u ng bi u th t ng tác gi a các l p và ph ng th c ho t ng chính xác c a chúng Các l p ó sau này có th c nhóm thành các gói (Packages) t c là các n v thành ph n nh h n
c a ng d ng
L p trình h ng i t ng (Object Oriented Programming - OOP):
Trang 16Giai o n xây d ng ph n m m có th c th c hi n s d ng k, thu t l p trình h ng i t ng ó là
ph ng th c th c hi n thi t k h ng i t ng qua vi c s d ng m t ngôn ng l p trình có h tr các tính n(ng h ng i t ng M t vài ngôn ng h ng i t ng th ng c nh"c t i là C++ và Java
K t qu chung cu c c a giai o n này là m t lo t các code ch y c, nó ch* c a vào s d ng sau khi ã tr i qua nhi u vòng quay c a nhi u b c th nghi m khác nhau
1.5 Ph n câu h i
H i: M t s t p h p d li u ph c t p nh!t nh khi c trình bày b%ng th s& truy n t i n
ng i #c nhi u thông tin h n so v i các d li u thô?
Trang 17CH NG 2: NGÔN NG MÔ HÌNH HÓA TH NG NH T LÀ GÌ?
2.1 Gi i thi u UML
2.1.1 Mô hình hóa h th ng ph n m m
Nh ã trình bày ph n tr c, m c tiêu c a giai o n phân tích h th ng là s n xu!t ra m t mô hình
t ng th c a h th ng c n xây d ng Mô hình này c n ph i c trình bày theo h ng nhìn (View) c a khách hàng hay ng i s d ng và làm sao h# hi u c Mô hình này c'ng có th c s d ng xác nh các yêu c u c a ng i dùng i v i h th ng và qua ó giúp chúng ta ánh giá tính kh thi
c a d án
T m quan tr#ng c a mô hình ã c l+nh h i m t cách th!u áo trong h u nh t!t c các ngành khoa h#c k, thu t t nhi u th k3 nay B!t k0 âu, khi mu n xây d ng m t v t th nào ó, u tiên ng i
ta ã t o nên các b n v& quy t nh c ngo i hình l n ph ng th c ho t ng c a nó Ch)ng h n các
b n v& k, thu t th ng g p là m t d ng mô hình quen thu c Mô hình nhìn chung là m t cách mô t
c a m t v t th nào ó V t ó có th t n t i trong m t s giai o n nh!t nh, dù ó là giai o n thi t
k hay giai o n xây d ng ho c ch* là m t k ho ch Nhà thi t k c n ph i t o ra các mô hình mô t t!t
c các khía c nh khác nhau c a s n ph$m Ngoài ra, m t mô hình có th c chia thành nhi u h ng nhìn, m.i h ng nhìn trong s chúng s& mô t m t khía c nh riêng bi t c a s n ph$m hay h th ng c n
c xây d ng M t mô hình c'ng có th c xây d ng trong nhi u giai o n và m.i giai o n, mô hình s& c b sung thêm m t s chi ti t nh!t nh
Mô hình th ng c mô t trong ngôn ng tr c quan, i u ó có ngh+a là a ph n các thông tin c
th hi n b%ng các ký hi u h#a và các k t n i gi a chúng, ch* khi c n thi t m t s thông tin m i c
bi u di n d ng v(n b n; Theo úng nh câu ng n ng "M t b c tranh nói nhi u h n c ngàn t " T o
mô hình cho các h th ng ph n m m tr c khi th c s xây d ng nên chúng, ã tr thành m t chu$n
m c trong vi c phát tri n ph n m m và c ch!p nh n trong c ng ng làm ph n m m gi ng nh trong b!t k0 m t ngành khoa h#c k, thu t nào khác Vi c bi u di n mô hình ph i thoã mãn các y u t sau:
Chính xác (accurate): Mô t úng h th ng c n xây d ng
ng nh!t (consistent): Các view khác nhau không c mâu thu$n v i nhau
Có th hi u c (understandable): Cho nh ng ng i xây d ng l n s d ng
D thay i (changeable)
D dàng liên l c v i các mô hình khác
Có th nói thêm r%ng mô hình là m t s n gi n hoá hi n th c Mô hình c xây d ng nên chúng
ta d dàng hi u và hi u t t h n h th ng c n xây d ng T o mô hình s& giúp cho chúng ta hi u th!u áo
m t h th ng ph c t p trong s toàn th c a nó
Nói tóm l i, mô hình hóa m t h th ng nh%m m c ích:
Hình dung m t h th ng theo th c t hay theo mong mu n c a chúng ta
Trang 18hi n Cùng v i chúng, n y sinh nhu c u mô hình hoá các h th ng ph n m m theo h ng i t ng Và
m t vài trong s nh ng ngôn ng mô hình hoá xu!t hi n nh ng n(m u th p k3 90 c nhi u ng i dùng là:
Grady Booch’s Booch Modeling Methodology James Rambaugh’s Object Modeling Technique – OMT Ivar Jacobson’s OOSE Methodology
Hewlett- Packard’s Fusion Coad and Yordon’s OOA and OOD 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, khi n n y ra cu c tranh lu n ph ng pháp nào là t t nh!t ây là cu c tranh lu n khó có câu tr l i, b i t!t c các ph ng pháp trên u có nh ng i m m nh và i m y u riêng Vì th , các nhà phát tri n ph n m m nhi u kinh nghi m th ng s d ng ph i h p các i m m nh c a m.i
ph ng pháp cho ng d ng c a mình Trong th c t , s khác bi t gi a các ph ng pháp ó h u nh không áng k và theo cùng ti n trình th i gian, t!t c nh ng ph ng pháp trên ã ti m c n l i và b sung l n cho nhau Chính hi n th c này ã c nh ng ng i tiên phong trong l+nh v c mô hình hoá
h ng i t ng nh n ra và h# quy t nh 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 cho l+nh v c công ngh ph n m m
2.1.3 S ra i c a UML
Trong b i c nh trên, ng i ta nh n th!y c n thi t ph i cung c!p m t ph ng pháp ti m c n c chu$n hoá và th ng nh!t cho vi c mô hình hoá h ng i t ng Yêu c u c th là a ra m t t p h p chu$n hoá các ký hi u (Notation) và các bi u (Diagram) n"m b"t các quy t nh v m t thi t k m t cách rõ ràng, rành m ch ã có ba công trình tiên phong nh"m t i m c tiêu ó, chúng c th c hi n
d i s lãnh o c a James Rumbaugh, Grady Booch và Ivar Jacobson Chính nh ng c g"ng này d n
n k t qu là xây d ng c m t Ngôn Ng Mô Hình Hoá Th ng Nh!t (Unifield Modeling Language – UML)
UML là m t ngôn ng mô hình hoá th ng nh!t có ph n chính bao g m nh ng ký hi u hình h#c, c các ph ng pháp h ng i t ng s d ng th hi n và miêu t các thi t k c a m t h th ng Nó là
m t ngôn ng c t , tr c quan hoá, xây d ng và làm s u li u cho nhi u khía c nh khác nhau c a
m t h th ng có n ng ph n m m cao UML có th c s d ng làm công c giao ti p gi a ng i dùng, nhà phân tích, nhà thi t k và nhà phát tri n ph n m m
Trang 19Trong quá trình phát tri n có nhi u công ty ã h tr và khuy n khích phát tri n UML có th k t i nh : Hewlett Packard, Microsoft, Oracle, IBM, Unisys
2.1.4 UML (Unifield Modeling Language)
Ngôn ng mô hình hóa th ng nh!t (Unifield Modeling Language – UML) là m t ngôn ng bi u di n
mô hình theo h ng i t ng c xây d ng b i ba tác gi trên v i ch ích là:
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 m t k t n i 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, có 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
2.1.5 Ph ng pháp và các ngôn ng mô hình hoá
Ph ng pháp hay ph ng th c (method) là m t cách tr c ti p c!u trúc hoá s suy ngh+ và hành ng
c a con ng i Ph ng pháp cho ng i s d ng bi t ph i làm gì, làm nh th nào, khi nào và t i sao (m c ích c a hành ng) Ph ng pháp ch a các mô hình (model), các mô hình c dùng mô t
nh ng gì s d ng cho vi c truy n t k t qu trong quá trình s d ng ph ng pháp i m khác nhau chính gi a m t ph ng pháp và m t ngôn ng mô hình hoá (modeling language) là ngôn ng mô hình hoá không có m t ti n trình (process) hay các câu l nh (instruction) mô t nh ng công vi c ng i s
d ng c n làm
M t mô hình c bi u di n theo m t ngôn ng mô hình hoá Ngôn ng mô hình hoá bao g m các ký
hi u – nh ng bi u t ng c dùng trong mô hình – và m t t p các quy t"c ch* cách s d ng chúng Các quy t"c này bao g m:
Syntactic (Cú pháp): cho bi t hình d ng các bi u t ng và cách k t h p chúng trong ngôn ng
Semantic (Ng ngh+a): cho bi t ý ngh+a c a m.i bi u t ng, chúng c hi u th nào khi n%m trong ho c không n%m trong ng c nh c a các bi u t ng khác
Pragmatic : nh ngh+a ý ngh+a c a bi u t ng sao cho m c ích c a mô hình c
th hi n và m#i ng i có th hi u c
2.2 UML trong phân tích thi!t k! h th ng
UML có th c s d ng trong nhi u giai o n, t phát tri n, thi t k cho t i th c hi n và b o trì Vì
m c ích chính c a ngôn ng này là dùng các bi u h ng i t ng mô t h th ng nên mi n
ng d ng c a UML bao g m nhi u lo i h th ng khác nhau nh :
H th ng th ng tin (Information System): C!t gi , l!y, bi n i bi u di n thông tin cho
ng i s d ng X lý nh ng kho ng d li u l n có các quan h ph c t p , mà chúng c l u
tr trong các c s d li u quan h hay h ng i t ng
Trang 20H th ng k2 thu t (Technical System): X lý và i u khi n các thi t b k, thu t nh vi n
thông, h th ng quân s , hay các quá trình công nghi p ây là lo i thi t b ph i x lý các giao
ti p c bi t , không có ph n m m chu$n và th ng là các h th ng th i gian th c (real time)
H th ng nhúng (Embeded System): Th c hi n trên ph n c ng g"n vào các thi t b nh i n
tho i di ng, i u khi n xe h i, … i u này c th c hi n b%ng vi c l p trình m c th!p v i
h tr th i gian th c Nh ng h th ng này th ng không có các thi t b nh màn hình +a c ng,
…
H th ng phân b ( Distributed System): c phân b trên m t s máy cho phép truy n d
li u t n i này n n i khác m t cách d dàng Chúng òi h i các c ch liên l c ng b
m b o toàn v-n d li u và th ng c xây d ng trên m t s các k, thu t i t ng nh CORBA, COM/DCOM, hay Java Beans/RMI
H th ng Giao d1ch (Business System): Mô t m c ích, tài nguyên (con ng i, máy tính,
…), các quy t"c (lu t pháp, chi n thu t kinh doanh, c ch , …), và công vi c ho t ng kinh doanh
Ph n m m h th ng (System Software): nh ngh+a c s h t ng k, thu t cho ph n m m
khác s d ng, ch)ng h n nh h i u hành, c s d li u, giao di n ng i s d ng
2.3 UML và các giai o"n phát tri n h th ng
Preliminary Investigation: use cases th hi n các yêu c u c a ng i dùng Ph n miêu t use
case xác nh các yêu c u, ph n diagram th hi n m i quan h và giao ti p v i h th ng
Analysis: M c ích chính c a giai #an này là tr u t ng hóa và tìm hi u các c c!u có
trong ph m vi bài toán Class diagrams trên bình di n tr u t ng hóa các th c th ngoài i
th c c s d ng làm rõ s t n t i c'ng nh m i quan h c a chúng Ch* nh ng l p (class) n%m trong ph m vi bài toán m i áng quan tâm
Design: K t qu ph n analysis c phát tri n thành gi i pháp k, thu t Các l p c mô hình hóa chi ti t cung c!p h t ng k, thu t nh giao di n, n n t ng cho database, … K t qu
ph n Design là các c t chi ti t cho giai o n xây d ng ph n m m
Development: Mô hình Design c chuy n thành code Programmer s d ng các UML diagrams trong giai o n Design hi u v!n và t o code
Testing: S d ng các UML diagrams trong các giai o n tr c Có 4 hình th c ki m tra h
th ng:
Unit testing (class diagrams & class specifications) : ki m tra t ng n th ,
c dùng ki m tra các l p hay các nhóm n th
Integration testing (integration diagrams & collaboration diagrams) : ki m tra
tích h p là ki m tra k t h p các component v i các l p xem chúng ho t ng
v i nhau có úng không
ch c n(ng mà ng i s d ng yêu c u hay không
Trang 21Acceptance testing: Ki m tra tính ch!p nh n c c a h th ng, th ng c
th c hi n b i khách hàng, vi c ki m tra này th c hi n t ng t nh ki m tra h
th ng
2.4 Ph n câu h i
H i: UML (Unifield Modeling Language) là gì?
áp: Ngôn ng mô hình hóa th ng nh!t – UML là m t ngôn ng bi u di n mô hình theo
h ng i t ng
H i: i m khác nhau c b n gi a ph ng pháp (method) và m t ngôn ng mô hình hoá (modeling
language) là gì?
áp: i m khác nhau c b n gi a m t ph ng pháp và m t ngôn ng mô hình hoá là ngôn
ng mô hình hoá không có m t ti n trình (process) hay các câu l nh (instruction) mô t nh ng công vi c ng i s d ng c n làm mà nó bao g m các ký hi u – nh ng bi u t ng c dùng trong mô hình – và m t t p các quy t"c ch* cách s d ng chúng
Trang 22CH NG 3: KHÁI QUÁT V UML
3.1 UML và các giai o"n c a chu trình phát tri n ph n m m
3.1.1 Giai o n nghiên c u s b
UML a ra khái ni m Use Case n"m b"t các yêu c u c a khách hàng (ng i s d ng) UML s
d ng bi u Use case (Use Case Diagram) nêu b t m i quan h c'ng nh s giao ti p v i h th ng Qua ph ng pháp mô hình hóa Use case, các tác nhân (Actor) bên ngoài quan tâm n h th ng s&
c mô hình hóa song song v i ch c n(ng mà h# òi h i t phía h th ng (t c là Use case) Các tác nhân và các Use case c mô hình hóa cùng các m i quan h và c miêu t trong bi u Use case
c a UML M.i m t Use case c mô t trong tài li u, và nó s& c t các yêu c u c a khách hàng: Anh ta hay ch ta ch i i u gì phía h th ng mà không h ý n vi c ch c n(ng này s& c
th c thi ra sao
3.1.2 Giai o n phân tích
Giai o n phân tích quan tâm n quá trình tr u t ng hóa u tiên (các l p và các i t ng) c'ng
nh c ch hi n h u trong ph m vi v!n Sau khi nhà phân tích ã nh n bi t c các l p thành ph n
c a mô hình c'ng nh m i quan h gi a chúng v i nhau, các l p cùng các m i quan h ó s& c miêu t b%ng công c bi u l p (class diagram) c a UML S c ng tác gi a các l p nh%m th c hi n các Use case c'ng s& c miêu t nh vào các mô hình ng (dynamic models) c a UML Trong giai
o n phân tích, ch* duy nh!t các l p có t n t i trong ph m vi v!n (các khái ni m i th c) là c
mô hình hóa Các l p k, thu t nh ngh+a chi ti t c'ng nh gi i pháp trong h th ng ph n m m, ví d
nh các l p cho giao di n ng i dùng, cho ngân hàng d li u, cho s giao ti p, trùng h p, v.v , ch a
ph i là m i quan tâm c a giai o n này
3.1.3 Giai o n thi t k
Trong giai o n này, k t qu c a giai o n phân tích s& c m r ng thành m t gi i pháp k, thu t Các l p m i s& c b sung t o thành m t h t ng c s k, thu t: Giao di n ng i dùng, các ch c n(ng l u tr các i t ng trong ngân hàng d li u, giao ti p v i các h th ng khác, giao di n v i các thi t b ngo i vi và các máy móc khác trong h th ng, Các l p thu c ph m vi v!n có t giai
o n phân tích s& c "nhúng" vào h t ng c s k, thu t này, t o ra kh n(ng thay i trong c hai
ph ng di n: Ph m vi v!n và h t ng c s Giai o n thi t k s& a ra k t qu là b n c t chi ti t cho giai o n xây d ng h th ng
c g"ng né tránh vi c ngay l p t c bi n i các mô hình này thành các dòng code Trong nh ng giai
o n tr c, mô hình c s d ng d hi u, d giao ti p và t o nên c!u trúc c a h th ng; vì v y, v i
Trang 23vàng a ra nh ng k t lu n v vi c vi t code có th s& thành m t tr ng i cho vi c t o ra các mô hình chính xác và n gi n Giai o n xây d ng là m t giai o n riêng bi t, n i các mô hình c chuy n thành code
3.1.5 Th nghi m
Nh ã trình bày trong ph n Chu Trình Phát Tri n Ph n M m, m t h th ng ph n m m th ng c
th nghi m qua nhi u giai o n và v i nhi u nhóm th nghi m khác nhau Các nhóm s d ng nhi u
lo i bi u UML khác nhau làm n n t ng cho công vi c c a mình: Th nghi m n v s d ng bi u
l p (class diagram) và c t l p, th nghi m tích h p th ng s d ng bi u thành ph n (component diagram) và bi u c ng tác (collaboration diagram), và giai o n th nghi m h th ng s
d ng bi u Use case (use case diagram) m b o h th ng có ph ng th c ho t ng úng nh ã
c nh ngh+a t ban u trong các bi u này
3.2 Các thành ph n c a ngôn ng# UML
Ngôn ng UML bao g m m t lo t các ph n t h#a (graphic element) có th c k p h p v i nhau
t o ra các bi u B i ây là m t ngôn ng , nên UML c'ng có các nguyên t"c k t h p các ph n
t ó
M t s nh ng thành ph n ch y u c a ngôn ng UML:
H ng nhìn (view): H ng nhìn ch* ra nh ng khía c nh khác nhau c a h th ng c n ph i
c mô hình hóa M t h ng nhìn không ph i là m t b n v&, mà là m t s tr u t ng hóa bao
g m m t lo t các bi u khác nhau Ch* qua vi c nh ngh+a c a m t lo t các h ng nhìn khác nhau, m.i h ng nhìn ch* ra m t khía c nh riêng bi t c a h th ng, ng i ta m i có th t o
d ng nên m t b c tranh hoàn thi n v h th ng C'ng chính các h ng nhìn này n i k t ngôn
ng mô hình hóa v i quy trình c ch#n cho giai o n phát tri n
Bi u (diagram): Bi u là các hình v& miêu t n i dung trong m t h ng nhìn UML có
t!t c 9 lo i bi u khác nhau c s d ng trong nh ng s k t h p khác nhau cung c!p t!t
c các h ng nhìn c a m t h th ng
g#i là các ph n t mô hình, th hi n các khái ni m h ng i t ng quen thu c Ví d nh l p,
i t ng, thông i p c'ng nh các quan h gi a các khái ni m này, bao g m c liên k t, ph thu c, khái quát hóa M t ph n t mô hình th ng c s d ng trong nhi u bi u khác nhau,
nh ng nó luôn luôn có ch* m t ý ngh+a và m t kí hi u
C ch chung: C ch chung cung c!p thêm nh ng l i nh n xét b sung, các thông tin c'ng
nh các quy t"c ng pháp chung v m t ph n t mô hình; chúng còn cung c!p thêm các c ch
có th m r ng ngôn ng UML cho phù h p v i m t ph ng pháp xác nh (m t quy trình,
Trang 24ph i c miêu t v i m t lo t các khía c nh khác nhau: V m t ch c n(ng (c!u trúc t+nh c a nó c'ng
nh các t ng tác ng), v m t phi ch c n(ng (yêu c u v th i gian, v áng tin c y, v quá trình
th c thi, v.v và v.v.) c'ng nh v khía c nh t ch c (t ch c làm vi c, ánh x nó vào các code module, ) Vì v y m t h th ng th ng c miêu t trong m t lo t các h ng nhìn khác nhau, m.i h ng nhìn s& th hi n m t b c nh ánh x c a toàn b h th ng và ch* ra m t khía c nh riêng c a h th ng
Hình 3.1- Các View trong UML
M.i m t h ng nhìn c miêu t trong m t lo t các bi u , ch a ng các thông tin nêu b t khía
c nh c bi t ó c a h th ng Trong th c t khi phân tích và thi t k r!t d x y ra s trùng l p thông tin, cho nên m t bi u trên th t t có th là thành ph n c a nhi u h ng nhìn khác nhau Khi nhìn h
th ng t nhi u h ng nhìn khác nhau, t i m t th i i m có th ng i ta ch* t p trung vào m t khía c nh
c a h th ng M t bi u trong m t h ng nhìn c th nào ó c n ph i n gi n t o i u
ki n giao ti p d dàng, dính li n v i các bi u khác c'ng nh các h ng nhìn khác, làm sao cho
b c tranh toàn c nh c a h th ng c miêu t b%ng s k t h p t!t c các thông tin t t!t c các h ng nhìn M t bi u ch a các kí hi u hình h#c mô t các ph n t mô hình c a h th ng UML có t!t c các h ng nhìn sau:
H ng nhìn Use case (use case view) : ây là h ng nhìn ch* ra khía c nh ch c n(ng c a m t
h th ng, nhìn t h ng tác nhân bên ngoài
H ng nhìn logic (logical view): ch* ra ch c n(ng s& c thi t k bên trong h th ng nh th nào, qua các khái ni m v c!u trúc t+nh c'ng nh ng x ng c a h th ng
H ng nhìn thành ph n (component view): ch* ra khía c nh t ch c c a các thành ph n code
H ng nhìn song song (concurrency view): ch* ra s t n t i song song/ trùng h p trong h
th ng, h ng n v!n giao ti p và ng b hóa trong h th ng
H ng nhìn tri n khai (deployment view): ch* ra khía c nh tri n khai h th ng vào các ki n trúc v t lý (các máy tính hay trang thi t b c coi là tr m công tác)
Khi b n ch#n công c v& bi u , hãy ch#n công c nào t o i u ki n d dàng chuy n t h ng nhìn này sang h ng nhìn khác Ngoài ra, cho m c ích quan sát m t ch c n(ng s& c thi t k nh th nào, công c này c'ng ph i t o i u ki n d dàng cho b n chuy n sang h ng nhìn Use case ( xem
ch c n(ng này c miêu t nh th nào t phía tác nhân), ho c chuy n sang h ng nhìn tri n khai ( xem ch c n(ng này s& c phân b ra sao trong c!u trúc v t lý - Nói m t cách khác là nó có th n%m trong máy tính nào)
Trang 25Ngoài các h ng nhìn k trên, ngành công nghi p ph n m m còn s d ng c các h ng nhìn khác, ví
d h ng nhìn t+nh- ng, h ng nhìn logic-v t lý, quy trình nghi p v (workflow) và các h ng nhìn khác UML không yêu c u chúng ta ph i s d ng các h ng nhìn này, nh ng ây c'ng chính là nh ng
h ng nhìn mà các nhà thi t k c a UML ã ngh+ t i, nên có kh n(ng nhi u công c s& d a trên các
h ng nhìn ó
3.3.1 H ng nhìn Use case (Use case View)
H ng nhìn Use case miêu t ch c n(ng c a h th ng s& ph i cung c!p do c tác nhân t bên ngoài mong i Tác nhân là th c th t ng tác v i h th ng; ó có th là m t ng i s d ng ho c là m t h
th ng khác H ng nhìn Use case là h ng nhìn dành cho khách hàng, nhà thi t k , nhà phát tri n và
ng i th nghi m; nó c miêu t qua các bi u Use case (use case diagram) và th*nh tho ng c'ng bao g m c các bi u ho t ng (activity diagram) Cách s d ng h th ng nhìn chung s& c miêu
t qua m t lo t các Use case trong h ng nhìn Use case, n i m.i m t Use case là m t l i miêu t mang tính c thù cho m t tính n(ng c a h th ng (có ngh+a là m t ch c n(ng c mong i)
H ng nhìn Use case mang tính trung tâm, b i nó t ra n i dung thúc $y s phát tri n các h ng nhìn khác M c tiêu chung c a h th ng là cung c!p các ch c n(ng miêu t trong h ng nhìn này – cùng v i m t vài các thu c tính mang tính phi ch c n(ng khác – vì th h ng nhìn này có nh h ng
n t!t c các h ng nhìn khác H ng nhìn này c'ng c s d ng th$m tra (verify) h th ng qua
vi c th nghi m xem h ng nhìn Use case có úng v i mong i c a khách hàng (H i: " ây có ph i là
th b n mu n") c'ng nh có úng v i h th ng v a c hoàn thành (H i: "H th ng có ho t ng
nh ã c t ?”)
3.3.2 H ng nhìn logic (Logical View)
H ng nhìn logic miêu t ph ng th c mà các ch c n(ng c a h th ng s& c cung c!p Ch y u nó
c s d ng cho các nhà thi t k và nhà phát tri n Ng c l i v i h ng nhìn Use case, h ng nhìn logic nhìn vào phía bên trong c a h th ng Nó miêu t k c c!u trúc t+nh (l p, i t ng, và quan h ) c'ng nh s t ng tác ng s& x y ra khi các i t ng g i thông i p cho nhau cung c!p ch c n(ng ã nh s2n H ng nhìn logic nh ngh+a các thu c tính nh tr ng t n (persistency) ho c song song (concurrency), c'ng nh các giao di n c'ng nh c!u trúc n i t i c a các l p
C!u trúc t+nh c miêu t b%ng các bi u l p (class diagram) và bi u i t ng (object diagram) Quá trình mô hình hóa ng c miêu t trong các bi u tr ng thái (state diagram), bi u trình t (sequence diagram), bi u t ng tác (collaboration diagram) và bi u ho t ng (activity diagram)
3.3.3 H ng nhìn thành ph n (Component View)
Là m t l i miêu t c a vi c th c thi các modul c'ng nh s ph thu c gi a chúng v i nhau Nó th ng
c s d ng cho nhà phát tri n và th ng bao g m nhi u bi u thành ph n Thành ph n ây là các modul l nh thu c nhi u lo i khác nhau, s& c ch* ra trong bi u cùng v i c!u trúc c'ng nh s ph thu c c a chúng Các thông tin b sung v các thành ph n, ví d nh v trí c a tài nguyên (trách nhi m
i v i m t thành ph n), ho c các thông tin qu n tr khác, ví d nh m t b n báo cáo v ti n trình c a công vi c c'ng có th c b sung vào ây
Trang 263.3.4 H ng nhìn song song (Concurrency View)
H ng nhìn song song nh"m t i s chia h th ng thành các qui trình (process) và các b x lý (processor) Khía c nh này, v n là m t thu c tính phi ch c n(ng c a h th ng, cho phép chúng ta s
d ng m t cách h u hi u các ngu n tài nguyên, th c thi song song, c'ng nh x lý các s ki n không
ng b t môi tr ng Bên c nh vi c chia h th ng thành các ti u trình có th c th c thi song song, h ng nhìn này c'ng ph i quan tâm n v!n giao ti p và ng b hóa các ti u trình ó
H ng nhìn song song giành cho nhà phát tri n và ng i tích h p h th ng, nó bao g m các bi u
ng (tr ng thái, trình t , t ng tác và ho t ng) cùng các bi u th c thi (bi u thành ph n và
bi u tri n khai)
3.3.5 H ng nhìn tri n khai (Deployment View)
Cu i cùng, h ng nhìn tri n khai ch* cho chúng ta s tri n khai v m t v t lý c a h th ng, ví d
nh các máy tính c'ng nh các máy móc và s liên k t gi a chúng v i nhau H ng nhìn tri n khai giành cho các nhà phát tri n, ng i tích h p c'ng nh ng i th nghi m h th ng và c th hi n b%ng các bi u tri n khai H ng nhìn này c'ng bao g m s ánh x các thành ph n c a h th ng vào c!u trúc v t lý; ví d nh ch ng trình nào hay i t ng nào s& c th c thi trên máy tính nào
3.4 Bi u $ (diagram)
Bi u là các hình v& bao g m các ký hi u ph n t mô hình hóa c s"p x p minh h#a m t thành
ph n c th hay m t khía c nh c th c a h th ng M t mô hình h th ng th ng có nhi u lo i bi u , m.i lo i có nhi u bi u khác nhau M t bi u là m t thành ph n c a m t h ng nhìn c th ; và khi c v& ra, nó th ng th ng c'ng c x p vào m t h ng nhìn M t khác, m t s lo i bi u
có th là thành ph n c a nhi u h ng nhìn khác nhau, tùy thu c vào n i dung c a bi u
Ph n sau miêu t các khái ni m c(n b n n%m %ng sau m.i lo i bi u T!t c các chi ti t v bi u ,
ng c nh c a chúng, ý ngh+a chính xác c a chúng và s t ng tác gi a chúng v i nhau c miêu t chi ti t trong các ch ng sau (mô hình i t ng – mô hình ng) Các bi u l!y làm ví d ây
c l!y ra t nhi u lo i h th ng khác nhau ch* ra nét phong phú và kh n(ng áp d ng r ng kh"p
c a ULM
3.4.1 Bi u Use case (Use Case Diagram)
M t bi u Use case ch* ra m t s l ng các tác nhân ngo i c nh và m i liên k t c a chúng i v i Use case mà h th ng cung c!p (nhìn hình 3.2) M t Use case là m t l i miêu t c a m t ch c n(ng mà
h th ng cung c!p L i miêu t Use case th ng là m t v(n b n tài li u, nh ng kèm theo ó c'ng có
th là m t bi u ho t ng Các Use case c miêu t duy nh!t theo h ng nhìn t ngoài vào c a các tác nhân (hành vi c a h th ng theo nh s mong i c a ng i s d ng), không miêu t ch c n(ng
c cung c!p s& ho t ng n i b bên trong h th ng ra sao Các Use case nh ngh+a các yêu c u v
m t ch c n(ng i v i h th ng Các bi u Use case s& c miêu t chi ti t h n trong ch ng 4 (Use case)
Trang 27Hình 3.2- Bi u use case c a m t công ty b o hi m
3.4.2 Bi u l p (Class Diagram)
M t bi u l p ch* ra c!u trúc t+nh c a các l p trong h th ng (nhìn hình 3.3) Các l p là i di n cho các “v t” c x lý trong h th ng Các l p có th quan h v i nhau trong nhi u d ng th c: liên k t (associated - c n i k t v i nhau), ph thu c (dependent - m t l p này ph thu c vào l p khác), chuyên bi t hóa (specialized - m t l p này là m t k t qu chuyên bi t hóa c a l p khác), hay óng gói ( packaged - h p v i nhau thành m t n v ) T!t c các m i quan h ó u c th hi n trong bi u
l p, i kèm v i c!u trúc bên trong c a các l p theo khái ni m thu c tính (attribute) và th t c (operation) Bi u c coi là bi u t+nh theo ph ng di n c!u trúc c miêu t ây có hi u l c
t i b!t k0 th i i m nào trong toàn b vòng i h th ng
M t h th ng th ng s& có m t lo t các bi u l p – ch)ng ph i bao gi t!t c các bi u l p này c'ng c nh p vào m t bi u l p t ng th duy nh!t – và m t l p có th tham gia vào nhi u bi u
l p Bi u l p c miêu t chi ti t trong ch ng sau
Hình 3.3 - Bi u l p cho m t giao d ch Tài chính
Trang 283.4.3 Bi u i t ng (Object Diagram)
Bi u i t ng không quan tr#ng b%ng bi u l p, chúng có th c s d ng ví d hóa m t
bi u l p ph c t p, ch* ra v i nh ng th c th c th và nh ng m i quan h nh th thì b c tranh toàn
c nh s& ra sao M t bi u i t ng th ng th ng c s d ng làm m t thành ph n c a m t bi u
c ng tác (collaboration), ch* ra l i ng x ng gi a m t lo t các i t ng
Hình 3.4 - Bi u l p và bi u i t ng th hi n c a l p
3.4.4 Bi u tr ng thái (State Diagram)
M t bi u tr ng thái th ng là m t s b sung cho l i miêu t m t l p Nó ch* ra t!t c các tr ng thái
mà i t ng c a l p này có th có, và nh ng s ki n (event) nào s& gây ra s thay i tr ng thái (hình 3.5) M t s ki n có th x y ra khi m t i t ng t g i thông i p n cho nó - ví d nh thông báo r%ng m t kho ng th i gian c xác nh ã qua i – hay là m t s i u ki n nào ó ã c th a mãn M t s thay i tr ng thái c g#i là m t s chuy n i tr ng thái (State Transition) M t
chuy n i tr ng thái c'ng có th có m t hành ng liên quan, xác nh i u gì ph i c th c hi n khi
s chuy n i tr ng thái này di n ra
Bi u tr ng thái không c v& cho t!t c các l p, mà ch* riêng cho nh ng l p có m t s l ng các
tr ng thái c nh ngh+a rõ ràng và hành vi c a l p b nh h ng và thay i qua các tr ng thái khác nhau Bi u tr ng thái c'ng có th c v& cho h th ng t ng th Bi u tr ng thái c miêu t chi
ti t h n trong ch ng sau (Mô hình ng)
Hình 3.5- M t ví d v bi u tr ng thái
Trang 293.4.5 Bi u trình t (Sequence Diagram)
M t bi u trình t ch* ra m t c ng tác ng gi a m t lo t các i t ng (xem hình 3.6) Khía c nh quan tr#ng c a bi u này là ch* ra trình t các thông i p (message) c g i gi a các i t ng Nó c'ng ch* ra trình t t ng tác gi a các i t ng, i u s& x y ra t i m t th i i m c th nào ó trong trình t th c thi c a h th ng Các bi u trình t ch a m t lo t các i t ng c bi u di n b%ng các ng th)ng ng Tr c th i gian có h ng t trên xu ng d i trong bi u , và bi u ch* ra s trao i thông i p gi a các i t ng khi th i gian trôi qua Các thông i p c bi u di n b%ng các
ng g ch ngang g"n li n v i m'i tên (bi u th thông i p) n i li n gi a nh ng ng th)ng ng th
hi n i t ng Tr c th i gian cùng nh ng l i nh n xét khác th ng s& c a vào ph n l c a bi u
Hình 3.6 - M t bi u trình t cho Print Server
Bi u c ng tác c v& theo d ng m t bi u i t ng, n i m t lo t các i t ng c ch* ra cùng v i m i quan h gi a chúng v i nhau (s d ng nh ng ký hi u nh trong bi u l p/ bi u i
t ng) Các m'i tên c v& gi a các i t ng ch* ra dòng ch y thông i p gi a các i t ng Các thông i p th ng c ính kèm theo các nhãn (label), m t trong nh ng ch c n(ng c a nhãn là ch* ra th t mà các thông i p c g i i Nó c'ng có th ch* ra các i u ki n, ch* ra nh ng giá tr
c tr v , v.v Khi ã làm quen v i cách vi t nhãn, m t nhà phát tri n có th #c bi u c ng tác
và tuân th theo dòng th c thi c'ng nh s trao i thông i p M t bi u c ng tác c'ng có th ch a
c các i t ng tích c c (active objects), ho t ng song song v i các i t ng tích c c khác (hình 3.7) Bi u c ng tác c miêu t chi ti t trong ch ng sau
Trang 30Hình 3.7 - M t bi u công tác c a m t printer server
ng c n ph i c th c hi n (m t hành ng - action) M t tr ng thái hành ng s& qua i khi hành
ng c th c hi n xong (khác v i bi u tr ng thái: m t tr ng thái ch* chuy n sang tr ng thái khác sau khi ã x y ra m t s ki n rõ ràng !) Dòng i u khi n ây ch y gi a các tr ng thái hành ng liên
k t v i nhau Bi u còn có th ch* ra các quy t nh, các i u ki n, c'ng nh ph n th c thi song song
c a các tr ng thái hành ng Bi u ngoài ra còn có th ch a các lo i c t cho các thông i p c
g i i ho c c nh n v , trong t cách là thành ph n c a hành ng c th c hi n
Hình 3.8 - M t bi u ho t ng cho m t printer server
3.4.8 Bi u thành ph n (Component Diagram)
M t bi u thành ph n ch* ra c!u trúc v t lý c a các dòng l nh (code) theo khái ni m thành ph n code
M t thành ph n code có th là m t t p tin source code, m t thành ph n nh phân (binary) hay m t thành ph n th c thi c (executable) M t thành ph n ch a các thông tin v các l p logic ho c các l p
Trang 31mà nó thi hành, nh th có ngh+a là nó t o ra m t ánh x t h ng nhìn logic vào h ng nhìn thành
ph n Bi u thành ph n c'ng ch* ra nh ng s ph thu c gi a các thành ph n v i nhau, tr giúp cho công vi c phân tích hi u ng mà m t thành ph n c thay i s& gây ra i v i các thành ph n khác Thành ph n c'ng có th c miêu t v i b!t k0 lo i giao di n nào mà chúng b c l , ví d nh giao
di n OLE/COM; và chúng có th c nhóm góp l i v i nhau thành t ng gói (package) Bi u thành
ph n c s d ng trong công vi c l p trình c th (xem hình 3.9)
Hình 3.9 - M t bi u thành ph n ch* ra s ph thu c gi a các thành ph n mã
3.4.9 Bi u tri n khai (Deployment Diagram)
Bi u tri n khai ch* ra ki n trúc v t lý c a ph n c ng c'ng nh ph n m m trong h th ng B n có th ch* ra t ng máy tính c th và t ng trang thi t b c th (node) i kèm s n i k t gi a chúng v i nhau,
b n c'ng có th ch* ra lo i c a các m i n i k t ó Bên trong các nút m ng (node), các thành ph n th c thi c c'ng nh các i t ng s& c xác nh v trí ch* ra nh ng ph n m m nào s& c th c thi
t i nh ng nút m ng nào B n c'ng có th ch* ra s ph thu c gi a các thành ph n
Bi u tri n khai ch* ra h ng nhìn tri n khai, miêu t ki n trúc v t lý th t s c a h th ng ây là
m t h ng nhìn r!t xa l i miêu t duy ch c n(ng c a h ng nhìn Use case M c dù v y, trong m t mô hình t t, ng i ta có th ch* t!t c nh ng con ng d n t m t nút m ng trong m t ki n trúc v t lý cho
t i nh ng thành ph n c a nó, cho t i l p mà nó th c thi, cho t i nh ng t ng tác mà các i t ng c a
l p này tham gia r i cu i cùng, ti n t i m t Use case R!t nhi u h ng nhìn khác nhau c a h th ng
c s d ng ng th i t o ra m t l i miêu t th!u áo i v i h th ng trong s t ng th c a nó
Trang 32Hình 3.10 - M t bi u tri n khai ch* ra ki n trúc v t lý c a h th ng 3.5 Ph n t% mô hình (model element)
Các khái ni m c s d ng trong các bi u c g#i là các ph n t mô hình (model element) M t
ph n t mô hình c nh ngh+a v i ng ngh+a (semantic), ó là m t nh ngh+a v b n ch!t ph n t hay là m t xác nh ý ngh+a chính xác xem nó s& th hi n i u gì trong nh ng l i kh)ng nh rõ ràng M.i ph n t mô hình còn có m t s miêu t tr c quan, m t ký hi u hình h#c c s d ng miêu t
ph n t này trong bi u M t ph n t có th t n t i trong nhi u d ng bi u khác nhau, nh ng c'ng
có nh ng nguyên t"c xác nh lo i ph n t nào có th c ch* ra trong lo i bi u nào M t vài ví d cho ph n t vô hình là l p, i t ng, tr ng thái, nút m ng, gói, thành ph n (hình 3.11)
Hình 3.11- Các thành ph n mô hình th ng dùng
Hình 3.12 ch* ra m t vài ví d c a m i quan h , ây c'ng là m t d ng ph n t mô hình, chúng c s
d ng n i các ph n t mô hình khác v i nhau M t vài lo i quan h áng chú ý:
Trang 33• N i k t (Association) : n i các ph n t và các th c th n i (link)
• Khái quát hóa (Generalization): còn c g#i là tính th a k , có ý ngh+a r%ng m t
ph n t này có th là m t s chuyên bi t hóa c a m t ph n t khác
• S ph thu c (Dependency): ch* ra r%ng m t ph n t này ph thu c trong m t ph ng
th c nào ó vào m t ph n t khác
• K t t p (Aggregation): M t d ng c a n i k t, trong ó m t ph n t này ch a các ph n
t khác
Ngoài ra còn có các ph n t mô hình khác nh thông i p (Message), hành ng (action) và khuôn
m u (stereotype) T!t c các ph n t mô hình, ý ngh+a c a chúng c'ng nh nh ng ng d ng u c
gi i thích k, l 4ng h n trong các ch ng sau
Hình 3.12 – các ví d v vài lo i quan h 3.6 C ch! chung (General Mechanism)
UML th hi n m t s các c ch chung trong t!t c các bi u nh%m m c ích cung c!p thêm các thông tin b sung, th ng ây là nh ng thông tin không th c th hi n qua các ch c n(ng và kh n(ng c b n c a các ph n t mô hình
3.6.1 Trang trí (Adornment)
Các s trang trí tr c quan có th c s d ng kèm thêm vào các ph n t mô hình trong bi u ng tác trang trí b sung thêm ng ngh+a cho ph n t M t ví d là k, thu t c s d ng phân bi t m t
lo i th c th (l p) và m t th c th Khi th hi n m t lo i, tên ph n t s& c in m Khi c'ng chính
ph n t ó th hi n ch* m t th c th c a lo i này, tên ph n t s& c g ch d i và có th c coi là
c tên c a th c th l n tên c a lo i ó M t hình ch nh t th hi n l p v i tên c in m s& th hi n
m t l p và tên c g ch d i s& th hi n m t i t ng, ây là m t ví d tiêu bi u c a adornment C'ng nguyên t"c ó c áp d ng cho các nút m ng, khi ký hi u nút c in m là th hi n m t lo i nút, ví d nh máy in (Printer), khi ký hi u c g ch d i là th hi n m t th c th c a l p nút m ng này ví d John’s HP 5MP-printer Các ki u trang trí khác là các l i c t v s l ng trong quan h (multiplicity), n i s l ng là m t s hay m t kho ng s ch* ra bao nhiêu th c th c a các lo i th c th
c n i v i nhau s& có th tham gia trong m t quan h Kí hi u trang trí c vi t g n ph n t mô hình c mà nó b sung thông tin (hình 3.13)
Trang 34Hình 3.13 - Phân bi t gi a l p và i t ng b%ng trang trí
3.6.2 Ghi chú (Note)
Cho dù m t ngôn ng mô hình hóa có c m r ng n bao nhiêu ch(ng n a, nó c'ng không th nh ngh+a t!t c m#i vi c Nh%m t o i u ki n b sung thêm cho m t mô hình nh ng thông tin không th
c th hi n b%ng ph n t mô hình, UML cung c!p kh n(ng kèm theo l i ghi chú M t l i ghi chú có
th c b!t k0 n i nào trong b!t k0 bi u nào, và nó có th ch a b!t k0 lo i thông tin nào D ng thông tin c a b n thân nó là chu.i ký t (string), không c UML di n gi i L i ghi chú th ng i kèm theo m t s các ph n t mô hình trong bi u , c n i b%ng m t ng ch!m ch!m, ch* ra ph n
t mô hình nào c chi ti t hóa ho c c gi i thích (hình 3.14)
M t l i ghi chú th ng ch a l i nh n xét ho c các câu h i c a nhà t o mô hình, ví d l i nh"c nh c n
ph i x lý v!n nào ó trong th i gian sau này L i ghi chú c'ng có th ch a các thông tin d ng khuôn m u (stereotype)
Hình 3.14 - M t ví d v ghi chú
3.6.3 c t (Specification)
Các ph n t mô hình có thu c tính (Property) ch a các giá tr d li u v ph n t này M t thu c tính
c nh ngh+a v i m t tên và m t giá tr ính kèm (tagged value), th ng chúng trong m t d ng
thông tin c xác nh tr c, ví d nh s nguyên hay chu.i kí t Có m t lo t thu c tính ã c
nh ngh+a tr c, ví d nh tài li u (docement), trách nhi m (Responsibility), s tr ng t n (Persistence) và tính song song (Conccurency)
Thu c tính c s d ng thêm các c t b sung v m t ph n t , nh ng thông tin bình th ng ra không c th hi n trong bi u Ví d tiêu bi u là m t l p s& c miêu t b%ng m t tài li u v(n
b n nh!t nh, cung c!p nhi u thông tin h n v trách nhi m c'ng nh kh n(ng c a l p này Lo i c t này bình th ng ra không c ch* ra trong các bi u , nh ng th ng thì trong a ph n các công c
mô hình hóa chúng s& có th c truy c p qua hành ng nh!p nút vào m t ph n t nào ó, hi u qu
là m t c a s ch a c t v i t!t c các thu c tính s& c ch* ra (Hình 3.15)
Trang 35Hình 3.15- M t c a s c t th hi n các c tính c a class 3.7 M& r'ng UML
UML có th c m r ng ho c có th c s a i phù h p v i m t ph ng pháp c bi t, m t t
ch c c th hay m t ng i dùng c th Chúng ta s& bàn lu n s qua n ba c ch m r ng UML: khuôn m u (stereotype), giá tr ính kèm (tagged value) và h n ch (constraint)
3.7.1 Khuôn m u (Stereotype)
C ch m r ng khuôn m u nh ngh+a m t lo i ph n t mô hình m i d a trên m t ph n t mô hình ã
t n t i Khuôn m u có th c coi là "t ng t " nh m t ph n t ã có s2n, c ng thêm ph n quy nh
ng ngh+a (semantic) riêng bi t không có trong ph n t g c kia Khuôn m u c a m t ph n t có th
c s d ng trong cùng tình hu ng nh ph n t c(n b n Khuôn m u d a trên t!t c các lo i ph n t
mô hình s2n có - l p, nút m ng, thành ph n, c'ng nh các m i quan h nh liên k t, khái quát hóa, s
ph thu c Ngôn ng UML có ch a m t s l ng l n các khuôn m u c nh ngh+a s2n và chúng
c s d ng s a i các ph n t mô hình s2n có, thay cho vi c ph i nh ngh+a hoàn toàn m i C
ch này giúp gìn gi tính n gi n c a n n t ng ngôn ng UML
Khuôn m u c miêu t qua vi c a tên c a chúng vào trong m t c p ký t ngo c nh#n <<>>, theo
nh trong hình 3.16 Ký t ngo c nh#n này c g#i là guillements Khuôn m u c'ng có th có kí hi u hình h#c riêng M t ph n t c a m t lo i khuôn m u c th có th c th hi n b i tên khuôn m u i kèm ký hi u hình h#c mô t ph n t c(n b n, hay là s k t h p c a c hai y u t này B!t k0 khi nào
m t ph n t mô hình c n i k t v i m t tên ho c kí hi u khuôn m u, ta s& #c " ây là m t lo i ph n
t thu c lo i khuôn m u " Ví d , m t l p v i <<Window>> s& c g#i là "m t l p trong d ng khuôn m u c a s ", ý ngh+a c a nó là m t d ng l p c a s Nh ng thu c tính c th mà m t l p c a s
Trang 36Nh ã nói, khuôn m u là m t c ch m r ng xu!t s"c, là m t c ch ng(n cho ngôn ng UML không
tr nên quá ph c t p, m c dù v n cho phép th c hi n s m r ng và s a i c n thi t a ph n các
ph n t mô hình m i mà b n c n n u có m t khuôn m u n n t ng trong ngôn ng UML M t khuôn m u sau ó có th c s d ng c ng thêm các ng ngh+a c n thi t, nh%m m c ích nh ngh+a nên các ph n t mô hình còn thi u
Hình 3.16- Customer là m t l p khuôn m u <<Actor>>
3.7.2 Giá tr ính kèm (Tagged Value)
Nh ã nói, các ph n t mô hình có th có các thu c tính ch a m t c p tên-giá tr v b n thân chúng (hình 3.17) Các thu c tính này c'ng còn c g#i là các gía tr ính kèm UML có ch a m t lo t các thu c tính c nh ngh+a tr c, nh ng k c ng i s d ng c'ng có th nh ngh+a ra các thu c tính
m i ch a các thông tin b sung v các ph n t mô hình M#i hình d ng thông tin u có th c ính kèm vào ph n t : các thông tin chuyên bi t v ph ng pháp, các thông tin c a nhà qu n tr v ti n trình mô hình hóa, các thông tin c s d ng b i các công c khác, ví d nh các công c t o code, hay b!t k0 m t lo i thông tin nào mà ng i s d ng mu n ính kèm vào ph n t mô hình
Hình 3.17 - M t ví d v Tagged Value
3.7.3 H n ch (Constraint)
M t s h n ch là m t s gi i h n v s s d ng ho c ý ngh+a c a m t ph n t S h n ch ho c s&
c khai báo trong công c và c s d ng nhi u l n trong r!t nhi u bi u khác nhau, hay c
nh ngh+a và s d ng trong ch* m t bi u , theo nh nhu c u
Hình 3.18 ch* ra m i quan h n i k t gi a nhóm các công dân l n tu i và l p con ng i, ch* ra r%ng nhóm công dân có th có nhi u ng i liên quan M c dù v y, miêu t r%ng ch* nh ng ng i nào l n
h n 60 tu i m i có th tham gia vào nhóm này, ng i ta nh ngh+a m t s h n ch , h n h-p tiêu chu$n tham gia i v i ch* nh ng ng i nào mà thu c tính tu i tác có giá tr l n h n 60 nh ngh+a này s&
h n ch s l ng nh ng ng i c s d ng trong m i quan h N u không có nó, ng i ta r!t d hi u
l m khi di n t bi u Trong tr ng h p t i t , nó có th d n n s th c thi sai trái c a h th ng
Trang 37Trong tr ng h p này, h n ch c nh ngh+a và ng d ng tr c ti p trong chính bi u mà nó c
c n t i Nh ng nhìn chung thì h n ch c'ng có th c nh ngh+a v i tên cùng l i c t riêng, ví d
nh : "công dân già" và "ng i có tu i l n h n 60", và h n ch này s& c s d ng trong nhi u bi u khác nhau UML có ch a m t lo t các h n ch c nh ngh+a s2n, chúng c miêu t chi ti t trong các ch ng sau
Hình 3.18- M t ràng bu c h n ch i t ng Person góp ph n vào quan h k t h p
3.8 Mô hình hóa v i UML
Khi xây d ng h th ng v i UML, ng i ta không ch* xây d ng duy nh!t m t mô hình S& có nhi u mô hình khác nhau trong nh ng giai o n phát tri n khác nhau, nh"m n các m c ích khác nhau Trong giai o n phân tích, m c ích c a mô hình là n"m b"t t!t c các yêu c u i v i h th ng và mô hình hóa n n t ng bao g m các l p và các c ng tác " i th c" Trong giai o n thi t k , m c ích c a mô hình là m r ng mô hình phân tích, t o thành m t gi i pháp k, thu t kh thi, có chú ý n môi tr ng
c a công vi c xây d ng (vi t code) Trong giai o n xây d ng code, mô hình chính là nh ng dòng code ngu n th t s , c vi t nên và c d ch thành các ch ng trình Và cu i cùng, trong giai o n tri n khai, m t l i miêu t s& gi i thích h th ng c n c tri n khai ra sao trong ki n trúc v t lý Kh n(ng theo dõi xuyên su t nhi u giai o n và nhi u mô hình khác nhau c m b o qua các thu c tính ho c các m i quan h nâng cao (refinement)
M c dù ó là các mô hình khác nhau, nh ng chúng u c xây d ng nên m r ng n i dung c a các mô hình giai o n tr c Chính vì th , t!t c các mô hình u c n ph i c gìn gi t t ng i
ta có th d dàng i ng c l i, m r ng ra hay tái thi t l p mô hình phân tích kh i u và r i d n d n
t ng b c a các s thay i vào mô hình thi t k c'ng nh các mô hình xây d ng (hình 3.19)
Hình 3.19- M t h th ng c mô t trong nhi u mô hình
Trang 38B n thân ngôn ng UML không ph thu c vào giai o n, có ngh+a là c'ng nh ng nguyên t"c ngôn ng
ó và c'ng nh ng bi u ó c s d ng mô hình hóa nh ng s vi c khác nhau trong nh ng giai
o n khác nhau Nhà thi t k n"m quy n quy t nh xem m t mô hình s& ph i thay i nh%m t c
nh ng m c ích nào và bao trùm nh ng ph m vi nào Ngôn ng mô hình hóa ch* cung c!p kh n(ng
t o ra các mô hình trong m t phong cách m r ng và nh!t quán
Khi mô hình hóa b%ng ngôn ng UML, toàn b công vi c c n ph i c th c hi n theo m t ph ng pháp hay m t qui trình, xác nh rõ nh ng b c công vi c nào ph i c ti n hành và chúng ph i c
th c thi ra sao M t qui trình nh v y th ng s& chia công vi c ra thành các vòng l p k ti p, m.i vòng
l p bao g m các công vi c: phân tích yêu c u/ phân tích/ thi t k / th c hi n/ tri n khai M c dù v y,
c'ng có m t quy trình nh h n c p t i n i dung c a vi c mô hình hóa Bình th ng ra, khi s n xu!t
m t mô hình ho c s n xu!t ch* m t bi u duy nh!t, công vi c s& b"t u b%ng vi c thu th p m t nhóm thích h p các cá nhân khác nhau, trình bày v!n và m c tiêu; h# c ng tác cho m t giai o n h i
th o khoa h#c và phác th o, trao i nh ng sáng ki n và ý t ng v mô hình có th Công c c s
d ng trong giai o n này là h t s c khác bi t và mang tính ng u h ng - th ng là gi!y dán post it hay
b ng tr"ng Công vi c c quy t nh ch ng nào nh ng ng i tham gia có c m giác h# ã có c
m t n n t ng th c ti n cho m t mô hình (gi ng nh m t tiêu ) K t qu sau ó s& c a vào m t công c , mô hình tiêu c t ch c, và sau ó m t bi u th c s s& c t o d ng nên, phù h p
v i nh ng quy nh c a ngôn ng mô hình hóa Sau ó, mô hình c chi ti t hóa qua nh ng công vi c mang tính vòng l p, càng ngày càng có nhi u chi ti t v gi i pháp c phát hi n, c d li u hóa và
c b sung Khi ã có nhi u thông tin h n c thu th p v v!n c'ng nh gi i pháp c a nó, tiêu ban u d n d n tr thành m t l i chu$n oán cho m t mô hình có kh n(ng s d ng Khi mô hình
ã g n hoàn thi n, m t s tích h p và th$m nh s& c th c hi n, d n t i vi c mô hình ho c bi u s& c tích h p v i nh ng mô hình và bi u khác trong cùng d án m b o s nh!t quán Mô hình sau ó c'ng c ki m tra l i ch"c ch"n nó ang gi i quy t úng v!n c n gi i quy t (hình 3.20)
Trang 39Hình 3.20 - M t ti n trình cho công vi c mô hình hoá th c t
Cu i cùng, mô hình s& c th c thi và tri n khai thành m t lo t các nguyên m u (prototype), nguyên
m u này s& c ki m tra tìm khi m khuy t Các khi m khuy t bao g m k c các ch c n(ng còn thi u, s th c hi n t i t hay phí s n xu!t và phát tri n quá cao Nh ng khi m khuy t th ng s& ép nhà phát tri n rà i rà l i công vi c c a mình kh"c ph c chúng N u v!n là quá l n, nhà phát tri n có
th s& i ng c l i t!t c các b c công vi c c a mình cho t i t n giai o n s phác u tiên N u các v!n này không l n, nhà phát tri n có l& ch* c n thay i m t vài thành ph n trong t ch c ho c c
t c a mô hình Xin nh r%ng b c t o nguyên m u không th c th c hi n ngay l p t c sau khi hoàn t!t bi u ; nó ch* nên c th c hi n khi ã có m t s l ng l n các bi u liên quan Nguyên
m u sau này có th c v t i, có th c t o d ng nên ch* nh%m m c ích ki m tra, ho c là n u
b c t o nguyên m u này thành công, nó s& tr thành m t vòng l p trong quy trình phát tri n th t s
Trang 403.9 Công c( (Tool)
S d ng m t ngôn ng mô hình hóa ph c t p và r ng m nh UML c n thi t s tr giúp c a công c
M c dù phác th o u tiên c a m t mô hình có th c th c hi n b%ng b ng tr"ng cùng gi!y và m c,
nh ng công vi c b o trì, ng b hóa và m b o s nh!t quán trong m t lo t các bi u khác nhau
th ng l i không th tr thành kh thi n u không có công c
Th tr ng công c mô hình hóa ã d ng trong m c s kh i su t m t th i gian dài k t khi xu!t
hi n ý t ng u tiên v các ch ng trình tr giúp cho vi c t o ch ng trình R!t nhi u công c trong
th c t ch* thông minh h n các ch ng trình v& m t chút, s d ng m t vài quy ch ki m tra tính nh!t quán ho c m t vài ki n th c v ph ng pháp và ngôn ng mô hình hóa M c dù ã có m t vài b c
ti n nh!t nh và nhi u công c hôm nay ã t i g n sáng ki n kh i th y kia nhi u h n (Rational Rose),
nh ng th tr ng v n còn không ít công c ch a c g#t gi'a, v n còn ch a l.i ho c nh ng nét k0
qu c, k c nh ng v!n n gi n nh copy và dán Nh ng công c này còn h n ch ph ng di n r%ng t!t c b#n chúng u có ngôn ng mô hình hóa riêng, hay ít nh!t thì c'ng có nh ng nh ngh+a riêng c a chúng v ngôn ng này
Cùng v i s ra i c a ngôn ng UML, các nhà cung c!p công c mô hình hóa gi ây có th dành nhi u th i gian h n cho vi c nâng c!p công c , b i h# không c n ph i d n tâm d n s c cho vi c nh ngh+a các ph ng pháp m i c'ng nh các ngôn ng m i
M t công c mô hình hóa h ên i c n ph i cung c!p các ch c n(ng sau:
V bi u : c n ph i t o i u ki n d dàng v& ra các bi u trong ngôn ng mô hình hóa
Công c c n ph i kh n(ng thông minh hi u m c ích c a các bi u và bi t c nh ng
ng ngh+a c'ng nh các quy t"c n gi n, nó có th c nh báo ho c ng(n ch n vi c s
d ng không thích h p các ph n t mô hình
Ho t ng nh m t nhà kho (Repository): công c c n ph i h tr m t nhà kho trung tâm
t!t c các thông tin v mô hình c l u tr trong cùng m t ch N u ví d tên c a m t l p
b thay i trong m t bi u , thì s thay i này c n ph i x y ra trong t!t c các bi u khác
có s d ng l p này
H tr nh h ng (Navigation): công c c n ph i t o i u ki n d dàng cho ng i s d ng
nh h ng và chuy n d ch trong mô hình theo dõi m t ph n t t bi u này sang bi u khác, ho c m r ng l i miêu t c a m t ph n t
H tr nhi u ng i s d ng (multiuser support): Công c c n h tr cho nhi u ng i s
d ng, và t o i u ki n cho h# cùng làm vi c v i m t mô hình mà không ng(n ch n ho c qu!y phá l n nhau
T ng t o code (code generate): m t công c cao c!p c n ph i có kh n(ng t o ra code,
n i t!t c các thông tin trong mô hình c chuy n t i thành các khung code (code skeletons),
c s d ng làm n n t ng cho giai o n xây d ng ch ng trình
Tái t o mô hình (Reserve engineer): M t công c cao c!p c n ph i có kh n(ng #c nh ng
thành ph n code ang t n t i và t ó s n xu!t ra mô hình T ó suy ra, m t mô hình có th
c làm t nh ng dòng code ã t n t i; ho c m t nhà phát tri n có th d dàng chuy n i chuy n v gi a công vi c mô hình hóa và công vi c l p trình
Tích h p v i các công c khác: m t công c c n ph i có kh n(ng tích h p v i nh ng công
c khác, v i c vi c phát tri n môi tr ng, ví d nh các trình so n th o (editor), ch ng trình