Tài liệu môn học: Phân tích và thiết kế HTTT theo UML - Phần 1 gồm 4 chương với nội dung: Tổng quan về phân tích thiết kế hệ thống, Ngôn ngữ mô hình hóa thống nhất, Khái quát về UML, Mô hình hóa USE CASE. Qua những phân tích và giảng giải sẽ giúp nâng cao khả năng làm việc và học tập trong lĩnh vực thiết kế hệ thống. Đón đọc phần 2 để tìm hiểu sâu hơn về kỹ thuật lập trình.
TÀI LI U MƠN H C PHÂN TÍCH VÀ THI T K HTTT THEO UML ( ây tài li u s u t m, t ng h p) GI NG VIÊN PH TRÁCH: NGUY N GI NG VIÊN: TÔN TH T HOÀ AN – D CC NG NG KI U HOA (S u t m t ng h p) M CL C CH 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 1.1.2 Mơ hình tr u t ng 1.1.3 Mơ hình hóa tr c quan 1.2 Mơ t chu trình phát tri n ph n m m 1.2.1 Software Development – m t toán ph c t p 1.2.2 Chu Trình Phát Tri n Ph n M m (Software Development Life Cycle) 1.2.3 Các giai o n c a Chu Trình Phát Tri n Ph n M m 1.3 Ph ng pháp h ng ch c n ng 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 UML 2.1.3 S i 18 i c a UML 18 2.1.4 UML (Unifield Modeling Language) 19 2.1.5 Ph ng pháp ngôn ng mơ hình hố 19 2.2 UML phân tích thi!t k! h th ng 19 2.3 UML 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 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 3.4.4 Bi u it ng (Object Diagram) 28 tr ng thái (State Diagram) 28 3.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 3.4.8 Bi u thành ph n (Component Diagram) 30 ng (Activity 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 (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 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) m't Use Case 53 4.7 Quan h gi#a 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 Use Case 61 4.11 Tóm t)t v Use Case 63 4.12 Ph n câu h i 63 CH NG : MƠ HÌNH I T +NG 65 5.1 L p, i t ng quan h – thành ph n c b n c a mơ hình 65 5.1.1 it ng (Object) 65 5.1.2 Tr ng thái, ng x nh n di n c a it ng 65 5.1.3 L p (Class) 66 5.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 tốn tìm l p 69 5.2.2 Các l p ng c viên 72 5.2.3 Lo i b l p ng c viên khơng thích h p 73 5.3 L p i t ng 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 l p 77 5.5 Liên h (Association) 78 5.5.1 Vai trò 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) liên h 79 5.5.4 Phát hi n liên h 80 5.5.5 X lý liên h không c n thi t 80 5.5.6 Nâng c!p 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 liên h 87 5.7 Khái quát hóa chuyên bi t hóa (Generalization & Specialization) 87 5.7.1 Kí hi u khái qt hóa chun bi t hóa 88 5.7.2 Y u t phân bi t (Discriminatior) 89 5.8 Quan h ph( thu'c nâng c,p (Dependency & Refinement) 92 5.9 Nâng c,p mơ hình qua vịng l-p k! ti!p 94 5.10 Ch,t l ng mơ hình 95 5.10.1 Th 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 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 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 : 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 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 6.7 Bi u $ tr"ng thái (State Diagram) 109 6.7.1 Tr ng thái s bi n 6.7.2 Bi u i tr ng thái (State transition) 109 tr ng thái 110 6.7.3 Nh n bi t tr ng thái 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 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 s d ng bi u 119 6.10.4 L p bi u tr ng thái 120 6.11 Ph i h p mô hình i t ng 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 CH 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 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 d li u thô" V i ph n m m c'ng v y, ngành Công nghi p c a ngày phát tri n, h th ng s& tr nên ph c t p h n Kh n(ng n"m b"t ki m sốt s ph c t p ó c a i kèm v i kh n(ng trình bày h th ng m t cách tồn di n - m t s trình bày v t ngồi gi i h n c a nh ng dịng l nh thô S thành công th tr ng c a nh ng ngôn ng nh Visual Basic 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 trình phát tri n 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 ã 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 th c t ch)ng nh ng nhi u án ph n m m không th s n sinh nh ng h th ng tho mãn òi h i nhu c u c a khách hàng, mà v t ngân sách 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 mơi tr ng phát tri n tiên ti n có giúp nâng cao n(ng su!t lao ng, nh ng 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 nh ng v!n c a ngành phát tri n ph n m m th i có nhi u án b"t tay vào l p trình s m t p trung nhi u vào vi c vi t code Lý m t ph n ban qu n tr thi u hi u bi t v quy trình phát tri n ph n m m h# n y lo âu th!y i quân l p trình c a h# khơng vi t code Và b n thân l p trình viên c'ng c m th!y an tâm h n h# ng i vi t code - v n tác v mà h# quen thu c! – h n xây d ng 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 s d ng mơ hình c t ch c xoay Mơ hình hố tr c quan m t ph ng th c t v v!n quanh khái ni m i th c Mơ hình giúp 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 vi c mơ hình hố 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 ịi h i c a h th ng t t h n, t o thi t k rõ ràng h n xây d ng nên h th ng d b o trì h n Mơ hình k t qu c a s tr u t ng hóa nh%m miêu t 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 chi ti t không quan tr#ng làm cho v!n tr thành d hi u h n Tr u t ng hóa m t n(ng l c c(n b n c a ng i, cho phép gi i quy t v!n ph c t p Các k, s , ngh s+ th th công ã xây d ng mơ hình t hàng ngàn n(m th xây d ng h nghi m thi t k tr c th c hi n Phát tri n ph n m m c'ng không ngo i l 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 c a h th ng, s d ng ký hi u xác xây d ng mơ hình, ki m tra xem mơ hình có th a mãn ịi h i c a h th ng, d n d n b sung thêm chi ti t chuy n mơ hình thành th c hi n Chúng ta xây d ng mô hình cho h th ng ph c t p b i không th hi u th!u áo nh ng h th ng nh th tr ng thái toàn v-n c a chúng Kh n(ng th!u hi u n"m b"t tính ph c t p c a ng i có h n i u ta có th th!y rõ 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 N u b n xây m t 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 tồ nhà ch#c tr i 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 c'ng th Ch* t p trung vào dịng code hay th m chí c phân tích Forms Visual Basic ch)ng cung c!p m t nhìn tồ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 thành ph n á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 ln ln thay i d n n tính ph c t p ngày t(ng cao, tính ph c t p t nh ng thách th c c tr ng cho nhà phát tri n h th ng Mơ hình giúp t ch c, trình bày tr c quan, th!u hi u t o nên h th ng ph c t p Chúng giúp áp ng thách th c c a vi c phát tri n ph n m m, hôm 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 toán ph c t p Kinh nghi m c a nhi u nhà thi t k phát tri n cho th!y phát tri n ph n m m m t toán ph c t p Xin nêu m t s lý th ng ck n: Nh ng ng i phát tri n ph n m m r!t khó hi u cho úng nh ng ng Yêu c u c a ng Yêu c u th mâu thu n ng i dùng th ng thay i dùng c n i th i gian phát tri n c miêu t b%ng v(n b n, dài dịng, khó hi u, nhi u th m chí i quân phát tri n ph n m m, v n ng m i quan h ti m $n ph c t p c n l n i "ngoài cu c", r!t khó nh n th c th!u áo c th hi n xác ng d ng Kh n(ng n"m b"t d li u ph c t p c a ng h n i (t i m t th i i m) có Khó nh l ng xác hi u su!t c a thành ph$m th a mãn xác s mong ch t phía ng i dùng Ch#n l a ph n c ng ph n m m thích h p cho gi i pháp m t nh ng thách th c l n i v i Designer Ph n m m ngồi c n có kh n(ng thích ng m r ng Ph n m m c thi t k t t ph n m m ng v ng tr c nh ng bi n i mơi tr ng, dù t phía c ng ng ng i dùng hay t phía cơng ngh Ví d ph n m m ã c phát tri n cho m t nhà b(ng c n có kh n(ng tái s d ng cho m t nhà b(ng khác v i r!t s a i ho c hồn tồn khơng c n s a i Ph n m m tho mãn yêu c u ó c coi ph n m m có kh n(ng thích ng M t ph n m m có kh n(ng m r ng ph n m m ng i dùng mà không c n s a ch a nhi u Chính v y, m t s m khuy t th c thi t k cho d phát tri n theo yêu c u c a ng g p phát tri n ph n m m là: Hi u không úng nh ng 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 Ph n m m khó b o trì nâng c!p, m r ng Phát hi n tr l h ng c a d án Ch!t l ng ph n m m Hi u n(ng c a ph n m m th!p Các thành viên nhóm khơng bi t ph i thay i c ã thay i gì, nào, âu, t 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 m t tốn khó, nên có l& tr c h t ta c n i m qua m t s công vi c c(n b n c a trình 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 m t chu.i ho t ng c a nhà phân tích (Analyst), nhà thi t k (Designer), ng i phát tri n (Developer) ng i dùng (User) phát tri n th c hi n m t h th ng thông tin Nh ng ho t ng c th c hi n nhi u giai #an khác Nhà phân tích (Analyst): 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 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 cơng ngh máy tính có th c i thi n m t cách t t nh!t công tác c a t ch c Nhà thi!t k! (Designer): thi t k h th ng theo h ng c!u trúc c a database, screens, forms reports – quy t nh yêu c u v ph n c ng ph n m m cho h th ng c n c phát tri n Chuyên gia l0nh v*c (Domain Experts): nh ng ng i hi u th c ch!t v!n t!t c nh ng s ph c t p c a h th ng c n tin h#c hố H# khơng nh!t thi t ph i nhà l p trình, nh ng h# có th giúp nhà l p trình hi u yêu c u t 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# ch L p trình viên (Programmer): nh ng ng i d a phân tích thi t k 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): it cho rõ h n, xin l!y ví d v m t v!n Ng i bình th sau: ng ph c v c a h th ng c n vi t c phát tri n n gi n sau: ng nhìn m t chi c xe tơ th ng s& có m t b c tranh t bên ngồi nh V,n Hình 1.1: Nhìn v!n tơ c a ng Chun gia l+nh v c s& giúp nhà phân tích "trình bày l i" v!n Hình 1.2: Nhìn v!n i bình th ng nh sau: ô tô c a chuyên gia phân tích Chính s tr giúp c a chun gia l+nh v c có th óng vai trị r!t quan tr#ng nên nh ng giai o n u c a trình phát tri n ph n m m, k t qu phân tích nên c th hi n cho d hi u i v i chuyên gia l+nh v c ây c'ng môt r!t nhi u lý n cho ph ng pháp h ng i c nhi u ng i h ng ng t 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 giai o n nh sau: Nghiên c u s b (Preliminary Investigation hay g#i 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 phát tri n m t h th ng hồn tồ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ó m t câu h i d ng nh có v/ n gi n, nh ng th t c bi t khó tr l i: “ ây có úng m t h th ng th c hi n khơng?” bu n câu h i th c t th ng ch)ng h c t l i 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 d án có th c c u vãn n u có y tài nguyên s c g"ng quên c a nhân viên tài gi i Nh ng s& ch)ng m t m t i u 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 b"t tay vào m t d án, b n ph i có m t ý t ng cho Ý t ng i song song v i vi c n"m b"t yêu c u xu!t hi n giai o n kh i u Nó hồn t!t m t phát bi u: "H th ng mà mong mu n s& làm c nh ng vi c nh sau " Trong su t giai o n này, 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 th i gian th ng bao g m thu th p ý t ng, nh n bi t r i ro, nh n bi t giao di n bên ngoài, nh n bi t các ch c n(ng mà h th ng c n cung c!p, có th t o m t vài nguyên m u dùng “minh ch ng 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, nhà phát tri n khác, chuyên gia v k, ngh , b n nghiên c u tính kh thi c'ng nh vi c xem xét h th ng khác ang t n t i M t khía c nh c n nh"c t i code vi t th i k0 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 gi c vi t theo k t qu phân tích thi t k th!u áo thuy t khác nhau, ch ch a ph i th code Trong giai #an nghiên c u s b , nhóm phát tri n h th ng c n xem xét 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 ý 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 tr ng h p s d ng t o nguyên m u xây d ng nên m t khái ni m cho h th ng ích v i m c ích, quy n u tiên ph m vi c a Th ng giai o n ng s d ng tài nguyên i ta c'ng ti n hành t o m t phiên b n thơ c a l ch trình k ho ch M t giai o n nghiên c u s b thích s& l p nên t p h p yêu c u (dù m c khái quát cao) i v i m t h th ng kh thi 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 s& d n t i h th ng không c mong mu n, "t ti n, b!t kh thi 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 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 b n báo cáo c'ng lúc giai o n Phân tích b"t u b) Phân tích yêu c u: Sau ã 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, b c sang giai o n th ng c coi quan tr#ng nh!t 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 nhà phân tích Q trình phân tích nhìn chung h qu c a vi c tr l i câu h i "H th ng c n ph i làm gì?" Q 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 nguyên lý ho t ng c a nh ng v trí có th c nâng cao, c i thi n Bên c nh ó vi c nghiên c u xem xét ch c n(ng mà h th ng c n cung c!p m i quan h c a chúng, bên c'ng nh v i phía ngồi h th ng Trong tồn b giai o n này, nhà phân tích ng i dùng c n c ng tác m t thi t v i xác nh yêu c u i v i h th ng, t c tính n(ng m i c n ph i c a vào h th ng 10 (method) c'ng nh m t thu c tính tài li u (document) mơ t tác nhân ó M t l p tác nhân có m t bi u t ng chu$n hóa, bi u t ng "hình nhân": Hình 4.2- bi u t ng tác nhân UML 4.5.5 Use Case M t Use Case i di n cho m t ch c n(ng nguyên v-n mà m t tác nhân nh n c M t Use Case ngôn ng UML c nh ngh+a m t t p h p c a chu.i hành ng mà m t h th ng th c hi n t o m t k t qu có th quan sát c, t c m t giá tr n v i m t tác nhân c th Nh ng hành ng có th bao g m vi c giao ti p v i m t lo t tác nhân c'ng nh th c hi n tính tốn cơng vi c n i b bên h th ng Các tính ch!t tiêu bi u c a m t Use Case là: M t Use Case bao gi c'ng c gây b i m t tác nhân, c th c hi n nhân danh th c hi n Use Case ó, dù m t tác nhân ó Tác nhân ph i l nh cho h th ng tr c ti p hay gián ti p Hi m có tác nhân không liên quan n vi c gây m t Use Case ó M t Use Case ph i cung c!p m t giá tr cho m t tác nhân Giá tr ó khơng ph i bao gi c'ng c n thi t ph i n i tr i ngồi, nh ng ln ph i c th!y rõ M t Use Case ph i hoàn t!t M t nh ng l.i th ng g p s/ chia m t Use Case thành Use Case nh h n, Use Case th c thi l n gi ng nh vi c g#i hàm cho m t ngôn ng l p trình M t Use Case s& khơng c coi hoàn t!t ch ng mà giá tr cu i c a ch a c s n sinh ra, th m chí c ã x$y nhi u ng tác giao ti p (ví d nh i tho i v i ng i s d ng) Use Case c n i v i tác nhân qua liên k t (association) ng liên k t ch* nh ng tác nhân giao ti p v i Use Case M i liên k t bình th ng m t m i quan h 1-1 khơng có h ng i u ó mu n nói lên r%ng m t th c th c a l p tác nhân s& giao ti p v i m t th c th c a m t Use Case c hai có th giao ti p v i c hai chi u M t Use Case s& c t tên theo m t th c th mà Use Case s& th c hi n, ví d nh ký h p ng b o hi m, c p nh t danh sách, v.v…, th ng m t c m t h n ch* m t t riêng l/ M t Use Case m t l p, ch không ph i m t th c th Nó mơ t tr#n v-n m t ch c n(ng, k c gi i pháp b sung thay th có th có, l.i có th x y c'ng nh nh ng ngo i l có th x y q trình th c thi M t k t qu c a s th c th hóa m t Use Case c g#i m t c nh k ch (scenario) i di n cho m t s s d ng c th c a h th ng (m t ng d n th c thi riêng bi t qua h th ng) Ví d m t c nh k ch c a Use Case "Ký h p ng b o hi m" có th "John liên h v i h th ng qua i n tho i r i sau ó ký h p ng b o hi m ô tô cho chi c xe Toyota Carolla mà v a mua." 50 4.5.6 Tìm Use Case Quá trình tìm Use Case b"t nhân, h i câu h i sau: u v i tác nhân ã c xác nh a Tác nhân c n nh ng ch c n(ng t h th ng? Hành ph n tr c i v i m.i tác ng c a tác nhân ? Ví d cho m t giao d ch rút ti n bên máy ATM m t nhà b(ng l/, hành c a khách hàng (tác nhân) có th : ng út th/ vào máy ATM Nh p password Nh p lo i chuy n d ch Nh p s ti n m t mu n rút Yêu c u v lo i ti n Nh t ti n t máy Rút th/ t in k t qu giao d ch b Tác nhân có c n ph i #c, ph i t o, ph i h y b , ph i s a ch a, l u tr m t lo i thơng tin ó h th ng? Ví d : Nhân viên nhà b(ng li u có quy n truy xu!t hay thay Khách hàng có th thay i m c ti n lãi? i password c a c Tác nhân có c n ph i báo cho h th ng bi t v nh ng s ki n ó? Nh ng s ki n nh th s& i di n cho nh ng ch c n(ng nào? Ví d : Khách hàng k t thúc tài kho n, nhân viên cung c!p nh ng thơng tin cho h th ng Có m t ch ng trình u t m i, chi ti t c a ch nhân viên nhà b(ng nh p vào h th ng d H th ng có c n ph i thông báo cho Actor v nh ng thay ng trình s& ph i c i b!t ng n i b h th ng? Trong tài kho n cịn q ti n Ba k0 liên ti p ti n l ng ch a v tài kho n e Công vi c hàng ngày c a tác nhân có th c n gi n hóa ho c h u hi u hóa qua ch c n(ng m i h th ng (th ng ây nh ng ch c n(ng tiêu bi u ch a ct ng hóa h th ng)? f Các câu h i khác: 51 Use Case có th c gây b i s ki n khác? Ví d : S ki n th i gian: Cu i tháng, h t h n S ki n bình th tr c ng c a h th ng: T Các s ki n b!t bình th t H th ng c n nh ng thông tin âu t i s& i âu? ng: H p ng ut ng chuy n ti n theo l nh xác u t k t thúc tr c th i h n u vào/ u nào? Nh ng thông tin Khó kh(n thi u h t h th ng hi n th i n%m hóa)? nh u vào/ u ó âu (th cơng /t ng i v i nhóm câu h i cu i khơng có ngh+a Use Case ây khơng có tác nhân, mà tác nhân s& c nh n ch* nh n di n Use Case sau ó xác nh tác nhân d a c s Use Case Xin nh"c l i, m t Use Case bao gi c'ng ph i c liên k t v i nh!t m t tác nhân 4.5.7 Ví d tìm Use Case Nhà b(ng ABC a yêu c u sau: M t khách hàng có th mu n g i ti n vào, rút ti n ho c n gi n ki m tra l i s ti n tài kho n c a qua máy t ng rút ti n (ATM) Khi a ti n vào ho c rút ti n ra, c n ph i ghi gi!y k t qu nh ng chuy n d ch ã th c hi n trao t gi!y cho khách hàng Quan sát ch c n(ng c(n b n thành ph n tham gia, ta th!y có hai tác nhân d nh n nh!t khách hàng nhân viên thu ngân Qua ó, có th nhân d ng Use Case sau: G i ti n vào Rút ti n Ki m tra m c ti n tài kho n Th c hi n chuy n d ch n i b h th ng In k t qu chuy n d ch ã th c hi n 52 Hình 4.3 – Các Use case h th ng ATM Use Case g i ti n vào rút ti n ph thu c vào Use Case th c hi n chuy n d ch n i b h th ng, vi c th c hi n v ph n l i ph thu c vào ch c n(ng in công vi c ã c th c hi n Ki m tra m c ti n tài kho n m t Use Case c l p, không ph thu c vào Use Case khác 4.6 Các bi!n th (Variations) m't Use Case M.i Use Case s& có m t dịng hành ng (Basic Course) trình mong i i v i Use Case Ngồi ra, có th cịn có m t hay nhi u dòng hành chia làm hai nhóm chính: Thay th bình th ó ti n trình bình th ng hay ti n ng thay th (Alternative) khác Chúng có th c ng (Normal Alternative) i u ki n gây l.i (Error Condidtions) Nh ng mang tính bình th Có th miêu t dịng hành ng h n Use Case c g#i Thay th bình th ng ng thay th b%ng t ng (xem ph n tài li u Use Case ) Ví d m t khách hàng có th ch#n lo i giao d ch sau c a ATM: G i ti n vào Rút ti n Ki m tra m c ti n tài kho n ây nh ng ví d cho dịng hành ng thay th bình th ng i u ki n gây l.i i di n cho nh ng b c ti n hành b!t bình th tính tr c n nh ng i u ki n gây l.i ó, ví d : ng m t Use Case C n ph i 53 M c ti n tài kho n không ti n hành giao d ch Password không úng ATM b ngh&n th/ Hình sau nêu b t dịng hành ng nh ng dịng hành chúng i v i ti n trình mong i c a Use Case ng thay th c'ng nh s khác bi t c a Hình 4.4 – Các ti n trình h th ng ATM 4.7 Quan h gi#a Use Case Có ba lo i quan h Use Case: Quan h m r ng, quan h s d ng quan h t o nhóm Quan h m r ng quan h s d ng hai d ng khác c a tính th a k Quan h t o nhóm m t ph ng cách t nhi u Use Case chung v i vào m t gói 4.7.1 Quan h m r ng Nhi u trình phát tri n Use Case, ng i ta th!y m t s Use Case ã t n t i cung c!p m t ph n nh ng ch c n(ng c n thi t cho m t Use Case m i Trong m t tr ng h p nh v y, có th nh 54 ngh+a m t Use Case m i Use Case c' c ng thêm m t ph n m i M t Use Case nh v y c g#i m t Use Case m r ng (Extended Use Case ) Trong quan h m r ng, Use Case g c (Base Use Case ) c dùng m r ng ph i m t Use Case hoàn thi n Use Case m r ng không nh!t thi t ph i s d ng toàn b hành vi c a Use Case g c sau ch* Use Case “Ký h p Bi u hi m” ng mua ô tô” Use Case m r ng c a "Ký h p ng b o Hình 4.5 - Quan h m r ng gi a Use Case c bi u th b%ng o n th)ng v i hình tam giác r.ng tr v phía Quan h m r ng gi a Use Case Use Case c dùng m r ng, i kèm v i stereotype 4.7.2 Quan h s d ng Khi m t nhóm Use Case chung m t hành vi ó hành vi có th c tách riêng c s d ng b i Use Case kia, m t m i quan h nh thành m t Use Case riêng bi t có th v y c g#i quan h s d ng Trong quan h s d ng, ph i s d ng toàn b Use Case khái quát hóa, nói m t cách khác, ta có m t Use Case s d ng toàn b m t Use Case khác Các hành ng Use Case khái qt hóa khơng c n ph i c s d ng m t ti n trình Chúng có th c tr n l n v i hành ng x y Use Case chun bi t hóa Hình 4.6 - Quan h s d ng gi a Use Case 55 Quan h s d ng gi a Use Case c bi u th b%ng o n th)ng v i hình tam giác r.ng tr v phía Use Case c s d ng, i kèm v i stereotype 4.7.3 Quan h chung nhóm Khi m t s Use Case x lý ch c n(ng t ng t ho c có th liên quan n theo m t ph ng th c ó, ng i ta th ng nhóm chúng l i v i Nhóm Use Case c th c hi n b%ng khái ni m "Gói" (Package) c a UML Gói khơng cung c!p giá tr gia t(ng cho thi t k Ví d : t!t c Use Case có liên quan n s t ng tác gi a khách hàng nhân viên thu ngân s& c nhóm thành "Package Khách hàng- N/v thu ngân" Hình 4.7 – Package c a UML Tóm t"t v Use Case v i máy ATM ngân hàng l/: Cho t i ã xác nh c m t vài Use Case, phân tích dịng hành ng c'ng nh dòng hành ng thay th , c'ng nh rút m i quan h gi a chúng Bi u sau t ng h p nh ng c v nhóm Use Case c(n b n c a m t h th ng ATM thông tin ã thu th p Hình 4.8 - Bi u m t s Use Case h th ng ATM 56 4.8 Miêu t Use Case Nh ã trình bày, l i miêu t m t Use Case th ng c th c hi n v(n b n ây l i c t n gi n nh!t quán v vi c tác nhân Use Case (h th ng) t ng tác v i Nó t p trung vào ng x i ngo i c a h th ng không c p t i vi c th c hi n n i b bên h th ng Ngôn ng thu t ng c s d ng l i miêu t ngôn ng thu t ng cs d ng b i khách hàng/ng i dùng V(n b n miêu t c n ph i bao g m nh ng i m sau: M c ích c a Use Case: M c ích chung cu c c a Use Case gì? Cái c n ph i c t t i? Use Case nói chung u mang tính h ng m c ích m c ích c a m.i Use Case c n ph i rõ ràng Use Case c kh i ch y nh th nào: Tác nhân gây s th c hi n Use Case này? Trong hồn c nh nào? Chu.i thơng i p gi a tác nhân Use Case: Use Case tác nhân trao i thông i p hay s ki n thông báo l n cho nhau, c p nh t ho c nh n thông tin giúp quy t nh? Y u t s& miêu t dịng ch y c a thông i p c s d ng ho c gi a h th ng tác nhân, nh ng th c th h th ng b thay i? Dòng ch y thay th m t Use Case: M t Use Case có th có nh ng dịng th c thi thay th tùy thu c vào i u ki n Hãy nh"c n y u t này, nh ng ý ng miêu t chúng chi ti t n m c chúng có th “che khu!t“ dịng ch y c a ho t ng tr ng h p c(n b n Nh ng ng tác x lý l.i c bi t s& c miêu t thành Use Case khác Use Case s& k t thúc v i m t giá tr i v i tác nhân nh th nào: Hãy miêu t Use Case c coi ã k t thúc, lo i giá tr mà cung c!p n tác nhân Hãy nh r%ng l i miêu t s& xác nh nh ng c th c thi có liên quan n tác nhân bên ngồi, ch khơng ph i nh ng s vi c c th c hi n bên h th ng V(n b n ph i rõ ràng, nh!t quán, n cho khách hàng có th d dàng hi u th$m tra chúng ( r i ng ý r%ng i di n cho nh ng mà anh/cơ ta mu n t phía h th ng) Tránh dùng nh ng câu v(n ph c t p, khó di n gi i d hi u l m M t Use Case c'ng có th c miêu t qua m t bi u ho t ng Bi u ho t ng ch* chu.i hành ng, th t c a chúng, quy t nh ch#n l a xác nh xem hành ng sau ó s& c th c hi n b sung cho l i miêu t m t Use Case, ng i ta th ng a m t lo t c nh k ch c th minh h#a i u s& x y m t Use Case c th c th hóa L i miêu t c nh k ch minh h#a m t tr ng h p c bi t, c tác nhân l n Use Case u c coi m t th c th c th Khách hàng có th d dàng hi u h n toàn b m t Use Case ph c t p n u có nh ng c nh k ch c miêu t th c ti n h n, minh h#a l i l i ng x ph ng th c ho t ng c a h th ng Nh ng xin nh r%ng, m t l i miêu t c nh k ch ch* m t s b sung ch không ph i ng c viên thay th cho l i miêu t Use Case Sau Use Case ã c miêu t , m t ho t ng m t công vi c c bi t c n ph i th c hi n th$m tra xem m i quan h ( ã c p t i ph n 2.7) có c nh n di n không Tr c t!t c 57 Use Case c miêu t , nhà phát tri n ch a th có c nh ng ki n th c hoàn t!t t ng th xác nh m i quan h thích h p, th nghi m làm theo ph ng th c ó có th s& d n n m t tình hu ng nguy hi m Trong th i gian th c hi n công vi c này, tr l i câu h i sau: T!t c tác nhân liên quan ó khơng? Có t n t i nh ng s t nhóm li u có th n m t Use Case có m i liên k t giao ti p v i Use Case ng t gi a m t lo t tác nhân minh h#a m t vai trò chung c miêu t m t l p tác nhân c(n b n (base class)? Có t n t i nh ng s t ng t gi a m t lo t Use Case, minh h#a m t dịng ch y hành ng chung? N u có, li u i u có th c miêu t m t m i quan h s d ng n v i m t Use Case khác? Có t n t i nh ng tr quan h m r ng? ng h p c bi t c a m t Use Case có th c miêu t m t m i Có t n t i m t tác nhân hay m t Use Case m i liên k t giao ti p? ây ã có chuy n l m l c, sai trái: T i l i xu!t hi n tác nhân N u có, ch"c ch"n này? Có l i yêu c u v ch c n(ng ã c xác nh, nh ng l i không Use Case x lý? N u th , t o m t Use Case cho yêu c u ó V(n b n miêu t m t Use Case c b!t k0 m t n gi n: Ví d Use Case "Cung C!p Thông Tin V M t Tài Kho n T i Nhà B(ng ABC”: Sau phân tích h in lên hình c a nhân viên nhà b(ng t!t c nh ng chi th ng, ta nh n th!y c n có m t Use Case ti t v m t tài kho n c a m t khách hàng -c t Use Case: Chi ti!t tài kho n: // tên Use Case S Use Case: UCSEC35 Miêu t ng)n: // miêu t ng n g n Use Case Use Case "chi ti t tài kho n" cho phép nhân viên nhà b(ng xem chi ti t c a m t tài kho n mà nh tìm hi u Dòng ch y s* ki n: // dòng logic chung Nhân viên ch#n Chi Ti t Tài Kho n menu M t ng khác ch* thông tin chi ti t c a tài kho n g#i t Màn Hình Tóm T"t Thơng Tin V Tài Kho n (xem Use Case s UCSEC99) Dịng hành 'ng chính: // dịng logic chi ti t M.i khách hàng s& có m t s nh danh g#i CustomerId M t khách hàng có th có nhi u tài kho n Sau nhân viên nh p CustomerId vào h th ng, hình ph i in t!t c nh ng tài kho n thu c v khách hàng thu c v nhà b(ng ABC, r i rác t i t!t c chi nhánh Khi ch#n ti p lo i tài kho n s tài kho n, chi ti t c a tài kho n mong mu n s& c in 58 Lo i tài kho n ti t ki m: N u lo i tài kho n UCSEC45, chi ti t sau ây s& c in ra: c ch#n tài kho n ti t ki m, theo Use Case s M c ti n hi n có Các t sec ch a tốn L ng ti n tín d ng c phép L ng ti n lãi cho t i ngày hôm L ng ti n t i thi u c n ph i có tài kho n Lo i tài kho n u t : N u lo i tài kho n chi ti t sau ây s& c in H n u t , theo Use Case s UCSEC46, ut S ti n Ngày L c ch#n lo i ut ut ng ti n cu i h n Ngày cu i h n T3 l l i Dòng hành 'ng thay th!: // chu i logic thay th Khơng tìm th!y chi ti t: Khi ch#n m t s tài kho n khơng thích h p (khơng có tài kho n t ng ng) dù lý ch c n(ng hay k, thu t, theo Use Case s UCSEC12, h th ng s& a m t hình báo l.i i u ki n thoát: // Use Case k t thúc nh th nào? Nút Thoát: Khi ch#n nút thoát, ng i s d ng s& quay tr l i hình Nút Xem Thêm: Khi ch#n nút này, ng sách xu ng i s d ng s& c yêu c u ch#n lo i tài kho n t m t danh c chuy n sang hình "Giao d ch" Nút Xem Giao D ch: Khi ch#n nút này, ng i s d ng s& theo Use Case s UCSEC91, hình s& ch* nh ng giao d ch ã x y i v i tài kho n, bên c nh nh ng chi ti t c a tài kho n Nút Yêu C u In K t Qu : Khi ch#n ph n th c n này, k t qu giao d ch theo Use Case s UCSEC70 s& c in m t máy in a ph ng n i tr c ti p v i máy tính c a nhân viên Các yêu c u -c bi t: // yêu c u c bi t Theo Use Case s UCSEC110, h th ng có kh n(ng in lên hình b%ng nh ng ngơn ng khác Ch c n(ng s& c kích ho t ng i s d ng ch#n m c Ngo i Ng menu i u ki n tr c ó: // i u x y tr c Use Case c th c hi n 59 B o an: Ng i s d ng (nhân viên ti p khách) vào h th ng D ch chuy n: Ng i s d ng ch* công Identify thành công n c cung c!p m t s nh danh riêng bi t truy nh p c hình Chi Ti t Tài Kho n sau ã truy nh p thành i u ki n sau ó: // i u x y sau Use Case c th c hi n? H th ng s& không l u tr l i b!t k0 m t thông tin liên quan t i khách hàng lên +a c ng c c b 4.9 Th% Use Case M t m c ích c a Use Case th nghi m (testing) Có hai lo i th nghi m khác c th c hi n ây: ki m tra (verification) phê t xác nh n (validation) Ki m tra m b o h th ng ã c phát tri n úng "n phù h p v i c t ã c t o Phê t xác nh n m b o r%ng h th ng s& c phát tri n th mà khách hàng ho c ng i s d ng cu i th t s c n n Công vi c phê t xác nh n c th c hi n k tr c giai o n phát tri n Ngay m t mơ hình c hồn t!t (hay th m chí có th ang giai o n phát tri n), mô hình ph i c Use Case trình bày th o lu n v i khách hàng c'ng nh ng i s d ng H# c n ph i xác nh n r%ng mơ hình úng "n, hoàn t!t th a mãn s mong i c a h# i v i h th ng; c bi t ph ng cách mà h th ng cung c!p ch c n(ng cho h# làm i u ó, nhà phát tri n ph i m b o r%ng khách hàng c mơ hình ý ngh+a c a chúng, tránh tr ng h p t o nh ng th không th ch!p th t s hi u nh n n i Trong giai o n này, rõ ràng câu h i ý t ng s& xu!t hi n chúng c n ph i c b sung thêm vào mơ hình Use Case tr c n giai o n phê t chung cu c Giai o n xác nh n c'ng có th c th c hi n th i k0 th nghi m h th ng, nh ng i m y u c a ph ng th c làm n u h th ng không th a mãn nh ng yêu c u c th c a ng i s d ng tồn b d án r!t u có th s& ph i làm l i t Ki m tra h th ng m b o ho t ng úng nh c t i u không th c th c hi n tr c ã có nh ng thành ph n c a h th ng c t o Ch* sau ó ng i ta m i có th th xem h th ng có ho t ng úng nh c t mà ng i s d ng ã a ra, r%ng Use Case th c hi n úng theo nh nh ng l i ã miêu t mơ hình, r%ng chúng ho t ng theo úng ph ng th c ã c miêu t v(n b n miêu t Use Case i b' d3c Use Case M t nh ng k, thu t h u d ng c dùng c giai o n nh ngh+a l n th nghi m Use Case g#i " i B D#c Use Case” Theo k, thu t này, nhi u ng i khác nhóm làm mơ hình s& óng vai tác nhân c'ng nh h th ng m t Use Case c th Ng i m nh n vai tác nhân s& b"t u b%ng vi c nói tác nhân làm v i h th ng K t qu c a công vi c h th ng s& kh i ch y m t Use Case c th c b"t u t hành ng Ng i óng vai h th ng sau ó s& nói làm Use Case c th c hi n Nhà phát tri n ng ngồi trị ch i di n k ch s& ghi chép tìm cách phát hi n i m y u Use Case c miêu t b%ng di n viên Trong tr ng h p c thù, b n s& tìm th!y r%ng có m t vài chu.i hành ng b sung không c miêu t c'ng nh m t vài hành ng không c miêu t v i y chi ti t Các "di n viên" hi u th!u áo khía c nh s d ng c a h th ng cơng vi c th Use Case s& hi u qu b!y nhiêu Vi c thay i di n viên óng nh ng vai trò khác s& d n t i nh ng thay i miêu t h ng nhìn, cung c!p d li u u vào cho nhà t o mơ hình 60 h# bi t c làm cách có th a nh ng l i miêu t Use Case rõ ràng h n, minh b ch h n, ch* nh ng i m thi u M t vai trò c a t!t c tác nhân ã c di n th c thi, t!t c Use Case ã c th c thi theo ki u này, ó th i i m mà ng i ta nói m t q trình th nghi m c a mơ hình Use Case ã hoàn t!t 4.10 Th*c hi n Use Case Use Case nh ng l i miêu t c l p v i s th c thi ch c n(ng c a h th ng i u ó có ngh+a Use Case s& c th c hi n (th c th hóa) h th ng, v y nên trách nhi m th c thi hành ng c miêu t tài li u Use Case u c phân b v cho i t ng c ng tác th c thi ch c n(ng ó Các nguyên t"c c a UML cho vi c th c hi n Use Case là: M t Use Case s& c th c hi n m t s c ng tác (collaboration): M t s c ng tác ch* m t gi i pháp (ph thu c vào s th c thi n i b ) c a m t Use Case s d ng khái ni m l p/ i t ng m i quan h gi a chúng i v i (g#i ng c nh – context c a s c ng tác) c'ng nh s t ng tác gi a chúng t t i ch c n(ng mong mu n (g#i chu.i t ng tác c a s c ng tác) Kí hi u cho s c ng tác m t hình ellipse có ch a tên c a s c ng tác ó M t s c ng tác c trình bày UML qua m t lo t bi u ch* c ng c nh l n chu.i t ng tác gi a thành ph n tham gia: thành ph n tham gia m t s c ng tác m t lo t l p (và m t th c th c ng tác: i t ng) Các bi u s d ng ây bi u c ng tác, bi u chu.i bi u ho t ng C n ph i s d ng lo i bi u t o m t b c tranh bao quát v s c ng tác quy t nh tùy thu c vào t ng tr ng h p c th Trong m t vài tr ng h p, ch* m t bi u c ng tác ã có th ; nh ng tr ng h p khác, ng i ta nh!t thi t c n t i s k t h p c a nhi u lo i bi u khác M t c nh k ch (Scenario) m t th c th (instance) c a m t Use Case m t s c ng tác: m t c nh k ch m t chu.i th c thi c th (m t dòng ch y c th c a s ki n) trình bày m t s th c th hóa c a m t Use Case (t c m t l n s d ng h th ng) Khi m t c nh k ch c quan sát t cách m t Use Case, ng i ta ch* miêu t nh ng ng x bên ngồi h ng v phía tác nhân Khi quan sát m t c nh k ch t cách m t th c th c a s c ng tác, ng i ta s& miêu t c s th c thi n i t i ây, thu t toán c'ng nh th t c c a chúng s giao (các dòng l nh code) c a l p tham gia ti p gi a chúng v i Tác v th c hi n m t Use Case chuy n b c hành ng khác l i miêu t Use Case thành l p (Class), th t c nh ng l p c'ng nh quan h gi a chúng v i Nó c miêu t ng tác phân b trách nhi m c a m.i b c i Use Case vào l p tham gia s c ng tác th c hi n Use Case ó T i giai o n này, ng i ta ph i tìm m t gi i pháp cung c!p nh ng hành vi c xác nh c a Use Case; c miêu t nh ng thu t ng c a m t s c ng h ng ngo i ã tác n i b h th ng M.i b c hành ng Use Case s& c chuy n thành th t c (operation) l p tham gia M t b c Use Case s& c chuy n thành m t lo t th t c t i nhi u l p; r!t hi m x y ánh x 1-1 gi a hành ng Use Case th t c c th c thi t ng tác gi a i t ng c a l p tham gia C'ng xin nh r%ng m t l p có th tham gia nhi u Use Case khác trách nhi m cao nh!t c a l p n%m vi c k t t p t!t c vai trò mà l p m nh n Use Case khác 61 M i quan h gi a m t Use Case s th c thi theo khái ni m c ng tác c ch* ho c qua m t m i quan h nâng cao (refinement relationship) – bi u th b%ng o n th)ng ch!m ch!m v i m'i tên - - -> hay m t hyperlink ng m m t cơng c ó M t hyperlink m t công c s& t o i u ki n chuy n t vi c quan sát m t Use Case m t bi u Use Case sang s c ng tác th c thi Use Case ó Các hyperlink c'ng c s d ng chuy n t Use Case sang m t c nh k ch (th ng m t mơ hình ng – bi u ho t ng, bi u chu.i hay bi u c ng tác) miêu t m t s th c hi n c th ó c a Use Case Phân b trách nhi m cho l p m t cách thành cơng m t tác v ịi h i kinh nghi m C'ng gi ng nh m#i công o n h ng i t ng khác, công vi c mang tính vịng l p (iterative) Nhà phát tri n th nghi m v i nhi u s phân b trách nhi m khác d n d n nâng c!p chúng gi i pháp c a cho t i t o c m t mơ hình th c hi n ch c n(ng ó, ng th i l i m c n(ng ng cho phép ti n hành s thay i t ng lai Jacobson s d ng ph ng pháp nh ngh+a ba lo i i t ng c(n b n (có ngh+a ba lo i l p): i t ng biên (boundary objects) , i t ng ch* huy (control objects) i t ng th c th (entity objects) i v i m.i Use Case, l#ai i t ng c s d ng miêu t m t s c ng tác th c thi Use Case Trách nhi m c a lo i i t ng k nh sau: i t ng th c th : lo i i t ng i di n cho th c th c a toán n%m ph m vi mà h th ng x lý Th ng chúng mang tính th ng, theo khái ni m chúng không t gây nên t ng tác i v i chúng Trong m t h th ng thông tin, i t ng th c th th ng mang tính tr ng t n (persistent) c l u tr m t h ngân hàng d li u Các i t ng th c th th ng tham gia vào nhi u Use Case khác i t ng biên: lo i i t ng n%m g n ng ranh gi i c a h th ng (m c dù v n n%m bên h th ng) Chúng t ng tác v i tác nhân n%m bên h th ng nh n thông i p c'ng nh g i thông i p n lo i i t ng khác n%m bên h th ng i t ng ch" huy: lo i i t ng ch* huy s t ng tác gi a nhóm i t ng M t i t ng nh th có th óng vai trị "b ph n i u n” cho toàn b m t Use Case hồn t!t, hay có th th c thi m t chu.i hành ng chung c a nhi u Use Case Th ng m t i t ng nh v y ch* t n t i trình th c thi Use Case c s d ng v& lo i bi u miêu t Ba lo i i t ng có ba kí hi u khác có th c ng tác ho c bi u l p Sau ã nh ngh+a nhi u lo i i t ng khác xác nh n c ng tác, ng i ta có th cơng i tìm s t ng t gi a chúng m t s l p có th c s d ng m t lo t Use Case khác S d ng Use Case theo ph ng th c ta có th t o nên n n t ng cho vi c phân tích thi t k h th ng; qui trình phát tri n c Ivar Jacobson g#i "Qui Trình Phát Tri n Theo Use Case" (Use case – driven) Nhìn chung có nhi u ph ng pháp khác phân b trách nhi m t Use Case v cho l p Có ph ng pháp ngh u tiên ph i ti n hành phân tích ph m vi tốn, ch* t!t c l p th c th (thu c ph m vi toán) v i m i quan h c a chúng v i Sau ó nhà phát tri n s& phân tích t ng Use Case phân b trách nhi m cho l p mơ hình phân tích (analysis model), nhi u s& thay i chúng ho c b sung thêm l p m i M t ph ng pháp khác l i ngh nên l!y Use Case làm n n t ng tìm l p, trình phân b trách nhi m mơ hình phân tích c a ph m vi toán s& t ng b c t ng b c c thi t l p M t i m quan tr#ng c n ph i nh"c l i cơng vi c ây mang tính vịng l p Khi phân b trách nhi m cho l p, ta có th phát hi n s thi u ng b ho c l.i bi u l p qua ó, d n n 62 vi c s a ch a bi u l p Nh ng l p m i s& c nh n d ng tìm nh%m m c ích h tr cho Use Case Trong m t s tr ng h p, th m chí có th x y chuy n ph i thay i ho c s a ch a c bi u Use Case hi u h th ng m t cách sâu s"c h n, nhà phát tri n s& nh n r%ng có m t Use Case ó ã khơng c miêu t xác úng "n Các Use Case giúp t p trung vào khía c nh ch c n(ng c a h th ng, ph i m b o cho c miêu t xác c xây d ng xác h th ng M t nh ng v!n x y v i nhi u ph ng pháp h ng i t ng mà không s d ng n khái ni m Use Case chúng t p trung nhi u vào c!u trúc t+nh c a l p i t ng (nhi u ng i ta g#i ph ng pháp mơ hình hóa khái ni m – conceptual modeling) nh ng l i b qua khía c nh ch c n(ng khía c nh ng c a h th ng 4.11 Tóm t)t v Use Case Mơ hình Use Case m t k, thu t c s d ng miêu t nh ng yêu c u mang tính ch c n(ng c a m t h th ng Use Case c miêu t qua khái ni m tác nhân bên ngoài, Use Case h th ng Tác nhân t ng tr ng cho m t vai trò m t th c th bên ngồi ví d nh m t ng i dùng, m t b ph n ph n c ng ho c m t h th ng khác t ng tác v i h th ng Tác nhân gây giao ti p v i Use c th c hi n h th ng Case, m t Use Case m t t p h p c a chu.i hành ng M t Use Case ph i cung c!p m t giá tr c n h ng t i ó cho tác nhân, bình th ng c miêu t b%ng v(n b n Tác nhân Use Case l p M t tác nhân c liên k t v i m t ho c nhi u Use Case qua m i liên k t (Association) c tác nhân l n Use Case u có th có m i quan h khái quát hóa, m i quan h miêu t nh ng ng x chung l p cha, s& c th a k b i m t ho c nhi u l p M t mơ hình Use Case c miêu t b%ng m t hay nhi u bi u tr ng h p thu c ngôn ng UML Use Case c th c hi n qua s c ng tác M t s c ng tác m t l i miêu t m t ng c nh, ch* l p/ i t ng m i quan h c a chúng m t t ng tác ch* l p/ i t ng ó t ng tác v i th c hi n m t ch c n(ng c th M t s c ng tác c miêu t b%ng bi u ho t ng, bi u c ng tác bi u chu.i Khi m t Use Case c th c hi n, trách nhi m cho m.i b c hành ng Use Case c n ph i c phân b cho l p tham gia s c ng tác ó, th ng qua vi c xác nh th t c c a l p này, i song song v i ph ng th c mà chúng t ng tác v i M t c nh k ch m t th c th c a m t Use Case, hay m t s c ng tác, ch* m t chu.i th c thi c th Vì th , m t c nh k ch m t s minh h#a m t ví d c a m t Use Case m t s c ng tác Khi c nh k ch c ch* t cách m t th c th c a m t Use Case, ch* nh!t s t ng tác gi a Use Case tác nhân ngo i lai s& c miêu t , nh ng c nh k ch c quan sát c ch* theo h ng m t th c th c a m t s c ng tác, s t ng tác gi a l p/ i t ng phía bên h th ng c'ng s& c miêu t 4.12 Ph n câu h i H i: M t tác nhân (Actor) m t Use Case m t ng áp: Sai, tác nhân m t ng H i: H th ng khác c'ng có th i ho c m t v t ó t i ng tác v i h th ng óng vai trò tác nhân m t Use Case? áp: úng H i: M.i h th ng ch* có m t Use Case? áp: Sai 63 H i: Bi u Use case mô t ch c n(ng h th ng? áp: úng 64 ... 11 8 6 .10 .1 Th$m v!n bi u tr ng thái 11 8 6 .10 .2 Ph i h p s ki n 11 9 6 .10 .3 Bao gi s d ng bi u 11 9 6 .10 .4 L p bi u tr ng thái 12 0... 17 2 .1. 2 Tr c UML 2 .1. 3 S i 18 i c a UML 18 2 .1. 4 UML (Unifield Modeling Language) 19 2 .1. 5 Ph ng pháp ngôn ng mơ hình hố 19 2.2 UML. .. CL C CH 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 1. 1.2 Mơ hình tr u t ng 1. 1.3 Mơ hình