triển đứng ngoagravei trograve chơi diễn kịch sẽ ghi cheacutep vagrave tigravem caacutech phaacutet hiện ra caacutec điểm
yếu trong caacutec Use Case được miecircu tả bằng caacutec diễn viecircn Trong trường hợp đặc
thugrave bạn sẽ tigravem thấy rằng coacute một vagravei chuỗi hagravenh động bổ sung khocircng được miecircu
tả cũng như một vagravei hagravenh động khocircng được miecircu tả với đầy đủ chi tiết
Caacutec diễn viecircn cagraveng hiểu thấu đaacuteo khiacutea cạnh sử dụng của hệ thống bao nhiecircu thigrave
cocircng việc thử Use Case sẽ cagraveng hiệu quả bấy nhiecircu Việc thay đổi caacutec diễn viecircn
để đoacuteng những vai trograve khaacutec nhau sẽ dẫn tới những thay đổi trong miecircu tả vagrave
hướng nhigraven cung cấp dữ liệu đầu vagraveo cho caacutec nhagrave tạo mocirc higravenh để họ biết được
lagravem caacutech nagraveo coacute thể đưa ra những lời miecircu tả Use Case rotilde ragraveng hơn minh bạch
hơn vagrave chỉ ra những điểm cograven thiếu Một khi vai trograve của tất cả caacutec taacutec nhacircn đatilde
được diễn vagrave thực thi vagrave tất cả caacutec Use Case đatilde được thực thi theo kiểu nagravey đoacute
lagrave thời điểm magrave người ta noacutei một quaacute trigravenh thử nghiệm của mocirc higravenh Use Case đatilde
Use Case lagrave những lời miecircu tả độc lập với sự thực thi caacutec chức năng của hệ thống
Điều đoacute coacute nghĩa lagrave Use Case sẽ được thực hiện (thực thể hoacutea) trong hệ thống
vậy necircn traacutech nhiệm để thực thi caacutec hagravenh động được miecircu tả trong tagravei liệu Use
Case đều được phacircn bổ về cho caacutec đối tượng cộng taacutec thực thi chức năng đoacute
Caacutec nguyecircn tắc của UML cho việc thực hiện caacutec Use Case lagrave Một Use Case sẽ
được thực hiện trong một sự cộng taacutec (collaboration) Một sự cộng taacutec chỉ ra một
giải phaacutep (phụ thuộc vagraveo sự thực thi nội bộ) của một Use Case sử dụng caacutec khaacutei
niệm lớpđối tượng vagrave mối quan hệ giữa chuacuteng đối với nhau (gọi lagrave ngữ cảnh ndash
context của sự cộng taacutec) cũng như sự tương taacutec giữa chuacuteng để đạt tới chức năng
mong muốn (gọi lagrave chuỗi tương taacutec của sự cộng taacutec) Kiacute hiệu cho sự cộng taacutec lagrave
Một sự cộng taacutec được trigravenh bagravey trong UML qua một loạt caacutec biểu đồ chỉ ra cả ngữ
cảnh lẫn chuỗi tương taacutec giữa caacutec thagravenh phần tham gia thagravenh phần tham gia
trong một sự cộng taacutec lagrave một loạt caacutec lớp (vagrave trong một thực thể cộng taacutec caacutec
đối tượng) Caacutec biểu đồ sử dụng ở đacircy lagrave biểu đồ cộng taacutec biểu đồ chuỗi vagrave biểu
quaacutet về sự cộng taacutec lagrave quyết định tugravey thuộc vagraveo từng trường hợp cụ thể Trong
một vagravei trường hợp chỉ một biểu đồ cộng taacutec đatilde coacute thể lagrave đủ nhưng trong caacutec
trường hợp khaacutec người ta nhất thiết cần tới sự kết hợp của nhiều loại biểu đồ
Một cảnh kịch (Scenario) lagrave một thực thể (instance) của một Use Case hay lagrave một
sự cộng taacutec một cảnh kịch lagrave một chuỗi thực thi cụ thể (một dograveng chảy cụ thể
của caacutec sự kiện) trigravenh bagravey một sự thực thể hoacutea của một Use Case (tức lagrave một lần
sử dụng hệ thống) Khi một cảnh kịch được quan saacutet trong tư caacutech một Use Case
người ta chỉ miecircu tả những ứng xử becircn ngoagravei hướng về phiacutea taacutec nhacircn Khi quan
saacutet một cảnh kịch trong tư caacutech lagrave một thực thể của sự cộng taacutec người ta sẽ
miecircu tả cả sự thực thi nội tại (caacutec dograveng lệnh code) của caacutec lớp tham gia ở đacircy
thuật toaacuten cũng như thủ tục của chuacuteng cugraveng sự giao tiếp giữa chuacuteng với nhau
Taacutec vụ thực hiện một Use Case lagrave chuyển caacutec bước vagrave hagravenh động khaacutec nhau
trong lời miecircu tả Use Case thagravenh lớp (Class) thủ tục trong những lớp nagravey cũng
như quan hệ giữa chuacuteng với nhau Noacute được miecircu tả lagrave động taacutec phacircn bổ traacutech
nhiệm của mỗi bước đi trong Use Case vagraveo caacutec lớp tham gia sự cộng taacutec thực
hiện Use Case đoacute Tại giai đoạn nagravey người ta phải tigravem ra một giải phaacutep cung cấp
những hagravenh vi hướng ngoại đatilde được xaacutec định của Use Case noacute được miecircu tả
trong những thuật ngữ của một sự cộng taacutec nội bộ trong hệ thống
Mỗi bước hagravenh động trong Use Case sẽ được chuyển thagravenh thủ tục (operation)
trong caacutec lớp tham gia Một bước trong Use Case sẽ được chuyển thagravenh một loạt
caacutec thủ tục tại nhiều lớp rất hiếm khi xảy ra aacutenh xạ 1-1 giữa caacutec hagravenh động
trong Use Case vagrave caacutec thủ tục được thực thi trong tương taacutec giữa caacutec đối tượng
của caacutec lớp tham gia Cũng xin nhớ rằng một lớp coacute thể tham gia nhiều Use Case
khaacutec nhau vagrave traacutech nhiệm cao nhất của lớp nằm chiacutenh trong việc kết tập tất cả
caacutec vai trograve magrave lớp nagravey đảm nhận trong caacutec Use Case khaacutec nhau
Mối quan hệ giữa một Use Case vagrave sự thực thi noacute theo khaacutei niệm cộng taacutec được
chỉ ra hoặc qua một mối quan hệ nacircng cao (refinement relationship) ndash biểu thị
bằng đoạn thẳng chấm chấm với mũi tecircn - - - -gt hay một hyperlink ngầm trong
một cocircng cụ nagraveo đoacute Một hyperlink trong một cocircng cụ sẽ tạo điều kiện chuyển từ
việc quan saacutet một Use Case trong một biểu đồ Use Case sang ngay sự cộng taacutec
thực thi Use Case đoacute Caacutec hyperlink cũng được sử dụng để chuyển từ Use Case
nagravey sang một cảnh kịch (thường lagrave một mocirc higravenh động ndash biểu đồ hoạt động biểu
đồ chuỗi hay biểu đồ cộng taacutec) miecircu tả một sự thực hiện cụ thể nagraveo đoacute của Use
Case
Phacircn bổ traacutech nhiệm cho caacutec lớp một caacutech thagravenh cocircng lagrave một taacutec vụ đogravei hỏi kinh
nghiệm Cũng giống như mọi cocircng đoạn hướng đối tượng khaacutec cocircng việc nagravey
mang tiacutenh vograveng lặp (iterative) Nhagrave phaacutet triển thử nghiệm với nhiều sự phacircn bổ
traacutech nhiệm khaacutec nhau vagrave dần dần nacircng cấp chuacuteng trong giải phaacutep của migravenh cho
tới khi tạo ra được một mocirc higravenh thực hiện chức năng đoacute đồng thời lại đủ mức độ
năng động để cho pheacutep tiến hagravenh caacutec sự thay đổi trong tương lai
Jacobson sử dụng phương phaacutep định nghĩa ba loại đối tượng căn bản (coacute nghĩa lagrave
ba loại lớp) caacutec đối tượng biecircn (boundary objects) đối tượng chỉ huy (control
objects) vagrave đối tượng thực thể (entity objects) Đối với mỗi Use Case caacutec lọai đối
tượng nagravey được sử dụng để miecircu tả một sự cộng taacutec thực thi Use Case Traacutech
nhiệm của caacutec loại đối tượng kể trecircn như sau
Đối tượng thực thể loại đối tượng nagravey đại diện cho caacutec thực thể
của bagravei toaacuten nằm trong phạm vi magrave hệ thống xử lyacute Thường chuacuteng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
mang tiacutenh thụ động theo khaacutei niệm lagrave chuacuteng khocircng tự gacircy necircn caacutec
tương taacutec đối với chuacuteng Trong một hệ thống thocircng tin caacutec đối
tượng thực thể thường mang tiacutenh trường tồn (persistent) vagrave được
lưu trữ trong một hệ ngacircn hagraveng dữ liệu Caacutec đối tượng thực thể
thường tham gia vagraveo nhiều Use Case khaacutec nhau
Đối tượng biecircn loại đối tượng nagravey nằm gần đường ranh giới của
hệ thống (mặc dugrave vẫn nằm becircn trong hệ thống) Chuacuteng tương taacutec
với caacutec taacutec nhacircn nằm becircn ngoagravei hệ thống vagrave nhận thocircng điệp cũng
như gửi thocircng điệp đến caacutec loại đối tượng khaacutec nằm becircn trong hệ
thống
Đối tượng chỉ huy loại đối tượng nagravey chỉ huy sự tương taacutec giữa
caacutec nhoacutem đối tượng Một đối tượng như thế coacute thể đoacuteng vai trograve bộ
phận điều khiển cho toagraven bộ một Use Case hoagraven tất hay noacute coacute thể
thực thi một chuỗi hagravenh động chung của nhiều Use Case Thường thigrave
một đối tượng như vậy chỉ tồn tại trong quaacute trigravenh thực thi Use Case
Ba loại đối tượng nagravey coacute ba kiacute hiệu khaacutec nhau vagrave coacute thể được sử dụng khi vẽ caacutec
loại biểu đồ miecircu tả cộng taacutec hoặc biểu đồ lớp Sau khi đatilde định nghĩa nhiều loại
đối tượng khaacutec nhau vagrave xaacutec nhận caacutec cộng taacutec người ta coacute thể để cocircng đi tigravem sự
tương tự giữa chuacuteng để một số lớp coacute thể được sử dụng trong một loạt caacutec Use
Case khaacutec nhau Sử dụng caacutec Use Case theo phương thức nagravey ta coacute thể tạo necircn
nền tảng cho việc phacircn tiacutech vagrave thiết kế hệ thống qui trigravenh phaacutet triển được Ivar
Jacobson gọi lagrave Qui Trigravenh Phaacutet Triển Theo Use Case (Use case ndash driven)
Nhigraven chung coacute nhiều phương phaacutep khaacutec nhau để phacircn bổ traacutech nhiệm từ Use
Case về cho caacutec lớp Coacute phương phaacutep đề nghị đầu tiecircn phải tiến hagravenh phacircn tiacutech
phạm vi bagravei toaacuten chỉ ra tất cả caacutec lớp thực thể (thuộc phạm vi bagravei toaacuten) với mối
quan hệ của chuacuteng với nhau Sau đoacute nhagrave phaacutet triển sẽ phacircn tiacutech từng Use Case
vagrave phacircn bổ traacutech nhiệm cho caacutec lớp trong mocirc higravenh phacircn tiacutech (analysis model)
nhiều khi sẽ thay đổi chuacuteng hoặc bổ sung thecircm caacutec lớp mới Một phương phaacutep
khaacutec lại đề nghị lagrave necircn lấy caacutec Use Case lagravem nền tảng để tigravem caacutec lớp lagravem sao
trong quaacute trigravenh phacircn bổ traacutech nhiệm thigrave mocirc higravenh phacircn tiacutech của phạm vi bagravei toaacuten
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 lagrave cocircng việc ở đacircy mang tiacutenh vograveng lặp Khi
phacircn bổ traacutech nhiệm cho caacutec lớp ta coacute thể phaacutet hiện ra sự thiếu đồng bộ hoặc lỗi
trong caacutec biểu đồ lớp vagrave qua đoacute dẫn đến việc sửa chữa trong biểu đồ lớp Những
lớp mới sẽ được nhận dạng vagrave tigravem ra nhằm mục điacutech hỗ trợ cho caacutec Use Case
Trong một số trường hợp thậm chiacute coacute thể xảy ra chuyện phải thay đổi hoặc sửa
chữa cả biểu đồ Use Case vigrave khi hiểu hệ thống một caacutech sacircu sắc hơn nhagrave phaacutet
triển sẽ nhận ra rằng coacute một Use Case nagraveo đoacute đatilde khocircng được miecircu tả chiacutenh xaacutec
vagrave đuacuteng đắn Caacutec Use Case giuacutep chuacuteng ta tập trung vagraveo khiacutea cạnh chức năng của
hệ thống lagravem sao phải đảm bảo cho noacute được miecircu tả chiacutenh xaacutec vagrave được xacircy
CuuDuongThanCongcom httpsfbcomtailieudientucntt
dựng chiacutenh xaacutec trong hệ thống Một trong những vấn đề xảy ra với nhiều phương
phaacutep hướng đối tượng magrave khocircng sử dụng đến khaacutei niệm Use Case lagrave chuacuteng tập
trung quaacute nhiều vagraveo cấu truacutec tĩnh của caacutec lớp vagrave caacutec đối tượng (nhiều khi người
ta gọi lagrave phương phaacutep mocirc higravenh hoacutea khaacutei niệm ndash conceptual modeling) nhưng lại
bỏ qua caacutec khiacutea cạnh chức năng vagrave khiacutea cạnh động của hệ thống
11- TOacuteM TẮT VỀ USE CASE
Mocirc higravenh Use Case lagrave một kỹ thuật được sử dụng để miecircu tả những yecircu cầu mang
tiacutenh chức năng của một hệ thống Use Case được miecircu tả qua caacutec khaacutei niệm taacutec
nhacircn becircn ngoagravei Use Case vagrave hệ thống Taacutec nhacircn tượng trưng cho một vai trograve vagrave
một thực thể becircn ngoagravei viacute dụ như một người dugraveng một bộ phận phần cứng hoặc
một hệ thống khaacutec tương taacutec với hệ thống Taacutec nhacircn gacircy ra vagrave giao tiếp với caacutec
Use Case trong khi một Use Case lagrave một tập hợp của caacutec chuỗi hagravenh động được
thực hiện trong hệ thống Một Use Case phải cung cấp một giaacute trị cần hướng tới
nagraveo đoacute cho taacutec nhacircn vagrave bigravenh thường noacute được miecircu tả bằng văn bản Taacutec nhacircn vagrave
Use Case lagrave caacutec lớp Một taacutec nhacircn được liecircn kết với một hoặc nhiều Use Case qua
mối liecircn kết (Association) vagrave cả taacutec nhacircn lẫn Use Case đều coacute thể coacute mối quan hệ
khaacutei quaacutet hoacutea mối quan hệ nagravey miecircu tả những ứng xử chung trong caacutec lớp cha
sẽ được thừa kế bởi một hoặc nhiều lớp con Một mocirc higravenh Use Case được miecircu tả
bằng một hay nhiều biểu đồ trường hợp thuộc ngocircn ngữ UML
Use Case được thực hiện qua caacutec sự cộng taacutec Một sự cộng taacutec lagrave một lời miecircu tả
một ngữ cảnh chỉ ra caacutec lớp đối tượng vagrave mối quan hệ của chuacuteng vagrave một tương
taacutec chỉ ra caacutec lớpđối tượng đoacute tương taacutec với nhau ra sao để thực hiện một chức
năng cụ thể Một sự cộng taacutec được miecircu tả bằng biểu đồ hoạt động biểu đồ cộng
taacutec vagrave biểu đồ chuỗi Khi một Use Case được thực hiện traacutech nhiệm cho mỗi
bước hagravenh động trong Use Case cần phải được phacircn bổ cho caacutec lớp tham gia sự
cộng taacutec đoacute thường lagrave qua việc xaacutec định caacutec thủ tục của caacutec lớp nagravey đi song
song với phương thức magrave chuacuteng tương taacutec với nhau Một cảnh kịch lagrave một thực
thể của một Use Case hay một sự cộng taacutec chỉ ra một chuỗi thực thi cụ thể Vigrave
thế một cảnh kịch lagrave một sự minh họa hay lagrave một viacute dụ của một Use Case hay lagrave
một sự cộng taacutec Khi cảnh kịch được chỉ ra trong tư caacutech một thực thể của một
Use Case chỉ duy nhất sự tương taacutec giữa Use Case vagrave taacutec nhacircn ngoại lai sẽ được
miecircu tả nhưng khi cảnh kịch được quan saacutet vagrave được chỉ ra theo hướng lagrave một
thực thể của một sự cộng taacutec thigrave sự tương taacutec giữa caacutec lớpđối tượng phiacutea becircn
trong hệ thống cũng sẽ được miecircu tả
PHẦN CAcircU HỎI
Hỏi Một taacutec nhacircn (Actor) trong một Use Case luocircn lagrave một con người
Đaacutep Sai taacutec nhacircn lagrave một người hoặc một vật nagraveo đoacute tương taacutec với hệ
thống
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Hỏi Hệ thống khaacutec cũng coacute thể đoacuteng vai trograve taacutec nhacircn trong một Use Case
Đaacutep Đuacuteng
Hỏi Mỗi hệ thống chỉ coacute một Use Case
Đaacutep Sai
Hỏi Biểu đồ Use case mocirc tả chức năng hệ thống
Đaacutep Đuacuteng
Chƣơng 5 MOcirc HIgraveNH ĐỐI TƢỢNG
1- Lớp đối tƣợng vagrave quan hệ ndash caacutec thagravenh phần cơ bản của mocirc higravenh
Trong mocirc higravenh hoacutea hướng đối tượng những phần tử cấu thagravenh căn bản nhất của
mocirc higravenh lagrave lớp đối tượng vagrave mối quan hệ giữa chuacuteng với nhau Lớp vagrave đối tượng
sẽ mocirc higravenh hoacutea những gigrave coacute trong hệ thống magrave chuacuteng ta muốn miecircu tả caacutec mối
quan hệ sẽ biểu thị cấu truacutec Động taacutec phacircn lớp (classification) đatilde được sử dụng
từ hagraveng ngagraven năm nay để đơn giản hoacutea việc miecircu tả caacutec hệ thống phức tạp Khi
loagravei người biết đến việc lập trigravenh hướng đối tượng để xacircy dựng caacutec hệ thống phần
mềm thigrave lớp vagrave caacutec mối quan hệ của chuacuteng được chuyển thagravenh caacutec dograveng code cụ
thể
11- Đối tƣợng (Object)
Một đối tượng lagrave một sự tượng trưng cho một thực thể hoặc lagrave thực thể tồn tại
trong thế giới đời thực hoặc thực thể mang tiacutenh khaacutei niệm Một đối tượng coacute thể
tượng trưng cho caacutei gigrave đoacute cụ thể viacute dụ như một chiếc xe ocirc tocirc chở hagraveng của bạn
hoặc chiếc maacutey tiacutenh của tocirci hoặc tượng trưng cho một khaacutei niệm viacute dụ như một
quy trigravenh hoacutea học một giao dịch trong nhagrave băng một lời đặt hagraveng những thocircng
tin trong quaacute trigravenh sử dụng tiacuten dụng của khaacutech hagraveng hay một tỷ lệ tiền lời
Cũng coacute những đối tượng (viacute dụ như caacutec đối tượng thực thi một trong hệ thống
phần mềm) khocircng thật sự tồn tại ở ngoagravei thế giới thực nhưng lagrave kết quả dẫn
xuất từ quaacute trigravenh nghiecircn cứu cấu truacutec vagrave ứng xử của caacutec đối tượng ngoagravei thế giới
thực Những đối tượng đoacute dugrave lagrave bằng caacutech nagravey hay caacutech khaacutec đều liecircn quan đến
quan niệm của chuacuteng ta về thế giới thực
Một đối tượng lagrave một khaacutei niệm một sự trừu tượng hoacutea hoặc lagrave một đồ vật với
ranh giới vagrave yacute nghĩa được định nghĩa rotilde ragraveng cho một ứng dụng nagraveo đoacute Mỗi đối
tượng trong một hệ thống đều coacute ba đặc tiacutenh trạng thaacutei ứng xử vagrave sự nhận diện
12- Trạng thaacutei ứng xử vagrave nhận diện của đối tƣợng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Trạng thaacutei (state) của một đối tượng lagrave một trong những hoagraven cảnh nơi đối tượng
coacute thể tồn tại Trạng thaacutei của một đối tượng thường sẽ thay đổi theo thời gian vagrave
noacute được định nghĩa qua một tổ hợp caacutec thuộc tiacutenh với giaacute trị của caacutec thuộc tiacutenh
nagravey cũng như mối quan hệ magrave đối tượng coacute thể coacute với caacutec đối tượng khaacutec Viacute dụ
một danh saacutech ghi danh cho một lớp học trong hệ thống trường học coacute thể coacute hai
trạng thaacutei trạng thaacutei đoacuteng vagrave trạng thaacutei mở Nếu danh saacutech sinh viecircn ghi danh
cho lớp học nagravey cograven nhỏ hơn số tối đa cho pheacutep (viacute dụ lagrave 10) thigrave trạng thaacutei của
bảng ghi danh nagravey lagrave mở Một khi đatilde đủ 10 sinh viecircn ghi danh cho lớp danh saacutech
sẽ chuyển sang trạng thaacutei đoacuteng
Ứng xử (Behaviour) xaacutec định một đối tượng sẽ phản ứng như thế nagraveo trước
những yecircu cầu từ caacutec đối tượng khaacutec noacute tiecircu biểu cho những gigrave magrave đối tượng
nagravey coacute thể lagravem Ứng xử được thực thi qua loạt caacutec Phương thức (operation) của
đối tượng Trong viacute dụ trường đại học một đối tượng bảng ghi danh lớp học coacute
thể coacute ứng xử lagrave bổ sung thecircm một sinh viecircn hay xoacutea đi tecircn của một sinh viecircn
khi sinh viecircn đăng kyacute học hay batildei bỏ đăng kyacute
Sự nhận diện (Identity) đảm bảo rằng mỗi đối tượng lagrave duy nhất ndash dugrave trạng thaacutei
của noacute coacute thể giống với trạng thaacutei của caacutec đối tượng khaacutec Viacute dụ khoacutea học đại số
101 chương 1 vagrave khoacutea học đại số 101 chương 2 lagrave hai đối tượng trong hệ thống
ghi danh trường học Mặc dugrave cả hai đều thuộc loại bảng ghi danh mỗi khoacutea học
vẫn coacute sự nhận dạng duy nhất của migravenh
13- Lớp (Class)
Một lớp lagrave một lời miecircu tả của một nhoacutem caacutec đối tượng coacute chung thuộc tiacutenh
chung phương thức (ứng xử) chung caacutec mối quan hệ với caacutec đối tượng khaacutec vagrave
chung ngữ nghĩa (semantic) Noacutei như thế coacute nghĩa lớp lagrave một khuocircn mẫu để tạo
ra đối tượng Mỗi đối tượng lagrave một thực thể của một lớp nagraveo đoacute vagrave một đối tượng
khocircng thể lagrave kết quả thực thể hoacutea của nhiều hơn một lớp Chuacuteng ta sử dụng khaacutei
niệm lớp để bagraven luận về caacutec hệ thống vagrave để phacircn loại caacutec đối tượng magrave chuacuteng ta
đatilde nhận dạng ra trong thế giới thực
Một lớp tốt sẽ nắm bắt một vagrave chỉ một sự trừu tượng hoacutea - noacute phải coacute một chủ
đề chiacutenh Viacute dụ một lớp vừa coacute khả năng giữ tất cả caacutec thocircng tin về một sinh
viecircn vagrave thocircng tin về tất cả những lớp học magrave người sinh viecircn đoacute đatilde trải qua trong
nhiều năm trước khocircng phải lagrave một lớp tốt bởi noacute khocircng coacute chủ đề chiacutenh Lớp
nagravey cần phải được chia ra lagravem hai lớp liecircn quan đến nhau lớp sinh viecircn vagrave lớp
lịch sử của sinh viecircn
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Khi tạo dựng mocirc higravenh cũng như thật sự xacircy dựng caacutec hệ thống doanh nghiệp caacutec
hệ thống thocircng tin maacutey moacutec hoặc caacutec lọai hệ thống khaacutec chuacuteng ta cần sử dụng
caacutec khaacutei niệm của chiacutenh phạm vi vấn đề để khiến cho mocirc higravenh dễ hiểu vagrave dễ giao
tiếp hơn Nếu chuacuteng ta xacircy dựng hệ thống cho một cocircng ty bảo hiểm mocirc higravenh
cần phải dựa trecircn caacutec khaacutei niệm của ngagravenh bảo hiểm Nếu chuacuteng ta xacircy dựng
một hệ thống cho quacircn đội thigrave caacutec khaacutei niệm của thế giới quacircn sự cần phải được
sử dụng khi mocirc higravenh hoacutea hệ thống Một hệ thống dựa trecircn caacutec khaacutei niệm chiacutenh
của một ngagravenh doanh nghiệp nagraveo đoacute coacute thể dễ được thiết kế lại cho phugrave hợp với
những qui chế chiến lược vagrave qui định mới bởi chuacuteng ta chỉ cần cacircn bằng vagrave khắc
phục sự checircnh lệch giữa cocircng việc cũ vagrave cocircng việc mới Khi caacutec mocirc higravenh được
xacircy dựng dựa trecircn caacutec khaacutei niệm lấy ra từ cuộc đời thực vagrave dựa trecircn caacutec khaacutei
niệm thuộc phạm vi vấn đề hướng đối tượng sẽ lagrave một phương phaacutep rất thiacutech
hợp bởi nền tảng của phương phaacutep hướng đối tượng lagrave caacutec lớp đối tượng vagrave mối
quan hệ giữa chuacuteng
Một lớp lagrave lời miecircu tả cho một dạng đối tượng trong bất kỳ một hệ thống nagraveo đoacute
ndash hệ thống thocircng tin hệ thống kỹ thuật hệ thống nhuacuteng thời gian thực hệ
thống phacircn taacuten hệ thống phần mềm vagrave hệ thống doanh thương Caacutec vật dụng
(artifact) trong một doanh nghiệp những thocircng tin cần được lưu trữ phacircn tiacutech
hoặc caacutec vai trograve magrave một taacutec nhacircn đảm nhận trong một doanh nghiệp thường sẽ
trở thagravenh caacutec lớp trong caacutec hệ thống doanh nghiệp vagrave hệ thống thocircng tin
Viacute dụ về caacutec lớp trong doanh nghiệp vagrave caacutec hệ thống thocircng tin
Khaacutech hagraveng
Bản thương thuyết
Hoacutea đơn
Moacuten nợ
Tagravei sản
Bản cocircng bố giaacute cổ phiếu
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Caacutec lớp trong một hệ thống kỹ thuật thường bao gồm caacutec đối tượng kỹ thuật viacute
dụ như maacutey moacutec được sử dụng trong hệ thống
Sensor
Magraven higravenh
IO card
Động cơ
Nuacutet bấm
Lớp điều khiển
Caacutec hệ thống phần mềm thường coacute caacutec lớp đại diện cho caacutec thực thể phần mềm
trong một hệ điều hagravenh
File
Chương trigravenh chạy được
Trang thiết bị
Icon
Cửa sổ
Thanh keacuteo
14- Biểu đồ lớp (Class diagram)
Một biểu đồ lớp lagrave một dạng mocirc higravenh tĩnh Một biểu đồ lớp miecircu tả hướng nhigraven
tĩnh của một hệ thống bằng caacutec khaacutei niệm lớp vagrave mối quan hệ giữa chuacuteng với
nhau Mặc dugrave noacute cũng coacute những neacutet tương tự với một mocirc higravenh dữ liệu nhưng
necircn nhớ rằng caacutec lớp khocircng phải chỉ thể hiện cấu truacutec thocircng tin magrave cograven miecircu tả
cả higravenh vi Một trong caacutec mục điacutech của biểu đồ lớp lagrave tạo nền tảng cho caacutec biểu
đồ khaacutec thể hiện caacutec khiacutea cạnh khaacutec của hệ thống (viacute dụ như trạng thaacutei của đối
tượng hay cộng taacutec động giữa caacutec đối tượng được chỉ ra trong caacutec biểu đồ động)
Một lớp trong một biểu đồ lớp coacute thể được thực thi trực tiếp trong một ngocircn ngữ
hướng đối tượng coacute hỗ trợ trực tiếp khaacutei niệm lớp Một biểu đồ lớp chỉ chỉ ra caacutec
lớp nhưng becircn cạnh đoacute cograven coacute một biến tấu hơi khaacutec đi một chuacutet chỉ ra caacutec đối
tượng thật sự lagrave caacutec thực thể của caacutec lớp nagravey (biểu đồ đối tượng)
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Để tạo một biểu đồ lớp đầu tiecircn ta phải nhận diện vagrave miecircu tả caacutec lớp Một khi đatilde
coacute một số lượng caacutec lớp ta sẽ xeacutet đến quan hệ giữa caacutec lớp đoacute với nhau
2- Tigravem lớp
Hầu như khocircng coacute một cocircng thức chung cho việc phaacutet hiện ra caacutec lớp Đi tigravem caacutec
lớp lagrave một cocircng việc đogravei hỏi triacute saacuteng tạo vagrave cần phải được thực thi với sự trợ giuacutep
của chuyecircn gia ứng dụng Vigrave qui trigravenh phacircn tiacutech vagrave thiết kế mang tiacutenh vograveng lặp
necircn danh saacutech caacutec lớp sẽ thay đổi theo thời gian Tập hợp ban đầu của caacutec lớp
tigravem ra chưa chắc đatilde lagrave tập hợp cuối cugraveng của caacutec lớp sau nagravey sẽ được thực thi vagrave
biến đổi thagravenh code Vigrave thế thường người ta hay sử dụng đến khaacutei niệm caacutec lớp
ứng cử viecircn (Candidate Class) để miecircu tả tập hợp những lớp đầu tiecircn được tigravem ra
cho hệ thống
Như đatilde noacutei trong phần 210 (Thực hiện Trường hợp sử dụng) trường hợp sử
dụng lagrave những lời miecircu tả chức năng của hệ thống cograven traacutech nhiệm thực thi
thuộc về caacutec đối tượng cộng taacutec thực thi chức năng đoacute Noacutei một caacutech khaacutec chuacuteng
ta đi tigravem caacutec lớp lagrave để tiến tới tigravem giải phaacutep cung cấp những ứng xử hướng ngoại
đatilde được xaacutec định trong caacutec trường hợp sử dụng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Coacute nhiều phương phaacutep khaacutec nhau để thực hiện cocircng việc đoacute Coacute phương phaacutep đề
nghị tiến hagravenh phacircn tiacutech phạm vi bagravei toaacuten chỉ ra tất cả caacutec lớp thực thể (thuộc
phạm vi bagravei toaacuten) với mối quan hệ của chuacuteng với nhau Sau đoacute nhagrave phaacutet triển sẽ
phacircn tiacutech từng trường hợp sử dụng vagrave phacircn bổ traacutech nhiệm cho caacutec lớp trong mocirc
higravenh phacircn tiacutech (analysis model) nhiều khi sẽ thay đổi chuacuteng hoặc bổ sung thecircm
caacutec lớp mới Coacute phương phaacutep đề nghị necircn lấy caacutec trường hợp sử dụng lagravem nền
tảng để tigravem caacutec lớp lagravem sao trong quaacute trigravenh phacircn bổ traacutech nhiệm thigrave mocirc higravenh
phacircn tiacutech của phạm vi bagravei toaacuten sẽ từng bước từng bước được thiết lập
21- Phacircn tiacutech phạm vi bagravei toaacuten để tigravem lớp
Quaacute trigravenh phacircn tiacutech phạm vi bagravei toaacuten thường được bắt đầu với caacutec khaacutei niệm then
chốt (Key Abstraction) một cocircng cụ thường được sử dụng để nhận diện vagrave lọc ra
caacutec lớp ứng cử viecircn (Candidate class)
211- Khaacutei niệm then chốt
Hatildey lấy viacute dụ một nhagrave băng ABC điều đầu tiecircn ta nghĩ tới lagrave gigrave Tiền Becircn cạnh
đoacute ABC cograven phải coacute những thực thể liecircn quan tới tiền như sau
Khaacutech hagraveng
Sản phẩm (caacutec tagravei khoản được coi lagrave caacutec sản phẩm của một
nhagrave băng)
Lực lượng nhacircn viecircn
Ban quản trị nhagrave băng
Phograveng maacutey tiacutenh trong nhagrave băng
Những thực thể nagravey được gọi lagrave caacutec khaacutei niệm then chốt cho những gigrave magrave nhagrave
băng coacute thể coacute Khaacutei niệm then chốt hoặc mang tiacutenh cấu truacutec (structural) hoặc
mang tiacutenh chức năng (functional) Thực thể mang tiacutenh cấu truacutec lagrave những thực thể
vật lyacute tương taacutec với nhagrave băng viacute dụ khaacutech hagraveng Thực thể mang tiacutenh chức năng
lagrave những chức năng magrave nhagrave băng phải thực hiện viacute dụ duy trigrave một tagravei khoản
hoặc chuyển tiền từ tagravei khoản nagravey sang tagravei khoản khaacutec Khaacutei niệm then chốt lagrave
caacutec thực thể ta để yacute đến đầu tiecircn Chuacuteng rất quan trọng vigrave giuacutep ta
Định nghĩa ranh giới của vấn đề
Nhấn mạnh đến caacutec thực thể coacute liecircn quan đến thiết kế của hệ thống
Loại bỏ thực thể nằm ngoagravei phạm vi hệ thống
Caacutec khaacutei niệm then chốt thường sẽ trở thagravenh caacutec lớp trong mocirc higravenh
phacircn tiacutech
Một khaacutei niệm then chốt toacutem lại lagrave một lớp hay đối tượng thuộc chuyecircn ngagravenh
của phạm vi bagravei toaacuten Khi trigravenh bagravey với người sử dụng chuacuteng coacute một aacutenh xạ 1-1
CuuDuongThanCongcom httpsfbcomtailieudientucntt
giữa với những thực thể liecircn quan tới người sử dụng như hoacutea đơn sec giấy đề
nghị ruacutet tiền sổ tiết kiệm thẻ ruacutet tiền tự động nhacircn viecircn thu ngacircn nhacircn viecircn
nhagrave băng caacutec phograveng banhellip
Mức độ trừu tƣợng
Khi phacircn tiacutech phạm vi bagravei toaacuten cần chuacute yacute rằng mức độ trừu tượng của caacutec khaacutei
niệm then chốt lagrave rất quan trọng bởi mức độ trừu tượng quaacute cao hay quaacute thấp
đều rất dễ gacircy nhầm lẫn
Mức trừu tượng quaacute cao dẫn tới những định nghĩa quaacute khaacutei quaacutet về một thực thể
tạo necircn một caacutei nhigraven vĩ mocirc vagrave thường khocircng nhắm vagraveo một mục tiecircu cụ thể Viacute
dụ trong một nhagrave băng ta khocircng thể chọn khaacutei niệm then chốt lagrave người bởi noacute
sẽ dẫn đến lời miecircu tả Một người đến nhagrave băng để gửi tiền vagraveo vagrave số tiền đoacute
được một người khaacutec tiếp nhận ndash trong khi một yecircu cầu quan trọng ở đacircy lagrave
phải phacircn biệt giữa nhacircn viecircn với khaacutech hagraveng vigrave chức năng của họ lagrave khaacutec hẳn
nhau
Tương tự như vậy mức trừu tượng quaacute thấp cũng dễ gacircy hiểu lầm bởi những
thocircng tin quaacute vụn vặt chưa thiacutech hợp với thời điểm nagravey Viacute dụ những quyết định
dạng
Form mở tagravei khoản đogravei hỏi tất cả 15 Entry
Những dữ liệu trecircn Form nagravey đều phải được căn phải
Khocircng coacute nhiều chỗ để ghi địa chỉ của khaacutech hagraveng trecircn Form
necircn được để dagravenh cho caacutec giai đoạn sau
Vagravei điểm cần chuacute yacute về khaacutei niệm then chốt
Những thực thể xuất hiện đầu tiecircn trong oacutec natildeo chuacuteng ta lagrave những thực thể dễ coacute
khả năng trở thagravenh khaacutei niệm then chốt cho một vấn đề định trước
Mỗi lần tigravem thấy một khaacutei niệm then chốt mới cần xem xeacutet noacute theo caacutech nhigraven
của vấn đề coacute thể hỏi caacutec cacircu hỏi sau
Những chức năng nagraveo coacute thể được thực hiện đối với thực thể nagravey
Điều gigrave khiến những thực thể loại nagravey được tạo ra
Nếu khocircng coacute cacircu trả lời thiacutech hợp cần phải suy nghĩ lại về thực thể đoacute
Mỗi khaacutei niệm then chốt mới cần phải được đặt tecircn cho thiacutech hợp miecircu tả đuacuteng
chức năng của khaacutei niệm
212- Nhận dạng lớp vagrave đối tƣợng
Nắm vững khaacutei niệm lớp chuacuteng ta coacute thể tương đối dễ dagraveng tigravem thấy caacutec lớp vagrave
đối tượng trong phạm vi vấn đề Một nguyecircn tắc thocirc sơ thường được aacutep dụng lagrave
CuuDuongThanCongcom httpsfbcomtailieudientucntt
danh từ trong caacutec lời phaacutet biểu bagravei toaacuten thường lagrave caacutec ứng cử viecircn để chuyển
thagravenh lớp vagrave đối tượng
Một số gợi yacute thực tế cho việc tigravem lớp trong phạm vi vấn đề
Bước đầu tiecircn lagrave cần phải tập trung nghiecircn cứu kỹ
Caacutec danh từ trong những lời phaacutet biểu bagravei toaacuten
Kiến thức chuyecircn ngagravenh thuộc phạm vi bagravei toaacuten
Caacutec Trường hợp sử dụng
Viacute dụ trong lời phaacutet biểu Coacute một số tagravei khoản mang lại tiền latildei ta thấy coacute hai
danh từ lagrave tagravei khoản vagrave tiền latildei Chuacuteng coacute thể lagrave caacutec lớp tiềm năng cho mocirc higravenh
nhagrave băng lẻ
Thứ hai chuacuteng ta cần chuacute yacute đến caacutec nhoacutem vật thể trong hệ thống hiện thời như
Caacutec thực thể vật lyacute của hệ thống những vật thể tương taacutec với hệ
thống viacute dụ khaacutech hagraveng
Caacutec vật thể hữu higravenh caacutec vật thể vật lyacute magrave ta coacute thể nhigraven vagrave sờ
thấy Viacute dụ như cocircng cụ giao thocircng saacutech vở một con người một
ngocirci nhagravehellip Trong một nhagrave băng ABC đoacute coacute thể lagrave tập sec phiếu đề
nghị ruacutet tiền sổ tiết kiệm caacutec loại Form cần thiết
Caacutec sự kiện (Events) Một chiếc xe bị hỏng một caacutei cửa được mở ra
Trong một nhagrave băng lagrave sự đaacuteo hạn một tagravei khoản đầu tư hiện tượng
ruacutet quaacute nhiều tiền mặt trong một tagravei khoản bigravenh thường
Caacutec vai trograve (Role) Viacute dụ như mẹ khaacutech hagraveng người baacuten hagraveng hellip
Trong một nhagrave băng vai trograve coacute thể lagrave nhacircn viecircn nhagrave quản trị
khaacutech hagraveng
Caacutec sự tương taacutec (Interactions) Viacute dụ việc baacuten hagraveng lagrave một chuỗi
tương taacutec bao gồm khaacutech hagraveng người baacuten hagraveng vagrave sản phẩm
Trong một nhagrave băng việc mở một tagravei khoản mới sẽ yecircu cầu một
chuỗi tương taacutec giữa nhacircn viecircn vagrave khaacutech hagraveng
Vị triacute (Location) Một đồ vật nagraveo đoacute hoặc một người nagraveo đoacute được
gaacuten cho một vị triacute nagraveo đoacute Viacute dụ Ocirctocirc đối với nhagrave để xe Trong một
nhagrave băng ta coacute thể thấy nhacircn viecircn thu ngacircn luocircn đứng ở cửa sổ của
migravenh
Đơn vị tổ chức (Organisation Unit) Viacute dụ caacutec phograveng ban phograveng
trưng bagravey sản phẩm caacutec bộ phận Trong một nhagrave băng coacute thể coacute bộ
phận tagravei khoản bigravenh thường bộ phận tagravei khoản tiết kiệm bộ phận
tagravei khoản đầu tư
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Becircn cạnh đoacute cograven nhiều cacircu hỏi khaacutec giuacutep ta nhận dạng lớp Viacute dụ như
Ta coacute thocircng tin cần được lưu trữ hoặc cần được phacircn tiacutech khocircng
Nếu coacute thocircng tin cần phải được lưu trữ biến đổi phacircn tiacutech hoặc xử
lyacute trong một phương thức nagraveo đoacute thigrave chắc chắn đoacute sẽ lagrave ứng cử viecircn
cho lớp Những thocircng tin nagravey coacute thể lagrave một khaacutei niệm luocircn cần phải
được ghi trong hệ thống hoặc lagrave sự kiện giao dịch xảy ra tại một
thời điểm cụ thể nagraveo đoacute
Ta coacute caacutec hệ thống ngoại vi khocircng Nếu coacute thường chuacuteng cũng
đaacuteng được quan tacircm tới khi tạo dựng mocirc higravenh Caacutec hệ thống becircn
ngoagravei coacute thể được coi lagrave caacutec lớp chứa hệ thống của chuacuteng ta hoặc
tương taacutec với hệ thống của chuacuteng ta
Chuacuteng ta coacute caacutec mẫu thư viện lớp thagravenh phần vagrave những thứ khaacutec
khocircng Nếu chuacuteng ta coacute mẫu thư viện thagravenh phần từ caacutec dự aacuten
trước (xin được của caacutec bạn đồng nghiệp mua được từ caacutec nhagrave cung
cấp) thigrave chuacuteng thường cũng sẽ chứa caacutec ứng cử viecircn lớp
Coacute thiết bị ngoại vi magrave hệ thống của chuacuteng ta cần xử lyacute khocircng Mỗi
thiết bị kỹ thuật được nối với hệ thống của chuacuteng ta thường sẽ trở
thagravenh ứng cử viecircn cho lớp xử lyacute loại thiết bị ngoại vi nagravey
Chuacuteng ta coacute phần cocircng việc tổ chức khocircng Miecircu tả một đơn vị tổ
chức lagrave cocircng việc được thực hiện với caacutec lớp đặc biệt lagrave trong caacutec
mocirc higravenh doanh nghiệp
213- Tổng kết về caacutec nguồn thocircng tin cho việc tigravem lớp
Nhigraven chung caacutec nguồn thocircng tin chiacutenh cần đặc biệt chuacute yacute khi tigravem lớp lagrave
Caacutec lời phaacutet biểu yecircu cầu
Caacutec Trường hợp sử dụng
Sự trợ giuacutep của caacutec chuyecircn gia ứng dụng
Nghiecircn cứu hệ thống hiện thời
Loạt caacutec lớp đầu tiecircn được nhận dạng qua đacircy thường được gọi lagrave caacutec lớp ứng cử
viecircn (Candidate Class) Ngoagravei ra nghiecircn cứu những hệ thống tương tự cũng coacute
thể sẽ mang lại cho ta caacutec lớp ứng cử viecircn khaacutec
Khi nghiecircn cứu hệ thống hiện thời hatildey để yacute đến caacutec danh từ vagrave caacutec khaacutei niệm
then chốt để nhận ra lớp ứng cử viecircn Khocircng necircn đưa caacutec lớp đatilde được nhận diện
một lần nữa vagraveo mocirc higravenh chỉ bởi vigrave chuacuteng được nhắc lại ở đacircu đoacute theo một tecircn
gọi khaacutec Viacute dụ một hệ thống nhagrave băng coacute thể coi cugraveng một khaacutech hagraveng với
nhiều vị triacute khaacutec nhau lagrave nhiều khaacutech hagraveng khaacutec nhau Cần chuacute yacute khi phacircn tiacutech
CuuDuongThanCongcom httpsfbcomtailieudientucntt
những lời miecircu tả như thế để traacutenh dẫn đến sự trugraveng lặp trong quaacute trigravenh nhận
diện lớp
Coacute nhiều nguồn thocircng tin magrave nhagrave thiết kế cần phải chuacute yacute tới khi thiết kế lớp vagrave
chỉ khi lagravem như vậy ta mới coacute thể tin chắc về khả năng tạo dựng một mocirc higravenh
tốt Higravenh sau tổng kết caacutec nguồn thocircng tin kể trecircn
Caacutec trường hợp sử dụng lagrave nguồn tốt nhất cho việc nhận diện lớp vagrave đối tượng
Cần nghiecircn cứu kỹ caacutec Trường hợp sử dụng để tigravem caacutec thuộc tiacutenh (attribute) baacuteo
trước sự tồn tại của đối tượng hoặc lớp tiềm năng Viacute dụ nếu Trường hợp sử dụng
yecircu cầu phải đưa vagraveo một số tagravei khoản (account-number) thigrave điều nagravey trỏ tới sự
tồn tại của một đối tượng tagravei khoản
Một nguồn khaacutec để nhận ra lớpđối tượng lagrave caacutec Input vagrave Output của hệ thống
Nếu Input bao gồm tecircn khaacutech hagraveng thigrave đacircy lagrave tiacuten hiệu cho biết sự tồn tại của một
đối tượng khaacutech hagraveng bởi noacute lagrave một attribute của khaacutech hagraveng
Noacutei chuyện với người sử dụng cũng gợi mở đến caacutec khaacutei niệm then chốt Thường
thigrave người sử dụng miecircu tả hệ thống theo lối cần phải đưa vagraveo những gigrave vagrave mong
chờ kết quả gigrave Thocircng tin đưa vagraveo vagrave kết quả theo lối miecircu tả của người sử dụng
cần phải được tập hợp lại với nhau để nhận dạng khaacutei niệm then chốt
22- Caacutec lớp ứng cử viecircn
Theo caacutec bước kể trecircn trong phần đầu giai đoạn phacircn tiacutech ta đatilde miecircu tả được
một số lớp khaacutec nhau Những lớp nagravey được gọi lagrave caacutec lớp ứng cử viecircn chuacuteng thể
hiện những lớp coacute khả năng tồn tại trong một hệ thống cho trước Mặc dugrave vậy
đacircy vẫn coacute thể chưa phải lagrave kết quả chung cuộc một số lớp ứng cử viecircn coacute thể
sẽ bị loại bỏ trong caacutec bước sau vigrave khocircng thiacutech hợp
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Giai đoạn đầu khi định nghĩa caacutec lớp ứng cử viecircn ta chưa necircn cố gắng thanh lọc
caacutec lớp hatildey tập trung caacuteo mục tiecircu nghiecircn cứu bao quaacutet vagrave toagraven diện từ nhiều
nguồn thocircng tin khaacutec nhau để khocircng bỏ soacutet nhiều khiacutea cạnh cần xử lyacute
Viacute dụ trong nhagrave một băng lẻ caacutec lớp ứng cử viecircn coacute thể lagrave
Khaacutech hagraveng
Caacutec loại tagravei khoản khaacutec nhau
Sec sổ tiết kiệm đơn hellip
Phiếu yecircu cầu mở tagravei khoản mới
Thẻ ATM
Bản in thocircng tin về tagravei khoản
Giấy chứng nhận tagravei khoản đầu tư
Thẻ xếp hagraveng (Token) số thứ tự
Nhacircn viecircn
Nhacircn viecircn thu ngacircn
23- Loại bỏ caacutec lớp ứng cử viecircn khocircng thiacutech hợp
Coacute rất nhiều loại lớp ứng cử viecircn khocircng thiacutech hợp cần phải được loại bỏ
Lớp dư thừa Khi coacute hơn một lớp định nghĩa cugraveng một thực thể necircn
giữ lại lớp tốt nhất vagrave loại bỏ những lớp khaacutec Viacute dụ trong một nhagrave
băng coacute hai lớp chủ tagravei khoản vagrave khaacutech hagraveng Cả hai lớp biểu hiện
cugraveng một thực thể vagrave vigrave thế chỉ cần giữ lại một
Lớp khocircng thiacutech hợp Lớp định nghĩa ra những thực thể khocircng liecircn
quan đến vấn đề thực tại Mọi lớp khocircng xuất phaacutet từ phạm vi ứng
dụng cần phải được loại bỏ Viacute dụ lớp của caacutec maacutey đếm tiền becircn
casse trong một nhagrave băng coacute thể lagrave một ứng cử viecircn cho khaacutei niệm
lớp khocircng thiacutech hợp
Lớp khocircng rotilde ragraveng Lớp khocircng coacute chức năng cụ thể được gọi lagrave caacutec
lớp khocircng rotilde ragraveng Lớp tồn tại vagrave coacute giaacute trị sử dụng trong một hệ
thống lagrave lớp coacute một chức năng đatilde được nhận diện vagrave xaacutec định rotilde
ragraveng Caacutec lớp khocircng rotilde ragraveng cần phải được định nghĩa lại hoặc loại
bỏ Viacute dụ quan saacutet nhiều bộ phận khaacutec nhau trong một nhagrave băng
ABC Một trong những bộ phận đatilde được nhận diện coacute thể lagrave bộ phận
hagravenh chiacutenh Vigrave phạm vi cho quaacute trigravenh vi tiacutenh hoacutea của nhagrave băng hiện
thời chưa bao gồm mảng hagravenh chiacutenh necircn lớp nagravey coacute thể được coi lagrave
một lớp khocircng rotilde ragraveng (vigrave khocircng coacute chức năng rotilde ragraveng trong hệ
thống cần xacircy dựng trước mắt)
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Tương tự những thuộc tiacutenh vagrave phương thức khocircng rotilde ragraveng cần phải
được loại ra khỏi danh saacutech caacutec lớp ứng cử viecircn Chuacuteng khocircng cần
phải bị xoaacute hẳn nhưng cần được đưa ra ngoagravei để ta coacute thể nhigraven rotilde
caacutec lớp cần thiết đatilde được nhận diện Caacutec ứng xử đoacute sau nagravey coacute thể
được gaacuten cho caacutec lớp thiacutech hợp hơn
Caacutec lớp chỉ lagrave vai trograve (Role) đối với một lớp khaacutec Hatildey loại bỏ tất cả
caacutec vai trograve vagrave giữ lại lớp chiacutenh Viacute dụ nhagrave quản trị nhacircn viecircn thu
ngacircn người chạy giấy rất coacute thể chỉ lagrave vai trograve của lớp nhacircn viecircn
Hatildey giữ lại lớp nhacircn viecircn vagrave loại bỏ tất cả những lớp khaacutec chỉ lagrave vai
trograve
Một lớp khocircng cung cấp ứng xử cần thiết hoặc thuộc tiacutenh cần thiết
coacute thể sẽ lagrave lớp khocircng cần thiết Nhiều khi coacute thể coacute một lớp chẳng
cung cấp một thuộc tiacutenh hoặc ứng xử nagraveo magrave chỉ định nghĩa một tập
hợp caacutec mối quan hệ Những lớp như thế cần phải được nghiecircn cứu
kỹ để xaacutec định sự liecircn quan với hệ thống Viacute dụ một khaacutech hagraveng coacute
thể được định nghĩa lagrave khaacutech hagraveng quan trọng hay khaacutech hagraveng bigravenh
thường tugravey theo mối quan hệ magrave anh ta coacute với nhagrave băng trong tư
caacutech chủ nhacircn tagravei khoản
Tất cả những cocircng cụ xacircy dựng (Implementation constructs) viacute dụ
như stack arrays link lists hellip cần phải được đưa ra khỏi mocirc higravenh
phacircn tiacutech Chuacuteng sẽ được dugraveng tới trong giai đoạn xacircy dựng phần
mềm
Một lớp coacute tecircn mang tiacutenh động từ coacute thể đơn giản chỉ lagrave một hagravem
chứ khocircng phải lagrave một lớp Viacute dụ ruacutet tiền khocircng cần phải được coi
lagrave một lớp noacute coacute thể lagrave chức năng của một lớp
Lớp chỉ coacute một hagravem hoặc chỉ lagrave sự miecircu tả việc thực hiện một chức
năng nagraveo đoacute coacute thể đơn giản chỉ lagrave một hagravem hoặc quaacute trigravenh trừu
tượng hoacutea dữ liệu (data abstraction) ở đacircy chưa được thực hiện đầy
đủ
Lớp khocircng coacute hagravem lagrave một thiếu soacutet trong mocirc higravenh Vấn đề hagravem
thagravenh phần (phương thức) của lớp nagravey chưa được suy nghĩ thấu đaacuteo
3- Lớp vagrave đối tƣợng trong UML
UML thể hiện lớp bằng higravenh chữ nhật coacute 3 phần Phần thứ nhất chứa tecircn lớp
Trong phần thứ hai lagrave thuộc tiacutenh vagrave caacutec dữ liệu thagravenh phần của lớp vagrave trong phần
thứ ba lagrave caacutec phương thức hay hagravem thagravenh phần của lớp
31- Tecircn lớp (lass name)
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Tecircn lớp được in đậm (bold) vagrave căn giữa Tecircn lớp phải được dẫn xuất từ phạm vi
vấn đề vagrave rotilde ragraveng như coacute thể Vigrave thế noacute lagrave danh từ viacute dụ như tagravei khoản nhacircn
viecircn
32- Thuộc tiacutenh (attribute)
Lớp coacute thuộc tiacutenh miecircu tả những đặc điểm của đối tượng Giaacute trị của thuộc tiacutenh
thường lagrave những dạng dữ liệu đơn giản được đa phần caacutec ngocircn ngữ lập trigravenh hỗ
trợ như Integer Boolean Floats Char hellip
Thuộc tiacutenh coacute thể coacute nhiều mức độ trocircng thấy được (visibility) khaacutec nhau miecircu
tả liệu thuộc tiacutenh đoacute coacute thể được truy xuất từ caacutec lớp khaacutec khaacutec với lớp định
nghĩa ra noacute Nếu thuộc tiacutenh coacute tiacutenh trocircng thấy lagrave cocircng cộng (public) thigrave noacute coacute thể
được nhigraven thấy vagrave sử dụng ngoagravei lớp đoacute Nếu thuộc tiacutenh coacute tiacutenh trocircng thấy lagrave
riecircng (private) bạn sẽ khocircng thể truy cập noacute từ becircn ngoagravei lớp đoacute Một tiacutenh trocircng
thấy khaacutec lagrave bảo vệ (protected) được sử dụng chung với cocircng cụ khaacutei quaacutet hoacutea
vagrave chuyecircn biệt hoacutea Noacute cũng giống như caacutec thuộc tiacutenh riecircng nhưng được thừz kế
bởi caacutec lớp dẫn xuất
Trong UML thuộc tiacutenh cocircng cộng mang kiacute hiệu + vagrave thuộc tiacutenh riecircng mang dấu
-
Giaacute trị được gaacuten cho thuộc tiacutenh coacute thể lagrave một caacutech để miecircu tả trạng thaacutei của đối
tượng Mỗi lần caacutec giaacute trị nagravey thay đổi lagrave biểu hiện cho thấy coacute thể đatilde xảy ra một
sự thay đổi trong trạng thaacutei của đối tượng
Lưu yacute Mọi đặc điểm của một thực thể lagrave những thocircng tin cần lưu trữ đều coacute thể
chuyển thagravenh thuộc tiacutenh của lớp miecircu tả loại thực thể đoacute
33- Phƣơng thức (methods)
Phương thức định nghĩa caacutec hoạt động magrave lớp coacute thể thực hiện Tất cả caacutec đối
tượng được tạo từ một lớp sẽ coacute chung thuộc tiacutenh vagrave phương thức Phương thức
được sử dụng để xử lyacute thay đổi caacutec thuộc tiacutenh cũng như thực hiện caacutec cocircng việc
khaacutec Phương thức thường được gọi lagrave caacutec hagravem (function) nhưng chuacuteng nằm
trong một lớp vagrave chỉ coacute thể được aacutep dụng cho caacutec đối tượng của lớp nagravey Một
phương thức được miecircu tả qua tecircn giaacute trị trả về vagrave danh saacutech của 0 cho tới
nhiều tham số Luacutec thi hagravenh phương thức được gọi kegravem theo một đối tượng của
lớp Vigrave nhoacutem caacutec phương thức miecircu tả những dịch vụ magrave lớp coacute thể cung cấp necircn
chuacuteng được coi lagrave giao diện của lớp nagravey Giống như thuộc tiacutenh phương thức cũng
coacute tiacutenh trocircng thấy được như cocircng cộng riecircng vagrave bảo vệ
34- Kiacute hiệu đối tƣợng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Đối tượng lagrave thực thể của caacutec lớp necircn kiacute hiệu dugraveng cho đối tượng cũng lagrave kiacute hiệu
dugraveng cho lớp
Higravenh trecircn được đọc như sau CAH lagrave đối tượng của lớp AccountHolder Caacutec thuộc
tiacutenh được gaacuten giaacute trị đacircy lagrave caacutec giaacute trị khi lớp được thực thể hoacutea Chuacute yacute rằng kiacute
hiệu đối tượng khocircng chứa phần phương thức
4- Quan hệ giữa caacutec lớp
Biểu đồ lớp thể hiện caacutec lớp vagrave caacutec mối quan hệ giữa chuacuteng Quan hệ giữa caacutec
lớp gồm coacute bốn loại
Liecircn hệ (Association)
Khaacutei quaacutet hoacutea (Generalization)
Phụ thuộc (Dependency)
Nacircng cấp (Refinement)
Một liecircn hệ lagrave một sự nối kết giữa caacutec lớp cũng coacute nghĩa lagrave sự nối kết giữa caacutec
đối tượng của caacutec lớp nagravey Trong UML một liecircn hệ được định nghĩa lagrave một mối
quan hệ miecircu tả một tập hợp caacutec nối kết (links) trong khi nối kết được định
nghĩa lagrave một sự liecircn quan về ngữ nghĩa (semantic connection) giữa một nhoacutem
caacutec đối tượng
Khaacutei quaacutet hoacutea lagrave mối quan hệ giữa một yếu tố mang tiacutenh khaacutei quaacutet cao hơn vagrave
một yếu tố mang tiacutenh chuyecircn biệt hơn Yếu tố mang tiacutenh chuyecircn biệt hơn coacute thể
chứa chỉ caacutec thocircng tin bổ sung Một thực thể (một đối tượng lagrave một thực thể của
một lớp) của yếu tố mang tiacutenh chuyecircn biệt hơn coacute thể được sử dụng ở bất cứ nơi
nagraveo magrave đối tượng mang tiacutenh khaacutei quaacutet hoacutea hơn được pheacutep
Sự phụ thuộc lagrave một mối quan hệ giữa caacutec yếu tố gồm một yếu mang tiacutenh độc
lập vagrave một yếu tố mang tiacutenh phụ thuộc Một sự thay đổi trong yếu tố độc lập sẽ
ảnh hưởng đến yếu tố phụ thuộc
Một sự nacircng cấp lagrave mối quan hệ giữa hai lời miecircu tả của cugraveng một sự vật nhưng
ở những mức độ trừu tượng hoacutea khaacutec nhau
5- Liecircn hệ (Association)
Một liecircn hệ lagrave một sự nối kết giữa caacutec lớp một liecircn quan về ngữ nghĩa giữa caacutec
đối tượng của caacutec lớp tham gia Liecircn hệ thường thường mang tiacutenh hai chiều coacute
nghĩa khi một đối tượng nagravey coacute liecircn hệ với một đối tượng khaacutec thigrave cả hai đối
CuuDuongThanCongcom httpsfbcomtailieudientucntt
tượng nagravey nhận thấy nhau Một mối liecircn hệ biểu thị bằng caacutec đối tượng của hai
lớp coacute nối kết với nhau viacute dụ rằng chuacuteng biết về nhau được nối với nhau cứ
mỗi X lại coacute một Y Lớp vagrave liecircn hệ giữa caacutec lớp lagrave những cocircng cụ rất mạnh mẽ
cho việc mocirc higravenh hoacutea caacutec hệ thống phức tạp viacute dụ như cấu truacutec sản phẩm cấu
truacutec văn bản vagrave tất cả caacutec cấu truacutec thocircng tin khaacutec
Mối liecircn kết được thể hiện trong biểu đồ UML bằng một đường thẳng nối hai lớp
(higravenh 418)
51- Vai trograve trong liecircn hệ
Một liecircn hệ coacute thể coacute caacutec vai trograve (Roles) Caacutec vai trograve được nối với mỗi lớp bao
chứa trong quan hệ Vai trograve của một lớp lagrave chức năng magrave noacute đảm nhận nhigraven từ
goacutec nhigraven của lớp kia Tecircn vai trograve được viết kegravem với một mũi tecircn chỉ từ hướng lớp
chủ nhacircn ra thể hiện lớp nagravey đoacuteng vai trograve như thế nagraveo đối với lớp magrave mũi tecircn chỉ
đến
Trong viacute dụ trecircn một khaacutech hagraveng coacute thể lagrave chủ nhacircn của một tagravei khoản vagrave tagravei
khoản được chiếm giữ bởi khaacutech hagraveng Đường thẳng thể hiện liecircn hệ giữa hai lớp
Một số điểm cần chuacute yacute khi đặt tecircn vai trograve
Tecircn vai trograve coacute thể bỏ đi nếu trugraveng với tecircn lớp
Tecircn vai trograve phải lagrave duy nhất
Tecircn vai trograve phải khaacutec với caacutec thuộc tiacutenh của lớp
Tecircn vai trograve phải miecircu tả được chức năng magrave lớp nagravey đảm
nhận trong quan hệ tức cần phải lagrave caacutec khaacutei niệm lấy ra từ
phạm vi vấn đề giống như tecircn caacutec lớp
52- Liecircn hệ một chiều (Uni-Directional Association)
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Ta cũng coacute thể sử dụng mối liecircn hệ một chiều bằng caacutech thecircm một mũi tecircn vagrave
một đầu của đường thẳng nối kết Mũi tecircn chỉ ra rằng sự nối kết chỉ coacute thể được
sử dụng duy nhất theo chiều của mũi tecircn
Biểu đồ phần 515 thể hiện rằng giữa hai lớp coacute liecircn hệ nhưng khocircng hề coacute
thocircng tin về số lượng caacutec đối tượng trong quan hệ Ta khocircng thể biết một khaacutech
hagraveng coacute thể coacute bao nhiecircu tagravei khoản vagrave một tagravei khoản coacute thể lagrave của chung cho bao
nhiecircu khaacutech hagraveng Trong UML loại thocircng tin như thế được gọi lagrave số lượng phần
tử (Cardinality) trong quan hệ
53- Số lƣợng (Cardinality) trong liecircn hệ
Biểu đồ trecircn noacutei rotilde một khaacutech hagraveng coacute thể mở một hoặc nhiều tagravei khoản vagrave một
tagravei khoản coacute thể thuộc về một cho tới ba khaacutech hagraveng
Số lượng được ghi ở phiacutea đầu đường thẳng thể hiện liecircn hệ saacutet vagraveo lớp lagrave miền
aacutep dụng của noacute Phạm vi của số lượng phần tử trong liecircn hệ coacute thể từ 0-tới-1
(01) 0-tới-nhiều (0 hay ) một-tới-nhiều (1) hai (2) năm-tới-mười một
(511) Cũng coacute thể miecircu tả một datildey số viacute dụ (146 812) Giaacute trị mặc định lagrave
1
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh trecircn lagrave viacute dụ cho một biểu đồ lớp tiecircu biểu Biểu đồ giải thiacutech rằng bộ phận
dịch vụ tagravei khoản tiết kiệm của một nhagrave băng coacute thể coacute nhiều tagravei khoản tiết kiệm
nhưng tất cả những tagravei khoản nagravey đều thuộc về bộ phận đoacute Một tagravei khoản tiết
kiệm về phần noacute lại coacute thể coacute nhiều tagravei liệu nhưng những tagravei liệu nagravey chỉ thuộc
về một tagravei khoản tiết kiệm magrave thocirci Một tagravei khoản tiết kiệm coacute thể thuộc về từ 1
cho tới nhiều nhất lagrave 3 khaacutech hagraveng Mỗi khaacutech hagraveng coacute thể coacute nhiều hơn một tagravei
khoản
54- Phaacutet hiện liecircn hệ
Thường sẽ coacute nhiều mối liecircn hệ giữa caacutec đối tượng trong một hệ thống Quyết
định liecircn hệ nagraveo cần phải được thực thi lagrave cocircng việc thụocircc giai đoạn thiết kế Coacute
thể tigravem caacutec mối liecircn hệ qua việc nghiecircn cứu caacutec lời phaacutet biểu vấn đề caacutec yecircu cầu
Giống như danh từ đatilde giuacutep chuacuteng ta tigravem lớp caacutec động từ ở đacircy sẽ giuacutep ta tigravem ra
caacutec mối quan hệ
Một vagravei lời maacutech bảo khi tigravem liecircn hệ
Vị triacute về mặt vật lyacute hoặc sự thay thế đại diện Mỗi cụm động
từ xaacutec định hay biểu lộ một vị triacute đều lagrave một biểu hiện chắc
chắn cho liecircn hệ Viacute dụ tại địa điểm ngồi trong hellip
Sự bao chứa Cụm động từ biểu lộ sự bao chứa viacute dụ như lagrave
thagravenh phần của
Giao tiếp Coacute nhiều cụm động từ biểu lộ sự giao tiếp viacute dụ
truyền thocircng điệp noacutei chuyện với hellip
Quyền sở hữu Viacute dụ thuộc về của hellip
Thoả matilden một điều kiện Những cụm từ như lagravem việc cho lagrave
chồngvợ của quản trị hellip
55- Xử lyacute caacutec liecircn hệ khocircng cần thiết
Sau khi tigravem caacutec mối liecircn hệ bước tiếp theo đoacute lagrave phacircn biệc caacutec liecircn hệ cần thiết
ra khỏi caacutec liecircn hệ khocircng cần thiết Liecircn hệ khocircng cần thiết coacute thể bao gồm
những liecircn hệ bao chứa caacutec lớp ứng cử viecircn đatilde bị loại trừ hoặc caacutec liecircn hệ khocircng
liecircn quan đến hệ thống Coacute những liecircn hệ được tạo ra nhằm mục điacutech tăng hiệu
quả Những liecircn hệ như thế lagrave viacute dụ tiecircu tiểu của caacutec chi tiết thực thi vagrave khocircng
liecircn quan tới giai đoạn nagravey
Cần chuacute yacute phacircn biệt giữa hagravenh động vagrave mối liecircn hệ Người ta thường coacute xu hướng
miecircu tả hagravenh động như lagrave liecircn hệ bởi cả liecircn hệ lẫn hagravenh động đều được dẫn
xuất từ những cụm từ mang tiacutenh động từ trong bản miecircu tả yecircu cầu Caacutec hagravenh
động đatilde được thể hiện sai thagravenh liecircn hệ cũng cần phải được loại bỏ Khi lagravem việc
nagravey coacute thể aacutep dụng một nguyecircn tắc liecircn hệ lagrave nối kết mang tiacutenh tĩnh giữa caacutec
đối tượng trong khi hagravenh động chỉ lagrave thao taacutec xảy ra một lần Hagravenh động vigrave vậy
CuuDuongThanCongcom httpsfbcomtailieudientucntt
necircn được coi lagrave Phương thức đối với một đối tượng chứ khocircng phải quan hệ giữa
caacutec lớp
Viacute dụ với Ban quản trị nhagrave băng đuổi việc một nhacircn viecircn động từ ―đuổi việc
thể hiện hagravenh động Trong khi đoacute với ―Một nhacircn viecircn lagravem việc cho hatildeng thigrave động
từ ―lagravem việc miecircu tả liecircn hệ giữa hai lớp nhacircn viecircn vagrave hatildeng
Trong khi cố gắng loại bỏ caacutec liecircn hệ dư thừa bạn sẽ thấy coacute một số liecircn hệ dư
thừa đatilde lẻn vagraveo mocirc higravenh của chuacuteng ta trong giai đoạn thiết kế Higravenh sau chỉ ra
một số loại liecircn hệ dư thừa cần đặc biệt chuacute trọng
56- Nacircng cấp caacutec mối liecircn hệ
Một khi caacutec mối liecircn hệ cần thiết đatilde được nhận dạng bước tiếp theo lagrave ngiecircn cứu
kỹ mocirc higravenh vagrave nacircng cấp caacutec mối liecircn hệ đoacute
Động taacutec nacircng cấp đầu tiecircn lagrave xem xeacutet lại tecircn liecircn hệ tecircn vai trograve đặt lại cho
đuacuteng với bản chất quan hệ magrave chuacuteng thể hiện Mỗi liecircn hệ cần phải được suy xeacutet
kỹ về phương diện số lượng thagravenh phần tham gia (Cardinality) Sự hạn định
(Qualification) cho liecircn hệ đoacuteng một vai trograve quan trọng ở đacircy bổ sung yếu tố hạn
định coacute thể giuacutep lagravem giảm số lượng Nếu cần thiết hatildey bổ sung caacutec liecircn hệ cograven
thiếu Nghiecircn cứu kỹ caacutec thuộc tiacutenh xem liệu trong số chuacuteng coacute thuộc tiacutenh nagraveo
thật ra thể hiện liecircn hệ Nếu coacute hatildey chuyển chuacuteng thagravenh liecircn hệ Bổ sung caacutec
thocircng tin vagrave điều kiện cần thiết cũng như xem xeacutet caacutec mối liecircn hệ trong mocirc higravenh
tổng thể để xaacutec định caacutec dạng quan hệ giữa chuacuteng với nhau
561- Liecircn hệ vagrave yếu tố hạn định (Qualifier)
Một liecircn hệ được hạn định liecircn hệ hai lớp vagrave một yếu tố hạn định (Qualifier) với
nhau Yếu tố hạn định lagrave một thuộc tiacutenh hạn chế số lượng thagravenh phần tham gia
trong một mối liecircn hệ Coacute thể hạn định caacutec mối liecircn hệ một-tới nhiều vagrave nhiều-
tới-nhiều Yếu tố hạn định giuacutep phacircn biệt trong nhoacutem đối tượng của đầu nhiều
của liecircn hệ
Viacute dụ một thự mục coacute nhiều tập tinMột tập tin chỉ thuộc về một thư mục magrave thocirci
Trong một thư mục xaacutec định tecircn của tập tin sẽ xaacutec định duy nhất tập tin mang
tecircn đoacute Thư mục vagrave Tập tin lagrave hai lớp vagrave tecircn tậptin ở đacircy đoacuteng vai trograve yếu tố hạn
định Một thư mục vagrave một tecircn tập tin xaacutec định một tập tin Yếu tố hạn định ở đacircy
đatilde chuyển một mối liecircn hệ một-tới-nhiều thagravenh liecircn hệ một-tới-một
CuuDuongThanCongcom httpsfbcomtailieudientucntt
562- Liecircn hệ VAgrave (AND Association)
Nhagrave băng nọ đưa ra quy định khaacutech hagraveng khi muốn mở một tagravei khoản ATM phải
lagrave chủ nhacircn của iacutet nhất một tagravei khoản đầu tư Trong một trường hợp như thế
mối liecircn hệ VAgrave (AND) sẽ được thể hiện như sau
Biểu đồ trecircn cho thấy một khaacutech hagraveng coacute thể coacute nhiều hơn một tagravei khoản đầu tư
coacute thời hạn vagrave chỉ một tagravei khoản ATM Trong biểu đồ coacute một mối liecircn hệ VAgrave ngầm
được aacutep dụng giữa nhoacutem tagravei khoản đầu tư vagrave tagravei khoản ATM magrave một khaacutech hagraveng
coacute thể coacute
563- Liecircn hệ HOẶC (OR Association)
Viacute dụ tại một hatildeng bảo hiểm nọ caacute nhacircn cũng cocircng ty đều coacute thể kyacute hợp đồng
bảo hiểm nhưng caacute nhacircn vagrave cocircng ty khocircng được pheacutep coacute cugraveng loại hợp đồng bảo
hiểm như nhau Trong một trường hợp như thế giải phaacutep lagrave sử dụng liecircn hệ
HOẶC (OR Association) Một liecircn hệ HOẶC lagrave một sự hạn chế đối với một nhoacutem
hai hay nhiều liecircn hệ xaacutec định rằng đối tượng của một lớp nagravey tại một thời điểm
chỉ coacute thể tham gia vagraveo nhiều nhất một trong caacutec mối liecircn hệ đoacute
564- Liecircn hệ đƣợc sắp xếp (Ordered Association)
Caacutec mối nối kết (link) giữa caacutec đối tượng coacute một trật tự ngầm định Giaacute trị mặc
định của trật tự nagravey lagrave ngẫu nhiecircn Một liecircn hệ coacute trật tự rotilde ragraveng coacute thể được
hiểu lagrave một liecircn hệ với trật tự sắp xếp (sort order) trong nhoacutem caacutec nối kết noacute
sẽ được thể hiện như sau
Nhatilden ordered được ghi gần lớp coacute đối tượng được sắp xếp Biểu đồ trecircn được
đọc lagrave caacutec tagravei khoản tiết kiệm được sắp xếp theo khaacutech hagraveng
565- Liecircn hệ tam nguyecircn (Ternary Association)
Coacute thể coacute nhiều hơn hai lớp nối kết với nhau trong một liecircn hệ tam nguyecircn
Biểu đồ trecircn được đọc như sau Một khaacutech hagraveng coacute thể quan hệ với bộ phận đầu
tư vagrave một bộ phận đầu tư coacute thể coacute một hoặc nhiều khaacutech hagraveng Một giấy chứng
nhận tagravei khoản đầu tư sẽ xuất hiện qua quan hệ giữa khaacutech hagraveng vagrave bộ phận đầu
tư
566- Lớp liecircn hệ (Association Class)
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Một lớp coacute thể được điacutenh kegravem theo một liecircn hệ trong trường hợp nagravey noacute sẽ được
gọi lagrave một lớp liecircn hệ Một lớp liecircn hệ khocircng được nối tới bất kỳ một lớp nagraveo của
mối liecircn hệ magrave tới chiacutenh bản thacircn mối liecircn hệ Cũng giống như một lớp bigravenh
thường lớp liecircn hệ coacute thể coacute thuộc tiacutenh Phương thức vagrave caacutec quan hệ khaacutec Lớp
liecircn hệ được sử dụng để bổ sung thecircm thocircng tin cho nối kết (link) viacute dụ như thời
điểm nối kết được thiết lập Mỗi nối kết của liecircn hệ gắn liền với một đối tượng
của lớp liecircn hệ
Viacute dụ sau miecircu tả một hệ thống thang maacutey Bộ phận điều khiển chỉ huy bốn
thang maacutey Cho mỗi nối kết giữa nhoacutem thang maacutey vagrave bộ phận điều khiển coacute một
hagraveng xếp (queue) Mỗi hagraveng lưu trữ những yều cầu kể cả từ phiacutea bộ phận điều
khiển lẫn từ phiacutea thang maacutey (những nuacutet bấm becircn trong thang) Khi bộ phận điều
khiển chọn một thang maacutey để thực hiện một lời yecircu cầu đến từ một hagravenh khaacutech
đứng ngoagravei thang maacutey (một hagravenh khaacutech trecircn hagravenh lang) noacute sẽ đọc caacutec hagraveng vagrave
chọn thang maacutey nagraveo coacute hagraveng yecircu cầu ngắn nhất
567- Liecircn hệ đệ quy (Recursive Association)
Coacute thể liecircn kết một lớp với bản thacircn noacute trong một mối liecircn hệ Mối liecircn hệ ở đacircy
vẫn thể hiện một sự liecircn quan ngữ nghĩa nhưng caacutec đối tượng được nối kết đều
thuộc chung một lớp Một liecircn hệ của một lớp với chiacutenh bản thacircn noacute được gọi lagrave
một liecircn hệ đệ quy vagrave lagrave nền tảng cho rất nhiều mocirc higravenh phức tạp sử dụng viacute dụ
để miecircu tả caacutec cấu truacutec sản phẩm Higravenh 525 chỉ ra một viacute dụ của liecircn hệ đệ quy
vagrave higravenh 526 lagrave một biểu đồ đối tượng cho biểu đồ lớp trong higravenh 525
6- Quan hệ kết tập (Aggregation)
61- Khaacutei niệm kết tập
Kết tập lagrave một trường hợp đặc biệt của liecircn hệ Kết tập biểu thị rằng quan hệ
giữa caacutec lớp dựa trecircn nền tảng của nguyecircn tắc một tổng thể được tạo thagravenh bởi
caacutec bộ phận Noacute được sử dụng khi chuacuteng ta muốn tạo necircn một thực thể mới
bằng caacutech tập hợp caacutec thực thể tồn tại với nhau Một viacute dụ tiecircu biểu của kết tập
lagrave chiếc xe ocirc tocirc gồm coacute bốn baacutenh xe một động cơ một khung gầm một hộp số
vv
Quaacute trigravenh gheacutep caacutec bộ phận lại với nhau để tạo necircn thực thể cần thiết được gọi lagrave
sự kết tập Trong quaacute trigravenh tigravem lớp kết tập sẽ được chuacute yacute tới khi gặp caacutec loại
CuuDuongThanCongcom httpsfbcomtailieudientucntt
động từ ―được tạo bởi gồm coacute hellip Quan hệ kết tập khocircng coacute tecircn riecircng Tecircn
ngầm chứa trong noacute lagrave bao gồm caacutec thagravenh phần
62- Kiacute hiệu kết tập
Kiacute hiệu UML cho kết tập lagrave đường thẳng với higravenh thoi (diamond) đặt saacutet lớp biểu
thị sự kết tập (tổng thể)
Một lớp tagravei khoản được tạo bởi caacutec lớp chi tiết về khaacutech hagraveng caacutec lệnh giao dịch
đối với tagravei khoản cũng như caacutec quy định của nhagrave băng
Quan hệ trecircn coacute thể được trigravenh bagravey như sau
Mỗi thagravenh phần tạo necircn kết tập (tổng thể) được gọi lagrave một bộ phận (aggregates)
Mỗi bộ phận về phần noacute lại coacute thể được tạo bởi caacutec bộ phận khaacutec
Trong trường hợp tagravei khoản kể trecircn một trong caacutec bộ phận của noacute lagrave caacutec chi tiết
về khaacutech hagraveng Caacutec chi tiết về khaacutech hagraveng lại bao gồm danh saacutech chủ tagravei khoản
danh saacutech địa chỉ caacutec quy định về kỳ hạn cũng như caacutec chi tiết khaacutec khi mở tagravei
khoản
63- Kết tập vagrave liecircn hệ
Khaacutei niệm kết tập nảy sinh trong tigravenh huống một thực thể bao gồm nhiều thagravenh
phần khaacutec nhau Liecircn hệ giữa caacutec lớp mặt khaacutec lagrave mối quan hệ giữa caacutec thực thể
Quan saacutet higravenh sau
Một tagravei khoản được tạo bởi caacutec chi tiết về khaacutech hagraveng caacutec lệnh giao dịch đối với
tagravei khoản cũng như caacutec quy định của nhagrave băng Khaacutech hagraveng khocircng phải lagrave lagrave bộ
phận của tagravei khoản nhưng coacute quan hệ với tagravei khoản
Nhigraven chung nếu caacutec lớp được nối kết với nhau một caacutech chặt chẽ qua quan hệ
toagraven thể ndash bộ phận thigrave người ta coacute thể coi quan hệ lagrave kết tập Khocircng coacute lời
hướng dẫn chắc chắn vagrave rotilde ragraveng cho việc bao giờ necircn dugraveng kết tập vagrave bao giờ
necircn dugraveng liecircn hệ Một lối tiệm cận nhất quaacuten đi kegravem với những kiến thức sacircu sắc
về phạm vi vấn đề sẽ giuacutep nhagrave phacircn tiacutech chọn giải phaacutep đuacuteng đắn
CuuDuongThanCongcom httpsfbcomtailieudientucntt
7- Khaacutei quaacutet hoacutea vagrave chuyecircn biệt hoacutea (Generalization amp Specialization)
Hatildey quan saacutet cấu truacutec lớp trong biểu đồ sau
Trong higravenh trecircn tagravei khoản lagrave khaacutei niệm chung của caacutec loại tagravei khoản khaacutec nhau
vagrave chứa những đặc tả cần thiết cho tất cả caacutec loại tagravei khoản Viacute dụ như noacute coacute thể
chứa số tagravei khoản vagrave tecircn chủ tagravei khoản Ta coacute thể coacute hai loại tagravei khoản đặc biệt
suy ra từ dạng tagravei khoản chung nagravey một loại mang tiacutenh kỳ hạn vagrave một loại mang
tiacutenh giao dịch Yếu tố chia caacutech hai lớp nagravey với nhau lagrave caacutec quy định chuyecircn
ngagravenh hay đuacuteng hơn lagrave phương thức hoạt động của hai loại tagravei khoản
Tương tự như vậy tagravei khoản đầu tư trung hạn vagrave dagravei hạn lại lagrave những khaacutei niệm
chuyecircn biệt của khaacutei niệm tagravei khoản coacute kỳ hạn Mặt khaacutec tagravei khoản bigravenh thường
vagrave tagravei khoản tiết kiệm lagrave những trường hợp đặc biệt của loại tagravei khoản giao dịch
Loại cấu truacutec lớp như thế được gọi lagrave một cấu truacutec higravenh cacircy hoặc cấu truacutec phacircn
cấp Khi chuacuteng ta dịch chuyển từ điểm xuất phaacutet của cacircy xuống dưới chuacuteng ta
sẽ gặp caacutec khaacutei niệm cagraveng ngagravey cagraveng được chuyecircn biệt hoacutea nhiều hơn Theo con
đường đi từ tagravei khoản đến tagravei khoản tiết kiệm ta sẽ phải đi qua lớp tagravei khoản
giao dịch Lớp nagravey tiếp tục phacircn loại caacutec lớp chuyecircn biệt hoacutea cao hơn tugravey thuộc
vagraveo chức năng của chuacuteng
71- Kiacute hiệu khaacutei quaacutet hoacutea vagrave chuyecircn biệt hoacutea
Trong biểu đồ trecircn caacutec lớp trong một cấu truacutec cacircy được nối với nhau bằng một
mũi tecircn rỗng chỉ từ lớp chuyecircn biệt hơn tới lớp khaacutei quaacutet hơn
Quaacute trigravenh bắt đầu với một lớp khaacutei quaacutet để sản xuất ra caacutec lớp mang tiacutenh chuyecircn
biệt cao hơn được gọi lagrave quaacute trigravenh chuyecircn biệt hoaacute (Specialization)
Chuyecircn biệt hoacutea lagrave quaacute trigravenh tinh chế một lớp thagravenh những lớp chuyecircn biệt
hơn Chuyecircn biệt hoacutea bổ sung thecircm chi tiết vagrave đặc tả cho lớp kết quả Lớp mang
tiacutenh khaacutei quaacutet được gọi lagrave lớp cha (superclass) kết quả chuyecircn biệt hoacutea lagrave việc
tạo ra caacutec lớp con (Subclass)
Mặt khaacutec nếu chuacuteng ta đi dọc cấu truacutec cacircy từ dưới lecircn ta sẽ gặp caacutec lớp ngagravey
cagraveng mang tiacutenh khaacutei quaacutet cao hơn - Viacute dụ từ lớp tagravei khoản tiết kiệm lecircn tới lớp tagravei
khoản Con đường bắt đầu từ một lớp chuyecircn biệt vagrave khiến noacute ngagravey cagraveng mang
CuuDuongThanCongcom httpsfbcomtailieudientucntt
tiacutenh khaacutei quaacutet cao hơn được gọi lagrave quaacute trigravenh khaacutei quaacutet hoacutea (Generalization)
Lớp chuyecircn biệt ở đacircy được gọi lagrave lớp con trong viacute dụ trecircn lagrave tagravei khoản tiết kiệm
trong khi lớp khaacutei quaacutet kết quả được gọi lagrave lớp cha
Chuyecircn biệt hoacutea vagrave khaacutei quaacutet hoacutea lagrave hai con đường khaacutec nhau để xem xeacutet cugraveng
một mối quan hệ
Một lớp lagrave lớp con của một lớp nagravey coacute thể đoacuteng vagravei trograve lagrave một lớp cha của lớp
khaacutec
72- Yếu tố phacircn biệt (Discriminatior)
Để tạo một cấu truacutec phacircn cấp cần phải coacute một số thuộc tiacutenh lagravem nền tảng cho
quaacute trigravenh chuyecircn biệt hoacutea Thuộc tiacutenh đoacute được gọi lagrave yếu tố phacircn biệt
(Discriminator)
Với mỗi giaacute trị coacute thể gaacuten cho yếu tố phacircn biệt trong lớp cha ta sẽ coacute một lớp
con tương ứng
Trong higravenh trecircn yếu tố phacircn biệt trong lớp tagravei khoản lagrave loại tagravei khoản Chuacuteng
ta giả thiết rằng chỉ coacute hai loại tagravei khoản một mang tiacutenh kỳ hạn vagrave một mang
tiacutenh giao dịch Theo đoacute ta phải tạo ra hai lớp con một cho caacutec tagravei khoản mang
tiacutenh kỳ hạn vagrave một cho caacutec tagravei khoản mang tiacutenh giao dịch
Trong mocirc higravenh đối tượng khocircng nhất thiết phải necircu bật yếu tố phacircn biệt Yếu tố
phacircn biệt luocircn coacute mặt trong một cấu truacutec phacircn cấp lớp cha con dugrave coacute được
nhấn mạnh trong mocirc higravenh đối tượng hay khocircng Mặc dầu vậy để đảm bảo cho
một mocirc higravenh được định nghĩa rotilde ragraveng trigravenh bagravey yếu tố phacircn biệt vẫn luocircn lagrave
cocircng việc necircn thực hiện
721- Lớp trừu tƣợng
Quan saacutet cấu truacutec trong higravenh trecircn ta thấy lớp tagravei khoản sẽ khocircng bao giờ được
thực thể hoacutea coacute nghĩa lagrave hệ thống sẽ khocircng bao giờ tạo ra caacutec đối tượng thuộc
lớp nagravey Nguyecircn nhacircn lagrave vigrave lớp tagravei khoản mang tiacutenh khaacutei quaacutet cao đến mức độ
việc khởi tạo lớp nagravey sẽ khocircng coacute một yacute nghĩa nagraveo đaacuteng kể Lớp tagravei khoản mặc
dugrave vậy vẫn đoacuteng một vai trograve quan trọng trong việc khaacutei quaacutet hoacutea caacutec thuộc tiacutenh
sẽ được cần đến trong caacutec lớp dẫn xuất từ noacute Những loại lớp như thế được dugraveng
để cung cấp một cacircy cấu truacutec lớp vagrave khocircng coacute sự tồn tại đầy đủ yacute nghĩa trong
một mocirc higravenh thật sự ngoagravei đời chuacuteng được gọi lagrave lớp trừu trƣợng (abstract
class)
722- Tạo lớp trừu tƣợng
Caacutec lớp trừu trượng lagrave kết quả của quaacute trigravenh khaacutei quaacutet hoacutea Hatildey quan saacutet viacute dụ
cấu truacutec lớp sau đacircy Lớp tagravei khoản đứng đầu cacircy cấu truacutec vagrave được gọi lagrave lớp căn
CuuDuongThanCongcom httpsfbcomtailieudientucntt
bản Lớp căn bản của một cacircy cấu truacutec chứa những thuộc tiacutenh đatilde được khaacutei quaacutet
hoacutea vagrave coacute thể được aacutep dụng cho mọi lớp dẫn xuất từ noacute Trong quaacute trigravenh khaacutei
quaacutet hoacutea caacutec thuộc tiacutenh được dugraveng chung trong caacutec lớp chuyecircn biệt được đưa lecircn
lớp cha Lớp cha về cuối được tạo bởi caacutec thuộc tiacutenh chung của tất cả caacutec lớp dẫn
xuất từ noacute Những lớp cha dạng như vậy trong rất nhiều trường hợp sẽ mang tiacutenh
khaacutei quaacutet tuyệt đối vagrave sẽ khocircng theo đuổi mục điacutech khởi tạo chuacuteng coacute lối ứng xử
giống như một thugraveng chứa (container) cho tất cả caacutec thuộc tiacutenh chung của caacutec
lớp dẫn xuất Những lớp như thế trong trường hợp chung thường lagrave kết quả aacutenh
xạ của những danh từ trừu tượng lagrave hệ quả của phương phaacutep sử dụng caacutec danh
từ để nhận diện lớp
Biểu đồ trecircn cho ta một viacute dụ về khaacutei quaacutet hoacutea vagrave caacutec thuộc tiacutenh chung noacute chỉ ra
nhiều lớp chuyecircn biệt Chuacute yacute rằng cứ theo mỗi mức chuyecircn biệt hoacutea lại coacute thecircm
caacutec thuộc tiacutenh được bổ sung thecircm cho caacutec lớp khiến chuacuteng mang tiacutenh chuyecircn
biệt cao hơn so với caacutec lớp cha ở mức trừu tượng becircn trecircn Viacute dụ lớp tagravei khoản coacute
thuộc tiacutenh lagrave số tagravei khoản vagrave tecircn khaacutech hagraveng Đacircy lagrave những thuộc tiacutenh hết sức
chung chung Tất cả caacutec lớp dẫn xuất từ noacute dugrave lagrave trực tiếp hay giaacuten tiếp (ở caacutec
mức độ trừu tượng thấp hơn nữa) đều coacute quyền sử dụng caacutec thuộc tiacutenh đoacute của
lớp tagravei khoản Caacutec lớp tagravei khoản coacute kỳ hạn vagrave tagravei khoản giao dịch lagrave hai lớp
chuyecircn biệt dẫn xuất từ lớp tagravei khoản Chuacuteng coacute những thuộc tiacutenh chuyecircn biệt
riecircng của chuacuteng - viacute dụ mức thời gian (duration) đối với lớp tagravei khoản coacute kỳ hạn
vagrave mức tiền tối thiểu đối với lớp tagravei khoản giao dịch ndash becircn cạnh hai thuộc tiacutenh số
tagravei khoản vagrave tecircn khaacutech hagraveng magrave chuacuteng thừa kế từ lớp tagravei khoản Cũng tương tự
như thế với tagravei khoản đầu tư ngắn hạn vagrave tagravei khoản đầu tư trung hạn lagrave caacutec loại
lớp thuộc tagravei khoản coacute kỳ hạn tagravei khoản tiết kiệm vagrave tagravei khoản bigravenh thường lagrave
caacutec loại lớp thuộc lớp tagravei khoản giao dịch
723- Lớp cụ thể (concrete class)
Lớp cụ thể lagrave những lớp coacute thể thực thể hoacutea Như đatilde noacutei từ trước caacutec lớp cụ thể
khi thực thể hoacutea được gọi lagrave caacutec đối tượng Trong viacute dụ trecircn caacutec lớp tagravei khoản
đầu tư ngắn hạn vagrave tagravei khoản đầu tư dagravei hạn coacute thể được thực thể hoacutea thagravenh đối
tượng Tương tự đối với tagravei khoản tiết kiệm vagrave tagravei khoản bigravenh thường
724- Tổng kết về phaacutet triển cacircy cấu truacutec
Cơ chế dugraveng chung thuộc tiacutenh vagrave thủ tục sử dụng nguyecircn tắc khaacutei quaacutet hoacutea được
gọi lagrave tiacutenh thừa kế (inheritance) Sử dụng tiacutenh thừa kế để tinh chế (refine) caacutec
lớp sẽ dẫn tới việc phaacutet triển một cacircy cấu truacutec Necircn phaacutet hiện những ứng xử
(behaviour) chung trong một loạt lớp rồi thể hiện noacute thagravenh một lớp cha Sự khaacutec
biệt trong ứng xử của cugraveng một lớp sẽ dẫn tới việc tạo ra caacutec lớp con
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Khi phaacutet triển cacircy cấu truacutec hatildey quan saacutet ứng xử của caacutec lớp Trong trường hợp
coacute một liecircn hệ tồn tại từ một lớp cụ thể đến tất cả caacutec lớp con của một lớp cha
necircn dịch chuyển liecircn hệ nagravey lecircn lớp cha
Nếu tồn tại một liecircn hệ giữa một lớp nagraveo đoacute vagrave một lớp cha hatildey chuyecircn biệt hoacutea
vagrave nacircng cao cấu truacutec để xaacutec định xem liệu liecircn hệ nagravey coacute được aacutep dụng cho tất cả
caacutec lớp con của lớp cha nọ hay khocircng Nếu coacute thigrave gaacuten noacute vagraveo lớp cha nếu khocircng
thigrave dịch xuống cho những lớp con phugrave hợp
Trong khi tiến hagravenh khaacutei quaacutet hoacutea trọng tacircm cocircng việc lagrave xaacutec định caacutec ứng xử
chung trong một nhoacutem nhiều lớp chuyecircn biệt bậc trung Khi đatilde xacircy dựng được
một thủ tục hoặc một thuộc tiacutenh chung necircn kiểm tra lại xem chuacuteng coacute thật sự lagrave
yếu tố chung của tất cả caacutec lớp chuyecircn biệt trong phạm vi nagravey Khaacutei quaacutet hoacutea
được aacutep dụng chỉ khi chuacuteng ta coacute một tập hợp caacutec lớp định nghĩa một loại đối
tượng riecircng biệt vagrave coacute một số lượng lớn caacutec ứng xử chung Trọng tacircm ở đacircy lagrave
tạo necircn lớp cha chứa caacutec ứng xử chung đoacute
Khi chuyecircn biệt hoacutea ta đi tigravem caacutec sự khaacutec biệt trong ứng xử để tạo caacutec lớp con
thiacutech ứng Coacute nghĩa lagrave ta xem xeacutet một lớp tồn tại kiểm tra xem coacute phải tất cả
caacutec ứng xử của noacute đều coacute khả năng aacutep dụng cho mọi đối tượng Nếu khocircng ta
lọc ra ứng xử khocircng phải luacutec nagraveo cũng cần thiết vagrave chia trường hợp noacute ra thagravenh
caacutec lớp con Trọng tacircm của chuyecircn biệt hoacutea lagrave tạo caacutec lớp con
Với cơ chế thừa kế một lớp con sẽ kế thừa mọi thuộc tiacutenh agrave thủ tục của tất cả
caacutec lớp cha của noacute
Higravenh sau lagravem rotilde việc tạo cấu truacutec lớp sử dụng tiacutenh khaacutei quaacutet
Thường xảy ra trường hợp tất cả caacutec lớp con cugraveng tham gia vagraveo một liecircn hệ hoặc
kết tập Trong trường hợp nagravey necircn tạo lớp cha định nghĩa liecircn hệ kết tập đoacute
Higravenh sau giải thiacutech thecircm điểm nagravey
8- Quan hệ phụ thuộc vagrave nacircng cấp (Dependency amp Refinement)
Becircn cạnh liecircn hệ vagrave khaacutei quaacutet hoacutea UML cograven định nghĩa hai loại quan hệ khaacutec
Quan hệ phụ thuộc (Dependency) lagrave một sự liecircn quan ngữ nghĩa giữa hai
phần tử mocirc higravenh một mang tiacutenh độc lập vagrave một mang tiacutenh phụ thuộc Mọi sự
thay đổi trong phần tử độc lập sẽ ảnh hưởng đến phần tử phụ thuộc Phần tử mocirc
higravenh ở đacircy coacute thể lagrave một lớp một goacutei (package) một trường hợp sử dụngvv
Coacute thể necircu một vagravei ciacute dụ cho sự phụ thuộc như một lớp lấy tham số lagrave đối tượng
của một lớp khaacutec một lớp truy nhập một đối tượng toagraven cục của một lớp khaacutec
một lớp gọi một thủ tục thuộc thuộc một lớp khaacutec Trong tất cả caacutec trường hợp
CuuDuongThanCongcom httpsfbcomtailieudientucntt
trecircn đều coacute một sự phụ thuộc của một lớp nagravey vagraveo một lớp kia mặc dugrave chuacuteng
khocircng coacute liecircn hệ rotilde ragraveng với nhau
Quan hệ phụ thuộc được thể hiện bằng đường thẳng gạch rời (dashed line) với
mũi tecircn (vagrave coacute thể thecircm một nhatilden) giữa caacutec phần tử mocirc higravenh Nếu sử dụng nhatilden
thigrave noacute sẽ lagrave một khuocircn mẫu (stereotype) xaacutec định loại phụ thuộc Higravenh sau chỉ ra
một sự phụ thuộc dạng friend coacute nghĩa rằng một phần tử mocirc higravenh nhận được
quyền truy cập đặc biệt tới cấu truacutec nội bộ của phần tử thứ hai (thậm chiacute tới cả
những phần mang tiacutenh nhigraven thấy lagrave private)
Nacircng cấp (Refinement) lagrave một quan hệ giữa hai lời miecircu tả của cugraveng một sự
vật nhưng ở những mức độ trừu tượng hoacutea khaacutec nhau Nacircng cấp coacute thể lagrave mối
quan hệ giữa một loại đối tượng vagrave lớp thực hiện noacute Caacutec nacircng cấp thường gặp
khaacutec lagrave quan hệ giữa một lớp phacircn tiacutech (trong mocirc higravenh phacircn tiacutech) vagrave một lớp
thiết kế (trong mocirc higravenh thiết kế) đều mocirc higravenh hoacutea cugraveng một thứ quan hệ giữa
một lời miecircu tả coacute mức trừu tượng hoacutea cao vagrave một lời miecircu tả coacute mức trừu tượng
hoacutea thấp (viacute dụ một bức tranh khaacutei quaacutet của một sự cộng taacutec động vagrave một biểu
đồ chi tiết của cũng cộng taacutec đoacute) Quan hệ nacircng cấp cograven được sử dụng để mocirc
higravenh hoacutea nhiều mức thực thi của cugraveng một thứ (một thực thi đơn giản vagrave một
thực thi phức tạp hơn hiệu quả hơn)
Quan hệ nacircng cấp được thể hiện bằng đường thẳng gạch rời (dashed line) với
mũi tecircn rỗng
Quan hệ nacircng cấp được sử dụng trong việc phối hợp mocirc higravenh Trong caacutec dự aacuten
lớn mọi mocirc higravenh đều cần phải được phối hợp với nhau Phối hợp mocirc higravenh được
sử dụng nhằm mục điacutech
Chỉ ra mối liecircn quan giữa caacutec mocirc higravenh ở nhiều mức độ trừu tượng khaacutec
nhau
Chỉ ra mối liecircn quan giữa caacutec mocirc higravenh ở nhiều giai đoạn khaacutec nhau (phacircn
tiacutech yecircu cầu phacircn tiacutech thiết kế thực thi)
Hỗ trợ việc quản trị cấu higravenh
Hỗ trợ việc theo dotildei trong mocirc higravenh
9- Nacircng cấp mocirc higravenh qua caacutec vograveng lặp kế tiếp
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Cho tới thời điểm nagravey chuacuteng ta đi qua caacutec bước cocircng việc phacircn tiacutech căn bản vagrave
tạo necircn phiecircn bản đầu tiecircn của mocirc higravenh đối tượng Mocirc higravenh nagravey cần phải được
lấy lagravem mục tiecircu cho caacutec vograveng lặp nacircng cấp tiếp theo
Cocircng việc nacircng cấp coacute thể được thực hiện bằng caacutech đưa mocirc higravenh qua tất cả caacutec
giai đoạn phaacutet triển mocirc higravenh đối tượng một lần nữa Lần nagravey những kiến thức
thu được trong vograveng phaacutet triển đầu sẽ tỏ ra rất hữu dụng Khi nacircng cấp mocirc higravenh
cần chuacute yacute đến caacutec bước sau
a) Nghiecircn cứu caacutec lớp để tigravem caacutec thuộc tiacutenh vagrave thủ tục khocircng đồng dạng
(dissimilar) Nếu coacute xẻ lớp thagravenh caacutec thagravenh phần để tạo tiacutenh đồng nhất
(harmony) trong lớp Viacute dụ với một lớp đảm nhận hai vai trograve khaacutec nhau hatildey xẻ
lớp thagravenh caacutec lớp kết quả với những thủ tục được xaacutec định rotilde ragraveng
b) Nếu phaacutet hiện thấy một chức năng khocircng hướng tới một lớp điacutech nagraveo thigrave đoacute lagrave
triệu chứng thiếu lớp Hatildey bổ sung lớp thiếu vagrave đưa thủ tục kể trecircn vagraveo lớp đoacute
c) Khaacutei quaacutet hoacutea lagrave cograven chưa đủ độ nếu coacute caacutec liecircn hệ trugraveng lặp (nhiều liecircn hệ
cugraveng định nghĩa một quan hệ) Trong trường hợp nagravey cần tạo lớp cha để kết hợp
caacutec mối liecircn hệ đoacute
d) Nếu một vai trograve mang một yacute nghĩa đặc biệt quan trọng đối với hệ thống thigrave
thường noacute cần một lớp riecircng Một lựa chọn khaacutec lagrave biến liecircn hệ định nghĩa vai trograve
nagravey thagravenh một lớp liecircn hệ
e) Nếu một lớp thiếu cả thuộc tiacutenh lẫn thủ tục vagrave hoặc liecircn hệ thigrave rất coacute thể đacircy
lagrave một lớp khocircng cần thiết Hatildey loại bỏ những lớp đoacute nếu coacute thể
f) Hatildey ragrave saacutet toagraven bộ hệ thống để tigravem những vai trograve giữa caacutec lớp cograven chưa được
thể hiện Nếu coacute đacircy lagrave triệu chứng thiếu liecircn hệ
g) Nếu coacute một liecircn hệ giữa caacutec đối tượng nhưng lại chẳng được thủ tục nagraveo sử
dụng tới thigrave rất coacute thể đacircy lagrave một liecircn hệ khocircng cần thiết Viacute dụ ta đatilde xaacutec định
một liecircn hệ giữa nhacircn viecircn thu ngacircn vagrave khaacutech hagraveng nhưng lại khocircng coacute thủ tục
nagraveo được định nghĩa giữa hai người Trong trường hợp nagravey rất coacute thể liecircn hệ đoacute
lagrave khocircng cần thiết
Một số maacutech bảo thực tế
Nghiecircn cứu để hiểu thấu đaacuteo vấn đề cần giải quyết
Khi xacircy dựng mocirc higravenh đối tượng khocircng necircn bắt đầu bằng caacutech viết ra caacutec cấu
truacutec lớp caacutec mối liecircn hệ cũng như những mối quan hệ thừa kế lộ rotilde trecircn bề mặt
vagrave đập thẳng vagraveo mắt chuacuteng ta Hatildey dagravenh thời gian nghiecircn cứu kỹ bản chất vấn
đề Mocirc higravenh đối tượng phải được thiết kế để phugrave hợp với giải phaacutep cho vấn đề magrave
chuacuteng ta nhắm tới
Cẩn thận khi chọn tecircn
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Tecircn cần được chọn một caacutech cẩn thận bởi noacute chứng nhận sự tồn tại caacutec thực thể
Tecircn cần phải chiacutenh xaacutec ngắn gọn traacutenh gacircy bagraven catildei Tecircn phải thể hiện tổng thể
đối tượng chứ khocircng chỉ nhắm tới một khiacutea cạnh nagraveo đoacute của đối tượng
Bất cứ nơi nagraveo coacute thể hatildey chọn những tecircn nagraveo bao chứa caacutec danh từ chuyecircn
ngagravenh quen thuộc đối với người sử dụng Những tecircn tạo ra những higravenh xa vời đối
với người sử dụng hoặc caacutec thực thể được đặt tecircn một caacutech tồi tệ rất dễ gacircy ra
nhầm lẫn
Cần giữ cho mocirc higravenh đối tượng được đơn giản
Hatildey khaacuteng cự lại xu hướng tạo ra caacutec mocirc higravenh phức tạp chuacuteng chỉ mang lại sự
nhầm lẫn bối rối Trong vograveng đầu của quy trigravenh mocirc higravenh hoacutea đối tượng hatildey xaacutec
định caacutec mối liecircn hệ căn bản vagrave gạt ra ngoagravei caacutec chi tiết việc xem xeacutet tới caacutec số
lượng thagravenh phần tham gia (Cardinality) trong quan hệ được để dagravenh cho giai
đoạn sau rất coacute thể lagrave ở vograveng thứ hai Tốt nhất lagrave caacutec chi tiết phản aacutenh số lượng
caacutec thagravenh phần tham gian trong quan hệ chỉ được bổ sung thecircm vagraveo trong vograveng
thứ hai hoặc vograveng thứ ba của cocircng việc mocirc higravenh hoacutea đối tượng Thường thường
người ta thấy những phiecircn bản đầu tiecircn của mocirc higravenh thường chỉ chứa caacutec mối
liecircn hệ với số lượng lagrave từ 0-tới-0 0-tới-1 1- tới-1 1-tới-nhiều
Necircn sử dụng caacutec mối liecircn hệ hạn định bất cứ khi nagraveo coacute thể
Traacutenh khaacutei quaacutet hoacutea quaacute nhiều Thường chỉ necircn hạn chế ở ba tầng khaacutei
quaacutet
Hatildey nghiecircn cứu thật kỹ caacutec mối liecircn hệ 1-tới-nhiều Chuacuteng thường coacute thể
được chuyển thagravenh caacutec quan hệ 1-tới-0 hoặc 1-tới-1
Tất cả caacutec mocirc higravenh cần phải được lấy lagravem đối tượng cho việc tiếp tục nacircng
cấp Nếu khocircng thực hiện những vograveng nacircng cấp sau đoacute rất coacute thể mocirc higravenh
của chuacuteng ta sẽ thiếu hoagraven chỉnh
Động taacutec để cho những người khaacutec xem xeacutet lại mocirc higravenh lagrave rất quan trọng
Thường sự liecircn quan quaacute cận kề với mocirc higravenh sẽ khiến chuacuteng ta mugrave logravea
khocircng nhận những ra khiếm khuyết của noacute Một caacutei nhigraven vocirc tư trong
trường hợp nagravey lagrave rất cần thiết
Khocircng necircn mocirc higravenh hoacutea caacutec mối liecircn hệ thagravenh thuộc tiacutenh Nếu điều nagravey
xảy ra ta thường coacute thể nhận thấy qua triệu chứng lagrave mocirc higravenh thiếu liecircn
hệ Thecircm vagraveo đoacute đatilde coacute luacutec ta bỏ qua sự cần thiết của một yếu tố hạn định
Việc viết tagravei liệu cho mocirc higravenh lagrave vocirc cugraveng quan trọng Caacutec tagravei liệu cần phải nắm
bắt thấu đaacuteo những nguyecircn nhacircn nằm đằng sau mocirc higravenh vagrave trigravenh bagravey chuacuteng
chiacutenh xaacutec như coacute thể
10- Chất lƣợng mocirc higravenh
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Lagravem sao để biết được mocirc higravenh lagrave tốt hay chưa tốt Một ngocircn ngữ mocirc higravenh hoacutea coacute
thể cung cấp ngữ phaacutep vagrave ngữ nghĩa cho ta lagravem việc nhưng noacute khocircng cho ta biết
liệu một mocirc higravenh vừa được tạo dựng necircn lagrave tốt hay khocircng Yếu tố nagravey mở ra một
vấn đề quan trọng trong việc xaacutec định chất lượng mocirc higravenh Điều chủ chốt khi
chuacuteng ta thiết kế mocirc higravenh lagrave thứ chuacuteng ta muốn noacutei về hiện thực Mocirc higravenh mang
lại sự diễn giải cho những gigrave magrave chuacuteng ta nghiecircn cứu (hiện thực một viễn
cảnh)
Trong một mocirc higravenh yếu tố quan trọng bật nhất lagrave phải nắm bắt được bản chất
của vấn đề Trong một hệ thống tagravei chiacutenh chuacuteng ta thường mocirc higravenh hoacutea caacutec hoacutea
đơn chứ khocircng phải caacutec moacuten nợ Trong đa phần doanh nghiệp bản thacircn hoacutea đơn
khocircng thật sự coacute tầm quan trọng đến như vậy yếu tố quan trọng ở đacircy lagrave caacutec
moacuten nợ Một hoacutea đơn chỉ lagrave một sự thể hiện của một moacuten nợ nhưng ta cần phải
mocirc higravenh hoacutea lagravem sao để phản aacutenh điều đoacute Một khaacutei niệm khaacutec lagrave một tagravei khoản
ở nhagrave băng Trong những năm 70 vagrave 80 đatilde coacute rất nhiều mocirc higravenh thể hiện tagravei
khoản nhagrave băng Khaacutech hagraveng (chủ nhacircn của tagravei khoản tại nhagrave băng) được coi lagrave
một thagravenh phần của tagravei khoản nagravey (một tagravei khoản nhagrave băng được mocirc higravenh hoacutea
như lagrave một lớp hoặc lagrave một thực thể vagrave một khaacutech hagraveng lagrave một thuộc tiacutenh) Khoacute
khăn đầu tiecircn xảy ra lagrave nhagrave băng khocircng thể xử lyacute tagravei khoản coacute nhiều chủ Vấn đề
thứ hai lagrave nhagrave băng khocircng thể tạo ra caacutec chiến lược maketing nhắm tới những
khaacutech hagraveng khocircng coacute tagravei khoản trong nhagrave băng chỉ bởi vigrave họ khocircng coacute địa chỉ
Vigrave vậy một trong những khiacutea cạnh của chất lượng mocirc higravenh lagrave tiacutenh thiacutech hợp của
mocirc higravenh đoacute Một mocirc higravenh thiacutech hợp phải nắm bắt caacutec khiacutea cạnh quan trọng của
đối tượng nghiecircn cứu Những khiacutea cạnh khaacutec trong việc đaacutenh giaacute chất lượng lagrave
mocirc higravenh phải dễ giao tiếp phải coacute một mục tiecircu cụ thể dễ bảo quản mang tiacutenh
vững bền vagrave coacute khả năng tiacutech hợp Nhiều mocirc higravenh của cugraveng một hệ thống nhưng
coacute caacutec mục điacutech khaacutec nhau (hoặc lagrave hướng nhigraven khaacutec nhau) phải coacute khả năng tiacutech
hợp được với nhau
Dugrave lagrave sử dụng phương phaacutep nagraveo hoặc ngocircn ngữ mocirc higravenh hoacutea nagraveo ta vẫn cograven
phải đối mặt với caacutec vấn đề khaacutec Khi tạo dựng mocirc higravenh chuacuteng ta trở thagravenh một
phần của doanh nghịecircp coacute nghĩa lagrave chuacuteng ta cần phải quan saacutet hiệu ứng sự can
thiệp của chuacuteng ta vagraveo doanh nghiệp Yếu tố quan trọng lagrave cần phải xử lyacute tất cả
caacutec khiacutea cạnh của sự can thiệp đoacute viacute dụ như về chiacutenh saacutech văn hoacutea cấu truacutec xatilde
hội vagrave năng suất Nếu khocircng lagravem được điều nagravey rất coacute thể ta khocircng coacute khả năng
phaacutet hiện vagrave nắm bắt tất cả những đogravei hỏi cần thiết từ phiacutea khaacutech hagraveng (cần chuacute
yacute rằng những phaacutet biểu yecircu cầu được đưa ra khocircng phải bao giờ cũng chiacutenh xaacutec
lagrave những gigrave khaacutech hagraveng thực sự cần) Hatildey đặc biệt chuacute yacute đến caacutec vấn đề với
chiacutenh saacutech nội bộ caacutec mẫu higravenh xatilde hội caacutec cấu truacutec khocircng chiacutenh thức vagrave caacutec thế
lực bao quanh khaacutech hagraveng
101- Thế nagraveo lagrave một mocirc higravenh tốt
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Một mocirc higravenh sẽ lagrave một mocirc higravenh tốt nếu ta coacute khả năng giao tiếp với noacute nếu noacute
phugrave hợp với caacutec mục điacutech của noacute vagrave nếu chuacuteng ta đatilde nắm bắt được những điểm
cốt yếu của vấn đề Một mocirc higravenh tốt đogravei hỏi thời gian xacircy dựng bigravenh thường ra
noacute được tạo bởi một nhoacutem phaacutet triển được thagravenh lập với một mục điacutech cụ thể
Một trong những mục điacutech nagravey coacute thể lagrave huy động toagraven bộ lực lượng để phaacutet hiện
ra caacutec yecircu cầu của một cơ quan Một mục điacutech khaacutec rất coacute thể lagrave mocirc higravenh hoacutea
một đặc tả yecircu cầu thực hiện một giai đoạn phacircn tiacutech hay vẽ một bản thiết kế
kỹ thuật cho một hệ thống thocircng tin Khi caacutec caacute nhacircn khaacutec nhau được tập hợp
thagravenh nhoacutem động taacutec nagravey cần phải được thực hiện tập trung vagraveo mục tiecircu định
trước Caacutec nhoacutem để mocirc higravenh hoacutea một doanh nghịecircp hoặc lagrave một hệ thống thocircng
tin rất coacute thể được tạo bởi khaacutech hagraveng chuyecircn gia mocirc higravenh hoacutea vagrave chuyecircn gia
ứng dụng
102- Ta coacute thể giao tiếp với mocirc higravenh
Tại sao mocirc higravenh lại phải lagrave thứ dễ giao tiếp Tất cả caacutec dự aacuten dugrave lớn hay nhỏ
đều cần phải được giao tiếp Con người ta noacutei chuyện với nhau Họ đọc caacutec tagravei
liệu của nhau vagrave thảo luận caacutec nội dung của chuacuteng Saacuteng kiến khởi thủy nằm
đằng sau bất kỳ một mocirc higravenh nagraveo cũng lagrave để tạo ra khả năng giao tiếp với chuacuteng
Nếu chuacuteng ta tạo ra caacutec mocirc higravenh magrave khocircng ai đọc nổi hiểu nổi thigrave đoacute lagrave việc lagravem
vocirc yacute nghĩa Mocirc higravenh chẳng phải được tạo ra bởi người dẫn đầu một phương phaacutep
hoặc người dẫn đầu một dự aacuten ra lệnh Mocirc higravenh được tạo ra để phục vụ cho việc
giao tiếp vagrave tập hợp caacutec cố gắng của chuacuteng ta để đạt đến năng suất hiệu quả vagrave
chất lượng cao như coacute thể
103- Mocirc higravenh coacute phugrave hợp với mục điacutech của noacute khocircng
Một mocirc higravenh higravenh cần phải coacute một mục điacutech rotilde ragraveng sao cho ai dugraveng noacute cũng
nhận được ra Tất cả caacutec mocirc higravenh đều coacute mục điacutech nhưng thường mục điacutech nagravey
lagrave ngầm ẩn vagrave điều nagravey khiến cho việc sử dụng vagrave hiểu noacute trở necircn khoacute khăn
Caacutec mocirc higravenh phacircn tiacutech vagrave mocirc higravenh thiết kế coacute thể lagrave mocirc higravenh của cugraveng một hệ
thống nhưng chuacuteng vẫn lagrave những mocirc higravenh khaacutec nhau vagrave tập trung vagraveo caacutec chủ
đề khaacutec nhau (hay lagrave chi tiết khaacutec nhau) Cần phải xaacutec định rotilde ragraveng mục điacutech cho
mỗi mocirc higravenh để coacute thể kiểm tra vagrave phecirc duyệt noacute Nếu khocircng coacute mục điacutech rotilde ragraveng
chuacuteng ta viacute dụ rất coacute thể sẽ thẩm tra một mocirc higravenh higravenh phacircn tiacutech như thể noacute lagrave
một mocirc higravenh thiết kế
104- Nắm bắt những điểm trọng yếu
Nhiều mocirc higravenh chỉ bao gồm caacutec tagravei liệu của doanh nghiệp ndash viacute dụ như caacutec hoacutea
đơn những thocircng tin nhận được caacutec hợp đồng bảo hiểm Nếu mocirc higravenh chỉ lagrave sự
bao gồm caacutec tagravei liệu thigrave điều gigrave sẽ xảy ra nếu doanh nghiệp thay đổi Đacircy lagrave một
vấn đề rất quan trọng trong thực tế Chuacuteng ta cần thiết phải nắm bắt bản chất
của doanh nghiệp (tạo necircn phần nhacircn) vagrave mocirc higravenh xoay quanh caacutec khaacutei niệm
CuuDuongThanCongcom httpsfbcomtailieudientucntt
thiết yếu đoacute để coacute khả năng xử lyacute caacutec thay đổi một caacutech thiacutech hợp Hatildey mocirc higravenh
hoacutea phần nhacircn của doanh nghiệp vagrave sau đoacute mới đến một mocirc higravenh diễn giải phần
nhacircn đoacute Một khi phần nhacircn đatilde được mocirc higravenh hoacutea những thay đổi nho nhỏ trong
doanh nghiệp coacute thể được xử lyacute qua việc sửa đổi caacutec lớp diễn giải caacutec loại đối
tượng thuộc phần nhacircn (viacute dụ như caacutec hoacutea đơn lagrave một sự diễn giải của caacutec moacuten
nợ)
105- Phối hợp caacutec mocirc higravenh
Caacutec mocirc higravenh khaacutec nhau của cugraveng một hệ thống phải coacute khả năng được kết hợp
vagrave liecircn quan đến nhau Một trong caacutec khiacutea cạnh của phối hợp mocirc higravenh lagrave sự tiacutech
hợp Tiacutech hợp coacute nghĩa lagrave một nhoacutem caacutec mocirc higravenh cugraveng chung mục điacutech vagrave thể
hiện cugraveng một thứ (mặc dugrave chuacuteng coacute thể coacute nhiều hướng nhigraven khaacutec nhau viacute dụ
như mocirc higravenh động mocirc higravenh chức năng mocirc higravenh tĩnh) thigrave chuacuteng phải coacute khả
năng được raacutep lại với nhau magrave khocircng lagravem nảy sinh macircu thuẫn
Quan hệ giữa caacutec mocirc higravenh ở những mức độ trừu tượng khaacutec nhau lagrave một khiacutea
cạnh quan trọng khaacutec Noacute lagrave một trong những chigravea khoacutea dẫn đến khả năng coacute thể
theo dotildei bước phaacutet triển của caacutec phần tử khaacutec nhau phục vụ cho cocircng nghệ lập
trigravenh Quan hệ giữa caacutec mức độ trừu tượng khaacutec nhau coacute thể được thể hiện bằng
quan hệ nacircng cấp trong UML Điều đoacute coacute nghĩa lagrave caacutec mocirc higravenh sẽ được phối hợp
tại mỗi một mức độ trừu tượng cũng như được phối hợp giữa caacutec mức độ trừu
tượng khaacutec nhau
106- Độ phức tạp của mocirc higravenh
Ngay cả khi caacutec mocirc higravenh của chuacuteng ta dễ dagraveng giao tiếp coacute một mục điacutech rotilde
ragraveng nắm bắt được những điểm trọng yếu trong phạm vi vấn đề vagrave coacute thể được
phối hợp với nhau ta vẫn coacute thể gặp khoacute khăn nếu mocirc higravenh quaacute phức tạp Những
mocirc higravenh cực kỳ phức tạp sẽ khoacute nghiecircn cứu khoacute thẩm tra khoacute phecirc duyệt vagrave khoacute
bảo trigrave Saacuteng kiến tốt lagrave hatildey bắt đầu với một mocirc higravenh đơn giản vagrave sau đoacute chi tiết
hoacutea nhiều hơn bằng caacutech sử dụng việc phối hợp mocirc higravenh Nếu bản chất phạm vi
vấn đề của chuacuteng ta lagrave phức tạp hatildey xẻ mocirc higravenh thagravenh nhiều mocirc higravenh khaacutec nhau
(sử dụng caacutec tiểu mocirc higravenh ndash tức lagrave caacutec goacutei) vagrave cố gắng để qui trigravenh nagravey coacute thể
kiểm soaacutet được tigravenh huống
11- Toacutem tắt về mocirc higravenh đối tƣợng
Khi tạo mocirc higravenh lagrave chuacuteng ta diễn giải caacutec chi tiết về những gigrave magrave chuacuteng ta nghiecircn
cứu thế nhưng một yếu tố rất quan trọng lagrave mocirc higravenh phải nắm bắt được những
điểm trọng yếu của đối tượng nghiecircn cứu Một đối tượng lagrave một thứ gigrave đoacute magrave
chuacuteng ta coacute thể noacutei về vagrave coacute thể xử lyacute trong một số phương thức nagraveo đoacute Một đối
tượng tồn tại trong thế giới thực (hoặc noacutei cho chiacutenh xaacutec hơn lagrave trong sự hiểu biết
của chuacuteng ta về thế giới thực) Một đối tượng coacute thể lagrave một thagravenh phần của một
hệ thống nagraveo đoacute trong thế giới ndash một chiếc maacutey một tổ chức một doanh nghịecircp
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Một lớp lagrave lời miecircu tả từ 0 1 hoặc nhiều đối tượng với cugraveng lối ứng xử Lớp vagrave đối
tượng được sử dụng để bagraven luận về caacutec hệ thống
Khi chuacuteng ta mocirc higravenh hoacutea chuacuteng ta sử dụng một ngocircn ngữ mocirc higravenh hoacutea viacute dụ
như UML cung cấp cho chuacuteng ta ngữ phaacutep vagrave ngữ nghĩa để tạo dựng mocirc higravenh
Ngocircn ngữ mocirc higravenh hoacutea mặc dugrave vậy khocircng thể cho chuacuteng ta biết liệu chuacuteng ta đatilde
tạo ra một mocirc higravenh tốt hay khocircng Chất lượng mocirc higravenh cần phải được chuacute yacute riecircng
biệt điều đoacute coacute nghĩa lagrave tất cả caacutec mocirc higravenh cần phải coacute một mục điacutech rotilde ragraveng vagrave
chiacutenh xaacutec vagrave chuacuteng phải nắm bắt được bản chất của đối tượng nghiecircn cứu Tất cả
caacutec mocirc higravenh cần phải được lagravem sao để dễ giao tiếp dễ thẩm tra phecirc duyệt vagrave
bảo trigrave
UML cung cấp mocirc higravenh tĩnh động vagrave theo chức năng Mocirc higravenh tĩnh được thể hiện
qua caacutec biểu đồ lớp bao gồm caacutec lớp vagrave mối quan hệ giữa chuacuteng Quan hệ coacute thể
lagrave liecircn hệ khaacutei quaacutet hoaacute phụ thuộc hoặc lagrave nacircng cấp Một mối quan hệ liecircn hệ lagrave
một sự nối kết giữa caacutec lớp coacute nghĩa lagrave sự nối kết giữa caacutec đối tượng của caacutec lớp
nagravey Khaacutei quaacutet hoacutea lagrave quan hệ giữa một phần tử mang tiacutenh khaacutei quaacutet hơn vagrave một
phần tử mang tiacutenh chuyecircn biệt hơn Phần tử mang tiacutenh chuyecircn biệt hơn coacute thể
chỉ chứa caacutec thocircng tin bổ sung Một thực thể (một đối tượng lagrave một thực thể của
một lớp) của phần tử chuyecircn biệt hơn coacute thể được sử dụng bất cứ nơi nagraveo magrave
thực thể của phần tử khaacutei quaacutet hơn được cho pheacutep Phụ thuộc lagrave mối quan hệ
giữa hai phần tử một mang tiacutenh độc lập vagrave một mang tiacutenh phụ thuộc Mỗi thay
đổi trong phần tử độc lập sẽ gacircy taacutec động đến phần tử phụ thuộc Một quan hệ
nacircng cấp lagrave một quan hệ giữa hai lời miecircu tả của cugraveng một thứ nhưng ở những
mức độ trừu tượng khaacutec nhau
Phần cacircu hỏi
Hỏi Khi tạo dựng mocirc higravenh cần sử dụng caacutec khaacutei niệm của chiacutenh phạm vi vấn đề
để mocirc higravenh dễ hiểu vagrave dễ giao tiếp
Đaacutep Đuacuteng
Hỏi Caacutec lớp chỉ thể hiện cấu truacutec thocircng tin
Đaacutep sai caacutec lớp khocircng phải chỉ thể hiện cấu truacutec thocircng tin magrave cograven mocirc tả cả
hagravenh vi
Hỏi Caacutec khaacutei niệm then chốt thường sẽ trở thagravenh caacutec lớp trong mocirc higravenh phacircn
tiacutech
Đaacutep Đuacuteng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Hỏi Thường caacutec danh từ trong caacutec lời phaacutet biểu bagravei toaacuten sẽ lagrave ứng cử viecircn để
chuyển thagravenh lớp vagrave đối tượng
Đaacutep Đuacuteng
Hỏi Quan hệ kết hợp (Association) giữa caacutec lớp định nghĩa caacutec mối liecircn quan coacute
thể tồn tại giữa caacutec đối tượng
Đaacutep Đuacuteng viacute dụ một mối quan hệ kết hợp lagrave một sự nối kết giữa caacutec lớp coacute
nghĩa lagrave sự nối kết giữa caacutec đối tượng của caacutec lớp nagravey
Hỏi Kết tập biểu thị rằng quan hệ giữa caacutec lớp dựa trecircn nền tảng của nguyecircn
tắc một tổng thể được tạo thagravenh bởi caacutec bộ phận
Đaacutep Đuacuteng noacute được sử dụng khi chuacuteng ta muốn tạo necircn một thực thể mới bằng
caacutech tập hợp caacutec thực thể tồn tại với nhau
Hỏi Khaacutei quaacutet hoaacute được sử dụng để tạo caacutec lớp con
Đaacutep Sai khaacutei quaacutet hoaacute lagrave quaacute trigravenh bắt đầu từ một lớp chuyecircn biệt vagrave khiến noacute
ngagravey cagraveng mang tiacutenh khaacutei quaacutet cao hơn (lớp cha)
Hỏi Chuyecircn biệt hoaacute bổ sung thecircm chi tiết vagrave đặc tả cho lớp kết qủa
Đaacutep Đuacuteng chuyecircn biệt hoaacute lagrave quaacute trigravenh tinh chế một lớp thagravenh những lớp
chuyecircn biệt hơn (lớp con)
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Chƣơng 6 MOcirc HIgraveNH ĐỘNG
1- SỰ CẦN THIẾT COacute MOcirc HIgraveNH ĐỘNG (DYNAMIC MODEL)
Mocirc higravenh đối tượng vagrave quaacute trigravenh phaacutet triển noacute lagrave trọng tacircm của những cuộc thảo
luận trong chương trước Mocirc higravenh đối tượng định nghĩa hệ thống theo khaacutei niệm
caacutec thagravenh phần tĩnh Mocirc higravenh đối tượng miecircu tả ứng xử mang tiacutenh cấu truacutec vagrave
chức năng của caacutec lớp Mặc dầu vậy để mocirc higravenh hoacutea sự hoạt động thật sự của
một hệ thống vagrave trigravenh bagravey một hướng nhigraven đối với hệ thống trong thời gian hệ
thống hoạt động chuacuteng ta cần tới mocirc higravenh động (dynamic model)
Trong UML mocirc higravenh động đề cập tới caacutec trạng thaacutei khaacutec nhau trong vograveng đời của
một đối tượng thuộc hệ thống Phương thức ứng xử của một hệ thống tại một
thời điểm cụ thể sẽ được miecircu tả bằng caacutec điều kiện khaacutec nhau ấn định cho sự
hoạt động của noacute
Một yếu tố hết sức quan trọng lagrave cần phải hiểu cho được hệ thống sẽ đaacutep lại
những kiacutech thiacutech từ phiacutea becircn ngoagravei ra sao coacute nghĩa lagrave chuacuteng ta cần phải xaacutec định
vagrave nghiecircn cứu những chuỗi caacutec thủ tục sẽ lagrave hệ quả của một sự kiacutech thiacutech từ
ngoagravei Cho việc nagravey ta cần tới mocirc higravenh động bởi trọng tacircm của mocirc higravenh nagravey lagrave
lối ứng xử phụ thuộc vagraveo thời gian của caacutec đối tượng trong hệ thống
Chuacuteng ta cần tới mocirc higravenh động bởi chuacuteng ta cần thể hiện sự thay đổi xảy ra
trong hệ thống dọc theo thời gian chạy Cocircng cụ miecircu tả mocirc higravenh động lagrave khocircng
thể thiếu viacute dụ trong trường hợp caacutec đối tượng trải qua nhiều giai đoạn khaacutec
nhau trong thời gian hệ thống hoạt động Điều đoacute coacute nghĩa lagrave mặc dugrave đối tượng
được tạo ra một lần nhưng caacutec thuộc tiacutenh của chuacuteng chỉ dần dần từng bước nhận
được giaacute trị Viacute dụ như một tagravei khoản đầu tư coacute kỳ hạn được tạo ra nhưng tổng
số tiền latildei cộng dồn của noacute chỉ được tăng lecircn dần dần theo thời gian
Caacutec mocirc higravenh động cũng lagrave yếu tố hết sức cần thiết để miecircu tả ứng xử của một
đối tượng khi đưa ra caacutec yecircu cầu hoặc thực thi caacutec taacutec vụ Cả taacutec vụ lẫn dịch vụ
theo định nghĩa đều lagrave caacutec hoạt động động vagrave vigrave thế magrave chỉ coacute thể được biểu
diễn qua một mocirc higravenh động
2- CAacuteC THAgraveNH PHẦN CỦA MOcirc HIgraveNH ĐỘNG
Đối tượng trong caacutec hệ thống giao tiếp với nhau chuacuteng gửi thocircng điệp (message)
đến nhau Viacute dụ một đối tượng khaacutech hagraveng lagrave John gửi một thocircng điệp mua hagraveng
đến người baacuten hagraveng lagrave Bill để lagravem một việc gigrave đoacute Một thocircng điệp thường lagrave một
lệnh gọi thủ tục magrave một đối tượng nagravey gọi qua một đối tượng kia Caacutec đối tượng
giao tiếp với nhau ra sao vagrave hiệu ứng của sự giao tiếp như thế được gọi lagrave khiacutea
cạnh động của một hệ thống yacute nghĩa của khaacutei niệm nagravey lagrave cacircu hỏi caacutec đối
tượng cộng taacutec với nhau qua giao tiếp như thế nagraveo vagrave caacutec đối tượng trong một hệ
thống thay đổi trạng thaacutei ra sao trong thời gian hệ thống hoạt động Sự giao tiếp
trong một nhoacutem caacutec đối tượng nhằm tạo ra một số caacutec lệnh gọi hagravem được gọi lagrave
CuuDuongThanCongcom httpsfbcomtailieudientucntt
tƣơng taacutec (interaction) tương taacutec coacute thể được thể hiện qua ba loại biểu đồ
biểu đồ tuần tự (sequence Diagram) biểu đồ cộng taacutec (collaboration Diagram) vagrave
biểu đồ hoạt động (activity Diagram)
Trong chương nagravey chuacuteng ta sẽ đề cập tới bốn loại biểu đồ động của UML
Biểu đồ trạng thaacutei miecircu tả một đối tượng coacute thể coacute những
trạng thaacutei nagraveo trong vograveng đời của noacute ứng xử trong caacutec trạng thaacutei đoacute
cũng như caacutec sự kiện nagraveo gacircy ra sự chuyển đổi trạng thaacutei viacute dụ
một tờ hoacutea đơn coacute thể được trả tiền (trạng thaacutei đatilde trả tiền) hoặc lagrave
chưa được trả tiền (trạng thaacutei chưa trả tiền)
Biểu đồ tuần tự miecircu tả caacutec đối tượng tương taacutec vagrave giao tiếp với
nhau ra sao Tiecircu điểm trong caacutec biểu đồ tuần tự lagrave thời gian Caacutec
biểu đồ tuần tự chỉ ra chuỗi của caacutec thocircng điệp được gửi vagrave nhận
giữa một nhoacutem caacutec đối tượng nhằm mục điacutech thực hiện một số
chức năng
Biểu đồ cộng taacutec cũng miecircu tả caacutec đối tượng tương taacutec với
nhau ra sao nhưng trọng điểm trong một biểu đồ cộng taacutec lagrave sự
kiện Tập trung vagraveo sự kiện coacute nghĩa lagrave chuacute yacute đặc biệt đến mối quan
hệ (nối kết) giữa caacutec đối tượng vagrave vigrave thế magrave phải thể hiện chuacuteng
một caacutech rotilde ragraveng trong biểu đồ
Biểu đồ hoạt động lagrave một con đường khaacutec để chỉ ra tương taacutec
nhưng chuacuteng tập trung vagraveo cocircng việc Khi caacutec đối tượng tương taacutec
với nhau caacutec đối tượng cũng thực hiện caacutec taacutec vụ tức lagrave caacutec hoạt
động Những hoạt động nagravey cugraveng thứ tự của chuacuteng được miecircu tả
trong biểu đồ hoạt động
Vigrave biểu đồ tuần tự biểu đồ cộng taacutec lẫn biểu đồ hoạt động đều chỉ ra tương taacutec
necircn thường bạn sẽ phải chọn necircn sử dụng biểu đồ nagraveo khi lập tagravei liệu cho một
tương taacutec Quyết định của bạn sẽ phụ thuộc vagraveo việc khiacutea cạnh nagraveo được coi lagrave
quan trọng nhất
Ngoagravei cấu truacutec tĩnh vagrave ứng xử động hướng nhigraven chức năng cũng coacute thể được sử
dụng để miecircu tả hệ thống Hướng nhigraven chức năng thể hiện caacutec chức năng magrave hệ
thống sẽ cung cấp Trường hợp sử dụng chiacutenh lagrave caacutec lời miecircu tả hệ thống theo
chức năng chuacuteng miecircu tả caacutec taacutec nhacircn coacute thể sử dụng hệ thống ra sao Như đatilde
đề cập từ trước trường hợp sử dụng bigravenh thường ra được mocirc higravenh hoacutea trong
những giai đoạn đầu tiecircn của quaacute trigravenh phacircn tiacutech nhằm mục điacutech miecircu tả xem
taacutec nhacircn coacute thể muốn sử dụng hệ thống như thế nagraveo Mocirc higravenh trường hợp sử
dụng chỉ necircn nắm bắt duy nhất khiacutea cạnh taacutec nhacircn sử dụng hệ thống khocircng necircn
đề cập khiacutea cạnh hệ thống được xacircy dựng becircn trong ra sao Lớp vagrave caacutec tương taacutec
trong hệ thống thực hiện trường hợp sử dụng Tương taacutec được miecircu tả bởi caacutec
biểu đồ tuần tự biểu đồ cộng taacutec vagrave hoặcvagrave biểu đồ hoạt động tức lagrave coacute một sự
CuuDuongThanCongcom httpsfbcomtailieudientucntt
nối kết giữa hướng nhigraven chức năng vagrave hướng nhigraven động của hệ thống Caacutec lớp
được sử dụng trong việc thực thi caacutec trường hợp sử dụng được mocirc higravenh hoacutea vagrave
miecircu tả qua caacutec biểu đồ lớp vagrave biểu đồ trạng thaacutei (một biểu đồ trạng thaacutei sẽ được
điacutenh kegravem cho một lớp một hệ thống con hoặc lagrave một hệ thống) Trường hợp sử
dụng vagrave caacutec mối quan hệ của chuacuteng đến tương taacutec đatilde được miecircu tả trong chương
3 (trường hợp sử dụng)
Nhigraven chung một mocirc higravenh động miecircu tả năm khiacutea cạnh căn bản khaacutec nhau
Higravenh 61- Caacutec thagravenh phần của mocirc higravenh động
Caacutec thagravenh phần kể trecircn sẽ được đề cập chi tiết hơn trong caacutec phần sau
Ngoagravei ra một mocirc higravenh động cũng cograven được sử dụng để xaacutec định caacutec nguyecircn tắc
chuyecircn ngagravenh (business rule) cần phải được aacutep dụng trong mocirc higravenh Noacute cũng
được sử dụng để ấn định xem caacutec nguyecircn tắc đoacute được đưa vagraveo những vị triacute nagraveo
trong mocirc higravenh
Một vagravei viacute dụ cho những nguyecircn tắc chuyecircn ngagravenh cần phải được thể hiện trong
mocirc higravenh động
Một khaacutech hagraveng khocircng được quyền ruacutet tiền ra nếu khocircng coacute đủ
mức tiền trong tagravei khoản
Những moacuten tiền đầu tư coacute kỳ hạn khocircng thể chuyển sang một tecircn
khaacutec trước khi đaacuteo hạn
Giới hạn cao nhất trong một lần ruacutet tiền ra bằng thẻ ATM lagrave 500
USD
3- ƢU ĐIỂM CỦA MOcirc HIgraveNH ĐỘNG
Bất cứ khi nagraveo coacute những ứng xử động cần phải được nghiecircn cứu hoặc thể hiện
chuacuteng ta sẽ phải dugraveng đến mocirc higravenh động
Mocirc higravenh động đoacuteng một vai trograve vocirc cugraveng quan trọng trong những trường hợp như
Caacutec hệ thống mang tiacutenh tương taacutec cao
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Hệ thống coacute sử dụng caacutec trang thiết bị ngoại vi coacute thể gọi necircn caacutec
ứng xử của hệ thống
Mocirc higravenh động khocircng tỏ ra thật sự hữu hiệu trong trường hợp của caacutec hệ thống
tĩnh Viacute dụ một hệ thống chỉ nhằm mục điacutech nhập dữ liệu để lưu trữ vagraveo một
ngacircn hagraveng dữ liệu
Một mocirc higravenh động tập trung vagraveo caacutec chuỗi tương taacutec (biểu đồ cộng taacutec) vagrave vagraveo
yếu tố thời gian của caacutec sự kiện (biểu đồ tuần tự) Một mocirc higravenh động coacute thể được
sử dụng cho mục điacutech thể hiện rotilde ragraveng theo thời gian hoạt động của hệ thống
nếu trong thời gian nagravey coacute những đối tượng
Được tạo ra
Bị xoacutea đi
Được lưu trữ
Bị hủy
Hatildey quan saacutet trường hợp ruacutet tiền mặt vagrave tương taacutec của khaacutech hagraveng đối với nhagrave
băng
Khaacutech hagraveng điền tất cả caacutec chi tiết cần thiết vagraveo giấy yecircu cầu ruacutet
tiền mặt
Khaacutech hagraveng đưa giấy yecircu cầu đoacute cho một nhacircn viecircn phaacutet thẻ xếp
hagraveng
Nhacircn viecircn phaacutet thẻ ghi số của giấy yecircu cầu ruacutet tiền vagraveo danh saacutech
Động taacutec ghi số của giấy yecircu cầu ruacutet tiền được thực hiện tuần tự
tương ứng với những số thẻ tuần tự được phaacutet ra
Một tấm thẻ xếp hagraveng (token) được trao cho khaacutech hagraveng
Khaacutech hagraveng đi vagraveo hagraveng xếp chờ nhacircn viecircn becircn casse gọi đuacuteng số
thẻ của migravenh
Song song với quaacute trigravenh chờ của khaacutech hagraveng giấy yecircu cầu ruacutet tiền
của anh ta trải qua nhiều giai đoạn trong nội bộ nhagrave băng
Chữ kyacute của khaacutech hagraveng trecircn giấy yecircu cầu ruacutet tiền được thẩm tra
Giấy yecircu cầu được xem xeacutet về phương diện số tagravei khoản vagrave mức
tiền trong tagravei khoản
Nếu một trong hai điều kiện trecircn khocircng được thỏa matilden quaacute trigravenh
ruacutet tiền mặt sẽ bị chặn lại hoặc lagrave được sửa đổi vagrave tiếp tục
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Khi cả hai điều kiện necircu trecircn được thỏa matilden giấy yecircu cầu ruacutet tiền
mặt sẽ được đưa đến cho nhacircn viecircn ngồi becircn casse nơi khaacutech hagraveng
sẽ được gọi tới tuần tự dưạ theo số thẻ xếp hagraveng
Nhacircn viecircn becircn casse đưa tiền mặt cho khaacutech hagraveng
Lối ứng xử trong việc ruacutet tiền mặt lagrave mang tiacutenh động Suốt quaacute trigravenh ruacutet tiền mặt
tương taacutec vagrave trigravenh tự của quaacute trigravenh phụ thuộc vagraveo một số caacutec điều kiện xaacutec định
Loại ứng xử nagravey khocircng thể được thể hiện qua mocirc higravenh đối tượng đacircy lagrave trường
hợp ta cần đến mocirc higravenh động
Mocirc higravenh động cũng tỏ ra hữu dụng trong trường hợp coacute những trang thiết bị trải
qua tuần tự caacutec bước trong một vograveng lặp vagrave tiến trigravenh phụ thuộc vagraveo một số điều
kiện nhất định Viacute dụ một đối tượng mocirc higravenh hoacutea lối ứng xử của một maacutey ruacutet tiền
mặt tự động (ATM) Maacutey ATM lần lượt đi qua caacutec bước của một vograveng lặp mang
tiacutenh thủ tục (chức năng) bắt đầu từ việc một thẻ ATM được đuacutet vagraveo trong maacutey
xử lyacute caacutec yecircu cầu do khaacutech hagraveng đưa ra dừng lại vagrave chờ yecircu cầu giao dịch khaacutec
rồi sau đoacute quay trở lại trạng thaacutei ban đầu (đứng yecircn) sau khi thẻ ATM đatilde được
ruacutet ra ngoagravei
Higravenh 62- Mocirc higravenh động của maacutey ruacutet tiền ATM
4- SỰ KIỆN VAgrave THOcircNG ĐIỆP (EVENT amp MESSAGE)
41- Sự kiện (Event)
Một trong những thagravenh phần quan trọng bậc nhất của một đối tượng lagrave sự kiện
Một sự kiện lagrave một sư kiacutech thiacutech được gửi từ đối tượng nagravey sang đối tượng khaacutec
Một sự kiện lagrave một việc sẽ xảy ra vagrave coacute thể gacircy ra một hagravenh động nagraveo đoacute Viacute dụ
như khi bạn bấm lecircn nuacutet Play trecircn maacutey CD-Player noacute sẽ bắt đầu chơi nhạc (giả
sử rằng CD-Player coacute điện trong maacutey coacute đĩa CD vagrave noacutei chung lagrave dagraven CD-Player
hoạt động tốt) Sự kiện ở đacircy lagrave bạn nhấn lecircn nuacutet Play vagrave hagravenh động ở đacircy lagrave
bắt đầu chơi nhạc Nếu coacute một sự nối kết được định nghĩa rotilde ragraveng giữa sự kiện vagrave
hagravenh động người ta gọi noacute lagrave quan hệ nhacircn quả (Causality) Trong cocircng nghệ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
phần mềm chuacuteng ta thường chỉ mocirc higravenh hoacutea caacutec hệ thống mang tiacutenh nhacircn quả
nơi sự kiện vagrave hagravenh động được nối kết với nhau Một phản viacute dụ của quan hệ
nhacircn quả bạn laacutei xe trecircn xa lộ với tốc độ quaacute nhanh cảnh saacutet ngăn xe lại Đacircy
khocircng phải lagrave nhacircn quả bởi hagravenh động ngăn bạn lại của cảnh saacutet khocircng chắc
chắn bao giờ cũng xảy ra vigrave thế magrave khocircng coacute một sự nối kết được định nghĩa rotilde
ragraveng giữa sự kiện (laacutei xe quaacute nhanh) vagrave hagravenh động (ngăn xe) Trong mocirc higravenh hoacutea
vậy lagrave ta quan tacircm đến sự kiện theo nghĩa lagrave bất kỳ hagravenh động nagraveo khiến hệ
thống phản ứng theo một caacutech nagraveo đoacute
Quan saacutet viacute dụ một nhagrave băng lẻ ta coacute một vagravei viacute dụ về sự kiện như sau
Điền một tờ giấy yecircu cầu ruacutet tiền
Sự đaacuteo hạn một tagravei khoản đầu tư coacute kỳ hạn
Kết thuacutec một hợp đồng trước kỳ hạn
Điền một giấy yecircu cầu mở tagravei khoản
UML biết đến tất cả bốn loại sự kiện
Một điều kiện trở thagravenh được thỏa matilden (trở thagravenh đuacuteng)
Nhận được một tiacuten hiệu ngoại từ một đối tượng khaacutec
Nhận được một lời gọi thủ tục từ một đối tượng khaacutec (hay từ chiacutenh
đối tượng đoacute)
Một khoảng thời gian xaacutec định trước trocirci qua
Xin chuacute yacute rằng cả caacutec lỗi xảy ra cũng lagrave sự kiện vagrave coacute thể mang tiacutenh hữu dụng rất
lớn đối với mocirc higravenh
411- Sự kiện độc lập vagrave sự kiện phụ thuộc
Caacutec sự kiện coacute thể mang tiacutenh độc lập hay liecircn quan đến nhau Coacute một số sự kiện
theo bản chất phải đi trước hoặc lagrave xảy ra sau caacutec sự kiện khaacutec Viacute dụ
Điền caacutec chi tiết trong một tờ yecircu cầu ruacutet tiền mặt sẽ dẫn tới việc
nhận được một số thẻ xếp hagraveng
Sự đaacuteo hạn của một tagravei khoản đầu tư coacute kỳ hạn sẽ dẫn đến động
taacutec gia hạn hoặc ruacutet tiền mặt
Điền caacutec chi tiết trong một giấy yecircu cầu mở tagravei khoản sẽ dẫn tới
việc phải nộp một khoản tiền tối thiểu (theo quy định) vagraveo tagravei khoản
Caacutec sự kiện độc lập lagrave những sự kiện khocircng được nối kết với nhau trong bất kỳ
một phương diện nagraveo Viacute dụ
Ruacutet tiền mặt vagrave đưa tiền vagraveo tagravei khoản lagrave caacutec sự kiện độc lập với
nhau
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Mở một tagravei khoản đầu tư coacute kỳ hạn vagrave mở một tagravei khoản giao dịch
lagrave độc lập với nhau
Kết thuacutec trước kỳ hạn một tagravei khoản đầu tư vagrave việc mở một tagravei
khoản đầu tư coacute kỳ hạn khaacutec lagrave độc lập với nhau
Caacutec sự kiện độc lập cograven coacute thể được gọi lagrave caacutec sự kiện song song hay đồng thời
Bởi chuacuteng khocircng phụ thuộc vagraveo nhau necircn caacutec sự kiện nagravey coacute thể xảy ra tại cugraveng
một thời điểm
Trong nhiều trường hợp một sự kiện riecircng lẻ trong phạm vi vấn đề sẽ được
chuyển tải thagravenh nhiều sự kiện trong hệ thống Viacute dụ đưa giấy yecircu cầu ruacutet tiền
mặt cho nhacircn viecircn phaacutet thẻ xếp hagraveng sẽ coacute kết quả lagrave một loạt caacutec sự kiện nối
tiếp
Coacute những tigravenh huống nơi một sự kiện riecircng lẻ sẽ được nhận bởi nhiều đối tượng
khaacutec nhau vagrave khiến cho chuacuteng phản ứng thiacutech hợp Viacute dụ như một lời đề nghị
ngăn một tờ seacutec coacute thể đồng thời được gửi đến cho nhacircn viecircn thu ngacircn vagrave nhacircn
viecircn kiểm tra seacutec
412-Sự kiện nội (internal) vagrave sự kiện ngoại (external)
Sự kiện nội lagrave caacutec sự kiện xảy ra trong nội bộ hệ thống Đacircy lagrave caacutec sự kiện do
một đối tượng nagravey gacircy ra đối với đối tượng khaacutec Viacute dụ tiacutenh toaacuten tiền latildei cho một
tagravei khoản đầu tư coacute kỳ hạn sẽ được nội bộ hệ thống thực hiện tuacircn theo một đối
tượng quan saacutet ngagravey thaacuteng
Sự kiện ngoại lagrave những sự kiện được kiacutech necircn từ phiacutea becircn ngoagravei biecircn giới của hệ
thống viacute dụ như sự kết thuacutec trước kỳ hạn một tagravei khoản đầu tư
413- Sự kiện vagrave lớp sự kiện
Lớp sự kiện đối với sự kiện cũng như lớp đối với đối tượng bigravenh thường Lời định
nghĩa xaacutec định một loại sự kiện được gọi lagrave một lớp sự kiện
Lớp sự kiện ngoagravei ra cograven coacute thể được phacircn loại
Caacutec tiacuten hiệu đơn giản Lớp sự kiện trong trường hợp nagravey sẽ được thực thể
hoacutea để chỉ ra một sự kiện hoặc lagrave một tiacuten hiệu của một sự kiện
Caacutec sự kiện chuyển tải dữ liệu thường thigrave một sự kiện coacute khả năng vagrave
chuyển tải dữ liệu Tất cả caacutec sự kiện cần phải biết đến caacutec đối tượng sẽ
nhận được sự kiện nagravey Thocircng tin về người nhận sự kiện được gọi lagrave thocircng
tin nhận diện Noacutei một caacutech khaacutec yếu tố nhận diện xaacutec định caacutec đối tượng
sẽ nhận sự kiện Becircn cạnh đoacute cograven coacute thể coacute caacutec dữ liệu bổ sung thuộc về
caacutec đối tượng khaacutec khocircng nhất thiết phải lagrave đối tượng gửi hay nhận sự
kiện
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Về mặt nguyecircn tắc caacutec sự kiện thuộc dạng phaacutet tin (Broadcast) sẽ được truyền
đến cho tất cả caacutec đối tượng Nếu sự kiện nagravey lagrave khocircng quan trọng đối với đối
tượng nagraveo đoacute trong trạng thaacutei hiện thời của noacute thigrave đối tượng sẽ bỏ qua sự kiện
42- Thocircng điệp (Message)
Trong lập trigravenh hướng đối tượng một tương taacutec giữa hai đối tượng được thực thi
dưới dạng thocircng điệp được gửi từ đối tượng nagravey sang đối tượng khaacutec Trong ngữ
cảnh nagravey yếu tố quan trọng lagrave khocircng necircn hiểu danh từ thocircng điệp quaacute chiacutenh
xaacutec theo nghĩa văn học bigravenh thường Một thocircng điệp ở đacircy thường được thực hiện
qua một lệnh gọi thủ tục đơn giản (một đối tượng nagravey gọi một thủ tục của một
đối tượng khaacutec) khi thủ tục đatilde được thực hiện xong quyền điều khiển được trao
trở về cho đối tượng gọi thủ tục cugraveng với giaacute trị trả về Một thocircng điệp mặt khaacutec
cũng coacute thể lagrave một thocircng điệp thực thụ được gửi qua một số cơ chế giao tiếp nagraveo
đoacute hoặc lagrave qua mạng hoặc lagrave nội bộ trong một maacutey tiacutenh đacircy lagrave điều thường xảy
ra trong caacutec hệ thống thời gian thực Thocircng điệp được thể hiện trong tất cả caacutec
loại biểu đồ động (tuần tự cộng taacutec hoạt động vagrave trạng thaacutei) theo yacute nghĩa lagrave sự
giao tiếp giữa caacutec đối tượng Một thocircng điệp được vẽ lagrave một được thẳng với mũi
tecircn nối giữa đối tượng gửi vagrave đối tượng nhận thocircng điệp Loại mũi tecircn sẽ chỉ rotilde
loại thocircng điệp
Higravenh 63 chỉ rotilde caacutec loại thocircng điệp được sử dụng trong UML
Higravenh 63- Caacutec kyacute hiệu của caacutec kiểu thocircng điệp
Thocircng điệp đơn giản (simple) Chỉ miecircu tả đơn giản chiều điều
khiển Noacute chỉ ra quyền điều khiển được trao từ đối tượng nagravey sang
cho đối tượng khaacutec magrave khocircng kegravem thecircm lời miecircu tả bất kỳ một chi
tiết nagraveo về sự giao tiếp đoacute Loại thocircng điệp nagravey được sử dụng khi
người ta khocircng biết caacutec chi tiết về giao tiếp hoặc coi chuacuteng lagrave khocircng
quan trọng đối với biểu đồ
Thocircng điệp đồng bộ (synchronous) thường được thực thi lagrave
một lệnh gọi thủ tục Thủ tục xử lyacute thocircng điệp nagravey phải được hoagraven
tất (bao gồm bất kỳ những thocircng điệp nagraveo được lồng vagraveo trong
được gửi như lagrave một thagravenh phần của sự xử lyacute) trước khi đối tượng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
gọi tiếp tục thực thi Quaacute trigravenh trở về coacute thể được chỉ ra dưới dạng
thocircng điệp đơn giản
Thocircng điệp khocircng đồng bộ (asynchronous) đacircy lagrave dạng điều
khiển trigravenh tự khocircng đồng bộ nơi khocircng coacute một sự trở về đối với đối
tượng gọi vagrave nơi đối tượng gửi thocircng điệp tiếp tục quaacute trigravenh thực thi
của migravenh sau khi đatilde gửi thocircng điệp đi khocircng chờ cho tới khi noacute
được xử lyacute xong Loại thocircng điệp nagravey thường được sử dụng trong
caacutec hệ thống thời gian thực nơi caacutec đối tượng thực thi đồng thời
Thocircng điệp đơn giản vagrave thocircng điệp đồng bộ coacute thể được kết hợp với nhau trong
chỉ một đường thẳng chỉ thocircng điệp với mũi tecircn chỉ thocircng điệp đồng bộ ở một
phiacutea vagrave mũi tecircn chỉ thocircng điệp đơn giản ở phiacutea kia Điều nagravey chỉ rotilde rằng sự trả về
được xảy ra hầu như ngay lập tức sau lệnh gọi hagravem
5- BIỂU ĐỒ TUẦN TỰ (SEQUENCE DIAGRAM)
Biểu đồ tuần tự minh họa caacutec đối tượng tương taacutec với nhau ra sao Chuacuteng tập
trung vagraveo caacutec chuỗi thocircng điệp coacute nghĩa lagrave caacutec thocircng điệp được gửi vagrave nhận giữa
một loạt caacutec đối tượng như thế nagraveo Biểu đồ tuần tự coacute hai trục trục nằm dọc chỉ
thời gian trục nằm ngang chỉ ra một tập hợp caacutec đối tượng Một biểu đồ tuần tự
cũng necircu bật sự tương taacutec trong một cảnh kịch (scenario) ndash một sự tương taacutec sẽ
xảy ra tại một thời điểm nagraveo đoacute trong quaacute trigravenh thực thi của hệ thống
Từ caacutec higravenh chữ nhật biểu diễn đối tượng coacute caacutec đường gạch rời (dashed line)
thẳng đứng biểu thị đường đời đối tượng tức lagrave sự tồn tại của đối tượng trong
chuỗi tương taacutec Trong khoảng thời gian nagravey đối tượng được thực thể hoacutea sẵn
sagraveng để gửi vagrave nhận thocircng điệp Quaacute trigravenh giao tiếp giữa caacutec đối tượng được thể
hiện bằng caacutec đường thẳng thocircng điệp nằm ngang nối caacutec đường đời đối tượng
Mỗi tecircn ở đầu đường thẳng sẽ chỉ ra loại thocircng điệp nagravey mang tiacutenh đồng bộ
khocircng đồng bộ hay đơn giản Để đọc biểu đồ tuần tự hatildey bắt đầu từ phiacutea becircn
trecircn của biểu đồ rồi chạy dọc xuống vagrave quan saacutet sự trao đổi thocircng điệp giữa caacutec
đối tượng xảy ra dọc theo tiến trigravenh thời gian
Viacute dụ hatildey quan saacutet một cảnh kịch ruacutet tiền mặt tại một maacutey ATM của một nhagrave
băng lẻ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 64- Biểu đồ cảnh kịch ruacutet tiền mặt tại maacutey ATM
Biểu đồ trecircn coacute thể được diễn giải theo trigravenh tự thời gian như sau
Coacute ba lớp tham gia cảnh kịch nagravey khaacutech hagraveng maacutey ATM vagrave tagravei
khoản
Khaacutech hagraveng đưa yecircu cầu ruacutet tiền vagraveo maacutey ATM
Đối tượng maacutey ATM yecircu cầu khaacutech hagraveng cung cấp matilde số
Matilde số được gửi cho hệ thống để kiểm tra tagravei khoản
Đối tượng tagravei khoản kiểm tra matilde số vagrave baacuteo kết quả kiểm tra đến
cho ATM
ATM gửi kết quả kiểm tra nagravey đến khaacutech hagraveng
Khaacutech hagraveng nhập số tiền cần ruacutet
ATM gửi số tiền cần ruacutet đến cho tagravei khoản
Đối tượng tagravei khoản trừ số tiền đoacute vagraveo mức tiền trong tagravei khoản
Tại thời điểm nagravey chuacuteng ta thấy coacute một mũi tecircn quay trở lại chỉ vagraveo
CuuDuongThanCongcom httpsfbcomtailieudientucntt
đối tượng tagravei khoản Yacute nghĩa của noacute lagrave đối tượng tagravei khoản xử lyacute yecircu
cầu nagravey trong nội bộ đối tượng vagrave khocircng gửi sự kiện đoacute ra ngoagravei
Đối tượng tagravei khoản trả về mức tiền mới trong tagravei khoản cho maacutey
ATM
Đối tượng ATM trả về mức tiền mới trong tagravei khoản cho khaacutech
hagraveng vagrave dĩ nhiecircn cả lượng tiền khaacutech hagraveng đatilde yecircu cầu được ruacutet
Đối tượng tagravei khoản chỉ bắt đầu được sinh ra khi đối tượng ATM cần tới noacute để
kiểm tra matilde số vagrave đối tượng tagravei khoản tiếp tục sống cho tới khi giao dịch được
hoagraven tất Sau đoacute noacute chết đi Bởi khaacutech hagraveng coacute thể muốn tiếp tục thực hiện caacutec
giao dịch khaacutec necircn đối tượng khaacutech hagraveng vagrave đối tượng maacutey ATM vẫn tiếp tục tồn
tại điều nagravey được chỉ ra qua việc caacutec đường đời đối tượng được keacuteo vượt quaacute
đường thẳng thể hiện sự kiện cuối cugraveng trong chuỗi tương taacutec
Loại tương taacutec nagravey lagrave rất hữu dụng trong một hệ thống coacute một số lượng nhỏ caacutec
đối tượng với một số lượng lớn caacutec sự kiện xảy ra giữa chuacuteng Mặc dugrave vậy khi số
lượng caacutec đối tượng trong một hệ thống tăng lecircn thigrave mocirc higravenh nagravey sẽ khocircng cograven
mấy thiacutech hợp
Để coacute thể vẽ biểu đồ tuần tự đầu tiecircn hatildey xaacutec định caacutec đối tượng liecircn quan vagrave
thể hiện caacutec sự kiện xảy ra giữa chuacuteng
Khi vẽ biểu đồ tuần tự cần chuacute yacute
Sự kiện được biểu diễn bằng caacutec đường thẳng nằm ngang
Đối tượng bằng caacutec đường nằm dọc
Thời gian được thể hiện bằng đường thẳng nằm dọc bắt đầu từ
trecircn biểu đồ Điều đoacute coacute nghĩa lagrave caacutec sự kiện cần phải được thể hiện
theo đuacuteng thứ tự magrave chuacuteng xảy ra vẽ từ trecircn xuống dưới
6- BIỂU ĐỒ CỘNG TAacuteC (COLLABORATION DIAGRAM)
Một biểu đồ cộng taacutec miecircu tả tương taacutec giữa caacutec đối tượng cũng giống như biểu
đồ tuần tự nhưng noacute tập trung trước hết vagraveo caacutec sự kiện tức lagrave tập trung chủ
yếu vagraveo sự tương taacutec giữa caacutec đối tượng
Trong một biểu đồ cộng taacutec caacutec đối tượng được biểu diễn bằng kiacute hiệu lớp Thứ
tự trong biểu đồ cộng taacutec được thể hiện bằng caacutech đaacutenh số caacutec thocircng điệp Kỹ
thuật đaacutenh số được coi lagrave hơi coacute phần khoacute hiểu hơn so với kỹ thuật mũi tecircn sử
dụng trong biểu đồ tuần tự Nhưng ưu điểm của biểu đồ cộng taacutec lagrave noacute coacute thể chỉ
ra caacutec chi tiết về caacutec lệnh gọi hagravem (thủ tục) yếu tố được neacute traacutenh trong biểu đồ
tuần tự
Biểu đồ sau đacircy lagrave một viacute dụ cho một biểu đồ cộng taacutec được chuẩn bị cũng cho
một cảnh kịch ruacutet tiền mặt như trong biểu đồ tuần tự của phần trước Hatildey quan
CuuDuongThanCongcom httpsfbcomtailieudientucntt
saacutet caacutec thứ tự số trong biểu đồ Đầu tiecircn thủ tục WithdrawalReq() được gọi từ lớp
khaacutech hagraveng Đoacute lagrave lệnh gọi số 1 Bước tiếp theo trong tuần tự lagrave hagravem AskForPin()
số 11 được gọi từ lớp ATM Thocircng điệp trong biểu đồ được viết dưới dạng pin=
AskForPin() thể hiện rằng giaacute trị trả về của hagravem nagravey chiacutenh lagrave matilde số magrave lớp
khaacutech hagraveng sẽ cung cấp
Higravenh cung becircn lớp tagravei khoản biểu thị rằng hagravem ComputeNetBalance() được gọi
trong nội bộ lớp tagravei khoản vagrave noacute xử lyacute cục bộ Thường thigrave noacute sẽ lagrave một thủ tục
riecircng (private) của lớp
Higravenh 65- Một biểu đồ cộng taacutec của kiacutech cảnh ruacutet tiền ở maacutey ATM
7- BIỂU ĐỒ TRẠNG THAacuteI (STATE DIAGRAM)
Biểu đồ trạng thaacutei nắm bắt vograveng đời của caacutec đối tượng caacutec hệ thống con
(Subsystem) vagrave caacutec hệ thống Chuacuteng cho ta biết caacutec trạng thaacutei magrave một đối tượng
coacute thể coacute vagrave caacutec sự kiện (caacutec thocircng điệp nhận được caacutec khoảng thời gian đatilde qua
đi caacutec lỗi xảy ra caacutec điều kiện được thỏa matilden) sẽ ảnh hưởng đến những trạng
thaacutei đoacute như thế nagraveo dọc theo tiến trigravenh thời gian Biểu đồ trạng thaacutei coacute thể điacutenh
kegravem với tất cả caacutec lớp coacute những trạng thaacutei được nhận diện rotilde ragraveng vagrave coacute lối ứng
xử phức tạp Biểu đồ trạng thaacutei xaacutec định ứng xử vagrave miecircu tả noacute sẽ khaacutec biệt ra
sao phụ thuộc vagraveo trạng thaacutei ngoagravei ra noacute cũng cograven miecircu tả rotilde những sự kiện nagraveo
sẽ thay đổi trạng thaacutei của caacutec đối tượng của một lớp
71- Trạng thaacutei vagrave sự biến đổi trạng thaacutei (State transition)
Tất cả caacutec đối tượng đều coacute trạng thaacutei trạng thaacutei lagrave một kết quả của caacutec hoạt
động trước đoacute đatilde được đối tượng thực hiện vagrave noacute thường được xaacutec định qua giaacute
trị của caacutec thuộc tiacutenh cũng như caacutec nối kết của đối tượng với caacutec đối tượng khaacutec
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Một lớp coacute thể coacute một thuộc tiacutenh đặc biệt xaacutec định trạng thaacutei hoặc trạng thaacutei
cũng coacute thể được xaacutec định qua giaacute trị của caacutec thuộc tiacutenh ―bigravenh thường trong đối
tượng Viacute dụ về caacutec trạng thaacutei của đối tượng
Hoacutea đơn (đối tượng) đatilde được trả tiền (trạng thaacutei)
Chiếc xe ocirc tocirc (đối tượng) đang đứng yecircn (trạng thaacutei)
Động cơ (đối tượng) đang chạy (trạng thaacutei)
Jen (đối tượng) đang đoacuteng vai trograve người baacuten hagraveng (trạng thaacutei)
Kate (đối tượng) đatilde lấy chồng (trạng thaacutei)
Một đối tượng sẽ thay đổi trạng thaacutei khi coacute một việc nagraveo đoacute xảy ra thứ được gọi
lagrave sự kiện viacute dụ coacute ai đoacute trả tiền cho hoacutea đơn bật động cơ xe ocirc tocirc hay lagrave lấy
chồng lấy vợ Khiacutea cạnh động coacute hai chiều khocircng gian tương taacutec vagrave sự biến đổi
trạng thaacutei nội bộ Tương taacutec miecircu tả lối ứng xử đối ngoại của caacutec đối tượng vagrave chỉ
ra đối tượng nagravey sẽ tương taacutec với caacutec đối tượng khaacutec ra sao (qua việc gửi thocircng
điệp nối kết hoặc chấm dứt nối kết) Sự biến đổi trạng thaacutei nội bộ miecircu tả một
đối tượng sẽ thay đổi caacutec trạng thaacutei ra sao ndash viacute dụ giaacute trị caacutec thuộc tiacutenh nội bộ
của noacute sẽ thay đổi như thế nagraveo Biểu đồ trạng thaacutei được sử dụng để miecircu tả việc
bản thacircn đối tượng phản ứng ra sao trước caacutec sự kiện vagrave chuacuteng thay đổi caacutec
trạng thaacutei nội bộ của chuacuteng như thế nagraveo viacute dụ một hoacutea đơn sẽ chuyển từ trạng
thaacutei chưa trả tiền sang trạng thaacutei đatilde trả tiền khi coacute ai đoacute trả tiền cho noacute Khi một
hoacutea đơn được tạo ra đầu tiecircn noacute bước vagraveo trạng thaacutei chưa được trả tiền
72- Biểu đồ trạng thaacutei
Biểu đồ trạng thaacutei thể hiện những khiacutea cạnh magrave ta quan tacircm tới khi xem xeacutet
trạng thaacutei của một đối tượng
Trạng thaacutei ban đầu
Một số trạng thaacutei ở giữa
Một hoặc nhiều trạng thaacutei kết thuacutec
Sự biến đổi giữa caacutec trạng thaacutei
Những sự kiện gacircy necircn sự biến đổi từ một trạng thaacutei nagravey sang
trạng thaacutei khaacutec
Higravenh sau sẽ chỉ ra caacutec kiacute hiệu UML thể hiện trạng thaacutei bắt đầu vagrave trạng thaacutei kết
thuacutec sự kiện cũng như caacutec trạng thaacutei của một đối tượng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 66- Caacutec kyacute hiệu UML thể hiện bắt đầu kết thuacutec sự kiện vagrave trạng thaacutei của
một đối tượng
Higravenh 67- Biểu đồ trạng thaacutei thực hiện hoaacute đơn
Một trạng thaacutei coacute thể coacute ba thagravenh phần như được chỉ trong higravenh sau
Higravenh 68- Caacutec ngăn Tecircn Biến trạng thaacutei vagrave hagravenh động
Phần thứ nhất chỉ ra tecircn của trạng thaacutei viacute dụ như chờ đatilde được trả tiền hay đang
chuyển động Phần thứ hai (khocircng bắt buộc) dagravenh cho caacutec biến trạng thaacutei Đacircy lagrave
những thuộc tiacutenh của lớp được thể hiện qua biểu đồ trạng thaacutei nhiều khi caacutec
biến tạm thời cũng tỏ ra rất hữu dụng trong trạng thaacutei viacute dụ như caacutec loại biến
đếm (counter) Phần thứ ba (khocircng bắt buộc) lagrave phần dagravenh cho hoạt động nơi
caacutec sự kiện vagrave caacutec hagravenh động coacute thể được liệt kecirc Coacute ba loại sự kiện chuẩn hoacutea coacute
thể được sử dụng cho phần hagravenh động entry (đi vagraveo) exit (đi ra) vagrave do (thực
hiện) Loại sự kiện đi vagraveo được sử dụng để xaacutec định caacutec hagravenh động khởi nhập
trạng thaacutei viacute dụ gaacuten giaacute trị cho một thuộc tiacutenh hoặc gửi đi một thocircng điệp Sự
kiện đi ra coacute thể được sử dụng để xaacutec định hagravenh động khi rời bỏ trạng thaacutei Sự
kiện thực hiện được sử dụng để xaacutec định hagravenh động cần phải được thực hiện
trong trạng thaacutei viacute dụ như gửi một thocircng điệp chờ hay tiacutenh toaacuten Ba loại sự
kiện chuẩn nagravey khocircng thể được sử dụng cho caacutec mục điacutech khaacutec
Một sự biến đổi trạng thaacutei thường coacute một sự kiện đi kegravem với noacute nhưng khocircng bắt
buộc Nếu coacute một sự kiện đi kegravem sự thay đổi trạng thaacutei sẽ được thực hiện khi sự
kiện kia xảy ra Một hagravenh động loại thực hiện trong trạng thaacutei coacute thể lagrave một quaacute
trigravenh đang tiếp diễn (viacute dụ chờ điều khiển caacutec thủ tục) phải được thực hiện
trong khi đối tượng vẫn ở nguyecircn trong trạng thaacutei nagravey Một hagravenh động thực hiện
CuuDuongThanCongcom httpsfbcomtailieudientucntt
coacute thể bị ngắt bởi caacutec sự kiện từ ngoagravei coacute nghĩa lagrave một sự kiện kiện gacircy necircn một
sự biến đổi trạng thaacutei coacute thể ngưng ngắt một hagravenh động thực hiện mang tiacutenh nội
bộ đang tiếp diễn
Trong trường hợp một sự biến đổi trạng thaacutei khocircng coacute sự kiện đi kegravem thigrave trạng
thaacutei sẽ thay đổi khi hagravenh động nội bộ trong trạng thaacutei đatilde được thực hiện xong
(hagravenh động nội bộ kiểu đi vagraveo đi ra thực hiện hay caacutec hagravenh động do người sử
dụng định nghĩa) Theo đoacute khi tất cả caacutec hagravenh động thuộc trạng thaacutei đatilde được
thực hiện xong một sự thay đổi trạng thaacutei sẽ tự động xảy ra magrave khocircng cần sự
kiện từ ngoagravei
Higravenh 69- Biến đổi trạng thaacutei khocircng coacute sự kiện từ ngoagravei Sự thay đổi trạng thaacutei
xảy ra khi caacutec hoạt động trong mỗi trạng thaacutei được thực hiện xong
73- Nhận biết trạng thaacutei vagrave sự kiện
Quaacute trigravenh phaacutet hiện sự kiện vagrave trạng thaacutei về mặt bản chất bao gồm việc hỏi một
số caacutec cacircu hỏi thiacutech hợp
Một đối tượng coacute thể coacute những trạng thaacutei nagraveo Hatildey liệt kecirc ra tất cả
những trạng thaacutei magrave một đối tượng coacute thể coacute trong vograveng đời của noacute
Những sự kiện nagraveo coacute thể xảy ra Bởi sự kiện gacircy ra việc thay đổi
trạng thaacutei necircn nhận ra caacutec sự kiện lagrave một bước quan trọng để nhận
diện trạng thaacutei
Trạng thaacutei mới sẽ lagrave gigrave Sau khi nhận diện sự kiện hatildey xaacutec định
trạng thaacutei khi sự kiện nagravey xảy ra vagrave trạng thaacutei sau khi sự kiện nagravey
xảy ra
Coacute những thủ tục nagraveo sẽ được thực thi Hatildey để yacute đến caacutec thủ tục
ảnh hưởng đến trạng thaacutei của một đối tượng
Chuỗi tương taacutec giữa caacutec đối tượng lagrave gigrave Tương taacutec giữa caacutec đối
tượng cũng coacute thể ảnh hưởng đến trạng thaacutei của đối tượng
Qui định nagraveo sẽ được aacutep dụng cho caacutec phản ứng của caacutec đối tượng
với nhau Caacutec qui định kiềm tỏa phản ứng đối với một sự kiện sẽ
xaacutec định rotilde hơn caacutec trạng thaacutei
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Những sự kiện vagrave sự chuyển tải nagraveo lagrave khocircng thể xảy ra Nhiều
khi coacute một số sự kiện hoặc sự thay đổi trạng thaacutei khocircng thể xảy ra
Viacute dụ như baacuten một chiếc ocirc tocirc đatilde được baacuten rồi
Caacutei gigrave khiến cho một đối tượng được tạo ra Đối tượng được tạo ra
để trả lời cho một sự kiện Viacute dụ như một sinh viecircn ghi danh cho
một khoacutea học
Caacutei gigrave khiến cho một đối tượng bị hủy Đối tượng sẽ bị hủy đi khi
chuacuteng khocircng được cần tới nữa Viacute dụ khi một sinh viecircn kết thuacutec một
khoacutea học
Caacutei gigrave khiến cho đối tượng cần phải được taacutei phacircn loại (reclassfied)
Những loại sự kiện như một nhacircn viecircn được tăng chức thagravenh nhagrave
quản trị sẽ khiến cho động taacutec taacutei phacircn loại của nhacircn viecircn đoacute được
thực hiện
74- Một số lời maacutech bảo cho việc tạo dựng biểu đồ trạng thaacutei
Chuyển biểu đồ tuần tự thagravenh biểu đồ trạng thaacutei
Xaacutec định caacutec vograveng lặp (loop)
Bổ sung thecircm caacutec điều kiện biecircn vagrave caacutec điều kiện đặc biệt
Trộn lẫn caacutec cảnh kịch khaacutec vagraveo trong biểu đồ trạng thaacutei
Một khi mocirc higravenh đatilde được tạo necircn hatildey necircu ra caacutec cacircu hỏi vagrave kiểm tra xem mocirc
higravenh coacute khả năng cung cấp tất cả caacutec cacircu trả lời Qui trigravenh sau đacircy cần phải được
nhắc lại cho mỗi đối tượng
741- Chuyển biểu đồ tuần tự thagravenh biểu đồ trạng thaacutei
Hatildey dotildei theo một chuỗi caacutec sự kiện được miecircu tả trong biểu đồ
chuỗi nagravey phải mang tiacutenh tiecircu biểu cho caacutec tương taacutec trong hệ thống
Hatildey quan saacutet caacutec sự kiện ảnh hưởng đến đối tượng magrave ta đang
nghiecircn cứu
Hatildey sắp xếp caacutec sự kiện thagravenh một đường dẫn daacuten nhatilden input
(hoặc entry) vagrave output (exit) cho caacutec sự kiện Khoảng caacutech giữa hai
sự kiện nagravey sẽ lagrave một trạng thaacutei
Nếu cảnh kịch coacute thể được nhắc đi nhắc lại rất nhiều lần (vocirc giới
hạn) hatildey nối đường dẫn từ trạng thaacutei cuối cugraveng đến trạng thaacutei đầu
tiecircn
Biểu đồ sau đacircy chỉ ra biểu đồ trạng thaacutei của một lớp maacutey ATM được chiết suất
từ biểu đồ tuần tự hoặc biểu đồ cộng taacutec đatilde được trigravenh bagravey trong caacutec phần trước
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 610- Chuyển một biểu đồ tuần tự sang biểu đồ trạng thaacutei
742- Nhận ra caacutec vograveng lặp (loop)
Một chuỗi sự kiện coacute thể được nhắc đi nhắc lại vocirc số lần được gọi lagrave vograveng lặp
(loop)
Higravenh 611- Biểu đồ lặp
Chuacute yacute
Trong một vograveng lặp chuỗi caacutec sự kiện được nhắc đi nhắc lại cần
phải đồng nhất với nhau Nếu coacute một chuỗi caacutec sự kiện khaacutec chuỗi
khaacutec thigrave trường hợp đoacute khocircng coacute vograveng lặp
Lyacute tưởng nhất lagrave một trạng thaacutei trong vograveng lặp sẽ coacute sự kiện kết
thuacutec Đacircy lagrave yếu tố quan trọng nếu khocircng thigrave vograveng lặp sẽ khocircng
bao giờ kết thuacutec
743- Bổ sung thecircm caacutec điều kiện biecircn vagrave caacutec điều kiện đặc
biệt
Sau khi đatilde hoagraven tất biểu đồ trạng thaacutei cho mọi đối tượng cần thiết trong hệ
thống đatilde đến luacutec chuacuteng ta cần kiểm tra đối chứng chuacuteng với điều kiện biecircn vagrave
caacutec điều kiện đặc biệt khaacutec những điều kiện rất coacute thể đatilde chưa được quan tacircm
đủ độ trong thời gian tạo dựng biểu đồ trạng thaacutei Điều kiện biecircn lagrave những điều
kiện thao taacutec trecircn giaacute trị đacircy lagrave những giaacute trị nằm becircn ranh giới của một điều
kiện để quyết định về trạng thaacutei của đối tượng viacute dụ như quy định về kỳ hạn của
CuuDuongThanCongcom httpsfbcomtailieudientucntt
một tagravei khoản lagrave 30 ngagravey thigrave ngagravey thứ 31 đối với tagravei khoản nagravey sẽ lagrave một điều
kiện biecircn Caacutec điều kiện đặc biệt lagrave những điều kiện ngoại lệ viacute dụ ngagravey thứ 30
của thaacuteng 2 năm 2000 (nếu coacute một điều kiện thật sự như vậy tồn tại ngoagravei đời
thực)
744- Trộn lẫn caacutec cảnh kịch khaacutec vagraveo trong biểu đồ trạng
thaacutei
Một khi biểu đồ trạng thaacutei cho một đối tượng đatilde sẵn sagraveng chuacuteng ta cần phải trộn
những chuỗi sự kiện coacute ảnh hưởng đến đối tượng nagravey vagraveo trong biểu đồ trạng
thaacutei Điều nagravey coacute nghĩa lagrave chuacuteng ta cần phải quan saacutet caacutec hiệu ứng giaacuten tiếp của
caacutec sự kiện khaacutec đối với đối tượng đang lagrave chủ đề chiacutenh của biểu đồ trạng thaacutei
Đacircy lagrave việc quan trọng bởi caacutec đối tượng trong một hệ thống tương taacutec với nhau
vagrave vigrave caacutec đối tượng khaacutec cũng coacute khả năng gacircy necircn sự kiện cho một đối tượng
định trước necircn lối ứng xử nagravey cũng cần phải được thể hiện trong biểu đồ trạng
thaacutei
Điểm bắt đầu cho cocircng việc nagravey lagrave
Ấn định một điểm bắt đầu chung cho tất cả caacutec chuỗi sự kiện bổ
sung
Xaacutec định điểm nơi caacutec ứng xử bắt đầu khaacutec biệt với những ứng xử
đatilde được mocirc higravenh hoacutea trong biểu đồ trạng thaacutei
Bổ sung thecircm sự caacutec biến đổi mới từ trạng thaacutei nagravey trong tư caacutech một đường
dẫn thay thế Cần để yacute đến những đường dẫn coacute vẻ ngoagravei đồng nhất nhưng thật
ra coacute khaacutec biệt trong một tigravenh huống nhất định nagraveo đoacute
Hatildey chuacute yacute đến caacutec sự kiện xảy ra trong những tigravenh huống bất tiện Mỗi sự kiện
do khaacutech hagraveng hay người sử dụng gacircy necircn đều coacute thể sa vagraveo trạng thaacutei của caacutec
sự kiện bất tiện Hệ thống khocircng nắm quyền điều khiển đối với người sử dụng vagrave
người sử dụng coacute thể quyết định để lagravem nảy ra một sự kiện tại một thời điểm
tiện lợi đối với anh ta Viacute dụ như khaacutech hagraveng coacute thể quyết định kết thuacutec trước kỳ
hạn một tagravei khoản đầu tư
Một trường hợp khaacutec cũng cần phải được xử lyacute lagrave sự kiện do người sử dụng gacircy
necircn khocircng thể xảy ra Coacute một loạt caacutec lyacute do (người sử dụng thiếu tập trung
buồn nản lơ đatildeng) khiến cho sự kiện loại nagravey khocircng xảy ra Cả trường hợp nagravey
cũng phải được xử lyacute thấu đaacuteo Viacute dụ một khaacutech hagraveng thất bại trong việc baacuteo cho
nhagrave băng biết những mệnh lệnh của anh ta về kỳ hạn của tagravei khoản một tấm
seacutec được viết ra nhưng lại khocircng coacute khả năng giải tỏa mức tiền cần thiết
Nhigraven theo phương diện caacutec biểu đồ trạng thaacutei như lagrave một thagravenh phần của mocirc
higravenh động cần chuacute yacute những điểm sau
Biểu đồ trạng thaacutei chỉ cần được tạo dựng necircn cho caacutec lớp đối tượng
coacute ứng xử động quan trọng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Hatildey thẩm tra biểu đồ trạng thaacutei theo khiacutea cạnh tiacutenh nhất quaacuten đối
với những sự kiện dugraveng chung để cho toagraven bộ mocirc higravenh động được
đuacuteng đắn
Dugraveng caacutec trường hợp sử dụng để hỗ trợ cho quaacute trigravenh tạo dựng biểu
đồ trạng thaacutei
Khi định nghĩa một trạng thaacutei hatildey chỉ để yacute đến những thuộc tiacutenh
liecircn quan
8- BIỂU ĐỒ HOẠT ĐỘNG (ACTIVITY DIAGRAM)
Biểu đồ hoạt động nắm bắt hagravenh động vagrave caacutec kết quả của chuacuteng Biểu đồ hoạt
động tập trung vagraveo cocircng việc được thực hiện trong khi thực thi một thủ tục
(hagravem) caacutec hoạt động trong một lần thực thi một trường hợp sử dụng hoặc trong
một đối tượng Biểu đồ hoạt động lagrave một biến thể của biểu đồ trạng thaacutei vagrave coacute
một mục tiecircu tương đối khaacutec đoacute lagrave nắm bắt hagravenh động (cocircng việc vagrave những hoạt
động phải được thực hiện) cũng như kết quả của chuacuteng theo sự biến đổi trạng
thaacutei Caacutec trạng thaacutei trong biểu đồ hoạt động (được gọi lagrave caacutec trạng thaacutei hagravenh
động) sẽ chuyển sang giai đoạn kế tiếp khi hagravenh động trong trạng thaacutei nagravey đatilde
được thực hiện xong (magrave khocircng xaacutec định bất kỳ một sự kiện nagraveo theo như nội
dung của biểu đồ trạng thaacutei) Một sự điểm phacircn biệt khaacutec giữa biểu đồ hoạt động
vagrave biểu đồ trạng thaacutei lagrave caacutec hagravenh động của noacute được định vị trong caacutec luồng
(swimlane) Một luồng sẽ gom nhoacutem caacutec hoạt động chuacute yacute tới khaacutei niệm người
chịu traacutech nhiệm cho chuacuteng hoặc chuacuteng nằm ở đacircu trong một tổ chức Một biểu
đồ hoạt động lagrave một phương phaacutep bổ sung cho việc miecircu tả tương taacutec đi kegravem với
traacutech nhiệm thể hiện rotilde caacutec hagravenh động xảy ra như thế nagraveo chuacuteng lagravem gigrave (thay
đổi trạng thaacutei đối tượng) chuacuteng xảy ra khi nagraveo (chuỗi hagravenh động) vagrave chuacuteng xảy
ra ở đacircu (luồng hagravenh động)
Biểu đồ hoạt động coacute thể được sử dụng cho nhiều mục điacutech khaacutec nhau viacute dụ như
Để nắm bắt cocircng việc (hagravenh động) sẽ phải được thực thi khi một
thủ tục được thực hiện Đacircy lagrave taacutec dụng thường gặp nhất vagrave quan
trọng nhất của biểu đồ hoạt động
Để nắm bắt cocircng việc nội bộ trong một đối tượng
Để chỉ ra một nhoacutem hagravenh động liecircn quan coacute thể được thực thi ra
sao vagrave chuacuteng sẽ ảnh hưởng đến những đối tượng nằm xung quanh
chuacuteng như thế nagraveo
Để chỉ ra một trường hợp sử dụng coacute thể được thực thể hoacutea như
thế nagraveo theo khaacutei niệm hagravenh động vagrave caacutec sự biến đổi trạng thaacutei của
đối tượng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Để chỉ ra một doanh nghiệp hoạt động như thế nagraveo theo caacutec khaacutei
niệm cocircng nhacircn (taacutec nhacircn) qui trigravenh nghiệp vụ (workflow) hoặc tổ
chức vagrave đối tượng (caacutec khiacutea cạnh vật lyacute cũng như tri thức được sử
dụng trong doanh nghiệp)
Biểu đồ hoạt động coacute thể được coi lagrave một loại Flow chart Điểm khaacutec biệt lagrave Flow
Chart bigravenh thường ra chỉ được aacutep dụng đối với caacutec qui trigravenh tuần tự biểu đồ hoạt
động coacute thể xử lyacute cả caacutec caacutec qui trigravenh song song
Hagravenh động vagrave sự thay đổi trạng thaacutei
Một hagravenh động được thực hiện để sản sinh ra một kết quả Việc thực thi của thủ
tục coacute thể được miecircu tả dưới dạng một tập hợp của caacutec hagravenh động liecircn quan sau
nagravey chuacuteng sẽ được chuyển thagravenh caacutec dograveng code thật sự Theo như định nghĩa ở
phần trước một biểu đồ hoạt động chỉ ra caacutec hagravenh động cugraveng mối quan hệ giữa
chuacuteng vagrave coacute thể coacute một điểm bắt đầu vagrave một điểm kết thuacutec Biểu đồ hoạt động
sử dụng cũng cugraveng những kyacute hiệu như trong biểu đồ trạng thaacutei bigravenh thường
Higravenh 612- Khi một người gọi taacutec vụ PrintAllCustomer (trong lớp
CustomerWindow) caacutec hagravenh động khởi động hagravenh động đầu tiecircn lagrave hiện một
hộp thocircng baacuteo lecircn magraven higravenh hagravenh động thứ hai lagrave tạo một tập tin postscript
hagravenh động thứ ba lagrave gởi file postscript đến maacutey in vagrave hagravenh động thứ tư lagrave xoacutea
hộp thocircng baacuteo trecircn magraven higravenh Caacutec hagravenh động được chuyển tiếp tự động chuacuteng
xảy ra ngay khi hagravenh động trong giai đoạn nguồn được thực hiện
Caacutec sự thay đổi coacute thể được bảo vệ bởi caacutec điều kiện canh giữ (Guard-condition)
caacutec điều kiện nagravey phải được thỏa matilden thigrave sự thay đổi mới nổ ra Một kyacute hiệu higravenh
thoi được sử dụng để thể hiện một quyết định Kyacute hiệu quyết định coacute thể coacute một
hoặc nhiều sự thay đổi đi vagraveo vagrave một hoặc nhiều sự thay đổi đi ra được daacuten nhatilden
đi kegravem caacutec điều kiện bảo vệ Bigravenh thường ra một trong số caacutec sự thay đổi đi ra
bao giờ cũng được thỏa matilden (lagrave đuacuteng)
Một sự thay đổi được chia thagravenh hai hay nhiều sự thay đổi khaacutec sẽ dẫn đến caacutec
hagravenh động xảy ra song song Caacutec hagravenh động được thực hiện đồng thời mặc dugrave
chuacuteng cũng coacute thể được thực hiện lần lượt từng caacutei một Yếu tố quan trọng ở đacircy
CuuDuongThanCongcom httpsfbcomtailieudientucntt
lagrave tất cả caacutec thay đổi đồng thời phải được thực hiện trước khi chuacuteng được thống
nhất lại với nhau (nếu coacute) Một đường thẳng nằm ngang kẻ đậm (cograven được gọi lagrave
thanh đồng hộ hoacutea ndash Synchronisation Bar) chỉ rằng một sự thay đổi được chia
thagravenh nhiều nhaacutenh khaacutec nhau vagrave chỉ ra một sự chia sẻ thagravenh caacutec hagravenh động song
song Cũng đường thẳng đoacute được sử dụng để chỉ ra sự thống nhất caacutec nhaacutenh
Kiacute hiệu UML cho caacutec thagravenh phần căn bản của biểu đồ hoạt động
Hoạt động (Activity) lagrave một qui trigravenh được định nghĩa rotilde ragraveng coacute
thể được thực thi qua một hagravem hoặc một nhoacutem đối tượng Hoạt
động được thể hiện bằng higravenh chữ nhật bo trograven cạnh
Thanh đồng bộ hoacutea (Synchronisation bar) chuacuteng cho pheacutep ta mở
ra hoặc lagrave đoacuteng lại caacutec nhaacutenh chạy song song nội bộ trong tiến trigravenh
Higravenh 613- Thanh đồng bộ hoacutea
Điều kiện canh giữ (Guard Condition) caacutec biểu thức logic coacute giaacute trị
hoặc đuacuteng hoặc sai Điều kiện canh giữ được thể hiện trong ngoặc
vuocircng viacute dụ
[Customer existing]
9- VOtildeNG ĐỜI ĐỐI TƢỢNG (OBJECT LIFECYCLE)
Vograveng đời magrave một đối tượng đi qua phụ thuộc vagraveo loại đối tượng Coacute hai loại vograveng
đời khaacutec nhau đối với một đối tượng vograveng đời sinh ra rồi chết đi vagrave vograveng đời
vograveng lặp
91- Vograveng đời sinh ra vagrave chết đi
Trong một vograveng đời sinh ra rồi chết đi
Sẽ coacute một hay nhiều trạng thaacutei nơi đối tượng bắt đầu tồn tại
Những trạng thaacutei nagravey được gọi lagrave trạng thaacutei tạo ra đối tượng
Sẽ coacute một hay nhiều trạng thaacutei đoacuteng tư caacutech lagrave điểm kết thuacutec cho
vograveng đời của một đối tượng Những trạng thaacutei nagravey được gọi lagrave trạng
thaacutei kết thuacutec
Coacute hai loại trạng thaacutei kết thuacutec Một dạng trạng thaacutei kết thuacutec lagrave loại nơi đối tượng
bị hủy vagrave khocircng tiếp tục tồn tại nữa Loại thứ hai lagrave dạng trạng thaacutei kết thuacutec magrave
sau đoacute đối tượng sẽ được lưu trữ lại hoặc chuyển sang trạng thaacutei im lặng Đối
tượng tiếp tục tồn tại nhưng khocircng tiếp tục thể hiện ứng xử động
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Sau trạng thaacutei khởi tạo vagrave trước trạng thaacutei kết thuacutec đối tượng coacute thể đi qua một
hoặc lagrave nhiều trạng thaacutei trung gian Tại mỗi một thời điểm đối tượng phải ở một
trạng thaacutei hiện thời
Khocircng coacute một điểm nagraveo sau trạng thaacutei khởi tạo vagrave trước trạng thaacutei kết thuacutec magrave
đối tượng lại khocircng coacute trạng thaacutei
Viacute dụ cho đối tượng coacute vograveng đời sinh ra vagrave chết đi khaacutech hagraveng tagravei khoản
92- Vograveng đời lặp
Khaacutec với trường hợp sinh ra vagrave chết đi trong vograveng đời vograveng lặp
Đối tượng được coi lagrave đatilde luocircn luocircn tồn tại ở đacircy vagrave sẽ cograven matildei matildei
tiếp tục tồn tại
Khocircng coacute trạng thaacutei khởi tạo cũng khocircng coacute trạng thaacutei kết thuacutec
Mặc dugrave thật ra đối tượng đatilde được tạo ra tại một thời điểm nagraveo đoacute vagrave cũng sẽ thật
sự bị hủy diệt tại một thời điểm nagraveo đoacute nhưng noacute vẫn được coi lagrave luocircn luocircn tồn
tại vagrave coacute mặt Thường thigrave những đối tượng tỏ ra coacute một vograveng đời vograveng lặp sẽ
được tạo ra tại thời điểm cagravei đặt hệ thống vagrave sẽ chết đi khi hệ thống kết thuacutec
Một đối tượng với vograveng đời vograveng lặp sẽ coacute một hoặc lagrave nhiều trạng thaacutei ngủ yecircn
Đoacute lagrave những trạng thaacutei nơi đối tượng nằm chờ một sự kiện xảy ra Becircn cạnh đoacute
đối tượng cũng luocircn luocircn ở trạng thaacutei hiện thời
Viacute dụ cho đối tượng coacute vograveng đời lặp lại maacutey ruacutet tiền tự động (ATM) nhacircn viecircn
thu ngacircn
10- XEM XEacuteT LẠI MOcirc HIgraveNH ĐỘNG
101- Thẩm vấn biểu đồ trạng thaacutei
Sau khi đatilde hoagraven tất caacutec thagravenh phần căn bản của mocirc higravenh động như caacutec biểu đồ
tuần tự biểu đồ cộng taacutec biểu đồ trạng thaacutei vagrave biểu đồ hoạt động nhoacutem phaacutet
triển coacute thể phaacutec thảo biểu đồ thagravenh phần vagrave biểu đồ triển khai Biểu đồ triển
khai coacute thể được coi lagrave biểu đồ cuối cugraveng trong mocirc higravenh động Tới thời điểm nagravey
coacute thể coi lagrave ta đatilde hoagraven tất một phiecircn bản của mocirc higravenh động
Phần quan trọng nhất trong mocirc higravenh nagravey lagrave biểu đồ trạng thaacutei Hatildey tigravem cacircu trả lời
cho một loạt caacutec cacircu hỏi để xaacutec định xem biểu đồ trạng thaacutei đatilde đuacuteng đắn vagrave coacute
một mức độ chi tiết thiacutech hợp hay chưa Cocircng việc nagravey cần nhắm tới hai mục
điacutech
Kiểm tra tiacutenh trọn vẹn của mocirc higravenh
Đảm bảo mọi điều kiện gacircy lỗi đatilde được xử lyacute
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Trong giai đoạn nagravey coacute thể sẽ coacute caacutec cảnh kịch (scenario) mới xuất hiện vagrave gia
nhập phạm vi quan saacutet của chuacuteng ta nếu trước đoacute coacute một số trạng thaacutei chưa
được xử lyacute Những tigravenh huống loại nagravey lagrave loại vấn đề coacute thể được giải quyết song
coacute thể neacute traacutenh qua việc xaacutec định thật đầy đủ caacutec sự kiện vagrave trạng thaacutei
102- Phối hợp sự kiện
Bước cuối cugraveng lagrave một vograveng kiểm tra bổ sung nhằm đảm bảo tiacutenh đuacuteng đắn của
mocirc higravenh động
Kiểm tra để đảm bảo mỗi thocircng điệp đều coacute đối tượng gửi vagrave đối
tượng nhận Trong một số trường hợp số liệu chiacutenh xaacutec của những
đối tượng nhận sự kiện coacute thể khocircng được biết tới nhưng chuacuteng ta
phải đảm bảo rằng chuacuteng ta biết những lớp nagraveo sẽ xử lyacute những sự
kiện nagravey
Hatildey nghiecircn cứu mocirc higravenh theo khiacutea cạnh trạng thaacutei tigravem ra những
trạng thaacutei khocircng coacute trạng thaacutei dẫn trước vagrave khocircng coacute trạng thaacutei tiếp
theo Những trạng thaacutei thaacutei nagravey rất coacute thể lagrave trạng thaacutei khởi đầu
hoặc trạng thaacutei kết thuacutec Mặc dugrave vậy nếu trạng thaacutei đoacute khocircng thuộc
về một trong hai loại trạng thaacutei kia rất coacute thể đacircy lagrave một triệu
chứng cho thấy mocirc higravenh cograven thiếu điều gigrave đoacute
Nhigraven chung tất cả caacutec trạng thaacutei thường đều coacute trạng thaacutei dẫn
trước vagrave trạng thaacutei tiếp sau
Hatildey lần theo hịecircu ứng của caacutec sự kiện đi vagraveo (entry) để đảm bảo lagrave
chuacuteng tương thiacutech với caacutec trường hợp sử dụng nơi chuacuteng xuất phaacutet
Để lagravem điều nagravey hatildey lần theo một sự kiện từ một đối tượng nagravey
đến đối tượng khaacutec kiểm tra xem mỗi sự kiện coacute phugrave hợp với
trường hợp sử dụng hay khocircng Trong trường hợp coacute macircu thuẫn
hatildey sửa lại biểu đồ trạng thaacutei hoặc trường hợp sử dụng để đảm bảo
sự nhất quaacuten
Kiểm tra lại những lỗi đồng bộ coacute thể chuacuteng lagrave kết quả của một sự
kiện khocircng chờ đợi
103- Bao giờ thigrave sử dụng biểu đồ nagraveo
Khocircng cần phải vẽ tất cả caacutec loại biểu đồ động cho tất cả caacutec loại hệ thống Mặc
dugrave vậy trong một số trường hợp khaacutec nhau chuacuteng ta nhất thiết phải cần đến một
số loại biểu đồ động nhất định Sau đacircy lagrave một vagravei lời maacutech bảo coacute thể giuacutep giải
thiacutech một vagravei điều cograven chưa thocircng tỏ về việc sử dụng caacutec loại biểu đồ động
Biểu đồ tuần tự vagrave biểu đồ cộng taacutec được vẽ khi chuacuteng ta muốn xem xeacutet ứng xử
động của nhiều đối tượng lớp trong nội bộ một cảnh kịch của một trường hợp sử
dụng Biểu đồ tuần tự vagrave biểu đồ cộng taacutec rất hữu dụng trong việc chỉ ra sự cộng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
taacutec giữa caacutec đối tượng nhưng chuacuteng lại khocircng hữu dụng khi muốn miecircu tả ứng
xử chiacutenh xaacutec của một đối tượng
Biểu đồ trạng thaacutei được sử dụng để thể hiện ứng xử chiacutenh xaacutec của một đối tượng
Biểu đồ hoạt động được sử dụng để thể hiện lối ứng xử xuyecircn suốt nhiều trường
hợp sử dụng hoặc caacutec tiểu trigravenh xảy ra song song của một lần thực thi
Biểu đồ thagravenh phần vagrave biểu đồ triển khai được sử dụng để chỉ ra mối quan hệ vật
lyacute giữa phần mềm vagrave caacutec thagravenh phần phần cứng trong hệ thống
104- Lớp con vagrave biểu đồ trạng thaacutei
Tất cả caacutec lớp con đều thừa kế cả thuộc tiacutenh cũng như caacutec thủ tục của lớp cha Vigrave
vậy một lớp con cũng sẽ thừa kế cả mocirc higravenh động của lớp cha
Ngoagravei biểu đồ trạng thaacutei được thừa kế lớp con cũng coacute biểu đồ trạng thaacutei riecircng
của noacute Biểu đồ trạng thaacutei của một lớp cha sẽ được mở rộng để bao chứa lối ứng
xử chuyecircn biệt của lớp con
Biểu đồ trạng thaacutei của lớp con vagrave biểu đồ trạng thaacutei của lớp cha phải được bảo trigrave
riecircng biệt vagrave độc lập Biểu đồ trạng thaacutei của lớp con cần phải được định nghĩa sử
dụng caacutec thuộc tiacutenh của lớp con chứ khocircng phải chỉ bằng caacutec thuộc tiacutenh của lớp
cha Mặt khaacutec vẫn coacute một sự moacutec nối ngoagravei yacute muốn của lớp cha đến với lớp con
thocircng qua caacutec thuộc tiacutenh magrave chuacuteng sử dụng chung viacute dụ chỉ necircn xem xeacutet biểu
đồ trạng thaacutei cho caacutec tagravei khoản coacute kỳ hạn theo phương diện sự thay đổi của chiacutenh
caacutec thuộc tiacutenh của chuacuteng chứ khocircng phải lagrave thuộc tiacutenh của lớp cha Ta phải thực
hiện như vậy để neacute traacutenh trường hợp trộn lẫn thuộc tiacutenh của lớp con vagrave lớp cha
Việc tuacircn thủ quy tắc kể trecircn trong quaacute trigravenh vẽ biểu đồ trạng thaacutei cho một lớp
con sẽ đảm bảo tiacutenh mocircđun cho động taacutec mở rộng của bạn
11- PHỐI HỢP MOcirc HIgraveNH ĐỐI TƢỢNG VAgrave MOcirc HIgraveNH ĐỘNG
Khi kết hợp giữa caacutec mocirc higravenh đối tượng vagrave mocirc higravenh động mỗi sự kiện trong mocirc
higravenh động cần phải tương thiacutech với một thủ tục trong mocirc higravenh đối tượng Từ đoacute
suy ra mỗi sự thay đổi về mặt trạng thaacutei trong mocirc higravenh động cần phải phugrave hợp
với một thủ tục của đối tượng Hagravenh động phụ thuộc vagraveo trạng thaacutei của đối tượng
vagrave vagraveo sự kiện
Mối quan hệ giữa mocirc higravenh đối tượng vagrave mocirc higravenh động coacute thể được miecircu tả như
sau
Mocirc higravenh đối tượng lagrave cơ cấu (framework) cho mocirc higravenh động
Mocirc higravenh động xaacutec định caacutec chuỗi thay đổi được pheacutep xảy ra đối với
caacutec đối tượng trong mocirc higravenh đối tượng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Mocirc higravenh động bị hạn chế chỉ trong những đối tượng coacute mặt trong
mocirc higravenh đối tượng cũng như cấu truacutec của chuacuteng
Khocircng thể coacute một mocirc higravenh động cho một đối tượng khocircng tồn tại
trong mocirc higravenh đối tượng Coacute một mối quan hệ 1-1 giữa mocirc higravenh đối
tượng vagrave mocirc higravenh động
Mocirc higravenh động chiacutenh lagrave mocirc higravenh đối tượng cộng thecircm với phần ứng
xử sống
Mocirc higravenh đối tượng miecircu tả sự khaacutec biệt giữa caacutec đối tượng như lagrave
sự khaacutec biệt giữa caacutec lớp Khi một đối tượng ứng xử khaacutec một đối
tượng khaacutec thigrave mỗi đối tượng trong số đoacute sẽ coacute một lớp riecircng
Mặc dugrave vậy trong mocirc higravenh động sự khaacutec biệt trong ứng xử động
sẽ được mocirc higravenh hoacutea thagravenh caacutec trạng thaacutei khaacutec nhau của cugraveng một
lớp
12- TOacuteM TẮT VỀ MOcirc HIgraveNH ĐỘNG
Tất cả caacutec hệ thống đều coacute cấu truacutec tĩnh vagrave coacute ứng xử động Cấu truacutec coacute thể được
miecircu tả qua caacutec phần tử mocirc higravenh tĩnh viacute dụ như lớp quan hệ giữa caacutec lớp nuacutet
mạng vagrave thagravenh phần Khaacutei niệm ứng xử miecircu tả caacutec phần tử mocirc higravenh trong nội
bộ cấu truacutec sẽ tương taacutec với nhau dọc theo tiến trigravenh thời gian ra sao Đoacute thường
lagrave những tương taacutec được xaacutec định trước vagrave coacute thể được mocirc higravenh hoacutea Mocirc higravenh hoacutea
ứng xử động của một hệ thống gọi lagrave mocirc higravenh động được UML hỗ trợ Coacute tất cả
bốn loại biểu đồ khaacutec nhau mỗi loại với một mục điacutech khaacutec nhau biểu đồ trạng
thaacutei biểu đồ tuần tự biểu đồ cộng taacutec vagrave biểu đồ hoạt động
Biểu đồ trạng thaacutei được sử dụng để miecircu tả lối ứng xử cũng như caacutec trạng thaacutei
nội bộ trong một lớp (noacute cũng coacute thể được sử dụng cho caacutec hệ thống con hoặc
cho toagraven bộ hệ thống) Noacute tập trung vagraveo khiacutea cạnh caacutec đối tượng theo tiến trigravenh
thời gian sẽ thay đổi caacutec trạng thaacutei của chuacuteng ra sao tugravey theo những sự kiện xảy
ra lối ứng xử cũng như caacutec hagravenh động được thực hiện trong caacutec trạng thaacutei vagrave
bao giờ thigrave sự thay đổi trạng thaacutei xảy ra Một sự kiện coacute thể nổ ra khi một điều
kiện trở thagravenh được thỏa matilden khi nhận một tiacuten hiệu hoặc lệnh gọi thủ tục hoặc
lagrave khi một khoảng thời gian định trước qua đi
Biểu đồ tuần tự được sử dụng để miecircu tả một nhoacutem caacutec đối tượng sẽ tương taacutec
với nhau trong một cảnh kịch riecircng biệt như thế nagraveo Noacute tập trung vagraveo chuỗi
thocircng điệp tức lagrave cacircu hỏi caacutec thocircng điệp được gửi vagrave nhận giữa một nhoacutem caacutec
đối tượng như thế nagraveo Biểu đồ tuần tự coacute hai trục trục dọc chỉ thời gian vagrave trục
nằm ngang chỉ ra caacutec đối tượng tham gia cảnh kịch Khiacutea cạnh quan trọng nhất
của một biểu đồ tuần tự lagrave thời gian
Biểu đồ cộng taacutec được sử dụng để miecircu tả caacutec đối tượng tương taacutec với nhau
trong khocircng gian bộ nhớ (space) coacute nghĩa lagrave becircn cạnh caacutec tương taacutec động noacute
CuuDuongThanCongcom httpsfbcomtailieudientucntt
cograven miecircu tả rotilde ragraveng caacutec đối tượng được nối kết với nhau như thế nagraveo Trong biểu
đồ cộng taacutec khocircng coacute trục cho thời gian thay vagraveo đoacute caacutec thocircng điệp sẽ được
đaacutenh số để tạo chuỗi
Biểu đồ hoạt động được sử dụng để miecircu tả sự việc xảy ra ra sao cocircng việc được
thực hiện như thế nagraveo Biểu đồ hoạt động cũng coacute thể được sử dụng cho caacutec thủ
tục caacutec lớp caacutec trường hợp sử dụng vagrave cũng coacute thể được sử dụng để chỉ ra caacutec
quy trigravenh nghiệp vụ (workflow)
PHẦN CAcircU HỎI
Hỏi Thế nagraveo lagrave một vograveng lặp
Đaacutep Một chuổi sự kiện coacute thể được nhắc đi nhắc lại vocirc số lần được gọi lagrave
vograveng lặp (loop)
Hỏi Mocirc higravenh động chiacutenh lagrave mocirc higravenh đối tượng cộng thecircm phần ứng xử động
của hệ thống
Đaacutep Đuacuteng
Hỏi Caacutec sự kiện độc lập cũng coacute thể lagrave caacutec sự kiện song song
Đaacutep Đuacuteng
Hỏi Một đối tượng khocircng nhất thiết phải coacute trạng thaacutei
Đaacutep Sai mọi đối tượng đều coacute trạng thaacutei
Hỏi Một lớp coacute thể coacute trạng thaacutei ban đầu vagrave trạng thaacutei kết thuacutec
Đaacutep Sai một đối tượng coacute thể coacute trạng thaacutei ban đầu vagrave trạng thaacutei kết thuacutec
Hỏi Một vograveng đời (chu trigravenh) vograveng lặp của đối tượng khocircng coacute trạng thaacutei khởi
tạo cũng khocircng coacute trạng thaacutei kết thuacutec
Đaacutep Đuacuteng đối tượng được coi lagrave đatilde luocircn luocircn tồn tại ở đacircy vagrave sẽ cograven matildei matildei
tiếp tục tồn tại
CuuDuongThanCongcom httpsfbcomtailieudientucntt
An Introduction to the Unified Modeling Language
UMLtm
ICONIX is pleased to offer a one-day course titled An
Introduction to the Unified Modeling Language (UML)
An Introduction to the Unified Modeling Language (UML) was
developed by Kendall Scott co-author of the award-winning
book UML Distilled as well as Use Case Driven Object Modeling
with UML and author of the forthcoming UML for the Rest of Us
The course is designed to help you quickly get up to speed on
the essential aspects of the UML and the most relevant parts of
the associated Unified Process
This one-day course is designed to provide a quick but
insightful introduction to the standard visual modeling language
touching upon all of the key aspects of the UML and its
relationship with the use-case-driven architecture-centric and
iterative and incremental Unified Process The course also
provides pointers about how to go about learning more about
the UML from the published work of the three amigos as well
as the instructors own UML material
The course is presented in six parts
The Overview addresses the mission statement of the UML
how the language evolved from the work of the three amigos
and principles of modeling
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Views Phases and Diagrams addresses the five architectural
views around which the UML is centered the four Unified
Process phases to which the UML relate and the nine diagrams
at the heart of the UML
Structural (Static) Diagrams addresses the four UML diagrams
that focus on the structural aspects of a system being modeled
as well as the non-standard but popular package diagram
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Behavioral (Dynamic) Diagrams addresses the five UML
diagrams that focus on the behavioral aspects of a system being
modeled
Odds and Ends addresses areas of the UML such as templates
processes and threads and collaborations which cross the
conceptual boundaries that the diagrams establish
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Process-Specific Extensions addresses the class stereotypes
that are required for robustness analysis (which is discussed
extensively Use Case Driven Object Modeling with UML) and
other Unified Process-related extensions associated with
testing use cases and requirements
An Introduction to the Unified Modeling Language (UML) is
suitable for anyone who is interested in learning about the UML
No knowledge of object orientation is assumed however the
CuuDuongThanCongcom httpsfbcomtailieudientucntt
instructor can customize the course as needed to make it more
suitable for students who do have that knowledge The flavor of
the course that involves work with Rose assumes no experience
working with visual modeling tools
UML is a trademark of Object Management Group Inc in the
US and other countries
ICONIX Software Engineering Inc2800 28th Street Suite
320Santa Monica CA 90405Tel (310)458-0092Fax
(310)396-3454email marketingiconixswcom
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Please note that this site is no longer being updated Please
click here to return to wwwomgorg
What Is OMG-UML and Why Is It Important
As the strategic value of software increases for many companies the industry
looks for techniques to automate the production of software and to improve
quality and reduce cost and time-to-market These techniques include
component technology visual programming patterns and frameworks
Businesses also seek techniques to manage the complexity of systems as they
increase in scope and scale In particular they recognize the need to solve
recurring architectural problems such as physical distribution concurrency
replication security load balancing and fault tolerance Additionally the
development for the World Wide Web while making some things simpler has
exacerbated these architectural problems The Unified Modeling Language (UML)
was designed to respond to these needs
The Unified Modeling Language (UML) is a language for specifying visualizing
constructing and documenting the artifacts of software systems as well as for
business modeling and other non-software systems The UML represents a
collection of best engineering practices that have proven successful in the
modeling of large and complex systems
The UML was developed by Rational Software and its partners It is the successor
to the modeling languages found in the Booch OOSEJacobson OMT and other
methods Many companies are incorporating the UML as a standard into their
development processes and products which cover disciplines such as business
modeling requirements management analysis amp design programming and
testing
The Importance Of Modeling
Developing a model for an industrial-strength software system prior to its
construction or renovation is as essential as having a blueprint for a building
Good models are essential for communication among project teams and to
assure architectural soundness As the complexity of systems increases so does
the importance of good modeling techniques There are many additional factors
CuuDuongThanCongcom httpsfbcomtailieudientucntt
of a projectrsquos success but having a rigorous modeling language standard is
essential
A modeling language must include
Model elements mdash fundamental modeling concepts and semantics
Notation mdash visual rendering of model elements
Guidelines mdash idioms of usage within the trade
In the face of increasingly complex systems visualization and modeling become
essential The UML is a well-defined and widely accepted response to that need
It is the visual modeling language of choice for building object-oriented and
component-based systems
Goals of the UML
The primary goals in the design of the UML were as follows
1) Provide users with a ready-to-use expressive visual modeling language so
they can develop and exchange meaningful models
2) Provide extensibility and specialization mechanisms to extend the core
concepts
3) Be independent of particular programming languages and development
processes
4) Provide a formal basis for understanding the modeling language
5) Encourage the growth of the OO tools market
6) Support higher-level development concepts such as collaborations
frameworks patterns and components
7) Integrate best practices
Scope of the OMG-UML
The Unified Modeling Language (UML) is a language for specifying constructing
visualizing and documenting the artifacts of a software-intensive system First
and foremost the Unified Modeling Language fuses the concepts of Booch OMT
and OOSE The result is a single common and widely usable modeling language
for users of these and other methods
Second the Unified Modeling Language pushes the envelope of what can be done
with existing methods As an example the UML authors targeted the modeling of
concurrent distributed systems to assure that the UML adequately addresses
these domains
Third the Unified Modeling Language focuses on a standard modeling language
not a standard process Although the UML must be applied in the context of a
CuuDuongThanCongcom httpsfbcomtailieudientucntt
process experience has shown that different organizations and problem domains
require different processes (For example the development process for shrink-
wrapped software is an interesting one but building shrink-wrapped software is
vastly different from building hard-real-time avionics systems upon which lives
depend) Therefore the efforts concentrated first on a common metamodel
(which unifies semantics) and second on a common notation (which provides a
human rendering of these semantics) The UML authors promote a development
process that is use-case driven architecture centric and iterative and
incremental
Outside The Scope of the UML
While the UML aims to simplify and standardize modeling it is not an all
encompassing language This gives it the flexibility to be used to design a variety
of systems over a wide spectrum of industries Some major areas outside of the
scope of the UML include
Programming Languages
The UML a visual modeling language is not intended to be a visual
programming language in the sense of having all the necessary visual and
semantic support to replace programming languages The UML is a language for
visualizing specifying constructing and documenting the artifacts of a software-
intensive system but it does draw the line as you move toward code The UML
does have a tight mapping to a family of OO languages so that you can get the
best of both worlds
Tools
Standardizing a language is necessarily the foundation for tools and process The
primary goal of the OMG RFP was to enable tool interoperability However tools
and their interoperability are very dependent on a solid semantic and notation
definition such as the UML provides The UML defines a semantic metamodel
not a tool interface storage or run-time model although these should be fairly
close to one another
Process
Many organizations will use the UML as a common language for their project
artifacts but they will use the same UML diagram types in the context of
different processes The UML is intentionally process independent and defining a
standard process was not a goal of the UML or OMGrsquos RFP
Origin of UML and How It Became An OMG Standard
Identifiable object-oriented modeling languages began to appear between mid-
1970 and the late 1980s as various methodologists experimented with different
approaches to object-oriented analysis and design The number of identified
CuuDuongThanCongcom httpsfbcomtailieudientucntt
modeling languages increased from less than 10 to more than 50 during the
period between 1989-1994 Many users of OO methods had trouble finding
complete satisfaction in any one modeling language fueling the method wars
By the mid-1990s new iterations of these methods began to appear and these
methods began to incorporate each otherrsquos techniques and a few clearly
prominent methods emerged
The development of UML began in late 1994 when Grady Booch and Jim
Rumbaugh of Rational Software Corporation began their work on unifying the
Booch and OMT (Object Modeling Technique) methods In the Fall of 1995 Ivar
Jacobson and his Objectory company joined Rational and this unification effort
merging in the OOSE (Object-Oriented Software Engineering) method
As the primary authors of the Booch OMT and OOSE methods Grady Booch
Jim Rumbaugh and Ivar Jacobson were motivated to create a unified modeling
language for three reasons First these methods were already evolving toward
each other independently It made sense to continue that evolution together
rather than apart eliminating the potential for any unnecessary and gratuitous
differences that would further confuse users Second by unifying the semantics
and notation they could bring some stability to the object-oriented marketplace
allowing projects to settle on one mature modeling language and letting tool
builders focus on delivering more useful features Third they expected that their
collaboration would yield improvements in all three earlier methods helping
them to capture lessons learned and to address problems that none of their
methods previously handled well
As they began their unification they established four goals to focus their efforts
Enable the modeling of systems (and not just software) using object-
oriented concepts
Establish an explicit coupling to conceptual as well as executable artifacts
Address the issues of scale inherent in complex mission-critical systems
Create a modeling language usable by both humans and machines
The efforts of Booch Rumbaugh and Jacobson resulted in the release of the UML
09 and 091 documents in June and October of 1996 During 1996 the UML
authors invited and received feedback from the general community They
incorporated this feedback but it was clear that additional focused attention was
still required
While Rational was bringing UML together efforts were being made on achieving
the broader goal of an industry standard modeling language In early 1995 Ivar
Jacobson (then Chief Technology Officer of Objectory) and Richard Soley (then
Chief Technology Officer of OMG) decided to push harder to achieve
CuuDuongThanCongcom httpsfbcomtailieudientucntt
standardization in the methods marketplace In June 1995 an OMG-hosted
meeting of all major methodologists (or their representatives) resulted in the
first worldwide agreement to seek methodology standards under the aegis of the
OMG process
During 1996 it became clear that several organizations saw UML as strategic to
their business A Request for Proposal (RFP) issued by the Object Management
Group (OMG) provided the catalyst for these organizations to join forces around
producing a joint RFP response Rational established the UML Partners
consortium with several organizations willing to dedicate resources to work
toward a strong UML 10 definition Those contributing most to the UML 10
definition included Digital Equipment Corp HP i-Logix IntelliCorp IBM ICON
Computing MCI Systemhouse Microsoft Oracle Rational Software TI and
Unisys This collaboration produced UML 10 a modeling language that was well
defined expressive powerful and generally applicable This was submitted to
the OMG in January 1997 as an initial RFP response
In January 1997 IBM ObjecTime Platinum Technology Ptech Taskon Reich
Technologies and Softeam also submitted separate RFP responses to the OMG
These companies joined the UML partners to contribute their ideas and together
the partners produced the revised UML 11 response The focus of the UML 11
release was to improve the clarity of the UML 10 semantics and to incorporate
contributions from the new partners It was submitted to the OMG for their
consideration and adopted in the fall of 1997
UML Present and Future
The UML is nonproprietary and open to all It addresses the needs of user and
scientific communities as established by experience with the underlying methods
on which it is based Many methodologists organizations and tool vendors have
committed to use it Since the UML builds upon similar semantics and notation
from Booch OMT OOSE and other leading methods and has incorporated input
from the UML partners and feedback from the general public widespread
adoption of the UML should be straightforward
There are two aspects of unified that the UML achieves First it effectively ends
many of the differences often inconsequential between the modeling languages
of previous methods Secondly and perhaps more importantly it unifies the
perspectives among many different kinds of systems (business versus software)
development phases (requirements analysis design and implementation) and
internal concepts
Although the UML defines a precise language it is not a barrier to future
improvements in modeling concepts We have addressed many leading-edge
techniques but expect additional techniques to influence future versions of the
CuuDuongThanCongcom httpsfbcomtailieudientucntt
UML Many advanced techniques can be defined using UML as a base The UML
can be extended without redefining the UML core
The UML in its current form is expected to be the basis for many tools including
those for visual modeling simulation and development environments As
interesting tool integrations are developed implementation standards based on
the UML will become increasingly available
The Meta Object Facility
The main purpose of the OMG MOF is to provide a set of CORBA interfaces that
can be used to define and manipulate a set of interoperable metamodels The
MOF is a key building block in the construction of CORBA-based distributed
development environments
The Meta Object Facility represents the integration of work currently underway
by the OMG members in the areas of object repositories object modeling tools
and meta data management in distributed object environments The MOF
specification uses the Unified Modeling Language (UML) notation The facility
interface and semantics incorporate some of the advanced meta data
management concepts that have been implemented in the commercial object
repositories development tools and object framework products developed by
the co-submitters
The specification enhances meta data management and meta data
interoperability in distributed object environments in general and in distributed
development environments in particular While the initial work addresses meta
data interoperability in object analysis and design domain it is anticipated that
the MOF will be rich enough to support additional domains Examples include
metamodels that cover the application development life cycle as well as
additional domains such as data warehouse management and business object
management OMG is expected to issue new RFPs to cover these additional
domains
Copyright copy 1997-2001 Object Management Group Inc
All Rights Reserved
For questions about the WEBSITE please contact
webeditoromgorg
For TECHNICAL questions please contact
webtechomgorg
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Object Oriented Analysis and Design Using UML
A Whitepaper by Mark Collins-Cope of Ratio Group
Introduction
Youre proficient in C++ Java or another OO language youre designing class
hierarchies using inheritance and manipulating complex pointer relationships to
store the necessary links between your classes Youve probably drawn blobs
(representing classes in some way) on whiteboards with connecting lines to
indicate the relationships between classes (inheritance or other) Perhaps youre
feeling the need for a more formal notation to express your designs - using
something that is language independent and that enables you to consider the
important aspects of design leaving the detail for later
Alternatively perhaps youre a Project Manager looking to formalise the OO
design process a little to make sure youre getting the most from your move to
C++Java or a similar language
In this paper I take a look at the UML (Unified Modelling Language) notation for
Object Oriented Analysis and Design - the emerging standard designed by Booch
Rumbaugh and Jacobson each of whom previously had their own notations
published independently
The starting point is Object Modelling a technique that enables you to focus on
class structure inheritance etc whilst avoiding language specifics such as
pointer dereferencing
Object Modelling In UML
Figure 1 - Subset of UML Object Modelling Notation - A Summary
Object Modelling is the central technique in UML It is a language independent
notation allowing the specification of classes their data or attributes(private) and
methods (public) inheritance and other more general relationships between
CuuDuongThanCongcom httpsfbcomtailieudientucntt
classes The notation itself is fairly simple to grasp (see figure 1) however this
hides the somewhat more subtle thought processes underlying a good model
The best way to understand the notation is to look at an example The following
Object Model shows a simple Banking System containing classes for Head-Office
Branch Accounts held at that Branch and the Customers who the Accounts
belong to
Figure 2 - A Simple Banking System Object Model
Examining this Object Model in more detail we can see the following information
about our class structure
A Head-Office class (containing bankName and address fields
otherwise known as attributes) administers an (unspecified) number of
Branch classes whilst a Branch is administered-by exactly one Head-
Office (the little black arrows indicates the direction in which the name
given to a relationship should be read) On the diagram this relationship is
represented by the line from the Head-Office class to the Brach class
which is labelled administers The 1 at the Head-Office end of the line
shows that exactly one Head-Office is associated with each Branch (as you
would expect) The at the Branch end of the line shows that a Head-
Office administers many Branches - again as you would expect
Similarly a Branch class (which contains manager and address
attributes) holds many Account classes whilst each Account class is-
held-by exactly one Branch We can also see that we have determined
that an Account class has a CalcCharges method (also known as
operations or member functions) defined This method when invoked will
CuuDuongThanCongcom httpsfbcomtailieudientucntt
look at the detail stored within the Account object and apply the
appropriate (undoubtedly extortionate) charges to the Account The
second method -PrintStatement - will take the details of the Account and
print them out
The inheritance triangle (labelled account-type) shows us that our
system knows about three types of Account the basic account (in this
case a virtual class called Account) and two specialised accounts - the
CurrentAccount and SavingsAccount - which are derived from Account
The fact that the CalcCharges is shown in both sub-classes indicates that
its implementation is re-defined for these classes (in C++ terms it is a
virtual function) This is indicative of the fact that charges on a
SavingsAccount are calculated in a completely different manner to
charges on a CurrentAccount
Implicit in the decision to use inheritance and redefine methods in sub-
classes is the fact that the system when implemented will use the
polymorphism features of the target language (C++ Java) to enable all
Accounts to be treated in a single coherent fashion regardless of the
particular charges mechanism involved This is of course one of the
reasons we use an object-oriented development language in the first place
Each Account belongs-to exactly one owner - the Customer class on the
diagram Customers on the other hand may have many Accounts
Its worth noting here that because an Account may belong-to a Customer
both CurrentAccounts and SavingsAccounts may also belong to a Customer In
other words the belongs-to relationship between Accounts and Customers is
inherited by the CurrentAccount and SavingsAccount classes This fact simplifies
the diagram considerably removing the need for these relationships to be noted
explicitly This simplification will also be apparent in our final implementation of
the system
Finally you can see that there are two relationships shown between the
Account and the Transaction classes This is because in our banking
system each individual transaction (credit debit etc) must have two
associated accounts - the Account the money is debit(ed)-from and the
Account the money is credit(ed)-to This enables the bank to record
exactly where each transaction has come from and gone to so to speak
These last point brings out an interesting feature of what is being shown on an
Object Model clearly it wouldnt make sense for each Transaction to be
debit(ed)-from and credit(ed)-to the same Account - no money would be
transferred Obviously although the lines (relationships) are shown to the same
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Account class they do not (necessarily) represent links to the same Account
object at run-time
A relationship shown on an Object Model indicates that some kind of run-time
link will exist between two instances of the classes shown on the Object Model
Thus the Branch to Accounts relationship should be read as follows
An instance of the class Branch will be linked to (zero to) many instances of the
class Account whilst an instance of the class Account will be linked to (one and
only) one instance of the class Branch
This can be shown more clearly by the following instance diagram (instance
diagrams are used to assist in understanding and clarifying Object Models - they
also give quite a hint as to how relationships can be implemented in
C++)
Figure 3 - Instance Diagram Showing Branch and Account objects
By now you may be beginning to see how Object Models can assist the
analysisdesign process They assist in the clarification of the relationships that
should be (somehow) represented in a software system The important point to
note hear is that we are first working out what relationships we need to
represent in our system (belongs-to etc) without worrying too much about
exactly how they should be stored Put another way Object Modelling allows us
CuuDuongThanCongcom httpsfbcomtailieudientucntt
to focus on exactly what problem we are trying to solve before we look at the
best way of implementing our model in a particular programming language
Implementing Object Models
OK thats fine you may say but how do Object Models relate to C++ or Java
exactly Lets take a look at a sub-set of our previous example
Figure 4 - Subset of Banking Model
Our Object Model shows us that we need four classes Transaction Account
Current Account and Savings Account and that our implementation must enable
us to represent the fact that any particular Account has two sets of Transactions
associated with it - which will be needed to implement the PrintStatement
method The Account CurrentAccount and SavingsAccount classes are easily
mapped to the C++ (or Java) inheritance mechanisms
class Account
data
public
virtual void CalcCharges()
void PrintStatement()
class SavingsAccount public Account
any additional data
CuuDuongThanCongcom httpsfbcomtailieudientucntt
public
virtual void CalcCharges() re-definition
use the base class PrintStatement method
class SavingsAccount public Account
any additional data
public
virtual void CalcCharges() another re-definition
use the base class PrintStatement method
Figure 5 - Mapping Object Model Inheritance To C++ Inheritance
The Transaction class may be implemented as follows
class Transaction
long value stored in pence
date_t date date of transaction
public
Access and Update functions
Date(date_t) set
date_t Date() get
Value(long) set
long Value() get
Figure 6 - Transaction Class In C++
This leaves us with the debit-from and credit-to relationships to be
implemented Here we have a number of choices linked-lists collection-classes
(dynamically bounded) arrays of pointers etc could all be used to represent
these relationships
class TransactionList
TransactionList next ptr to next element
Transaction data store the transaction here
public
void Data (Transaction ) set
Transaction Data() get
void NextItem(TransactionList ) set next ptr
TransactionList NextItem() get next ptr
Figure 7 - Simple Transaction List Handler Class
For brevity a linked-list class with a somewhat limited interface is used in this
example - although this may not the best choice
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Amending our Account class definition to use this class gives us the following
new definition
class Account
TransactionList debitedFrom debited from Tx list
TransactionList creditedTo credited to Tx list
public
virtual void CalcCharges()
void PrintStatement()
some new methods to manipulate the Transaction list
DebitTx (Transaction ) Add a debit Tx
CreditTx (Transaction ) Add a credit Tx
Transaction NextDebitTx() Iteratorget debit Tx
Transaction NextCreditTx() Iteratorget cred Tx
sample method implementation
AccountDebitTx(Transaction theTx)
add a new list contained at the beginning of the list
TransactionList tmpTxLp = debitedFrom
debitedFrom = new TransactionList
debitedFrom-gtNextItem(tmpTxLp)
new put the transaction data into the list
debitedFrom-gtData(theTx)
Figure 8 - Account Class amended to use Transaction List
Although this is a somewhat simplistic implementation - it demonstrates the
point that the model shown in figure 4 is easily translated into C++ Of course
better implementations of the debit-from relationship are possible but the fact
that the Account class interface completely hides the underlying implementation
of this relationship means that we can improve on our first cut implementation at
a later date with little impact on our overall system code In other words use of
the Account class interface has limited the impact of the relationship
implementation method something we strive to achieve when writing OO based
applications
A couple of other points are worthy of note at this stage
The linked list class contains pointers (references in Java) to Transaction
objects This is implicit in our Object Model and is what the systems users
would expect to see To see why consider the case when a new
Transaction value is entered in error The Transaction is linked to two
accounts (debit-from and credit-to) If the Transaction object is shared
only one object need be modified to rectify the situation Using two objects
would either mean that either the system has to update two objects
CuuDuongThanCongcom httpsfbcomtailieudientucntt
(equals more coding work) or that the user has to update two
Transactions (equals greater potential for mistakes)
Although our Object Model debit-from relationship uses a linked list
there are many alternatives to this choice - including the use of a
relational database to underpin the system The point is however no
matter what mechanism is used we are actually trying to implement a
many-to-one relationship between an Account and a Transaction It is
this relationship that exists in the banking problem domain - not a
relationship involving linked lists or collection classes Object Modelling
enables us to spot the relationship required by the problem domain and
then choose the best way of implementing it
So far we have only implemented the debit-from relationship in one
direction- from the Account class to the Transaction class Our model does
not (yet) specify in which direction the relationship will be traversed If we
need to traverse the relationship in both directions - getting from the
Transaction to the related Account - our implementation will prove
insufficient and some form of double pointer schema may be needed
Much work would have been saved if we had known this fact before we
had started writing the code
Although our Object Model provided a starting point for our
implementation it was not complete for example new methods have been
added to the Account class
Other factors may also influence our choice of implementation do we
need a direct form of access - for example using a Transaction number to
go directly from the Account to the relevant Transaction If we do then a
linked-list will prove an inefficient choice of implementation Again it
would be very useful to know this type of information before we start
trying to implement the relationship
From these points we can see that we need to consider the wider requirements
of our system before we can come up with the right implementation of our
debit-from relationship (not to mention the many other classes and
relationships that might be required) We cant produce a good design for a
system unless we consider all the required functionality - in detail Use Cases
provide the mechanism for doing this
Use Cases In UML
Use Cases are used to document system requirements They provide a useful
technique which in conjunction with Object Modelling help us to clarify exactly
what the system is supposed to do Lets take a look at the requirements for our
banking system
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Figure 9 - Use Cases for Banking System
This Use Case diagram shows us the following
The required business functions - that is the type of operation youd
expect to find on the menu of the application once it had been developed
In this case we have identified the following functions
Bank managers need to periodically print out a report detailing all the
customers who are overdrawn these appear on the branch printer
Customers may use the system for balance enquiries
Data processing staff use the system to do basic data entry (transactions
on accounts)
Clerks may periodically request statements on behalf of Customers
There are four distinct types of user of the system Bank Managers Clerks
Data Processing Assistants and Customers Each type of user typically has
their own particular set of requirements for a system hence identify user
types assists in identifying all the required system functions
The Use Case diagramming technique allows us to make a first cut at defining
the system requirements and will help us in presenting these requirements back
to the users of the system It also partitions the system into single atomic
CuuDuongThanCongcom httpsfbcomtailieudientucntt
business functions which may be used as a basis for costing the system or for
planning a phased system delivery In this case each successive phase would
deliver further batches of Use Cases
Further information is still required however to tie down the detail of what each
businese function does Use Case Detail provides this information (explanatory
notes are shown in bold)
Use Case Detail Overdrawn Report
Used By
Bank Manager
Inputs
Details what information flows from the user to the system for this particular Use
Case
theBranchSortCode - The Sort Code of the branch for which the report is
required
theOverdraftPeriod - how long an Account has been overdrawn before it is forms
part of the report
Outputs
Details what information flows from the system to the external environment in
this case the printer
overdraftReport (to branchPrinter) - structured as follows customer name
current overdraft period overdrawn (days)
Printed for all accounts that have been overdrawn for a period greater than
theOverdraftPeriod and which have not already been reported (on another
report) in the last 30 days
Pre-Conditions
What validity checks or constraints apply on the inputs (or the internal system as
a whole in some cases)
theBranchSortCode - must be a branch sort code held within the system
theOverdraftPeriod - must be a number between 0 and 100 days
Post-Condition
What changes does the Use Case make to the internal system state
Updates the reportedOnDate field of overdrawn accounts
As work progresses on the Use Cases the requirements of the system become
clearer enabling the Object Model to be updated in parallel helping us make sure
CuuDuongThanCongcom httpsfbcomtailieudientucntt
our model (and the subsequent implementation in the chosen language) contains
all the necessary classes and class inter-links
Whilst were nearer to resolving some of the issues identified at the end of the
discussion of implementing Object Models a number are still outstanding we
still cant be sure in what direction the relationships must be implemented
whether we have identified all the methods or what implementation of the links
will best suit the use to which theyll be put To sort out the remaining issues
well need to look in more detail exactly how each Use Case will be implemented
using Sequence Diagrams
Sequence Diagrams
Sequence diagrams performed on a per Use Case basis examine the flow of
method call calls within a
system
Figure 10 - Sequence Diagram for Overdrawn Report
Performing a complete analysis requires that each individual Use Case must be
examined although in practise only selected Use Cases may be examined The
Sequence Diagram in figure 10 shows the Overdrawn Report Use Case defined
earlier
The Overdrawn Report Use Case is thus implemented as follows
The Head-Office object (there is only one of them) has methods which
correspond to each Use Case - in this case an OverdrawnReport method
CuuDuongThanCongcom httpsfbcomtailieudientucntt
(this is a convenience for brevity normally there would be a single
InitialObject which the system would know about and which would
provide the entry point into the run-time model for all code)
The Head-Office OverdrawnReport method locates the relevant Branch (as
determined by the Use Case input theBranchUseCase) and cascades the
request to the Branch by calling its OverdrawnReport method
The Branch object in turn passes the request on down to each Account it
holds (using the Accounts OverdrawnReport method)
Each Account then
checks if it has been overdrawn for greater than the period specified by
theOverdraftPeriod which is passed as an argument to the
AccountOverdrawnReport method (the detail of this is not shown - but
involves summing up all the Transactions it holds and checking the date
on which it last became overdrawn)
if appropriate it then calls one of its own methods to print the report
(detail not shown) and resets its lastReportDate attribute again using its
own method
The method calls unwind until the Use Case is complete
Figure 11 - Updated Banking System Object Model
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Reviewing the Object Model (see figure 11) we can see a number of additions as
a result of completing this Sequence Diagram
OverdrawnReport methods have been added to the Branch and Account
classes
A lastReportedDate attribute and associated methods have been added to
the Account class along with a printOverdrawnReport method
The administers relationship between Head-Office and Branch has been
qualified to indicate that direct access via the Branchs sort-code is
required across the link (thus assisting in link design) - note the
consequent change in the multiplicity of the relationship from many-to-one
to one-to-one
We have added directionality to many of the links (eg see the arrow-
head on the Branch to Account link)
Of course weve only looked at one Use Case so its likely the model will change
further as more sequence diagrams are developed
The Overall Process
From the above discussion we can see that Use Cases and Sequence Diagrams
both add to integrity and completeness of our Object Model and that a good
Object Model provides a firm foundation for a good design and hence a good
implementation of the
system
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Figure 12 - The Overall Process
This approach separates the Problem and Technical Domain aspects of the
project
Problem Domain Analysis is concerned with capturing requirements and
producing a first cut Object Model Typically the Object Model will be
incomplete having only a subset of the class attributes and methods
defined
Problem Domain Design is concerned with finalising the detail of the
problem domain parts of the Object Model and results in an Object Model
with a complete set of Problem Domain specific classes attributes and
methods
User Interface Design is the first step that focuses on the Technical
Domain aspects of the problem and involves taking the Use Cases as
defined earlier and designing a Graphical User Interface appropriate to
the Technical Architecture chosen for the project (MS Windows XMotif
etc) Typically you would expect to find one controlling dialog box (which
CuuDuongThanCongcom httpsfbcomtailieudientucntt
may use other subsidiary dialogs) for each Use Case in the system Some
prototyping may be appropriate at this point in the project For small
projects prototyping and UI design may be undertaken in parallel with
Use Case development
Technical Domain High Level Design focuses on adding classes to meet
the technical needs of the project and is driven by the technical
architecture of the project Classes may be GUI related DBMS (object or
relational) related distribution related (CORBA DCOM etc) external
systems related or may provide an interface to internal system
components such as printers Previous Sequence Diagrams may be
updated to confirm the validity of the technical design - in particular you
would expect to see GUI classes appearing between the System Boundary
and the Problem Domain classes
Finally Detailed Technical Design looks at link implementations detailed
data typing of attributes full specification of all methods (including
parameters) etc The end result is a complete design of the full system
The separation between Problem Domain and the Technical Domain aspects of
the system is useful in large projects allowing the focus of those working on the
project to be clearly divided as summarised in figure 13
Figure 13 - Seperation Of Problem and Technical Domain Components of
a System
For smaller projects (one or two persons for a couple of months) the two
domains may be merged if desired
CuuDuongThanCongcom httpsfbcomtailieudientucntt
As mentioned previously Use Cases may be used in phasing a project the
process shown earlier does not prohibit this A project with 50 Use Cases could
be structured in three phases as shown in figure 14
Figure 14 - Evolutionary Phasing Of OO Project
The object-based structure of the application lends itself well to this approach
Summary
This paper has taken a look at the Use Case Object Modelling and Sequence
Diagramming notations of UML how Object Modelling maps to OO programming
languages and shown how these notations hang together to complement each
other A number of other UML notations are not covered in this article however
further information can be found on wwwratiocouk
I hope you can see that OOAD offers a number of potential benefits in an OO
based development environment These include
better modelling of the problem domain (equals happier users)
better overall software design with a strong focus on class structure
more flexible and maintainable systems through better class partitioning
good documentation (the notations) - and a single central overall design
notation (the Object Model)
a flexible approach to project phasing
assistance in tie-ing down requirements and
less work (in the long run)
Mark Collins-Cope is Technical Director at Ratio Group Ltd a consultancy and
training company specialising in OO related methods languages and
technologies For further information on OOAD using UML Java C++ Design
Patterns or related topics please contact us
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Copyright
This material remains the copyright of Ratio Group Ltd Licence is granted for the
use of this material for personal development purposes only
CuuDuongThanCongcom httpsfbcomtailieudientucntt