hướng dẫn sử dụng ngôn ngữ uml tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về tất cả các lĩnh v...
Trang 1MUƠC LUƠC
LÚĐI CAÊM ÚN 19
LÚĐI MÚÊ ĂÍÌU 20
MÖƠT SÖỊ TÛĐ VIÏỊT TÙƯT 22
Chûúng 1 23
TÖÍNG QUAN 1 23
1.1 Yïu cíìu thûơc tïị 23
Chûúng 1 TÖÍNG QUAN 2 24
1.2 Giúâi thiïơu UML 24
Chûúng 1 TÖÍNG QUAN 3 25
1.3 Nguýn nhín ra ăúđi 25
1.3 Nguýn nhín ra ăúđi 25
Chûúng 1 TÖÍNG QUAN 4 26
1.4 Tíìm quan troơng cuêa viïơc mö hònh hoâa 26
Chûúng 1 27
TÖÍNG QUAN 5 27
1.5 Xu hûúâng phaât triïín trong ngađnh cöng nghïơ phíìn mïìm 27
Chûúng 1 28
TÖÍNG QUAN 6 28
1.3.3 Sûơ höơi tuơ cuêa caâc cöng nghïơ 28
Chûúng 1 TÖÍNG QUAN 7 29
1.7 UML húơp nhíịt caâc yâ tûúêng nöîi bíơt vađ nhûông víịn ăïì thûơc tïị trong quaâ trònh phaât triïín cuêa cöng nghïơ phíìn mïìm 29
Chûúng 1 TÖÍNG QUAN 8 30
1.8 UML ăöơc líơp vúâi ngön ngûô líơp trònh vađ qui trònh phaât triïín phíìn mïìm 30
Chûúng 1 TÖÍNG QUAN 9 30
1.9 UML lađ ngön ngûô mö hònh hoâa ăa duơng (general purpose) 30
Chûúng 1 TÖÍNG QUAN 10 31
1.10 UML ặúơc höî trúơ búêi caâc cöng ty, cöng cuơ phaât triïín phíìn mïìm 31
1.10.1 UML lađ möơt chuíín cöng nghiïơp 31
Trang 21.11.1 UML cung cêëp cú chïë múã rưång vâ àùåc biïåt hốa àïí múã rưång cấc khấi
niïåm cưët lội 32
Chûúng 1 TƯÍNG QUAN 12 33
1.12 UML àêíy mẩnh tấi sûã duång trong nïìn cưng nghïå phêìn mïìm .33
Chûúng 1 TƯÍNG QUAN 13 34
1.13 So sấnh vúái cấc phûúng phấp khấc 34
Chûúng 1 35
TƯÍNG QUAN 14 35
Chûúng 1 36
TƯÍNG QUAN 15 36
1.15 Lõch sûã phất triïín 36
Chûúng 1 36
TƯÍNG QUAN 16 36
Chûúng 1 TƯÍNG QUAN 17 37
1.17 Kiïën truác tưíng quan cuãa UML 37
1.17.1 Kiïën truác cuãa UML 37
Chûúng 1 TƯÍNG QUAN 18 38
1.18 Cấc mư hịnh 38
1.18.1 Cêëu truác View 38
Chûúng 1 TƯÍNG QUAN 19 39
1.19 Nhûäng lûúåc àưì 39
Chûúng 1 TƯÍNG QUAN 20 39
Chûúng 1 TƯÍNG QUAN 21 40
Chûúng 2 NGÛÄ NGHƠA VÂ CUÁ PHẤP CẤC THÂNH TƯË TRONG UML (UML Semantic) 22 41
2.1 Giúái thiïåu 41
Chûúng 2 NGÛÄ NGHƠA VÂ CUÁ PHẤP CẤC THÂNH TƯË TRONG UML (UML Semantic) 23 42
2.2 Tưíng quan vïì cấc loẩi quan hïå giûäa cấc thânh tưë 42 Chûúng 2 NGÛÄ NGHƠA VÂ CUÁ PHẤP CẤC THÂNH TƯË TRONG UML
Trang 32.5 Quan hïå phuå thuưåc (dependency) 44
Chûúng 2 NGÛÄ NGHƠA VÂ CUÁ PHẤP CẤC THÂNH TƯË TRONG UML (UML Semantic) 26 45
2.6 Tưíng quan vïì cấc thânh tưë vâ cêëu truác UML metamodel 45
2.6.1 Phên loẩi thânh tưë trong UML metamodel 45
2.6.2 Cêëu truác UML metamodel 45
Chûúng 2 NGÛÄ NGHƠA VÂ CUÁ PHẤP CẤC THÂNH TƯË TRONG UML (UML Semantic) 27 46
2.7 Package Foundation (gối nïìn tẫng) 46
2.7.1 Package Core (gối cưët lội) 46
Chûúng 2 NGÛÄ NGHƠA VÂ CUÁ PHẤP CẤC THÂNH TƯË TRONG UML (UML Semantic) 28 47
2.8 Mư hịnh Backbone (sûúân) 47
Chûúng 2 NGÛÄ NGHƠA VÂ CUÁ PHẤP CẤC THÂNH TƯË TRONG UML (UML Semantic) 29 48
Chûúng 2 NGÛÄ NGHƠA VÂ CUÁ PHẤP CẤC THÂNH TƯË TRONG UML (UML Semantic) 30 49
Chûúng 2 NGÛÄ NGHƠA VÂ CUÁ PHẤP CẤC THÂNH TƯË TRONG UML (UML Semantic) 31 49
Chûúng 2 NGÛÄ NGHƠA VÂ CUÁ PHẤP CẤC THÂNH TƯË TRONG UML (UML Semantic) 32 50
2.12 Mư hịnh Relationships (cấc quan hïå) 50
2.12.1 Quan hïå tưíng quất hốa (generalization) 50
Chûúng 2 NGÛÄ NGHƠA VÂ CUÁ PHẤP CẤC THÂNH TƯË TRONG UML (UML Semantic) 33 51
2.13 Quan hïå kïët húåp (Association) 51
Chûúng 2 NGÛÄ NGHƠA VÂ CUÁ PHẤP CẤC THÂNH TƯË TRONG UML (UML Semantic) 34 51
2.14 Lúáp kïët húåp (AssociationClass) 51
Chûúng 2 NGÛÄ NGHƠA VÂ CUÁ PHẤP CẤC THÂNH TƯË TRONG UML (UML Semantic) 35 52
2.15 Mư hịnh Classifiers (cấc àùåc biïåt hốa cuãa classifiers) 52
Chûúng 2 NGÛÄ NGHƠA VÂ CUÁ PHẤP CẤC THÂNH TƯË TRONG UML (UML Semantic) 36 52
2.16 Class (lúáp) 52
Trang 42.17.1 DataType (kiïíu dûä liïåu) 53
2.17.2 Node (nuát) 53
Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 38 54
2.38 Component (thaânh phêìn) 54
2.38.1 Mö hònh Dependencies (caác quan hïå phuå thuöåc) 54
Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 39 55
2.39 Binding (gùæn) 55
2.39.1 Abstraction (trûâu tûúång hoáa) 55
Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 40 55
2.40 Usage (sûã duång) 55
2.40.1 Permisson (cho pheáp) 55
2.41.2 Mö hònh AuxiliaryElements (caác thaânh töë böí sung) 55
Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 41 56
2.41 TemplateParameter (tham söë cho mêîu) 56
Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 42 56
2.42 PresentationElement (thaânh töë biïíu diïîn trûåc quan) 56
2.42.1 Package Extension Mechanisms (goái cú chïë múã röång) 57
Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 43 57
2.43 Constraint (raâng buöåc) 57
Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 44 58
2.44 Tagged Value (theã giaá trõ) 58
2.44.1 Caác kiïíu dûä liïåu trong UML metamodel (Data Types) 58 Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
Trang 52.47 Package Behavioural Elements (goái thaânh töë haânh vi) 60
Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 48 61
2.48 Package Common Behavior (goái haânh vi töíng quaát) 61
2.48.1 Mö hònh Signals (tñn hiïåu) 61
Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 49 62
2.49 Reception (thaânh töë nhêån tñn hiïåu) 62
2.49.1 Signal (tñn hiïåu) 62
Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 50 62
2.50 Exception (löîi biïåt lïå) 62
2.50.1 Mö hònh Actions (taác àöång) 62
Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 51 63
2.51 Argument (àöëi söë) 63
2.51.1 Action (taác àöång) 63
Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 52 64
2.52 ActionSequence (taác àöång phûác) 64
2.52.1 Mö hònh Instances and Links (thïí hiïån vaâ liïn kïët) 64
Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 53 64
Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 54 65
2.54 Stimulus (taác nhên) 65
2.54.2 AttributeLink (theã thuöåc tñnh) 65
2.54.2 LinkEnd (möëi liïn kïët) 65
2.54.3 Link (liïn kïët) 65
2.54.4 Instance (thïí hiïån) 65
Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 55 66
2.55 Package Collaborations (goái cöång taác) 66
Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 56 66
Trang 62.57.1 AssociationRole (vai cuãa quan hïå kïët húåp) 67
2.57.2 ClassifierRole (vai cuãa Classifier) 67
2.57.3 Collaboration (cöång taác) 67
Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 58 68
2.58 Message (thöng àiïåp) 68
2.58.1 Package Use Cases (goái Use Cases) 68
Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 59 69
2.59 Actor (taác nhên) 69
Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 60 69
2.60 Extend (múã röång) 69
2.60.1 Include (bao göìm) 69
2.60.2 UseCase 69
Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 61 70
2.61 Package State Machines (goái mö hònh traång thaái) 70
Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 62 71
Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 63 71
2.63 StateVertex (àiïím traång thaái) 71
2.63 State (traång thaái) 71
2.63.1 PseudoState (traång thaái giaã) 71
Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 64 73
2.64 Transition (chuyïín traång thaái) 73
Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 65 73
Trang 7Chûúng 2 NGÛÔ NGHÔA VAĐ CUÂ PHAÂP CAÂC THAĐNH TÖỊ TRONG UML
(UML Semantic) 67 75
2.67 ActionState (traơng thaâi hoaơt ăöơng) 75
2.67.1 ActivityGraph (ăöì thõ hoaơt ăöơng) 75
Chûúng 2 NGÛÔ NGHÔA VAĐ CUÂ PHAÂP CAÂC THAĐNH TÖỊ TRONG UML (UML Semantic) 68 76
2.68 ObjectFlowState (traơng thaâi ăöịi tûúơng luín chuýín) 76
2.68.1 Partition (vuđng) 76
Chûúng 2 NGÛÔ NGHÔA VAĐ CUÂ PHAÂP CAÂC THAĐNH TÖỊ TRONG UML (UML Semantic) 69 76
2.69 Package Model Management (goâi quaên trõ mö hònh) 76
2.69.1 Elementimport 77
Chûúng 2 NGÛÔ NGHÔA VAĐ CUÂ PHAÂP CAÂC THAĐNH TÖỊ TRONG UML (UML Semantic) 70 77
2.70 Model (mö hònh) 77
2.70.1 Package (goâi) 77
2.70.2 Subsystem (hïơ thöịng con) 77
Chûúng 2 NGÛÔ NGHÔA VAĐ CUÂ PHAÂP CAÂC THAĐNH TÖỊ TRONG UML (UML Semantic) 71 78
2.71 Toâm tùưt 78
Chûúng 3 78
HÏƠ THÖỊNG KYÂ HIÏƠU (UML Notation) 72 78
3.1 Giúâi thiïơu 78
Chûúng 3 HÏƠ THÖỊNG KYÂ HIÏƠU (UML Notation) 73 79
3.2 Caâc thađnh phíìn cú baên cuêa lûúơc ăöì 79
3.2.1 Ăöì thõ vađ nöơi dung (Graphs and their Contents) 79
Chûúng 3 80
HÏƠ THÖỊNG KYÂ HIÏƠU (UML Notation) 74 80
3.3 Caâc ặúđng díîn (Drawing Paths) 80
3.3.1 Caâc liïn kïịt íín vađ vai trođ cuêa cöng cuơ 80
3.3.2 Thöng tin nïìn (Background Information) 80
3.3.3 Chuöîi (String), tïn (Name),nhaôn (Label) vađ tûđ khoâa 81
Chûúng 3 81
HÏƠ THÖỊNG KYÂ HIÏƠU (UML Notation) 75 81
3.4 Biïíu thûâc (Expression) 81
Trang 83.5 Sûå tûúng quan giûäa caác loaåi thaânh töë vaâ thïí hiïån cuãa noá 82
Chûúng 3 82
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 77 82
3.6 Caác thaânh phêìn quaãn trõ mö hònh (model management) 82
3.6.1 Goái (Package) 82
Chûúng 3 83
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 78 83
3.7 Caác thaânh phêìn quaãn trõ mö hònh (model management) 83
Chûúng 3 84
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 79 84
3.8 Subsystem 84
3.8.1 Ngûä nghôa 84
3.8.2 Kyá hiïåu 84
Chûúng 3 85
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 80 85
3.9 Caác thaânh phêìn quaãn trõ mö hònh (model management) 85
Chûúng 3 85
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 81 85
3.10 Model 85
3.10.1 Ngûä nghôa 85
3.10.2 Kyá hiïåu 85
Chûúng 3 86
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 82 86
3.11 Caác cú chïë múã röång töíng quaát 86
3.11.1 Raâng buöåc (Constraint) vaâ chuá thñch (Comment) 86
Chûúng 3 87
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 83 87
3.12 Kyá hiïåu 87
Chûúng 3 87
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 84 87
Trang 9Chûúng 3 89
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 87 89
3.15 Caác lûúåc àöì 89
3.15.1 Giúái thiïåu 89
Chûúng 3 90
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 88 90
3.16 Lûúåc àöì lúáp (Class Diagram) 90
Chûúng 3 91
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 89 91
Chûúng 3 91
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 90 91
3.17 Chûác nùng 91
3.17.1 Caác thaânh phêìn chñnh 91
Chûúng 3 92
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 91 92
Chûúng 3 93
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 92 93
3.18 Interface 93
Chûúng 3 94
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 93 94
3.19 Caác loaåi quan hïå 94
3.19.1 Quan hïå kïët húåp (association) 94
Chûúng 3 94
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 94 94
Chûúng 3 95
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 95 95
Chûúng 3 95
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 96 95
Chûúng 3 96
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 97 96
Chûúng 3 97
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 98 97
3.20 Quan hïå töíng quaát hoáa 97
Chûúng 3 97
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 99 97
Trang 10HÏƠ THÖỊNG KYÂ HIÏƠU (UML Notation) 101 98
3.21 Quan hïơ phuơ thuöơc (Dependency) 98
Chûúng 3 99
HÏƠ THÖỊNG KYÂ HIÏƠU (UML Notation) 101 99
3.22 Caâc thađnh töị ặúơc tñnh toaân (hay ặúơc díîn xuíịt – derived Element) 99
Chûúng 3 100
HÏƠ THÖỊNG KYÂ HIÏƠU (UML Notation) 103 100
3.23 Lûúơc ăöì ăöịi tûúơng (Object Diagram) 100
Chûúng 3 100
HÏƠ THÖỊNG KYÂ HIÏƠU (UML Notation) 104 100
3.24 Caâc thađnh phíìn chñnh 100
3.24.1 Caâc ăöịi tûúơng (Objects) 100
Chûúng 3 101
HÏƠ THÖỊNG KYÂ HIÏƠU (UML Notation) 105 101
3.25 Ăöịi tûúơng gheâp (Composite Object) 101
Chûúng 3 102
HÏƠ THÖỊNG KYÂ HIÏƠU (UML Notation) 106 102
3.26 Caâc liïn kïịt (Link) 102
Chûúng 3 103
HÏƠ THÖỊNG KYÂ HIÏƠU (UML Notation) 107 103
3.27 Lûúơc ăöì Use Case (Use Case Diagram) 103
Chûúng 3 103
HÏƠ THÖỊNG KYÂ HIÏƠU (UML Notation) 108 103
Chûúng 3 104
HÏƠ THÖỊNG KYÂ HIÏƠU (UML Notation) 109 104
3.29 Caâc thađnh phíìn chñnh 104
3.29.1 Caâc Use case 104
3.29.2 Caâc taâc nhín (Actors) 104
Chûúng 3 105
Hïơ thöịng kyâ hiïơu (UML Notation) 110 105
Trang 11Chûúng 3 107
HÏÅ THƯËNG KYÁ HIÏÅU (UML Notation) 113 107
Chûúng 3 107
HÏÅ THƯËNG KYÁ HIÏÅU (UML Notation) 114 107
3.33 Cấc thânh phêìn chđnh 107
3.33.1 Viïåc tẩo vâ huãy mưåt àưëi tûúång 108
Chûúng 3 108
HÏÅ THƯËNG KYÁ HIÏÅU (UML Notation) 115 108
3.34 Thưng àiïåp khưng àưìng bưå vâ àïå qui 108
Chûúng 3 109
HÏÅ THƯËNG KYÁ HIÏÅU (UML Notation) 116 109
3.35 Thúâi gian chuyïín thưng àiïåp trong lûúåc àưì tuêìn tûå 109
Chûúng 3 109
HÏÅ THƯËNG KYÁ HIÏÅU (UML Notation) 117 109
3.36 Lûúåc àưì cưång tấc (Collaboration Diagram) 109
Chûúng 3 110
HÏÅ THƯËNG KYÁ HIÏÅU (UML Notation) 118 110
3.37 Cấc thânh phêìn chđnh 110
3.37.1 Cấc àưëi tûúång 110
3.37.2 Cấc liïn kïët 110
Chûúng 3 111
HÏÅ THƯËNG KYÁ HIÏÅU (UML Notation) 119 111
3.38 Thưng àiïåp vâ cấc kđch thđch 111
Chûúng 3 112
HÏÅ THƯËNG KYÁ HIÏÅU (UML Notation) 120 112
3.39 Cuá phấp àùåt tïn nhận 112
Chûúng 3 113
HÏÅ THƯËNG KYÁ HIÏÅU (UML Notation) 121 113
3.40 Lûúåc àưì trẩng thấi (Statechart Diagram) 113
Chûúng 3 113
HÏÅ THƯËNG KYÁ HIÏÅU (UML Notation) 122 113
3.41 Cấc thânh phêìn chđnh 113
3.41.1 Trẩng thấi (state) 113
Chûúng 3 114
HÏÅ THƯËNG KYÁ HIÏÅU (UML Notation) 123 114
Trang 12Chûúng 3 115
HÏƠ THÖỊNG KYÂ HIÏƠU (UML Notation) 125 115
3.42 Sûơ kiïơn (event) 115
Chûúng 3 116
HÏƠ THÖỊNG KYÂ HIÏƠU (UML Notation) 126 116
3.43 Caâc chuýín ăöíi traơng thaâi ăún giaên (simple transitions) 116
Chûúng 3 117
HÏƠ THÖỊNG KYÂ HIÏƠU (UML Notation) 127 117
3.44 Caâc chuýín ăöíi traơng thaâi phûâc taơp (complex transitions) 117
3.43.1 History Indicator 117
Chûúng 3 118
HÏƠ THÖỊNG KYÂ HIÏƠU (UML Notation) 128 118
3.45 Caâc traơng thaâi ăöìng böơ (synch states) 118
Chûúng 3 118
HÏƠ THÖỊNG KYÂ HIÏƠU (UML Notation) 129 118
3.46 Lûúơc ăöì hoaơt ăöơng (Activity Diagram) 118
Chûúng 3 119
HÏƠ THÖỊNG KYÂ HIÏƠU (UML Notation) 130 119
3.47 Caâc thađnh phíìn chñnh 119
3.46.1 Caâc traơng thaâi hađnh ăöơng (action state) 119
3.46.2 Caâc quýịt ắnh (decisions) 119
Chûúng 3 120
HÏƠ THÖỊNG KYÂ HIÏƠU (UML Notation) 131 120
3.48 Swimlanes vađ ăöịi tûúơng trong lûúơc ăöì hoaơt ăöơng .120
Chûúng 3 121
HÏƠ THÖỊNG KYÂ HIÏƠU (UML Notation) 132 121
3.49 Caâc biïíu tûúơng ăiïìu khiïín 121
Chûúng 3 122
HÏƠ THÖỊNG KYÂ HIÏƠU (UML Notation) 133 122
3.50 Lûúơc ăöì thađnh phíìn (Component Diagram) 122
Trang 13HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 136 123
3.52 Lûúåc àöì triïín khai (Deployment Diagram) 123
Chûúng 3 125
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 137 125
3.53 Toám tùæt 125
Chûúng 3 125
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 138 125
3.54 Toám tùæt 125
Chûúng 4 ÛÁNG DUÅNG UML TRONG QUY TRÒNH PHAÁT TRIÏÍN PHÊÌN MÏÌM 139 126
4.1 Giúái thiïåu 126
4.2 Giúái thiïåu Rational Unified Process (RUP) 126
4.2.1 Khaái quaát vïì RUP 126
Chûúng 4 ÛÁNG DUÅNG UML TRONG QUY TRÒNH PHAÁT TRIÏÍN PHÊÌN MÏÌM 140 127
4.3 Giúái thiïåu Rational Unified Process (RUP) 127
Chûúng 4 ÛÁNG DUÅNG UML TRONG QUY TRÒNH PHAÁT TRIÏÍN PHÊÌN MÏÌM 141 128
4.4 Giúái thiïåu Rational Unified Process (RUP) 128
4.4.1 Kiïën truác cuãa RUP 128
Chûúng 4 ÛÁNG DUÅNG UML TRONG QUY TRÒNH PHAÁT TRIÏÍN PHÊÌN MÏÌM 142 128
4.5 Giúái thiïåu Rational Unified Process (RUP) 128
Chûúng 4 ÛÁNG DUÅNG UML TRONG QUY TRÒNH PHAÁT TRIÏÍN PHÊÌN MÏÌM 143 129
4.6 Giúái thiïåu Rational Unified Process (RUP) 129
4.6.1 Cêëu truác tônh cuãa quy trònh 130
Chûúng 4 ÛÁNG DUÅNG UML TRONG QUY TRÒNH PHAÁT TRIÏÍN PHÊÌN MÏÌM 144 130
4.7 Giúái thiïåu Rational Unified Process (RUP) 130
4.7.1 Caác àùåc àiïím phên biïåt cuãa RUP so vúái caác quy trònh phaát triïín phêìn mïìm khaác 130
Chûúng 4 ÛÁNG DUÅNG UML TRONG QUY TRÒNH PHAÁT TRIÏÍN PHÊÌN MÏÌM 145 131
4.8 RUP têåp trung vaâo kiïën truác phêìn mïìm 131
Trang 14Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN MÏÌM 147 133 4.10 ÛÂng duơng UML trong RUP 133 Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN MÏÌM 148 1344.11 Mö hònh hoâa nghiïơp vuơ (business modeling) 134 4.11.1 Mö hònh nghiïơp vuơ (Business Use Case) 134 Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN MÏÌM 149 135 4.12 ÛÂng duơng UML trong RUP 135Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN MÏÌM 150 135 4.13 Mö hònh ăöịi tûúơng nghiïơp vuơ (Business Object) 135 Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN MÏÌM 151 1364.13 Xaâc ắnh ýu cíìu (requirements) 136 Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN MÏÌM 152 137 Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN MÏÌM 153 137 4.14 Phín tñch (analysis) 137 Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN MÏÌM 154 138Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN MÏÌM 155 139 Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN MÏÌM 156 140 4.15 Thiïịt kïị (design) 140Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN MÏÌM 155 141
Trang 154.16 Kiïím chûâng (test) 143
Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN MÏÌM 160 143
4.17 Phaât triïín möơt ûâng duơng quaên lyâ giaâo vuơ theo RUP 143
4.17.1 Giúâi thiïơu ûâng duơng 143
4.17.2 Sú lûúơc ýu cíìu vađ ăùơc ăiïím 144
Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN MÏÌM 161 144
4.18 Phaât triïín ûâng duơng theo caâc workflow cuêa RUP 144
4.18.1 Mö hònh hoâa nghiïơp vuơ (business modeling) 144
Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN MÏÌM 162 145
4.19 Xaâc ắnh ýu cíìu (requirements) 145
4.19.1 Phín loaơi ngûúđi sûê duơng (actor) vađ tòm caâc chûâc nùng cuêa hïơ thöịng (use case) cho möîi loaơi ngûúđi sûê duơng nađy 145
Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN MÏÌM 163 146
4.20 Phín loaơi caâc use case theo ăöơ ûu tiïn 146
4.20.1 Líơp sûu liïơu mö taê chi tiïịt cho tûđng chûâc nùng 146
Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN MÏÌM 164 148
4.21 Cíịu truâc caâc use case bùìng caâch xaâc ắnh caâc quan hïơ giûôa 148
Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN MÏÌM 165 148
4.22 Phín tñch (analysis) 148
4.22.1 Phín tñch kiïịn truâc hïơ thöịng 148
Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN MÏÌM 166 149
4.23 Phín tñch möơt use case 149
Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN MÏÌM 167 150
4.24 Phín tñch möơt analysis class 150
Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN MÏÌM 168 151
4.25 Thiïịt kïị (design) 151
Trang 16Chûúng 4 ÛÁNG DUÅNG UML TRONG QUY TRÒNH PHAÁT TRIÏÍN PHÊÌN
MÏÌM 170 153
4.27 Phaát triïín möåt ûáng duång quaãn lyá giaáo vuå theo RUP 153
Chûúng 4 ÛÁNG DUÅNG UML TRONG QUY TRÒNH PHAÁT TRIÏÍN PHÊÌN MÏÌM 171 153
4.28 Thiïët kïë möåt use case 153
Chûúng 4 ÛÁNG DUÅNG UML TRONG QUY TRÒNH PHAÁT TRIÏÍN PHÊÌN MÏÌM 172 155
4.28 Thiïët kïë möåt lúáp 155
Chûúng 4 ÛÁNG DUÅNG UML TRONG QUY TRÒNH PHAÁT TRIÏÍN PHÊÌN MÏÌM 173 156
4.28 Phaát triïín möåt ûáng duång quaãn lyá giaáo vuå theo RUP 156
Chûúng 4 ÛÁNG DUÅNG UML TRONG QUY TRÒNH PHAÁT TRIÏÍN PHÊÌN MÏÌM 174 157
4.29 Thiïët kïë möåt hïå thöëng con 157
Chûúng 4 ÛÁNG DUÅNG UML TRONG QUY TRÒNH PHAÁT TRIÏÍN PHÊÌN MÏÌM 175 157
4.30 Caâi àùåt (implementation) 157
4.30.1 Kiïën truác caâi àùåt (architectural implementation) 157
4.30.2 Caâi àùåt vaâ tñch húåp hïå thöëng 158
Chûúng 4 ÛÁNG DUÅNG UML TRONG QUY TRÒNH PHAÁT TRIÏÍN PHÊÌN MÏÌM 176 158
4.31 Caâi àùåt caác hïå thöëng con (subsystem) 158
4.31.1 Caâi àùåt caác lúáp 158
Chûúng 4 ÛÁNG DUÅNG UML TRONG QUY TRÒNH PHAÁT TRIÏÍN PHÊÌN MÏÌM 177 159
4.42 Kiïím chûáng (test) 159
4.42.1 Lêåp kïë hoaåch kiïím chûáng 159
4.42.2 Thiïët kïë caác quy trònh kiïím chûáng (test case) 159
4.42.3 Thûåc hiïån kiïím chûáng 159
Trang 17Chûúng 5 161
TÖÍNG KÏËT 180 161
5.2 Hûúáng phaát triïín 161
Phuå luåc A 164
CAÁC KHAÁI NIÏÅM 164
Phuå luåc B 169
CAÁC KYÁ HIÏÅU 169
TAÂI LIÏÅU THAM KHAÃO 170
Trang 19LÚĐI CAÊM ÚN
Chuâng em xin chín thađnh caêm ún Khoa Cöng Nghïơ Thöng Tin, trûúđng Ăaơi Hoơc Khoa Hoơc Tûơ Nhiïn, TpHCM ăaô taơo ăiïìu kiïơn cho chuâng em thûơc hiïơn ăïì tađi töịt nghiïơp nađy Chuâng em xin chín thađnh caêm ún Thíìy Dûúng Anh Ăûâc vađ Thíìy Lï Ăònh Duy ăaô tíơn tònh hûúâng díîn, chó baêo chuâng em trong suöịt thúđi gian thûơc hiïơn ăïì tađi Chuâng em cuông xin chín thađnh caêm ún quyâ Thíìy Cö trong Khoa ăaô tíơn tònh giaêng daơy, trang bõ cho chuâng em nhûông kiïịn thûâc cíìn thiïịt trong suöịt quaâ trònh hoơc tíơp taơi trûúđng, vađ cuông xin gûêi lođng biïịt ún síu sùưc ăïịn
ba, meơ, caâc anh chõ vađ baơn beđ ăaô uêng höơ, giuâp ăúô vađ ăöơng viïn chuâng em trong nhûông luâc khoâ khùn cuông nhû trong suöịt nhûông nùm hoơc vûđa qua Mùơc duđ ăaô cöị gùưng hoađn thađnh luíơn vùn vúâi tíịt caê sûơ nöí lûơc cuêa baên thín, nhûng luíơn vùn chùưc chùưn khöng traânh khoêi nhûông thiïịu soât nhíịt ắnh, kñnh mong sûơ caêm thöng vađ tíơn tònh chó baêo cuêa quyâ Thíìy Cö
Nhoâm thûơc hiïơn
Trung Nam&Quang Vuô
Trang 20LÚĐI MÚÊ ĂÍÌU
Ngađy nay, cöng nghïơ thöng tin ăaô vađ ăang ăoâng vai trođ quan troơng trong ăúđi söịng kinh tïị, xaô höơi cuêa nhiïìu quöịc gia trïn thïị giúâi, lađ möơt phíìn khöng thïí thiïịu trong möơt xaô höơi ngađy cađng hiïơn ăaơi hoâa Noâi ăïịn cöng nghïơ thöng tin, chuâng ta khöng thïí khöng nhùưc ăïịn cöng nghïơ phíìn mïìm, phíìn mïìm ăoâng möơt vai trođ cûơc kyđ quan troơng trong lônh vûơc cöng nghïơ thöng tin Hiïơn nay, viïơc phaât triïín cöng nghïơ phíìn mïìm thađnh möơt lônh vûơc kinh tïị muôi nhoơn lađ muơc tiïu quan tím hađng ăíìu úê nûúâc ta
Giúđ ăíy, cöng nghïơ phíìn mïìm ăaô vađ ăang tiïịn böơ tûđng ngađy, hađng loaơt nhûông kyô thuíơt, nhûông cöng nghïơ múâi ra ăúđi giuâp cho viïơc phaât triïín caâc hïơ thöịng phíìn mïìm ngađy cađng ăún giaên hún Möơt trong nhûông lônh vûơc quan troơng vađ coâ aênh hûúêng ríịt lúân ăïịn sûơ thađnh cöng cuêa viïơc phaât triïín phíìn mïìm lađ viïơc
mö hònh hoâa phíìn mïìm Coâ ríịt nhiïìu ngön ngûô mö hònh hoâa höî trúơ cho viïơc mö hònh hoâa phíìn mïìm, nhûng coâ leô nöíi bíơt nhíịt lađ ngön ngûô UML (Unified Modeling Language) tûđ haông phíìn mïìm Rational UML khöng ngûđng ặúơc phaât triïín vađ ngađy cađng ặúơc sûê duơng röơng raôi trïn thïị giúâi, ăa söị caâc cöng cuơ höî trúơ phaât triïín phíìn mïìm hiïơn nay ăïìu coâ höî trúơ ngön ngûô UML Do víơy, chuâng em ăaô ăíìu tû nghiïn cûâu ăïì tađi “Nghiïn cûâu ngön ngûô UML vađ ûâng duơng” nhùìm nùưm bùưt möơt ngön ngûô hiïơu quaê trong viïơc mö hònh hoâa phíìn mïìm, cuông nhû coâ thïí tòm hiïíu vađ sûê duơng möơt söị CASE tool höî trúơ cho viïơc phaât triïín phíìn mïìm Vúâi ăïì tađi nađy, chuâng em ăaô thûê nghiïơm ûâng duơng UML trong viïơc mö hònh hoâa phíìn mïìm quaên lyâ giaâo vuơ ăaơi hoơc ăún giaên, triïín khai theo qui trònh phaât triïín phíìn mïìm Rational Unified Process cuêa haông Rational vađ bûúâc ăíìu ăaô ăaơt ặúơc möơt söị kïịt quaê khaê quan
Muơc ăñch cuêa ăïì tađi lađ nghiïn cûâu lyâ thuýịt vïì ngön ngûô UML (Unified Modeling Language) vađ ûâng duơng cuêa UML trong qui trònh phaât triïín phíìn mïìm
Trang 21nhín phaât triïín, lõch sûê phaât triïín cuêa ngön ngûô UML
Chûúng 2 – Hïơ thöịng ngûô nghôa (UML Semantics)
Trònh bađy phíìn kiïịn truâc cuêa ngön ngûô UML dûơa trïn lúâp metamodel, chuê ýịu lađ caâc thađnh phíìn nïìn taêng cuêa UML, caâc thađnh töị hađnh vi (Behavioral Elements), vađ Model Management
Chûúng 3 – Hïơ thöịng kyâ hiïơu (UML Notation)
Chûúng nađy trònh bađy hïơ thöịng caâc loaơi lûúơc ăöì vađ hïơ thöịng caâc kyâ hiïơu ặúơc sûê duơng trong UML ăïí mö hònh hoâa hïơ thöịng
Chûúng 4 – ÛÂng duơng cuêa UML
Trònh bađy vïì ûâng duơng cuêa UML trong qui trònh phaât triïín phíìn mïìm RUP (Rational Unified Process), trong chûúng nađy cuông trònh bađy vïì qui trònh phaât triïín phíìn mïìm RUP vađ möơt vñ duơ phín tñch hïơ thöịng sûê duơng ngön ngûô UML theo qui trònh RUP
Chûúng 5 – Töíng kïịt
Lađ chûúng cuöịi cuêa ăïì tađi, töíng kïịt laơi nhûông kïịt quaê ăaơt ặúơc vađ hûúâng phaât triïín trong tûúng lai
Trang 22MÖÅT SÖË TÛÂ VIÏËT TÙÆT
CASE Tool Computer Aided Software Engineering Tool
OCL Object Constraint Language
OMG Object Management Group
OMT Object Modeling Technique
OOSE Object-Oriented Software Engineering
RUP Rational Unified Process
UML Unified Modeling Language
Trang 23Chûúng 1 TÖÍNG QUAN 1
1.1 Yïu cíìu thûơc tïị
Cuđng vúâi xu hûúâng phaât triïín ngađnh cöng nghïơ thöng tin, cöng nghïơ phíìn mïìm ăaô vađ ăang trúê thađnh lônh vûơc muôi nhoơn cuêa nhiïìu quöịc gia trïn thïị giúâi Ngađy nay, viïơc phaât triïín möơt phíìn mïìm vúâi qui mö vađ chíịt lûúơng cao khöng cođn lađ cöng viïơc ăún leê cuêa nhûông nhađ líơp trònh Ăoâ lađ saên phíím cuêa möơt tíơp thïí, möơt cöng ty phíìn mïìm theo möơt qui trònh cöng nghïơ chuíín ặúơc quaên lyâ chùơt cheô vađ ặúơc höî trúơ töịi ăa búêi caâc cöng cuơ vađ möi trûúđng phaât triïín phíìn mïìm
Do ăoâ, viïơc líơp trònh ngađy cađng trúê nïn dïî dađng hún vađ nhûúđng laơi vai trođ míịu chöịt cho viïơc phín tñch vađ thiïịt kïị phíìn mïìm, trong ăoâ quan troơng nhíịt lađ ăùơc taê vađ mö hònh hoaâ thïị giúâi thûơc
Trong tònh hònh ăoâ caâc cöng ty phíìn mïìm lúân trïn thïị giúâi ăaô nhanh choâng ặa ra nhiïìu cöng cuơ höî trúơ phín tñch thiïịt kïị dûơa trïn nhiïìu phûúng phaâp khaâc nhau
Caâc ngön ngûô mö hònh hoâa ra ăúđi vađ ngađy cađng ặúơc caêi tiïịn, trong ăoâ sûơ
ra ăúđi cuêa UML (Unified Modeling Language) dûơa trïn ba phûúng phaâp hûúâng ăöịi tûúơng Booch, OMT, OOSE ăaô nhanh choâng trúê thađnh möơt ngön ngûô chuíín duđng ăïí trûơc quan hoaâ, ăùơc taê, xíy dûơng vađ lađm sûu liïơu cho caâc saên phíím phíìn mïìm vađ ặúơc höî trúơ búêi caâc töí chûâc,caâc cöng ty phaât triïín phíìn mïìm trïn thïị giúâi
Hiïơn nay híìu hïịt caâc CASE tools ăïìu coâ höî trúơ UML do ăoâ viïơc tòm hiïíu ngön ngûô UML trûúâc hïịt giuâp tiïịp cíơn vúâi ngön ngûô mö hònh hoâa tiïn tiïịn, nùưm bùưt vađ sûê duơng möơt söị CASE tools hiïơn taơi vađ tûđng bûúâc xíy dûơng CASE tools ăùơc thuđ höî trúơ cho viïơc xíy dûơng vađ phaât triïín phíìn mïìm sau nađy
Trang 24Chûúng 1 TÖÍNG QUAN 2
1.2 Giúâi thiïơu UML
Theo möơt bađi baâo cuêa möơt nhađ khoa hoơc nöîi tiïịng trong lônh vûơc cöng
nghïơ thöng tin – Sinan Si Alhir – vúâi tûơa ăïì “Tri thûâc – nhín töị quýịt ắnh cuêa sûơ thađnh cöng !”, bađi baâo viïịt “Tri thûâc lađ sûâc maơnh – ăíy lađ cíu noâi cuêa möơt nhađ
triïịt gia nöîi tiïịng – FrancisBacon Ngađy nay, trïn thõ trûúđng toađn cíìu – vađ nhíịt lađ trong lônh vûơc cöng nghïơ thöng tin - núi mađ sûơ caơnh tranh trúê nïn ríịt phöí biïịn vađ quýịt liïơt, tri thûâc vađ khaê nùng aâp duơng chuâng vađo trong cöng viïơc möơt caâch hiïơu quaê seô mang laơi cho chuâng ta möơt lúơi thïị quan troơng vađo loaơi bíơc nhíịt Chñnh ăiïìu nađy ăaô díîn túâi möơt cíu hoêi - lađm thïị nađo möơt töí chûâc coâ thïí nùưm bùưt, truýìn ăaơt, trao ăöíi, vađ níng cao tri thûâc cuêa mònh ăïí ăaơt ặúơc lúơi thïị caơnh tranh trïn thõ trûúđng ? Coâ leô cíu traê lúđi chñnh lađ ngön ngûô UML tûđ haông phíìn mïìm Rational vađ töí chûâc OMG (Object Management Group).” Víơy UML lađ gò, taơi sao noâ laơi ặúơc giúâi thiïơu íịn tûúơng ăïịn nhû thïị ?
UML - Unified Modeling Language – taơm dõch lađ ngön ngûô mö hònh húơp nhíịt, noâ ặúơc hiïíu nhû lađ möơt ngön ngûô thöịng nhíịt nhûông xu hûúâng vađ hònh thaâi
cuêa cuöơc caâch maơng tri thûâc trong lônh vûơc thöng tin Noâ lađ möơt phûúng tiïơn giuâp cho caâc töí chûâc coâ thïí nhíơn thûâc möơt caâch töịt nhíịt lúơi thïị caơnh tranh thöng qua viïơc nùưm bùưt, truýìn ăaơt, trao ăöíi vađ níng cao tri thûâc trong lônh vûơc cöng nghïơ phíìn mïìm Chñnh xaâc hún UML lađ möơt ngön ngûô mö hònh hoâa duđng ăïí ăùơc taê, trûơc quan hoâa, xíy dûơng vađ lađm sûu liïơu cho caâc hïơ thöịng phíìn mïìm
_ Unified (húơp nhíịt) UML ặúơc ặa ra líìn ăíìu tiïn búêi haông Rational vađ ba chuýn gia vïì phûúng phaâp luíơn hađng ăíìu trong lônh vûơc hïơ thöịng thöng tin/ kyô thuíơt cöng nghïơ Grady Booch, James
Trang 25Chûúng 1 TÖÍNG QUAN 3
1.3 Nguýn nhín ra ăúđi
Rumbaugh, Ivar Jacobson Noâ lađ sûơ húơp nhíịt giûôa nhûông phûúng phaâp cuô (Booch, OMT, OOSE ), kïịt húơp vúâi nhûông kinh nghiïơm, nhûông kiïịn thûâc thûơc tïị trong lônh vûơc cöng nghïơ thöng tin Hònh 1-1 Sûơ húơp nhíịât cuệa UML
_ Modeling (mö hònh hoâa) giuâp chuâng ta hiïíu ặúơc thïị giúâi thûơc, mö hònh hoâa thïị giúâi thûơc ăïí coâ thïí hiïíu ặúơc nhûông ăùơc trûng, tñnh toaân caâc thöng söị vađ dûơ ăoaân kïịt quaê seô ăaơt ặúơc
_ Language (ngön ngûô) chûâc nùng cuêa UML nhû lađ möơt phûúng tiïơn ăïí bađy toê vađ trao ăöíi tri thûâc Noâ coâ böịn ăùơc ăiïím chuê ýịu coâ thïí phín biïơt vúâi caâc ngön ngûô mö hònh hoâa khaâc
- General-purpose - ăa duơng
- Broadly applicable – coâ thïí ûâng duơng röơng raôi
- Tool-supported – ặúơc höî trúơ búêi caâc cöng cuơ
- Industry standardized – chuíín cöng nghiïơp
1.3 Nguýn nhín ra ăúđi
Sûơ ra ăúđi cuêa UML lađ möơt tíịt ýịu khaâch quan trûúâc sûơ buđng nöî cuêa ngađnh cöng nghïơ thöng tin, noâ lađm nöîi bíơt nhûông xu hûúâng then chöịt trong ngađnh cöng nghïơ phíìn mïìm, ặa ra ặúơc nhûông víịn ăïì do sûơ phín raô cuêa nhûông phûúng thûâc mö hònh hoâa trûúâc ăíy gíy ra UML ặúơc hònh thađnh trïn cú súê cuêa caâc víịn ăïì chñnh - taơi sao chuâng ta laơi cíìn mö hònh hoâa phíìn mïìm, xu hûúâng phaât triïín trong ngađnh cöng nghïơ phíìn mïìm ngađy nay, sûơ höơi tuơ cuêa caâc cöng nghïơ
Trang 26Chûúng 1 TÖÍNG QUAN 4
1.4 Tíìm quan troơng cuêa viïơc mö hònh hoâa
Mö hònh lađ gò ? Ăoâ chñnh lađ sûơ ăún giaên hoâa cuêa thïị giúâi thûơc
Hònh 1-2 Kiïịân truâc möơt ngöi nhađ
_ Viïơc phaât triïín möơt mö hònh cho möơt hïơ thöịng trong cöng nghïơ phíìn mïìm cuông cíìn thiïịt nhû lađ viïơc líơp möơt baêng thiïịt kïị cho möơt tođa nhađ lúân
_ Nhûông mö hònh töịt giuâp cho viïơc phöịi húơp giûôa caâc nhoâm phaât triïín töịt hún _ Chuâng ta cíìn xíy dûơng mö hònh cho nhûông hïơ thöịng phûâc taơp búêi vò chuâng ta khöng thïí hiïíu ặúơc toađn böơ hïơ thöịng trong möơt möi trûúđng röơng lúân nhû thïị, khi sûơ phûâc taơp cuêa hïơ thöịng cađng tùng, thò noâ cuông ăođi hoêi kyô thuíơt mö hònh hoâa töịt hún Viïơc xíy dûơng mö hònh giuâp chuâng ta hiïíu roô hún vïì hïơ thöịng mađ chuâng
ta ăang xíy dûơng
_ Mö hònh cung cíịp cho chuâng ta möơt khuön míîu vïì thïị giúâi thûơc, giuâp chuâng ta coâ thïí ắnh hûúâng trong quâa trònh xíy dûơng, coâ thïí tñnh toaân caâc chi phñ, xaâc ắnh caâc ruêi ro, lađm sûu liïơu cho hïơ thöịng
_ Trong caâc nhín töị quýịt ắnh ăïịn sûơ thađnh cöng cuêa dûơ aân, nhín töị cíìn thiïịt lađ möơt mö hònh chuíín, ăùơc taê ăíìy ăuê, chi tiïịt vïì thïị giúâi thûơc
_ Trong möơt hïơ thöịng mađ ăöơ phûâc taơp cađng tùng, viïơc trûơc quan hoâa vađ mö hònh hoâa cađng cíìn thiïịt Ngön ngûô UML lađ möơt sûơ lûơa choơn hoađn haêo vađ trïn thûơc tïị noâ cuông ăaô ặúơc sûê duơng vađ ặúơc chíịp nhíơn röơng raôi trïn thïị giúâi
Trang 27Chûúng 1 TÖÍNG QUAN 5
1.5 Xu hûúâng phaât triïín trong ngađnh cöng nghïơ phíìn mïìm
– Phaât triïín vïì phaơm vi, qui mö, chíịt lûúơng vađ tûơ ăöơng hoâa trong quâa trònh phaât triïín phíìn mïìm
_ Vò giaâ trõ cuêa nhûông phíìn mïìm chiïịn lûúơc tùng lïn úê nhiïìu cöng ty, ngađnh cöng nghiïơp nađy ăaô vađ ăang tòm kiïịm nhûông kyô thuíơt ăïí coâ thïí tûơ ăöơng saên xuíịt
ra caâc saên phíím phíìn mïìm
_ Tòm kiïịm caâc kyô thuíơt cöng nghïơ múâi ăïí coâ thïí níng cao chíịt lûúơng, giaêm giaâ thađnh vađ giaêm thúđi gian ặa saên phíím ra thõ trûúđng, nhûông kyô thuíơt ăoâ bao göìm component technology, visual programming, patterns, frameworks ngoađi ra cođn coâ nhûông kyô thuíơt duđng ăïí quaên lyâ nhûông dûơ aân lúân ngađy cađng tùng vïì phaơm
vi vađ qui mö
_ Ăöơ phûâc taơp cuêa cöng viïơc, cuêa caâc bađi toaân ngađy cađng tùng, vađ tuđy thuöơc vađo lônh vûơc ûâng duơng cuông nhû caâc cöng ăoaơn trong tiïịn trònh phaât triïín phíìn mïìm _ Möơt trong nhûông ăöơng cú chñnh cuêa nhûông nhađ phaât triïín UML lađ taơo ra möơt böơ caâc ngûô nghôa vađ kyâ hiïơu nhùìm phuơc vuơ cho nhûông dûơ aân coâ kiïịn truâc phûâc taơp trïn nhûông phaơm vi vađ lônh vûơc ûâng duơng khaâc nhau
Trang 28Chûúng 1 TÖÍNG QUAN 6
1.3.3 Sûơ höơi tuơ cuêa caâc cöng nghïơ
_ Trûúâc khi UML ra ăúđi, khöng coâ ngön ngûô mö hònh hoâa nađo tröơi hún hùỉn caâc ngön ngûô khaâc Ngûúđi duđng phaêi lûơa choơn trong nhûông ngön ngûô khaâ tûúng tûơ nhau vúâi nhûông khaâc biïơt nhoê vađ cuđng chia seô trïn möơt tíơp khaâi niïơm chung _ Chñnh sûơ thiïịu tûúng ăöìng nađy ăaô ngùn caên nhûông ngûúđi múâi tiïịp cíơn vúâi caâc kyô thuíơt hûúâng ăöịi tûúơng vađ mö hònh hûúâng ăöịi tûúơng
_ Viïơc thûúđng xuýn phaêi chi phñ cho viïơc sûê duơng vađ höî trúơ cho nhiïìu ngön ngûô
mö hònh hoâa ăaô thuâc ăííy nhiïìu cöng ty ăíìu tû vađo saên xuíịt hoùơc sûê duơng kyô thuíơt múâi, hoơ taân thađnh vađ höî trúơ cho viïơc phaât triïín ngön ngûô UML
_ Trong khi UML khöng hûâa heơn ặúơc nhûông thađnh cöng thò noâ ăaô lađm ặúơc nhiïìu ăiïìu, chùỉng haơn nhû:
+ Lađm giaêm ăaâng kïí nhûông chi phñ thûúđng xuýn cho viïơc huíịn luýơn vađ thay ăöíi cöng cuơ khi thay ăöíi dûơ aân hoùơc töí chûâc
+ Cung cíịp cú höơi cho viïơc tñch húơp múâi giûôa caâc cöng cuơ, caâc tiïịn trònh vađ caâc domains
+ Taơo ra möơt kiïíu míîu chuíín, thöịng nhíịt cho caâc cöng viïơc
Trang 29Chûúng 1 TÖÍNG QUAN 7
1.7 UML húơp nhíịt caâc yâ tûúêng nöîi bíơt vađ nhûông víịn ăïì thûơc tïị trong quaâ trònh phaât triïín cuêa cöng nghïơ phíìn mïìm
Caâc nhađ phaât triïín ăaô cöị gùưng duy trò tñnh ăún giaên cuêa UML, loaơi boê caâc thađnh phíìn khöng ặúơc sûê duơng trong thûơc tïị tûđ caâc phûúng phaâp Booch, OMT, OOSE, thïm caâc thađnh phíìn vađ yâ tûúêng hiïơu quaê hún tûđ caâc phûúng
phaâp khaâc nhau vađ chó xíy dûơng múâi caâc phíìn cíìn thiïịt Möơt söị khaâi niïơm
múâi ăaô ặúơc sûê duơng trong UML bao göìm :
_ Cú chïị múê röơng (extension mechanism)
_ Luöìng (thread) vađ tiïịn trònh (process)
_ Sûơ phín taân (distribution) vađ ăöìng thúđi (concurrency) (duđng ăïí mö hònh hoâa caâc ûâng duơng ActiveX, DCOM vađ CORBA)
_ Khuön míîu (patterns) vađ sûơ cöơng taâc (collabarations)
_ Nhûông lûúơc ăöì hoaơt ăöơng - activity diagrams (cho business modeling)
_ Sûơ choơn loơc - refinement (xûê lyâ caâc möịi liïn quan giûôa caâc mûâc trûđu tûúơng) _ Giao diïơn (interface) vađ thađnh phíìn (component)
_ Ngön ngûô mö taê rađng buöơc (constraint language)
Möơt söị trong caâc yâ tûúêng trïn coâ thïí ặúơc tòm thíịy trong caâc phûúng phaâp khaâc nhau, tuy nhiïn, UML ăaô liïn kïịt chuâng chùơt cheô vúâi nhau Thïm vađo ăoâ lađ möơt söị caêi tiïịn mang tñnh cuơc böơ trïn ba phûúng phaâp Booch, OMT, OOSE bao göìm caê vïì ngûô nghôa vađ líîn kyâ hiïơu UML ặúơc phaât triïín dûơa trïn Booch, OMT, OOSE vađ caâc phûúng phaâp hûúâng ăöịi tûúơng khaâc, caâc nguöìn khaâc nhau nađy kïịt húơp nhiïìu yâ tûúêng khaâc nhau tûđ nhiïìu taâc giaê Coâ thïí noâi yâ tûúêng cuêa UML dûơa trïn nhûông kyô thuíơt hûúâng ăöịi tûúơng vađ cuông chõu aênh hûúêng cuêa möơt söị phûúng phaâp khöng hûúâng ăöịi tûúơng khaâc Caâc nhađ phaât triïín UML khöng taơo ra híìu hïịt caâc yâ tûúêng nađy mađ vai trođ cuêa hoơ lađ choơn loơc vađ tñch húơp caâc yâ tûúêng nöîi bíơt trong mö hònh hoâa hûúâng ăöịi tûúơng vađ caâc víịn ăïì thûơc tïị cuêa cöng nghïơ phíìn mïìm
Hònh 1-3 Nïìn taêng cuêa UML
Trang 30Chûúng 1 TÖÍNG QUAN 8
1.8 UML ăöơc líơp vúâi ngön ngûô líơp trònh vađ qui trònh phaât triïín phíìn mïìm
UML lađ möơt ngön ngûô mö hònh hoâa chuíín nhûng khöng phaêi lađ möơt qui trònh phaât triïín phíìn mïìm chuíín Mùơc duđ UML phaêi ặúơc aâp duơng trong phaơm
vi möơt qui trònh cuơ thïí, caâc qui trònh phaât triïín nađy thûúđng khaâc nhau úê caâc töí chûâc phaât triïín phíìn mïìm, úê caâc víịn ăïì thuöơc caâc lônh vûơc khaâc nhau Do ăoâ, caâc nhađ phaât triïín UML ăaô cöị gùưng tíơp trung vađo ắnh nghôa möơt mö hònh mûâc siïu (meta)ăïí thöịng nhíịt caâc khaâi niïơm vïì ngûô nghôa vađ kyâ hiïơu, coâ thïí höî trúơ cho nhiïìu ngön ngûô líơp trònh vađ qui trònh phaât triïín phíìn mïìm khaâc nhau
Chûúng 1 TÖÍNG QUAN 9
1.9 UML lađ ngön ngûô mö hònh hoâa ăa duơng (general purpose)
UML töíng húơp caâc khaâi niïơm cuêa Booch, OMT vađ OOSE taơo thađnh möơt ngön ngûô mö hònh hoâa chung vađ coâ thïí sûê duơng röơng raôi cho nhûông ngûúđi trûúâc ăíy ăaô quen vúâi ba phûúng phaâp trïn hay caâc phûúng phaâp khaâc Ngoađi ra, UML múê röơng phaơm vi mö hònh hoâa cuêa caâc phûúng phaâp hiïơn coâ vađ coâ thïí mö hònh hoâa ăíìy ăuê caâc hïơ thöịng ăöìng thúđi hay phín taân
UML lađ ngön ngûô coâ thïí ặúơc sûê duơng cho nhiïìu muơc ăñch khaâc nhau UML cung cíịp cú chïị cho viïơc töí chûâc vađ phín loaơi tri thûâc theo ngûô caênh cuêa
Trang 31quýịt chuâng
UML ặúơc aâp duơng röơng raôi, coâ thïí mö hònh hoâa nhiïìu loaơi hïơ thöịng khaâc nhau UML coâ thïí ặúơc aâp duơng trïn nhiïìu phaơm vi úê nhiïìu lônh vûơc khaâc nhau, caâc hïơ thöịng khaâc nhau kïí caê caâc hïơ thöịng khöng phaêi phíìn mïìm UML coâ thïí
mö hònh hoâa nhiïìu loaơi hïơ thöịng khaâc nhau nhû : hïơ thöịng quaên lyâ thöng tin, hïơ thöịng thúđi gian thûơc, hïơ thöịng xûê lyâ phín taân, caâc phíìn mïìm hïơ thöịng, hïơ ăiïìu hađnh, cú súê dûô liïơu
Chûúng 1 TÖÍNG QUAN 10
1.10 UML ặúơc höî trúơ búêi caâc cöng ty, cöng cuơ phaât triïín phíìn mïìm
Nhiïìu nhađ phaât triïín cöng cuơ, tham gia hay khöng tham gia vađo UML Partner Consortium höî trúơ UML nhùìm muơc ăñch thuâc ăííy viïơc sûê duơng UML trong töí chûâc Nhíơn thíịy ặúơc lúơi ñch cuêa UML, caâc nhađ phaât triïín ăaô xíy dûơng caâc cöng cuơ höî trúơ UML ăïí dïî dađng nùưm bùưt vađ xûê lyâ caâc tri thûâc cho muơc ăñch cuêa mònh
1.10.1 UML lađ möơt chuíín cöng nghiïơp
UML khöng lađ möơt ngön ngûô ăöơc quýìn mang tñnh chíịt kheâp kñn mađ hoađn toađn coâ khaê nùng múê röơng UML coâ thïí ặúơc ăiïìu chónh nhùìm ăaâp ûâng
ýu cíìu riïng cuêa möơt töị chûâc phaât triïín phíìn mïìm
1.10.2 Caâc lúơi ñch cuêa UML
Coâ thïí mö hònh hoâa nhiïìu loaơi hïơ thöịng, coâ thïí duđng trong nhûông pha khaâc nhau cuêa qui trònh phaât triïín phíìn mïìm
UML lađ sûơ thöịng nhíịt caâc khaâi niïơm mö hònh hoâa nïìn taêng cuêa nhûông nhađ nghiïn cûâu vađ phaât triïín cöng nghïơ hûúâng ăöịi tûúơng UML cung cíịp möơt söị tñnh nùng sau
_ Ăíìy ăuê ngûô nghôa vađ kyâ hiïơu ăïí giaêi quýịt trûơc tiïịp vađ kinh tïị caâc víịn ăïí hiïơn taơi trong mö hònh hoâa
Trang 32_ Cú chïị múê röơng metamodel cho mö hònh hoâa caâc ûâng duơng ăùơc biïơt Cú chïị nađy cuông khiïịn cho caâc hûúâng tiïịp cíơn mö hònh hoâa tûúng lai coâ thïí phaât triïín dûơa trïn nïìn taêng UML
_ Ăíìy ăuê ngûô nghôa ăïí dïî dađng chuýín ăöíi mö hònh giûôa caâc cöng cuơ höî trúơ phín tñch thiïịt kïị khaâc nhau cuông nhû ắnh roô giao tiïịp vúâi caâc repository ăïí lûu trûô vađ chia xeê caâc thađnh phíìn mö hònh
Chûúng 1 TÖÍNG QUAN 11
1.11 Ăöịi vúâi ngûúđi sûê duơng UML
Cung cíịp möơt ngön ngûô mö hònh hoâa trûơc quan mang tñnh diïîn ăaơt cao ăïí phaât triïín vađ trao ăöíi giûôa caâc mö hònh Möơt ngön ngûô mö hònh hoâa noâi chung ặúơc cíịu truâc dûơa trïn caâc thađnh phíìn cú baên nhíịt úê mûâc meta-meta Nïịu cíịu truâc nađy thay ăöíi theo möơt tíơp caâc khaâi niïơm mö hònh hoâa khaâc nhau theo caâc phûúng phaâp khaâc nhau thò viïơc chuýín ăöíi giûôa caâc mö hònh seô khöng traânh khoêi míịt maât thöng tin Ăïí khùưc phuơc víịn ăïì nađy, UML ăaô tíơp húơp caâc khaâi niïơm mö hònh hoâa cöịt loôi (core modeling concepts) ặúơc sûê duơng trong nhiïìu phûúng phaâp vađ cöng cuơ mö hònh hoâa khaâc nhau Caâc khaâi niïơm nađy coâ thïí höî trúơ cho phaơm vi lúân caâc ûâng duơng Ngoađi ra, caâc khaâi niïơm mö hònh hoâa úê mûâc thíịp hún vađ cuơ thïí hún cho viïơc giao tiïịp cuông ặúơc ắnh nghôa cho ngûúđi sûê duơng ăïí mö hònh hoâa möơt hïơ thöịng cuơ thïí
1.11.1 UML cung cíịp cú chïị múê röơng vađ ăùơc biïơt hoâa ăïí múê röơng caâc khaâi niïơm cöịt loôi
Dûơa trïn nhûông khaâi niïơm ăaô ặúơc ắnh nghôa nađy, OMG mong ăúơi úê
Trang 33_ Thïm caâc khaâi niïơm vađ kyâ hiïơu múâi cho nhûông vûúâng mùưc khöng giaêi quýịt ặúơc vúâi caâc khaâi niïơm cú baên
_ Ăùơc biïơt hoâa caâc khaâi niïơm, kyâ hiïơu vađ rađng buöơc cho möơt phaơm vi ûâng duơng (application domain) cuơ thïí
Chûúng 1 TÖÍNG QUAN 12
1.12 UML ăííy maơnh taâi sûê duơng trong nïìn cöng nghïơ phíìn mïìm
Taâi sûê duơng lađ möơt trong nhûông víịn ăïì ặúơc quan tím hađng ăíìu trong cöng nghïơ phíìn mïìm Nguýn tùưc cuêa taâi sûê duơng lađ dûơa trïn caâc thađnh phíìn hiïơn coâ ăaô ặúơc kiïím chûâng vïì chíịt lûúơng vađ chó xíy dûơng caâc thađnh phíìn múâi khi thûơc sûơ cíìn thiïịt Ăiïìu nađy khöng nhûông giuâp ặúng ăíìu vúâi mûâc ăöơ phûâc taơp ngađy cađng cao cuêa ûâng duơng mađ cođn giaêm chi phñ, giaêm thúđi gian phaât triïín vađ tùng khaê nùng caơnh tranh cuêa nhađ phaât triïín phíìn mïìm UML cho pheâp taâi sûê duơng hiïơu quaê caâc thađnh phíìn cuêa möơt hïơ thöịng vò ặúơc xíy dûơng trïn nïìn taêng hûúâng ăöịi tûúơng Ngoađi ra, UML cođn höî trúơ caâc khaâi niïơm phaât triïín phíìn mïìm mûâc cao nhû collabarations, frameworks, patterns vađ components Ngûô nghôa cuêa chuâng ặúơc ắnh nghôa ríịt roô rađng vađ ăiïìu nađy giuâp ăaơt ặúơc nhûông giaâ trõ thûơc sûơ ăíìy ăuê cuêa hûúâng ăöịi tûúơng vađ taâi sûê duơng
Trang 34Chûúng 1 TÖÍNG QUAN 13
1.13 So saânh vúâi caâc phûúng phaâp khaâc
UML khöng hoađn toađn taâch biïơt khoêi ba phûúng phaâp cú baên lađ Booch,
OMT(Object Modeling Technique), OOSE (Object-Oriented Software Engineering) mađ noâ töíng húơp nhûông tinh hoa cuêa caê ba phûúng phaâp trïn Vò
víơy nïịu trûúâc ăíy baơn tûđng lađ ngûúđi sûê duơng caâc phûúng phaâp Booch, OMT, OOSE thò nhûông kiïịn thûâc, kinh nghiïơm, caâc cöng cuơ víîn cođn coâ giaâ trõ sûê duơng UML coâ thïí mö taê hïơ thöịng möơt caâch roô rađng vađ thöịng nhíịt hún so vúâi caâc phûúng phaâp Booch, OMT, OOSE vađ caâc ngön ngûô khaâc Ăiïìu nađy coâ nghôa rùìng viïơc chuýín qua duđng UML seô mang ăïịn cho ngûúđi sûê duơng möơt gña trõ nhíịt ắnh nađo ăoâ, búêi vò noâ cho pheâp baơn líơp mö hònh moơi cöng viïơc trong dûơ aân, ăiïìu mađ trûúâc ăíy chûa coâ ngön ngûô nađo lađm ặúơc
Nhûông ngûúđi trûúâc ăíy ăaô tûđng duđng caâc phûúng thûâc vađ caâc ngön ngûô
mö hònh hoâa khaâc seô coâ ặúơc lúơi ñch khi chuýín qua sûê duơng ngön ngûô UML, noâ giuâp cho hoơ loaơi boê nhûông khaâc biïơt khöng cíìn thiïịt vïì ngûô nghôa vađ kyô thuíơt thûúđng xaêy ra úê híìu hïịt nhûông ngön ngûô, nhûông phûúng phaâp ăaô ăïì cíơp úê trïn UML coâ hïơ thöịng kyâ hiïơu ríịt roô rađng, mang tñnh thöịng nhíịt cao, ặúơc höî trúơ búêi nhiïìu cöng cuơ phaât triïín phíìn mïìm Ăöìng thúđi, trïn möơt cöng cuơ coâ höî trúơ UML, ngûúđi duđng coâ thïí chuýín ăöíi caâc mö hònh hiïơn taơi cuêa hoơ sang UML mađ khöng súơ míịt ăi thöng tin nađo
Ăöịi vúâi nhûông ngûúđi ăaô biïịt ăïịn möơt phûúng phaâp hûúâng ăöịi tûúơng trûúâc ăoâ, seô coâ thïí hoơc UML trong möơt thúđi gian khaâ ngùưn ăïí coâ thïí ăaơt ặúơc möơt trònh ăöơ tûúng ûâng so vúâi phûúng phaâp mađ hoơ ăaô biïịt trûúâc ăíy
Trang 35Chûúng 1 TÖÍNG QUAN 14
UML lađ sûơ húơp nhíịt cuêa caâc phûúng phaâp hûúâng ăöịi tûúơng, vò víơy noâ cuông kïị thûđa möơt söị khaâi niïơm tûđ caâc phûúng phaâp nađy, vñ duơ nhû :
_ Lûúơc ăöì Use-case tûúng tûơ nhû trong phûúng phaâp OOSE
_ Lûúơc ăöì lúâp ặúơc kïịt húơp tûđ OMT vađ Booch vađ híìu hïịt nhûông phûúng phaâp hûúâng ăöịi tûúơng khaâc
_ Cú chïị múê röơng (extension mechanism) ặúơc ắnh nghôa trïn nhiïìu loaơi lûúơc ăöì vađ höî trúơ cho nhiïìu loaơi mö hònh cuêa UML ăïí taơo ra caâc thađnh phíìn ăa daơng mang ăùơc ăiïím riïng biïơt cuêa hïơ thöịng nhùìm muơc ăñch höî trúơ caâc goâc ăöơ mö hònh hoâa khaâc nhau Nhiïìu khaâi niïơm múâi ặúơc böí sung liïn quan ăïịn cú chïị múê röơng trûúâc ăíy chûa tûđng ặúơc mö taê trong caâc caâc ngön ngûô mö hònh hoâa chuê ýịu khaâc bao göìm caâc khuön míîu (stereotypes), caâc rađng buöơc (constraints) vađ giaâ trõ ăñnh keđm (tagged Values)
_ Lûúơc ăöì State-chart cú baên dûơa trïn lûúơc ăöì cuđng loaơi cuêa David Harel vúâi möơt ñt thay ăöíi nhoê Lûúơc ăöì hoaơt ăöơng cuông dûơa trïn phíìn lúân caâc ngûô nghôa cú baên duđng ăïí ắnh nghôa State-chart cuêa UML vađ tûúng tûơ nhû lûúơc ăöì luöìng cöng viïơc (workflow diagram) trong nhiïìu phûúng phaâp khaâc
_ Lûúơc ăöì tuíìn tûơ ặúơc tòm thíịy trong nhiïìu phûúng phaâp hûúâng ăöịi tûúơng dûúâi nhiïìu tïn goơi khaâc nhau (interaction, message trace hoùơc event trace)
_ Lûúơc ăöì cöơng taâc (collaboration diagram) ặúơc sûêa ăöíi laơi tûđ lûúơc ăöì ăöịi tûúơng (object diagram) cuêa Booch vađ lûúơc ăöì tûúng taâc ăöịi tûúơng (object interaction) cuêa Fusion
_ Lûúơc ăöì thûơc thi (Implementation diagram) hay cođn goơi lađ lûúơc ăöì thađnh phíìn vađ triïín khai bùưt nguöìn tûđ phûúng phaâp cuêa Booch Tuy nhiïn, chuâng giúđ ăíy mang tñnh chíịt hûúâng thađnh phíìn (componentcentered) vađ liïn kïịt vúâi nhau töịt hún nhiïìu so vúâi trûúâc
_ Stereotypes lađ möơt trong ba cú chïị múê röơng ngûô nghôa cuêa caâc thađnh phíìn UML sùĩn coâ Caâc stereotype cho pheâp biïịn ăöíi UML theo hûúâng múê röơng nghôa lađ taơo ra caâc thađnh phíìn mang ngûô nghôa múâi ăùơc trûng riïng cuêa hïơ thöịng mađ víîn giûô nguýn caâc thađnh phíìn ăaô ắnh nghôa
Trang 36ngön ngûô cuđng loaơi trong caâc phaâp khaâc nhû Catalysis nhûng ặúơc chuíín hoâa vađ múê röơng hún
Chûúng 1 TÖÍNG QUAN 15
1.15 Lõch sûê phaât triïín
UML ặúơc phaât triïín búêi haông Rational vađ nhûông ăöịi taâc Ăûúơc bùưt ăíìu phaât triïín vađo thaâng 10 nùm 1994, khi Grady Booch vađ Jim Rumbaugh bùưt ăíìu cöng viïơc húơp nhíịt hai phûúng phaâp Booch vađ OMT
Hònh 1-4 Lõch sûê phaât triïín cuêa UML
Chûúng 1 TÖÍNG QUAN 16
Baên phaâc thaêo cuêa phiïn baên 0.8 ặúơc ặa ra vađo thaâng 10 nùm 1995 vúâi tïn ban ăíìu lađ Unified Method Vađo muđa thu nùm 1995, Ivar Jacobson cuđng cöng ty cuêa öng ăaô quýịt ắnh phöịi húơp vúâi haông Rational, bùìng nöî lûơc kïịt húơp thïm phûúng phaâp OOSE, ăïí tiïịp tuơc phaât triïín Unified Method
Trang 37phíìn mïìm lúân, vađ vúâi sûơ cöơng taâc cuêa nhûông cöng ty hađng ăíìu nhû Digital Equipment, HP, IBM, Microsoft, Oracle phiïn baên UML 1.0 trúê thađnh möơt ngön ngûô mö hònh hoâa ặúơc ắnh nghôa töịt hún, roô rađng, dïî hiïíu, maơnh hún vađ coâ khaê nùng ûâng duơng röơng raôi
Phiïn baên UML 1.1 lađ sûơ phaât triïín vïì mùơt ngûô nghôa cuêa phiïn baên 1.0 ăöìng thúđi cuông tñch húơp thïm nhûông ăoâng goâp cuêa nhûông nhađ cöng taâc múâi UML líìn ăíìu tiïn ặúơc ăïơ trònh lïn töí chûâc OMG vađo thaâng 1/1997 vađ líìn cuöịi vađo thaâng 9/1997 trûúâc khi ặúơc ặa vađo danh saâch nhûông kyô thuíơt ặúơc thûđa nhíơn cuêa OMG vađo thaâng 11/1997 Kïí tûđ ăíy OMG chõu traâch nhiïơm cho sûơ phaât triïín cuêa UML trong tûúng lai Sau khi ặúơc thûđa nhíơn vađo thaâng 11/1997, OMG chõu traâch nhiïơm kiïím tra vađ phaên höìi nhûông kiïịn nghõ tûđ phña caâc ăöịi taâc sûê duơng, ăöìng thúđi töí chûâc OMG cuông chõu traâch nhiïơm xûê lyâ caâc löîi kyô thuíơt, nhûông ăiïím bíịt tûúng ăöìng, nhûông ăiïím cođn mú höì vađ nhûông thiïịu soât nhoê mađ khöng cíìn phaêi sûê ăöíi nhiïìu so vúâi baên thaêo ban ăíìu Kïí tûđ ăíy UML ặúơc ặa vađo sûê duơng röơng raôi vađ ặúơc caêi tiïịn khöng ngûđng, phiïn baên UML 1.3 alpha ặúơc giúâi thiïơu vađo thaâng 3/1999 vađ sau ăoâ phiïn baên UML 1.3 chñnh thûâc ặúơc giúâi thiïơu vađo thaânh 6/1999 Vađ phíìn kiïịn thûâc lyâ thuýịt vïì UML mađ chuâng em trònh bađy trong baâo caâo nađy dûơa trïn phiïn baên múâi nhíịt hiïơn nay lađ UML 1.3
Chûúng 1 TÖÍNG QUAN 17
1.17 Kiïịn truâc töíng quan cuêa UML
1.17.1 Kiïịn truâc cuêa UML
UML ặúơc ắnh nghôa trïn möơt cú cíịu quan niïơm sûê duơng cho viïơc mö hònh hoâa, bao göìm böịn mûâc trûđu tûúơng sau
_ Lúâp meta-metamodel bao göìm caâc thađnh phíìn cú baên nhíịt
_ Lúâp metamodel göìm tíịt caê nhûông thađnh phíìn taơo nïn UML bao göìm caê caâc khaâi niïơm trong caâc mö hònh hûúâng ăöịi tûúơng vađ thađnh phíìn
Trang 38Hònh 1-5 Kiïịân truâc töíng quan cuêa UML
Chûúng 1 TÖÍNG QUAN 18
1.18 Caâc mö hònh
Caâc mö hònh – xeât vïì tônh – nùưm bùưt möơt söị ăùơc ăiïím vađ hađnh vi cuêa hïơ thöịng –xeât vïì ăöơng – nùưm bùưt nhûông ăùơc ăiïím cuêa hïơ thöịng, vïì cú baên chuâng lûu trûô caâc tri thûâc vïì mùơt ngûô nghôa
1.18.1 Cíịu truâc View
Chuâng ta khöng thïí mö hònh hoâa möơt hïơ thöịng phûâc taơp chó bùìng möơt mö hònh hay möơt lûúơc ăöì, hïơ thöịng phaêi ặúơc phín tñch dûúâi nhûông goâc ăöơ khaâc nhau : caâc ýu cíìu chûâc nùng, phi chûâc nùng, caâch töí chûâc hïơ thöịng Vò víơy ăïí coâ thïí mö hònh hoâa hïơ thöịng möơt caâch chi tiïịt, UML ặa ra ắnh nghôa vïì cíịu truâc View, möîi View (thïí hiïơn) lađ möơt thïí hiïơn cuêa hïơ thöịng ặúơc mö hònh hoâa, möîi View coâ thïí bao göìm nhiïìu loaơi lûúơc ăöì khaâc nhau UML cung cíịp cíịu truâc View theo viïơc mö hònh nhûông bađi toaân vađ nhûông giaêi phaâp, bao göìm
Hònh 1-6 Cíịâu truâc Viiew trong UML
_ User model View – hay cođn goơi lađ Use Case View hoùơc Scenario View – thïí hiïơn caâc víịn ăïì vađ caâc giaêi phaâp liïn quan ăïịn chûâc nùng töíng quaât cuêa hïơ thöịng
_ Structural model View - hay cođn goơi lađ Static hoùơc Logical View - thïí hiïơn caâc víịn ăïì liïn quan ăïịn cíịu truâc thiïịt kïị cuêa hïơ thöịng
_ Behavioral model View – hay cođn goơi lađ Dynamic, Process, Concurrent, hoùơc Collaboration View – thïí hiïơn caâc víịn ăïì liïn quan ăïịn viïơc xûê lyâ giao tiïịp vađ ăöìng böơ trong hïơ thöịng
Trang 39Chûúng 1 TÖÍNG QUAN 19
1.19 Nhûông lûúơc ăöì
Hònh 1-7 Nhûông lûúơc ăöì trong UML
Chûúng 1 TÖÍNG QUAN 20
Caâc lûúơc ăöì miïu taê caâc tri thûâc vïì mùơt cuâ phaâp, ặúơc töí chûâc xung quanh cíịu truâc View :
_ User model View
+ Lûúơc ăöì Use Case (Use case diagram) – mö taê caâc chûâc nùng cuêa hïơ thöịng
_ Structural model View
+ Lûúơc ăöì lúâp (Class Diagram) – mö taê cíịu truâc tônh cuêa hïơ thöịng, thïí hiïơn caâc phíìn hïơ thöịng xûê lyâ ặúơc
+ Lûúơc ăöì ăöịi tûúơng (Object Diagram) – mö taê cíịu truâc tônh cuêa hïơ thöịng taơi möơt thúđi ăiïím xaâc ắnh, noâ coâ thïí ặúơc xem
nhû möơt thïí hiïơn cuêa lûúơc ăöì lúâp
_ Behavioral model View
+ Lûúơc ăöì tuíìn tûơ (Sepuence Diagram) – mö taê sûơ tûúng taâc giûôa caâc thađnh phíìn trong hïơ thöịng tuíìn tûơ theo thúđi gian
+ Lûúơc ăöì cöơng taâc (Collaboration Diagram) – mö taê sûơ tûúng taâc cuêa caâc thađnh phíìn theo thúđi gian vađ caê khöng gian
+ Lûúơc ăöì traơng thaâi (State Diagram) – mö taê traơng thaâi vađ sûơ höìi ăaâp giûôa
Trang 40_ Implementation model View
+ Lûúơc ăöì thađnh phíìn (Component Diagram) – mö taê töí chûâc cuêa caâc thađnh phíìn thûơc thi trong hïơ thöịng
_ Environment model View
+ Lûúơc ăöì triïín khai (Deployment Diagram) – mö taê cíịu hònh cuêa caâc thađnh phíìn möi trûúđng mađ sûơ xïịp ăùơt cuêa caâc thađnh phíìn hïơ thöịng thûơc thi trïn ăoâ
Chûúng 1 TÖÍNG QUAN 21
Vađ möơt söị lûúơc ăöì khaâc coâ thïí ặúơc ắnh nghôa vađ sûê duơng khi cíìn thiïịt