Upload
others
View
11
Download
0
Embed Size (px)
Citation preview
Phacircn tiacutech vagrave thiết kế HTTT theo UML
Chƣơng 1 TỔNG QUAN VỀ PHAcircN TIacuteCH THIẾT KẾ HỆ THỐNG
1- Dẫn nhập
11- Tiacutenh trực quan
12- Mocirc higravenh trừu tượng
13- Mocirc higravenh hoacutea trực quan
2- Mocirc tả chu trigravenh phaacutet triển phần mềm
21- Software Development ndash một bagravei toaacuten phức tạp
22- Chu Trigravenh Phaacutet Triển Phần Mềm (Software Development Life Cycle)
23- Caacutec giai đoạn của Chu Trigravenh Phaacutet Triển Phần Mềm
3- Phƣơng phaacutep hƣớng chức năng vagrave phƣơng phaacutep hƣớng đối tƣợng
31- Phương phaacutep hướng chức năng
32- Phương phaacutep hướng đối tượng
4- Ƣu điểm của mocirc higravenh hƣớng đối tƣợng
41- Tiacutenh taacutei sử dụng (Reusable)
42- Caacutec giai đoạn của chu trigravenh phaacutet triển phần mềm với mocirc higravenh
hướng đối tượng
Phần cacircu hỏi
Chƣơng 2 NGOcircN NGỮ MOcirc HIgraveNH HOAacute THỐNG NHẤT LAgrave GIgrave
1- Giới thiệu UML
11- Mocirc higravenh hoacutea hệ thống phần mềm
12- Trước khi UML ra đời
13- Sự ra đời của UML
14- UML (Unifield Modeling Language)
CuuDuongThanCongcom httpsfbcomtailieudientucntt
15- Phương phaacutep vagrave caacutec ngocircn ngữ mocirc higravenh hoaacute
2- UML trong phacircn tiacutech thiết kế hệ thống
3- UML vagrave caacutec giai đoạn phaacutet triển hệ thống
Phần cacircu hỏi
Chƣơng 3 KHAacuteI QUAacuteT VỀ UML
1- UML vagrave caacutec giai đoạn của chu trigravenh phaacutet triển phần mềm
11- Giai đoạn nghiecircn cứu sơ bộ
12- Giai đoạn phacircn tiacutech
13- Giai đoạn thiết kế
14- Giai đoạn xacircy dựng
15- Thử nghiệm
2- Caacutec thagravenh phần của ngocircn ngữ UML
3- Hƣớng nhigraven (View)
31- Hướng nhigraven Use case (Use case View)
32- Hướng nhigraven logic (Logical View)
33- Hướng nhigraven thagravenh phần (Component View)
34- Hướng nhigraven song song (Concurrency View)
35- Hướng nhigraven triển khai (Deployment View)
4- Biểu đồ (diagram)
41- Biểu đồ Use case (Use Case Diagram)
42- Biểu đồ lớp (Class Diagram)
43- Biểu đồ đối tượng (Object Diagram)
44- Biểu đồ trạng thaacutei (State Diagram)
45- Biểu đồ trigravenh tự (Sequence Diagram)
46- Biểu đồ cộng taacutec (Collaboration Diagram)
CuuDuongThanCongcom httpsfbcomtailieudientucntt
47- Biểu đồ hoạt động (Activity Diagram)
48- Biểu đồ thagravenh phần (Component Diagram)
49- Biểu đồ triển khai (Deployment Diagram)
5- Phần tử mocirc higravenh (model element)
6- Cơ chế chung (General Mechanism)
61- Trang triacute (Adornment)
62- Ghi chuacute (Note)
63- Đặc tả (Specification)
7- Mở rộng UML
71- Khuocircn mẫu (Stereotype)
72- Giaacute trị điacutenh kegravem (Tagged Value)
73- Hạn chế (Constraint)
8- Mocirc higravenh hoacutea với UML
9- Cocircng cụ (Tool)
10- Toacutem tắt về UML
Phần Cacircu hỏi
Chƣơng 4 Mocirc higravenh hoacutea USE CASE
1- Giới thiệu Use Case
2- Một số viacute dụ Use Case
3- Sự cần thiết phải coacute Use Case
4- Mocirc higravenh hoacutea Use Case
5- Biểu đồ Use Case
51- Hệ thống
52- Taacutec nhacircn
53- Tigravem taacutec nhacircn
54- Biểu diễn taacutec nhacircn trong ngocircn ngữ UML
CuuDuongThanCongcom httpsfbcomtailieudientucntt
55- Use Case
56- Tigravem Use Case
57- Viacute dụ tigravem Use Case
6- Caacutec biến thể (Variations) trong một Use Case
7- Quan hệ giữa caacutec Use Case
71- Quan hệ mở rộng
72- Quan hệ sử dụng
73- Quan hệ chung nhoacutem
8- Miecircu tả Use Case
9- Thử Use Case
10- Thực hiện caacutec Use Case
11- Toacutem tắt về Use Case
Phần cacircu hỏi
Chƣơng 6 MOcirc HIgraveNH ĐỘNG
1- Sự cần thiết coacute mocirc higravenh động (Dynamic model)
2- Caacutec thagravenh phần của mocirc higravenh động
3- Ƣu điểm của mocirc higravenh động
4- Sự kiện vagrave thocircng điệp (Event amp Message)
41- Sự kiện (Event)
42- Thocircng điệp (Message)
5- Biểu đồ tuần tự (Sequence diagram)
6- Biểu đồ cộng taacutec (Collaboration Diagram)
7- Biểu đồ trạng thaacutei (State Diagram)
71- Trạng thaacutei vagrave sự biến đổi trạng thaacutei (State transition)
72- Biểu đồ trạng thaacutei
73- Nhận biết trạng thaacutei vagrave sự kiện
CuuDuongThanCongcom httpsfbcomtailieudientucntt
74- Một số lời maacutech bảo cho việc tạo dựng biểu đồ trạng thaacutei
8- Biểu đồ hoạt động (Activity Diagram)
9- Vograveng đời đối tƣợng (Object lifecycle)
91- Vograveng đời sinh ra vagrave chết đi
92- Vograveng đời lặp
10- Xem xeacutet lại mocirc higravenh động
101- Thẩm vấn biểu đồ trạng thaacutei
102- Phối hợp sự kiện
103- Bao giờ thigrave sử dụng biểu đồ nagraveo
104- Lớp con vagrave biểu đồ trạng thaacutei
11- Phối hợp mocirc higravenh đối tƣợng vagrave mocirc higravenh động
12- Toacutem tắt về mocirc higravenh động
Phần cacircu hỏi
CuuDuongThanCongcom httpsfbcomtailieudientucntt
1- DẪN NHẬP
11- Tiacutenh trực quan
Chuacuteng ta coacute thể thấy rằng Một số tập hợp dữ liệu phức tạp nhất định khi
được trigravenh bagravey bằng đồ thị sẽ truyền tải đến người đọc nhiều thocircng tin hơn
so với caacutec dữ liệu thocirc Với phần mềm cũng vậy khi ngagravenh Cocircng nghiệp
của chuacuteng ta ngagravey cagraveng phaacutet triển caacutec hệ thống sẽ trở necircn phức tạp hơn
Khả năng nắm bắt vagrave kiểm soaacutet sự phức tạp đoacute của chuacuteng ta đi kegravem với
khả năng trigravenh bagravey hệ thống một caacutech toagraven diện - một sự trigravenh bagravey vượt ra
ngoagravei giới hạn của những dograveng lệnh thocirc Sự thagravenh cocircng trecircn thị trường của
những ngocircn ngữ như Visual Basic vagrave phần giao diện trực quan của C++
Java đatilde cho thấy sự trigravenh bagravey trực quan mang tiacutenh cốt yếu đối với quaacute
trigravenh phaacutet triển caacutec hệ thống phức tạp
12- Mocirc higravenh trừu tượng
Trước đacircy coacute một thời gian dagravei ngagravenh cocircng nghiệp chuacuteng ta đatilde phải noacutei
tới một Cuộc khủng hoảng phần mềm Caacutec cuộc tranh luận đều dựa trecircn
thực tế lagrave chẳng những nhiều đồ aacuten phần mềm khocircng thể sản sinh ra
những hệ thống thoả matilden đogravei hỏi vagrave nhu cầu của khaacutech hagraveng magrave cograven
vượt quaacute ngacircn saacutech vagrave thời hạn Caacutec cocircng nghệ mới như lập trigravenh hướng
đối tượng lập trigravenh trực quan cũng như caacutec mocirci trường phaacutet triển tiecircn tiến
coacute giuacutep chuacuteng ta nacircng cao năng suất lao động nhưng trong nhiều trường
hợp chuacuteng chỉ hướng tới tầng thấp nhất của việc phaacutet triển phần mềm
phần viết lệnh (coding) Một trong những vấn đề chiacutenh của ngagravenh phaacutet
triển phần mềm thời nay lagrave coacute nhiều đồ aacuten bắt tay vagraveo lập trigravenh quaacute sớm
vagrave tập trung quaacute nhiều vagraveo việc viết code Lyacute do một phần lagrave do ban quản
trị thiếu hiểu biết về quy trigravenh phaacutet triển phần mềm vagrave họ nảy lo acircu khi
thấy đội quacircn lập trigravenh của họ khocircng viết code Vagrave bản thacircn caacutec lập trigravenh
viecircn cũng cảm thấy an tacircm hơn khi họ ngồi viết code - vốn lagrave taacutec vụ magrave
họ quen thuộc ndash hơn lagrave khi xacircy dựng caacutec mocirc higravenh trừu tượng cho hệ
thống magrave họ phải tạo necircn
13- Mocirc higravenh hoacutea trực quan
Mocirc higravenh hoaacute trực quan lagrave một phương thức tư duy về vấn đề sử dụng caacutec
mocirc higravenh được tổ chức xoay quanh caacutec khaacutei niệm đời thực Mocirc higravenh giuacutep
chuacuteng ta hiểu vấn đề giao tiếp với mọi người coacute liecircn quan đến dự aacuten
(khaacutech hagraveng chuyecircn gia lĩnh vực thuộc đề aacuten nhagrave phacircn tiacutech nhagrave thiết
kế hellip) Mocirc higravenh rất hữu dụng trong việc mocirc higravenh hoaacute doanh nghiệp soạn
thảo tagravei liệu thiết kế chương trigravenh cũng như ngacircn hagraveng dữ liệu Mocirc higravenh
CuuDuongThanCongcom httpsfbcomtailieudientucntt
giuacutep hiểu caacutec đogravei hỏi của hệ thống tốt hơn tạo caacutec thiết kế rotilde ragraveng hơn vagrave
xacircy dựng necircn caacutec hệ thống dễ bảo trigrave hơn
Mocirc higravenh lagrave kết quả của sự trừu tượng hoacutea nhằm miecircu tả caacutec thagravenh phần
cốt yếu của một vấn đề hay một cấu truacutec phức tạp qua việc lọc bớt caacutec chi
tiết khocircng quan trọng vagrave lagravem cho vấn đề trở thagravenh dễ hiểu hơn Trừu
tượng hoacutea lagrave một năng lực căn bản của con người cho pheacutep chuacuteng ta giải
quyết caacutec vấn đề phức tạp Caacutec kỹ sư nghệ sĩ vagrave thợ thủ cocircng đatilde xacircy
dựng mocirc higravenh từ hagraveng ngagraven năm nay để thử nghiệm thiết kế trước khi
thực hiện Phaacutet triển phần mềm cũng khocircng lagrave ngoại lệ Để xacircy dựng caacutec
hệ thống phức tạp nhagrave phaacutet triển phải trừu tượng hoacutea nhiều hướng nhigraven
khaacutec nhau của hệ thống sử dụng kyacute hiệu chiacutenh xaacutec để xacircy dựng mocirc higravenh
kiểm tra xem mocirc higravenh coacute thỏa matilden caacutec đogravei hỏi của hệ thống vagrave dần dần
bổ sung thecircm chi tiết để chuyển caacutec mocirc higravenh thagravenh thực hiện
Chuacuteng ta xacircy dựng mocirc higravenh cho caacutec hệ thống phức tạp bởi chuacuteng ta khocircng
thể hiểu thấu đaacuteo những hệ thống như thế trong trạng thaacutei toagraven vẹn của
chuacuteng Khả năng thấu hiểu vagrave nắm bắt tiacutenh phức tạp của con người lagrave coacute
hạn Điều nagravey ta coacute thể thấy rotilde trong viacute dụ của ngagravenh xacircy dựng Nếu bạn
muốn tạo một tuacutep lều ở goacutec vườn bạn coacute thể bắt tay vagraveo xacircy ngay Nếu
bạn xacircy một ngocirci nhagrave coacute lẽ bạn sẽ cần tới bản vẽ nhưng nếu bạn muốn
xacircy một toagrave nhagrave chọc trời thigrave chắc chắn bạn khocircng thể khocircng cần bản vẽ
Thế giới phần mềm của chuacuteng ta cũng thế Chỉ tập trung vagraveo caacutec dograveng
code hay thậm chiacute cả phacircn tiacutech Forms trong Visual Basic chẳng cung cấp
một caacutei nhigraven toagraven cục về việc phaacutet triển đồ aacuten Xacircy dựng mocirc higravenh cho
pheacutep nhagrave thiết kế tập trung vagraveo bức tranh lớn về sự tương taacutec giữa caacutec
thagravenh phần trong đồ aacuten traacutenh bị sa lầy vagraveo những chi tiết riecircng biệt của
từng thagravenh phần
Một mocirci trường kinh doanh mang tiacutenh cạnh tranh gay gắt vagrave luocircn luocircn
thay đổi dẫn đến tiacutenh phức tạp ngagravey cagraveng tăng cao vagrave tiacutenh phức tạp nagravey
đặt ra những thaacutech thức đặc trưng cho caacutec nhagrave phaacutet triển hệ thống Mocirc
higravenh giuacutep chuacuteng ta tổ chức trigravenh bagravey trực quan thấu hiểu vagrave tạo necircn caacutec
hệ thống phức tạp Chuacuteng giuacutep chuacuteng ta đaacutep ứng caacutec thaacutech thức của việc
phaacutet triển phần mềm hocircm nay cũng như ngagravey mai
2- MOcirc TẢ CHU TRIgraveNH PHAacuteT TRIỂN PHẦN MỀM
21- Software Development ndash một bagravei toaacuten phức tạp
Kinh nghiệm của nhiều nhagrave thiết kế vagrave phaacutet triển cho thấy phaacutet triển phần
mềm lagrave một bagravei toaacuten phức tạp Xin necircu một số caacutec lyacute do thường được kể
đến
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Những người phaacutet triển phần mềm rất khoacute hiểu cho đuacuteng những gigrave
người dugraveng cần
Yecircu cầu của người dugraveng thường thay đổi trong thời gian phaacutet triển
Yecircu cầu thường được miecircu tả bằng văn bản dagravei dograveng khoacute hiểu
nhiều khi thậm chiacute macircu thuẫn
Đội quacircn phaacutet triển phần mềm vốn lagrave người ngoagravei cuộc rất khoacute
nhận thức thấu đaacuteo caacutec mối quan hệ tiềm ẩn vagrave phức tạp cần được
thể hiện chiacutenh xaacutec trong caacutec ứng dụng lớn
Khả năng nắm bắt caacutec dữ liệu phức tạp của con người (tại cugraveng
một thời điểm) lagrave coacute hạn
Khoacute định lượng chiacutenh xaacutec hiệu suất của thagravenh phẩm vagrave thỏa matilden
chiacutenh xaacutec sự mong chờ từ phiacutea người dugraveng
Chọn lựa phần cứng vagrave phần mềm thiacutech hợp cho giải phaacutep lagrave một
trong những thaacutech thức lớn đối với Designer
Phần mềm ngoagravei ra cần coacute khả năng thiacutech ứng vagrave mở rộng Phần mềm
được thiết kế tốt lagrave phần mềm đứng vững trước những biến đổi trong mocirci
trường dugrave từ phiacutea cộng đồng người dugraveng hay từ phiacutea cocircng nghệ Viacute dụ
phần mềm đatilde được phaacutet triển cho một nhagrave băng cần coacute khả năng taacutei sử
dụng cho một nhagrave băng khaacutec với rất iacutet sửa đổi hoặc hoagraven toagraven khocircng cần
sửa đổi Phần mềm thoả matilden caacutec yecircu cầu đoacute được coi lagrave phần mềm coacute khả
năng thiacutech ứng
Một phần mềm coacute khả năng mở rộng lagrave phần mềm được thiết kế sao cho
dễ phaacutet triển theo yecircu cầu của người dugraveng magrave khocircng cần sửa chữa nhiều
Chiacutenh vigrave vậy một số caacutec khiếm khuyết thường gặp trong phaacutet triển phần
mềm lagrave
Hiểu khocircng đuacuteng những gigrave người dugraveng cần
Khocircng thể thiacutech ứng cho phugrave hợp với những thay đổi về yecircu cầu
đối với hệ thống
Caacutec Module khocircng khớp với nhau
Phần mềm khoacute bảo trigrave vagrave nacircng cấp mở rộng
Phaacutet hiện trễ caacutec lỗ hổng của dự aacuten
Chất lượng phần mềm keacutem
Hiệu năng của phần mềm thấp
Caacutec thagravenh viecircn trong nhoacutem khocircng biết được ai đatilde thay đổi caacutei gigrave
khi nagraveo ở đacircu tại sao phải thay đổi
CuuDuongThanCongcom httpsfbcomtailieudientucntt
22- Chu Trigravenh Phaacutet Triển Phần Mềm (Software Development Life Cycle)
Vigrave phaacutet triển phần mềm lagrave một bagravei toaacuten khoacute necircn coacute lẽ trước hết ta cần
điểm qua một số caacutec cocircng việc căn bản của quaacute trigravenh nagravey Thường người
ta hay tập hợp chuacuteng theo tiến trigravenh thời gian một caacutech tương đối xoay
quanh chu trigravenh của một phần mềm dẫn tới kết qủa khaacutei niệm Chu Trigravenh
Phaacutet Triển Phần Mềm (Software Development Life Cycle - SDLC) như sau
Chu Trigravenh Phaacutet Triển Phần Mềm lagrave một chuỗi caacutec hoạt động của nhagrave phacircn
tiacutech (Analyst) nhagrave thiết kế (Designer) người phaacutet triển (Developer) vagrave
người dugraveng (User) để phaacutet triển vagrave thực hiện một hệ thống thocircng tin
Những hoạt động nagravey được thực hiện trong nhiều giai đọan khaacutec nhau
Nhagrave phacircn tiacutech (Analyst) lagrave người nghiecircn cứu yecircu cầu của
khaacutech hagravengngười dugraveng để định nghĩa một phạm vi bagravei toaacuten nhận
dạng nhu cầu của một tổ chức xaacutec định xem nhacircn lực phương
phaacutep vagrave cocircng nghệ maacutey tiacutenh coacute thể lagravem sao để cải thiện một caacutech
tốt nhất cocircng taacutec của tổ chức nagravey
Nhagrave thiết kế (Designer) thiết kế hệ thống theo hướng cấu truacutec
của database screens forms vagrave reports ndash quyết định caacutec yecircu cầu
về phần cứng vagrave phần mềm cho hệ thống cần được phaacutet triển
Chuyecircn gia lĩnh vực (Domain Experts) lagrave những người hiểu
thực chất vấn đề cugraveng tất cả những sự phức tạp của hệ thống cần
tin học hoaacute Họ khocircng nhất thiết phải lagrave nhagrave lập trigravenh nhưng họ coacute
thể giuacutep nhagrave lập trigravenh hiểu yecircu cầu đặt ra đối với hệ thống cần phaacutet
triển Quaacute trigravenh phaacutet triển phần mềm sẽ coacute rất nhiều thuận lợi nếu
đội ngũ lagravem phần mềm coacute được sự trợ giuacutep của họ
Lập trigravenh viecircn (Programmer) lagrave những người dựa trecircn caacutec
phacircn tiacutech vagrave thiết kế để viết chương trigravenh (coding) cho hệ thống
bằng ngocircn ngữ lập trigravenh đatilde được thống nhất
Ngƣời dugraveng (User) lagrave đối tượng phục vụ của hệ thống cần được
phaacutet triển
Để cho rotilde hơn xin lấy viacute dụ về một vấn đề đơn giản sau
Người bigravenh thường chuacuteng ta khi nhigraven một chiếc xe ocirc tocirc thường sẽ coacute một
bức tranh từ becircn ngoagravei như sau
Vấn đề
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 11 Nhigraven vấn đề ocirc tocirc của người bigravenh thường
Chuyecircn gia lĩnh vực sẽ giuacutep nhagrave phacircn tiacutech trigravenh bagravey lại vấn đề như sau
Higravenh 12 Nhigraven vấn đề ocirc tocirc của chuyecircn gia phacircn tiacutech
Chiacutenh vigrave sự trợ giuacutep của chuyecircn gia lĩnh vực coacute thể đoacuteng vai trograve rất quan
trọng necircn trong những giai đoạn đầu của quaacute trigravenh phaacutet triển phần mềm
kết quả phacircn tiacutech necircn được thể hiện sao cho dễ hiểu đối với caacutec chuyecircn
gia lĩnh vực Đacircy cũng lagrave mocirct trong rất nhiều lyacute do khiến cho phương phaacutep
hướng đối tượng được nhiều người hưởng ứng
23- Caacutec giai đoạn của Chu Trigravenh Phaacutet Triển Phần Mềm
Chu trigravenh của một phần mềm coacute thể được chia thagravenh caacutec giai đoạn như
sau
Nghiecircn cứu sơ bộ (Preliminary Investigation hay cograven gọi lagrave
Feasibility Study)
Phacircn tiacutech yecircu cầu (Analysis)
Thiết kế hệ thống (Design of the System)
Xacircy dựng phần mềm (Software Construction)
Thử nghiệm hệ thống (System Testing)
Thực hiện triển khai (System Implementation)
Bảo trigrave nacircng cấp (System Maintenance)
a - Nghiecircn cứu sơ bộ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Cacircu hỏi quan trọng nhất khi phaacutet triển một hệ thống hoagraven toagraven
khocircng phải cacircu hỏi mang tiacutenh phương phaacutep luận Magrave cũng chẳng
phải cacircu hỏi về kỹ thuật Noacute lagrave một cacircu hỏi dường như coacute vẻ đơn
giản nhưng thật ra đặc biệt khoacute trả lời ―Đacircy coacute đuacuteng lagrave một hệ
thống để thực hiện khocircng Đaacuteng buồn lagrave chiacutenh cacircu hỏi nagravey trong
thực tế thường chẳng hề được đặt ra vagrave lại cagraveng khocircng được trả lời
Mặc dugrave việc lầm lẫn về phương phaacutep hay quyết định sai lầm về kỹ
thuật cũng coacute thể dẫn tới thất bại nhưng thường thigrave dự aacuten coacute thể
được cứu vatilden nếu coacute đầy đủ tagravei nguyecircn cugraveng sự cố gắng quecircn migravenh
của caacutec nhacircn viecircn tagravei giỏi Nhưng sẽ chẳng một ai vagrave một điều gigrave
cứu vatilden cho một hệ thống phần mềm hoagraven toagraven chẳng được cần tới
hoặc cố gắng tự động hoacutea một quy trigravenh lầm lạc
Trước khi bắt tay vagraveo một dự aacuten bạn phải coacute một yacute tưởng cho noacute Yacute
tưởng nagravey đi song song với việc nắm bắt caacutec yecircu cầu vagrave xuất hiện
trong giai đoạn khởi đầu Noacute hoagraven tất một phaacutet biểu Hệ thống magrave
chuacuteng ta mong muốn sẽ lagravem được những việc như sau Trong
suốt giai đoạn nagravey chuacuteng ta tạo necircn một bức tranh về yacute tưởng đoacute
rất nhiều giả thuyết sẽ được cocircng nhận hay loại bỏ Caacutec hoạt động
trong thời gian nagravey thường bao gồm thu thập caacutec yacute tưởng nhận biết
rủi ro nhận biết caacutec giao diện becircn ngoagravei nhận biết caacutec caacutec chức
năng chiacutenh magrave hệ thống cần cung cấp vagrave coacute thể tạo một vagravei
nguyecircn mẫu dugraveng để ―minh chứng caacutec khaacutei niệm của hệ thống Yacute
tưởng coacute thể đến từ nhiều nguồn khaacutec nhau khaacutech hagraveng chuyecircn
gia lĩnh vực caacutec nhagrave phaacutet triển khaacutec chuyecircn gia về kỹ nghệ caacutec
bản nghiecircn cứu tiacutenh khả thi cũng như việc xem xeacutet caacutec hệ thống
khaacutec đang tồn tại Một khiacutea cạnh cần nhắc tới lagrave code viết trong thời
kỳ nagravey thường sẽ bị bỏ đi bởi chuacuteng được viết nhằm mục điacutech
thẩm tra hay trợ giuacutep caacutec giả thuyết khaacutec nhau chứ chưa phải thứ
code được viết theo kết quả phacircn tiacutech vagrave thiết kế thấu đaacuteo
Trong giai đọan nghiecircn cứu sơ bộ nhoacutem phaacutet triển hệ thống cần
xem xeacutet caacutec yecircu cầu của doanh nghiệp (cần dugraveng hệ thống) những
nguồn tagravei nguyecircn coacute thể sử dụng cocircng nghệ cũng như cộng đồng
người dugraveng cugraveng caacutec yacute tưởng của họ đối với hệ thống mới Coacute thể
thực hiện thảo luận nghiecircn cứu xem xeacutet khiacutea cạnh thương mại
phacircn tiacutech khả năng lời-lỗ phacircn tiacutech caacutec trường hợp sử dụng vagrave tạo
caacutec nguyecircn mẫu để xacircy dựng necircn một khaacutei niệm cho hệ thống điacutech
cugraveng với caacutec mục điacutech quyền ưu tiecircn vagrave phạm vi của noacute
Thường trong giai đoạn nagravey người ta cũng tiến hagravenh tạo một phiecircn
bản thocirc của lịch trigravenh vagrave kế hoạch sử dụng tagravei nguyecircn
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Một giai đoạn nghiecircn cứu sơ bộ thiacutech đaacuteng sẽ lập necircn tập hợp caacutec
yecircu cầu (dugrave ở mức độ khaacutei quaacutet cao) đối với một hệ thống khả thi
vagrave được mong muốn kể cả về phương diện kỹ thuật lẫn xatilde hội Một
giai đoạn nghiecircn cứu sơ bộ khocircng được thực hiện thoả đaacuteng sẽ dẫn
tới caacutec hệ thống khocircng được mong muốn đắt tiền bất khả thi vagrave
được định nghĩa lầm lạc ndash những hệ thống thừơng chẳng được hoagraven
tất hay sử dụng
Kết quả của giai đoạn nghiecircn cứu sơ bộ lagrave Baacuteo Caacuteo Kết Quả Nghiecircn
Cứu Tiacutenh Khả Thi Khi hệ thống tương lai được chấp nhận dựa trecircn
bản baacuteo caacuteo nagravey cũng lagrave luacutec giai đoạn Phacircn tiacutech bắt đầu
b- Phacircn tiacutech yecircu cầu
Sau khi đatilde xem xeacutet về tiacutenh khả thi của hệ thống cũng như tạo lập
một bức tranh sơ bộ của dự aacuten chuacuteng ta bước sang giai đoạn
thường được coi lagrave quan trọng nhất trong caacutec cocircng việc lập trigravenh
hiểu hệ thống cần xacircy dựng Người thực hiện cocircng việc nagravey lagrave nhagrave
phacircn tiacutech
Quaacute trigravenh phacircn tiacutech nhigraven chung lagrave hệ quả của việc trả lời cacircu hỏi Hệ
thống cần phải lagravem gigrave Quaacute trigravenh phacircn tiacutech bao gồm việc nghiecircn
cứu chi tiết hệ thống doanh nghiệp hiện thời tigravem cho ra nguyecircn lyacute
hoạt động của noacute vagrave những vị triacute coacute thể được nacircng cao cải thiện
Becircn cạnh đoacute lagrave việc nghiecircn cứu xem xeacutet caacutec chức năng magrave hệ thống
cần cung cấp vagrave caacutec mối quan hệ của chuacuteng becircn trong cũng như
với phiacutea ngoagravei hệ thống Trong toagraven bộ giai đoạn nagravey nhagrave phacircn tiacutech
vagrave người dugraveng cần cộng taacutec mật thiết với nhau để xaacutec định caacutec yecircu
cầu đối với hệ thống tức lagrave caacutec tiacutenh năng mới cần phải được đưa
vagraveo hệ thống
Những mục tiecircu cụ thể của giai đoạn phacircn tiacutech lagrave
Xaacutec định hệ thống cần phải lagravem gigrave
Nghiecircn cứu thấu đaacuteo tất cả caacutec chức năng cần cung cấp vagrave những
yếu tố liecircn quan
Xacircy dựng một mocirc higravenh necircu bật bản chất vấn đề từ một hướng
nhigraven coacute thực (trong đời sống thực)
Trao định nghĩa vấn đề cho chuyecircn gia lĩnh vực để nhận sự đaacutenh
giaacute goacutep yacute
Kết quả của giai đoạn phacircn tiacutech lagrave bản Đặc Tả Yecircu Cầu
(Requirements Specifications)
c - Thiết kế hệ thống
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Sau giai đoạn phacircn tiacutech khi caacutec yecircu cầu cụ thể đối với hệ thống đatilde được
xaacutec định giai đoạn tiếp theo lagrave thiết kế cho caacutec yecircu cầu mới Cocircng taacutec
thiết kế xoay quanh cacircu hỏi chiacutenh Hệ thống lagravem caacutech nagraveo để thỏa matilden
caacutec yecircu cầu đatilde được necircu trong Đặc Tả Yecircu Cầu
Một số caacutec cocircng việc thường được thực hiện trong giai đoạn thiết kế
Nhận biết form nhập liệu tugravey theo caacutec thagravenh phần dữ liệu cần
nhập
Nhận biết reports vagrave những output magrave hệ thống mới phải sản sinh
Thiết kế forms (vẽ trecircn giấy hay maacutey tiacutenh sử dụng cocircng cụ thiết
kế)
Nhận biết caacutec thagravenh phần dữ liệu vagrave bảng để tạo database
Ước tiacutenh caacutec thủ tục giải thiacutech quaacute trigravenh xử lyacute từ input đến output
Kết quả giai đoạn thiết kế lagrave Đặc Tả Thiết Kế (Design Specifications) Bản
Đặc Tả Thiết Kế Chi Tiết sẽ được chuyển sang cho caacutec lập trigravenh viecircn để
thực hiện giai đoạn xacircy dựng phần mềm
d - Xacircy dựng phần mềm
Đacircy lagrave giai đoạn viết lệnh (code) thực sự tạo hệ thống Từng người viết
code thực hiện những yecircu cầu đatilde được nhagrave thiết kế định sẵn Cũng chiacutenh
người viết code chịu traacutech nhiệm viết tagravei liệu liecircn quan đến chương trigravenh
giải thiacutech thủ tục (procedure) magrave anh ta tạo necircn được viết như thế nagraveo vagrave
lyacute do cho việc nagravey
Để đảm bảo chương trigravenh được viết necircn phải thoả matilden mọi yecircu cầu coacute ghi
trước trong bản Đặc Tả Thiết Kế Chi Tiết người viết code cũng đồng thời
phải tiến hagravenh thử nghiệm phần chương trigravenh của migravenh Phần thử nghiệm
trong giai đoạn nagravey coacute thể được chia thagravenh hai bước chiacutenh
Thử nghiệm đơn vị
Người viết code chạy thử caacutec phần chương trigravenh của migravenh với dữ liệu giả
(testdummy data) Việc nagravey được thực hiện theo một kế hoạch thử cũng
do chiacutenh người viết code soạn ra Mục điacutech chiacutenh trong giai đoạn thử nagravey
lagrave xem chương trigravenh coacute cho ra những kết quả mong đợi Giai đoạn thử
nghiệm đơn vị nhiều khi được gọi lagrave Thử hộp trắng (White Box Testing)
Thử nghiệm đơn vị độc lập
Cocircng việc nagravey do một thagravenh viecircn khaacutec trong nhoacutem đảm traacutech Cần chọn
người khocircng coacute liecircn quan trực tiếp đến việc viết code của đơn vị chương
trigravenh cần thử nghiệm để đảm bảo tiacutenh ―độc lập Cocircng việc thử đợt nagravey
cũng được thực hiện dựa trecircn kế hoạch thử do người viết code soạn necircn
CuuDuongThanCongcom httpsfbcomtailieudientucntt
e- Thử nghiệm hệ thống
Sau khi caacutec thủ tục đatilde được thử nghiệm riecircng cần phải thử nghiệm toagraven
bộ hệ thống Mọi thủ tục được tiacutech hợp vagrave chạy thử kiểm tra xem mọi chi
tiết ghi trong Đặc Tả Yecircu Cầu vagrave những mong chờ của người dugraveng coacute được
thoả matilden Dữ liệu thử cần được chọn lọc đặc biệt kết quả cần được phacircn
tiacutech để phaacutet hiện mọi lệch lạc so với mong chờ
f - Thực hiện triển khai
Trong giai đoạn nagravey hệ thống vừa phaacutet triển sẽ được triển khai sao cho
phiacutea người dugraveng Trước khi để người dugraveng thật sự bắt tay vagraveo sử dụng hệ
thống nhoacutem caacutec nhagrave phaacutet triển cần tạo caacutec file dữ liệu cần thiết cũng như
huấn luyện cho người dugraveng để đảm bảo hệ thống được sử dụng hữu hiệu
nhất
g - Bảo trigrave nacircng cấp
Tugravey theo caacutec biến đổi trong mocirci trường sử dụng hệ thống coacute thể trở necircn
lỗi thời hay cần phải được sửa đổi nacircng cấp để sử dụng coacute hiệu quả Hoạt
động bảo trigrave hệ thống coacute thể rất khaacutec biệt tugravey theo mức độ sửa đổi vagrave
nacircng cấp cần thiết
Sơ đồ tổng quaacutet caacutec giai đoạn của Chu Trigravenh Phaacutet Triển Phần Mềm
Higravenh 13 Sơ đồ tổng quaacutet caacutec giai đoạn của Chu Trigravenh Phaacutet Triển Phần Mềm
CuuDuongThanCongcom httpsfbcomtailieudientucntt
3- Phương phaacutep hướng chức năng vagrave phương phaacutep hướng đối tượng
31- Phương phaacutep hướng chức năng
Đacircy lagrave lối tiếp cận truyền thống của ngagravenh Cocircng nghệ phần mềm Theo lối
tiếp cận nagravey chuacuteng ta quan tacircm chủ yếu tới những thocircng tin magrave hệ thống
sẽ giữ gigraven Chuacuteng ta hỏi người dugraveng xem họ sẽ cần những thocircng tin nagraveo
rồi chuacuteng ta thiết kế ngacircn hagraveng dữ liệu để chứa những thocircng tin đoacute cung
cấp Forms để nhập thocircng tin vagrave in baacuteo caacuteo để trigravenh bagravey caacutec thocircng tin Noacutei
một caacutech khaacutec chuacuteng ta tập trung vagraveo thocircng tin vagrave khocircng mấy để yacute đến
những gigrave coacute thể xảy ra với những hệ thống đoacute vagrave caacutech hoạt động (ứng xử)
của hệ thống lagrave ra sao Đacircy lagrave lối tiệm cận xoay quanh dữ liệu vagrave đatilde được
aacutep dụng để tạo necircn hagraveng ngagraven hệ thống trong suốt nhiều năm trời
Lối tiếp cận xoay quanh dữ liệu lagrave phương phaacutep tốt cho việc thiết kế ngacircn
hagraveng dữ liệu vagrave nắm bắt thocircng tin nhưng nếu aacutep dụng cho việc thiết kế
ứng dụng lại coacute thể khiến phaacutet sinh nhiều khoacute khăn Một trong những
thaacutech thức lớn lagrave yecircu cầu đối với caacutec hệ thống thường xuyecircn thay đổi Một
hệ thống xoay quanh dữ liệu coacute thể dể dagraveng xử lyacute việc thay đổi ngacircn hagraveng
dữ liệu nhưng lại khoacute thực thi những thay đổi trong nguyecircn tắc nghiệp vụ
hay caacutech hoạt động của hệ thống
Phương phaacutep hướng đối tượng đatilde được phaacutet triển để trả lời cho vấn đề đoacute
Với lối tiếp cận hướng đối tượng chuacuteng ta tập trung vagraveo cả hai mặt của
vấn đề thocircng tin vagrave caacutech hoạt động
32- Phương phaacutep hướng đối tượng
Hướng đối tượng lagrave thuật ngữ thocircng dụng hiện thời của ngagravenh cocircng
nghiệp phần mềm Caacutec cocircng ty đang nhanh choacuteng tigravem caacutech aacutep dụng vagrave
tiacutech hợp cocircng nghệ mới nagravey vagraveo caacutec ứng dụng của họ Thật sự lagrave đa phần
caacutec ứng dụng hiện thời đều mang tiacutenh hướng đối tượng Nhưng hướng đối
tượng coacute nghĩa lagrave gigrave
Lối tiếp cận hướng đối tượng lagrave một lối tư duy về vấn đề theo lối aacutenh xạ
caacutec thagravenh phần trong bagravei toaacuten vagraveo caacutec đối tượng ngoagravei đời thực Với lối
tiếp cận nagravey chuacuteng ta chia ứng dụng thagravenh caacutec thagravenh phần nhỏ gọi lagrave caacutec
đối tượng chuacuteng tương đối độc lập với nhau Sau đoacute ta coacute thể xacircy dựng
ứng dụng bằng caacutech chắp caacutec đối tượng đoacute lại với nhau Hatildey nghĩ đến trograve
chơi xacircy lacircu đagravei bằng caacutec mẫu gỗ Bước đầu tiecircn lagrave tạo hay mua một vagravei
loại mẫu gỗ căn bản từ đoacute tạo necircn caacutec khối xacircy dựng căn bản của migravenh
Một khi đatilde coacute caacutec khối xacircy dựng đoacute bạn coacute thể chắp raacutep chuacuteng lại với
nhau để tạo lacircu đagravei Tương tự như vậy một khi đatilde xacircy dựng một số đối
CuuDuongThanCongcom httpsfbcomtailieudientucntt
tượng căn bản trong thế giới maacutey tiacutenh bạn coacute thể chắp chuacuteng lại với nhau
để tạo ứng dụng của migravenh
Xin lấy một viacute dụ đơn giản vấn đề ruacutet tiền mặt tại nhagrave băng Caacutec ―mẫu
gỗ― thagravenh phần ở đacircy sẽ lagrave aacutenh xạ của caacutec đối tượng ngoagravei đời thực như
tagravei khoản nhacircn viecircn khaacutech hagraveng hellipVagrave ứng dụng sẽ được sẽ được nhận
diện cũng như giải đaacutep xoay quanh caacutec đối tượng đoacute
4- ƢU ĐIỂM CỦA MOcirc HIgraveNH HƢỚNG ĐỐI TƢỢNG
41- Tiacutenh taacutei sử dụng (Reusable)
Phương phaacutep phacircn tiacutech vagrave thiết kế hướng đối tượng thực hiện theo caacutec thuật ngữ
vagrave khaacutei niệm của phạm vi lĩnh vực ứng dụng (tức lagrave của doanh nghiệp hay đơn vị
magrave hệ thống tương lai cần phục vụ) necircn noacute tạo sự tiếp cận tương ứng giữa hệ
thống vagrave vấn đề thực ngoagravei đời Trong viacute dụ baacuten xe ocirc tocirc mọi giai đoạn phacircn tiacutech
thiết kế vagrave thực hiện đều xoay quanh caacutec khaacutei niệm như khaacutech hagraveng nhacircn viecircn
baacuten hagraveng xe ocirc tocirc hellip Vigrave quaacute trigravenh phaacutet triển phần mềm đồng thời lagrave quaacute trigravenh
cộng taacutec của khaacutech hagravengngười dugraveng nhagrave phacircn tiacutech nhagrave thiết kế nhagrave phaacutet triển
chuyecircn gia lĩnh vực chuyecircn gia kỹ thuật necircn lối tiếp cận nagravey khiến cho việc
giao tiếp giữa họ với nhau được dễ dagraveng hơn
Một trong những ưu điểm quan trọng bậc nhất của phương phaacutep phacircn tiacutech vagrave
thiết kế hướng đối tượng lagrave tiacutenh taacutei sử dụng bạn coacute thể tạo caacutec thagravenh phần (đối
tượng) một lần vagrave dugraveng chuacuteng nhiều lần sau đoacute Giống như việc bạn coacute thể taacutei sử
dụng caacutec khối xacircy dựng (hay bản sao của noacute ) trong một toagrave lacircu đagravei một ngocirci
nhagrave ở một con tagraveu vũ trụ bạn cũng coacute thể taacutei sử dụng caacutec thagravenh phần (đối
tượng) căn bản trong caacutec thiết kế hướng đối tượng cũng như code của một hệ
thống kế toaacuten hệ thống kiểm kecirc hoặc một hệ thống đặt hagraveng
Vigrave caacutec đối tượng đatilde được thử nghiệm kỹ cagraveng trong lần dugraveng trước đoacute necircn khả
năng taacutei sử dụng đối tượng coacute taacutec dụng giảm thiểu lỗi vagrave caacutec khoacute khăn trong việc
bảo trigrave giuacutep tăng tốc độ thiết kế vagrave phaacutet triển phần mềm
Phương phaacutep hướng đối tượng giuacutep chuacuteng ta xử lyacute caacutec vấn đề phức tạp trong
phaacutet triển phần mềm vagrave tạo ra caacutec thế hệ phần mềm coacute khả năng thiacutech ứng vagrave
bền chắc
42- Caacutec giai đoạn của chu trigravenh phaacutet triển phần mềm với mocirc
higravenh hƣớng đối tƣợng
Phacircn tiacutech hƣớng đối tƣợng (Object Oriented Analysis
- OOA)
Lagrave giai đọan phaacutet triển một mocirc higravenh chiacutenh xaacutec vagrave suacutec tiacutech của vấn đề coacute thagravenh
phần lagrave caacutec đối tượng vagrave khaacutei niệm đời thực dễ hiểu đối với người sử dụng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Trong giai đoạn OOA vấn đề được trigravenh bagravey bằng caacutec thuật ngữ tương ứng với
caacutec đối tượng coacute thực Thecircm vagraveo đoacute hệ thống cần phải được định nghĩa sao cho
người khocircng chuyecircn Tin học coacute thể dễ dagraveng hiểu được
Dựa trecircn một vấn đề coacute sẵn nhagrave phacircn tiacutech cần aacutenh xạ caacutec đối tượng hay thực
thể coacute thực như khaacutech hagraveng ocirc tocirc người baacuten hagraveng hellip vagraveo thiết kế để tạo ra được
bản thiết kế gần cận với tigravenh huống thực Mocirc higravenh thiết kế sẽ chứa caacutec thực thể
trong một vấn đề coacute thực vagrave giữ nguyecircn caacutec mẫu higravenh về cấu truacutec quan hệ cũng
như hagravenh vi của chuacuteng Noacutei một caacutech khaacutec sử dụng phương phaacutep hướng đối
tượng chuacuteng ta coacute thể mocirc higravenh hoacutea caacutec thực thể thuộc một vấn đề coacute thực magrave
vẫn giữ được cấu truacutec quan hệ cũng như hagravenh vi của chuacuteng
Đối với viacute dụ một phograveng baacuten ocirc tocirc giai đoạn OOA sẽ nhận biết được caacutec thực thể
như
Khaacutech hagraveng
Người baacuten hagraveng
Phiếu đặt hagraveng
Phiếu (hoaacute đơn) thanh toaacuten
Xe ocirc tocirc
Tương taacutec vagrave quan hệ giữa caacutec đối tượng trecircn lagrave
Người baacuten hagraveng dẫn khaacutech hagraveng tham quan phograveng trưng bagravey xe
Khaacutech hagraveng chọn một chiếc xe
Khaacutech hagraveng viết phiếu đặt xe
Khaacutech hagraveng trả tiền xe
Xe ocirc tocirc được giao đến cho khaacutech hagraveng
Đối với viacute dụ nhagrave băng lẻ giai đoạn OOA sẽ nhận biết được caacutec thực thể như
Loại tagravei khoản ATM (ruacutet tiền tự động) Savings (tiết kiệm) Current
(bigravenh thường) Fixed (đầu tư)
Khaacutech hagraveng
Nhacircn viecircn
Phograveng maacutey tiacutenh
Tương taacutec vagrave quan hệ giữa caacutec đối tượng trecircn
Một khaacutech hagraveng mới mở một tagravei khoản tiết kiệm
Chuyển tiền từ tagravei khoản tiết kiệm sang tagravei khoản đầu tư
Chuyển tiền từ tagravei khoản tiết kiệm sang tagravei khoản ATM
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Xin chuacute yacute lagrave ở đacircy như đatilde noacutei ta chuacute yacute đến cả hai khiacutea cạnh thocircng tin vagrave caacutech
hoạt động của hệ thống (tức lagrave những gigrave coacute thể xảy ra với những thocircng tin đoacute)
Lối phacircn tiacutech bằng kiểu aacutenh xạ đời thực vagraveo maacutey tiacutenh như thế thật sự lagrave ưu
điểm lớn của phương phaacutep hướng đối tượng
Thiết kế hƣớng đối tƣợng (Object Oriented Design -
OOD)
Lagrave giai đoạn tổ chức chương trigravenh thagravenh caacutec tập hợp đối tượng cộng taacutec mỗi đối
tượng trong đoacute lagrave thực thể của một lớp Caacutec lớp lagrave thagravenh viecircn của một cacircy cấu
truacutec với mối quan hệ thừa kế
Mục điacutech của giai đoạn OOD lagrave tạo thiết kế dựa trecircn kết quả của giai đoạn OOA
dựa trecircn những quy định phi chức năng những yecircu cầu về mocirci trường những
yecircu cầu về khả năng thực thi OOD tập trung vagraveo việc cải thiện kết quả của
OOA tối ưu hoacutea giải phaacutep đatilde được cung cấp trong khi vẫn đảm bảo thoả matilden tất
cả caacutec yecircu cầu đatilde được xaacutec lập
Trong giai đoạn OOD nhagrave thiết kế định nghĩa caacutec chức năng thủ tục
(operations) thuộc tiacutenh (attributes) cũng như mối quan hệ của một hay nhiều
lớp (class) vagrave quyết định chuacuteng cần phải được điều chỉnh sao cho phugrave hợp với
mocirci trường phaacutet triển Đacircy cũng lagrave giai đoạn để thiết kế ngacircn hagraveng dữ liệu vagrave aacutep
dụng caacutec kỹ thuật tiecircu chuẩn hoacutea
Về cuối giai đoạn OOD nhagrave thiết kế đưa ra một loạt caacutec biểu đồ (diagram) khaacutec
nhau Caacutec biểu đồ nagravey coacute thể được chia thagravenh hai nhoacutem chiacutenh lagrave Tĩnh vagrave động
Caacutec biểu đồ tĩnh biểu thị caacutec lớp vagrave đối tượng trong khi biểu đồ động biểu thị
tương taacutec giữa caacutec lớp vagrave phương thức hoạt động chiacutenh xaacutec của chuacuteng Caacutec lớp
đoacute sau nagravey coacute thể được nhoacutem thagravenh caacutec goacutei (Packages) tức lagrave caacutec đơn vị thagravenh
phần nhỏ hơn của ứng dụng
Lập trigravenh hƣớng đối tƣợng (Object Oriented
Programming - OOP)
Giai đoạn xacircy dựng phần mềm coacute thể được thực hiện sử dụng kỹ thuật lập trigravenh
hướng đối tượng Đoacute lagrave phương thức thực hiện thiết kế hướng đối tượng qua việc
sử dụng một ngocircn ngữ lập trigravenh coacute hỗ trợ caacutec tiacutenh năng hướng đối tượng Một vagravei
ngocircn ngữ hướng đối tượng thường được nhắc tới lagrave C++ vagrave Java Kết quả chung
cuộc của giai đoạn nagravey lagrave một loạt caacutec code chạy được noacute chỉ được đưa vagraveo sử
dụng sau khi đatilde trải qua nhiều vograveng quay của nhiều bước thử nghiệm khaacutec nhau
PHẦN CAcircU HỎI
Hỏi Một số tập hợp dữ liệu phức tạp nhất định khi được trigravenh bagravey bằng đồ thị
sẽ truyền tải đến người đọc nhiều thocircng tin hơn so với caacutec dữ liệu thocirc
Đaacutep Đuacuteng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Hỏi Mocirc higravenh giuacutep chuacuteng ta tổ chức trigravenh bagravey trực quan thấu hiểu vagrave tạo necircn
caacutec hệ thống phức tạp
Đaacutep Đuacuteng
Hỏi Ưu điểm lớn nhất của mocirc higravenh hướng đối tượng lagrave tiacutenh taacutei sử dụng
(Reusable)
Đaacutep Đuacuteng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
1- GIỚI THIỆU UML
11- Mocirc higravenh hoacutea hệ thống phần mềm
Như đatilde trigravenh bagravey ở phần trước mục tiecircu của giai đoạn phacircn tiacutech hệ thống lagrave sản
xuất ra một mocirc higravenh tổng thể của hệ thống cần xacircy dựng Mocirc higravenh nagravey cần phải
được trigravenh bagravey theo hướng nhigraven (View) của khaacutech hagraveng hay người sử dụng vagrave
lagravem sao để họ hiểu được Mocirc higravenh nagravey cũng coacute thể được sử dụng để xaacutec định caacutec
yecircu cầu của người dugraveng đối với hệ thống vagrave qua đoacute giuacutep chuacuteng ta đaacutenh giaacute tiacutenh
khả thi của dự aacuten
Tầm quan trọng của mocirc higravenh đatilde được lĩnh hội một caacutech thấu đaacuteo trong hầu như
tất cả caacutec ngagravenh khoa học kỹ thuật từ nhiều thế kỷ nay Bất kỳ ở đacircu khi muốn
xacircy dựng một vật thể nagraveo đoacute đầu tiecircn người ta đatilde tạo necircn caacutec bản vẽ để quyết
định cả ngoại higravenh lẫn phương thức hoạt động của noacute Chẳng hạn caacutec bản vẽ kỹ
thuật thường gặp lagrave một dạng mocirc higravenh quen thuộc Mocirc higravenh nhigraven chung lagrave một
caacutech mocirc tả của một vật thể nagraveo đoacute Vật đoacute coacute thể tồn tại trong một số giai đoạn
nhất định dugrave đoacute lagrave giai đoạn thiết kế hay giai đoạn xacircy dựng hoặc chỉ lagrave một kế
hoạch Nhagrave thiết kế cần phải tạo ra caacutec mocirc higravenh mocirc tả tất cả caacutec khiacutea cạnh khaacutec
nhau của sản phẩm Ngoagravei ra một mocirc higravenh coacute thể được chia thagravenh nhiều hướng
nhigraven mỗi hướng nhigraven trong số chuacuteng sẽ mocirc tả một khiacutea cạnh riecircng biệt của sản
phẩm hay hệ thống cần được xacircy dựng Một mocirc higravenh cũng coacute thể được xacircy dựng
trong nhiều giai đoạn vagrave ở mỗi giai đoạn mocirc higravenh sẽ được bổ sung thecircm một số
chi tiết nhất định
Mocirc higravenh thường được mocirc tả trong ngocircn ngữ trực quan điều đoacute coacute nghĩa lagrave đa
phần caacutec thocircng tin được thể hiện bằng caacutec kyacute hiệu đồ họa vagrave caacutec kết nối giữa
chuacuteng chỉ khi cần thiết một số thocircng tin mới được biểu diễn ở dạng văn bản
Theo đuacuteng như cacircu ngạn ngữ Một bức tranh noacutei nhiều hơn cả ngagraven từ Tạo mocirc
higravenh cho caacutec hệ thống phần mềm trước khi thực sự xacircy dựng necircn chuacuteng đatilde trở
thagravenh một chuẩn mực trong việc phaacutet triển phần mềm vagrave được chấp nhận trong
cộng đồng lagravem phần mềm giống như trong bất kỳ một ngagravenh khoa học kỹ thuật
nagraveo khaacutec Việc biểu diễn mocirc higravenh phải thoatilde matilden caacutec yếu tố sau
Chiacutenh xaacutec (accurate) Mocirc tả đuacuteng hệ thống cần xacircy dựng
Đồng nhất (consistent) Caacutec view khaacutec nhau khocircng được macircu
thuẩn với nhau
Coacute thể hiểu được (understandable) Cho những người xacircy dựng lẫn
sử dụng
Dễ thay đổi (changeable)
Dễ dagraveng liecircn lạc với caacutec mocirc higravenh khaacutec
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Coacute thể noacutei thecircm rằng mocirc higravenh lagrave một sự đơn giản hoaacute hiện thực Mocirc higravenh được
xacircy dựng necircn để chuacuteng ta dễ dagraveng hiểu vagrave hiểu tốt hơn hệ thống cần xacircy dựng
Tạo mocirc higravenh sẽ giuacutep cho chuacuteng ta hiểu thấu đaacuteo một hệ thống phức tạp trong sự
toagraven thể của noacute
Noacutei toacutem lại mocirc higravenh hoacutea một hệ thống nhằm mục điacutech
Higravenh dung một hệ thống theo thực tế hay theo mong muốn của
chuacuteng ta
Chỉ rotilde cấu truacutec hoặc ứng xử của hệ thống
Tạo một khuocircn mẫu hướng dẫn nhagrave phaacutet triển trong suốt quaacute trigravenh
xacircy dựng hệ thống
Ghi lại caacutec quyết định của nhagrave phaacutet triển để sử dụng sau nagravey
12- Trƣớc khi UML ra đời
Đầu những năm 1980 ngagravenh cocircng nghệ phần mềm chỉ coacute duy nhất một ngocircn
ngữ hướng đối tượng lagrave Simula Sang nửa sau của thập kỷ 1980 caacutec ngocircn ngữ
hướng đối tượng như Smalltalk vagrave C++ xuất hiện Cugraveng với chuacuteng nảy sinh nhu
cầu mocirc higravenh hoaacute caacutec hệ thống phần mềm theo hướng đối tượng Vagrave một vagravei
trong số những ngocircn ngữ mocirc higravenh hoaacute xuất hiện những năm đầu thập kỷ 90
được nhiều người dugraveng lagrave
Grady Boochrsquos Booch Modeling Methodology
James Rambaughrsquos Object Modeling Technique ndash OMT
Ivar Jacobsonrsquos OOSE Methodology
Hewlett- Packardrsquos Fusion
Coad and Yordonrsquos OOA and OOD
Mỗi phương phaacutep luận vagrave ngocircn ngữ trecircn đều coacute hệ thống kyacute hiệu riecircng phương
phaacutep xử lyacute riecircng vagrave cocircng cụ hỗ trợ riecircng khiến nảy ra cuộc tranh luận phương
phaacutep nagraveo lagrave tốt nhất Đacircy lagrave cuộc tranh luận khoacute coacute cacircu trả lời bởi tất cả caacutec
phương phaacutep trecircn đều coacute những điểm mạnh vagrave điểm yếu riecircng Vigrave thế caacutec nhagrave
phaacutet triển phần mềm nhiều kinh nghiệm thường sử dụng phối hợp caacutec điểm
mạnh của mỗi phương phaacutep cho ứng dụng của migravenh Trong thực tế sự khaacutec biệt
giữa caacutec phương phaacutep đoacute hầu như khocircng đaacuteng kể vagrave theo cugraveng tiến trigravenh thời
gian tất cả những phương phaacutep trecircn đatilde tiệm cận lại vagrave bổ sung lẫn cho nhau
Chiacutenh hiện thực nagravey đatilde được những người tiecircn phong trong lĩnh vực mocirc higravenh hoaacute
hướng đối tượng nhận ra vagrave họ quyết định ngồi lại cugraveng nhau để tiacutech hợp những
điểm mạnh của mỗi phương phaacutep vagrave đưa ra một mocirc higravenh thống nhất cho lĩnh vực
cocircng nghệ phần mềm
CuuDuongThanCongcom httpsfbcomtailieudientucntt
13- Sự ra đời của UML
Trong bối cảnh trecircn người ta nhận thấy cần thiết phải cung cấp một phương
phaacutep tiệm cận được chuẩn hoaacute vagrave thống nhất cho việc mocirc higravenh hoaacute hướng đối
tượng Yecircu cầu cụ thể lagrave đưa ra một tập hợp chuẩn hoaacute caacutec kyacute hiệu (Notation) vagrave
caacutec biểu đồ (Diagram) để nắm bắt caacutec quyết định về mặt thiết kế một caacutech rotilde
ragraveng ragravenh mạch Đatilde coacute ba cocircng trigravenh tiecircn phong nhắm tới mục tiecircu đoacute chuacuteng
được thực hiện dưới sự latildenh đạo của James Rumbaugh Grady Booch vagrave Ivar
Jacobson Chiacutenh những cố gắng nagravey dẫn đến kết quả lagrave xacircy dựng được một Ngocircn
Ngữ Mocirc Higravenh Hoaacute Thống Nhất (Unifield Modeling Language ndash UML)
UML lagrave một ngocircn ngữ mocirc higravenh hoaacute thống nhất coacute phần chiacutenh bao gồm những kyacute
hiệu higravenh học được caacutec phương phaacutep hướng đối tượng sử dụng để thể hiện vagrave
miecircu tả caacutec thiết kế của một hệ thống Noacute lagrave một ngocircn ngữ để đặc tả trực quan
hoaacute xacircy dựng vagrave lagravem sưu liệu cho nhiều khiacutea cạnh khaacutec nhau của một hệ thống
coacute nồng độ phần mềm cao UML coacute thể được sử dụng lagravem cocircng cụ giao tiếp giữa
người dugraveng nhagrave phacircn tiacutech nhagrave thiết kế vagrave nhagrave phaacutet triển phần mềm
Trong quaacute trigravenh phaacutet triển coacute nhiều cocircng ty đatilde hỗ trợ vagrave khuyến khiacutech phaacutet triển
UML coacute thể kể tới như Hewlett Packard Microsoft Oracle IBM Unisys
14- UML (Unifield Modeling Language)
Ngocircn ngữ mocirc higravenh hoacutea thống nhất (Unifield Modeling Language ndash UML) lagrave một
ngocircn ngữ để biểu diễn mocirc higravenh theo hướng đối tượng được xacircy dựng bởi ba taacutec
giả trecircn với chủ điacutech lagrave
Mocirc higravenh hoaacute caacutec hệ thống sử dụng caacutec khaacutei niệm hướng đối tượng
Thiết lập một kết nối từ nhận thức của con người đến caacutec sự kiện
cần mocirc higravenh hoaacute
Giải quyết vấn đề về mức độ thừa kế trong caacutec hệ thống phức tạp
coacute nhiều ragraveng buộc khaacutec nhau
Tạo một ngocircn ngữ mocirc higravenh hoaacute coacute thể sử dụng được bởi người vagrave
maacutey
15- Phƣơng phaacutep vagrave caacutec ngocircn ngữ mocirc higravenh hoaacute
Phương phaacutep hay phương thức (method) lagrave một caacutech trực tiếp cấu truacutec hoaacute sự
suy nghĩ vagrave hagravenh động của con người Phương phaacutep cho người sử dụng biết phải
lagravem gigrave lagravem như thế nagraveo khi nagraveo vagrave tại sao (mục điacutech của hagravenh động) Phương
phaacutep chứa caacutec mocirc higravenh (model) caacutec mocirc higravenh được dugraveng để mocirc tả những gigrave sử
dụng cho việc truyền đạt kết quả trong quaacute trigravenh sử dụng phương phaacutep Điểm
khaacutec nhau chiacutenh giữa một phương phaacutep vagrave một ngocircn ngữ mocirc higravenh hoaacute (modeling
CuuDuongThanCongcom httpsfbcomtailieudientucntt
language) lagrave ngocircn ngữ mocirc higravenh hoaacute khocircng coacute một tiến trigravenh (process) hay caacutec
cacircu lệnh (instruction) mocirc tả những cocircng việc người sử dụng cần lagravem
Một mocirc higravenh được biểu diễn theo một ngocircn ngữ mocirc higravenh hoaacute Ngocircn ngữ mocirc higravenh
hoaacute bao gồm caacutec kyacute hiệu ndash những biểu tượng được dugraveng trong mocirc higravenh ndash vagrave một
tập caacutec quy tắc chỉ caacutech sử dụng chuacuteng Caacutec quy tắc nagravey bao gồm
Syntactic (Cuacute phaacutep) cho biết higravenh dạng caacutec biểu tượng vagrave caacutech kết
hợp chuacuteng trong ngocircn ngữ
Semantic (Ngữ nghĩa) cho biết yacute nghĩa của mỗi biểu tượng chuacuteng
được hiểu thế nagraveo khi nằm trong hoặc khocircng nằm trong ngữ cảnh
của caacutec biểu tượng khaacutec
Pragmatic định nghĩa yacute nghĩa của biểu tượng để sao cho mục điacutech
của mocirc higravenh được thể hiện vagrave mọi người coacute thể hiểu được
2- UML TRONG PHAcircN TIacuteCH THIẾT KẾ HỆ THỐNG
UML coacute thể được sử dụng trong nhiều giai đoạn từ phaacutet triển thiết kế cho tới
thực hiện vagrave bảo trigrave Vigrave mục điacutech chiacutenh của ngocircn ngữ nagravey lagrave dugraveng caacutec biểu đồ
hướng đối tượng để mocirc tả hệ thống necircn miền ứng dụng của UML bao gồm nhiều
loại hệ thống khaacutec nhau như
Hệ thống thống tin (Information System) Cất giữ lấy biến đổi
biểu diễn thocircng tin cho người sử dụng Xử lyacute những khoảng dữ liệu
lớn coacute caacutec quan hệ phức tạp magrave chuacuteng được lưu trữ trong caacutec cơ sở
dữ liệu quan hệ hay hướng đối tượng
Hệ thống kỹ thuật (Technical System) Xử lyacute vagrave điều khiển caacutec
thiết bị kỹ thuật như viễn thocircng hệ thống quacircn sự hay caacutec quaacute
trigravenh cocircng nghiệp Đacircy lagrave loại thiết bị phải xử lyacute caacutec giao tiếp đặc
biệt khocircng coacute phần mềm chuẩn vagrave thường lagrave caacutec hệ thống thời gian
thực (real time)
Hệ thống nhuacuteng (Embeded System) Thực hiện trecircn phần cứng
gắn vagraveo caacutec thiết bị như điện thoại di động điều khiển xe hơi hellip
Điều nagravey được thực hiện bằng việc lập trigravenh mức thấp với hỗ trợ thời
gian thực Những hệ thống nagravey thường khocircng coacute caacutec thiết bị như
magraven higravenh đĩa cứng hellip
Hệ thống phacircn bố ( Distributed System) Được phacircn bố trecircn
một số maacutey cho pheacutep truyền dữ liệu từ nơi nagravey đến nơi khaacutec một
caacutech dễ dagraveng Chuacuteng đogravei hỏi caacutec cơ chế liecircn lạc đồng bộ để đảm bảo
toagraven vẹn dữ liệu vagrave thường được xacircy dựng trecircn một số caacutec kỹ thuật
đối tượng như CORBA COMDCOM hay Java BeansRMI
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Hệ thống Giao dịch (Business System) Mocirc tả mục điacutech tagravei
nguyecircn (con người maacutey tiacutenh hellip) caacutec quy tắc (luật phaacutep chiến
thuật kinh doanh cơ chế hellip) vagrave cocircng việc hoạt động kinh doanh
Phần mềm hệ thống (System Software) Định nghĩa cơ sở hạ
tầng kỹ thuật cho phần mềm khaacutec sử dụng chẳng hạn như hệ điều
hagravenh cơ sở dữ liệu giao diện người sử dụng
3- UML VAgrave CAacuteC GIAI ĐOẠN PHAacuteT TRIỂN HỆ THỐNG
Preliminary Investigation use cases thể hiện caacutec yecircu cầu của người
dugraveng Phần miecircu tả use case xaacutec định caacutec yecircu cầu phần diagram thể hiện
mối quan hệ vagrave giao tiếp với hệ thống
Analysis Mục điacutech chiacutenh của giai đọan nagravey lagrave trừu tượng hoacutea vagrave tigravem
hiểu caacutec cơ cấu coacute trong phạm vi bagravei toaacuten Class diagrams trecircn bigravenh diện
trừu tượng hoacutea caacutec thực thể ngoagravei đời thực được sử dụng để lagravem rotilde sự tồn
tại cũng như mối quan hệ của chuacuteng Chỉ những lớp (class) nằm trong
phạm vi bagravei toaacuten mới đaacuteng quan tacircm
Design Kết quả phần analysis được phaacutet triển thagravenh giải phaacutep kỹ thuật
Caacutec lớp được mocirc higravenh hoacutea chi tiết để cung cấp hạ tầng kỹ thuật như giao
diện nền tảng cho database hellip Kết quả phần Design lagrave caacutec đặc tả chi tiết
cho giai đoạn xacircy dựng phần mềm
Development Mocirc higravenh Design được chuyển thagravenh code Programmer
sử dụng caacutec UML diagrams trong giai đoạn Design để hiểu vấn đề vagrave tạo
code
Testing Sử dụng caacutec UML diagrams trong caacutec giai đoạn trước Coacute 4
higravenh thức kiểm tra hệ thống
Unit testing (class diagrams amp class specifications) kiểm tra
từng đơn thể được dugraveng để kiểm tra caacutec lớp hay caacutec nhoacutem
đơn thể
Integration testing (integration diagrams amp collaboration
diagrams) kiểm tra tiacutech hợp lagrave kiểm tra kết hợp caacutec
component với caacutec lớp để xem chuacuteng hoạt động với nhau coacute
đuacuteng khocircng
System testing (use-case diagrams) kiềm tra xem hệ thống
coacute đaacutep ứng được chức năng magrave người sử dụng yecircu cầu hay
khocircng
Acceptance testing Kiểm tra tiacutenh chấp nhận được của hệ
thống thường được thực hiện bởi khaacutech hagraveng việc kiểm tra
nagravey thực hiện tương tự như kiểm tra hệ thống
CuuDuongThanCongcom httpsfbcomtailieudientucntt
PHẦN CAcircU HỎI
Hỏi UML (Unifield Modeling Language) lagrave gigrave
Đaacutep Ngocircn ngữ mocirc higravenh hoacutea thống nhất ndash UML lagrave một ngocircn ngữ để biểu
diễn mocirc higravenh theo hướng đối tượng
Hỏi Điểm khaacutec nhau cơ bản giữa phương phaacutep (method) vagrave một ngocircn ngữ mocirc
higravenh hoaacute (modeling language) lagrave gigrave
Đaacutep Điểm khaacutec nhau cơ bản giữa một phương phaacutep vagrave một ngocircn ngữ
mocirc higravenh hoaacute lagrave ngocircn ngữ mocirc higravenh hoaacute khocircng coacute một tiến trigravenh (process)
hay caacutec cacircu lệnh (instruction) mocirc tả những cocircng việc người sử dụng cần
lagravem magrave noacute bao gồm caacutec kyacute hiệu ndash những biểu tượng được dugraveng trong mocirc
higravenh ndash vagrave một tập caacutec quy tắc chỉ caacutech sử dụng chuacuteng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Chƣơng 3 KHAacuteI QUAacuteT VỀ UML
1- UML VAgrave CAacuteC GIAI ĐOẠN CỦA CHU TRIgraveNH PHAacuteT TRIỂN
PHẦN MỀM
11- Giai đoạn nghiecircn cứu sơ bộ
UML đưa ra khaacutei niệm Use Case để nắm bắt caacutec yecircu cầu của khaacutech hagraveng (người
sử dụng) UML sử dụng biểu đồ Use case (Use Case Diagram) để necircu bật mối
quan hệ cũng như sự giao tiếp với hệ thống
Qua phương phaacutep mocirc higravenh hoacutea Use case caacutec taacutec nhacircn (Actor) becircn ngoagravei quan
tacircm đến hệ thống sẽ được mocirc higravenh hoacutea song song với chức năng magrave họ đogravei hỏi
từ phiacutea hệ thống (tức lagrave Use case) Caacutec taacutec nhacircn vagrave caacutec Use case được mocirc higravenh
hoacutea cugraveng caacutec mối quan hệ vagrave được miecircu tả trong biểu đồ Use case của UML Mỗi
một Use case được mocirc tả trong tagravei liệu vagrave noacute sẽ đặc tả caacutec yecircu cầu của khaacutech
hagraveng Anh ta hay chị ta chờ đợi điều gigrave ở phiacutea hệ thống magrave khocircng hề để yacute đến
việc chức năng nagravey sẽ được thực thi ra sao
12- Giai đoạn phacircn tiacutech
Giai đoạn phacircn tiacutech quan tacircm đến quaacute trigravenh trừu tượng hoacutea đầu tiecircn (caacutec lớp vagrave
caacutec đối tượng) cũng như cơ chế hiện hữu trong phạm vi vấn đề Sau khi nhagrave
phacircn tiacutech đatilde nhận biết được caacutec lớp thagravenh phần của mocirc higravenh cũng như mối quan
hệ giữa chuacuteng với nhau caacutec lớp cugraveng caacutec mối quan hệ đoacute sẽ được miecircu tả bằng
cocircng cụ biểu đồ lớp (class diagram) của UML Sự cộng taacutec giữa caacutec lớp nhằm
thực hiện caacutec Use case cũng sẽ được miecircu tả nhờ vagraveo caacutec mocirc higravenh động
(dynamic models) của UML Trong giai đoạn phacircn tiacutech chỉ duy nhất caacutec lớp coacute
tồn tại trong phạm vi vấn đề (caacutec khaacutei niệm đời thực) lagrave được mocirc higravenh hoacutea Caacutec
lớp kỹ thuật định nghĩa chi tiết cũng như giải phaacutep trong hệ thống phần mềm viacute
dụ như caacutec lớp cho giao diện người dugraveng cho ngacircn hagraveng dữ liệu cho sự giao tiếp
trugraveng hợp vv chưa phải lagrave mối quan tacircm của giai đoạn nagravey
13- Giai đoạn thiết kế
Trong giai đoạn nagravey kết quả của giai đoạn phacircn tiacutech sẽ được mở rộng thagravenh một
giải phaacutep kỹ thuật Caacutec lớp mới sẽ được bổ sung để tạo thagravenh một hạ tầng cơ sở
kỹ thuật Giao diện người dugraveng caacutec chức năng để lưu trữ caacutec đối tượng trong
ngacircn hagraveng dữ liệu giao tiếp với caacutec hệ thống khaacutec giao diện với caacutec thiết bị
ngoại vi vagrave caacutec maacutey moacutec khaacutec trong hệ thống Caacutec lớp thuộc phạm vi vấn đề
coacute từ giai đoạn phacircn tiacutech sẽ được nhuacuteng vagraveo hạ tầng cơ sở kỹ thuật nagravey tạo ra
khả năng thay đổi trong cả hai phương diện Phạm vi vấn đề vagrave hạ tầng cơ sở
Giai đoạn thiết kế sẽ đưa ra kết quả lagrave bản đặc tả chi tiết cho giai đoạn xacircy dựng
hệ thống
14- Giai đoạn xacircy dựng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Trong giai đoạn xacircy dựng (giai đoạn lập trigravenh) caacutec lớp của giai đoạn thiết kế sẽ
được biến thagravenh những dograveng code cụ thể trong một ngocircn ngữ lập trigravenh hướng đối
tượng cụ thể (khocircng necircn dugraveng một ngocircn ngữ lập trigravenh hướng chức năng) Phụ
thuộc vagraveo khả năng của ngocircn ngữ được sử dụng đacircy coacute thể lagrave một cocircng việc khoacute
khăn hay dễ dagraveng Khi tạo ra caacutec mocirc higravenh phacircn tiacutech vagrave thiết kế trong UML tốt
nhất necircn cố gắng neacute traacutenh việc ngay lập tức biến đổi caacutec mocirc higravenh nagravey thagravenh caacutec
dograveng code Trong những giai đoạn trước mocirc higravenh được sử dụng để dễ hiểu dễ
giao tiếp vagrave tạo necircn cấu truacutec của hệ thống vigrave vậy vội vagraveng đưa ra những kết
luận về việc viết code coacute thể sẽ thagravenh một trở ngại cho việc tạo ra caacutec mocirc higravenh
chiacutenh xaacutec vagrave đơn giản Giai đoạn xacircy dựng lagrave một giai đoạn riecircng biệt nơi caacutec
mocirc higravenh được chuyển thagravenh code
15- Thử nghiệm
Như đatilde trigravenh bagravey trong phần Chu Trigravenh Phaacutet Triển Phần Mềm một hệ thống phần
mềm thường được thử nghiệm qua nhiều giai đoạn vagrave với nhiều nhoacutem thử
nghiệm khaacutec nhau Caacutec nhoacutem sử dụng nhiều loại biểu đồ UML khaacutec nhau lagravem nền
tảng cho cocircng việc của migravenh Thử nghiệm đơn vị sử dụng biểu đồ lớp (class
diagram) vagrave đặc tả lớp thử nghiệm tiacutech hợp thường sử dụng biểu đồ thagravenh phần
(component diagram) vagrave biểu đồ cộng taacutec (collaboration diagram) vagrave giai đoạn
thử nghiệm hệ thống sử dụng biểu đồ Use case (use case diagram) để đảm bảo
hệ thống coacute phương thức hoạt động đuacuteng như đatilde được định nghĩa từ ban đầu
trong caacutec biểu đồ nagravey
2- CAacuteC THAgraveNH PHẦN CỦA NGOcircN NGỮ UML
Ngocircn ngữ UML bao gồm một loạt caacutec phần tử đồ họa (graphic element) coacute thể
được kếp hợp với nhau để tạo ra caacutec biểu đồ Bởi đacircy lagrave một ngocircn ngữ necircn UML
cũng coacute caacutec nguyecircn tắc để kết hợp caacutec phần tử đoacute
Một số những thagravenh phần chủ yếu của ngocircn ngữ UML
Hướng nhigraven (view) Hướng nhigraven chỉ ra những khiacutea cạnh khaacutec
nhau của hệ thống cần phải được mocirc higravenh hoacutea Một hướng nhigraven
khocircng phải lagrave một bản vẽ magrave lagrave một sự trừu tượng hoacutea bao gồm
một loạt caacutec biểu đồ khaacutec nhau Chỉ qua việc định nghĩa của một
loạt caacutec hướng nhigraven khaacutec nhau mỗi hướng nhigraven chỉ ra một khiacutea
cạnh riecircng biệt của hệ thống người ta mới coacute thể tạo dựng necircn một
bức tranh hoagraven thiện về hệ thống Cũng chiacutenh caacutec hướng nhigraven nagravey
nối kết ngocircn ngữ mocirc higravenh hoacutea với quy trigravenh được chọn cho giai đoạn
phaacutet triển
Biểu đồ (diagram) Biểu đồ lagrave caacutec higravenh vẽ miecircu tả nội dung
trong một hướng nhigraven UML coacute tất cả 9 loại biểu đồ khaacutec nhau được
CuuDuongThanCongcom httpsfbcomtailieudientucntt
sử dụng trong những sự kết hợp khaacutec nhau để cung cấp tất cả caacutec
hướng nhigraven của một hệ thống
Phần tử mocirc higravenh hoacutea (model element) Caacutec khaacutei niệm được
sử dụng trong caacutec biểu đồ được gọi lagrave caacutec phần tử mocirc higravenh thể hiện
caacutec khaacutei niệm hướng đối tượng quen thuộc Viacute dụ như lớp đối tượng
thocircng điệp cũng như caacutec quan hệ giữa caacutec khaacutei niệm nagravey bao gồm
cả liecircn kết phụ thuộc khaacutei quaacutet hoacutea Một phần tử mocirc higravenh thường
được sử dụng trong nhiều biểu đồ khaacutec nhau nhưng noacute luocircn luocircn coacute
chỉ một yacute nghĩa vagrave một kiacute hiệu
Cơ chế chung Cơ chế chung cung cấp thecircm những lời nhận xeacutet
bổ sung caacutec thocircng tin cũng như caacutec quy tắc ngữ phaacutep chung về
một phần tử mocirc higravenh chuacuteng cograven cung cấp thecircm caacutec cơ chế để coacute
thể mở rộng ngocircn ngữ UML cho phugrave hợp với một phương phaacutep xaacutec
định (một quy trigravenh một tổ chức hoặc một người dugraveng)
3- HƢỚNG NHIgraveN (VIEW)
Mocirc higravenh hoacutea một hệ thống phức tạp lagrave một việc lagravem khoacute khăn Lyacute tưởng nhất lagrave
toagraven bộ hệ thống được miecircu tả chỉ trong một bản vẽ một bản vẽ định nghĩa một
caacutech rotilde ragraveng vagrave mạch lạc toagraven bộ hệ thống một bản vẽ ngoagravei ra lại cograven dễ giao
tiếp vagrave dễ hiểu Mặc dugrave vậy thường thigrave đacircy lagrave chuyện bất khả thi Một bản vẽ
khocircng thể nắm bắt tất cả caacutec thocircng tin cần thiết để miecircu tả một hệ thống Một
hệ thống cần phải được miecircu tả với một loạt caacutec khiacutea cạnh khaacutec nhau Về mặt
chức năng (cấu truacutec tĩnh của noacute cũng như caacutec tương taacutec động) về mặt phi chức
năng (yecircu cầu về thời gian về độ đaacuteng tin cậy về quaacute trigravenh thực thi vv vagrave vv)
cũng như về khiacutea cạnh tổ chức (tổ chức lagravem việc aacutenh xạ noacute vagraveo caacutec code
module) Vigrave vậy một hệ thống thường được miecircu tả trong một loạt caacutec hướng
nhigraven khaacutec nhau mỗi hướng nhigraven sẽ thể hiện một bức ảnh aacutenh xạ của toagraven bộ hệ
thống vagrave chỉ ra một khiacutea cạnh riecircng của hệ thống
Higravenh 31- Caacutec View trong UML
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Mỗi một hướng nhigraven được miecircu tả trong một loạt caacutec biểu đồ chứa đựng caacutec
thocircng tin necircu bật khiacutea cạnh đặc biệt đoacute của hệ thống Trong thực tế khi phacircn tiacutech
vagrave thiết kế rất dễ xảy ra sự trugraveng lặp thocircng tin cho necircn một biểu đồ trecircn thật tế
coacute thể lagrave thagravenh phần của nhiều hướng nhigraven khaacutec nhau Khi nhigraven hệ thống từ
nhiều hướng nhigraven khaacutec nhau tại một thời điểm coacute thể người ta chỉ tập trung vagraveo
một khiacutea cạnh của hệ thống Một biểu đồ trong một hướng nhigraven cụ thể nagraveo đoacute
cần phải đủ độ đơn giản để tạo điều kiện giao tiếp dễ dagraveng để diacutenh liền với caacutec
biểu đồ khaacutec cũng như caacutec hướng nhigraven khaacutec lagravem sao cho bức tranh toagraven cảnh
của hệ thống được miecircu tả bằng sự kết hợp tất cả caacutec thocircng tin từ tất cả caacutec
hướng nhigraven Một biểu đồ chứa caacutec kiacute hiệu higravenh học mocirc tả caacutec phần tử mocirc higravenh
của hệ thống UML coacute tất cả caacutec hướng nhigraven sau
Hướng nhigraven Use case (use case view) đacircy lagrave hướng nhigraven chỉ ra
khiacutea cạnh chức năng của một hệ thống nhigraven từ hướng taacutec nhacircn becircn
ngoagravei
Hướng nhigraven logic (logical view) chỉ ra chức năng sẽ được thiết kế
becircn trong hệ thống như thế nagraveo qua caacutec khaacutei niệm về cấu truacutec tĩnh
cũng như ứng xử động của hệ thống
Hướng nhigraven thagravenh phần (component view) chỉ ra khiacutea cạnh tổ chức
của caacutec thagravenh phần code
Hướng nhigraven song song (concurrency view) chỉ ra sự tồn tại song
song trugraveng hợp trong hệ thống hướng đến vấn đề giao tiếp vagrave
đồng bộ hoacutea trong hệ thống
Hướng nhigraven triển khai (deployment view) chỉ ra khiacutea cạnh triển
khai hệ thống vagraveo caacutec kiến truacutec vật lyacute (caacutec maacutey tiacutenh hay trang thiết
bị được coi lagrave trạm cocircng taacutec)
Khi bạn chọn cocircng cụ để vẽ biểu đồ hatildey chọn cocircng cụ nagraveo tạo điều kiện dễ dagraveng
chuyển từ hướng nhigraven nagravey sang hướng nhigraven khaacutec Ngoagravei ra cho mục điacutech quan
saacutet một chức năng sẽ được thiết kế như thế nagraveo cocircng cụ nagravey cũng phải tạo điều
kiện dễ dagraveng cho bạn chuyển sang hướng nhigraven Use case (để xem chức năng nagravey
được miecircu tả như thế nagraveo từ phiacutea taacutec nhacircn) hoặc chuyển sang hướng nhigraven triển
khai (để xem chức năng nagravey sẽ được phacircn bố ra sao trong cấu truacutec vật lyacute - Noacutei
một caacutech khaacutec lagrave noacute coacute thể nằm trong maacutey tiacutenh nagraveo)
Ngoagravei caacutec hướng nhigraven kể trecircn ngagravenh cocircng nghiệp phần mềm cograven sử dụng cả caacutec
hướng nhigraven khaacutec viacute dụ hướng nhigraven tĩnh-động hướng nhigraven logic-vật lyacute quy trigravenh
nghiệp vụ (workflow) vagrave caacutec hướng nhigraven khaacutec UML khocircng yecircu cầu chuacuteng ta phải
sử dụng caacutec hướng nhigraven nagravey nhưng đacircy cũng chiacutenh lagrave những hướng nhigraven magrave caacutec
nhagrave thiết kế của UML đatilde nghĩ tới necircn coacute khả năng nhiều cocircng cụ sẽ dựa trecircn caacutec
hướng nhigraven đoacute
CuuDuongThanCongcom httpsfbcomtailieudientucntt
31- Hƣớng nhigraven Use case (Use case View)
Hướng nhigraven Use case miecircu tả chức năng của hệ thống sẽ phải cung cấp do được
taacutec nhacircn từ becircn ngoagravei mong đợi Taacutec nhacircn lagrave thực thể tương taacutec với hệ thống đoacute
coacute thể lagrave một người sử dụng hoặc lagrave một hệ thống khaacutec Hướng nhigraven Use case lagrave
hướng nhigraven dagravenh cho khaacutech hagraveng nhagrave thiết kế nhagrave phaacutet triển vagrave người thử
nghiệm noacute được miecircu tả qua caacutec biểu đồ Use case (use case diagram) vagrave thỉnh
thoảng cũng bao gồm cả caacutec biểu đồ hoạt động (activity diagram) Caacutech sử dụng
hệ thống nhigraven chung sẽ được miecircu tả qua một loạt caacutec Use case trong hướng
nhigraven Use case nơi mỗi một Use case lagrave một lời miecircu tả mang tiacutenh đặc thugrave cho
một tiacutenh năng của hệ thống (coacute nghĩa lagrave một chức năng được mong đợi)
Hướng nhigraven Use case mang tiacutenh trung tacircm bởi noacute đặt ra nội dung thuacutec đẩy sự
phaacutet triển caacutec hướng nhigraven khaacutec Mục tiecircu chung của hệ thống lagrave cung cấp caacutec
chức năng miecircu tả trong hướng nhigraven nagravey ndash cugraveng với một vagravei caacutec thuộc tiacutenh mang
tiacutenh phi chức năng khaacutec ndash vigrave thế hướng nhigraven nagravey coacute ảnh hưởng đến tất cả caacutec
hướng nhigraven khaacutec Hướng nhigraven nagravey cũng được sử dụng để thẩm tra (verify) hệ
thống qua việc thử nghiệm xem hướng nhigraven Use case coacute đuacuteng với mong đợi của
khaacutech hagraveng (Hỏi Đacircy coacute phải lagrave thứ bạn muốn) cũng như coacute đuacuteng với hệ thống
vừa được hoagraven thagravenh (Hỏi Hệ thống coacute hoạt động như đatilde đặc tả)
32- Hƣớng nhigraven logic (Logical View)
Hướng nhigraven logic miecircu tả phương thức magrave caacutec chức năng của hệ thống sẽ được
cung cấp Chủ yếu noacute được sử dụng cho caacutec nhagrave thiết kế vagrave nhagrave phaacutet triển
Ngược lại với hướng nhigraven Use case hướng nhigraven logic nhigraven vagraveo phiacutea becircn trong của
hệ thống Noacute miecircu tả kể cả cấu truacutec tĩnh (lớp đối tượng vagrave quan hệ) cũng như
sự tương taacutec động sẽ xảy ra khi caacutec đối tượng gửi thocircng điệp cho nhau để cung
cấp chức năng đatilde định sẵn Hướng nhigraven logic định nghĩa caacutec thuộc tiacutenh như
trường tồn (persistency) hoặc song song (concurrency) cũng như caacutec giao diện
cũng như cấu truacutec nội tại của caacutec lớp
Cấu truacutec tĩnh được miecircu tả bằng caacutec biểu đồ lớp (class diagram) vagrave biểu đồ đối
tượng (object diagram) Quaacute trigravenh mocirc higravenh hoacutea động được miecircu tả trong caacutec biểu
đồ trạng thaacutei (state diagram) biểu đồ trigravenh tự (sequence diagram) biểu đồ
tương taacutec (collaboration diagram) vagrave biểu đồ hoạt động (activity diagram)
33- Hƣớng nhigraven thagravenh phần (Component View)
Lagrave một lời miecircu tả của việc thực thi caacutec modul cũng như sự phụ thuộc giữa chuacuteng
với nhau Noacute thường được sử dụng cho nhagrave phaacutet triển vagrave thường bao gồm nhiều
biểu đồ thagravenh phần Thagravenh phần ở đacircy lagrave caacutec modul lệnh thuộc nhiều loại khaacutec
nhau sẽ được chỉ ra trong biểu đồ cugraveng với cấu truacutec cũng như sự phụ thuộc của
chuacuteng Caacutec thocircng tin bổ sung về caacutec thagravenh phần viacute dụ như vị triacute của tagravei nguyecircn
(traacutech nhiệm đối với một thagravenh phần) hoặc caacutec thocircng tin quản trị khaacutec viacute dụ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
như một bản baacuteo caacuteo về tiến trigravenh của cocircng việc cũng coacute thể được bổ sung vagraveo
đacircy
34- Hƣớng nhigraven song song (Concurrency View)
Hướng nhigraven song song nhắm tới sự chia hệ thống thagravenh caacutec qui trigravenh (process)
vagrave caacutec bộ xử lyacute (processor) Khiacutea cạnh nagravey vốn lagrave một thuộc tiacutenh phi chức năng
của hệ thống cho pheacutep chuacuteng ta sử dụng một caacutech hữu hiệu caacutec nguồn tagravei
nguyecircn thực thi song song cũng như xử lyacute caacutec sự kiện khocircng đồng bộ từ mocirci
trường Becircn cạnh việc chia hệ thống thagravenh caacutec tiểu trigravenh coacute thể được thực thi
song song hướng nhigraven nagravey cũng phải quan tacircm đến vấn đề giao tiếp vagrave đồng bộ
hoacutea caacutec tiểu trigravenh đoacute
Hướng nhigraven song song giagravenh cho nhagrave phaacutet triển vagrave người tiacutech hợp hệ thống noacute
bao gồm caacutec biểu đồ động (trạng thaacutei trigravenh tự tương taacutec vagrave hoạt động) cugraveng caacutec
biểu đồ thực thi (biểu đồ thagravenh phần vagrave biểu đồ triển khai)
35- Hƣớng nhigraven triển khai (Deployment View)
Cuối cugraveng hướng nhigraven triển khai chỉ cho chuacuteng ta sơ đồ triển khai về mặt vật lyacute
của hệ thống viacute dụ như caacutec maacutey tiacutenh cũng như caacutec maacutey moacutec vagrave sự liecircn kết giữa
chuacuteng với nhau Hướng nhigraven triển khai giagravenh cho caacutec nhagrave phaacutet triển người tiacutech
hợp cũng như người thử nghiệm hệ thống vagrave được thể hiện bằng caacutec biểu đồ
triển khai Hướng nhigraven nagravey cũng bao gồm sự aacutenh xạ caacutec thagravenh phần của hệ
thống vagraveo cấu truacutec vật lyacute viacute dụ như chương trigravenh nagraveo hay đối tượng nagraveo sẽ được
thực thi trecircn maacutey tiacutenh nagraveo
4- BIỂU ĐỒ (DIAGRAM)
Biểu đồ lagrave caacutec higravenh vẽ bao gồm caacutec kyacute hiệu phần tử mocirc higravenh hoacutea được sắp xếp
để minh họa một thagravenh phần cụ thể hay một khiacutea cạnh cụ thể của hệ thống Một
mocirc higravenh hệ thống thường coacute nhiều loại biểu đồ mỗi loại coacute nhiều biểu đồ khaacutec
nhau Một biểu đồ lagrave một thagravenh phần của một hướng nhigraven cụ thể vagrave khi được vẽ
ra noacute thường thường cũng được xếp vagraveo một hướng nhigraven Mặt khaacutec một số loại
biểu đồ coacute thể lagrave thagravenh phần của nhiều hướng nhigraven khaacutec nhau tugravey thuộc vagraveo nội
dung của biểu đồ
Phần sau miecircu tả caacutec khaacutei niệm căn bản nằm đằng sau mỗi loại biểu đồ Tất cả
caacutec chi tiết về biểu đồ ngữ cảnh của chuacuteng yacute nghĩa chiacutenh xaacutec của chuacuteng vagrave sự
tương taacutec giữa chuacuteng với nhau được miecircu tả chi tiết trong caacutec chương sau (mocirc
higravenh đối tượng ndash mocirc higravenh động) Caacutec biểu đồ lấy lagravem viacute dụ ở đacircy được lấy ra từ
nhiều loại hệ thống khaacutec nhau để chỉ ra neacutet phong phuacute vagrave khả năng aacutep dụng
rộng khắp của ULM
41- Biểu đồ Use case (Use Case Diagram)
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Một biểu đồ Use case chỉ ra một số lượng caacutec taacutec nhacircn ngoại cảnh vagrave mối liecircn kết
của chuacuteng đối với Use case magrave hệ thống cung cấp (nhigraven higravenh 32) Một Use case
lagrave một lời miecircu tả của một chức năng magrave hệ thống cung cấp Lời miecircu tả Use
case thường lagrave một văn bản tagravei liệu nhưng kegravem theo đoacute cũng coacute thể lagrave một biểu
đồ hoạt động Caacutec Use case được miecircu tả duy nhất theo hướng nhigraven từ ngoagravei vagraveo
của caacutec taacutec nhacircn (hagravenh vi của hệ thống theo như sự mong đợi của người sử
dụng) khocircng miecircu tả chức năng được cung cấp sẽ hoạt động nội bộ becircn trong
hệ thống ra sao Caacutec Use case định nghĩa caacutec yecircu cầu về mặt chức năng đối với
hệ thống Caacutec biểu đồ Use case sẽ được miecircu tả chi tiết hơn trong chương 4 (Use
case)
Higravenh 32- Biểu đồ use case của một cocircng ty bảo hiểm
42- Biểu đồ lớp (Class Diagram)
Một biểu đồ lớp chỉ ra cấu truacutec tĩnh của caacutec lớp trong hệ thống (nhigraven higravenh 33)
Caacutec lớp lagrave đại diện cho caacutec ―vật được xử lyacute trong hệ thống Caacutec lớp coacute thể quan
hệ với nhau trong nhiều dạng thức liecircn kết (associated - được nối kết với nhau)
phụ thuộc (dependent - một lớp nagravey phụ thuộc vagraveo lớp khaacutec) chuyecircn biệt hoacutea
(specialized - một lớp nagravey lagrave một kết quả chuyecircn biệt hoacutea của lớp khaacutec) hay
đoacuteng goacutei ( packaged - hợp với nhau thagravenh một đơn vị) Tất cả caacutec mối quan hệ
đoacute đều được thể hiện trong biểu đồ lớp đi kegravem với cấu truacutec becircn trong của caacutec lớp
theo khaacutei niệm thuộc tiacutenh (attribute) vagrave thủ tục (operation) Biểu đồ được coi lagrave
biểu đồ tĩnh theo phương diện cấu truacutec được miecircu tả ở đacircy coacute hiệu lực tại bất kỳ
thời điểm nagraveo trong toagraven bộ vograveng đời hệ thống
Một hệ thống thường sẽ coacute một loạt caacutec biểu đồ lớp ndash chẳng phải bao giờ tất cả
caacutec biểu đồ lớp nagravey cũng được nhập vagraveo một biểu đồ lớp tổng thể duy nhất ndash vagrave
một lớp coacute thể tham gia vagraveo nhiều biểu đồ lớp Biểu đồ lớp được miecircu tả chi tiết
trong chương sau
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 33 - Biểu đồ lớp cho một giao dịch Tagravei chiacutenh
43- Biểu đồ đối tƣợng (Object Diagram)
Một biểu đồ đối tượng lagrave một phiecircn bản của biểu đồ lớp vagrave thường cũng sử dụng
caacutec kyacute hiệu như biểu đồ lớp Sự khaacutec biệt giữa hai loại biểu đồ nagravey nằm ở chỗ
biểu đồ đối tượng chỉ ra một loạt caacutec đối tượng thực thể của lớp thay vigrave caacutec lớp
Một biểu đồ đối tượng vigrave vậy lagrave một viacute dụ của biểu đồ lớp chỉ ra một bức tranh
thực tế coacute thể xảy ra khi hệ thống thực thi bức tranh magrave hệ thống coacute thể coacute tại
một thời điểm nagraveo đoacute Biểu đồ đối tượng sử dụng chung caacutec kyacute hiệu của biểu đồ
lớp chỉ trừ hai ngoại lệ đối tượng được viết với tecircn được gạch dưới vagrave tất cả caacutec
thực thể trong một mối quan hệ đều được chỉ ra (nhigraven higravenh 34)
Biểu đồ đối tượng khocircng quan trọng bằng biểu đồ lớp chuacuteng coacute thể được sử
dụng để viacute dụ hoacutea một biểu đồ lớp phức tạp chỉ ra với những thực thể cụ thể vagrave
những mối quan hệ như thế thigrave bức tranh toagraven cảnh sẽ ra sao Một biểu đồ đối
tượng thường thường được sử dụng lagravem một thagravenh phần của một biểu đồ cộng
taacutec (collaboration) chỉ ra lối ứng xử động giữa một loạt caacutec đối tượng
Higravenh 34 - Biểu đồ lớp vagrave biểu đồ đối tượng thể hiện của lớp
CuuDuongThanCongcom httpsfbcomtailieudientucntt
44- Biểu đồ trạng thaacutei (State Diagram)
Một biểu đồ trạng thaacutei thường lagrave một sự bổ sung cho lời miecircu tả một lớp Noacute chỉ
ra tất cả caacutec trạng thaacutei magrave đối tượng của lớp nagravey coacute thể coacute vagrave những sự kiện
(event) nagraveo sẽ gacircy ra sự thay đổi trạng thaacutei (higravenh 35) Một sự kiện coacute thể xảy ra
khi một đối tượng tự gửi thocircng điệp đến cho noacute - viacute dụ như để thocircng baacuteo rằng
một khoảng thời gian được xaacutec định đatilde qua đi ndash hay lagrave một số điều kiện nagraveo đoacute
đatilde được thỏa matilden Một sự thay đổi trạng thaacutei được gọi lagrave một sự chuyển đổi
trạng thaacutei (State Transition) Một chuyển đổi trạng thaacutei cũng coacute thể coacute một hagravenh
động liecircn quan xaacutec định điều gigrave phải được thực hiện khi sự chuyển đổi trạng thaacutei
nagravey diễn ra
Biểu đồ trạng thaacutei khocircng được vẽ cho tất cả caacutec lớp magrave chỉ riecircng cho những lớp
coacute một số lượng caacutec trạng thaacutei được định nghĩa rotilde ragraveng vagrave hagravenh vi của lớp bị ảnh
hưởng vagrave thay đổi qua caacutec trạng thaacutei khaacutec nhau Biểu đồ trạng thaacutei cũng coacute thể
được vẽ cho hệ thống tổng thể Biểu đồ trạng thaacutei được miecircu tả chi tiết hơn trong
chương sau (Mocirc higravenh động)
Higravenh 35- Một viacute dụ về biểu đồ trạng thaacutei
45- Biểu đồ trigravenh tự (Sequence Diagram)
Một biểu đồ trigravenh tự chỉ ra một cộng taacutec động giữa một loạt caacutec đối tượng (xem
higravenh 36) Khiacutea cạnh quan trọng của biểu đồ nagravey lagrave chỉ ra trigravenh tự caacutec thocircng điệp
(message) được gửi giữa caacutec đối tượng Noacute cũng chỉ ra trigravenh tự tương taacutec giữa
caacutec đối tượng điều sẽ xảy ra tại một thời điểm cụ thể nagraveo đoacute trong trigravenh tự thực
thi của hệ thống Caacutec biểu đồ trigravenh tự chứa một loạt caacutec đối tượng được biểu diễn
bằng caacutec đường thẳng đứng Trục thời gian coacute hướng từ trecircn xuống dưới trong
biểu đồ vagrave biểu đồ chỉ ra sự trao đổi thocircng điệp giữa caacutec đối tượng khi thời gian
trocirci qua Caacutec thocircng điệp được biểu diễn bằng caacutec đường gạch ngang gắn liền với
mũi tecircn (biểu thị thocircng điệp) nối liền giữa những đường thẳng đứng thể hiện đối
tượng Trục thời gian cugraveng những lời nhận xeacutet khaacutec thường sẽ được đưa vagraveo phần
lề của biểu đồ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 36 - Một biểu đồ trigravenh tự cho Print Server
46- Biểu đồ cộng taacutec (Collaboration Diagram)
Một biểu đồ cộng taacutec chỉ ra một sự cộng taacutec động cũng giống như một biểu đồ
trigravenh tự Thường người ta sẽ chọn hoặc dugraveng biểu đồ trigravenh tự hoặc dugraveng biểu đồ
cộng taacutec Becircn cạnh việc thể hiện sự trao đổi thocircng điệp (được gọi lagrave tương taacutec)
biểu đồ cộng taacutec chỉ ra caacutec đối tượng vagrave quan hệ của chuacuteng (nhiều khi được gọi
lagrave ngữ cảnh) Việc necircn sử dụng biểu đồ trigravenh tự hay biểu đồ cộng taacutec thường sẽ
được quyết định theo nguyecircn tắc chung sau Nếu thời gian hay trigravenh tự lagrave yếu tố
quan trọng nhất cần phải nhấn mạnh thigrave hatildey chọn biểu đồ trigravenh tự nếu ngữ cảnh
lagrave yếu tố quan trọng hơn hatildey chọn biểu đồ cộng taacutec Trigravenh tự tương taacutec giữa caacutec
đối tượng được thể hiện trong cả hai loại biểu đồ nagravey
Biểu đồ cộng taacutec được vẽ theo dạng một biểu đồ đối tượng nơi một loạt caacutec đối
tượng được chỉ ra cugraveng với mối quan hệ giữa chuacuteng với nhau (sử dụng những kyacute
hiệu như trong biểu đồ lớp biểu đồ đối tượng) Caacutec mũi tecircn được vẽ giữa caacutec đối
tượng để chỉ ra dograveng chảy thocircng điệp giữa caacutec đối tượng Caacutec thocircng điệp thường
được điacutenh kegravem theo caacutec nhatilden (label) một trong những chức năng của nhatilden lagrave
chỉ ra thứ tự magrave caacutec thocircng điệp được gửi đi Noacute cũng coacute thể chỉ ra caacutec điều kiện
chỉ ra những giaacute trị được trả về vv Khi đatilde lagravem quen với caacutech viết nhatilden một
nhagrave phaacutet triển coacute thể đọc biểu đồ cộng taacutec vagrave tuacircn thủ theo dograveng thực thi cũng
như sự trao đổi thocircng điệp Một biểu đồ cộng taacutec cũng coacute thể chứa cả caacutec đối
tượng tiacutech cực (active objects) hoạt động song song với caacutec đối tượng tiacutech cực
khaacutec (higravenh 37) Biểu đồ cộng taacutec được miecircu tả chi tiết trong chương sau
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 37 - Một biểu đồ cocircng taacutec của một printer server
47- Biểu đồ hoạt động (Activity Diagram)
Một biểu đồ hoạt động chỉ ra một trigravenh tự lần lượt của caacutec hoạt động (activity)
(higravenh 38) Biểu đồ hoạt động thường được sử dụng để miecircu tả caacutec hoạt động
được thực hiện trong một thủ tục mặc dugrave noacute cũng coacute thể được sử dụng để miecircu
tả caacutec dograveng chảy hoạt động khaacutec viacute dụ như trong một Use case hay trong một
trigravenh tự tương taacutec Biểu đồ hoạt động bao gồm caacutec trạng thaacutei hagravenh động chứa
đặc tả của một hoạt động cần phải được thực hiện (một hagravenh động - action) Một
trạng thaacutei hagravenh động sẽ qua đi khi hagravenh động được thực hiện xong (khaacutec với biểu
đồ trạng thaacutei một trạng thaacutei chỉ chuyển sang trạng thaacutei khaacutec sau khi đatilde xảy ra
một sự kiện rotilde ragraveng ) Dograveng điều khiển ở đacircy chạy giữa caacutec trạng thaacutei hagravenh
động liecircn kết với nhau Biểu đồ cograven coacute thể chỉ ra caacutec quyết định caacutec điều kiện
cũng như phần thực thi song song của caacutec trạng thaacutei hagravenh động Biểu đồ ngoagravei ra
cograven coacute thể chứa caacutec loại đặc tả cho caacutec thocircng điệp được gửi đi hoặc được nhận về
trong tư caacutech lagrave thagravenh phần của hagravenh động được thực hiện
Higravenh 38 - Một biểu đồ hoạt động cho một printer server
48- Biểu đồ thagravenh phần (Component Diagram)
Một biểu đồ thagravenh phần chỉ ra cấu truacutec vật lyacute của caacutec dograveng lệnh (code) theo khaacutei
niệm thagravenh phần code Một thagravenh phần code coacute thể lagrave một tập tin source code
một thagravenh phần nhị phacircn (binary) hay một thagravenh phần thực thi được
(executable) Một thagravenh phần chứa caacutec thocircng tin về caacutec lớp logic hoặc caacutec lớp magrave
noacute thi hagravenh như thế coacute nghĩa lagrave noacute tạo ra một aacutenh xạ từ hướng nhigraven logic vagraveo
hướng nhigraven thagravenh phần Biểu đồ thagravenh phần cũng chỉ ra những sự phụ thuộc giữa
caacutec thagravenh phần với nhau trợ giuacutep cho cocircng việc phacircn tiacutech hiệu ứng magrave một
thagravenh phần được thay đổi sẽ gacircy ra đối với caacutec thagravenh phần khaacutec Thagravenh phần
cũng coacute thể được miecircu tả với bất kỳ loại giao diện nagraveo magrave chuacuteng bộc lộ viacute dụ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
như giao diện OLECOM vagrave chuacuteng coacute thể được nhoacutem goacutep lại với nhau thagravenh từng
goacutei (package) Biểu đồ thagravenh phần được sử dụng trong cocircng việc lập trigravenh cụ thể
(xem higravenh 39)
Higravenh 39 - Một biểu đồ thagravenh phần chỉ ra sự phụ thuộc giữa caacutec thagravenh phần matilde
49- Biểu đồ triển khai (Deployment Diagram)
Biểu đồ triển khai chỉ ra kiến truacutec vật lyacute của phần cứng cũng như phần mềm
trong hệ thống Bạn coacute thể chỉ ra từng maacutey tiacutenh cụ thể vagrave từng trang thiết bị cụ
thể (node) đi kegravem sự nối kết giữa chuacuteng với nhau bạn cũng coacute thể chỉ ra loại của
caacutec mối nối kết đoacute Becircn trong caacutec nuacutet mạng (node) caacutec thagravenh phần thực thi được
cũng như caacutec đối tượng sẽ được xaacutec định vị triacute để chỉ ra những phần mềm nagraveo sẽ
được thực thi tại những nuacutet mạng nagraveo Bạn cũng coacute thể chỉ ra sự phụ thuộc giữa
caacutec thagravenh phần
Biểu đồ triển khai chỉ ra hướng nhigraven triển khai miecircu tả kiến truacutec vật lyacute thật sự
của hệ thống Đacircy lagrave một hướng nhigraven rất xa lối miecircu tả duy chức năng của hướng
nhigraven Use case Mặc dugrave vậy trong một mocirc higravenh tốt người ta coacute thể chỉ tất cả
những con đường dẫn từ một nuacutet mạng trong một kiến truacutec vật lyacute cho tới những
thagravenh phần của noacute cho tới lớp magrave noacute thực thi cho tới những tương taacutec magrave caacutec
đối tượng của lớp nagravey tham gia để rồi cuối cugraveng tiến tới một Use case Rất nhiều
hướng nhigraven khaacutec nhau của hệ thống được sử dụng đồng thời để tạo ra một lời
miecircu tả thấu đaacuteo đối với hệ thống trong sự tổng thể của noacute
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 310 - Một biểu đồ triển khai chỉ ra kiến truacutec vật lyacute của hệ thống
5- PHẦN TỬ MOcirc HIgraveNH (MODEL ELEMENT)
Caacutec khaacutei niệm được sử dụng trong caacutec biểu đồ được gọi lagrave caacutec phần tử mocirc higravenh
(model element) Một phần tử mocirc higravenh được định nghĩa với ngữ nghĩa (semantic)
đoacute lagrave một định nghĩa về bản chất phần tử hay lagrave một xaacutec định yacute nghĩa chiacutenh xaacutec
xem noacute sẽ thể hiện điều gigrave trong những lời khẳng định rotilde ragraveng Mỗi phần tử mocirc
higravenh cograven coacute một sự miecircu tả trực quan một kyacute hiệu higravenh học được sử dụng để
miecircu tả phần tử nagravey trong biểu đồ Một phần tử coacute thể tồn tại trong nhiều dạng
biểu đồ khaacutec nhau nhưng cũng coacute những nguyecircn tắc xaacutec định loại phần tử nagraveo
coacute thể được chỉ ra trong loại biểu đồ nagraveo Một vagravei viacute dụ cho phần tử vocirc higravenh lagrave lớp
đối tượng trạng thaacutei nuacutet mạng goacutei thagravenh phần (higravenh 311)
Higravenh 311- Caacutec thagravenh phần mocirc higravenh thường dugraveng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 312 chỉ ra một vagravei viacute dụ của mối quan hệ đacircy cũng lagrave một dạng phần tử
mocirc higravenh chuacuteng được sử dụng để nối caacutec phần tử mocirc higravenh khaacutec với nhau Một vagravei
loại quan hệ đaacuteng chuacute yacute
Nối kết (Association) nối caacutec phần tử vagrave caacutec thực thể nối (link)
Khaacutei quaacutet hoacutea (Generalization) cograven được gọi lagrave tiacutenh thừa kế coacute
yacute nghĩa rằng một phần tử nagravey coacute thể lagrave một sự chuyecircn biệt hoacutea của
một phần tử khaacutec
Sự phụ thuộc (Dependency) chỉ ra rằng một phần tử nagravey phụ
thuộc trong một phương thức nagraveo đoacute vagraveo một phần tử khaacutec
Kết tập (Aggregation) Một dạng của nối kết trong đoacute một phần
tử nagravey chứa caacutec phần tử khaacutec
Ngoagravei ra cograven coacute caacutec phần tử mocirc higravenh khaacutec như thocircng điệp (Message) hagravenh động
(action) vagrave khuocircn mẫu (stereotype) Tất cả caacutec phần tử mocirc higravenh yacute nghĩa của
chuacuteng cũng như những ứng dụng đều được giải thiacutech kỹ lưỡng hơn trong caacutec
chương sau
Higravenh 312 ndash caacutec viacute dụ về vagravei loại quan hệ
6- CƠ CHẾ CHUNG (GENERAL MECHANISM)
UML thể hiện một số caacutec cơ chế chung trong tất cả caacutec biểu đồ nhằm mục điacutech
cung cấp thecircm caacutec thocircng tin bổ sung thường đacircy lagrave những thocircng tin khocircng thể
được thể hiện qua caacutec chức năng vagrave khả năng cơ bản của caacutec phần tử mocirc higravenh
61- Trang triacute (Adornment)
Caacutec sự trang triacute trực quan coacute thể được sử dụng kegravem thecircm vagraveo caacutec phần tử mocirc
higravenh trong biểu đồ Động taacutec trang triacute bổ sung thecircm ngữ nghĩa cho phần tử Một
viacute dụ lagrave kỹ thuật được sử dụng để phacircn biệt một loại thực thể (lớp) vagrave một thực
thể Khi thể hiện một loại tecircn phần tử sẽ được in đậm Khi cũng chiacutenh phần tử
đoacute thể hiện chỉ một thực thể của loại nagravey tecircn phần tử sẽ được gạch dưới vagrave coacute
thể được coi lagrave cả tecircn của thực thể lẫn tecircn của loại đoacute Một higravenh chữ nhật thể
hiện lớp với tecircn được in đậm sẽ thể hiện một lớp vagrave tecircn được gạch dưới sẽ thể
CuuDuongThanCongcom httpsfbcomtailieudientucntt
hiện một đối tượng đacircy lagrave một viacute dụ tiecircu biểu của adornment Cũng nguyecircn tắc
đoacute được aacutep dụng cho caacutec nuacutet mạng khi kyacute hiệu nuacutet được in đậm lagrave thể hiện một
loại nuacutet viacute dụ như maacutey in (Printer) khi kyacute hiệu được gạch dưới lagrave thể hiện một
thực thể của lớp nuacutet mạng nagravey viacute dụ Johnrsquos HP 5MP-printer Caacutec kiểu trang triacute
khaacutec lagrave caacutec lời đặc tả về số lượng trong quan hệ (multiplicity) nơi số lượng lagrave
một số hay một khoảng số chỉ ra bao nhiecircu thực thể của caacutec loại thực thể được
nối với nhau sẽ coacute thể tham gia trong một quan hệ Kiacute hiệu trang triacute được viết
gần phần tử mocirc higravenh được magrave noacute bổ sung thocircng tin (higravenh 313)
Higravenh 313 - Phacircn biệt giữa lớp vagrave đối tượng bằng trang triacute
62- Ghi chuacute (Note)
Cho dugrave một ngocircn ngữ mocirc higravenh hoacutea coacute được mở rộng đến bao nhiecircu chăng nữa
noacute cũng khocircng thể định nghĩa tất cả mọi việc Nhằm tạo điều kiện bổ sung thecircm
cho một mocirc higravenh những thocircng tin khocircng thể được thể hiện bằng phần tử mocirc higravenh
UML cung cấp khả năng kegravem theo lời ghi chuacute Một lời ghi chuacute coacute thể được để bất
kỳ nơi nagraveo trong bất kỳ biểu đồ nagraveo vagrave noacute coacute thể chứa bất kỳ loại thocircng tin nagraveo
Dạng thocircng tin của bản thacircn noacute lagrave chuỗi kyacute tự (string) khocircng được UML diễn giải
Lời ghi chuacute thường đi kegravem theo một số caacutec phần tử mocirc higravenh trong biểu đồ được
nối bằng một đường chấm chấm chỉ ra phần tử mocirc higravenh nagraveo được chi tiết hoacutea
hoặc được giải thiacutech (higravenh 314)
Một lời ghi chuacute thường chứa lời nhận xeacutet hoặc caacutec cacircu hỏi của nhagrave tạo mocirc higravenh
viacute dụ lời nhắc nhở cần phải xử lyacute vấn đề nagraveo đoacute trong thời gian sau nagravey Lời ghi
chuacute cũng coacute thể chứa caacutec thocircng tin dạng khuocircn mẫu (stereotype)
Higravenh 314 - Một viacute dụ về ghi chuacute
63- Đặc tả (Specification)
Caacutec phần tử mocirc higravenh coacute thuộc tiacutenh (Property) chứa caacutec giaacute trị dữ liệu về phần tử
nagravey Một thuộc tiacutenh được định nghĩa với một tecircn vagrave một giaacute trị điacutenh kegravem (tagged
value) thường chuacuteng ở trong một dạng thocircng tin được xaacutec định trước viacute dụ như
số nguyecircn hay chuỗi kiacute tự Coacute một loạt thuộc tiacutenh đatilde được định nghĩa trước viacute dụ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
như tagravei liệu (docement) traacutech nhiệm (Responsibility) sự trường tồn (Persistence)
vagrave tiacutenh song song (Conccurency)
Thuộc tiacutenh được sử dụng để thecircm caacutec đặc tả bổ sung về một phần tử những
thocircng tin bigravenh thường ra khocircng được thể hiện trong biểu đồ Viacute dụ tiecircu biểu lagrave
một lớp sẽ được miecircu tả bằng một tagravei liệu văn bản nhất định cung cấp nhiều
thocircng tin hơn về traacutech nhiệm cũng như khả năng của lớp nagravey Loại đặc tả nagravey
bigravenh thường ra khocircng được chỉ ra trong caacutec biểu đồ nhưng thường thigrave trong đa
phần caacutec cocircng cụ mocirc higravenh hoacutea chuacuteng sẽ coacute thể được truy cập qua hagravenh động
nhấp nuacutet vagraveo một phần tử nagraveo đoacute hiệu quả lagrave một cửa sổ chứa đặc tả với tất cả
caacutec thuộc tiacutenh sẽ được chỉ ra (Higravenh 315)
Higravenh 315- Một cửa sổ đặc tả thể hiện caacutec đặc tiacutenh của class
7- MỞ RỘNG UML
UML coacute thể được mở rộng hoặc coacute thể được sửa đổi để phugrave hợp với một phương
phaacutep đặc biệt một tổ chức cụ thể hay một người dugraveng cụ thể Chuacuteng ta sẽ bagraven
luận sơ qua đến ba cơ chế mở rộng UML khuocircn mẫu (stereotype) giaacute trị điacutenh
kegravem (tagged value) vagrave hạn chế (constraint)
71- Khuocircn mẫu (Stereotype)
Cơ chế mở rộng khuocircn mẫu định nghĩa một loại phần tử mocirc higravenh mới dựa trecircn
một phần tử mocirc higravenh đatilde tồn tại Khuocircn mẫu coacute thể được coi lagrave tương tự như
một phần tử đatilde coacute sẵn cộng thecircm phần quy định ngữ nghĩa (semantic) riecircng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
biệt khocircng coacute trong phần tử gốc kia Khuocircn mẫu của một phần tử coacute thể được sử
dụng trong cugraveng tigravenh huống như phần tử căn bản Khuocircn mẫu dựa trecircn tất cả caacutec
loại phần tử mocirc higravenh sẵn coacute - lớp nuacutet mạng thagravenh phần cũng như caacutec mối quan
hệ như liecircn kết khaacutei quaacutet hoacutea sự phụ thuộc Ngocircn ngữ UML coacute chứa một số
lượng lớn caacutec khuocircn mẫu được định nghĩa sẵn vagrave chuacuteng được sử dụng để sửa đổi
caacutec phần tử mocirc higravenh sẵn coacute thay cho việc phải định nghĩa hoagraven toagraven mới Cơ chế
nagravey giuacutep gigraven giữ tiacutenh đơn giản của nền tảng ngocircn ngữ UML
Khuocircn mẫu được miecircu tả qua việc đưa tecircn của chuacuteng vagraveo trong một cặp kyacute tự
ngoặc nhọn ltltgtgt theo như trong higravenh 316 Kyacute tự ngoặc nhọn nagravey được gọi lagrave
guillements Khuocircn mẫu cũng coacute thể coacute kiacute hiệu higravenh học riecircng Một phần tử của
một loại khuocircn mẫu cụ thể coacute thể được thể hiện bởi tecircn khuocircn mẫu đi kegravem kyacute
hiệu higravenh học mocirc tả phần tử căn bản hay lagrave sự kết hợp của cả hai yếu tố nagravey
Bất kỳ khi nagraveo một phần tử mocirc higravenh được nối kết với một tecircn hoặc kiacute hiệu khuocircn
mẫu ta sẽ đọc đacircy lagrave một loại phần tử thuộc loại khuocircn mẫu Viacute dụ một lớp
với ltltWindowgtgt sẽ được gọi lagrave một lớp trong dạng khuocircn mẫu cửa sổ yacute
nghĩa của noacute lagrave một dạng lớp cửa sổ Những thuộc tiacutenh cụ thể magrave một lớp cửa sổ
cần phải coacute sẽ được định nghĩa khi khuocircn mẫu nagravey được định nghĩa
Như đatilde noacutei khuocircn mẫu lagrave một cơ chế mở rộng xuất sắc lagrave một cơ chế ngăn cho
ngocircn ngữ UML khocircng trở necircn quaacute phức tạp mặc dugrave vẫn cho pheacutep thực hiện sự
mở rộng vagrave sửa đổi cần thiết Đa phần caacutec phần tử mocirc higravenh mới magrave bạn cần đến
đều coacute một khuocircn mẫu nền tảng trong ngocircn ngữ UML Một khuocircn mẫu sau đoacute coacute
thể được sử dụng để cộng thecircm caacutec ngữ nghĩa cần thiết nhằm mục điacutech định
nghĩa necircn caacutec phần tử mocirc higravenh cograven thiếu
Higravenh 316- Customer lagrave một lớp khuocircn mẫu ltltActorgtgt
72- Giaacute trị điacutenh kegravem (Tagged Value)
Như đatilde noacutei caacutec phần tử mocirc higravenh coacute thể coacute caacutec thuộc tiacutenh chứa một cặp tecircn-giaacute
trị về bản thacircn chuacuteng (higravenh 317) Caacutec thuộc tiacutenh nagravey cũng cograven được gọi lagrave caacutec
giacutea trị điacutenh kegravem UML coacute chứa một loạt caacutec thuộc tiacutenh được định nghĩa trước
nhưng kể cả người sử dụng cũng coacute thể định nghĩa ra caacutec thuộc tiacutenh mới để chứa
caacutec thocircng tin bổ sung về caacutec phần tử mocirc higravenh Mọi higravenh dạng thocircng tin đều coacute
thể được điacutenh kegravem vagraveo phần tử caacutec thocircng tin chuyecircn biệt về phương phaacutep caacutec
thocircng tin của nhagrave quản trị về tiến trigravenh mocirc higravenh hoacutea caacutec thocircng tin được sử dụng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
bởi caacutec cocircng cụ khaacutec viacute dụ như caacutec cocircng cụ tạo code hay bất kỳ một loại thocircng
tin nagraveo magrave người sử dụng muốn điacutenh kegravem vagraveo phần tử mocirc higravenh
Higravenh 317 - Một viacute dụ về Tagged Value
73- Hạn chế (Constraint)
Một sự hạn chế lagrave một sự giới hạn về sự sử dụng hoặc yacute nghĩa của một phần tử
Sự hạn chế hoặc sẽ được khai baacuteo trong cocircng cụ vagrave được sử dụng nhiều lần trong
rất nhiều biểu đồ khaacutec nhau hay được định nghĩa vagrave sử dụng trong chỉ một biểu
đồ theo như nhu cầu
Higravenh 318 chỉ ra mối quan hệ nối kết giữa nhoacutem caacutec cocircng dacircn lớn tuổi vagrave lớp con
người chỉ ra rằng nhoacutem cocircng dacircn coacute thể coacute nhiều người liecircn quan Mặc dugrave vậy
để miecircu tả rằng chỉ những người nagraveo lớn hơn 60 tuổi mới coacute thể tham gia vagraveo
nhoacutem nagravey người ta định nghĩa một sự hạn chế hạn hẹp tiecircu chuẩn tham gia đối
với chỉ những người nagraveo magrave thuộc tiacutenh tuổi taacutec coacute giaacute trị lớn hơn 60 Định nghĩa
nagravey sẽ hạn chế số lượng những người được sử dụng trong mối quan hệ Nếu
khocircng coacute noacute người ta rất dễ hiểu lầm khi diễn tả biểu đồ Trong trường hợp tồi
tệ noacute coacute thể dẫn đến sự thực thi sai traacutei của hệ thống
Trong trường hợp nagravey hạn chế được định nghĩa vagrave ứng dụng trực tiếp trong
chiacutenh biểu đồ magrave noacute được cần tới Nhưng nhigraven chung thigrave hạn chế cũng coacute thể
được định nghĩa với tecircn cugraveng lời đặc tả riecircng viacute dụ như cocircng dacircn giagrave vagrave
người coacute tuổi lớn hơn 60 vagrave hạn chế nagravey sẽ được sử dụng trong nhiều biểu đồ
khaacutec nhau UML coacute chứa một loạt caacutec hạn chế được định nghĩa sẵn chuacuteng được
miecircu tả chi tiết trong caacutec chương sau
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 318- Một ragraveng buộc hạn chế đối tượng Person goacutep phần vagraveo quan hệ kết
hợp
8- MOcirc HIgraveNH HOacuteA VỚI UML
Khi xacircy dựng hệ thống với UML người ta khocircng chỉ xacircy dựng duy nhất một mocirc
higravenh Sẽ coacute nhiều mocirc higravenh khaacutec nhau trong những giai đoạn phaacutet triển khaacutec nhau
nhắm đến caacutec mục điacutech khaacutec nhau Trong giai đoạn phacircn tiacutech mục điacutech của mocirc
higravenh lagrave nắm bắt tất cả caacutec yecircu cầu đối với hệ thống vagrave mocirc higravenh hoacutea nền tảng bao
gồm caacutec lớp vagrave caacutec cộng taacutec đời thực Trong giai đoạn thiết kế mục điacutech của
mocirc higravenh lagrave mở rộng mocirc higravenh phacircn tiacutech tạo thagravenh một giải phaacutep kỹ thuật khả thi
coacute chuacute yacute đến mocirci trường của cocircng việc xacircy dựng (viết code) Trong giai đoạn xacircy
dựng code mocirc higravenh chiacutenh lagrave những dograveng code nguồn thật sự được viết necircn vagrave
được dịch thagravenh caacutec chương trigravenh Vagrave cuối cugraveng trong giai đoạn triển khai một
lời miecircu tả sẽ giải thiacutech hệ thống cần được triển khai ra sao trong kiến truacutec vật lyacute
Khả năng theo dotildei xuyecircn suốt nhiều giai đoạn vagrave nhiều mocirc higravenh khaacutec nhau được
đảm bảo qua caacutec thuộc tiacutenh hoặc caacutec mối quan hệ nacircng cao (refinement)
Mặc dugrave đoacute lagrave caacutec mocirc higravenh khaacutec nhau nhưng chuacuteng đều được xacircy dựng necircn để
mở rộng nội dung của caacutec mocirc higravenh ở giai đoạn trước Chiacutenh vigrave thế tất cả caacutec mocirc
higravenh đều cần phải được gigraven giữ tốt để người ta coacute thể dễ dagraveng đi ngược lại mở
rộng ra hay taacutei thiết lập mocirc higravenh phacircn tiacutech khởi đầu vagrave rồi dần dần từng bước
đưa caacutec sự thay đổi vagraveo mocirc higravenh thiết kế cũng như caacutec mocirc higravenh xacircy dựng (higravenh
319)
Higravenh 319- Một hệ thống được mocirc tả trong nhiều mocirc higravenh
Bản thacircn ngocircn ngữ UML khocircng phụ thuộc vagraveo giai đoạn coacute nghĩa lagrave cũng những
nguyecircn tắc ngocircn ngữ đoacute vagrave cũng những biểu đồ đoacute được sử dụng để mocirc higravenh hoacutea
những sự việc khaacutec nhau trong những giai đoạn khaacutec nhau Nhagrave thiết kế nắm
quyền quyết định xem một mocirc higravenh sẽ phải thay đổi nhằm đạt được những mục
điacutech nagraveo vagrave bao trugravem những phạm vi nagraveo Ngocircn ngữ mocirc higravenh hoacutea chỉ cung cấp
khả năng để tạo ra caacutec mocirc higravenh trong một phong caacutech mở rộng vagrave nhất quaacuten
Khi mocirc higravenh hoacutea bằng ngocircn ngữ UML toagraven bộ cocircng việc cần phải được thực hiện
theo một phương phaacutep hay một qui trigravenh xaacutec định rotilde những bước cocircng việc nagraveo
phải được tiến hagravenh vagrave chuacuteng phải được thực thi ra sao Một qui trigravenh như vậy
CuuDuongThanCongcom httpsfbcomtailieudientucntt
thường sẽ chia cocircng việc ra thagravenh caacutec vograveng lặp kế tiếp mỗi vograveng lặp bao gồm
caacutec cocircng việc phacircn tiacutech yecircu cầu phacircn tiacutech thiết kế thực hiện triển khai Mặc
dugrave vậy cũng coacute một quy trigravenh nhỏ hơn đề cập tới nội dung của việc mocirc higravenh hoacutea
Bigravenh thường ra khi sản xuất một mocirc higravenh hoặc sản xuất chỉ một biểu đồ duy
nhất cocircng việc sẽ bắt đầu bằng việc thu thập một nhoacutem thiacutech hợp caacutec caacute nhacircn
khaacutec nhau trigravenh bagravey vấn đề vagrave mục tiecircu họ cộng taacutec cho một giai đoạn hội thảo
khoa học vagrave phaacutec thảo trao đổi những saacuteng kiến vagrave yacute tưởng về mocirc higravenh coacute thể
Cocircng cụ được sử dụng trong giai đoạn nagravey lagrave hết sức khaacutec biệt vagrave mang tiacutenh
ngẫu hứng - thường lagrave giấy daacuten post it hay bảng trắng Cocircng việc được quyết
định chừng nagraveo những người tham gia coacute cảm giaacutec họ đatilde coacute được một nền tảng
thực tiễn cho một mocirc higravenh (giống như một tiecircu đề) Kết quả sau đoacute sẽ được đưa
vagraveo một cocircng cụ mocirc higravenh tiecircu đề được tổ chức vagrave sau đoacute một biểu đồ thực sự
sẽ được tạo dựng necircn phugrave hợp với những quy định của ngocircn ngữ mocirc higravenh hoacutea
Sau đoacute mocirc higravenh được chi tiết hoacutea qua những cocircng việc mang tiacutenh vograveng lặp cagraveng
ngagravey cagraveng coacute nhiều chi tiết về giải phaacutep được phaacutet hiện được dữ liệu hoacutea vagrave
được bổ sung Khi đatilde coacute nhiều thocircng tin hơn được thu thập về vấn đề cũng như
giải phaacutep của noacute tiecircu đề ban đầu dần dần trở thagravenh một lời chuẩn đoaacuten cho một
mocirc higravenh coacute khả năng sử dụng Khi mocirc higravenh đatilde gần hoagraven thiện một sự tiacutech hợp
vagrave thẩm định sẽ được thực hiện dẫn tới việc mocirc higravenh hoặc biểu đồ sẽ được tiacutech
hợp với những mocirc higravenh vagrave biểu đồ khaacutec trong cugraveng dự aacuten để đảm bảo sự nhất
quaacuten Mocirc higravenh sau đoacute cũng được kiểm tra lại để chắc chắn noacute đang giải quyết
đuacuteng vấn đề cần giải quyết (higravenh 320)
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 320 - Một tiến trigravenh cho cocircng việc mocirc higravenh hoaacute thực tế
Cuối cugraveng mocirc higravenh sẽ được thực thi vagrave triển khai thagravenh một loạt caacutec nguyecircn
mẫu (prototype) nguyecircn mẫu nagravey sẽ được kiểm tra để tigravem khiếm khuyết Caacutec
khiếm khuyết bao gồm kể cả caacutec chức năng cograven thiếu sự thực hiện tồi tệ hay phiacute
sản xuất vagrave phaacutet triển quaacute cao Những khiếm khuyết thường sẽ eacutep nhagrave phaacutet triển
ragrave đi ragrave lại cocircng việc của migravenh để khắc phục chuacuteng Nếu vấn đề lagrave quaacute lớn nhagrave
phaacutet triển coacute thể sẽ đi ngược lại tất cả caacutec bước cocircng việc của migravenh cho tới tận
giai đoạn sơ phaacutec đầu tiecircn Nếu caacutec vấn đề nagravey khocircng lớn nhagrave phaacutet triển coacute lẽ
chỉ cần thay đổi một vagravei thagravenh phần trong tổ chức hoặc đặc tả của mocirc higravenh Xin
nhớ rằng bước tạo nguyecircn mẫu khocircng thể được thực hiện ngay lập tức sau khi
hoagraven tất biểu đồ noacute chỉ necircn được thực hiện khi đatilde coacute một số lượng lớn caacutec biểu
đồ liecircn quan Nguyecircn mẫu sau nagravey coacute thể được vứt đi coacute thể được tạo dựng necircn
chỉ để nhằm mục điacutech kiểm tra hoặc lagrave nếu bước tạo nguyecircn mẫu nagravey thagravenh
cocircng noacute sẽ trở thagravenh một vograveng lặp trong quy trigravenh phaacutet triển thật sự
CuuDuongThanCongcom httpsfbcomtailieudientucntt
9- COcircNG CỤ (TOOL)
Sử dụng một ngocircn ngữ mocirc higravenh hoacutea phức tạp vagrave rộng mở như UML cần thiết sự
trợ giuacutep của cocircng cụ Mặc dugrave phaacutec thảo đầu tiecircn của một mocirc higravenh coacute thể được
thực hiện bằng bảng trắng cugraveng giấy vagrave mực nhưng cocircng việc bảo trigrave đồng bộ
hoacutea vagrave đảm bảo sự nhất quaacuten trong một loạt caacutec biểu đồ khaacutec nhau thường lại
khocircng thể trở thagravenh khả thi nếu khocircng coacute cocircng cụ
Thị trường cocircng cụ mocirc higravenh hoacutea đatilde dừng trong mức độ sơ khởi suốt một thời gian
dagravei kể từ khi xuất hiện yacute tưởng đầu tiecircn về caacutec chương trigravenh trợ giuacutep cho việc tạo
chương trigravenh Rất nhiều cocircng cụ trong thực tế chỉ thocircng minh hơn caacutec chương
trigravenh vẽ một chuacutet sử dụng một vagravei quy chế kiểm tra tiacutenh nhất quaacuten hoặc một vagravei
kiến thức về phương phaacutep vagrave ngocircn ngữ mocirc higravenh hoacutea Mặc dugrave đatilde coacute một vagravei bước
tiến nhất định vagrave nhiều cocircng cụ hocircm nay đatilde tới gần saacuteng kiến khởi thủy kia
nhiều hơn (Rational Rose) nhưng thị trường vẫn cograven khocircng iacutet cocircng cụ chưa được
gọt giũa vẫn cograven chứa lỗi hoặc những neacutet kỳ quặc kể cả những vấn đề đơn giản
như copy vagrave daacuten Những cocircng cụ nagravey cograven hạn chế ở phương diện rằng tất cả bọn
chuacuteng đều coacute ngocircn ngữ mocirc higravenh hoacutea riecircng hay iacutet nhất thigrave cũng coacute những định
nghĩa riecircng của chuacuteng về ngocircn ngữ nagravey
Cugraveng với sự ra đời của ngocircn ngữ UML caacutec nhagrave cung cấp cocircng cụ mocirc higravenh hoacutea giờ
đacircy coacute thể dagravenh nhiều thời gian hơn cho việc nacircng cấp cocircng cụ bởi họ khocircng cần
phải dồn tacircm dồn sức cho việc định nghĩa caacutec phương phaacutep mới cũng như caacutec
ngocircn ngữ mới
Một cocircng cụ mocirc higravenh hoacutea hịecircn đại cần phải cung cấp caacutec chức năng sau
Vẽ biểu đồ cần phải tạo điều kiện dễ dagraveng vẽ ra caacutec biểu đồ
trong ngocircn ngữ mocirc higravenh hoacutea Cocircng cụ cần phải đủ khả năng thocircng
minh để hiểu mục điacutech của caacutec biểu đồ vagrave biết được những ngữ
nghĩa cũng như caacutec quy tắc đơn giản đủ để noacute coacute thể cảnh baacuteo
hoặc ngăn chặn việc sử dụng khocircng thiacutech hợp caacutec phần tử mocirc higravenh
Hoạt động như một nhagrave kho (Repository) cocircng cụ cần phải
hỗ trợ một nhagrave kho trung tacircm để tất cả caacutec thocircng tin về mocirc higravenh
được lưu trữ trong cugraveng một chỗ Nếu viacute dụ tecircn của một lớp bị thay
đổi trong một biểu đồ thigrave sự thay đổi nagravey cần phải xảy ra trong tất
cả caacutec biểu đồ khaacutec coacute sử dụng lớp nagravey
Hỗ trợ định hướng (Navigation) cocircng cụ cần phải tạo điều
kiện dễ dagraveng cho người sử dụng định hướng vagrave chuyển dịch trong
mocirc higravenh để theo dotildei một phần tử từ biểu đồ nagravey sang biểu đồ khaacutec
hoặc để mở rộng lời miecircu tả của một phần tử
Hỗ trợ nhiều người sử dụng (multiuser support) Cocircng cụ
cần hỗ trợ cho nhiều người sử dụng vagrave tạo điều kiện cho họ cugraveng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
lagravem việc với một mocirc higravenh magrave khocircng ngăn chặn hoặc quấy phaacute lẫn
nhau
Tự động tạo code (code generate) một cocircng cụ cao cấp cần
phải coacute khả năng tạo ra code nơi tất cả caacutec thocircng tin trong mocirc higravenh
được chuyển tải thagravenh caacutec khung code (code skeletons) được sử
dụng lagravem nền tảng cho giai đoạn xacircy dựng chương trigravenh
Taacutei tạo mocirc higravenh (Reserve engineer) Một cocircng cụ cao cấp cần
phải coacute khả năng đọc những thagravenh phần code đang tồn tại vagrave từ đoacute
sản xuất ra mocirc higravenh Từ đoacute suy ra một mocirc higravenh coacute thể được lagravem từ
những dograveng code đatilde tồn tại hoặc một nhagrave phaacutet triển coacute thể dễ
dagraveng chuyển đi chuyển về giữa cocircng việc mocirc higravenh hoacutea vagrave cocircng việc
lập trigravenh
Tiacutech hợp với caacutec cocircng cụ khaacutec một cocircng cụ cần phải coacute khả
năng tiacutech hợp với những cocircng cụ khaacutec với cả việc phaacutet triển mocirci
trường viacute dụ như caacutec trigravenh soạn thảo (editor) chương trigravenh dịch
(compiler) chương trigravenh tigravem lỗi (debugger) cũng như caacutec cocircng cụ
của doanh nghiệp khaacutec như cocircng cụ quản trị cấu higravenh hệ thống
theo dotildei caacutec phiecircn bản
Bao quaacutet mocirc higravenh ở tất cả caacutec mức độ trừu tượng hoacutea khaacutec
nhau cocircng cụ cần phải dễ chuyển tải từ lời miecircu tả ở cấp trừu
tượng hoacutea cao nhất của hệ thống (tức lagrave ở dạng một lượng caacutec goacutei
khaacutec nhau) đi xuống cho tới cấp của những dograveng code thật sự Sau
đoacute để truy xuất những dograveng lệnh code cho một thủ tục cụ thể nagraveo
đoacute trong một lớp nagraveo đoacute bạn coacute thể chỉ cần nhấp chuột vagraveo tecircn của
thủ tục đoacute trong một biểu đồ
Trao đổi mocirc higravenh Một mocirc higravenh hay một biểu đồ của một mocirc
higravenh nagraveo đoacute cần phải coacute khả năng được xuất ra từ một cocircng cụ nagravey
rồi nhập vagraveo một cocircng cụ khaacutec giống như những dograveng lệnh code
được sản sinh trong một cocircng cụ nagravey coacute thể được sử dụng trong một
cocircng cụ khaacutec Nguyecircn tắc trao đổi đoacute cần phải được aacutep dụng cho
caacutec mocirc higravenh trong một ngocircn ngữ mocirc higravenh hoacutea được định nghĩa chiacutenh
xaacutec
10- TOacuteM TẮT VỀ UML
UML tổ chức một mocirc higravenh thagravenh một loạt caacutec hướng nhigraven thể hiện caacutec khiacutea cạnh
khaacutec nhau của hệ thống Chỉ khi kết hợp tất cả caacutec hướng nhigraven lại với nhau
người ta mới co được một bức tranh trọn vẹn về hệ thống Một hướng nhigraven khocircng
phải lagrave một higravenh vẽ nội dung của noacute được miecircu tả qua caacutec biểu đồ đacircy lagrave những
higravenh vẽ chứa đựng caacutec phần tử mocirc higravenh hoacutea Một biểu đồ bigravenh thường chỉ trigravenh
bagravey một phần nội dung của một hướng nhigraven vagrave một hướng nhigraven được định nghĩa
CuuDuongThanCongcom httpsfbcomtailieudientucntt
với rất nhiều biểu đồ Một biểu đồ chứa caacutec phần tử mocirc higravenh viacute dụ như lớp đối
tượng nuacutet mạng thagravenh phần vagrave những mối quan hệ như nối kết khaacutei quaacutet hoacutea
phụ thuộc Caacutec phần tử nagravey coacute yacute nghĩa (semantic) vagrave caacutec kyacute hiệu higravenh học
Caacutec loại biểu đồ trong UML lagrave biểu đồ lớp biểu đồ đối tượng biểu đồ Use case
biểu đồ trạng thaacutei biểu đồ trigravenh tự biểu đồ cộng taacutec biểu đồ hagravenh động biểu đồ
thagravenh phần vagrave biểu đồ triển khai Mục điacutech của caacutec loại biểu đồ cũng như quy tắc
vẽ chuacuteng sẽ được miecircu tả chi tiết trong chương sau
UML coacute một số cơ chế chung để bổ sung thocircng tin khocircng thể được thể hiện trong
quaacute trigravenh vẽ biểu đồ Những thocircng tin nagravey bao gồm viacute dụ những thagravenh phần
trang triacute caacutec lời ghi chuacute coacute thể chứa bất kỳ loại thocircng tin nagraveo cũng như caacutec thuộc
tiacutenh đặc tả Ngoagravei ra cograven coacute caacutec cơ chế mở rộng bao gồm giaacute trị điacutenh kegravem hạn
chế đối với phần tử vagrave khuocircn mẫu định nghĩa một loại phần tử mocirc higravenh mới dựa
trecircn một phần tử sẵn coacute
Một hệ thống sẽ được miecircu tả trong nhiều loại mocirc higravenh khaacutec nhau mỗi loại mocirc
higravenh nhằm một mục điacutech khaacutec nhau Mocirc higravenh phacircn tiacutech miecircu tả những yecircu cầu
về mặt chức năng vagrave mocirc higravenh hoacutea caacutec lớp ngoagravei đời thực Mocirc higravenh thiết kế
chuyển tải kết quả phacircn tiacutech thagravenh một giải phaacutep kỹ thuật theo khaacutei niệm của
một thiết kế phần mềm hoạt động hoagraven chỉnh Mocirc higravenh xacircy dựng code thể hiện
hệ thống qua việc thảo chương cho noacute trong một ngocircn ngữ lập trigravenh hướng đối
tượng Vagrave cuối cugraveng mocirc higravenh triển khai định vị chương trigravenh vừa được tạo necircn
trong một kiến truacutec vật lyacute bao gồm caacutec maacutey tiacutenh vagrave caacutec trang thiết bị Cocircng việc
được lagravem theo nhiều vograveng lặp khaacutec nhau chứ khocircng phải chỉ lagrave một chuỗi thực
hiện một lần
Để sử dụng UML một caacutech nghiecircm chỉnh cho một dự aacuten coacute thật ngoagravei đời bạn
cần cocircng cụ Một cocircng cụ tacircn tiến coacute khả năng cho người dugraveng vẽ biểu đồ trữ tất
cả caacutec thocircng tin vagraveo một kho chung cho pheacutep dễ dagraveng dịch chuyển giữa caacutec
hướng nhigraven vagrave biểu đồ khaacutec nhau trong mocirc higravenh tạo baacuteo caacuteo vagrave tagravei liệu tạo
khung code từ mocirc higravenh đọc những dograveng code sẵn coacute rồi sản sinh ra mocirc higravenh từ
đoacute vagrave dễ dagraveng tiacutech hợp với caacutec cocircng cụ phaacutet triển khaacutec
PHẦN CAcircU HỎI
Hỏi UML coacute cocircng cụ nagraveo giuacutep nắm bắt caacutec yecircu cầu của khaacutech hagraveng (người sử
dụng)
Đaacutep Use Case
Hỏi Một biểu đồ trong UML coacute bao chứa caacutec hướng nhigraven khaacutec nhau
Đaacutep Sai một hướng nhigraven bao gồm một loại caacutec biểu đồ khaacutec nhau
Hỏi Hatildey liệt kecirc caacutec thagravenh phần chủ yếu của ngocircn ngữ UML
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Đaacutep Hướng nhigraven( View) Biểu đồ (Diagram) Phần tử mocirc higravenh Cơ chế
chung
Hỏi UML coacute cocircng cụ nagraveo phục vụ cho giai đoạn thử nghiệm đơn vị (Unit
Testing)
Đaacutep Biểu đồ lớp vagrave đặc tả lớp
Hỏi UML coacute cocircng cụ nagraveo phục vụ cho giai đoạn thử nghiệm hệ thống (System
Testing)
Đaacutep Use case Diagram
Hỏi UML tạo nền tảng cho việc giao tiếp giữa khaacutech hagraveng nhagrave phacircn tiacutech nhagrave
thiết kế vagrave lập trigravenh viecircn
Đaacutep Đuacuteng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Chƣơng 4 Mocirc higravenh hoacutea USE CASE
1- GIỚI THIỆU USE CASE
Trong giai đoạn phacircn tiacutech người sử dụng cộng taacutec cugraveng nhoacutem phaacutet triển phần
mềm tạo necircn một tổ hợp thocircng tin quan trọng về yecircu cầu đối với hệ thống
Khocircng chỉ lagrave người cung cấp thocircng tin bản thacircn người sử dụng cograven lagrave một thagravenh
phần hết sức quan trọng trong bức tranh toagraven cảnh đoacute vagrave nhoacutem phaacutet triển cần
phải chỉ ra được phương thức hoạt động của hệ thống tương lai theo hướng nhigraven
của người sử dụng Hiểu được điểm quan trọng nagravey lagrave chigravea khoacutea để tạo dựng
được những hệ thống vừa thoả matilden caacutec yecircu cầu đặt ra vừa dễ dagraveng sử dụng
thậm chiacute tạo niềm vui thiacutech trong sử dụng
Như vậy cocircng cụ giuacutep ta mocirc higravenh hoaacute hệ thống từ hướng nhigraven của người sử dụng
gọi lagrave Use Case Vagrave để trả lời rotilde hơn về Use Case ta xeacutet một trường hợp sau
Giả sử tocirci quyết định mua một chiếc maacutey fax mới Khi đến cửa hagraveng maacutey văn
phograveng tocirci mới nhận ra lagrave phải chọn lựa trong một danh saacutech maacutey moacutec rất phong
phuacute Loại maacutey nagraveo sẽ được chọn đacircy Tocirci tự hỏi thật chiacutenh xaacutec migravenh muốn lagravem gigrave
với chiếc maacutey fax sẽ mua Tocirci muốn coacute những tiacutenh năng nagraveo Tocirci muốn dugraveng
bằng giấy thường hay giấy thermal Tocirci muốn copy bằng caacutei maacutey đoacute Tocirci muốn
nối noacute với maacutey tiacutenh của migravenh Tocirci muốn dugraveng noacute vừa lagravem maacutey fax vừa lagravem
scanner Tocirci coacute cần phải gởi fax thật nhanh đến mức độ cần một chức năng chọn
số tăng tốc Liệu tocirci coacute muốn sử dụng maacutey fax nagravey để phacircn biệt giữa một cuacute
điện thoại gọi tới vagrave một bản fax gởi tới
Tất cả chuacuteng ta đều trải qua những kinh nghiệm như vậy khi quyết định mua một
moacuten hagraveng nagraveo đoacute khocircng phải vigrave niềm vui bộc phaacutet Việc chuacuteng ta sẽ lagravem trong
những trường hợp như vậy lagrave một dạng phacircn tiacutech Use Case Chuacuteng ta tự hỏi
migravenh sẽ sử dụng sản phẩm (hay hệ thống) sắp bắt ta bỏ ra một khoản tiền đaacuteng
kể đoacute ra sao Trả lời xong cacircu hỏi trecircn ta mới coacute khả năng chọn ra sản phẩm
thoả matilden những đogravei hỏi của migravenh Điều quan trọng ở đacircy lagrave phải biết những đogravei
hỏi đoacute lagrave gigrave
Loại quy trigravenh nagravey đoacuteng vai trograve rất quan trọng đối với giai đoạn phacircn tiacutech của
một nhoacutem phaacutet triển hệ thống Người dugraveng muốn sử dụng hệ thống tương lai hệ
thống magrave bạn sắp thiết kế vagrave xacircy dựng như thế nagraveo
Use Case lagrave một cocircng cụ trợ giuacutep cho cocircng việc của nhagrave phacircn tiacutech cugraveng người sử
dụng quyết định tiacutenh năng của hệ thống Một tập hợp caacutec Use Case sẽ lagravem nổi
bật một hệ thống theo phương diện những người dugraveng định lagravem gigrave với hệ thống
nagravey
Để lagravem rotilde hơn ta hatildey xeacutet một viacute dụ nhagrave băng lẻ Hệ thống tương lai trong trường
hợp nagravey sẽ soacute nhiều người sử dụng mỗi người sẽ giao tiếp với hệ thống cho một
mục điacutech khaacutec biệt
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Quản trị gia sử dụng hệ thống cho mục điacutech thống kecirc
Nhacircn viecircn tiếp khaacutech sử dụng hệ thống để thực hiện caacutec dịch vụ
phục vụ khaacutech hagraveng
Nhacircn viecircn phograveng đầu tư sử dụng hệ thống để thực hiện caacutec giao
dịch liecircn quan đến đầu tư
Nhacircn viecircn thẩm tra chữ kyacute sử dụng hệ thống cho mục điacutech xaacutec
nhận chữ kyacute vagrave bảo trigrave thocircng tin liecircn quan đến khaacutech hagraveng
Khaacutech hagraveng giao tiếp với hệ thống (nhagrave băng) cho caacutec hoạt động
sử dụng dịch vụ như mở tagravei khoản gửi tiền vagraveo ruacutet tiền mặt hellip
Quaacute trigravenh tương taacutec giữa người sử dụng vagrave hệ thống trong mỗi một tigravenh huống kể
trecircn sẽ khaacutec nhau vagrave phụ thuộc vagraveo chức năng magrave người sử dụng muốn thực thi
cugraveng hệ thống
Nhoacutem phaacutet triển hệ thống cần phải xacircy dựng necircn một kịch bản necircu bật sự tương
taacutec cần thiết giữa người sử dụng vagrave hệ thống trong mỗi khả năng hoạt động Viacute
dụ như kịch bản cho sự tương taacutec giữa nhacircn viecircn thu ngacircn vagrave hệ thống của bộ
phận tiết kiệm trong suốt tiến trigravenh của một giao dịch Một kịch bản khaacutec viacute dụ lagrave
chuỗi tương taacutec xảy ra giữa bộ phận tiết kiệm vagrave bộ phận đầu tư trong một giao
dịch chuyển tiền
Nhigraven chung coacute thể coi một Use case như lagrave tập hợp của một loạt caacutec cảnh kịch
về việc sử dụng hệ thống Mỗi cảnh kịch mocirc tả một chuỗi caacutec sự kiện Mỗi một
chuỗi nagravey sẽ được kiacutech hoạt bởi một người nagraveo đoacute một hệ thống khaacutec hay lagrave một
phần trang thiết bị nagraveo đoacute hoặc lagrave một chuỗi thời gian Những thực thể kiacutech hoạt
necircn caacutec chuỗi sự kiện như thế được gọi lagrave caacutec Taacutec Nhacircn (Actor) Kết quả của
chuỗi nagravey phải coacute giaacute trị sử dụng đối với hoặc lagrave taacutec nhacircn đatilde gacircy necircn noacute hoặc lagrave
một taacutec nhacircn khaacutec
2- MỘT SỐ VIacute DỤ USE CASE
Trong viacute dụ nhagrave băng lẻ ở trecircn một số những Use Case dễ thấy nhất lagrave
Một khaacutech hagraveng mở một tagravei khoản mới
Phograveng đầu tư tiacutenh toaacuten tiền latildei cho caacutec tagravei khoản đầu tư
Một chương trigravenh đầu tư mới được đưa vagraveo aacutep dụng
Yecircu cầu chuyển tiền của khaacutech hagraveng được thực hiện
Chuyển tiền theo kỳ hạn từ một tagravei khoản đầu tư sang một tagravei
khoản tiết kiệm
3- SỰ CẦN THIẾT PHẢI COacute USE CASE
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Use Case lagrave một cocircng cụ xuất sắc để khuyến khiacutech những người dugraveng tiềm năng
noacutei về hệ thống từ hướng nhigraven của họ Đối với người dugraveng chẳng phải bao giờ
việc thể hiện vagrave mocirc tả những yacute định trong việc sử dụng hệ thống cũng lagrave chuyện
dễ dagraveng Một hiện thực coacute thật lagrave người sử dụng thường biết nhiều hơn những gigrave
magrave họ coacute thể diễn tả ra Cocircng cụ Use Case sẽ giuacutep cho nhoacutem phaacutet triển bẻ gatildey
lớp băng đoacute ngoagravei ra một sự trigravenh bagravey trực quan cũng cho pheacutep bạn kết hợp
caacutec biểu đồ Use Case với caacutec loại biểu đồ khaacutec
Saacuteng kiến chủ đạo lagrave locirci cuốn được người dugraveng tham gia vagraveo những giai đoạn đầu
tiecircn của quaacute trigravenh phacircn tiacutech vagrave thiết kế hệ thống Việc nagravey sẽ nacircng cao xaacutec suất
cho việc hệ thống chung cuộc trở thagravenh một cocircng cụ quen thuộc đối với caacutec
người dugraveng magrave noacute dự định sẽ trợ giuacutep ndash thay vigrave lagrave một tập hợp khoacute hiểu vagrave rối
rắm của caacutec khaacutei niệm maacutey tiacutenh magrave người dugraveng trong giới doanh thương coacute cảm
giaacutec khocircng bao giờ hiểu được vagrave khocircng thể lagravem việc cugraveng
Cocircng taacutec locirci keacuteo người sử dụng tham gia tiacutech cực vagraveo quaacute trigravenh phacircn tiacutech lagrave nền
tảng quan trọng cho việc tạo dựng một mocirc higravenh thagravenh cocircng một mocirc higravenh dễ
được người sử dụng hiểu vagrave chấp nhận sau khi đatilde thẩm xaacutec caacutec nhiệm vụ căn
bản Ngoagravei ra Use Case cograven giuacutep nhoacutem phaacutet triển quyết định caacutec lớp magrave hệ
thống phải triển khai
4- MOcirc HIgraveNH HOacuteA USE CASE
Trường hợp sử dụng lagrave một kỹ thuật mocirc higravenh hoacutea được sử dụng để mocirc tả một hệ
thống mới sẽ phải lagravem gigrave hoặc một hệ thống đang tồn tại lagravem gigrave Một mocirc higravenh
Use Case được xacircy dựng qua một quaacute trigravenh mang tiacutenh vograveng lặp (interative)
trong đoacute những cuộc hội thảo bagraven luận giữa nhoacutem phaacutet triển hệ thống vagrave khaacutech
hagraveng (hoặcvagrave người sử dụng cuối) sẽ dẫn tới một đặc tả yecircu cầu được tất cả mọi
người chấp nhận Người cha tinh thần của mocirc higravenh hoacutea Use Case lagrave Ivar
Jacobson ocircng đatilde tạo necircn kỹ thuật mocirc higravenh hoacutea dựa trecircn những kinh nghiệm thu
thập được trong quaacute trigravenh tạo hệ thống AXE của hatildeng Erisson Use Case đatilde nhận
được một sự quan tacircm đặc biệt lớn lao từ phiacutea cộng đồng hướng đối tượng vagrave đatilde
taacutec động lecircn rất nhiều phương phaacutep hướng đối tượng khaacutec nhau
Những thagravenh phần quan trọng nhất của một mocirc higravenh Use Case lagrave Use Case taacutec
nhacircn vagrave hệ thống Ranh giới của hệ thống được định nghĩa qua chức năng tổng
thể magrave hệ thống sẽ thực thi Chức năng tổng thể được thể hiện qua một loạt caacutec
Use Case vagrave mỗi một Use Case đặc tả một chức năng trọn vẹn coacute nghĩa lagrave Use
Case phải thực thi toagraven bộ chức năng đoacute từ sự kiện được kiacutech hoạt đầu tiecircn bởi
một taacutec nhacircn ngoại cảnh cho tới khi chức năng đogravei hỏi được thực hiện hoagraven tất
Một Use Case luocircn luocircn phải cung cấp một giaacute trị nagraveo đoacute cho một taacutec nhacircn giaacute
trị nagravey lagrave những gigrave magrave taacutec nhacircn mong muốn từ phiacutea hệ thống Taacutec nhacircn lagrave bất kỳ
một thực thể ngoại cảnh nagraveo mong muốn tương taacutec với hệ thống Thường thường
đoacute lagrave một người sử dụng của hệ thống nhưng nhiều khi cũng coacute thể lagrave một hệ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
thống khaacutec hoặc lagrave một dạng maacutey moacutec thiết bị phần cứng nagraveo đoacute cần tương taacutec
với hệ thống
Trong kỹ thuật mocirc higravenh hoacutea Use Case hệ thống sẽ coacute higravenh dạng của một hộp
đen vagrave cung cấp caacutec Use Case Hệ thống lagravem điều đoacute như thế nagraveo caacutec Use Case
được thực thi ra sao đoacute lagrave những khiacutea cạnh chưa được đề cập tới trong giai đoạn
nagravey Trong thực tế nếu mocirc higravenh hoacutea Use Case được thực hiện trong những giai
đoạn đầu của dự aacuten thigrave thường nhagrave phaacutet triển sẽ khocircng biết Use Case sau nagravey sẽ
được thực thi (tức lagrave biến thagravenh những dograveng code thật sự) như thế nagraveo
Mục tiecircu chiacutenh yếu đối với caacutec Use Case lagrave
Để quyết định vagrave mocirc tả caacutec yecircu cầu về mặt chức năng của hệ
thống đacircy lagrave kết quả ruacutet ra từ sự thỏa thuận giữa khaacutech hagraveng
(vagravehoặc người sử dụng cuối) vagrave nhoacutem phaacutet triển phần mềm
Để tạo necircn một lời mocirc tả rotilde ragraveng vagrave nhất quaacuten về việc hệ thống
cần phải lagravem gigrave lagravem sao để mocirc higravenh coacute thể được sử dụng nhất quaacuten
suốt toagraven bộ quaacute trigravenh phaacutet triển được sử dụng lagravem cocircng cụ giao
tiếp cho tất cả những người phaacutet triển necircn caacutec yecircu cầu nagravey vagrave để
tạo necircn một nền tảng cho việc tạo necircn caacutec mocirc higravenh thiết kế cung
cấp caacutec chức năng được yecircu cầu
Để tạo necircn một nền tảng cho caacutec bước thử nghiệm hệ thống đảm
bảo hệ thống thỏa matilden đuacuteng những yecircu cầu do người sử dụng đưa
ra Trong thực tế thường lagrave để trả lời cacircu hỏi Liệu hệ thống cuối
cugraveng coacute thực hiện những chức năng magrave khởi đầu khaacutech hagraveng đatilde đề
nghị
Để cung cấp khả năng theo dotildei caacutec yecircu cầu về mặt chức năng được
chuyển thagravenh caacutec lớp cụ thể cũng như caacutec thủ tục cụ thể trong hệ
thống
Để đơn giản hoacutea việc thay đổi vagrave mở rộng hệ thống qua việc thay
đổi vagrave mở rộng mocirc higravenh Use Case sau đoacute chỉ theo dotildei riecircng những
Use Case đatilde bị thay đổi cugraveng những hiệu ứng của chuacuteng trong thiết
kế hệ thống vagrave xacircy dựng hệ thống
Những cocircng việc cụ thể cần thiết để tạo necircn một mocirc higravenh Use Case bao gồm
1 Định nghĩa hệ thống (xaacutec định phạm vi hệ thống)
2 Tigravem ra caacutec taacutec nhacircn cũng như caacutec Use Case
3 Mocirc tả Use Case
4 Định nghĩa mối quan hệ giữa caacutec Use Case
5 Kiểm tra vagrave phecirc chuẩn mocirc higravenh
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Đacircy lagrave một cocircng việc mang tiacutenh tương taacutec rất cao bao gồm những cuộc thảo
luận với khaacutech hagraveng vagrave những người đại diện cho caacutec loại taacutec nhacircn Mocirc higravenh Use
Case bao gồm caacutec biểu đồ Use Case chỉ ra caacutec taacutec nhacircn Use Case vagrave mối quan
hệ của chuacuteng với nhau Caacutec biểu đồ nagravey cho ta một caacutei nhigraven tổng thể về mocirc higravenh
nhưng những lời mocirc tả thực sự của từng Use Case thường lại lagrave văn bản Vigrave caacutec
mocirc higravenh trực quan khocircng thể cung cấp tất cả caacutec thocircng tin cần thiết necircn cần
thiết phải dugraveng cả hai kỹ thuật trigravenh bagravey đoacute
Coacute rất nhiều người quan tacircm đến việc sử dụng caacutec mocirc higravenh Use Case Khaacutech
hagraveng (vagravehoặc người sử dụng cuối) quan tacircm đến chuacuteng vigrave mocirc higravenh Use Case đặc
tả chức năng của hệ thống vagrave mocirc tả xem hệ thống coacute thể vagrave sẽ được sử dụng ra
sao Caacutec Use Case vigrave vậy phải được mocirc tả trong những thuật ngữ vagrave ngocircn ngữ
của khaacutech hagravengngười sử dụng
Nhagrave phaacutet triển cần đến caacutec mocirc higravenh Use Case để hiểu hệ thống cần phải lagravem gigrave
vagrave qua đoacute coacute được một nền tảng cho những cocircng việc tương lai (caacutec mocirc higravenh
khaacutec caacutec cấu truacutec thiết kế vagrave việc thực thi xacircy dựng hệ thống bằng code)
Caacutec nhoacutem chuyecircn gia thử nghiệm tiacutech hợp vagrave thử nghiệm hệ thống cần đến Use
Case để thử nghiệm vagrave kiểm tra xem hệ thống coacute đảm bảo sẽ thực hiện đuacuteng
chức năng đatilde được đặc tả trong giai đoạn đầu
Vagrave cuối cugraveng bất kỳ người nagraveo liecircn quan đến những hoạt động liecircn kết đến chức
năng của hệ thống đều coacute thể quan tacircm đến caacutec mocirc higravenh Use Case viacute dụ như
caacutec nhoacutem tiếp thị baacuten hagraveng hỗ trợ khaacutech hagraveng vagrave caacutec nhoacutem soạn thảo tagravei liệu
Mocirc higravenh Use Case mocirc tả hướng nhigraven Use Case của hệ thống Hướng nhigraven nagravey lagrave
rất quan trọng bởi noacute ảnh hưởng đến tất cả caacutec hướng nhigraven khaacutec của hệ thống
Cả cấu truacutec logic lẫn cấu truacutec physic đều chịu ảnh hưởng từ caacutec Use Case bởi
chức năng được đặc tả trong mocirc higravenh nagravey chiacutenh lagrave những chức năng được thực
thi trong caacutec cấu truacutec kia Mục điacutech cuối cugraveng lagrave thiết kế ra một giải phaacutep thỏa
matilden caacutec yecircu cầu đoacute
Mocirc higravenh hoacutea caacutec Use Case chẳng phải chỉ được dugraveng để nắm bắt caacutec yecircu cầu của
hệ thống mới noacute cũng cograven được sử dụng để hỗ trợ cho việc phaacutet triển một phiecircn
bản mới của hệ thống Khi phaacutet triển một phiecircn bản mới của hệ thống đang tồn
tại người ta sẽ bổ sung thecircm caacutec chức năng mới vagraveo mocirc higravenh Use Case đatilde coacute
bằng caacutech thecircm vagraveo caacutec taacutec nhacircn mới cũng như caacutec Use Case mới hoặc lagrave thay
đổi đặc tả của caacutec Use Case đatilde coacute Khi bổ sung thecircm vagraveo mocirc higravenh Use Case đang
tồn tại hatildey chuacute yacute để khocircng bỏ ra bất kỳ một chức năng nagraveo vẫn cograven được cần tới
5- BIỂU ĐỒ USE CASE
Use Case được mocirc tả trong ngocircn ngữ UML qua biểu đồ Use Case (Use Case
Diagram) vagrave một mocirc higravenh Use Case coacute thể được chia thagravenh một số lượng lớn caacutec
CuuDuongThanCongcom httpsfbcomtailieudientucntt
biểu đồ như thế Một biểu đồ Use Case chứa caacutec phần tử mocirc higravenh biểu thị hệ
thống taacutec nhacircn cũng như Use Case vagrave chỉ ra caacutec mối quan hệ giữa caacutec Use Case
Lời mocirc tả nội dung Use Case thường được cung cấp dưới dạng văn bản Trong
UML lời mocirc tả đoacute được coi lagrave thuộc tiacutenh văn bản (document) của Use Case Lời
mocirc tả nagravey bao chứa những thocircng tin quan trọng định nghĩa caacutec yecircu cầu vagrave chức
năng cụ thể Thay cho việc mocirc tả Use Case bằng văn bản bạn cũng coacute thể vẽ
một biểu đồ hoạt động (activity diagram) Mặc dầu vậy necircn nhớ rằng một Use
Case cần phải được mocirc tả sao cho dễ hiểu vagrave dễ giao tiếp đối với người sử dụng
magrave những cấu truacutec phức tạp như một biểu đồ hoạt động coacute thể gacircy cảm giaacutec xa
lạ đối với những người khocircng quen sử dụng
Toacutem tắt Một biểu đồ Use Case thể hiện
Hệ thống
Taacutec nhacircn vagrave
Use Case
Viacute dụ biểu đồ Use Case trong UML
Higravenh 41- Một viacute dụ biểu đồ Use case trong UML
Trong đoacute
Hệ thống được thể hiện qua higravenh chữ nhật với tecircn hệ thống ở becircn
trecircn
Taacutec nhacircn được thể hiện qua kiacute hiệu higravenh nhacircn
Use Case được thể hiện qua higravenh ellipse
51- Hệ thống
Vigrave hệ thống lagrave một thagravenh phần của mocirc higravenh Use Case necircn ranh giới của hệ thống
magrave ta muốn phaacutet triển cần phải được định nghĩa rotilde ragraveng Xin nhớ rằng một hệ
thống khocircng phải bao giờ cũng nhất thiết lagrave một hệ thống phần mềm noacute coacute thể
lagrave một chiếc maacutey hoặc lagrave một doanh nghiệp Định nghĩa caacutec ranh giới vagrave traacutech
nhiệm của hệ thống khocircng phải bao giờ cũng lagrave việc dễ dagraveng bởi khocircng phải bao
giờ người ta cũng rotilde ragraveng nhigraven ra taacutec vụ nagraveo coacute khả năng được tự động hoacutea tốt
nhất ở hệ thống nagravey vagrave taacutec vụ nagraveo thigrave tốt nhất necircn thực hiện thủ cocircng hoặc dagravenh
CuuDuongThanCongcom httpsfbcomtailieudientucntt
cho caacutec hệ thống khaacutec Một khiacutea cạnh khaacutec cần chuacute yacute lagrave hệ thống cần phải lớn tới
mức độ nagraveo trong phiecircn bản đầu tiecircn của noacute Cố gắng tối đa cho phiecircn bản đầu
tiecircn của hệ thống thường lagrave caacutech magrave người ta hay thực hiện thế nhưng những
mục tiecircu quaacute tầm như vậy coacute thể khiến cho hệ thống trở necircn quaacute lớn vagrave thời gian
để cung cấp hệ thống quaacute lacircu Một saacuteng kiến tốt hơn lagrave xaacutec nhận cho rotilde caacutec chức
năng căn bản vagrave tập trung vagraveo việc định nghĩa một kiến truacutec hệ thống thiacutech hợp
rotilde ragraveng coacute nền tảng rộng mở để nhiều chức năng hơn coacute thể được bổ sung vagraveo
hệ thống nagravey trong caacutec phiecircn bản sau
Yếu tố quan trọng lagrave bạn phải tạo dựng được một bản catalog của caacutec khaacutei niệm
(caacutec thực thể) trung tacircm cugraveng với caacutec thuật ngữ vagrave định nghĩa thiacutech hợp trong
những giai đoạn đầu của thời kỳ phacircn tiacutech Đacircy chưa phải mocirc higravenh phạm vi đối
tượng magrave đuacuteng hơn lagrave một cố gắng để mocirc tả caacutec thuật ngữ của hệ thống hoặc
doanh nghiệp magrave chuacuteng ta cần mocirc higravenh hoacutea Caacutec thuật ngữ sau đoacute sẽ được dugraveng
để mocirc tả Use Case Phương thức cụ thể của catalog nagravey coacute thể rất khaacutec nhau noacute
coacute thể lagrave một mocirc higravenh khaacutei niệm chỉ ra caacutec mối quan hệ đơn giản hoặc chỉ lagrave một
văn bản chứa caacutec thuật ngữ cugraveng lời mocirc tả vắn tắt những thuật ngữ nagravey trong
thế giới thực
52- Taacutec nhacircn
Một taacutec nhacircn lagrave một người hoặc một vật nagraveo đoacute tương taacutec với hệ thống sử dụng
hệ thống Trong khaacutei niệm tương taacutec với hệ thống yacute chuacuteng ta muốn noacutei rằng
taacutec nhacircn sẽ gửi thocircng điệp đến hệ thống hoặc lagrave nhận thocircng điệp xuất phaacutet từ hệ
thống hoặc lagrave thay đổi caacutec thocircng tin cugraveng với hệ thống Noacutei một caacutech ngắn gọn
taacutec nhacircn thực hiện caacutec Use Case Thecircm một điều nữa một taacutec nhacircn coacute thể lagrave
người magrave cũng coacute thể lagrave một hệ thống khaacutec (viacute dụ như lagrave một chiếc maacutey tiacutenh
khaacutec được nối kết với hệ thống của chuacuteng ta hoặc một loại trang thiết bị phần
cứng nagraveo đoacute tương taacutec với hệ thống)
Một taacutec nhacircn lagrave một dạng thực thể (một lớp) chứ khocircng phải một thực thể Taacutec
nhacircn mocirc tả vagrave đại diện cho một vai trograve chứ khocircng phải lagrave một người sử dụng
thật sự vagrave cụ thể của hệ thống Nếu một anh chagraveng John nagraveo đoacute muốn mua hợp
đồng bảo hiểm từ một hatildeng bảo hiểm thigrave vai trograve của anh ta sẽ lagrave người mua hợp
đồng bảo hiểm vagrave đacircy mới lagrave thứ magrave chuacuteng ta muốn mocirc higravenh hoacutea chứ khocircng
phải bản thacircn anh chagraveng John Trong sự thực một con người cụ thể coacute thể đoacuteng
vai trograve lagravem nhiều taacutec nhacircn trong một hệ thống một nhacircn viecircn ngacircn hagraveng đồng
thời cũng coacute thể lagrave khaacutech hagraveng của chiacutenh ngacircn hagraveng đoacute Mặt khaacutec số lượng caacutec
vai trograve magrave một con người cụ thể được pheacutep đảm traacutech trong một hệ thống cũng
coacute thể bị hạn chế viacute dụ cugraveng một người khocircng được pheacutep vừa soạn hoacutea đơn vừa
phecirc duyệt hoacutea đơn đoacute Một taacutec nhacircn sẽ coacute một tecircn vagrave caacutei tecircn nagravey cần phải phản
aacutenh lại vai trograve của taacutec nhacircn Caacutei tecircn đoacute khocircng được phản aacutenh lại một thực thể
riecircng biệt của một taacutec nhacircn magrave cũng khocircng phản aacutenh chức năng của taacutec nhacircn
đoacute
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Một taacutec nhacircn giao tiếp với hệ thống bằng caacutech gửi hoặc lagrave nhận thocircng điệp
giống như khaacutei niệm chuacuteng ta đatilde quen biết trong lập trigravenh hướng đối tượng Một
Use Case bao giờ cũng được kiacutech hoạt bởi một taacutec nhacircn gửi thocircng điệp đến cho
noacute Khi một Use Case được thực hiện Use Case coacute thể gửi thocircng điệp đến một
hay lagrave nhiều taacutec nhacircn Những thocircng điệp nagravey cũng coacute thể đến với caacutec taacutec nhacircn
khaacutec becircn cạnh chiacutenh taacutec nhacircn đatilde kiacutech hoạt vagrave gacircy ra Use Case
Taacutec nhacircn cũng coacute thể được xếp loại Một taacutec nhacircn chiacutenh (Primary Actor) lagrave taacutec
nhacircn sử dụng những chức năng căn bản của hệ thống tức lagrave caacutec chức năng
chiacutenh Viacute dụ trong một hệ thống bảo hiểm một taacutec nhacircn căn bản coacute thể lagrave taacutec
nhacircn xử lyacute việc ghi danh vagrave quản lyacute caacutec hợp đồng bảo hiểm Một taacutec nhacircn phụ
(secondary actor) lagrave taacutec nhacircn sử dụng caacutec chức nặng phụ của hệ thống viacute dụ
như caacutec chức năng bảo trigrave hệ thống như quản trị ngacircn hagraveng dữ liệu giao tiếp
back-up vagrave caacutec taacutec vụ quản trị khaacutec Một viacute dụ cho taacutec nhacircn phụ coacute thể lagrave nhagrave
quản trị hoặc lagrave một nhacircn viecircn sử dụng chức năng trong hệ thống để ruacutet ra caacutec
thocircng tin thống kecirc về doanh nghiệp Cả hai loại taacutec nhacircn nagravey đều được mocirc higravenh
hoacutea để đảm bảo mocirc tả đầy đủ caacutec chức năng của hệ thống mặc dugrave caacutec chức
năng chiacutenh mới thật sự nằm trong mối quan tacircm chủ yếu của khaacutech hagraveng
Taacutec nhacircn cograven coacute thể được định nghĩa theo dạng taacutec nhacircn chủ động (active actor)
hay taacutec nhacircn thụ động (passive actor) Một taacutec nhacircn chủ động lagrave taacutec nhacircn gacircy ra
Use Case trong khi taacutec nhacircn thụ động khocircng bao giờ gacircy ra Use Case magrave chỉ
tham gia vagraveo một hoặc lagrave nhiều Use Case
53- Tigravem taacutec nhacircn
Khi nhận diện taacutec nhacircn coacute nghĩa lagrave chuacuteng ta lọc ra caacutec thực thể đaacuteng quan tacircm
theo khiacutea cạnh sử dụng vagrave tương taacutec với hệ thống Sau đoacute chuacuteng ta coacute thể thử
đặt migravenh vagraveo vị triacute của taacutec nhacircn để cố gắng nhận ra caacutec yecircu cầu vagrave đogravei hỏi của
taacutec nhacircn đối với hệ thống vagrave xaacutec định taacutec nhacircn cần những Use Case nagraveo Coacute thể
nhận diện ra caacutec taacutec nhacircn qua việc trả lời một số caacutec cacircu hỏi như sau
Ai sẽ sử dụng những chức năng chiacutenh của hệ thống (taacutec nhacircn
chiacutenh)
Ai sẽ cần sự hỗ trợ của hệ thống để thực hiện những taacutec vụ hagraveng
ngagravey của họ
Ai sẽ cần bảo trigrave quản trị vagrave đảm bảo cho hệ thống hoạt động (taacutec
nhacircn phụ)
Hệ thống sẽ phải xử lyacute vagrave lagravem việc với những trang thiết bị phần
cứng nagraveo
Hệ thống cần phải tương taacutec với caacutec hệ thống khaacutec nagraveo Nhoacutem caacutec
hệ thống nagravey được chia ra lagravem hai nhoacutem nhoacutem kiacutech hoạt cho mối
quan hệ với hệ thống vagrave nhoacutem magrave hệ thống cần phải xacircy dựng của
CuuDuongThanCongcom httpsfbcomtailieudientucntt
chuacuteng ta sẽ thiết lập quan hệ Khaacutei niệm hệ thống bao gồm cả caacutec
hệ thống maacutey tiacutenh khaacutec cũng như caacutec ứng dụng khaacutec trong chiacutenh
chiếc maacutey tiacutenh magrave hệ thống nagravey sẽ hoạt động
Ai hay caacutei gigrave quan tacircm đến kết quả (giaacute trị) magrave hệ thống sẽ sản
sinh ra
Khi đi tigravem những người sử dụng hệ thống đừng quan saacutet những người đang ngồi
ở trước magraven higravenh maacutey tiacutenh Necircn nhớ rằng người sử dụng coacute thể lagrave bất kỳ người
nagraveo hay bất kỳ vật nagraveo tương taacutec hoặc trực tiếp hoặc giaacuten tiếp với hệ thống vagrave
sử dụng caacutec dịch vụ của hệ thống nagravey để đạt đến một kết quả nagraveo đoacute Đừng
quecircn rằng mocirc higravenh hoacutea Use Case được thực hiện để mocirc higravenh hoacutea một doanh
nghiệp vigrave thế taacutec nhacircn thường thường lagrave khaacutech hagraveng của doanh nghiệp đoacute Từ
đoacute suy ra họ khocircng phải lagrave người sử dụng theo nghĩa đơn giản vagrave trực tiếp lagrave
người ngồi trước magraven higravenh maacutey tiacutenh vagrave thao taacutec với maacutey tiacutenh
Để coacute thể nhận dạng được tốt nhiều taacutec nhacircn khaacutec nhau hatildey tiến hagravenh nghiecircn
cứu những người sử dụng của hệ thống hiện thời (một hệ thống thủ cocircng hoặc
một hệ thống đang tồn tại) hỏi xem họ đoacuteng những vai trograve nagraveo khi thực thi cocircng
việc hagraveng ngagravey của họ với hệ thống Cũng người sử dụng đoacute coacute thể thực thi nhiều
vai trograve khaacutec nhau tại nhiều thời điểm khaacutec nhau tugravey thuộc vagraveo việc chức năng
nagraveo trong hệ thống đang được sử dụng
Xin nhắc lại một taacutec nhacircn lagrave một vai trograve (một lớp) chứ khocircng phải một thực thể
riecircng lẻ Mặc dugrave vậy khi cung cấp viacute dụ lagrave một vagravei caacutec thực thể của một taacutec nhacircn
bạn coacute thể đảm bảo rằng taacutec nhacircn đoacute thật sự tồn tại Một taacutec nhacircn phải coacute một
sự liecircn kết (Association) nagraveo đoacute với một hoặc lagrave nhiều Use Case Mặc dugrave coacute
những taacutec nhacircn coacute thể khocircng kiacutech hoạt necircn một Use Case nagraveo nhưng taacutec nhacircn
đoacute sẽ giao tiếp iacutet nhất với một Use Case tại một thời điểm nagraveo đoacute Cần phải đặt
tecircn cho taacutec nhacircn lagravem sao để tecircn phản aacutenh đuacuteng vai trograve của taacutec nhacircn đoacute trong hệ
thống
54- Biểu diễn taacutec nhacircn trong ngocircn ngữ UML
Taacutec nhacircn trong UML lagrave một lớp với biệt ngữ Actor (Taacutec nhacircn) vagrave tecircn của lớp
nagravey lagrave tecircn của taacutec nhacircn (phản aacutenh vai trograve của taacutec nhacircn) Một lớp taacutec nhacircn coacute thể
vừa coacute thuộc tiacutenh (attribute) lẫn hagravenh vi (method) cũng như một thuộc tiacutenh tagravei
liệu (document) mocirc tả taacutec nhacircn đoacute Một lớp taacutec nhacircn coacute một biểu tượng chuẩn
hoacutea biểu tượng higravenh nhacircn
Higravenh 42- biểu tượng taacutec nhacircn trong UML
CuuDuongThanCongcom httpsfbcomtailieudientucntt
55- Use Case
Một Use Case lagrave đại diện cho một chức năng nguyecircn vẹn magrave một taacutec nhacircn nhận
được Một Use Case trong ngocircn ngữ UML được định nghĩa lagrave một tập hợp của caacutec
chuỗi hagravenh động magrave một hệ thống thực hiện để tạo ra một kết quả coacute thể quan
saacutet được tức lagrave một giaacute trị đến với một taacutec nhacircn cụ thể Những hagravenh động nagravey
coacute thể bao gồm việc giao tiếp với một loạt caacutec taacutec nhacircn cũng như thực hiện tiacutenh
toaacuten vagrave cocircng việc nội bộ becircn trong hệ thống
Caacutec tiacutenh chất tiecircu biểu của một Use Case lagrave
Một Use Case bao giờ cũng được gacircy ra bởi một taacutec nhacircn được
thực hiện nhacircn danh một taacutec nhacircn nagraveo đoacute Taacutec nhacircn phải ra lệnh
cho hệ thống để thực hiện Use Case đoacute dugrave lagrave trực tiếp hay giaacuten tiếp
Hiếm khi coacute taacutec nhacircn khocircng liecircn quan đến việc gacircy ra một Use Case
nagraveo đoacute
Một Use Case phải cung cấp một giaacute trị cho một taacutec nhacircn Giaacute trị
đoacute khocircng phải bao giờ cũng cần thiết phải nổi trội ra ngoagravei nhưng
luocircn phải được thấy rotilde
Một Use Case lagrave phải hoagraven tất Một trong những lỗi thường gặp lagrave
sẻ chia một Use Case thagravenh caacutec Use Case nhỏ hơn vagrave caacutec Use Case
nagravey thực thi lẫn nhau giống như việc gọi hagravem cho một ngocircn ngữ lập
trigravenh Một Use Case sẽ khocircng được coi lagrave hoagraven tất chừng nagraveo magrave giaacute
trị cuối cugraveng của noacute chưa được sản sinh ra thậm chiacute ngay cả khi đatilde
xẩy ra nhiều động taacutec giao tiếp (viacute dụ như đối thoại với người sử
dụng)
Use Case được nối với taacutec nhacircn qua liecircn kết (association) Đường liecircn kết chỉ ra
những taacutec nhacircn nagraveo giao tiếp với Use Case nagraveo Mối liecircn kết bigravenh thường ra lagrave
một mối quan hệ 1-1 vagrave khocircng coacute hướng Điều đoacute muốn noacutei lecircn rằng một thực
thể của lớp taacutec nhacircn sẽ giao tiếp với một thực thể của một Use Case vagrave cả hai coacute
thể giao tiếp với nhau trong cả hai chiều Một Use Case sẽ được đặt tecircn theo một
thực thể magrave Use Case sẽ thực hiện viacute dụ như kyacute hợp đồng bảo hiểm cập nhật
danh saacutech vvhellip vagrave thường lagrave một cụm từ hơn lagrave chỉ một từ riecircng lẻ
Một Use Case lagrave một lớp chứ khocircng phải một thực thể Noacute mocirc tả trọn vẹn một
chức năng kể cả caacutec giải phaacutep bổ sung vagrave thay thế coacute thể coacute caacutec lỗi coacute thể xảy
ra cũng như những ngoại lệ coacute thể xảy ra trong quaacute trigravenh thực thi Một kết quả
của sự thực thể hoacutea một Use Case được gọi lagrave một cảnh kịch (scenario) vagrave noacute đại
diện cho một sự sử dụng cụ thể của hệ thống (một đường dẫn thực thi riecircng biệt
qua hệ thống) Viacute dụ một cảnh kịch của Use Case Kyacute hợp đồng bảo hiểm coacute thể
lagrave John liecircn hệ với hệ thống qua điện thoại rồi sau đoacute kyacute hợp đồng bảo hiểm ocirc tocirc
cho chiếc xe Toyota Carolla magrave anh ta vừa mua
CuuDuongThanCongcom httpsfbcomtailieudientucntt
56- Tigravem Use Case
Quaacute trigravenh tigravem caacutec Use Case bắt đầu với caacutec taacutec nhacircn đatilde được xaacutec định ở phần
trước Đối với mỗi taacutec nhacircn hatildey hỏi caacutec cacircu hỏi sau
a Taacutec nhacircn nagravey cần những chức năng nagraveo từ hệ thống Hagravenh động chiacutenh
của taacutec nhacircn lagrave gigrave
Viacute dụ cho một giao dịch ruacutet tiền becircn maacutey ATM trong một nhagrave băng
lẻ caacutec hagravenh động chiacutenh của khaacutech hagraveng (taacutec nhacircn) coacute thể lagrave
Đuacutet thẻ vagraveo maacutey ATM
Nhập password
Nhập loại chuyển dịch
Nhập số tiền mặt muốn ruacutet ra
Yecircu cầu về loại tiền
Nhặt tiền ra từ maacutey
Ruacutet thẻ vagrave tờ in kết quả giao dịch
b Taacutec nhacircn coacute cần phải đọc phải tạo phải hủy bỏ phải sửa chữa hay lagrave
lưu trữ một loại thocircng tin nagraveo đoacute trong hệ thống
Viacute dụ
Nhacircn viecircn nhagrave băng liệu coacute quyền truy xuất hay thay đổi
mức tiền latildei
Khaacutech hagraveng coacute thể thay đổi password của migravenh
c Taacutec nhacircn coacute cần phải baacuteo cho hệ thống biết về những sự kiện nagraveo đoacute
Những sự kiện như thế sẽ đại diện cho những chức năng nagraveo
Viacute dụ
Khaacutech hagraveng kết thuacutec tagravei khoản nhacircn viecircn cung cấp những
thocircng tin nagravey cho hệ thống
Coacute một chương trigravenh đầu tư mới caacutec chi tiết của chương
trigravenh nagravey sẽ phải được nhacircn viecircn nhagrave băng nhập vagraveo hệ thống
d Hệ thống coacute cần phải thocircng baacuteo cho Actor về những thay đổi bất ngờ
trong nội bộ hệ thống
Trong tagravei khoản cograven quaacute iacutet tiền
Ba kỳ liecircn tiếp tiền lương chưa đổ về tagravei khoản
CuuDuongThanCongcom httpsfbcomtailieudientucntt
e Cocircng việc hagraveng ngagravey của taacutec nhacircn coacute thể được đơn giản hoacutea hoặc hữu
hiệu hoacutea qua caacutec chức năng mới trong hệ thống (thường đacircy lagrave những
chức năng tiecircu biểu chưa được tự động hoacutea trong hệ thống)
f Caacutec cacircu hỏi khaacutec
Use Case coacute thể được gacircy ra bởi caacutec sự kiện nagraveo khaacutec
Viacute dụ
Sự kiện thời gian Cuối thaacuteng hết hạn đầu tư
Sự kiện bigravenh thường của hệ thống Tự động chuyển tiền theo
caacutec lệnh xaacutec định trước
Caacutec sự kiện bất bigravenh thường Hợp đồng đầu tư kết thuacutec trước
thời hạn
Hệ thống cần những thocircng tin đầu vagraveođầu ra nagraveo Những thocircng
tin đầu vagraveođầu ra đoacute từ đacircu tới vagrave sẽ đi đacircu
Khoacute khăn vagrave thiếu hụt chiacutenh trong hệ thống hiện thời nằm ở đacircu
(thủ cocircng tự động hoacutea)
Đối với nhoacutem cacircu hỏi cuối khocircng coacute nghĩa lagrave Use Case ở đacircy khocircng coacute taacutec nhacircn
magrave taacutec nhacircn sẽ được nhận ra chỉ khi chuacuteng ta nhận diện ra caacutec Use Case nagravey vagrave
sau đoacute xaacutec định taacutec nhacircn dựa trecircn cơ sở lagrave Use Case Xin nhắc lại một Use Case
bao giờ cũng phải được liecircn kết với iacutet nhất một taacutec nhacircn
57- Viacute dụ tigravem Use Case
Nhagrave băng ABC đưa ra caacutec yecircu cầu sau
Một khaacutech hagraveng coacute thể muốn gửi tiền vagraveo ruacutet tiền ra hoặc đơn giản
kiểm tra lại số tiền trong tagravei khoản của anh ta qua maacutey tự động ruacutet
tiền (ATM) Khi đưa tiền vagraveo hoặc ruacutet tiền ra cần phải ghi ra giấy
kết quả những chuyển dịch đatilde thực hiện vagrave trao tờ giấy nagravey cho
khaacutech hagraveng
Quan saacutet caacutec chức năng căn bản vagrave caacutec thagravenh phần tham gia ta thấy coacute hai taacutec
nhacircn dễ nhận ra nhất lagrave khaacutech hagraveng vagrave nhacircn viecircn thu ngacircn
Qua đoacute coacute thể nhacircn dạng caacutec Use Case sau
Gửi tiền vagraveo
Ruacutet tiền ra
Kiểm tra mức tiền trong tagravei khoản
Thực hiện caacutec chuyển dịch nội bộ hệ thống
In kết quả caacutec chuyển dịch đatilde thực hiện
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 43 ndash Caacutec Use case trong hệ thống ATM
Use Case gửi tiền vagraveo vagrave ruacutet tiền ra phụ thuộc vagraveo Use Case thực hiện caacutec
chuyển dịch trong nội bộ hệ thống việc thực hiện nagravey về phần noacute lại phụ thuộc
vagraveo chức năng in ra caacutec cocircng việc đatilde được thực hiện Kiểm tra mức tiền trong tagravei
khoản lagrave một Use Case độc lập khocircng phụ thuộc vagraveo caacutec Use Case khaacutec
6- CAacuteC BIẾN THỂ (VARIATIONS) TRONG MỘT USE CASE
Mỗi Use Case sẽ coacute một dograveng hagravenh động chiacutenh (Basic Course) Đoacute lagrave tiến trigravenh
bigravenh thường hay tiến trigravenh mong đợi đối với Use Case nagravey
Ngoagravei ra coacute thể cograven coacute một hay nhiều dograveng hagravenh động thay thế (Alternative)
khaacutec Chuacuteng coacute thể được chia lagravem hai nhoacutem chiacutenh
Thay thế bigravenh thường (Normal Alternative)
Điều kiện gacircy lỗi (Error Condidtions)
Những gigrave mang tiacutenh bigravenh thường hơn trong Use Case được gọi lagrave Thay thế bigravenh
thường
Coacute thể miecircu tả caacutec dograveng hagravenh động thay thế bằng từ ngữ (xem phần tagravei liệu Use
Case )
Viacute dụ một khaacutech hagraveng coacute thể chọn caacutec loại giao dịch sau của ATM
Gửi tiền vagraveo
Ruacutet tiền ra
Kiểm tra mức tiền trong tagravei khoản
Đacircy lagrave những viacute dụ cho caacutec dograveng hagravenh động thay thế bigravenh thường
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Điều kiện gacircy lỗi đại diện cho những bước tiến hagravenh bất bigravenh thường trong một
Use Case Cần phải tiacutenh trước đến những điều kiện gacircy lỗi đoacute viacute dụ
Mức tiền trong tagravei khoản khocircng đủ để tiến hagravenh giao dịch
Password khocircng đuacuteng
ATM bị nghẽn thẻ
Higravenh sau necircu bật dograveng hagravenh động chiacutenh vagrave những dograveng hagravenh động thay thế cũng
như sự khaacutec biệt của chuacuteng đối với tiến trigravenh mong đợi của Use Case
Higravenh 44 ndash Caacutec tiến trigravenh trong hệ thống ATM
7- QUAN HỆ GIỮA CAacuteC USE CASE
Coacute ba loại quan hệ Use Case Quan hệ mở rộng quan hệ sử dụng vagrave quan hệ tạo
nhoacutem Quan hệ mở rộng vagrave quan hệ sử dụng lagrave hai dạng khaacutec nhau của tiacutenh thừa
kế Quan hệ tạo nhoacutem lagrave một phương caacutech để đặt nhiều Use Case chung với
nhau vagraveo trong một goacutei
71- Quan hệ mở rộng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Nhiều khi trong quaacute trigravenh phaacutet triển Use Case người ta thấy một số Use Case đatilde
tồn tại cung cấp một phần những chức năng cần thiết cho một Use Case mới
Trong một trường hợp như vậy coacute thể định nghĩa một Use Case mới lagrave Use Case
cũ cộng thecircm một phần mới Một Use Case như vậy được gọi lagrave một Use Case mở
rộng (Extended Use Case ) Trong quan hệ mở rộng Use Case gốc (Base Use
Case ) được dugraveng để mở rộng phải lagrave một Use Case hoagraven thiện Use Case mở
rộng khocircng nhất thiết phải sử dụng toagraven bộ hagravenh vi của Use Case gốc
Biểu đồ sau chỉ ra Use Case ―Kyacute hợp đồng mua ocirc tocirc lagrave Use Case mở rộng của
Kyacute hợp đồng bảo hiểm
Higravenh 45 - Quan hệ mở rộng giữa caacutec Use Case
Quan hệ mở rộng giữa caacutec Use Case được biểu thị bằng đoạn thẳng với higravenh tam
giaacutec rỗng trỏ về phiacutea Use Case được dugraveng để mở rộng đi kegravem với stereotype
ltltextendsgtgt
72- Quan hệ sử dụng
Khi một nhoacutem caacutec Use Case cugraveng chung một hagravenh vi nagraveo đoacute thigrave hagravenh vi nagravey coacute
thể được taacutech riecircng ra thagravenh một Use Case riecircng biệt vagrave noacute coacute thể được sử dụng
bởi caacutec Use Case kia một mối quan hệ như vậy được gọi lagrave quan hệ sử dụng
Trong quan hệ sử dụng phải sử dụng toagraven bộ Use Case khaacutei quaacutet hoacutea noacutei một
caacutech khaacutec ta coacute một Use Case nagravey sử dụng toagraven bộ một Use Case khaacutec Caacutec
hagravenh động trong Use Case khaacutei quaacutet hoacutea khocircng cần phải được sử dụng trong
cugraveng một tiến trigravenh Chuacuteng coacute thể được trộn lẫn với caacutec hagravenh động xảy ra trong
Use Case chuyecircn biệt hoacutea
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 46 - Quan hệ sử dụng giữa caacutec Use Case
Quan hệ sử dụng giữa caacutec Use Case được biểu thị bằng đoạn thẳng với higravenh tam
giaacutec rỗng trỏ về phiacutea Use Case được sử dụng đi kegravem với stereotype ltltusesgtgt
73- Quan hệ chung nhoacutem
Khi một số caacutec Use Case cugraveng xử lyacute caacutec chức năng tương tự hoặc coacute thể liecircn
quan đến nhau theo một phương thức nagraveo đoacute người ta thường nhoacutem chuacuteng lại
với nhau
Nhoacutem caacutec Use Case được thực hiện bằng khaacutei niệm Goacutei (Package) của UML Goacutei
khocircng cung cấp giaacute trị gia tăng cho thiết kế
Viacute dụ tất cả caacutec Use Case coacute liecircn quan đến sự tương taacutec giữa khaacutech hagraveng vagrave
nhacircn viecircn thu ngacircn sẽ được nhoacutem thagravenh Package Khaacutech hagraveng- Nv thu ngacircn
Higravenh 47 ndash Package của UML
Toacutem tắt về Use Case với maacutey ATM trong ngacircn hagraveng lẻ
Cho tới nay chuacuteng ta đatilde xaacutec định được một vagravei Use Case phacircn tiacutech dograveng hagravenh
động chiacutenh cũng như caacutec dograveng hagravenh động thay thế cũng như ruacutet ra caacutec mối
quan hệ giữa chuacuteng Biểu đồ sau tổng hợp những thocircng tin đatilde thu thập được về
nhoacutem caacutec Use Case căn bản của một hệ thống ATM
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 48 - Biểu đồ một số Use Case trong hệ thống ATM
8- MIEcircU TẢ USE CASE
Như đatilde trigravenh bagravey lời miecircu tả một Use Case thường được thực hiện trong văn bản
Đacircy lagrave lời đặc tả đơn giản vagrave nhất quaacuten về việc caacutec taacutec nhacircn vagrave caacutec Use Case (hệ
thống) tương taacutec với nhau ra sao Noacute tập trung vagraveo ứng xử đối ngoại của hệ
thống vagrave khocircng đề cập tới việc thực hiện nội bộ becircn trong hệ thống Ngocircn ngữ vagrave
caacutec thuật ngữ được sử dụng trong lời miecircu tả chiacutenh lagrave ngocircn ngữ vagrave caacutec thuật ngữ
được sử dụng bởi khaacutech hagravengngười dugraveng
Văn bản miecircu tả cần phải bao gồm những điểm sau
Mục điacutech của Use Case Mục điacutech chung cuộc của Use Case lagrave gigrave
Caacutei gigrave cần phải được đạt tới Use Case noacutei chung đều mang tiacutenh
hướng mục điacutech vagrave mục điacutech của mỗi Use Case cần phải rotilde ragraveng
Use Case được khởi chạy như thế nagraveo Taacutec nhacircn nagraveo gacircy ra sự thực
hiện Use Case nagravey Trong hoagraven cảnh nagraveo
Chuỗi caacutec thocircng điệp giữa taacutec nhacircn vagrave Use Case Use Case vagrave caacutec
taacutec nhacircn trao đổi thocircng điệp hay sự kiện nagraveo để thocircng baacuteo lẫn cho
nhau cập nhật hoặc nhận thocircng tin vagrave giuacutep đỡ nhau quyết định
Yếu tố nagraveo sẽ miecircu tả dograveng chảy chiacutenh của caacutec thocircng điệp giữa hệ
thống vagrave taacutec nhacircn vagrave những thực thể nagraveo trong hệ thống được sử
dụng hoặc lagrave bị thay đổi
Dograveng chảy thay thế trong một Use Case Một Use Case coacute thể coacute
những dograveng thực thi thay thế tugravey thuộc vagraveo điều kiện Hatildey nhắc đến
caacutec yếu tố nagravey nhưng chuacute yacute đừng miecircu tả chuacuteng quaacute chi tiết đến
CuuDuongThanCongcom httpsfbcomtailieudientucntt
mức độ chuacuteng coacute thể ―che khuất― dograveng chảy chiacutenh của caacutec hoạt
động trong trường hợp căn bản Những động taacutec xử lyacute lỗi đặc biệt sẽ
được miecircu tả thagravenh caacutec Use Case khaacutec
Use Case sẽ kết thuacutec với một giaacute trị đối với taacutec nhacircn như thế nagraveo
Hatildey miecircu tả khi nagraveo Use Case được coi lagrave đatilde kết thuacutec vagrave loại giaacute trị
magrave noacute cung cấp đến taacutec nhacircn
Hatildey nhớ rằng lời miecircu tả nagravey sẽ xaacutec định những gigrave được thực thi coacute liecircn quan đến
taacutec nhacircn becircn ngoagravei chứ khocircng phải những sự việc được thực hiện becircn trong hệ
thống Văn bản phải rotilde ragraveng nhất quaacuten khiến cho khaacutech hagraveng coacute thể dễ dagraveng
hiểu vagrave thẩm tra chuacuteng (để rồi đồng yacute rằng noacute đại diện cho những gigrave magrave anhcocirc
ta muốn từ phiacutea hệ thống) Traacutenh dugraveng những cacircu văn phức tạp khoacute diễn giải vagrave
dễ hiểu lầm
Một Use Case cũng coacute thể được miecircu tả qua một biểu đồ hoạt động Biểu đồ hoạt
động nagravey chỉ ra chuỗi caacutec hagravenh động thứ tự của chuacuteng caacutec quyết định chọn lựa
để xaacutec định xem hagravenh động nagraveo sau đoacute sẽ được thực hiện
Để bổ sung cho lời miecircu tả một Use Case người ta thường đưa ra một loạt caacutec
cảnh kịch cụ thể để minh họa điều gigrave sẽ xảy ra một khi Use Case nagravey được thực
thể hoacutea Lời miecircu tả cảnh kịch minh họa một trường hợp đặc biệt khi cả taacutec
nhacircn lẫn Use Case đều được coi lagrave một thực thể cụ thể Khaacutech hagraveng coacute thể dễ
dagraveng hiểu hơn toagraven bộ một Use Case phức tạp nếu coacute những cảnh kịch được
miecircu tả thực tiễn hơn minh họa lại lối ứng xử vagrave phương thức hoạt động của hệ
thống Nhưng xin nhớ rằng một lời miecircu tả cảnh kịch chỉ lagrave một sự bổ sung chứ
khocircng phải lagrave ứng cử viecircn để thay thế cho lời miecircu tả Use Case
Sau khi caacutec Use Case đatilde được miecircu tả một hoạt động vagrave một cocircng việc đặc biệt
cần phải thực hiện lagrave thẩm tra xem caacutec mối quan hệ (đatilde đề cập tới trong phần
27) coacute được nhận diện khocircng Trước khi tất cả caacutec Use Case được miecircu tả nhagrave
phaacutet triển chưa thể coacute được những kiến thức hoagraven tất vagrave tổng thể để xaacutec định
caacutec mối quan hệ thiacutech hợp thử nghiệm lagravem theo phương thức đoacute coacute thể sẽ dẫn
đến một tigravenh huống nguy hiểm Trong thời gian thực hiện cocircng việc nagravey hatildey trả
lời caacutec cacircu hỏi sau
Tất cả caacutec taacutec nhacircn liecircn quan đến một Use Case coacute mối liecircn kết
giao tiếp với Use Case đoacute khocircng
Coacute tồn tại những sự tương tự giữa một loạt caacutec taacutec nhacircn minh họa
một vai trograve chung vagrave nhoacutem nagravey liệu coacute thể được miecircu tả lagrave một lớp
taacutec nhacircn căn bản (base class)
Coacute tồn tại những sự tương tự giữa một loạt caacutec Use Case minh họa
một dograveng chảy hagravenh động chung Nếu coacute liệu điều nagravey coacute thể được
miecircu tả lagrave một mối quan hệ sử dụng đến với một Use Case khaacutec
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Coacute tồn tại những trường hợp đặc biệt của một Use Case coacute thể
được miecircu tả lagrave một mối quan hệ mở rộng
Coacute tồn tại một taacutec nhacircn nagraveo hay một Use Case nagraveo khocircng coacute mối
liecircn kết giao tiếp Nếu coacute chắc chắn ở đacircy đatilde coacute chuyện lầm lạc sai
traacutei Tại sao lại xuất hiện taacutec nhacircn nagravey
Coacute lời yecircu cầu nagraveo về chức năng đatilde được xaacutec định nhưng lại khocircng
được bất kỳ một Use Case nagraveo xử lyacute Nếu thế hatildey tạo một Use
Case cho yecircu cầu đoacute
Văn bản miecircu tả một Use Case đơn giản
Viacute dụ Use Case Cung Cấp Thocircng Tin Về Một Tagravei Khoản Tại Nhagrave Băng ABC Sau
khi phacircn tiacutech hệ thống ta nhận thấy cần coacute một Use Case để in lecircn magraven higravenh của
nhacircn viecircn nhagrave băng tất cả những chi tiết về một tagravei khoản của một khaacutech hagraveng
Đặc tả Use Case
Chi tiết tagravei khoản tecircn Use Case
Số Use Case UCSEC35
Miecircu tả ngắn miecircu tả ngắn gọn Use Case
Use Case chi tiết tagravei khoản cho pheacutep nhacircn viecircn nhagrave băng xem caacutec chi tiết của
một tagravei khoản magrave anh ta định tigravem hiểu
Dograveng chảy caacutec sự kiện dograveng logic chung
Nhacircn viecircn chọn Chi Tiết Tagravei Khoản trecircn menu Một con đường khaacutec để chỉ ra caacutec
thocircng tin chi tiết của tagravei khoản lagrave gọi từ Magraven Higravenh Toacutem Tắt Thocircng Tin Về Tagravei
Khoản (xem Use Case số UCSEC99)
Dograveng hagravenh động chiacutenh dograveng logic chi tiết
Mỗi khaacutech hagraveng sẽ coacute một số định danh gọi lagrave CustomerId Một khaacutech hagraveng coacute
thể coacute nhiều tagravei khoản Sau khi nhacircn viecircn nhập CustomerId vagraveo hệ thống magraven
higravenh phải in ra tất cả những tagravei khoản thuộc về khaacutech hagraveng nagravey vagrave thuộc về nhagrave
băng ABC rải raacutec tại tất cả caacutec chi nhaacutenh Khi chọn tiếp loại tagravei khoản vagrave số tagravei
khoản caacutec chi tiết của tagravei khoản mong muốn sẽ được in ra
Loại tagravei khoản tiết kiệm Nếu loại tagravei khoản được chọn lagrave tagravei khoản tiết kiệm thigrave
theo Use Case số UCSEC45 caacutec chi tiết sau đacircy sẽ được in ra
Mức tiền hiện coacute
Caacutec tờ sec chưa thanh toaacuten
Lượng tiền tiacuten dụng được pheacutep
Lượng tiền latildei cho tới ngagravey hocircm nay
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Lượng tiền tối thiểu cần phải coacute trong tagravei khoản
Loại tagravei khoản đầu tư Nếu loại tagravei khoản được chọn lagrave loại đầu tư thigrave theo Use
Case số UCSEC46 caacutec chi tiết sau đacircy sẽ được in ra
Hạn đầu tư
Số tiền đầu tư
Ngagravey đầu tư
Lượng tiền cuối hạn
Ngagravey cuối hạn
Tỷ lệ lời
Dograveng hagravenh động thay thế chuỗi logic thay thế
Khocircng tigravem thấy chi tiết Khi chọn một số tagravei khoản khocircng thiacutech hợp (khocircng coacute tagravei
khoản tương ứng) dugrave vigrave lyacute do chức năng hay kỹ thuật theo Use Case số
UCSEC12 hệ thống sẽ đưa ra một magraven higravenh baacuteo lỗi
Điều kiện thoaacutet Use Case kết thuacutec như thế nagraveo
Nuacutet Thoaacutet Khi chọn nuacutet thoaacutet người sử dụng sẽ quay trở lại magraven higravenh chiacutenh
Nuacutet Xem Thecircm Khi chọn nuacutet nagravey người sử dụng sẽ được yecircu cầu chọn loại tagravei
khoản từ một danh saacutech đổ xuống
Nuacutet Xem Giao Dịch Khi chọn nuacutet nagravey người sử dụng sẽ được chuyển sang magraven
higravenh Giao dịch vagrave theo Use Case số UCSEC91 magraven higravenh sẽ chỉ ra những giao
dịch đatilde xảy ra đối với tagravei khoản becircn cạnh những chi tiết chiacutenh của tagravei khoản
Nuacutet Yecircu Cầu In Kết Quả Khi chọn phần thực đơn nagravey kết quả giao dịch theo Use
Case số UCSEC70 sẽ được in ra ở một maacutey in địa phương nối trực tiếp với maacutey
tiacutenh của nhacircn viecircn
Caacutec yecircu cầu đặc biệt caacutec yecircu cầu đặc biệt
Theo Use Case số UCSEC110 hệ thống coacute khả năng in lecircn magraven higravenh bằng những
ngocircn ngữ khaacutec Chức năng nagravey sẽ được kiacutech hoạt khi người sử dụng chọn mục
Ngoại Ngữ trecircn menu
Điều kiện trƣớc đoacute điều xảy ra trước khi Use Case được thực hiện
Bảo an Người sử dụng (nhacircn viecircn tiếp khaacutech) được cung cấp một số định danh
riecircng biệt để truy nhập vagraveo hệ thống
Dịch chuyển Người sử dụng chỉ đến được magraven higravenh Chi Tiết Tagravei Khoản sau khi đatilde
truy nhập thagravenh cocircng vagrave Identify thagravenh cocircng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Điều kiện sau đoacute điều gigrave xảy ra sau khi Use Case
được thực hiện
Hệ thống sẽ khocircng lưu trữ lại bất kỳ một thocircng tin nagraveo liecircn quan tới khaacutech hagraveng
lecircn đĩa cứng cục bộ
9- THỬ USE CASE
Một trong caacutec mục điacutech chiacutenh của Use Case lagrave thử nghiệm (testing) Coacute hai loại
thử nghiệm khaacutec nhau được thực hiện ở đacircy kiểm tra (verification) vagrave phecirc
duyệt xaacutec nhận (validation) Kiểm tra đảm bảo lagrave hệ thống đatilde được phaacutet triển
đuacuteng đắn vagrave phugrave hợp với caacutec đặc tả đatilde được tạo ra Phecirc duyệt xaacutec nhận đảm bảo
rằng hệ thống sẽ được phaacutet triển chiacutenh lagrave thứ magrave khaacutech hagraveng hoặc người sử
dụng cuối thật sự cần đến
Cocircng việc phecirc duyệt xaacutec nhận được thực hiện kề trước giai đoạn phaacutet triển
Ngay khi một mocirc higravenh Use Case được hoagraven tất (hay thậm chiacute coacute thể đang trong
giai đoạn phaacutet triển) mocirc higravenh nagravey phải được trigravenh bagravey vagrave thảo luận với khaacutech
hagraveng cũng như người sử dụng Họ cần phải xaacutec nhận rằng mocirc higravenh nagravey lagrave đuacuteng
đắn hoagraven tất vagrave thỏa matilden sự mong đợi của họ đối với hệ thống đặc biệt lagrave
phương caacutech magrave hệ thống cung cấp chức năng cho họ Để lagravem điều đoacute nhagrave phaacutet
triển phải đảm bảo rằng khaacutech hagraveng thật sự hiểu được mocirc higravenh vagrave yacute nghĩa của
chuacuteng để traacutenh trường hợp tạo ra những thứ khocircng thể chấp nhận nổi Trong
giai đoạn nagravey rotilde ragraveng lagrave caacutec cacircu hỏi vagrave caacutec yacute tưởng sẽ xuất hiện vagrave chuacuteng cần
phải được bổ sung thecircm vagraveo mocirc higravenh Use Case trước khi đến giai đoạn phecirc duyệt
chung cuộc Giai đoạn xaacutec nhận cũng coacute thể được thực hiện trong thời kỳ thử
nghiệm hệ thống nhưng điểm yếu của phương thức lagravem nagravey lagrave nếu hệ thống
khocircng thỏa matilden những yecircu cầu cụ thể của người sử dụng thigrave toagraven bộ dự aacuten rất
coacute thể sẽ phải lagravem lại từ đầu
Kiểm tra hệ thống lagrave để đảm bảo noacute hoạt động đuacuteng như đặc tả Điều nagravey
khocircng thể được thực hiện trước khi đatilde coacute những thagravenh phần của hệ thống được
tạo ra Chỉ sau đoacute người ta mới coacute thể thử xem hệ thống coacute hoạt động đuacuteng như
đặc tả magrave người sử dụng đatilde đưa ra rằng caacutec Use Case thực hiện đuacuteng theo như
những lời đatilde miecircu tả trong mocirc higravenh rằng chuacuteng hoạt động theo đuacuteng phương
thức đatilde được miecircu tả trong văn bản miecircu tả Use Case
Đi bộ dọc Use Case
Một trong những kỹ thuật hữu dụng được dugraveng trong cả giai đoạn định nghĩa lẫn
thử nghiệm Use Case gọi lagrave Đi Bộ Dọc Use Case Theo kỹ thuật nagravey nhiều
người khaacutec nhau trong nhoacutem lagravem mocirc higravenh sẽ đoacuteng vai caacutec taacutec nhacircn cũng như hệ
thống trong một Use Case cụ thể Người đảm nhận vai taacutec nhacircn sẽ bắt đầu bằng
việc noacutei ra taacutec nhacircn lagravem gigrave với hệ thống Kết quả của cocircng việc nagravey lagrave hệ thống
sẽ khởi chạy một Use Case cụ thể được bắt đầu từ hagravenh động trecircn Người đoacuteng
vai hệ thống sau đoacute sẽ noacutei anh ta lagravem gigrave khi Use Case được thực hiện Nhagrave phaacutet
CuuDuongThanCongcom httpsfbcomtailieudientucntt
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
hoagraven tất
10- THỰC HIỆN CAacuteC USE CASE
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 higravenh ellipse coacute chứa tecircn của sự cộng taacutec đoacute
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
đồ hoạt động Cần phải sử dụng loại biểu đồ nagraveo để tạo ra một bức tranh bao
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 đồ
khaacutec nhau
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
CuuDuongThanCongcom httpsfbcomtailieudientucntt
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
15- Phương phaacutep vagrave caacutec ngocircn ngữ mocirc higravenh hoaacute
2- UML trong phacircn tiacutech thiết kế hệ thống
3- UML vagrave caacutec giai đoạn phaacutet triển hệ thống
Phần cacircu hỏi
Chƣơng 3 KHAacuteI QUAacuteT VỀ UML
1- UML vagrave caacutec giai đoạn của chu trigravenh phaacutet triển phần mềm
11- Giai đoạn nghiecircn cứu sơ bộ
12- Giai đoạn phacircn tiacutech
13- Giai đoạn thiết kế
14- Giai đoạn xacircy dựng
15- Thử nghiệm
2- Caacutec thagravenh phần của ngocircn ngữ UML
3- Hƣớng nhigraven (View)
31- Hướng nhigraven Use case (Use case View)
32- Hướng nhigraven logic (Logical View)
33- Hướng nhigraven thagravenh phần (Component View)
34- Hướng nhigraven song song (Concurrency View)
35- Hướng nhigraven triển khai (Deployment View)
4- Biểu đồ (diagram)
41- Biểu đồ Use case (Use Case Diagram)
42- Biểu đồ lớp (Class Diagram)
43- Biểu đồ đối tượng (Object Diagram)
44- Biểu đồ trạng thaacutei (State Diagram)
45- Biểu đồ trigravenh tự (Sequence Diagram)
46- Biểu đồ cộng taacutec (Collaboration Diagram)
CuuDuongThanCongcom httpsfbcomtailieudientucntt
47- Biểu đồ hoạt động (Activity Diagram)
48- Biểu đồ thagravenh phần (Component Diagram)
49- Biểu đồ triển khai (Deployment Diagram)
5- Phần tử mocirc higravenh (model element)
6- Cơ chế chung (General Mechanism)
61- Trang triacute (Adornment)
62- Ghi chuacute (Note)
63- Đặc tả (Specification)
7- Mở rộng UML
71- Khuocircn mẫu (Stereotype)
72- Giaacute trị điacutenh kegravem (Tagged Value)
73- Hạn chế (Constraint)
8- Mocirc higravenh hoacutea với UML
9- Cocircng cụ (Tool)
10- Toacutem tắt về UML
Phần Cacircu hỏi
Chƣơng 4 Mocirc higravenh hoacutea USE CASE
1- Giới thiệu Use Case
2- Một số viacute dụ Use Case
3- Sự cần thiết phải coacute Use Case
4- Mocirc higravenh hoacutea Use Case
5- Biểu đồ Use Case
51- Hệ thống
52- Taacutec nhacircn
53- Tigravem taacutec nhacircn
54- Biểu diễn taacutec nhacircn trong ngocircn ngữ UML
CuuDuongThanCongcom httpsfbcomtailieudientucntt
55- Use Case
56- Tigravem Use Case
57- Viacute dụ tigravem Use Case
6- Caacutec biến thể (Variations) trong một Use Case
7- Quan hệ giữa caacutec Use Case
71- Quan hệ mở rộng
72- Quan hệ sử dụng
73- Quan hệ chung nhoacutem
8- Miecircu tả Use Case
9- Thử Use Case
10- Thực hiện caacutec Use Case
11- Toacutem tắt về Use Case
Phần cacircu hỏi
Chƣơng 6 MOcirc HIgraveNH ĐỘNG
1- Sự cần thiết coacute mocirc higravenh động (Dynamic model)
2- Caacutec thagravenh phần của mocirc higravenh động
3- Ƣu điểm của mocirc higravenh động
4- Sự kiện vagrave thocircng điệp (Event amp Message)
41- Sự kiện (Event)
42- Thocircng điệp (Message)
5- Biểu đồ tuần tự (Sequence diagram)
6- Biểu đồ cộng taacutec (Collaboration Diagram)
7- Biểu đồ trạng thaacutei (State Diagram)
71- Trạng thaacutei vagrave sự biến đổi trạng thaacutei (State transition)
72- Biểu đồ trạng thaacutei
73- Nhận biết trạng thaacutei vagrave sự kiện
CuuDuongThanCongcom httpsfbcomtailieudientucntt
74- Một số lời maacutech bảo cho việc tạo dựng biểu đồ trạng thaacutei
8- Biểu đồ hoạt động (Activity Diagram)
9- Vograveng đời đối tƣợng (Object lifecycle)
91- Vograveng đời sinh ra vagrave chết đi
92- Vograveng đời lặp
10- Xem xeacutet lại mocirc higravenh động
101- Thẩm vấn biểu đồ trạng thaacutei
102- Phối hợp sự kiện
103- Bao giờ thigrave sử dụng biểu đồ nagraveo
104- Lớp con vagrave biểu đồ trạng thaacutei
11- Phối hợp mocirc higravenh đối tƣợng vagrave mocirc higravenh động
12- Toacutem tắt về mocirc higravenh động
Phần cacircu hỏi
CuuDuongThanCongcom httpsfbcomtailieudientucntt
1- DẪN NHẬP
11- Tiacutenh trực quan
Chuacuteng ta coacute thể thấy rằng Một số tập hợp dữ liệu phức tạp nhất định khi
được trigravenh bagravey bằng đồ thị sẽ truyền tải đến người đọc nhiều thocircng tin hơn
so với caacutec dữ liệu thocirc Với phần mềm cũng vậy khi ngagravenh Cocircng nghiệp
của chuacuteng ta ngagravey cagraveng phaacutet triển caacutec hệ thống sẽ trở necircn phức tạp hơn
Khả năng nắm bắt vagrave kiểm soaacutet sự phức tạp đoacute của chuacuteng ta đi kegravem với
khả năng trigravenh bagravey hệ thống một caacutech toagraven diện - một sự trigravenh bagravey vượt ra
ngoagravei giới hạn của những dograveng lệnh thocirc Sự thagravenh cocircng trecircn thị trường của
những ngocircn ngữ như Visual Basic vagrave phần giao diện trực quan của C++
Java đatilde cho thấy sự trigravenh bagravey trực quan mang tiacutenh cốt yếu đối với quaacute
trigravenh phaacutet triển caacutec hệ thống phức tạp
12- Mocirc higravenh trừu tượng
Trước đacircy coacute một thời gian dagravei ngagravenh cocircng nghiệp chuacuteng ta đatilde phải noacutei
tới một Cuộc khủng hoảng phần mềm Caacutec cuộc tranh luận đều dựa trecircn
thực tế lagrave chẳng những nhiều đồ aacuten phần mềm khocircng thể sản sinh ra
những hệ thống thoả matilden đogravei hỏi vagrave nhu cầu của khaacutech hagraveng magrave cograven
vượt quaacute ngacircn saacutech vagrave thời hạn Caacutec cocircng nghệ mới như lập trigravenh hướng
đối tượng lập trigravenh trực quan cũng như caacutec mocirci trường phaacutet triển tiecircn tiến
coacute giuacutep chuacuteng ta nacircng cao năng suất lao động nhưng trong nhiều trường
hợp chuacuteng chỉ hướng tới tầng thấp nhất của việc phaacutet triển phần mềm
phần viết lệnh (coding) Một trong những vấn đề chiacutenh của ngagravenh phaacutet
triển phần mềm thời nay lagrave coacute nhiều đồ aacuten bắt tay vagraveo lập trigravenh quaacute sớm
vagrave tập trung quaacute nhiều vagraveo việc viết code Lyacute do một phần lagrave do ban quản
trị thiếu hiểu biết về quy trigravenh phaacutet triển phần mềm vagrave họ nảy lo acircu khi
thấy đội quacircn lập trigravenh của họ khocircng viết code Vagrave bản thacircn caacutec lập trigravenh
viecircn cũng cảm thấy an tacircm hơn khi họ ngồi viết code - vốn lagrave taacutec vụ magrave
họ quen thuộc ndash hơn lagrave khi xacircy dựng caacutec mocirc higravenh trừu tượng cho hệ
thống magrave họ phải tạo necircn
13- Mocirc higravenh hoacutea trực quan
Mocirc higravenh hoaacute trực quan lagrave một phương thức tư duy về vấn đề sử dụng caacutec
mocirc higravenh được tổ chức xoay quanh caacutec khaacutei niệm đời thực Mocirc higravenh giuacutep
chuacuteng ta hiểu vấn đề giao tiếp với mọi người coacute liecircn quan đến dự aacuten
(khaacutech hagraveng chuyecircn gia lĩnh vực thuộc đề aacuten nhagrave phacircn tiacutech nhagrave thiết
kế hellip) Mocirc higravenh rất hữu dụng trong việc mocirc higravenh hoaacute doanh nghiệp soạn
thảo tagravei liệu thiết kế chương trigravenh cũng như ngacircn hagraveng dữ liệu Mocirc higravenh
CuuDuongThanCongcom httpsfbcomtailieudientucntt
giuacutep hiểu caacutec đogravei hỏi của hệ thống tốt hơn tạo caacutec thiết kế rotilde ragraveng hơn vagrave
xacircy dựng necircn caacutec hệ thống dễ bảo trigrave hơn
Mocirc higravenh lagrave kết quả của sự trừu tượng hoacutea nhằm miecircu tả caacutec thagravenh phần
cốt yếu của một vấn đề hay một cấu truacutec phức tạp qua việc lọc bớt caacutec chi
tiết khocircng quan trọng vagrave lagravem cho vấn đề trở thagravenh dễ hiểu hơn Trừu
tượng hoacutea lagrave một năng lực căn bản của con người cho pheacutep chuacuteng ta giải
quyết caacutec vấn đề phức tạp Caacutec kỹ sư nghệ sĩ vagrave thợ thủ cocircng đatilde xacircy
dựng mocirc higravenh từ hagraveng ngagraven năm nay để thử nghiệm thiết kế trước khi
thực hiện Phaacutet triển phần mềm cũng khocircng lagrave ngoại lệ Để xacircy dựng caacutec
hệ thống phức tạp nhagrave phaacutet triển phải trừu tượng hoacutea nhiều hướng nhigraven
khaacutec nhau của hệ thống sử dụng kyacute hiệu chiacutenh xaacutec để xacircy dựng mocirc higravenh
kiểm tra xem mocirc higravenh coacute thỏa matilden caacutec đogravei hỏi của hệ thống vagrave dần dần
bổ sung thecircm chi tiết để chuyển caacutec mocirc higravenh thagravenh thực hiện
Chuacuteng ta xacircy dựng mocirc higravenh cho caacutec hệ thống phức tạp bởi chuacuteng ta khocircng
thể hiểu thấu đaacuteo những hệ thống như thế trong trạng thaacutei toagraven vẹn của
chuacuteng Khả năng thấu hiểu vagrave nắm bắt tiacutenh phức tạp của con người lagrave coacute
hạn Điều nagravey ta coacute thể thấy rotilde trong viacute dụ của ngagravenh xacircy dựng Nếu bạn
muốn tạo một tuacutep lều ở goacutec vườn bạn coacute thể bắt tay vagraveo xacircy ngay Nếu
bạn xacircy một ngocirci nhagrave coacute lẽ bạn sẽ cần tới bản vẽ nhưng nếu bạn muốn
xacircy một toagrave nhagrave chọc trời thigrave chắc chắn bạn khocircng thể khocircng cần bản vẽ
Thế giới phần mềm của chuacuteng ta cũng thế Chỉ tập trung vagraveo caacutec dograveng
code hay thậm chiacute cả phacircn tiacutech Forms trong Visual Basic chẳng cung cấp
một caacutei nhigraven toagraven cục về việc phaacutet triển đồ aacuten Xacircy dựng mocirc higravenh cho
pheacutep nhagrave thiết kế tập trung vagraveo bức tranh lớn về sự tương taacutec giữa caacutec
thagravenh phần trong đồ aacuten traacutenh bị sa lầy vagraveo những chi tiết riecircng biệt của
từng thagravenh phần
Một mocirci trường kinh doanh mang tiacutenh cạnh tranh gay gắt vagrave luocircn luocircn
thay đổi dẫn đến tiacutenh phức tạp ngagravey cagraveng tăng cao vagrave tiacutenh phức tạp nagravey
đặt ra những thaacutech thức đặc trưng cho caacutec nhagrave phaacutet triển hệ thống Mocirc
higravenh giuacutep chuacuteng ta tổ chức trigravenh bagravey trực quan thấu hiểu vagrave tạo necircn caacutec
hệ thống phức tạp Chuacuteng giuacutep chuacuteng ta đaacutep ứng caacutec thaacutech thức của việc
phaacutet triển phần mềm hocircm nay cũng như ngagravey mai
2- MOcirc TẢ CHU TRIgraveNH PHAacuteT TRIỂN PHẦN MỀM
21- Software Development ndash một bagravei toaacuten phức tạp
Kinh nghiệm của nhiều nhagrave thiết kế vagrave phaacutet triển cho thấy phaacutet triển phần
mềm lagrave một bagravei toaacuten phức tạp Xin necircu một số caacutec lyacute do thường được kể
đến
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Những người phaacutet triển phần mềm rất khoacute hiểu cho đuacuteng những gigrave
người dugraveng cần
Yecircu cầu của người dugraveng thường thay đổi trong thời gian phaacutet triển
Yecircu cầu thường được miecircu tả bằng văn bản dagravei dograveng khoacute hiểu
nhiều khi thậm chiacute macircu thuẫn
Đội quacircn phaacutet triển phần mềm vốn lagrave người ngoagravei cuộc rất khoacute
nhận thức thấu đaacuteo caacutec mối quan hệ tiềm ẩn vagrave phức tạp cần được
thể hiện chiacutenh xaacutec trong caacutec ứng dụng lớn
Khả năng nắm bắt caacutec dữ liệu phức tạp của con người (tại cugraveng
một thời điểm) lagrave coacute hạn
Khoacute định lượng chiacutenh xaacutec hiệu suất của thagravenh phẩm vagrave thỏa matilden
chiacutenh xaacutec sự mong chờ từ phiacutea người dugraveng
Chọn lựa phần cứng vagrave phần mềm thiacutech hợp cho giải phaacutep lagrave một
trong những thaacutech thức lớn đối với Designer
Phần mềm ngoagravei ra cần coacute khả năng thiacutech ứng vagrave mở rộng Phần mềm
được thiết kế tốt lagrave phần mềm đứng vững trước những biến đổi trong mocirci
trường dugrave từ phiacutea cộng đồng người dugraveng hay từ phiacutea cocircng nghệ Viacute dụ
phần mềm đatilde được phaacutet triển cho một nhagrave băng cần coacute khả năng taacutei sử
dụng cho một nhagrave băng khaacutec với rất iacutet sửa đổi hoặc hoagraven toagraven khocircng cần
sửa đổi Phần mềm thoả matilden caacutec yecircu cầu đoacute được coi lagrave phần mềm coacute khả
năng thiacutech ứng
Một phần mềm coacute khả năng mở rộng lagrave phần mềm được thiết kế sao cho
dễ phaacutet triển theo yecircu cầu của người dugraveng magrave khocircng cần sửa chữa nhiều
Chiacutenh vigrave vậy một số caacutec khiếm khuyết thường gặp trong phaacutet triển phần
mềm lagrave
Hiểu khocircng đuacuteng những gigrave người dugraveng cần
Khocircng thể thiacutech ứng cho phugrave hợp với những thay đổi về yecircu cầu
đối với hệ thống
Caacutec Module khocircng khớp với nhau
Phần mềm khoacute bảo trigrave vagrave nacircng cấp mở rộng
Phaacutet hiện trễ caacutec lỗ hổng của dự aacuten
Chất lượng phần mềm keacutem
Hiệu năng của phần mềm thấp
Caacutec thagravenh viecircn trong nhoacutem khocircng biết được ai đatilde thay đổi caacutei gigrave
khi nagraveo ở đacircu tại sao phải thay đổi
CuuDuongThanCongcom httpsfbcomtailieudientucntt
22- Chu Trigravenh Phaacutet Triển Phần Mềm (Software Development Life Cycle)
Vigrave phaacutet triển phần mềm lagrave một bagravei toaacuten khoacute necircn coacute lẽ trước hết ta cần
điểm qua một số caacutec cocircng việc căn bản của quaacute trigravenh nagravey Thường người
ta hay tập hợp chuacuteng theo tiến trigravenh thời gian một caacutech tương đối xoay
quanh chu trigravenh của một phần mềm dẫn tới kết qủa khaacutei niệm Chu Trigravenh
Phaacutet Triển Phần Mềm (Software Development Life Cycle - SDLC) như sau
Chu Trigravenh Phaacutet Triển Phần Mềm lagrave một chuỗi caacutec hoạt động của nhagrave phacircn
tiacutech (Analyst) nhagrave thiết kế (Designer) người phaacutet triển (Developer) vagrave
người dugraveng (User) để phaacutet triển vagrave thực hiện một hệ thống thocircng tin
Những hoạt động nagravey được thực hiện trong nhiều giai đọan khaacutec nhau
Nhagrave phacircn tiacutech (Analyst) lagrave người nghiecircn cứu yecircu cầu của
khaacutech hagravengngười dugraveng để định nghĩa một phạm vi bagravei toaacuten nhận
dạng nhu cầu của một tổ chức xaacutec định xem nhacircn lực phương
phaacutep vagrave cocircng nghệ maacutey tiacutenh coacute thể lagravem sao để cải thiện một caacutech
tốt nhất cocircng taacutec của tổ chức nagravey
Nhagrave thiết kế (Designer) thiết kế hệ thống theo hướng cấu truacutec
của database screens forms vagrave reports ndash quyết định caacutec yecircu cầu
về phần cứng vagrave phần mềm cho hệ thống cần được phaacutet triển
Chuyecircn gia lĩnh vực (Domain Experts) lagrave những người hiểu
thực chất vấn đề cugraveng tất cả những sự phức tạp của hệ thống cần
tin học hoaacute Họ khocircng nhất thiết phải lagrave nhagrave lập trigravenh nhưng họ coacute
thể giuacutep nhagrave lập trigravenh hiểu yecircu cầu đặt ra đối với hệ thống cần phaacutet
triển Quaacute trigravenh phaacutet triển phần mềm sẽ coacute rất nhiều thuận lợi nếu
đội ngũ lagravem phần mềm coacute được sự trợ giuacutep của họ
Lập trigravenh viecircn (Programmer) lagrave những người dựa trecircn caacutec
phacircn tiacutech vagrave thiết kế để viết chương trigravenh (coding) cho hệ thống
bằng ngocircn ngữ lập trigravenh đatilde được thống nhất
Ngƣời dugraveng (User) lagrave đối tượng phục vụ của hệ thống cần được
phaacutet triển
Để cho rotilde hơn xin lấy viacute dụ về một vấn đề đơn giản sau
Người bigravenh thường chuacuteng ta khi nhigraven một chiếc xe ocirc tocirc thường sẽ coacute một
bức tranh từ becircn ngoagravei như sau
Vấn đề
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 11 Nhigraven vấn đề ocirc tocirc của người bigravenh thường
Chuyecircn gia lĩnh vực sẽ giuacutep nhagrave phacircn tiacutech trigravenh bagravey lại vấn đề như sau
Higravenh 12 Nhigraven vấn đề ocirc tocirc của chuyecircn gia phacircn tiacutech
Chiacutenh vigrave sự trợ giuacutep của chuyecircn gia lĩnh vực coacute thể đoacuteng vai trograve rất quan
trọng necircn trong những giai đoạn đầu của quaacute trigravenh phaacutet triển phần mềm
kết quả phacircn tiacutech necircn được thể hiện sao cho dễ hiểu đối với caacutec chuyecircn
gia lĩnh vực Đacircy cũng lagrave mocirct trong rất nhiều lyacute do khiến cho phương phaacutep
hướng đối tượng được nhiều người hưởng ứng
23- Caacutec giai đoạn của Chu Trigravenh Phaacutet Triển Phần Mềm
Chu trigravenh của một phần mềm coacute thể được chia thagravenh caacutec giai đoạn như
sau
Nghiecircn cứu sơ bộ (Preliminary Investigation hay cograven gọi lagrave
Feasibility Study)
Phacircn tiacutech yecircu cầu (Analysis)
Thiết kế hệ thống (Design of the System)
Xacircy dựng phần mềm (Software Construction)
Thử nghiệm hệ thống (System Testing)
Thực hiện triển khai (System Implementation)
Bảo trigrave nacircng cấp (System Maintenance)
a - Nghiecircn cứu sơ bộ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Cacircu hỏi quan trọng nhất khi phaacutet triển một hệ thống hoagraven toagraven
khocircng phải cacircu hỏi mang tiacutenh phương phaacutep luận Magrave cũng chẳng
phải cacircu hỏi về kỹ thuật Noacute lagrave một cacircu hỏi dường như coacute vẻ đơn
giản nhưng thật ra đặc biệt khoacute trả lời ―Đacircy coacute đuacuteng lagrave một hệ
thống để thực hiện khocircng Đaacuteng buồn lagrave chiacutenh cacircu hỏi nagravey trong
thực tế thường chẳng hề được đặt ra vagrave lại cagraveng khocircng được trả lời
Mặc dugrave việc lầm lẫn về phương phaacutep hay quyết định sai lầm về kỹ
thuật cũng coacute thể dẫn tới thất bại nhưng thường thigrave dự aacuten coacute thể
được cứu vatilden nếu coacute đầy đủ tagravei nguyecircn cugraveng sự cố gắng quecircn migravenh
của caacutec nhacircn viecircn tagravei giỏi Nhưng sẽ chẳng một ai vagrave một điều gigrave
cứu vatilden cho một hệ thống phần mềm hoagraven toagraven chẳng được cần tới
hoặc cố gắng tự động hoacutea một quy trigravenh lầm lạc
Trước khi bắt tay vagraveo một dự aacuten bạn phải coacute một yacute tưởng cho noacute Yacute
tưởng nagravey đi song song với việc nắm bắt caacutec yecircu cầu vagrave xuất hiện
trong giai đoạn khởi đầu Noacute hoagraven tất một phaacutet biểu Hệ thống magrave
chuacuteng ta mong muốn sẽ lagravem được những việc như sau Trong
suốt giai đoạn nagravey chuacuteng ta tạo necircn một bức tranh về yacute tưởng đoacute
rất nhiều giả thuyết sẽ được cocircng nhận hay loại bỏ Caacutec hoạt động
trong thời gian nagravey thường bao gồm thu thập caacutec yacute tưởng nhận biết
rủi ro nhận biết caacutec giao diện becircn ngoagravei nhận biết caacutec caacutec chức
năng chiacutenh magrave hệ thống cần cung cấp vagrave coacute thể tạo một vagravei
nguyecircn mẫu dugraveng để ―minh chứng caacutec khaacutei niệm của hệ thống Yacute
tưởng coacute thể đến từ nhiều nguồn khaacutec nhau khaacutech hagraveng chuyecircn
gia lĩnh vực caacutec nhagrave phaacutet triển khaacutec chuyecircn gia về kỹ nghệ caacutec
bản nghiecircn cứu tiacutenh khả thi cũng như việc xem xeacutet caacutec hệ thống
khaacutec đang tồn tại Một khiacutea cạnh cần nhắc tới lagrave code viết trong thời
kỳ nagravey thường sẽ bị bỏ đi bởi chuacuteng được viết nhằm mục điacutech
thẩm tra hay trợ giuacutep caacutec giả thuyết khaacutec nhau chứ chưa phải thứ
code được viết theo kết quả phacircn tiacutech vagrave thiết kế thấu đaacuteo
Trong giai đọan nghiecircn cứu sơ bộ nhoacutem phaacutet triển hệ thống cần
xem xeacutet caacutec yecircu cầu của doanh nghiệp (cần dugraveng hệ thống) những
nguồn tagravei nguyecircn coacute thể sử dụng cocircng nghệ cũng như cộng đồng
người dugraveng cugraveng caacutec yacute tưởng của họ đối với hệ thống mới Coacute thể
thực hiện thảo luận nghiecircn cứu xem xeacutet khiacutea cạnh thương mại
phacircn tiacutech khả năng lời-lỗ phacircn tiacutech caacutec trường hợp sử dụng vagrave tạo
caacutec nguyecircn mẫu để xacircy dựng necircn một khaacutei niệm cho hệ thống điacutech
cugraveng với caacutec mục điacutech quyền ưu tiecircn vagrave phạm vi của noacute
Thường trong giai đoạn nagravey người ta cũng tiến hagravenh tạo một phiecircn
bản thocirc của lịch trigravenh vagrave kế hoạch sử dụng tagravei nguyecircn
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Một giai đoạn nghiecircn cứu sơ bộ thiacutech đaacuteng sẽ lập necircn tập hợp caacutec
yecircu cầu (dugrave ở mức độ khaacutei quaacutet cao) đối với một hệ thống khả thi
vagrave được mong muốn kể cả về phương diện kỹ thuật lẫn xatilde hội Một
giai đoạn nghiecircn cứu sơ bộ khocircng được thực hiện thoả đaacuteng sẽ dẫn
tới caacutec hệ thống khocircng được mong muốn đắt tiền bất khả thi vagrave
được định nghĩa lầm lạc ndash những hệ thống thừơng chẳng được hoagraven
tất hay sử dụng
Kết quả của giai đoạn nghiecircn cứu sơ bộ lagrave Baacuteo Caacuteo Kết Quả Nghiecircn
Cứu Tiacutenh Khả Thi Khi hệ thống tương lai được chấp nhận dựa trecircn
bản baacuteo caacuteo nagravey cũng lagrave luacutec giai đoạn Phacircn tiacutech bắt đầu
b- Phacircn tiacutech yecircu cầu
Sau khi đatilde xem xeacutet về tiacutenh khả thi của hệ thống cũng như tạo lập
một bức tranh sơ bộ của dự aacuten chuacuteng ta bước sang giai đoạn
thường được coi lagrave quan trọng nhất trong caacutec cocircng việc lập trigravenh
hiểu hệ thống cần xacircy dựng Người thực hiện cocircng việc nagravey lagrave nhagrave
phacircn tiacutech
Quaacute trigravenh phacircn tiacutech nhigraven chung lagrave hệ quả của việc trả lời cacircu hỏi Hệ
thống cần phải lagravem gigrave Quaacute trigravenh phacircn tiacutech bao gồm việc nghiecircn
cứu chi tiết hệ thống doanh nghiệp hiện thời tigravem cho ra nguyecircn lyacute
hoạt động của noacute vagrave những vị triacute coacute thể được nacircng cao cải thiện
Becircn cạnh đoacute lagrave việc nghiecircn cứu xem xeacutet caacutec chức năng magrave hệ thống
cần cung cấp vagrave caacutec mối quan hệ của chuacuteng becircn trong cũng như
với phiacutea ngoagravei hệ thống Trong toagraven bộ giai đoạn nagravey nhagrave phacircn tiacutech
vagrave người dugraveng cần cộng taacutec mật thiết với nhau để xaacutec định caacutec yecircu
cầu đối với hệ thống tức lagrave caacutec tiacutenh năng mới cần phải được đưa
vagraveo hệ thống
Những mục tiecircu cụ thể của giai đoạn phacircn tiacutech lagrave
Xaacutec định hệ thống cần phải lagravem gigrave
Nghiecircn cứu thấu đaacuteo tất cả caacutec chức năng cần cung cấp vagrave những
yếu tố liecircn quan
Xacircy dựng một mocirc higravenh necircu bật bản chất vấn đề từ một hướng
nhigraven coacute thực (trong đời sống thực)
Trao định nghĩa vấn đề cho chuyecircn gia lĩnh vực để nhận sự đaacutenh
giaacute goacutep yacute
Kết quả của giai đoạn phacircn tiacutech lagrave bản Đặc Tả Yecircu Cầu
(Requirements Specifications)
c - Thiết kế hệ thống
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Sau giai đoạn phacircn tiacutech khi caacutec yecircu cầu cụ thể đối với hệ thống đatilde được
xaacutec định giai đoạn tiếp theo lagrave thiết kế cho caacutec yecircu cầu mới Cocircng taacutec
thiết kế xoay quanh cacircu hỏi chiacutenh Hệ thống lagravem caacutech nagraveo để thỏa matilden
caacutec yecircu cầu đatilde được necircu trong Đặc Tả Yecircu Cầu
Một số caacutec cocircng việc thường được thực hiện trong giai đoạn thiết kế
Nhận biết form nhập liệu tugravey theo caacutec thagravenh phần dữ liệu cần
nhập
Nhận biết reports vagrave những output magrave hệ thống mới phải sản sinh
Thiết kế forms (vẽ trecircn giấy hay maacutey tiacutenh sử dụng cocircng cụ thiết
kế)
Nhận biết caacutec thagravenh phần dữ liệu vagrave bảng để tạo database
Ước tiacutenh caacutec thủ tục giải thiacutech quaacute trigravenh xử lyacute từ input đến output
Kết quả giai đoạn thiết kế lagrave Đặc Tả Thiết Kế (Design Specifications) Bản
Đặc Tả Thiết Kế Chi Tiết sẽ được chuyển sang cho caacutec lập trigravenh viecircn để
thực hiện giai đoạn xacircy dựng phần mềm
d - Xacircy dựng phần mềm
Đacircy lagrave giai đoạn viết lệnh (code) thực sự tạo hệ thống Từng người viết
code thực hiện những yecircu cầu đatilde được nhagrave thiết kế định sẵn Cũng chiacutenh
người viết code chịu traacutech nhiệm viết tagravei liệu liecircn quan đến chương trigravenh
giải thiacutech thủ tục (procedure) magrave anh ta tạo necircn được viết như thế nagraveo vagrave
lyacute do cho việc nagravey
Để đảm bảo chương trigravenh được viết necircn phải thoả matilden mọi yecircu cầu coacute ghi
trước trong bản Đặc Tả Thiết Kế Chi Tiết người viết code cũng đồng thời
phải tiến hagravenh thử nghiệm phần chương trigravenh của migravenh Phần thử nghiệm
trong giai đoạn nagravey coacute thể được chia thagravenh hai bước chiacutenh
Thử nghiệm đơn vị
Người viết code chạy thử caacutec phần chương trigravenh của migravenh với dữ liệu giả
(testdummy data) Việc nagravey được thực hiện theo một kế hoạch thử cũng
do chiacutenh người viết code soạn ra Mục điacutech chiacutenh trong giai đoạn thử nagravey
lagrave xem chương trigravenh coacute cho ra những kết quả mong đợi Giai đoạn thử
nghiệm đơn vị nhiều khi được gọi lagrave Thử hộp trắng (White Box Testing)
Thử nghiệm đơn vị độc lập
Cocircng việc nagravey do một thagravenh viecircn khaacutec trong nhoacutem đảm traacutech Cần chọn
người khocircng coacute liecircn quan trực tiếp đến việc viết code của đơn vị chương
trigravenh cần thử nghiệm để đảm bảo tiacutenh ―độc lập Cocircng việc thử đợt nagravey
cũng được thực hiện dựa trecircn kế hoạch thử do người viết code soạn necircn
CuuDuongThanCongcom httpsfbcomtailieudientucntt
e- Thử nghiệm hệ thống
Sau khi caacutec thủ tục đatilde được thử nghiệm riecircng cần phải thử nghiệm toagraven
bộ hệ thống Mọi thủ tục được tiacutech hợp vagrave chạy thử kiểm tra xem mọi chi
tiết ghi trong Đặc Tả Yecircu Cầu vagrave những mong chờ của người dugraveng coacute được
thoả matilden Dữ liệu thử cần được chọn lọc đặc biệt kết quả cần được phacircn
tiacutech để phaacutet hiện mọi lệch lạc so với mong chờ
f - Thực hiện triển khai
Trong giai đoạn nagravey hệ thống vừa phaacutet triển sẽ được triển khai sao cho
phiacutea người dugraveng Trước khi để người dugraveng thật sự bắt tay vagraveo sử dụng hệ
thống nhoacutem caacutec nhagrave phaacutet triển cần tạo caacutec file dữ liệu cần thiết cũng như
huấn luyện cho người dugraveng để đảm bảo hệ thống được sử dụng hữu hiệu
nhất
g - Bảo trigrave nacircng cấp
Tugravey theo caacutec biến đổi trong mocirci trường sử dụng hệ thống coacute thể trở necircn
lỗi thời hay cần phải được sửa đổi nacircng cấp để sử dụng coacute hiệu quả Hoạt
động bảo trigrave hệ thống coacute thể rất khaacutec biệt tugravey theo mức độ sửa đổi vagrave
nacircng cấp cần thiết
Sơ đồ tổng quaacutet caacutec giai đoạn của Chu Trigravenh Phaacutet Triển Phần Mềm
Higravenh 13 Sơ đồ tổng quaacutet caacutec giai đoạn của Chu Trigravenh Phaacutet Triển Phần Mềm
CuuDuongThanCongcom httpsfbcomtailieudientucntt
3- Phương phaacutep hướng chức năng vagrave phương phaacutep hướng đối tượng
31- Phương phaacutep hướng chức năng
Đacircy lagrave lối tiếp cận truyền thống của ngagravenh Cocircng nghệ phần mềm Theo lối
tiếp cận nagravey chuacuteng ta quan tacircm chủ yếu tới những thocircng tin magrave hệ thống
sẽ giữ gigraven Chuacuteng ta hỏi người dugraveng xem họ sẽ cần những thocircng tin nagraveo
rồi chuacuteng ta thiết kế ngacircn hagraveng dữ liệu để chứa những thocircng tin đoacute cung
cấp Forms để nhập thocircng tin vagrave in baacuteo caacuteo để trigravenh bagravey caacutec thocircng tin Noacutei
một caacutech khaacutec chuacuteng ta tập trung vagraveo thocircng tin vagrave khocircng mấy để yacute đến
những gigrave coacute thể xảy ra với những hệ thống đoacute vagrave caacutech hoạt động (ứng xử)
của hệ thống lagrave ra sao Đacircy lagrave lối tiệm cận xoay quanh dữ liệu vagrave đatilde được
aacutep dụng để tạo necircn hagraveng ngagraven hệ thống trong suốt nhiều năm trời
Lối tiếp cận xoay quanh dữ liệu lagrave phương phaacutep tốt cho việc thiết kế ngacircn
hagraveng dữ liệu vagrave nắm bắt thocircng tin nhưng nếu aacutep dụng cho việc thiết kế
ứng dụng lại coacute thể khiến phaacutet sinh nhiều khoacute khăn Một trong những
thaacutech thức lớn lagrave yecircu cầu đối với caacutec hệ thống thường xuyecircn thay đổi Một
hệ thống xoay quanh dữ liệu coacute thể dể dagraveng xử lyacute việc thay đổi ngacircn hagraveng
dữ liệu nhưng lại khoacute thực thi những thay đổi trong nguyecircn tắc nghiệp vụ
hay caacutech hoạt động của hệ thống
Phương phaacutep hướng đối tượng đatilde được phaacutet triển để trả lời cho vấn đề đoacute
Với lối tiếp cận hướng đối tượng chuacuteng ta tập trung vagraveo cả hai mặt của
vấn đề thocircng tin vagrave caacutech hoạt động
32- Phương phaacutep hướng đối tượng
Hướng đối tượng lagrave thuật ngữ thocircng dụng hiện thời của ngagravenh cocircng
nghiệp phần mềm Caacutec cocircng ty đang nhanh choacuteng tigravem caacutech aacutep dụng vagrave
tiacutech hợp cocircng nghệ mới nagravey vagraveo caacutec ứng dụng của họ Thật sự lagrave đa phần
caacutec ứng dụng hiện thời đều mang tiacutenh hướng đối tượng Nhưng hướng đối
tượng coacute nghĩa lagrave gigrave
Lối tiếp cận hướng đối tượng lagrave một lối tư duy về vấn đề theo lối aacutenh xạ
caacutec thagravenh phần trong bagravei toaacuten vagraveo caacutec đối tượng ngoagravei đời thực Với lối
tiếp cận nagravey chuacuteng ta chia ứng dụng thagravenh caacutec thagravenh phần nhỏ gọi lagrave caacutec
đối tượng chuacuteng tương đối độc lập với nhau Sau đoacute ta coacute thể xacircy dựng
ứng dụng bằng caacutech chắp caacutec đối tượng đoacute lại với nhau Hatildey nghĩ đến trograve
chơi xacircy lacircu đagravei bằng caacutec mẫu gỗ Bước đầu tiecircn lagrave tạo hay mua một vagravei
loại mẫu gỗ căn bản từ đoacute tạo necircn caacutec khối xacircy dựng căn bản của migravenh
Một khi đatilde coacute caacutec khối xacircy dựng đoacute bạn coacute thể chắp raacutep chuacuteng lại với
nhau để tạo lacircu đagravei Tương tự như vậy một khi đatilde xacircy dựng một số đối
CuuDuongThanCongcom httpsfbcomtailieudientucntt
tượng căn bản trong thế giới maacutey tiacutenh bạn coacute thể chắp chuacuteng lại với nhau
để tạo ứng dụng của migravenh
Xin lấy một viacute dụ đơn giản vấn đề ruacutet tiền mặt tại nhagrave băng Caacutec ―mẫu
gỗ― thagravenh phần ở đacircy sẽ lagrave aacutenh xạ của caacutec đối tượng ngoagravei đời thực như
tagravei khoản nhacircn viecircn khaacutech hagraveng hellipVagrave ứng dụng sẽ được sẽ được nhận
diện cũng như giải đaacutep xoay quanh caacutec đối tượng đoacute
4- ƢU ĐIỂM CỦA MOcirc HIgraveNH HƢỚNG ĐỐI TƢỢNG
41- Tiacutenh taacutei sử dụng (Reusable)
Phương phaacutep phacircn tiacutech vagrave thiết kế hướng đối tượng thực hiện theo caacutec thuật ngữ
vagrave khaacutei niệm của phạm vi lĩnh vực ứng dụng (tức lagrave của doanh nghiệp hay đơn vị
magrave hệ thống tương lai cần phục vụ) necircn noacute tạo sự tiếp cận tương ứng giữa hệ
thống vagrave vấn đề thực ngoagravei đời Trong viacute dụ baacuten xe ocirc tocirc mọi giai đoạn phacircn tiacutech
thiết kế vagrave thực hiện đều xoay quanh caacutec khaacutei niệm như khaacutech hagraveng nhacircn viecircn
baacuten hagraveng xe ocirc tocirc hellip Vigrave quaacute trigravenh phaacutet triển phần mềm đồng thời lagrave quaacute trigravenh
cộng taacutec của khaacutech hagravengngười dugraveng nhagrave phacircn tiacutech nhagrave thiết kế nhagrave phaacutet triển
chuyecircn gia lĩnh vực chuyecircn gia kỹ thuật necircn lối tiếp cận nagravey khiến cho việc
giao tiếp giữa họ với nhau được dễ dagraveng hơn
Một trong những ưu điểm quan trọng bậc nhất của phương phaacutep phacircn tiacutech vagrave
thiết kế hướng đối tượng lagrave tiacutenh taacutei sử dụng bạn coacute thể tạo caacutec thagravenh phần (đối
tượng) một lần vagrave dugraveng chuacuteng nhiều lần sau đoacute Giống như việc bạn coacute thể taacutei sử
dụng caacutec khối xacircy dựng (hay bản sao của noacute ) trong một toagrave lacircu đagravei một ngocirci
nhagrave ở một con tagraveu vũ trụ bạn cũng coacute thể taacutei sử dụng caacutec thagravenh phần (đối
tượng) căn bản trong caacutec thiết kế hướng đối tượng cũng như code của một hệ
thống kế toaacuten hệ thống kiểm kecirc hoặc một hệ thống đặt hagraveng
Vigrave caacutec đối tượng đatilde được thử nghiệm kỹ cagraveng trong lần dugraveng trước đoacute necircn khả
năng taacutei sử dụng đối tượng coacute taacutec dụng giảm thiểu lỗi vagrave caacutec khoacute khăn trong việc
bảo trigrave giuacutep tăng tốc độ thiết kế vagrave phaacutet triển phần mềm
Phương phaacutep hướng đối tượng giuacutep chuacuteng ta xử lyacute caacutec vấn đề phức tạp trong
phaacutet triển phần mềm vagrave tạo ra caacutec thế hệ phần mềm coacute khả năng thiacutech ứng vagrave
bền chắc
42- Caacutec giai đoạn của chu trigravenh phaacutet triển phần mềm với mocirc
higravenh hƣớng đối tƣợng
Phacircn tiacutech hƣớng đối tƣợng (Object Oriented Analysis
- OOA)
Lagrave giai đọan phaacutet triển một mocirc higravenh chiacutenh xaacutec vagrave suacutec tiacutech của vấn đề coacute thagravenh
phần lagrave caacutec đối tượng vagrave khaacutei niệm đời thực dễ hiểu đối với người sử dụng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Trong giai đoạn OOA vấn đề được trigravenh bagravey bằng caacutec thuật ngữ tương ứng với
caacutec đối tượng coacute thực Thecircm vagraveo đoacute hệ thống cần phải được định nghĩa sao cho
người khocircng chuyecircn Tin học coacute thể dễ dagraveng hiểu được
Dựa trecircn một vấn đề coacute sẵn nhagrave phacircn tiacutech cần aacutenh xạ caacutec đối tượng hay thực
thể coacute thực như khaacutech hagraveng ocirc tocirc người baacuten hagraveng hellip vagraveo thiết kế để tạo ra được
bản thiết kế gần cận với tigravenh huống thực Mocirc higravenh thiết kế sẽ chứa caacutec thực thể
trong một vấn đề coacute thực vagrave giữ nguyecircn caacutec mẫu higravenh về cấu truacutec quan hệ cũng
như hagravenh vi của chuacuteng Noacutei một caacutech khaacutec sử dụng phương phaacutep hướng đối
tượng chuacuteng ta coacute thể mocirc higravenh hoacutea caacutec thực thể thuộc một vấn đề coacute thực magrave
vẫn giữ được cấu truacutec quan hệ cũng như hagravenh vi của chuacuteng
Đối với viacute dụ một phograveng baacuten ocirc tocirc giai đoạn OOA sẽ nhận biết được caacutec thực thể
như
Khaacutech hagraveng
Người baacuten hagraveng
Phiếu đặt hagraveng
Phiếu (hoaacute đơn) thanh toaacuten
Xe ocirc tocirc
Tương taacutec vagrave quan hệ giữa caacutec đối tượng trecircn lagrave
Người baacuten hagraveng dẫn khaacutech hagraveng tham quan phograveng trưng bagravey xe
Khaacutech hagraveng chọn một chiếc xe
Khaacutech hagraveng viết phiếu đặt xe
Khaacutech hagraveng trả tiền xe
Xe ocirc tocirc được giao đến cho khaacutech hagraveng
Đối với viacute dụ nhagrave băng lẻ giai đoạn OOA sẽ nhận biết được caacutec thực thể như
Loại tagravei khoản ATM (ruacutet tiền tự động) Savings (tiết kiệm) Current
(bigravenh thường) Fixed (đầu tư)
Khaacutech hagraveng
Nhacircn viecircn
Phograveng maacutey tiacutenh
Tương taacutec vagrave quan hệ giữa caacutec đối tượng trecircn
Một khaacutech hagraveng mới mở một tagravei khoản tiết kiệm
Chuyển tiền từ tagravei khoản tiết kiệm sang tagravei khoản đầu tư
Chuyển tiền từ tagravei khoản tiết kiệm sang tagravei khoản ATM
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Xin chuacute yacute lagrave ở đacircy như đatilde noacutei ta chuacute yacute đến cả hai khiacutea cạnh thocircng tin vagrave caacutech
hoạt động của hệ thống (tức lagrave những gigrave coacute thể xảy ra với những thocircng tin đoacute)
Lối phacircn tiacutech bằng kiểu aacutenh xạ đời thực vagraveo maacutey tiacutenh như thế thật sự lagrave ưu
điểm lớn của phương phaacutep hướng đối tượng
Thiết kế hƣớng đối tƣợng (Object Oriented Design -
OOD)
Lagrave giai đoạn tổ chức chương trigravenh thagravenh caacutec tập hợp đối tượng cộng taacutec mỗi đối
tượng trong đoacute lagrave thực thể của một lớp Caacutec lớp lagrave thagravenh viecircn của một cacircy cấu
truacutec với mối quan hệ thừa kế
Mục điacutech của giai đoạn OOD lagrave tạo thiết kế dựa trecircn kết quả của giai đoạn OOA
dựa trecircn những quy định phi chức năng những yecircu cầu về mocirci trường những
yecircu cầu về khả năng thực thi OOD tập trung vagraveo việc cải thiện kết quả của
OOA tối ưu hoacutea giải phaacutep đatilde được cung cấp trong khi vẫn đảm bảo thoả matilden tất
cả caacutec yecircu cầu đatilde được xaacutec lập
Trong giai đoạn OOD nhagrave thiết kế định nghĩa caacutec chức năng thủ tục
(operations) thuộc tiacutenh (attributes) cũng như mối quan hệ của một hay nhiều
lớp (class) vagrave quyết định chuacuteng cần phải được điều chỉnh sao cho phugrave hợp với
mocirci trường phaacutet triển Đacircy cũng lagrave giai đoạn để thiết kế ngacircn hagraveng dữ liệu vagrave aacutep
dụng caacutec kỹ thuật tiecircu chuẩn hoacutea
Về cuối giai đoạn OOD nhagrave thiết kế đưa ra một loạt caacutec biểu đồ (diagram) khaacutec
nhau Caacutec biểu đồ nagravey coacute thể được chia thagravenh hai nhoacutem chiacutenh lagrave Tĩnh vagrave động
Caacutec biểu đồ tĩnh biểu thị caacutec lớp vagrave đối tượng trong khi biểu đồ động biểu thị
tương taacutec giữa caacutec lớp vagrave phương thức hoạt động chiacutenh xaacutec của chuacuteng Caacutec lớp
đoacute sau nagravey coacute thể được nhoacutem thagravenh caacutec goacutei (Packages) tức lagrave caacutec đơn vị thagravenh
phần nhỏ hơn của ứng dụng
Lập trigravenh hƣớng đối tƣợng (Object Oriented
Programming - OOP)
Giai đoạn xacircy dựng phần mềm coacute thể được thực hiện sử dụng kỹ thuật lập trigravenh
hướng đối tượng Đoacute lagrave phương thức thực hiện thiết kế hướng đối tượng qua việc
sử dụng một ngocircn ngữ lập trigravenh coacute hỗ trợ caacutec tiacutenh năng hướng đối tượng Một vagravei
ngocircn ngữ hướng đối tượng thường được nhắc tới lagrave C++ vagrave Java Kết quả chung
cuộc của giai đoạn nagravey lagrave một loạt caacutec code chạy được noacute chỉ được đưa vagraveo sử
dụng sau khi đatilde trải qua nhiều vograveng quay của nhiều bước thử nghiệm khaacutec nhau
PHẦN CAcircU HỎI
Hỏi Một số tập hợp dữ liệu phức tạp nhất định khi được trigravenh bagravey bằng đồ thị
sẽ truyền tải đến người đọc nhiều thocircng tin hơn so với caacutec dữ liệu thocirc
Đaacutep Đuacuteng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Hỏi Mocirc higravenh giuacutep chuacuteng ta tổ chức trigravenh bagravey trực quan thấu hiểu vagrave tạo necircn
caacutec hệ thống phức tạp
Đaacutep Đuacuteng
Hỏi Ưu điểm lớn nhất của mocirc higravenh hướng đối tượng lagrave tiacutenh taacutei sử dụng
(Reusable)
Đaacutep Đuacuteng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
1- GIỚI THIỆU UML
11- Mocirc higravenh hoacutea hệ thống phần mềm
Như đatilde trigravenh bagravey ở phần trước mục tiecircu của giai đoạn phacircn tiacutech hệ thống lagrave sản
xuất ra một mocirc higravenh tổng thể của hệ thống cần xacircy dựng Mocirc higravenh nagravey cần phải
được trigravenh bagravey theo hướng nhigraven (View) của khaacutech hagraveng hay người sử dụng vagrave
lagravem sao để họ hiểu được Mocirc higravenh nagravey cũng coacute thể được sử dụng để xaacutec định caacutec
yecircu cầu của người dugraveng đối với hệ thống vagrave qua đoacute giuacutep chuacuteng ta đaacutenh giaacute tiacutenh
khả thi của dự aacuten
Tầm quan trọng của mocirc higravenh đatilde được lĩnh hội một caacutech thấu đaacuteo trong hầu như
tất cả caacutec ngagravenh khoa học kỹ thuật từ nhiều thế kỷ nay Bất kỳ ở đacircu khi muốn
xacircy dựng một vật thể nagraveo đoacute đầu tiecircn người ta đatilde tạo necircn caacutec bản vẽ để quyết
định cả ngoại higravenh lẫn phương thức hoạt động của noacute Chẳng hạn caacutec bản vẽ kỹ
thuật thường gặp lagrave một dạng mocirc higravenh quen thuộc Mocirc higravenh nhigraven chung lagrave một
caacutech mocirc tả của một vật thể nagraveo đoacute Vật đoacute coacute thể tồn tại trong một số giai đoạn
nhất định dugrave đoacute lagrave giai đoạn thiết kế hay giai đoạn xacircy dựng hoặc chỉ lagrave một kế
hoạch Nhagrave thiết kế cần phải tạo ra caacutec mocirc higravenh mocirc tả tất cả caacutec khiacutea cạnh khaacutec
nhau của sản phẩm Ngoagravei ra một mocirc higravenh coacute thể được chia thagravenh nhiều hướng
nhigraven mỗi hướng nhigraven trong số chuacuteng sẽ mocirc tả một khiacutea cạnh riecircng biệt của sản
phẩm hay hệ thống cần được xacircy dựng Một mocirc higravenh cũng coacute thể được xacircy dựng
trong nhiều giai đoạn vagrave ở mỗi giai đoạn mocirc higravenh sẽ được bổ sung thecircm một số
chi tiết nhất định
Mocirc higravenh thường được mocirc tả trong ngocircn ngữ trực quan điều đoacute coacute nghĩa lagrave đa
phần caacutec thocircng tin được thể hiện bằng caacutec kyacute hiệu đồ họa vagrave caacutec kết nối giữa
chuacuteng chỉ khi cần thiết một số thocircng tin mới được biểu diễn ở dạng văn bản
Theo đuacuteng như cacircu ngạn ngữ Một bức tranh noacutei nhiều hơn cả ngagraven từ Tạo mocirc
higravenh cho caacutec hệ thống phần mềm trước khi thực sự xacircy dựng necircn chuacuteng đatilde trở
thagravenh một chuẩn mực trong việc phaacutet triển phần mềm vagrave được chấp nhận trong
cộng đồng lagravem phần mềm giống như trong bất kỳ một ngagravenh khoa học kỹ thuật
nagraveo khaacutec Việc biểu diễn mocirc higravenh phải thoatilde matilden caacutec yếu tố sau
Chiacutenh xaacutec (accurate) Mocirc tả đuacuteng hệ thống cần xacircy dựng
Đồng nhất (consistent) Caacutec view khaacutec nhau khocircng được macircu
thuẩn với nhau
Coacute thể hiểu được (understandable) Cho những người xacircy dựng lẫn
sử dụng
Dễ thay đổi (changeable)
Dễ dagraveng liecircn lạc với caacutec mocirc higravenh khaacutec
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Coacute thể noacutei thecircm rằng mocirc higravenh lagrave một sự đơn giản hoaacute hiện thực Mocirc higravenh được
xacircy dựng necircn để chuacuteng ta dễ dagraveng hiểu vagrave hiểu tốt hơn hệ thống cần xacircy dựng
Tạo mocirc higravenh sẽ giuacutep cho chuacuteng ta hiểu thấu đaacuteo một hệ thống phức tạp trong sự
toagraven thể của noacute
Noacutei toacutem lại mocirc higravenh hoacutea một hệ thống nhằm mục điacutech
Higravenh dung một hệ thống theo thực tế hay theo mong muốn của
chuacuteng ta
Chỉ rotilde cấu truacutec hoặc ứng xử của hệ thống
Tạo một khuocircn mẫu hướng dẫn nhagrave phaacutet triển trong suốt quaacute trigravenh
xacircy dựng hệ thống
Ghi lại caacutec quyết định của nhagrave phaacutet triển để sử dụng sau nagravey
12- Trƣớc khi UML ra đời
Đầu những năm 1980 ngagravenh cocircng nghệ phần mềm chỉ coacute duy nhất một ngocircn
ngữ hướng đối tượng lagrave Simula Sang nửa sau của thập kỷ 1980 caacutec ngocircn ngữ
hướng đối tượng như Smalltalk vagrave C++ xuất hiện Cugraveng với chuacuteng nảy sinh nhu
cầu mocirc higravenh hoaacute caacutec hệ thống phần mềm theo hướng đối tượng Vagrave một vagravei
trong số những ngocircn ngữ mocirc higravenh hoaacute xuất hiện những năm đầu thập kỷ 90
được nhiều người dugraveng lagrave
Grady Boochrsquos Booch Modeling Methodology
James Rambaughrsquos Object Modeling Technique ndash OMT
Ivar Jacobsonrsquos OOSE Methodology
Hewlett- Packardrsquos Fusion
Coad and Yordonrsquos OOA and OOD
Mỗi phương phaacutep luận vagrave ngocircn ngữ trecircn đều coacute hệ thống kyacute hiệu riecircng phương
phaacutep xử lyacute riecircng vagrave cocircng cụ hỗ trợ riecircng khiến nảy ra cuộc tranh luận phương
phaacutep nagraveo lagrave tốt nhất Đacircy lagrave cuộc tranh luận khoacute coacute cacircu trả lời bởi tất cả caacutec
phương phaacutep trecircn đều coacute những điểm mạnh vagrave điểm yếu riecircng Vigrave thế caacutec nhagrave
phaacutet triển phần mềm nhiều kinh nghiệm thường sử dụng phối hợp caacutec điểm
mạnh của mỗi phương phaacutep cho ứng dụng của migravenh Trong thực tế sự khaacutec biệt
giữa caacutec phương phaacutep đoacute hầu như khocircng đaacuteng kể vagrave theo cugraveng tiến trigravenh thời
gian tất cả những phương phaacutep trecircn đatilde tiệm cận lại vagrave bổ sung lẫn cho nhau
Chiacutenh hiện thực nagravey đatilde được những người tiecircn phong trong lĩnh vực mocirc higravenh hoaacute
hướng đối tượng nhận ra vagrave họ quyết định ngồi lại cugraveng nhau để tiacutech hợp những
điểm mạnh của mỗi phương phaacutep vagrave đưa ra một mocirc higravenh thống nhất cho lĩnh vực
cocircng nghệ phần mềm
CuuDuongThanCongcom httpsfbcomtailieudientucntt
13- Sự ra đời của UML
Trong bối cảnh trecircn người ta nhận thấy cần thiết phải cung cấp một phương
phaacutep tiệm cận được chuẩn hoaacute vagrave thống nhất cho việc mocirc higravenh hoaacute hướng đối
tượng Yecircu cầu cụ thể lagrave đưa ra một tập hợp chuẩn hoaacute caacutec kyacute hiệu (Notation) vagrave
caacutec biểu đồ (Diagram) để nắm bắt caacutec quyết định về mặt thiết kế một caacutech rotilde
ragraveng ragravenh mạch Đatilde coacute ba cocircng trigravenh tiecircn phong nhắm tới mục tiecircu đoacute chuacuteng
được thực hiện dưới sự latildenh đạo của James Rumbaugh Grady Booch vagrave Ivar
Jacobson Chiacutenh những cố gắng nagravey dẫn đến kết quả lagrave xacircy dựng được một Ngocircn
Ngữ Mocirc Higravenh Hoaacute Thống Nhất (Unifield Modeling Language ndash UML)
UML lagrave một ngocircn ngữ mocirc higravenh hoaacute thống nhất coacute phần chiacutenh bao gồm những kyacute
hiệu higravenh học được caacutec phương phaacutep hướng đối tượng sử dụng để thể hiện vagrave
miecircu tả caacutec thiết kế của một hệ thống Noacute lagrave một ngocircn ngữ để đặc tả trực quan
hoaacute xacircy dựng vagrave lagravem sưu liệu cho nhiều khiacutea cạnh khaacutec nhau của một hệ thống
coacute nồng độ phần mềm cao UML coacute thể được sử dụng lagravem cocircng cụ giao tiếp giữa
người dugraveng nhagrave phacircn tiacutech nhagrave thiết kế vagrave nhagrave phaacutet triển phần mềm
Trong quaacute trigravenh phaacutet triển coacute nhiều cocircng ty đatilde hỗ trợ vagrave khuyến khiacutech phaacutet triển
UML coacute thể kể tới như Hewlett Packard Microsoft Oracle IBM Unisys
14- UML (Unifield Modeling Language)
Ngocircn ngữ mocirc higravenh hoacutea thống nhất (Unifield Modeling Language ndash UML) lagrave một
ngocircn ngữ để biểu diễn mocirc higravenh theo hướng đối tượng được xacircy dựng bởi ba taacutec
giả trecircn với chủ điacutech lagrave
Mocirc higravenh hoaacute caacutec hệ thống sử dụng caacutec khaacutei niệm hướng đối tượng
Thiết lập một kết nối từ nhận thức của con người đến caacutec sự kiện
cần mocirc higravenh hoaacute
Giải quyết vấn đề về mức độ thừa kế trong caacutec hệ thống phức tạp
coacute nhiều ragraveng buộc khaacutec nhau
Tạo một ngocircn ngữ mocirc higravenh hoaacute coacute thể sử dụng được bởi người vagrave
maacutey
15- Phƣơng phaacutep vagrave caacutec ngocircn ngữ mocirc higravenh hoaacute
Phương phaacutep hay phương thức (method) lagrave một caacutech trực tiếp cấu truacutec hoaacute sự
suy nghĩ vagrave hagravenh động của con người Phương phaacutep cho người sử dụng biết phải
lagravem gigrave lagravem như thế nagraveo khi nagraveo vagrave tại sao (mục điacutech của hagravenh động) Phương
phaacutep chứa caacutec mocirc higravenh (model) caacutec mocirc higravenh được dugraveng để mocirc tả những gigrave sử
dụng cho việc truyền đạt kết quả trong quaacute trigravenh sử dụng phương phaacutep Điểm
khaacutec nhau chiacutenh giữa một phương phaacutep vagrave một ngocircn ngữ mocirc higravenh hoaacute (modeling
CuuDuongThanCongcom httpsfbcomtailieudientucntt
language) lagrave ngocircn ngữ mocirc higravenh hoaacute khocircng coacute một tiến trigravenh (process) hay caacutec
cacircu lệnh (instruction) mocirc tả những cocircng việc người sử dụng cần lagravem
Một mocirc higravenh được biểu diễn theo một ngocircn ngữ mocirc higravenh hoaacute Ngocircn ngữ mocirc higravenh
hoaacute bao gồm caacutec kyacute hiệu ndash những biểu tượng được dugraveng trong mocirc higravenh ndash vagrave một
tập caacutec quy tắc chỉ caacutech sử dụng chuacuteng Caacutec quy tắc nagravey bao gồm
Syntactic (Cuacute phaacutep) cho biết higravenh dạng caacutec biểu tượng vagrave caacutech kết
hợp chuacuteng trong ngocircn ngữ
Semantic (Ngữ nghĩa) cho biết yacute nghĩa của mỗi biểu tượng chuacuteng
được hiểu thế nagraveo khi nằm trong hoặc khocircng nằm trong ngữ cảnh
của caacutec biểu tượng khaacutec
Pragmatic định nghĩa yacute nghĩa của biểu tượng để sao cho mục điacutech
của mocirc higravenh được thể hiện vagrave mọi người coacute thể hiểu được
2- UML TRONG PHAcircN TIacuteCH THIẾT KẾ HỆ THỐNG
UML coacute thể được sử dụng trong nhiều giai đoạn từ phaacutet triển thiết kế cho tới
thực hiện vagrave bảo trigrave Vigrave mục điacutech chiacutenh của ngocircn ngữ nagravey lagrave dugraveng caacutec biểu đồ
hướng đối tượng để mocirc tả hệ thống necircn miền ứng dụng của UML bao gồm nhiều
loại hệ thống khaacutec nhau như
Hệ thống thống tin (Information System) Cất giữ lấy biến đổi
biểu diễn thocircng tin cho người sử dụng Xử lyacute những khoảng dữ liệu
lớn coacute caacutec quan hệ phức tạp magrave chuacuteng được lưu trữ trong caacutec cơ sở
dữ liệu quan hệ hay hướng đối tượng
Hệ thống kỹ thuật (Technical System) Xử lyacute vagrave điều khiển caacutec
thiết bị kỹ thuật như viễn thocircng hệ thống quacircn sự hay caacutec quaacute
trigravenh cocircng nghiệp Đacircy lagrave loại thiết bị phải xử lyacute caacutec giao tiếp đặc
biệt khocircng coacute phần mềm chuẩn vagrave thường lagrave caacutec hệ thống thời gian
thực (real time)
Hệ thống nhuacuteng (Embeded System) Thực hiện trecircn phần cứng
gắn vagraveo caacutec thiết bị như điện thoại di động điều khiển xe hơi hellip
Điều nagravey được thực hiện bằng việc lập trigravenh mức thấp với hỗ trợ thời
gian thực Những hệ thống nagravey thường khocircng coacute caacutec thiết bị như
magraven higravenh đĩa cứng hellip
Hệ thống phacircn bố ( Distributed System) Được phacircn bố trecircn
một số maacutey cho pheacutep truyền dữ liệu từ nơi nagravey đến nơi khaacutec một
caacutech dễ dagraveng Chuacuteng đogravei hỏi caacutec cơ chế liecircn lạc đồng bộ để đảm bảo
toagraven vẹn dữ liệu vagrave thường được xacircy dựng trecircn một số caacutec kỹ thuật
đối tượng như CORBA COMDCOM hay Java BeansRMI
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Hệ thống Giao dịch (Business System) Mocirc tả mục điacutech tagravei
nguyecircn (con người maacutey tiacutenh hellip) caacutec quy tắc (luật phaacutep chiến
thuật kinh doanh cơ chế hellip) vagrave cocircng việc hoạt động kinh doanh
Phần mềm hệ thống (System Software) Định nghĩa cơ sở hạ
tầng kỹ thuật cho phần mềm khaacutec sử dụng chẳng hạn như hệ điều
hagravenh cơ sở dữ liệu giao diện người sử dụng
3- UML VAgrave CAacuteC GIAI ĐOẠN PHAacuteT TRIỂN HỆ THỐNG
Preliminary Investigation use cases thể hiện caacutec yecircu cầu của người
dugraveng Phần miecircu tả use case xaacutec định caacutec yecircu cầu phần diagram thể hiện
mối quan hệ vagrave giao tiếp với hệ thống
Analysis Mục điacutech chiacutenh của giai đọan nagravey lagrave trừu tượng hoacutea vagrave tigravem
hiểu caacutec cơ cấu coacute trong phạm vi bagravei toaacuten Class diagrams trecircn bigravenh diện
trừu tượng hoacutea caacutec thực thể ngoagravei đời thực được sử dụng để lagravem rotilde sự tồn
tại cũng như mối quan hệ của chuacuteng Chỉ những lớp (class) nằm trong
phạm vi bagravei toaacuten mới đaacuteng quan tacircm
Design Kết quả phần analysis được phaacutet triển thagravenh giải phaacutep kỹ thuật
Caacutec lớp được mocirc higravenh hoacutea chi tiết để cung cấp hạ tầng kỹ thuật như giao
diện nền tảng cho database hellip Kết quả phần Design lagrave caacutec đặc tả chi tiết
cho giai đoạn xacircy dựng phần mềm
Development Mocirc higravenh Design được chuyển thagravenh code Programmer
sử dụng caacutec UML diagrams trong giai đoạn Design để hiểu vấn đề vagrave tạo
code
Testing Sử dụng caacutec UML diagrams trong caacutec giai đoạn trước Coacute 4
higravenh thức kiểm tra hệ thống
Unit testing (class diagrams amp class specifications) kiểm tra
từng đơn thể được dugraveng để kiểm tra caacutec lớp hay caacutec nhoacutem
đơn thể
Integration testing (integration diagrams amp collaboration
diagrams) kiểm tra tiacutech hợp lagrave kiểm tra kết hợp caacutec
component với caacutec lớp để xem chuacuteng hoạt động với nhau coacute
đuacuteng khocircng
System testing (use-case diagrams) kiềm tra xem hệ thống
coacute đaacutep ứng được chức năng magrave người sử dụng yecircu cầu hay
khocircng
Acceptance testing Kiểm tra tiacutenh chấp nhận được của hệ
thống thường được thực hiện bởi khaacutech hagraveng việc kiểm tra
nagravey thực hiện tương tự như kiểm tra hệ thống
CuuDuongThanCongcom httpsfbcomtailieudientucntt
PHẦN CAcircU HỎI
Hỏi UML (Unifield Modeling Language) lagrave gigrave
Đaacutep Ngocircn ngữ mocirc higravenh hoacutea thống nhất ndash UML lagrave một ngocircn ngữ để biểu
diễn mocirc higravenh theo hướng đối tượng
Hỏi Điểm khaacutec nhau cơ bản giữa phương phaacutep (method) vagrave một ngocircn ngữ mocirc
higravenh hoaacute (modeling language) lagrave gigrave
Đaacutep Điểm khaacutec nhau cơ bản giữa một phương phaacutep vagrave một ngocircn ngữ
mocirc higravenh hoaacute lagrave ngocircn ngữ mocirc higravenh hoaacute khocircng coacute một tiến trigravenh (process)
hay caacutec cacircu lệnh (instruction) mocirc tả những cocircng việc người sử dụng cần
lagravem magrave noacute bao gồm caacutec kyacute hiệu ndash những biểu tượng được dugraveng trong mocirc
higravenh ndash vagrave một tập caacutec quy tắc chỉ caacutech sử dụng chuacuteng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Chƣơng 3 KHAacuteI QUAacuteT VỀ UML
1- UML VAgrave CAacuteC GIAI ĐOẠN CỦA CHU TRIgraveNH PHAacuteT TRIỂN
PHẦN MỀM
11- Giai đoạn nghiecircn cứu sơ bộ
UML đưa ra khaacutei niệm Use Case để nắm bắt caacutec yecircu cầu của khaacutech hagraveng (người
sử dụng) UML sử dụng biểu đồ Use case (Use Case Diagram) để necircu bật mối
quan hệ cũng như sự giao tiếp với hệ thống
Qua phương phaacutep mocirc higravenh hoacutea Use case caacutec taacutec nhacircn (Actor) becircn ngoagravei quan
tacircm đến hệ thống sẽ được mocirc higravenh hoacutea song song với chức năng magrave họ đogravei hỏi
từ phiacutea hệ thống (tức lagrave Use case) Caacutec taacutec nhacircn vagrave caacutec Use case được mocirc higravenh
hoacutea cugraveng caacutec mối quan hệ vagrave được miecircu tả trong biểu đồ Use case của UML Mỗi
một Use case được mocirc tả trong tagravei liệu vagrave noacute sẽ đặc tả caacutec yecircu cầu của khaacutech
hagraveng Anh ta hay chị ta chờ đợi điều gigrave ở phiacutea hệ thống magrave khocircng hề để yacute đến
việc chức năng nagravey sẽ được thực thi ra sao
12- Giai đoạn phacircn tiacutech
Giai đoạn phacircn tiacutech quan tacircm đến quaacute trigravenh trừu tượng hoacutea đầu tiecircn (caacutec lớp vagrave
caacutec đối tượng) cũng như cơ chế hiện hữu trong phạm vi vấn đề Sau khi nhagrave
phacircn tiacutech đatilde nhận biết được caacutec lớp thagravenh phần của mocirc higravenh cũng như mối quan
hệ giữa chuacuteng với nhau caacutec lớp cugraveng caacutec mối quan hệ đoacute sẽ được miecircu tả bằng
cocircng cụ biểu đồ lớp (class diagram) của UML Sự cộng taacutec giữa caacutec lớp nhằm
thực hiện caacutec Use case cũng sẽ được miecircu tả nhờ vagraveo caacutec mocirc higravenh động
(dynamic models) của UML Trong giai đoạn phacircn tiacutech chỉ duy nhất caacutec lớp coacute
tồn tại trong phạm vi vấn đề (caacutec khaacutei niệm đời thực) lagrave được mocirc higravenh hoacutea Caacutec
lớp kỹ thuật định nghĩa chi tiết cũng như giải phaacutep trong hệ thống phần mềm viacute
dụ như caacutec lớp cho giao diện người dugraveng cho ngacircn hagraveng dữ liệu cho sự giao tiếp
trugraveng hợp vv chưa phải lagrave mối quan tacircm của giai đoạn nagravey
13- Giai đoạn thiết kế
Trong giai đoạn nagravey kết quả của giai đoạn phacircn tiacutech sẽ được mở rộng thagravenh một
giải phaacutep kỹ thuật Caacutec lớp mới sẽ được bổ sung để tạo thagravenh một hạ tầng cơ sở
kỹ thuật Giao diện người dugraveng caacutec chức năng để lưu trữ caacutec đối tượng trong
ngacircn hagraveng dữ liệu giao tiếp với caacutec hệ thống khaacutec giao diện với caacutec thiết bị
ngoại vi vagrave caacutec maacutey moacutec khaacutec trong hệ thống Caacutec lớp thuộc phạm vi vấn đề
coacute từ giai đoạn phacircn tiacutech sẽ được nhuacuteng vagraveo hạ tầng cơ sở kỹ thuật nagravey tạo ra
khả năng thay đổi trong cả hai phương diện Phạm vi vấn đề vagrave hạ tầng cơ sở
Giai đoạn thiết kế sẽ đưa ra kết quả lagrave bản đặc tả chi tiết cho giai đoạn xacircy dựng
hệ thống
14- Giai đoạn xacircy dựng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Trong giai đoạn xacircy dựng (giai đoạn lập trigravenh) caacutec lớp của giai đoạn thiết kế sẽ
được biến thagravenh những dograveng code cụ thể trong một ngocircn ngữ lập trigravenh hướng đối
tượng cụ thể (khocircng necircn dugraveng một ngocircn ngữ lập trigravenh hướng chức năng) Phụ
thuộc vagraveo khả năng của ngocircn ngữ được sử dụng đacircy coacute thể lagrave một cocircng việc khoacute
khăn hay dễ dagraveng Khi tạo ra caacutec mocirc higravenh phacircn tiacutech vagrave thiết kế trong UML tốt
nhất necircn cố gắng neacute traacutenh việc ngay lập tức biến đổi caacutec mocirc higravenh nagravey thagravenh caacutec
dograveng code Trong những giai đoạn trước mocirc higravenh được sử dụng để dễ hiểu dễ
giao tiếp vagrave tạo necircn cấu truacutec của hệ thống vigrave vậy vội vagraveng đưa ra những kết
luận về việc viết code coacute thể sẽ thagravenh một trở ngại cho việc tạo ra caacutec mocirc higravenh
chiacutenh xaacutec vagrave đơn giản Giai đoạn xacircy dựng lagrave một giai đoạn riecircng biệt nơi caacutec
mocirc higravenh được chuyển thagravenh code
15- Thử nghiệm
Như đatilde trigravenh bagravey trong phần Chu Trigravenh Phaacutet Triển Phần Mềm một hệ thống phần
mềm thường được thử nghiệm qua nhiều giai đoạn vagrave với nhiều nhoacutem thử
nghiệm khaacutec nhau Caacutec nhoacutem sử dụng nhiều loại biểu đồ UML khaacutec nhau lagravem nền
tảng cho cocircng việc của migravenh Thử nghiệm đơn vị sử dụng biểu đồ lớp (class
diagram) vagrave đặc tả lớp thử nghiệm tiacutech hợp thường sử dụng biểu đồ thagravenh phần
(component diagram) vagrave biểu đồ cộng taacutec (collaboration diagram) vagrave giai đoạn
thử nghiệm hệ thống sử dụng biểu đồ Use case (use case diagram) để đảm bảo
hệ thống coacute phương thức hoạt động đuacuteng như đatilde được định nghĩa từ ban đầu
trong caacutec biểu đồ nagravey
2- CAacuteC THAgraveNH PHẦN CỦA NGOcircN NGỮ UML
Ngocircn ngữ UML bao gồm một loạt caacutec phần tử đồ họa (graphic element) coacute thể
được kếp hợp với nhau để tạo ra caacutec biểu đồ Bởi đacircy lagrave một ngocircn ngữ necircn UML
cũng coacute caacutec nguyecircn tắc để kết hợp caacutec phần tử đoacute
Một số những thagravenh phần chủ yếu của ngocircn ngữ UML
Hướng nhigraven (view) Hướng nhigraven chỉ ra những khiacutea cạnh khaacutec
nhau của hệ thống cần phải được mocirc higravenh hoacutea Một hướng nhigraven
khocircng phải lagrave một bản vẽ magrave lagrave một sự trừu tượng hoacutea bao gồm
một loạt caacutec biểu đồ khaacutec nhau Chỉ qua việc định nghĩa của một
loạt caacutec hướng nhigraven khaacutec nhau mỗi hướng nhigraven chỉ ra một khiacutea
cạnh riecircng biệt của hệ thống người ta mới coacute thể tạo dựng necircn một
bức tranh hoagraven thiện về hệ thống Cũng chiacutenh caacutec hướng nhigraven nagravey
nối kết ngocircn ngữ mocirc higravenh hoacutea với quy trigravenh được chọn cho giai đoạn
phaacutet triển
Biểu đồ (diagram) Biểu đồ lagrave caacutec higravenh vẽ miecircu tả nội dung
trong một hướng nhigraven UML coacute tất cả 9 loại biểu đồ khaacutec nhau được
CuuDuongThanCongcom httpsfbcomtailieudientucntt
sử dụng trong những sự kết hợp khaacutec nhau để cung cấp tất cả caacutec
hướng nhigraven của một hệ thống
Phần tử mocirc higravenh hoacutea (model element) Caacutec khaacutei niệm được
sử dụng trong caacutec biểu đồ được gọi lagrave caacutec phần tử mocirc higravenh thể hiện
caacutec khaacutei niệm hướng đối tượng quen thuộc Viacute dụ như lớp đối tượng
thocircng điệp cũng như caacutec quan hệ giữa caacutec khaacutei niệm nagravey bao gồm
cả liecircn kết phụ thuộc khaacutei quaacutet hoacutea Một phần tử mocirc higravenh thường
được sử dụng trong nhiều biểu đồ khaacutec nhau nhưng noacute luocircn luocircn coacute
chỉ một yacute nghĩa vagrave một kiacute hiệu
Cơ chế chung Cơ chế chung cung cấp thecircm những lời nhận xeacutet
bổ sung caacutec thocircng tin cũng như caacutec quy tắc ngữ phaacutep chung về
một phần tử mocirc higravenh chuacuteng cograven cung cấp thecircm caacutec cơ chế để coacute
thể mở rộng ngocircn ngữ UML cho phugrave hợp với một phương phaacutep xaacutec
định (một quy trigravenh một tổ chức hoặc một người dugraveng)
3- HƢỚNG NHIgraveN (VIEW)
Mocirc higravenh hoacutea một hệ thống phức tạp lagrave một việc lagravem khoacute khăn Lyacute tưởng nhất lagrave
toagraven bộ hệ thống được miecircu tả chỉ trong một bản vẽ một bản vẽ định nghĩa một
caacutech rotilde ragraveng vagrave mạch lạc toagraven bộ hệ thống một bản vẽ ngoagravei ra lại cograven dễ giao
tiếp vagrave dễ hiểu Mặc dugrave vậy thường thigrave đacircy lagrave chuyện bất khả thi Một bản vẽ
khocircng thể nắm bắt tất cả caacutec thocircng tin cần thiết để miecircu tả một hệ thống Một
hệ thống cần phải được miecircu tả với một loạt caacutec khiacutea cạnh khaacutec nhau Về mặt
chức năng (cấu truacutec tĩnh của noacute cũng như caacutec tương taacutec động) về mặt phi chức
năng (yecircu cầu về thời gian về độ đaacuteng tin cậy về quaacute trigravenh thực thi vv vagrave vv)
cũng như về khiacutea cạnh tổ chức (tổ chức lagravem việc aacutenh xạ noacute vagraveo caacutec code
module) Vigrave vậy một hệ thống thường được miecircu tả trong một loạt caacutec hướng
nhigraven khaacutec nhau mỗi hướng nhigraven sẽ thể hiện một bức ảnh aacutenh xạ của toagraven bộ hệ
thống vagrave chỉ ra một khiacutea cạnh riecircng của hệ thống
Higravenh 31- Caacutec View trong UML
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Mỗi một hướng nhigraven được miecircu tả trong một loạt caacutec biểu đồ chứa đựng caacutec
thocircng tin necircu bật khiacutea cạnh đặc biệt đoacute của hệ thống Trong thực tế khi phacircn tiacutech
vagrave thiết kế rất dễ xảy ra sự trugraveng lặp thocircng tin cho necircn một biểu đồ trecircn thật tế
coacute thể lagrave thagravenh phần của nhiều hướng nhigraven khaacutec nhau Khi nhigraven hệ thống từ
nhiều hướng nhigraven khaacutec nhau tại một thời điểm coacute thể người ta chỉ tập trung vagraveo
một khiacutea cạnh của hệ thống Một biểu đồ trong một hướng nhigraven cụ thể nagraveo đoacute
cần phải đủ độ đơn giản để tạo điều kiện giao tiếp dễ dagraveng để diacutenh liền với caacutec
biểu đồ khaacutec cũng như caacutec hướng nhigraven khaacutec lagravem sao cho bức tranh toagraven cảnh
của hệ thống được miecircu tả bằng sự kết hợp tất cả caacutec thocircng tin từ tất cả caacutec
hướng nhigraven Một biểu đồ chứa caacutec kiacute hiệu higravenh học mocirc tả caacutec phần tử mocirc higravenh
của hệ thống UML coacute tất cả caacutec hướng nhigraven sau
Hướng nhigraven Use case (use case view) đacircy lagrave hướng nhigraven chỉ ra
khiacutea cạnh chức năng của một hệ thống nhigraven từ hướng taacutec nhacircn becircn
ngoagravei
Hướng nhigraven logic (logical view) chỉ ra chức năng sẽ được thiết kế
becircn trong hệ thống như thế nagraveo qua caacutec khaacutei niệm về cấu truacutec tĩnh
cũng như ứng xử động của hệ thống
Hướng nhigraven thagravenh phần (component view) chỉ ra khiacutea cạnh tổ chức
của caacutec thagravenh phần code
Hướng nhigraven song song (concurrency view) chỉ ra sự tồn tại song
song trugraveng hợp trong hệ thống hướng đến vấn đề giao tiếp vagrave
đồng bộ hoacutea trong hệ thống
Hướng nhigraven triển khai (deployment view) chỉ ra khiacutea cạnh triển
khai hệ thống vagraveo caacutec kiến truacutec vật lyacute (caacutec maacutey tiacutenh hay trang thiết
bị được coi lagrave trạm cocircng taacutec)
Khi bạn chọn cocircng cụ để vẽ biểu đồ hatildey chọn cocircng cụ nagraveo tạo điều kiện dễ dagraveng
chuyển từ hướng nhigraven nagravey sang hướng nhigraven khaacutec Ngoagravei ra cho mục điacutech quan
saacutet một chức năng sẽ được thiết kế như thế nagraveo cocircng cụ nagravey cũng phải tạo điều
kiện dễ dagraveng cho bạn chuyển sang hướng nhigraven Use case (để xem chức năng nagravey
được miecircu tả như thế nagraveo từ phiacutea taacutec nhacircn) hoặc chuyển sang hướng nhigraven triển
khai (để xem chức năng nagravey sẽ được phacircn bố ra sao trong cấu truacutec vật lyacute - Noacutei
một caacutech khaacutec lagrave noacute coacute thể nằm trong maacutey tiacutenh nagraveo)
Ngoagravei caacutec hướng nhigraven kể trecircn ngagravenh cocircng nghiệp phần mềm cograven sử dụng cả caacutec
hướng nhigraven khaacutec viacute dụ hướng nhigraven tĩnh-động hướng nhigraven logic-vật lyacute quy trigravenh
nghiệp vụ (workflow) vagrave caacutec hướng nhigraven khaacutec UML khocircng yecircu cầu chuacuteng ta phải
sử dụng caacutec hướng nhigraven nagravey nhưng đacircy cũng chiacutenh lagrave những hướng nhigraven magrave caacutec
nhagrave thiết kế của UML đatilde nghĩ tới necircn coacute khả năng nhiều cocircng cụ sẽ dựa trecircn caacutec
hướng nhigraven đoacute
CuuDuongThanCongcom httpsfbcomtailieudientucntt
31- Hƣớng nhigraven Use case (Use case View)
Hướng nhigraven Use case miecircu tả chức năng của hệ thống sẽ phải cung cấp do được
taacutec nhacircn từ becircn ngoagravei mong đợi Taacutec nhacircn lagrave thực thể tương taacutec với hệ thống đoacute
coacute thể lagrave một người sử dụng hoặc lagrave một hệ thống khaacutec Hướng nhigraven Use case lagrave
hướng nhigraven dagravenh cho khaacutech hagraveng nhagrave thiết kế nhagrave phaacutet triển vagrave người thử
nghiệm noacute được miecircu tả qua caacutec biểu đồ Use case (use case diagram) vagrave thỉnh
thoảng cũng bao gồm cả caacutec biểu đồ hoạt động (activity diagram) Caacutech sử dụng
hệ thống nhigraven chung sẽ được miecircu tả qua một loạt caacutec Use case trong hướng
nhigraven Use case nơi mỗi một Use case lagrave một lời miecircu tả mang tiacutenh đặc thugrave cho
một tiacutenh năng của hệ thống (coacute nghĩa lagrave một chức năng được mong đợi)
Hướng nhigraven Use case mang tiacutenh trung tacircm bởi noacute đặt ra nội dung thuacutec đẩy sự
phaacutet triển caacutec hướng nhigraven khaacutec Mục tiecircu chung của hệ thống lagrave cung cấp caacutec
chức năng miecircu tả trong hướng nhigraven nagravey ndash cugraveng với một vagravei caacutec thuộc tiacutenh mang
tiacutenh phi chức năng khaacutec ndash vigrave thế hướng nhigraven nagravey coacute ảnh hưởng đến tất cả caacutec
hướng nhigraven khaacutec Hướng nhigraven nagravey cũng được sử dụng để thẩm tra (verify) hệ
thống qua việc thử nghiệm xem hướng nhigraven Use case coacute đuacuteng với mong đợi của
khaacutech hagraveng (Hỏi Đacircy coacute phải lagrave thứ bạn muốn) cũng như coacute đuacuteng với hệ thống
vừa được hoagraven thagravenh (Hỏi Hệ thống coacute hoạt động như đatilde đặc tả)
32- Hƣớng nhigraven logic (Logical View)
Hướng nhigraven logic miecircu tả phương thức magrave caacutec chức năng của hệ thống sẽ được
cung cấp Chủ yếu noacute được sử dụng cho caacutec nhagrave thiết kế vagrave nhagrave phaacutet triển
Ngược lại với hướng nhigraven Use case hướng nhigraven logic nhigraven vagraveo phiacutea becircn trong của
hệ thống Noacute miecircu tả kể cả cấu truacutec tĩnh (lớp đối tượng vagrave quan hệ) cũng như
sự tương taacutec động sẽ xảy ra khi caacutec đối tượng gửi thocircng điệp cho nhau để cung
cấp chức năng đatilde định sẵn Hướng nhigraven logic định nghĩa caacutec thuộc tiacutenh như
trường tồn (persistency) hoặc song song (concurrency) cũng như caacutec giao diện
cũng như cấu truacutec nội tại của caacutec lớp
Cấu truacutec tĩnh được miecircu tả bằng caacutec biểu đồ lớp (class diagram) vagrave biểu đồ đối
tượng (object diagram) Quaacute trigravenh mocirc higravenh hoacutea động được miecircu tả trong caacutec biểu
đồ trạng thaacutei (state diagram) biểu đồ trigravenh tự (sequence diagram) biểu đồ
tương taacutec (collaboration diagram) vagrave biểu đồ hoạt động (activity diagram)
33- Hƣớng nhigraven thagravenh phần (Component View)
Lagrave một lời miecircu tả của việc thực thi caacutec modul cũng như sự phụ thuộc giữa chuacuteng
với nhau Noacute thường được sử dụng cho nhagrave phaacutet triển vagrave thường bao gồm nhiều
biểu đồ thagravenh phần Thagravenh phần ở đacircy lagrave caacutec modul lệnh thuộc nhiều loại khaacutec
nhau sẽ được chỉ ra trong biểu đồ cugraveng với cấu truacutec cũng như sự phụ thuộc của
chuacuteng Caacutec thocircng tin bổ sung về caacutec thagravenh phần viacute dụ như vị triacute của tagravei nguyecircn
(traacutech nhiệm đối với một thagravenh phần) hoặc caacutec thocircng tin quản trị khaacutec viacute dụ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
như một bản baacuteo caacuteo về tiến trigravenh của cocircng việc cũng coacute thể được bổ sung vagraveo
đacircy
34- Hƣớng nhigraven song song (Concurrency View)
Hướng nhigraven song song nhắm tới sự chia hệ thống thagravenh caacutec qui trigravenh (process)
vagrave caacutec bộ xử lyacute (processor) Khiacutea cạnh nagravey vốn lagrave một thuộc tiacutenh phi chức năng
của hệ thống cho pheacutep chuacuteng ta sử dụng một caacutech hữu hiệu caacutec nguồn tagravei
nguyecircn thực thi song song cũng như xử lyacute caacutec sự kiện khocircng đồng bộ từ mocirci
trường Becircn cạnh việc chia hệ thống thagravenh caacutec tiểu trigravenh coacute thể được thực thi
song song hướng nhigraven nagravey cũng phải quan tacircm đến vấn đề giao tiếp vagrave đồng bộ
hoacutea caacutec tiểu trigravenh đoacute
Hướng nhigraven song song giagravenh cho nhagrave phaacutet triển vagrave người tiacutech hợp hệ thống noacute
bao gồm caacutec biểu đồ động (trạng thaacutei trigravenh tự tương taacutec vagrave hoạt động) cugraveng caacutec
biểu đồ thực thi (biểu đồ thagravenh phần vagrave biểu đồ triển khai)
35- Hƣớng nhigraven triển khai (Deployment View)
Cuối cugraveng hướng nhigraven triển khai chỉ cho chuacuteng ta sơ đồ triển khai về mặt vật lyacute
của hệ thống viacute dụ như caacutec maacutey tiacutenh cũng như caacutec maacutey moacutec vagrave sự liecircn kết giữa
chuacuteng với nhau Hướng nhigraven triển khai giagravenh cho caacutec nhagrave phaacutet triển người tiacutech
hợp cũng như người thử nghiệm hệ thống vagrave được thể hiện bằng caacutec biểu đồ
triển khai Hướng nhigraven nagravey cũng bao gồm sự aacutenh xạ caacutec thagravenh phần của hệ
thống vagraveo cấu truacutec vật lyacute viacute dụ như chương trigravenh nagraveo hay đối tượng nagraveo sẽ được
thực thi trecircn maacutey tiacutenh nagraveo
4- BIỂU ĐỒ (DIAGRAM)
Biểu đồ lagrave caacutec higravenh vẽ bao gồm caacutec kyacute hiệu phần tử mocirc higravenh hoacutea được sắp xếp
để minh họa một thagravenh phần cụ thể hay một khiacutea cạnh cụ thể của hệ thống Một
mocirc higravenh hệ thống thường coacute nhiều loại biểu đồ mỗi loại coacute nhiều biểu đồ khaacutec
nhau Một biểu đồ lagrave một thagravenh phần của một hướng nhigraven cụ thể vagrave khi được vẽ
ra noacute thường thường cũng được xếp vagraveo một hướng nhigraven Mặt khaacutec một số loại
biểu đồ coacute thể lagrave thagravenh phần của nhiều hướng nhigraven khaacutec nhau tugravey thuộc vagraveo nội
dung của biểu đồ
Phần sau miecircu tả caacutec khaacutei niệm căn bản nằm đằng sau mỗi loại biểu đồ Tất cả
caacutec chi tiết về biểu đồ ngữ cảnh của chuacuteng yacute nghĩa chiacutenh xaacutec của chuacuteng vagrave sự
tương taacutec giữa chuacuteng với nhau được miecircu tả chi tiết trong caacutec chương sau (mocirc
higravenh đối tượng ndash mocirc higravenh động) Caacutec biểu đồ lấy lagravem viacute dụ ở đacircy được lấy ra từ
nhiều loại hệ thống khaacutec nhau để chỉ ra neacutet phong phuacute vagrave khả năng aacutep dụng
rộng khắp của ULM
41- Biểu đồ Use case (Use Case Diagram)
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Một biểu đồ Use case chỉ ra một số lượng caacutec taacutec nhacircn ngoại cảnh vagrave mối liecircn kết
của chuacuteng đối với Use case magrave hệ thống cung cấp (nhigraven higravenh 32) Một Use case
lagrave một lời miecircu tả của một chức năng magrave hệ thống cung cấp Lời miecircu tả Use
case thường lagrave một văn bản tagravei liệu nhưng kegravem theo đoacute cũng coacute thể lagrave một biểu
đồ hoạt động Caacutec Use case được miecircu tả duy nhất theo hướng nhigraven từ ngoagravei vagraveo
của caacutec taacutec nhacircn (hagravenh vi của hệ thống theo như sự mong đợi của người sử
dụng) khocircng miecircu tả chức năng được cung cấp sẽ hoạt động nội bộ becircn trong
hệ thống ra sao Caacutec Use case định nghĩa caacutec yecircu cầu về mặt chức năng đối với
hệ thống Caacutec biểu đồ Use case sẽ được miecircu tả chi tiết hơn trong chương 4 (Use
case)
Higravenh 32- Biểu đồ use case của một cocircng ty bảo hiểm
42- Biểu đồ lớp (Class Diagram)
Một biểu đồ lớp chỉ ra cấu truacutec tĩnh của caacutec lớp trong hệ thống (nhigraven higravenh 33)
Caacutec lớp lagrave đại diện cho caacutec ―vật được xử lyacute trong hệ thống Caacutec lớp coacute thể quan
hệ với nhau trong nhiều dạng thức liecircn kết (associated - được nối kết với nhau)
phụ thuộc (dependent - một lớp nagravey phụ thuộc vagraveo lớp khaacutec) chuyecircn biệt hoacutea
(specialized - một lớp nagravey lagrave một kết quả chuyecircn biệt hoacutea của lớp khaacutec) hay
đoacuteng goacutei ( packaged - hợp với nhau thagravenh một đơn vị) Tất cả caacutec mối quan hệ
đoacute đều được thể hiện trong biểu đồ lớp đi kegravem với cấu truacutec becircn trong của caacutec lớp
theo khaacutei niệm thuộc tiacutenh (attribute) vagrave thủ tục (operation) Biểu đồ được coi lagrave
biểu đồ tĩnh theo phương diện cấu truacutec được miecircu tả ở đacircy coacute hiệu lực tại bất kỳ
thời điểm nagraveo trong toagraven bộ vograveng đời hệ thống
Một hệ thống thường sẽ coacute một loạt caacutec biểu đồ lớp ndash chẳng phải bao giờ tất cả
caacutec biểu đồ lớp nagravey cũng được nhập vagraveo một biểu đồ lớp tổng thể duy nhất ndash vagrave
một lớp coacute thể tham gia vagraveo nhiều biểu đồ lớp Biểu đồ lớp được miecircu tả chi tiết
trong chương sau
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 33 - Biểu đồ lớp cho một giao dịch Tagravei chiacutenh
43- Biểu đồ đối tƣợng (Object Diagram)
Một biểu đồ đối tượng lagrave một phiecircn bản của biểu đồ lớp vagrave thường cũng sử dụng
caacutec kyacute hiệu như biểu đồ lớp Sự khaacutec biệt giữa hai loại biểu đồ nagravey nằm ở chỗ
biểu đồ đối tượng chỉ ra một loạt caacutec đối tượng thực thể của lớp thay vigrave caacutec lớp
Một biểu đồ đối tượng vigrave vậy lagrave một viacute dụ của biểu đồ lớp chỉ ra một bức tranh
thực tế coacute thể xảy ra khi hệ thống thực thi bức tranh magrave hệ thống coacute thể coacute tại
một thời điểm nagraveo đoacute Biểu đồ đối tượng sử dụng chung caacutec kyacute hiệu của biểu đồ
lớp chỉ trừ hai ngoại lệ đối tượng được viết với tecircn được gạch dưới vagrave tất cả caacutec
thực thể trong một mối quan hệ đều được chỉ ra (nhigraven higravenh 34)
Biểu đồ đối tượng khocircng quan trọng bằng biểu đồ lớp chuacuteng coacute thể được sử
dụng để viacute dụ hoacutea một biểu đồ lớp phức tạp chỉ ra với những thực thể cụ thể vagrave
những mối quan hệ như thế thigrave bức tranh toagraven cảnh sẽ ra sao Một biểu đồ đối
tượng thường thường được sử dụng lagravem một thagravenh phần của một biểu đồ cộng
taacutec (collaboration) chỉ ra lối ứng xử động giữa một loạt caacutec đối tượng
Higravenh 34 - Biểu đồ lớp vagrave biểu đồ đối tượng thể hiện của lớp
CuuDuongThanCongcom httpsfbcomtailieudientucntt
44- Biểu đồ trạng thaacutei (State Diagram)
Một biểu đồ trạng thaacutei thường lagrave một sự bổ sung cho lời miecircu tả một lớp Noacute chỉ
ra tất cả caacutec trạng thaacutei magrave đối tượng của lớp nagravey coacute thể coacute vagrave những sự kiện
(event) nagraveo sẽ gacircy ra sự thay đổi trạng thaacutei (higravenh 35) Một sự kiện coacute thể xảy ra
khi một đối tượng tự gửi thocircng điệp đến cho noacute - viacute dụ như để thocircng baacuteo rằng
một khoảng thời gian được xaacutec định đatilde qua đi ndash hay lagrave một số điều kiện nagraveo đoacute
đatilde được thỏa matilden Một sự thay đổi trạng thaacutei được gọi lagrave một sự chuyển đổi
trạng thaacutei (State Transition) Một chuyển đổi trạng thaacutei cũng coacute thể coacute một hagravenh
động liecircn quan xaacutec định điều gigrave phải được thực hiện khi sự chuyển đổi trạng thaacutei
nagravey diễn ra
Biểu đồ trạng thaacutei khocircng được vẽ cho tất cả caacutec lớp magrave chỉ riecircng cho những lớp
coacute một số lượng caacutec trạng thaacutei được định nghĩa rotilde ragraveng vagrave hagravenh vi của lớp bị ảnh
hưởng vagrave thay đổi qua caacutec trạng thaacutei khaacutec nhau Biểu đồ trạng thaacutei cũng coacute thể
được vẽ cho hệ thống tổng thể Biểu đồ trạng thaacutei được miecircu tả chi tiết hơn trong
chương sau (Mocirc higravenh động)
Higravenh 35- Một viacute dụ về biểu đồ trạng thaacutei
45- Biểu đồ trigravenh tự (Sequence Diagram)
Một biểu đồ trigravenh tự chỉ ra một cộng taacutec động giữa một loạt caacutec đối tượng (xem
higravenh 36) Khiacutea cạnh quan trọng của biểu đồ nagravey lagrave chỉ ra trigravenh tự caacutec thocircng điệp
(message) được gửi giữa caacutec đối tượng Noacute cũng chỉ ra trigravenh tự tương taacutec giữa
caacutec đối tượng điều sẽ xảy ra tại một thời điểm cụ thể nagraveo đoacute trong trigravenh tự thực
thi của hệ thống Caacutec biểu đồ trigravenh tự chứa một loạt caacutec đối tượng được biểu diễn
bằng caacutec đường thẳng đứng Trục thời gian coacute hướng từ trecircn xuống dưới trong
biểu đồ vagrave biểu đồ chỉ ra sự trao đổi thocircng điệp giữa caacutec đối tượng khi thời gian
trocirci qua Caacutec thocircng điệp được biểu diễn bằng caacutec đường gạch ngang gắn liền với
mũi tecircn (biểu thị thocircng điệp) nối liền giữa những đường thẳng đứng thể hiện đối
tượng Trục thời gian cugraveng những lời nhận xeacutet khaacutec thường sẽ được đưa vagraveo phần
lề của biểu đồ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 36 - Một biểu đồ trigravenh tự cho Print Server
46- Biểu đồ cộng taacutec (Collaboration Diagram)
Một biểu đồ cộng taacutec chỉ ra một sự cộng taacutec động cũng giống như một biểu đồ
trigravenh tự Thường người ta sẽ chọn hoặc dugraveng biểu đồ trigravenh tự hoặc dugraveng biểu đồ
cộng taacutec Becircn cạnh việc thể hiện sự trao đổi thocircng điệp (được gọi lagrave tương taacutec)
biểu đồ cộng taacutec chỉ ra caacutec đối tượng vagrave quan hệ của chuacuteng (nhiều khi được gọi
lagrave ngữ cảnh) Việc necircn sử dụng biểu đồ trigravenh tự hay biểu đồ cộng taacutec thường sẽ
được quyết định theo nguyecircn tắc chung sau Nếu thời gian hay trigravenh tự lagrave yếu tố
quan trọng nhất cần phải nhấn mạnh thigrave hatildey chọn biểu đồ trigravenh tự nếu ngữ cảnh
lagrave yếu tố quan trọng hơn hatildey chọn biểu đồ cộng taacutec Trigravenh tự tương taacutec giữa caacutec
đối tượng được thể hiện trong cả hai loại biểu đồ nagravey
Biểu đồ cộng taacutec được vẽ theo dạng một biểu đồ đối tượng nơi một loạt caacutec đối
tượng được chỉ ra cugraveng với mối quan hệ giữa chuacuteng với nhau (sử dụng những kyacute
hiệu như trong biểu đồ lớp biểu đồ đối tượng) Caacutec mũi tecircn được vẽ giữa caacutec đối
tượng để chỉ ra dograveng chảy thocircng điệp giữa caacutec đối tượng Caacutec thocircng điệp thường
được điacutenh kegravem theo caacutec nhatilden (label) một trong những chức năng của nhatilden lagrave
chỉ ra thứ tự magrave caacutec thocircng điệp được gửi đi Noacute cũng coacute thể chỉ ra caacutec điều kiện
chỉ ra những giaacute trị được trả về vv Khi đatilde lagravem quen với caacutech viết nhatilden một
nhagrave phaacutet triển coacute thể đọc biểu đồ cộng taacutec vagrave tuacircn thủ theo dograveng thực thi cũng
như sự trao đổi thocircng điệp Một biểu đồ cộng taacutec cũng coacute thể chứa cả caacutec đối
tượng tiacutech cực (active objects) hoạt động song song với caacutec đối tượng tiacutech cực
khaacutec (higravenh 37) Biểu đồ cộng taacutec được miecircu tả chi tiết trong chương sau
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 37 - Một biểu đồ cocircng taacutec của một printer server
47- Biểu đồ hoạt động (Activity Diagram)
Một biểu đồ hoạt động chỉ ra một trigravenh tự lần lượt của caacutec hoạt động (activity)
(higravenh 38) Biểu đồ hoạt động thường được sử dụng để miecircu tả caacutec hoạt động
được thực hiện trong một thủ tục mặc dugrave noacute cũng coacute thể được sử dụng để miecircu
tả caacutec dograveng chảy hoạt động khaacutec viacute dụ như trong một Use case hay trong một
trigravenh tự tương taacutec Biểu đồ hoạt động bao gồm caacutec trạng thaacutei hagravenh động chứa
đặc tả của một hoạt động cần phải được thực hiện (một hagravenh động - action) Một
trạng thaacutei hagravenh động sẽ qua đi khi hagravenh động được thực hiện xong (khaacutec với biểu
đồ trạng thaacutei một trạng thaacutei chỉ chuyển sang trạng thaacutei khaacutec sau khi đatilde xảy ra
một sự kiện rotilde ragraveng ) Dograveng điều khiển ở đacircy chạy giữa caacutec trạng thaacutei hagravenh
động liecircn kết với nhau Biểu đồ cograven coacute thể chỉ ra caacutec quyết định caacutec điều kiện
cũng như phần thực thi song song của caacutec trạng thaacutei hagravenh động Biểu đồ ngoagravei ra
cograven coacute thể chứa caacutec loại đặc tả cho caacutec thocircng điệp được gửi đi hoặc được nhận về
trong tư caacutech lagrave thagravenh phần của hagravenh động được thực hiện
Higravenh 38 - Một biểu đồ hoạt động cho một printer server
48- Biểu đồ thagravenh phần (Component Diagram)
Một biểu đồ thagravenh phần chỉ ra cấu truacutec vật lyacute của caacutec dograveng lệnh (code) theo khaacutei
niệm thagravenh phần code Một thagravenh phần code coacute thể lagrave một tập tin source code
một thagravenh phần nhị phacircn (binary) hay một thagravenh phần thực thi được
(executable) Một thagravenh phần chứa caacutec thocircng tin về caacutec lớp logic hoặc caacutec lớp magrave
noacute thi hagravenh như thế coacute nghĩa lagrave noacute tạo ra một aacutenh xạ từ hướng nhigraven logic vagraveo
hướng nhigraven thagravenh phần Biểu đồ thagravenh phần cũng chỉ ra những sự phụ thuộc giữa
caacutec thagravenh phần với nhau trợ giuacutep cho cocircng việc phacircn tiacutech hiệu ứng magrave một
thagravenh phần được thay đổi sẽ gacircy ra đối với caacutec thagravenh phần khaacutec Thagravenh phần
cũng coacute thể được miecircu tả với bất kỳ loại giao diện nagraveo magrave chuacuteng bộc lộ viacute dụ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
như giao diện OLECOM vagrave chuacuteng coacute thể được nhoacutem goacutep lại với nhau thagravenh từng
goacutei (package) Biểu đồ thagravenh phần được sử dụng trong cocircng việc lập trigravenh cụ thể
(xem higravenh 39)
Higravenh 39 - Một biểu đồ thagravenh phần chỉ ra sự phụ thuộc giữa caacutec thagravenh phần matilde
49- Biểu đồ triển khai (Deployment Diagram)
Biểu đồ triển khai chỉ ra kiến truacutec vật lyacute của phần cứng cũng như phần mềm
trong hệ thống Bạn coacute thể chỉ ra từng maacutey tiacutenh cụ thể vagrave từng trang thiết bị cụ
thể (node) đi kegravem sự nối kết giữa chuacuteng với nhau bạn cũng coacute thể chỉ ra loại của
caacutec mối nối kết đoacute Becircn trong caacutec nuacutet mạng (node) caacutec thagravenh phần thực thi được
cũng như caacutec đối tượng sẽ được xaacutec định vị triacute để chỉ ra những phần mềm nagraveo sẽ
được thực thi tại những nuacutet mạng nagraveo Bạn cũng coacute thể chỉ ra sự phụ thuộc giữa
caacutec thagravenh phần
Biểu đồ triển khai chỉ ra hướng nhigraven triển khai miecircu tả kiến truacutec vật lyacute thật sự
của hệ thống Đacircy lagrave một hướng nhigraven rất xa lối miecircu tả duy chức năng của hướng
nhigraven Use case Mặc dugrave vậy trong một mocirc higravenh tốt người ta coacute thể chỉ tất cả
những con đường dẫn từ một nuacutet mạng trong một kiến truacutec vật lyacute cho tới những
thagravenh phần của noacute cho tới lớp magrave noacute thực thi cho tới những tương taacutec magrave caacutec
đối tượng của lớp nagravey tham gia để rồi cuối cugraveng tiến tới một Use case Rất nhiều
hướng nhigraven khaacutec nhau của hệ thống được sử dụng đồng thời để tạo ra một lời
miecircu tả thấu đaacuteo đối với hệ thống trong sự tổng thể của noacute
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 310 - Một biểu đồ triển khai chỉ ra kiến truacutec vật lyacute của hệ thống
5- PHẦN TỬ MOcirc HIgraveNH (MODEL ELEMENT)
Caacutec khaacutei niệm được sử dụng trong caacutec biểu đồ được gọi lagrave caacutec phần tử mocirc higravenh
(model element) Một phần tử mocirc higravenh được định nghĩa với ngữ nghĩa (semantic)
đoacute lagrave một định nghĩa về bản chất phần tử hay lagrave một xaacutec định yacute nghĩa chiacutenh xaacutec
xem noacute sẽ thể hiện điều gigrave trong những lời khẳng định rotilde ragraveng Mỗi phần tử mocirc
higravenh cograven coacute một sự miecircu tả trực quan một kyacute hiệu higravenh học được sử dụng để
miecircu tả phần tử nagravey trong biểu đồ Một phần tử coacute thể tồn tại trong nhiều dạng
biểu đồ khaacutec nhau nhưng cũng coacute những nguyecircn tắc xaacutec định loại phần tử nagraveo
coacute thể được chỉ ra trong loại biểu đồ nagraveo Một vagravei viacute dụ cho phần tử vocirc higravenh lagrave lớp
đối tượng trạng thaacutei nuacutet mạng goacutei thagravenh phần (higravenh 311)
Higravenh 311- Caacutec thagravenh phần mocirc higravenh thường dugraveng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 312 chỉ ra một vagravei viacute dụ của mối quan hệ đacircy cũng lagrave một dạng phần tử
mocirc higravenh chuacuteng được sử dụng để nối caacutec phần tử mocirc higravenh khaacutec với nhau Một vagravei
loại quan hệ đaacuteng chuacute yacute
Nối kết (Association) nối caacutec phần tử vagrave caacutec thực thể nối (link)
Khaacutei quaacutet hoacutea (Generalization) cograven được gọi lagrave tiacutenh thừa kế coacute
yacute nghĩa rằng một phần tử nagravey coacute thể lagrave một sự chuyecircn biệt hoacutea của
một phần tử khaacutec
Sự phụ thuộc (Dependency) chỉ ra rằng một phần tử nagravey phụ
thuộc trong một phương thức nagraveo đoacute vagraveo một phần tử khaacutec
Kết tập (Aggregation) Một dạng của nối kết trong đoacute một phần
tử nagravey chứa caacutec phần tử khaacutec
Ngoagravei ra cograven coacute caacutec phần tử mocirc higravenh khaacutec như thocircng điệp (Message) hagravenh động
(action) vagrave khuocircn mẫu (stereotype) Tất cả caacutec phần tử mocirc higravenh yacute nghĩa của
chuacuteng cũng như những ứng dụng đều được giải thiacutech kỹ lưỡng hơn trong caacutec
chương sau
Higravenh 312 ndash caacutec viacute dụ về vagravei loại quan hệ
6- CƠ CHẾ CHUNG (GENERAL MECHANISM)
UML thể hiện một số caacutec cơ chế chung trong tất cả caacutec biểu đồ nhằm mục điacutech
cung cấp thecircm caacutec thocircng tin bổ sung thường đacircy lagrave những thocircng tin khocircng thể
được thể hiện qua caacutec chức năng vagrave khả năng cơ bản của caacutec phần tử mocirc higravenh
61- Trang triacute (Adornment)
Caacutec sự trang triacute trực quan coacute thể được sử dụng kegravem thecircm vagraveo caacutec phần tử mocirc
higravenh trong biểu đồ Động taacutec trang triacute bổ sung thecircm ngữ nghĩa cho phần tử Một
viacute dụ lagrave kỹ thuật được sử dụng để phacircn biệt một loại thực thể (lớp) vagrave một thực
thể Khi thể hiện một loại tecircn phần tử sẽ được in đậm Khi cũng chiacutenh phần tử
đoacute thể hiện chỉ một thực thể của loại nagravey tecircn phần tử sẽ được gạch dưới vagrave coacute
thể được coi lagrave cả tecircn của thực thể lẫn tecircn của loại đoacute Một higravenh chữ nhật thể
hiện lớp với tecircn được in đậm sẽ thể hiện một lớp vagrave tecircn được gạch dưới sẽ thể
CuuDuongThanCongcom httpsfbcomtailieudientucntt
hiện một đối tượng đacircy lagrave một viacute dụ tiecircu biểu của adornment Cũng nguyecircn tắc
đoacute được aacutep dụng cho caacutec nuacutet mạng khi kyacute hiệu nuacutet được in đậm lagrave thể hiện một
loại nuacutet viacute dụ như maacutey in (Printer) khi kyacute hiệu được gạch dưới lagrave thể hiện một
thực thể của lớp nuacutet mạng nagravey viacute dụ Johnrsquos HP 5MP-printer Caacutec kiểu trang triacute
khaacutec lagrave caacutec lời đặc tả về số lượng trong quan hệ (multiplicity) nơi số lượng lagrave
một số hay một khoảng số chỉ ra bao nhiecircu thực thể của caacutec loại thực thể được
nối với nhau sẽ coacute thể tham gia trong một quan hệ Kiacute hiệu trang triacute được viết
gần phần tử mocirc higravenh được magrave noacute bổ sung thocircng tin (higravenh 313)
Higravenh 313 - Phacircn biệt giữa lớp vagrave đối tượng bằng trang triacute
62- Ghi chuacute (Note)
Cho dugrave một ngocircn ngữ mocirc higravenh hoacutea coacute được mở rộng đến bao nhiecircu chăng nữa
noacute cũng khocircng thể định nghĩa tất cả mọi việc Nhằm tạo điều kiện bổ sung thecircm
cho một mocirc higravenh những thocircng tin khocircng thể được thể hiện bằng phần tử mocirc higravenh
UML cung cấp khả năng kegravem theo lời ghi chuacute Một lời ghi chuacute coacute thể được để bất
kỳ nơi nagraveo trong bất kỳ biểu đồ nagraveo vagrave noacute coacute thể chứa bất kỳ loại thocircng tin nagraveo
Dạng thocircng tin của bản thacircn noacute lagrave chuỗi kyacute tự (string) khocircng được UML diễn giải
Lời ghi chuacute thường đi kegravem theo một số caacutec phần tử mocirc higravenh trong biểu đồ được
nối bằng một đường chấm chấm chỉ ra phần tử mocirc higravenh nagraveo được chi tiết hoacutea
hoặc được giải thiacutech (higravenh 314)
Một lời ghi chuacute thường chứa lời nhận xeacutet hoặc caacutec cacircu hỏi của nhagrave tạo mocirc higravenh
viacute dụ lời nhắc nhở cần phải xử lyacute vấn đề nagraveo đoacute trong thời gian sau nagravey Lời ghi
chuacute cũng coacute thể chứa caacutec thocircng tin dạng khuocircn mẫu (stereotype)
Higravenh 314 - Một viacute dụ về ghi chuacute
63- Đặc tả (Specification)
Caacutec phần tử mocirc higravenh coacute thuộc tiacutenh (Property) chứa caacutec giaacute trị dữ liệu về phần tử
nagravey Một thuộc tiacutenh được định nghĩa với một tecircn vagrave một giaacute trị điacutenh kegravem (tagged
value) thường chuacuteng ở trong một dạng thocircng tin được xaacutec định trước viacute dụ như
số nguyecircn hay chuỗi kiacute tự Coacute một loạt thuộc tiacutenh đatilde được định nghĩa trước viacute dụ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
như tagravei liệu (docement) traacutech nhiệm (Responsibility) sự trường tồn (Persistence)
vagrave tiacutenh song song (Conccurency)
Thuộc tiacutenh được sử dụng để thecircm caacutec đặc tả bổ sung về một phần tử những
thocircng tin bigravenh thường ra khocircng được thể hiện trong biểu đồ Viacute dụ tiecircu biểu lagrave
một lớp sẽ được miecircu tả bằng một tagravei liệu văn bản nhất định cung cấp nhiều
thocircng tin hơn về traacutech nhiệm cũng như khả năng của lớp nagravey Loại đặc tả nagravey
bigravenh thường ra khocircng được chỉ ra trong caacutec biểu đồ nhưng thường thigrave trong đa
phần caacutec cocircng cụ mocirc higravenh hoacutea chuacuteng sẽ coacute thể được truy cập qua hagravenh động
nhấp nuacutet vagraveo một phần tử nagraveo đoacute hiệu quả lagrave một cửa sổ chứa đặc tả với tất cả
caacutec thuộc tiacutenh sẽ được chỉ ra (Higravenh 315)
Higravenh 315- Một cửa sổ đặc tả thể hiện caacutec đặc tiacutenh của class
7- MỞ RỘNG UML
UML coacute thể được mở rộng hoặc coacute thể được sửa đổi để phugrave hợp với một phương
phaacutep đặc biệt một tổ chức cụ thể hay một người dugraveng cụ thể Chuacuteng ta sẽ bagraven
luận sơ qua đến ba cơ chế mở rộng UML khuocircn mẫu (stereotype) giaacute trị điacutenh
kegravem (tagged value) vagrave hạn chế (constraint)
71- Khuocircn mẫu (Stereotype)
Cơ chế mở rộng khuocircn mẫu định nghĩa một loại phần tử mocirc higravenh mới dựa trecircn
một phần tử mocirc higravenh đatilde tồn tại Khuocircn mẫu coacute thể được coi lagrave tương tự như
một phần tử đatilde coacute sẵn cộng thecircm phần quy định ngữ nghĩa (semantic) riecircng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
biệt khocircng coacute trong phần tử gốc kia Khuocircn mẫu của một phần tử coacute thể được sử
dụng trong cugraveng tigravenh huống như phần tử căn bản Khuocircn mẫu dựa trecircn tất cả caacutec
loại phần tử mocirc higravenh sẵn coacute - lớp nuacutet mạng thagravenh phần cũng như caacutec mối quan
hệ như liecircn kết khaacutei quaacutet hoacutea sự phụ thuộc Ngocircn ngữ UML coacute chứa một số
lượng lớn caacutec khuocircn mẫu được định nghĩa sẵn vagrave chuacuteng được sử dụng để sửa đổi
caacutec phần tử mocirc higravenh sẵn coacute thay cho việc phải định nghĩa hoagraven toagraven mới Cơ chế
nagravey giuacutep gigraven giữ tiacutenh đơn giản của nền tảng ngocircn ngữ UML
Khuocircn mẫu được miecircu tả qua việc đưa tecircn của chuacuteng vagraveo trong một cặp kyacute tự
ngoặc nhọn ltltgtgt theo như trong higravenh 316 Kyacute tự ngoặc nhọn nagravey được gọi lagrave
guillements Khuocircn mẫu cũng coacute thể coacute kiacute hiệu higravenh học riecircng Một phần tử của
một loại khuocircn mẫu cụ thể coacute thể được thể hiện bởi tecircn khuocircn mẫu đi kegravem kyacute
hiệu higravenh học mocirc tả phần tử căn bản hay lagrave sự kết hợp của cả hai yếu tố nagravey
Bất kỳ khi nagraveo một phần tử mocirc higravenh được nối kết với một tecircn hoặc kiacute hiệu khuocircn
mẫu ta sẽ đọc đacircy lagrave một loại phần tử thuộc loại khuocircn mẫu Viacute dụ một lớp
với ltltWindowgtgt sẽ được gọi lagrave một lớp trong dạng khuocircn mẫu cửa sổ yacute
nghĩa của noacute lagrave một dạng lớp cửa sổ Những thuộc tiacutenh cụ thể magrave một lớp cửa sổ
cần phải coacute sẽ được định nghĩa khi khuocircn mẫu nagravey được định nghĩa
Như đatilde noacutei khuocircn mẫu lagrave một cơ chế mở rộng xuất sắc lagrave một cơ chế ngăn cho
ngocircn ngữ UML khocircng trở necircn quaacute phức tạp mặc dugrave vẫn cho pheacutep thực hiện sự
mở rộng vagrave sửa đổi cần thiết Đa phần caacutec phần tử mocirc higravenh mới magrave bạn cần đến
đều coacute một khuocircn mẫu nền tảng trong ngocircn ngữ UML Một khuocircn mẫu sau đoacute coacute
thể được sử dụng để cộng thecircm caacutec ngữ nghĩa cần thiết nhằm mục điacutech định
nghĩa necircn caacutec phần tử mocirc higravenh cograven thiếu
Higravenh 316- Customer lagrave một lớp khuocircn mẫu ltltActorgtgt
72- Giaacute trị điacutenh kegravem (Tagged Value)
Như đatilde noacutei caacutec phần tử mocirc higravenh coacute thể coacute caacutec thuộc tiacutenh chứa một cặp tecircn-giaacute
trị về bản thacircn chuacuteng (higravenh 317) Caacutec thuộc tiacutenh nagravey cũng cograven được gọi lagrave caacutec
giacutea trị điacutenh kegravem UML coacute chứa một loạt caacutec thuộc tiacutenh được định nghĩa trước
nhưng kể cả người sử dụng cũng coacute thể định nghĩa ra caacutec thuộc tiacutenh mới để chứa
caacutec thocircng tin bổ sung về caacutec phần tử mocirc higravenh Mọi higravenh dạng thocircng tin đều coacute
thể được điacutenh kegravem vagraveo phần tử caacutec thocircng tin chuyecircn biệt về phương phaacutep caacutec
thocircng tin của nhagrave quản trị về tiến trigravenh mocirc higravenh hoacutea caacutec thocircng tin được sử dụng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
bởi caacutec cocircng cụ khaacutec viacute dụ như caacutec cocircng cụ tạo code hay bất kỳ một loại thocircng
tin nagraveo magrave người sử dụng muốn điacutenh kegravem vagraveo phần tử mocirc higravenh
Higravenh 317 - Một viacute dụ về Tagged Value
73- Hạn chế (Constraint)
Một sự hạn chế lagrave một sự giới hạn về sự sử dụng hoặc yacute nghĩa của một phần tử
Sự hạn chế hoặc sẽ được khai baacuteo trong cocircng cụ vagrave được sử dụng nhiều lần trong
rất nhiều biểu đồ khaacutec nhau hay được định nghĩa vagrave sử dụng trong chỉ một biểu
đồ theo như nhu cầu
Higravenh 318 chỉ ra mối quan hệ nối kết giữa nhoacutem caacutec cocircng dacircn lớn tuổi vagrave lớp con
người chỉ ra rằng nhoacutem cocircng dacircn coacute thể coacute nhiều người liecircn quan Mặc dugrave vậy
để miecircu tả rằng chỉ những người nagraveo lớn hơn 60 tuổi mới coacute thể tham gia vagraveo
nhoacutem nagravey người ta định nghĩa một sự hạn chế hạn hẹp tiecircu chuẩn tham gia đối
với chỉ những người nagraveo magrave thuộc tiacutenh tuổi taacutec coacute giaacute trị lớn hơn 60 Định nghĩa
nagravey sẽ hạn chế số lượng những người được sử dụng trong mối quan hệ Nếu
khocircng coacute noacute người ta rất dễ hiểu lầm khi diễn tả biểu đồ Trong trường hợp tồi
tệ noacute coacute thể dẫn đến sự thực thi sai traacutei của hệ thống
Trong trường hợp nagravey hạn chế được định nghĩa vagrave ứng dụng trực tiếp trong
chiacutenh biểu đồ magrave noacute được cần tới Nhưng nhigraven chung thigrave hạn chế cũng coacute thể
được định nghĩa với tecircn cugraveng lời đặc tả riecircng viacute dụ như cocircng dacircn giagrave vagrave
người coacute tuổi lớn hơn 60 vagrave hạn chế nagravey sẽ được sử dụng trong nhiều biểu đồ
khaacutec nhau UML coacute chứa một loạt caacutec hạn chế được định nghĩa sẵn chuacuteng được
miecircu tả chi tiết trong caacutec chương sau
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 318- Một ragraveng buộc hạn chế đối tượng Person goacutep phần vagraveo quan hệ kết
hợp
8- MOcirc HIgraveNH HOacuteA VỚI UML
Khi xacircy dựng hệ thống với UML người ta khocircng chỉ xacircy dựng duy nhất một mocirc
higravenh Sẽ coacute nhiều mocirc higravenh khaacutec nhau trong những giai đoạn phaacutet triển khaacutec nhau
nhắm đến caacutec mục điacutech khaacutec nhau Trong giai đoạn phacircn tiacutech mục điacutech của mocirc
higravenh lagrave nắm bắt tất cả caacutec yecircu cầu đối với hệ thống vagrave mocirc higravenh hoacutea nền tảng bao
gồm caacutec lớp vagrave caacutec cộng taacutec đời thực Trong giai đoạn thiết kế mục điacutech của
mocirc higravenh lagrave mở rộng mocirc higravenh phacircn tiacutech tạo thagravenh một giải phaacutep kỹ thuật khả thi
coacute chuacute yacute đến mocirci trường của cocircng việc xacircy dựng (viết code) Trong giai đoạn xacircy
dựng code mocirc higravenh chiacutenh lagrave những dograveng code nguồn thật sự được viết necircn vagrave
được dịch thagravenh caacutec chương trigravenh Vagrave cuối cugraveng trong giai đoạn triển khai một
lời miecircu tả sẽ giải thiacutech hệ thống cần được triển khai ra sao trong kiến truacutec vật lyacute
Khả năng theo dotildei xuyecircn suốt nhiều giai đoạn vagrave nhiều mocirc higravenh khaacutec nhau được
đảm bảo qua caacutec thuộc tiacutenh hoặc caacutec mối quan hệ nacircng cao (refinement)
Mặc dugrave đoacute lagrave caacutec mocirc higravenh khaacutec nhau nhưng chuacuteng đều được xacircy dựng necircn để
mở rộng nội dung của caacutec mocirc higravenh ở giai đoạn trước Chiacutenh vigrave thế tất cả caacutec mocirc
higravenh đều cần phải được gigraven giữ tốt để người ta coacute thể dễ dagraveng đi ngược lại mở
rộng ra hay taacutei thiết lập mocirc higravenh phacircn tiacutech khởi đầu vagrave rồi dần dần từng bước
đưa caacutec sự thay đổi vagraveo mocirc higravenh thiết kế cũng như caacutec mocirc higravenh xacircy dựng (higravenh
319)
Higravenh 319- Một hệ thống được mocirc tả trong nhiều mocirc higravenh
Bản thacircn ngocircn ngữ UML khocircng phụ thuộc vagraveo giai đoạn coacute nghĩa lagrave cũng những
nguyecircn tắc ngocircn ngữ đoacute vagrave cũng những biểu đồ đoacute được sử dụng để mocirc higravenh hoacutea
những sự việc khaacutec nhau trong những giai đoạn khaacutec nhau Nhagrave thiết kế nắm
quyền quyết định xem một mocirc higravenh sẽ phải thay đổi nhằm đạt được những mục
điacutech nagraveo vagrave bao trugravem những phạm vi nagraveo Ngocircn ngữ mocirc higravenh hoacutea chỉ cung cấp
khả năng để tạo ra caacutec mocirc higravenh trong một phong caacutech mở rộng vagrave nhất quaacuten
Khi mocirc higravenh hoacutea bằng ngocircn ngữ UML toagraven bộ cocircng việc cần phải được thực hiện
theo một phương phaacutep hay một qui trigravenh xaacutec định rotilde những bước cocircng việc nagraveo
phải được tiến hagravenh vagrave chuacuteng phải được thực thi ra sao Một qui trigravenh như vậy
CuuDuongThanCongcom httpsfbcomtailieudientucntt
thường sẽ chia cocircng việc ra thagravenh caacutec vograveng lặp kế tiếp mỗi vograveng lặp bao gồm
caacutec cocircng việc phacircn tiacutech yecircu cầu phacircn tiacutech thiết kế thực hiện triển khai Mặc
dugrave vậy cũng coacute một quy trigravenh nhỏ hơn đề cập tới nội dung của việc mocirc higravenh hoacutea
Bigravenh thường ra khi sản xuất một mocirc higravenh hoặc sản xuất chỉ một biểu đồ duy
nhất cocircng việc sẽ bắt đầu bằng việc thu thập một nhoacutem thiacutech hợp caacutec caacute nhacircn
khaacutec nhau trigravenh bagravey vấn đề vagrave mục tiecircu họ cộng taacutec cho một giai đoạn hội thảo
khoa học vagrave phaacutec thảo trao đổi những saacuteng kiến vagrave yacute tưởng về mocirc higravenh coacute thể
Cocircng cụ được sử dụng trong giai đoạn nagravey lagrave hết sức khaacutec biệt vagrave mang tiacutenh
ngẫu hứng - thường lagrave giấy daacuten post it hay bảng trắng Cocircng việc được quyết
định chừng nagraveo những người tham gia coacute cảm giaacutec họ đatilde coacute được một nền tảng
thực tiễn cho một mocirc higravenh (giống như một tiecircu đề) Kết quả sau đoacute sẽ được đưa
vagraveo một cocircng cụ mocirc higravenh tiecircu đề được tổ chức vagrave sau đoacute một biểu đồ thực sự
sẽ được tạo dựng necircn phugrave hợp với những quy định của ngocircn ngữ mocirc higravenh hoacutea
Sau đoacute mocirc higravenh được chi tiết hoacutea qua những cocircng việc mang tiacutenh vograveng lặp cagraveng
ngagravey cagraveng coacute nhiều chi tiết về giải phaacutep được phaacutet hiện được dữ liệu hoacutea vagrave
được bổ sung Khi đatilde coacute nhiều thocircng tin hơn được thu thập về vấn đề cũng như
giải phaacutep của noacute tiecircu đề ban đầu dần dần trở thagravenh một lời chuẩn đoaacuten cho một
mocirc higravenh coacute khả năng sử dụng Khi mocirc higravenh đatilde gần hoagraven thiện một sự tiacutech hợp
vagrave thẩm định sẽ được thực hiện dẫn tới việc mocirc higravenh hoặc biểu đồ sẽ được tiacutech
hợp với những mocirc higravenh vagrave biểu đồ khaacutec trong cugraveng dự aacuten để đảm bảo sự nhất
quaacuten Mocirc higravenh sau đoacute cũng được kiểm tra lại để chắc chắn noacute đang giải quyết
đuacuteng vấn đề cần giải quyết (higravenh 320)
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 320 - Một tiến trigravenh cho cocircng việc mocirc higravenh hoaacute thực tế
Cuối cugraveng mocirc higravenh sẽ được thực thi vagrave triển khai thagravenh một loạt caacutec nguyecircn
mẫu (prototype) nguyecircn mẫu nagravey sẽ được kiểm tra để tigravem khiếm khuyết Caacutec
khiếm khuyết bao gồm kể cả caacutec chức năng cograven thiếu sự thực hiện tồi tệ hay phiacute
sản xuất vagrave phaacutet triển quaacute cao Những khiếm khuyết thường sẽ eacutep nhagrave phaacutet triển
ragrave đi ragrave lại cocircng việc của migravenh để khắc phục chuacuteng Nếu vấn đề lagrave quaacute lớn nhagrave
phaacutet triển coacute thể sẽ đi ngược lại tất cả caacutec bước cocircng việc của migravenh cho tới tận
giai đoạn sơ phaacutec đầu tiecircn Nếu caacutec vấn đề nagravey khocircng lớn nhagrave phaacutet triển coacute lẽ
chỉ cần thay đổi một vagravei thagravenh phần trong tổ chức hoặc đặc tả của mocirc higravenh Xin
nhớ rằng bước tạo nguyecircn mẫu khocircng thể được thực hiện ngay lập tức sau khi
hoagraven tất biểu đồ noacute chỉ necircn được thực hiện khi đatilde coacute một số lượng lớn caacutec biểu
đồ liecircn quan Nguyecircn mẫu sau nagravey coacute thể được vứt đi coacute thể được tạo dựng necircn
chỉ để nhằm mục điacutech kiểm tra hoặc lagrave nếu bước tạo nguyecircn mẫu nagravey thagravenh
cocircng noacute sẽ trở thagravenh một vograveng lặp trong quy trigravenh phaacutet triển thật sự
CuuDuongThanCongcom httpsfbcomtailieudientucntt
9- COcircNG CỤ (TOOL)
Sử dụng một ngocircn ngữ mocirc higravenh hoacutea phức tạp vagrave rộng mở như UML cần thiết sự
trợ giuacutep của cocircng cụ Mặc dugrave phaacutec thảo đầu tiecircn của một mocirc higravenh coacute thể được
thực hiện bằng bảng trắng cugraveng giấy vagrave mực nhưng cocircng việc bảo trigrave đồng bộ
hoacutea vagrave đảm bảo sự nhất quaacuten trong một loạt caacutec biểu đồ khaacutec nhau thường lại
khocircng thể trở thagravenh khả thi nếu khocircng coacute cocircng cụ
Thị trường cocircng cụ mocirc higravenh hoacutea đatilde dừng trong mức độ sơ khởi suốt một thời gian
dagravei kể từ khi xuất hiện yacute tưởng đầu tiecircn về caacutec chương trigravenh trợ giuacutep cho việc tạo
chương trigravenh Rất nhiều cocircng cụ trong thực tế chỉ thocircng minh hơn caacutec chương
trigravenh vẽ một chuacutet sử dụng một vagravei quy chế kiểm tra tiacutenh nhất quaacuten hoặc một vagravei
kiến thức về phương phaacutep vagrave ngocircn ngữ mocirc higravenh hoacutea Mặc dugrave đatilde coacute một vagravei bước
tiến nhất định vagrave nhiều cocircng cụ hocircm nay đatilde tới gần saacuteng kiến khởi thủy kia
nhiều hơn (Rational Rose) nhưng thị trường vẫn cograven khocircng iacutet cocircng cụ chưa được
gọt giũa vẫn cograven chứa lỗi hoặc những neacutet kỳ quặc kể cả những vấn đề đơn giản
như copy vagrave daacuten Những cocircng cụ nagravey cograven hạn chế ở phương diện rằng tất cả bọn
chuacuteng đều coacute ngocircn ngữ mocirc higravenh hoacutea riecircng hay iacutet nhất thigrave cũng coacute những định
nghĩa riecircng của chuacuteng về ngocircn ngữ nagravey
Cugraveng với sự ra đời của ngocircn ngữ UML caacutec nhagrave cung cấp cocircng cụ mocirc higravenh hoacutea giờ
đacircy coacute thể dagravenh nhiều thời gian hơn cho việc nacircng cấp cocircng cụ bởi họ khocircng cần
phải dồn tacircm dồn sức cho việc định nghĩa caacutec phương phaacutep mới cũng như caacutec
ngocircn ngữ mới
Một cocircng cụ mocirc higravenh hoacutea hịecircn đại cần phải cung cấp caacutec chức năng sau
Vẽ biểu đồ cần phải tạo điều kiện dễ dagraveng vẽ ra caacutec biểu đồ
trong ngocircn ngữ mocirc higravenh hoacutea Cocircng cụ cần phải đủ khả năng thocircng
minh để hiểu mục điacutech của caacutec biểu đồ vagrave biết được những ngữ
nghĩa cũng như caacutec quy tắc đơn giản đủ để noacute coacute thể cảnh baacuteo
hoặc ngăn chặn việc sử dụng khocircng thiacutech hợp caacutec phần tử mocirc higravenh
Hoạt động như một nhagrave kho (Repository) cocircng cụ cần phải
hỗ trợ một nhagrave kho trung tacircm để tất cả caacutec thocircng tin về mocirc higravenh
được lưu trữ trong cugraveng một chỗ Nếu viacute dụ tecircn của một lớp bị thay
đổi trong một biểu đồ thigrave sự thay đổi nagravey cần phải xảy ra trong tất
cả caacutec biểu đồ khaacutec coacute sử dụng lớp nagravey
Hỗ trợ định hướng (Navigation) cocircng cụ cần phải tạo điều
kiện dễ dagraveng cho người sử dụng định hướng vagrave chuyển dịch trong
mocirc higravenh để theo dotildei một phần tử từ biểu đồ nagravey sang biểu đồ khaacutec
hoặc để mở rộng lời miecircu tả của một phần tử
Hỗ trợ nhiều người sử dụng (multiuser support) Cocircng cụ
cần hỗ trợ cho nhiều người sử dụng vagrave tạo điều kiện cho họ cugraveng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
lagravem việc với một mocirc higravenh magrave khocircng ngăn chặn hoặc quấy phaacute lẫn
nhau
Tự động tạo code (code generate) một cocircng cụ cao cấp cần
phải coacute khả năng tạo ra code nơi tất cả caacutec thocircng tin trong mocirc higravenh
được chuyển tải thagravenh caacutec khung code (code skeletons) được sử
dụng lagravem nền tảng cho giai đoạn xacircy dựng chương trigravenh
Taacutei tạo mocirc higravenh (Reserve engineer) Một cocircng cụ cao cấp cần
phải coacute khả năng đọc những thagravenh phần code đang tồn tại vagrave từ đoacute
sản xuất ra mocirc higravenh Từ đoacute suy ra một mocirc higravenh coacute thể được lagravem từ
những dograveng code đatilde tồn tại hoặc một nhagrave phaacutet triển coacute thể dễ
dagraveng chuyển đi chuyển về giữa cocircng việc mocirc higravenh hoacutea vagrave cocircng việc
lập trigravenh
Tiacutech hợp với caacutec cocircng cụ khaacutec một cocircng cụ cần phải coacute khả
năng tiacutech hợp với những cocircng cụ khaacutec với cả việc phaacutet triển mocirci
trường viacute dụ như caacutec trigravenh soạn thảo (editor) chương trigravenh dịch
(compiler) chương trigravenh tigravem lỗi (debugger) cũng như caacutec cocircng cụ
của doanh nghiệp khaacutec như cocircng cụ quản trị cấu higravenh hệ thống
theo dotildei caacutec phiecircn bản
Bao quaacutet mocirc higravenh ở tất cả caacutec mức độ trừu tượng hoacutea khaacutec
nhau cocircng cụ cần phải dễ chuyển tải từ lời miecircu tả ở cấp trừu
tượng hoacutea cao nhất của hệ thống (tức lagrave ở dạng một lượng caacutec goacutei
khaacutec nhau) đi xuống cho tới cấp của những dograveng code thật sự Sau
đoacute để truy xuất những dograveng lệnh code cho một thủ tục cụ thể nagraveo
đoacute trong một lớp nagraveo đoacute bạn coacute thể chỉ cần nhấp chuột vagraveo tecircn của
thủ tục đoacute trong một biểu đồ
Trao đổi mocirc higravenh Một mocirc higravenh hay một biểu đồ của một mocirc
higravenh nagraveo đoacute cần phải coacute khả năng được xuất ra từ một cocircng cụ nagravey
rồi nhập vagraveo một cocircng cụ khaacutec giống như những dograveng lệnh code
được sản sinh trong một cocircng cụ nagravey coacute thể được sử dụng trong một
cocircng cụ khaacutec Nguyecircn tắc trao đổi đoacute cần phải được aacutep dụng cho
caacutec mocirc higravenh trong một ngocircn ngữ mocirc higravenh hoacutea được định nghĩa chiacutenh
xaacutec
10- TOacuteM TẮT VỀ UML
UML tổ chức một mocirc higravenh thagravenh một loạt caacutec hướng nhigraven thể hiện caacutec khiacutea cạnh
khaacutec nhau của hệ thống Chỉ khi kết hợp tất cả caacutec hướng nhigraven lại với nhau
người ta mới co được một bức tranh trọn vẹn về hệ thống Một hướng nhigraven khocircng
phải lagrave một higravenh vẽ nội dung của noacute được miecircu tả qua caacutec biểu đồ đacircy lagrave những
higravenh vẽ chứa đựng caacutec phần tử mocirc higravenh hoacutea Một biểu đồ bigravenh thường chỉ trigravenh
bagravey một phần nội dung của một hướng nhigraven vagrave một hướng nhigraven được định nghĩa
CuuDuongThanCongcom httpsfbcomtailieudientucntt
với rất nhiều biểu đồ Một biểu đồ chứa caacutec phần tử mocirc higravenh viacute dụ như lớp đối
tượng nuacutet mạng thagravenh phần vagrave những mối quan hệ như nối kết khaacutei quaacutet hoacutea
phụ thuộc Caacutec phần tử nagravey coacute yacute nghĩa (semantic) vagrave caacutec kyacute hiệu higravenh học
Caacutec loại biểu đồ trong UML lagrave biểu đồ lớp biểu đồ đối tượng biểu đồ Use case
biểu đồ trạng thaacutei biểu đồ trigravenh tự biểu đồ cộng taacutec biểu đồ hagravenh động biểu đồ
thagravenh phần vagrave biểu đồ triển khai Mục điacutech của caacutec loại biểu đồ cũng như quy tắc
vẽ chuacuteng sẽ được miecircu tả chi tiết trong chương sau
UML coacute một số cơ chế chung để bổ sung thocircng tin khocircng thể được thể hiện trong
quaacute trigravenh vẽ biểu đồ Những thocircng tin nagravey bao gồm viacute dụ những thagravenh phần
trang triacute caacutec lời ghi chuacute coacute thể chứa bất kỳ loại thocircng tin nagraveo cũng như caacutec thuộc
tiacutenh đặc tả Ngoagravei ra cograven coacute caacutec cơ chế mở rộng bao gồm giaacute trị điacutenh kegravem hạn
chế đối với phần tử vagrave khuocircn mẫu định nghĩa một loại phần tử mocirc higravenh mới dựa
trecircn một phần tử sẵn coacute
Một hệ thống sẽ được miecircu tả trong nhiều loại mocirc higravenh khaacutec nhau mỗi loại mocirc
higravenh nhằm một mục điacutech khaacutec nhau Mocirc higravenh phacircn tiacutech miecircu tả những yecircu cầu
về mặt chức năng vagrave mocirc higravenh hoacutea caacutec lớp ngoagravei đời thực Mocirc higravenh thiết kế
chuyển tải kết quả phacircn tiacutech thagravenh một giải phaacutep kỹ thuật theo khaacutei niệm của
một thiết kế phần mềm hoạt động hoagraven chỉnh Mocirc higravenh xacircy dựng code thể hiện
hệ thống qua việc thảo chương cho noacute trong một ngocircn ngữ lập trigravenh hướng đối
tượng Vagrave cuối cugraveng mocirc higravenh triển khai định vị chương trigravenh vừa được tạo necircn
trong một kiến truacutec vật lyacute bao gồm caacutec maacutey tiacutenh vagrave caacutec trang thiết bị Cocircng việc
được lagravem theo nhiều vograveng lặp khaacutec nhau chứ khocircng phải chỉ lagrave một chuỗi thực
hiện một lần
Để sử dụng UML một caacutech nghiecircm chỉnh cho một dự aacuten coacute thật ngoagravei đời bạn
cần cocircng cụ Một cocircng cụ tacircn tiến coacute khả năng cho người dugraveng vẽ biểu đồ trữ tất
cả caacutec thocircng tin vagraveo một kho chung cho pheacutep dễ dagraveng dịch chuyển giữa caacutec
hướng nhigraven vagrave biểu đồ khaacutec nhau trong mocirc higravenh tạo baacuteo caacuteo vagrave tagravei liệu tạo
khung code từ mocirc higravenh đọc những dograveng code sẵn coacute rồi sản sinh ra mocirc higravenh từ
đoacute vagrave dễ dagraveng tiacutech hợp với caacutec cocircng cụ phaacutet triển khaacutec
PHẦN CAcircU HỎI
Hỏi UML coacute cocircng cụ nagraveo giuacutep nắm bắt caacutec yecircu cầu của khaacutech hagraveng (người sử
dụng)
Đaacutep Use Case
Hỏi Một biểu đồ trong UML coacute bao chứa caacutec hướng nhigraven khaacutec nhau
Đaacutep Sai một hướng nhigraven bao gồm một loại caacutec biểu đồ khaacutec nhau
Hỏi Hatildey liệt kecirc caacutec thagravenh phần chủ yếu của ngocircn ngữ UML
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Đaacutep Hướng nhigraven( View) Biểu đồ (Diagram) Phần tử mocirc higravenh Cơ chế
chung
Hỏi UML coacute cocircng cụ nagraveo phục vụ cho giai đoạn thử nghiệm đơn vị (Unit
Testing)
Đaacutep Biểu đồ lớp vagrave đặc tả lớp
Hỏi UML coacute cocircng cụ nagraveo phục vụ cho giai đoạn thử nghiệm hệ thống (System
Testing)
Đaacutep Use case Diagram
Hỏi UML tạo nền tảng cho việc giao tiếp giữa khaacutech hagraveng nhagrave phacircn tiacutech nhagrave
thiết kế vagrave lập trigravenh viecircn
Đaacutep Đuacuteng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Chƣơng 4 Mocirc higravenh hoacutea USE CASE
1- GIỚI THIỆU USE CASE
Trong giai đoạn phacircn tiacutech người sử dụng cộng taacutec cugraveng nhoacutem phaacutet triển phần
mềm tạo necircn một tổ hợp thocircng tin quan trọng về yecircu cầu đối với hệ thống
Khocircng chỉ lagrave người cung cấp thocircng tin bản thacircn người sử dụng cograven lagrave một thagravenh
phần hết sức quan trọng trong bức tranh toagraven cảnh đoacute vagrave nhoacutem phaacutet triển cần
phải chỉ ra được phương thức hoạt động của hệ thống tương lai theo hướng nhigraven
của người sử dụng Hiểu được điểm quan trọng nagravey lagrave chigravea khoacutea để tạo dựng
được những hệ thống vừa thoả matilden caacutec yecircu cầu đặt ra vừa dễ dagraveng sử dụng
thậm chiacute tạo niềm vui thiacutech trong sử dụng
Như vậy cocircng cụ giuacutep ta mocirc higravenh hoaacute hệ thống từ hướng nhigraven của người sử dụng
gọi lagrave Use Case Vagrave để trả lời rotilde hơn về Use Case ta xeacutet một trường hợp sau
Giả sử tocirci quyết định mua một chiếc maacutey fax mới Khi đến cửa hagraveng maacutey văn
phograveng tocirci mới nhận ra lagrave phải chọn lựa trong một danh saacutech maacutey moacutec rất phong
phuacute Loại maacutey nagraveo sẽ được chọn đacircy Tocirci tự hỏi thật chiacutenh xaacutec migravenh muốn lagravem gigrave
với chiếc maacutey fax sẽ mua Tocirci muốn coacute những tiacutenh năng nagraveo Tocirci muốn dugraveng
bằng giấy thường hay giấy thermal Tocirci muốn copy bằng caacutei maacutey đoacute Tocirci muốn
nối noacute với maacutey tiacutenh của migravenh Tocirci muốn dugraveng noacute vừa lagravem maacutey fax vừa lagravem
scanner Tocirci coacute cần phải gởi fax thật nhanh đến mức độ cần một chức năng chọn
số tăng tốc Liệu tocirci coacute muốn sử dụng maacutey fax nagravey để phacircn biệt giữa một cuacute
điện thoại gọi tới vagrave một bản fax gởi tới
Tất cả chuacuteng ta đều trải qua những kinh nghiệm như vậy khi quyết định mua một
moacuten hagraveng nagraveo đoacute khocircng phải vigrave niềm vui bộc phaacutet Việc chuacuteng ta sẽ lagravem trong
những trường hợp như vậy lagrave một dạng phacircn tiacutech Use Case Chuacuteng ta tự hỏi
migravenh sẽ sử dụng sản phẩm (hay hệ thống) sắp bắt ta bỏ ra một khoản tiền đaacuteng
kể đoacute ra sao Trả lời xong cacircu hỏi trecircn ta mới coacute khả năng chọn ra sản phẩm
thoả matilden những đogravei hỏi của migravenh Điều quan trọng ở đacircy lagrave phải biết những đogravei
hỏi đoacute lagrave gigrave
Loại quy trigravenh nagravey đoacuteng vai trograve rất quan trọng đối với giai đoạn phacircn tiacutech của
một nhoacutem phaacutet triển hệ thống Người dugraveng muốn sử dụng hệ thống tương lai hệ
thống magrave bạn sắp thiết kế vagrave xacircy dựng như thế nagraveo
Use Case lagrave một cocircng cụ trợ giuacutep cho cocircng việc của nhagrave phacircn tiacutech cugraveng người sử
dụng quyết định tiacutenh năng của hệ thống Một tập hợp caacutec Use Case sẽ lagravem nổi
bật một hệ thống theo phương diện những người dugraveng định lagravem gigrave với hệ thống
nagravey
Để lagravem rotilde hơn ta hatildey xeacutet một viacute dụ nhagrave băng lẻ Hệ thống tương lai trong trường
hợp nagravey sẽ soacute nhiều người sử dụng mỗi người sẽ giao tiếp với hệ thống cho một
mục điacutech khaacutec biệt
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Quản trị gia sử dụng hệ thống cho mục điacutech thống kecirc
Nhacircn viecircn tiếp khaacutech sử dụng hệ thống để thực hiện caacutec dịch vụ
phục vụ khaacutech hagraveng
Nhacircn viecircn phograveng đầu tư sử dụng hệ thống để thực hiện caacutec giao
dịch liecircn quan đến đầu tư
Nhacircn viecircn thẩm tra chữ kyacute sử dụng hệ thống cho mục điacutech xaacutec
nhận chữ kyacute vagrave bảo trigrave thocircng tin liecircn quan đến khaacutech hagraveng
Khaacutech hagraveng giao tiếp với hệ thống (nhagrave băng) cho caacutec hoạt động
sử dụng dịch vụ như mở tagravei khoản gửi tiền vagraveo ruacutet tiền mặt hellip
Quaacute trigravenh tương taacutec giữa người sử dụng vagrave hệ thống trong mỗi một tigravenh huống kể
trecircn sẽ khaacutec nhau vagrave phụ thuộc vagraveo chức năng magrave người sử dụng muốn thực thi
cugraveng hệ thống
Nhoacutem phaacutet triển hệ thống cần phải xacircy dựng necircn một kịch bản necircu bật sự tương
taacutec cần thiết giữa người sử dụng vagrave hệ thống trong mỗi khả năng hoạt động Viacute
dụ như kịch bản cho sự tương taacutec giữa nhacircn viecircn thu ngacircn vagrave hệ thống của bộ
phận tiết kiệm trong suốt tiến trigravenh của một giao dịch Một kịch bản khaacutec viacute dụ lagrave
chuỗi tương taacutec xảy ra giữa bộ phận tiết kiệm vagrave bộ phận đầu tư trong một giao
dịch chuyển tiền
Nhigraven chung coacute thể coi một Use case như lagrave tập hợp của một loạt caacutec cảnh kịch
về việc sử dụng hệ thống Mỗi cảnh kịch mocirc tả một chuỗi caacutec sự kiện Mỗi một
chuỗi nagravey sẽ được kiacutech hoạt bởi một người nagraveo đoacute một hệ thống khaacutec hay lagrave một
phần trang thiết bị nagraveo đoacute hoặc lagrave một chuỗi thời gian Những thực thể kiacutech hoạt
necircn caacutec chuỗi sự kiện như thế được gọi lagrave caacutec Taacutec Nhacircn (Actor) Kết quả của
chuỗi nagravey phải coacute giaacute trị sử dụng đối với hoặc lagrave taacutec nhacircn đatilde gacircy necircn noacute hoặc lagrave
một taacutec nhacircn khaacutec
2- MỘT SỐ VIacute DỤ USE CASE
Trong viacute dụ nhagrave băng lẻ ở trecircn một số những Use Case dễ thấy nhất lagrave
Một khaacutech hagraveng mở một tagravei khoản mới
Phograveng đầu tư tiacutenh toaacuten tiền latildei cho caacutec tagravei khoản đầu tư
Một chương trigravenh đầu tư mới được đưa vagraveo aacutep dụng
Yecircu cầu chuyển tiền của khaacutech hagraveng được thực hiện
Chuyển tiền theo kỳ hạn từ một tagravei khoản đầu tư sang một tagravei
khoản tiết kiệm
3- SỰ CẦN THIẾT PHẢI COacute USE CASE
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Use Case lagrave một cocircng cụ xuất sắc để khuyến khiacutech những người dugraveng tiềm năng
noacutei về hệ thống từ hướng nhigraven của họ Đối với người dugraveng chẳng phải bao giờ
việc thể hiện vagrave mocirc tả những yacute định trong việc sử dụng hệ thống cũng lagrave chuyện
dễ dagraveng Một hiện thực coacute thật lagrave người sử dụng thường biết nhiều hơn những gigrave
magrave họ coacute thể diễn tả ra Cocircng cụ Use Case sẽ giuacutep cho nhoacutem phaacutet triển bẻ gatildey
lớp băng đoacute ngoagravei ra một sự trigravenh bagravey trực quan cũng cho pheacutep bạn kết hợp
caacutec biểu đồ Use Case với caacutec loại biểu đồ khaacutec
Saacuteng kiến chủ đạo lagrave locirci cuốn được người dugraveng tham gia vagraveo những giai đoạn đầu
tiecircn của quaacute trigravenh phacircn tiacutech vagrave thiết kế hệ thống Việc nagravey sẽ nacircng cao xaacutec suất
cho việc hệ thống chung cuộc trở thagravenh một cocircng cụ quen thuộc đối với caacutec
người dugraveng magrave noacute dự định sẽ trợ giuacutep ndash thay vigrave lagrave một tập hợp khoacute hiểu vagrave rối
rắm của caacutec khaacutei niệm maacutey tiacutenh magrave người dugraveng trong giới doanh thương coacute cảm
giaacutec khocircng bao giờ hiểu được vagrave khocircng thể lagravem việc cugraveng
Cocircng taacutec locirci keacuteo người sử dụng tham gia tiacutech cực vagraveo quaacute trigravenh phacircn tiacutech lagrave nền
tảng quan trọng cho việc tạo dựng một mocirc higravenh thagravenh cocircng một mocirc higravenh dễ
được người sử dụng hiểu vagrave chấp nhận sau khi đatilde thẩm xaacutec caacutec nhiệm vụ căn
bản Ngoagravei ra Use Case cograven giuacutep nhoacutem phaacutet triển quyết định caacutec lớp magrave hệ
thống phải triển khai
4- MOcirc HIgraveNH HOacuteA USE CASE
Trường hợp sử dụng lagrave một kỹ thuật mocirc higravenh hoacutea được sử dụng để mocirc tả một hệ
thống mới sẽ phải lagravem gigrave hoặc một hệ thống đang tồn tại lagravem gigrave Một mocirc higravenh
Use Case được xacircy dựng qua một quaacute trigravenh mang tiacutenh vograveng lặp (interative)
trong đoacute những cuộc hội thảo bagraven luận giữa nhoacutem phaacutet triển hệ thống vagrave khaacutech
hagraveng (hoặcvagrave người sử dụng cuối) sẽ dẫn tới một đặc tả yecircu cầu được tất cả mọi
người chấp nhận Người cha tinh thần của mocirc higravenh hoacutea Use Case lagrave Ivar
Jacobson ocircng đatilde tạo necircn kỹ thuật mocirc higravenh hoacutea dựa trecircn những kinh nghiệm thu
thập được trong quaacute trigravenh tạo hệ thống AXE của hatildeng Erisson Use Case đatilde nhận
được một sự quan tacircm đặc biệt lớn lao từ phiacutea cộng đồng hướng đối tượng vagrave đatilde
taacutec động lecircn rất nhiều phương phaacutep hướng đối tượng khaacutec nhau
Những thagravenh phần quan trọng nhất của một mocirc higravenh Use Case lagrave Use Case taacutec
nhacircn vagrave hệ thống Ranh giới của hệ thống được định nghĩa qua chức năng tổng
thể magrave hệ thống sẽ thực thi Chức năng tổng thể được thể hiện qua một loạt caacutec
Use Case vagrave mỗi một Use Case đặc tả một chức năng trọn vẹn coacute nghĩa lagrave Use
Case phải thực thi toagraven bộ chức năng đoacute từ sự kiện được kiacutech hoạt đầu tiecircn bởi
một taacutec nhacircn ngoại cảnh cho tới khi chức năng đogravei hỏi được thực hiện hoagraven tất
Một Use Case luocircn luocircn phải cung cấp một giaacute trị nagraveo đoacute cho một taacutec nhacircn giaacute
trị nagravey lagrave những gigrave magrave taacutec nhacircn mong muốn từ phiacutea hệ thống Taacutec nhacircn lagrave bất kỳ
một thực thể ngoại cảnh nagraveo mong muốn tương taacutec với hệ thống Thường thường
đoacute lagrave một người sử dụng của hệ thống nhưng nhiều khi cũng coacute thể lagrave một hệ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
thống khaacutec hoặc lagrave một dạng maacutey moacutec thiết bị phần cứng nagraveo đoacute cần tương taacutec
với hệ thống
Trong kỹ thuật mocirc higravenh hoacutea Use Case hệ thống sẽ coacute higravenh dạng của một hộp
đen vagrave cung cấp caacutec Use Case Hệ thống lagravem điều đoacute như thế nagraveo caacutec Use Case
được thực thi ra sao đoacute lagrave những khiacutea cạnh chưa được đề cập tới trong giai đoạn
nagravey Trong thực tế nếu mocirc higravenh hoacutea Use Case được thực hiện trong những giai
đoạn đầu của dự aacuten thigrave thường nhagrave phaacutet triển sẽ khocircng biết Use Case sau nagravey sẽ
được thực thi (tức lagrave biến thagravenh những dograveng code thật sự) như thế nagraveo
Mục tiecircu chiacutenh yếu đối với caacutec Use Case lagrave
Để quyết định vagrave mocirc tả caacutec yecircu cầu về mặt chức năng của hệ
thống đacircy lagrave kết quả ruacutet ra từ sự thỏa thuận giữa khaacutech hagraveng
(vagravehoặc người sử dụng cuối) vagrave nhoacutem phaacutet triển phần mềm
Để tạo necircn một lời mocirc tả rotilde ragraveng vagrave nhất quaacuten về việc hệ thống
cần phải lagravem gigrave lagravem sao để mocirc higravenh coacute thể được sử dụng nhất quaacuten
suốt toagraven bộ quaacute trigravenh phaacutet triển được sử dụng lagravem cocircng cụ giao
tiếp cho tất cả những người phaacutet triển necircn caacutec yecircu cầu nagravey vagrave để
tạo necircn một nền tảng cho việc tạo necircn caacutec mocirc higravenh thiết kế cung
cấp caacutec chức năng được yecircu cầu
Để tạo necircn một nền tảng cho caacutec bước thử nghiệm hệ thống đảm
bảo hệ thống thỏa matilden đuacuteng những yecircu cầu do người sử dụng đưa
ra Trong thực tế thường lagrave để trả lời cacircu hỏi Liệu hệ thống cuối
cugraveng coacute thực hiện những chức năng magrave khởi đầu khaacutech hagraveng đatilde đề
nghị
Để cung cấp khả năng theo dotildei caacutec yecircu cầu về mặt chức năng được
chuyển thagravenh caacutec lớp cụ thể cũng như caacutec thủ tục cụ thể trong hệ
thống
Để đơn giản hoacutea việc thay đổi vagrave mở rộng hệ thống qua việc thay
đổi vagrave mở rộng mocirc higravenh Use Case sau đoacute chỉ theo dotildei riecircng những
Use Case đatilde bị thay đổi cugraveng những hiệu ứng của chuacuteng trong thiết
kế hệ thống vagrave xacircy dựng hệ thống
Những cocircng việc cụ thể cần thiết để tạo necircn một mocirc higravenh Use Case bao gồm
1 Định nghĩa hệ thống (xaacutec định phạm vi hệ thống)
2 Tigravem ra caacutec taacutec nhacircn cũng như caacutec Use Case
3 Mocirc tả Use Case
4 Định nghĩa mối quan hệ giữa caacutec Use Case
5 Kiểm tra vagrave phecirc chuẩn mocirc higravenh
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Đacircy lagrave một cocircng việc mang tiacutenh tương taacutec rất cao bao gồm những cuộc thảo
luận với khaacutech hagraveng vagrave những người đại diện cho caacutec loại taacutec nhacircn Mocirc higravenh Use
Case bao gồm caacutec biểu đồ Use Case chỉ ra caacutec taacutec nhacircn Use Case vagrave mối quan
hệ của chuacuteng với nhau Caacutec biểu đồ nagravey cho ta một caacutei nhigraven tổng thể về mocirc higravenh
nhưng những lời mocirc tả thực sự của từng Use Case thường lại lagrave văn bản Vigrave caacutec
mocirc higravenh trực quan khocircng thể cung cấp tất cả caacutec thocircng tin cần thiết necircn cần
thiết phải dugraveng cả hai kỹ thuật trigravenh bagravey đoacute
Coacute rất nhiều người quan tacircm đến việc sử dụng caacutec mocirc higravenh Use Case Khaacutech
hagraveng (vagravehoặc người sử dụng cuối) quan tacircm đến chuacuteng vigrave mocirc higravenh Use Case đặc
tả chức năng của hệ thống vagrave mocirc tả xem hệ thống coacute thể vagrave sẽ được sử dụng ra
sao Caacutec Use Case vigrave vậy phải được mocirc tả trong những thuật ngữ vagrave ngocircn ngữ
của khaacutech hagravengngười sử dụng
Nhagrave phaacutet triển cần đến caacutec mocirc higravenh Use Case để hiểu hệ thống cần phải lagravem gigrave
vagrave qua đoacute coacute được một nền tảng cho những cocircng việc tương lai (caacutec mocirc higravenh
khaacutec caacutec cấu truacutec thiết kế vagrave việc thực thi xacircy dựng hệ thống bằng code)
Caacutec nhoacutem chuyecircn gia thử nghiệm tiacutech hợp vagrave thử nghiệm hệ thống cần đến Use
Case để thử nghiệm vagrave kiểm tra xem hệ thống coacute đảm bảo sẽ thực hiện đuacuteng
chức năng đatilde được đặc tả trong giai đoạn đầu
Vagrave cuối cugraveng bất kỳ người nagraveo liecircn quan đến những hoạt động liecircn kết đến chức
năng của hệ thống đều coacute thể quan tacircm đến caacutec mocirc higravenh Use Case viacute dụ như
caacutec nhoacutem tiếp thị baacuten hagraveng hỗ trợ khaacutech hagraveng vagrave caacutec nhoacutem soạn thảo tagravei liệu
Mocirc higravenh Use Case mocirc tả hướng nhigraven Use Case của hệ thống Hướng nhigraven nagravey lagrave
rất quan trọng bởi noacute ảnh hưởng đến tất cả caacutec hướng nhigraven khaacutec của hệ thống
Cả cấu truacutec logic lẫn cấu truacutec physic đều chịu ảnh hưởng từ caacutec Use Case bởi
chức năng được đặc tả trong mocirc higravenh nagravey chiacutenh lagrave những chức năng được thực
thi trong caacutec cấu truacutec kia Mục điacutech cuối cugraveng lagrave thiết kế ra một giải phaacutep thỏa
matilden caacutec yecircu cầu đoacute
Mocirc higravenh hoacutea caacutec Use Case chẳng phải chỉ được dugraveng để nắm bắt caacutec yecircu cầu của
hệ thống mới noacute cũng cograven được sử dụng để hỗ trợ cho việc phaacutet triển một phiecircn
bản mới của hệ thống Khi phaacutet triển một phiecircn bản mới của hệ thống đang tồn
tại người ta sẽ bổ sung thecircm caacutec chức năng mới vagraveo mocirc higravenh Use Case đatilde coacute
bằng caacutech thecircm vagraveo caacutec taacutec nhacircn mới cũng như caacutec Use Case mới hoặc lagrave thay
đổi đặc tả của caacutec Use Case đatilde coacute Khi bổ sung thecircm vagraveo mocirc higravenh Use Case đang
tồn tại hatildey chuacute yacute để khocircng bỏ ra bất kỳ một chức năng nagraveo vẫn cograven được cần tới
5- BIỂU ĐỒ USE CASE
Use Case được mocirc tả trong ngocircn ngữ UML qua biểu đồ Use Case (Use Case
Diagram) vagrave một mocirc higravenh Use Case coacute thể được chia thagravenh một số lượng lớn caacutec
CuuDuongThanCongcom httpsfbcomtailieudientucntt
biểu đồ như thế Một biểu đồ Use Case chứa caacutec phần tử mocirc higravenh biểu thị hệ
thống taacutec nhacircn cũng như Use Case vagrave chỉ ra caacutec mối quan hệ giữa caacutec Use Case
Lời mocirc tả nội dung Use Case thường được cung cấp dưới dạng văn bản Trong
UML lời mocirc tả đoacute được coi lagrave thuộc tiacutenh văn bản (document) của Use Case Lời
mocirc tả nagravey bao chứa những thocircng tin quan trọng định nghĩa caacutec yecircu cầu vagrave chức
năng cụ thể Thay cho việc mocirc tả Use Case bằng văn bản bạn cũng coacute thể vẽ
một biểu đồ hoạt động (activity diagram) Mặc dầu vậy necircn nhớ rằng một Use
Case cần phải được mocirc tả sao cho dễ hiểu vagrave dễ giao tiếp đối với người sử dụng
magrave những cấu truacutec phức tạp như một biểu đồ hoạt động coacute thể gacircy cảm giaacutec xa
lạ đối với những người khocircng quen sử dụng
Toacutem tắt Một biểu đồ Use Case thể hiện
Hệ thống
Taacutec nhacircn vagrave
Use Case
Viacute dụ biểu đồ Use Case trong UML
Higravenh 41- Một viacute dụ biểu đồ Use case trong UML
Trong đoacute
Hệ thống được thể hiện qua higravenh chữ nhật với tecircn hệ thống ở becircn
trecircn
Taacutec nhacircn được thể hiện qua kiacute hiệu higravenh nhacircn
Use Case được thể hiện qua higravenh ellipse
51- Hệ thống
Vigrave hệ thống lagrave một thagravenh phần của mocirc higravenh Use Case necircn ranh giới của hệ thống
magrave ta muốn phaacutet triển cần phải được định nghĩa rotilde ragraveng Xin nhớ rằng một hệ
thống khocircng phải bao giờ cũng nhất thiết lagrave một hệ thống phần mềm noacute coacute thể
lagrave một chiếc maacutey hoặc lagrave một doanh nghiệp Định nghĩa caacutec ranh giới vagrave traacutech
nhiệm của hệ thống khocircng phải bao giờ cũng lagrave việc dễ dagraveng bởi khocircng phải bao
giờ người ta cũng rotilde ragraveng nhigraven ra taacutec vụ nagraveo coacute khả năng được tự động hoacutea tốt
nhất ở hệ thống nagravey vagrave taacutec vụ nagraveo thigrave tốt nhất necircn thực hiện thủ cocircng hoặc dagravenh
CuuDuongThanCongcom httpsfbcomtailieudientucntt
cho caacutec hệ thống khaacutec Một khiacutea cạnh khaacutec cần chuacute yacute lagrave hệ thống cần phải lớn tới
mức độ nagraveo trong phiecircn bản đầu tiecircn của noacute Cố gắng tối đa cho phiecircn bản đầu
tiecircn của hệ thống thường lagrave caacutech magrave người ta hay thực hiện thế nhưng những
mục tiecircu quaacute tầm như vậy coacute thể khiến cho hệ thống trở necircn quaacute lớn vagrave thời gian
để cung cấp hệ thống quaacute lacircu Một saacuteng kiến tốt hơn lagrave xaacutec nhận cho rotilde caacutec chức
năng căn bản vagrave tập trung vagraveo việc định nghĩa một kiến truacutec hệ thống thiacutech hợp
rotilde ragraveng coacute nền tảng rộng mở để nhiều chức năng hơn coacute thể được bổ sung vagraveo
hệ thống nagravey trong caacutec phiecircn bản sau
Yếu tố quan trọng lagrave bạn phải tạo dựng được một bản catalog của caacutec khaacutei niệm
(caacutec thực thể) trung tacircm cugraveng với caacutec thuật ngữ vagrave định nghĩa thiacutech hợp trong
những giai đoạn đầu của thời kỳ phacircn tiacutech Đacircy chưa phải mocirc higravenh phạm vi đối
tượng magrave đuacuteng hơn lagrave một cố gắng để mocirc tả caacutec thuật ngữ của hệ thống hoặc
doanh nghiệp magrave chuacuteng ta cần mocirc higravenh hoacutea Caacutec thuật ngữ sau đoacute sẽ được dugraveng
để mocirc tả Use Case Phương thức cụ thể của catalog nagravey coacute thể rất khaacutec nhau noacute
coacute thể lagrave một mocirc higravenh khaacutei niệm chỉ ra caacutec mối quan hệ đơn giản hoặc chỉ lagrave một
văn bản chứa caacutec thuật ngữ cugraveng lời mocirc tả vắn tắt những thuật ngữ nagravey trong
thế giới thực
52- Taacutec nhacircn
Một taacutec nhacircn lagrave một người hoặc một vật nagraveo đoacute tương taacutec với hệ thống sử dụng
hệ thống Trong khaacutei niệm tương taacutec với hệ thống yacute chuacuteng ta muốn noacutei rằng
taacutec nhacircn sẽ gửi thocircng điệp đến hệ thống hoặc lagrave nhận thocircng điệp xuất phaacutet từ hệ
thống hoặc lagrave thay đổi caacutec thocircng tin cugraveng với hệ thống Noacutei một caacutech ngắn gọn
taacutec nhacircn thực hiện caacutec Use Case Thecircm một điều nữa một taacutec nhacircn coacute thể lagrave
người magrave cũng coacute thể lagrave một hệ thống khaacutec (viacute dụ như lagrave một chiếc maacutey tiacutenh
khaacutec được nối kết với hệ thống của chuacuteng ta hoặc một loại trang thiết bị phần
cứng nagraveo đoacute tương taacutec với hệ thống)
Một taacutec nhacircn lagrave một dạng thực thể (một lớp) chứ khocircng phải một thực thể Taacutec
nhacircn mocirc tả vagrave đại diện cho một vai trograve chứ khocircng phải lagrave một người sử dụng
thật sự vagrave cụ thể của hệ thống Nếu một anh chagraveng John nagraveo đoacute muốn mua hợp
đồng bảo hiểm từ một hatildeng bảo hiểm thigrave vai trograve của anh ta sẽ lagrave người mua hợp
đồng bảo hiểm vagrave đacircy mới lagrave thứ magrave chuacuteng ta muốn mocirc higravenh hoacutea chứ khocircng
phải bản thacircn anh chagraveng John Trong sự thực một con người cụ thể coacute thể đoacuteng
vai trograve lagravem nhiều taacutec nhacircn trong một hệ thống một nhacircn viecircn ngacircn hagraveng đồng
thời cũng coacute thể lagrave khaacutech hagraveng của chiacutenh ngacircn hagraveng đoacute Mặt khaacutec số lượng caacutec
vai trograve magrave một con người cụ thể được pheacutep đảm traacutech trong một hệ thống cũng
coacute thể bị hạn chế viacute dụ cugraveng một người khocircng được pheacutep vừa soạn hoacutea đơn vừa
phecirc duyệt hoacutea đơn đoacute Một taacutec nhacircn sẽ coacute một tecircn vagrave caacutei tecircn nagravey cần phải phản
aacutenh lại vai trograve của taacutec nhacircn Caacutei tecircn đoacute khocircng được phản aacutenh lại một thực thể
riecircng biệt của một taacutec nhacircn magrave cũng khocircng phản aacutenh chức năng của taacutec nhacircn
đoacute
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Một taacutec nhacircn giao tiếp với hệ thống bằng caacutech gửi hoặc lagrave nhận thocircng điệp
giống như khaacutei niệm chuacuteng ta đatilde quen biết trong lập trigravenh hướng đối tượng Một
Use Case bao giờ cũng được kiacutech hoạt bởi một taacutec nhacircn gửi thocircng điệp đến cho
noacute Khi một Use Case được thực hiện Use Case coacute thể gửi thocircng điệp đến một
hay lagrave nhiều taacutec nhacircn Những thocircng điệp nagravey cũng coacute thể đến với caacutec taacutec nhacircn
khaacutec becircn cạnh chiacutenh taacutec nhacircn đatilde kiacutech hoạt vagrave gacircy ra Use Case
Taacutec nhacircn cũng coacute thể được xếp loại Một taacutec nhacircn chiacutenh (Primary Actor) lagrave taacutec
nhacircn sử dụng những chức năng căn bản của hệ thống tức lagrave caacutec chức năng
chiacutenh Viacute dụ trong một hệ thống bảo hiểm một taacutec nhacircn căn bản coacute thể lagrave taacutec
nhacircn xử lyacute việc ghi danh vagrave quản lyacute caacutec hợp đồng bảo hiểm Một taacutec nhacircn phụ
(secondary actor) lagrave taacutec nhacircn sử dụng caacutec chức nặng phụ của hệ thống viacute dụ
như caacutec chức năng bảo trigrave hệ thống như quản trị ngacircn hagraveng dữ liệu giao tiếp
back-up vagrave caacutec taacutec vụ quản trị khaacutec Một viacute dụ cho taacutec nhacircn phụ coacute thể lagrave nhagrave
quản trị hoặc lagrave một nhacircn viecircn sử dụng chức năng trong hệ thống để ruacutet ra caacutec
thocircng tin thống kecirc về doanh nghiệp Cả hai loại taacutec nhacircn nagravey đều được mocirc higravenh
hoacutea để đảm bảo mocirc tả đầy đủ caacutec chức năng của hệ thống mặc dugrave caacutec chức
năng chiacutenh mới thật sự nằm trong mối quan tacircm chủ yếu của khaacutech hagraveng
Taacutec nhacircn cograven coacute thể được định nghĩa theo dạng taacutec nhacircn chủ động (active actor)
hay taacutec nhacircn thụ động (passive actor) Một taacutec nhacircn chủ động lagrave taacutec nhacircn gacircy ra
Use Case trong khi taacutec nhacircn thụ động khocircng bao giờ gacircy ra Use Case magrave chỉ
tham gia vagraveo một hoặc lagrave nhiều Use Case
53- Tigravem taacutec nhacircn
Khi nhận diện taacutec nhacircn coacute nghĩa lagrave chuacuteng ta lọc ra caacutec thực thể đaacuteng quan tacircm
theo khiacutea cạnh sử dụng vagrave tương taacutec với hệ thống Sau đoacute chuacuteng ta coacute thể thử
đặt migravenh vagraveo vị triacute của taacutec nhacircn để cố gắng nhận ra caacutec yecircu cầu vagrave đogravei hỏi của
taacutec nhacircn đối với hệ thống vagrave xaacutec định taacutec nhacircn cần những Use Case nagraveo Coacute thể
nhận diện ra caacutec taacutec nhacircn qua việc trả lời một số caacutec cacircu hỏi như sau
Ai sẽ sử dụng những chức năng chiacutenh của hệ thống (taacutec nhacircn
chiacutenh)
Ai sẽ cần sự hỗ trợ của hệ thống để thực hiện những taacutec vụ hagraveng
ngagravey của họ
Ai sẽ cần bảo trigrave quản trị vagrave đảm bảo cho hệ thống hoạt động (taacutec
nhacircn phụ)
Hệ thống sẽ phải xử lyacute vagrave lagravem việc với những trang thiết bị phần
cứng nagraveo
Hệ thống cần phải tương taacutec với caacutec hệ thống khaacutec nagraveo Nhoacutem caacutec
hệ thống nagravey được chia ra lagravem hai nhoacutem nhoacutem kiacutech hoạt cho mối
quan hệ với hệ thống vagrave nhoacutem magrave hệ thống cần phải xacircy dựng của
CuuDuongThanCongcom httpsfbcomtailieudientucntt
chuacuteng ta sẽ thiết lập quan hệ Khaacutei niệm hệ thống bao gồm cả caacutec
hệ thống maacutey tiacutenh khaacutec cũng như caacutec ứng dụng khaacutec trong chiacutenh
chiếc maacutey tiacutenh magrave hệ thống nagravey sẽ hoạt động
Ai hay caacutei gigrave quan tacircm đến kết quả (giaacute trị) magrave hệ thống sẽ sản
sinh ra
Khi đi tigravem những người sử dụng hệ thống đừng quan saacutet những người đang ngồi
ở trước magraven higravenh maacutey tiacutenh Necircn nhớ rằng người sử dụng coacute thể lagrave bất kỳ người
nagraveo hay bất kỳ vật nagraveo tương taacutec hoặc trực tiếp hoặc giaacuten tiếp với hệ thống vagrave
sử dụng caacutec dịch vụ của hệ thống nagravey để đạt đến một kết quả nagraveo đoacute Đừng
quecircn rằng mocirc higravenh hoacutea Use Case được thực hiện để mocirc higravenh hoacutea một doanh
nghiệp vigrave thế taacutec nhacircn thường thường lagrave khaacutech hagraveng của doanh nghiệp đoacute Từ
đoacute suy ra họ khocircng phải lagrave người sử dụng theo nghĩa đơn giản vagrave trực tiếp lagrave
người ngồi trước magraven higravenh maacutey tiacutenh vagrave thao taacutec với maacutey tiacutenh
Để coacute thể nhận dạng được tốt nhiều taacutec nhacircn khaacutec nhau hatildey tiến hagravenh nghiecircn
cứu những người sử dụng của hệ thống hiện thời (một hệ thống thủ cocircng hoặc
một hệ thống đang tồn tại) hỏi xem họ đoacuteng những vai trograve nagraveo khi thực thi cocircng
việc hagraveng ngagravey của họ với hệ thống Cũng người sử dụng đoacute coacute thể thực thi nhiều
vai trograve khaacutec nhau tại nhiều thời điểm khaacutec nhau tugravey thuộc vagraveo việc chức năng
nagraveo trong hệ thống đang được sử dụng
Xin nhắc lại một taacutec nhacircn lagrave một vai trograve (một lớp) chứ khocircng phải một thực thể
riecircng lẻ Mặc dugrave vậy khi cung cấp viacute dụ lagrave một vagravei caacutec thực thể của một taacutec nhacircn
bạn coacute thể đảm bảo rằng taacutec nhacircn đoacute thật sự tồn tại Một taacutec nhacircn phải coacute một
sự liecircn kết (Association) nagraveo đoacute với một hoặc lagrave nhiều Use Case Mặc dugrave coacute
những taacutec nhacircn coacute thể khocircng kiacutech hoạt necircn một Use Case nagraveo nhưng taacutec nhacircn
đoacute sẽ giao tiếp iacutet nhất với một Use Case tại một thời điểm nagraveo đoacute Cần phải đặt
tecircn cho taacutec nhacircn lagravem sao để tecircn phản aacutenh đuacuteng vai trograve của taacutec nhacircn đoacute trong hệ
thống
54- Biểu diễn taacutec nhacircn trong ngocircn ngữ UML
Taacutec nhacircn trong UML lagrave một lớp với biệt ngữ Actor (Taacutec nhacircn) vagrave tecircn của lớp
nagravey lagrave tecircn của taacutec nhacircn (phản aacutenh vai trograve của taacutec nhacircn) Một lớp taacutec nhacircn coacute thể
vừa coacute thuộc tiacutenh (attribute) lẫn hagravenh vi (method) cũng như một thuộc tiacutenh tagravei
liệu (document) mocirc tả taacutec nhacircn đoacute Một lớp taacutec nhacircn coacute một biểu tượng chuẩn
hoacutea biểu tượng higravenh nhacircn
Higravenh 42- biểu tượng taacutec nhacircn trong UML
CuuDuongThanCongcom httpsfbcomtailieudientucntt
55- Use Case
Một Use Case lagrave đại diện cho một chức năng nguyecircn vẹn magrave một taacutec nhacircn nhận
được Một Use Case trong ngocircn ngữ UML được định nghĩa lagrave một tập hợp của caacutec
chuỗi hagravenh động magrave một hệ thống thực hiện để tạo ra một kết quả coacute thể quan
saacutet được tức lagrave một giaacute trị đến với một taacutec nhacircn cụ thể Những hagravenh động nagravey
coacute thể bao gồm việc giao tiếp với một loạt caacutec taacutec nhacircn cũng như thực hiện tiacutenh
toaacuten vagrave cocircng việc nội bộ becircn trong hệ thống
Caacutec tiacutenh chất tiecircu biểu của một Use Case lagrave
Một Use Case bao giờ cũng được gacircy ra bởi một taacutec nhacircn được
thực hiện nhacircn danh một taacutec nhacircn nagraveo đoacute Taacutec nhacircn phải ra lệnh
cho hệ thống để thực hiện Use Case đoacute dugrave lagrave trực tiếp hay giaacuten tiếp
Hiếm khi coacute taacutec nhacircn khocircng liecircn quan đến việc gacircy ra một Use Case
nagraveo đoacute
Một Use Case phải cung cấp một giaacute trị cho một taacutec nhacircn Giaacute trị
đoacute khocircng phải bao giờ cũng cần thiết phải nổi trội ra ngoagravei nhưng
luocircn phải được thấy rotilde
Một Use Case lagrave phải hoagraven tất Một trong những lỗi thường gặp lagrave
sẻ chia một Use Case thagravenh caacutec Use Case nhỏ hơn vagrave caacutec Use Case
nagravey thực thi lẫn nhau giống như việc gọi hagravem cho một ngocircn ngữ lập
trigravenh Một Use Case sẽ khocircng được coi lagrave hoagraven tất chừng nagraveo magrave giaacute
trị cuối cugraveng của noacute chưa được sản sinh ra thậm chiacute ngay cả khi đatilde
xẩy ra nhiều động taacutec giao tiếp (viacute dụ như đối thoại với người sử
dụng)
Use Case được nối với taacutec nhacircn qua liecircn kết (association) Đường liecircn kết chỉ ra
những taacutec nhacircn nagraveo giao tiếp với Use Case nagraveo Mối liecircn kết bigravenh thường ra lagrave
một mối quan hệ 1-1 vagrave khocircng coacute hướng Điều đoacute muốn noacutei lecircn rằng một thực
thể của lớp taacutec nhacircn sẽ giao tiếp với một thực thể của một Use Case vagrave cả hai coacute
thể giao tiếp với nhau trong cả hai chiều Một Use Case sẽ được đặt tecircn theo một
thực thể magrave Use Case sẽ thực hiện viacute dụ như kyacute hợp đồng bảo hiểm cập nhật
danh saacutech vvhellip vagrave thường lagrave một cụm từ hơn lagrave chỉ một từ riecircng lẻ
Một Use Case lagrave một lớp chứ khocircng phải một thực thể Noacute mocirc tả trọn vẹn một
chức năng kể cả caacutec giải phaacutep bổ sung vagrave thay thế coacute thể coacute caacutec lỗi coacute thể xảy
ra cũng như những ngoại lệ coacute thể xảy ra trong quaacute trigravenh thực thi Một kết quả
của sự thực thể hoacutea một Use Case được gọi lagrave một cảnh kịch (scenario) vagrave noacute đại
diện cho một sự sử dụng cụ thể của hệ thống (một đường dẫn thực thi riecircng biệt
qua hệ thống) Viacute dụ một cảnh kịch của Use Case Kyacute hợp đồng bảo hiểm coacute thể
lagrave John liecircn hệ với hệ thống qua điện thoại rồi sau đoacute kyacute hợp đồng bảo hiểm ocirc tocirc
cho chiếc xe Toyota Carolla magrave anh ta vừa mua
CuuDuongThanCongcom httpsfbcomtailieudientucntt
56- Tigravem Use Case
Quaacute trigravenh tigravem caacutec Use Case bắt đầu với caacutec taacutec nhacircn đatilde được xaacutec định ở phần
trước Đối với mỗi taacutec nhacircn hatildey hỏi caacutec cacircu hỏi sau
a Taacutec nhacircn nagravey cần những chức năng nagraveo từ hệ thống Hagravenh động chiacutenh
của taacutec nhacircn lagrave gigrave
Viacute dụ cho một giao dịch ruacutet tiền becircn maacutey ATM trong một nhagrave băng
lẻ caacutec hagravenh động chiacutenh của khaacutech hagraveng (taacutec nhacircn) coacute thể lagrave
Đuacutet thẻ vagraveo maacutey ATM
Nhập password
Nhập loại chuyển dịch
Nhập số tiền mặt muốn ruacutet ra
Yecircu cầu về loại tiền
Nhặt tiền ra từ maacutey
Ruacutet thẻ vagrave tờ in kết quả giao dịch
b Taacutec nhacircn coacute cần phải đọc phải tạo phải hủy bỏ phải sửa chữa hay lagrave
lưu trữ một loại thocircng tin nagraveo đoacute trong hệ thống
Viacute dụ
Nhacircn viecircn nhagrave băng liệu coacute quyền truy xuất hay thay đổi
mức tiền latildei
Khaacutech hagraveng coacute thể thay đổi password của migravenh
c Taacutec nhacircn coacute cần phải baacuteo cho hệ thống biết về những sự kiện nagraveo đoacute
Những sự kiện như thế sẽ đại diện cho những chức năng nagraveo
Viacute dụ
Khaacutech hagraveng kết thuacutec tagravei khoản nhacircn viecircn cung cấp những
thocircng tin nagravey cho hệ thống
Coacute một chương trigravenh đầu tư mới caacutec chi tiết của chương
trigravenh nagravey sẽ phải được nhacircn viecircn nhagrave băng nhập vagraveo hệ thống
d Hệ thống coacute cần phải thocircng baacuteo cho Actor về những thay đổi bất ngờ
trong nội bộ hệ thống
Trong tagravei khoản cograven quaacute iacutet tiền
Ba kỳ liecircn tiếp tiền lương chưa đổ về tagravei khoản
CuuDuongThanCongcom httpsfbcomtailieudientucntt
e Cocircng việc hagraveng ngagravey của taacutec nhacircn coacute thể được đơn giản hoacutea hoặc hữu
hiệu hoacutea qua caacutec chức năng mới trong hệ thống (thường đacircy lagrave những
chức năng tiecircu biểu chưa được tự động hoacutea trong hệ thống)
f Caacutec cacircu hỏi khaacutec
Use Case coacute thể được gacircy ra bởi caacutec sự kiện nagraveo khaacutec
Viacute dụ
Sự kiện thời gian Cuối thaacuteng hết hạn đầu tư
Sự kiện bigravenh thường của hệ thống Tự động chuyển tiền theo
caacutec lệnh xaacutec định trước
Caacutec sự kiện bất bigravenh thường Hợp đồng đầu tư kết thuacutec trước
thời hạn
Hệ thống cần những thocircng tin đầu vagraveođầu ra nagraveo Những thocircng
tin đầu vagraveođầu ra đoacute từ đacircu tới vagrave sẽ đi đacircu
Khoacute khăn vagrave thiếu hụt chiacutenh trong hệ thống hiện thời nằm ở đacircu
(thủ cocircng tự động hoacutea)
Đối với nhoacutem cacircu hỏi cuối khocircng coacute nghĩa lagrave Use Case ở đacircy khocircng coacute taacutec nhacircn
magrave taacutec nhacircn sẽ được nhận ra chỉ khi chuacuteng ta nhận diện ra caacutec Use Case nagravey vagrave
sau đoacute xaacutec định taacutec nhacircn dựa trecircn cơ sở lagrave Use Case Xin nhắc lại một Use Case
bao giờ cũng phải được liecircn kết với iacutet nhất một taacutec nhacircn
57- Viacute dụ tigravem Use Case
Nhagrave băng ABC đưa ra caacutec yecircu cầu sau
Một khaacutech hagraveng coacute thể muốn gửi tiền vagraveo ruacutet tiền ra hoặc đơn giản
kiểm tra lại số tiền trong tagravei khoản của anh ta qua maacutey tự động ruacutet
tiền (ATM) Khi đưa tiền vagraveo hoặc ruacutet tiền ra cần phải ghi ra giấy
kết quả những chuyển dịch đatilde thực hiện vagrave trao tờ giấy nagravey cho
khaacutech hagraveng
Quan saacutet caacutec chức năng căn bản vagrave caacutec thagravenh phần tham gia ta thấy coacute hai taacutec
nhacircn dễ nhận ra nhất lagrave khaacutech hagraveng vagrave nhacircn viecircn thu ngacircn
Qua đoacute coacute thể nhacircn dạng caacutec Use Case sau
Gửi tiền vagraveo
Ruacutet tiền ra
Kiểm tra mức tiền trong tagravei khoản
Thực hiện caacutec chuyển dịch nội bộ hệ thống
In kết quả caacutec chuyển dịch đatilde thực hiện
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 43 ndash Caacutec Use case trong hệ thống ATM
Use Case gửi tiền vagraveo vagrave ruacutet tiền ra phụ thuộc vagraveo Use Case thực hiện caacutec
chuyển dịch trong nội bộ hệ thống việc thực hiện nagravey về phần noacute lại phụ thuộc
vagraveo chức năng in ra caacutec cocircng việc đatilde được thực hiện Kiểm tra mức tiền trong tagravei
khoản lagrave một Use Case độc lập khocircng phụ thuộc vagraveo caacutec Use Case khaacutec
6- CAacuteC BIẾN THỂ (VARIATIONS) TRONG MỘT USE CASE
Mỗi Use Case sẽ coacute một dograveng hagravenh động chiacutenh (Basic Course) Đoacute lagrave tiến trigravenh
bigravenh thường hay tiến trigravenh mong đợi đối với Use Case nagravey
Ngoagravei ra coacute thể cograven coacute một hay nhiều dograveng hagravenh động thay thế (Alternative)
khaacutec Chuacuteng coacute thể được chia lagravem hai nhoacutem chiacutenh
Thay thế bigravenh thường (Normal Alternative)
Điều kiện gacircy lỗi (Error Condidtions)
Những gigrave mang tiacutenh bigravenh thường hơn trong Use Case được gọi lagrave Thay thế bigravenh
thường
Coacute thể miecircu tả caacutec dograveng hagravenh động thay thế bằng từ ngữ (xem phần tagravei liệu Use
Case )
Viacute dụ một khaacutech hagraveng coacute thể chọn caacutec loại giao dịch sau của ATM
Gửi tiền vagraveo
Ruacutet tiền ra
Kiểm tra mức tiền trong tagravei khoản
Đacircy lagrave những viacute dụ cho caacutec dograveng hagravenh động thay thế bigravenh thường
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Điều kiện gacircy lỗi đại diện cho những bước tiến hagravenh bất bigravenh thường trong một
Use Case Cần phải tiacutenh trước đến những điều kiện gacircy lỗi đoacute viacute dụ
Mức tiền trong tagravei khoản khocircng đủ để tiến hagravenh giao dịch
Password khocircng đuacuteng
ATM bị nghẽn thẻ
Higravenh sau necircu bật dograveng hagravenh động chiacutenh vagrave những dograveng hagravenh động thay thế cũng
như sự khaacutec biệt của chuacuteng đối với tiến trigravenh mong đợi của Use Case
Higravenh 44 ndash Caacutec tiến trigravenh trong hệ thống ATM
7- QUAN HỆ GIỮA CAacuteC USE CASE
Coacute ba loại quan hệ Use Case Quan hệ mở rộng quan hệ sử dụng vagrave quan hệ tạo
nhoacutem Quan hệ mở rộng vagrave quan hệ sử dụng lagrave hai dạng khaacutec nhau của tiacutenh thừa
kế Quan hệ tạo nhoacutem lagrave một phương caacutech để đặt nhiều Use Case chung với
nhau vagraveo trong một goacutei
71- Quan hệ mở rộng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Nhiều khi trong quaacute trigravenh phaacutet triển Use Case người ta thấy một số Use Case đatilde
tồn tại cung cấp một phần những chức năng cần thiết cho một Use Case mới
Trong một trường hợp như vậy coacute thể định nghĩa một Use Case mới lagrave Use Case
cũ cộng thecircm một phần mới Một Use Case như vậy được gọi lagrave một Use Case mở
rộng (Extended Use Case ) Trong quan hệ mở rộng Use Case gốc (Base Use
Case ) được dugraveng để mở rộng phải lagrave một Use Case hoagraven thiện Use Case mở
rộng khocircng nhất thiết phải sử dụng toagraven bộ hagravenh vi của Use Case gốc
Biểu đồ sau chỉ ra Use Case ―Kyacute hợp đồng mua ocirc tocirc lagrave Use Case mở rộng của
Kyacute hợp đồng bảo hiểm
Higravenh 45 - Quan hệ mở rộng giữa caacutec Use Case
Quan hệ mở rộng giữa caacutec Use Case được biểu thị bằng đoạn thẳng với higravenh tam
giaacutec rỗng trỏ về phiacutea Use Case được dugraveng để mở rộng đi kegravem với stereotype
ltltextendsgtgt
72- Quan hệ sử dụng
Khi một nhoacutem caacutec Use Case cugraveng chung một hagravenh vi nagraveo đoacute thigrave hagravenh vi nagravey coacute
thể được taacutech riecircng ra thagravenh một Use Case riecircng biệt vagrave noacute coacute thể được sử dụng
bởi caacutec Use Case kia một mối quan hệ như vậy được gọi lagrave quan hệ sử dụng
Trong quan hệ sử dụng phải sử dụng toagraven bộ Use Case khaacutei quaacutet hoacutea noacutei một
caacutech khaacutec ta coacute một Use Case nagravey sử dụng toagraven bộ một Use Case khaacutec Caacutec
hagravenh động trong Use Case khaacutei quaacutet hoacutea khocircng cần phải được sử dụng trong
cugraveng một tiến trigravenh Chuacuteng coacute thể được trộn lẫn với caacutec hagravenh động xảy ra trong
Use Case chuyecircn biệt hoacutea
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 46 - Quan hệ sử dụng giữa caacutec Use Case
Quan hệ sử dụng giữa caacutec Use Case được biểu thị bằng đoạn thẳng với higravenh tam
giaacutec rỗng trỏ về phiacutea Use Case được sử dụng đi kegravem với stereotype ltltusesgtgt
73- Quan hệ chung nhoacutem
Khi một số caacutec Use Case cugraveng xử lyacute caacutec chức năng tương tự hoặc coacute thể liecircn
quan đến nhau theo một phương thức nagraveo đoacute người ta thường nhoacutem chuacuteng lại
với nhau
Nhoacutem caacutec Use Case được thực hiện bằng khaacutei niệm Goacutei (Package) của UML Goacutei
khocircng cung cấp giaacute trị gia tăng cho thiết kế
Viacute dụ tất cả caacutec Use Case coacute liecircn quan đến sự tương taacutec giữa khaacutech hagraveng vagrave
nhacircn viecircn thu ngacircn sẽ được nhoacutem thagravenh Package Khaacutech hagraveng- Nv thu ngacircn
Higravenh 47 ndash Package của UML
Toacutem tắt về Use Case với maacutey ATM trong ngacircn hagraveng lẻ
Cho tới nay chuacuteng ta đatilde xaacutec định được một vagravei Use Case phacircn tiacutech dograveng hagravenh
động chiacutenh cũng như caacutec dograveng hagravenh động thay thế cũng như ruacutet ra caacutec mối
quan hệ giữa chuacuteng Biểu đồ sau tổng hợp những thocircng tin đatilde thu thập được về
nhoacutem caacutec Use Case căn bản của một hệ thống ATM
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 48 - Biểu đồ một số Use Case trong hệ thống ATM
8- MIEcircU TẢ USE CASE
Như đatilde trigravenh bagravey lời miecircu tả một Use Case thường được thực hiện trong văn bản
Đacircy lagrave lời đặc tả đơn giản vagrave nhất quaacuten về việc caacutec taacutec nhacircn vagrave caacutec Use Case (hệ
thống) tương taacutec với nhau ra sao Noacute tập trung vagraveo ứng xử đối ngoại của hệ
thống vagrave khocircng đề cập tới việc thực hiện nội bộ becircn trong hệ thống Ngocircn ngữ vagrave
caacutec thuật ngữ được sử dụng trong lời miecircu tả chiacutenh lagrave ngocircn ngữ vagrave caacutec thuật ngữ
được sử dụng bởi khaacutech hagravengngười dugraveng
Văn bản miecircu tả cần phải bao gồm những điểm sau
Mục điacutech của Use Case Mục điacutech chung cuộc của Use Case lagrave gigrave
Caacutei gigrave cần phải được đạt tới Use Case noacutei chung đều mang tiacutenh
hướng mục điacutech vagrave mục điacutech của mỗi Use Case cần phải rotilde ragraveng
Use Case được khởi chạy như thế nagraveo Taacutec nhacircn nagraveo gacircy ra sự thực
hiện Use Case nagravey Trong hoagraven cảnh nagraveo
Chuỗi caacutec thocircng điệp giữa taacutec nhacircn vagrave Use Case Use Case vagrave caacutec
taacutec nhacircn trao đổi thocircng điệp hay sự kiện nagraveo để thocircng baacuteo lẫn cho
nhau cập nhật hoặc nhận thocircng tin vagrave giuacutep đỡ nhau quyết định
Yếu tố nagraveo sẽ miecircu tả dograveng chảy chiacutenh của caacutec thocircng điệp giữa hệ
thống vagrave taacutec nhacircn vagrave những thực thể nagraveo trong hệ thống được sử
dụng hoặc lagrave bị thay đổi
Dograveng chảy thay thế trong một Use Case Một Use Case coacute thể coacute
những dograveng thực thi thay thế tugravey thuộc vagraveo điều kiện Hatildey nhắc đến
caacutec yếu tố nagravey nhưng chuacute yacute đừng miecircu tả chuacuteng quaacute chi tiết đến
CuuDuongThanCongcom httpsfbcomtailieudientucntt
mức độ chuacuteng coacute thể ―che khuất― dograveng chảy chiacutenh của caacutec hoạt
động trong trường hợp căn bản Những động taacutec xử lyacute lỗi đặc biệt sẽ
được miecircu tả thagravenh caacutec Use Case khaacutec
Use Case sẽ kết thuacutec với một giaacute trị đối với taacutec nhacircn như thế nagraveo
Hatildey miecircu tả khi nagraveo Use Case được coi lagrave đatilde kết thuacutec vagrave loại giaacute trị
magrave noacute cung cấp đến taacutec nhacircn
Hatildey nhớ rằng lời miecircu tả nagravey sẽ xaacutec định những gigrave được thực thi coacute liecircn quan đến
taacutec nhacircn becircn ngoagravei chứ khocircng phải những sự việc được thực hiện becircn trong hệ
thống Văn bản phải rotilde ragraveng nhất quaacuten khiến cho khaacutech hagraveng coacute thể dễ dagraveng
hiểu vagrave thẩm tra chuacuteng (để rồi đồng yacute rằng noacute đại diện cho những gigrave magrave anhcocirc
ta muốn từ phiacutea hệ thống) Traacutenh dugraveng những cacircu văn phức tạp khoacute diễn giải vagrave
dễ hiểu lầm
Một Use Case cũng coacute thể được miecircu tả qua một biểu đồ hoạt động Biểu đồ hoạt
động nagravey chỉ ra chuỗi caacutec hagravenh động thứ tự của chuacuteng caacutec quyết định chọn lựa
để xaacutec định xem hagravenh động nagraveo sau đoacute sẽ được thực hiện
Để bổ sung cho lời miecircu tả một Use Case người ta thường đưa ra một loạt caacutec
cảnh kịch cụ thể để minh họa điều gigrave sẽ xảy ra một khi Use Case nagravey được thực
thể hoacutea Lời miecircu tả cảnh kịch minh họa một trường hợp đặc biệt khi cả taacutec
nhacircn lẫn Use Case đều được coi lagrave một thực thể cụ thể Khaacutech hagraveng coacute thể dễ
dagraveng hiểu hơn toagraven bộ một Use Case phức tạp nếu coacute những cảnh kịch được
miecircu tả thực tiễn hơn minh họa lại lối ứng xử vagrave phương thức hoạt động của hệ
thống Nhưng xin nhớ rằng một lời miecircu tả cảnh kịch chỉ lagrave một sự bổ sung chứ
khocircng phải lagrave ứng cử viecircn để thay thế cho lời miecircu tả Use Case
Sau khi caacutec Use Case đatilde được miecircu tả một hoạt động vagrave một cocircng việc đặc biệt
cần phải thực hiện lagrave thẩm tra xem caacutec mối quan hệ (đatilde đề cập tới trong phần
27) coacute được nhận diện khocircng Trước khi tất cả caacutec Use Case được miecircu tả nhagrave
phaacutet triển chưa thể coacute được những kiến thức hoagraven tất vagrave tổng thể để xaacutec định
caacutec mối quan hệ thiacutech hợp thử nghiệm lagravem theo phương thức đoacute coacute thể sẽ dẫn
đến một tigravenh huống nguy hiểm Trong thời gian thực hiện cocircng việc nagravey hatildey trả
lời caacutec cacircu hỏi sau
Tất cả caacutec taacutec nhacircn liecircn quan đến một Use Case coacute mối liecircn kết
giao tiếp với Use Case đoacute khocircng
Coacute tồn tại những sự tương tự giữa một loạt caacutec taacutec nhacircn minh họa
một vai trograve chung vagrave nhoacutem nagravey liệu coacute thể được miecircu tả lagrave một lớp
taacutec nhacircn căn bản (base class)
Coacute tồn tại những sự tương tự giữa một loạt caacutec Use Case minh họa
một dograveng chảy hagravenh động chung Nếu coacute liệu điều nagravey coacute thể được
miecircu tả lagrave một mối quan hệ sử dụng đến với một Use Case khaacutec
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Coacute tồn tại những trường hợp đặc biệt của một Use Case coacute thể
được miecircu tả lagrave một mối quan hệ mở rộng
Coacute tồn tại một taacutec nhacircn nagraveo hay một Use Case nagraveo khocircng coacute mối
liecircn kết giao tiếp Nếu coacute chắc chắn ở đacircy đatilde coacute chuyện lầm lạc sai
traacutei Tại sao lại xuất hiện taacutec nhacircn nagravey
Coacute lời yecircu cầu nagraveo về chức năng đatilde được xaacutec định nhưng lại khocircng
được bất kỳ một Use Case nagraveo xử lyacute Nếu thế hatildey tạo một Use
Case cho yecircu cầu đoacute
Văn bản miecircu tả một Use Case đơn giản
Viacute dụ Use Case Cung Cấp Thocircng Tin Về Một Tagravei Khoản Tại Nhagrave Băng ABC Sau
khi phacircn tiacutech hệ thống ta nhận thấy cần coacute một Use Case để in lecircn magraven higravenh của
nhacircn viecircn nhagrave băng tất cả những chi tiết về một tagravei khoản của một khaacutech hagraveng
Đặc tả Use Case
Chi tiết tagravei khoản tecircn Use Case
Số Use Case UCSEC35
Miecircu tả ngắn miecircu tả ngắn gọn Use Case
Use Case chi tiết tagravei khoản cho pheacutep nhacircn viecircn nhagrave băng xem caacutec chi tiết của
một tagravei khoản magrave anh ta định tigravem hiểu
Dograveng chảy caacutec sự kiện dograveng logic chung
Nhacircn viecircn chọn Chi Tiết Tagravei Khoản trecircn menu Một con đường khaacutec để chỉ ra caacutec
thocircng tin chi tiết của tagravei khoản lagrave gọi từ Magraven Higravenh Toacutem Tắt Thocircng Tin Về Tagravei
Khoản (xem Use Case số UCSEC99)
Dograveng hagravenh động chiacutenh dograveng logic chi tiết
Mỗi khaacutech hagraveng sẽ coacute một số định danh gọi lagrave CustomerId Một khaacutech hagraveng coacute
thể coacute nhiều tagravei khoản Sau khi nhacircn viecircn nhập CustomerId vagraveo hệ thống magraven
higravenh phải in ra tất cả những tagravei khoản thuộc về khaacutech hagraveng nagravey vagrave thuộc về nhagrave
băng ABC rải raacutec tại tất cả caacutec chi nhaacutenh Khi chọn tiếp loại tagravei khoản vagrave số tagravei
khoản caacutec chi tiết của tagravei khoản mong muốn sẽ được in ra
Loại tagravei khoản tiết kiệm Nếu loại tagravei khoản được chọn lagrave tagravei khoản tiết kiệm thigrave
theo Use Case số UCSEC45 caacutec chi tiết sau đacircy sẽ được in ra
Mức tiền hiện coacute
Caacutec tờ sec chưa thanh toaacuten
Lượng tiền tiacuten dụng được pheacutep
Lượng tiền latildei cho tới ngagravey hocircm nay
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Lượng tiền tối thiểu cần phải coacute trong tagravei khoản
Loại tagravei khoản đầu tư Nếu loại tagravei khoản được chọn lagrave loại đầu tư thigrave theo Use
Case số UCSEC46 caacutec chi tiết sau đacircy sẽ được in ra
Hạn đầu tư
Số tiền đầu tư
Ngagravey đầu tư
Lượng tiền cuối hạn
Ngagravey cuối hạn
Tỷ lệ lời
Dograveng hagravenh động thay thế chuỗi logic thay thế
Khocircng tigravem thấy chi tiết Khi chọn một số tagravei khoản khocircng thiacutech hợp (khocircng coacute tagravei
khoản tương ứng) dugrave vigrave lyacute do chức năng hay kỹ thuật theo Use Case số
UCSEC12 hệ thống sẽ đưa ra một magraven higravenh baacuteo lỗi
Điều kiện thoaacutet Use Case kết thuacutec như thế nagraveo
Nuacutet Thoaacutet Khi chọn nuacutet thoaacutet người sử dụng sẽ quay trở lại magraven higravenh chiacutenh
Nuacutet Xem Thecircm Khi chọn nuacutet nagravey người sử dụng sẽ được yecircu cầu chọn loại tagravei
khoản từ một danh saacutech đổ xuống
Nuacutet Xem Giao Dịch Khi chọn nuacutet nagravey người sử dụng sẽ được chuyển sang magraven
higravenh Giao dịch vagrave theo Use Case số UCSEC91 magraven higravenh sẽ chỉ ra những giao
dịch đatilde xảy ra đối với tagravei khoản becircn cạnh những chi tiết chiacutenh của tagravei khoản
Nuacutet Yecircu Cầu In Kết Quả Khi chọn phần thực đơn nagravey kết quả giao dịch theo Use
Case số UCSEC70 sẽ được in ra ở một maacutey in địa phương nối trực tiếp với maacutey
tiacutenh của nhacircn viecircn
Caacutec yecircu cầu đặc biệt caacutec yecircu cầu đặc biệt
Theo Use Case số UCSEC110 hệ thống coacute khả năng in lecircn magraven higravenh bằng những
ngocircn ngữ khaacutec Chức năng nagravey sẽ được kiacutech hoạt khi người sử dụng chọn mục
Ngoại Ngữ trecircn menu
Điều kiện trƣớc đoacute điều xảy ra trước khi Use Case được thực hiện
Bảo an Người sử dụng (nhacircn viecircn tiếp khaacutech) được cung cấp một số định danh
riecircng biệt để truy nhập vagraveo hệ thống
Dịch chuyển Người sử dụng chỉ đến được magraven higravenh Chi Tiết Tagravei Khoản sau khi đatilde
truy nhập thagravenh cocircng vagrave Identify thagravenh cocircng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Điều kiện sau đoacute điều gigrave xảy ra sau khi Use Case
được thực hiện
Hệ thống sẽ khocircng lưu trữ lại bất kỳ một thocircng tin nagraveo liecircn quan tới khaacutech hagraveng
lecircn đĩa cứng cục bộ
9- THỬ USE CASE
Một trong caacutec mục điacutech chiacutenh của Use Case lagrave thử nghiệm (testing) Coacute hai loại
thử nghiệm khaacutec nhau được thực hiện ở đacircy kiểm tra (verification) vagrave phecirc
duyệt xaacutec nhận (validation) Kiểm tra đảm bảo lagrave hệ thống đatilde được phaacutet triển
đuacuteng đắn vagrave phugrave hợp với caacutec đặc tả đatilde được tạo ra Phecirc duyệt xaacutec nhận đảm bảo
rằng hệ thống sẽ được phaacutet triển chiacutenh lagrave thứ magrave khaacutech hagraveng hoặc người sử
dụng cuối thật sự cần đến
Cocircng việc phecirc duyệt xaacutec nhận được thực hiện kề trước giai đoạn phaacutet triển
Ngay khi một mocirc higravenh Use Case được hoagraven tất (hay thậm chiacute coacute thể đang trong
giai đoạn phaacutet triển) mocirc higravenh nagravey phải được trigravenh bagravey vagrave thảo luận với khaacutech
hagraveng cũng như người sử dụng Họ cần phải xaacutec nhận rằng mocirc higravenh nagravey lagrave đuacuteng
đắn hoagraven tất vagrave thỏa matilden sự mong đợi của họ đối với hệ thống đặc biệt lagrave
phương caacutech magrave hệ thống cung cấp chức năng cho họ Để lagravem điều đoacute nhagrave phaacutet
triển phải đảm bảo rằng khaacutech hagraveng thật sự hiểu được mocirc higravenh vagrave yacute nghĩa của
chuacuteng để traacutenh trường hợp tạo ra những thứ khocircng thể chấp nhận nổi Trong
giai đoạn nagravey rotilde ragraveng lagrave caacutec cacircu hỏi vagrave caacutec yacute tưởng sẽ xuất hiện vagrave chuacuteng cần
phải được bổ sung thecircm vagraveo mocirc higravenh Use Case trước khi đến giai đoạn phecirc duyệt
chung cuộc Giai đoạn xaacutec nhận cũng coacute thể được thực hiện trong thời kỳ thử
nghiệm hệ thống nhưng điểm yếu của phương thức lagravem nagravey lagrave nếu hệ thống
khocircng thỏa matilden những yecircu cầu cụ thể của người sử dụng thigrave toagraven bộ dự aacuten rất
coacute thể sẽ phải lagravem lại từ đầu
Kiểm tra hệ thống lagrave để đảm bảo noacute hoạt động đuacuteng như đặc tả Điều nagravey
khocircng thể được thực hiện trước khi đatilde coacute những thagravenh phần của hệ thống được
tạo ra Chỉ sau đoacute người ta mới coacute thể thử xem hệ thống coacute hoạt động đuacuteng như
đặc tả magrave người sử dụng đatilde đưa ra rằng caacutec Use Case thực hiện đuacuteng theo như
những lời đatilde miecircu tả trong mocirc higravenh rằng chuacuteng hoạt động theo đuacuteng phương
thức đatilde được miecircu tả trong văn bản miecircu tả Use Case
Đi bộ dọc Use Case
Một trong những kỹ thuật hữu dụng được dugraveng trong cả giai đoạn định nghĩa lẫn
thử nghiệm Use Case gọi lagrave Đi Bộ Dọc Use Case Theo kỹ thuật nagravey nhiều
người khaacutec nhau trong nhoacutem lagravem mocirc higravenh sẽ đoacuteng vai caacutec taacutec nhacircn cũng như hệ
thống trong một Use Case cụ thể Người đảm nhận vai taacutec nhacircn sẽ bắt đầu bằng
việc noacutei ra taacutec nhacircn lagravem gigrave với hệ thống Kết quả của cocircng việc nagravey lagrave hệ thống
sẽ khởi chạy một Use Case cụ thể được bắt đầu từ hagravenh động trecircn Người đoacuteng
vai hệ thống sau đoacute sẽ noacutei anh ta lagravem gigrave khi Use Case được thực hiện Nhagrave phaacutet
CuuDuongThanCongcom httpsfbcomtailieudientucntt
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
hoagraven tất
10- THỰC HIỆN CAacuteC USE CASE
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 higravenh ellipse coacute chứa tecircn của sự cộng taacutec đoacute
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
đồ hoạt động Cần phải sử dụng loại biểu đồ nagraveo để tạo ra một bức tranh bao
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 đồ
khaacutec nhau
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
CuuDuongThanCongcom httpsfbcomtailieudientucntt
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
47- Biểu đồ hoạt động (Activity Diagram)
48- Biểu đồ thagravenh phần (Component Diagram)
49- Biểu đồ triển khai (Deployment Diagram)
5- Phần tử mocirc higravenh (model element)
6- Cơ chế chung (General Mechanism)
61- Trang triacute (Adornment)
62- Ghi chuacute (Note)
63- Đặc tả (Specification)
7- Mở rộng UML
71- Khuocircn mẫu (Stereotype)
72- Giaacute trị điacutenh kegravem (Tagged Value)
73- Hạn chế (Constraint)
8- Mocirc higravenh hoacutea với UML
9- Cocircng cụ (Tool)
10- Toacutem tắt về UML
Phần Cacircu hỏi
Chƣơng 4 Mocirc higravenh hoacutea USE CASE
1- Giới thiệu Use Case
2- Một số viacute dụ Use Case
3- Sự cần thiết phải coacute Use Case
4- Mocirc higravenh hoacutea Use Case
5- Biểu đồ Use Case
51- Hệ thống
52- Taacutec nhacircn
53- Tigravem taacutec nhacircn
54- Biểu diễn taacutec nhacircn trong ngocircn ngữ UML
CuuDuongThanCongcom httpsfbcomtailieudientucntt
55- Use Case
56- Tigravem Use Case
57- Viacute dụ tigravem Use Case
6- Caacutec biến thể (Variations) trong một Use Case
7- Quan hệ giữa caacutec Use Case
71- Quan hệ mở rộng
72- Quan hệ sử dụng
73- Quan hệ chung nhoacutem
8- Miecircu tả Use Case
9- Thử Use Case
10- Thực hiện caacutec Use Case
11- Toacutem tắt về Use Case
Phần cacircu hỏi
Chƣơng 6 MOcirc HIgraveNH ĐỘNG
1- Sự cần thiết coacute mocirc higravenh động (Dynamic model)
2- Caacutec thagravenh phần của mocirc higravenh động
3- Ƣu điểm của mocirc higravenh động
4- Sự kiện vagrave thocircng điệp (Event amp Message)
41- Sự kiện (Event)
42- Thocircng điệp (Message)
5- Biểu đồ tuần tự (Sequence diagram)
6- Biểu đồ cộng taacutec (Collaboration Diagram)
7- Biểu đồ trạng thaacutei (State Diagram)
71- Trạng thaacutei vagrave sự biến đổi trạng thaacutei (State transition)
72- Biểu đồ trạng thaacutei
73- Nhận biết trạng thaacutei vagrave sự kiện
CuuDuongThanCongcom httpsfbcomtailieudientucntt
74- Một số lời maacutech bảo cho việc tạo dựng biểu đồ trạng thaacutei
8- Biểu đồ hoạt động (Activity Diagram)
9- Vograveng đời đối tƣợng (Object lifecycle)
91- Vograveng đời sinh ra vagrave chết đi
92- Vograveng đời lặp
10- Xem xeacutet lại mocirc higravenh động
101- Thẩm vấn biểu đồ trạng thaacutei
102- Phối hợp sự kiện
103- Bao giờ thigrave sử dụng biểu đồ nagraveo
104- Lớp con vagrave biểu đồ trạng thaacutei
11- Phối hợp mocirc higravenh đối tƣợng vagrave mocirc higravenh động
12- Toacutem tắt về mocirc higravenh động
Phần cacircu hỏi
CuuDuongThanCongcom httpsfbcomtailieudientucntt
1- DẪN NHẬP
11- Tiacutenh trực quan
Chuacuteng ta coacute thể thấy rằng Một số tập hợp dữ liệu phức tạp nhất định khi
được trigravenh bagravey bằng đồ thị sẽ truyền tải đến người đọc nhiều thocircng tin hơn
so với caacutec dữ liệu thocirc Với phần mềm cũng vậy khi ngagravenh Cocircng nghiệp
của chuacuteng ta ngagravey cagraveng phaacutet triển caacutec hệ thống sẽ trở necircn phức tạp hơn
Khả năng nắm bắt vagrave kiểm soaacutet sự phức tạp đoacute của chuacuteng ta đi kegravem với
khả năng trigravenh bagravey hệ thống một caacutech toagraven diện - một sự trigravenh bagravey vượt ra
ngoagravei giới hạn của những dograveng lệnh thocirc Sự thagravenh cocircng trecircn thị trường của
những ngocircn ngữ như Visual Basic vagrave phần giao diện trực quan của C++
Java đatilde cho thấy sự trigravenh bagravey trực quan mang tiacutenh cốt yếu đối với quaacute
trigravenh phaacutet triển caacutec hệ thống phức tạp
12- Mocirc higravenh trừu tượng
Trước đacircy coacute một thời gian dagravei ngagravenh cocircng nghiệp chuacuteng ta đatilde phải noacutei
tới một Cuộc khủng hoảng phần mềm Caacutec cuộc tranh luận đều dựa trecircn
thực tế lagrave chẳng những nhiều đồ aacuten phần mềm khocircng thể sản sinh ra
những hệ thống thoả matilden đogravei hỏi vagrave nhu cầu của khaacutech hagraveng magrave cograven
vượt quaacute ngacircn saacutech vagrave thời hạn Caacutec cocircng nghệ mới như lập trigravenh hướng
đối tượng lập trigravenh trực quan cũng như caacutec mocirci trường phaacutet triển tiecircn tiến
coacute giuacutep chuacuteng ta nacircng cao năng suất lao động nhưng trong nhiều trường
hợp chuacuteng chỉ hướng tới tầng thấp nhất của việc phaacutet triển phần mềm
phần viết lệnh (coding) Một trong những vấn đề chiacutenh của ngagravenh phaacutet
triển phần mềm thời nay lagrave coacute nhiều đồ aacuten bắt tay vagraveo lập trigravenh quaacute sớm
vagrave tập trung quaacute nhiều vagraveo việc viết code Lyacute do một phần lagrave do ban quản
trị thiếu hiểu biết về quy trigravenh phaacutet triển phần mềm vagrave họ nảy lo acircu khi
thấy đội quacircn lập trigravenh của họ khocircng viết code Vagrave bản thacircn caacutec lập trigravenh
viecircn cũng cảm thấy an tacircm hơn khi họ ngồi viết code - vốn lagrave taacutec vụ magrave
họ quen thuộc ndash hơn lagrave khi xacircy dựng caacutec mocirc higravenh trừu tượng cho hệ
thống magrave họ phải tạo necircn
13- Mocirc higravenh hoacutea trực quan
Mocirc higravenh hoaacute trực quan lagrave một phương thức tư duy về vấn đề sử dụng caacutec
mocirc higravenh được tổ chức xoay quanh caacutec khaacutei niệm đời thực Mocirc higravenh giuacutep
chuacuteng ta hiểu vấn đề giao tiếp với mọi người coacute liecircn quan đến dự aacuten
(khaacutech hagraveng chuyecircn gia lĩnh vực thuộc đề aacuten nhagrave phacircn tiacutech nhagrave thiết
kế hellip) Mocirc higravenh rất hữu dụng trong việc mocirc higravenh hoaacute doanh nghiệp soạn
thảo tagravei liệu thiết kế chương trigravenh cũng như ngacircn hagraveng dữ liệu Mocirc higravenh
CuuDuongThanCongcom httpsfbcomtailieudientucntt
giuacutep hiểu caacutec đogravei hỏi của hệ thống tốt hơn tạo caacutec thiết kế rotilde ragraveng hơn vagrave
xacircy dựng necircn caacutec hệ thống dễ bảo trigrave hơn
Mocirc higravenh lagrave kết quả của sự trừu tượng hoacutea nhằm miecircu tả caacutec thagravenh phần
cốt yếu của một vấn đề hay một cấu truacutec phức tạp qua việc lọc bớt caacutec chi
tiết khocircng quan trọng vagrave lagravem cho vấn đề trở thagravenh dễ hiểu hơn Trừu
tượng hoacutea lagrave một năng lực căn bản của con người cho pheacutep chuacuteng ta giải
quyết caacutec vấn đề phức tạp Caacutec kỹ sư nghệ sĩ vagrave thợ thủ cocircng đatilde xacircy
dựng mocirc higravenh từ hagraveng ngagraven năm nay để thử nghiệm thiết kế trước khi
thực hiện Phaacutet triển phần mềm cũng khocircng lagrave ngoại lệ Để xacircy dựng caacutec
hệ thống phức tạp nhagrave phaacutet triển phải trừu tượng hoacutea nhiều hướng nhigraven
khaacutec nhau của hệ thống sử dụng kyacute hiệu chiacutenh xaacutec để xacircy dựng mocirc higravenh
kiểm tra xem mocirc higravenh coacute thỏa matilden caacutec đogravei hỏi của hệ thống vagrave dần dần
bổ sung thecircm chi tiết để chuyển caacutec mocirc higravenh thagravenh thực hiện
Chuacuteng ta xacircy dựng mocirc higravenh cho caacutec hệ thống phức tạp bởi chuacuteng ta khocircng
thể hiểu thấu đaacuteo những hệ thống như thế trong trạng thaacutei toagraven vẹn của
chuacuteng Khả năng thấu hiểu vagrave nắm bắt tiacutenh phức tạp của con người lagrave coacute
hạn Điều nagravey ta coacute thể thấy rotilde trong viacute dụ của ngagravenh xacircy dựng Nếu bạn
muốn tạo một tuacutep lều ở goacutec vườn bạn coacute thể bắt tay vagraveo xacircy ngay Nếu
bạn xacircy một ngocirci nhagrave coacute lẽ bạn sẽ cần tới bản vẽ nhưng nếu bạn muốn
xacircy một toagrave nhagrave chọc trời thigrave chắc chắn bạn khocircng thể khocircng cần bản vẽ
Thế giới phần mềm của chuacuteng ta cũng thế Chỉ tập trung vagraveo caacutec dograveng
code hay thậm chiacute cả phacircn tiacutech Forms trong Visual Basic chẳng cung cấp
một caacutei nhigraven toagraven cục về việc phaacutet triển đồ aacuten Xacircy dựng mocirc higravenh cho
pheacutep nhagrave thiết kế tập trung vagraveo bức tranh lớn về sự tương taacutec giữa caacutec
thagravenh phần trong đồ aacuten traacutenh bị sa lầy vagraveo những chi tiết riecircng biệt của
từng thagravenh phần
Một mocirci trường kinh doanh mang tiacutenh cạnh tranh gay gắt vagrave luocircn luocircn
thay đổi dẫn đến tiacutenh phức tạp ngagravey cagraveng tăng cao vagrave tiacutenh phức tạp nagravey
đặt ra những thaacutech thức đặc trưng cho caacutec nhagrave phaacutet triển hệ thống Mocirc
higravenh giuacutep chuacuteng ta tổ chức trigravenh bagravey trực quan thấu hiểu vagrave tạo necircn caacutec
hệ thống phức tạp Chuacuteng giuacutep chuacuteng ta đaacutep ứng caacutec thaacutech thức của việc
phaacutet triển phần mềm hocircm nay cũng như ngagravey mai
2- MOcirc TẢ CHU TRIgraveNH PHAacuteT TRIỂN PHẦN MỀM
21- Software Development ndash một bagravei toaacuten phức tạp
Kinh nghiệm của nhiều nhagrave thiết kế vagrave phaacutet triển cho thấy phaacutet triển phần
mềm lagrave một bagravei toaacuten phức tạp Xin necircu một số caacutec lyacute do thường được kể
đến
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Những người phaacutet triển phần mềm rất khoacute hiểu cho đuacuteng những gigrave
người dugraveng cần
Yecircu cầu của người dugraveng thường thay đổi trong thời gian phaacutet triển
Yecircu cầu thường được miecircu tả bằng văn bản dagravei dograveng khoacute hiểu
nhiều khi thậm chiacute macircu thuẫn
Đội quacircn phaacutet triển phần mềm vốn lagrave người ngoagravei cuộc rất khoacute
nhận thức thấu đaacuteo caacutec mối quan hệ tiềm ẩn vagrave phức tạp cần được
thể hiện chiacutenh xaacutec trong caacutec ứng dụng lớn
Khả năng nắm bắt caacutec dữ liệu phức tạp của con người (tại cugraveng
một thời điểm) lagrave coacute hạn
Khoacute định lượng chiacutenh xaacutec hiệu suất của thagravenh phẩm vagrave thỏa matilden
chiacutenh xaacutec sự mong chờ từ phiacutea người dugraveng
Chọn lựa phần cứng vagrave phần mềm thiacutech hợp cho giải phaacutep lagrave một
trong những thaacutech thức lớn đối với Designer
Phần mềm ngoagravei ra cần coacute khả năng thiacutech ứng vagrave mở rộng Phần mềm
được thiết kế tốt lagrave phần mềm đứng vững trước những biến đổi trong mocirci
trường dugrave từ phiacutea cộng đồng người dugraveng hay từ phiacutea cocircng nghệ Viacute dụ
phần mềm đatilde được phaacutet triển cho một nhagrave băng cần coacute khả năng taacutei sử
dụng cho một nhagrave băng khaacutec với rất iacutet sửa đổi hoặc hoagraven toagraven khocircng cần
sửa đổi Phần mềm thoả matilden caacutec yecircu cầu đoacute được coi lagrave phần mềm coacute khả
năng thiacutech ứng
Một phần mềm coacute khả năng mở rộng lagrave phần mềm được thiết kế sao cho
dễ phaacutet triển theo yecircu cầu của người dugraveng magrave khocircng cần sửa chữa nhiều
Chiacutenh vigrave vậy một số caacutec khiếm khuyết thường gặp trong phaacutet triển phần
mềm lagrave
Hiểu khocircng đuacuteng những gigrave người dugraveng cần
Khocircng thể thiacutech ứng cho phugrave hợp với những thay đổi về yecircu cầu
đối với hệ thống
Caacutec Module khocircng khớp với nhau
Phần mềm khoacute bảo trigrave vagrave nacircng cấp mở rộng
Phaacutet hiện trễ caacutec lỗ hổng của dự aacuten
Chất lượng phần mềm keacutem
Hiệu năng của phần mềm thấp
Caacutec thagravenh viecircn trong nhoacutem khocircng biết được ai đatilde thay đổi caacutei gigrave
khi nagraveo ở đacircu tại sao phải thay đổi
CuuDuongThanCongcom httpsfbcomtailieudientucntt
22- Chu Trigravenh Phaacutet Triển Phần Mềm (Software Development Life Cycle)
Vigrave phaacutet triển phần mềm lagrave một bagravei toaacuten khoacute necircn coacute lẽ trước hết ta cần
điểm qua một số caacutec cocircng việc căn bản của quaacute trigravenh nagravey Thường người
ta hay tập hợp chuacuteng theo tiến trigravenh thời gian một caacutech tương đối xoay
quanh chu trigravenh của một phần mềm dẫn tới kết qủa khaacutei niệm Chu Trigravenh
Phaacutet Triển Phần Mềm (Software Development Life Cycle - SDLC) như sau
Chu Trigravenh Phaacutet Triển Phần Mềm lagrave một chuỗi caacutec hoạt động của nhagrave phacircn
tiacutech (Analyst) nhagrave thiết kế (Designer) người phaacutet triển (Developer) vagrave
người dugraveng (User) để phaacutet triển vagrave thực hiện một hệ thống thocircng tin
Những hoạt động nagravey được thực hiện trong nhiều giai đọan khaacutec nhau
Nhagrave phacircn tiacutech (Analyst) lagrave người nghiecircn cứu yecircu cầu của
khaacutech hagravengngười dugraveng để định nghĩa một phạm vi bagravei toaacuten nhận
dạng nhu cầu của một tổ chức xaacutec định xem nhacircn lực phương
phaacutep vagrave cocircng nghệ maacutey tiacutenh coacute thể lagravem sao để cải thiện một caacutech
tốt nhất cocircng taacutec của tổ chức nagravey
Nhagrave thiết kế (Designer) thiết kế hệ thống theo hướng cấu truacutec
của database screens forms vagrave reports ndash quyết định caacutec yecircu cầu
về phần cứng vagrave phần mềm cho hệ thống cần được phaacutet triển
Chuyecircn gia lĩnh vực (Domain Experts) lagrave những người hiểu
thực chất vấn đề cugraveng tất cả những sự phức tạp của hệ thống cần
tin học hoaacute Họ khocircng nhất thiết phải lagrave nhagrave lập trigravenh nhưng họ coacute
thể giuacutep nhagrave lập trigravenh hiểu yecircu cầu đặt ra đối với hệ thống cần phaacutet
triển Quaacute trigravenh phaacutet triển phần mềm sẽ coacute rất nhiều thuận lợi nếu
đội ngũ lagravem phần mềm coacute được sự trợ giuacutep của họ
Lập trigravenh viecircn (Programmer) lagrave những người dựa trecircn caacutec
phacircn tiacutech vagrave thiết kế để viết chương trigravenh (coding) cho hệ thống
bằng ngocircn ngữ lập trigravenh đatilde được thống nhất
Ngƣời dugraveng (User) lagrave đối tượng phục vụ của hệ thống cần được
phaacutet triển
Để cho rotilde hơn xin lấy viacute dụ về một vấn đề đơn giản sau
Người bigravenh thường chuacuteng ta khi nhigraven một chiếc xe ocirc tocirc thường sẽ coacute một
bức tranh từ becircn ngoagravei như sau
Vấn đề
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 11 Nhigraven vấn đề ocirc tocirc của người bigravenh thường
Chuyecircn gia lĩnh vực sẽ giuacutep nhagrave phacircn tiacutech trigravenh bagravey lại vấn đề như sau
Higravenh 12 Nhigraven vấn đề ocirc tocirc của chuyecircn gia phacircn tiacutech
Chiacutenh vigrave sự trợ giuacutep của chuyecircn gia lĩnh vực coacute thể đoacuteng vai trograve rất quan
trọng necircn trong những giai đoạn đầu của quaacute trigravenh phaacutet triển phần mềm
kết quả phacircn tiacutech necircn được thể hiện sao cho dễ hiểu đối với caacutec chuyecircn
gia lĩnh vực Đacircy cũng lagrave mocirct trong rất nhiều lyacute do khiến cho phương phaacutep
hướng đối tượng được nhiều người hưởng ứng
23- Caacutec giai đoạn của Chu Trigravenh Phaacutet Triển Phần Mềm
Chu trigravenh của một phần mềm coacute thể được chia thagravenh caacutec giai đoạn như
sau
Nghiecircn cứu sơ bộ (Preliminary Investigation hay cograven gọi lagrave
Feasibility Study)
Phacircn tiacutech yecircu cầu (Analysis)
Thiết kế hệ thống (Design of the System)
Xacircy dựng phần mềm (Software Construction)
Thử nghiệm hệ thống (System Testing)
Thực hiện triển khai (System Implementation)
Bảo trigrave nacircng cấp (System Maintenance)
a - Nghiecircn cứu sơ bộ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Cacircu hỏi quan trọng nhất khi phaacutet triển một hệ thống hoagraven toagraven
khocircng phải cacircu hỏi mang tiacutenh phương phaacutep luận Magrave cũng chẳng
phải cacircu hỏi về kỹ thuật Noacute lagrave một cacircu hỏi dường như coacute vẻ đơn
giản nhưng thật ra đặc biệt khoacute trả lời ―Đacircy coacute đuacuteng lagrave một hệ
thống để thực hiện khocircng Đaacuteng buồn lagrave chiacutenh cacircu hỏi nagravey trong
thực tế thường chẳng hề được đặt ra vagrave lại cagraveng khocircng được trả lời
Mặc dugrave việc lầm lẫn về phương phaacutep hay quyết định sai lầm về kỹ
thuật cũng coacute thể dẫn tới thất bại nhưng thường thigrave dự aacuten coacute thể
được cứu vatilden nếu coacute đầy đủ tagravei nguyecircn cugraveng sự cố gắng quecircn migravenh
của caacutec nhacircn viecircn tagravei giỏi Nhưng sẽ chẳng một ai vagrave một điều gigrave
cứu vatilden cho một hệ thống phần mềm hoagraven toagraven chẳng được cần tới
hoặc cố gắng tự động hoacutea một quy trigravenh lầm lạc
Trước khi bắt tay vagraveo một dự aacuten bạn phải coacute một yacute tưởng cho noacute Yacute
tưởng nagravey đi song song với việc nắm bắt caacutec yecircu cầu vagrave xuất hiện
trong giai đoạn khởi đầu Noacute hoagraven tất một phaacutet biểu Hệ thống magrave
chuacuteng ta mong muốn sẽ lagravem được những việc như sau Trong
suốt giai đoạn nagravey chuacuteng ta tạo necircn một bức tranh về yacute tưởng đoacute
rất nhiều giả thuyết sẽ được cocircng nhận hay loại bỏ Caacutec hoạt động
trong thời gian nagravey thường bao gồm thu thập caacutec yacute tưởng nhận biết
rủi ro nhận biết caacutec giao diện becircn ngoagravei nhận biết caacutec caacutec chức
năng chiacutenh magrave hệ thống cần cung cấp vagrave coacute thể tạo một vagravei
nguyecircn mẫu dugraveng để ―minh chứng caacutec khaacutei niệm của hệ thống Yacute
tưởng coacute thể đến từ nhiều nguồn khaacutec nhau khaacutech hagraveng chuyecircn
gia lĩnh vực caacutec nhagrave phaacutet triển khaacutec chuyecircn gia về kỹ nghệ caacutec
bản nghiecircn cứu tiacutenh khả thi cũng như việc xem xeacutet caacutec hệ thống
khaacutec đang tồn tại Một khiacutea cạnh cần nhắc tới lagrave code viết trong thời
kỳ nagravey thường sẽ bị bỏ đi bởi chuacuteng được viết nhằm mục điacutech
thẩm tra hay trợ giuacutep caacutec giả thuyết khaacutec nhau chứ chưa phải thứ
code được viết theo kết quả phacircn tiacutech vagrave thiết kế thấu đaacuteo
Trong giai đọan nghiecircn cứu sơ bộ nhoacutem phaacutet triển hệ thống cần
xem xeacutet caacutec yecircu cầu của doanh nghiệp (cần dugraveng hệ thống) những
nguồn tagravei nguyecircn coacute thể sử dụng cocircng nghệ cũng như cộng đồng
người dugraveng cugraveng caacutec yacute tưởng của họ đối với hệ thống mới Coacute thể
thực hiện thảo luận nghiecircn cứu xem xeacutet khiacutea cạnh thương mại
phacircn tiacutech khả năng lời-lỗ phacircn tiacutech caacutec trường hợp sử dụng vagrave tạo
caacutec nguyecircn mẫu để xacircy dựng necircn một khaacutei niệm cho hệ thống điacutech
cugraveng với caacutec mục điacutech quyền ưu tiecircn vagrave phạm vi của noacute
Thường trong giai đoạn nagravey người ta cũng tiến hagravenh tạo một phiecircn
bản thocirc của lịch trigravenh vagrave kế hoạch sử dụng tagravei nguyecircn
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Một giai đoạn nghiecircn cứu sơ bộ thiacutech đaacuteng sẽ lập necircn tập hợp caacutec
yecircu cầu (dugrave ở mức độ khaacutei quaacutet cao) đối với một hệ thống khả thi
vagrave được mong muốn kể cả về phương diện kỹ thuật lẫn xatilde hội Một
giai đoạn nghiecircn cứu sơ bộ khocircng được thực hiện thoả đaacuteng sẽ dẫn
tới caacutec hệ thống khocircng được mong muốn đắt tiền bất khả thi vagrave
được định nghĩa lầm lạc ndash những hệ thống thừơng chẳng được hoagraven
tất hay sử dụng
Kết quả của giai đoạn nghiecircn cứu sơ bộ lagrave Baacuteo Caacuteo Kết Quả Nghiecircn
Cứu Tiacutenh Khả Thi Khi hệ thống tương lai được chấp nhận dựa trecircn
bản baacuteo caacuteo nagravey cũng lagrave luacutec giai đoạn Phacircn tiacutech bắt đầu
b- Phacircn tiacutech yecircu cầu
Sau khi đatilde xem xeacutet về tiacutenh khả thi của hệ thống cũng như tạo lập
một bức tranh sơ bộ của dự aacuten chuacuteng ta bước sang giai đoạn
thường được coi lagrave quan trọng nhất trong caacutec cocircng việc lập trigravenh
hiểu hệ thống cần xacircy dựng Người thực hiện cocircng việc nagravey lagrave nhagrave
phacircn tiacutech
Quaacute trigravenh phacircn tiacutech nhigraven chung lagrave hệ quả của việc trả lời cacircu hỏi Hệ
thống cần phải lagravem gigrave Quaacute trigravenh phacircn tiacutech bao gồm việc nghiecircn
cứu chi tiết hệ thống doanh nghiệp hiện thời tigravem cho ra nguyecircn lyacute
hoạt động của noacute vagrave những vị triacute coacute thể được nacircng cao cải thiện
Becircn cạnh đoacute lagrave việc nghiecircn cứu xem xeacutet caacutec chức năng magrave hệ thống
cần cung cấp vagrave caacutec mối quan hệ của chuacuteng becircn trong cũng như
với phiacutea ngoagravei hệ thống Trong toagraven bộ giai đoạn nagravey nhagrave phacircn tiacutech
vagrave người dugraveng cần cộng taacutec mật thiết với nhau để xaacutec định caacutec yecircu
cầu đối với hệ thống tức lagrave caacutec tiacutenh năng mới cần phải được đưa
vagraveo hệ thống
Những mục tiecircu cụ thể của giai đoạn phacircn tiacutech lagrave
Xaacutec định hệ thống cần phải lagravem gigrave
Nghiecircn cứu thấu đaacuteo tất cả caacutec chức năng cần cung cấp vagrave những
yếu tố liecircn quan
Xacircy dựng một mocirc higravenh necircu bật bản chất vấn đề từ một hướng
nhigraven coacute thực (trong đời sống thực)
Trao định nghĩa vấn đề cho chuyecircn gia lĩnh vực để nhận sự đaacutenh
giaacute goacutep yacute
Kết quả của giai đoạn phacircn tiacutech lagrave bản Đặc Tả Yecircu Cầu
(Requirements Specifications)
c - Thiết kế hệ thống
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Sau giai đoạn phacircn tiacutech khi caacutec yecircu cầu cụ thể đối với hệ thống đatilde được
xaacutec định giai đoạn tiếp theo lagrave thiết kế cho caacutec yecircu cầu mới Cocircng taacutec
thiết kế xoay quanh cacircu hỏi chiacutenh Hệ thống lagravem caacutech nagraveo để thỏa matilden
caacutec yecircu cầu đatilde được necircu trong Đặc Tả Yecircu Cầu
Một số caacutec cocircng việc thường được thực hiện trong giai đoạn thiết kế
Nhận biết form nhập liệu tugravey theo caacutec thagravenh phần dữ liệu cần
nhập
Nhận biết reports vagrave những output magrave hệ thống mới phải sản sinh
Thiết kế forms (vẽ trecircn giấy hay maacutey tiacutenh sử dụng cocircng cụ thiết
kế)
Nhận biết caacutec thagravenh phần dữ liệu vagrave bảng để tạo database
Ước tiacutenh caacutec thủ tục giải thiacutech quaacute trigravenh xử lyacute từ input đến output
Kết quả giai đoạn thiết kế lagrave Đặc Tả Thiết Kế (Design Specifications) Bản
Đặc Tả Thiết Kế Chi Tiết sẽ được chuyển sang cho caacutec lập trigravenh viecircn để
thực hiện giai đoạn xacircy dựng phần mềm
d - Xacircy dựng phần mềm
Đacircy lagrave giai đoạn viết lệnh (code) thực sự tạo hệ thống Từng người viết
code thực hiện những yecircu cầu đatilde được nhagrave thiết kế định sẵn Cũng chiacutenh
người viết code chịu traacutech nhiệm viết tagravei liệu liecircn quan đến chương trigravenh
giải thiacutech thủ tục (procedure) magrave anh ta tạo necircn được viết như thế nagraveo vagrave
lyacute do cho việc nagravey
Để đảm bảo chương trigravenh được viết necircn phải thoả matilden mọi yecircu cầu coacute ghi
trước trong bản Đặc Tả Thiết Kế Chi Tiết người viết code cũng đồng thời
phải tiến hagravenh thử nghiệm phần chương trigravenh của migravenh Phần thử nghiệm
trong giai đoạn nagravey coacute thể được chia thagravenh hai bước chiacutenh
Thử nghiệm đơn vị
Người viết code chạy thử caacutec phần chương trigravenh của migravenh với dữ liệu giả
(testdummy data) Việc nagravey được thực hiện theo một kế hoạch thử cũng
do chiacutenh người viết code soạn ra Mục điacutech chiacutenh trong giai đoạn thử nagravey
lagrave xem chương trigravenh coacute cho ra những kết quả mong đợi Giai đoạn thử
nghiệm đơn vị nhiều khi được gọi lagrave Thử hộp trắng (White Box Testing)
Thử nghiệm đơn vị độc lập
Cocircng việc nagravey do một thagravenh viecircn khaacutec trong nhoacutem đảm traacutech Cần chọn
người khocircng coacute liecircn quan trực tiếp đến việc viết code của đơn vị chương
trigravenh cần thử nghiệm để đảm bảo tiacutenh ―độc lập Cocircng việc thử đợt nagravey
cũng được thực hiện dựa trecircn kế hoạch thử do người viết code soạn necircn
CuuDuongThanCongcom httpsfbcomtailieudientucntt
e- Thử nghiệm hệ thống
Sau khi caacutec thủ tục đatilde được thử nghiệm riecircng cần phải thử nghiệm toagraven
bộ hệ thống Mọi thủ tục được tiacutech hợp vagrave chạy thử kiểm tra xem mọi chi
tiết ghi trong Đặc Tả Yecircu Cầu vagrave những mong chờ của người dugraveng coacute được
thoả matilden Dữ liệu thử cần được chọn lọc đặc biệt kết quả cần được phacircn
tiacutech để phaacutet hiện mọi lệch lạc so với mong chờ
f - Thực hiện triển khai
Trong giai đoạn nagravey hệ thống vừa phaacutet triển sẽ được triển khai sao cho
phiacutea người dugraveng Trước khi để người dugraveng thật sự bắt tay vagraveo sử dụng hệ
thống nhoacutem caacutec nhagrave phaacutet triển cần tạo caacutec file dữ liệu cần thiết cũng như
huấn luyện cho người dugraveng để đảm bảo hệ thống được sử dụng hữu hiệu
nhất
g - Bảo trigrave nacircng cấp
Tugravey theo caacutec biến đổi trong mocirci trường sử dụng hệ thống coacute thể trở necircn
lỗi thời hay cần phải được sửa đổi nacircng cấp để sử dụng coacute hiệu quả Hoạt
động bảo trigrave hệ thống coacute thể rất khaacutec biệt tugravey theo mức độ sửa đổi vagrave
nacircng cấp cần thiết
Sơ đồ tổng quaacutet caacutec giai đoạn của Chu Trigravenh Phaacutet Triển Phần Mềm
Higravenh 13 Sơ đồ tổng quaacutet caacutec giai đoạn của Chu Trigravenh Phaacutet Triển Phần Mềm
CuuDuongThanCongcom httpsfbcomtailieudientucntt
3- Phương phaacutep hướng chức năng vagrave phương phaacutep hướng đối tượng
31- Phương phaacutep hướng chức năng
Đacircy lagrave lối tiếp cận truyền thống của ngagravenh Cocircng nghệ phần mềm Theo lối
tiếp cận nagravey chuacuteng ta quan tacircm chủ yếu tới những thocircng tin magrave hệ thống
sẽ giữ gigraven Chuacuteng ta hỏi người dugraveng xem họ sẽ cần những thocircng tin nagraveo
rồi chuacuteng ta thiết kế ngacircn hagraveng dữ liệu để chứa những thocircng tin đoacute cung
cấp Forms để nhập thocircng tin vagrave in baacuteo caacuteo để trigravenh bagravey caacutec thocircng tin Noacutei
một caacutech khaacutec chuacuteng ta tập trung vagraveo thocircng tin vagrave khocircng mấy để yacute đến
những gigrave coacute thể xảy ra với những hệ thống đoacute vagrave caacutech hoạt động (ứng xử)
của hệ thống lagrave ra sao Đacircy lagrave lối tiệm cận xoay quanh dữ liệu vagrave đatilde được
aacutep dụng để tạo necircn hagraveng ngagraven hệ thống trong suốt nhiều năm trời
Lối tiếp cận xoay quanh dữ liệu lagrave phương phaacutep tốt cho việc thiết kế ngacircn
hagraveng dữ liệu vagrave nắm bắt thocircng tin nhưng nếu aacutep dụng cho việc thiết kế
ứng dụng lại coacute thể khiến phaacutet sinh nhiều khoacute khăn Một trong những
thaacutech thức lớn lagrave yecircu cầu đối với caacutec hệ thống thường xuyecircn thay đổi Một
hệ thống xoay quanh dữ liệu coacute thể dể dagraveng xử lyacute việc thay đổi ngacircn hagraveng
dữ liệu nhưng lại khoacute thực thi những thay đổi trong nguyecircn tắc nghiệp vụ
hay caacutech hoạt động của hệ thống
Phương phaacutep hướng đối tượng đatilde được phaacutet triển để trả lời cho vấn đề đoacute
Với lối tiếp cận hướng đối tượng chuacuteng ta tập trung vagraveo cả hai mặt của
vấn đề thocircng tin vagrave caacutech hoạt động
32- Phương phaacutep hướng đối tượng
Hướng đối tượng lagrave thuật ngữ thocircng dụng hiện thời của ngagravenh cocircng
nghiệp phần mềm Caacutec cocircng ty đang nhanh choacuteng tigravem caacutech aacutep dụng vagrave
tiacutech hợp cocircng nghệ mới nagravey vagraveo caacutec ứng dụng của họ Thật sự lagrave đa phần
caacutec ứng dụng hiện thời đều mang tiacutenh hướng đối tượng Nhưng hướng đối
tượng coacute nghĩa lagrave gigrave
Lối tiếp cận hướng đối tượng lagrave một lối tư duy về vấn đề theo lối aacutenh xạ
caacutec thagravenh phần trong bagravei toaacuten vagraveo caacutec đối tượng ngoagravei đời thực Với lối
tiếp cận nagravey chuacuteng ta chia ứng dụng thagravenh caacutec thagravenh phần nhỏ gọi lagrave caacutec
đối tượng chuacuteng tương đối độc lập với nhau Sau đoacute ta coacute thể xacircy dựng
ứng dụng bằng caacutech chắp caacutec đối tượng đoacute lại với nhau Hatildey nghĩ đến trograve
chơi xacircy lacircu đagravei bằng caacutec mẫu gỗ Bước đầu tiecircn lagrave tạo hay mua một vagravei
loại mẫu gỗ căn bản từ đoacute tạo necircn caacutec khối xacircy dựng căn bản của migravenh
Một khi đatilde coacute caacutec khối xacircy dựng đoacute bạn coacute thể chắp raacutep chuacuteng lại với
nhau để tạo lacircu đagravei Tương tự như vậy một khi đatilde xacircy dựng một số đối
CuuDuongThanCongcom httpsfbcomtailieudientucntt
tượng căn bản trong thế giới maacutey tiacutenh bạn coacute thể chắp chuacuteng lại với nhau
để tạo ứng dụng của migravenh
Xin lấy một viacute dụ đơn giản vấn đề ruacutet tiền mặt tại nhagrave băng Caacutec ―mẫu
gỗ― thagravenh phần ở đacircy sẽ lagrave aacutenh xạ của caacutec đối tượng ngoagravei đời thực như
tagravei khoản nhacircn viecircn khaacutech hagraveng hellipVagrave ứng dụng sẽ được sẽ được nhận
diện cũng như giải đaacutep xoay quanh caacutec đối tượng đoacute
4- ƢU ĐIỂM CỦA MOcirc HIgraveNH HƢỚNG ĐỐI TƢỢNG
41- Tiacutenh taacutei sử dụng (Reusable)
Phương phaacutep phacircn tiacutech vagrave thiết kế hướng đối tượng thực hiện theo caacutec thuật ngữ
vagrave khaacutei niệm của phạm vi lĩnh vực ứng dụng (tức lagrave của doanh nghiệp hay đơn vị
magrave hệ thống tương lai cần phục vụ) necircn noacute tạo sự tiếp cận tương ứng giữa hệ
thống vagrave vấn đề thực ngoagravei đời Trong viacute dụ baacuten xe ocirc tocirc mọi giai đoạn phacircn tiacutech
thiết kế vagrave thực hiện đều xoay quanh caacutec khaacutei niệm như khaacutech hagraveng nhacircn viecircn
baacuten hagraveng xe ocirc tocirc hellip Vigrave quaacute trigravenh phaacutet triển phần mềm đồng thời lagrave quaacute trigravenh
cộng taacutec của khaacutech hagravengngười dugraveng nhagrave phacircn tiacutech nhagrave thiết kế nhagrave phaacutet triển
chuyecircn gia lĩnh vực chuyecircn gia kỹ thuật necircn lối tiếp cận nagravey khiến cho việc
giao tiếp giữa họ với nhau được dễ dagraveng hơn
Một trong những ưu điểm quan trọng bậc nhất của phương phaacutep phacircn tiacutech vagrave
thiết kế hướng đối tượng lagrave tiacutenh taacutei sử dụng bạn coacute thể tạo caacutec thagravenh phần (đối
tượng) một lần vagrave dugraveng chuacuteng nhiều lần sau đoacute Giống như việc bạn coacute thể taacutei sử
dụng caacutec khối xacircy dựng (hay bản sao của noacute ) trong một toagrave lacircu đagravei một ngocirci
nhagrave ở một con tagraveu vũ trụ bạn cũng coacute thể taacutei sử dụng caacutec thagravenh phần (đối
tượng) căn bản trong caacutec thiết kế hướng đối tượng cũng như code của một hệ
thống kế toaacuten hệ thống kiểm kecirc hoặc một hệ thống đặt hagraveng
Vigrave caacutec đối tượng đatilde được thử nghiệm kỹ cagraveng trong lần dugraveng trước đoacute necircn khả
năng taacutei sử dụng đối tượng coacute taacutec dụng giảm thiểu lỗi vagrave caacutec khoacute khăn trong việc
bảo trigrave giuacutep tăng tốc độ thiết kế vagrave phaacutet triển phần mềm
Phương phaacutep hướng đối tượng giuacutep chuacuteng ta xử lyacute caacutec vấn đề phức tạp trong
phaacutet triển phần mềm vagrave tạo ra caacutec thế hệ phần mềm coacute khả năng thiacutech ứng vagrave
bền chắc
42- Caacutec giai đoạn của chu trigravenh phaacutet triển phần mềm với mocirc
higravenh hƣớng đối tƣợng
Phacircn tiacutech hƣớng đối tƣợng (Object Oriented Analysis
- OOA)
Lagrave giai đọan phaacutet triển một mocirc higravenh chiacutenh xaacutec vagrave suacutec tiacutech của vấn đề coacute thagravenh
phần lagrave caacutec đối tượng vagrave khaacutei niệm đời thực dễ hiểu đối với người sử dụng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Trong giai đoạn OOA vấn đề được trigravenh bagravey bằng caacutec thuật ngữ tương ứng với
caacutec đối tượng coacute thực Thecircm vagraveo đoacute hệ thống cần phải được định nghĩa sao cho
người khocircng chuyecircn Tin học coacute thể dễ dagraveng hiểu được
Dựa trecircn một vấn đề coacute sẵn nhagrave phacircn tiacutech cần aacutenh xạ caacutec đối tượng hay thực
thể coacute thực như khaacutech hagraveng ocirc tocirc người baacuten hagraveng hellip vagraveo thiết kế để tạo ra được
bản thiết kế gần cận với tigravenh huống thực Mocirc higravenh thiết kế sẽ chứa caacutec thực thể
trong một vấn đề coacute thực vagrave giữ nguyecircn caacutec mẫu higravenh về cấu truacutec quan hệ cũng
như hagravenh vi của chuacuteng Noacutei một caacutech khaacutec sử dụng phương phaacutep hướng đối
tượng chuacuteng ta coacute thể mocirc higravenh hoacutea caacutec thực thể thuộc một vấn đề coacute thực magrave
vẫn giữ được cấu truacutec quan hệ cũng như hagravenh vi của chuacuteng
Đối với viacute dụ một phograveng baacuten ocirc tocirc giai đoạn OOA sẽ nhận biết được caacutec thực thể
như
Khaacutech hagraveng
Người baacuten hagraveng
Phiếu đặt hagraveng
Phiếu (hoaacute đơn) thanh toaacuten
Xe ocirc tocirc
Tương taacutec vagrave quan hệ giữa caacutec đối tượng trecircn lagrave
Người baacuten hagraveng dẫn khaacutech hagraveng tham quan phograveng trưng bagravey xe
Khaacutech hagraveng chọn một chiếc xe
Khaacutech hagraveng viết phiếu đặt xe
Khaacutech hagraveng trả tiền xe
Xe ocirc tocirc được giao đến cho khaacutech hagraveng
Đối với viacute dụ nhagrave băng lẻ giai đoạn OOA sẽ nhận biết được caacutec thực thể như
Loại tagravei khoản ATM (ruacutet tiền tự động) Savings (tiết kiệm) Current
(bigravenh thường) Fixed (đầu tư)
Khaacutech hagraveng
Nhacircn viecircn
Phograveng maacutey tiacutenh
Tương taacutec vagrave quan hệ giữa caacutec đối tượng trecircn
Một khaacutech hagraveng mới mở một tagravei khoản tiết kiệm
Chuyển tiền từ tagravei khoản tiết kiệm sang tagravei khoản đầu tư
Chuyển tiền từ tagravei khoản tiết kiệm sang tagravei khoản ATM
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Xin chuacute yacute lagrave ở đacircy như đatilde noacutei ta chuacute yacute đến cả hai khiacutea cạnh thocircng tin vagrave caacutech
hoạt động của hệ thống (tức lagrave những gigrave coacute thể xảy ra với những thocircng tin đoacute)
Lối phacircn tiacutech bằng kiểu aacutenh xạ đời thực vagraveo maacutey tiacutenh như thế thật sự lagrave ưu
điểm lớn của phương phaacutep hướng đối tượng
Thiết kế hƣớng đối tƣợng (Object Oriented Design -
OOD)
Lagrave giai đoạn tổ chức chương trigravenh thagravenh caacutec tập hợp đối tượng cộng taacutec mỗi đối
tượng trong đoacute lagrave thực thể của một lớp Caacutec lớp lagrave thagravenh viecircn của một cacircy cấu
truacutec với mối quan hệ thừa kế
Mục điacutech của giai đoạn OOD lagrave tạo thiết kế dựa trecircn kết quả của giai đoạn OOA
dựa trecircn những quy định phi chức năng những yecircu cầu về mocirci trường những
yecircu cầu về khả năng thực thi OOD tập trung vagraveo việc cải thiện kết quả của
OOA tối ưu hoacutea giải phaacutep đatilde được cung cấp trong khi vẫn đảm bảo thoả matilden tất
cả caacutec yecircu cầu đatilde được xaacutec lập
Trong giai đoạn OOD nhagrave thiết kế định nghĩa caacutec chức năng thủ tục
(operations) thuộc tiacutenh (attributes) cũng như mối quan hệ của một hay nhiều
lớp (class) vagrave quyết định chuacuteng cần phải được điều chỉnh sao cho phugrave hợp với
mocirci trường phaacutet triển Đacircy cũng lagrave giai đoạn để thiết kế ngacircn hagraveng dữ liệu vagrave aacutep
dụng caacutec kỹ thuật tiecircu chuẩn hoacutea
Về cuối giai đoạn OOD nhagrave thiết kế đưa ra một loạt caacutec biểu đồ (diagram) khaacutec
nhau Caacutec biểu đồ nagravey coacute thể được chia thagravenh hai nhoacutem chiacutenh lagrave Tĩnh vagrave động
Caacutec biểu đồ tĩnh biểu thị caacutec lớp vagrave đối tượng trong khi biểu đồ động biểu thị
tương taacutec giữa caacutec lớp vagrave phương thức hoạt động chiacutenh xaacutec của chuacuteng Caacutec lớp
đoacute sau nagravey coacute thể được nhoacutem thagravenh caacutec goacutei (Packages) tức lagrave caacutec đơn vị thagravenh
phần nhỏ hơn của ứng dụng
Lập trigravenh hƣớng đối tƣợng (Object Oriented
Programming - OOP)
Giai đoạn xacircy dựng phần mềm coacute thể được thực hiện sử dụng kỹ thuật lập trigravenh
hướng đối tượng Đoacute lagrave phương thức thực hiện thiết kế hướng đối tượng qua việc
sử dụng một ngocircn ngữ lập trigravenh coacute hỗ trợ caacutec tiacutenh năng hướng đối tượng Một vagravei
ngocircn ngữ hướng đối tượng thường được nhắc tới lagrave C++ vagrave Java Kết quả chung
cuộc của giai đoạn nagravey lagrave một loạt caacutec code chạy được noacute chỉ được đưa vagraveo sử
dụng sau khi đatilde trải qua nhiều vograveng quay của nhiều bước thử nghiệm khaacutec nhau
PHẦN CAcircU HỎI
Hỏi Một số tập hợp dữ liệu phức tạp nhất định khi được trigravenh bagravey bằng đồ thị
sẽ truyền tải đến người đọc nhiều thocircng tin hơn so với caacutec dữ liệu thocirc
Đaacutep Đuacuteng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Hỏi Mocirc higravenh giuacutep chuacuteng ta tổ chức trigravenh bagravey trực quan thấu hiểu vagrave tạo necircn
caacutec hệ thống phức tạp
Đaacutep Đuacuteng
Hỏi Ưu điểm lớn nhất của mocirc higravenh hướng đối tượng lagrave tiacutenh taacutei sử dụng
(Reusable)
Đaacutep Đuacuteng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
1- GIỚI THIỆU UML
11- Mocirc higravenh hoacutea hệ thống phần mềm
Như đatilde trigravenh bagravey ở phần trước mục tiecircu của giai đoạn phacircn tiacutech hệ thống lagrave sản
xuất ra một mocirc higravenh tổng thể của hệ thống cần xacircy dựng Mocirc higravenh nagravey cần phải
được trigravenh bagravey theo hướng nhigraven (View) của khaacutech hagraveng hay người sử dụng vagrave
lagravem sao để họ hiểu được Mocirc higravenh nagravey cũng coacute thể được sử dụng để xaacutec định caacutec
yecircu cầu của người dugraveng đối với hệ thống vagrave qua đoacute giuacutep chuacuteng ta đaacutenh giaacute tiacutenh
khả thi của dự aacuten
Tầm quan trọng của mocirc higravenh đatilde được lĩnh hội một caacutech thấu đaacuteo trong hầu như
tất cả caacutec ngagravenh khoa học kỹ thuật từ nhiều thế kỷ nay Bất kỳ ở đacircu khi muốn
xacircy dựng một vật thể nagraveo đoacute đầu tiecircn người ta đatilde tạo necircn caacutec bản vẽ để quyết
định cả ngoại higravenh lẫn phương thức hoạt động của noacute Chẳng hạn caacutec bản vẽ kỹ
thuật thường gặp lagrave một dạng mocirc higravenh quen thuộc Mocirc higravenh nhigraven chung lagrave một
caacutech mocirc tả của một vật thể nagraveo đoacute Vật đoacute coacute thể tồn tại trong một số giai đoạn
nhất định dugrave đoacute lagrave giai đoạn thiết kế hay giai đoạn xacircy dựng hoặc chỉ lagrave một kế
hoạch Nhagrave thiết kế cần phải tạo ra caacutec mocirc higravenh mocirc tả tất cả caacutec khiacutea cạnh khaacutec
nhau của sản phẩm Ngoagravei ra một mocirc higravenh coacute thể được chia thagravenh nhiều hướng
nhigraven mỗi hướng nhigraven trong số chuacuteng sẽ mocirc tả một khiacutea cạnh riecircng biệt của sản
phẩm hay hệ thống cần được xacircy dựng Một mocirc higravenh cũng coacute thể được xacircy dựng
trong nhiều giai đoạn vagrave ở mỗi giai đoạn mocirc higravenh sẽ được bổ sung thecircm một số
chi tiết nhất định
Mocirc higravenh thường được mocirc tả trong ngocircn ngữ trực quan điều đoacute coacute nghĩa lagrave đa
phần caacutec thocircng tin được thể hiện bằng caacutec kyacute hiệu đồ họa vagrave caacutec kết nối giữa
chuacuteng chỉ khi cần thiết một số thocircng tin mới được biểu diễn ở dạng văn bản
Theo đuacuteng như cacircu ngạn ngữ Một bức tranh noacutei nhiều hơn cả ngagraven từ Tạo mocirc
higravenh cho caacutec hệ thống phần mềm trước khi thực sự xacircy dựng necircn chuacuteng đatilde trở
thagravenh một chuẩn mực trong việc phaacutet triển phần mềm vagrave được chấp nhận trong
cộng đồng lagravem phần mềm giống như trong bất kỳ một ngagravenh khoa học kỹ thuật
nagraveo khaacutec Việc biểu diễn mocirc higravenh phải thoatilde matilden caacutec yếu tố sau
Chiacutenh xaacutec (accurate) Mocirc tả đuacuteng hệ thống cần xacircy dựng
Đồng nhất (consistent) Caacutec view khaacutec nhau khocircng được macircu
thuẩn với nhau
Coacute thể hiểu được (understandable) Cho những người xacircy dựng lẫn
sử dụng
Dễ thay đổi (changeable)
Dễ dagraveng liecircn lạc với caacutec mocirc higravenh khaacutec
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Coacute thể noacutei thecircm rằng mocirc higravenh lagrave một sự đơn giản hoaacute hiện thực Mocirc higravenh được
xacircy dựng necircn để chuacuteng ta dễ dagraveng hiểu vagrave hiểu tốt hơn hệ thống cần xacircy dựng
Tạo mocirc higravenh sẽ giuacutep cho chuacuteng ta hiểu thấu đaacuteo một hệ thống phức tạp trong sự
toagraven thể của noacute
Noacutei toacutem lại mocirc higravenh hoacutea một hệ thống nhằm mục điacutech
Higravenh dung một hệ thống theo thực tế hay theo mong muốn của
chuacuteng ta
Chỉ rotilde cấu truacutec hoặc ứng xử của hệ thống
Tạo một khuocircn mẫu hướng dẫn nhagrave phaacutet triển trong suốt quaacute trigravenh
xacircy dựng hệ thống
Ghi lại caacutec quyết định của nhagrave phaacutet triển để sử dụng sau nagravey
12- Trƣớc khi UML ra đời
Đầu những năm 1980 ngagravenh cocircng nghệ phần mềm chỉ coacute duy nhất một ngocircn
ngữ hướng đối tượng lagrave Simula Sang nửa sau của thập kỷ 1980 caacutec ngocircn ngữ
hướng đối tượng như Smalltalk vagrave C++ xuất hiện Cugraveng với chuacuteng nảy sinh nhu
cầu mocirc higravenh hoaacute caacutec hệ thống phần mềm theo hướng đối tượng Vagrave một vagravei
trong số những ngocircn ngữ mocirc higravenh hoaacute xuất hiện những năm đầu thập kỷ 90
được nhiều người dugraveng lagrave
Grady Boochrsquos Booch Modeling Methodology
James Rambaughrsquos Object Modeling Technique ndash OMT
Ivar Jacobsonrsquos OOSE Methodology
Hewlett- Packardrsquos Fusion
Coad and Yordonrsquos OOA and OOD
Mỗi phương phaacutep luận vagrave ngocircn ngữ trecircn đều coacute hệ thống kyacute hiệu riecircng phương
phaacutep xử lyacute riecircng vagrave cocircng cụ hỗ trợ riecircng khiến nảy ra cuộc tranh luận phương
phaacutep nagraveo lagrave tốt nhất Đacircy lagrave cuộc tranh luận khoacute coacute cacircu trả lời bởi tất cả caacutec
phương phaacutep trecircn đều coacute những điểm mạnh vagrave điểm yếu riecircng Vigrave thế caacutec nhagrave
phaacutet triển phần mềm nhiều kinh nghiệm thường sử dụng phối hợp caacutec điểm
mạnh của mỗi phương phaacutep cho ứng dụng của migravenh Trong thực tế sự khaacutec biệt
giữa caacutec phương phaacutep đoacute hầu như khocircng đaacuteng kể vagrave theo cugraveng tiến trigravenh thời
gian tất cả những phương phaacutep trecircn đatilde tiệm cận lại vagrave bổ sung lẫn cho nhau
Chiacutenh hiện thực nagravey đatilde được những người tiecircn phong trong lĩnh vực mocirc higravenh hoaacute
hướng đối tượng nhận ra vagrave họ quyết định ngồi lại cugraveng nhau để tiacutech hợp những
điểm mạnh của mỗi phương phaacutep vagrave đưa ra một mocirc higravenh thống nhất cho lĩnh vực
cocircng nghệ phần mềm
CuuDuongThanCongcom httpsfbcomtailieudientucntt
13- Sự ra đời của UML
Trong bối cảnh trecircn người ta nhận thấy cần thiết phải cung cấp một phương
phaacutep tiệm cận được chuẩn hoaacute vagrave thống nhất cho việc mocirc higravenh hoaacute hướng đối
tượng Yecircu cầu cụ thể lagrave đưa ra một tập hợp chuẩn hoaacute caacutec kyacute hiệu (Notation) vagrave
caacutec biểu đồ (Diagram) để nắm bắt caacutec quyết định về mặt thiết kế một caacutech rotilde
ragraveng ragravenh mạch Đatilde coacute ba cocircng trigravenh tiecircn phong nhắm tới mục tiecircu đoacute chuacuteng
được thực hiện dưới sự latildenh đạo của James Rumbaugh Grady Booch vagrave Ivar
Jacobson Chiacutenh những cố gắng nagravey dẫn đến kết quả lagrave xacircy dựng được một Ngocircn
Ngữ Mocirc Higravenh Hoaacute Thống Nhất (Unifield Modeling Language ndash UML)
UML lagrave một ngocircn ngữ mocirc higravenh hoaacute thống nhất coacute phần chiacutenh bao gồm những kyacute
hiệu higravenh học được caacutec phương phaacutep hướng đối tượng sử dụng để thể hiện vagrave
miecircu tả caacutec thiết kế của một hệ thống Noacute lagrave một ngocircn ngữ để đặc tả trực quan
hoaacute xacircy dựng vagrave lagravem sưu liệu cho nhiều khiacutea cạnh khaacutec nhau của một hệ thống
coacute nồng độ phần mềm cao UML coacute thể được sử dụng lagravem cocircng cụ giao tiếp giữa
người dugraveng nhagrave phacircn tiacutech nhagrave thiết kế vagrave nhagrave phaacutet triển phần mềm
Trong quaacute trigravenh phaacutet triển coacute nhiều cocircng ty đatilde hỗ trợ vagrave khuyến khiacutech phaacutet triển
UML coacute thể kể tới như Hewlett Packard Microsoft Oracle IBM Unisys
14- UML (Unifield Modeling Language)
Ngocircn ngữ mocirc higravenh hoacutea thống nhất (Unifield Modeling Language ndash UML) lagrave một
ngocircn ngữ để biểu diễn mocirc higravenh theo hướng đối tượng được xacircy dựng bởi ba taacutec
giả trecircn với chủ điacutech lagrave
Mocirc higravenh hoaacute caacutec hệ thống sử dụng caacutec khaacutei niệm hướng đối tượng
Thiết lập một kết nối từ nhận thức của con người đến caacutec sự kiện
cần mocirc higravenh hoaacute
Giải quyết vấn đề về mức độ thừa kế trong caacutec hệ thống phức tạp
coacute nhiều ragraveng buộc khaacutec nhau
Tạo một ngocircn ngữ mocirc higravenh hoaacute coacute thể sử dụng được bởi người vagrave
maacutey
15- Phƣơng phaacutep vagrave caacutec ngocircn ngữ mocirc higravenh hoaacute
Phương phaacutep hay phương thức (method) lagrave một caacutech trực tiếp cấu truacutec hoaacute sự
suy nghĩ vagrave hagravenh động của con người Phương phaacutep cho người sử dụng biết phải
lagravem gigrave lagravem như thế nagraveo khi nagraveo vagrave tại sao (mục điacutech của hagravenh động) Phương
phaacutep chứa caacutec mocirc higravenh (model) caacutec mocirc higravenh được dugraveng để mocirc tả những gigrave sử
dụng cho việc truyền đạt kết quả trong quaacute trigravenh sử dụng phương phaacutep Điểm
khaacutec nhau chiacutenh giữa một phương phaacutep vagrave một ngocircn ngữ mocirc higravenh hoaacute (modeling
CuuDuongThanCongcom httpsfbcomtailieudientucntt
language) lagrave ngocircn ngữ mocirc higravenh hoaacute khocircng coacute một tiến trigravenh (process) hay caacutec
cacircu lệnh (instruction) mocirc tả những cocircng việc người sử dụng cần lagravem
Một mocirc higravenh được biểu diễn theo một ngocircn ngữ mocirc higravenh hoaacute Ngocircn ngữ mocirc higravenh
hoaacute bao gồm caacutec kyacute hiệu ndash những biểu tượng được dugraveng trong mocirc higravenh ndash vagrave một
tập caacutec quy tắc chỉ caacutech sử dụng chuacuteng Caacutec quy tắc nagravey bao gồm
Syntactic (Cuacute phaacutep) cho biết higravenh dạng caacutec biểu tượng vagrave caacutech kết
hợp chuacuteng trong ngocircn ngữ
Semantic (Ngữ nghĩa) cho biết yacute nghĩa của mỗi biểu tượng chuacuteng
được hiểu thế nagraveo khi nằm trong hoặc khocircng nằm trong ngữ cảnh
của caacutec biểu tượng khaacutec
Pragmatic định nghĩa yacute nghĩa của biểu tượng để sao cho mục điacutech
của mocirc higravenh được thể hiện vagrave mọi người coacute thể hiểu được
2- UML TRONG PHAcircN TIacuteCH THIẾT KẾ HỆ THỐNG
UML coacute thể được sử dụng trong nhiều giai đoạn từ phaacutet triển thiết kế cho tới
thực hiện vagrave bảo trigrave Vigrave mục điacutech chiacutenh của ngocircn ngữ nagravey lagrave dugraveng caacutec biểu đồ
hướng đối tượng để mocirc tả hệ thống necircn miền ứng dụng của UML bao gồm nhiều
loại hệ thống khaacutec nhau như
Hệ thống thống tin (Information System) Cất giữ lấy biến đổi
biểu diễn thocircng tin cho người sử dụng Xử lyacute những khoảng dữ liệu
lớn coacute caacutec quan hệ phức tạp magrave chuacuteng được lưu trữ trong caacutec cơ sở
dữ liệu quan hệ hay hướng đối tượng
Hệ thống kỹ thuật (Technical System) Xử lyacute vagrave điều khiển caacutec
thiết bị kỹ thuật như viễn thocircng hệ thống quacircn sự hay caacutec quaacute
trigravenh cocircng nghiệp Đacircy lagrave loại thiết bị phải xử lyacute caacutec giao tiếp đặc
biệt khocircng coacute phần mềm chuẩn vagrave thường lagrave caacutec hệ thống thời gian
thực (real time)
Hệ thống nhuacuteng (Embeded System) Thực hiện trecircn phần cứng
gắn vagraveo caacutec thiết bị như điện thoại di động điều khiển xe hơi hellip
Điều nagravey được thực hiện bằng việc lập trigravenh mức thấp với hỗ trợ thời
gian thực Những hệ thống nagravey thường khocircng coacute caacutec thiết bị như
magraven higravenh đĩa cứng hellip
Hệ thống phacircn bố ( Distributed System) Được phacircn bố trecircn
một số maacutey cho pheacutep truyền dữ liệu từ nơi nagravey đến nơi khaacutec một
caacutech dễ dagraveng Chuacuteng đogravei hỏi caacutec cơ chế liecircn lạc đồng bộ để đảm bảo
toagraven vẹn dữ liệu vagrave thường được xacircy dựng trecircn một số caacutec kỹ thuật
đối tượng như CORBA COMDCOM hay Java BeansRMI
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Hệ thống Giao dịch (Business System) Mocirc tả mục điacutech tagravei
nguyecircn (con người maacutey tiacutenh hellip) caacutec quy tắc (luật phaacutep chiến
thuật kinh doanh cơ chế hellip) vagrave cocircng việc hoạt động kinh doanh
Phần mềm hệ thống (System Software) Định nghĩa cơ sở hạ
tầng kỹ thuật cho phần mềm khaacutec sử dụng chẳng hạn như hệ điều
hagravenh cơ sở dữ liệu giao diện người sử dụng
3- UML VAgrave CAacuteC GIAI ĐOẠN PHAacuteT TRIỂN HỆ THỐNG
Preliminary Investigation use cases thể hiện caacutec yecircu cầu của người
dugraveng Phần miecircu tả use case xaacutec định caacutec yecircu cầu phần diagram thể hiện
mối quan hệ vagrave giao tiếp với hệ thống
Analysis Mục điacutech chiacutenh của giai đọan nagravey lagrave trừu tượng hoacutea vagrave tigravem
hiểu caacutec cơ cấu coacute trong phạm vi bagravei toaacuten Class diagrams trecircn bigravenh diện
trừu tượng hoacutea caacutec thực thể ngoagravei đời thực được sử dụng để lagravem rotilde sự tồn
tại cũng như mối quan hệ của chuacuteng Chỉ những lớp (class) nằm trong
phạm vi bagravei toaacuten mới đaacuteng quan tacircm
Design Kết quả phần analysis được phaacutet triển thagravenh giải phaacutep kỹ thuật
Caacutec lớp được mocirc higravenh hoacutea chi tiết để cung cấp hạ tầng kỹ thuật như giao
diện nền tảng cho database hellip Kết quả phần Design lagrave caacutec đặc tả chi tiết
cho giai đoạn xacircy dựng phần mềm
Development Mocirc higravenh Design được chuyển thagravenh code Programmer
sử dụng caacutec UML diagrams trong giai đoạn Design để hiểu vấn đề vagrave tạo
code
Testing Sử dụng caacutec UML diagrams trong caacutec giai đoạn trước Coacute 4
higravenh thức kiểm tra hệ thống
Unit testing (class diagrams amp class specifications) kiểm tra
từng đơn thể được dugraveng để kiểm tra caacutec lớp hay caacutec nhoacutem
đơn thể
Integration testing (integration diagrams amp collaboration
diagrams) kiểm tra tiacutech hợp lagrave kiểm tra kết hợp caacutec
component với caacutec lớp để xem chuacuteng hoạt động với nhau coacute
đuacuteng khocircng
System testing (use-case diagrams) kiềm tra xem hệ thống
coacute đaacutep ứng được chức năng magrave người sử dụng yecircu cầu hay
khocircng
Acceptance testing Kiểm tra tiacutenh chấp nhận được của hệ
thống thường được thực hiện bởi khaacutech hagraveng việc kiểm tra
nagravey thực hiện tương tự như kiểm tra hệ thống
CuuDuongThanCongcom httpsfbcomtailieudientucntt
PHẦN CAcircU HỎI
Hỏi UML (Unifield Modeling Language) lagrave gigrave
Đaacutep Ngocircn ngữ mocirc higravenh hoacutea thống nhất ndash UML lagrave một ngocircn ngữ để biểu
diễn mocirc higravenh theo hướng đối tượng
Hỏi Điểm khaacutec nhau cơ bản giữa phương phaacutep (method) vagrave một ngocircn ngữ mocirc
higravenh hoaacute (modeling language) lagrave gigrave
Đaacutep Điểm khaacutec nhau cơ bản giữa một phương phaacutep vagrave một ngocircn ngữ
mocirc higravenh hoaacute lagrave ngocircn ngữ mocirc higravenh hoaacute khocircng coacute một tiến trigravenh (process)
hay caacutec cacircu lệnh (instruction) mocirc tả những cocircng việc người sử dụng cần
lagravem magrave noacute bao gồm caacutec kyacute hiệu ndash những biểu tượng được dugraveng trong mocirc
higravenh ndash vagrave một tập caacutec quy tắc chỉ caacutech sử dụng chuacuteng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Chƣơng 3 KHAacuteI QUAacuteT VỀ UML
1- UML VAgrave CAacuteC GIAI ĐOẠN CỦA CHU TRIgraveNH PHAacuteT TRIỂN
PHẦN MỀM
11- Giai đoạn nghiecircn cứu sơ bộ
UML đưa ra khaacutei niệm Use Case để nắm bắt caacutec yecircu cầu của khaacutech hagraveng (người
sử dụng) UML sử dụng biểu đồ Use case (Use Case Diagram) để necircu bật mối
quan hệ cũng như sự giao tiếp với hệ thống
Qua phương phaacutep mocirc higravenh hoacutea Use case caacutec taacutec nhacircn (Actor) becircn ngoagravei quan
tacircm đến hệ thống sẽ được mocirc higravenh hoacutea song song với chức năng magrave họ đogravei hỏi
từ phiacutea hệ thống (tức lagrave Use case) Caacutec taacutec nhacircn vagrave caacutec Use case được mocirc higravenh
hoacutea cugraveng caacutec mối quan hệ vagrave được miecircu tả trong biểu đồ Use case của UML Mỗi
một Use case được mocirc tả trong tagravei liệu vagrave noacute sẽ đặc tả caacutec yecircu cầu của khaacutech
hagraveng Anh ta hay chị ta chờ đợi điều gigrave ở phiacutea hệ thống magrave khocircng hề để yacute đến
việc chức năng nagravey sẽ được thực thi ra sao
12- Giai đoạn phacircn tiacutech
Giai đoạn phacircn tiacutech quan tacircm đến quaacute trigravenh trừu tượng hoacutea đầu tiecircn (caacutec lớp vagrave
caacutec đối tượng) cũng như cơ chế hiện hữu trong phạm vi vấn đề Sau khi nhagrave
phacircn tiacutech đatilde nhận biết được caacutec lớp thagravenh phần của mocirc higravenh cũng như mối quan
hệ giữa chuacuteng với nhau caacutec lớp cugraveng caacutec mối quan hệ đoacute sẽ được miecircu tả bằng
cocircng cụ biểu đồ lớp (class diagram) của UML Sự cộng taacutec giữa caacutec lớp nhằm
thực hiện caacutec Use case cũng sẽ được miecircu tả nhờ vagraveo caacutec mocirc higravenh động
(dynamic models) của UML Trong giai đoạn phacircn tiacutech chỉ duy nhất caacutec lớp coacute
tồn tại trong phạm vi vấn đề (caacutec khaacutei niệm đời thực) lagrave được mocirc higravenh hoacutea Caacutec
lớp kỹ thuật định nghĩa chi tiết cũng như giải phaacutep trong hệ thống phần mềm viacute
dụ như caacutec lớp cho giao diện người dugraveng cho ngacircn hagraveng dữ liệu cho sự giao tiếp
trugraveng hợp vv chưa phải lagrave mối quan tacircm của giai đoạn nagravey
13- Giai đoạn thiết kế
Trong giai đoạn nagravey kết quả của giai đoạn phacircn tiacutech sẽ được mở rộng thagravenh một
giải phaacutep kỹ thuật Caacutec lớp mới sẽ được bổ sung để tạo thagravenh một hạ tầng cơ sở
kỹ thuật Giao diện người dugraveng caacutec chức năng để lưu trữ caacutec đối tượng trong
ngacircn hagraveng dữ liệu giao tiếp với caacutec hệ thống khaacutec giao diện với caacutec thiết bị
ngoại vi vagrave caacutec maacutey moacutec khaacutec trong hệ thống Caacutec lớp thuộc phạm vi vấn đề
coacute từ giai đoạn phacircn tiacutech sẽ được nhuacuteng vagraveo hạ tầng cơ sở kỹ thuật nagravey tạo ra
khả năng thay đổi trong cả hai phương diện Phạm vi vấn đề vagrave hạ tầng cơ sở
Giai đoạn thiết kế sẽ đưa ra kết quả lagrave bản đặc tả chi tiết cho giai đoạn xacircy dựng
hệ thống
14- Giai đoạn xacircy dựng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Trong giai đoạn xacircy dựng (giai đoạn lập trigravenh) caacutec lớp của giai đoạn thiết kế sẽ
được biến thagravenh những dograveng code cụ thể trong một ngocircn ngữ lập trigravenh hướng đối
tượng cụ thể (khocircng necircn dugraveng một ngocircn ngữ lập trigravenh hướng chức năng) Phụ
thuộc vagraveo khả năng của ngocircn ngữ được sử dụng đacircy coacute thể lagrave một cocircng việc khoacute
khăn hay dễ dagraveng Khi tạo ra caacutec mocirc higravenh phacircn tiacutech vagrave thiết kế trong UML tốt
nhất necircn cố gắng neacute traacutenh việc ngay lập tức biến đổi caacutec mocirc higravenh nagravey thagravenh caacutec
dograveng code Trong những giai đoạn trước mocirc higravenh được sử dụng để dễ hiểu dễ
giao tiếp vagrave tạo necircn cấu truacutec của hệ thống vigrave vậy vội vagraveng đưa ra những kết
luận về việc viết code coacute thể sẽ thagravenh một trở ngại cho việc tạo ra caacutec mocirc higravenh
chiacutenh xaacutec vagrave đơn giản Giai đoạn xacircy dựng lagrave một giai đoạn riecircng biệt nơi caacutec
mocirc higravenh được chuyển thagravenh code
15- Thử nghiệm
Như đatilde trigravenh bagravey trong phần Chu Trigravenh Phaacutet Triển Phần Mềm một hệ thống phần
mềm thường được thử nghiệm qua nhiều giai đoạn vagrave với nhiều nhoacutem thử
nghiệm khaacutec nhau Caacutec nhoacutem sử dụng nhiều loại biểu đồ UML khaacutec nhau lagravem nền
tảng cho cocircng việc của migravenh Thử nghiệm đơn vị sử dụng biểu đồ lớp (class
diagram) vagrave đặc tả lớp thử nghiệm tiacutech hợp thường sử dụng biểu đồ thagravenh phần
(component diagram) vagrave biểu đồ cộng taacutec (collaboration diagram) vagrave giai đoạn
thử nghiệm hệ thống sử dụng biểu đồ Use case (use case diagram) để đảm bảo
hệ thống coacute phương thức hoạt động đuacuteng như đatilde được định nghĩa từ ban đầu
trong caacutec biểu đồ nagravey
2- CAacuteC THAgraveNH PHẦN CỦA NGOcircN NGỮ UML
Ngocircn ngữ UML bao gồm một loạt caacutec phần tử đồ họa (graphic element) coacute thể
được kếp hợp với nhau để tạo ra caacutec biểu đồ Bởi đacircy lagrave một ngocircn ngữ necircn UML
cũng coacute caacutec nguyecircn tắc để kết hợp caacutec phần tử đoacute
Một số những thagravenh phần chủ yếu của ngocircn ngữ UML
Hướng nhigraven (view) Hướng nhigraven chỉ ra những khiacutea cạnh khaacutec
nhau của hệ thống cần phải được mocirc higravenh hoacutea Một hướng nhigraven
khocircng phải lagrave một bản vẽ magrave lagrave một sự trừu tượng hoacutea bao gồm
một loạt caacutec biểu đồ khaacutec nhau Chỉ qua việc định nghĩa của một
loạt caacutec hướng nhigraven khaacutec nhau mỗi hướng nhigraven chỉ ra một khiacutea
cạnh riecircng biệt của hệ thống người ta mới coacute thể tạo dựng necircn một
bức tranh hoagraven thiện về hệ thống Cũng chiacutenh caacutec hướng nhigraven nagravey
nối kết ngocircn ngữ mocirc higravenh hoacutea với quy trigravenh được chọn cho giai đoạn
phaacutet triển
Biểu đồ (diagram) Biểu đồ lagrave caacutec higravenh vẽ miecircu tả nội dung
trong một hướng nhigraven UML coacute tất cả 9 loại biểu đồ khaacutec nhau được
CuuDuongThanCongcom httpsfbcomtailieudientucntt
sử dụng trong những sự kết hợp khaacutec nhau để cung cấp tất cả caacutec
hướng nhigraven của một hệ thống
Phần tử mocirc higravenh hoacutea (model element) Caacutec khaacutei niệm được
sử dụng trong caacutec biểu đồ được gọi lagrave caacutec phần tử mocirc higravenh thể hiện
caacutec khaacutei niệm hướng đối tượng quen thuộc Viacute dụ như lớp đối tượng
thocircng điệp cũng như caacutec quan hệ giữa caacutec khaacutei niệm nagravey bao gồm
cả liecircn kết phụ thuộc khaacutei quaacutet hoacutea Một phần tử mocirc higravenh thường
được sử dụng trong nhiều biểu đồ khaacutec nhau nhưng noacute luocircn luocircn coacute
chỉ một yacute nghĩa vagrave một kiacute hiệu
Cơ chế chung Cơ chế chung cung cấp thecircm những lời nhận xeacutet
bổ sung caacutec thocircng tin cũng như caacutec quy tắc ngữ phaacutep chung về
một phần tử mocirc higravenh chuacuteng cograven cung cấp thecircm caacutec cơ chế để coacute
thể mở rộng ngocircn ngữ UML cho phugrave hợp với một phương phaacutep xaacutec
định (một quy trigravenh một tổ chức hoặc một người dugraveng)
3- HƢỚNG NHIgraveN (VIEW)
Mocirc higravenh hoacutea một hệ thống phức tạp lagrave một việc lagravem khoacute khăn Lyacute tưởng nhất lagrave
toagraven bộ hệ thống được miecircu tả chỉ trong một bản vẽ một bản vẽ định nghĩa một
caacutech rotilde ragraveng vagrave mạch lạc toagraven bộ hệ thống một bản vẽ ngoagravei ra lại cograven dễ giao
tiếp vagrave dễ hiểu Mặc dugrave vậy thường thigrave đacircy lagrave chuyện bất khả thi Một bản vẽ
khocircng thể nắm bắt tất cả caacutec thocircng tin cần thiết để miecircu tả một hệ thống Một
hệ thống cần phải được miecircu tả với một loạt caacutec khiacutea cạnh khaacutec nhau Về mặt
chức năng (cấu truacutec tĩnh của noacute cũng như caacutec tương taacutec động) về mặt phi chức
năng (yecircu cầu về thời gian về độ đaacuteng tin cậy về quaacute trigravenh thực thi vv vagrave vv)
cũng như về khiacutea cạnh tổ chức (tổ chức lagravem việc aacutenh xạ noacute vagraveo caacutec code
module) Vigrave vậy một hệ thống thường được miecircu tả trong một loạt caacutec hướng
nhigraven khaacutec nhau mỗi hướng nhigraven sẽ thể hiện một bức ảnh aacutenh xạ của toagraven bộ hệ
thống vagrave chỉ ra một khiacutea cạnh riecircng của hệ thống
Higravenh 31- Caacutec View trong UML
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Mỗi một hướng nhigraven được miecircu tả trong một loạt caacutec biểu đồ chứa đựng caacutec
thocircng tin necircu bật khiacutea cạnh đặc biệt đoacute của hệ thống Trong thực tế khi phacircn tiacutech
vagrave thiết kế rất dễ xảy ra sự trugraveng lặp thocircng tin cho necircn một biểu đồ trecircn thật tế
coacute thể lagrave thagravenh phần của nhiều hướng nhigraven khaacutec nhau Khi nhigraven hệ thống từ
nhiều hướng nhigraven khaacutec nhau tại một thời điểm coacute thể người ta chỉ tập trung vagraveo
một khiacutea cạnh của hệ thống Một biểu đồ trong một hướng nhigraven cụ thể nagraveo đoacute
cần phải đủ độ đơn giản để tạo điều kiện giao tiếp dễ dagraveng để diacutenh liền với caacutec
biểu đồ khaacutec cũng như caacutec hướng nhigraven khaacutec lagravem sao cho bức tranh toagraven cảnh
của hệ thống được miecircu tả bằng sự kết hợp tất cả caacutec thocircng tin từ tất cả caacutec
hướng nhigraven Một biểu đồ chứa caacutec kiacute hiệu higravenh học mocirc tả caacutec phần tử mocirc higravenh
của hệ thống UML coacute tất cả caacutec hướng nhigraven sau
Hướng nhigraven Use case (use case view) đacircy lagrave hướng nhigraven chỉ ra
khiacutea cạnh chức năng của một hệ thống nhigraven từ hướng taacutec nhacircn becircn
ngoagravei
Hướng nhigraven logic (logical view) chỉ ra chức năng sẽ được thiết kế
becircn trong hệ thống như thế nagraveo qua caacutec khaacutei niệm về cấu truacutec tĩnh
cũng như ứng xử động của hệ thống
Hướng nhigraven thagravenh phần (component view) chỉ ra khiacutea cạnh tổ chức
của caacutec thagravenh phần code
Hướng nhigraven song song (concurrency view) chỉ ra sự tồn tại song
song trugraveng hợp trong hệ thống hướng đến vấn đề giao tiếp vagrave
đồng bộ hoacutea trong hệ thống
Hướng nhigraven triển khai (deployment view) chỉ ra khiacutea cạnh triển
khai hệ thống vagraveo caacutec kiến truacutec vật lyacute (caacutec maacutey tiacutenh hay trang thiết
bị được coi lagrave trạm cocircng taacutec)
Khi bạn chọn cocircng cụ để vẽ biểu đồ hatildey chọn cocircng cụ nagraveo tạo điều kiện dễ dagraveng
chuyển từ hướng nhigraven nagravey sang hướng nhigraven khaacutec Ngoagravei ra cho mục điacutech quan
saacutet một chức năng sẽ được thiết kế như thế nagraveo cocircng cụ nagravey cũng phải tạo điều
kiện dễ dagraveng cho bạn chuyển sang hướng nhigraven Use case (để xem chức năng nagravey
được miecircu tả như thế nagraveo từ phiacutea taacutec nhacircn) hoặc chuyển sang hướng nhigraven triển
khai (để xem chức năng nagravey sẽ được phacircn bố ra sao trong cấu truacutec vật lyacute - Noacutei
một caacutech khaacutec lagrave noacute coacute thể nằm trong maacutey tiacutenh nagraveo)
Ngoagravei caacutec hướng nhigraven kể trecircn ngagravenh cocircng nghiệp phần mềm cograven sử dụng cả caacutec
hướng nhigraven khaacutec viacute dụ hướng nhigraven tĩnh-động hướng nhigraven logic-vật lyacute quy trigravenh
nghiệp vụ (workflow) vagrave caacutec hướng nhigraven khaacutec UML khocircng yecircu cầu chuacuteng ta phải
sử dụng caacutec hướng nhigraven nagravey nhưng đacircy cũng chiacutenh lagrave những hướng nhigraven magrave caacutec
nhagrave thiết kế của UML đatilde nghĩ tới necircn coacute khả năng nhiều cocircng cụ sẽ dựa trecircn caacutec
hướng nhigraven đoacute
CuuDuongThanCongcom httpsfbcomtailieudientucntt
31- Hƣớng nhigraven Use case (Use case View)
Hướng nhigraven Use case miecircu tả chức năng của hệ thống sẽ phải cung cấp do được
taacutec nhacircn từ becircn ngoagravei mong đợi Taacutec nhacircn lagrave thực thể tương taacutec với hệ thống đoacute
coacute thể lagrave một người sử dụng hoặc lagrave một hệ thống khaacutec Hướng nhigraven Use case lagrave
hướng nhigraven dagravenh cho khaacutech hagraveng nhagrave thiết kế nhagrave phaacutet triển vagrave người thử
nghiệm noacute được miecircu tả qua caacutec biểu đồ Use case (use case diagram) vagrave thỉnh
thoảng cũng bao gồm cả caacutec biểu đồ hoạt động (activity diagram) Caacutech sử dụng
hệ thống nhigraven chung sẽ được miecircu tả qua một loạt caacutec Use case trong hướng
nhigraven Use case nơi mỗi một Use case lagrave một lời miecircu tả mang tiacutenh đặc thugrave cho
một tiacutenh năng của hệ thống (coacute nghĩa lagrave một chức năng được mong đợi)
Hướng nhigraven Use case mang tiacutenh trung tacircm bởi noacute đặt ra nội dung thuacutec đẩy sự
phaacutet triển caacutec hướng nhigraven khaacutec Mục tiecircu chung của hệ thống lagrave cung cấp caacutec
chức năng miecircu tả trong hướng nhigraven nagravey ndash cugraveng với một vagravei caacutec thuộc tiacutenh mang
tiacutenh phi chức năng khaacutec ndash vigrave thế hướng nhigraven nagravey coacute ảnh hưởng đến tất cả caacutec
hướng nhigraven khaacutec Hướng nhigraven nagravey cũng được sử dụng để thẩm tra (verify) hệ
thống qua việc thử nghiệm xem hướng nhigraven Use case coacute đuacuteng với mong đợi của
khaacutech hagraveng (Hỏi Đacircy coacute phải lagrave thứ bạn muốn) cũng như coacute đuacuteng với hệ thống
vừa được hoagraven thagravenh (Hỏi Hệ thống coacute hoạt động như đatilde đặc tả)
32- Hƣớng nhigraven logic (Logical View)
Hướng nhigraven logic miecircu tả phương thức magrave caacutec chức năng của hệ thống sẽ được
cung cấp Chủ yếu noacute được sử dụng cho caacutec nhagrave thiết kế vagrave nhagrave phaacutet triển
Ngược lại với hướng nhigraven Use case hướng nhigraven logic nhigraven vagraveo phiacutea becircn trong của
hệ thống Noacute miecircu tả kể cả cấu truacutec tĩnh (lớp đối tượng vagrave quan hệ) cũng như
sự tương taacutec động sẽ xảy ra khi caacutec đối tượng gửi thocircng điệp cho nhau để cung
cấp chức năng đatilde định sẵn Hướng nhigraven logic định nghĩa caacutec thuộc tiacutenh như
trường tồn (persistency) hoặc song song (concurrency) cũng như caacutec giao diện
cũng như cấu truacutec nội tại của caacutec lớp
Cấu truacutec tĩnh được miecircu tả bằng caacutec biểu đồ lớp (class diagram) vagrave biểu đồ đối
tượng (object diagram) Quaacute trigravenh mocirc higravenh hoacutea động được miecircu tả trong caacutec biểu
đồ trạng thaacutei (state diagram) biểu đồ trigravenh tự (sequence diagram) biểu đồ
tương taacutec (collaboration diagram) vagrave biểu đồ hoạt động (activity diagram)
33- Hƣớng nhigraven thagravenh phần (Component View)
Lagrave một lời miecircu tả của việc thực thi caacutec modul cũng như sự phụ thuộc giữa chuacuteng
với nhau Noacute thường được sử dụng cho nhagrave phaacutet triển vagrave thường bao gồm nhiều
biểu đồ thagravenh phần Thagravenh phần ở đacircy lagrave caacutec modul lệnh thuộc nhiều loại khaacutec
nhau sẽ được chỉ ra trong biểu đồ cugraveng với cấu truacutec cũng như sự phụ thuộc của
chuacuteng Caacutec thocircng tin bổ sung về caacutec thagravenh phần viacute dụ như vị triacute của tagravei nguyecircn
(traacutech nhiệm đối với một thagravenh phần) hoặc caacutec thocircng tin quản trị khaacutec viacute dụ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
như một bản baacuteo caacuteo về tiến trigravenh của cocircng việc cũng coacute thể được bổ sung vagraveo
đacircy
34- Hƣớng nhigraven song song (Concurrency View)
Hướng nhigraven song song nhắm tới sự chia hệ thống thagravenh caacutec qui trigravenh (process)
vagrave caacutec bộ xử lyacute (processor) Khiacutea cạnh nagravey vốn lagrave một thuộc tiacutenh phi chức năng
của hệ thống cho pheacutep chuacuteng ta sử dụng một caacutech hữu hiệu caacutec nguồn tagravei
nguyecircn thực thi song song cũng như xử lyacute caacutec sự kiện khocircng đồng bộ từ mocirci
trường Becircn cạnh việc chia hệ thống thagravenh caacutec tiểu trigravenh coacute thể được thực thi
song song hướng nhigraven nagravey cũng phải quan tacircm đến vấn đề giao tiếp vagrave đồng bộ
hoacutea caacutec tiểu trigravenh đoacute
Hướng nhigraven song song giagravenh cho nhagrave phaacutet triển vagrave người tiacutech hợp hệ thống noacute
bao gồm caacutec biểu đồ động (trạng thaacutei trigravenh tự tương taacutec vagrave hoạt động) cugraveng caacutec
biểu đồ thực thi (biểu đồ thagravenh phần vagrave biểu đồ triển khai)
35- Hƣớng nhigraven triển khai (Deployment View)
Cuối cugraveng hướng nhigraven triển khai chỉ cho chuacuteng ta sơ đồ triển khai về mặt vật lyacute
của hệ thống viacute dụ như caacutec maacutey tiacutenh cũng như caacutec maacutey moacutec vagrave sự liecircn kết giữa
chuacuteng với nhau Hướng nhigraven triển khai giagravenh cho caacutec nhagrave phaacutet triển người tiacutech
hợp cũng như người thử nghiệm hệ thống vagrave được thể hiện bằng caacutec biểu đồ
triển khai Hướng nhigraven nagravey cũng bao gồm sự aacutenh xạ caacutec thagravenh phần của hệ
thống vagraveo cấu truacutec vật lyacute viacute dụ như chương trigravenh nagraveo hay đối tượng nagraveo sẽ được
thực thi trecircn maacutey tiacutenh nagraveo
4- BIỂU ĐỒ (DIAGRAM)
Biểu đồ lagrave caacutec higravenh vẽ bao gồm caacutec kyacute hiệu phần tử mocirc higravenh hoacutea được sắp xếp
để minh họa một thagravenh phần cụ thể hay một khiacutea cạnh cụ thể của hệ thống Một
mocirc higravenh hệ thống thường coacute nhiều loại biểu đồ mỗi loại coacute nhiều biểu đồ khaacutec
nhau Một biểu đồ lagrave một thagravenh phần của một hướng nhigraven cụ thể vagrave khi được vẽ
ra noacute thường thường cũng được xếp vagraveo một hướng nhigraven Mặt khaacutec một số loại
biểu đồ coacute thể lagrave thagravenh phần của nhiều hướng nhigraven khaacutec nhau tugravey thuộc vagraveo nội
dung của biểu đồ
Phần sau miecircu tả caacutec khaacutei niệm căn bản nằm đằng sau mỗi loại biểu đồ Tất cả
caacutec chi tiết về biểu đồ ngữ cảnh của chuacuteng yacute nghĩa chiacutenh xaacutec của chuacuteng vagrave sự
tương taacutec giữa chuacuteng với nhau được miecircu tả chi tiết trong caacutec chương sau (mocirc
higravenh đối tượng ndash mocirc higravenh động) Caacutec biểu đồ lấy lagravem viacute dụ ở đacircy được lấy ra từ
nhiều loại hệ thống khaacutec nhau để chỉ ra neacutet phong phuacute vagrave khả năng aacutep dụng
rộng khắp của ULM
41- Biểu đồ Use case (Use Case Diagram)
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Một biểu đồ Use case chỉ ra một số lượng caacutec taacutec nhacircn ngoại cảnh vagrave mối liecircn kết
của chuacuteng đối với Use case magrave hệ thống cung cấp (nhigraven higravenh 32) Một Use case
lagrave một lời miecircu tả của một chức năng magrave hệ thống cung cấp Lời miecircu tả Use
case thường lagrave một văn bản tagravei liệu nhưng kegravem theo đoacute cũng coacute thể lagrave một biểu
đồ hoạt động Caacutec Use case được miecircu tả duy nhất theo hướng nhigraven từ ngoagravei vagraveo
của caacutec taacutec nhacircn (hagravenh vi của hệ thống theo như sự mong đợi của người sử
dụng) khocircng miecircu tả chức năng được cung cấp sẽ hoạt động nội bộ becircn trong
hệ thống ra sao Caacutec Use case định nghĩa caacutec yecircu cầu về mặt chức năng đối với
hệ thống Caacutec biểu đồ Use case sẽ được miecircu tả chi tiết hơn trong chương 4 (Use
case)
Higravenh 32- Biểu đồ use case của một cocircng ty bảo hiểm
42- Biểu đồ lớp (Class Diagram)
Một biểu đồ lớp chỉ ra cấu truacutec tĩnh của caacutec lớp trong hệ thống (nhigraven higravenh 33)
Caacutec lớp lagrave đại diện cho caacutec ―vật được xử lyacute trong hệ thống Caacutec lớp coacute thể quan
hệ với nhau trong nhiều dạng thức liecircn kết (associated - được nối kết với nhau)
phụ thuộc (dependent - một lớp nagravey phụ thuộc vagraveo lớp khaacutec) chuyecircn biệt hoacutea
(specialized - một lớp nagravey lagrave một kết quả chuyecircn biệt hoacutea của lớp khaacutec) hay
đoacuteng goacutei ( packaged - hợp với nhau thagravenh một đơn vị) Tất cả caacutec mối quan hệ
đoacute đều được thể hiện trong biểu đồ lớp đi kegravem với cấu truacutec becircn trong của caacutec lớp
theo khaacutei niệm thuộc tiacutenh (attribute) vagrave thủ tục (operation) Biểu đồ được coi lagrave
biểu đồ tĩnh theo phương diện cấu truacutec được miecircu tả ở đacircy coacute hiệu lực tại bất kỳ
thời điểm nagraveo trong toagraven bộ vograveng đời hệ thống
Một hệ thống thường sẽ coacute một loạt caacutec biểu đồ lớp ndash chẳng phải bao giờ tất cả
caacutec biểu đồ lớp nagravey cũng được nhập vagraveo một biểu đồ lớp tổng thể duy nhất ndash vagrave
một lớp coacute thể tham gia vagraveo nhiều biểu đồ lớp Biểu đồ lớp được miecircu tả chi tiết
trong chương sau
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 33 - Biểu đồ lớp cho một giao dịch Tagravei chiacutenh
43- Biểu đồ đối tƣợng (Object Diagram)
Một biểu đồ đối tượng lagrave một phiecircn bản của biểu đồ lớp vagrave thường cũng sử dụng
caacutec kyacute hiệu như biểu đồ lớp Sự khaacutec biệt giữa hai loại biểu đồ nagravey nằm ở chỗ
biểu đồ đối tượng chỉ ra một loạt caacutec đối tượng thực thể của lớp thay vigrave caacutec lớp
Một biểu đồ đối tượng vigrave vậy lagrave một viacute dụ của biểu đồ lớp chỉ ra một bức tranh
thực tế coacute thể xảy ra khi hệ thống thực thi bức tranh magrave hệ thống coacute thể coacute tại
một thời điểm nagraveo đoacute Biểu đồ đối tượng sử dụng chung caacutec kyacute hiệu của biểu đồ
lớp chỉ trừ hai ngoại lệ đối tượng được viết với tecircn được gạch dưới vagrave tất cả caacutec
thực thể trong một mối quan hệ đều được chỉ ra (nhigraven higravenh 34)
Biểu đồ đối tượng khocircng quan trọng bằng biểu đồ lớp chuacuteng coacute thể được sử
dụng để viacute dụ hoacutea một biểu đồ lớp phức tạp chỉ ra với những thực thể cụ thể vagrave
những mối quan hệ như thế thigrave bức tranh toagraven cảnh sẽ ra sao Một biểu đồ đối
tượng thường thường được sử dụng lagravem một thagravenh phần của một biểu đồ cộng
taacutec (collaboration) chỉ ra lối ứng xử động giữa một loạt caacutec đối tượng
Higravenh 34 - Biểu đồ lớp vagrave biểu đồ đối tượng thể hiện của lớp
CuuDuongThanCongcom httpsfbcomtailieudientucntt
44- Biểu đồ trạng thaacutei (State Diagram)
Một biểu đồ trạng thaacutei thường lagrave một sự bổ sung cho lời miecircu tả một lớp Noacute chỉ
ra tất cả caacutec trạng thaacutei magrave đối tượng của lớp nagravey coacute thể coacute vagrave những sự kiện
(event) nagraveo sẽ gacircy ra sự thay đổi trạng thaacutei (higravenh 35) Một sự kiện coacute thể xảy ra
khi một đối tượng tự gửi thocircng điệp đến cho noacute - viacute dụ như để thocircng baacuteo rằng
một khoảng thời gian được xaacutec định đatilde qua đi ndash hay lagrave một số điều kiện nagraveo đoacute
đatilde được thỏa matilden Một sự thay đổi trạng thaacutei được gọi lagrave một sự chuyển đổi
trạng thaacutei (State Transition) Một chuyển đổi trạng thaacutei cũng coacute thể coacute một hagravenh
động liecircn quan xaacutec định điều gigrave phải được thực hiện khi sự chuyển đổi trạng thaacutei
nagravey diễn ra
Biểu đồ trạng thaacutei khocircng được vẽ cho tất cả caacutec lớp magrave chỉ riecircng cho những lớp
coacute một số lượng caacutec trạng thaacutei được định nghĩa rotilde ragraveng vagrave hagravenh vi của lớp bị ảnh
hưởng vagrave thay đổi qua caacutec trạng thaacutei khaacutec nhau Biểu đồ trạng thaacutei cũng coacute thể
được vẽ cho hệ thống tổng thể Biểu đồ trạng thaacutei được miecircu tả chi tiết hơn trong
chương sau (Mocirc higravenh động)
Higravenh 35- Một viacute dụ về biểu đồ trạng thaacutei
45- Biểu đồ trigravenh tự (Sequence Diagram)
Một biểu đồ trigravenh tự chỉ ra một cộng taacutec động giữa một loạt caacutec đối tượng (xem
higravenh 36) Khiacutea cạnh quan trọng của biểu đồ nagravey lagrave chỉ ra trigravenh tự caacutec thocircng điệp
(message) được gửi giữa caacutec đối tượng Noacute cũng chỉ ra trigravenh tự tương taacutec giữa
caacutec đối tượng điều sẽ xảy ra tại một thời điểm cụ thể nagraveo đoacute trong trigravenh tự thực
thi của hệ thống Caacutec biểu đồ trigravenh tự chứa một loạt caacutec đối tượng được biểu diễn
bằng caacutec đường thẳng đứng Trục thời gian coacute hướng từ trecircn xuống dưới trong
biểu đồ vagrave biểu đồ chỉ ra sự trao đổi thocircng điệp giữa caacutec đối tượng khi thời gian
trocirci qua Caacutec thocircng điệp được biểu diễn bằng caacutec đường gạch ngang gắn liền với
mũi tecircn (biểu thị thocircng điệp) nối liền giữa những đường thẳng đứng thể hiện đối
tượng Trục thời gian cugraveng những lời nhận xeacutet khaacutec thường sẽ được đưa vagraveo phần
lề của biểu đồ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 36 - Một biểu đồ trigravenh tự cho Print Server
46- Biểu đồ cộng taacutec (Collaboration Diagram)
Một biểu đồ cộng taacutec chỉ ra một sự cộng taacutec động cũng giống như một biểu đồ
trigravenh tự Thường người ta sẽ chọn hoặc dugraveng biểu đồ trigravenh tự hoặc dugraveng biểu đồ
cộng taacutec Becircn cạnh việc thể hiện sự trao đổi thocircng điệp (được gọi lagrave tương taacutec)
biểu đồ cộng taacutec chỉ ra caacutec đối tượng vagrave quan hệ của chuacuteng (nhiều khi được gọi
lagrave ngữ cảnh) Việc necircn sử dụng biểu đồ trigravenh tự hay biểu đồ cộng taacutec thường sẽ
được quyết định theo nguyecircn tắc chung sau Nếu thời gian hay trigravenh tự lagrave yếu tố
quan trọng nhất cần phải nhấn mạnh thigrave hatildey chọn biểu đồ trigravenh tự nếu ngữ cảnh
lagrave yếu tố quan trọng hơn hatildey chọn biểu đồ cộng taacutec Trigravenh tự tương taacutec giữa caacutec
đối tượng được thể hiện trong cả hai loại biểu đồ nagravey
Biểu đồ cộng taacutec được vẽ theo dạng một biểu đồ đối tượng nơi một loạt caacutec đối
tượng được chỉ ra cugraveng với mối quan hệ giữa chuacuteng với nhau (sử dụng những kyacute
hiệu như trong biểu đồ lớp biểu đồ đối tượng) Caacutec mũi tecircn được vẽ giữa caacutec đối
tượng để chỉ ra dograveng chảy thocircng điệp giữa caacutec đối tượng Caacutec thocircng điệp thường
được điacutenh kegravem theo caacutec nhatilden (label) một trong những chức năng của nhatilden lagrave
chỉ ra thứ tự magrave caacutec thocircng điệp được gửi đi Noacute cũng coacute thể chỉ ra caacutec điều kiện
chỉ ra những giaacute trị được trả về vv Khi đatilde lagravem quen với caacutech viết nhatilden một
nhagrave phaacutet triển coacute thể đọc biểu đồ cộng taacutec vagrave tuacircn thủ theo dograveng thực thi cũng
như sự trao đổi thocircng điệp Một biểu đồ cộng taacutec cũng coacute thể chứa cả caacutec đối
tượng tiacutech cực (active objects) hoạt động song song với caacutec đối tượng tiacutech cực
khaacutec (higravenh 37) Biểu đồ cộng taacutec được miecircu tả chi tiết trong chương sau
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 37 - Một biểu đồ cocircng taacutec của một printer server
47- Biểu đồ hoạt động (Activity Diagram)
Một biểu đồ hoạt động chỉ ra một trigravenh tự lần lượt của caacutec hoạt động (activity)
(higravenh 38) Biểu đồ hoạt động thường được sử dụng để miecircu tả caacutec hoạt động
được thực hiện trong một thủ tục mặc dugrave noacute cũng coacute thể được sử dụng để miecircu
tả caacutec dograveng chảy hoạt động khaacutec viacute dụ như trong một Use case hay trong một
trigravenh tự tương taacutec Biểu đồ hoạt động bao gồm caacutec trạng thaacutei hagravenh động chứa
đặc tả của một hoạt động cần phải được thực hiện (một hagravenh động - action) Một
trạng thaacutei hagravenh động sẽ qua đi khi hagravenh động được thực hiện xong (khaacutec với biểu
đồ trạng thaacutei một trạng thaacutei chỉ chuyển sang trạng thaacutei khaacutec sau khi đatilde xảy ra
một sự kiện rotilde ragraveng ) Dograveng điều khiển ở đacircy chạy giữa caacutec trạng thaacutei hagravenh
động liecircn kết với nhau Biểu đồ cograven coacute thể chỉ ra caacutec quyết định caacutec điều kiện
cũng như phần thực thi song song của caacutec trạng thaacutei hagravenh động Biểu đồ ngoagravei ra
cograven coacute thể chứa caacutec loại đặc tả cho caacutec thocircng điệp được gửi đi hoặc được nhận về
trong tư caacutech lagrave thagravenh phần của hagravenh động được thực hiện
Higravenh 38 - Một biểu đồ hoạt động cho một printer server
48- Biểu đồ thagravenh phần (Component Diagram)
Một biểu đồ thagravenh phần chỉ ra cấu truacutec vật lyacute của caacutec dograveng lệnh (code) theo khaacutei
niệm thagravenh phần code Một thagravenh phần code coacute thể lagrave một tập tin source code
một thagravenh phần nhị phacircn (binary) hay một thagravenh phần thực thi được
(executable) Một thagravenh phần chứa caacutec thocircng tin về caacutec lớp logic hoặc caacutec lớp magrave
noacute thi hagravenh như thế coacute nghĩa lagrave noacute tạo ra một aacutenh xạ từ hướng nhigraven logic vagraveo
hướng nhigraven thagravenh phần Biểu đồ thagravenh phần cũng chỉ ra những sự phụ thuộc giữa
caacutec thagravenh phần với nhau trợ giuacutep cho cocircng việc phacircn tiacutech hiệu ứng magrave một
thagravenh phần được thay đổi sẽ gacircy ra đối với caacutec thagravenh phần khaacutec Thagravenh phần
cũng coacute thể được miecircu tả với bất kỳ loại giao diện nagraveo magrave chuacuteng bộc lộ viacute dụ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
như giao diện OLECOM vagrave chuacuteng coacute thể được nhoacutem goacutep lại với nhau thagravenh từng
goacutei (package) Biểu đồ thagravenh phần được sử dụng trong cocircng việc lập trigravenh cụ thể
(xem higravenh 39)
Higravenh 39 - Một biểu đồ thagravenh phần chỉ ra sự phụ thuộc giữa caacutec thagravenh phần matilde
49- Biểu đồ triển khai (Deployment Diagram)
Biểu đồ triển khai chỉ ra kiến truacutec vật lyacute của phần cứng cũng như phần mềm
trong hệ thống Bạn coacute thể chỉ ra từng maacutey tiacutenh cụ thể vagrave từng trang thiết bị cụ
thể (node) đi kegravem sự nối kết giữa chuacuteng với nhau bạn cũng coacute thể chỉ ra loại của
caacutec mối nối kết đoacute Becircn trong caacutec nuacutet mạng (node) caacutec thagravenh phần thực thi được
cũng như caacutec đối tượng sẽ được xaacutec định vị triacute để chỉ ra những phần mềm nagraveo sẽ
được thực thi tại những nuacutet mạng nagraveo Bạn cũng coacute thể chỉ ra sự phụ thuộc giữa
caacutec thagravenh phần
Biểu đồ triển khai chỉ ra hướng nhigraven triển khai miecircu tả kiến truacutec vật lyacute thật sự
của hệ thống Đacircy lagrave một hướng nhigraven rất xa lối miecircu tả duy chức năng của hướng
nhigraven Use case Mặc dugrave vậy trong một mocirc higravenh tốt người ta coacute thể chỉ tất cả
những con đường dẫn từ một nuacutet mạng trong một kiến truacutec vật lyacute cho tới những
thagravenh phần của noacute cho tới lớp magrave noacute thực thi cho tới những tương taacutec magrave caacutec
đối tượng của lớp nagravey tham gia để rồi cuối cugraveng tiến tới một Use case Rất nhiều
hướng nhigraven khaacutec nhau của hệ thống được sử dụng đồng thời để tạo ra một lời
miecircu tả thấu đaacuteo đối với hệ thống trong sự tổng thể của noacute
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 310 - Một biểu đồ triển khai chỉ ra kiến truacutec vật lyacute của hệ thống
5- PHẦN TỬ MOcirc HIgraveNH (MODEL ELEMENT)
Caacutec khaacutei niệm được sử dụng trong caacutec biểu đồ được gọi lagrave caacutec phần tử mocirc higravenh
(model element) Một phần tử mocirc higravenh được định nghĩa với ngữ nghĩa (semantic)
đoacute lagrave một định nghĩa về bản chất phần tử hay lagrave một xaacutec định yacute nghĩa chiacutenh xaacutec
xem noacute sẽ thể hiện điều gigrave trong những lời khẳng định rotilde ragraveng Mỗi phần tử mocirc
higravenh cograven coacute một sự miecircu tả trực quan một kyacute hiệu higravenh học được sử dụng để
miecircu tả phần tử nagravey trong biểu đồ Một phần tử coacute thể tồn tại trong nhiều dạng
biểu đồ khaacutec nhau nhưng cũng coacute những nguyecircn tắc xaacutec định loại phần tử nagraveo
coacute thể được chỉ ra trong loại biểu đồ nagraveo Một vagravei viacute dụ cho phần tử vocirc higravenh lagrave lớp
đối tượng trạng thaacutei nuacutet mạng goacutei thagravenh phần (higravenh 311)
Higravenh 311- Caacutec thagravenh phần mocirc higravenh thường dugraveng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 312 chỉ ra một vagravei viacute dụ của mối quan hệ đacircy cũng lagrave một dạng phần tử
mocirc higravenh chuacuteng được sử dụng để nối caacutec phần tử mocirc higravenh khaacutec với nhau Một vagravei
loại quan hệ đaacuteng chuacute yacute
Nối kết (Association) nối caacutec phần tử vagrave caacutec thực thể nối (link)
Khaacutei quaacutet hoacutea (Generalization) cograven được gọi lagrave tiacutenh thừa kế coacute
yacute nghĩa rằng một phần tử nagravey coacute thể lagrave một sự chuyecircn biệt hoacutea của
một phần tử khaacutec
Sự phụ thuộc (Dependency) chỉ ra rằng một phần tử nagravey phụ
thuộc trong một phương thức nagraveo đoacute vagraveo một phần tử khaacutec
Kết tập (Aggregation) Một dạng của nối kết trong đoacute một phần
tử nagravey chứa caacutec phần tử khaacutec
Ngoagravei ra cograven coacute caacutec phần tử mocirc higravenh khaacutec như thocircng điệp (Message) hagravenh động
(action) vagrave khuocircn mẫu (stereotype) Tất cả caacutec phần tử mocirc higravenh yacute nghĩa của
chuacuteng cũng như những ứng dụng đều được giải thiacutech kỹ lưỡng hơn trong caacutec
chương sau
Higravenh 312 ndash caacutec viacute dụ về vagravei loại quan hệ
6- CƠ CHẾ CHUNG (GENERAL MECHANISM)
UML thể hiện một số caacutec cơ chế chung trong tất cả caacutec biểu đồ nhằm mục điacutech
cung cấp thecircm caacutec thocircng tin bổ sung thường đacircy lagrave những thocircng tin khocircng thể
được thể hiện qua caacutec chức năng vagrave khả năng cơ bản của caacutec phần tử mocirc higravenh
61- Trang triacute (Adornment)
Caacutec sự trang triacute trực quan coacute thể được sử dụng kegravem thecircm vagraveo caacutec phần tử mocirc
higravenh trong biểu đồ Động taacutec trang triacute bổ sung thecircm ngữ nghĩa cho phần tử Một
viacute dụ lagrave kỹ thuật được sử dụng để phacircn biệt một loại thực thể (lớp) vagrave một thực
thể Khi thể hiện một loại tecircn phần tử sẽ được in đậm Khi cũng chiacutenh phần tử
đoacute thể hiện chỉ một thực thể của loại nagravey tecircn phần tử sẽ được gạch dưới vagrave coacute
thể được coi lagrave cả tecircn của thực thể lẫn tecircn của loại đoacute Một higravenh chữ nhật thể
hiện lớp với tecircn được in đậm sẽ thể hiện một lớp vagrave tecircn được gạch dưới sẽ thể
CuuDuongThanCongcom httpsfbcomtailieudientucntt
hiện một đối tượng đacircy lagrave một viacute dụ tiecircu biểu của adornment Cũng nguyecircn tắc
đoacute được aacutep dụng cho caacutec nuacutet mạng khi kyacute hiệu nuacutet được in đậm lagrave thể hiện một
loại nuacutet viacute dụ như maacutey in (Printer) khi kyacute hiệu được gạch dưới lagrave thể hiện một
thực thể của lớp nuacutet mạng nagravey viacute dụ Johnrsquos HP 5MP-printer Caacutec kiểu trang triacute
khaacutec lagrave caacutec lời đặc tả về số lượng trong quan hệ (multiplicity) nơi số lượng lagrave
một số hay một khoảng số chỉ ra bao nhiecircu thực thể của caacutec loại thực thể được
nối với nhau sẽ coacute thể tham gia trong một quan hệ Kiacute hiệu trang triacute được viết
gần phần tử mocirc higravenh được magrave noacute bổ sung thocircng tin (higravenh 313)
Higravenh 313 - Phacircn biệt giữa lớp vagrave đối tượng bằng trang triacute
62- Ghi chuacute (Note)
Cho dugrave một ngocircn ngữ mocirc higravenh hoacutea coacute được mở rộng đến bao nhiecircu chăng nữa
noacute cũng khocircng thể định nghĩa tất cả mọi việc Nhằm tạo điều kiện bổ sung thecircm
cho một mocirc higravenh những thocircng tin khocircng thể được thể hiện bằng phần tử mocirc higravenh
UML cung cấp khả năng kegravem theo lời ghi chuacute Một lời ghi chuacute coacute thể được để bất
kỳ nơi nagraveo trong bất kỳ biểu đồ nagraveo vagrave noacute coacute thể chứa bất kỳ loại thocircng tin nagraveo
Dạng thocircng tin của bản thacircn noacute lagrave chuỗi kyacute tự (string) khocircng được UML diễn giải
Lời ghi chuacute thường đi kegravem theo một số caacutec phần tử mocirc higravenh trong biểu đồ được
nối bằng một đường chấm chấm chỉ ra phần tử mocirc higravenh nagraveo được chi tiết hoacutea
hoặc được giải thiacutech (higravenh 314)
Một lời ghi chuacute thường chứa lời nhận xeacutet hoặc caacutec cacircu hỏi của nhagrave tạo mocirc higravenh
viacute dụ lời nhắc nhở cần phải xử lyacute vấn đề nagraveo đoacute trong thời gian sau nagravey Lời ghi
chuacute cũng coacute thể chứa caacutec thocircng tin dạng khuocircn mẫu (stereotype)
Higravenh 314 - Một viacute dụ về ghi chuacute
63- Đặc tả (Specification)
Caacutec phần tử mocirc higravenh coacute thuộc tiacutenh (Property) chứa caacutec giaacute trị dữ liệu về phần tử
nagravey Một thuộc tiacutenh được định nghĩa với một tecircn vagrave một giaacute trị điacutenh kegravem (tagged
value) thường chuacuteng ở trong một dạng thocircng tin được xaacutec định trước viacute dụ như
số nguyecircn hay chuỗi kiacute tự Coacute một loạt thuộc tiacutenh đatilde được định nghĩa trước viacute dụ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
như tagravei liệu (docement) traacutech nhiệm (Responsibility) sự trường tồn (Persistence)
vagrave tiacutenh song song (Conccurency)
Thuộc tiacutenh được sử dụng để thecircm caacutec đặc tả bổ sung về một phần tử những
thocircng tin bigravenh thường ra khocircng được thể hiện trong biểu đồ Viacute dụ tiecircu biểu lagrave
một lớp sẽ được miecircu tả bằng một tagravei liệu văn bản nhất định cung cấp nhiều
thocircng tin hơn về traacutech nhiệm cũng như khả năng của lớp nagravey Loại đặc tả nagravey
bigravenh thường ra khocircng được chỉ ra trong caacutec biểu đồ nhưng thường thigrave trong đa
phần caacutec cocircng cụ mocirc higravenh hoacutea chuacuteng sẽ coacute thể được truy cập qua hagravenh động
nhấp nuacutet vagraveo một phần tử nagraveo đoacute hiệu quả lagrave một cửa sổ chứa đặc tả với tất cả
caacutec thuộc tiacutenh sẽ được chỉ ra (Higravenh 315)
Higravenh 315- Một cửa sổ đặc tả thể hiện caacutec đặc tiacutenh của class
7- MỞ RỘNG UML
UML coacute thể được mở rộng hoặc coacute thể được sửa đổi để phugrave hợp với một phương
phaacutep đặc biệt một tổ chức cụ thể hay một người dugraveng cụ thể Chuacuteng ta sẽ bagraven
luận sơ qua đến ba cơ chế mở rộng UML khuocircn mẫu (stereotype) giaacute trị điacutenh
kegravem (tagged value) vagrave hạn chế (constraint)
71- Khuocircn mẫu (Stereotype)
Cơ chế mở rộng khuocircn mẫu định nghĩa một loại phần tử mocirc higravenh mới dựa trecircn
một phần tử mocirc higravenh đatilde tồn tại Khuocircn mẫu coacute thể được coi lagrave tương tự như
một phần tử đatilde coacute sẵn cộng thecircm phần quy định ngữ nghĩa (semantic) riecircng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
biệt khocircng coacute trong phần tử gốc kia Khuocircn mẫu của một phần tử coacute thể được sử
dụng trong cugraveng tigravenh huống như phần tử căn bản Khuocircn mẫu dựa trecircn tất cả caacutec
loại phần tử mocirc higravenh sẵn coacute - lớp nuacutet mạng thagravenh phần cũng như caacutec mối quan
hệ như liecircn kết khaacutei quaacutet hoacutea sự phụ thuộc Ngocircn ngữ UML coacute chứa một số
lượng lớn caacutec khuocircn mẫu được định nghĩa sẵn vagrave chuacuteng được sử dụng để sửa đổi
caacutec phần tử mocirc higravenh sẵn coacute thay cho việc phải định nghĩa hoagraven toagraven mới Cơ chế
nagravey giuacutep gigraven giữ tiacutenh đơn giản của nền tảng ngocircn ngữ UML
Khuocircn mẫu được miecircu tả qua việc đưa tecircn của chuacuteng vagraveo trong một cặp kyacute tự
ngoặc nhọn ltltgtgt theo như trong higravenh 316 Kyacute tự ngoặc nhọn nagravey được gọi lagrave
guillements Khuocircn mẫu cũng coacute thể coacute kiacute hiệu higravenh học riecircng Một phần tử của
một loại khuocircn mẫu cụ thể coacute thể được thể hiện bởi tecircn khuocircn mẫu đi kegravem kyacute
hiệu higravenh học mocirc tả phần tử căn bản hay lagrave sự kết hợp của cả hai yếu tố nagravey
Bất kỳ khi nagraveo một phần tử mocirc higravenh được nối kết với một tecircn hoặc kiacute hiệu khuocircn
mẫu ta sẽ đọc đacircy lagrave một loại phần tử thuộc loại khuocircn mẫu Viacute dụ một lớp
với ltltWindowgtgt sẽ được gọi lagrave một lớp trong dạng khuocircn mẫu cửa sổ yacute
nghĩa của noacute lagrave một dạng lớp cửa sổ Những thuộc tiacutenh cụ thể magrave một lớp cửa sổ
cần phải coacute sẽ được định nghĩa khi khuocircn mẫu nagravey được định nghĩa
Như đatilde noacutei khuocircn mẫu lagrave một cơ chế mở rộng xuất sắc lagrave một cơ chế ngăn cho
ngocircn ngữ UML khocircng trở necircn quaacute phức tạp mặc dugrave vẫn cho pheacutep thực hiện sự
mở rộng vagrave sửa đổi cần thiết Đa phần caacutec phần tử mocirc higravenh mới magrave bạn cần đến
đều coacute một khuocircn mẫu nền tảng trong ngocircn ngữ UML Một khuocircn mẫu sau đoacute coacute
thể được sử dụng để cộng thecircm caacutec ngữ nghĩa cần thiết nhằm mục điacutech định
nghĩa necircn caacutec phần tử mocirc higravenh cograven thiếu
Higravenh 316- Customer lagrave một lớp khuocircn mẫu ltltActorgtgt
72- Giaacute trị điacutenh kegravem (Tagged Value)
Như đatilde noacutei caacutec phần tử mocirc higravenh coacute thể coacute caacutec thuộc tiacutenh chứa một cặp tecircn-giaacute
trị về bản thacircn chuacuteng (higravenh 317) Caacutec thuộc tiacutenh nagravey cũng cograven được gọi lagrave caacutec
giacutea trị điacutenh kegravem UML coacute chứa một loạt caacutec thuộc tiacutenh được định nghĩa trước
nhưng kể cả người sử dụng cũng coacute thể định nghĩa ra caacutec thuộc tiacutenh mới để chứa
caacutec thocircng tin bổ sung về caacutec phần tử mocirc higravenh Mọi higravenh dạng thocircng tin đều coacute
thể được điacutenh kegravem vagraveo phần tử caacutec thocircng tin chuyecircn biệt về phương phaacutep caacutec
thocircng tin của nhagrave quản trị về tiến trigravenh mocirc higravenh hoacutea caacutec thocircng tin được sử dụng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
bởi caacutec cocircng cụ khaacutec viacute dụ như caacutec cocircng cụ tạo code hay bất kỳ một loại thocircng
tin nagraveo magrave người sử dụng muốn điacutenh kegravem vagraveo phần tử mocirc higravenh
Higravenh 317 - Một viacute dụ về Tagged Value
73- Hạn chế (Constraint)
Một sự hạn chế lagrave một sự giới hạn về sự sử dụng hoặc yacute nghĩa của một phần tử
Sự hạn chế hoặc sẽ được khai baacuteo trong cocircng cụ vagrave được sử dụng nhiều lần trong
rất nhiều biểu đồ khaacutec nhau hay được định nghĩa vagrave sử dụng trong chỉ một biểu
đồ theo như nhu cầu
Higravenh 318 chỉ ra mối quan hệ nối kết giữa nhoacutem caacutec cocircng dacircn lớn tuổi vagrave lớp con
người chỉ ra rằng nhoacutem cocircng dacircn coacute thể coacute nhiều người liecircn quan Mặc dugrave vậy
để miecircu tả rằng chỉ những người nagraveo lớn hơn 60 tuổi mới coacute thể tham gia vagraveo
nhoacutem nagravey người ta định nghĩa một sự hạn chế hạn hẹp tiecircu chuẩn tham gia đối
với chỉ những người nagraveo magrave thuộc tiacutenh tuổi taacutec coacute giaacute trị lớn hơn 60 Định nghĩa
nagravey sẽ hạn chế số lượng những người được sử dụng trong mối quan hệ Nếu
khocircng coacute noacute người ta rất dễ hiểu lầm khi diễn tả biểu đồ Trong trường hợp tồi
tệ noacute coacute thể dẫn đến sự thực thi sai traacutei của hệ thống
Trong trường hợp nagravey hạn chế được định nghĩa vagrave ứng dụng trực tiếp trong
chiacutenh biểu đồ magrave noacute được cần tới Nhưng nhigraven chung thigrave hạn chế cũng coacute thể
được định nghĩa với tecircn cugraveng lời đặc tả riecircng viacute dụ như cocircng dacircn giagrave vagrave
người coacute tuổi lớn hơn 60 vagrave hạn chế nagravey sẽ được sử dụng trong nhiều biểu đồ
khaacutec nhau UML coacute chứa một loạt caacutec hạn chế được định nghĩa sẵn chuacuteng được
miecircu tả chi tiết trong caacutec chương sau
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 318- Một ragraveng buộc hạn chế đối tượng Person goacutep phần vagraveo quan hệ kết
hợp
8- MOcirc HIgraveNH HOacuteA VỚI UML
Khi xacircy dựng hệ thống với UML người ta khocircng chỉ xacircy dựng duy nhất một mocirc
higravenh Sẽ coacute nhiều mocirc higravenh khaacutec nhau trong những giai đoạn phaacutet triển khaacutec nhau
nhắm đến caacutec mục điacutech khaacutec nhau Trong giai đoạn phacircn tiacutech mục điacutech của mocirc
higravenh lagrave nắm bắt tất cả caacutec yecircu cầu đối với hệ thống vagrave mocirc higravenh hoacutea nền tảng bao
gồm caacutec lớp vagrave caacutec cộng taacutec đời thực Trong giai đoạn thiết kế mục điacutech của
mocirc higravenh lagrave mở rộng mocirc higravenh phacircn tiacutech tạo thagravenh một giải phaacutep kỹ thuật khả thi
coacute chuacute yacute đến mocirci trường của cocircng việc xacircy dựng (viết code) Trong giai đoạn xacircy
dựng code mocirc higravenh chiacutenh lagrave những dograveng code nguồn thật sự được viết necircn vagrave
được dịch thagravenh caacutec chương trigravenh Vagrave cuối cugraveng trong giai đoạn triển khai một
lời miecircu tả sẽ giải thiacutech hệ thống cần được triển khai ra sao trong kiến truacutec vật lyacute
Khả năng theo dotildei xuyecircn suốt nhiều giai đoạn vagrave nhiều mocirc higravenh khaacutec nhau được
đảm bảo qua caacutec thuộc tiacutenh hoặc caacutec mối quan hệ nacircng cao (refinement)
Mặc dugrave đoacute lagrave caacutec mocirc higravenh khaacutec nhau nhưng chuacuteng đều được xacircy dựng necircn để
mở rộng nội dung của caacutec mocirc higravenh ở giai đoạn trước Chiacutenh vigrave thế tất cả caacutec mocirc
higravenh đều cần phải được gigraven giữ tốt để người ta coacute thể dễ dagraveng đi ngược lại mở
rộng ra hay taacutei thiết lập mocirc higravenh phacircn tiacutech khởi đầu vagrave rồi dần dần từng bước
đưa caacutec sự thay đổi vagraveo mocirc higravenh thiết kế cũng như caacutec mocirc higravenh xacircy dựng (higravenh
319)
Higravenh 319- Một hệ thống được mocirc tả trong nhiều mocirc higravenh
Bản thacircn ngocircn ngữ UML khocircng phụ thuộc vagraveo giai đoạn coacute nghĩa lagrave cũng những
nguyecircn tắc ngocircn ngữ đoacute vagrave cũng những biểu đồ đoacute được sử dụng để mocirc higravenh hoacutea
những sự việc khaacutec nhau trong những giai đoạn khaacutec nhau Nhagrave thiết kế nắm
quyền quyết định xem một mocirc higravenh sẽ phải thay đổi nhằm đạt được những mục
điacutech nagraveo vagrave bao trugravem những phạm vi nagraveo Ngocircn ngữ mocirc higravenh hoacutea chỉ cung cấp
khả năng để tạo ra caacutec mocirc higravenh trong một phong caacutech mở rộng vagrave nhất quaacuten
Khi mocirc higravenh hoacutea bằng ngocircn ngữ UML toagraven bộ cocircng việc cần phải được thực hiện
theo một phương phaacutep hay một qui trigravenh xaacutec định rotilde những bước cocircng việc nagraveo
phải được tiến hagravenh vagrave chuacuteng phải được thực thi ra sao Một qui trigravenh như vậy
CuuDuongThanCongcom httpsfbcomtailieudientucntt
thường sẽ chia cocircng việc ra thagravenh caacutec vograveng lặp kế tiếp mỗi vograveng lặp bao gồm
caacutec cocircng việc phacircn tiacutech yecircu cầu phacircn tiacutech thiết kế thực hiện triển khai Mặc
dugrave vậy cũng coacute một quy trigravenh nhỏ hơn đề cập tới nội dung của việc mocirc higravenh hoacutea
Bigravenh thường ra khi sản xuất một mocirc higravenh hoặc sản xuất chỉ một biểu đồ duy
nhất cocircng việc sẽ bắt đầu bằng việc thu thập một nhoacutem thiacutech hợp caacutec caacute nhacircn
khaacutec nhau trigravenh bagravey vấn đề vagrave mục tiecircu họ cộng taacutec cho một giai đoạn hội thảo
khoa học vagrave phaacutec thảo trao đổi những saacuteng kiến vagrave yacute tưởng về mocirc higravenh coacute thể
Cocircng cụ được sử dụng trong giai đoạn nagravey lagrave hết sức khaacutec biệt vagrave mang tiacutenh
ngẫu hứng - thường lagrave giấy daacuten post it hay bảng trắng Cocircng việc được quyết
định chừng nagraveo những người tham gia coacute cảm giaacutec họ đatilde coacute được một nền tảng
thực tiễn cho một mocirc higravenh (giống như một tiecircu đề) Kết quả sau đoacute sẽ được đưa
vagraveo một cocircng cụ mocirc higravenh tiecircu đề được tổ chức vagrave sau đoacute một biểu đồ thực sự
sẽ được tạo dựng necircn phugrave hợp với những quy định của ngocircn ngữ mocirc higravenh hoacutea
Sau đoacute mocirc higravenh được chi tiết hoacutea qua những cocircng việc mang tiacutenh vograveng lặp cagraveng
ngagravey cagraveng coacute nhiều chi tiết về giải phaacutep được phaacutet hiện được dữ liệu hoacutea vagrave
được bổ sung Khi đatilde coacute nhiều thocircng tin hơn được thu thập về vấn đề cũng như
giải phaacutep của noacute tiecircu đề ban đầu dần dần trở thagravenh một lời chuẩn đoaacuten cho một
mocirc higravenh coacute khả năng sử dụng Khi mocirc higravenh đatilde gần hoagraven thiện một sự tiacutech hợp
vagrave thẩm định sẽ được thực hiện dẫn tới việc mocirc higravenh hoặc biểu đồ sẽ được tiacutech
hợp với những mocirc higravenh vagrave biểu đồ khaacutec trong cugraveng dự aacuten để đảm bảo sự nhất
quaacuten Mocirc higravenh sau đoacute cũng được kiểm tra lại để chắc chắn noacute đang giải quyết
đuacuteng vấn đề cần giải quyết (higravenh 320)
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 320 - Một tiến trigravenh cho cocircng việc mocirc higravenh hoaacute thực tế
Cuối cugraveng mocirc higravenh sẽ được thực thi vagrave triển khai thagravenh một loạt caacutec nguyecircn
mẫu (prototype) nguyecircn mẫu nagravey sẽ được kiểm tra để tigravem khiếm khuyết Caacutec
khiếm khuyết bao gồm kể cả caacutec chức năng cograven thiếu sự thực hiện tồi tệ hay phiacute
sản xuất vagrave phaacutet triển quaacute cao Những khiếm khuyết thường sẽ eacutep nhagrave phaacutet triển
ragrave đi ragrave lại cocircng việc của migravenh để khắc phục chuacuteng Nếu vấn đề lagrave quaacute lớn nhagrave
phaacutet triển coacute thể sẽ đi ngược lại tất cả caacutec bước cocircng việc của migravenh cho tới tận
giai đoạn sơ phaacutec đầu tiecircn Nếu caacutec vấn đề nagravey khocircng lớn nhagrave phaacutet triển coacute lẽ
chỉ cần thay đổi một vagravei thagravenh phần trong tổ chức hoặc đặc tả của mocirc higravenh Xin
nhớ rằng bước tạo nguyecircn mẫu khocircng thể được thực hiện ngay lập tức sau khi
hoagraven tất biểu đồ noacute chỉ necircn được thực hiện khi đatilde coacute một số lượng lớn caacutec biểu
đồ liecircn quan Nguyecircn mẫu sau nagravey coacute thể được vứt đi coacute thể được tạo dựng necircn
chỉ để nhằm mục điacutech kiểm tra hoặc lagrave nếu bước tạo nguyecircn mẫu nagravey thagravenh
cocircng noacute sẽ trở thagravenh một vograveng lặp trong quy trigravenh phaacutet triển thật sự
CuuDuongThanCongcom httpsfbcomtailieudientucntt
9- COcircNG CỤ (TOOL)
Sử dụng một ngocircn ngữ mocirc higravenh hoacutea phức tạp vagrave rộng mở như UML cần thiết sự
trợ giuacutep của cocircng cụ Mặc dugrave phaacutec thảo đầu tiecircn của một mocirc higravenh coacute thể được
thực hiện bằng bảng trắng cugraveng giấy vagrave mực nhưng cocircng việc bảo trigrave đồng bộ
hoacutea vagrave đảm bảo sự nhất quaacuten trong một loạt caacutec biểu đồ khaacutec nhau thường lại
khocircng thể trở thagravenh khả thi nếu khocircng coacute cocircng cụ
Thị trường cocircng cụ mocirc higravenh hoacutea đatilde dừng trong mức độ sơ khởi suốt một thời gian
dagravei kể từ khi xuất hiện yacute tưởng đầu tiecircn về caacutec chương trigravenh trợ giuacutep cho việc tạo
chương trigravenh Rất nhiều cocircng cụ trong thực tế chỉ thocircng minh hơn caacutec chương
trigravenh vẽ một chuacutet sử dụng một vagravei quy chế kiểm tra tiacutenh nhất quaacuten hoặc một vagravei
kiến thức về phương phaacutep vagrave ngocircn ngữ mocirc higravenh hoacutea Mặc dugrave đatilde coacute một vagravei bước
tiến nhất định vagrave nhiều cocircng cụ hocircm nay đatilde tới gần saacuteng kiến khởi thủy kia
nhiều hơn (Rational Rose) nhưng thị trường vẫn cograven khocircng iacutet cocircng cụ chưa được
gọt giũa vẫn cograven chứa lỗi hoặc những neacutet kỳ quặc kể cả những vấn đề đơn giản
như copy vagrave daacuten Những cocircng cụ nagravey cograven hạn chế ở phương diện rằng tất cả bọn
chuacuteng đều coacute ngocircn ngữ mocirc higravenh hoacutea riecircng hay iacutet nhất thigrave cũng coacute những định
nghĩa riecircng của chuacuteng về ngocircn ngữ nagravey
Cugraveng với sự ra đời của ngocircn ngữ UML caacutec nhagrave cung cấp cocircng cụ mocirc higravenh hoacutea giờ
đacircy coacute thể dagravenh nhiều thời gian hơn cho việc nacircng cấp cocircng cụ bởi họ khocircng cần
phải dồn tacircm dồn sức cho việc định nghĩa caacutec phương phaacutep mới cũng như caacutec
ngocircn ngữ mới
Một cocircng cụ mocirc higravenh hoacutea hịecircn đại cần phải cung cấp caacutec chức năng sau
Vẽ biểu đồ cần phải tạo điều kiện dễ dagraveng vẽ ra caacutec biểu đồ
trong ngocircn ngữ mocirc higravenh hoacutea Cocircng cụ cần phải đủ khả năng thocircng
minh để hiểu mục điacutech của caacutec biểu đồ vagrave biết được những ngữ
nghĩa cũng như caacutec quy tắc đơn giản đủ để noacute coacute thể cảnh baacuteo
hoặc ngăn chặn việc sử dụng khocircng thiacutech hợp caacutec phần tử mocirc higravenh
Hoạt động như một nhagrave kho (Repository) cocircng cụ cần phải
hỗ trợ một nhagrave kho trung tacircm để tất cả caacutec thocircng tin về mocirc higravenh
được lưu trữ trong cugraveng một chỗ Nếu viacute dụ tecircn của một lớp bị thay
đổi trong một biểu đồ thigrave sự thay đổi nagravey cần phải xảy ra trong tất
cả caacutec biểu đồ khaacutec coacute sử dụng lớp nagravey
Hỗ trợ định hướng (Navigation) cocircng cụ cần phải tạo điều
kiện dễ dagraveng cho người sử dụng định hướng vagrave chuyển dịch trong
mocirc higravenh để theo dotildei một phần tử từ biểu đồ nagravey sang biểu đồ khaacutec
hoặc để mở rộng lời miecircu tả của một phần tử
Hỗ trợ nhiều người sử dụng (multiuser support) Cocircng cụ
cần hỗ trợ cho nhiều người sử dụng vagrave tạo điều kiện cho họ cugraveng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
lagravem việc với một mocirc higravenh magrave khocircng ngăn chặn hoặc quấy phaacute lẫn
nhau
Tự động tạo code (code generate) một cocircng cụ cao cấp cần
phải coacute khả năng tạo ra code nơi tất cả caacutec thocircng tin trong mocirc higravenh
được chuyển tải thagravenh caacutec khung code (code skeletons) được sử
dụng lagravem nền tảng cho giai đoạn xacircy dựng chương trigravenh
Taacutei tạo mocirc higravenh (Reserve engineer) Một cocircng cụ cao cấp cần
phải coacute khả năng đọc những thagravenh phần code đang tồn tại vagrave từ đoacute
sản xuất ra mocirc higravenh Từ đoacute suy ra một mocirc higravenh coacute thể được lagravem từ
những dograveng code đatilde tồn tại hoặc một nhagrave phaacutet triển coacute thể dễ
dagraveng chuyển đi chuyển về giữa cocircng việc mocirc higravenh hoacutea vagrave cocircng việc
lập trigravenh
Tiacutech hợp với caacutec cocircng cụ khaacutec một cocircng cụ cần phải coacute khả
năng tiacutech hợp với những cocircng cụ khaacutec với cả việc phaacutet triển mocirci
trường viacute dụ như caacutec trigravenh soạn thảo (editor) chương trigravenh dịch
(compiler) chương trigravenh tigravem lỗi (debugger) cũng như caacutec cocircng cụ
của doanh nghiệp khaacutec như cocircng cụ quản trị cấu higravenh hệ thống
theo dotildei caacutec phiecircn bản
Bao quaacutet mocirc higravenh ở tất cả caacutec mức độ trừu tượng hoacutea khaacutec
nhau cocircng cụ cần phải dễ chuyển tải từ lời miecircu tả ở cấp trừu
tượng hoacutea cao nhất của hệ thống (tức lagrave ở dạng một lượng caacutec goacutei
khaacutec nhau) đi xuống cho tới cấp của những dograveng code thật sự Sau
đoacute để truy xuất những dograveng lệnh code cho một thủ tục cụ thể nagraveo
đoacute trong một lớp nagraveo đoacute bạn coacute thể chỉ cần nhấp chuột vagraveo tecircn của
thủ tục đoacute trong một biểu đồ
Trao đổi mocirc higravenh Một mocirc higravenh hay một biểu đồ của một mocirc
higravenh nagraveo đoacute cần phải coacute khả năng được xuất ra từ một cocircng cụ nagravey
rồi nhập vagraveo một cocircng cụ khaacutec giống như những dograveng lệnh code
được sản sinh trong một cocircng cụ nagravey coacute thể được sử dụng trong một
cocircng cụ khaacutec Nguyecircn tắc trao đổi đoacute cần phải được aacutep dụng cho
caacutec mocirc higravenh trong một ngocircn ngữ mocirc higravenh hoacutea được định nghĩa chiacutenh
xaacutec
10- TOacuteM TẮT VỀ UML
UML tổ chức một mocirc higravenh thagravenh một loạt caacutec hướng nhigraven thể hiện caacutec khiacutea cạnh
khaacutec nhau của hệ thống Chỉ khi kết hợp tất cả caacutec hướng nhigraven lại với nhau
người ta mới co được một bức tranh trọn vẹn về hệ thống Một hướng nhigraven khocircng
phải lagrave một higravenh vẽ nội dung của noacute được miecircu tả qua caacutec biểu đồ đacircy lagrave những
higravenh vẽ chứa đựng caacutec phần tử mocirc higravenh hoacutea Một biểu đồ bigravenh thường chỉ trigravenh
bagravey một phần nội dung của một hướng nhigraven vagrave một hướng nhigraven được định nghĩa
CuuDuongThanCongcom httpsfbcomtailieudientucntt
với rất nhiều biểu đồ Một biểu đồ chứa caacutec phần tử mocirc higravenh viacute dụ như lớp đối
tượng nuacutet mạng thagravenh phần vagrave những mối quan hệ như nối kết khaacutei quaacutet hoacutea
phụ thuộc Caacutec phần tử nagravey coacute yacute nghĩa (semantic) vagrave caacutec kyacute hiệu higravenh học
Caacutec loại biểu đồ trong UML lagrave biểu đồ lớp biểu đồ đối tượng biểu đồ Use case
biểu đồ trạng thaacutei biểu đồ trigravenh tự biểu đồ cộng taacutec biểu đồ hagravenh động biểu đồ
thagravenh phần vagrave biểu đồ triển khai Mục điacutech của caacutec loại biểu đồ cũng như quy tắc
vẽ chuacuteng sẽ được miecircu tả chi tiết trong chương sau
UML coacute một số cơ chế chung để bổ sung thocircng tin khocircng thể được thể hiện trong
quaacute trigravenh vẽ biểu đồ Những thocircng tin nagravey bao gồm viacute dụ những thagravenh phần
trang triacute caacutec lời ghi chuacute coacute thể chứa bất kỳ loại thocircng tin nagraveo cũng như caacutec thuộc
tiacutenh đặc tả Ngoagravei ra cograven coacute caacutec cơ chế mở rộng bao gồm giaacute trị điacutenh kegravem hạn
chế đối với phần tử vagrave khuocircn mẫu định nghĩa một loại phần tử mocirc higravenh mới dựa
trecircn một phần tử sẵn coacute
Một hệ thống sẽ được miecircu tả trong nhiều loại mocirc higravenh khaacutec nhau mỗi loại mocirc
higravenh nhằm một mục điacutech khaacutec nhau Mocirc higravenh phacircn tiacutech miecircu tả những yecircu cầu
về mặt chức năng vagrave mocirc higravenh hoacutea caacutec lớp ngoagravei đời thực Mocirc higravenh thiết kế
chuyển tải kết quả phacircn tiacutech thagravenh một giải phaacutep kỹ thuật theo khaacutei niệm của
một thiết kế phần mềm hoạt động hoagraven chỉnh Mocirc higravenh xacircy dựng code thể hiện
hệ thống qua việc thảo chương cho noacute trong một ngocircn ngữ lập trigravenh hướng đối
tượng Vagrave cuối cugraveng mocirc higravenh triển khai định vị chương trigravenh vừa được tạo necircn
trong một kiến truacutec vật lyacute bao gồm caacutec maacutey tiacutenh vagrave caacutec trang thiết bị Cocircng việc
được lagravem theo nhiều vograveng lặp khaacutec nhau chứ khocircng phải chỉ lagrave một chuỗi thực
hiện một lần
Để sử dụng UML một caacutech nghiecircm chỉnh cho một dự aacuten coacute thật ngoagravei đời bạn
cần cocircng cụ Một cocircng cụ tacircn tiến coacute khả năng cho người dugraveng vẽ biểu đồ trữ tất
cả caacutec thocircng tin vagraveo một kho chung cho pheacutep dễ dagraveng dịch chuyển giữa caacutec
hướng nhigraven vagrave biểu đồ khaacutec nhau trong mocirc higravenh tạo baacuteo caacuteo vagrave tagravei liệu tạo
khung code từ mocirc higravenh đọc những dograveng code sẵn coacute rồi sản sinh ra mocirc higravenh từ
đoacute vagrave dễ dagraveng tiacutech hợp với caacutec cocircng cụ phaacutet triển khaacutec
PHẦN CAcircU HỎI
Hỏi UML coacute cocircng cụ nagraveo giuacutep nắm bắt caacutec yecircu cầu của khaacutech hagraveng (người sử
dụng)
Đaacutep Use Case
Hỏi Một biểu đồ trong UML coacute bao chứa caacutec hướng nhigraven khaacutec nhau
Đaacutep Sai một hướng nhigraven bao gồm một loại caacutec biểu đồ khaacutec nhau
Hỏi Hatildey liệt kecirc caacutec thagravenh phần chủ yếu của ngocircn ngữ UML
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Đaacutep Hướng nhigraven( View) Biểu đồ (Diagram) Phần tử mocirc higravenh Cơ chế
chung
Hỏi UML coacute cocircng cụ nagraveo phục vụ cho giai đoạn thử nghiệm đơn vị (Unit
Testing)
Đaacutep Biểu đồ lớp vagrave đặc tả lớp
Hỏi UML coacute cocircng cụ nagraveo phục vụ cho giai đoạn thử nghiệm hệ thống (System
Testing)
Đaacutep Use case Diagram
Hỏi UML tạo nền tảng cho việc giao tiếp giữa khaacutech hagraveng nhagrave phacircn tiacutech nhagrave
thiết kế vagrave lập trigravenh viecircn
Đaacutep Đuacuteng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Chƣơng 4 Mocirc higravenh hoacutea USE CASE
1- GIỚI THIỆU USE CASE
Trong giai đoạn phacircn tiacutech người sử dụng cộng taacutec cugraveng nhoacutem phaacutet triển phần
mềm tạo necircn một tổ hợp thocircng tin quan trọng về yecircu cầu đối với hệ thống
Khocircng chỉ lagrave người cung cấp thocircng tin bản thacircn người sử dụng cograven lagrave một thagravenh
phần hết sức quan trọng trong bức tranh toagraven cảnh đoacute vagrave nhoacutem phaacutet triển cần
phải chỉ ra được phương thức hoạt động của hệ thống tương lai theo hướng nhigraven
của người sử dụng Hiểu được điểm quan trọng nagravey lagrave chigravea khoacutea để tạo dựng
được những hệ thống vừa thoả matilden caacutec yecircu cầu đặt ra vừa dễ dagraveng sử dụng
thậm chiacute tạo niềm vui thiacutech trong sử dụng
Như vậy cocircng cụ giuacutep ta mocirc higravenh hoaacute hệ thống từ hướng nhigraven của người sử dụng
gọi lagrave Use Case Vagrave để trả lời rotilde hơn về Use Case ta xeacutet một trường hợp sau
Giả sử tocirci quyết định mua một chiếc maacutey fax mới Khi đến cửa hagraveng maacutey văn
phograveng tocirci mới nhận ra lagrave phải chọn lựa trong một danh saacutech maacutey moacutec rất phong
phuacute Loại maacutey nagraveo sẽ được chọn đacircy Tocirci tự hỏi thật chiacutenh xaacutec migravenh muốn lagravem gigrave
với chiếc maacutey fax sẽ mua Tocirci muốn coacute những tiacutenh năng nagraveo Tocirci muốn dugraveng
bằng giấy thường hay giấy thermal Tocirci muốn copy bằng caacutei maacutey đoacute Tocirci muốn
nối noacute với maacutey tiacutenh của migravenh Tocirci muốn dugraveng noacute vừa lagravem maacutey fax vừa lagravem
scanner Tocirci coacute cần phải gởi fax thật nhanh đến mức độ cần một chức năng chọn
số tăng tốc Liệu tocirci coacute muốn sử dụng maacutey fax nagravey để phacircn biệt giữa một cuacute
điện thoại gọi tới vagrave một bản fax gởi tới
Tất cả chuacuteng ta đều trải qua những kinh nghiệm như vậy khi quyết định mua một
moacuten hagraveng nagraveo đoacute khocircng phải vigrave niềm vui bộc phaacutet Việc chuacuteng ta sẽ lagravem trong
những trường hợp như vậy lagrave một dạng phacircn tiacutech Use Case Chuacuteng ta tự hỏi
migravenh sẽ sử dụng sản phẩm (hay hệ thống) sắp bắt ta bỏ ra một khoản tiền đaacuteng
kể đoacute ra sao Trả lời xong cacircu hỏi trecircn ta mới coacute khả năng chọn ra sản phẩm
thoả matilden những đogravei hỏi của migravenh Điều quan trọng ở đacircy lagrave phải biết những đogravei
hỏi đoacute lagrave gigrave
Loại quy trigravenh nagravey đoacuteng vai trograve rất quan trọng đối với giai đoạn phacircn tiacutech của
một nhoacutem phaacutet triển hệ thống Người dugraveng muốn sử dụng hệ thống tương lai hệ
thống magrave bạn sắp thiết kế vagrave xacircy dựng như thế nagraveo
Use Case lagrave một cocircng cụ trợ giuacutep cho cocircng việc của nhagrave phacircn tiacutech cugraveng người sử
dụng quyết định tiacutenh năng của hệ thống Một tập hợp caacutec Use Case sẽ lagravem nổi
bật một hệ thống theo phương diện những người dugraveng định lagravem gigrave với hệ thống
nagravey
Để lagravem rotilde hơn ta hatildey xeacutet một viacute dụ nhagrave băng lẻ Hệ thống tương lai trong trường
hợp nagravey sẽ soacute nhiều người sử dụng mỗi người sẽ giao tiếp với hệ thống cho một
mục điacutech khaacutec biệt
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Quản trị gia sử dụng hệ thống cho mục điacutech thống kecirc
Nhacircn viecircn tiếp khaacutech sử dụng hệ thống để thực hiện caacutec dịch vụ
phục vụ khaacutech hagraveng
Nhacircn viecircn phograveng đầu tư sử dụng hệ thống để thực hiện caacutec giao
dịch liecircn quan đến đầu tư
Nhacircn viecircn thẩm tra chữ kyacute sử dụng hệ thống cho mục điacutech xaacutec
nhận chữ kyacute vagrave bảo trigrave thocircng tin liecircn quan đến khaacutech hagraveng
Khaacutech hagraveng giao tiếp với hệ thống (nhagrave băng) cho caacutec hoạt động
sử dụng dịch vụ như mở tagravei khoản gửi tiền vagraveo ruacutet tiền mặt hellip
Quaacute trigravenh tương taacutec giữa người sử dụng vagrave hệ thống trong mỗi một tigravenh huống kể
trecircn sẽ khaacutec nhau vagrave phụ thuộc vagraveo chức năng magrave người sử dụng muốn thực thi
cugraveng hệ thống
Nhoacutem phaacutet triển hệ thống cần phải xacircy dựng necircn một kịch bản necircu bật sự tương
taacutec cần thiết giữa người sử dụng vagrave hệ thống trong mỗi khả năng hoạt động Viacute
dụ như kịch bản cho sự tương taacutec giữa nhacircn viecircn thu ngacircn vagrave hệ thống của bộ
phận tiết kiệm trong suốt tiến trigravenh của một giao dịch Một kịch bản khaacutec viacute dụ lagrave
chuỗi tương taacutec xảy ra giữa bộ phận tiết kiệm vagrave bộ phận đầu tư trong một giao
dịch chuyển tiền
Nhigraven chung coacute thể coi một Use case như lagrave tập hợp của một loạt caacutec cảnh kịch
về việc sử dụng hệ thống Mỗi cảnh kịch mocirc tả một chuỗi caacutec sự kiện Mỗi một
chuỗi nagravey sẽ được kiacutech hoạt bởi một người nagraveo đoacute một hệ thống khaacutec hay lagrave một
phần trang thiết bị nagraveo đoacute hoặc lagrave một chuỗi thời gian Những thực thể kiacutech hoạt
necircn caacutec chuỗi sự kiện như thế được gọi lagrave caacutec Taacutec Nhacircn (Actor) Kết quả của
chuỗi nagravey phải coacute giaacute trị sử dụng đối với hoặc lagrave taacutec nhacircn đatilde gacircy necircn noacute hoặc lagrave
một taacutec nhacircn khaacutec
2- MỘT SỐ VIacute DỤ USE CASE
Trong viacute dụ nhagrave băng lẻ ở trecircn một số những Use Case dễ thấy nhất lagrave
Một khaacutech hagraveng mở một tagravei khoản mới
Phograveng đầu tư tiacutenh toaacuten tiền latildei cho caacutec tagravei khoản đầu tư
Một chương trigravenh đầu tư mới được đưa vagraveo aacutep dụng
Yecircu cầu chuyển tiền của khaacutech hagraveng được thực hiện
Chuyển tiền theo kỳ hạn từ một tagravei khoản đầu tư sang một tagravei
khoản tiết kiệm
3- SỰ CẦN THIẾT PHẢI COacute USE CASE
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Use Case lagrave một cocircng cụ xuất sắc để khuyến khiacutech những người dugraveng tiềm năng
noacutei về hệ thống từ hướng nhigraven của họ Đối với người dugraveng chẳng phải bao giờ
việc thể hiện vagrave mocirc tả những yacute định trong việc sử dụng hệ thống cũng lagrave chuyện
dễ dagraveng Một hiện thực coacute thật lagrave người sử dụng thường biết nhiều hơn những gigrave
magrave họ coacute thể diễn tả ra Cocircng cụ Use Case sẽ giuacutep cho nhoacutem phaacutet triển bẻ gatildey
lớp băng đoacute ngoagravei ra một sự trigravenh bagravey trực quan cũng cho pheacutep bạn kết hợp
caacutec biểu đồ Use Case với caacutec loại biểu đồ khaacutec
Saacuteng kiến chủ đạo lagrave locirci cuốn được người dugraveng tham gia vagraveo những giai đoạn đầu
tiecircn của quaacute trigravenh phacircn tiacutech vagrave thiết kế hệ thống Việc nagravey sẽ nacircng cao xaacutec suất
cho việc hệ thống chung cuộc trở thagravenh một cocircng cụ quen thuộc đối với caacutec
người dugraveng magrave noacute dự định sẽ trợ giuacutep ndash thay vigrave lagrave một tập hợp khoacute hiểu vagrave rối
rắm của caacutec khaacutei niệm maacutey tiacutenh magrave người dugraveng trong giới doanh thương coacute cảm
giaacutec khocircng bao giờ hiểu được vagrave khocircng thể lagravem việc cugraveng
Cocircng taacutec locirci keacuteo người sử dụng tham gia tiacutech cực vagraveo quaacute trigravenh phacircn tiacutech lagrave nền
tảng quan trọng cho việc tạo dựng một mocirc higravenh thagravenh cocircng một mocirc higravenh dễ
được người sử dụng hiểu vagrave chấp nhận sau khi đatilde thẩm xaacutec caacutec nhiệm vụ căn
bản Ngoagravei ra Use Case cograven giuacutep nhoacutem phaacutet triển quyết định caacutec lớp magrave hệ
thống phải triển khai
4- MOcirc HIgraveNH HOacuteA USE CASE
Trường hợp sử dụng lagrave một kỹ thuật mocirc higravenh hoacutea được sử dụng để mocirc tả một hệ
thống mới sẽ phải lagravem gigrave hoặc một hệ thống đang tồn tại lagravem gigrave Một mocirc higravenh
Use Case được xacircy dựng qua một quaacute trigravenh mang tiacutenh vograveng lặp (interative)
trong đoacute những cuộc hội thảo bagraven luận giữa nhoacutem phaacutet triển hệ thống vagrave khaacutech
hagraveng (hoặcvagrave người sử dụng cuối) sẽ dẫn tới một đặc tả yecircu cầu được tất cả mọi
người chấp nhận Người cha tinh thần của mocirc higravenh hoacutea Use Case lagrave Ivar
Jacobson ocircng đatilde tạo necircn kỹ thuật mocirc higravenh hoacutea dựa trecircn những kinh nghiệm thu
thập được trong quaacute trigravenh tạo hệ thống AXE của hatildeng Erisson Use Case đatilde nhận
được một sự quan tacircm đặc biệt lớn lao từ phiacutea cộng đồng hướng đối tượng vagrave đatilde
taacutec động lecircn rất nhiều phương phaacutep hướng đối tượng khaacutec nhau
Những thagravenh phần quan trọng nhất của một mocirc higravenh Use Case lagrave Use Case taacutec
nhacircn vagrave hệ thống Ranh giới của hệ thống được định nghĩa qua chức năng tổng
thể magrave hệ thống sẽ thực thi Chức năng tổng thể được thể hiện qua một loạt caacutec
Use Case vagrave mỗi một Use Case đặc tả một chức năng trọn vẹn coacute nghĩa lagrave Use
Case phải thực thi toagraven bộ chức năng đoacute từ sự kiện được kiacutech hoạt đầu tiecircn bởi
một taacutec nhacircn ngoại cảnh cho tới khi chức năng đogravei hỏi được thực hiện hoagraven tất
Một Use Case luocircn luocircn phải cung cấp một giaacute trị nagraveo đoacute cho một taacutec nhacircn giaacute
trị nagravey lagrave những gigrave magrave taacutec nhacircn mong muốn từ phiacutea hệ thống Taacutec nhacircn lagrave bất kỳ
một thực thể ngoại cảnh nagraveo mong muốn tương taacutec với hệ thống Thường thường
đoacute lagrave một người sử dụng của hệ thống nhưng nhiều khi cũng coacute thể lagrave một hệ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
thống khaacutec hoặc lagrave một dạng maacutey moacutec thiết bị phần cứng nagraveo đoacute cần tương taacutec
với hệ thống
Trong kỹ thuật mocirc higravenh hoacutea Use Case hệ thống sẽ coacute higravenh dạng của một hộp
đen vagrave cung cấp caacutec Use Case Hệ thống lagravem điều đoacute như thế nagraveo caacutec Use Case
được thực thi ra sao đoacute lagrave những khiacutea cạnh chưa được đề cập tới trong giai đoạn
nagravey Trong thực tế nếu mocirc higravenh hoacutea Use Case được thực hiện trong những giai
đoạn đầu của dự aacuten thigrave thường nhagrave phaacutet triển sẽ khocircng biết Use Case sau nagravey sẽ
được thực thi (tức lagrave biến thagravenh những dograveng code thật sự) như thế nagraveo
Mục tiecircu chiacutenh yếu đối với caacutec Use Case lagrave
Để quyết định vagrave mocirc tả caacutec yecircu cầu về mặt chức năng của hệ
thống đacircy lagrave kết quả ruacutet ra từ sự thỏa thuận giữa khaacutech hagraveng
(vagravehoặc người sử dụng cuối) vagrave nhoacutem phaacutet triển phần mềm
Để tạo necircn một lời mocirc tả rotilde ragraveng vagrave nhất quaacuten về việc hệ thống
cần phải lagravem gigrave lagravem sao để mocirc higravenh coacute thể được sử dụng nhất quaacuten
suốt toagraven bộ quaacute trigravenh phaacutet triển được sử dụng lagravem cocircng cụ giao
tiếp cho tất cả những người phaacutet triển necircn caacutec yecircu cầu nagravey vagrave để
tạo necircn một nền tảng cho việc tạo necircn caacutec mocirc higravenh thiết kế cung
cấp caacutec chức năng được yecircu cầu
Để tạo necircn một nền tảng cho caacutec bước thử nghiệm hệ thống đảm
bảo hệ thống thỏa matilden đuacuteng những yecircu cầu do người sử dụng đưa
ra Trong thực tế thường lagrave để trả lời cacircu hỏi Liệu hệ thống cuối
cugraveng coacute thực hiện những chức năng magrave khởi đầu khaacutech hagraveng đatilde đề
nghị
Để cung cấp khả năng theo dotildei caacutec yecircu cầu về mặt chức năng được
chuyển thagravenh caacutec lớp cụ thể cũng như caacutec thủ tục cụ thể trong hệ
thống
Để đơn giản hoacutea việc thay đổi vagrave mở rộng hệ thống qua việc thay
đổi vagrave mở rộng mocirc higravenh Use Case sau đoacute chỉ theo dotildei riecircng những
Use Case đatilde bị thay đổi cugraveng những hiệu ứng của chuacuteng trong thiết
kế hệ thống vagrave xacircy dựng hệ thống
Những cocircng việc cụ thể cần thiết để tạo necircn một mocirc higravenh Use Case bao gồm
1 Định nghĩa hệ thống (xaacutec định phạm vi hệ thống)
2 Tigravem ra caacutec taacutec nhacircn cũng như caacutec Use Case
3 Mocirc tả Use Case
4 Định nghĩa mối quan hệ giữa caacutec Use Case
5 Kiểm tra vagrave phecirc chuẩn mocirc higravenh
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Đacircy lagrave một cocircng việc mang tiacutenh tương taacutec rất cao bao gồm những cuộc thảo
luận với khaacutech hagraveng vagrave những người đại diện cho caacutec loại taacutec nhacircn Mocirc higravenh Use
Case bao gồm caacutec biểu đồ Use Case chỉ ra caacutec taacutec nhacircn Use Case vagrave mối quan
hệ của chuacuteng với nhau Caacutec biểu đồ nagravey cho ta một caacutei nhigraven tổng thể về mocirc higravenh
nhưng những lời mocirc tả thực sự của từng Use Case thường lại lagrave văn bản Vigrave caacutec
mocirc higravenh trực quan khocircng thể cung cấp tất cả caacutec thocircng tin cần thiết necircn cần
thiết phải dugraveng cả hai kỹ thuật trigravenh bagravey đoacute
Coacute rất nhiều người quan tacircm đến việc sử dụng caacutec mocirc higravenh Use Case Khaacutech
hagraveng (vagravehoặc người sử dụng cuối) quan tacircm đến chuacuteng vigrave mocirc higravenh Use Case đặc
tả chức năng của hệ thống vagrave mocirc tả xem hệ thống coacute thể vagrave sẽ được sử dụng ra
sao Caacutec Use Case vigrave vậy phải được mocirc tả trong những thuật ngữ vagrave ngocircn ngữ
của khaacutech hagravengngười sử dụng
Nhagrave phaacutet triển cần đến caacutec mocirc higravenh Use Case để hiểu hệ thống cần phải lagravem gigrave
vagrave qua đoacute coacute được một nền tảng cho những cocircng việc tương lai (caacutec mocirc higravenh
khaacutec caacutec cấu truacutec thiết kế vagrave việc thực thi xacircy dựng hệ thống bằng code)
Caacutec nhoacutem chuyecircn gia thử nghiệm tiacutech hợp vagrave thử nghiệm hệ thống cần đến Use
Case để thử nghiệm vagrave kiểm tra xem hệ thống coacute đảm bảo sẽ thực hiện đuacuteng
chức năng đatilde được đặc tả trong giai đoạn đầu
Vagrave cuối cugraveng bất kỳ người nagraveo liecircn quan đến những hoạt động liecircn kết đến chức
năng của hệ thống đều coacute thể quan tacircm đến caacutec mocirc higravenh Use Case viacute dụ như
caacutec nhoacutem tiếp thị baacuten hagraveng hỗ trợ khaacutech hagraveng vagrave caacutec nhoacutem soạn thảo tagravei liệu
Mocirc higravenh Use Case mocirc tả hướng nhigraven Use Case của hệ thống Hướng nhigraven nagravey lagrave
rất quan trọng bởi noacute ảnh hưởng đến tất cả caacutec hướng nhigraven khaacutec của hệ thống
Cả cấu truacutec logic lẫn cấu truacutec physic đều chịu ảnh hưởng từ caacutec Use Case bởi
chức năng được đặc tả trong mocirc higravenh nagravey chiacutenh lagrave những chức năng được thực
thi trong caacutec cấu truacutec kia Mục điacutech cuối cugraveng lagrave thiết kế ra một giải phaacutep thỏa
matilden caacutec yecircu cầu đoacute
Mocirc higravenh hoacutea caacutec Use Case chẳng phải chỉ được dugraveng để nắm bắt caacutec yecircu cầu của
hệ thống mới noacute cũng cograven được sử dụng để hỗ trợ cho việc phaacutet triển một phiecircn
bản mới của hệ thống Khi phaacutet triển một phiecircn bản mới của hệ thống đang tồn
tại người ta sẽ bổ sung thecircm caacutec chức năng mới vagraveo mocirc higravenh Use Case đatilde coacute
bằng caacutech thecircm vagraveo caacutec taacutec nhacircn mới cũng như caacutec Use Case mới hoặc lagrave thay
đổi đặc tả của caacutec Use Case đatilde coacute Khi bổ sung thecircm vagraveo mocirc higravenh Use Case đang
tồn tại hatildey chuacute yacute để khocircng bỏ ra bất kỳ một chức năng nagraveo vẫn cograven được cần tới
5- BIỂU ĐỒ USE CASE
Use Case được mocirc tả trong ngocircn ngữ UML qua biểu đồ Use Case (Use Case
Diagram) vagrave một mocirc higravenh Use Case coacute thể được chia thagravenh một số lượng lớn caacutec
CuuDuongThanCongcom httpsfbcomtailieudientucntt
biểu đồ như thế Một biểu đồ Use Case chứa caacutec phần tử mocirc higravenh biểu thị hệ
thống taacutec nhacircn cũng như Use Case vagrave chỉ ra caacutec mối quan hệ giữa caacutec Use Case
Lời mocirc tả nội dung Use Case thường được cung cấp dưới dạng văn bản Trong
UML lời mocirc tả đoacute được coi lagrave thuộc tiacutenh văn bản (document) của Use Case Lời
mocirc tả nagravey bao chứa những thocircng tin quan trọng định nghĩa caacutec yecircu cầu vagrave chức
năng cụ thể Thay cho việc mocirc tả Use Case bằng văn bản bạn cũng coacute thể vẽ
một biểu đồ hoạt động (activity diagram) Mặc dầu vậy necircn nhớ rằng một Use
Case cần phải được mocirc tả sao cho dễ hiểu vagrave dễ giao tiếp đối với người sử dụng
magrave những cấu truacutec phức tạp như một biểu đồ hoạt động coacute thể gacircy cảm giaacutec xa
lạ đối với những người khocircng quen sử dụng
Toacutem tắt Một biểu đồ Use Case thể hiện
Hệ thống
Taacutec nhacircn vagrave
Use Case
Viacute dụ biểu đồ Use Case trong UML
Higravenh 41- Một viacute dụ biểu đồ Use case trong UML
Trong đoacute
Hệ thống được thể hiện qua higravenh chữ nhật với tecircn hệ thống ở becircn
trecircn
Taacutec nhacircn được thể hiện qua kiacute hiệu higravenh nhacircn
Use Case được thể hiện qua higravenh ellipse
51- Hệ thống
Vigrave hệ thống lagrave một thagravenh phần của mocirc higravenh Use Case necircn ranh giới của hệ thống
magrave ta muốn phaacutet triển cần phải được định nghĩa rotilde ragraveng Xin nhớ rằng một hệ
thống khocircng phải bao giờ cũng nhất thiết lagrave một hệ thống phần mềm noacute coacute thể
lagrave một chiếc maacutey hoặc lagrave một doanh nghiệp Định nghĩa caacutec ranh giới vagrave traacutech
nhiệm của hệ thống khocircng phải bao giờ cũng lagrave việc dễ dagraveng bởi khocircng phải bao
giờ người ta cũng rotilde ragraveng nhigraven ra taacutec vụ nagraveo coacute khả năng được tự động hoacutea tốt
nhất ở hệ thống nagravey vagrave taacutec vụ nagraveo thigrave tốt nhất necircn thực hiện thủ cocircng hoặc dagravenh
CuuDuongThanCongcom httpsfbcomtailieudientucntt
cho caacutec hệ thống khaacutec Một khiacutea cạnh khaacutec cần chuacute yacute lagrave hệ thống cần phải lớn tới
mức độ nagraveo trong phiecircn bản đầu tiecircn của noacute Cố gắng tối đa cho phiecircn bản đầu
tiecircn của hệ thống thường lagrave caacutech magrave người ta hay thực hiện thế nhưng những
mục tiecircu quaacute tầm như vậy coacute thể khiến cho hệ thống trở necircn quaacute lớn vagrave thời gian
để cung cấp hệ thống quaacute lacircu Một saacuteng kiến tốt hơn lagrave xaacutec nhận cho rotilde caacutec chức
năng căn bản vagrave tập trung vagraveo việc định nghĩa một kiến truacutec hệ thống thiacutech hợp
rotilde ragraveng coacute nền tảng rộng mở để nhiều chức năng hơn coacute thể được bổ sung vagraveo
hệ thống nagravey trong caacutec phiecircn bản sau
Yếu tố quan trọng lagrave bạn phải tạo dựng được một bản catalog của caacutec khaacutei niệm
(caacutec thực thể) trung tacircm cugraveng với caacutec thuật ngữ vagrave định nghĩa thiacutech hợp trong
những giai đoạn đầu của thời kỳ phacircn tiacutech Đacircy chưa phải mocirc higravenh phạm vi đối
tượng magrave đuacuteng hơn lagrave một cố gắng để mocirc tả caacutec thuật ngữ của hệ thống hoặc
doanh nghiệp magrave chuacuteng ta cần mocirc higravenh hoacutea Caacutec thuật ngữ sau đoacute sẽ được dugraveng
để mocirc tả Use Case Phương thức cụ thể của catalog nagravey coacute thể rất khaacutec nhau noacute
coacute thể lagrave một mocirc higravenh khaacutei niệm chỉ ra caacutec mối quan hệ đơn giản hoặc chỉ lagrave một
văn bản chứa caacutec thuật ngữ cugraveng lời mocirc tả vắn tắt những thuật ngữ nagravey trong
thế giới thực
52- Taacutec nhacircn
Một taacutec nhacircn lagrave một người hoặc một vật nagraveo đoacute tương taacutec với hệ thống sử dụng
hệ thống Trong khaacutei niệm tương taacutec với hệ thống yacute chuacuteng ta muốn noacutei rằng
taacutec nhacircn sẽ gửi thocircng điệp đến hệ thống hoặc lagrave nhận thocircng điệp xuất phaacutet từ hệ
thống hoặc lagrave thay đổi caacutec thocircng tin cugraveng với hệ thống Noacutei một caacutech ngắn gọn
taacutec nhacircn thực hiện caacutec Use Case Thecircm một điều nữa một taacutec nhacircn coacute thể lagrave
người magrave cũng coacute thể lagrave một hệ thống khaacutec (viacute dụ như lagrave một chiếc maacutey tiacutenh
khaacutec được nối kết với hệ thống của chuacuteng ta hoặc một loại trang thiết bị phần
cứng nagraveo đoacute tương taacutec với hệ thống)
Một taacutec nhacircn lagrave một dạng thực thể (một lớp) chứ khocircng phải một thực thể Taacutec
nhacircn mocirc tả vagrave đại diện cho một vai trograve chứ khocircng phải lagrave một người sử dụng
thật sự vagrave cụ thể của hệ thống Nếu một anh chagraveng John nagraveo đoacute muốn mua hợp
đồng bảo hiểm từ một hatildeng bảo hiểm thigrave vai trograve của anh ta sẽ lagrave người mua hợp
đồng bảo hiểm vagrave đacircy mới lagrave thứ magrave chuacuteng ta muốn mocirc higravenh hoacutea chứ khocircng
phải bản thacircn anh chagraveng John Trong sự thực một con người cụ thể coacute thể đoacuteng
vai trograve lagravem nhiều taacutec nhacircn trong một hệ thống một nhacircn viecircn ngacircn hagraveng đồng
thời cũng coacute thể lagrave khaacutech hagraveng của chiacutenh ngacircn hagraveng đoacute Mặt khaacutec số lượng caacutec
vai trograve magrave một con người cụ thể được pheacutep đảm traacutech trong một hệ thống cũng
coacute thể bị hạn chế viacute dụ cugraveng một người khocircng được pheacutep vừa soạn hoacutea đơn vừa
phecirc duyệt hoacutea đơn đoacute Một taacutec nhacircn sẽ coacute một tecircn vagrave caacutei tecircn nagravey cần phải phản
aacutenh lại vai trograve của taacutec nhacircn Caacutei tecircn đoacute khocircng được phản aacutenh lại một thực thể
riecircng biệt của một taacutec nhacircn magrave cũng khocircng phản aacutenh chức năng của taacutec nhacircn
đoacute
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Một taacutec nhacircn giao tiếp với hệ thống bằng caacutech gửi hoặc lagrave nhận thocircng điệp
giống như khaacutei niệm chuacuteng ta đatilde quen biết trong lập trigravenh hướng đối tượng Một
Use Case bao giờ cũng được kiacutech hoạt bởi một taacutec nhacircn gửi thocircng điệp đến cho
noacute Khi một Use Case được thực hiện Use Case coacute thể gửi thocircng điệp đến một
hay lagrave nhiều taacutec nhacircn Những thocircng điệp nagravey cũng coacute thể đến với caacutec taacutec nhacircn
khaacutec becircn cạnh chiacutenh taacutec nhacircn đatilde kiacutech hoạt vagrave gacircy ra Use Case
Taacutec nhacircn cũng coacute thể được xếp loại Một taacutec nhacircn chiacutenh (Primary Actor) lagrave taacutec
nhacircn sử dụng những chức năng căn bản của hệ thống tức lagrave caacutec chức năng
chiacutenh Viacute dụ trong một hệ thống bảo hiểm một taacutec nhacircn căn bản coacute thể lagrave taacutec
nhacircn xử lyacute việc ghi danh vagrave quản lyacute caacutec hợp đồng bảo hiểm Một taacutec nhacircn phụ
(secondary actor) lagrave taacutec nhacircn sử dụng caacutec chức nặng phụ của hệ thống viacute dụ
như caacutec chức năng bảo trigrave hệ thống như quản trị ngacircn hagraveng dữ liệu giao tiếp
back-up vagrave caacutec taacutec vụ quản trị khaacutec Một viacute dụ cho taacutec nhacircn phụ coacute thể lagrave nhagrave
quản trị hoặc lagrave một nhacircn viecircn sử dụng chức năng trong hệ thống để ruacutet ra caacutec
thocircng tin thống kecirc về doanh nghiệp Cả hai loại taacutec nhacircn nagravey đều được mocirc higravenh
hoacutea để đảm bảo mocirc tả đầy đủ caacutec chức năng của hệ thống mặc dugrave caacutec chức
năng chiacutenh mới thật sự nằm trong mối quan tacircm chủ yếu của khaacutech hagraveng
Taacutec nhacircn cograven coacute thể được định nghĩa theo dạng taacutec nhacircn chủ động (active actor)
hay taacutec nhacircn thụ động (passive actor) Một taacutec nhacircn chủ động lagrave taacutec nhacircn gacircy ra
Use Case trong khi taacutec nhacircn thụ động khocircng bao giờ gacircy ra Use Case magrave chỉ
tham gia vagraveo một hoặc lagrave nhiều Use Case
53- Tigravem taacutec nhacircn
Khi nhận diện taacutec nhacircn coacute nghĩa lagrave chuacuteng ta lọc ra caacutec thực thể đaacuteng quan tacircm
theo khiacutea cạnh sử dụng vagrave tương taacutec với hệ thống Sau đoacute chuacuteng ta coacute thể thử
đặt migravenh vagraveo vị triacute của taacutec nhacircn để cố gắng nhận ra caacutec yecircu cầu vagrave đogravei hỏi của
taacutec nhacircn đối với hệ thống vagrave xaacutec định taacutec nhacircn cần những Use Case nagraveo Coacute thể
nhận diện ra caacutec taacutec nhacircn qua việc trả lời một số caacutec cacircu hỏi như sau
Ai sẽ sử dụng những chức năng chiacutenh của hệ thống (taacutec nhacircn
chiacutenh)
Ai sẽ cần sự hỗ trợ của hệ thống để thực hiện những taacutec vụ hagraveng
ngagravey của họ
Ai sẽ cần bảo trigrave quản trị vagrave đảm bảo cho hệ thống hoạt động (taacutec
nhacircn phụ)
Hệ thống sẽ phải xử lyacute vagrave lagravem việc với những trang thiết bị phần
cứng nagraveo
Hệ thống cần phải tương taacutec với caacutec hệ thống khaacutec nagraveo Nhoacutem caacutec
hệ thống nagravey được chia ra lagravem hai nhoacutem nhoacutem kiacutech hoạt cho mối
quan hệ với hệ thống vagrave nhoacutem magrave hệ thống cần phải xacircy dựng của
CuuDuongThanCongcom httpsfbcomtailieudientucntt
chuacuteng ta sẽ thiết lập quan hệ Khaacutei niệm hệ thống bao gồm cả caacutec
hệ thống maacutey tiacutenh khaacutec cũng như caacutec ứng dụng khaacutec trong chiacutenh
chiếc maacutey tiacutenh magrave hệ thống nagravey sẽ hoạt động
Ai hay caacutei gigrave quan tacircm đến kết quả (giaacute trị) magrave hệ thống sẽ sản
sinh ra
Khi đi tigravem những người sử dụng hệ thống đừng quan saacutet những người đang ngồi
ở trước magraven higravenh maacutey tiacutenh Necircn nhớ rằng người sử dụng coacute thể lagrave bất kỳ người
nagraveo hay bất kỳ vật nagraveo tương taacutec hoặc trực tiếp hoặc giaacuten tiếp với hệ thống vagrave
sử dụng caacutec dịch vụ của hệ thống nagravey để đạt đến một kết quả nagraveo đoacute Đừng
quecircn rằng mocirc higravenh hoacutea Use Case được thực hiện để mocirc higravenh hoacutea một doanh
nghiệp vigrave thế taacutec nhacircn thường thường lagrave khaacutech hagraveng của doanh nghiệp đoacute Từ
đoacute suy ra họ khocircng phải lagrave người sử dụng theo nghĩa đơn giản vagrave trực tiếp lagrave
người ngồi trước magraven higravenh maacutey tiacutenh vagrave thao taacutec với maacutey tiacutenh
Để coacute thể nhận dạng được tốt nhiều taacutec nhacircn khaacutec nhau hatildey tiến hagravenh nghiecircn
cứu những người sử dụng của hệ thống hiện thời (một hệ thống thủ cocircng hoặc
một hệ thống đang tồn tại) hỏi xem họ đoacuteng những vai trograve nagraveo khi thực thi cocircng
việc hagraveng ngagravey của họ với hệ thống Cũng người sử dụng đoacute coacute thể thực thi nhiều
vai trograve khaacutec nhau tại nhiều thời điểm khaacutec nhau tugravey thuộc vagraveo việc chức năng
nagraveo trong hệ thống đang được sử dụng
Xin nhắc lại một taacutec nhacircn lagrave một vai trograve (một lớp) chứ khocircng phải một thực thể
riecircng lẻ Mặc dugrave vậy khi cung cấp viacute dụ lagrave một vagravei caacutec thực thể của một taacutec nhacircn
bạn coacute thể đảm bảo rằng taacutec nhacircn đoacute thật sự tồn tại Một taacutec nhacircn phải coacute một
sự liecircn kết (Association) nagraveo đoacute với một hoặc lagrave nhiều Use Case Mặc dugrave coacute
những taacutec nhacircn coacute thể khocircng kiacutech hoạt necircn một Use Case nagraveo nhưng taacutec nhacircn
đoacute sẽ giao tiếp iacutet nhất với một Use Case tại một thời điểm nagraveo đoacute Cần phải đặt
tecircn cho taacutec nhacircn lagravem sao để tecircn phản aacutenh đuacuteng vai trograve của taacutec nhacircn đoacute trong hệ
thống
54- Biểu diễn taacutec nhacircn trong ngocircn ngữ UML
Taacutec nhacircn trong UML lagrave một lớp với biệt ngữ Actor (Taacutec nhacircn) vagrave tecircn của lớp
nagravey lagrave tecircn của taacutec nhacircn (phản aacutenh vai trograve của taacutec nhacircn) Một lớp taacutec nhacircn coacute thể
vừa coacute thuộc tiacutenh (attribute) lẫn hagravenh vi (method) cũng như một thuộc tiacutenh tagravei
liệu (document) mocirc tả taacutec nhacircn đoacute Một lớp taacutec nhacircn coacute một biểu tượng chuẩn
hoacutea biểu tượng higravenh nhacircn
Higravenh 42- biểu tượng taacutec nhacircn trong UML
CuuDuongThanCongcom httpsfbcomtailieudientucntt
55- Use Case
Một Use Case lagrave đại diện cho một chức năng nguyecircn vẹn magrave một taacutec nhacircn nhận
được Một Use Case trong ngocircn ngữ UML được định nghĩa lagrave một tập hợp của caacutec
chuỗi hagravenh động magrave một hệ thống thực hiện để tạo ra một kết quả coacute thể quan
saacutet được tức lagrave một giaacute trị đến với một taacutec nhacircn cụ thể Những hagravenh động nagravey
coacute thể bao gồm việc giao tiếp với một loạt caacutec taacutec nhacircn cũng như thực hiện tiacutenh
toaacuten vagrave cocircng việc nội bộ becircn trong hệ thống
Caacutec tiacutenh chất tiecircu biểu của một Use Case lagrave
Một Use Case bao giờ cũng được gacircy ra bởi một taacutec nhacircn được
thực hiện nhacircn danh một taacutec nhacircn nagraveo đoacute Taacutec nhacircn phải ra lệnh
cho hệ thống để thực hiện Use Case đoacute dugrave lagrave trực tiếp hay giaacuten tiếp
Hiếm khi coacute taacutec nhacircn khocircng liecircn quan đến việc gacircy ra một Use Case
nagraveo đoacute
Một Use Case phải cung cấp một giaacute trị cho một taacutec nhacircn Giaacute trị
đoacute khocircng phải bao giờ cũng cần thiết phải nổi trội ra ngoagravei nhưng
luocircn phải được thấy rotilde
Một Use Case lagrave phải hoagraven tất Một trong những lỗi thường gặp lagrave
sẻ chia một Use Case thagravenh caacutec Use Case nhỏ hơn vagrave caacutec Use Case
nagravey thực thi lẫn nhau giống như việc gọi hagravem cho một ngocircn ngữ lập
trigravenh Một Use Case sẽ khocircng được coi lagrave hoagraven tất chừng nagraveo magrave giaacute
trị cuối cugraveng của noacute chưa được sản sinh ra thậm chiacute ngay cả khi đatilde
xẩy ra nhiều động taacutec giao tiếp (viacute dụ như đối thoại với người sử
dụng)
Use Case được nối với taacutec nhacircn qua liecircn kết (association) Đường liecircn kết chỉ ra
những taacutec nhacircn nagraveo giao tiếp với Use Case nagraveo Mối liecircn kết bigravenh thường ra lagrave
một mối quan hệ 1-1 vagrave khocircng coacute hướng Điều đoacute muốn noacutei lecircn rằng một thực
thể của lớp taacutec nhacircn sẽ giao tiếp với một thực thể của một Use Case vagrave cả hai coacute
thể giao tiếp với nhau trong cả hai chiều Một Use Case sẽ được đặt tecircn theo một
thực thể magrave Use Case sẽ thực hiện viacute dụ như kyacute hợp đồng bảo hiểm cập nhật
danh saacutech vvhellip vagrave thường lagrave một cụm từ hơn lagrave chỉ một từ riecircng lẻ
Một Use Case lagrave một lớp chứ khocircng phải một thực thể Noacute mocirc tả trọn vẹn một
chức năng kể cả caacutec giải phaacutep bổ sung vagrave thay thế coacute thể coacute caacutec lỗi coacute thể xảy
ra cũng như những ngoại lệ coacute thể xảy ra trong quaacute trigravenh thực thi Một kết quả
của sự thực thể hoacutea một Use Case được gọi lagrave một cảnh kịch (scenario) vagrave noacute đại
diện cho một sự sử dụng cụ thể của hệ thống (một đường dẫn thực thi riecircng biệt
qua hệ thống) Viacute dụ một cảnh kịch của Use Case Kyacute hợp đồng bảo hiểm coacute thể
lagrave John liecircn hệ với hệ thống qua điện thoại rồi sau đoacute kyacute hợp đồng bảo hiểm ocirc tocirc
cho chiếc xe Toyota Carolla magrave anh ta vừa mua
CuuDuongThanCongcom httpsfbcomtailieudientucntt
56- Tigravem Use Case
Quaacute trigravenh tigravem caacutec Use Case bắt đầu với caacutec taacutec nhacircn đatilde được xaacutec định ở phần
trước Đối với mỗi taacutec nhacircn hatildey hỏi caacutec cacircu hỏi sau
a Taacutec nhacircn nagravey cần những chức năng nagraveo từ hệ thống Hagravenh động chiacutenh
của taacutec nhacircn lagrave gigrave
Viacute dụ cho một giao dịch ruacutet tiền becircn maacutey ATM trong một nhagrave băng
lẻ caacutec hagravenh động chiacutenh của khaacutech hagraveng (taacutec nhacircn) coacute thể lagrave
Đuacutet thẻ vagraveo maacutey ATM
Nhập password
Nhập loại chuyển dịch
Nhập số tiền mặt muốn ruacutet ra
Yecircu cầu về loại tiền
Nhặt tiền ra từ maacutey
Ruacutet thẻ vagrave tờ in kết quả giao dịch
b Taacutec nhacircn coacute cần phải đọc phải tạo phải hủy bỏ phải sửa chữa hay lagrave
lưu trữ một loại thocircng tin nagraveo đoacute trong hệ thống
Viacute dụ
Nhacircn viecircn nhagrave băng liệu coacute quyền truy xuất hay thay đổi
mức tiền latildei
Khaacutech hagraveng coacute thể thay đổi password của migravenh
c Taacutec nhacircn coacute cần phải baacuteo cho hệ thống biết về những sự kiện nagraveo đoacute
Những sự kiện như thế sẽ đại diện cho những chức năng nagraveo
Viacute dụ
Khaacutech hagraveng kết thuacutec tagravei khoản nhacircn viecircn cung cấp những
thocircng tin nagravey cho hệ thống
Coacute một chương trigravenh đầu tư mới caacutec chi tiết của chương
trigravenh nagravey sẽ phải được nhacircn viecircn nhagrave băng nhập vagraveo hệ thống
d Hệ thống coacute cần phải thocircng baacuteo cho Actor về những thay đổi bất ngờ
trong nội bộ hệ thống
Trong tagravei khoản cograven quaacute iacutet tiền
Ba kỳ liecircn tiếp tiền lương chưa đổ về tagravei khoản
CuuDuongThanCongcom httpsfbcomtailieudientucntt
e Cocircng việc hagraveng ngagravey của taacutec nhacircn coacute thể được đơn giản hoacutea hoặc hữu
hiệu hoacutea qua caacutec chức năng mới trong hệ thống (thường đacircy lagrave những
chức năng tiecircu biểu chưa được tự động hoacutea trong hệ thống)
f Caacutec cacircu hỏi khaacutec
Use Case coacute thể được gacircy ra bởi caacutec sự kiện nagraveo khaacutec
Viacute dụ
Sự kiện thời gian Cuối thaacuteng hết hạn đầu tư
Sự kiện bigravenh thường của hệ thống Tự động chuyển tiền theo
caacutec lệnh xaacutec định trước
Caacutec sự kiện bất bigravenh thường Hợp đồng đầu tư kết thuacutec trước
thời hạn
Hệ thống cần những thocircng tin đầu vagraveođầu ra nagraveo Những thocircng
tin đầu vagraveođầu ra đoacute từ đacircu tới vagrave sẽ đi đacircu
Khoacute khăn vagrave thiếu hụt chiacutenh trong hệ thống hiện thời nằm ở đacircu
(thủ cocircng tự động hoacutea)
Đối với nhoacutem cacircu hỏi cuối khocircng coacute nghĩa lagrave Use Case ở đacircy khocircng coacute taacutec nhacircn
magrave taacutec nhacircn sẽ được nhận ra chỉ khi chuacuteng ta nhận diện ra caacutec Use Case nagravey vagrave
sau đoacute xaacutec định taacutec nhacircn dựa trecircn cơ sở lagrave Use Case Xin nhắc lại một Use Case
bao giờ cũng phải được liecircn kết với iacutet nhất một taacutec nhacircn
57- Viacute dụ tigravem Use Case
Nhagrave băng ABC đưa ra caacutec yecircu cầu sau
Một khaacutech hagraveng coacute thể muốn gửi tiền vagraveo ruacutet tiền ra hoặc đơn giản
kiểm tra lại số tiền trong tagravei khoản của anh ta qua maacutey tự động ruacutet
tiền (ATM) Khi đưa tiền vagraveo hoặc ruacutet tiền ra cần phải ghi ra giấy
kết quả những chuyển dịch đatilde thực hiện vagrave trao tờ giấy nagravey cho
khaacutech hagraveng
Quan saacutet caacutec chức năng căn bản vagrave caacutec thagravenh phần tham gia ta thấy coacute hai taacutec
nhacircn dễ nhận ra nhất lagrave khaacutech hagraveng vagrave nhacircn viecircn thu ngacircn
Qua đoacute coacute thể nhacircn dạng caacutec Use Case sau
Gửi tiền vagraveo
Ruacutet tiền ra
Kiểm tra mức tiền trong tagravei khoản
Thực hiện caacutec chuyển dịch nội bộ hệ thống
In kết quả caacutec chuyển dịch đatilde thực hiện
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 43 ndash Caacutec Use case trong hệ thống ATM
Use Case gửi tiền vagraveo vagrave ruacutet tiền ra phụ thuộc vagraveo Use Case thực hiện caacutec
chuyển dịch trong nội bộ hệ thống việc thực hiện nagravey về phần noacute lại phụ thuộc
vagraveo chức năng in ra caacutec cocircng việc đatilde được thực hiện Kiểm tra mức tiền trong tagravei
khoản lagrave một Use Case độc lập khocircng phụ thuộc vagraveo caacutec Use Case khaacutec
6- CAacuteC BIẾN THỂ (VARIATIONS) TRONG MỘT USE CASE
Mỗi Use Case sẽ coacute một dograveng hagravenh động chiacutenh (Basic Course) Đoacute lagrave tiến trigravenh
bigravenh thường hay tiến trigravenh mong đợi đối với Use Case nagravey
Ngoagravei ra coacute thể cograven coacute một hay nhiều dograveng hagravenh động thay thế (Alternative)
khaacutec Chuacuteng coacute thể được chia lagravem hai nhoacutem chiacutenh
Thay thế bigravenh thường (Normal Alternative)
Điều kiện gacircy lỗi (Error Condidtions)
Những gigrave mang tiacutenh bigravenh thường hơn trong Use Case được gọi lagrave Thay thế bigravenh
thường
Coacute thể miecircu tả caacutec dograveng hagravenh động thay thế bằng từ ngữ (xem phần tagravei liệu Use
Case )
Viacute dụ một khaacutech hagraveng coacute thể chọn caacutec loại giao dịch sau của ATM
Gửi tiền vagraveo
Ruacutet tiền ra
Kiểm tra mức tiền trong tagravei khoản
Đacircy lagrave những viacute dụ cho caacutec dograveng hagravenh động thay thế bigravenh thường
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Điều kiện gacircy lỗi đại diện cho những bước tiến hagravenh bất bigravenh thường trong một
Use Case Cần phải tiacutenh trước đến những điều kiện gacircy lỗi đoacute viacute dụ
Mức tiền trong tagravei khoản khocircng đủ để tiến hagravenh giao dịch
Password khocircng đuacuteng
ATM bị nghẽn thẻ
Higravenh sau necircu bật dograveng hagravenh động chiacutenh vagrave những dograveng hagravenh động thay thế cũng
như sự khaacutec biệt của chuacuteng đối với tiến trigravenh mong đợi của Use Case
Higravenh 44 ndash Caacutec tiến trigravenh trong hệ thống ATM
7- QUAN HỆ GIỮA CAacuteC USE CASE
Coacute ba loại quan hệ Use Case Quan hệ mở rộng quan hệ sử dụng vagrave quan hệ tạo
nhoacutem Quan hệ mở rộng vagrave quan hệ sử dụng lagrave hai dạng khaacutec nhau của tiacutenh thừa
kế Quan hệ tạo nhoacutem lagrave một phương caacutech để đặt nhiều Use Case chung với
nhau vagraveo trong một goacutei
71- Quan hệ mở rộng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Nhiều khi trong quaacute trigravenh phaacutet triển Use Case người ta thấy một số Use Case đatilde
tồn tại cung cấp một phần những chức năng cần thiết cho một Use Case mới
Trong một trường hợp như vậy coacute thể định nghĩa một Use Case mới lagrave Use Case
cũ cộng thecircm một phần mới Một Use Case như vậy được gọi lagrave một Use Case mở
rộng (Extended Use Case ) Trong quan hệ mở rộng Use Case gốc (Base Use
Case ) được dugraveng để mở rộng phải lagrave một Use Case hoagraven thiện Use Case mở
rộng khocircng nhất thiết phải sử dụng toagraven bộ hagravenh vi của Use Case gốc
Biểu đồ sau chỉ ra Use Case ―Kyacute hợp đồng mua ocirc tocirc lagrave Use Case mở rộng của
Kyacute hợp đồng bảo hiểm
Higravenh 45 - Quan hệ mở rộng giữa caacutec Use Case
Quan hệ mở rộng giữa caacutec Use Case được biểu thị bằng đoạn thẳng với higravenh tam
giaacutec rỗng trỏ về phiacutea Use Case được dugraveng để mở rộng đi kegravem với stereotype
ltltextendsgtgt
72- Quan hệ sử dụng
Khi một nhoacutem caacutec Use Case cugraveng chung một hagravenh vi nagraveo đoacute thigrave hagravenh vi nagravey coacute
thể được taacutech riecircng ra thagravenh một Use Case riecircng biệt vagrave noacute coacute thể được sử dụng
bởi caacutec Use Case kia một mối quan hệ như vậy được gọi lagrave quan hệ sử dụng
Trong quan hệ sử dụng phải sử dụng toagraven bộ Use Case khaacutei quaacutet hoacutea noacutei một
caacutech khaacutec ta coacute một Use Case nagravey sử dụng toagraven bộ một Use Case khaacutec Caacutec
hagravenh động trong Use Case khaacutei quaacutet hoacutea khocircng cần phải được sử dụng trong
cugraveng một tiến trigravenh Chuacuteng coacute thể được trộn lẫn với caacutec hagravenh động xảy ra trong
Use Case chuyecircn biệt hoacutea
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 46 - Quan hệ sử dụng giữa caacutec Use Case
Quan hệ sử dụng giữa caacutec Use Case được biểu thị bằng đoạn thẳng với higravenh tam
giaacutec rỗng trỏ về phiacutea Use Case được sử dụng đi kegravem với stereotype ltltusesgtgt
73- Quan hệ chung nhoacutem
Khi một số caacutec Use Case cugraveng xử lyacute caacutec chức năng tương tự hoặc coacute thể liecircn
quan đến nhau theo một phương thức nagraveo đoacute người ta thường nhoacutem chuacuteng lại
với nhau
Nhoacutem caacutec Use Case được thực hiện bằng khaacutei niệm Goacutei (Package) của UML Goacutei
khocircng cung cấp giaacute trị gia tăng cho thiết kế
Viacute dụ tất cả caacutec Use Case coacute liecircn quan đến sự tương taacutec giữa khaacutech hagraveng vagrave
nhacircn viecircn thu ngacircn sẽ được nhoacutem thagravenh Package Khaacutech hagraveng- Nv thu ngacircn
Higravenh 47 ndash Package của UML
Toacutem tắt về Use Case với maacutey ATM trong ngacircn hagraveng lẻ
Cho tới nay chuacuteng ta đatilde xaacutec định được một vagravei Use Case phacircn tiacutech dograveng hagravenh
động chiacutenh cũng như caacutec dograveng hagravenh động thay thế cũng như ruacutet ra caacutec mối
quan hệ giữa chuacuteng Biểu đồ sau tổng hợp những thocircng tin đatilde thu thập được về
nhoacutem caacutec Use Case căn bản của một hệ thống ATM
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 48 - Biểu đồ một số Use Case trong hệ thống ATM
8- MIEcircU TẢ USE CASE
Như đatilde trigravenh bagravey lời miecircu tả một Use Case thường được thực hiện trong văn bản
Đacircy lagrave lời đặc tả đơn giản vagrave nhất quaacuten về việc caacutec taacutec nhacircn vagrave caacutec Use Case (hệ
thống) tương taacutec với nhau ra sao Noacute tập trung vagraveo ứng xử đối ngoại của hệ
thống vagrave khocircng đề cập tới việc thực hiện nội bộ becircn trong hệ thống Ngocircn ngữ vagrave
caacutec thuật ngữ được sử dụng trong lời miecircu tả chiacutenh lagrave ngocircn ngữ vagrave caacutec thuật ngữ
được sử dụng bởi khaacutech hagravengngười dugraveng
Văn bản miecircu tả cần phải bao gồm những điểm sau
Mục điacutech của Use Case Mục điacutech chung cuộc của Use Case lagrave gigrave
Caacutei gigrave cần phải được đạt tới Use Case noacutei chung đều mang tiacutenh
hướng mục điacutech vagrave mục điacutech của mỗi Use Case cần phải rotilde ragraveng
Use Case được khởi chạy như thế nagraveo Taacutec nhacircn nagraveo gacircy ra sự thực
hiện Use Case nagravey Trong hoagraven cảnh nagraveo
Chuỗi caacutec thocircng điệp giữa taacutec nhacircn vagrave Use Case Use Case vagrave caacutec
taacutec nhacircn trao đổi thocircng điệp hay sự kiện nagraveo để thocircng baacuteo lẫn cho
nhau cập nhật hoặc nhận thocircng tin vagrave giuacutep đỡ nhau quyết định
Yếu tố nagraveo sẽ miecircu tả dograveng chảy chiacutenh của caacutec thocircng điệp giữa hệ
thống vagrave taacutec nhacircn vagrave những thực thể nagraveo trong hệ thống được sử
dụng hoặc lagrave bị thay đổi
Dograveng chảy thay thế trong một Use Case Một Use Case coacute thể coacute
những dograveng thực thi thay thế tugravey thuộc vagraveo điều kiện Hatildey nhắc đến
caacutec yếu tố nagravey nhưng chuacute yacute đừng miecircu tả chuacuteng quaacute chi tiết đến
CuuDuongThanCongcom httpsfbcomtailieudientucntt
mức độ chuacuteng coacute thể ―che khuất― dograveng chảy chiacutenh của caacutec hoạt
động trong trường hợp căn bản Những động taacutec xử lyacute lỗi đặc biệt sẽ
được miecircu tả thagravenh caacutec Use Case khaacutec
Use Case sẽ kết thuacutec với một giaacute trị đối với taacutec nhacircn như thế nagraveo
Hatildey miecircu tả khi nagraveo Use Case được coi lagrave đatilde kết thuacutec vagrave loại giaacute trị
magrave noacute cung cấp đến taacutec nhacircn
Hatildey nhớ rằng lời miecircu tả nagravey sẽ xaacutec định những gigrave được thực thi coacute liecircn quan đến
taacutec nhacircn becircn ngoagravei chứ khocircng phải những sự việc được thực hiện becircn trong hệ
thống Văn bản phải rotilde ragraveng nhất quaacuten khiến cho khaacutech hagraveng coacute thể dễ dagraveng
hiểu vagrave thẩm tra chuacuteng (để rồi đồng yacute rằng noacute đại diện cho những gigrave magrave anhcocirc
ta muốn từ phiacutea hệ thống) Traacutenh dugraveng những cacircu văn phức tạp khoacute diễn giải vagrave
dễ hiểu lầm
Một Use Case cũng coacute thể được miecircu tả qua một biểu đồ hoạt động Biểu đồ hoạt
động nagravey chỉ ra chuỗi caacutec hagravenh động thứ tự của chuacuteng caacutec quyết định chọn lựa
để xaacutec định xem hagravenh động nagraveo sau đoacute sẽ được thực hiện
Để bổ sung cho lời miecircu tả một Use Case người ta thường đưa ra một loạt caacutec
cảnh kịch cụ thể để minh họa điều gigrave sẽ xảy ra một khi Use Case nagravey được thực
thể hoacutea Lời miecircu tả cảnh kịch minh họa một trường hợp đặc biệt khi cả taacutec
nhacircn lẫn Use Case đều được coi lagrave một thực thể cụ thể Khaacutech hagraveng coacute thể dễ
dagraveng hiểu hơn toagraven bộ một Use Case phức tạp nếu coacute những cảnh kịch được
miecircu tả thực tiễn hơn minh họa lại lối ứng xử vagrave phương thức hoạt động của hệ
thống Nhưng xin nhớ rằng một lời miecircu tả cảnh kịch chỉ lagrave một sự bổ sung chứ
khocircng phải lagrave ứng cử viecircn để thay thế cho lời miecircu tả Use Case
Sau khi caacutec Use Case đatilde được miecircu tả một hoạt động vagrave một cocircng việc đặc biệt
cần phải thực hiện lagrave thẩm tra xem caacutec mối quan hệ (đatilde đề cập tới trong phần
27) coacute được nhận diện khocircng Trước khi tất cả caacutec Use Case được miecircu tả nhagrave
phaacutet triển chưa thể coacute được những kiến thức hoagraven tất vagrave tổng thể để xaacutec định
caacutec mối quan hệ thiacutech hợp thử nghiệm lagravem theo phương thức đoacute coacute thể sẽ dẫn
đến một tigravenh huống nguy hiểm Trong thời gian thực hiện cocircng việc nagravey hatildey trả
lời caacutec cacircu hỏi sau
Tất cả caacutec taacutec nhacircn liecircn quan đến một Use Case coacute mối liecircn kết
giao tiếp với Use Case đoacute khocircng
Coacute tồn tại những sự tương tự giữa một loạt caacutec taacutec nhacircn minh họa
một vai trograve chung vagrave nhoacutem nagravey liệu coacute thể được miecircu tả lagrave một lớp
taacutec nhacircn căn bản (base class)
Coacute tồn tại những sự tương tự giữa một loạt caacutec Use Case minh họa
một dograveng chảy hagravenh động chung Nếu coacute liệu điều nagravey coacute thể được
miecircu tả lagrave một mối quan hệ sử dụng đến với một Use Case khaacutec
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Coacute tồn tại những trường hợp đặc biệt của một Use Case coacute thể
được miecircu tả lagrave một mối quan hệ mở rộng
Coacute tồn tại một taacutec nhacircn nagraveo hay một Use Case nagraveo khocircng coacute mối
liecircn kết giao tiếp Nếu coacute chắc chắn ở đacircy đatilde coacute chuyện lầm lạc sai
traacutei Tại sao lại xuất hiện taacutec nhacircn nagravey
Coacute lời yecircu cầu nagraveo về chức năng đatilde được xaacutec định nhưng lại khocircng
được bất kỳ một Use Case nagraveo xử lyacute Nếu thế hatildey tạo một Use
Case cho yecircu cầu đoacute
Văn bản miecircu tả một Use Case đơn giản
Viacute dụ Use Case Cung Cấp Thocircng Tin Về Một Tagravei Khoản Tại Nhagrave Băng ABC Sau
khi phacircn tiacutech hệ thống ta nhận thấy cần coacute một Use Case để in lecircn magraven higravenh của
nhacircn viecircn nhagrave băng tất cả những chi tiết về một tagravei khoản của một khaacutech hagraveng
Đặc tả Use Case
Chi tiết tagravei khoản tecircn Use Case
Số Use Case UCSEC35
Miecircu tả ngắn miecircu tả ngắn gọn Use Case
Use Case chi tiết tagravei khoản cho pheacutep nhacircn viecircn nhagrave băng xem caacutec chi tiết của
một tagravei khoản magrave anh ta định tigravem hiểu
Dograveng chảy caacutec sự kiện dograveng logic chung
Nhacircn viecircn chọn Chi Tiết Tagravei Khoản trecircn menu Một con đường khaacutec để chỉ ra caacutec
thocircng tin chi tiết của tagravei khoản lagrave gọi từ Magraven Higravenh Toacutem Tắt Thocircng Tin Về Tagravei
Khoản (xem Use Case số UCSEC99)
Dograveng hagravenh động chiacutenh dograveng logic chi tiết
Mỗi khaacutech hagraveng sẽ coacute một số định danh gọi lagrave CustomerId Một khaacutech hagraveng coacute
thể coacute nhiều tagravei khoản Sau khi nhacircn viecircn nhập CustomerId vagraveo hệ thống magraven
higravenh phải in ra tất cả những tagravei khoản thuộc về khaacutech hagraveng nagravey vagrave thuộc về nhagrave
băng ABC rải raacutec tại tất cả caacutec chi nhaacutenh Khi chọn tiếp loại tagravei khoản vagrave số tagravei
khoản caacutec chi tiết của tagravei khoản mong muốn sẽ được in ra
Loại tagravei khoản tiết kiệm Nếu loại tagravei khoản được chọn lagrave tagravei khoản tiết kiệm thigrave
theo Use Case số UCSEC45 caacutec chi tiết sau đacircy sẽ được in ra
Mức tiền hiện coacute
Caacutec tờ sec chưa thanh toaacuten
Lượng tiền tiacuten dụng được pheacutep
Lượng tiền latildei cho tới ngagravey hocircm nay
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Lượng tiền tối thiểu cần phải coacute trong tagravei khoản
Loại tagravei khoản đầu tư Nếu loại tagravei khoản được chọn lagrave loại đầu tư thigrave theo Use
Case số UCSEC46 caacutec chi tiết sau đacircy sẽ được in ra
Hạn đầu tư
Số tiền đầu tư
Ngagravey đầu tư
Lượng tiền cuối hạn
Ngagravey cuối hạn
Tỷ lệ lời
Dograveng hagravenh động thay thế chuỗi logic thay thế
Khocircng tigravem thấy chi tiết Khi chọn một số tagravei khoản khocircng thiacutech hợp (khocircng coacute tagravei
khoản tương ứng) dugrave vigrave lyacute do chức năng hay kỹ thuật theo Use Case số
UCSEC12 hệ thống sẽ đưa ra một magraven higravenh baacuteo lỗi
Điều kiện thoaacutet Use Case kết thuacutec như thế nagraveo
Nuacutet Thoaacutet Khi chọn nuacutet thoaacutet người sử dụng sẽ quay trở lại magraven higravenh chiacutenh
Nuacutet Xem Thecircm Khi chọn nuacutet nagravey người sử dụng sẽ được yecircu cầu chọn loại tagravei
khoản từ một danh saacutech đổ xuống
Nuacutet Xem Giao Dịch Khi chọn nuacutet nagravey người sử dụng sẽ được chuyển sang magraven
higravenh Giao dịch vagrave theo Use Case số UCSEC91 magraven higravenh sẽ chỉ ra những giao
dịch đatilde xảy ra đối với tagravei khoản becircn cạnh những chi tiết chiacutenh của tagravei khoản
Nuacutet Yecircu Cầu In Kết Quả Khi chọn phần thực đơn nagravey kết quả giao dịch theo Use
Case số UCSEC70 sẽ được in ra ở một maacutey in địa phương nối trực tiếp với maacutey
tiacutenh của nhacircn viecircn
Caacutec yecircu cầu đặc biệt caacutec yecircu cầu đặc biệt
Theo Use Case số UCSEC110 hệ thống coacute khả năng in lecircn magraven higravenh bằng những
ngocircn ngữ khaacutec Chức năng nagravey sẽ được kiacutech hoạt khi người sử dụng chọn mục
Ngoại Ngữ trecircn menu
Điều kiện trƣớc đoacute điều xảy ra trước khi Use Case được thực hiện
Bảo an Người sử dụng (nhacircn viecircn tiếp khaacutech) được cung cấp một số định danh
riecircng biệt để truy nhập vagraveo hệ thống
Dịch chuyển Người sử dụng chỉ đến được magraven higravenh Chi Tiết Tagravei Khoản sau khi đatilde
truy nhập thagravenh cocircng vagrave Identify thagravenh cocircng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Điều kiện sau đoacute điều gigrave xảy ra sau khi Use Case
được thực hiện
Hệ thống sẽ khocircng lưu trữ lại bất kỳ một thocircng tin nagraveo liecircn quan tới khaacutech hagraveng
lecircn đĩa cứng cục bộ
9- THỬ USE CASE
Một trong caacutec mục điacutech chiacutenh của Use Case lagrave thử nghiệm (testing) Coacute hai loại
thử nghiệm khaacutec nhau được thực hiện ở đacircy kiểm tra (verification) vagrave phecirc
duyệt xaacutec nhận (validation) Kiểm tra đảm bảo lagrave hệ thống đatilde được phaacutet triển
đuacuteng đắn vagrave phugrave hợp với caacutec đặc tả đatilde được tạo ra Phecirc duyệt xaacutec nhận đảm bảo
rằng hệ thống sẽ được phaacutet triển chiacutenh lagrave thứ magrave khaacutech hagraveng hoặc người sử
dụng cuối thật sự cần đến
Cocircng việc phecirc duyệt xaacutec nhận được thực hiện kề trước giai đoạn phaacutet triển
Ngay khi một mocirc higravenh Use Case được hoagraven tất (hay thậm chiacute coacute thể đang trong
giai đoạn phaacutet triển) mocirc higravenh nagravey phải được trigravenh bagravey vagrave thảo luận với khaacutech
hagraveng cũng như người sử dụng Họ cần phải xaacutec nhận rằng mocirc higravenh nagravey lagrave đuacuteng
đắn hoagraven tất vagrave thỏa matilden sự mong đợi của họ đối với hệ thống đặc biệt lagrave
phương caacutech magrave hệ thống cung cấp chức năng cho họ Để lagravem điều đoacute nhagrave phaacutet
triển phải đảm bảo rằng khaacutech hagraveng thật sự hiểu được mocirc higravenh vagrave yacute nghĩa của
chuacuteng để traacutenh trường hợp tạo ra những thứ khocircng thể chấp nhận nổi Trong
giai đoạn nagravey rotilde ragraveng lagrave caacutec cacircu hỏi vagrave caacutec yacute tưởng sẽ xuất hiện vagrave chuacuteng cần
phải được bổ sung thecircm vagraveo mocirc higravenh Use Case trước khi đến giai đoạn phecirc duyệt
chung cuộc Giai đoạn xaacutec nhận cũng coacute thể được thực hiện trong thời kỳ thử
nghiệm hệ thống nhưng điểm yếu của phương thức lagravem nagravey lagrave nếu hệ thống
khocircng thỏa matilden những yecircu cầu cụ thể của người sử dụng thigrave toagraven bộ dự aacuten rất
coacute thể sẽ phải lagravem lại từ đầu
Kiểm tra hệ thống lagrave để đảm bảo noacute hoạt động đuacuteng như đặc tả Điều nagravey
khocircng thể được thực hiện trước khi đatilde coacute những thagravenh phần của hệ thống được
tạo ra Chỉ sau đoacute người ta mới coacute thể thử xem hệ thống coacute hoạt động đuacuteng như
đặc tả magrave người sử dụng đatilde đưa ra rằng caacutec Use Case thực hiện đuacuteng theo như
những lời đatilde miecircu tả trong mocirc higravenh rằng chuacuteng hoạt động theo đuacuteng phương
thức đatilde được miecircu tả trong văn bản miecircu tả Use Case
Đi bộ dọc Use Case
Một trong những kỹ thuật hữu dụng được dugraveng trong cả giai đoạn định nghĩa lẫn
thử nghiệm Use Case gọi lagrave Đi Bộ Dọc Use Case Theo kỹ thuật nagravey nhiều
người khaacutec nhau trong nhoacutem lagravem mocirc higravenh sẽ đoacuteng vai caacutec taacutec nhacircn cũng như hệ
thống trong một Use Case cụ thể Người đảm nhận vai taacutec nhacircn sẽ bắt đầu bằng
việc noacutei ra taacutec nhacircn lagravem gigrave với hệ thống Kết quả của cocircng việc nagravey lagrave hệ thống
sẽ khởi chạy một Use Case cụ thể được bắt đầu từ hagravenh động trecircn Người đoacuteng
vai hệ thống sau đoacute sẽ noacutei anh ta lagravem gigrave khi Use Case được thực hiện Nhagrave phaacutet
CuuDuongThanCongcom httpsfbcomtailieudientucntt
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
hoagraven tất
10- THỰC HIỆN CAacuteC USE CASE
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 higravenh ellipse coacute chứa tecircn của sự cộng taacutec đoacute
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
đồ hoạt động Cần phải sử dụng loại biểu đồ nagraveo để tạo ra một bức tranh bao
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 đồ
khaacutec nhau
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
CuuDuongThanCongcom httpsfbcomtailieudientucntt
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
55- Use Case
56- Tigravem Use Case
57- Viacute dụ tigravem Use Case
6- Caacutec biến thể (Variations) trong một Use Case
7- Quan hệ giữa caacutec Use Case
71- Quan hệ mở rộng
72- Quan hệ sử dụng
73- Quan hệ chung nhoacutem
8- Miecircu tả Use Case
9- Thử Use Case
10- Thực hiện caacutec Use Case
11- Toacutem tắt về Use Case
Phần cacircu hỏi
Chƣơng 6 MOcirc HIgraveNH ĐỘNG
1- Sự cần thiết coacute mocirc higravenh động (Dynamic model)
2- Caacutec thagravenh phần của mocirc higravenh động
3- Ƣu điểm của mocirc higravenh động
4- Sự kiện vagrave thocircng điệp (Event amp Message)
41- Sự kiện (Event)
42- Thocircng điệp (Message)
5- Biểu đồ tuần tự (Sequence diagram)
6- Biểu đồ cộng taacutec (Collaboration Diagram)
7- Biểu đồ trạng thaacutei (State Diagram)
71- Trạng thaacutei vagrave sự biến đổi trạng thaacutei (State transition)
72- Biểu đồ trạng thaacutei
73- Nhận biết trạng thaacutei vagrave sự kiện
CuuDuongThanCongcom httpsfbcomtailieudientucntt
74- Một số lời maacutech bảo cho việc tạo dựng biểu đồ trạng thaacutei
8- Biểu đồ hoạt động (Activity Diagram)
9- Vograveng đời đối tƣợng (Object lifecycle)
91- Vograveng đời sinh ra vagrave chết đi
92- Vograveng đời lặp
10- Xem xeacutet lại mocirc higravenh động
101- Thẩm vấn biểu đồ trạng thaacutei
102- Phối hợp sự kiện
103- Bao giờ thigrave sử dụng biểu đồ nagraveo
104- Lớp con vagrave biểu đồ trạng thaacutei
11- Phối hợp mocirc higravenh đối tƣợng vagrave mocirc higravenh động
12- Toacutem tắt về mocirc higravenh động
Phần cacircu hỏi
CuuDuongThanCongcom httpsfbcomtailieudientucntt
1- DẪN NHẬP
11- Tiacutenh trực quan
Chuacuteng ta coacute thể thấy rằng Một số tập hợp dữ liệu phức tạp nhất định khi
được trigravenh bagravey bằng đồ thị sẽ truyền tải đến người đọc nhiều thocircng tin hơn
so với caacutec dữ liệu thocirc Với phần mềm cũng vậy khi ngagravenh Cocircng nghiệp
của chuacuteng ta ngagravey cagraveng phaacutet triển caacutec hệ thống sẽ trở necircn phức tạp hơn
Khả năng nắm bắt vagrave kiểm soaacutet sự phức tạp đoacute của chuacuteng ta đi kegravem với
khả năng trigravenh bagravey hệ thống một caacutech toagraven diện - một sự trigravenh bagravey vượt ra
ngoagravei giới hạn của những dograveng lệnh thocirc Sự thagravenh cocircng trecircn thị trường của
những ngocircn ngữ như Visual Basic vagrave phần giao diện trực quan của C++
Java đatilde cho thấy sự trigravenh bagravey trực quan mang tiacutenh cốt yếu đối với quaacute
trigravenh phaacutet triển caacutec hệ thống phức tạp
12- Mocirc higravenh trừu tượng
Trước đacircy coacute một thời gian dagravei ngagravenh cocircng nghiệp chuacuteng ta đatilde phải noacutei
tới một Cuộc khủng hoảng phần mềm Caacutec cuộc tranh luận đều dựa trecircn
thực tế lagrave chẳng những nhiều đồ aacuten phần mềm khocircng thể sản sinh ra
những hệ thống thoả matilden đogravei hỏi vagrave nhu cầu của khaacutech hagraveng magrave cograven
vượt quaacute ngacircn saacutech vagrave thời hạn Caacutec cocircng nghệ mới như lập trigravenh hướng
đối tượng lập trigravenh trực quan cũng như caacutec mocirci trường phaacutet triển tiecircn tiến
coacute giuacutep chuacuteng ta nacircng cao năng suất lao động nhưng trong nhiều trường
hợp chuacuteng chỉ hướng tới tầng thấp nhất của việc phaacutet triển phần mềm
phần viết lệnh (coding) Một trong những vấn đề chiacutenh của ngagravenh phaacutet
triển phần mềm thời nay lagrave coacute nhiều đồ aacuten bắt tay vagraveo lập trigravenh quaacute sớm
vagrave tập trung quaacute nhiều vagraveo việc viết code Lyacute do một phần lagrave do ban quản
trị thiếu hiểu biết về quy trigravenh phaacutet triển phần mềm vagrave họ nảy lo acircu khi
thấy đội quacircn lập trigravenh của họ khocircng viết code Vagrave bản thacircn caacutec lập trigravenh
viecircn cũng cảm thấy an tacircm hơn khi họ ngồi viết code - vốn lagrave taacutec vụ magrave
họ quen thuộc ndash hơn lagrave khi xacircy dựng caacutec mocirc higravenh trừu tượng cho hệ
thống magrave họ phải tạo necircn
13- Mocirc higravenh hoacutea trực quan
Mocirc higravenh hoaacute trực quan lagrave một phương thức tư duy về vấn đề sử dụng caacutec
mocirc higravenh được tổ chức xoay quanh caacutec khaacutei niệm đời thực Mocirc higravenh giuacutep
chuacuteng ta hiểu vấn đề giao tiếp với mọi người coacute liecircn quan đến dự aacuten
(khaacutech hagraveng chuyecircn gia lĩnh vực thuộc đề aacuten nhagrave phacircn tiacutech nhagrave thiết
kế hellip) Mocirc higravenh rất hữu dụng trong việc mocirc higravenh hoaacute doanh nghiệp soạn
thảo tagravei liệu thiết kế chương trigravenh cũng như ngacircn hagraveng dữ liệu Mocirc higravenh
CuuDuongThanCongcom httpsfbcomtailieudientucntt
giuacutep hiểu caacutec đogravei hỏi của hệ thống tốt hơn tạo caacutec thiết kế rotilde ragraveng hơn vagrave
xacircy dựng necircn caacutec hệ thống dễ bảo trigrave hơn
Mocirc higravenh lagrave kết quả của sự trừu tượng hoacutea nhằm miecircu tả caacutec thagravenh phần
cốt yếu của một vấn đề hay một cấu truacutec phức tạp qua việc lọc bớt caacutec chi
tiết khocircng quan trọng vagrave lagravem cho vấn đề trở thagravenh dễ hiểu hơn Trừu
tượng hoacutea lagrave một năng lực căn bản của con người cho pheacutep chuacuteng ta giải
quyết caacutec vấn đề phức tạp Caacutec kỹ sư nghệ sĩ vagrave thợ thủ cocircng đatilde xacircy
dựng mocirc higravenh từ hagraveng ngagraven năm nay để thử nghiệm thiết kế trước khi
thực hiện Phaacutet triển phần mềm cũng khocircng lagrave ngoại lệ Để xacircy dựng caacutec
hệ thống phức tạp nhagrave phaacutet triển phải trừu tượng hoacutea nhiều hướng nhigraven
khaacutec nhau của hệ thống sử dụng kyacute hiệu chiacutenh xaacutec để xacircy dựng mocirc higravenh
kiểm tra xem mocirc higravenh coacute thỏa matilden caacutec đogravei hỏi của hệ thống vagrave dần dần
bổ sung thecircm chi tiết để chuyển caacutec mocirc higravenh thagravenh thực hiện
Chuacuteng ta xacircy dựng mocirc higravenh cho caacutec hệ thống phức tạp bởi chuacuteng ta khocircng
thể hiểu thấu đaacuteo những hệ thống như thế trong trạng thaacutei toagraven vẹn của
chuacuteng Khả năng thấu hiểu vagrave nắm bắt tiacutenh phức tạp của con người lagrave coacute
hạn Điều nagravey ta coacute thể thấy rotilde trong viacute dụ của ngagravenh xacircy dựng Nếu bạn
muốn tạo một tuacutep lều ở goacutec vườn bạn coacute thể bắt tay vagraveo xacircy ngay Nếu
bạn xacircy một ngocirci nhagrave coacute lẽ bạn sẽ cần tới bản vẽ nhưng nếu bạn muốn
xacircy một toagrave nhagrave chọc trời thigrave chắc chắn bạn khocircng thể khocircng cần bản vẽ
Thế giới phần mềm của chuacuteng ta cũng thế Chỉ tập trung vagraveo caacutec dograveng
code hay thậm chiacute cả phacircn tiacutech Forms trong Visual Basic chẳng cung cấp
một caacutei nhigraven toagraven cục về việc phaacutet triển đồ aacuten Xacircy dựng mocirc higravenh cho
pheacutep nhagrave thiết kế tập trung vagraveo bức tranh lớn về sự tương taacutec giữa caacutec
thagravenh phần trong đồ aacuten traacutenh bị sa lầy vagraveo những chi tiết riecircng biệt của
từng thagravenh phần
Một mocirci trường kinh doanh mang tiacutenh cạnh tranh gay gắt vagrave luocircn luocircn
thay đổi dẫn đến tiacutenh phức tạp ngagravey cagraveng tăng cao vagrave tiacutenh phức tạp nagravey
đặt ra những thaacutech thức đặc trưng cho caacutec nhagrave phaacutet triển hệ thống Mocirc
higravenh giuacutep chuacuteng ta tổ chức trigravenh bagravey trực quan thấu hiểu vagrave tạo necircn caacutec
hệ thống phức tạp Chuacuteng giuacutep chuacuteng ta đaacutep ứng caacutec thaacutech thức của việc
phaacutet triển phần mềm hocircm nay cũng như ngagravey mai
2- MOcirc TẢ CHU TRIgraveNH PHAacuteT TRIỂN PHẦN MỀM
21- Software Development ndash một bagravei toaacuten phức tạp
Kinh nghiệm của nhiều nhagrave thiết kế vagrave phaacutet triển cho thấy phaacutet triển phần
mềm lagrave một bagravei toaacuten phức tạp Xin necircu một số caacutec lyacute do thường được kể
đến
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Những người phaacutet triển phần mềm rất khoacute hiểu cho đuacuteng những gigrave
người dugraveng cần
Yecircu cầu của người dugraveng thường thay đổi trong thời gian phaacutet triển
Yecircu cầu thường được miecircu tả bằng văn bản dagravei dograveng khoacute hiểu
nhiều khi thậm chiacute macircu thuẫn
Đội quacircn phaacutet triển phần mềm vốn lagrave người ngoagravei cuộc rất khoacute
nhận thức thấu đaacuteo caacutec mối quan hệ tiềm ẩn vagrave phức tạp cần được
thể hiện chiacutenh xaacutec trong caacutec ứng dụng lớn
Khả năng nắm bắt caacutec dữ liệu phức tạp của con người (tại cugraveng
một thời điểm) lagrave coacute hạn
Khoacute định lượng chiacutenh xaacutec hiệu suất của thagravenh phẩm vagrave thỏa matilden
chiacutenh xaacutec sự mong chờ từ phiacutea người dugraveng
Chọn lựa phần cứng vagrave phần mềm thiacutech hợp cho giải phaacutep lagrave một
trong những thaacutech thức lớn đối với Designer
Phần mềm ngoagravei ra cần coacute khả năng thiacutech ứng vagrave mở rộng Phần mềm
được thiết kế tốt lagrave phần mềm đứng vững trước những biến đổi trong mocirci
trường dugrave từ phiacutea cộng đồng người dugraveng hay từ phiacutea cocircng nghệ Viacute dụ
phần mềm đatilde được phaacutet triển cho một nhagrave băng cần coacute khả năng taacutei sử
dụng cho một nhagrave băng khaacutec với rất iacutet sửa đổi hoặc hoagraven toagraven khocircng cần
sửa đổi Phần mềm thoả matilden caacutec yecircu cầu đoacute được coi lagrave phần mềm coacute khả
năng thiacutech ứng
Một phần mềm coacute khả năng mở rộng lagrave phần mềm được thiết kế sao cho
dễ phaacutet triển theo yecircu cầu của người dugraveng magrave khocircng cần sửa chữa nhiều
Chiacutenh vigrave vậy một số caacutec khiếm khuyết thường gặp trong phaacutet triển phần
mềm lagrave
Hiểu khocircng đuacuteng những gigrave người dugraveng cần
Khocircng thể thiacutech ứng cho phugrave hợp với những thay đổi về yecircu cầu
đối với hệ thống
Caacutec Module khocircng khớp với nhau
Phần mềm khoacute bảo trigrave vagrave nacircng cấp mở rộng
Phaacutet hiện trễ caacutec lỗ hổng của dự aacuten
Chất lượng phần mềm keacutem
Hiệu năng của phần mềm thấp
Caacutec thagravenh viecircn trong nhoacutem khocircng biết được ai đatilde thay đổi caacutei gigrave
khi nagraveo ở đacircu tại sao phải thay đổi
CuuDuongThanCongcom httpsfbcomtailieudientucntt
22- Chu Trigravenh Phaacutet Triển Phần Mềm (Software Development Life Cycle)
Vigrave phaacutet triển phần mềm lagrave một bagravei toaacuten khoacute necircn coacute lẽ trước hết ta cần
điểm qua một số caacutec cocircng việc căn bản của quaacute trigravenh nagravey Thường người
ta hay tập hợp chuacuteng theo tiến trigravenh thời gian một caacutech tương đối xoay
quanh chu trigravenh của một phần mềm dẫn tới kết qủa khaacutei niệm Chu Trigravenh
Phaacutet Triển Phần Mềm (Software Development Life Cycle - SDLC) như sau
Chu Trigravenh Phaacutet Triển Phần Mềm lagrave một chuỗi caacutec hoạt động của nhagrave phacircn
tiacutech (Analyst) nhagrave thiết kế (Designer) người phaacutet triển (Developer) vagrave
người dugraveng (User) để phaacutet triển vagrave thực hiện một hệ thống thocircng tin
Những hoạt động nagravey được thực hiện trong nhiều giai đọan khaacutec nhau
Nhagrave phacircn tiacutech (Analyst) lagrave người nghiecircn cứu yecircu cầu của
khaacutech hagravengngười dugraveng để định nghĩa một phạm vi bagravei toaacuten nhận
dạng nhu cầu của một tổ chức xaacutec định xem nhacircn lực phương
phaacutep vagrave cocircng nghệ maacutey tiacutenh coacute thể lagravem sao để cải thiện một caacutech
tốt nhất cocircng taacutec của tổ chức nagravey
Nhagrave thiết kế (Designer) thiết kế hệ thống theo hướng cấu truacutec
của database screens forms vagrave reports ndash quyết định caacutec yecircu cầu
về phần cứng vagrave phần mềm cho hệ thống cần được phaacutet triển
Chuyecircn gia lĩnh vực (Domain Experts) lagrave những người hiểu
thực chất vấn đề cugraveng tất cả những sự phức tạp của hệ thống cần
tin học hoaacute Họ khocircng nhất thiết phải lagrave nhagrave lập trigravenh nhưng họ coacute
thể giuacutep nhagrave lập trigravenh hiểu yecircu cầu đặt ra đối với hệ thống cần phaacutet
triển Quaacute trigravenh phaacutet triển phần mềm sẽ coacute rất nhiều thuận lợi nếu
đội ngũ lagravem phần mềm coacute được sự trợ giuacutep của họ
Lập trigravenh viecircn (Programmer) lagrave những người dựa trecircn caacutec
phacircn tiacutech vagrave thiết kế để viết chương trigravenh (coding) cho hệ thống
bằng ngocircn ngữ lập trigravenh đatilde được thống nhất
Ngƣời dugraveng (User) lagrave đối tượng phục vụ của hệ thống cần được
phaacutet triển
Để cho rotilde hơn xin lấy viacute dụ về một vấn đề đơn giản sau
Người bigravenh thường chuacuteng ta khi nhigraven một chiếc xe ocirc tocirc thường sẽ coacute một
bức tranh từ becircn ngoagravei như sau
Vấn đề
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 11 Nhigraven vấn đề ocirc tocirc của người bigravenh thường
Chuyecircn gia lĩnh vực sẽ giuacutep nhagrave phacircn tiacutech trigravenh bagravey lại vấn đề như sau
Higravenh 12 Nhigraven vấn đề ocirc tocirc của chuyecircn gia phacircn tiacutech
Chiacutenh vigrave sự trợ giuacutep của chuyecircn gia lĩnh vực coacute thể đoacuteng vai trograve rất quan
trọng necircn trong những giai đoạn đầu của quaacute trigravenh phaacutet triển phần mềm
kết quả phacircn tiacutech necircn được thể hiện sao cho dễ hiểu đối với caacutec chuyecircn
gia lĩnh vực Đacircy cũng lagrave mocirct trong rất nhiều lyacute do khiến cho phương phaacutep
hướng đối tượng được nhiều người hưởng ứng
23- Caacutec giai đoạn của Chu Trigravenh Phaacutet Triển Phần Mềm
Chu trigravenh của một phần mềm coacute thể được chia thagravenh caacutec giai đoạn như
sau
Nghiecircn cứu sơ bộ (Preliminary Investigation hay cograven gọi lagrave
Feasibility Study)
Phacircn tiacutech yecircu cầu (Analysis)
Thiết kế hệ thống (Design of the System)
Xacircy dựng phần mềm (Software Construction)
Thử nghiệm hệ thống (System Testing)
Thực hiện triển khai (System Implementation)
Bảo trigrave nacircng cấp (System Maintenance)
a - Nghiecircn cứu sơ bộ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Cacircu hỏi quan trọng nhất khi phaacutet triển một hệ thống hoagraven toagraven
khocircng phải cacircu hỏi mang tiacutenh phương phaacutep luận Magrave cũng chẳng
phải cacircu hỏi về kỹ thuật Noacute lagrave một cacircu hỏi dường như coacute vẻ đơn
giản nhưng thật ra đặc biệt khoacute trả lời ―Đacircy coacute đuacuteng lagrave một hệ
thống để thực hiện khocircng Đaacuteng buồn lagrave chiacutenh cacircu hỏi nagravey trong
thực tế thường chẳng hề được đặt ra vagrave lại cagraveng khocircng được trả lời
Mặc dugrave việc lầm lẫn về phương phaacutep hay quyết định sai lầm về kỹ
thuật cũng coacute thể dẫn tới thất bại nhưng thường thigrave dự aacuten coacute thể
được cứu vatilden nếu coacute đầy đủ tagravei nguyecircn cugraveng sự cố gắng quecircn migravenh
của caacutec nhacircn viecircn tagravei giỏi Nhưng sẽ chẳng một ai vagrave một điều gigrave
cứu vatilden cho một hệ thống phần mềm hoagraven toagraven chẳng được cần tới
hoặc cố gắng tự động hoacutea một quy trigravenh lầm lạc
Trước khi bắt tay vagraveo một dự aacuten bạn phải coacute một yacute tưởng cho noacute Yacute
tưởng nagravey đi song song với việc nắm bắt caacutec yecircu cầu vagrave xuất hiện
trong giai đoạn khởi đầu Noacute hoagraven tất một phaacutet biểu Hệ thống magrave
chuacuteng ta mong muốn sẽ lagravem được những việc như sau Trong
suốt giai đoạn nagravey chuacuteng ta tạo necircn một bức tranh về yacute tưởng đoacute
rất nhiều giả thuyết sẽ được cocircng nhận hay loại bỏ Caacutec hoạt động
trong thời gian nagravey thường bao gồm thu thập caacutec yacute tưởng nhận biết
rủi ro nhận biết caacutec giao diện becircn ngoagravei nhận biết caacutec caacutec chức
năng chiacutenh magrave hệ thống cần cung cấp vagrave coacute thể tạo một vagravei
nguyecircn mẫu dugraveng để ―minh chứng caacutec khaacutei niệm của hệ thống Yacute
tưởng coacute thể đến từ nhiều nguồn khaacutec nhau khaacutech hagraveng chuyecircn
gia lĩnh vực caacutec nhagrave phaacutet triển khaacutec chuyecircn gia về kỹ nghệ caacutec
bản nghiecircn cứu tiacutenh khả thi cũng như việc xem xeacutet caacutec hệ thống
khaacutec đang tồn tại Một khiacutea cạnh cần nhắc tới lagrave code viết trong thời
kỳ nagravey thường sẽ bị bỏ đi bởi chuacuteng được viết nhằm mục điacutech
thẩm tra hay trợ giuacutep caacutec giả thuyết khaacutec nhau chứ chưa phải thứ
code được viết theo kết quả phacircn tiacutech vagrave thiết kế thấu đaacuteo
Trong giai đọan nghiecircn cứu sơ bộ nhoacutem phaacutet triển hệ thống cần
xem xeacutet caacutec yecircu cầu của doanh nghiệp (cần dugraveng hệ thống) những
nguồn tagravei nguyecircn coacute thể sử dụng cocircng nghệ cũng như cộng đồng
người dugraveng cugraveng caacutec yacute tưởng của họ đối với hệ thống mới Coacute thể
thực hiện thảo luận nghiecircn cứu xem xeacutet khiacutea cạnh thương mại
phacircn tiacutech khả năng lời-lỗ phacircn tiacutech caacutec trường hợp sử dụng vagrave tạo
caacutec nguyecircn mẫu để xacircy dựng necircn một khaacutei niệm cho hệ thống điacutech
cugraveng với caacutec mục điacutech quyền ưu tiecircn vagrave phạm vi của noacute
Thường trong giai đoạn nagravey người ta cũng tiến hagravenh tạo một phiecircn
bản thocirc của lịch trigravenh vagrave kế hoạch sử dụng tagravei nguyecircn
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Một giai đoạn nghiecircn cứu sơ bộ thiacutech đaacuteng sẽ lập necircn tập hợp caacutec
yecircu cầu (dugrave ở mức độ khaacutei quaacutet cao) đối với một hệ thống khả thi
vagrave được mong muốn kể cả về phương diện kỹ thuật lẫn xatilde hội Một
giai đoạn nghiecircn cứu sơ bộ khocircng được thực hiện thoả đaacuteng sẽ dẫn
tới caacutec hệ thống khocircng được mong muốn đắt tiền bất khả thi vagrave
được định nghĩa lầm lạc ndash những hệ thống thừơng chẳng được hoagraven
tất hay sử dụng
Kết quả của giai đoạn nghiecircn cứu sơ bộ lagrave Baacuteo Caacuteo Kết Quả Nghiecircn
Cứu Tiacutenh Khả Thi Khi hệ thống tương lai được chấp nhận dựa trecircn
bản baacuteo caacuteo nagravey cũng lagrave luacutec giai đoạn Phacircn tiacutech bắt đầu
b- Phacircn tiacutech yecircu cầu
Sau khi đatilde xem xeacutet về tiacutenh khả thi của hệ thống cũng như tạo lập
một bức tranh sơ bộ của dự aacuten chuacuteng ta bước sang giai đoạn
thường được coi lagrave quan trọng nhất trong caacutec cocircng việc lập trigravenh
hiểu hệ thống cần xacircy dựng Người thực hiện cocircng việc nagravey lagrave nhagrave
phacircn tiacutech
Quaacute trigravenh phacircn tiacutech nhigraven chung lagrave hệ quả của việc trả lời cacircu hỏi Hệ
thống cần phải lagravem gigrave Quaacute trigravenh phacircn tiacutech bao gồm việc nghiecircn
cứu chi tiết hệ thống doanh nghiệp hiện thời tigravem cho ra nguyecircn lyacute
hoạt động của noacute vagrave những vị triacute coacute thể được nacircng cao cải thiện
Becircn cạnh đoacute lagrave việc nghiecircn cứu xem xeacutet caacutec chức năng magrave hệ thống
cần cung cấp vagrave caacutec mối quan hệ của chuacuteng becircn trong cũng như
với phiacutea ngoagravei hệ thống Trong toagraven bộ giai đoạn nagravey nhagrave phacircn tiacutech
vagrave người dugraveng cần cộng taacutec mật thiết với nhau để xaacutec định caacutec yecircu
cầu đối với hệ thống tức lagrave caacutec tiacutenh năng mới cần phải được đưa
vagraveo hệ thống
Những mục tiecircu cụ thể của giai đoạn phacircn tiacutech lagrave
Xaacutec định hệ thống cần phải lagravem gigrave
Nghiecircn cứu thấu đaacuteo tất cả caacutec chức năng cần cung cấp vagrave những
yếu tố liecircn quan
Xacircy dựng một mocirc higravenh necircu bật bản chất vấn đề từ một hướng
nhigraven coacute thực (trong đời sống thực)
Trao định nghĩa vấn đề cho chuyecircn gia lĩnh vực để nhận sự đaacutenh
giaacute goacutep yacute
Kết quả của giai đoạn phacircn tiacutech lagrave bản Đặc Tả Yecircu Cầu
(Requirements Specifications)
c - Thiết kế hệ thống
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Sau giai đoạn phacircn tiacutech khi caacutec yecircu cầu cụ thể đối với hệ thống đatilde được
xaacutec định giai đoạn tiếp theo lagrave thiết kế cho caacutec yecircu cầu mới Cocircng taacutec
thiết kế xoay quanh cacircu hỏi chiacutenh Hệ thống lagravem caacutech nagraveo để thỏa matilden
caacutec yecircu cầu đatilde được necircu trong Đặc Tả Yecircu Cầu
Một số caacutec cocircng việc thường được thực hiện trong giai đoạn thiết kế
Nhận biết form nhập liệu tugravey theo caacutec thagravenh phần dữ liệu cần
nhập
Nhận biết reports vagrave những output magrave hệ thống mới phải sản sinh
Thiết kế forms (vẽ trecircn giấy hay maacutey tiacutenh sử dụng cocircng cụ thiết
kế)
Nhận biết caacutec thagravenh phần dữ liệu vagrave bảng để tạo database
Ước tiacutenh caacutec thủ tục giải thiacutech quaacute trigravenh xử lyacute từ input đến output
Kết quả giai đoạn thiết kế lagrave Đặc Tả Thiết Kế (Design Specifications) Bản
Đặc Tả Thiết Kế Chi Tiết sẽ được chuyển sang cho caacutec lập trigravenh viecircn để
thực hiện giai đoạn xacircy dựng phần mềm
d - Xacircy dựng phần mềm
Đacircy lagrave giai đoạn viết lệnh (code) thực sự tạo hệ thống Từng người viết
code thực hiện những yecircu cầu đatilde được nhagrave thiết kế định sẵn Cũng chiacutenh
người viết code chịu traacutech nhiệm viết tagravei liệu liecircn quan đến chương trigravenh
giải thiacutech thủ tục (procedure) magrave anh ta tạo necircn được viết như thế nagraveo vagrave
lyacute do cho việc nagravey
Để đảm bảo chương trigravenh được viết necircn phải thoả matilden mọi yecircu cầu coacute ghi
trước trong bản Đặc Tả Thiết Kế Chi Tiết người viết code cũng đồng thời
phải tiến hagravenh thử nghiệm phần chương trigravenh của migravenh Phần thử nghiệm
trong giai đoạn nagravey coacute thể được chia thagravenh hai bước chiacutenh
Thử nghiệm đơn vị
Người viết code chạy thử caacutec phần chương trigravenh của migravenh với dữ liệu giả
(testdummy data) Việc nagravey được thực hiện theo một kế hoạch thử cũng
do chiacutenh người viết code soạn ra Mục điacutech chiacutenh trong giai đoạn thử nagravey
lagrave xem chương trigravenh coacute cho ra những kết quả mong đợi Giai đoạn thử
nghiệm đơn vị nhiều khi được gọi lagrave Thử hộp trắng (White Box Testing)
Thử nghiệm đơn vị độc lập
Cocircng việc nagravey do một thagravenh viecircn khaacutec trong nhoacutem đảm traacutech Cần chọn
người khocircng coacute liecircn quan trực tiếp đến việc viết code của đơn vị chương
trigravenh cần thử nghiệm để đảm bảo tiacutenh ―độc lập Cocircng việc thử đợt nagravey
cũng được thực hiện dựa trecircn kế hoạch thử do người viết code soạn necircn
CuuDuongThanCongcom httpsfbcomtailieudientucntt
e- Thử nghiệm hệ thống
Sau khi caacutec thủ tục đatilde được thử nghiệm riecircng cần phải thử nghiệm toagraven
bộ hệ thống Mọi thủ tục được tiacutech hợp vagrave chạy thử kiểm tra xem mọi chi
tiết ghi trong Đặc Tả Yecircu Cầu vagrave những mong chờ của người dugraveng coacute được
thoả matilden Dữ liệu thử cần được chọn lọc đặc biệt kết quả cần được phacircn
tiacutech để phaacutet hiện mọi lệch lạc so với mong chờ
f - Thực hiện triển khai
Trong giai đoạn nagravey hệ thống vừa phaacutet triển sẽ được triển khai sao cho
phiacutea người dugraveng Trước khi để người dugraveng thật sự bắt tay vagraveo sử dụng hệ
thống nhoacutem caacutec nhagrave phaacutet triển cần tạo caacutec file dữ liệu cần thiết cũng như
huấn luyện cho người dugraveng để đảm bảo hệ thống được sử dụng hữu hiệu
nhất
g - Bảo trigrave nacircng cấp
Tugravey theo caacutec biến đổi trong mocirci trường sử dụng hệ thống coacute thể trở necircn
lỗi thời hay cần phải được sửa đổi nacircng cấp để sử dụng coacute hiệu quả Hoạt
động bảo trigrave hệ thống coacute thể rất khaacutec biệt tugravey theo mức độ sửa đổi vagrave
nacircng cấp cần thiết
Sơ đồ tổng quaacutet caacutec giai đoạn của Chu Trigravenh Phaacutet Triển Phần Mềm
Higravenh 13 Sơ đồ tổng quaacutet caacutec giai đoạn của Chu Trigravenh Phaacutet Triển Phần Mềm
CuuDuongThanCongcom httpsfbcomtailieudientucntt
3- Phương phaacutep hướng chức năng vagrave phương phaacutep hướng đối tượng
31- Phương phaacutep hướng chức năng
Đacircy lagrave lối tiếp cận truyền thống của ngagravenh Cocircng nghệ phần mềm Theo lối
tiếp cận nagravey chuacuteng ta quan tacircm chủ yếu tới những thocircng tin magrave hệ thống
sẽ giữ gigraven Chuacuteng ta hỏi người dugraveng xem họ sẽ cần những thocircng tin nagraveo
rồi chuacuteng ta thiết kế ngacircn hagraveng dữ liệu để chứa những thocircng tin đoacute cung
cấp Forms để nhập thocircng tin vagrave in baacuteo caacuteo để trigravenh bagravey caacutec thocircng tin Noacutei
một caacutech khaacutec chuacuteng ta tập trung vagraveo thocircng tin vagrave khocircng mấy để yacute đến
những gigrave coacute thể xảy ra với những hệ thống đoacute vagrave caacutech hoạt động (ứng xử)
của hệ thống lagrave ra sao Đacircy lagrave lối tiệm cận xoay quanh dữ liệu vagrave đatilde được
aacutep dụng để tạo necircn hagraveng ngagraven hệ thống trong suốt nhiều năm trời
Lối tiếp cận xoay quanh dữ liệu lagrave phương phaacutep tốt cho việc thiết kế ngacircn
hagraveng dữ liệu vagrave nắm bắt thocircng tin nhưng nếu aacutep dụng cho việc thiết kế
ứng dụng lại coacute thể khiến phaacutet sinh nhiều khoacute khăn Một trong những
thaacutech thức lớn lagrave yecircu cầu đối với caacutec hệ thống thường xuyecircn thay đổi Một
hệ thống xoay quanh dữ liệu coacute thể dể dagraveng xử lyacute việc thay đổi ngacircn hagraveng
dữ liệu nhưng lại khoacute thực thi những thay đổi trong nguyecircn tắc nghiệp vụ
hay caacutech hoạt động của hệ thống
Phương phaacutep hướng đối tượng đatilde được phaacutet triển để trả lời cho vấn đề đoacute
Với lối tiếp cận hướng đối tượng chuacuteng ta tập trung vagraveo cả hai mặt của
vấn đề thocircng tin vagrave caacutech hoạt động
32- Phương phaacutep hướng đối tượng
Hướng đối tượng lagrave thuật ngữ thocircng dụng hiện thời của ngagravenh cocircng
nghiệp phần mềm Caacutec cocircng ty đang nhanh choacuteng tigravem caacutech aacutep dụng vagrave
tiacutech hợp cocircng nghệ mới nagravey vagraveo caacutec ứng dụng của họ Thật sự lagrave đa phần
caacutec ứng dụng hiện thời đều mang tiacutenh hướng đối tượng Nhưng hướng đối
tượng coacute nghĩa lagrave gigrave
Lối tiếp cận hướng đối tượng lagrave một lối tư duy về vấn đề theo lối aacutenh xạ
caacutec thagravenh phần trong bagravei toaacuten vagraveo caacutec đối tượng ngoagravei đời thực Với lối
tiếp cận nagravey chuacuteng ta chia ứng dụng thagravenh caacutec thagravenh phần nhỏ gọi lagrave caacutec
đối tượng chuacuteng tương đối độc lập với nhau Sau đoacute ta coacute thể xacircy dựng
ứng dụng bằng caacutech chắp caacutec đối tượng đoacute lại với nhau Hatildey nghĩ đến trograve
chơi xacircy lacircu đagravei bằng caacutec mẫu gỗ Bước đầu tiecircn lagrave tạo hay mua một vagravei
loại mẫu gỗ căn bản từ đoacute tạo necircn caacutec khối xacircy dựng căn bản của migravenh
Một khi đatilde coacute caacutec khối xacircy dựng đoacute bạn coacute thể chắp raacutep chuacuteng lại với
nhau để tạo lacircu đagravei Tương tự như vậy một khi đatilde xacircy dựng một số đối
CuuDuongThanCongcom httpsfbcomtailieudientucntt
tượng căn bản trong thế giới maacutey tiacutenh bạn coacute thể chắp chuacuteng lại với nhau
để tạo ứng dụng của migravenh
Xin lấy một viacute dụ đơn giản vấn đề ruacutet tiền mặt tại nhagrave băng Caacutec ―mẫu
gỗ― thagravenh phần ở đacircy sẽ lagrave aacutenh xạ của caacutec đối tượng ngoagravei đời thực như
tagravei khoản nhacircn viecircn khaacutech hagraveng hellipVagrave ứng dụng sẽ được sẽ được nhận
diện cũng như giải đaacutep xoay quanh caacutec đối tượng đoacute
4- ƢU ĐIỂM CỦA MOcirc HIgraveNH HƢỚNG ĐỐI TƢỢNG
41- Tiacutenh taacutei sử dụng (Reusable)
Phương phaacutep phacircn tiacutech vagrave thiết kế hướng đối tượng thực hiện theo caacutec thuật ngữ
vagrave khaacutei niệm của phạm vi lĩnh vực ứng dụng (tức lagrave của doanh nghiệp hay đơn vị
magrave hệ thống tương lai cần phục vụ) necircn noacute tạo sự tiếp cận tương ứng giữa hệ
thống vagrave vấn đề thực ngoagravei đời Trong viacute dụ baacuten xe ocirc tocirc mọi giai đoạn phacircn tiacutech
thiết kế vagrave thực hiện đều xoay quanh caacutec khaacutei niệm như khaacutech hagraveng nhacircn viecircn
baacuten hagraveng xe ocirc tocirc hellip Vigrave quaacute trigravenh phaacutet triển phần mềm đồng thời lagrave quaacute trigravenh
cộng taacutec của khaacutech hagravengngười dugraveng nhagrave phacircn tiacutech nhagrave thiết kế nhagrave phaacutet triển
chuyecircn gia lĩnh vực chuyecircn gia kỹ thuật necircn lối tiếp cận nagravey khiến cho việc
giao tiếp giữa họ với nhau được dễ dagraveng hơn
Một trong những ưu điểm quan trọng bậc nhất của phương phaacutep phacircn tiacutech vagrave
thiết kế hướng đối tượng lagrave tiacutenh taacutei sử dụng bạn coacute thể tạo caacutec thagravenh phần (đối
tượng) một lần vagrave dugraveng chuacuteng nhiều lần sau đoacute Giống như việc bạn coacute thể taacutei sử
dụng caacutec khối xacircy dựng (hay bản sao của noacute ) trong một toagrave lacircu đagravei một ngocirci
nhagrave ở một con tagraveu vũ trụ bạn cũng coacute thể taacutei sử dụng caacutec thagravenh phần (đối
tượng) căn bản trong caacutec thiết kế hướng đối tượng cũng như code của một hệ
thống kế toaacuten hệ thống kiểm kecirc hoặc một hệ thống đặt hagraveng
Vigrave caacutec đối tượng đatilde được thử nghiệm kỹ cagraveng trong lần dugraveng trước đoacute necircn khả
năng taacutei sử dụng đối tượng coacute taacutec dụng giảm thiểu lỗi vagrave caacutec khoacute khăn trong việc
bảo trigrave giuacutep tăng tốc độ thiết kế vagrave phaacutet triển phần mềm
Phương phaacutep hướng đối tượng giuacutep chuacuteng ta xử lyacute caacutec vấn đề phức tạp trong
phaacutet triển phần mềm vagrave tạo ra caacutec thế hệ phần mềm coacute khả năng thiacutech ứng vagrave
bền chắc
42- Caacutec giai đoạn của chu trigravenh phaacutet triển phần mềm với mocirc
higravenh hƣớng đối tƣợng
Phacircn tiacutech hƣớng đối tƣợng (Object Oriented Analysis
- OOA)
Lagrave giai đọan phaacutet triển một mocirc higravenh chiacutenh xaacutec vagrave suacutec tiacutech của vấn đề coacute thagravenh
phần lagrave caacutec đối tượng vagrave khaacutei niệm đời thực dễ hiểu đối với người sử dụng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Trong giai đoạn OOA vấn đề được trigravenh bagravey bằng caacutec thuật ngữ tương ứng với
caacutec đối tượng coacute thực Thecircm vagraveo đoacute hệ thống cần phải được định nghĩa sao cho
người khocircng chuyecircn Tin học coacute thể dễ dagraveng hiểu được
Dựa trecircn một vấn đề coacute sẵn nhagrave phacircn tiacutech cần aacutenh xạ caacutec đối tượng hay thực
thể coacute thực như khaacutech hagraveng ocirc tocirc người baacuten hagraveng hellip vagraveo thiết kế để tạo ra được
bản thiết kế gần cận với tigravenh huống thực Mocirc higravenh thiết kế sẽ chứa caacutec thực thể
trong một vấn đề coacute thực vagrave giữ nguyecircn caacutec mẫu higravenh về cấu truacutec quan hệ cũng
như hagravenh vi của chuacuteng Noacutei một caacutech khaacutec sử dụng phương phaacutep hướng đối
tượng chuacuteng ta coacute thể mocirc higravenh hoacutea caacutec thực thể thuộc một vấn đề coacute thực magrave
vẫn giữ được cấu truacutec quan hệ cũng như hagravenh vi của chuacuteng
Đối với viacute dụ một phograveng baacuten ocirc tocirc giai đoạn OOA sẽ nhận biết được caacutec thực thể
như
Khaacutech hagraveng
Người baacuten hagraveng
Phiếu đặt hagraveng
Phiếu (hoaacute đơn) thanh toaacuten
Xe ocirc tocirc
Tương taacutec vagrave quan hệ giữa caacutec đối tượng trecircn lagrave
Người baacuten hagraveng dẫn khaacutech hagraveng tham quan phograveng trưng bagravey xe
Khaacutech hagraveng chọn một chiếc xe
Khaacutech hagraveng viết phiếu đặt xe
Khaacutech hagraveng trả tiền xe
Xe ocirc tocirc được giao đến cho khaacutech hagraveng
Đối với viacute dụ nhagrave băng lẻ giai đoạn OOA sẽ nhận biết được caacutec thực thể như
Loại tagravei khoản ATM (ruacutet tiền tự động) Savings (tiết kiệm) Current
(bigravenh thường) Fixed (đầu tư)
Khaacutech hagraveng
Nhacircn viecircn
Phograveng maacutey tiacutenh
Tương taacutec vagrave quan hệ giữa caacutec đối tượng trecircn
Một khaacutech hagraveng mới mở một tagravei khoản tiết kiệm
Chuyển tiền từ tagravei khoản tiết kiệm sang tagravei khoản đầu tư
Chuyển tiền từ tagravei khoản tiết kiệm sang tagravei khoản ATM
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Xin chuacute yacute lagrave ở đacircy như đatilde noacutei ta chuacute yacute đến cả hai khiacutea cạnh thocircng tin vagrave caacutech
hoạt động của hệ thống (tức lagrave những gigrave coacute thể xảy ra với những thocircng tin đoacute)
Lối phacircn tiacutech bằng kiểu aacutenh xạ đời thực vagraveo maacutey tiacutenh như thế thật sự lagrave ưu
điểm lớn của phương phaacutep hướng đối tượng
Thiết kế hƣớng đối tƣợng (Object Oriented Design -
OOD)
Lagrave giai đoạn tổ chức chương trigravenh thagravenh caacutec tập hợp đối tượng cộng taacutec mỗi đối
tượng trong đoacute lagrave thực thể của một lớp Caacutec lớp lagrave thagravenh viecircn của một cacircy cấu
truacutec với mối quan hệ thừa kế
Mục điacutech của giai đoạn OOD lagrave tạo thiết kế dựa trecircn kết quả của giai đoạn OOA
dựa trecircn những quy định phi chức năng những yecircu cầu về mocirci trường những
yecircu cầu về khả năng thực thi OOD tập trung vagraveo việc cải thiện kết quả của
OOA tối ưu hoacutea giải phaacutep đatilde được cung cấp trong khi vẫn đảm bảo thoả matilden tất
cả caacutec yecircu cầu đatilde được xaacutec lập
Trong giai đoạn OOD nhagrave thiết kế định nghĩa caacutec chức năng thủ tục
(operations) thuộc tiacutenh (attributes) cũng như mối quan hệ của một hay nhiều
lớp (class) vagrave quyết định chuacuteng cần phải được điều chỉnh sao cho phugrave hợp với
mocirci trường phaacutet triển Đacircy cũng lagrave giai đoạn để thiết kế ngacircn hagraveng dữ liệu vagrave aacutep
dụng caacutec kỹ thuật tiecircu chuẩn hoacutea
Về cuối giai đoạn OOD nhagrave thiết kế đưa ra một loạt caacutec biểu đồ (diagram) khaacutec
nhau Caacutec biểu đồ nagravey coacute thể được chia thagravenh hai nhoacutem chiacutenh lagrave Tĩnh vagrave động
Caacutec biểu đồ tĩnh biểu thị caacutec lớp vagrave đối tượng trong khi biểu đồ động biểu thị
tương taacutec giữa caacutec lớp vagrave phương thức hoạt động chiacutenh xaacutec của chuacuteng Caacutec lớp
đoacute sau nagravey coacute thể được nhoacutem thagravenh caacutec goacutei (Packages) tức lagrave caacutec đơn vị thagravenh
phần nhỏ hơn của ứng dụng
Lập trigravenh hƣớng đối tƣợng (Object Oriented
Programming - OOP)
Giai đoạn xacircy dựng phần mềm coacute thể được thực hiện sử dụng kỹ thuật lập trigravenh
hướng đối tượng Đoacute lagrave phương thức thực hiện thiết kế hướng đối tượng qua việc
sử dụng một ngocircn ngữ lập trigravenh coacute hỗ trợ caacutec tiacutenh năng hướng đối tượng Một vagravei
ngocircn ngữ hướng đối tượng thường được nhắc tới lagrave C++ vagrave Java Kết quả chung
cuộc của giai đoạn nagravey lagrave một loạt caacutec code chạy được noacute chỉ được đưa vagraveo sử
dụng sau khi đatilde trải qua nhiều vograveng quay của nhiều bước thử nghiệm khaacutec nhau
PHẦN CAcircU HỎI
Hỏi Một số tập hợp dữ liệu phức tạp nhất định khi được trigravenh bagravey bằng đồ thị
sẽ truyền tải đến người đọc nhiều thocircng tin hơn so với caacutec dữ liệu thocirc
Đaacutep Đuacuteng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Hỏi Mocirc higravenh giuacutep chuacuteng ta tổ chức trigravenh bagravey trực quan thấu hiểu vagrave tạo necircn
caacutec hệ thống phức tạp
Đaacutep Đuacuteng
Hỏi Ưu điểm lớn nhất của mocirc higravenh hướng đối tượng lagrave tiacutenh taacutei sử dụng
(Reusable)
Đaacutep Đuacuteng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
1- GIỚI THIỆU UML
11- Mocirc higravenh hoacutea hệ thống phần mềm
Như đatilde trigravenh bagravey ở phần trước mục tiecircu của giai đoạn phacircn tiacutech hệ thống lagrave sản
xuất ra một mocirc higravenh tổng thể của hệ thống cần xacircy dựng Mocirc higravenh nagravey cần phải
được trigravenh bagravey theo hướng nhigraven (View) của khaacutech hagraveng hay người sử dụng vagrave
lagravem sao để họ hiểu được Mocirc higravenh nagravey cũng coacute thể được sử dụng để xaacutec định caacutec
yecircu cầu của người dugraveng đối với hệ thống vagrave qua đoacute giuacutep chuacuteng ta đaacutenh giaacute tiacutenh
khả thi của dự aacuten
Tầm quan trọng của mocirc higravenh đatilde được lĩnh hội một caacutech thấu đaacuteo trong hầu như
tất cả caacutec ngagravenh khoa học kỹ thuật từ nhiều thế kỷ nay Bất kỳ ở đacircu khi muốn
xacircy dựng một vật thể nagraveo đoacute đầu tiecircn người ta đatilde tạo necircn caacutec bản vẽ để quyết
định cả ngoại higravenh lẫn phương thức hoạt động của noacute Chẳng hạn caacutec bản vẽ kỹ
thuật thường gặp lagrave một dạng mocirc higravenh quen thuộc Mocirc higravenh nhigraven chung lagrave một
caacutech mocirc tả của một vật thể nagraveo đoacute Vật đoacute coacute thể tồn tại trong một số giai đoạn
nhất định dugrave đoacute lagrave giai đoạn thiết kế hay giai đoạn xacircy dựng hoặc chỉ lagrave một kế
hoạch Nhagrave thiết kế cần phải tạo ra caacutec mocirc higravenh mocirc tả tất cả caacutec khiacutea cạnh khaacutec
nhau của sản phẩm Ngoagravei ra một mocirc higravenh coacute thể được chia thagravenh nhiều hướng
nhigraven mỗi hướng nhigraven trong số chuacuteng sẽ mocirc tả một khiacutea cạnh riecircng biệt của sản
phẩm hay hệ thống cần được xacircy dựng Một mocirc higravenh cũng coacute thể được xacircy dựng
trong nhiều giai đoạn vagrave ở mỗi giai đoạn mocirc higravenh sẽ được bổ sung thecircm một số
chi tiết nhất định
Mocirc higravenh thường được mocirc tả trong ngocircn ngữ trực quan điều đoacute coacute nghĩa lagrave đa
phần caacutec thocircng tin được thể hiện bằng caacutec kyacute hiệu đồ họa vagrave caacutec kết nối giữa
chuacuteng chỉ khi cần thiết một số thocircng tin mới được biểu diễn ở dạng văn bản
Theo đuacuteng như cacircu ngạn ngữ Một bức tranh noacutei nhiều hơn cả ngagraven từ Tạo mocirc
higravenh cho caacutec hệ thống phần mềm trước khi thực sự xacircy dựng necircn chuacuteng đatilde trở
thagravenh một chuẩn mực trong việc phaacutet triển phần mềm vagrave được chấp nhận trong
cộng đồng lagravem phần mềm giống như trong bất kỳ một ngagravenh khoa học kỹ thuật
nagraveo khaacutec Việc biểu diễn mocirc higravenh phải thoatilde matilden caacutec yếu tố sau
Chiacutenh xaacutec (accurate) Mocirc tả đuacuteng hệ thống cần xacircy dựng
Đồng nhất (consistent) Caacutec view khaacutec nhau khocircng được macircu
thuẩn với nhau
Coacute thể hiểu được (understandable) Cho những người xacircy dựng lẫn
sử dụng
Dễ thay đổi (changeable)
Dễ dagraveng liecircn lạc với caacutec mocirc higravenh khaacutec
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Coacute thể noacutei thecircm rằng mocirc higravenh lagrave một sự đơn giản hoaacute hiện thực Mocirc higravenh được
xacircy dựng necircn để chuacuteng ta dễ dagraveng hiểu vagrave hiểu tốt hơn hệ thống cần xacircy dựng
Tạo mocirc higravenh sẽ giuacutep cho chuacuteng ta hiểu thấu đaacuteo một hệ thống phức tạp trong sự
toagraven thể của noacute
Noacutei toacutem lại mocirc higravenh hoacutea một hệ thống nhằm mục điacutech
Higravenh dung một hệ thống theo thực tế hay theo mong muốn của
chuacuteng ta
Chỉ rotilde cấu truacutec hoặc ứng xử của hệ thống
Tạo một khuocircn mẫu hướng dẫn nhagrave phaacutet triển trong suốt quaacute trigravenh
xacircy dựng hệ thống
Ghi lại caacutec quyết định của nhagrave phaacutet triển để sử dụng sau nagravey
12- Trƣớc khi UML ra đời
Đầu những năm 1980 ngagravenh cocircng nghệ phần mềm chỉ coacute duy nhất một ngocircn
ngữ hướng đối tượng lagrave Simula Sang nửa sau của thập kỷ 1980 caacutec ngocircn ngữ
hướng đối tượng như Smalltalk vagrave C++ xuất hiện Cugraveng với chuacuteng nảy sinh nhu
cầu mocirc higravenh hoaacute caacutec hệ thống phần mềm theo hướng đối tượng Vagrave một vagravei
trong số những ngocircn ngữ mocirc higravenh hoaacute xuất hiện những năm đầu thập kỷ 90
được nhiều người dugraveng lagrave
Grady Boochrsquos Booch Modeling Methodology
James Rambaughrsquos Object Modeling Technique ndash OMT
Ivar Jacobsonrsquos OOSE Methodology
Hewlett- Packardrsquos Fusion
Coad and Yordonrsquos OOA and OOD
Mỗi phương phaacutep luận vagrave ngocircn ngữ trecircn đều coacute hệ thống kyacute hiệu riecircng phương
phaacutep xử lyacute riecircng vagrave cocircng cụ hỗ trợ riecircng khiến nảy ra cuộc tranh luận phương
phaacutep nagraveo lagrave tốt nhất Đacircy lagrave cuộc tranh luận khoacute coacute cacircu trả lời bởi tất cả caacutec
phương phaacutep trecircn đều coacute những điểm mạnh vagrave điểm yếu riecircng Vigrave thế caacutec nhagrave
phaacutet triển phần mềm nhiều kinh nghiệm thường sử dụng phối hợp caacutec điểm
mạnh của mỗi phương phaacutep cho ứng dụng của migravenh Trong thực tế sự khaacutec biệt
giữa caacutec phương phaacutep đoacute hầu như khocircng đaacuteng kể vagrave theo cugraveng tiến trigravenh thời
gian tất cả những phương phaacutep trecircn đatilde tiệm cận lại vagrave bổ sung lẫn cho nhau
Chiacutenh hiện thực nagravey đatilde được những người tiecircn phong trong lĩnh vực mocirc higravenh hoaacute
hướng đối tượng nhận ra vagrave họ quyết định ngồi lại cugraveng nhau để tiacutech hợp những
điểm mạnh của mỗi phương phaacutep vagrave đưa ra một mocirc higravenh thống nhất cho lĩnh vực
cocircng nghệ phần mềm
CuuDuongThanCongcom httpsfbcomtailieudientucntt
13- Sự ra đời của UML
Trong bối cảnh trecircn người ta nhận thấy cần thiết phải cung cấp một phương
phaacutep tiệm cận được chuẩn hoaacute vagrave thống nhất cho việc mocirc higravenh hoaacute hướng đối
tượng Yecircu cầu cụ thể lagrave đưa ra một tập hợp chuẩn hoaacute caacutec kyacute hiệu (Notation) vagrave
caacutec biểu đồ (Diagram) để nắm bắt caacutec quyết định về mặt thiết kế một caacutech rotilde
ragraveng ragravenh mạch Đatilde coacute ba cocircng trigravenh tiecircn phong nhắm tới mục tiecircu đoacute chuacuteng
được thực hiện dưới sự latildenh đạo của James Rumbaugh Grady Booch vagrave Ivar
Jacobson Chiacutenh những cố gắng nagravey dẫn đến kết quả lagrave xacircy dựng được một Ngocircn
Ngữ Mocirc Higravenh Hoaacute Thống Nhất (Unifield Modeling Language ndash UML)
UML lagrave một ngocircn ngữ mocirc higravenh hoaacute thống nhất coacute phần chiacutenh bao gồm những kyacute
hiệu higravenh học được caacutec phương phaacutep hướng đối tượng sử dụng để thể hiện vagrave
miecircu tả caacutec thiết kế của một hệ thống Noacute lagrave một ngocircn ngữ để đặc tả trực quan
hoaacute xacircy dựng vagrave lagravem sưu liệu cho nhiều khiacutea cạnh khaacutec nhau của một hệ thống
coacute nồng độ phần mềm cao UML coacute thể được sử dụng lagravem cocircng cụ giao tiếp giữa
người dugraveng nhagrave phacircn tiacutech nhagrave thiết kế vagrave nhagrave phaacutet triển phần mềm
Trong quaacute trigravenh phaacutet triển coacute nhiều cocircng ty đatilde hỗ trợ vagrave khuyến khiacutech phaacutet triển
UML coacute thể kể tới như Hewlett Packard Microsoft Oracle IBM Unisys
14- UML (Unifield Modeling Language)
Ngocircn ngữ mocirc higravenh hoacutea thống nhất (Unifield Modeling Language ndash UML) lagrave một
ngocircn ngữ để biểu diễn mocirc higravenh theo hướng đối tượng được xacircy dựng bởi ba taacutec
giả trecircn với chủ điacutech lagrave
Mocirc higravenh hoaacute caacutec hệ thống sử dụng caacutec khaacutei niệm hướng đối tượng
Thiết lập một kết nối từ nhận thức của con người đến caacutec sự kiện
cần mocirc higravenh hoaacute
Giải quyết vấn đề về mức độ thừa kế trong caacutec hệ thống phức tạp
coacute nhiều ragraveng buộc khaacutec nhau
Tạo một ngocircn ngữ mocirc higravenh hoaacute coacute thể sử dụng được bởi người vagrave
maacutey
15- Phƣơng phaacutep vagrave caacutec ngocircn ngữ mocirc higravenh hoaacute
Phương phaacutep hay phương thức (method) lagrave một caacutech trực tiếp cấu truacutec hoaacute sự
suy nghĩ vagrave hagravenh động của con người Phương phaacutep cho người sử dụng biết phải
lagravem gigrave lagravem như thế nagraveo khi nagraveo vagrave tại sao (mục điacutech của hagravenh động) Phương
phaacutep chứa caacutec mocirc higravenh (model) caacutec mocirc higravenh được dugraveng để mocirc tả những gigrave sử
dụng cho việc truyền đạt kết quả trong quaacute trigravenh sử dụng phương phaacutep Điểm
khaacutec nhau chiacutenh giữa một phương phaacutep vagrave một ngocircn ngữ mocirc higravenh hoaacute (modeling
CuuDuongThanCongcom httpsfbcomtailieudientucntt
language) lagrave ngocircn ngữ mocirc higravenh hoaacute khocircng coacute một tiến trigravenh (process) hay caacutec
cacircu lệnh (instruction) mocirc tả những cocircng việc người sử dụng cần lagravem
Một mocirc higravenh được biểu diễn theo một ngocircn ngữ mocirc higravenh hoaacute Ngocircn ngữ mocirc higravenh
hoaacute bao gồm caacutec kyacute hiệu ndash những biểu tượng được dugraveng trong mocirc higravenh ndash vagrave một
tập caacutec quy tắc chỉ caacutech sử dụng chuacuteng Caacutec quy tắc nagravey bao gồm
Syntactic (Cuacute phaacutep) cho biết higravenh dạng caacutec biểu tượng vagrave caacutech kết
hợp chuacuteng trong ngocircn ngữ
Semantic (Ngữ nghĩa) cho biết yacute nghĩa của mỗi biểu tượng chuacuteng
được hiểu thế nagraveo khi nằm trong hoặc khocircng nằm trong ngữ cảnh
của caacutec biểu tượng khaacutec
Pragmatic định nghĩa yacute nghĩa của biểu tượng để sao cho mục điacutech
của mocirc higravenh được thể hiện vagrave mọi người coacute thể hiểu được
2- UML TRONG PHAcircN TIacuteCH THIẾT KẾ HỆ THỐNG
UML coacute thể được sử dụng trong nhiều giai đoạn từ phaacutet triển thiết kế cho tới
thực hiện vagrave bảo trigrave Vigrave mục điacutech chiacutenh của ngocircn ngữ nagravey lagrave dugraveng caacutec biểu đồ
hướng đối tượng để mocirc tả hệ thống necircn miền ứng dụng của UML bao gồm nhiều
loại hệ thống khaacutec nhau như
Hệ thống thống tin (Information System) Cất giữ lấy biến đổi
biểu diễn thocircng tin cho người sử dụng Xử lyacute những khoảng dữ liệu
lớn coacute caacutec quan hệ phức tạp magrave chuacuteng được lưu trữ trong caacutec cơ sở
dữ liệu quan hệ hay hướng đối tượng
Hệ thống kỹ thuật (Technical System) Xử lyacute vagrave điều khiển caacutec
thiết bị kỹ thuật như viễn thocircng hệ thống quacircn sự hay caacutec quaacute
trigravenh cocircng nghiệp Đacircy lagrave loại thiết bị phải xử lyacute caacutec giao tiếp đặc
biệt khocircng coacute phần mềm chuẩn vagrave thường lagrave caacutec hệ thống thời gian
thực (real time)
Hệ thống nhuacuteng (Embeded System) Thực hiện trecircn phần cứng
gắn vagraveo caacutec thiết bị như điện thoại di động điều khiển xe hơi hellip
Điều nagravey được thực hiện bằng việc lập trigravenh mức thấp với hỗ trợ thời
gian thực Những hệ thống nagravey thường khocircng coacute caacutec thiết bị như
magraven higravenh đĩa cứng hellip
Hệ thống phacircn bố ( Distributed System) Được phacircn bố trecircn
một số maacutey cho pheacutep truyền dữ liệu từ nơi nagravey đến nơi khaacutec một
caacutech dễ dagraveng Chuacuteng đogravei hỏi caacutec cơ chế liecircn lạc đồng bộ để đảm bảo
toagraven vẹn dữ liệu vagrave thường được xacircy dựng trecircn một số caacutec kỹ thuật
đối tượng như CORBA COMDCOM hay Java BeansRMI
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Hệ thống Giao dịch (Business System) Mocirc tả mục điacutech tagravei
nguyecircn (con người maacutey tiacutenh hellip) caacutec quy tắc (luật phaacutep chiến
thuật kinh doanh cơ chế hellip) vagrave cocircng việc hoạt động kinh doanh
Phần mềm hệ thống (System Software) Định nghĩa cơ sở hạ
tầng kỹ thuật cho phần mềm khaacutec sử dụng chẳng hạn như hệ điều
hagravenh cơ sở dữ liệu giao diện người sử dụng
3- UML VAgrave CAacuteC GIAI ĐOẠN PHAacuteT TRIỂN HỆ THỐNG
Preliminary Investigation use cases thể hiện caacutec yecircu cầu của người
dugraveng Phần miecircu tả use case xaacutec định caacutec yecircu cầu phần diagram thể hiện
mối quan hệ vagrave giao tiếp với hệ thống
Analysis Mục điacutech chiacutenh của giai đọan nagravey lagrave trừu tượng hoacutea vagrave tigravem
hiểu caacutec cơ cấu coacute trong phạm vi bagravei toaacuten Class diagrams trecircn bigravenh diện
trừu tượng hoacutea caacutec thực thể ngoagravei đời thực được sử dụng để lagravem rotilde sự tồn
tại cũng như mối quan hệ của chuacuteng Chỉ những lớp (class) nằm trong
phạm vi bagravei toaacuten mới đaacuteng quan tacircm
Design Kết quả phần analysis được phaacutet triển thagravenh giải phaacutep kỹ thuật
Caacutec lớp được mocirc higravenh hoacutea chi tiết để cung cấp hạ tầng kỹ thuật như giao
diện nền tảng cho database hellip Kết quả phần Design lagrave caacutec đặc tả chi tiết
cho giai đoạn xacircy dựng phần mềm
Development Mocirc higravenh Design được chuyển thagravenh code Programmer
sử dụng caacutec UML diagrams trong giai đoạn Design để hiểu vấn đề vagrave tạo
code
Testing Sử dụng caacutec UML diagrams trong caacutec giai đoạn trước Coacute 4
higravenh thức kiểm tra hệ thống
Unit testing (class diagrams amp class specifications) kiểm tra
từng đơn thể được dugraveng để kiểm tra caacutec lớp hay caacutec nhoacutem
đơn thể
Integration testing (integration diagrams amp collaboration
diagrams) kiểm tra tiacutech hợp lagrave kiểm tra kết hợp caacutec
component với caacutec lớp để xem chuacuteng hoạt động với nhau coacute
đuacuteng khocircng
System testing (use-case diagrams) kiềm tra xem hệ thống
coacute đaacutep ứng được chức năng magrave người sử dụng yecircu cầu hay
khocircng
Acceptance testing Kiểm tra tiacutenh chấp nhận được của hệ
thống thường được thực hiện bởi khaacutech hagraveng việc kiểm tra
nagravey thực hiện tương tự như kiểm tra hệ thống
CuuDuongThanCongcom httpsfbcomtailieudientucntt
PHẦN CAcircU HỎI
Hỏi UML (Unifield Modeling Language) lagrave gigrave
Đaacutep Ngocircn ngữ mocirc higravenh hoacutea thống nhất ndash UML lagrave một ngocircn ngữ để biểu
diễn mocirc higravenh theo hướng đối tượng
Hỏi Điểm khaacutec nhau cơ bản giữa phương phaacutep (method) vagrave một ngocircn ngữ mocirc
higravenh hoaacute (modeling language) lagrave gigrave
Đaacutep Điểm khaacutec nhau cơ bản giữa một phương phaacutep vagrave một ngocircn ngữ
mocirc higravenh hoaacute lagrave ngocircn ngữ mocirc higravenh hoaacute khocircng coacute một tiến trigravenh (process)
hay caacutec cacircu lệnh (instruction) mocirc tả những cocircng việc người sử dụng cần
lagravem magrave noacute bao gồm caacutec kyacute hiệu ndash những biểu tượng được dugraveng trong mocirc
higravenh ndash vagrave một tập caacutec quy tắc chỉ caacutech sử dụng chuacuteng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Chƣơng 3 KHAacuteI QUAacuteT VỀ UML
1- UML VAgrave CAacuteC GIAI ĐOẠN CỦA CHU TRIgraveNH PHAacuteT TRIỂN
PHẦN MỀM
11- Giai đoạn nghiecircn cứu sơ bộ
UML đưa ra khaacutei niệm Use Case để nắm bắt caacutec yecircu cầu của khaacutech hagraveng (người
sử dụng) UML sử dụng biểu đồ Use case (Use Case Diagram) để necircu bật mối
quan hệ cũng như sự giao tiếp với hệ thống
Qua phương phaacutep mocirc higravenh hoacutea Use case caacutec taacutec nhacircn (Actor) becircn ngoagravei quan
tacircm đến hệ thống sẽ được mocirc higravenh hoacutea song song với chức năng magrave họ đogravei hỏi
từ phiacutea hệ thống (tức lagrave Use case) Caacutec taacutec nhacircn vagrave caacutec Use case được mocirc higravenh
hoacutea cugraveng caacutec mối quan hệ vagrave được miecircu tả trong biểu đồ Use case của UML Mỗi
một Use case được mocirc tả trong tagravei liệu vagrave noacute sẽ đặc tả caacutec yecircu cầu của khaacutech
hagraveng Anh ta hay chị ta chờ đợi điều gigrave ở phiacutea hệ thống magrave khocircng hề để yacute đến
việc chức năng nagravey sẽ được thực thi ra sao
12- Giai đoạn phacircn tiacutech
Giai đoạn phacircn tiacutech quan tacircm đến quaacute trigravenh trừu tượng hoacutea đầu tiecircn (caacutec lớp vagrave
caacutec đối tượng) cũng như cơ chế hiện hữu trong phạm vi vấn đề Sau khi nhagrave
phacircn tiacutech đatilde nhận biết được caacutec lớp thagravenh phần của mocirc higravenh cũng như mối quan
hệ giữa chuacuteng với nhau caacutec lớp cugraveng caacutec mối quan hệ đoacute sẽ được miecircu tả bằng
cocircng cụ biểu đồ lớp (class diagram) của UML Sự cộng taacutec giữa caacutec lớp nhằm
thực hiện caacutec Use case cũng sẽ được miecircu tả nhờ vagraveo caacutec mocirc higravenh động
(dynamic models) của UML Trong giai đoạn phacircn tiacutech chỉ duy nhất caacutec lớp coacute
tồn tại trong phạm vi vấn đề (caacutec khaacutei niệm đời thực) lagrave được mocirc higravenh hoacutea Caacutec
lớp kỹ thuật định nghĩa chi tiết cũng như giải phaacutep trong hệ thống phần mềm viacute
dụ như caacutec lớp cho giao diện người dugraveng cho ngacircn hagraveng dữ liệu cho sự giao tiếp
trugraveng hợp vv chưa phải lagrave mối quan tacircm của giai đoạn nagravey
13- Giai đoạn thiết kế
Trong giai đoạn nagravey kết quả của giai đoạn phacircn tiacutech sẽ được mở rộng thagravenh một
giải phaacutep kỹ thuật Caacutec lớp mới sẽ được bổ sung để tạo thagravenh một hạ tầng cơ sở
kỹ thuật Giao diện người dugraveng caacutec chức năng để lưu trữ caacutec đối tượng trong
ngacircn hagraveng dữ liệu giao tiếp với caacutec hệ thống khaacutec giao diện với caacutec thiết bị
ngoại vi vagrave caacutec maacutey moacutec khaacutec trong hệ thống Caacutec lớp thuộc phạm vi vấn đề
coacute từ giai đoạn phacircn tiacutech sẽ được nhuacuteng vagraveo hạ tầng cơ sở kỹ thuật nagravey tạo ra
khả năng thay đổi trong cả hai phương diện Phạm vi vấn đề vagrave hạ tầng cơ sở
Giai đoạn thiết kế sẽ đưa ra kết quả lagrave bản đặc tả chi tiết cho giai đoạn xacircy dựng
hệ thống
14- Giai đoạn xacircy dựng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Trong giai đoạn xacircy dựng (giai đoạn lập trigravenh) caacutec lớp của giai đoạn thiết kế sẽ
được biến thagravenh những dograveng code cụ thể trong một ngocircn ngữ lập trigravenh hướng đối
tượng cụ thể (khocircng necircn dugraveng một ngocircn ngữ lập trigravenh hướng chức năng) Phụ
thuộc vagraveo khả năng của ngocircn ngữ được sử dụng đacircy coacute thể lagrave một cocircng việc khoacute
khăn hay dễ dagraveng Khi tạo ra caacutec mocirc higravenh phacircn tiacutech vagrave thiết kế trong UML tốt
nhất necircn cố gắng neacute traacutenh việc ngay lập tức biến đổi caacutec mocirc higravenh nagravey thagravenh caacutec
dograveng code Trong những giai đoạn trước mocirc higravenh được sử dụng để dễ hiểu dễ
giao tiếp vagrave tạo necircn cấu truacutec của hệ thống vigrave vậy vội vagraveng đưa ra những kết
luận về việc viết code coacute thể sẽ thagravenh một trở ngại cho việc tạo ra caacutec mocirc higravenh
chiacutenh xaacutec vagrave đơn giản Giai đoạn xacircy dựng lagrave một giai đoạn riecircng biệt nơi caacutec
mocirc higravenh được chuyển thagravenh code
15- Thử nghiệm
Như đatilde trigravenh bagravey trong phần Chu Trigravenh Phaacutet Triển Phần Mềm một hệ thống phần
mềm thường được thử nghiệm qua nhiều giai đoạn vagrave với nhiều nhoacutem thử
nghiệm khaacutec nhau Caacutec nhoacutem sử dụng nhiều loại biểu đồ UML khaacutec nhau lagravem nền
tảng cho cocircng việc của migravenh Thử nghiệm đơn vị sử dụng biểu đồ lớp (class
diagram) vagrave đặc tả lớp thử nghiệm tiacutech hợp thường sử dụng biểu đồ thagravenh phần
(component diagram) vagrave biểu đồ cộng taacutec (collaboration diagram) vagrave giai đoạn
thử nghiệm hệ thống sử dụng biểu đồ Use case (use case diagram) để đảm bảo
hệ thống coacute phương thức hoạt động đuacuteng như đatilde được định nghĩa từ ban đầu
trong caacutec biểu đồ nagravey
2- CAacuteC THAgraveNH PHẦN CỦA NGOcircN NGỮ UML
Ngocircn ngữ UML bao gồm một loạt caacutec phần tử đồ họa (graphic element) coacute thể
được kếp hợp với nhau để tạo ra caacutec biểu đồ Bởi đacircy lagrave một ngocircn ngữ necircn UML
cũng coacute caacutec nguyecircn tắc để kết hợp caacutec phần tử đoacute
Một số những thagravenh phần chủ yếu của ngocircn ngữ UML
Hướng nhigraven (view) Hướng nhigraven chỉ ra những khiacutea cạnh khaacutec
nhau của hệ thống cần phải được mocirc higravenh hoacutea Một hướng nhigraven
khocircng phải lagrave một bản vẽ magrave lagrave một sự trừu tượng hoacutea bao gồm
một loạt caacutec biểu đồ khaacutec nhau Chỉ qua việc định nghĩa của một
loạt caacutec hướng nhigraven khaacutec nhau mỗi hướng nhigraven chỉ ra một khiacutea
cạnh riecircng biệt của hệ thống người ta mới coacute thể tạo dựng necircn một
bức tranh hoagraven thiện về hệ thống Cũng chiacutenh caacutec hướng nhigraven nagravey
nối kết ngocircn ngữ mocirc higravenh hoacutea với quy trigravenh được chọn cho giai đoạn
phaacutet triển
Biểu đồ (diagram) Biểu đồ lagrave caacutec higravenh vẽ miecircu tả nội dung
trong một hướng nhigraven UML coacute tất cả 9 loại biểu đồ khaacutec nhau được
CuuDuongThanCongcom httpsfbcomtailieudientucntt
sử dụng trong những sự kết hợp khaacutec nhau để cung cấp tất cả caacutec
hướng nhigraven của một hệ thống
Phần tử mocirc higravenh hoacutea (model element) Caacutec khaacutei niệm được
sử dụng trong caacutec biểu đồ được gọi lagrave caacutec phần tử mocirc higravenh thể hiện
caacutec khaacutei niệm hướng đối tượng quen thuộc Viacute dụ như lớp đối tượng
thocircng điệp cũng như caacutec quan hệ giữa caacutec khaacutei niệm nagravey bao gồm
cả liecircn kết phụ thuộc khaacutei quaacutet hoacutea Một phần tử mocirc higravenh thường
được sử dụng trong nhiều biểu đồ khaacutec nhau nhưng noacute luocircn luocircn coacute
chỉ một yacute nghĩa vagrave một kiacute hiệu
Cơ chế chung Cơ chế chung cung cấp thecircm những lời nhận xeacutet
bổ sung caacutec thocircng tin cũng như caacutec quy tắc ngữ phaacutep chung về
một phần tử mocirc higravenh chuacuteng cograven cung cấp thecircm caacutec cơ chế để coacute
thể mở rộng ngocircn ngữ UML cho phugrave hợp với một phương phaacutep xaacutec
định (một quy trigravenh một tổ chức hoặc một người dugraveng)
3- HƢỚNG NHIgraveN (VIEW)
Mocirc higravenh hoacutea một hệ thống phức tạp lagrave một việc lagravem khoacute khăn Lyacute tưởng nhất lagrave
toagraven bộ hệ thống được miecircu tả chỉ trong một bản vẽ một bản vẽ định nghĩa một
caacutech rotilde ragraveng vagrave mạch lạc toagraven bộ hệ thống một bản vẽ ngoagravei ra lại cograven dễ giao
tiếp vagrave dễ hiểu Mặc dugrave vậy thường thigrave đacircy lagrave chuyện bất khả thi Một bản vẽ
khocircng thể nắm bắt tất cả caacutec thocircng tin cần thiết để miecircu tả một hệ thống Một
hệ thống cần phải được miecircu tả với một loạt caacutec khiacutea cạnh khaacutec nhau Về mặt
chức năng (cấu truacutec tĩnh của noacute cũng như caacutec tương taacutec động) về mặt phi chức
năng (yecircu cầu về thời gian về độ đaacuteng tin cậy về quaacute trigravenh thực thi vv vagrave vv)
cũng như về khiacutea cạnh tổ chức (tổ chức lagravem việc aacutenh xạ noacute vagraveo caacutec code
module) Vigrave vậy một hệ thống thường được miecircu tả trong một loạt caacutec hướng
nhigraven khaacutec nhau mỗi hướng nhigraven sẽ thể hiện một bức ảnh aacutenh xạ của toagraven bộ hệ
thống vagrave chỉ ra một khiacutea cạnh riecircng của hệ thống
Higravenh 31- Caacutec View trong UML
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Mỗi một hướng nhigraven được miecircu tả trong một loạt caacutec biểu đồ chứa đựng caacutec
thocircng tin necircu bật khiacutea cạnh đặc biệt đoacute của hệ thống Trong thực tế khi phacircn tiacutech
vagrave thiết kế rất dễ xảy ra sự trugraveng lặp thocircng tin cho necircn một biểu đồ trecircn thật tế
coacute thể lagrave thagravenh phần của nhiều hướng nhigraven khaacutec nhau Khi nhigraven hệ thống từ
nhiều hướng nhigraven khaacutec nhau tại một thời điểm coacute thể người ta chỉ tập trung vagraveo
một khiacutea cạnh của hệ thống Một biểu đồ trong một hướng nhigraven cụ thể nagraveo đoacute
cần phải đủ độ đơn giản để tạo điều kiện giao tiếp dễ dagraveng để diacutenh liền với caacutec
biểu đồ khaacutec cũng như caacutec hướng nhigraven khaacutec lagravem sao cho bức tranh toagraven cảnh
của hệ thống được miecircu tả bằng sự kết hợp tất cả caacutec thocircng tin từ tất cả caacutec
hướng nhigraven Một biểu đồ chứa caacutec kiacute hiệu higravenh học mocirc tả caacutec phần tử mocirc higravenh
của hệ thống UML coacute tất cả caacutec hướng nhigraven sau
Hướng nhigraven Use case (use case view) đacircy lagrave hướng nhigraven chỉ ra
khiacutea cạnh chức năng của một hệ thống nhigraven từ hướng taacutec nhacircn becircn
ngoagravei
Hướng nhigraven logic (logical view) chỉ ra chức năng sẽ được thiết kế
becircn trong hệ thống như thế nagraveo qua caacutec khaacutei niệm về cấu truacutec tĩnh
cũng như ứng xử động của hệ thống
Hướng nhigraven thagravenh phần (component view) chỉ ra khiacutea cạnh tổ chức
của caacutec thagravenh phần code
Hướng nhigraven song song (concurrency view) chỉ ra sự tồn tại song
song trugraveng hợp trong hệ thống hướng đến vấn đề giao tiếp vagrave
đồng bộ hoacutea trong hệ thống
Hướng nhigraven triển khai (deployment view) chỉ ra khiacutea cạnh triển
khai hệ thống vagraveo caacutec kiến truacutec vật lyacute (caacutec maacutey tiacutenh hay trang thiết
bị được coi lagrave trạm cocircng taacutec)
Khi bạn chọn cocircng cụ để vẽ biểu đồ hatildey chọn cocircng cụ nagraveo tạo điều kiện dễ dagraveng
chuyển từ hướng nhigraven nagravey sang hướng nhigraven khaacutec Ngoagravei ra cho mục điacutech quan
saacutet một chức năng sẽ được thiết kế như thế nagraveo cocircng cụ nagravey cũng phải tạo điều
kiện dễ dagraveng cho bạn chuyển sang hướng nhigraven Use case (để xem chức năng nagravey
được miecircu tả như thế nagraveo từ phiacutea taacutec nhacircn) hoặc chuyển sang hướng nhigraven triển
khai (để xem chức năng nagravey sẽ được phacircn bố ra sao trong cấu truacutec vật lyacute - Noacutei
một caacutech khaacutec lagrave noacute coacute thể nằm trong maacutey tiacutenh nagraveo)
Ngoagravei caacutec hướng nhigraven kể trecircn ngagravenh cocircng nghiệp phần mềm cograven sử dụng cả caacutec
hướng nhigraven khaacutec viacute dụ hướng nhigraven tĩnh-động hướng nhigraven logic-vật lyacute quy trigravenh
nghiệp vụ (workflow) vagrave caacutec hướng nhigraven khaacutec UML khocircng yecircu cầu chuacuteng ta phải
sử dụng caacutec hướng nhigraven nagravey nhưng đacircy cũng chiacutenh lagrave những hướng nhigraven magrave caacutec
nhagrave thiết kế của UML đatilde nghĩ tới necircn coacute khả năng nhiều cocircng cụ sẽ dựa trecircn caacutec
hướng nhigraven đoacute
CuuDuongThanCongcom httpsfbcomtailieudientucntt
31- Hƣớng nhigraven Use case (Use case View)
Hướng nhigraven Use case miecircu tả chức năng của hệ thống sẽ phải cung cấp do được
taacutec nhacircn từ becircn ngoagravei mong đợi Taacutec nhacircn lagrave thực thể tương taacutec với hệ thống đoacute
coacute thể lagrave một người sử dụng hoặc lagrave một hệ thống khaacutec Hướng nhigraven Use case lagrave
hướng nhigraven dagravenh cho khaacutech hagraveng nhagrave thiết kế nhagrave phaacutet triển vagrave người thử
nghiệm noacute được miecircu tả qua caacutec biểu đồ Use case (use case diagram) vagrave thỉnh
thoảng cũng bao gồm cả caacutec biểu đồ hoạt động (activity diagram) Caacutech sử dụng
hệ thống nhigraven chung sẽ được miecircu tả qua một loạt caacutec Use case trong hướng
nhigraven Use case nơi mỗi một Use case lagrave một lời miecircu tả mang tiacutenh đặc thugrave cho
một tiacutenh năng của hệ thống (coacute nghĩa lagrave một chức năng được mong đợi)
Hướng nhigraven Use case mang tiacutenh trung tacircm bởi noacute đặt ra nội dung thuacutec đẩy sự
phaacutet triển caacutec hướng nhigraven khaacutec Mục tiecircu chung của hệ thống lagrave cung cấp caacutec
chức năng miecircu tả trong hướng nhigraven nagravey ndash cugraveng với một vagravei caacutec thuộc tiacutenh mang
tiacutenh phi chức năng khaacutec ndash vigrave thế hướng nhigraven nagravey coacute ảnh hưởng đến tất cả caacutec
hướng nhigraven khaacutec Hướng nhigraven nagravey cũng được sử dụng để thẩm tra (verify) hệ
thống qua việc thử nghiệm xem hướng nhigraven Use case coacute đuacuteng với mong đợi của
khaacutech hagraveng (Hỏi Đacircy coacute phải lagrave thứ bạn muốn) cũng như coacute đuacuteng với hệ thống
vừa được hoagraven thagravenh (Hỏi Hệ thống coacute hoạt động như đatilde đặc tả)
32- Hƣớng nhigraven logic (Logical View)
Hướng nhigraven logic miecircu tả phương thức magrave caacutec chức năng của hệ thống sẽ được
cung cấp Chủ yếu noacute được sử dụng cho caacutec nhagrave thiết kế vagrave nhagrave phaacutet triển
Ngược lại với hướng nhigraven Use case hướng nhigraven logic nhigraven vagraveo phiacutea becircn trong của
hệ thống Noacute miecircu tả kể cả cấu truacutec tĩnh (lớp đối tượng vagrave quan hệ) cũng như
sự tương taacutec động sẽ xảy ra khi caacutec đối tượng gửi thocircng điệp cho nhau để cung
cấp chức năng đatilde định sẵn Hướng nhigraven logic định nghĩa caacutec thuộc tiacutenh như
trường tồn (persistency) hoặc song song (concurrency) cũng như caacutec giao diện
cũng như cấu truacutec nội tại của caacutec lớp
Cấu truacutec tĩnh được miecircu tả bằng caacutec biểu đồ lớp (class diagram) vagrave biểu đồ đối
tượng (object diagram) Quaacute trigravenh mocirc higravenh hoacutea động được miecircu tả trong caacutec biểu
đồ trạng thaacutei (state diagram) biểu đồ trigravenh tự (sequence diagram) biểu đồ
tương taacutec (collaboration diagram) vagrave biểu đồ hoạt động (activity diagram)
33- Hƣớng nhigraven thagravenh phần (Component View)
Lagrave một lời miecircu tả của việc thực thi caacutec modul cũng như sự phụ thuộc giữa chuacuteng
với nhau Noacute thường được sử dụng cho nhagrave phaacutet triển vagrave thường bao gồm nhiều
biểu đồ thagravenh phần Thagravenh phần ở đacircy lagrave caacutec modul lệnh thuộc nhiều loại khaacutec
nhau sẽ được chỉ ra trong biểu đồ cugraveng với cấu truacutec cũng như sự phụ thuộc của
chuacuteng Caacutec thocircng tin bổ sung về caacutec thagravenh phần viacute dụ như vị triacute của tagravei nguyecircn
(traacutech nhiệm đối với một thagravenh phần) hoặc caacutec thocircng tin quản trị khaacutec viacute dụ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
như một bản baacuteo caacuteo về tiến trigravenh của cocircng việc cũng coacute thể được bổ sung vagraveo
đacircy
34- Hƣớng nhigraven song song (Concurrency View)
Hướng nhigraven song song nhắm tới sự chia hệ thống thagravenh caacutec qui trigravenh (process)
vagrave caacutec bộ xử lyacute (processor) Khiacutea cạnh nagravey vốn lagrave một thuộc tiacutenh phi chức năng
của hệ thống cho pheacutep chuacuteng ta sử dụng một caacutech hữu hiệu caacutec nguồn tagravei
nguyecircn thực thi song song cũng như xử lyacute caacutec sự kiện khocircng đồng bộ từ mocirci
trường Becircn cạnh việc chia hệ thống thagravenh caacutec tiểu trigravenh coacute thể được thực thi
song song hướng nhigraven nagravey cũng phải quan tacircm đến vấn đề giao tiếp vagrave đồng bộ
hoacutea caacutec tiểu trigravenh đoacute
Hướng nhigraven song song giagravenh cho nhagrave phaacutet triển vagrave người tiacutech hợp hệ thống noacute
bao gồm caacutec biểu đồ động (trạng thaacutei trigravenh tự tương taacutec vagrave hoạt động) cugraveng caacutec
biểu đồ thực thi (biểu đồ thagravenh phần vagrave biểu đồ triển khai)
35- Hƣớng nhigraven triển khai (Deployment View)
Cuối cugraveng hướng nhigraven triển khai chỉ cho chuacuteng ta sơ đồ triển khai về mặt vật lyacute
của hệ thống viacute dụ như caacutec maacutey tiacutenh cũng như caacutec maacutey moacutec vagrave sự liecircn kết giữa
chuacuteng với nhau Hướng nhigraven triển khai giagravenh cho caacutec nhagrave phaacutet triển người tiacutech
hợp cũng như người thử nghiệm hệ thống vagrave được thể hiện bằng caacutec biểu đồ
triển khai Hướng nhigraven nagravey cũng bao gồm sự aacutenh xạ caacutec thagravenh phần của hệ
thống vagraveo cấu truacutec vật lyacute viacute dụ như chương trigravenh nagraveo hay đối tượng nagraveo sẽ được
thực thi trecircn maacutey tiacutenh nagraveo
4- BIỂU ĐỒ (DIAGRAM)
Biểu đồ lagrave caacutec higravenh vẽ bao gồm caacutec kyacute hiệu phần tử mocirc higravenh hoacutea được sắp xếp
để minh họa một thagravenh phần cụ thể hay một khiacutea cạnh cụ thể của hệ thống Một
mocirc higravenh hệ thống thường coacute nhiều loại biểu đồ mỗi loại coacute nhiều biểu đồ khaacutec
nhau Một biểu đồ lagrave một thagravenh phần của một hướng nhigraven cụ thể vagrave khi được vẽ
ra noacute thường thường cũng được xếp vagraveo một hướng nhigraven Mặt khaacutec một số loại
biểu đồ coacute thể lagrave thagravenh phần của nhiều hướng nhigraven khaacutec nhau tugravey thuộc vagraveo nội
dung của biểu đồ
Phần sau miecircu tả caacutec khaacutei niệm căn bản nằm đằng sau mỗi loại biểu đồ Tất cả
caacutec chi tiết về biểu đồ ngữ cảnh của chuacuteng yacute nghĩa chiacutenh xaacutec của chuacuteng vagrave sự
tương taacutec giữa chuacuteng với nhau được miecircu tả chi tiết trong caacutec chương sau (mocirc
higravenh đối tượng ndash mocirc higravenh động) Caacutec biểu đồ lấy lagravem viacute dụ ở đacircy được lấy ra từ
nhiều loại hệ thống khaacutec nhau để chỉ ra neacutet phong phuacute vagrave khả năng aacutep dụng
rộng khắp của ULM
41- Biểu đồ Use case (Use Case Diagram)
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Một biểu đồ Use case chỉ ra một số lượng caacutec taacutec nhacircn ngoại cảnh vagrave mối liecircn kết
của chuacuteng đối với Use case magrave hệ thống cung cấp (nhigraven higravenh 32) Một Use case
lagrave một lời miecircu tả của một chức năng magrave hệ thống cung cấp Lời miecircu tả Use
case thường lagrave một văn bản tagravei liệu nhưng kegravem theo đoacute cũng coacute thể lagrave một biểu
đồ hoạt động Caacutec Use case được miecircu tả duy nhất theo hướng nhigraven từ ngoagravei vagraveo
của caacutec taacutec nhacircn (hagravenh vi của hệ thống theo như sự mong đợi của người sử
dụng) khocircng miecircu tả chức năng được cung cấp sẽ hoạt động nội bộ becircn trong
hệ thống ra sao Caacutec Use case định nghĩa caacutec yecircu cầu về mặt chức năng đối với
hệ thống Caacutec biểu đồ Use case sẽ được miecircu tả chi tiết hơn trong chương 4 (Use
case)
Higravenh 32- Biểu đồ use case của một cocircng ty bảo hiểm
42- Biểu đồ lớp (Class Diagram)
Một biểu đồ lớp chỉ ra cấu truacutec tĩnh của caacutec lớp trong hệ thống (nhigraven higravenh 33)
Caacutec lớp lagrave đại diện cho caacutec ―vật được xử lyacute trong hệ thống Caacutec lớp coacute thể quan
hệ với nhau trong nhiều dạng thức liecircn kết (associated - được nối kết với nhau)
phụ thuộc (dependent - một lớp nagravey phụ thuộc vagraveo lớp khaacutec) chuyecircn biệt hoacutea
(specialized - một lớp nagravey lagrave một kết quả chuyecircn biệt hoacutea của lớp khaacutec) hay
đoacuteng goacutei ( packaged - hợp với nhau thagravenh một đơn vị) Tất cả caacutec mối quan hệ
đoacute đều được thể hiện trong biểu đồ lớp đi kegravem với cấu truacutec becircn trong của caacutec lớp
theo khaacutei niệm thuộc tiacutenh (attribute) vagrave thủ tục (operation) Biểu đồ được coi lagrave
biểu đồ tĩnh theo phương diện cấu truacutec được miecircu tả ở đacircy coacute hiệu lực tại bất kỳ
thời điểm nagraveo trong toagraven bộ vograveng đời hệ thống
Một hệ thống thường sẽ coacute một loạt caacutec biểu đồ lớp ndash chẳng phải bao giờ tất cả
caacutec biểu đồ lớp nagravey cũng được nhập vagraveo một biểu đồ lớp tổng thể duy nhất ndash vagrave
một lớp coacute thể tham gia vagraveo nhiều biểu đồ lớp Biểu đồ lớp được miecircu tả chi tiết
trong chương sau
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 33 - Biểu đồ lớp cho một giao dịch Tagravei chiacutenh
43- Biểu đồ đối tƣợng (Object Diagram)
Một biểu đồ đối tượng lagrave một phiecircn bản của biểu đồ lớp vagrave thường cũng sử dụng
caacutec kyacute hiệu như biểu đồ lớp Sự khaacutec biệt giữa hai loại biểu đồ nagravey nằm ở chỗ
biểu đồ đối tượng chỉ ra một loạt caacutec đối tượng thực thể của lớp thay vigrave caacutec lớp
Một biểu đồ đối tượng vigrave vậy lagrave một viacute dụ của biểu đồ lớp chỉ ra một bức tranh
thực tế coacute thể xảy ra khi hệ thống thực thi bức tranh magrave hệ thống coacute thể coacute tại
một thời điểm nagraveo đoacute Biểu đồ đối tượng sử dụng chung caacutec kyacute hiệu của biểu đồ
lớp chỉ trừ hai ngoại lệ đối tượng được viết với tecircn được gạch dưới vagrave tất cả caacutec
thực thể trong một mối quan hệ đều được chỉ ra (nhigraven higravenh 34)
Biểu đồ đối tượng khocircng quan trọng bằng biểu đồ lớp chuacuteng coacute thể được sử
dụng để viacute dụ hoacutea một biểu đồ lớp phức tạp chỉ ra với những thực thể cụ thể vagrave
những mối quan hệ như thế thigrave bức tranh toagraven cảnh sẽ ra sao Một biểu đồ đối
tượng thường thường được sử dụng lagravem một thagravenh phần của một biểu đồ cộng
taacutec (collaboration) chỉ ra lối ứng xử động giữa một loạt caacutec đối tượng
Higravenh 34 - Biểu đồ lớp vagrave biểu đồ đối tượng thể hiện của lớp
CuuDuongThanCongcom httpsfbcomtailieudientucntt
44- Biểu đồ trạng thaacutei (State Diagram)
Một biểu đồ trạng thaacutei thường lagrave một sự bổ sung cho lời miecircu tả một lớp Noacute chỉ
ra tất cả caacutec trạng thaacutei magrave đối tượng của lớp nagravey coacute thể coacute vagrave những sự kiện
(event) nagraveo sẽ gacircy ra sự thay đổi trạng thaacutei (higravenh 35) Một sự kiện coacute thể xảy ra
khi một đối tượng tự gửi thocircng điệp đến cho noacute - viacute dụ như để thocircng baacuteo rằng
một khoảng thời gian được xaacutec định đatilde qua đi ndash hay lagrave một số điều kiện nagraveo đoacute
đatilde được thỏa matilden Một sự thay đổi trạng thaacutei được gọi lagrave một sự chuyển đổi
trạng thaacutei (State Transition) Một chuyển đổi trạng thaacutei cũng coacute thể coacute một hagravenh
động liecircn quan xaacutec định điều gigrave phải được thực hiện khi sự chuyển đổi trạng thaacutei
nagravey diễn ra
Biểu đồ trạng thaacutei khocircng được vẽ cho tất cả caacutec lớp magrave chỉ riecircng cho những lớp
coacute một số lượng caacutec trạng thaacutei được định nghĩa rotilde ragraveng vagrave hagravenh vi của lớp bị ảnh
hưởng vagrave thay đổi qua caacutec trạng thaacutei khaacutec nhau Biểu đồ trạng thaacutei cũng coacute thể
được vẽ cho hệ thống tổng thể Biểu đồ trạng thaacutei được miecircu tả chi tiết hơn trong
chương sau (Mocirc higravenh động)
Higravenh 35- Một viacute dụ về biểu đồ trạng thaacutei
45- Biểu đồ trigravenh tự (Sequence Diagram)
Một biểu đồ trigravenh tự chỉ ra một cộng taacutec động giữa một loạt caacutec đối tượng (xem
higravenh 36) Khiacutea cạnh quan trọng của biểu đồ nagravey lagrave chỉ ra trigravenh tự caacutec thocircng điệp
(message) được gửi giữa caacutec đối tượng Noacute cũng chỉ ra trigravenh tự tương taacutec giữa
caacutec đối tượng điều sẽ xảy ra tại một thời điểm cụ thể nagraveo đoacute trong trigravenh tự thực
thi của hệ thống Caacutec biểu đồ trigravenh tự chứa một loạt caacutec đối tượng được biểu diễn
bằng caacutec đường thẳng đứng Trục thời gian coacute hướng từ trecircn xuống dưới trong
biểu đồ vagrave biểu đồ chỉ ra sự trao đổi thocircng điệp giữa caacutec đối tượng khi thời gian
trocirci qua Caacutec thocircng điệp được biểu diễn bằng caacutec đường gạch ngang gắn liền với
mũi tecircn (biểu thị thocircng điệp) nối liền giữa những đường thẳng đứng thể hiện đối
tượng Trục thời gian cugraveng những lời nhận xeacutet khaacutec thường sẽ được đưa vagraveo phần
lề của biểu đồ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 36 - Một biểu đồ trigravenh tự cho Print Server
46- Biểu đồ cộng taacutec (Collaboration Diagram)
Một biểu đồ cộng taacutec chỉ ra một sự cộng taacutec động cũng giống như một biểu đồ
trigravenh tự Thường người ta sẽ chọn hoặc dugraveng biểu đồ trigravenh tự hoặc dugraveng biểu đồ
cộng taacutec Becircn cạnh việc thể hiện sự trao đổi thocircng điệp (được gọi lagrave tương taacutec)
biểu đồ cộng taacutec chỉ ra caacutec đối tượng vagrave quan hệ của chuacuteng (nhiều khi được gọi
lagrave ngữ cảnh) Việc necircn sử dụng biểu đồ trigravenh tự hay biểu đồ cộng taacutec thường sẽ
được quyết định theo nguyecircn tắc chung sau Nếu thời gian hay trigravenh tự lagrave yếu tố
quan trọng nhất cần phải nhấn mạnh thigrave hatildey chọn biểu đồ trigravenh tự nếu ngữ cảnh
lagrave yếu tố quan trọng hơn hatildey chọn biểu đồ cộng taacutec Trigravenh tự tương taacutec giữa caacutec
đối tượng được thể hiện trong cả hai loại biểu đồ nagravey
Biểu đồ cộng taacutec được vẽ theo dạng một biểu đồ đối tượng nơi một loạt caacutec đối
tượng được chỉ ra cugraveng với mối quan hệ giữa chuacuteng với nhau (sử dụng những kyacute
hiệu như trong biểu đồ lớp biểu đồ đối tượng) Caacutec mũi tecircn được vẽ giữa caacutec đối
tượng để chỉ ra dograveng chảy thocircng điệp giữa caacutec đối tượng Caacutec thocircng điệp thường
được điacutenh kegravem theo caacutec nhatilden (label) một trong những chức năng của nhatilden lagrave
chỉ ra thứ tự magrave caacutec thocircng điệp được gửi đi Noacute cũng coacute thể chỉ ra caacutec điều kiện
chỉ ra những giaacute trị được trả về vv Khi đatilde lagravem quen với caacutech viết nhatilden một
nhagrave phaacutet triển coacute thể đọc biểu đồ cộng taacutec vagrave tuacircn thủ theo dograveng thực thi cũng
như sự trao đổi thocircng điệp Một biểu đồ cộng taacutec cũng coacute thể chứa cả caacutec đối
tượng tiacutech cực (active objects) hoạt động song song với caacutec đối tượng tiacutech cực
khaacutec (higravenh 37) Biểu đồ cộng taacutec được miecircu tả chi tiết trong chương sau
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 37 - Một biểu đồ cocircng taacutec của một printer server
47- Biểu đồ hoạt động (Activity Diagram)
Một biểu đồ hoạt động chỉ ra một trigravenh tự lần lượt của caacutec hoạt động (activity)
(higravenh 38) Biểu đồ hoạt động thường được sử dụng để miecircu tả caacutec hoạt động
được thực hiện trong một thủ tục mặc dugrave noacute cũng coacute thể được sử dụng để miecircu
tả caacutec dograveng chảy hoạt động khaacutec viacute dụ như trong một Use case hay trong một
trigravenh tự tương taacutec Biểu đồ hoạt động bao gồm caacutec trạng thaacutei hagravenh động chứa
đặc tả của một hoạt động cần phải được thực hiện (một hagravenh động - action) Một
trạng thaacutei hagravenh động sẽ qua đi khi hagravenh động được thực hiện xong (khaacutec với biểu
đồ trạng thaacutei một trạng thaacutei chỉ chuyển sang trạng thaacutei khaacutec sau khi đatilde xảy ra
một sự kiện rotilde ragraveng ) Dograveng điều khiển ở đacircy chạy giữa caacutec trạng thaacutei hagravenh
động liecircn kết với nhau Biểu đồ cograven coacute thể chỉ ra caacutec quyết định caacutec điều kiện
cũng như phần thực thi song song của caacutec trạng thaacutei hagravenh động Biểu đồ ngoagravei ra
cograven coacute thể chứa caacutec loại đặc tả cho caacutec thocircng điệp được gửi đi hoặc được nhận về
trong tư caacutech lagrave thagravenh phần của hagravenh động được thực hiện
Higravenh 38 - Một biểu đồ hoạt động cho một printer server
48- Biểu đồ thagravenh phần (Component Diagram)
Một biểu đồ thagravenh phần chỉ ra cấu truacutec vật lyacute của caacutec dograveng lệnh (code) theo khaacutei
niệm thagravenh phần code Một thagravenh phần code coacute thể lagrave một tập tin source code
một thagravenh phần nhị phacircn (binary) hay một thagravenh phần thực thi được
(executable) Một thagravenh phần chứa caacutec thocircng tin về caacutec lớp logic hoặc caacutec lớp magrave
noacute thi hagravenh như thế coacute nghĩa lagrave noacute tạo ra một aacutenh xạ từ hướng nhigraven logic vagraveo
hướng nhigraven thagravenh phần Biểu đồ thagravenh phần cũng chỉ ra những sự phụ thuộc giữa
caacutec thagravenh phần với nhau trợ giuacutep cho cocircng việc phacircn tiacutech hiệu ứng magrave một
thagravenh phần được thay đổi sẽ gacircy ra đối với caacutec thagravenh phần khaacutec Thagravenh phần
cũng coacute thể được miecircu tả với bất kỳ loại giao diện nagraveo magrave chuacuteng bộc lộ viacute dụ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
như giao diện OLECOM vagrave chuacuteng coacute thể được nhoacutem goacutep lại với nhau thagravenh từng
goacutei (package) Biểu đồ thagravenh phần được sử dụng trong cocircng việc lập trigravenh cụ thể
(xem higravenh 39)
Higravenh 39 - Một biểu đồ thagravenh phần chỉ ra sự phụ thuộc giữa caacutec thagravenh phần matilde
49- Biểu đồ triển khai (Deployment Diagram)
Biểu đồ triển khai chỉ ra kiến truacutec vật lyacute của phần cứng cũng như phần mềm
trong hệ thống Bạn coacute thể chỉ ra từng maacutey tiacutenh cụ thể vagrave từng trang thiết bị cụ
thể (node) đi kegravem sự nối kết giữa chuacuteng với nhau bạn cũng coacute thể chỉ ra loại của
caacutec mối nối kết đoacute Becircn trong caacutec nuacutet mạng (node) caacutec thagravenh phần thực thi được
cũng như caacutec đối tượng sẽ được xaacutec định vị triacute để chỉ ra những phần mềm nagraveo sẽ
được thực thi tại những nuacutet mạng nagraveo Bạn cũng coacute thể chỉ ra sự phụ thuộc giữa
caacutec thagravenh phần
Biểu đồ triển khai chỉ ra hướng nhigraven triển khai miecircu tả kiến truacutec vật lyacute thật sự
của hệ thống Đacircy lagrave một hướng nhigraven rất xa lối miecircu tả duy chức năng của hướng
nhigraven Use case Mặc dugrave vậy trong một mocirc higravenh tốt người ta coacute thể chỉ tất cả
những con đường dẫn từ một nuacutet mạng trong một kiến truacutec vật lyacute cho tới những
thagravenh phần của noacute cho tới lớp magrave noacute thực thi cho tới những tương taacutec magrave caacutec
đối tượng của lớp nagravey tham gia để rồi cuối cugraveng tiến tới một Use case Rất nhiều
hướng nhigraven khaacutec nhau của hệ thống được sử dụng đồng thời để tạo ra một lời
miecircu tả thấu đaacuteo đối với hệ thống trong sự tổng thể của noacute
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 310 - Một biểu đồ triển khai chỉ ra kiến truacutec vật lyacute của hệ thống
5- PHẦN TỬ MOcirc HIgraveNH (MODEL ELEMENT)
Caacutec khaacutei niệm được sử dụng trong caacutec biểu đồ được gọi lagrave caacutec phần tử mocirc higravenh
(model element) Một phần tử mocirc higravenh được định nghĩa với ngữ nghĩa (semantic)
đoacute lagrave một định nghĩa về bản chất phần tử hay lagrave một xaacutec định yacute nghĩa chiacutenh xaacutec
xem noacute sẽ thể hiện điều gigrave trong những lời khẳng định rotilde ragraveng Mỗi phần tử mocirc
higravenh cograven coacute một sự miecircu tả trực quan một kyacute hiệu higravenh học được sử dụng để
miecircu tả phần tử nagravey trong biểu đồ Một phần tử coacute thể tồn tại trong nhiều dạng
biểu đồ khaacutec nhau nhưng cũng coacute những nguyecircn tắc xaacutec định loại phần tử nagraveo
coacute thể được chỉ ra trong loại biểu đồ nagraveo Một vagravei viacute dụ cho phần tử vocirc higravenh lagrave lớp
đối tượng trạng thaacutei nuacutet mạng goacutei thagravenh phần (higravenh 311)
Higravenh 311- Caacutec thagravenh phần mocirc higravenh thường dugraveng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 312 chỉ ra một vagravei viacute dụ của mối quan hệ đacircy cũng lagrave một dạng phần tử
mocirc higravenh chuacuteng được sử dụng để nối caacutec phần tử mocirc higravenh khaacutec với nhau Một vagravei
loại quan hệ đaacuteng chuacute yacute
Nối kết (Association) nối caacutec phần tử vagrave caacutec thực thể nối (link)
Khaacutei quaacutet hoacutea (Generalization) cograven được gọi lagrave tiacutenh thừa kế coacute
yacute nghĩa rằng một phần tử nagravey coacute thể lagrave một sự chuyecircn biệt hoacutea của
một phần tử khaacutec
Sự phụ thuộc (Dependency) chỉ ra rằng một phần tử nagravey phụ
thuộc trong một phương thức nagraveo đoacute vagraveo một phần tử khaacutec
Kết tập (Aggregation) Một dạng của nối kết trong đoacute một phần
tử nagravey chứa caacutec phần tử khaacutec
Ngoagravei ra cograven coacute caacutec phần tử mocirc higravenh khaacutec như thocircng điệp (Message) hagravenh động
(action) vagrave khuocircn mẫu (stereotype) Tất cả caacutec phần tử mocirc higravenh yacute nghĩa của
chuacuteng cũng như những ứng dụng đều được giải thiacutech kỹ lưỡng hơn trong caacutec
chương sau
Higravenh 312 ndash caacutec viacute dụ về vagravei loại quan hệ
6- CƠ CHẾ CHUNG (GENERAL MECHANISM)
UML thể hiện một số caacutec cơ chế chung trong tất cả caacutec biểu đồ nhằm mục điacutech
cung cấp thecircm caacutec thocircng tin bổ sung thường đacircy lagrave những thocircng tin khocircng thể
được thể hiện qua caacutec chức năng vagrave khả năng cơ bản của caacutec phần tử mocirc higravenh
61- Trang triacute (Adornment)
Caacutec sự trang triacute trực quan coacute thể được sử dụng kegravem thecircm vagraveo caacutec phần tử mocirc
higravenh trong biểu đồ Động taacutec trang triacute bổ sung thecircm ngữ nghĩa cho phần tử Một
viacute dụ lagrave kỹ thuật được sử dụng để phacircn biệt một loại thực thể (lớp) vagrave một thực
thể Khi thể hiện một loại tecircn phần tử sẽ được in đậm Khi cũng chiacutenh phần tử
đoacute thể hiện chỉ một thực thể của loại nagravey tecircn phần tử sẽ được gạch dưới vagrave coacute
thể được coi lagrave cả tecircn của thực thể lẫn tecircn của loại đoacute Một higravenh chữ nhật thể
hiện lớp với tecircn được in đậm sẽ thể hiện một lớp vagrave tecircn được gạch dưới sẽ thể
CuuDuongThanCongcom httpsfbcomtailieudientucntt
hiện một đối tượng đacircy lagrave một viacute dụ tiecircu biểu của adornment Cũng nguyecircn tắc
đoacute được aacutep dụng cho caacutec nuacutet mạng khi kyacute hiệu nuacutet được in đậm lagrave thể hiện một
loại nuacutet viacute dụ như maacutey in (Printer) khi kyacute hiệu được gạch dưới lagrave thể hiện một
thực thể của lớp nuacutet mạng nagravey viacute dụ Johnrsquos HP 5MP-printer Caacutec kiểu trang triacute
khaacutec lagrave caacutec lời đặc tả về số lượng trong quan hệ (multiplicity) nơi số lượng lagrave
một số hay một khoảng số chỉ ra bao nhiecircu thực thể của caacutec loại thực thể được
nối với nhau sẽ coacute thể tham gia trong một quan hệ Kiacute hiệu trang triacute được viết
gần phần tử mocirc higravenh được magrave noacute bổ sung thocircng tin (higravenh 313)
Higravenh 313 - Phacircn biệt giữa lớp vagrave đối tượng bằng trang triacute
62- Ghi chuacute (Note)
Cho dugrave một ngocircn ngữ mocirc higravenh hoacutea coacute được mở rộng đến bao nhiecircu chăng nữa
noacute cũng khocircng thể định nghĩa tất cả mọi việc Nhằm tạo điều kiện bổ sung thecircm
cho một mocirc higravenh những thocircng tin khocircng thể được thể hiện bằng phần tử mocirc higravenh
UML cung cấp khả năng kegravem theo lời ghi chuacute Một lời ghi chuacute coacute thể được để bất
kỳ nơi nagraveo trong bất kỳ biểu đồ nagraveo vagrave noacute coacute thể chứa bất kỳ loại thocircng tin nagraveo
Dạng thocircng tin của bản thacircn noacute lagrave chuỗi kyacute tự (string) khocircng được UML diễn giải
Lời ghi chuacute thường đi kegravem theo một số caacutec phần tử mocirc higravenh trong biểu đồ được
nối bằng một đường chấm chấm chỉ ra phần tử mocirc higravenh nagraveo được chi tiết hoacutea
hoặc được giải thiacutech (higravenh 314)
Một lời ghi chuacute thường chứa lời nhận xeacutet hoặc caacutec cacircu hỏi của nhagrave tạo mocirc higravenh
viacute dụ lời nhắc nhở cần phải xử lyacute vấn đề nagraveo đoacute trong thời gian sau nagravey Lời ghi
chuacute cũng coacute thể chứa caacutec thocircng tin dạng khuocircn mẫu (stereotype)
Higravenh 314 - Một viacute dụ về ghi chuacute
63- Đặc tả (Specification)
Caacutec phần tử mocirc higravenh coacute thuộc tiacutenh (Property) chứa caacutec giaacute trị dữ liệu về phần tử
nagravey Một thuộc tiacutenh được định nghĩa với một tecircn vagrave một giaacute trị điacutenh kegravem (tagged
value) thường chuacuteng ở trong một dạng thocircng tin được xaacutec định trước viacute dụ như
số nguyecircn hay chuỗi kiacute tự Coacute một loạt thuộc tiacutenh đatilde được định nghĩa trước viacute dụ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
như tagravei liệu (docement) traacutech nhiệm (Responsibility) sự trường tồn (Persistence)
vagrave tiacutenh song song (Conccurency)
Thuộc tiacutenh được sử dụng để thecircm caacutec đặc tả bổ sung về một phần tử những
thocircng tin bigravenh thường ra khocircng được thể hiện trong biểu đồ Viacute dụ tiecircu biểu lagrave
một lớp sẽ được miecircu tả bằng một tagravei liệu văn bản nhất định cung cấp nhiều
thocircng tin hơn về traacutech nhiệm cũng như khả năng của lớp nagravey Loại đặc tả nagravey
bigravenh thường ra khocircng được chỉ ra trong caacutec biểu đồ nhưng thường thigrave trong đa
phần caacutec cocircng cụ mocirc higravenh hoacutea chuacuteng sẽ coacute thể được truy cập qua hagravenh động
nhấp nuacutet vagraveo một phần tử nagraveo đoacute hiệu quả lagrave một cửa sổ chứa đặc tả với tất cả
caacutec thuộc tiacutenh sẽ được chỉ ra (Higravenh 315)
Higravenh 315- Một cửa sổ đặc tả thể hiện caacutec đặc tiacutenh của class
7- MỞ RỘNG UML
UML coacute thể được mở rộng hoặc coacute thể được sửa đổi để phugrave hợp với một phương
phaacutep đặc biệt một tổ chức cụ thể hay một người dugraveng cụ thể Chuacuteng ta sẽ bagraven
luận sơ qua đến ba cơ chế mở rộng UML khuocircn mẫu (stereotype) giaacute trị điacutenh
kegravem (tagged value) vagrave hạn chế (constraint)
71- Khuocircn mẫu (Stereotype)
Cơ chế mở rộng khuocircn mẫu định nghĩa một loại phần tử mocirc higravenh mới dựa trecircn
một phần tử mocirc higravenh đatilde tồn tại Khuocircn mẫu coacute thể được coi lagrave tương tự như
một phần tử đatilde coacute sẵn cộng thecircm phần quy định ngữ nghĩa (semantic) riecircng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
biệt khocircng coacute trong phần tử gốc kia Khuocircn mẫu của một phần tử coacute thể được sử
dụng trong cugraveng tigravenh huống như phần tử căn bản Khuocircn mẫu dựa trecircn tất cả caacutec
loại phần tử mocirc higravenh sẵn coacute - lớp nuacutet mạng thagravenh phần cũng như caacutec mối quan
hệ như liecircn kết khaacutei quaacutet hoacutea sự phụ thuộc Ngocircn ngữ UML coacute chứa một số
lượng lớn caacutec khuocircn mẫu được định nghĩa sẵn vagrave chuacuteng được sử dụng để sửa đổi
caacutec phần tử mocirc higravenh sẵn coacute thay cho việc phải định nghĩa hoagraven toagraven mới Cơ chế
nagravey giuacutep gigraven giữ tiacutenh đơn giản của nền tảng ngocircn ngữ UML
Khuocircn mẫu được miecircu tả qua việc đưa tecircn của chuacuteng vagraveo trong một cặp kyacute tự
ngoặc nhọn ltltgtgt theo như trong higravenh 316 Kyacute tự ngoặc nhọn nagravey được gọi lagrave
guillements Khuocircn mẫu cũng coacute thể coacute kiacute hiệu higravenh học riecircng Một phần tử của
một loại khuocircn mẫu cụ thể coacute thể được thể hiện bởi tecircn khuocircn mẫu đi kegravem kyacute
hiệu higravenh học mocirc tả phần tử căn bản hay lagrave sự kết hợp của cả hai yếu tố nagravey
Bất kỳ khi nagraveo một phần tử mocirc higravenh được nối kết với một tecircn hoặc kiacute hiệu khuocircn
mẫu ta sẽ đọc đacircy lagrave một loại phần tử thuộc loại khuocircn mẫu Viacute dụ một lớp
với ltltWindowgtgt sẽ được gọi lagrave một lớp trong dạng khuocircn mẫu cửa sổ yacute
nghĩa của noacute lagrave một dạng lớp cửa sổ Những thuộc tiacutenh cụ thể magrave một lớp cửa sổ
cần phải coacute sẽ được định nghĩa khi khuocircn mẫu nagravey được định nghĩa
Như đatilde noacutei khuocircn mẫu lagrave một cơ chế mở rộng xuất sắc lagrave một cơ chế ngăn cho
ngocircn ngữ UML khocircng trở necircn quaacute phức tạp mặc dugrave vẫn cho pheacutep thực hiện sự
mở rộng vagrave sửa đổi cần thiết Đa phần caacutec phần tử mocirc higravenh mới magrave bạn cần đến
đều coacute một khuocircn mẫu nền tảng trong ngocircn ngữ UML Một khuocircn mẫu sau đoacute coacute
thể được sử dụng để cộng thecircm caacutec ngữ nghĩa cần thiết nhằm mục điacutech định
nghĩa necircn caacutec phần tử mocirc higravenh cograven thiếu
Higravenh 316- Customer lagrave một lớp khuocircn mẫu ltltActorgtgt
72- Giaacute trị điacutenh kegravem (Tagged Value)
Như đatilde noacutei caacutec phần tử mocirc higravenh coacute thể coacute caacutec thuộc tiacutenh chứa một cặp tecircn-giaacute
trị về bản thacircn chuacuteng (higravenh 317) Caacutec thuộc tiacutenh nagravey cũng cograven được gọi lagrave caacutec
giacutea trị điacutenh kegravem UML coacute chứa một loạt caacutec thuộc tiacutenh được định nghĩa trước
nhưng kể cả người sử dụng cũng coacute thể định nghĩa ra caacutec thuộc tiacutenh mới để chứa
caacutec thocircng tin bổ sung về caacutec phần tử mocirc higravenh Mọi higravenh dạng thocircng tin đều coacute
thể được điacutenh kegravem vagraveo phần tử caacutec thocircng tin chuyecircn biệt về phương phaacutep caacutec
thocircng tin của nhagrave quản trị về tiến trigravenh mocirc higravenh hoacutea caacutec thocircng tin được sử dụng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
bởi caacutec cocircng cụ khaacutec viacute dụ như caacutec cocircng cụ tạo code hay bất kỳ một loại thocircng
tin nagraveo magrave người sử dụng muốn điacutenh kegravem vagraveo phần tử mocirc higravenh
Higravenh 317 - Một viacute dụ về Tagged Value
73- Hạn chế (Constraint)
Một sự hạn chế lagrave một sự giới hạn về sự sử dụng hoặc yacute nghĩa của một phần tử
Sự hạn chế hoặc sẽ được khai baacuteo trong cocircng cụ vagrave được sử dụng nhiều lần trong
rất nhiều biểu đồ khaacutec nhau hay được định nghĩa vagrave sử dụng trong chỉ một biểu
đồ theo như nhu cầu
Higravenh 318 chỉ ra mối quan hệ nối kết giữa nhoacutem caacutec cocircng dacircn lớn tuổi vagrave lớp con
người chỉ ra rằng nhoacutem cocircng dacircn coacute thể coacute nhiều người liecircn quan Mặc dugrave vậy
để miecircu tả rằng chỉ những người nagraveo lớn hơn 60 tuổi mới coacute thể tham gia vagraveo
nhoacutem nagravey người ta định nghĩa một sự hạn chế hạn hẹp tiecircu chuẩn tham gia đối
với chỉ những người nagraveo magrave thuộc tiacutenh tuổi taacutec coacute giaacute trị lớn hơn 60 Định nghĩa
nagravey sẽ hạn chế số lượng những người được sử dụng trong mối quan hệ Nếu
khocircng coacute noacute người ta rất dễ hiểu lầm khi diễn tả biểu đồ Trong trường hợp tồi
tệ noacute coacute thể dẫn đến sự thực thi sai traacutei của hệ thống
Trong trường hợp nagravey hạn chế được định nghĩa vagrave ứng dụng trực tiếp trong
chiacutenh biểu đồ magrave noacute được cần tới Nhưng nhigraven chung thigrave hạn chế cũng coacute thể
được định nghĩa với tecircn cugraveng lời đặc tả riecircng viacute dụ như cocircng dacircn giagrave vagrave
người coacute tuổi lớn hơn 60 vagrave hạn chế nagravey sẽ được sử dụng trong nhiều biểu đồ
khaacutec nhau UML coacute chứa một loạt caacutec hạn chế được định nghĩa sẵn chuacuteng được
miecircu tả chi tiết trong caacutec chương sau
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 318- Một ragraveng buộc hạn chế đối tượng Person goacutep phần vagraveo quan hệ kết
hợp
8- MOcirc HIgraveNH HOacuteA VỚI UML
Khi xacircy dựng hệ thống với UML người ta khocircng chỉ xacircy dựng duy nhất một mocirc
higravenh Sẽ coacute nhiều mocirc higravenh khaacutec nhau trong những giai đoạn phaacutet triển khaacutec nhau
nhắm đến caacutec mục điacutech khaacutec nhau Trong giai đoạn phacircn tiacutech mục điacutech của mocirc
higravenh lagrave nắm bắt tất cả caacutec yecircu cầu đối với hệ thống vagrave mocirc higravenh hoacutea nền tảng bao
gồm caacutec lớp vagrave caacutec cộng taacutec đời thực Trong giai đoạn thiết kế mục điacutech của
mocirc higravenh lagrave mở rộng mocirc higravenh phacircn tiacutech tạo thagravenh một giải phaacutep kỹ thuật khả thi
coacute chuacute yacute đến mocirci trường của cocircng việc xacircy dựng (viết code) Trong giai đoạn xacircy
dựng code mocirc higravenh chiacutenh lagrave những dograveng code nguồn thật sự được viết necircn vagrave
được dịch thagravenh caacutec chương trigravenh Vagrave cuối cugraveng trong giai đoạn triển khai một
lời miecircu tả sẽ giải thiacutech hệ thống cần được triển khai ra sao trong kiến truacutec vật lyacute
Khả năng theo dotildei xuyecircn suốt nhiều giai đoạn vagrave nhiều mocirc higravenh khaacutec nhau được
đảm bảo qua caacutec thuộc tiacutenh hoặc caacutec mối quan hệ nacircng cao (refinement)
Mặc dugrave đoacute lagrave caacutec mocirc higravenh khaacutec nhau nhưng chuacuteng đều được xacircy dựng necircn để
mở rộng nội dung của caacutec mocirc higravenh ở giai đoạn trước Chiacutenh vigrave thế tất cả caacutec mocirc
higravenh đều cần phải được gigraven giữ tốt để người ta coacute thể dễ dagraveng đi ngược lại mở
rộng ra hay taacutei thiết lập mocirc higravenh phacircn tiacutech khởi đầu vagrave rồi dần dần từng bước
đưa caacutec sự thay đổi vagraveo mocirc higravenh thiết kế cũng như caacutec mocirc higravenh xacircy dựng (higravenh
319)
Higravenh 319- Một hệ thống được mocirc tả trong nhiều mocirc higravenh
Bản thacircn ngocircn ngữ UML khocircng phụ thuộc vagraveo giai đoạn coacute nghĩa lagrave cũng những
nguyecircn tắc ngocircn ngữ đoacute vagrave cũng những biểu đồ đoacute được sử dụng để mocirc higravenh hoacutea
những sự việc khaacutec nhau trong những giai đoạn khaacutec nhau Nhagrave thiết kế nắm
quyền quyết định xem một mocirc higravenh sẽ phải thay đổi nhằm đạt được những mục
điacutech nagraveo vagrave bao trugravem những phạm vi nagraveo Ngocircn ngữ mocirc higravenh hoacutea chỉ cung cấp
khả năng để tạo ra caacutec mocirc higravenh trong một phong caacutech mở rộng vagrave nhất quaacuten
Khi mocirc higravenh hoacutea bằng ngocircn ngữ UML toagraven bộ cocircng việc cần phải được thực hiện
theo một phương phaacutep hay một qui trigravenh xaacutec định rotilde những bước cocircng việc nagraveo
phải được tiến hagravenh vagrave chuacuteng phải được thực thi ra sao Một qui trigravenh như vậy
CuuDuongThanCongcom httpsfbcomtailieudientucntt
thường sẽ chia cocircng việc ra thagravenh caacutec vograveng lặp kế tiếp mỗi vograveng lặp bao gồm
caacutec cocircng việc phacircn tiacutech yecircu cầu phacircn tiacutech thiết kế thực hiện triển khai Mặc
dugrave vậy cũng coacute một quy trigravenh nhỏ hơn đề cập tới nội dung của việc mocirc higravenh hoacutea
Bigravenh thường ra khi sản xuất một mocirc higravenh hoặc sản xuất chỉ một biểu đồ duy
nhất cocircng việc sẽ bắt đầu bằng việc thu thập một nhoacutem thiacutech hợp caacutec caacute nhacircn
khaacutec nhau trigravenh bagravey vấn đề vagrave mục tiecircu họ cộng taacutec cho một giai đoạn hội thảo
khoa học vagrave phaacutec thảo trao đổi những saacuteng kiến vagrave yacute tưởng về mocirc higravenh coacute thể
Cocircng cụ được sử dụng trong giai đoạn nagravey lagrave hết sức khaacutec biệt vagrave mang tiacutenh
ngẫu hứng - thường lagrave giấy daacuten post it hay bảng trắng Cocircng việc được quyết
định chừng nagraveo những người tham gia coacute cảm giaacutec họ đatilde coacute được một nền tảng
thực tiễn cho một mocirc higravenh (giống như một tiecircu đề) Kết quả sau đoacute sẽ được đưa
vagraveo một cocircng cụ mocirc higravenh tiecircu đề được tổ chức vagrave sau đoacute một biểu đồ thực sự
sẽ được tạo dựng necircn phugrave hợp với những quy định của ngocircn ngữ mocirc higravenh hoacutea
Sau đoacute mocirc higravenh được chi tiết hoacutea qua những cocircng việc mang tiacutenh vograveng lặp cagraveng
ngagravey cagraveng coacute nhiều chi tiết về giải phaacutep được phaacutet hiện được dữ liệu hoacutea vagrave
được bổ sung Khi đatilde coacute nhiều thocircng tin hơn được thu thập về vấn đề cũng như
giải phaacutep của noacute tiecircu đề ban đầu dần dần trở thagravenh một lời chuẩn đoaacuten cho một
mocirc higravenh coacute khả năng sử dụng Khi mocirc higravenh đatilde gần hoagraven thiện một sự tiacutech hợp
vagrave thẩm định sẽ được thực hiện dẫn tới việc mocirc higravenh hoặc biểu đồ sẽ được tiacutech
hợp với những mocirc higravenh vagrave biểu đồ khaacutec trong cugraveng dự aacuten để đảm bảo sự nhất
quaacuten Mocirc higravenh sau đoacute cũng được kiểm tra lại để chắc chắn noacute đang giải quyết
đuacuteng vấn đề cần giải quyết (higravenh 320)
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 320 - Một tiến trigravenh cho cocircng việc mocirc higravenh hoaacute thực tế
Cuối cugraveng mocirc higravenh sẽ được thực thi vagrave triển khai thagravenh một loạt caacutec nguyecircn
mẫu (prototype) nguyecircn mẫu nagravey sẽ được kiểm tra để tigravem khiếm khuyết Caacutec
khiếm khuyết bao gồm kể cả caacutec chức năng cograven thiếu sự thực hiện tồi tệ hay phiacute
sản xuất vagrave phaacutet triển quaacute cao Những khiếm khuyết thường sẽ eacutep nhagrave phaacutet triển
ragrave đi ragrave lại cocircng việc của migravenh để khắc phục chuacuteng Nếu vấn đề lagrave quaacute lớn nhagrave
phaacutet triển coacute thể sẽ đi ngược lại tất cả caacutec bước cocircng việc của migravenh cho tới tận
giai đoạn sơ phaacutec đầu tiecircn Nếu caacutec vấn đề nagravey khocircng lớn nhagrave phaacutet triển coacute lẽ
chỉ cần thay đổi một vagravei thagravenh phần trong tổ chức hoặc đặc tả của mocirc higravenh Xin
nhớ rằng bước tạo nguyecircn mẫu khocircng thể được thực hiện ngay lập tức sau khi
hoagraven tất biểu đồ noacute chỉ necircn được thực hiện khi đatilde coacute một số lượng lớn caacutec biểu
đồ liecircn quan Nguyecircn mẫu sau nagravey coacute thể được vứt đi coacute thể được tạo dựng necircn
chỉ để nhằm mục điacutech kiểm tra hoặc lagrave nếu bước tạo nguyecircn mẫu nagravey thagravenh
cocircng noacute sẽ trở thagravenh một vograveng lặp trong quy trigravenh phaacutet triển thật sự
CuuDuongThanCongcom httpsfbcomtailieudientucntt
9- COcircNG CỤ (TOOL)
Sử dụng một ngocircn ngữ mocirc higravenh hoacutea phức tạp vagrave rộng mở như UML cần thiết sự
trợ giuacutep của cocircng cụ Mặc dugrave phaacutec thảo đầu tiecircn của một mocirc higravenh coacute thể được
thực hiện bằng bảng trắng cugraveng giấy vagrave mực nhưng cocircng việc bảo trigrave đồng bộ
hoacutea vagrave đảm bảo sự nhất quaacuten trong một loạt caacutec biểu đồ khaacutec nhau thường lại
khocircng thể trở thagravenh khả thi nếu khocircng coacute cocircng cụ
Thị trường cocircng cụ mocirc higravenh hoacutea đatilde dừng trong mức độ sơ khởi suốt một thời gian
dagravei kể từ khi xuất hiện yacute tưởng đầu tiecircn về caacutec chương trigravenh trợ giuacutep cho việc tạo
chương trigravenh Rất nhiều cocircng cụ trong thực tế chỉ thocircng minh hơn caacutec chương
trigravenh vẽ một chuacutet sử dụng một vagravei quy chế kiểm tra tiacutenh nhất quaacuten hoặc một vagravei
kiến thức về phương phaacutep vagrave ngocircn ngữ mocirc higravenh hoacutea Mặc dugrave đatilde coacute một vagravei bước
tiến nhất định vagrave nhiều cocircng cụ hocircm nay đatilde tới gần saacuteng kiến khởi thủy kia
nhiều hơn (Rational Rose) nhưng thị trường vẫn cograven khocircng iacutet cocircng cụ chưa được
gọt giũa vẫn cograven chứa lỗi hoặc những neacutet kỳ quặc kể cả những vấn đề đơn giản
như copy vagrave daacuten Những cocircng cụ nagravey cograven hạn chế ở phương diện rằng tất cả bọn
chuacuteng đều coacute ngocircn ngữ mocirc higravenh hoacutea riecircng hay iacutet nhất thigrave cũng coacute những định
nghĩa riecircng của chuacuteng về ngocircn ngữ nagravey
Cugraveng với sự ra đời của ngocircn ngữ UML caacutec nhagrave cung cấp cocircng cụ mocirc higravenh hoacutea giờ
đacircy coacute thể dagravenh nhiều thời gian hơn cho việc nacircng cấp cocircng cụ bởi họ khocircng cần
phải dồn tacircm dồn sức cho việc định nghĩa caacutec phương phaacutep mới cũng như caacutec
ngocircn ngữ mới
Một cocircng cụ mocirc higravenh hoacutea hịecircn đại cần phải cung cấp caacutec chức năng sau
Vẽ biểu đồ cần phải tạo điều kiện dễ dagraveng vẽ ra caacutec biểu đồ
trong ngocircn ngữ mocirc higravenh hoacutea Cocircng cụ cần phải đủ khả năng thocircng
minh để hiểu mục điacutech của caacutec biểu đồ vagrave biết được những ngữ
nghĩa cũng như caacutec quy tắc đơn giản đủ để noacute coacute thể cảnh baacuteo
hoặc ngăn chặn việc sử dụng khocircng thiacutech hợp caacutec phần tử mocirc higravenh
Hoạt động như một nhagrave kho (Repository) cocircng cụ cần phải
hỗ trợ một nhagrave kho trung tacircm để tất cả caacutec thocircng tin về mocirc higravenh
được lưu trữ trong cugraveng một chỗ Nếu viacute dụ tecircn của một lớp bị thay
đổi trong một biểu đồ thigrave sự thay đổi nagravey cần phải xảy ra trong tất
cả caacutec biểu đồ khaacutec coacute sử dụng lớp nagravey
Hỗ trợ định hướng (Navigation) cocircng cụ cần phải tạo điều
kiện dễ dagraveng cho người sử dụng định hướng vagrave chuyển dịch trong
mocirc higravenh để theo dotildei một phần tử từ biểu đồ nagravey sang biểu đồ khaacutec
hoặc để mở rộng lời miecircu tả của một phần tử
Hỗ trợ nhiều người sử dụng (multiuser support) Cocircng cụ
cần hỗ trợ cho nhiều người sử dụng vagrave tạo điều kiện cho họ cugraveng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
lagravem việc với một mocirc higravenh magrave khocircng ngăn chặn hoặc quấy phaacute lẫn
nhau
Tự động tạo code (code generate) một cocircng cụ cao cấp cần
phải coacute khả năng tạo ra code nơi tất cả caacutec thocircng tin trong mocirc higravenh
được chuyển tải thagravenh caacutec khung code (code skeletons) được sử
dụng lagravem nền tảng cho giai đoạn xacircy dựng chương trigravenh
Taacutei tạo mocirc higravenh (Reserve engineer) Một cocircng cụ cao cấp cần
phải coacute khả năng đọc những thagravenh phần code đang tồn tại vagrave từ đoacute
sản xuất ra mocirc higravenh Từ đoacute suy ra một mocirc higravenh coacute thể được lagravem từ
những dograveng code đatilde tồn tại hoặc một nhagrave phaacutet triển coacute thể dễ
dagraveng chuyển đi chuyển về giữa cocircng việc mocirc higravenh hoacutea vagrave cocircng việc
lập trigravenh
Tiacutech hợp với caacutec cocircng cụ khaacutec một cocircng cụ cần phải coacute khả
năng tiacutech hợp với những cocircng cụ khaacutec với cả việc phaacutet triển mocirci
trường viacute dụ như caacutec trigravenh soạn thảo (editor) chương trigravenh dịch
(compiler) chương trigravenh tigravem lỗi (debugger) cũng như caacutec cocircng cụ
của doanh nghiệp khaacutec như cocircng cụ quản trị cấu higravenh hệ thống
theo dotildei caacutec phiecircn bản
Bao quaacutet mocirc higravenh ở tất cả caacutec mức độ trừu tượng hoacutea khaacutec
nhau cocircng cụ cần phải dễ chuyển tải từ lời miecircu tả ở cấp trừu
tượng hoacutea cao nhất của hệ thống (tức lagrave ở dạng một lượng caacutec goacutei
khaacutec nhau) đi xuống cho tới cấp của những dograveng code thật sự Sau
đoacute để truy xuất những dograveng lệnh code cho một thủ tục cụ thể nagraveo
đoacute trong một lớp nagraveo đoacute bạn coacute thể chỉ cần nhấp chuột vagraveo tecircn của
thủ tục đoacute trong một biểu đồ
Trao đổi mocirc higravenh Một mocirc higravenh hay một biểu đồ của một mocirc
higravenh nagraveo đoacute cần phải coacute khả năng được xuất ra từ một cocircng cụ nagravey
rồi nhập vagraveo một cocircng cụ khaacutec giống như những dograveng lệnh code
được sản sinh trong một cocircng cụ nagravey coacute thể được sử dụng trong một
cocircng cụ khaacutec Nguyecircn tắc trao đổi đoacute cần phải được aacutep dụng cho
caacutec mocirc higravenh trong một ngocircn ngữ mocirc higravenh hoacutea được định nghĩa chiacutenh
xaacutec
10- TOacuteM TẮT VỀ UML
UML tổ chức một mocirc higravenh thagravenh một loạt caacutec hướng nhigraven thể hiện caacutec khiacutea cạnh
khaacutec nhau của hệ thống Chỉ khi kết hợp tất cả caacutec hướng nhigraven lại với nhau
người ta mới co được một bức tranh trọn vẹn về hệ thống Một hướng nhigraven khocircng
phải lagrave một higravenh vẽ nội dung của noacute được miecircu tả qua caacutec biểu đồ đacircy lagrave những
higravenh vẽ chứa đựng caacutec phần tử mocirc higravenh hoacutea Một biểu đồ bigravenh thường chỉ trigravenh
bagravey một phần nội dung của một hướng nhigraven vagrave một hướng nhigraven được định nghĩa
CuuDuongThanCongcom httpsfbcomtailieudientucntt
với rất nhiều biểu đồ Một biểu đồ chứa caacutec phần tử mocirc higravenh viacute dụ như lớp đối
tượng nuacutet mạng thagravenh phần vagrave những mối quan hệ như nối kết khaacutei quaacutet hoacutea
phụ thuộc Caacutec phần tử nagravey coacute yacute nghĩa (semantic) vagrave caacutec kyacute hiệu higravenh học
Caacutec loại biểu đồ trong UML lagrave biểu đồ lớp biểu đồ đối tượng biểu đồ Use case
biểu đồ trạng thaacutei biểu đồ trigravenh tự biểu đồ cộng taacutec biểu đồ hagravenh động biểu đồ
thagravenh phần vagrave biểu đồ triển khai Mục điacutech của caacutec loại biểu đồ cũng như quy tắc
vẽ chuacuteng sẽ được miecircu tả chi tiết trong chương sau
UML coacute một số cơ chế chung để bổ sung thocircng tin khocircng thể được thể hiện trong
quaacute trigravenh vẽ biểu đồ Những thocircng tin nagravey bao gồm viacute dụ những thagravenh phần
trang triacute caacutec lời ghi chuacute coacute thể chứa bất kỳ loại thocircng tin nagraveo cũng như caacutec thuộc
tiacutenh đặc tả Ngoagravei ra cograven coacute caacutec cơ chế mở rộng bao gồm giaacute trị điacutenh kegravem hạn
chế đối với phần tử vagrave khuocircn mẫu định nghĩa một loại phần tử mocirc higravenh mới dựa
trecircn một phần tử sẵn coacute
Một hệ thống sẽ được miecircu tả trong nhiều loại mocirc higravenh khaacutec nhau mỗi loại mocirc
higravenh nhằm một mục điacutech khaacutec nhau Mocirc higravenh phacircn tiacutech miecircu tả những yecircu cầu
về mặt chức năng vagrave mocirc higravenh hoacutea caacutec lớp ngoagravei đời thực Mocirc higravenh thiết kế
chuyển tải kết quả phacircn tiacutech thagravenh một giải phaacutep kỹ thuật theo khaacutei niệm của
một thiết kế phần mềm hoạt động hoagraven chỉnh Mocirc higravenh xacircy dựng code thể hiện
hệ thống qua việc thảo chương cho noacute trong một ngocircn ngữ lập trigravenh hướng đối
tượng Vagrave cuối cugraveng mocirc higravenh triển khai định vị chương trigravenh vừa được tạo necircn
trong một kiến truacutec vật lyacute bao gồm caacutec maacutey tiacutenh vagrave caacutec trang thiết bị Cocircng việc
được lagravem theo nhiều vograveng lặp khaacutec nhau chứ khocircng phải chỉ lagrave một chuỗi thực
hiện một lần
Để sử dụng UML một caacutech nghiecircm chỉnh cho một dự aacuten coacute thật ngoagravei đời bạn
cần cocircng cụ Một cocircng cụ tacircn tiến coacute khả năng cho người dugraveng vẽ biểu đồ trữ tất
cả caacutec thocircng tin vagraveo một kho chung cho pheacutep dễ dagraveng dịch chuyển giữa caacutec
hướng nhigraven vagrave biểu đồ khaacutec nhau trong mocirc higravenh tạo baacuteo caacuteo vagrave tagravei liệu tạo
khung code từ mocirc higravenh đọc những dograveng code sẵn coacute rồi sản sinh ra mocirc higravenh từ
đoacute vagrave dễ dagraveng tiacutech hợp với caacutec cocircng cụ phaacutet triển khaacutec
PHẦN CAcircU HỎI
Hỏi UML coacute cocircng cụ nagraveo giuacutep nắm bắt caacutec yecircu cầu của khaacutech hagraveng (người sử
dụng)
Đaacutep Use Case
Hỏi Một biểu đồ trong UML coacute bao chứa caacutec hướng nhigraven khaacutec nhau
Đaacutep Sai một hướng nhigraven bao gồm một loại caacutec biểu đồ khaacutec nhau
Hỏi Hatildey liệt kecirc caacutec thagravenh phần chủ yếu của ngocircn ngữ UML
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Đaacutep Hướng nhigraven( View) Biểu đồ (Diagram) Phần tử mocirc higravenh Cơ chế
chung
Hỏi UML coacute cocircng cụ nagraveo phục vụ cho giai đoạn thử nghiệm đơn vị (Unit
Testing)
Đaacutep Biểu đồ lớp vagrave đặc tả lớp
Hỏi UML coacute cocircng cụ nagraveo phục vụ cho giai đoạn thử nghiệm hệ thống (System
Testing)
Đaacutep Use case Diagram
Hỏi UML tạo nền tảng cho việc giao tiếp giữa khaacutech hagraveng nhagrave phacircn tiacutech nhagrave
thiết kế vagrave lập trigravenh viecircn
Đaacutep Đuacuteng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Chƣơng 4 Mocirc higravenh hoacutea USE CASE
1- GIỚI THIỆU USE CASE
Trong giai đoạn phacircn tiacutech người sử dụng cộng taacutec cugraveng nhoacutem phaacutet triển phần
mềm tạo necircn một tổ hợp thocircng tin quan trọng về yecircu cầu đối với hệ thống
Khocircng chỉ lagrave người cung cấp thocircng tin bản thacircn người sử dụng cograven lagrave một thagravenh
phần hết sức quan trọng trong bức tranh toagraven cảnh đoacute vagrave nhoacutem phaacutet triển cần
phải chỉ ra được phương thức hoạt động của hệ thống tương lai theo hướng nhigraven
của người sử dụng Hiểu được điểm quan trọng nagravey lagrave chigravea khoacutea để tạo dựng
được những hệ thống vừa thoả matilden caacutec yecircu cầu đặt ra vừa dễ dagraveng sử dụng
thậm chiacute tạo niềm vui thiacutech trong sử dụng
Như vậy cocircng cụ giuacutep ta mocirc higravenh hoaacute hệ thống từ hướng nhigraven của người sử dụng
gọi lagrave Use Case Vagrave để trả lời rotilde hơn về Use Case ta xeacutet một trường hợp sau
Giả sử tocirci quyết định mua một chiếc maacutey fax mới Khi đến cửa hagraveng maacutey văn
phograveng tocirci mới nhận ra lagrave phải chọn lựa trong một danh saacutech maacutey moacutec rất phong
phuacute Loại maacutey nagraveo sẽ được chọn đacircy Tocirci tự hỏi thật chiacutenh xaacutec migravenh muốn lagravem gigrave
với chiếc maacutey fax sẽ mua Tocirci muốn coacute những tiacutenh năng nagraveo Tocirci muốn dugraveng
bằng giấy thường hay giấy thermal Tocirci muốn copy bằng caacutei maacutey đoacute Tocirci muốn
nối noacute với maacutey tiacutenh của migravenh Tocirci muốn dugraveng noacute vừa lagravem maacutey fax vừa lagravem
scanner Tocirci coacute cần phải gởi fax thật nhanh đến mức độ cần một chức năng chọn
số tăng tốc Liệu tocirci coacute muốn sử dụng maacutey fax nagravey để phacircn biệt giữa một cuacute
điện thoại gọi tới vagrave một bản fax gởi tới
Tất cả chuacuteng ta đều trải qua những kinh nghiệm như vậy khi quyết định mua một
moacuten hagraveng nagraveo đoacute khocircng phải vigrave niềm vui bộc phaacutet Việc chuacuteng ta sẽ lagravem trong
những trường hợp như vậy lagrave một dạng phacircn tiacutech Use Case Chuacuteng ta tự hỏi
migravenh sẽ sử dụng sản phẩm (hay hệ thống) sắp bắt ta bỏ ra một khoản tiền đaacuteng
kể đoacute ra sao Trả lời xong cacircu hỏi trecircn ta mới coacute khả năng chọn ra sản phẩm
thoả matilden những đogravei hỏi của migravenh Điều quan trọng ở đacircy lagrave phải biết những đogravei
hỏi đoacute lagrave gigrave
Loại quy trigravenh nagravey đoacuteng vai trograve rất quan trọng đối với giai đoạn phacircn tiacutech của
một nhoacutem phaacutet triển hệ thống Người dugraveng muốn sử dụng hệ thống tương lai hệ
thống magrave bạn sắp thiết kế vagrave xacircy dựng như thế nagraveo
Use Case lagrave một cocircng cụ trợ giuacutep cho cocircng việc của nhagrave phacircn tiacutech cugraveng người sử
dụng quyết định tiacutenh năng của hệ thống Một tập hợp caacutec Use Case sẽ lagravem nổi
bật một hệ thống theo phương diện những người dugraveng định lagravem gigrave với hệ thống
nagravey
Để lagravem rotilde hơn ta hatildey xeacutet một viacute dụ nhagrave băng lẻ Hệ thống tương lai trong trường
hợp nagravey sẽ soacute nhiều người sử dụng mỗi người sẽ giao tiếp với hệ thống cho một
mục điacutech khaacutec biệt
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Quản trị gia sử dụng hệ thống cho mục điacutech thống kecirc
Nhacircn viecircn tiếp khaacutech sử dụng hệ thống để thực hiện caacutec dịch vụ
phục vụ khaacutech hagraveng
Nhacircn viecircn phograveng đầu tư sử dụng hệ thống để thực hiện caacutec giao
dịch liecircn quan đến đầu tư
Nhacircn viecircn thẩm tra chữ kyacute sử dụng hệ thống cho mục điacutech xaacutec
nhận chữ kyacute vagrave bảo trigrave thocircng tin liecircn quan đến khaacutech hagraveng
Khaacutech hagraveng giao tiếp với hệ thống (nhagrave băng) cho caacutec hoạt động
sử dụng dịch vụ như mở tagravei khoản gửi tiền vagraveo ruacutet tiền mặt hellip
Quaacute trigravenh tương taacutec giữa người sử dụng vagrave hệ thống trong mỗi một tigravenh huống kể
trecircn sẽ khaacutec nhau vagrave phụ thuộc vagraveo chức năng magrave người sử dụng muốn thực thi
cugraveng hệ thống
Nhoacutem phaacutet triển hệ thống cần phải xacircy dựng necircn một kịch bản necircu bật sự tương
taacutec cần thiết giữa người sử dụng vagrave hệ thống trong mỗi khả năng hoạt động Viacute
dụ như kịch bản cho sự tương taacutec giữa nhacircn viecircn thu ngacircn vagrave hệ thống của bộ
phận tiết kiệm trong suốt tiến trigravenh của một giao dịch Một kịch bản khaacutec viacute dụ lagrave
chuỗi tương taacutec xảy ra giữa bộ phận tiết kiệm vagrave bộ phận đầu tư trong một giao
dịch chuyển tiền
Nhigraven chung coacute thể coi một Use case như lagrave tập hợp của một loạt caacutec cảnh kịch
về việc sử dụng hệ thống Mỗi cảnh kịch mocirc tả một chuỗi caacutec sự kiện Mỗi một
chuỗi nagravey sẽ được kiacutech hoạt bởi một người nagraveo đoacute một hệ thống khaacutec hay lagrave một
phần trang thiết bị nagraveo đoacute hoặc lagrave một chuỗi thời gian Những thực thể kiacutech hoạt
necircn caacutec chuỗi sự kiện như thế được gọi lagrave caacutec Taacutec Nhacircn (Actor) Kết quả của
chuỗi nagravey phải coacute giaacute trị sử dụng đối với hoặc lagrave taacutec nhacircn đatilde gacircy necircn noacute hoặc lagrave
một taacutec nhacircn khaacutec
2- MỘT SỐ VIacute DỤ USE CASE
Trong viacute dụ nhagrave băng lẻ ở trecircn một số những Use Case dễ thấy nhất lagrave
Một khaacutech hagraveng mở một tagravei khoản mới
Phograveng đầu tư tiacutenh toaacuten tiền latildei cho caacutec tagravei khoản đầu tư
Một chương trigravenh đầu tư mới được đưa vagraveo aacutep dụng
Yecircu cầu chuyển tiền của khaacutech hagraveng được thực hiện
Chuyển tiền theo kỳ hạn từ một tagravei khoản đầu tư sang một tagravei
khoản tiết kiệm
3- SỰ CẦN THIẾT PHẢI COacute USE CASE
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Use Case lagrave một cocircng cụ xuất sắc để khuyến khiacutech những người dugraveng tiềm năng
noacutei về hệ thống từ hướng nhigraven của họ Đối với người dugraveng chẳng phải bao giờ
việc thể hiện vagrave mocirc tả những yacute định trong việc sử dụng hệ thống cũng lagrave chuyện
dễ dagraveng Một hiện thực coacute thật lagrave người sử dụng thường biết nhiều hơn những gigrave
magrave họ coacute thể diễn tả ra Cocircng cụ Use Case sẽ giuacutep cho nhoacutem phaacutet triển bẻ gatildey
lớp băng đoacute ngoagravei ra một sự trigravenh bagravey trực quan cũng cho pheacutep bạn kết hợp
caacutec biểu đồ Use Case với caacutec loại biểu đồ khaacutec
Saacuteng kiến chủ đạo lagrave locirci cuốn được người dugraveng tham gia vagraveo những giai đoạn đầu
tiecircn của quaacute trigravenh phacircn tiacutech vagrave thiết kế hệ thống Việc nagravey sẽ nacircng cao xaacutec suất
cho việc hệ thống chung cuộc trở thagravenh một cocircng cụ quen thuộc đối với caacutec
người dugraveng magrave noacute dự định sẽ trợ giuacutep ndash thay vigrave lagrave một tập hợp khoacute hiểu vagrave rối
rắm của caacutec khaacutei niệm maacutey tiacutenh magrave người dugraveng trong giới doanh thương coacute cảm
giaacutec khocircng bao giờ hiểu được vagrave khocircng thể lagravem việc cugraveng
Cocircng taacutec locirci keacuteo người sử dụng tham gia tiacutech cực vagraveo quaacute trigravenh phacircn tiacutech lagrave nền
tảng quan trọng cho việc tạo dựng một mocirc higravenh thagravenh cocircng một mocirc higravenh dễ
được người sử dụng hiểu vagrave chấp nhận sau khi đatilde thẩm xaacutec caacutec nhiệm vụ căn
bản Ngoagravei ra Use Case cograven giuacutep nhoacutem phaacutet triển quyết định caacutec lớp magrave hệ
thống phải triển khai
4- MOcirc HIgraveNH HOacuteA USE CASE
Trường hợp sử dụng lagrave một kỹ thuật mocirc higravenh hoacutea được sử dụng để mocirc tả một hệ
thống mới sẽ phải lagravem gigrave hoặc một hệ thống đang tồn tại lagravem gigrave Một mocirc higravenh
Use Case được xacircy dựng qua một quaacute trigravenh mang tiacutenh vograveng lặp (interative)
trong đoacute những cuộc hội thảo bagraven luận giữa nhoacutem phaacutet triển hệ thống vagrave khaacutech
hagraveng (hoặcvagrave người sử dụng cuối) sẽ dẫn tới một đặc tả yecircu cầu được tất cả mọi
người chấp nhận Người cha tinh thần của mocirc higravenh hoacutea Use Case lagrave Ivar
Jacobson ocircng đatilde tạo necircn kỹ thuật mocirc higravenh hoacutea dựa trecircn những kinh nghiệm thu
thập được trong quaacute trigravenh tạo hệ thống AXE của hatildeng Erisson Use Case đatilde nhận
được một sự quan tacircm đặc biệt lớn lao từ phiacutea cộng đồng hướng đối tượng vagrave đatilde
taacutec động lecircn rất nhiều phương phaacutep hướng đối tượng khaacutec nhau
Những thagravenh phần quan trọng nhất của một mocirc higravenh Use Case lagrave Use Case taacutec
nhacircn vagrave hệ thống Ranh giới của hệ thống được định nghĩa qua chức năng tổng
thể magrave hệ thống sẽ thực thi Chức năng tổng thể được thể hiện qua một loạt caacutec
Use Case vagrave mỗi một Use Case đặc tả một chức năng trọn vẹn coacute nghĩa lagrave Use
Case phải thực thi toagraven bộ chức năng đoacute từ sự kiện được kiacutech hoạt đầu tiecircn bởi
một taacutec nhacircn ngoại cảnh cho tới khi chức năng đogravei hỏi được thực hiện hoagraven tất
Một Use Case luocircn luocircn phải cung cấp một giaacute trị nagraveo đoacute cho một taacutec nhacircn giaacute
trị nagravey lagrave những gigrave magrave taacutec nhacircn mong muốn từ phiacutea hệ thống Taacutec nhacircn lagrave bất kỳ
một thực thể ngoại cảnh nagraveo mong muốn tương taacutec với hệ thống Thường thường
đoacute lagrave một người sử dụng của hệ thống nhưng nhiều khi cũng coacute thể lagrave một hệ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
thống khaacutec hoặc lagrave một dạng maacutey moacutec thiết bị phần cứng nagraveo đoacute cần tương taacutec
với hệ thống
Trong kỹ thuật mocirc higravenh hoacutea Use Case hệ thống sẽ coacute higravenh dạng của một hộp
đen vagrave cung cấp caacutec Use Case Hệ thống lagravem điều đoacute như thế nagraveo caacutec Use Case
được thực thi ra sao đoacute lagrave những khiacutea cạnh chưa được đề cập tới trong giai đoạn
nagravey Trong thực tế nếu mocirc higravenh hoacutea Use Case được thực hiện trong những giai
đoạn đầu của dự aacuten thigrave thường nhagrave phaacutet triển sẽ khocircng biết Use Case sau nagravey sẽ
được thực thi (tức lagrave biến thagravenh những dograveng code thật sự) như thế nagraveo
Mục tiecircu chiacutenh yếu đối với caacutec Use Case lagrave
Để quyết định vagrave mocirc tả caacutec yecircu cầu về mặt chức năng của hệ
thống đacircy lagrave kết quả ruacutet ra từ sự thỏa thuận giữa khaacutech hagraveng
(vagravehoặc người sử dụng cuối) vagrave nhoacutem phaacutet triển phần mềm
Để tạo necircn một lời mocirc tả rotilde ragraveng vagrave nhất quaacuten về việc hệ thống
cần phải lagravem gigrave lagravem sao để mocirc higravenh coacute thể được sử dụng nhất quaacuten
suốt toagraven bộ quaacute trigravenh phaacutet triển được sử dụng lagravem cocircng cụ giao
tiếp cho tất cả những người phaacutet triển necircn caacutec yecircu cầu nagravey vagrave để
tạo necircn một nền tảng cho việc tạo necircn caacutec mocirc higravenh thiết kế cung
cấp caacutec chức năng được yecircu cầu
Để tạo necircn một nền tảng cho caacutec bước thử nghiệm hệ thống đảm
bảo hệ thống thỏa matilden đuacuteng những yecircu cầu do người sử dụng đưa
ra Trong thực tế thường lagrave để trả lời cacircu hỏi Liệu hệ thống cuối
cugraveng coacute thực hiện những chức năng magrave khởi đầu khaacutech hagraveng đatilde đề
nghị
Để cung cấp khả năng theo dotildei caacutec yecircu cầu về mặt chức năng được
chuyển thagravenh caacutec lớp cụ thể cũng như caacutec thủ tục cụ thể trong hệ
thống
Để đơn giản hoacutea việc thay đổi vagrave mở rộng hệ thống qua việc thay
đổi vagrave mở rộng mocirc higravenh Use Case sau đoacute chỉ theo dotildei riecircng những
Use Case đatilde bị thay đổi cugraveng những hiệu ứng của chuacuteng trong thiết
kế hệ thống vagrave xacircy dựng hệ thống
Những cocircng việc cụ thể cần thiết để tạo necircn một mocirc higravenh Use Case bao gồm
1 Định nghĩa hệ thống (xaacutec định phạm vi hệ thống)
2 Tigravem ra caacutec taacutec nhacircn cũng như caacutec Use Case
3 Mocirc tả Use Case
4 Định nghĩa mối quan hệ giữa caacutec Use Case
5 Kiểm tra vagrave phecirc chuẩn mocirc higravenh
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Đacircy lagrave một cocircng việc mang tiacutenh tương taacutec rất cao bao gồm những cuộc thảo
luận với khaacutech hagraveng vagrave những người đại diện cho caacutec loại taacutec nhacircn Mocirc higravenh Use
Case bao gồm caacutec biểu đồ Use Case chỉ ra caacutec taacutec nhacircn Use Case vagrave mối quan
hệ của chuacuteng với nhau Caacutec biểu đồ nagravey cho ta một caacutei nhigraven tổng thể về mocirc higravenh
nhưng những lời mocirc tả thực sự của từng Use Case thường lại lagrave văn bản Vigrave caacutec
mocirc higravenh trực quan khocircng thể cung cấp tất cả caacutec thocircng tin cần thiết necircn cần
thiết phải dugraveng cả hai kỹ thuật trigravenh bagravey đoacute
Coacute rất nhiều người quan tacircm đến việc sử dụng caacutec mocirc higravenh Use Case Khaacutech
hagraveng (vagravehoặc người sử dụng cuối) quan tacircm đến chuacuteng vigrave mocirc higravenh Use Case đặc
tả chức năng của hệ thống vagrave mocirc tả xem hệ thống coacute thể vagrave sẽ được sử dụng ra
sao Caacutec Use Case vigrave vậy phải được mocirc tả trong những thuật ngữ vagrave ngocircn ngữ
của khaacutech hagravengngười sử dụng
Nhagrave phaacutet triển cần đến caacutec mocirc higravenh Use Case để hiểu hệ thống cần phải lagravem gigrave
vagrave qua đoacute coacute được một nền tảng cho những cocircng việc tương lai (caacutec mocirc higravenh
khaacutec caacutec cấu truacutec thiết kế vagrave việc thực thi xacircy dựng hệ thống bằng code)
Caacutec nhoacutem chuyecircn gia thử nghiệm tiacutech hợp vagrave thử nghiệm hệ thống cần đến Use
Case để thử nghiệm vagrave kiểm tra xem hệ thống coacute đảm bảo sẽ thực hiện đuacuteng
chức năng đatilde được đặc tả trong giai đoạn đầu
Vagrave cuối cugraveng bất kỳ người nagraveo liecircn quan đến những hoạt động liecircn kết đến chức
năng của hệ thống đều coacute thể quan tacircm đến caacutec mocirc higravenh Use Case viacute dụ như
caacutec nhoacutem tiếp thị baacuten hagraveng hỗ trợ khaacutech hagraveng vagrave caacutec nhoacutem soạn thảo tagravei liệu
Mocirc higravenh Use Case mocirc tả hướng nhigraven Use Case của hệ thống Hướng nhigraven nagravey lagrave
rất quan trọng bởi noacute ảnh hưởng đến tất cả caacutec hướng nhigraven khaacutec của hệ thống
Cả cấu truacutec logic lẫn cấu truacutec physic đều chịu ảnh hưởng từ caacutec Use Case bởi
chức năng được đặc tả trong mocirc higravenh nagravey chiacutenh lagrave những chức năng được thực
thi trong caacutec cấu truacutec kia Mục điacutech cuối cugraveng lagrave thiết kế ra một giải phaacutep thỏa
matilden caacutec yecircu cầu đoacute
Mocirc higravenh hoacutea caacutec Use Case chẳng phải chỉ được dugraveng để nắm bắt caacutec yecircu cầu của
hệ thống mới noacute cũng cograven được sử dụng để hỗ trợ cho việc phaacutet triển một phiecircn
bản mới của hệ thống Khi phaacutet triển một phiecircn bản mới của hệ thống đang tồn
tại người ta sẽ bổ sung thecircm caacutec chức năng mới vagraveo mocirc higravenh Use Case đatilde coacute
bằng caacutech thecircm vagraveo caacutec taacutec nhacircn mới cũng như caacutec Use Case mới hoặc lagrave thay
đổi đặc tả của caacutec Use Case đatilde coacute Khi bổ sung thecircm vagraveo mocirc higravenh Use Case đang
tồn tại hatildey chuacute yacute để khocircng bỏ ra bất kỳ một chức năng nagraveo vẫn cograven được cần tới
5- BIỂU ĐỒ USE CASE
Use Case được mocirc tả trong ngocircn ngữ UML qua biểu đồ Use Case (Use Case
Diagram) vagrave một mocirc higravenh Use Case coacute thể được chia thagravenh một số lượng lớn caacutec
CuuDuongThanCongcom httpsfbcomtailieudientucntt
biểu đồ như thế Một biểu đồ Use Case chứa caacutec phần tử mocirc higravenh biểu thị hệ
thống taacutec nhacircn cũng như Use Case vagrave chỉ ra caacutec mối quan hệ giữa caacutec Use Case
Lời mocirc tả nội dung Use Case thường được cung cấp dưới dạng văn bản Trong
UML lời mocirc tả đoacute được coi lagrave thuộc tiacutenh văn bản (document) của Use Case Lời
mocirc tả nagravey bao chứa những thocircng tin quan trọng định nghĩa caacutec yecircu cầu vagrave chức
năng cụ thể Thay cho việc mocirc tả Use Case bằng văn bản bạn cũng coacute thể vẽ
một biểu đồ hoạt động (activity diagram) Mặc dầu vậy necircn nhớ rằng một Use
Case cần phải được mocirc tả sao cho dễ hiểu vagrave dễ giao tiếp đối với người sử dụng
magrave những cấu truacutec phức tạp như một biểu đồ hoạt động coacute thể gacircy cảm giaacutec xa
lạ đối với những người khocircng quen sử dụng
Toacutem tắt Một biểu đồ Use Case thể hiện
Hệ thống
Taacutec nhacircn vagrave
Use Case
Viacute dụ biểu đồ Use Case trong UML
Higravenh 41- Một viacute dụ biểu đồ Use case trong UML
Trong đoacute
Hệ thống được thể hiện qua higravenh chữ nhật với tecircn hệ thống ở becircn
trecircn
Taacutec nhacircn được thể hiện qua kiacute hiệu higravenh nhacircn
Use Case được thể hiện qua higravenh ellipse
51- Hệ thống
Vigrave hệ thống lagrave một thagravenh phần của mocirc higravenh Use Case necircn ranh giới của hệ thống
magrave ta muốn phaacutet triển cần phải được định nghĩa rotilde ragraveng Xin nhớ rằng một hệ
thống khocircng phải bao giờ cũng nhất thiết lagrave một hệ thống phần mềm noacute coacute thể
lagrave một chiếc maacutey hoặc lagrave một doanh nghiệp Định nghĩa caacutec ranh giới vagrave traacutech
nhiệm của hệ thống khocircng phải bao giờ cũng lagrave việc dễ dagraveng bởi khocircng phải bao
giờ người ta cũng rotilde ragraveng nhigraven ra taacutec vụ nagraveo coacute khả năng được tự động hoacutea tốt
nhất ở hệ thống nagravey vagrave taacutec vụ nagraveo thigrave tốt nhất necircn thực hiện thủ cocircng hoặc dagravenh
CuuDuongThanCongcom httpsfbcomtailieudientucntt
cho caacutec hệ thống khaacutec Một khiacutea cạnh khaacutec cần chuacute yacute lagrave hệ thống cần phải lớn tới
mức độ nagraveo trong phiecircn bản đầu tiecircn của noacute Cố gắng tối đa cho phiecircn bản đầu
tiecircn của hệ thống thường lagrave caacutech magrave người ta hay thực hiện thế nhưng những
mục tiecircu quaacute tầm như vậy coacute thể khiến cho hệ thống trở necircn quaacute lớn vagrave thời gian
để cung cấp hệ thống quaacute lacircu Một saacuteng kiến tốt hơn lagrave xaacutec nhận cho rotilde caacutec chức
năng căn bản vagrave tập trung vagraveo việc định nghĩa một kiến truacutec hệ thống thiacutech hợp
rotilde ragraveng coacute nền tảng rộng mở để nhiều chức năng hơn coacute thể được bổ sung vagraveo
hệ thống nagravey trong caacutec phiecircn bản sau
Yếu tố quan trọng lagrave bạn phải tạo dựng được một bản catalog của caacutec khaacutei niệm
(caacutec thực thể) trung tacircm cugraveng với caacutec thuật ngữ vagrave định nghĩa thiacutech hợp trong
những giai đoạn đầu của thời kỳ phacircn tiacutech Đacircy chưa phải mocirc higravenh phạm vi đối
tượng magrave đuacuteng hơn lagrave một cố gắng để mocirc tả caacutec thuật ngữ của hệ thống hoặc
doanh nghiệp magrave chuacuteng ta cần mocirc higravenh hoacutea Caacutec thuật ngữ sau đoacute sẽ được dugraveng
để mocirc tả Use Case Phương thức cụ thể của catalog nagravey coacute thể rất khaacutec nhau noacute
coacute thể lagrave một mocirc higravenh khaacutei niệm chỉ ra caacutec mối quan hệ đơn giản hoặc chỉ lagrave một
văn bản chứa caacutec thuật ngữ cugraveng lời mocirc tả vắn tắt những thuật ngữ nagravey trong
thế giới thực
52- Taacutec nhacircn
Một taacutec nhacircn lagrave một người hoặc một vật nagraveo đoacute tương taacutec với hệ thống sử dụng
hệ thống Trong khaacutei niệm tương taacutec với hệ thống yacute chuacuteng ta muốn noacutei rằng
taacutec nhacircn sẽ gửi thocircng điệp đến hệ thống hoặc lagrave nhận thocircng điệp xuất phaacutet từ hệ
thống hoặc lagrave thay đổi caacutec thocircng tin cugraveng với hệ thống Noacutei một caacutech ngắn gọn
taacutec nhacircn thực hiện caacutec Use Case Thecircm một điều nữa một taacutec nhacircn coacute thể lagrave
người magrave cũng coacute thể lagrave một hệ thống khaacutec (viacute dụ như lagrave một chiếc maacutey tiacutenh
khaacutec được nối kết với hệ thống của chuacuteng ta hoặc một loại trang thiết bị phần
cứng nagraveo đoacute tương taacutec với hệ thống)
Một taacutec nhacircn lagrave một dạng thực thể (một lớp) chứ khocircng phải một thực thể Taacutec
nhacircn mocirc tả vagrave đại diện cho một vai trograve chứ khocircng phải lagrave một người sử dụng
thật sự vagrave cụ thể của hệ thống Nếu một anh chagraveng John nagraveo đoacute muốn mua hợp
đồng bảo hiểm từ một hatildeng bảo hiểm thigrave vai trograve của anh ta sẽ lagrave người mua hợp
đồng bảo hiểm vagrave đacircy mới lagrave thứ magrave chuacuteng ta muốn mocirc higravenh hoacutea chứ khocircng
phải bản thacircn anh chagraveng John Trong sự thực một con người cụ thể coacute thể đoacuteng
vai trograve lagravem nhiều taacutec nhacircn trong một hệ thống một nhacircn viecircn ngacircn hagraveng đồng
thời cũng coacute thể lagrave khaacutech hagraveng của chiacutenh ngacircn hagraveng đoacute Mặt khaacutec số lượng caacutec
vai trograve magrave một con người cụ thể được pheacutep đảm traacutech trong một hệ thống cũng
coacute thể bị hạn chế viacute dụ cugraveng một người khocircng được pheacutep vừa soạn hoacutea đơn vừa
phecirc duyệt hoacutea đơn đoacute Một taacutec nhacircn sẽ coacute một tecircn vagrave caacutei tecircn nagravey cần phải phản
aacutenh lại vai trograve của taacutec nhacircn Caacutei tecircn đoacute khocircng được phản aacutenh lại một thực thể
riecircng biệt của một taacutec nhacircn magrave cũng khocircng phản aacutenh chức năng của taacutec nhacircn
đoacute
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Một taacutec nhacircn giao tiếp với hệ thống bằng caacutech gửi hoặc lagrave nhận thocircng điệp
giống như khaacutei niệm chuacuteng ta đatilde quen biết trong lập trigravenh hướng đối tượng Một
Use Case bao giờ cũng được kiacutech hoạt bởi một taacutec nhacircn gửi thocircng điệp đến cho
noacute Khi một Use Case được thực hiện Use Case coacute thể gửi thocircng điệp đến một
hay lagrave nhiều taacutec nhacircn Những thocircng điệp nagravey cũng coacute thể đến với caacutec taacutec nhacircn
khaacutec becircn cạnh chiacutenh taacutec nhacircn đatilde kiacutech hoạt vagrave gacircy ra Use Case
Taacutec nhacircn cũng coacute thể được xếp loại Một taacutec nhacircn chiacutenh (Primary Actor) lagrave taacutec
nhacircn sử dụng những chức năng căn bản của hệ thống tức lagrave caacutec chức năng
chiacutenh Viacute dụ trong một hệ thống bảo hiểm một taacutec nhacircn căn bản coacute thể lagrave taacutec
nhacircn xử lyacute việc ghi danh vagrave quản lyacute caacutec hợp đồng bảo hiểm Một taacutec nhacircn phụ
(secondary actor) lagrave taacutec nhacircn sử dụng caacutec chức nặng phụ của hệ thống viacute dụ
như caacutec chức năng bảo trigrave hệ thống như quản trị ngacircn hagraveng dữ liệu giao tiếp
back-up vagrave caacutec taacutec vụ quản trị khaacutec Một viacute dụ cho taacutec nhacircn phụ coacute thể lagrave nhagrave
quản trị hoặc lagrave một nhacircn viecircn sử dụng chức năng trong hệ thống để ruacutet ra caacutec
thocircng tin thống kecirc về doanh nghiệp Cả hai loại taacutec nhacircn nagravey đều được mocirc higravenh
hoacutea để đảm bảo mocirc tả đầy đủ caacutec chức năng của hệ thống mặc dugrave caacutec chức
năng chiacutenh mới thật sự nằm trong mối quan tacircm chủ yếu của khaacutech hagraveng
Taacutec nhacircn cograven coacute thể được định nghĩa theo dạng taacutec nhacircn chủ động (active actor)
hay taacutec nhacircn thụ động (passive actor) Một taacutec nhacircn chủ động lagrave taacutec nhacircn gacircy ra
Use Case trong khi taacutec nhacircn thụ động khocircng bao giờ gacircy ra Use Case magrave chỉ
tham gia vagraveo một hoặc lagrave nhiều Use Case
53- Tigravem taacutec nhacircn
Khi nhận diện taacutec nhacircn coacute nghĩa lagrave chuacuteng ta lọc ra caacutec thực thể đaacuteng quan tacircm
theo khiacutea cạnh sử dụng vagrave tương taacutec với hệ thống Sau đoacute chuacuteng ta coacute thể thử
đặt migravenh vagraveo vị triacute của taacutec nhacircn để cố gắng nhận ra caacutec yecircu cầu vagrave đogravei hỏi của
taacutec nhacircn đối với hệ thống vagrave xaacutec định taacutec nhacircn cần những Use Case nagraveo Coacute thể
nhận diện ra caacutec taacutec nhacircn qua việc trả lời một số caacutec cacircu hỏi như sau
Ai sẽ sử dụng những chức năng chiacutenh của hệ thống (taacutec nhacircn
chiacutenh)
Ai sẽ cần sự hỗ trợ của hệ thống để thực hiện những taacutec vụ hagraveng
ngagravey của họ
Ai sẽ cần bảo trigrave quản trị vagrave đảm bảo cho hệ thống hoạt động (taacutec
nhacircn phụ)
Hệ thống sẽ phải xử lyacute vagrave lagravem việc với những trang thiết bị phần
cứng nagraveo
Hệ thống cần phải tương taacutec với caacutec hệ thống khaacutec nagraveo Nhoacutem caacutec
hệ thống nagravey được chia ra lagravem hai nhoacutem nhoacutem kiacutech hoạt cho mối
quan hệ với hệ thống vagrave nhoacutem magrave hệ thống cần phải xacircy dựng của
CuuDuongThanCongcom httpsfbcomtailieudientucntt
chuacuteng ta sẽ thiết lập quan hệ Khaacutei niệm hệ thống bao gồm cả caacutec
hệ thống maacutey tiacutenh khaacutec cũng như caacutec ứng dụng khaacutec trong chiacutenh
chiếc maacutey tiacutenh magrave hệ thống nagravey sẽ hoạt động
Ai hay caacutei gigrave quan tacircm đến kết quả (giaacute trị) magrave hệ thống sẽ sản
sinh ra
Khi đi tigravem những người sử dụng hệ thống đừng quan saacutet những người đang ngồi
ở trước magraven higravenh maacutey tiacutenh Necircn nhớ rằng người sử dụng coacute thể lagrave bất kỳ người
nagraveo hay bất kỳ vật nagraveo tương taacutec hoặc trực tiếp hoặc giaacuten tiếp với hệ thống vagrave
sử dụng caacutec dịch vụ của hệ thống nagravey để đạt đến một kết quả nagraveo đoacute Đừng
quecircn rằng mocirc higravenh hoacutea Use Case được thực hiện để mocirc higravenh hoacutea một doanh
nghiệp vigrave thế taacutec nhacircn thường thường lagrave khaacutech hagraveng của doanh nghiệp đoacute Từ
đoacute suy ra họ khocircng phải lagrave người sử dụng theo nghĩa đơn giản vagrave trực tiếp lagrave
người ngồi trước magraven higravenh maacutey tiacutenh vagrave thao taacutec với maacutey tiacutenh
Để coacute thể nhận dạng được tốt nhiều taacutec nhacircn khaacutec nhau hatildey tiến hagravenh nghiecircn
cứu những người sử dụng của hệ thống hiện thời (một hệ thống thủ cocircng hoặc
một hệ thống đang tồn tại) hỏi xem họ đoacuteng những vai trograve nagraveo khi thực thi cocircng
việc hagraveng ngagravey của họ với hệ thống Cũng người sử dụng đoacute coacute thể thực thi nhiều
vai trograve khaacutec nhau tại nhiều thời điểm khaacutec nhau tugravey thuộc vagraveo việc chức năng
nagraveo trong hệ thống đang được sử dụng
Xin nhắc lại một taacutec nhacircn lagrave một vai trograve (một lớp) chứ khocircng phải một thực thể
riecircng lẻ Mặc dugrave vậy khi cung cấp viacute dụ lagrave một vagravei caacutec thực thể của một taacutec nhacircn
bạn coacute thể đảm bảo rằng taacutec nhacircn đoacute thật sự tồn tại Một taacutec nhacircn phải coacute một
sự liecircn kết (Association) nagraveo đoacute với một hoặc lagrave nhiều Use Case Mặc dugrave coacute
những taacutec nhacircn coacute thể khocircng kiacutech hoạt necircn một Use Case nagraveo nhưng taacutec nhacircn
đoacute sẽ giao tiếp iacutet nhất với một Use Case tại một thời điểm nagraveo đoacute Cần phải đặt
tecircn cho taacutec nhacircn lagravem sao để tecircn phản aacutenh đuacuteng vai trograve của taacutec nhacircn đoacute trong hệ
thống
54- Biểu diễn taacutec nhacircn trong ngocircn ngữ UML
Taacutec nhacircn trong UML lagrave một lớp với biệt ngữ Actor (Taacutec nhacircn) vagrave tecircn của lớp
nagravey lagrave tecircn của taacutec nhacircn (phản aacutenh vai trograve của taacutec nhacircn) Một lớp taacutec nhacircn coacute thể
vừa coacute thuộc tiacutenh (attribute) lẫn hagravenh vi (method) cũng như một thuộc tiacutenh tagravei
liệu (document) mocirc tả taacutec nhacircn đoacute Một lớp taacutec nhacircn coacute một biểu tượng chuẩn
hoacutea biểu tượng higravenh nhacircn
Higravenh 42- biểu tượng taacutec nhacircn trong UML
CuuDuongThanCongcom httpsfbcomtailieudientucntt
55- Use Case
Một Use Case lagrave đại diện cho một chức năng nguyecircn vẹn magrave một taacutec nhacircn nhận
được Một Use Case trong ngocircn ngữ UML được định nghĩa lagrave một tập hợp của caacutec
chuỗi hagravenh động magrave một hệ thống thực hiện để tạo ra một kết quả coacute thể quan
saacutet được tức lagrave một giaacute trị đến với một taacutec nhacircn cụ thể Những hagravenh động nagravey
coacute thể bao gồm việc giao tiếp với một loạt caacutec taacutec nhacircn cũng như thực hiện tiacutenh
toaacuten vagrave cocircng việc nội bộ becircn trong hệ thống
Caacutec tiacutenh chất tiecircu biểu của một Use Case lagrave
Một Use Case bao giờ cũng được gacircy ra bởi một taacutec nhacircn được
thực hiện nhacircn danh một taacutec nhacircn nagraveo đoacute Taacutec nhacircn phải ra lệnh
cho hệ thống để thực hiện Use Case đoacute dugrave lagrave trực tiếp hay giaacuten tiếp
Hiếm khi coacute taacutec nhacircn khocircng liecircn quan đến việc gacircy ra một Use Case
nagraveo đoacute
Một Use Case phải cung cấp một giaacute trị cho một taacutec nhacircn Giaacute trị
đoacute khocircng phải bao giờ cũng cần thiết phải nổi trội ra ngoagravei nhưng
luocircn phải được thấy rotilde
Một Use Case lagrave phải hoagraven tất Một trong những lỗi thường gặp lagrave
sẻ chia một Use Case thagravenh caacutec Use Case nhỏ hơn vagrave caacutec Use Case
nagravey thực thi lẫn nhau giống như việc gọi hagravem cho một ngocircn ngữ lập
trigravenh Một Use Case sẽ khocircng được coi lagrave hoagraven tất chừng nagraveo magrave giaacute
trị cuối cugraveng của noacute chưa được sản sinh ra thậm chiacute ngay cả khi đatilde
xẩy ra nhiều động taacutec giao tiếp (viacute dụ như đối thoại với người sử
dụng)
Use Case được nối với taacutec nhacircn qua liecircn kết (association) Đường liecircn kết chỉ ra
những taacutec nhacircn nagraveo giao tiếp với Use Case nagraveo Mối liecircn kết bigravenh thường ra lagrave
một mối quan hệ 1-1 vagrave khocircng coacute hướng Điều đoacute muốn noacutei lecircn rằng một thực
thể của lớp taacutec nhacircn sẽ giao tiếp với một thực thể của một Use Case vagrave cả hai coacute
thể giao tiếp với nhau trong cả hai chiều Một Use Case sẽ được đặt tecircn theo một
thực thể magrave Use Case sẽ thực hiện viacute dụ như kyacute hợp đồng bảo hiểm cập nhật
danh saacutech vvhellip vagrave thường lagrave một cụm từ hơn lagrave chỉ một từ riecircng lẻ
Một Use Case lagrave một lớp chứ khocircng phải một thực thể Noacute mocirc tả trọn vẹn một
chức năng kể cả caacutec giải phaacutep bổ sung vagrave thay thế coacute thể coacute caacutec lỗi coacute thể xảy
ra cũng như những ngoại lệ coacute thể xảy ra trong quaacute trigravenh thực thi Một kết quả
của sự thực thể hoacutea một Use Case được gọi lagrave một cảnh kịch (scenario) vagrave noacute đại
diện cho một sự sử dụng cụ thể của hệ thống (một đường dẫn thực thi riecircng biệt
qua hệ thống) Viacute dụ một cảnh kịch của Use Case Kyacute hợp đồng bảo hiểm coacute thể
lagrave John liecircn hệ với hệ thống qua điện thoại rồi sau đoacute kyacute hợp đồng bảo hiểm ocirc tocirc
cho chiếc xe Toyota Carolla magrave anh ta vừa mua
CuuDuongThanCongcom httpsfbcomtailieudientucntt
56- Tigravem Use Case
Quaacute trigravenh tigravem caacutec Use Case bắt đầu với caacutec taacutec nhacircn đatilde được xaacutec định ở phần
trước Đối với mỗi taacutec nhacircn hatildey hỏi caacutec cacircu hỏi sau
a Taacutec nhacircn nagravey cần những chức năng nagraveo từ hệ thống Hagravenh động chiacutenh
của taacutec nhacircn lagrave gigrave
Viacute dụ cho một giao dịch ruacutet tiền becircn maacutey ATM trong một nhagrave băng
lẻ caacutec hagravenh động chiacutenh của khaacutech hagraveng (taacutec nhacircn) coacute thể lagrave
Đuacutet thẻ vagraveo maacutey ATM
Nhập password
Nhập loại chuyển dịch
Nhập số tiền mặt muốn ruacutet ra
Yecircu cầu về loại tiền
Nhặt tiền ra từ maacutey
Ruacutet thẻ vagrave tờ in kết quả giao dịch
b Taacutec nhacircn coacute cần phải đọc phải tạo phải hủy bỏ phải sửa chữa hay lagrave
lưu trữ một loại thocircng tin nagraveo đoacute trong hệ thống
Viacute dụ
Nhacircn viecircn nhagrave băng liệu coacute quyền truy xuất hay thay đổi
mức tiền latildei
Khaacutech hagraveng coacute thể thay đổi password của migravenh
c Taacutec nhacircn coacute cần phải baacuteo cho hệ thống biết về những sự kiện nagraveo đoacute
Những sự kiện như thế sẽ đại diện cho những chức năng nagraveo
Viacute dụ
Khaacutech hagraveng kết thuacutec tagravei khoản nhacircn viecircn cung cấp những
thocircng tin nagravey cho hệ thống
Coacute một chương trigravenh đầu tư mới caacutec chi tiết của chương
trigravenh nagravey sẽ phải được nhacircn viecircn nhagrave băng nhập vagraveo hệ thống
d Hệ thống coacute cần phải thocircng baacuteo cho Actor về những thay đổi bất ngờ
trong nội bộ hệ thống
Trong tagravei khoản cograven quaacute iacutet tiền
Ba kỳ liecircn tiếp tiền lương chưa đổ về tagravei khoản
CuuDuongThanCongcom httpsfbcomtailieudientucntt
e Cocircng việc hagraveng ngagravey của taacutec nhacircn coacute thể được đơn giản hoacutea hoặc hữu
hiệu hoacutea qua caacutec chức năng mới trong hệ thống (thường đacircy lagrave những
chức năng tiecircu biểu chưa được tự động hoacutea trong hệ thống)
f Caacutec cacircu hỏi khaacutec
Use Case coacute thể được gacircy ra bởi caacutec sự kiện nagraveo khaacutec
Viacute dụ
Sự kiện thời gian Cuối thaacuteng hết hạn đầu tư
Sự kiện bigravenh thường của hệ thống Tự động chuyển tiền theo
caacutec lệnh xaacutec định trước
Caacutec sự kiện bất bigravenh thường Hợp đồng đầu tư kết thuacutec trước
thời hạn
Hệ thống cần những thocircng tin đầu vagraveođầu ra nagraveo Những thocircng
tin đầu vagraveođầu ra đoacute từ đacircu tới vagrave sẽ đi đacircu
Khoacute khăn vagrave thiếu hụt chiacutenh trong hệ thống hiện thời nằm ở đacircu
(thủ cocircng tự động hoacutea)
Đối với nhoacutem cacircu hỏi cuối khocircng coacute nghĩa lagrave Use Case ở đacircy khocircng coacute taacutec nhacircn
magrave taacutec nhacircn sẽ được nhận ra chỉ khi chuacuteng ta nhận diện ra caacutec Use Case nagravey vagrave
sau đoacute xaacutec định taacutec nhacircn dựa trecircn cơ sở lagrave Use Case Xin nhắc lại một Use Case
bao giờ cũng phải được liecircn kết với iacutet nhất một taacutec nhacircn
57- Viacute dụ tigravem Use Case
Nhagrave băng ABC đưa ra caacutec yecircu cầu sau
Một khaacutech hagraveng coacute thể muốn gửi tiền vagraveo ruacutet tiền ra hoặc đơn giản
kiểm tra lại số tiền trong tagravei khoản của anh ta qua maacutey tự động ruacutet
tiền (ATM) Khi đưa tiền vagraveo hoặc ruacutet tiền ra cần phải ghi ra giấy
kết quả những chuyển dịch đatilde thực hiện vagrave trao tờ giấy nagravey cho
khaacutech hagraveng
Quan saacutet caacutec chức năng căn bản vagrave caacutec thagravenh phần tham gia ta thấy coacute hai taacutec
nhacircn dễ nhận ra nhất lagrave khaacutech hagraveng vagrave nhacircn viecircn thu ngacircn
Qua đoacute coacute thể nhacircn dạng caacutec Use Case sau
Gửi tiền vagraveo
Ruacutet tiền ra
Kiểm tra mức tiền trong tagravei khoản
Thực hiện caacutec chuyển dịch nội bộ hệ thống
In kết quả caacutec chuyển dịch đatilde thực hiện
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 43 ndash Caacutec Use case trong hệ thống ATM
Use Case gửi tiền vagraveo vagrave ruacutet tiền ra phụ thuộc vagraveo Use Case thực hiện caacutec
chuyển dịch trong nội bộ hệ thống việc thực hiện nagravey về phần noacute lại phụ thuộc
vagraveo chức năng in ra caacutec cocircng việc đatilde được thực hiện Kiểm tra mức tiền trong tagravei
khoản lagrave một Use Case độc lập khocircng phụ thuộc vagraveo caacutec Use Case khaacutec
6- CAacuteC BIẾN THỂ (VARIATIONS) TRONG MỘT USE CASE
Mỗi Use Case sẽ coacute một dograveng hagravenh động chiacutenh (Basic Course) Đoacute lagrave tiến trigravenh
bigravenh thường hay tiến trigravenh mong đợi đối với Use Case nagravey
Ngoagravei ra coacute thể cograven coacute một hay nhiều dograveng hagravenh động thay thế (Alternative)
khaacutec Chuacuteng coacute thể được chia lagravem hai nhoacutem chiacutenh
Thay thế bigravenh thường (Normal Alternative)
Điều kiện gacircy lỗi (Error Condidtions)
Những gigrave mang tiacutenh bigravenh thường hơn trong Use Case được gọi lagrave Thay thế bigravenh
thường
Coacute thể miecircu tả caacutec dograveng hagravenh động thay thế bằng từ ngữ (xem phần tagravei liệu Use
Case )
Viacute dụ một khaacutech hagraveng coacute thể chọn caacutec loại giao dịch sau của ATM
Gửi tiền vagraveo
Ruacutet tiền ra
Kiểm tra mức tiền trong tagravei khoản
Đacircy lagrave những viacute dụ cho caacutec dograveng hagravenh động thay thế bigravenh thường
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Điều kiện gacircy lỗi đại diện cho những bước tiến hagravenh bất bigravenh thường trong một
Use Case Cần phải tiacutenh trước đến những điều kiện gacircy lỗi đoacute viacute dụ
Mức tiền trong tagravei khoản khocircng đủ để tiến hagravenh giao dịch
Password khocircng đuacuteng
ATM bị nghẽn thẻ
Higravenh sau necircu bật dograveng hagravenh động chiacutenh vagrave những dograveng hagravenh động thay thế cũng
như sự khaacutec biệt của chuacuteng đối với tiến trigravenh mong đợi của Use Case
Higravenh 44 ndash Caacutec tiến trigravenh trong hệ thống ATM
7- QUAN HỆ GIỮA CAacuteC USE CASE
Coacute ba loại quan hệ Use Case Quan hệ mở rộng quan hệ sử dụng vagrave quan hệ tạo
nhoacutem Quan hệ mở rộng vagrave quan hệ sử dụng lagrave hai dạng khaacutec nhau của tiacutenh thừa
kế Quan hệ tạo nhoacutem lagrave một phương caacutech để đặt nhiều Use Case chung với
nhau vagraveo trong một goacutei
71- Quan hệ mở rộng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Nhiều khi trong quaacute trigravenh phaacutet triển Use Case người ta thấy một số Use Case đatilde
tồn tại cung cấp một phần những chức năng cần thiết cho một Use Case mới
Trong một trường hợp như vậy coacute thể định nghĩa một Use Case mới lagrave Use Case
cũ cộng thecircm một phần mới Một Use Case như vậy được gọi lagrave một Use Case mở
rộng (Extended Use Case ) Trong quan hệ mở rộng Use Case gốc (Base Use
Case ) được dugraveng để mở rộng phải lagrave một Use Case hoagraven thiện Use Case mở
rộng khocircng nhất thiết phải sử dụng toagraven bộ hagravenh vi của Use Case gốc
Biểu đồ sau chỉ ra Use Case ―Kyacute hợp đồng mua ocirc tocirc lagrave Use Case mở rộng của
Kyacute hợp đồng bảo hiểm
Higravenh 45 - Quan hệ mở rộng giữa caacutec Use Case
Quan hệ mở rộng giữa caacutec Use Case được biểu thị bằng đoạn thẳng với higravenh tam
giaacutec rỗng trỏ về phiacutea Use Case được dugraveng để mở rộng đi kegravem với stereotype
ltltextendsgtgt
72- Quan hệ sử dụng
Khi một nhoacutem caacutec Use Case cugraveng chung một hagravenh vi nagraveo đoacute thigrave hagravenh vi nagravey coacute
thể được taacutech riecircng ra thagravenh một Use Case riecircng biệt vagrave noacute coacute thể được sử dụng
bởi caacutec Use Case kia một mối quan hệ như vậy được gọi lagrave quan hệ sử dụng
Trong quan hệ sử dụng phải sử dụng toagraven bộ Use Case khaacutei quaacutet hoacutea noacutei một
caacutech khaacutec ta coacute một Use Case nagravey sử dụng toagraven bộ một Use Case khaacutec Caacutec
hagravenh động trong Use Case khaacutei quaacutet hoacutea khocircng cần phải được sử dụng trong
cugraveng một tiến trigravenh Chuacuteng coacute thể được trộn lẫn với caacutec hagravenh động xảy ra trong
Use Case chuyecircn biệt hoacutea
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 46 - Quan hệ sử dụng giữa caacutec Use Case
Quan hệ sử dụng giữa caacutec Use Case được biểu thị bằng đoạn thẳng với higravenh tam
giaacutec rỗng trỏ về phiacutea Use Case được sử dụng đi kegravem với stereotype ltltusesgtgt
73- Quan hệ chung nhoacutem
Khi một số caacutec Use Case cugraveng xử lyacute caacutec chức năng tương tự hoặc coacute thể liecircn
quan đến nhau theo một phương thức nagraveo đoacute người ta thường nhoacutem chuacuteng lại
với nhau
Nhoacutem caacutec Use Case được thực hiện bằng khaacutei niệm Goacutei (Package) của UML Goacutei
khocircng cung cấp giaacute trị gia tăng cho thiết kế
Viacute dụ tất cả caacutec Use Case coacute liecircn quan đến sự tương taacutec giữa khaacutech hagraveng vagrave
nhacircn viecircn thu ngacircn sẽ được nhoacutem thagravenh Package Khaacutech hagraveng- Nv thu ngacircn
Higravenh 47 ndash Package của UML
Toacutem tắt về Use Case với maacutey ATM trong ngacircn hagraveng lẻ
Cho tới nay chuacuteng ta đatilde xaacutec định được một vagravei Use Case phacircn tiacutech dograveng hagravenh
động chiacutenh cũng như caacutec dograveng hagravenh động thay thế cũng như ruacutet ra caacutec mối
quan hệ giữa chuacuteng Biểu đồ sau tổng hợp những thocircng tin đatilde thu thập được về
nhoacutem caacutec Use Case căn bản của một hệ thống ATM
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 48 - Biểu đồ một số Use Case trong hệ thống ATM
8- MIEcircU TẢ USE CASE
Như đatilde trigravenh bagravey lời miecircu tả một Use Case thường được thực hiện trong văn bản
Đacircy lagrave lời đặc tả đơn giản vagrave nhất quaacuten về việc caacutec taacutec nhacircn vagrave caacutec Use Case (hệ
thống) tương taacutec với nhau ra sao Noacute tập trung vagraveo ứng xử đối ngoại của hệ
thống vagrave khocircng đề cập tới việc thực hiện nội bộ becircn trong hệ thống Ngocircn ngữ vagrave
caacutec thuật ngữ được sử dụng trong lời miecircu tả chiacutenh lagrave ngocircn ngữ vagrave caacutec thuật ngữ
được sử dụng bởi khaacutech hagravengngười dugraveng
Văn bản miecircu tả cần phải bao gồm những điểm sau
Mục điacutech của Use Case Mục điacutech chung cuộc của Use Case lagrave gigrave
Caacutei gigrave cần phải được đạt tới Use Case noacutei chung đều mang tiacutenh
hướng mục điacutech vagrave mục điacutech của mỗi Use Case cần phải rotilde ragraveng
Use Case được khởi chạy như thế nagraveo Taacutec nhacircn nagraveo gacircy ra sự thực
hiện Use Case nagravey Trong hoagraven cảnh nagraveo
Chuỗi caacutec thocircng điệp giữa taacutec nhacircn vagrave Use Case Use Case vagrave caacutec
taacutec nhacircn trao đổi thocircng điệp hay sự kiện nagraveo để thocircng baacuteo lẫn cho
nhau cập nhật hoặc nhận thocircng tin vagrave giuacutep đỡ nhau quyết định
Yếu tố nagraveo sẽ miecircu tả dograveng chảy chiacutenh của caacutec thocircng điệp giữa hệ
thống vagrave taacutec nhacircn vagrave những thực thể nagraveo trong hệ thống được sử
dụng hoặc lagrave bị thay đổi
Dograveng chảy thay thế trong một Use Case Một Use Case coacute thể coacute
những dograveng thực thi thay thế tugravey thuộc vagraveo điều kiện Hatildey nhắc đến
caacutec yếu tố nagravey nhưng chuacute yacute đừng miecircu tả chuacuteng quaacute chi tiết đến
CuuDuongThanCongcom httpsfbcomtailieudientucntt
mức độ chuacuteng coacute thể ―che khuất― dograveng chảy chiacutenh của caacutec hoạt
động trong trường hợp căn bản Những động taacutec xử lyacute lỗi đặc biệt sẽ
được miecircu tả thagravenh caacutec Use Case khaacutec
Use Case sẽ kết thuacutec với một giaacute trị đối với taacutec nhacircn như thế nagraveo
Hatildey miecircu tả khi nagraveo Use Case được coi lagrave đatilde kết thuacutec vagrave loại giaacute trị
magrave noacute cung cấp đến taacutec nhacircn
Hatildey nhớ rằng lời miecircu tả nagravey sẽ xaacutec định những gigrave được thực thi coacute liecircn quan đến
taacutec nhacircn becircn ngoagravei chứ khocircng phải những sự việc được thực hiện becircn trong hệ
thống Văn bản phải rotilde ragraveng nhất quaacuten khiến cho khaacutech hagraveng coacute thể dễ dagraveng
hiểu vagrave thẩm tra chuacuteng (để rồi đồng yacute rằng noacute đại diện cho những gigrave magrave anhcocirc
ta muốn từ phiacutea hệ thống) Traacutenh dugraveng những cacircu văn phức tạp khoacute diễn giải vagrave
dễ hiểu lầm
Một Use Case cũng coacute thể được miecircu tả qua một biểu đồ hoạt động Biểu đồ hoạt
động nagravey chỉ ra chuỗi caacutec hagravenh động thứ tự của chuacuteng caacutec quyết định chọn lựa
để xaacutec định xem hagravenh động nagraveo sau đoacute sẽ được thực hiện
Để bổ sung cho lời miecircu tả một Use Case người ta thường đưa ra một loạt caacutec
cảnh kịch cụ thể để minh họa điều gigrave sẽ xảy ra một khi Use Case nagravey được thực
thể hoacutea Lời miecircu tả cảnh kịch minh họa một trường hợp đặc biệt khi cả taacutec
nhacircn lẫn Use Case đều được coi lagrave một thực thể cụ thể Khaacutech hagraveng coacute thể dễ
dagraveng hiểu hơn toagraven bộ một Use Case phức tạp nếu coacute những cảnh kịch được
miecircu tả thực tiễn hơn minh họa lại lối ứng xử vagrave phương thức hoạt động của hệ
thống Nhưng xin nhớ rằng một lời miecircu tả cảnh kịch chỉ lagrave một sự bổ sung chứ
khocircng phải lagrave ứng cử viecircn để thay thế cho lời miecircu tả Use Case
Sau khi caacutec Use Case đatilde được miecircu tả một hoạt động vagrave một cocircng việc đặc biệt
cần phải thực hiện lagrave thẩm tra xem caacutec mối quan hệ (đatilde đề cập tới trong phần
27) coacute được nhận diện khocircng Trước khi tất cả caacutec Use Case được miecircu tả nhagrave
phaacutet triển chưa thể coacute được những kiến thức hoagraven tất vagrave tổng thể để xaacutec định
caacutec mối quan hệ thiacutech hợp thử nghiệm lagravem theo phương thức đoacute coacute thể sẽ dẫn
đến một tigravenh huống nguy hiểm Trong thời gian thực hiện cocircng việc nagravey hatildey trả
lời caacutec cacircu hỏi sau
Tất cả caacutec taacutec nhacircn liecircn quan đến một Use Case coacute mối liecircn kết
giao tiếp với Use Case đoacute khocircng
Coacute tồn tại những sự tương tự giữa một loạt caacutec taacutec nhacircn minh họa
một vai trograve chung vagrave nhoacutem nagravey liệu coacute thể được miecircu tả lagrave một lớp
taacutec nhacircn căn bản (base class)
Coacute tồn tại những sự tương tự giữa một loạt caacutec Use Case minh họa
một dograveng chảy hagravenh động chung Nếu coacute liệu điều nagravey coacute thể được
miecircu tả lagrave một mối quan hệ sử dụng đến với một Use Case khaacutec
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Coacute tồn tại những trường hợp đặc biệt của một Use Case coacute thể
được miecircu tả lagrave một mối quan hệ mở rộng
Coacute tồn tại một taacutec nhacircn nagraveo hay một Use Case nagraveo khocircng coacute mối
liecircn kết giao tiếp Nếu coacute chắc chắn ở đacircy đatilde coacute chuyện lầm lạc sai
traacutei Tại sao lại xuất hiện taacutec nhacircn nagravey
Coacute lời yecircu cầu nagraveo về chức năng đatilde được xaacutec định nhưng lại khocircng
được bất kỳ một Use Case nagraveo xử lyacute Nếu thế hatildey tạo một Use
Case cho yecircu cầu đoacute
Văn bản miecircu tả một Use Case đơn giản
Viacute dụ Use Case Cung Cấp Thocircng Tin Về Một Tagravei Khoản Tại Nhagrave Băng ABC Sau
khi phacircn tiacutech hệ thống ta nhận thấy cần coacute một Use Case để in lecircn magraven higravenh của
nhacircn viecircn nhagrave băng tất cả những chi tiết về một tagravei khoản của một khaacutech hagraveng
Đặc tả Use Case
Chi tiết tagravei khoản tecircn Use Case
Số Use Case UCSEC35
Miecircu tả ngắn miecircu tả ngắn gọn Use Case
Use Case chi tiết tagravei khoản cho pheacutep nhacircn viecircn nhagrave băng xem caacutec chi tiết của
một tagravei khoản magrave anh ta định tigravem hiểu
Dograveng chảy caacutec sự kiện dograveng logic chung
Nhacircn viecircn chọn Chi Tiết Tagravei Khoản trecircn menu Một con đường khaacutec để chỉ ra caacutec
thocircng tin chi tiết của tagravei khoản lagrave gọi từ Magraven Higravenh Toacutem Tắt Thocircng Tin Về Tagravei
Khoản (xem Use Case số UCSEC99)
Dograveng hagravenh động chiacutenh dograveng logic chi tiết
Mỗi khaacutech hagraveng sẽ coacute một số định danh gọi lagrave CustomerId Một khaacutech hagraveng coacute
thể coacute nhiều tagravei khoản Sau khi nhacircn viecircn nhập CustomerId vagraveo hệ thống magraven
higravenh phải in ra tất cả những tagravei khoản thuộc về khaacutech hagraveng nagravey vagrave thuộc về nhagrave
băng ABC rải raacutec tại tất cả caacutec chi nhaacutenh Khi chọn tiếp loại tagravei khoản vagrave số tagravei
khoản caacutec chi tiết của tagravei khoản mong muốn sẽ được in ra
Loại tagravei khoản tiết kiệm Nếu loại tagravei khoản được chọn lagrave tagravei khoản tiết kiệm thigrave
theo Use Case số UCSEC45 caacutec chi tiết sau đacircy sẽ được in ra
Mức tiền hiện coacute
Caacutec tờ sec chưa thanh toaacuten
Lượng tiền tiacuten dụng được pheacutep
Lượng tiền latildei cho tới ngagravey hocircm nay
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Lượng tiền tối thiểu cần phải coacute trong tagravei khoản
Loại tagravei khoản đầu tư Nếu loại tagravei khoản được chọn lagrave loại đầu tư thigrave theo Use
Case số UCSEC46 caacutec chi tiết sau đacircy sẽ được in ra
Hạn đầu tư
Số tiền đầu tư
Ngagravey đầu tư
Lượng tiền cuối hạn
Ngagravey cuối hạn
Tỷ lệ lời
Dograveng hagravenh động thay thế chuỗi logic thay thế
Khocircng tigravem thấy chi tiết Khi chọn một số tagravei khoản khocircng thiacutech hợp (khocircng coacute tagravei
khoản tương ứng) dugrave vigrave lyacute do chức năng hay kỹ thuật theo Use Case số
UCSEC12 hệ thống sẽ đưa ra một magraven higravenh baacuteo lỗi
Điều kiện thoaacutet Use Case kết thuacutec như thế nagraveo
Nuacutet Thoaacutet Khi chọn nuacutet thoaacutet người sử dụng sẽ quay trở lại magraven higravenh chiacutenh
Nuacutet Xem Thecircm Khi chọn nuacutet nagravey người sử dụng sẽ được yecircu cầu chọn loại tagravei
khoản từ một danh saacutech đổ xuống
Nuacutet Xem Giao Dịch Khi chọn nuacutet nagravey người sử dụng sẽ được chuyển sang magraven
higravenh Giao dịch vagrave theo Use Case số UCSEC91 magraven higravenh sẽ chỉ ra những giao
dịch đatilde xảy ra đối với tagravei khoản becircn cạnh những chi tiết chiacutenh của tagravei khoản
Nuacutet Yecircu Cầu In Kết Quả Khi chọn phần thực đơn nagravey kết quả giao dịch theo Use
Case số UCSEC70 sẽ được in ra ở một maacutey in địa phương nối trực tiếp với maacutey
tiacutenh của nhacircn viecircn
Caacutec yecircu cầu đặc biệt caacutec yecircu cầu đặc biệt
Theo Use Case số UCSEC110 hệ thống coacute khả năng in lecircn magraven higravenh bằng những
ngocircn ngữ khaacutec Chức năng nagravey sẽ được kiacutech hoạt khi người sử dụng chọn mục
Ngoại Ngữ trecircn menu
Điều kiện trƣớc đoacute điều xảy ra trước khi Use Case được thực hiện
Bảo an Người sử dụng (nhacircn viecircn tiếp khaacutech) được cung cấp một số định danh
riecircng biệt để truy nhập vagraveo hệ thống
Dịch chuyển Người sử dụng chỉ đến được magraven higravenh Chi Tiết Tagravei Khoản sau khi đatilde
truy nhập thagravenh cocircng vagrave Identify thagravenh cocircng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Điều kiện sau đoacute điều gigrave xảy ra sau khi Use Case
được thực hiện
Hệ thống sẽ khocircng lưu trữ lại bất kỳ một thocircng tin nagraveo liecircn quan tới khaacutech hagraveng
lecircn đĩa cứng cục bộ
9- THỬ USE CASE
Một trong caacutec mục điacutech chiacutenh của Use Case lagrave thử nghiệm (testing) Coacute hai loại
thử nghiệm khaacutec nhau được thực hiện ở đacircy kiểm tra (verification) vagrave phecirc
duyệt xaacutec nhận (validation) Kiểm tra đảm bảo lagrave hệ thống đatilde được phaacutet triển
đuacuteng đắn vagrave phugrave hợp với caacutec đặc tả đatilde được tạo ra Phecirc duyệt xaacutec nhận đảm bảo
rằng hệ thống sẽ được phaacutet triển chiacutenh lagrave thứ magrave khaacutech hagraveng hoặc người sử
dụng cuối thật sự cần đến
Cocircng việc phecirc duyệt xaacutec nhận được thực hiện kề trước giai đoạn phaacutet triển
Ngay khi một mocirc higravenh Use Case được hoagraven tất (hay thậm chiacute coacute thể đang trong
giai đoạn phaacutet triển) mocirc higravenh nagravey phải được trigravenh bagravey vagrave thảo luận với khaacutech
hagraveng cũng như người sử dụng Họ cần phải xaacutec nhận rằng mocirc higravenh nagravey lagrave đuacuteng
đắn hoagraven tất vagrave thỏa matilden sự mong đợi của họ đối với hệ thống đặc biệt lagrave
phương caacutech magrave hệ thống cung cấp chức năng cho họ Để lagravem điều đoacute nhagrave phaacutet
triển phải đảm bảo rằng khaacutech hagraveng thật sự hiểu được mocirc higravenh vagrave yacute nghĩa của
chuacuteng để traacutenh trường hợp tạo ra những thứ khocircng thể chấp nhận nổi Trong
giai đoạn nagravey rotilde ragraveng lagrave caacutec cacircu hỏi vagrave caacutec yacute tưởng sẽ xuất hiện vagrave chuacuteng cần
phải được bổ sung thecircm vagraveo mocirc higravenh Use Case trước khi đến giai đoạn phecirc duyệt
chung cuộc Giai đoạn xaacutec nhận cũng coacute thể được thực hiện trong thời kỳ thử
nghiệm hệ thống nhưng điểm yếu của phương thức lagravem nagravey lagrave nếu hệ thống
khocircng thỏa matilden những yecircu cầu cụ thể của người sử dụng thigrave toagraven bộ dự aacuten rất
coacute thể sẽ phải lagravem lại từ đầu
Kiểm tra hệ thống lagrave để đảm bảo noacute hoạt động đuacuteng như đặc tả Điều nagravey
khocircng thể được thực hiện trước khi đatilde coacute những thagravenh phần của hệ thống được
tạo ra Chỉ sau đoacute người ta mới coacute thể thử xem hệ thống coacute hoạt động đuacuteng như
đặc tả magrave người sử dụng đatilde đưa ra rằng caacutec Use Case thực hiện đuacuteng theo như
những lời đatilde miecircu tả trong mocirc higravenh rằng chuacuteng hoạt động theo đuacuteng phương
thức đatilde được miecircu tả trong văn bản miecircu tả Use Case
Đi bộ dọc Use Case
Một trong những kỹ thuật hữu dụng được dugraveng trong cả giai đoạn định nghĩa lẫn
thử nghiệm Use Case gọi lagrave Đi Bộ Dọc Use Case Theo kỹ thuật nagravey nhiều
người khaacutec nhau trong nhoacutem lagravem mocirc higravenh sẽ đoacuteng vai caacutec taacutec nhacircn cũng như hệ
thống trong một Use Case cụ thể Người đảm nhận vai taacutec nhacircn sẽ bắt đầu bằng
việc noacutei ra taacutec nhacircn lagravem gigrave với hệ thống Kết quả của cocircng việc nagravey lagrave hệ thống
sẽ khởi chạy một Use Case cụ thể được bắt đầu từ hagravenh động trecircn Người đoacuteng
vai hệ thống sau đoacute sẽ noacutei anh ta lagravem gigrave khi Use Case được thực hiện Nhagrave phaacutet
CuuDuongThanCongcom httpsfbcomtailieudientucntt
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
hoagraven tất
10- THỰC HIỆN CAacuteC USE CASE
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 higravenh ellipse coacute chứa tecircn của sự cộng taacutec đoacute
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
đồ hoạt động Cần phải sử dụng loại biểu đồ nagraveo để tạo ra một bức tranh bao
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 đồ
khaacutec nhau
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
CuuDuongThanCongcom httpsfbcomtailieudientucntt
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
74- Một số lời maacutech bảo cho việc tạo dựng biểu đồ trạng thaacutei
8- Biểu đồ hoạt động (Activity Diagram)
9- Vograveng đời đối tƣợng (Object lifecycle)
91- Vograveng đời sinh ra vagrave chết đi
92- Vograveng đời lặp
10- Xem xeacutet lại mocirc higravenh động
101- Thẩm vấn biểu đồ trạng thaacutei
102- Phối hợp sự kiện
103- Bao giờ thigrave sử dụng biểu đồ nagraveo
104- Lớp con vagrave biểu đồ trạng thaacutei
11- Phối hợp mocirc higravenh đối tƣợng vagrave mocirc higravenh động
12- Toacutem tắt về mocirc higravenh động
Phần cacircu hỏi
CuuDuongThanCongcom httpsfbcomtailieudientucntt
1- DẪN NHẬP
11- Tiacutenh trực quan
Chuacuteng ta coacute thể thấy rằng Một số tập hợp dữ liệu phức tạp nhất định khi
được trigravenh bagravey bằng đồ thị sẽ truyền tải đến người đọc nhiều thocircng tin hơn
so với caacutec dữ liệu thocirc Với phần mềm cũng vậy khi ngagravenh Cocircng nghiệp
của chuacuteng ta ngagravey cagraveng phaacutet triển caacutec hệ thống sẽ trở necircn phức tạp hơn
Khả năng nắm bắt vagrave kiểm soaacutet sự phức tạp đoacute của chuacuteng ta đi kegravem với
khả năng trigravenh bagravey hệ thống một caacutech toagraven diện - một sự trigravenh bagravey vượt ra
ngoagravei giới hạn của những dograveng lệnh thocirc Sự thagravenh cocircng trecircn thị trường của
những ngocircn ngữ như Visual Basic vagrave phần giao diện trực quan của C++
Java đatilde cho thấy sự trigravenh bagravey trực quan mang tiacutenh cốt yếu đối với quaacute
trigravenh phaacutet triển caacutec hệ thống phức tạp
12- Mocirc higravenh trừu tượng
Trước đacircy coacute một thời gian dagravei ngagravenh cocircng nghiệp chuacuteng ta đatilde phải noacutei
tới một Cuộc khủng hoảng phần mềm Caacutec cuộc tranh luận đều dựa trecircn
thực tế lagrave chẳng những nhiều đồ aacuten phần mềm khocircng thể sản sinh ra
những hệ thống thoả matilden đogravei hỏi vagrave nhu cầu của khaacutech hagraveng magrave cograven
vượt quaacute ngacircn saacutech vagrave thời hạn Caacutec cocircng nghệ mới như lập trigravenh hướng
đối tượng lập trigravenh trực quan cũng như caacutec mocirci trường phaacutet triển tiecircn tiến
coacute giuacutep chuacuteng ta nacircng cao năng suất lao động nhưng trong nhiều trường
hợp chuacuteng chỉ hướng tới tầng thấp nhất của việc phaacutet triển phần mềm
phần viết lệnh (coding) Một trong những vấn đề chiacutenh của ngagravenh phaacutet
triển phần mềm thời nay lagrave coacute nhiều đồ aacuten bắt tay vagraveo lập trigravenh quaacute sớm
vagrave tập trung quaacute nhiều vagraveo việc viết code Lyacute do một phần lagrave do ban quản
trị thiếu hiểu biết về quy trigravenh phaacutet triển phần mềm vagrave họ nảy lo acircu khi
thấy đội quacircn lập trigravenh của họ khocircng viết code Vagrave bản thacircn caacutec lập trigravenh
viecircn cũng cảm thấy an tacircm hơn khi họ ngồi viết code - vốn lagrave taacutec vụ magrave
họ quen thuộc ndash hơn lagrave khi xacircy dựng caacutec mocirc higravenh trừu tượng cho hệ
thống magrave họ phải tạo necircn
13- Mocirc higravenh hoacutea trực quan
Mocirc higravenh hoaacute trực quan lagrave một phương thức tư duy về vấn đề sử dụng caacutec
mocirc higravenh được tổ chức xoay quanh caacutec khaacutei niệm đời thực Mocirc higravenh giuacutep
chuacuteng ta hiểu vấn đề giao tiếp với mọi người coacute liecircn quan đến dự aacuten
(khaacutech hagraveng chuyecircn gia lĩnh vực thuộc đề aacuten nhagrave phacircn tiacutech nhagrave thiết
kế hellip) Mocirc higravenh rất hữu dụng trong việc mocirc higravenh hoaacute doanh nghiệp soạn
thảo tagravei liệu thiết kế chương trigravenh cũng như ngacircn hagraveng dữ liệu Mocirc higravenh
CuuDuongThanCongcom httpsfbcomtailieudientucntt
giuacutep hiểu caacutec đogravei hỏi của hệ thống tốt hơn tạo caacutec thiết kế rotilde ragraveng hơn vagrave
xacircy dựng necircn caacutec hệ thống dễ bảo trigrave hơn
Mocirc higravenh lagrave kết quả của sự trừu tượng hoacutea nhằm miecircu tả caacutec thagravenh phần
cốt yếu của một vấn đề hay một cấu truacutec phức tạp qua việc lọc bớt caacutec chi
tiết khocircng quan trọng vagrave lagravem cho vấn đề trở thagravenh dễ hiểu hơn Trừu
tượng hoacutea lagrave một năng lực căn bản của con người cho pheacutep chuacuteng ta giải
quyết caacutec vấn đề phức tạp Caacutec kỹ sư nghệ sĩ vagrave thợ thủ cocircng đatilde xacircy
dựng mocirc higravenh từ hagraveng ngagraven năm nay để thử nghiệm thiết kế trước khi
thực hiện Phaacutet triển phần mềm cũng khocircng lagrave ngoại lệ Để xacircy dựng caacutec
hệ thống phức tạp nhagrave phaacutet triển phải trừu tượng hoacutea nhiều hướng nhigraven
khaacutec nhau của hệ thống sử dụng kyacute hiệu chiacutenh xaacutec để xacircy dựng mocirc higravenh
kiểm tra xem mocirc higravenh coacute thỏa matilden caacutec đogravei hỏi của hệ thống vagrave dần dần
bổ sung thecircm chi tiết để chuyển caacutec mocirc higravenh thagravenh thực hiện
Chuacuteng ta xacircy dựng mocirc higravenh cho caacutec hệ thống phức tạp bởi chuacuteng ta khocircng
thể hiểu thấu đaacuteo những hệ thống như thế trong trạng thaacutei toagraven vẹn của
chuacuteng Khả năng thấu hiểu vagrave nắm bắt tiacutenh phức tạp của con người lagrave coacute
hạn Điều nagravey ta coacute thể thấy rotilde trong viacute dụ của ngagravenh xacircy dựng Nếu bạn
muốn tạo một tuacutep lều ở goacutec vườn bạn coacute thể bắt tay vagraveo xacircy ngay Nếu
bạn xacircy một ngocirci nhagrave coacute lẽ bạn sẽ cần tới bản vẽ nhưng nếu bạn muốn
xacircy một toagrave nhagrave chọc trời thigrave chắc chắn bạn khocircng thể khocircng cần bản vẽ
Thế giới phần mềm của chuacuteng ta cũng thế Chỉ tập trung vagraveo caacutec dograveng
code hay thậm chiacute cả phacircn tiacutech Forms trong Visual Basic chẳng cung cấp
một caacutei nhigraven toagraven cục về việc phaacutet triển đồ aacuten Xacircy dựng mocirc higravenh cho
pheacutep nhagrave thiết kế tập trung vagraveo bức tranh lớn về sự tương taacutec giữa caacutec
thagravenh phần trong đồ aacuten traacutenh bị sa lầy vagraveo những chi tiết riecircng biệt của
từng thagravenh phần
Một mocirci trường kinh doanh mang tiacutenh cạnh tranh gay gắt vagrave luocircn luocircn
thay đổi dẫn đến tiacutenh phức tạp ngagravey cagraveng tăng cao vagrave tiacutenh phức tạp nagravey
đặt ra những thaacutech thức đặc trưng cho caacutec nhagrave phaacutet triển hệ thống Mocirc
higravenh giuacutep chuacuteng ta tổ chức trigravenh bagravey trực quan thấu hiểu vagrave tạo necircn caacutec
hệ thống phức tạp Chuacuteng giuacutep chuacuteng ta đaacutep ứng caacutec thaacutech thức của việc
phaacutet triển phần mềm hocircm nay cũng như ngagravey mai
2- MOcirc TẢ CHU TRIgraveNH PHAacuteT TRIỂN PHẦN MỀM
21- Software Development ndash một bagravei toaacuten phức tạp
Kinh nghiệm của nhiều nhagrave thiết kế vagrave phaacutet triển cho thấy phaacutet triển phần
mềm lagrave một bagravei toaacuten phức tạp Xin necircu một số caacutec lyacute do thường được kể
đến
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Những người phaacutet triển phần mềm rất khoacute hiểu cho đuacuteng những gigrave
người dugraveng cần
Yecircu cầu của người dugraveng thường thay đổi trong thời gian phaacutet triển
Yecircu cầu thường được miecircu tả bằng văn bản dagravei dograveng khoacute hiểu
nhiều khi thậm chiacute macircu thuẫn
Đội quacircn phaacutet triển phần mềm vốn lagrave người ngoagravei cuộc rất khoacute
nhận thức thấu đaacuteo caacutec mối quan hệ tiềm ẩn vagrave phức tạp cần được
thể hiện chiacutenh xaacutec trong caacutec ứng dụng lớn
Khả năng nắm bắt caacutec dữ liệu phức tạp của con người (tại cugraveng
một thời điểm) lagrave coacute hạn
Khoacute định lượng chiacutenh xaacutec hiệu suất của thagravenh phẩm vagrave thỏa matilden
chiacutenh xaacutec sự mong chờ từ phiacutea người dugraveng
Chọn lựa phần cứng vagrave phần mềm thiacutech hợp cho giải phaacutep lagrave một
trong những thaacutech thức lớn đối với Designer
Phần mềm ngoagravei ra cần coacute khả năng thiacutech ứng vagrave mở rộng Phần mềm
được thiết kế tốt lagrave phần mềm đứng vững trước những biến đổi trong mocirci
trường dugrave từ phiacutea cộng đồng người dugraveng hay từ phiacutea cocircng nghệ Viacute dụ
phần mềm đatilde được phaacutet triển cho một nhagrave băng cần coacute khả năng taacutei sử
dụng cho một nhagrave băng khaacutec với rất iacutet sửa đổi hoặc hoagraven toagraven khocircng cần
sửa đổi Phần mềm thoả matilden caacutec yecircu cầu đoacute được coi lagrave phần mềm coacute khả
năng thiacutech ứng
Một phần mềm coacute khả năng mở rộng lagrave phần mềm được thiết kế sao cho
dễ phaacutet triển theo yecircu cầu của người dugraveng magrave khocircng cần sửa chữa nhiều
Chiacutenh vigrave vậy một số caacutec khiếm khuyết thường gặp trong phaacutet triển phần
mềm lagrave
Hiểu khocircng đuacuteng những gigrave người dugraveng cần
Khocircng thể thiacutech ứng cho phugrave hợp với những thay đổi về yecircu cầu
đối với hệ thống
Caacutec Module khocircng khớp với nhau
Phần mềm khoacute bảo trigrave vagrave nacircng cấp mở rộng
Phaacutet hiện trễ caacutec lỗ hổng của dự aacuten
Chất lượng phần mềm keacutem
Hiệu năng của phần mềm thấp
Caacutec thagravenh viecircn trong nhoacutem khocircng biết được ai đatilde thay đổi caacutei gigrave
khi nagraveo ở đacircu tại sao phải thay đổi
CuuDuongThanCongcom httpsfbcomtailieudientucntt
22- Chu Trigravenh Phaacutet Triển Phần Mềm (Software Development Life Cycle)
Vigrave phaacutet triển phần mềm lagrave một bagravei toaacuten khoacute necircn coacute lẽ trước hết ta cần
điểm qua một số caacutec cocircng việc căn bản của quaacute trigravenh nagravey Thường người
ta hay tập hợp chuacuteng theo tiến trigravenh thời gian một caacutech tương đối xoay
quanh chu trigravenh của một phần mềm dẫn tới kết qủa khaacutei niệm Chu Trigravenh
Phaacutet Triển Phần Mềm (Software Development Life Cycle - SDLC) như sau
Chu Trigravenh Phaacutet Triển Phần Mềm lagrave một chuỗi caacutec hoạt động của nhagrave phacircn
tiacutech (Analyst) nhagrave thiết kế (Designer) người phaacutet triển (Developer) vagrave
người dugraveng (User) để phaacutet triển vagrave thực hiện một hệ thống thocircng tin
Những hoạt động nagravey được thực hiện trong nhiều giai đọan khaacutec nhau
Nhagrave phacircn tiacutech (Analyst) lagrave người nghiecircn cứu yecircu cầu của
khaacutech hagravengngười dugraveng để định nghĩa một phạm vi bagravei toaacuten nhận
dạng nhu cầu của một tổ chức xaacutec định xem nhacircn lực phương
phaacutep vagrave cocircng nghệ maacutey tiacutenh coacute thể lagravem sao để cải thiện một caacutech
tốt nhất cocircng taacutec của tổ chức nagravey
Nhagrave thiết kế (Designer) thiết kế hệ thống theo hướng cấu truacutec
của database screens forms vagrave reports ndash quyết định caacutec yecircu cầu
về phần cứng vagrave phần mềm cho hệ thống cần được phaacutet triển
Chuyecircn gia lĩnh vực (Domain Experts) lagrave những người hiểu
thực chất vấn đề cugraveng tất cả những sự phức tạp của hệ thống cần
tin học hoaacute Họ khocircng nhất thiết phải lagrave nhagrave lập trigravenh nhưng họ coacute
thể giuacutep nhagrave lập trigravenh hiểu yecircu cầu đặt ra đối với hệ thống cần phaacutet
triển Quaacute trigravenh phaacutet triển phần mềm sẽ coacute rất nhiều thuận lợi nếu
đội ngũ lagravem phần mềm coacute được sự trợ giuacutep của họ
Lập trigravenh viecircn (Programmer) lagrave những người dựa trecircn caacutec
phacircn tiacutech vagrave thiết kế để viết chương trigravenh (coding) cho hệ thống
bằng ngocircn ngữ lập trigravenh đatilde được thống nhất
Ngƣời dugraveng (User) lagrave đối tượng phục vụ của hệ thống cần được
phaacutet triển
Để cho rotilde hơn xin lấy viacute dụ về một vấn đề đơn giản sau
Người bigravenh thường chuacuteng ta khi nhigraven một chiếc xe ocirc tocirc thường sẽ coacute một
bức tranh từ becircn ngoagravei như sau
Vấn đề
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 11 Nhigraven vấn đề ocirc tocirc của người bigravenh thường
Chuyecircn gia lĩnh vực sẽ giuacutep nhagrave phacircn tiacutech trigravenh bagravey lại vấn đề như sau
Higravenh 12 Nhigraven vấn đề ocirc tocirc của chuyecircn gia phacircn tiacutech
Chiacutenh vigrave sự trợ giuacutep của chuyecircn gia lĩnh vực coacute thể đoacuteng vai trograve rất quan
trọng necircn trong những giai đoạn đầu của quaacute trigravenh phaacutet triển phần mềm
kết quả phacircn tiacutech necircn được thể hiện sao cho dễ hiểu đối với caacutec chuyecircn
gia lĩnh vực Đacircy cũng lagrave mocirct trong rất nhiều lyacute do khiến cho phương phaacutep
hướng đối tượng được nhiều người hưởng ứng
23- Caacutec giai đoạn của Chu Trigravenh Phaacutet Triển Phần Mềm
Chu trigravenh của một phần mềm coacute thể được chia thagravenh caacutec giai đoạn như
sau
Nghiecircn cứu sơ bộ (Preliminary Investigation hay cograven gọi lagrave
Feasibility Study)
Phacircn tiacutech yecircu cầu (Analysis)
Thiết kế hệ thống (Design of the System)
Xacircy dựng phần mềm (Software Construction)
Thử nghiệm hệ thống (System Testing)
Thực hiện triển khai (System Implementation)
Bảo trigrave nacircng cấp (System Maintenance)
a - Nghiecircn cứu sơ bộ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Cacircu hỏi quan trọng nhất khi phaacutet triển một hệ thống hoagraven toagraven
khocircng phải cacircu hỏi mang tiacutenh phương phaacutep luận Magrave cũng chẳng
phải cacircu hỏi về kỹ thuật Noacute lagrave một cacircu hỏi dường như coacute vẻ đơn
giản nhưng thật ra đặc biệt khoacute trả lời ―Đacircy coacute đuacuteng lagrave một hệ
thống để thực hiện khocircng Đaacuteng buồn lagrave chiacutenh cacircu hỏi nagravey trong
thực tế thường chẳng hề được đặt ra vagrave lại cagraveng khocircng được trả lời
Mặc dugrave việc lầm lẫn về phương phaacutep hay quyết định sai lầm về kỹ
thuật cũng coacute thể dẫn tới thất bại nhưng thường thigrave dự aacuten coacute thể
được cứu vatilden nếu coacute đầy đủ tagravei nguyecircn cugraveng sự cố gắng quecircn migravenh
của caacutec nhacircn viecircn tagravei giỏi Nhưng sẽ chẳng một ai vagrave một điều gigrave
cứu vatilden cho một hệ thống phần mềm hoagraven toagraven chẳng được cần tới
hoặc cố gắng tự động hoacutea một quy trigravenh lầm lạc
Trước khi bắt tay vagraveo một dự aacuten bạn phải coacute một yacute tưởng cho noacute Yacute
tưởng nagravey đi song song với việc nắm bắt caacutec yecircu cầu vagrave xuất hiện
trong giai đoạn khởi đầu Noacute hoagraven tất một phaacutet biểu Hệ thống magrave
chuacuteng ta mong muốn sẽ lagravem được những việc như sau Trong
suốt giai đoạn nagravey chuacuteng ta tạo necircn một bức tranh về yacute tưởng đoacute
rất nhiều giả thuyết sẽ được cocircng nhận hay loại bỏ Caacutec hoạt động
trong thời gian nagravey thường bao gồm thu thập caacutec yacute tưởng nhận biết
rủi ro nhận biết caacutec giao diện becircn ngoagravei nhận biết caacutec caacutec chức
năng chiacutenh magrave hệ thống cần cung cấp vagrave coacute thể tạo một vagravei
nguyecircn mẫu dugraveng để ―minh chứng caacutec khaacutei niệm của hệ thống Yacute
tưởng coacute thể đến từ nhiều nguồn khaacutec nhau khaacutech hagraveng chuyecircn
gia lĩnh vực caacutec nhagrave phaacutet triển khaacutec chuyecircn gia về kỹ nghệ caacutec
bản nghiecircn cứu tiacutenh khả thi cũng như việc xem xeacutet caacutec hệ thống
khaacutec đang tồn tại Một khiacutea cạnh cần nhắc tới lagrave code viết trong thời
kỳ nagravey thường sẽ bị bỏ đi bởi chuacuteng được viết nhằm mục điacutech
thẩm tra hay trợ giuacutep caacutec giả thuyết khaacutec nhau chứ chưa phải thứ
code được viết theo kết quả phacircn tiacutech vagrave thiết kế thấu đaacuteo
Trong giai đọan nghiecircn cứu sơ bộ nhoacutem phaacutet triển hệ thống cần
xem xeacutet caacutec yecircu cầu của doanh nghiệp (cần dugraveng hệ thống) những
nguồn tagravei nguyecircn coacute thể sử dụng cocircng nghệ cũng như cộng đồng
người dugraveng cugraveng caacutec yacute tưởng của họ đối với hệ thống mới Coacute thể
thực hiện thảo luận nghiecircn cứu xem xeacutet khiacutea cạnh thương mại
phacircn tiacutech khả năng lời-lỗ phacircn tiacutech caacutec trường hợp sử dụng vagrave tạo
caacutec nguyecircn mẫu để xacircy dựng necircn một khaacutei niệm cho hệ thống điacutech
cugraveng với caacutec mục điacutech quyền ưu tiecircn vagrave phạm vi của noacute
Thường trong giai đoạn nagravey người ta cũng tiến hagravenh tạo một phiecircn
bản thocirc của lịch trigravenh vagrave kế hoạch sử dụng tagravei nguyecircn
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Một giai đoạn nghiecircn cứu sơ bộ thiacutech đaacuteng sẽ lập necircn tập hợp caacutec
yecircu cầu (dugrave ở mức độ khaacutei quaacutet cao) đối với một hệ thống khả thi
vagrave được mong muốn kể cả về phương diện kỹ thuật lẫn xatilde hội Một
giai đoạn nghiecircn cứu sơ bộ khocircng được thực hiện thoả đaacuteng sẽ dẫn
tới caacutec hệ thống khocircng được mong muốn đắt tiền bất khả thi vagrave
được định nghĩa lầm lạc ndash những hệ thống thừơng chẳng được hoagraven
tất hay sử dụng
Kết quả của giai đoạn nghiecircn cứu sơ bộ lagrave Baacuteo Caacuteo Kết Quả Nghiecircn
Cứu Tiacutenh Khả Thi Khi hệ thống tương lai được chấp nhận dựa trecircn
bản baacuteo caacuteo nagravey cũng lagrave luacutec giai đoạn Phacircn tiacutech bắt đầu
b- Phacircn tiacutech yecircu cầu
Sau khi đatilde xem xeacutet về tiacutenh khả thi của hệ thống cũng như tạo lập
một bức tranh sơ bộ của dự aacuten chuacuteng ta bước sang giai đoạn
thường được coi lagrave quan trọng nhất trong caacutec cocircng việc lập trigravenh
hiểu hệ thống cần xacircy dựng Người thực hiện cocircng việc nagravey lagrave nhagrave
phacircn tiacutech
Quaacute trigravenh phacircn tiacutech nhigraven chung lagrave hệ quả của việc trả lời cacircu hỏi Hệ
thống cần phải lagravem gigrave Quaacute trigravenh phacircn tiacutech bao gồm việc nghiecircn
cứu chi tiết hệ thống doanh nghiệp hiện thời tigravem cho ra nguyecircn lyacute
hoạt động của noacute vagrave những vị triacute coacute thể được nacircng cao cải thiện
Becircn cạnh đoacute lagrave việc nghiecircn cứu xem xeacutet caacutec chức năng magrave hệ thống
cần cung cấp vagrave caacutec mối quan hệ của chuacuteng becircn trong cũng như
với phiacutea ngoagravei hệ thống Trong toagraven bộ giai đoạn nagravey nhagrave phacircn tiacutech
vagrave người dugraveng cần cộng taacutec mật thiết với nhau để xaacutec định caacutec yecircu
cầu đối với hệ thống tức lagrave caacutec tiacutenh năng mới cần phải được đưa
vagraveo hệ thống
Những mục tiecircu cụ thể của giai đoạn phacircn tiacutech lagrave
Xaacutec định hệ thống cần phải lagravem gigrave
Nghiecircn cứu thấu đaacuteo tất cả caacutec chức năng cần cung cấp vagrave những
yếu tố liecircn quan
Xacircy dựng một mocirc higravenh necircu bật bản chất vấn đề từ một hướng
nhigraven coacute thực (trong đời sống thực)
Trao định nghĩa vấn đề cho chuyecircn gia lĩnh vực để nhận sự đaacutenh
giaacute goacutep yacute
Kết quả của giai đoạn phacircn tiacutech lagrave bản Đặc Tả Yecircu Cầu
(Requirements Specifications)
c - Thiết kế hệ thống
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Sau giai đoạn phacircn tiacutech khi caacutec yecircu cầu cụ thể đối với hệ thống đatilde được
xaacutec định giai đoạn tiếp theo lagrave thiết kế cho caacutec yecircu cầu mới Cocircng taacutec
thiết kế xoay quanh cacircu hỏi chiacutenh Hệ thống lagravem caacutech nagraveo để thỏa matilden
caacutec yecircu cầu đatilde được necircu trong Đặc Tả Yecircu Cầu
Một số caacutec cocircng việc thường được thực hiện trong giai đoạn thiết kế
Nhận biết form nhập liệu tugravey theo caacutec thagravenh phần dữ liệu cần
nhập
Nhận biết reports vagrave những output magrave hệ thống mới phải sản sinh
Thiết kế forms (vẽ trecircn giấy hay maacutey tiacutenh sử dụng cocircng cụ thiết
kế)
Nhận biết caacutec thagravenh phần dữ liệu vagrave bảng để tạo database
Ước tiacutenh caacutec thủ tục giải thiacutech quaacute trigravenh xử lyacute từ input đến output
Kết quả giai đoạn thiết kế lagrave Đặc Tả Thiết Kế (Design Specifications) Bản
Đặc Tả Thiết Kế Chi Tiết sẽ được chuyển sang cho caacutec lập trigravenh viecircn để
thực hiện giai đoạn xacircy dựng phần mềm
d - Xacircy dựng phần mềm
Đacircy lagrave giai đoạn viết lệnh (code) thực sự tạo hệ thống Từng người viết
code thực hiện những yecircu cầu đatilde được nhagrave thiết kế định sẵn Cũng chiacutenh
người viết code chịu traacutech nhiệm viết tagravei liệu liecircn quan đến chương trigravenh
giải thiacutech thủ tục (procedure) magrave anh ta tạo necircn được viết như thế nagraveo vagrave
lyacute do cho việc nagravey
Để đảm bảo chương trigravenh được viết necircn phải thoả matilden mọi yecircu cầu coacute ghi
trước trong bản Đặc Tả Thiết Kế Chi Tiết người viết code cũng đồng thời
phải tiến hagravenh thử nghiệm phần chương trigravenh của migravenh Phần thử nghiệm
trong giai đoạn nagravey coacute thể được chia thagravenh hai bước chiacutenh
Thử nghiệm đơn vị
Người viết code chạy thử caacutec phần chương trigravenh của migravenh với dữ liệu giả
(testdummy data) Việc nagravey được thực hiện theo một kế hoạch thử cũng
do chiacutenh người viết code soạn ra Mục điacutech chiacutenh trong giai đoạn thử nagravey
lagrave xem chương trigravenh coacute cho ra những kết quả mong đợi Giai đoạn thử
nghiệm đơn vị nhiều khi được gọi lagrave Thử hộp trắng (White Box Testing)
Thử nghiệm đơn vị độc lập
Cocircng việc nagravey do một thagravenh viecircn khaacutec trong nhoacutem đảm traacutech Cần chọn
người khocircng coacute liecircn quan trực tiếp đến việc viết code của đơn vị chương
trigravenh cần thử nghiệm để đảm bảo tiacutenh ―độc lập Cocircng việc thử đợt nagravey
cũng được thực hiện dựa trecircn kế hoạch thử do người viết code soạn necircn
CuuDuongThanCongcom httpsfbcomtailieudientucntt
e- Thử nghiệm hệ thống
Sau khi caacutec thủ tục đatilde được thử nghiệm riecircng cần phải thử nghiệm toagraven
bộ hệ thống Mọi thủ tục được tiacutech hợp vagrave chạy thử kiểm tra xem mọi chi
tiết ghi trong Đặc Tả Yecircu Cầu vagrave những mong chờ của người dugraveng coacute được
thoả matilden Dữ liệu thử cần được chọn lọc đặc biệt kết quả cần được phacircn
tiacutech để phaacutet hiện mọi lệch lạc so với mong chờ
f - Thực hiện triển khai
Trong giai đoạn nagravey hệ thống vừa phaacutet triển sẽ được triển khai sao cho
phiacutea người dugraveng Trước khi để người dugraveng thật sự bắt tay vagraveo sử dụng hệ
thống nhoacutem caacutec nhagrave phaacutet triển cần tạo caacutec file dữ liệu cần thiết cũng như
huấn luyện cho người dugraveng để đảm bảo hệ thống được sử dụng hữu hiệu
nhất
g - Bảo trigrave nacircng cấp
Tugravey theo caacutec biến đổi trong mocirci trường sử dụng hệ thống coacute thể trở necircn
lỗi thời hay cần phải được sửa đổi nacircng cấp để sử dụng coacute hiệu quả Hoạt
động bảo trigrave hệ thống coacute thể rất khaacutec biệt tugravey theo mức độ sửa đổi vagrave
nacircng cấp cần thiết
Sơ đồ tổng quaacutet caacutec giai đoạn của Chu Trigravenh Phaacutet Triển Phần Mềm
Higravenh 13 Sơ đồ tổng quaacutet caacutec giai đoạn của Chu Trigravenh Phaacutet Triển Phần Mềm
CuuDuongThanCongcom httpsfbcomtailieudientucntt
3- Phương phaacutep hướng chức năng vagrave phương phaacutep hướng đối tượng
31- Phương phaacutep hướng chức năng
Đacircy lagrave lối tiếp cận truyền thống của ngagravenh Cocircng nghệ phần mềm Theo lối
tiếp cận nagravey chuacuteng ta quan tacircm chủ yếu tới những thocircng tin magrave hệ thống
sẽ giữ gigraven Chuacuteng ta hỏi người dugraveng xem họ sẽ cần những thocircng tin nagraveo
rồi chuacuteng ta thiết kế ngacircn hagraveng dữ liệu để chứa những thocircng tin đoacute cung
cấp Forms để nhập thocircng tin vagrave in baacuteo caacuteo để trigravenh bagravey caacutec thocircng tin Noacutei
một caacutech khaacutec chuacuteng ta tập trung vagraveo thocircng tin vagrave khocircng mấy để yacute đến
những gigrave coacute thể xảy ra với những hệ thống đoacute vagrave caacutech hoạt động (ứng xử)
của hệ thống lagrave ra sao Đacircy lagrave lối tiệm cận xoay quanh dữ liệu vagrave đatilde được
aacutep dụng để tạo necircn hagraveng ngagraven hệ thống trong suốt nhiều năm trời
Lối tiếp cận xoay quanh dữ liệu lagrave phương phaacutep tốt cho việc thiết kế ngacircn
hagraveng dữ liệu vagrave nắm bắt thocircng tin nhưng nếu aacutep dụng cho việc thiết kế
ứng dụng lại coacute thể khiến phaacutet sinh nhiều khoacute khăn Một trong những
thaacutech thức lớn lagrave yecircu cầu đối với caacutec hệ thống thường xuyecircn thay đổi Một
hệ thống xoay quanh dữ liệu coacute thể dể dagraveng xử lyacute việc thay đổi ngacircn hagraveng
dữ liệu nhưng lại khoacute thực thi những thay đổi trong nguyecircn tắc nghiệp vụ
hay caacutech hoạt động của hệ thống
Phương phaacutep hướng đối tượng đatilde được phaacutet triển để trả lời cho vấn đề đoacute
Với lối tiếp cận hướng đối tượng chuacuteng ta tập trung vagraveo cả hai mặt của
vấn đề thocircng tin vagrave caacutech hoạt động
32- Phương phaacutep hướng đối tượng
Hướng đối tượng lagrave thuật ngữ thocircng dụng hiện thời của ngagravenh cocircng
nghiệp phần mềm Caacutec cocircng ty đang nhanh choacuteng tigravem caacutech aacutep dụng vagrave
tiacutech hợp cocircng nghệ mới nagravey vagraveo caacutec ứng dụng của họ Thật sự lagrave đa phần
caacutec ứng dụng hiện thời đều mang tiacutenh hướng đối tượng Nhưng hướng đối
tượng coacute nghĩa lagrave gigrave
Lối tiếp cận hướng đối tượng lagrave một lối tư duy về vấn đề theo lối aacutenh xạ
caacutec thagravenh phần trong bagravei toaacuten vagraveo caacutec đối tượng ngoagravei đời thực Với lối
tiếp cận nagravey chuacuteng ta chia ứng dụng thagravenh caacutec thagravenh phần nhỏ gọi lagrave caacutec
đối tượng chuacuteng tương đối độc lập với nhau Sau đoacute ta coacute thể xacircy dựng
ứng dụng bằng caacutech chắp caacutec đối tượng đoacute lại với nhau Hatildey nghĩ đến trograve
chơi xacircy lacircu đagravei bằng caacutec mẫu gỗ Bước đầu tiecircn lagrave tạo hay mua một vagravei
loại mẫu gỗ căn bản từ đoacute tạo necircn caacutec khối xacircy dựng căn bản của migravenh
Một khi đatilde coacute caacutec khối xacircy dựng đoacute bạn coacute thể chắp raacutep chuacuteng lại với
nhau để tạo lacircu đagravei Tương tự như vậy một khi đatilde xacircy dựng một số đối
CuuDuongThanCongcom httpsfbcomtailieudientucntt
tượng căn bản trong thế giới maacutey tiacutenh bạn coacute thể chắp chuacuteng lại với nhau
để tạo ứng dụng của migravenh
Xin lấy một viacute dụ đơn giản vấn đề ruacutet tiền mặt tại nhagrave băng Caacutec ―mẫu
gỗ― thagravenh phần ở đacircy sẽ lagrave aacutenh xạ của caacutec đối tượng ngoagravei đời thực như
tagravei khoản nhacircn viecircn khaacutech hagraveng hellipVagrave ứng dụng sẽ được sẽ được nhận
diện cũng như giải đaacutep xoay quanh caacutec đối tượng đoacute
4- ƢU ĐIỂM CỦA MOcirc HIgraveNH HƢỚNG ĐỐI TƢỢNG
41- Tiacutenh taacutei sử dụng (Reusable)
Phương phaacutep phacircn tiacutech vagrave thiết kế hướng đối tượng thực hiện theo caacutec thuật ngữ
vagrave khaacutei niệm của phạm vi lĩnh vực ứng dụng (tức lagrave của doanh nghiệp hay đơn vị
magrave hệ thống tương lai cần phục vụ) necircn noacute tạo sự tiếp cận tương ứng giữa hệ
thống vagrave vấn đề thực ngoagravei đời Trong viacute dụ baacuten xe ocirc tocirc mọi giai đoạn phacircn tiacutech
thiết kế vagrave thực hiện đều xoay quanh caacutec khaacutei niệm như khaacutech hagraveng nhacircn viecircn
baacuten hagraveng xe ocirc tocirc hellip Vigrave quaacute trigravenh phaacutet triển phần mềm đồng thời lagrave quaacute trigravenh
cộng taacutec của khaacutech hagravengngười dugraveng nhagrave phacircn tiacutech nhagrave thiết kế nhagrave phaacutet triển
chuyecircn gia lĩnh vực chuyecircn gia kỹ thuật necircn lối tiếp cận nagravey khiến cho việc
giao tiếp giữa họ với nhau được dễ dagraveng hơn
Một trong những ưu điểm quan trọng bậc nhất của phương phaacutep phacircn tiacutech vagrave
thiết kế hướng đối tượng lagrave tiacutenh taacutei sử dụng bạn coacute thể tạo caacutec thagravenh phần (đối
tượng) một lần vagrave dugraveng chuacuteng nhiều lần sau đoacute Giống như việc bạn coacute thể taacutei sử
dụng caacutec khối xacircy dựng (hay bản sao của noacute ) trong một toagrave lacircu đagravei một ngocirci
nhagrave ở một con tagraveu vũ trụ bạn cũng coacute thể taacutei sử dụng caacutec thagravenh phần (đối
tượng) căn bản trong caacutec thiết kế hướng đối tượng cũng như code của một hệ
thống kế toaacuten hệ thống kiểm kecirc hoặc một hệ thống đặt hagraveng
Vigrave caacutec đối tượng đatilde được thử nghiệm kỹ cagraveng trong lần dugraveng trước đoacute necircn khả
năng taacutei sử dụng đối tượng coacute taacutec dụng giảm thiểu lỗi vagrave caacutec khoacute khăn trong việc
bảo trigrave giuacutep tăng tốc độ thiết kế vagrave phaacutet triển phần mềm
Phương phaacutep hướng đối tượng giuacutep chuacuteng ta xử lyacute caacutec vấn đề phức tạp trong
phaacutet triển phần mềm vagrave tạo ra caacutec thế hệ phần mềm coacute khả năng thiacutech ứng vagrave
bền chắc
42- Caacutec giai đoạn của chu trigravenh phaacutet triển phần mềm với mocirc
higravenh hƣớng đối tƣợng
Phacircn tiacutech hƣớng đối tƣợng (Object Oriented Analysis
- OOA)
Lagrave giai đọan phaacutet triển một mocirc higravenh chiacutenh xaacutec vagrave suacutec tiacutech của vấn đề coacute thagravenh
phần lagrave caacutec đối tượng vagrave khaacutei niệm đời thực dễ hiểu đối với người sử dụng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Trong giai đoạn OOA vấn đề được trigravenh bagravey bằng caacutec thuật ngữ tương ứng với
caacutec đối tượng coacute thực Thecircm vagraveo đoacute hệ thống cần phải được định nghĩa sao cho
người khocircng chuyecircn Tin học coacute thể dễ dagraveng hiểu được
Dựa trecircn một vấn đề coacute sẵn nhagrave phacircn tiacutech cần aacutenh xạ caacutec đối tượng hay thực
thể coacute thực như khaacutech hagraveng ocirc tocirc người baacuten hagraveng hellip vagraveo thiết kế để tạo ra được
bản thiết kế gần cận với tigravenh huống thực Mocirc higravenh thiết kế sẽ chứa caacutec thực thể
trong một vấn đề coacute thực vagrave giữ nguyecircn caacutec mẫu higravenh về cấu truacutec quan hệ cũng
như hagravenh vi của chuacuteng Noacutei một caacutech khaacutec sử dụng phương phaacutep hướng đối
tượng chuacuteng ta coacute thể mocirc higravenh hoacutea caacutec thực thể thuộc một vấn đề coacute thực magrave
vẫn giữ được cấu truacutec quan hệ cũng như hagravenh vi của chuacuteng
Đối với viacute dụ một phograveng baacuten ocirc tocirc giai đoạn OOA sẽ nhận biết được caacutec thực thể
như
Khaacutech hagraveng
Người baacuten hagraveng
Phiếu đặt hagraveng
Phiếu (hoaacute đơn) thanh toaacuten
Xe ocirc tocirc
Tương taacutec vagrave quan hệ giữa caacutec đối tượng trecircn lagrave
Người baacuten hagraveng dẫn khaacutech hagraveng tham quan phograveng trưng bagravey xe
Khaacutech hagraveng chọn một chiếc xe
Khaacutech hagraveng viết phiếu đặt xe
Khaacutech hagraveng trả tiền xe
Xe ocirc tocirc được giao đến cho khaacutech hagraveng
Đối với viacute dụ nhagrave băng lẻ giai đoạn OOA sẽ nhận biết được caacutec thực thể như
Loại tagravei khoản ATM (ruacutet tiền tự động) Savings (tiết kiệm) Current
(bigravenh thường) Fixed (đầu tư)
Khaacutech hagraveng
Nhacircn viecircn
Phograveng maacutey tiacutenh
Tương taacutec vagrave quan hệ giữa caacutec đối tượng trecircn
Một khaacutech hagraveng mới mở một tagravei khoản tiết kiệm
Chuyển tiền từ tagravei khoản tiết kiệm sang tagravei khoản đầu tư
Chuyển tiền từ tagravei khoản tiết kiệm sang tagravei khoản ATM
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Xin chuacute yacute lagrave ở đacircy như đatilde noacutei ta chuacute yacute đến cả hai khiacutea cạnh thocircng tin vagrave caacutech
hoạt động của hệ thống (tức lagrave những gigrave coacute thể xảy ra với những thocircng tin đoacute)
Lối phacircn tiacutech bằng kiểu aacutenh xạ đời thực vagraveo maacutey tiacutenh như thế thật sự lagrave ưu
điểm lớn của phương phaacutep hướng đối tượng
Thiết kế hƣớng đối tƣợng (Object Oriented Design -
OOD)
Lagrave giai đoạn tổ chức chương trigravenh thagravenh caacutec tập hợp đối tượng cộng taacutec mỗi đối
tượng trong đoacute lagrave thực thể của một lớp Caacutec lớp lagrave thagravenh viecircn của một cacircy cấu
truacutec với mối quan hệ thừa kế
Mục điacutech của giai đoạn OOD lagrave tạo thiết kế dựa trecircn kết quả của giai đoạn OOA
dựa trecircn những quy định phi chức năng những yecircu cầu về mocirci trường những
yecircu cầu về khả năng thực thi OOD tập trung vagraveo việc cải thiện kết quả của
OOA tối ưu hoacutea giải phaacutep đatilde được cung cấp trong khi vẫn đảm bảo thoả matilden tất
cả caacutec yecircu cầu đatilde được xaacutec lập
Trong giai đoạn OOD nhagrave thiết kế định nghĩa caacutec chức năng thủ tục
(operations) thuộc tiacutenh (attributes) cũng như mối quan hệ của một hay nhiều
lớp (class) vagrave quyết định chuacuteng cần phải được điều chỉnh sao cho phugrave hợp với
mocirci trường phaacutet triển Đacircy cũng lagrave giai đoạn để thiết kế ngacircn hagraveng dữ liệu vagrave aacutep
dụng caacutec kỹ thuật tiecircu chuẩn hoacutea
Về cuối giai đoạn OOD nhagrave thiết kế đưa ra một loạt caacutec biểu đồ (diagram) khaacutec
nhau Caacutec biểu đồ nagravey coacute thể được chia thagravenh hai nhoacutem chiacutenh lagrave Tĩnh vagrave động
Caacutec biểu đồ tĩnh biểu thị caacutec lớp vagrave đối tượng trong khi biểu đồ động biểu thị
tương taacutec giữa caacutec lớp vagrave phương thức hoạt động chiacutenh xaacutec của chuacuteng Caacutec lớp
đoacute sau nagravey coacute thể được nhoacutem thagravenh caacutec goacutei (Packages) tức lagrave caacutec đơn vị thagravenh
phần nhỏ hơn của ứng dụng
Lập trigravenh hƣớng đối tƣợng (Object Oriented
Programming - OOP)
Giai đoạn xacircy dựng phần mềm coacute thể được thực hiện sử dụng kỹ thuật lập trigravenh
hướng đối tượng Đoacute lagrave phương thức thực hiện thiết kế hướng đối tượng qua việc
sử dụng một ngocircn ngữ lập trigravenh coacute hỗ trợ caacutec tiacutenh năng hướng đối tượng Một vagravei
ngocircn ngữ hướng đối tượng thường được nhắc tới lagrave C++ vagrave Java Kết quả chung
cuộc của giai đoạn nagravey lagrave một loạt caacutec code chạy được noacute chỉ được đưa vagraveo sử
dụng sau khi đatilde trải qua nhiều vograveng quay của nhiều bước thử nghiệm khaacutec nhau
PHẦN CAcircU HỎI
Hỏi Một số tập hợp dữ liệu phức tạp nhất định khi được trigravenh bagravey bằng đồ thị
sẽ truyền tải đến người đọc nhiều thocircng tin hơn so với caacutec dữ liệu thocirc
Đaacutep Đuacuteng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Hỏi Mocirc higravenh giuacutep chuacuteng ta tổ chức trigravenh bagravey trực quan thấu hiểu vagrave tạo necircn
caacutec hệ thống phức tạp
Đaacutep Đuacuteng
Hỏi Ưu điểm lớn nhất của mocirc higravenh hướng đối tượng lagrave tiacutenh taacutei sử dụng
(Reusable)
Đaacutep Đuacuteng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
1- GIỚI THIỆU UML
11- Mocirc higravenh hoacutea hệ thống phần mềm
Như đatilde trigravenh bagravey ở phần trước mục tiecircu của giai đoạn phacircn tiacutech hệ thống lagrave sản
xuất ra một mocirc higravenh tổng thể của hệ thống cần xacircy dựng Mocirc higravenh nagravey cần phải
được trigravenh bagravey theo hướng nhigraven (View) của khaacutech hagraveng hay người sử dụng vagrave
lagravem sao để họ hiểu được Mocirc higravenh nagravey cũng coacute thể được sử dụng để xaacutec định caacutec
yecircu cầu của người dugraveng đối với hệ thống vagrave qua đoacute giuacutep chuacuteng ta đaacutenh giaacute tiacutenh
khả thi của dự aacuten
Tầm quan trọng của mocirc higravenh đatilde được lĩnh hội một caacutech thấu đaacuteo trong hầu như
tất cả caacutec ngagravenh khoa học kỹ thuật từ nhiều thế kỷ nay Bất kỳ ở đacircu khi muốn
xacircy dựng một vật thể nagraveo đoacute đầu tiecircn người ta đatilde tạo necircn caacutec bản vẽ để quyết
định cả ngoại higravenh lẫn phương thức hoạt động của noacute Chẳng hạn caacutec bản vẽ kỹ
thuật thường gặp lagrave một dạng mocirc higravenh quen thuộc Mocirc higravenh nhigraven chung lagrave một
caacutech mocirc tả của một vật thể nagraveo đoacute Vật đoacute coacute thể tồn tại trong một số giai đoạn
nhất định dugrave đoacute lagrave giai đoạn thiết kế hay giai đoạn xacircy dựng hoặc chỉ lagrave một kế
hoạch Nhagrave thiết kế cần phải tạo ra caacutec mocirc higravenh mocirc tả tất cả caacutec khiacutea cạnh khaacutec
nhau của sản phẩm Ngoagravei ra một mocirc higravenh coacute thể được chia thagravenh nhiều hướng
nhigraven mỗi hướng nhigraven trong số chuacuteng sẽ mocirc tả một khiacutea cạnh riecircng biệt của sản
phẩm hay hệ thống cần được xacircy dựng Một mocirc higravenh cũng coacute thể được xacircy dựng
trong nhiều giai đoạn vagrave ở mỗi giai đoạn mocirc higravenh sẽ được bổ sung thecircm một số
chi tiết nhất định
Mocirc higravenh thường được mocirc tả trong ngocircn ngữ trực quan điều đoacute coacute nghĩa lagrave đa
phần caacutec thocircng tin được thể hiện bằng caacutec kyacute hiệu đồ họa vagrave caacutec kết nối giữa
chuacuteng chỉ khi cần thiết một số thocircng tin mới được biểu diễn ở dạng văn bản
Theo đuacuteng như cacircu ngạn ngữ Một bức tranh noacutei nhiều hơn cả ngagraven từ Tạo mocirc
higravenh cho caacutec hệ thống phần mềm trước khi thực sự xacircy dựng necircn chuacuteng đatilde trở
thagravenh một chuẩn mực trong việc phaacutet triển phần mềm vagrave được chấp nhận trong
cộng đồng lagravem phần mềm giống như trong bất kỳ một ngagravenh khoa học kỹ thuật
nagraveo khaacutec Việc biểu diễn mocirc higravenh phải thoatilde matilden caacutec yếu tố sau
Chiacutenh xaacutec (accurate) Mocirc tả đuacuteng hệ thống cần xacircy dựng
Đồng nhất (consistent) Caacutec view khaacutec nhau khocircng được macircu
thuẩn với nhau
Coacute thể hiểu được (understandable) Cho những người xacircy dựng lẫn
sử dụng
Dễ thay đổi (changeable)
Dễ dagraveng liecircn lạc với caacutec mocirc higravenh khaacutec
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Coacute thể noacutei thecircm rằng mocirc higravenh lagrave một sự đơn giản hoaacute hiện thực Mocirc higravenh được
xacircy dựng necircn để chuacuteng ta dễ dagraveng hiểu vagrave hiểu tốt hơn hệ thống cần xacircy dựng
Tạo mocirc higravenh sẽ giuacutep cho chuacuteng ta hiểu thấu đaacuteo một hệ thống phức tạp trong sự
toagraven thể của noacute
Noacutei toacutem lại mocirc higravenh hoacutea một hệ thống nhằm mục điacutech
Higravenh dung một hệ thống theo thực tế hay theo mong muốn của
chuacuteng ta
Chỉ rotilde cấu truacutec hoặc ứng xử của hệ thống
Tạo một khuocircn mẫu hướng dẫn nhagrave phaacutet triển trong suốt quaacute trigravenh
xacircy dựng hệ thống
Ghi lại caacutec quyết định của nhagrave phaacutet triển để sử dụng sau nagravey
12- Trƣớc khi UML ra đời
Đầu những năm 1980 ngagravenh cocircng nghệ phần mềm chỉ coacute duy nhất một ngocircn
ngữ hướng đối tượng lagrave Simula Sang nửa sau của thập kỷ 1980 caacutec ngocircn ngữ
hướng đối tượng như Smalltalk vagrave C++ xuất hiện Cugraveng với chuacuteng nảy sinh nhu
cầu mocirc higravenh hoaacute caacutec hệ thống phần mềm theo hướng đối tượng Vagrave một vagravei
trong số những ngocircn ngữ mocirc higravenh hoaacute xuất hiện những năm đầu thập kỷ 90
được nhiều người dugraveng lagrave
Grady Boochrsquos Booch Modeling Methodology
James Rambaughrsquos Object Modeling Technique ndash OMT
Ivar Jacobsonrsquos OOSE Methodology
Hewlett- Packardrsquos Fusion
Coad and Yordonrsquos OOA and OOD
Mỗi phương phaacutep luận vagrave ngocircn ngữ trecircn đều coacute hệ thống kyacute hiệu riecircng phương
phaacutep xử lyacute riecircng vagrave cocircng cụ hỗ trợ riecircng khiến nảy ra cuộc tranh luận phương
phaacutep nagraveo lagrave tốt nhất Đacircy lagrave cuộc tranh luận khoacute coacute cacircu trả lời bởi tất cả caacutec
phương phaacutep trecircn đều coacute những điểm mạnh vagrave điểm yếu riecircng Vigrave thế caacutec nhagrave
phaacutet triển phần mềm nhiều kinh nghiệm thường sử dụng phối hợp caacutec điểm
mạnh của mỗi phương phaacutep cho ứng dụng của migravenh Trong thực tế sự khaacutec biệt
giữa caacutec phương phaacutep đoacute hầu như khocircng đaacuteng kể vagrave theo cugraveng tiến trigravenh thời
gian tất cả những phương phaacutep trecircn đatilde tiệm cận lại vagrave bổ sung lẫn cho nhau
Chiacutenh hiện thực nagravey đatilde được những người tiecircn phong trong lĩnh vực mocirc higravenh hoaacute
hướng đối tượng nhận ra vagrave họ quyết định ngồi lại cugraveng nhau để tiacutech hợp những
điểm mạnh của mỗi phương phaacutep vagrave đưa ra một mocirc higravenh thống nhất cho lĩnh vực
cocircng nghệ phần mềm
CuuDuongThanCongcom httpsfbcomtailieudientucntt
13- Sự ra đời của UML
Trong bối cảnh trecircn người ta nhận thấy cần thiết phải cung cấp một phương
phaacutep tiệm cận được chuẩn hoaacute vagrave thống nhất cho việc mocirc higravenh hoaacute hướng đối
tượng Yecircu cầu cụ thể lagrave đưa ra một tập hợp chuẩn hoaacute caacutec kyacute hiệu (Notation) vagrave
caacutec biểu đồ (Diagram) để nắm bắt caacutec quyết định về mặt thiết kế một caacutech rotilde
ragraveng ragravenh mạch Đatilde coacute ba cocircng trigravenh tiecircn phong nhắm tới mục tiecircu đoacute chuacuteng
được thực hiện dưới sự latildenh đạo của James Rumbaugh Grady Booch vagrave Ivar
Jacobson Chiacutenh những cố gắng nagravey dẫn đến kết quả lagrave xacircy dựng được một Ngocircn
Ngữ Mocirc Higravenh Hoaacute Thống Nhất (Unifield Modeling Language ndash UML)
UML lagrave một ngocircn ngữ mocirc higravenh hoaacute thống nhất coacute phần chiacutenh bao gồm những kyacute
hiệu higravenh học được caacutec phương phaacutep hướng đối tượng sử dụng để thể hiện vagrave
miecircu tả caacutec thiết kế của một hệ thống Noacute lagrave một ngocircn ngữ để đặc tả trực quan
hoaacute xacircy dựng vagrave lagravem sưu liệu cho nhiều khiacutea cạnh khaacutec nhau của một hệ thống
coacute nồng độ phần mềm cao UML coacute thể được sử dụng lagravem cocircng cụ giao tiếp giữa
người dugraveng nhagrave phacircn tiacutech nhagrave thiết kế vagrave nhagrave phaacutet triển phần mềm
Trong quaacute trigravenh phaacutet triển coacute nhiều cocircng ty đatilde hỗ trợ vagrave khuyến khiacutech phaacutet triển
UML coacute thể kể tới như Hewlett Packard Microsoft Oracle IBM Unisys
14- UML (Unifield Modeling Language)
Ngocircn ngữ mocirc higravenh hoacutea thống nhất (Unifield Modeling Language ndash UML) lagrave một
ngocircn ngữ để biểu diễn mocirc higravenh theo hướng đối tượng được xacircy dựng bởi ba taacutec
giả trecircn với chủ điacutech lagrave
Mocirc higravenh hoaacute caacutec hệ thống sử dụng caacutec khaacutei niệm hướng đối tượng
Thiết lập một kết nối từ nhận thức của con người đến caacutec sự kiện
cần mocirc higravenh hoaacute
Giải quyết vấn đề về mức độ thừa kế trong caacutec hệ thống phức tạp
coacute nhiều ragraveng buộc khaacutec nhau
Tạo một ngocircn ngữ mocirc higravenh hoaacute coacute thể sử dụng được bởi người vagrave
maacutey
15- Phƣơng phaacutep vagrave caacutec ngocircn ngữ mocirc higravenh hoaacute
Phương phaacutep hay phương thức (method) lagrave một caacutech trực tiếp cấu truacutec hoaacute sự
suy nghĩ vagrave hagravenh động của con người Phương phaacutep cho người sử dụng biết phải
lagravem gigrave lagravem như thế nagraveo khi nagraveo vagrave tại sao (mục điacutech của hagravenh động) Phương
phaacutep chứa caacutec mocirc higravenh (model) caacutec mocirc higravenh được dugraveng để mocirc tả những gigrave sử
dụng cho việc truyền đạt kết quả trong quaacute trigravenh sử dụng phương phaacutep Điểm
khaacutec nhau chiacutenh giữa một phương phaacutep vagrave một ngocircn ngữ mocirc higravenh hoaacute (modeling
CuuDuongThanCongcom httpsfbcomtailieudientucntt
language) lagrave ngocircn ngữ mocirc higravenh hoaacute khocircng coacute một tiến trigravenh (process) hay caacutec
cacircu lệnh (instruction) mocirc tả những cocircng việc người sử dụng cần lagravem
Một mocirc higravenh được biểu diễn theo một ngocircn ngữ mocirc higravenh hoaacute Ngocircn ngữ mocirc higravenh
hoaacute bao gồm caacutec kyacute hiệu ndash những biểu tượng được dugraveng trong mocirc higravenh ndash vagrave một
tập caacutec quy tắc chỉ caacutech sử dụng chuacuteng Caacutec quy tắc nagravey bao gồm
Syntactic (Cuacute phaacutep) cho biết higravenh dạng caacutec biểu tượng vagrave caacutech kết
hợp chuacuteng trong ngocircn ngữ
Semantic (Ngữ nghĩa) cho biết yacute nghĩa của mỗi biểu tượng chuacuteng
được hiểu thế nagraveo khi nằm trong hoặc khocircng nằm trong ngữ cảnh
của caacutec biểu tượng khaacutec
Pragmatic định nghĩa yacute nghĩa của biểu tượng để sao cho mục điacutech
của mocirc higravenh được thể hiện vagrave mọi người coacute thể hiểu được
2- UML TRONG PHAcircN TIacuteCH THIẾT KẾ HỆ THỐNG
UML coacute thể được sử dụng trong nhiều giai đoạn từ phaacutet triển thiết kế cho tới
thực hiện vagrave bảo trigrave Vigrave mục điacutech chiacutenh của ngocircn ngữ nagravey lagrave dugraveng caacutec biểu đồ
hướng đối tượng để mocirc tả hệ thống necircn miền ứng dụng của UML bao gồm nhiều
loại hệ thống khaacutec nhau như
Hệ thống thống tin (Information System) Cất giữ lấy biến đổi
biểu diễn thocircng tin cho người sử dụng Xử lyacute những khoảng dữ liệu
lớn coacute caacutec quan hệ phức tạp magrave chuacuteng được lưu trữ trong caacutec cơ sở
dữ liệu quan hệ hay hướng đối tượng
Hệ thống kỹ thuật (Technical System) Xử lyacute vagrave điều khiển caacutec
thiết bị kỹ thuật như viễn thocircng hệ thống quacircn sự hay caacutec quaacute
trigravenh cocircng nghiệp Đacircy lagrave loại thiết bị phải xử lyacute caacutec giao tiếp đặc
biệt khocircng coacute phần mềm chuẩn vagrave thường lagrave caacutec hệ thống thời gian
thực (real time)
Hệ thống nhuacuteng (Embeded System) Thực hiện trecircn phần cứng
gắn vagraveo caacutec thiết bị như điện thoại di động điều khiển xe hơi hellip
Điều nagravey được thực hiện bằng việc lập trigravenh mức thấp với hỗ trợ thời
gian thực Những hệ thống nagravey thường khocircng coacute caacutec thiết bị như
magraven higravenh đĩa cứng hellip
Hệ thống phacircn bố ( Distributed System) Được phacircn bố trecircn
một số maacutey cho pheacutep truyền dữ liệu từ nơi nagravey đến nơi khaacutec một
caacutech dễ dagraveng Chuacuteng đogravei hỏi caacutec cơ chế liecircn lạc đồng bộ để đảm bảo
toagraven vẹn dữ liệu vagrave thường được xacircy dựng trecircn một số caacutec kỹ thuật
đối tượng như CORBA COMDCOM hay Java BeansRMI
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Hệ thống Giao dịch (Business System) Mocirc tả mục điacutech tagravei
nguyecircn (con người maacutey tiacutenh hellip) caacutec quy tắc (luật phaacutep chiến
thuật kinh doanh cơ chế hellip) vagrave cocircng việc hoạt động kinh doanh
Phần mềm hệ thống (System Software) Định nghĩa cơ sở hạ
tầng kỹ thuật cho phần mềm khaacutec sử dụng chẳng hạn như hệ điều
hagravenh cơ sở dữ liệu giao diện người sử dụng
3- UML VAgrave CAacuteC GIAI ĐOẠN PHAacuteT TRIỂN HỆ THỐNG
Preliminary Investigation use cases thể hiện caacutec yecircu cầu của người
dugraveng Phần miecircu tả use case xaacutec định caacutec yecircu cầu phần diagram thể hiện
mối quan hệ vagrave giao tiếp với hệ thống
Analysis Mục điacutech chiacutenh của giai đọan nagravey lagrave trừu tượng hoacutea vagrave tigravem
hiểu caacutec cơ cấu coacute trong phạm vi bagravei toaacuten Class diagrams trecircn bigravenh diện
trừu tượng hoacutea caacutec thực thể ngoagravei đời thực được sử dụng để lagravem rotilde sự tồn
tại cũng như mối quan hệ của chuacuteng Chỉ những lớp (class) nằm trong
phạm vi bagravei toaacuten mới đaacuteng quan tacircm
Design Kết quả phần analysis được phaacutet triển thagravenh giải phaacutep kỹ thuật
Caacutec lớp được mocirc higravenh hoacutea chi tiết để cung cấp hạ tầng kỹ thuật như giao
diện nền tảng cho database hellip Kết quả phần Design lagrave caacutec đặc tả chi tiết
cho giai đoạn xacircy dựng phần mềm
Development Mocirc higravenh Design được chuyển thagravenh code Programmer
sử dụng caacutec UML diagrams trong giai đoạn Design để hiểu vấn đề vagrave tạo
code
Testing Sử dụng caacutec UML diagrams trong caacutec giai đoạn trước Coacute 4
higravenh thức kiểm tra hệ thống
Unit testing (class diagrams amp class specifications) kiểm tra
từng đơn thể được dugraveng để kiểm tra caacutec lớp hay caacutec nhoacutem
đơn thể
Integration testing (integration diagrams amp collaboration
diagrams) kiểm tra tiacutech hợp lagrave kiểm tra kết hợp caacutec
component với caacutec lớp để xem chuacuteng hoạt động với nhau coacute
đuacuteng khocircng
System testing (use-case diagrams) kiềm tra xem hệ thống
coacute đaacutep ứng được chức năng magrave người sử dụng yecircu cầu hay
khocircng
Acceptance testing Kiểm tra tiacutenh chấp nhận được của hệ
thống thường được thực hiện bởi khaacutech hagraveng việc kiểm tra
nagravey thực hiện tương tự như kiểm tra hệ thống
CuuDuongThanCongcom httpsfbcomtailieudientucntt
PHẦN CAcircU HỎI
Hỏi UML (Unifield Modeling Language) lagrave gigrave
Đaacutep Ngocircn ngữ mocirc higravenh hoacutea thống nhất ndash UML lagrave một ngocircn ngữ để biểu
diễn mocirc higravenh theo hướng đối tượng
Hỏi Điểm khaacutec nhau cơ bản giữa phương phaacutep (method) vagrave một ngocircn ngữ mocirc
higravenh hoaacute (modeling language) lagrave gigrave
Đaacutep Điểm khaacutec nhau cơ bản giữa một phương phaacutep vagrave một ngocircn ngữ
mocirc higravenh hoaacute lagrave ngocircn ngữ mocirc higravenh hoaacute khocircng coacute một tiến trigravenh (process)
hay caacutec cacircu lệnh (instruction) mocirc tả những cocircng việc người sử dụng cần
lagravem magrave noacute bao gồm caacutec kyacute hiệu ndash những biểu tượng được dugraveng trong mocirc
higravenh ndash vagrave một tập caacutec quy tắc chỉ caacutech sử dụng chuacuteng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Chƣơng 3 KHAacuteI QUAacuteT VỀ UML
1- UML VAgrave CAacuteC GIAI ĐOẠN CỦA CHU TRIgraveNH PHAacuteT TRIỂN
PHẦN MỀM
11- Giai đoạn nghiecircn cứu sơ bộ
UML đưa ra khaacutei niệm Use Case để nắm bắt caacutec yecircu cầu của khaacutech hagraveng (người
sử dụng) UML sử dụng biểu đồ Use case (Use Case Diagram) để necircu bật mối
quan hệ cũng như sự giao tiếp với hệ thống
Qua phương phaacutep mocirc higravenh hoacutea Use case caacutec taacutec nhacircn (Actor) becircn ngoagravei quan
tacircm đến hệ thống sẽ được mocirc higravenh hoacutea song song với chức năng magrave họ đogravei hỏi
từ phiacutea hệ thống (tức lagrave Use case) Caacutec taacutec nhacircn vagrave caacutec Use case được mocirc higravenh
hoacutea cugraveng caacutec mối quan hệ vagrave được miecircu tả trong biểu đồ Use case của UML Mỗi
một Use case được mocirc tả trong tagravei liệu vagrave noacute sẽ đặc tả caacutec yecircu cầu của khaacutech
hagraveng Anh ta hay chị ta chờ đợi điều gigrave ở phiacutea hệ thống magrave khocircng hề để yacute đến
việc chức năng nagravey sẽ được thực thi ra sao
12- Giai đoạn phacircn tiacutech
Giai đoạn phacircn tiacutech quan tacircm đến quaacute trigravenh trừu tượng hoacutea đầu tiecircn (caacutec lớp vagrave
caacutec đối tượng) cũng như cơ chế hiện hữu trong phạm vi vấn đề Sau khi nhagrave
phacircn tiacutech đatilde nhận biết được caacutec lớp thagravenh phần của mocirc higravenh cũng như mối quan
hệ giữa chuacuteng với nhau caacutec lớp cugraveng caacutec mối quan hệ đoacute sẽ được miecircu tả bằng
cocircng cụ biểu đồ lớp (class diagram) của UML Sự cộng taacutec giữa caacutec lớp nhằm
thực hiện caacutec Use case cũng sẽ được miecircu tả nhờ vagraveo caacutec mocirc higravenh động
(dynamic models) của UML Trong giai đoạn phacircn tiacutech chỉ duy nhất caacutec lớp coacute
tồn tại trong phạm vi vấn đề (caacutec khaacutei niệm đời thực) lagrave được mocirc higravenh hoacutea Caacutec
lớp kỹ thuật định nghĩa chi tiết cũng như giải phaacutep trong hệ thống phần mềm viacute
dụ như caacutec lớp cho giao diện người dugraveng cho ngacircn hagraveng dữ liệu cho sự giao tiếp
trugraveng hợp vv chưa phải lagrave mối quan tacircm của giai đoạn nagravey
13- Giai đoạn thiết kế
Trong giai đoạn nagravey kết quả của giai đoạn phacircn tiacutech sẽ được mở rộng thagravenh một
giải phaacutep kỹ thuật Caacutec lớp mới sẽ được bổ sung để tạo thagravenh một hạ tầng cơ sở
kỹ thuật Giao diện người dugraveng caacutec chức năng để lưu trữ caacutec đối tượng trong
ngacircn hagraveng dữ liệu giao tiếp với caacutec hệ thống khaacutec giao diện với caacutec thiết bị
ngoại vi vagrave caacutec maacutey moacutec khaacutec trong hệ thống Caacutec lớp thuộc phạm vi vấn đề
coacute từ giai đoạn phacircn tiacutech sẽ được nhuacuteng vagraveo hạ tầng cơ sở kỹ thuật nagravey tạo ra
khả năng thay đổi trong cả hai phương diện Phạm vi vấn đề vagrave hạ tầng cơ sở
Giai đoạn thiết kế sẽ đưa ra kết quả lagrave bản đặc tả chi tiết cho giai đoạn xacircy dựng
hệ thống
14- Giai đoạn xacircy dựng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Trong giai đoạn xacircy dựng (giai đoạn lập trigravenh) caacutec lớp của giai đoạn thiết kế sẽ
được biến thagravenh những dograveng code cụ thể trong một ngocircn ngữ lập trigravenh hướng đối
tượng cụ thể (khocircng necircn dugraveng một ngocircn ngữ lập trigravenh hướng chức năng) Phụ
thuộc vagraveo khả năng của ngocircn ngữ được sử dụng đacircy coacute thể lagrave một cocircng việc khoacute
khăn hay dễ dagraveng Khi tạo ra caacutec mocirc higravenh phacircn tiacutech vagrave thiết kế trong UML tốt
nhất necircn cố gắng neacute traacutenh việc ngay lập tức biến đổi caacutec mocirc higravenh nagravey thagravenh caacutec
dograveng code Trong những giai đoạn trước mocirc higravenh được sử dụng để dễ hiểu dễ
giao tiếp vagrave tạo necircn cấu truacutec của hệ thống vigrave vậy vội vagraveng đưa ra những kết
luận về việc viết code coacute thể sẽ thagravenh một trở ngại cho việc tạo ra caacutec mocirc higravenh
chiacutenh xaacutec vagrave đơn giản Giai đoạn xacircy dựng lagrave một giai đoạn riecircng biệt nơi caacutec
mocirc higravenh được chuyển thagravenh code
15- Thử nghiệm
Như đatilde trigravenh bagravey trong phần Chu Trigravenh Phaacutet Triển Phần Mềm một hệ thống phần
mềm thường được thử nghiệm qua nhiều giai đoạn vagrave với nhiều nhoacutem thử
nghiệm khaacutec nhau Caacutec nhoacutem sử dụng nhiều loại biểu đồ UML khaacutec nhau lagravem nền
tảng cho cocircng việc của migravenh Thử nghiệm đơn vị sử dụng biểu đồ lớp (class
diagram) vagrave đặc tả lớp thử nghiệm tiacutech hợp thường sử dụng biểu đồ thagravenh phần
(component diagram) vagrave biểu đồ cộng taacutec (collaboration diagram) vagrave giai đoạn
thử nghiệm hệ thống sử dụng biểu đồ Use case (use case diagram) để đảm bảo
hệ thống coacute phương thức hoạt động đuacuteng như đatilde được định nghĩa từ ban đầu
trong caacutec biểu đồ nagravey
2- CAacuteC THAgraveNH PHẦN CỦA NGOcircN NGỮ UML
Ngocircn ngữ UML bao gồm một loạt caacutec phần tử đồ họa (graphic element) coacute thể
được kếp hợp với nhau để tạo ra caacutec biểu đồ Bởi đacircy lagrave một ngocircn ngữ necircn UML
cũng coacute caacutec nguyecircn tắc để kết hợp caacutec phần tử đoacute
Một số những thagravenh phần chủ yếu của ngocircn ngữ UML
Hướng nhigraven (view) Hướng nhigraven chỉ ra những khiacutea cạnh khaacutec
nhau của hệ thống cần phải được mocirc higravenh hoacutea Một hướng nhigraven
khocircng phải lagrave một bản vẽ magrave lagrave một sự trừu tượng hoacutea bao gồm
một loạt caacutec biểu đồ khaacutec nhau Chỉ qua việc định nghĩa của một
loạt caacutec hướng nhigraven khaacutec nhau mỗi hướng nhigraven chỉ ra một khiacutea
cạnh riecircng biệt của hệ thống người ta mới coacute thể tạo dựng necircn một
bức tranh hoagraven thiện về hệ thống Cũng chiacutenh caacutec hướng nhigraven nagravey
nối kết ngocircn ngữ mocirc higravenh hoacutea với quy trigravenh được chọn cho giai đoạn
phaacutet triển
Biểu đồ (diagram) Biểu đồ lagrave caacutec higravenh vẽ miecircu tả nội dung
trong một hướng nhigraven UML coacute tất cả 9 loại biểu đồ khaacutec nhau được
CuuDuongThanCongcom httpsfbcomtailieudientucntt
sử dụng trong những sự kết hợp khaacutec nhau để cung cấp tất cả caacutec
hướng nhigraven của một hệ thống
Phần tử mocirc higravenh hoacutea (model element) Caacutec khaacutei niệm được
sử dụng trong caacutec biểu đồ được gọi lagrave caacutec phần tử mocirc higravenh thể hiện
caacutec khaacutei niệm hướng đối tượng quen thuộc Viacute dụ như lớp đối tượng
thocircng điệp cũng như caacutec quan hệ giữa caacutec khaacutei niệm nagravey bao gồm
cả liecircn kết phụ thuộc khaacutei quaacutet hoacutea Một phần tử mocirc higravenh thường
được sử dụng trong nhiều biểu đồ khaacutec nhau nhưng noacute luocircn luocircn coacute
chỉ một yacute nghĩa vagrave một kiacute hiệu
Cơ chế chung Cơ chế chung cung cấp thecircm những lời nhận xeacutet
bổ sung caacutec thocircng tin cũng như caacutec quy tắc ngữ phaacutep chung về
một phần tử mocirc higravenh chuacuteng cograven cung cấp thecircm caacutec cơ chế để coacute
thể mở rộng ngocircn ngữ UML cho phugrave hợp với một phương phaacutep xaacutec
định (một quy trigravenh một tổ chức hoặc một người dugraveng)
3- HƢỚNG NHIgraveN (VIEW)
Mocirc higravenh hoacutea một hệ thống phức tạp lagrave một việc lagravem khoacute khăn Lyacute tưởng nhất lagrave
toagraven bộ hệ thống được miecircu tả chỉ trong một bản vẽ một bản vẽ định nghĩa một
caacutech rotilde ragraveng vagrave mạch lạc toagraven bộ hệ thống một bản vẽ ngoagravei ra lại cograven dễ giao
tiếp vagrave dễ hiểu Mặc dugrave vậy thường thigrave đacircy lagrave chuyện bất khả thi Một bản vẽ
khocircng thể nắm bắt tất cả caacutec thocircng tin cần thiết để miecircu tả một hệ thống Một
hệ thống cần phải được miecircu tả với một loạt caacutec khiacutea cạnh khaacutec nhau Về mặt
chức năng (cấu truacutec tĩnh của noacute cũng như caacutec tương taacutec động) về mặt phi chức
năng (yecircu cầu về thời gian về độ đaacuteng tin cậy về quaacute trigravenh thực thi vv vagrave vv)
cũng như về khiacutea cạnh tổ chức (tổ chức lagravem việc aacutenh xạ noacute vagraveo caacutec code
module) Vigrave vậy một hệ thống thường được miecircu tả trong một loạt caacutec hướng
nhigraven khaacutec nhau mỗi hướng nhigraven sẽ thể hiện một bức ảnh aacutenh xạ của toagraven bộ hệ
thống vagrave chỉ ra một khiacutea cạnh riecircng của hệ thống
Higravenh 31- Caacutec View trong UML
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Mỗi một hướng nhigraven được miecircu tả trong một loạt caacutec biểu đồ chứa đựng caacutec
thocircng tin necircu bật khiacutea cạnh đặc biệt đoacute của hệ thống Trong thực tế khi phacircn tiacutech
vagrave thiết kế rất dễ xảy ra sự trugraveng lặp thocircng tin cho necircn một biểu đồ trecircn thật tế
coacute thể lagrave thagravenh phần của nhiều hướng nhigraven khaacutec nhau Khi nhigraven hệ thống từ
nhiều hướng nhigraven khaacutec nhau tại một thời điểm coacute thể người ta chỉ tập trung vagraveo
một khiacutea cạnh của hệ thống Một biểu đồ trong một hướng nhigraven cụ thể nagraveo đoacute
cần phải đủ độ đơn giản để tạo điều kiện giao tiếp dễ dagraveng để diacutenh liền với caacutec
biểu đồ khaacutec cũng như caacutec hướng nhigraven khaacutec lagravem sao cho bức tranh toagraven cảnh
của hệ thống được miecircu tả bằng sự kết hợp tất cả caacutec thocircng tin từ tất cả caacutec
hướng nhigraven Một biểu đồ chứa caacutec kiacute hiệu higravenh học mocirc tả caacutec phần tử mocirc higravenh
của hệ thống UML coacute tất cả caacutec hướng nhigraven sau
Hướng nhigraven Use case (use case view) đacircy lagrave hướng nhigraven chỉ ra
khiacutea cạnh chức năng của một hệ thống nhigraven từ hướng taacutec nhacircn becircn
ngoagravei
Hướng nhigraven logic (logical view) chỉ ra chức năng sẽ được thiết kế
becircn trong hệ thống như thế nagraveo qua caacutec khaacutei niệm về cấu truacutec tĩnh
cũng như ứng xử động của hệ thống
Hướng nhigraven thagravenh phần (component view) chỉ ra khiacutea cạnh tổ chức
của caacutec thagravenh phần code
Hướng nhigraven song song (concurrency view) chỉ ra sự tồn tại song
song trugraveng hợp trong hệ thống hướng đến vấn đề giao tiếp vagrave
đồng bộ hoacutea trong hệ thống
Hướng nhigraven triển khai (deployment view) chỉ ra khiacutea cạnh triển
khai hệ thống vagraveo caacutec kiến truacutec vật lyacute (caacutec maacutey tiacutenh hay trang thiết
bị được coi lagrave trạm cocircng taacutec)
Khi bạn chọn cocircng cụ để vẽ biểu đồ hatildey chọn cocircng cụ nagraveo tạo điều kiện dễ dagraveng
chuyển từ hướng nhigraven nagravey sang hướng nhigraven khaacutec Ngoagravei ra cho mục điacutech quan
saacutet một chức năng sẽ được thiết kế như thế nagraveo cocircng cụ nagravey cũng phải tạo điều
kiện dễ dagraveng cho bạn chuyển sang hướng nhigraven Use case (để xem chức năng nagravey
được miecircu tả như thế nagraveo từ phiacutea taacutec nhacircn) hoặc chuyển sang hướng nhigraven triển
khai (để xem chức năng nagravey sẽ được phacircn bố ra sao trong cấu truacutec vật lyacute - Noacutei
một caacutech khaacutec lagrave noacute coacute thể nằm trong maacutey tiacutenh nagraveo)
Ngoagravei caacutec hướng nhigraven kể trecircn ngagravenh cocircng nghiệp phần mềm cograven sử dụng cả caacutec
hướng nhigraven khaacutec viacute dụ hướng nhigraven tĩnh-động hướng nhigraven logic-vật lyacute quy trigravenh
nghiệp vụ (workflow) vagrave caacutec hướng nhigraven khaacutec UML khocircng yecircu cầu chuacuteng ta phải
sử dụng caacutec hướng nhigraven nagravey nhưng đacircy cũng chiacutenh lagrave những hướng nhigraven magrave caacutec
nhagrave thiết kế của UML đatilde nghĩ tới necircn coacute khả năng nhiều cocircng cụ sẽ dựa trecircn caacutec
hướng nhigraven đoacute
CuuDuongThanCongcom httpsfbcomtailieudientucntt
31- Hƣớng nhigraven Use case (Use case View)
Hướng nhigraven Use case miecircu tả chức năng của hệ thống sẽ phải cung cấp do được
taacutec nhacircn từ becircn ngoagravei mong đợi Taacutec nhacircn lagrave thực thể tương taacutec với hệ thống đoacute
coacute thể lagrave một người sử dụng hoặc lagrave một hệ thống khaacutec Hướng nhigraven Use case lagrave
hướng nhigraven dagravenh cho khaacutech hagraveng nhagrave thiết kế nhagrave phaacutet triển vagrave người thử
nghiệm noacute được miecircu tả qua caacutec biểu đồ Use case (use case diagram) vagrave thỉnh
thoảng cũng bao gồm cả caacutec biểu đồ hoạt động (activity diagram) Caacutech sử dụng
hệ thống nhigraven chung sẽ được miecircu tả qua một loạt caacutec Use case trong hướng
nhigraven Use case nơi mỗi một Use case lagrave một lời miecircu tả mang tiacutenh đặc thugrave cho
một tiacutenh năng của hệ thống (coacute nghĩa lagrave một chức năng được mong đợi)
Hướng nhigraven Use case mang tiacutenh trung tacircm bởi noacute đặt ra nội dung thuacutec đẩy sự
phaacutet triển caacutec hướng nhigraven khaacutec Mục tiecircu chung của hệ thống lagrave cung cấp caacutec
chức năng miecircu tả trong hướng nhigraven nagravey ndash cugraveng với một vagravei caacutec thuộc tiacutenh mang
tiacutenh phi chức năng khaacutec ndash vigrave thế hướng nhigraven nagravey coacute ảnh hưởng đến tất cả caacutec
hướng nhigraven khaacutec Hướng nhigraven nagravey cũng được sử dụng để thẩm tra (verify) hệ
thống qua việc thử nghiệm xem hướng nhigraven Use case coacute đuacuteng với mong đợi của
khaacutech hagraveng (Hỏi Đacircy coacute phải lagrave thứ bạn muốn) cũng như coacute đuacuteng với hệ thống
vừa được hoagraven thagravenh (Hỏi Hệ thống coacute hoạt động như đatilde đặc tả)
32- Hƣớng nhigraven logic (Logical View)
Hướng nhigraven logic miecircu tả phương thức magrave caacutec chức năng của hệ thống sẽ được
cung cấp Chủ yếu noacute được sử dụng cho caacutec nhagrave thiết kế vagrave nhagrave phaacutet triển
Ngược lại với hướng nhigraven Use case hướng nhigraven logic nhigraven vagraveo phiacutea becircn trong của
hệ thống Noacute miecircu tả kể cả cấu truacutec tĩnh (lớp đối tượng vagrave quan hệ) cũng như
sự tương taacutec động sẽ xảy ra khi caacutec đối tượng gửi thocircng điệp cho nhau để cung
cấp chức năng đatilde định sẵn Hướng nhigraven logic định nghĩa caacutec thuộc tiacutenh như
trường tồn (persistency) hoặc song song (concurrency) cũng như caacutec giao diện
cũng như cấu truacutec nội tại của caacutec lớp
Cấu truacutec tĩnh được miecircu tả bằng caacutec biểu đồ lớp (class diagram) vagrave biểu đồ đối
tượng (object diagram) Quaacute trigravenh mocirc higravenh hoacutea động được miecircu tả trong caacutec biểu
đồ trạng thaacutei (state diagram) biểu đồ trigravenh tự (sequence diagram) biểu đồ
tương taacutec (collaboration diagram) vagrave biểu đồ hoạt động (activity diagram)
33- Hƣớng nhigraven thagravenh phần (Component View)
Lagrave một lời miecircu tả của việc thực thi caacutec modul cũng như sự phụ thuộc giữa chuacuteng
với nhau Noacute thường được sử dụng cho nhagrave phaacutet triển vagrave thường bao gồm nhiều
biểu đồ thagravenh phần Thagravenh phần ở đacircy lagrave caacutec modul lệnh thuộc nhiều loại khaacutec
nhau sẽ được chỉ ra trong biểu đồ cugraveng với cấu truacutec cũng như sự phụ thuộc của
chuacuteng Caacutec thocircng tin bổ sung về caacutec thagravenh phần viacute dụ như vị triacute của tagravei nguyecircn
(traacutech nhiệm đối với một thagravenh phần) hoặc caacutec thocircng tin quản trị khaacutec viacute dụ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
như một bản baacuteo caacuteo về tiến trigravenh của cocircng việc cũng coacute thể được bổ sung vagraveo
đacircy
34- Hƣớng nhigraven song song (Concurrency View)
Hướng nhigraven song song nhắm tới sự chia hệ thống thagravenh caacutec qui trigravenh (process)
vagrave caacutec bộ xử lyacute (processor) Khiacutea cạnh nagravey vốn lagrave một thuộc tiacutenh phi chức năng
của hệ thống cho pheacutep chuacuteng ta sử dụng một caacutech hữu hiệu caacutec nguồn tagravei
nguyecircn thực thi song song cũng như xử lyacute caacutec sự kiện khocircng đồng bộ từ mocirci
trường Becircn cạnh việc chia hệ thống thagravenh caacutec tiểu trigravenh coacute thể được thực thi
song song hướng nhigraven nagravey cũng phải quan tacircm đến vấn đề giao tiếp vagrave đồng bộ
hoacutea caacutec tiểu trigravenh đoacute
Hướng nhigraven song song giagravenh cho nhagrave phaacutet triển vagrave người tiacutech hợp hệ thống noacute
bao gồm caacutec biểu đồ động (trạng thaacutei trigravenh tự tương taacutec vagrave hoạt động) cugraveng caacutec
biểu đồ thực thi (biểu đồ thagravenh phần vagrave biểu đồ triển khai)
35- Hƣớng nhigraven triển khai (Deployment View)
Cuối cugraveng hướng nhigraven triển khai chỉ cho chuacuteng ta sơ đồ triển khai về mặt vật lyacute
của hệ thống viacute dụ như caacutec maacutey tiacutenh cũng như caacutec maacutey moacutec vagrave sự liecircn kết giữa
chuacuteng với nhau Hướng nhigraven triển khai giagravenh cho caacutec nhagrave phaacutet triển người tiacutech
hợp cũng như người thử nghiệm hệ thống vagrave được thể hiện bằng caacutec biểu đồ
triển khai Hướng nhigraven nagravey cũng bao gồm sự aacutenh xạ caacutec thagravenh phần của hệ
thống vagraveo cấu truacutec vật lyacute viacute dụ như chương trigravenh nagraveo hay đối tượng nagraveo sẽ được
thực thi trecircn maacutey tiacutenh nagraveo
4- BIỂU ĐỒ (DIAGRAM)
Biểu đồ lagrave caacutec higravenh vẽ bao gồm caacutec kyacute hiệu phần tử mocirc higravenh hoacutea được sắp xếp
để minh họa một thagravenh phần cụ thể hay một khiacutea cạnh cụ thể của hệ thống Một
mocirc higravenh hệ thống thường coacute nhiều loại biểu đồ mỗi loại coacute nhiều biểu đồ khaacutec
nhau Một biểu đồ lagrave một thagravenh phần của một hướng nhigraven cụ thể vagrave khi được vẽ
ra noacute thường thường cũng được xếp vagraveo một hướng nhigraven Mặt khaacutec một số loại
biểu đồ coacute thể lagrave thagravenh phần của nhiều hướng nhigraven khaacutec nhau tugravey thuộc vagraveo nội
dung của biểu đồ
Phần sau miecircu tả caacutec khaacutei niệm căn bản nằm đằng sau mỗi loại biểu đồ Tất cả
caacutec chi tiết về biểu đồ ngữ cảnh của chuacuteng yacute nghĩa chiacutenh xaacutec của chuacuteng vagrave sự
tương taacutec giữa chuacuteng với nhau được miecircu tả chi tiết trong caacutec chương sau (mocirc
higravenh đối tượng ndash mocirc higravenh động) Caacutec biểu đồ lấy lagravem viacute dụ ở đacircy được lấy ra từ
nhiều loại hệ thống khaacutec nhau để chỉ ra neacutet phong phuacute vagrave khả năng aacutep dụng
rộng khắp của ULM
41- Biểu đồ Use case (Use Case Diagram)
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Một biểu đồ Use case chỉ ra một số lượng caacutec taacutec nhacircn ngoại cảnh vagrave mối liecircn kết
của chuacuteng đối với Use case magrave hệ thống cung cấp (nhigraven higravenh 32) Một Use case
lagrave một lời miecircu tả của một chức năng magrave hệ thống cung cấp Lời miecircu tả Use
case thường lagrave một văn bản tagravei liệu nhưng kegravem theo đoacute cũng coacute thể lagrave một biểu
đồ hoạt động Caacutec Use case được miecircu tả duy nhất theo hướng nhigraven từ ngoagravei vagraveo
của caacutec taacutec nhacircn (hagravenh vi của hệ thống theo như sự mong đợi của người sử
dụng) khocircng miecircu tả chức năng được cung cấp sẽ hoạt động nội bộ becircn trong
hệ thống ra sao Caacutec Use case định nghĩa caacutec yecircu cầu về mặt chức năng đối với
hệ thống Caacutec biểu đồ Use case sẽ được miecircu tả chi tiết hơn trong chương 4 (Use
case)
Higravenh 32- Biểu đồ use case của một cocircng ty bảo hiểm
42- Biểu đồ lớp (Class Diagram)
Một biểu đồ lớp chỉ ra cấu truacutec tĩnh của caacutec lớp trong hệ thống (nhigraven higravenh 33)
Caacutec lớp lagrave đại diện cho caacutec ―vật được xử lyacute trong hệ thống Caacutec lớp coacute thể quan
hệ với nhau trong nhiều dạng thức liecircn kết (associated - được nối kết với nhau)
phụ thuộc (dependent - một lớp nagravey phụ thuộc vagraveo lớp khaacutec) chuyecircn biệt hoacutea
(specialized - một lớp nagravey lagrave một kết quả chuyecircn biệt hoacutea của lớp khaacutec) hay
đoacuteng goacutei ( packaged - hợp với nhau thagravenh một đơn vị) Tất cả caacutec mối quan hệ
đoacute đều được thể hiện trong biểu đồ lớp đi kegravem với cấu truacutec becircn trong của caacutec lớp
theo khaacutei niệm thuộc tiacutenh (attribute) vagrave thủ tục (operation) Biểu đồ được coi lagrave
biểu đồ tĩnh theo phương diện cấu truacutec được miecircu tả ở đacircy coacute hiệu lực tại bất kỳ
thời điểm nagraveo trong toagraven bộ vograveng đời hệ thống
Một hệ thống thường sẽ coacute một loạt caacutec biểu đồ lớp ndash chẳng phải bao giờ tất cả
caacutec biểu đồ lớp nagravey cũng được nhập vagraveo một biểu đồ lớp tổng thể duy nhất ndash vagrave
một lớp coacute thể tham gia vagraveo nhiều biểu đồ lớp Biểu đồ lớp được miecircu tả chi tiết
trong chương sau
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 33 - Biểu đồ lớp cho một giao dịch Tagravei chiacutenh
43- Biểu đồ đối tƣợng (Object Diagram)
Một biểu đồ đối tượng lagrave một phiecircn bản của biểu đồ lớp vagrave thường cũng sử dụng
caacutec kyacute hiệu như biểu đồ lớp Sự khaacutec biệt giữa hai loại biểu đồ nagravey nằm ở chỗ
biểu đồ đối tượng chỉ ra một loạt caacutec đối tượng thực thể của lớp thay vigrave caacutec lớp
Một biểu đồ đối tượng vigrave vậy lagrave một viacute dụ của biểu đồ lớp chỉ ra một bức tranh
thực tế coacute thể xảy ra khi hệ thống thực thi bức tranh magrave hệ thống coacute thể coacute tại
một thời điểm nagraveo đoacute Biểu đồ đối tượng sử dụng chung caacutec kyacute hiệu của biểu đồ
lớp chỉ trừ hai ngoại lệ đối tượng được viết với tecircn được gạch dưới vagrave tất cả caacutec
thực thể trong một mối quan hệ đều được chỉ ra (nhigraven higravenh 34)
Biểu đồ đối tượng khocircng quan trọng bằng biểu đồ lớp chuacuteng coacute thể được sử
dụng để viacute dụ hoacutea một biểu đồ lớp phức tạp chỉ ra với những thực thể cụ thể vagrave
những mối quan hệ như thế thigrave bức tranh toagraven cảnh sẽ ra sao Một biểu đồ đối
tượng thường thường được sử dụng lagravem một thagravenh phần của một biểu đồ cộng
taacutec (collaboration) chỉ ra lối ứng xử động giữa một loạt caacutec đối tượng
Higravenh 34 - Biểu đồ lớp vagrave biểu đồ đối tượng thể hiện của lớp
CuuDuongThanCongcom httpsfbcomtailieudientucntt
44- Biểu đồ trạng thaacutei (State Diagram)
Một biểu đồ trạng thaacutei thường lagrave một sự bổ sung cho lời miecircu tả một lớp Noacute chỉ
ra tất cả caacutec trạng thaacutei magrave đối tượng của lớp nagravey coacute thể coacute vagrave những sự kiện
(event) nagraveo sẽ gacircy ra sự thay đổi trạng thaacutei (higravenh 35) Một sự kiện coacute thể xảy ra
khi một đối tượng tự gửi thocircng điệp đến cho noacute - viacute dụ như để thocircng baacuteo rằng
một khoảng thời gian được xaacutec định đatilde qua đi ndash hay lagrave một số điều kiện nagraveo đoacute
đatilde được thỏa matilden Một sự thay đổi trạng thaacutei được gọi lagrave một sự chuyển đổi
trạng thaacutei (State Transition) Một chuyển đổi trạng thaacutei cũng coacute thể coacute một hagravenh
động liecircn quan xaacutec định điều gigrave phải được thực hiện khi sự chuyển đổi trạng thaacutei
nagravey diễn ra
Biểu đồ trạng thaacutei khocircng được vẽ cho tất cả caacutec lớp magrave chỉ riecircng cho những lớp
coacute một số lượng caacutec trạng thaacutei được định nghĩa rotilde ragraveng vagrave hagravenh vi của lớp bị ảnh
hưởng vagrave thay đổi qua caacutec trạng thaacutei khaacutec nhau Biểu đồ trạng thaacutei cũng coacute thể
được vẽ cho hệ thống tổng thể Biểu đồ trạng thaacutei được miecircu tả chi tiết hơn trong
chương sau (Mocirc higravenh động)
Higravenh 35- Một viacute dụ về biểu đồ trạng thaacutei
45- Biểu đồ trigravenh tự (Sequence Diagram)
Một biểu đồ trigravenh tự chỉ ra một cộng taacutec động giữa một loạt caacutec đối tượng (xem
higravenh 36) Khiacutea cạnh quan trọng của biểu đồ nagravey lagrave chỉ ra trigravenh tự caacutec thocircng điệp
(message) được gửi giữa caacutec đối tượng Noacute cũng chỉ ra trigravenh tự tương taacutec giữa
caacutec đối tượng điều sẽ xảy ra tại một thời điểm cụ thể nagraveo đoacute trong trigravenh tự thực
thi của hệ thống Caacutec biểu đồ trigravenh tự chứa một loạt caacutec đối tượng được biểu diễn
bằng caacutec đường thẳng đứng Trục thời gian coacute hướng từ trecircn xuống dưới trong
biểu đồ vagrave biểu đồ chỉ ra sự trao đổi thocircng điệp giữa caacutec đối tượng khi thời gian
trocirci qua Caacutec thocircng điệp được biểu diễn bằng caacutec đường gạch ngang gắn liền với
mũi tecircn (biểu thị thocircng điệp) nối liền giữa những đường thẳng đứng thể hiện đối
tượng Trục thời gian cugraveng những lời nhận xeacutet khaacutec thường sẽ được đưa vagraveo phần
lề của biểu đồ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 36 - Một biểu đồ trigravenh tự cho Print Server
46- Biểu đồ cộng taacutec (Collaboration Diagram)
Một biểu đồ cộng taacutec chỉ ra một sự cộng taacutec động cũng giống như một biểu đồ
trigravenh tự Thường người ta sẽ chọn hoặc dugraveng biểu đồ trigravenh tự hoặc dugraveng biểu đồ
cộng taacutec Becircn cạnh việc thể hiện sự trao đổi thocircng điệp (được gọi lagrave tương taacutec)
biểu đồ cộng taacutec chỉ ra caacutec đối tượng vagrave quan hệ của chuacuteng (nhiều khi được gọi
lagrave ngữ cảnh) Việc necircn sử dụng biểu đồ trigravenh tự hay biểu đồ cộng taacutec thường sẽ
được quyết định theo nguyecircn tắc chung sau Nếu thời gian hay trigravenh tự lagrave yếu tố
quan trọng nhất cần phải nhấn mạnh thigrave hatildey chọn biểu đồ trigravenh tự nếu ngữ cảnh
lagrave yếu tố quan trọng hơn hatildey chọn biểu đồ cộng taacutec Trigravenh tự tương taacutec giữa caacutec
đối tượng được thể hiện trong cả hai loại biểu đồ nagravey
Biểu đồ cộng taacutec được vẽ theo dạng một biểu đồ đối tượng nơi một loạt caacutec đối
tượng được chỉ ra cugraveng với mối quan hệ giữa chuacuteng với nhau (sử dụng những kyacute
hiệu như trong biểu đồ lớp biểu đồ đối tượng) Caacutec mũi tecircn được vẽ giữa caacutec đối
tượng để chỉ ra dograveng chảy thocircng điệp giữa caacutec đối tượng Caacutec thocircng điệp thường
được điacutenh kegravem theo caacutec nhatilden (label) một trong những chức năng của nhatilden lagrave
chỉ ra thứ tự magrave caacutec thocircng điệp được gửi đi Noacute cũng coacute thể chỉ ra caacutec điều kiện
chỉ ra những giaacute trị được trả về vv Khi đatilde lagravem quen với caacutech viết nhatilden một
nhagrave phaacutet triển coacute thể đọc biểu đồ cộng taacutec vagrave tuacircn thủ theo dograveng thực thi cũng
như sự trao đổi thocircng điệp Một biểu đồ cộng taacutec cũng coacute thể chứa cả caacutec đối
tượng tiacutech cực (active objects) hoạt động song song với caacutec đối tượng tiacutech cực
khaacutec (higravenh 37) Biểu đồ cộng taacutec được miecircu tả chi tiết trong chương sau
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 37 - Một biểu đồ cocircng taacutec của một printer server
47- Biểu đồ hoạt động (Activity Diagram)
Một biểu đồ hoạt động chỉ ra một trigravenh tự lần lượt của caacutec hoạt động (activity)
(higravenh 38) Biểu đồ hoạt động thường được sử dụng để miecircu tả caacutec hoạt động
được thực hiện trong một thủ tục mặc dugrave noacute cũng coacute thể được sử dụng để miecircu
tả caacutec dograveng chảy hoạt động khaacutec viacute dụ như trong một Use case hay trong một
trigravenh tự tương taacutec Biểu đồ hoạt động bao gồm caacutec trạng thaacutei hagravenh động chứa
đặc tả của một hoạt động cần phải được thực hiện (một hagravenh động - action) Một
trạng thaacutei hagravenh động sẽ qua đi khi hagravenh động được thực hiện xong (khaacutec với biểu
đồ trạng thaacutei một trạng thaacutei chỉ chuyển sang trạng thaacutei khaacutec sau khi đatilde xảy ra
một sự kiện rotilde ragraveng ) Dograveng điều khiển ở đacircy chạy giữa caacutec trạng thaacutei hagravenh
động liecircn kết với nhau Biểu đồ cograven coacute thể chỉ ra caacutec quyết định caacutec điều kiện
cũng như phần thực thi song song của caacutec trạng thaacutei hagravenh động Biểu đồ ngoagravei ra
cograven coacute thể chứa caacutec loại đặc tả cho caacutec thocircng điệp được gửi đi hoặc được nhận về
trong tư caacutech lagrave thagravenh phần của hagravenh động được thực hiện
Higravenh 38 - Một biểu đồ hoạt động cho một printer server
48- Biểu đồ thagravenh phần (Component Diagram)
Một biểu đồ thagravenh phần chỉ ra cấu truacutec vật lyacute của caacutec dograveng lệnh (code) theo khaacutei
niệm thagravenh phần code Một thagravenh phần code coacute thể lagrave một tập tin source code
một thagravenh phần nhị phacircn (binary) hay một thagravenh phần thực thi được
(executable) Một thagravenh phần chứa caacutec thocircng tin về caacutec lớp logic hoặc caacutec lớp magrave
noacute thi hagravenh như thế coacute nghĩa lagrave noacute tạo ra một aacutenh xạ từ hướng nhigraven logic vagraveo
hướng nhigraven thagravenh phần Biểu đồ thagravenh phần cũng chỉ ra những sự phụ thuộc giữa
caacutec thagravenh phần với nhau trợ giuacutep cho cocircng việc phacircn tiacutech hiệu ứng magrave một
thagravenh phần được thay đổi sẽ gacircy ra đối với caacutec thagravenh phần khaacutec Thagravenh phần
cũng coacute thể được miecircu tả với bất kỳ loại giao diện nagraveo magrave chuacuteng bộc lộ viacute dụ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
như giao diện OLECOM vagrave chuacuteng coacute thể được nhoacutem goacutep lại với nhau thagravenh từng
goacutei (package) Biểu đồ thagravenh phần được sử dụng trong cocircng việc lập trigravenh cụ thể
(xem higravenh 39)
Higravenh 39 - Một biểu đồ thagravenh phần chỉ ra sự phụ thuộc giữa caacutec thagravenh phần matilde
49- Biểu đồ triển khai (Deployment Diagram)
Biểu đồ triển khai chỉ ra kiến truacutec vật lyacute của phần cứng cũng như phần mềm
trong hệ thống Bạn coacute thể chỉ ra từng maacutey tiacutenh cụ thể vagrave từng trang thiết bị cụ
thể (node) đi kegravem sự nối kết giữa chuacuteng với nhau bạn cũng coacute thể chỉ ra loại của
caacutec mối nối kết đoacute Becircn trong caacutec nuacutet mạng (node) caacutec thagravenh phần thực thi được
cũng như caacutec đối tượng sẽ được xaacutec định vị triacute để chỉ ra những phần mềm nagraveo sẽ
được thực thi tại những nuacutet mạng nagraveo Bạn cũng coacute thể chỉ ra sự phụ thuộc giữa
caacutec thagravenh phần
Biểu đồ triển khai chỉ ra hướng nhigraven triển khai miecircu tả kiến truacutec vật lyacute thật sự
của hệ thống Đacircy lagrave một hướng nhigraven rất xa lối miecircu tả duy chức năng của hướng
nhigraven Use case Mặc dugrave vậy trong một mocirc higravenh tốt người ta coacute thể chỉ tất cả
những con đường dẫn từ một nuacutet mạng trong một kiến truacutec vật lyacute cho tới những
thagravenh phần của noacute cho tới lớp magrave noacute thực thi cho tới những tương taacutec magrave caacutec
đối tượng của lớp nagravey tham gia để rồi cuối cugraveng tiến tới một Use case Rất nhiều
hướng nhigraven khaacutec nhau của hệ thống được sử dụng đồng thời để tạo ra một lời
miecircu tả thấu đaacuteo đối với hệ thống trong sự tổng thể của noacute
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 310 - Một biểu đồ triển khai chỉ ra kiến truacutec vật lyacute của hệ thống
5- PHẦN TỬ MOcirc HIgraveNH (MODEL ELEMENT)
Caacutec khaacutei niệm được sử dụng trong caacutec biểu đồ được gọi lagrave caacutec phần tử mocirc higravenh
(model element) Một phần tử mocirc higravenh được định nghĩa với ngữ nghĩa (semantic)
đoacute lagrave một định nghĩa về bản chất phần tử hay lagrave một xaacutec định yacute nghĩa chiacutenh xaacutec
xem noacute sẽ thể hiện điều gigrave trong những lời khẳng định rotilde ragraveng Mỗi phần tử mocirc
higravenh cograven coacute một sự miecircu tả trực quan một kyacute hiệu higravenh học được sử dụng để
miecircu tả phần tử nagravey trong biểu đồ Một phần tử coacute thể tồn tại trong nhiều dạng
biểu đồ khaacutec nhau nhưng cũng coacute những nguyecircn tắc xaacutec định loại phần tử nagraveo
coacute thể được chỉ ra trong loại biểu đồ nagraveo Một vagravei viacute dụ cho phần tử vocirc higravenh lagrave lớp
đối tượng trạng thaacutei nuacutet mạng goacutei thagravenh phần (higravenh 311)
Higravenh 311- Caacutec thagravenh phần mocirc higravenh thường dugraveng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 312 chỉ ra một vagravei viacute dụ của mối quan hệ đacircy cũng lagrave một dạng phần tử
mocirc higravenh chuacuteng được sử dụng để nối caacutec phần tử mocirc higravenh khaacutec với nhau Một vagravei
loại quan hệ đaacuteng chuacute yacute
Nối kết (Association) nối caacutec phần tử vagrave caacutec thực thể nối (link)
Khaacutei quaacutet hoacutea (Generalization) cograven được gọi lagrave tiacutenh thừa kế coacute
yacute nghĩa rằng một phần tử nagravey coacute thể lagrave một sự chuyecircn biệt hoacutea của
một phần tử khaacutec
Sự phụ thuộc (Dependency) chỉ ra rằng một phần tử nagravey phụ
thuộc trong một phương thức nagraveo đoacute vagraveo một phần tử khaacutec
Kết tập (Aggregation) Một dạng của nối kết trong đoacute một phần
tử nagravey chứa caacutec phần tử khaacutec
Ngoagravei ra cograven coacute caacutec phần tử mocirc higravenh khaacutec như thocircng điệp (Message) hagravenh động
(action) vagrave khuocircn mẫu (stereotype) Tất cả caacutec phần tử mocirc higravenh yacute nghĩa của
chuacuteng cũng như những ứng dụng đều được giải thiacutech kỹ lưỡng hơn trong caacutec
chương sau
Higravenh 312 ndash caacutec viacute dụ về vagravei loại quan hệ
6- CƠ CHẾ CHUNG (GENERAL MECHANISM)
UML thể hiện một số caacutec cơ chế chung trong tất cả caacutec biểu đồ nhằm mục điacutech
cung cấp thecircm caacutec thocircng tin bổ sung thường đacircy lagrave những thocircng tin khocircng thể
được thể hiện qua caacutec chức năng vagrave khả năng cơ bản của caacutec phần tử mocirc higravenh
61- Trang triacute (Adornment)
Caacutec sự trang triacute trực quan coacute thể được sử dụng kegravem thecircm vagraveo caacutec phần tử mocirc
higravenh trong biểu đồ Động taacutec trang triacute bổ sung thecircm ngữ nghĩa cho phần tử Một
viacute dụ lagrave kỹ thuật được sử dụng để phacircn biệt một loại thực thể (lớp) vagrave một thực
thể Khi thể hiện một loại tecircn phần tử sẽ được in đậm Khi cũng chiacutenh phần tử
đoacute thể hiện chỉ một thực thể của loại nagravey tecircn phần tử sẽ được gạch dưới vagrave coacute
thể được coi lagrave cả tecircn của thực thể lẫn tecircn của loại đoacute Một higravenh chữ nhật thể
hiện lớp với tecircn được in đậm sẽ thể hiện một lớp vagrave tecircn được gạch dưới sẽ thể
CuuDuongThanCongcom httpsfbcomtailieudientucntt
hiện một đối tượng đacircy lagrave một viacute dụ tiecircu biểu của adornment Cũng nguyecircn tắc
đoacute được aacutep dụng cho caacutec nuacutet mạng khi kyacute hiệu nuacutet được in đậm lagrave thể hiện một
loại nuacutet viacute dụ như maacutey in (Printer) khi kyacute hiệu được gạch dưới lagrave thể hiện một
thực thể của lớp nuacutet mạng nagravey viacute dụ Johnrsquos HP 5MP-printer Caacutec kiểu trang triacute
khaacutec lagrave caacutec lời đặc tả về số lượng trong quan hệ (multiplicity) nơi số lượng lagrave
một số hay một khoảng số chỉ ra bao nhiecircu thực thể của caacutec loại thực thể được
nối với nhau sẽ coacute thể tham gia trong một quan hệ Kiacute hiệu trang triacute được viết
gần phần tử mocirc higravenh được magrave noacute bổ sung thocircng tin (higravenh 313)
Higravenh 313 - Phacircn biệt giữa lớp vagrave đối tượng bằng trang triacute
62- Ghi chuacute (Note)
Cho dugrave một ngocircn ngữ mocirc higravenh hoacutea coacute được mở rộng đến bao nhiecircu chăng nữa
noacute cũng khocircng thể định nghĩa tất cả mọi việc Nhằm tạo điều kiện bổ sung thecircm
cho một mocirc higravenh những thocircng tin khocircng thể được thể hiện bằng phần tử mocirc higravenh
UML cung cấp khả năng kegravem theo lời ghi chuacute Một lời ghi chuacute coacute thể được để bất
kỳ nơi nagraveo trong bất kỳ biểu đồ nagraveo vagrave noacute coacute thể chứa bất kỳ loại thocircng tin nagraveo
Dạng thocircng tin của bản thacircn noacute lagrave chuỗi kyacute tự (string) khocircng được UML diễn giải
Lời ghi chuacute thường đi kegravem theo một số caacutec phần tử mocirc higravenh trong biểu đồ được
nối bằng một đường chấm chấm chỉ ra phần tử mocirc higravenh nagraveo được chi tiết hoacutea
hoặc được giải thiacutech (higravenh 314)
Một lời ghi chuacute thường chứa lời nhận xeacutet hoặc caacutec cacircu hỏi của nhagrave tạo mocirc higravenh
viacute dụ lời nhắc nhở cần phải xử lyacute vấn đề nagraveo đoacute trong thời gian sau nagravey Lời ghi
chuacute cũng coacute thể chứa caacutec thocircng tin dạng khuocircn mẫu (stereotype)
Higravenh 314 - Một viacute dụ về ghi chuacute
63- Đặc tả (Specification)
Caacutec phần tử mocirc higravenh coacute thuộc tiacutenh (Property) chứa caacutec giaacute trị dữ liệu về phần tử
nagravey Một thuộc tiacutenh được định nghĩa với một tecircn vagrave một giaacute trị điacutenh kegravem (tagged
value) thường chuacuteng ở trong một dạng thocircng tin được xaacutec định trước viacute dụ như
số nguyecircn hay chuỗi kiacute tự Coacute một loạt thuộc tiacutenh đatilde được định nghĩa trước viacute dụ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
như tagravei liệu (docement) traacutech nhiệm (Responsibility) sự trường tồn (Persistence)
vagrave tiacutenh song song (Conccurency)
Thuộc tiacutenh được sử dụng để thecircm caacutec đặc tả bổ sung về một phần tử những
thocircng tin bigravenh thường ra khocircng được thể hiện trong biểu đồ Viacute dụ tiecircu biểu lagrave
một lớp sẽ được miecircu tả bằng một tagravei liệu văn bản nhất định cung cấp nhiều
thocircng tin hơn về traacutech nhiệm cũng như khả năng của lớp nagravey Loại đặc tả nagravey
bigravenh thường ra khocircng được chỉ ra trong caacutec biểu đồ nhưng thường thigrave trong đa
phần caacutec cocircng cụ mocirc higravenh hoacutea chuacuteng sẽ coacute thể được truy cập qua hagravenh động
nhấp nuacutet vagraveo một phần tử nagraveo đoacute hiệu quả lagrave một cửa sổ chứa đặc tả với tất cả
caacutec thuộc tiacutenh sẽ được chỉ ra (Higravenh 315)
Higravenh 315- Một cửa sổ đặc tả thể hiện caacutec đặc tiacutenh của class
7- MỞ RỘNG UML
UML coacute thể được mở rộng hoặc coacute thể được sửa đổi để phugrave hợp với một phương
phaacutep đặc biệt một tổ chức cụ thể hay một người dugraveng cụ thể Chuacuteng ta sẽ bagraven
luận sơ qua đến ba cơ chế mở rộng UML khuocircn mẫu (stereotype) giaacute trị điacutenh
kegravem (tagged value) vagrave hạn chế (constraint)
71- Khuocircn mẫu (Stereotype)
Cơ chế mở rộng khuocircn mẫu định nghĩa một loại phần tử mocirc higravenh mới dựa trecircn
một phần tử mocirc higravenh đatilde tồn tại Khuocircn mẫu coacute thể được coi lagrave tương tự như
một phần tử đatilde coacute sẵn cộng thecircm phần quy định ngữ nghĩa (semantic) riecircng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
biệt khocircng coacute trong phần tử gốc kia Khuocircn mẫu của một phần tử coacute thể được sử
dụng trong cugraveng tigravenh huống như phần tử căn bản Khuocircn mẫu dựa trecircn tất cả caacutec
loại phần tử mocirc higravenh sẵn coacute - lớp nuacutet mạng thagravenh phần cũng như caacutec mối quan
hệ như liecircn kết khaacutei quaacutet hoacutea sự phụ thuộc Ngocircn ngữ UML coacute chứa một số
lượng lớn caacutec khuocircn mẫu được định nghĩa sẵn vagrave chuacuteng được sử dụng để sửa đổi
caacutec phần tử mocirc higravenh sẵn coacute thay cho việc phải định nghĩa hoagraven toagraven mới Cơ chế
nagravey giuacutep gigraven giữ tiacutenh đơn giản của nền tảng ngocircn ngữ UML
Khuocircn mẫu được miecircu tả qua việc đưa tecircn của chuacuteng vagraveo trong một cặp kyacute tự
ngoặc nhọn ltltgtgt theo như trong higravenh 316 Kyacute tự ngoặc nhọn nagravey được gọi lagrave
guillements Khuocircn mẫu cũng coacute thể coacute kiacute hiệu higravenh học riecircng Một phần tử của
một loại khuocircn mẫu cụ thể coacute thể được thể hiện bởi tecircn khuocircn mẫu đi kegravem kyacute
hiệu higravenh học mocirc tả phần tử căn bản hay lagrave sự kết hợp của cả hai yếu tố nagravey
Bất kỳ khi nagraveo một phần tử mocirc higravenh được nối kết với một tecircn hoặc kiacute hiệu khuocircn
mẫu ta sẽ đọc đacircy lagrave một loại phần tử thuộc loại khuocircn mẫu Viacute dụ một lớp
với ltltWindowgtgt sẽ được gọi lagrave một lớp trong dạng khuocircn mẫu cửa sổ yacute
nghĩa của noacute lagrave một dạng lớp cửa sổ Những thuộc tiacutenh cụ thể magrave một lớp cửa sổ
cần phải coacute sẽ được định nghĩa khi khuocircn mẫu nagravey được định nghĩa
Như đatilde noacutei khuocircn mẫu lagrave một cơ chế mở rộng xuất sắc lagrave một cơ chế ngăn cho
ngocircn ngữ UML khocircng trở necircn quaacute phức tạp mặc dugrave vẫn cho pheacutep thực hiện sự
mở rộng vagrave sửa đổi cần thiết Đa phần caacutec phần tử mocirc higravenh mới magrave bạn cần đến
đều coacute một khuocircn mẫu nền tảng trong ngocircn ngữ UML Một khuocircn mẫu sau đoacute coacute
thể được sử dụng để cộng thecircm caacutec ngữ nghĩa cần thiết nhằm mục điacutech định
nghĩa necircn caacutec phần tử mocirc higravenh cograven thiếu
Higravenh 316- Customer lagrave một lớp khuocircn mẫu ltltActorgtgt
72- Giaacute trị điacutenh kegravem (Tagged Value)
Như đatilde noacutei caacutec phần tử mocirc higravenh coacute thể coacute caacutec thuộc tiacutenh chứa một cặp tecircn-giaacute
trị về bản thacircn chuacuteng (higravenh 317) Caacutec thuộc tiacutenh nagravey cũng cograven được gọi lagrave caacutec
giacutea trị điacutenh kegravem UML coacute chứa một loạt caacutec thuộc tiacutenh được định nghĩa trước
nhưng kể cả người sử dụng cũng coacute thể định nghĩa ra caacutec thuộc tiacutenh mới để chứa
caacutec thocircng tin bổ sung về caacutec phần tử mocirc higravenh Mọi higravenh dạng thocircng tin đều coacute
thể được điacutenh kegravem vagraveo phần tử caacutec thocircng tin chuyecircn biệt về phương phaacutep caacutec
thocircng tin của nhagrave quản trị về tiến trigravenh mocirc higravenh hoacutea caacutec thocircng tin được sử dụng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
bởi caacutec cocircng cụ khaacutec viacute dụ như caacutec cocircng cụ tạo code hay bất kỳ một loại thocircng
tin nagraveo magrave người sử dụng muốn điacutenh kegravem vagraveo phần tử mocirc higravenh
Higravenh 317 - Một viacute dụ về Tagged Value
73- Hạn chế (Constraint)
Một sự hạn chế lagrave một sự giới hạn về sự sử dụng hoặc yacute nghĩa của một phần tử
Sự hạn chế hoặc sẽ được khai baacuteo trong cocircng cụ vagrave được sử dụng nhiều lần trong
rất nhiều biểu đồ khaacutec nhau hay được định nghĩa vagrave sử dụng trong chỉ một biểu
đồ theo như nhu cầu
Higravenh 318 chỉ ra mối quan hệ nối kết giữa nhoacutem caacutec cocircng dacircn lớn tuổi vagrave lớp con
người chỉ ra rằng nhoacutem cocircng dacircn coacute thể coacute nhiều người liecircn quan Mặc dugrave vậy
để miecircu tả rằng chỉ những người nagraveo lớn hơn 60 tuổi mới coacute thể tham gia vagraveo
nhoacutem nagravey người ta định nghĩa một sự hạn chế hạn hẹp tiecircu chuẩn tham gia đối
với chỉ những người nagraveo magrave thuộc tiacutenh tuổi taacutec coacute giaacute trị lớn hơn 60 Định nghĩa
nagravey sẽ hạn chế số lượng những người được sử dụng trong mối quan hệ Nếu
khocircng coacute noacute người ta rất dễ hiểu lầm khi diễn tả biểu đồ Trong trường hợp tồi
tệ noacute coacute thể dẫn đến sự thực thi sai traacutei của hệ thống
Trong trường hợp nagravey hạn chế được định nghĩa vagrave ứng dụng trực tiếp trong
chiacutenh biểu đồ magrave noacute được cần tới Nhưng nhigraven chung thigrave hạn chế cũng coacute thể
được định nghĩa với tecircn cugraveng lời đặc tả riecircng viacute dụ như cocircng dacircn giagrave vagrave
người coacute tuổi lớn hơn 60 vagrave hạn chế nagravey sẽ được sử dụng trong nhiều biểu đồ
khaacutec nhau UML coacute chứa một loạt caacutec hạn chế được định nghĩa sẵn chuacuteng được
miecircu tả chi tiết trong caacutec chương sau
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 318- Một ragraveng buộc hạn chế đối tượng Person goacutep phần vagraveo quan hệ kết
hợp
8- MOcirc HIgraveNH HOacuteA VỚI UML
Khi xacircy dựng hệ thống với UML người ta khocircng chỉ xacircy dựng duy nhất một mocirc
higravenh Sẽ coacute nhiều mocirc higravenh khaacutec nhau trong những giai đoạn phaacutet triển khaacutec nhau
nhắm đến caacutec mục điacutech khaacutec nhau Trong giai đoạn phacircn tiacutech mục điacutech của mocirc
higravenh lagrave nắm bắt tất cả caacutec yecircu cầu đối với hệ thống vagrave mocirc higravenh hoacutea nền tảng bao
gồm caacutec lớp vagrave caacutec cộng taacutec đời thực Trong giai đoạn thiết kế mục điacutech của
mocirc higravenh lagrave mở rộng mocirc higravenh phacircn tiacutech tạo thagravenh một giải phaacutep kỹ thuật khả thi
coacute chuacute yacute đến mocirci trường của cocircng việc xacircy dựng (viết code) Trong giai đoạn xacircy
dựng code mocirc higravenh chiacutenh lagrave những dograveng code nguồn thật sự được viết necircn vagrave
được dịch thagravenh caacutec chương trigravenh Vagrave cuối cugraveng trong giai đoạn triển khai một
lời miecircu tả sẽ giải thiacutech hệ thống cần được triển khai ra sao trong kiến truacutec vật lyacute
Khả năng theo dotildei xuyecircn suốt nhiều giai đoạn vagrave nhiều mocirc higravenh khaacutec nhau được
đảm bảo qua caacutec thuộc tiacutenh hoặc caacutec mối quan hệ nacircng cao (refinement)
Mặc dugrave đoacute lagrave caacutec mocirc higravenh khaacutec nhau nhưng chuacuteng đều được xacircy dựng necircn để
mở rộng nội dung của caacutec mocirc higravenh ở giai đoạn trước Chiacutenh vigrave thế tất cả caacutec mocirc
higravenh đều cần phải được gigraven giữ tốt để người ta coacute thể dễ dagraveng đi ngược lại mở
rộng ra hay taacutei thiết lập mocirc higravenh phacircn tiacutech khởi đầu vagrave rồi dần dần từng bước
đưa caacutec sự thay đổi vagraveo mocirc higravenh thiết kế cũng như caacutec mocirc higravenh xacircy dựng (higravenh
319)
Higravenh 319- Một hệ thống được mocirc tả trong nhiều mocirc higravenh
Bản thacircn ngocircn ngữ UML khocircng phụ thuộc vagraveo giai đoạn coacute nghĩa lagrave cũng những
nguyecircn tắc ngocircn ngữ đoacute vagrave cũng những biểu đồ đoacute được sử dụng để mocirc higravenh hoacutea
những sự việc khaacutec nhau trong những giai đoạn khaacutec nhau Nhagrave thiết kế nắm
quyền quyết định xem một mocirc higravenh sẽ phải thay đổi nhằm đạt được những mục
điacutech nagraveo vagrave bao trugravem những phạm vi nagraveo Ngocircn ngữ mocirc higravenh hoacutea chỉ cung cấp
khả năng để tạo ra caacutec mocirc higravenh trong một phong caacutech mở rộng vagrave nhất quaacuten
Khi mocirc higravenh hoacutea bằng ngocircn ngữ UML toagraven bộ cocircng việc cần phải được thực hiện
theo một phương phaacutep hay một qui trigravenh xaacutec định rotilde những bước cocircng việc nagraveo
phải được tiến hagravenh vagrave chuacuteng phải được thực thi ra sao Một qui trigravenh như vậy
CuuDuongThanCongcom httpsfbcomtailieudientucntt
thường sẽ chia cocircng việc ra thagravenh caacutec vograveng lặp kế tiếp mỗi vograveng lặp bao gồm
caacutec cocircng việc phacircn tiacutech yecircu cầu phacircn tiacutech thiết kế thực hiện triển khai Mặc
dugrave vậy cũng coacute một quy trigravenh nhỏ hơn đề cập tới nội dung của việc mocirc higravenh hoacutea
Bigravenh thường ra khi sản xuất một mocirc higravenh hoặc sản xuất chỉ một biểu đồ duy
nhất cocircng việc sẽ bắt đầu bằng việc thu thập một nhoacutem thiacutech hợp caacutec caacute nhacircn
khaacutec nhau trigravenh bagravey vấn đề vagrave mục tiecircu họ cộng taacutec cho một giai đoạn hội thảo
khoa học vagrave phaacutec thảo trao đổi những saacuteng kiến vagrave yacute tưởng về mocirc higravenh coacute thể
Cocircng cụ được sử dụng trong giai đoạn nagravey lagrave hết sức khaacutec biệt vagrave mang tiacutenh
ngẫu hứng - thường lagrave giấy daacuten post it hay bảng trắng Cocircng việc được quyết
định chừng nagraveo những người tham gia coacute cảm giaacutec họ đatilde coacute được một nền tảng
thực tiễn cho một mocirc higravenh (giống như một tiecircu đề) Kết quả sau đoacute sẽ được đưa
vagraveo một cocircng cụ mocirc higravenh tiecircu đề được tổ chức vagrave sau đoacute một biểu đồ thực sự
sẽ được tạo dựng necircn phugrave hợp với những quy định của ngocircn ngữ mocirc higravenh hoacutea
Sau đoacute mocirc higravenh được chi tiết hoacutea qua những cocircng việc mang tiacutenh vograveng lặp cagraveng
ngagravey cagraveng coacute nhiều chi tiết về giải phaacutep được phaacutet hiện được dữ liệu hoacutea vagrave
được bổ sung Khi đatilde coacute nhiều thocircng tin hơn được thu thập về vấn đề cũng như
giải phaacutep của noacute tiecircu đề ban đầu dần dần trở thagravenh một lời chuẩn đoaacuten cho một
mocirc higravenh coacute khả năng sử dụng Khi mocirc higravenh đatilde gần hoagraven thiện một sự tiacutech hợp
vagrave thẩm định sẽ được thực hiện dẫn tới việc mocirc higravenh hoặc biểu đồ sẽ được tiacutech
hợp với những mocirc higravenh vagrave biểu đồ khaacutec trong cugraveng dự aacuten để đảm bảo sự nhất
quaacuten Mocirc higravenh sau đoacute cũng được kiểm tra lại để chắc chắn noacute đang giải quyết
đuacuteng vấn đề cần giải quyết (higravenh 320)
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 320 - Một tiến trigravenh cho cocircng việc mocirc higravenh hoaacute thực tế
Cuối cugraveng mocirc higravenh sẽ được thực thi vagrave triển khai thagravenh một loạt caacutec nguyecircn
mẫu (prototype) nguyecircn mẫu nagravey sẽ được kiểm tra để tigravem khiếm khuyết Caacutec
khiếm khuyết bao gồm kể cả caacutec chức năng cograven thiếu sự thực hiện tồi tệ hay phiacute
sản xuất vagrave phaacutet triển quaacute cao Những khiếm khuyết thường sẽ eacutep nhagrave phaacutet triển
ragrave đi ragrave lại cocircng việc của migravenh để khắc phục chuacuteng Nếu vấn đề lagrave quaacute lớn nhagrave
phaacutet triển coacute thể sẽ đi ngược lại tất cả caacutec bước cocircng việc của migravenh cho tới tận
giai đoạn sơ phaacutec đầu tiecircn Nếu caacutec vấn đề nagravey khocircng lớn nhagrave phaacutet triển coacute lẽ
chỉ cần thay đổi một vagravei thagravenh phần trong tổ chức hoặc đặc tả của mocirc higravenh Xin
nhớ rằng bước tạo nguyecircn mẫu khocircng thể được thực hiện ngay lập tức sau khi
hoagraven tất biểu đồ noacute chỉ necircn được thực hiện khi đatilde coacute một số lượng lớn caacutec biểu
đồ liecircn quan Nguyecircn mẫu sau nagravey coacute thể được vứt đi coacute thể được tạo dựng necircn
chỉ để nhằm mục điacutech kiểm tra hoặc lagrave nếu bước tạo nguyecircn mẫu nagravey thagravenh
cocircng noacute sẽ trở thagravenh một vograveng lặp trong quy trigravenh phaacutet triển thật sự
CuuDuongThanCongcom httpsfbcomtailieudientucntt
9- COcircNG CỤ (TOOL)
Sử dụng một ngocircn ngữ mocirc higravenh hoacutea phức tạp vagrave rộng mở như UML cần thiết sự
trợ giuacutep của cocircng cụ Mặc dugrave phaacutec thảo đầu tiecircn của một mocirc higravenh coacute thể được
thực hiện bằng bảng trắng cugraveng giấy vagrave mực nhưng cocircng việc bảo trigrave đồng bộ
hoacutea vagrave đảm bảo sự nhất quaacuten trong một loạt caacutec biểu đồ khaacutec nhau thường lại
khocircng thể trở thagravenh khả thi nếu khocircng coacute cocircng cụ
Thị trường cocircng cụ mocirc higravenh hoacutea đatilde dừng trong mức độ sơ khởi suốt một thời gian
dagravei kể từ khi xuất hiện yacute tưởng đầu tiecircn về caacutec chương trigravenh trợ giuacutep cho việc tạo
chương trigravenh Rất nhiều cocircng cụ trong thực tế chỉ thocircng minh hơn caacutec chương
trigravenh vẽ một chuacutet sử dụng một vagravei quy chế kiểm tra tiacutenh nhất quaacuten hoặc một vagravei
kiến thức về phương phaacutep vagrave ngocircn ngữ mocirc higravenh hoacutea Mặc dugrave đatilde coacute một vagravei bước
tiến nhất định vagrave nhiều cocircng cụ hocircm nay đatilde tới gần saacuteng kiến khởi thủy kia
nhiều hơn (Rational Rose) nhưng thị trường vẫn cograven khocircng iacutet cocircng cụ chưa được
gọt giũa vẫn cograven chứa lỗi hoặc những neacutet kỳ quặc kể cả những vấn đề đơn giản
như copy vagrave daacuten Những cocircng cụ nagravey cograven hạn chế ở phương diện rằng tất cả bọn
chuacuteng đều coacute ngocircn ngữ mocirc higravenh hoacutea riecircng hay iacutet nhất thigrave cũng coacute những định
nghĩa riecircng của chuacuteng về ngocircn ngữ nagravey
Cugraveng với sự ra đời của ngocircn ngữ UML caacutec nhagrave cung cấp cocircng cụ mocirc higravenh hoacutea giờ
đacircy coacute thể dagravenh nhiều thời gian hơn cho việc nacircng cấp cocircng cụ bởi họ khocircng cần
phải dồn tacircm dồn sức cho việc định nghĩa caacutec phương phaacutep mới cũng như caacutec
ngocircn ngữ mới
Một cocircng cụ mocirc higravenh hoacutea hịecircn đại cần phải cung cấp caacutec chức năng sau
Vẽ biểu đồ cần phải tạo điều kiện dễ dagraveng vẽ ra caacutec biểu đồ
trong ngocircn ngữ mocirc higravenh hoacutea Cocircng cụ cần phải đủ khả năng thocircng
minh để hiểu mục điacutech của caacutec biểu đồ vagrave biết được những ngữ
nghĩa cũng như caacutec quy tắc đơn giản đủ để noacute coacute thể cảnh baacuteo
hoặc ngăn chặn việc sử dụng khocircng thiacutech hợp caacutec phần tử mocirc higravenh
Hoạt động như một nhagrave kho (Repository) cocircng cụ cần phải
hỗ trợ một nhagrave kho trung tacircm để tất cả caacutec thocircng tin về mocirc higravenh
được lưu trữ trong cugraveng một chỗ Nếu viacute dụ tecircn của một lớp bị thay
đổi trong một biểu đồ thigrave sự thay đổi nagravey cần phải xảy ra trong tất
cả caacutec biểu đồ khaacutec coacute sử dụng lớp nagravey
Hỗ trợ định hướng (Navigation) cocircng cụ cần phải tạo điều
kiện dễ dagraveng cho người sử dụng định hướng vagrave chuyển dịch trong
mocirc higravenh để theo dotildei một phần tử từ biểu đồ nagravey sang biểu đồ khaacutec
hoặc để mở rộng lời miecircu tả của một phần tử
Hỗ trợ nhiều người sử dụng (multiuser support) Cocircng cụ
cần hỗ trợ cho nhiều người sử dụng vagrave tạo điều kiện cho họ cugraveng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
lagravem việc với một mocirc higravenh magrave khocircng ngăn chặn hoặc quấy phaacute lẫn
nhau
Tự động tạo code (code generate) một cocircng cụ cao cấp cần
phải coacute khả năng tạo ra code nơi tất cả caacutec thocircng tin trong mocirc higravenh
được chuyển tải thagravenh caacutec khung code (code skeletons) được sử
dụng lagravem nền tảng cho giai đoạn xacircy dựng chương trigravenh
Taacutei tạo mocirc higravenh (Reserve engineer) Một cocircng cụ cao cấp cần
phải coacute khả năng đọc những thagravenh phần code đang tồn tại vagrave từ đoacute
sản xuất ra mocirc higravenh Từ đoacute suy ra một mocirc higravenh coacute thể được lagravem từ
những dograveng code đatilde tồn tại hoặc một nhagrave phaacutet triển coacute thể dễ
dagraveng chuyển đi chuyển về giữa cocircng việc mocirc higravenh hoacutea vagrave cocircng việc
lập trigravenh
Tiacutech hợp với caacutec cocircng cụ khaacutec một cocircng cụ cần phải coacute khả
năng tiacutech hợp với những cocircng cụ khaacutec với cả việc phaacutet triển mocirci
trường viacute dụ như caacutec trigravenh soạn thảo (editor) chương trigravenh dịch
(compiler) chương trigravenh tigravem lỗi (debugger) cũng như caacutec cocircng cụ
của doanh nghiệp khaacutec như cocircng cụ quản trị cấu higravenh hệ thống
theo dotildei caacutec phiecircn bản
Bao quaacutet mocirc higravenh ở tất cả caacutec mức độ trừu tượng hoacutea khaacutec
nhau cocircng cụ cần phải dễ chuyển tải từ lời miecircu tả ở cấp trừu
tượng hoacutea cao nhất của hệ thống (tức lagrave ở dạng một lượng caacutec goacutei
khaacutec nhau) đi xuống cho tới cấp của những dograveng code thật sự Sau
đoacute để truy xuất những dograveng lệnh code cho một thủ tục cụ thể nagraveo
đoacute trong một lớp nagraveo đoacute bạn coacute thể chỉ cần nhấp chuột vagraveo tecircn của
thủ tục đoacute trong một biểu đồ
Trao đổi mocirc higravenh Một mocirc higravenh hay một biểu đồ của một mocirc
higravenh nagraveo đoacute cần phải coacute khả năng được xuất ra từ một cocircng cụ nagravey
rồi nhập vagraveo một cocircng cụ khaacutec giống như những dograveng lệnh code
được sản sinh trong một cocircng cụ nagravey coacute thể được sử dụng trong một
cocircng cụ khaacutec Nguyecircn tắc trao đổi đoacute cần phải được aacutep dụng cho
caacutec mocirc higravenh trong một ngocircn ngữ mocirc higravenh hoacutea được định nghĩa chiacutenh
xaacutec
10- TOacuteM TẮT VỀ UML
UML tổ chức một mocirc higravenh thagravenh một loạt caacutec hướng nhigraven thể hiện caacutec khiacutea cạnh
khaacutec nhau của hệ thống Chỉ khi kết hợp tất cả caacutec hướng nhigraven lại với nhau
người ta mới co được một bức tranh trọn vẹn về hệ thống Một hướng nhigraven khocircng
phải lagrave một higravenh vẽ nội dung của noacute được miecircu tả qua caacutec biểu đồ đacircy lagrave những
higravenh vẽ chứa đựng caacutec phần tử mocirc higravenh hoacutea Một biểu đồ bigravenh thường chỉ trigravenh
bagravey một phần nội dung của một hướng nhigraven vagrave một hướng nhigraven được định nghĩa
CuuDuongThanCongcom httpsfbcomtailieudientucntt
với rất nhiều biểu đồ Một biểu đồ chứa caacutec phần tử mocirc higravenh viacute dụ như lớp đối
tượng nuacutet mạng thagravenh phần vagrave những mối quan hệ như nối kết khaacutei quaacutet hoacutea
phụ thuộc Caacutec phần tử nagravey coacute yacute nghĩa (semantic) vagrave caacutec kyacute hiệu higravenh học
Caacutec loại biểu đồ trong UML lagrave biểu đồ lớp biểu đồ đối tượng biểu đồ Use case
biểu đồ trạng thaacutei biểu đồ trigravenh tự biểu đồ cộng taacutec biểu đồ hagravenh động biểu đồ
thagravenh phần vagrave biểu đồ triển khai Mục điacutech của caacutec loại biểu đồ cũng như quy tắc
vẽ chuacuteng sẽ được miecircu tả chi tiết trong chương sau
UML coacute một số cơ chế chung để bổ sung thocircng tin khocircng thể được thể hiện trong
quaacute trigravenh vẽ biểu đồ Những thocircng tin nagravey bao gồm viacute dụ những thagravenh phần
trang triacute caacutec lời ghi chuacute coacute thể chứa bất kỳ loại thocircng tin nagraveo cũng như caacutec thuộc
tiacutenh đặc tả Ngoagravei ra cograven coacute caacutec cơ chế mở rộng bao gồm giaacute trị điacutenh kegravem hạn
chế đối với phần tử vagrave khuocircn mẫu định nghĩa một loại phần tử mocirc higravenh mới dựa
trecircn một phần tử sẵn coacute
Một hệ thống sẽ được miecircu tả trong nhiều loại mocirc higravenh khaacutec nhau mỗi loại mocirc
higravenh nhằm một mục điacutech khaacutec nhau Mocirc higravenh phacircn tiacutech miecircu tả những yecircu cầu
về mặt chức năng vagrave mocirc higravenh hoacutea caacutec lớp ngoagravei đời thực Mocirc higravenh thiết kế
chuyển tải kết quả phacircn tiacutech thagravenh một giải phaacutep kỹ thuật theo khaacutei niệm của
một thiết kế phần mềm hoạt động hoagraven chỉnh Mocirc higravenh xacircy dựng code thể hiện
hệ thống qua việc thảo chương cho noacute trong một ngocircn ngữ lập trigravenh hướng đối
tượng Vagrave cuối cugraveng mocirc higravenh triển khai định vị chương trigravenh vừa được tạo necircn
trong một kiến truacutec vật lyacute bao gồm caacutec maacutey tiacutenh vagrave caacutec trang thiết bị Cocircng việc
được lagravem theo nhiều vograveng lặp khaacutec nhau chứ khocircng phải chỉ lagrave một chuỗi thực
hiện một lần
Để sử dụng UML một caacutech nghiecircm chỉnh cho một dự aacuten coacute thật ngoagravei đời bạn
cần cocircng cụ Một cocircng cụ tacircn tiến coacute khả năng cho người dugraveng vẽ biểu đồ trữ tất
cả caacutec thocircng tin vagraveo một kho chung cho pheacutep dễ dagraveng dịch chuyển giữa caacutec
hướng nhigraven vagrave biểu đồ khaacutec nhau trong mocirc higravenh tạo baacuteo caacuteo vagrave tagravei liệu tạo
khung code từ mocirc higravenh đọc những dograveng code sẵn coacute rồi sản sinh ra mocirc higravenh từ
đoacute vagrave dễ dagraveng tiacutech hợp với caacutec cocircng cụ phaacutet triển khaacutec
PHẦN CAcircU HỎI
Hỏi UML coacute cocircng cụ nagraveo giuacutep nắm bắt caacutec yecircu cầu của khaacutech hagraveng (người sử
dụng)
Đaacutep Use Case
Hỏi Một biểu đồ trong UML coacute bao chứa caacutec hướng nhigraven khaacutec nhau
Đaacutep Sai một hướng nhigraven bao gồm một loại caacutec biểu đồ khaacutec nhau
Hỏi Hatildey liệt kecirc caacutec thagravenh phần chủ yếu của ngocircn ngữ UML
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Đaacutep Hướng nhigraven( View) Biểu đồ (Diagram) Phần tử mocirc higravenh Cơ chế
chung
Hỏi UML coacute cocircng cụ nagraveo phục vụ cho giai đoạn thử nghiệm đơn vị (Unit
Testing)
Đaacutep Biểu đồ lớp vagrave đặc tả lớp
Hỏi UML coacute cocircng cụ nagraveo phục vụ cho giai đoạn thử nghiệm hệ thống (System
Testing)
Đaacutep Use case Diagram
Hỏi UML tạo nền tảng cho việc giao tiếp giữa khaacutech hagraveng nhagrave phacircn tiacutech nhagrave
thiết kế vagrave lập trigravenh viecircn
Đaacutep Đuacuteng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Chƣơng 4 Mocirc higravenh hoacutea USE CASE
1- GIỚI THIỆU USE CASE
Trong giai đoạn phacircn tiacutech người sử dụng cộng taacutec cugraveng nhoacutem phaacutet triển phần
mềm tạo necircn một tổ hợp thocircng tin quan trọng về yecircu cầu đối với hệ thống
Khocircng chỉ lagrave người cung cấp thocircng tin bản thacircn người sử dụng cograven lagrave một thagravenh
phần hết sức quan trọng trong bức tranh toagraven cảnh đoacute vagrave nhoacutem phaacutet triển cần
phải chỉ ra được phương thức hoạt động của hệ thống tương lai theo hướng nhigraven
của người sử dụng Hiểu được điểm quan trọng nagravey lagrave chigravea khoacutea để tạo dựng
được những hệ thống vừa thoả matilden caacutec yecircu cầu đặt ra vừa dễ dagraveng sử dụng
thậm chiacute tạo niềm vui thiacutech trong sử dụng
Như vậy cocircng cụ giuacutep ta mocirc higravenh hoaacute hệ thống từ hướng nhigraven của người sử dụng
gọi lagrave Use Case Vagrave để trả lời rotilde hơn về Use Case ta xeacutet một trường hợp sau
Giả sử tocirci quyết định mua một chiếc maacutey fax mới Khi đến cửa hagraveng maacutey văn
phograveng tocirci mới nhận ra lagrave phải chọn lựa trong một danh saacutech maacutey moacutec rất phong
phuacute Loại maacutey nagraveo sẽ được chọn đacircy Tocirci tự hỏi thật chiacutenh xaacutec migravenh muốn lagravem gigrave
với chiếc maacutey fax sẽ mua Tocirci muốn coacute những tiacutenh năng nagraveo Tocirci muốn dugraveng
bằng giấy thường hay giấy thermal Tocirci muốn copy bằng caacutei maacutey đoacute Tocirci muốn
nối noacute với maacutey tiacutenh của migravenh Tocirci muốn dugraveng noacute vừa lagravem maacutey fax vừa lagravem
scanner Tocirci coacute cần phải gởi fax thật nhanh đến mức độ cần một chức năng chọn
số tăng tốc Liệu tocirci coacute muốn sử dụng maacutey fax nagravey để phacircn biệt giữa một cuacute
điện thoại gọi tới vagrave một bản fax gởi tới
Tất cả chuacuteng ta đều trải qua những kinh nghiệm như vậy khi quyết định mua một
moacuten hagraveng nagraveo đoacute khocircng phải vigrave niềm vui bộc phaacutet Việc chuacuteng ta sẽ lagravem trong
những trường hợp như vậy lagrave một dạng phacircn tiacutech Use Case Chuacuteng ta tự hỏi
migravenh sẽ sử dụng sản phẩm (hay hệ thống) sắp bắt ta bỏ ra một khoản tiền đaacuteng
kể đoacute ra sao Trả lời xong cacircu hỏi trecircn ta mới coacute khả năng chọn ra sản phẩm
thoả matilden những đogravei hỏi của migravenh Điều quan trọng ở đacircy lagrave phải biết những đogravei
hỏi đoacute lagrave gigrave
Loại quy trigravenh nagravey đoacuteng vai trograve rất quan trọng đối với giai đoạn phacircn tiacutech của
một nhoacutem phaacutet triển hệ thống Người dugraveng muốn sử dụng hệ thống tương lai hệ
thống magrave bạn sắp thiết kế vagrave xacircy dựng như thế nagraveo
Use Case lagrave một cocircng cụ trợ giuacutep cho cocircng việc của nhagrave phacircn tiacutech cugraveng người sử
dụng quyết định tiacutenh năng của hệ thống Một tập hợp caacutec Use Case sẽ lagravem nổi
bật một hệ thống theo phương diện những người dugraveng định lagravem gigrave với hệ thống
nagravey
Để lagravem rotilde hơn ta hatildey xeacutet một viacute dụ nhagrave băng lẻ Hệ thống tương lai trong trường
hợp nagravey sẽ soacute nhiều người sử dụng mỗi người sẽ giao tiếp với hệ thống cho một
mục điacutech khaacutec biệt
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Quản trị gia sử dụng hệ thống cho mục điacutech thống kecirc
Nhacircn viecircn tiếp khaacutech sử dụng hệ thống để thực hiện caacutec dịch vụ
phục vụ khaacutech hagraveng
Nhacircn viecircn phograveng đầu tư sử dụng hệ thống để thực hiện caacutec giao
dịch liecircn quan đến đầu tư
Nhacircn viecircn thẩm tra chữ kyacute sử dụng hệ thống cho mục điacutech xaacutec
nhận chữ kyacute vagrave bảo trigrave thocircng tin liecircn quan đến khaacutech hagraveng
Khaacutech hagraveng giao tiếp với hệ thống (nhagrave băng) cho caacutec hoạt động
sử dụng dịch vụ như mở tagravei khoản gửi tiền vagraveo ruacutet tiền mặt hellip
Quaacute trigravenh tương taacutec giữa người sử dụng vagrave hệ thống trong mỗi một tigravenh huống kể
trecircn sẽ khaacutec nhau vagrave phụ thuộc vagraveo chức năng magrave người sử dụng muốn thực thi
cugraveng hệ thống
Nhoacutem phaacutet triển hệ thống cần phải xacircy dựng necircn một kịch bản necircu bật sự tương
taacutec cần thiết giữa người sử dụng vagrave hệ thống trong mỗi khả năng hoạt động Viacute
dụ như kịch bản cho sự tương taacutec giữa nhacircn viecircn thu ngacircn vagrave hệ thống của bộ
phận tiết kiệm trong suốt tiến trigravenh của một giao dịch Một kịch bản khaacutec viacute dụ lagrave
chuỗi tương taacutec xảy ra giữa bộ phận tiết kiệm vagrave bộ phận đầu tư trong một giao
dịch chuyển tiền
Nhigraven chung coacute thể coi một Use case như lagrave tập hợp của một loạt caacutec cảnh kịch
về việc sử dụng hệ thống Mỗi cảnh kịch mocirc tả một chuỗi caacutec sự kiện Mỗi một
chuỗi nagravey sẽ được kiacutech hoạt bởi một người nagraveo đoacute một hệ thống khaacutec hay lagrave một
phần trang thiết bị nagraveo đoacute hoặc lagrave một chuỗi thời gian Những thực thể kiacutech hoạt
necircn caacutec chuỗi sự kiện như thế được gọi lagrave caacutec Taacutec Nhacircn (Actor) Kết quả của
chuỗi nagravey phải coacute giaacute trị sử dụng đối với hoặc lagrave taacutec nhacircn đatilde gacircy necircn noacute hoặc lagrave
một taacutec nhacircn khaacutec
2- MỘT SỐ VIacute DỤ USE CASE
Trong viacute dụ nhagrave băng lẻ ở trecircn một số những Use Case dễ thấy nhất lagrave
Một khaacutech hagraveng mở một tagravei khoản mới
Phograveng đầu tư tiacutenh toaacuten tiền latildei cho caacutec tagravei khoản đầu tư
Một chương trigravenh đầu tư mới được đưa vagraveo aacutep dụng
Yecircu cầu chuyển tiền của khaacutech hagraveng được thực hiện
Chuyển tiền theo kỳ hạn từ một tagravei khoản đầu tư sang một tagravei
khoản tiết kiệm
3- SỰ CẦN THIẾT PHẢI COacute USE CASE
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Use Case lagrave một cocircng cụ xuất sắc để khuyến khiacutech những người dugraveng tiềm năng
noacutei về hệ thống từ hướng nhigraven của họ Đối với người dugraveng chẳng phải bao giờ
việc thể hiện vagrave mocirc tả những yacute định trong việc sử dụng hệ thống cũng lagrave chuyện
dễ dagraveng Một hiện thực coacute thật lagrave người sử dụng thường biết nhiều hơn những gigrave
magrave họ coacute thể diễn tả ra Cocircng cụ Use Case sẽ giuacutep cho nhoacutem phaacutet triển bẻ gatildey
lớp băng đoacute ngoagravei ra một sự trigravenh bagravey trực quan cũng cho pheacutep bạn kết hợp
caacutec biểu đồ Use Case với caacutec loại biểu đồ khaacutec
Saacuteng kiến chủ đạo lagrave locirci cuốn được người dugraveng tham gia vagraveo những giai đoạn đầu
tiecircn của quaacute trigravenh phacircn tiacutech vagrave thiết kế hệ thống Việc nagravey sẽ nacircng cao xaacutec suất
cho việc hệ thống chung cuộc trở thagravenh một cocircng cụ quen thuộc đối với caacutec
người dugraveng magrave noacute dự định sẽ trợ giuacutep ndash thay vigrave lagrave một tập hợp khoacute hiểu vagrave rối
rắm của caacutec khaacutei niệm maacutey tiacutenh magrave người dugraveng trong giới doanh thương coacute cảm
giaacutec khocircng bao giờ hiểu được vagrave khocircng thể lagravem việc cugraveng
Cocircng taacutec locirci keacuteo người sử dụng tham gia tiacutech cực vagraveo quaacute trigravenh phacircn tiacutech lagrave nền
tảng quan trọng cho việc tạo dựng một mocirc higravenh thagravenh cocircng một mocirc higravenh dễ
được người sử dụng hiểu vagrave chấp nhận sau khi đatilde thẩm xaacutec caacutec nhiệm vụ căn
bản Ngoagravei ra Use Case cograven giuacutep nhoacutem phaacutet triển quyết định caacutec lớp magrave hệ
thống phải triển khai
4- MOcirc HIgraveNH HOacuteA USE CASE
Trường hợp sử dụng lagrave một kỹ thuật mocirc higravenh hoacutea được sử dụng để mocirc tả một hệ
thống mới sẽ phải lagravem gigrave hoặc một hệ thống đang tồn tại lagravem gigrave Một mocirc higravenh
Use Case được xacircy dựng qua một quaacute trigravenh mang tiacutenh vograveng lặp (interative)
trong đoacute những cuộc hội thảo bagraven luận giữa nhoacutem phaacutet triển hệ thống vagrave khaacutech
hagraveng (hoặcvagrave người sử dụng cuối) sẽ dẫn tới một đặc tả yecircu cầu được tất cả mọi
người chấp nhận Người cha tinh thần của mocirc higravenh hoacutea Use Case lagrave Ivar
Jacobson ocircng đatilde tạo necircn kỹ thuật mocirc higravenh hoacutea dựa trecircn những kinh nghiệm thu
thập được trong quaacute trigravenh tạo hệ thống AXE của hatildeng Erisson Use Case đatilde nhận
được một sự quan tacircm đặc biệt lớn lao từ phiacutea cộng đồng hướng đối tượng vagrave đatilde
taacutec động lecircn rất nhiều phương phaacutep hướng đối tượng khaacutec nhau
Những thagravenh phần quan trọng nhất của một mocirc higravenh Use Case lagrave Use Case taacutec
nhacircn vagrave hệ thống Ranh giới của hệ thống được định nghĩa qua chức năng tổng
thể magrave hệ thống sẽ thực thi Chức năng tổng thể được thể hiện qua một loạt caacutec
Use Case vagrave mỗi một Use Case đặc tả một chức năng trọn vẹn coacute nghĩa lagrave Use
Case phải thực thi toagraven bộ chức năng đoacute từ sự kiện được kiacutech hoạt đầu tiecircn bởi
một taacutec nhacircn ngoại cảnh cho tới khi chức năng đogravei hỏi được thực hiện hoagraven tất
Một Use Case luocircn luocircn phải cung cấp một giaacute trị nagraveo đoacute cho một taacutec nhacircn giaacute
trị nagravey lagrave những gigrave magrave taacutec nhacircn mong muốn từ phiacutea hệ thống Taacutec nhacircn lagrave bất kỳ
một thực thể ngoại cảnh nagraveo mong muốn tương taacutec với hệ thống Thường thường
đoacute lagrave một người sử dụng của hệ thống nhưng nhiều khi cũng coacute thể lagrave một hệ
CuuDuongThanCongcom httpsfbcomtailieudientucntt
thống khaacutec hoặc lagrave một dạng maacutey moacutec thiết bị phần cứng nagraveo đoacute cần tương taacutec
với hệ thống
Trong kỹ thuật mocirc higravenh hoacutea Use Case hệ thống sẽ coacute higravenh dạng của một hộp
đen vagrave cung cấp caacutec Use Case Hệ thống lagravem điều đoacute như thế nagraveo caacutec Use Case
được thực thi ra sao đoacute lagrave những khiacutea cạnh chưa được đề cập tới trong giai đoạn
nagravey Trong thực tế nếu mocirc higravenh hoacutea Use Case được thực hiện trong những giai
đoạn đầu của dự aacuten thigrave thường nhagrave phaacutet triển sẽ khocircng biết Use Case sau nagravey sẽ
được thực thi (tức lagrave biến thagravenh những dograveng code thật sự) như thế nagraveo
Mục tiecircu chiacutenh yếu đối với caacutec Use Case lagrave
Để quyết định vagrave mocirc tả caacutec yecircu cầu về mặt chức năng của hệ
thống đacircy lagrave kết quả ruacutet ra từ sự thỏa thuận giữa khaacutech hagraveng
(vagravehoặc người sử dụng cuối) vagrave nhoacutem phaacutet triển phần mềm
Để tạo necircn một lời mocirc tả rotilde ragraveng vagrave nhất quaacuten về việc hệ thống
cần phải lagravem gigrave lagravem sao để mocirc higravenh coacute thể được sử dụng nhất quaacuten
suốt toagraven bộ quaacute trigravenh phaacutet triển được sử dụng lagravem cocircng cụ giao
tiếp cho tất cả những người phaacutet triển necircn caacutec yecircu cầu nagravey vagrave để
tạo necircn một nền tảng cho việc tạo necircn caacutec mocirc higravenh thiết kế cung
cấp caacutec chức năng được yecircu cầu
Để tạo necircn một nền tảng cho caacutec bước thử nghiệm hệ thống đảm
bảo hệ thống thỏa matilden đuacuteng những yecircu cầu do người sử dụng đưa
ra Trong thực tế thường lagrave để trả lời cacircu hỏi Liệu hệ thống cuối
cugraveng coacute thực hiện những chức năng magrave khởi đầu khaacutech hagraveng đatilde đề
nghị
Để cung cấp khả năng theo dotildei caacutec yecircu cầu về mặt chức năng được
chuyển thagravenh caacutec lớp cụ thể cũng như caacutec thủ tục cụ thể trong hệ
thống
Để đơn giản hoacutea việc thay đổi vagrave mở rộng hệ thống qua việc thay
đổi vagrave mở rộng mocirc higravenh Use Case sau đoacute chỉ theo dotildei riecircng những
Use Case đatilde bị thay đổi cugraveng những hiệu ứng của chuacuteng trong thiết
kế hệ thống vagrave xacircy dựng hệ thống
Những cocircng việc cụ thể cần thiết để tạo necircn một mocirc higravenh Use Case bao gồm
1 Định nghĩa hệ thống (xaacutec định phạm vi hệ thống)
2 Tigravem ra caacutec taacutec nhacircn cũng như caacutec Use Case
3 Mocirc tả Use Case
4 Định nghĩa mối quan hệ giữa caacutec Use Case
5 Kiểm tra vagrave phecirc chuẩn mocirc higravenh
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Đacircy lagrave một cocircng việc mang tiacutenh tương taacutec rất cao bao gồm những cuộc thảo
luận với khaacutech hagraveng vagrave những người đại diện cho caacutec loại taacutec nhacircn Mocirc higravenh Use
Case bao gồm caacutec biểu đồ Use Case chỉ ra caacutec taacutec nhacircn Use Case vagrave mối quan
hệ của chuacuteng với nhau Caacutec biểu đồ nagravey cho ta một caacutei nhigraven tổng thể về mocirc higravenh
nhưng những lời mocirc tả thực sự của từng Use Case thường lại lagrave văn bản Vigrave caacutec
mocirc higravenh trực quan khocircng thể cung cấp tất cả caacutec thocircng tin cần thiết necircn cần
thiết phải dugraveng cả hai kỹ thuật trigravenh bagravey đoacute
Coacute rất nhiều người quan tacircm đến việc sử dụng caacutec mocirc higravenh Use Case Khaacutech
hagraveng (vagravehoặc người sử dụng cuối) quan tacircm đến chuacuteng vigrave mocirc higravenh Use Case đặc
tả chức năng của hệ thống vagrave mocirc tả xem hệ thống coacute thể vagrave sẽ được sử dụng ra
sao Caacutec Use Case vigrave vậy phải được mocirc tả trong những thuật ngữ vagrave ngocircn ngữ
của khaacutech hagravengngười sử dụng
Nhagrave phaacutet triển cần đến caacutec mocirc higravenh Use Case để hiểu hệ thống cần phải lagravem gigrave
vagrave qua đoacute coacute được một nền tảng cho những cocircng việc tương lai (caacutec mocirc higravenh
khaacutec caacutec cấu truacutec thiết kế vagrave việc thực thi xacircy dựng hệ thống bằng code)
Caacutec nhoacutem chuyecircn gia thử nghiệm tiacutech hợp vagrave thử nghiệm hệ thống cần đến Use
Case để thử nghiệm vagrave kiểm tra xem hệ thống coacute đảm bảo sẽ thực hiện đuacuteng
chức năng đatilde được đặc tả trong giai đoạn đầu
Vagrave cuối cugraveng bất kỳ người nagraveo liecircn quan đến những hoạt động liecircn kết đến chức
năng của hệ thống đều coacute thể quan tacircm đến caacutec mocirc higravenh Use Case viacute dụ như
caacutec nhoacutem tiếp thị baacuten hagraveng hỗ trợ khaacutech hagraveng vagrave caacutec nhoacutem soạn thảo tagravei liệu
Mocirc higravenh Use Case mocirc tả hướng nhigraven Use Case của hệ thống Hướng nhigraven nagravey lagrave
rất quan trọng bởi noacute ảnh hưởng đến tất cả caacutec hướng nhigraven khaacutec của hệ thống
Cả cấu truacutec logic lẫn cấu truacutec physic đều chịu ảnh hưởng từ caacutec Use Case bởi
chức năng được đặc tả trong mocirc higravenh nagravey chiacutenh lagrave những chức năng được thực
thi trong caacutec cấu truacutec kia Mục điacutech cuối cugraveng lagrave thiết kế ra một giải phaacutep thỏa
matilden caacutec yecircu cầu đoacute
Mocirc higravenh hoacutea caacutec Use Case chẳng phải chỉ được dugraveng để nắm bắt caacutec yecircu cầu của
hệ thống mới noacute cũng cograven được sử dụng để hỗ trợ cho việc phaacutet triển một phiecircn
bản mới của hệ thống Khi phaacutet triển một phiecircn bản mới của hệ thống đang tồn
tại người ta sẽ bổ sung thecircm caacutec chức năng mới vagraveo mocirc higravenh Use Case đatilde coacute
bằng caacutech thecircm vagraveo caacutec taacutec nhacircn mới cũng như caacutec Use Case mới hoặc lagrave thay
đổi đặc tả của caacutec Use Case đatilde coacute Khi bổ sung thecircm vagraveo mocirc higravenh Use Case đang
tồn tại hatildey chuacute yacute để khocircng bỏ ra bất kỳ một chức năng nagraveo vẫn cograven được cần tới
5- BIỂU ĐỒ USE CASE
Use Case được mocirc tả trong ngocircn ngữ UML qua biểu đồ Use Case (Use Case
Diagram) vagrave một mocirc higravenh Use Case coacute thể được chia thagravenh một số lượng lớn caacutec
CuuDuongThanCongcom httpsfbcomtailieudientucntt
biểu đồ như thế Một biểu đồ Use Case chứa caacutec phần tử mocirc higravenh biểu thị hệ
thống taacutec nhacircn cũng như Use Case vagrave chỉ ra caacutec mối quan hệ giữa caacutec Use Case
Lời mocirc tả nội dung Use Case thường được cung cấp dưới dạng văn bản Trong
UML lời mocirc tả đoacute được coi lagrave thuộc tiacutenh văn bản (document) của Use Case Lời
mocirc tả nagravey bao chứa những thocircng tin quan trọng định nghĩa caacutec yecircu cầu vagrave chức
năng cụ thể Thay cho việc mocirc tả Use Case bằng văn bản bạn cũng coacute thể vẽ
một biểu đồ hoạt động (activity diagram) Mặc dầu vậy necircn nhớ rằng một Use
Case cần phải được mocirc tả sao cho dễ hiểu vagrave dễ giao tiếp đối với người sử dụng
magrave những cấu truacutec phức tạp như một biểu đồ hoạt động coacute thể gacircy cảm giaacutec xa
lạ đối với những người khocircng quen sử dụng
Toacutem tắt Một biểu đồ Use Case thể hiện
Hệ thống
Taacutec nhacircn vagrave
Use Case
Viacute dụ biểu đồ Use Case trong UML
Higravenh 41- Một viacute dụ biểu đồ Use case trong UML
Trong đoacute
Hệ thống được thể hiện qua higravenh chữ nhật với tecircn hệ thống ở becircn
trecircn
Taacutec nhacircn được thể hiện qua kiacute hiệu higravenh nhacircn
Use Case được thể hiện qua higravenh ellipse
51- Hệ thống
Vigrave hệ thống lagrave một thagravenh phần của mocirc higravenh Use Case necircn ranh giới của hệ thống
magrave ta muốn phaacutet triển cần phải được định nghĩa rotilde ragraveng Xin nhớ rằng một hệ
thống khocircng phải bao giờ cũng nhất thiết lagrave một hệ thống phần mềm noacute coacute thể
lagrave một chiếc maacutey hoặc lagrave một doanh nghiệp Định nghĩa caacutec ranh giới vagrave traacutech
nhiệm của hệ thống khocircng phải bao giờ cũng lagrave việc dễ dagraveng bởi khocircng phải bao
giờ người ta cũng rotilde ragraveng nhigraven ra taacutec vụ nagraveo coacute khả năng được tự động hoacutea tốt
nhất ở hệ thống nagravey vagrave taacutec vụ nagraveo thigrave tốt nhất necircn thực hiện thủ cocircng hoặc dagravenh
CuuDuongThanCongcom httpsfbcomtailieudientucntt
cho caacutec hệ thống khaacutec Một khiacutea cạnh khaacutec cần chuacute yacute lagrave hệ thống cần phải lớn tới
mức độ nagraveo trong phiecircn bản đầu tiecircn của noacute Cố gắng tối đa cho phiecircn bản đầu
tiecircn của hệ thống thường lagrave caacutech magrave người ta hay thực hiện thế nhưng những
mục tiecircu quaacute tầm như vậy coacute thể khiến cho hệ thống trở necircn quaacute lớn vagrave thời gian
để cung cấp hệ thống quaacute lacircu Một saacuteng kiến tốt hơn lagrave xaacutec nhận cho rotilde caacutec chức
năng căn bản vagrave tập trung vagraveo việc định nghĩa một kiến truacutec hệ thống thiacutech hợp
rotilde ragraveng coacute nền tảng rộng mở để nhiều chức năng hơn coacute thể được bổ sung vagraveo
hệ thống nagravey trong caacutec phiecircn bản sau
Yếu tố quan trọng lagrave bạn phải tạo dựng được một bản catalog của caacutec khaacutei niệm
(caacutec thực thể) trung tacircm cugraveng với caacutec thuật ngữ vagrave định nghĩa thiacutech hợp trong
những giai đoạn đầu của thời kỳ phacircn tiacutech Đacircy chưa phải mocirc higravenh phạm vi đối
tượng magrave đuacuteng hơn lagrave một cố gắng để mocirc tả caacutec thuật ngữ của hệ thống hoặc
doanh nghiệp magrave chuacuteng ta cần mocirc higravenh hoacutea Caacutec thuật ngữ sau đoacute sẽ được dugraveng
để mocirc tả Use Case Phương thức cụ thể của catalog nagravey coacute thể rất khaacutec nhau noacute
coacute thể lagrave một mocirc higravenh khaacutei niệm chỉ ra caacutec mối quan hệ đơn giản hoặc chỉ lagrave một
văn bản chứa caacutec thuật ngữ cugraveng lời mocirc tả vắn tắt những thuật ngữ nagravey trong
thế giới thực
52- Taacutec nhacircn
Một taacutec nhacircn lagrave một người hoặc một vật nagraveo đoacute tương taacutec với hệ thống sử dụng
hệ thống Trong khaacutei niệm tương taacutec với hệ thống yacute chuacuteng ta muốn noacutei rằng
taacutec nhacircn sẽ gửi thocircng điệp đến hệ thống hoặc lagrave nhận thocircng điệp xuất phaacutet từ hệ
thống hoặc lagrave thay đổi caacutec thocircng tin cugraveng với hệ thống Noacutei một caacutech ngắn gọn
taacutec nhacircn thực hiện caacutec Use Case Thecircm một điều nữa một taacutec nhacircn coacute thể lagrave
người magrave cũng coacute thể lagrave một hệ thống khaacutec (viacute dụ như lagrave một chiếc maacutey tiacutenh
khaacutec được nối kết với hệ thống của chuacuteng ta hoặc một loại trang thiết bị phần
cứng nagraveo đoacute tương taacutec với hệ thống)
Một taacutec nhacircn lagrave một dạng thực thể (một lớp) chứ khocircng phải một thực thể Taacutec
nhacircn mocirc tả vagrave đại diện cho một vai trograve chứ khocircng phải lagrave một người sử dụng
thật sự vagrave cụ thể của hệ thống Nếu một anh chagraveng John nagraveo đoacute muốn mua hợp
đồng bảo hiểm từ một hatildeng bảo hiểm thigrave vai trograve của anh ta sẽ lagrave người mua hợp
đồng bảo hiểm vagrave đacircy mới lagrave thứ magrave chuacuteng ta muốn mocirc higravenh hoacutea chứ khocircng
phải bản thacircn anh chagraveng John Trong sự thực một con người cụ thể coacute thể đoacuteng
vai trograve lagravem nhiều taacutec nhacircn trong một hệ thống một nhacircn viecircn ngacircn hagraveng đồng
thời cũng coacute thể lagrave khaacutech hagraveng của chiacutenh ngacircn hagraveng đoacute Mặt khaacutec số lượng caacutec
vai trograve magrave một con người cụ thể được pheacutep đảm traacutech trong một hệ thống cũng
coacute thể bị hạn chế viacute dụ cugraveng một người khocircng được pheacutep vừa soạn hoacutea đơn vừa
phecirc duyệt hoacutea đơn đoacute Một taacutec nhacircn sẽ coacute một tecircn vagrave caacutei tecircn nagravey cần phải phản
aacutenh lại vai trograve của taacutec nhacircn Caacutei tecircn đoacute khocircng được phản aacutenh lại một thực thể
riecircng biệt của một taacutec nhacircn magrave cũng khocircng phản aacutenh chức năng của taacutec nhacircn
đoacute
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Một taacutec nhacircn giao tiếp với hệ thống bằng caacutech gửi hoặc lagrave nhận thocircng điệp
giống như khaacutei niệm chuacuteng ta đatilde quen biết trong lập trigravenh hướng đối tượng Một
Use Case bao giờ cũng được kiacutech hoạt bởi một taacutec nhacircn gửi thocircng điệp đến cho
noacute Khi một Use Case được thực hiện Use Case coacute thể gửi thocircng điệp đến một
hay lagrave nhiều taacutec nhacircn Những thocircng điệp nagravey cũng coacute thể đến với caacutec taacutec nhacircn
khaacutec becircn cạnh chiacutenh taacutec nhacircn đatilde kiacutech hoạt vagrave gacircy ra Use Case
Taacutec nhacircn cũng coacute thể được xếp loại Một taacutec nhacircn chiacutenh (Primary Actor) lagrave taacutec
nhacircn sử dụng những chức năng căn bản của hệ thống tức lagrave caacutec chức năng
chiacutenh Viacute dụ trong một hệ thống bảo hiểm một taacutec nhacircn căn bản coacute thể lagrave taacutec
nhacircn xử lyacute việc ghi danh vagrave quản lyacute caacutec hợp đồng bảo hiểm Một taacutec nhacircn phụ
(secondary actor) lagrave taacutec nhacircn sử dụng caacutec chức nặng phụ của hệ thống viacute dụ
như caacutec chức năng bảo trigrave hệ thống như quản trị ngacircn hagraveng dữ liệu giao tiếp
back-up vagrave caacutec taacutec vụ quản trị khaacutec Một viacute dụ cho taacutec nhacircn phụ coacute thể lagrave nhagrave
quản trị hoặc lagrave một nhacircn viecircn sử dụng chức năng trong hệ thống để ruacutet ra caacutec
thocircng tin thống kecirc về doanh nghiệp Cả hai loại taacutec nhacircn nagravey đều được mocirc higravenh
hoacutea để đảm bảo mocirc tả đầy đủ caacutec chức năng của hệ thống mặc dugrave caacutec chức
năng chiacutenh mới thật sự nằm trong mối quan tacircm chủ yếu của khaacutech hagraveng
Taacutec nhacircn cograven coacute thể được định nghĩa theo dạng taacutec nhacircn chủ động (active actor)
hay taacutec nhacircn thụ động (passive actor) Một taacutec nhacircn chủ động lagrave taacutec nhacircn gacircy ra
Use Case trong khi taacutec nhacircn thụ động khocircng bao giờ gacircy ra Use Case magrave chỉ
tham gia vagraveo một hoặc lagrave nhiều Use Case
53- Tigravem taacutec nhacircn
Khi nhận diện taacutec nhacircn coacute nghĩa lagrave chuacuteng ta lọc ra caacutec thực thể đaacuteng quan tacircm
theo khiacutea cạnh sử dụng vagrave tương taacutec với hệ thống Sau đoacute chuacuteng ta coacute thể thử
đặt migravenh vagraveo vị triacute của taacutec nhacircn để cố gắng nhận ra caacutec yecircu cầu vagrave đogravei hỏi của
taacutec nhacircn đối với hệ thống vagrave xaacutec định taacutec nhacircn cần những Use Case nagraveo Coacute thể
nhận diện ra caacutec taacutec nhacircn qua việc trả lời một số caacutec cacircu hỏi như sau
Ai sẽ sử dụng những chức năng chiacutenh của hệ thống (taacutec nhacircn
chiacutenh)
Ai sẽ cần sự hỗ trợ của hệ thống để thực hiện những taacutec vụ hagraveng
ngagravey của họ
Ai sẽ cần bảo trigrave quản trị vagrave đảm bảo cho hệ thống hoạt động (taacutec
nhacircn phụ)
Hệ thống sẽ phải xử lyacute vagrave lagravem việc với những trang thiết bị phần
cứng nagraveo
Hệ thống cần phải tương taacutec với caacutec hệ thống khaacutec nagraveo Nhoacutem caacutec
hệ thống nagravey được chia ra lagravem hai nhoacutem nhoacutem kiacutech hoạt cho mối
quan hệ với hệ thống vagrave nhoacutem magrave hệ thống cần phải xacircy dựng của
CuuDuongThanCongcom httpsfbcomtailieudientucntt
chuacuteng ta sẽ thiết lập quan hệ Khaacutei niệm hệ thống bao gồm cả caacutec
hệ thống maacutey tiacutenh khaacutec cũng như caacutec ứng dụng khaacutec trong chiacutenh
chiếc maacutey tiacutenh magrave hệ thống nagravey sẽ hoạt động
Ai hay caacutei gigrave quan tacircm đến kết quả (giaacute trị) magrave hệ thống sẽ sản
sinh ra
Khi đi tigravem những người sử dụng hệ thống đừng quan saacutet những người đang ngồi
ở trước magraven higravenh maacutey tiacutenh Necircn nhớ rằng người sử dụng coacute thể lagrave bất kỳ người
nagraveo hay bất kỳ vật nagraveo tương taacutec hoặc trực tiếp hoặc giaacuten tiếp với hệ thống vagrave
sử dụng caacutec dịch vụ của hệ thống nagravey để đạt đến một kết quả nagraveo đoacute Đừng
quecircn rằng mocirc higravenh hoacutea Use Case được thực hiện để mocirc higravenh hoacutea một doanh
nghiệp vigrave thế taacutec nhacircn thường thường lagrave khaacutech hagraveng của doanh nghiệp đoacute Từ
đoacute suy ra họ khocircng phải lagrave người sử dụng theo nghĩa đơn giản vagrave trực tiếp lagrave
người ngồi trước magraven higravenh maacutey tiacutenh vagrave thao taacutec với maacutey tiacutenh
Để coacute thể nhận dạng được tốt nhiều taacutec nhacircn khaacutec nhau hatildey tiến hagravenh nghiecircn
cứu những người sử dụng của hệ thống hiện thời (một hệ thống thủ cocircng hoặc
một hệ thống đang tồn tại) hỏi xem họ đoacuteng những vai trograve nagraveo khi thực thi cocircng
việc hagraveng ngagravey của họ với hệ thống Cũng người sử dụng đoacute coacute thể thực thi nhiều
vai trograve khaacutec nhau tại nhiều thời điểm khaacutec nhau tugravey thuộc vagraveo việc chức năng
nagraveo trong hệ thống đang được sử dụng
Xin nhắc lại một taacutec nhacircn lagrave một vai trograve (một lớp) chứ khocircng phải một thực thể
riecircng lẻ Mặc dugrave vậy khi cung cấp viacute dụ lagrave một vagravei caacutec thực thể của một taacutec nhacircn
bạn coacute thể đảm bảo rằng taacutec nhacircn đoacute thật sự tồn tại Một taacutec nhacircn phải coacute một
sự liecircn kết (Association) nagraveo đoacute với một hoặc lagrave nhiều Use Case Mặc dugrave coacute
những taacutec nhacircn coacute thể khocircng kiacutech hoạt necircn một Use Case nagraveo nhưng taacutec nhacircn
đoacute sẽ giao tiếp iacutet nhất với một Use Case tại một thời điểm nagraveo đoacute Cần phải đặt
tecircn cho taacutec nhacircn lagravem sao để tecircn phản aacutenh đuacuteng vai trograve của taacutec nhacircn đoacute trong hệ
thống
54- Biểu diễn taacutec nhacircn trong ngocircn ngữ UML
Taacutec nhacircn trong UML lagrave một lớp với biệt ngữ Actor (Taacutec nhacircn) vagrave tecircn của lớp
nagravey lagrave tecircn của taacutec nhacircn (phản aacutenh vai trograve của taacutec nhacircn) Một lớp taacutec nhacircn coacute thể
vừa coacute thuộc tiacutenh (attribute) lẫn hagravenh vi (method) cũng như một thuộc tiacutenh tagravei
liệu (document) mocirc tả taacutec nhacircn đoacute Một lớp taacutec nhacircn coacute một biểu tượng chuẩn
hoacutea biểu tượng higravenh nhacircn
Higravenh 42- biểu tượng taacutec nhacircn trong UML
CuuDuongThanCongcom httpsfbcomtailieudientucntt
55- Use Case
Một Use Case lagrave đại diện cho một chức năng nguyecircn vẹn magrave một taacutec nhacircn nhận
được Một Use Case trong ngocircn ngữ UML được định nghĩa lagrave một tập hợp của caacutec
chuỗi hagravenh động magrave một hệ thống thực hiện để tạo ra một kết quả coacute thể quan
saacutet được tức lagrave một giaacute trị đến với một taacutec nhacircn cụ thể Những hagravenh động nagravey
coacute thể bao gồm việc giao tiếp với một loạt caacutec taacutec nhacircn cũng như thực hiện tiacutenh
toaacuten vagrave cocircng việc nội bộ becircn trong hệ thống
Caacutec tiacutenh chất tiecircu biểu của một Use Case lagrave
Một Use Case bao giờ cũng được gacircy ra bởi một taacutec nhacircn được
thực hiện nhacircn danh một taacutec nhacircn nagraveo đoacute Taacutec nhacircn phải ra lệnh
cho hệ thống để thực hiện Use Case đoacute dugrave lagrave trực tiếp hay giaacuten tiếp
Hiếm khi coacute taacutec nhacircn khocircng liecircn quan đến việc gacircy ra một Use Case
nagraveo đoacute
Một Use Case phải cung cấp một giaacute trị cho một taacutec nhacircn Giaacute trị
đoacute khocircng phải bao giờ cũng cần thiết phải nổi trội ra ngoagravei nhưng
luocircn phải được thấy rotilde
Một Use Case lagrave phải hoagraven tất Một trong những lỗi thường gặp lagrave
sẻ chia một Use Case thagravenh caacutec Use Case nhỏ hơn vagrave caacutec Use Case
nagravey thực thi lẫn nhau giống như việc gọi hagravem cho một ngocircn ngữ lập
trigravenh Một Use Case sẽ khocircng được coi lagrave hoagraven tất chừng nagraveo magrave giaacute
trị cuối cugraveng của noacute chưa được sản sinh ra thậm chiacute ngay cả khi đatilde
xẩy ra nhiều động taacutec giao tiếp (viacute dụ như đối thoại với người sử
dụng)
Use Case được nối với taacutec nhacircn qua liecircn kết (association) Đường liecircn kết chỉ ra
những taacutec nhacircn nagraveo giao tiếp với Use Case nagraveo Mối liecircn kết bigravenh thường ra lagrave
một mối quan hệ 1-1 vagrave khocircng coacute hướng Điều đoacute muốn noacutei lecircn rằng một thực
thể của lớp taacutec nhacircn sẽ giao tiếp với một thực thể của một Use Case vagrave cả hai coacute
thể giao tiếp với nhau trong cả hai chiều Một Use Case sẽ được đặt tecircn theo một
thực thể magrave Use Case sẽ thực hiện viacute dụ như kyacute hợp đồng bảo hiểm cập nhật
danh saacutech vvhellip vagrave thường lagrave một cụm từ hơn lagrave chỉ một từ riecircng lẻ
Một Use Case lagrave một lớp chứ khocircng phải một thực thể Noacute mocirc tả trọn vẹn một
chức năng kể cả caacutec giải phaacutep bổ sung vagrave thay thế coacute thể coacute caacutec lỗi coacute thể xảy
ra cũng như những ngoại lệ coacute thể xảy ra trong quaacute trigravenh thực thi Một kết quả
của sự thực thể hoacutea một Use Case được gọi lagrave một cảnh kịch (scenario) vagrave noacute đại
diện cho một sự sử dụng cụ thể của hệ thống (một đường dẫn thực thi riecircng biệt
qua hệ thống) Viacute dụ một cảnh kịch của Use Case Kyacute hợp đồng bảo hiểm coacute thể
lagrave John liecircn hệ với hệ thống qua điện thoại rồi sau đoacute kyacute hợp đồng bảo hiểm ocirc tocirc
cho chiếc xe Toyota Carolla magrave anh ta vừa mua
CuuDuongThanCongcom httpsfbcomtailieudientucntt
56- Tigravem Use Case
Quaacute trigravenh tigravem caacutec Use Case bắt đầu với caacutec taacutec nhacircn đatilde được xaacutec định ở phần
trước Đối với mỗi taacutec nhacircn hatildey hỏi caacutec cacircu hỏi sau
a Taacutec nhacircn nagravey cần những chức năng nagraveo từ hệ thống Hagravenh động chiacutenh
của taacutec nhacircn lagrave gigrave
Viacute dụ cho một giao dịch ruacutet tiền becircn maacutey ATM trong một nhagrave băng
lẻ caacutec hagravenh động chiacutenh của khaacutech hagraveng (taacutec nhacircn) coacute thể lagrave
Đuacutet thẻ vagraveo maacutey ATM
Nhập password
Nhập loại chuyển dịch
Nhập số tiền mặt muốn ruacutet ra
Yecircu cầu về loại tiền
Nhặt tiền ra từ maacutey
Ruacutet thẻ vagrave tờ in kết quả giao dịch
b Taacutec nhacircn coacute cần phải đọc phải tạo phải hủy bỏ phải sửa chữa hay lagrave
lưu trữ một loại thocircng tin nagraveo đoacute trong hệ thống
Viacute dụ
Nhacircn viecircn nhagrave băng liệu coacute quyền truy xuất hay thay đổi
mức tiền latildei
Khaacutech hagraveng coacute thể thay đổi password của migravenh
c Taacutec nhacircn coacute cần phải baacuteo cho hệ thống biết về những sự kiện nagraveo đoacute
Những sự kiện như thế sẽ đại diện cho những chức năng nagraveo
Viacute dụ
Khaacutech hagraveng kết thuacutec tagravei khoản nhacircn viecircn cung cấp những
thocircng tin nagravey cho hệ thống
Coacute một chương trigravenh đầu tư mới caacutec chi tiết của chương
trigravenh nagravey sẽ phải được nhacircn viecircn nhagrave băng nhập vagraveo hệ thống
d Hệ thống coacute cần phải thocircng baacuteo cho Actor về những thay đổi bất ngờ
trong nội bộ hệ thống
Trong tagravei khoản cograven quaacute iacutet tiền
Ba kỳ liecircn tiếp tiền lương chưa đổ về tagravei khoản
CuuDuongThanCongcom httpsfbcomtailieudientucntt
e Cocircng việc hagraveng ngagravey của taacutec nhacircn coacute thể được đơn giản hoacutea hoặc hữu
hiệu hoacutea qua caacutec chức năng mới trong hệ thống (thường đacircy lagrave những
chức năng tiecircu biểu chưa được tự động hoacutea trong hệ thống)
f Caacutec cacircu hỏi khaacutec
Use Case coacute thể được gacircy ra bởi caacutec sự kiện nagraveo khaacutec
Viacute dụ
Sự kiện thời gian Cuối thaacuteng hết hạn đầu tư
Sự kiện bigravenh thường của hệ thống Tự động chuyển tiền theo
caacutec lệnh xaacutec định trước
Caacutec sự kiện bất bigravenh thường Hợp đồng đầu tư kết thuacutec trước
thời hạn
Hệ thống cần những thocircng tin đầu vagraveođầu ra nagraveo Những thocircng
tin đầu vagraveođầu ra đoacute từ đacircu tới vagrave sẽ đi đacircu
Khoacute khăn vagrave thiếu hụt chiacutenh trong hệ thống hiện thời nằm ở đacircu
(thủ cocircng tự động hoacutea)
Đối với nhoacutem cacircu hỏi cuối khocircng coacute nghĩa lagrave Use Case ở đacircy khocircng coacute taacutec nhacircn
magrave taacutec nhacircn sẽ được nhận ra chỉ khi chuacuteng ta nhận diện ra caacutec Use Case nagravey vagrave
sau đoacute xaacutec định taacutec nhacircn dựa trecircn cơ sở lagrave Use Case Xin nhắc lại một Use Case
bao giờ cũng phải được liecircn kết với iacutet nhất một taacutec nhacircn
57- Viacute dụ tigravem Use Case
Nhagrave băng ABC đưa ra caacutec yecircu cầu sau
Một khaacutech hagraveng coacute thể muốn gửi tiền vagraveo ruacutet tiền ra hoặc đơn giản
kiểm tra lại số tiền trong tagravei khoản của anh ta qua maacutey tự động ruacutet
tiền (ATM) Khi đưa tiền vagraveo hoặc ruacutet tiền ra cần phải ghi ra giấy
kết quả những chuyển dịch đatilde thực hiện vagrave trao tờ giấy nagravey cho
khaacutech hagraveng
Quan saacutet caacutec chức năng căn bản vagrave caacutec thagravenh phần tham gia ta thấy coacute hai taacutec
nhacircn dễ nhận ra nhất lagrave khaacutech hagraveng vagrave nhacircn viecircn thu ngacircn
Qua đoacute coacute thể nhacircn dạng caacutec Use Case sau
Gửi tiền vagraveo
Ruacutet tiền ra
Kiểm tra mức tiền trong tagravei khoản
Thực hiện caacutec chuyển dịch nội bộ hệ thống
In kết quả caacutec chuyển dịch đatilde thực hiện
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 43 ndash Caacutec Use case trong hệ thống ATM
Use Case gửi tiền vagraveo vagrave ruacutet tiền ra phụ thuộc vagraveo Use Case thực hiện caacutec
chuyển dịch trong nội bộ hệ thống việc thực hiện nagravey về phần noacute lại phụ thuộc
vagraveo chức năng in ra caacutec cocircng việc đatilde được thực hiện Kiểm tra mức tiền trong tagravei
khoản lagrave một Use Case độc lập khocircng phụ thuộc vagraveo caacutec Use Case khaacutec
6- CAacuteC BIẾN THỂ (VARIATIONS) TRONG MỘT USE CASE
Mỗi Use Case sẽ coacute một dograveng hagravenh động chiacutenh (Basic Course) Đoacute lagrave tiến trigravenh
bigravenh thường hay tiến trigravenh mong đợi đối với Use Case nagravey
Ngoagravei ra coacute thể cograven coacute một hay nhiều dograveng hagravenh động thay thế (Alternative)
khaacutec Chuacuteng coacute thể được chia lagravem hai nhoacutem chiacutenh
Thay thế bigravenh thường (Normal Alternative)
Điều kiện gacircy lỗi (Error Condidtions)
Những gigrave mang tiacutenh bigravenh thường hơn trong Use Case được gọi lagrave Thay thế bigravenh
thường
Coacute thể miecircu tả caacutec dograveng hagravenh động thay thế bằng từ ngữ (xem phần tagravei liệu Use
Case )
Viacute dụ một khaacutech hagraveng coacute thể chọn caacutec loại giao dịch sau của ATM
Gửi tiền vagraveo
Ruacutet tiền ra
Kiểm tra mức tiền trong tagravei khoản
Đacircy lagrave những viacute dụ cho caacutec dograveng hagravenh động thay thế bigravenh thường
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Điều kiện gacircy lỗi đại diện cho những bước tiến hagravenh bất bigravenh thường trong một
Use Case Cần phải tiacutenh trước đến những điều kiện gacircy lỗi đoacute viacute dụ
Mức tiền trong tagravei khoản khocircng đủ để tiến hagravenh giao dịch
Password khocircng đuacuteng
ATM bị nghẽn thẻ
Higravenh sau necircu bật dograveng hagravenh động chiacutenh vagrave những dograveng hagravenh động thay thế cũng
như sự khaacutec biệt của chuacuteng đối với tiến trigravenh mong đợi của Use Case
Higravenh 44 ndash Caacutec tiến trigravenh trong hệ thống ATM
7- QUAN HỆ GIỮA CAacuteC USE CASE
Coacute ba loại quan hệ Use Case Quan hệ mở rộng quan hệ sử dụng vagrave quan hệ tạo
nhoacutem Quan hệ mở rộng vagrave quan hệ sử dụng lagrave hai dạng khaacutec nhau của tiacutenh thừa
kế Quan hệ tạo nhoacutem lagrave một phương caacutech để đặt nhiều Use Case chung với
nhau vagraveo trong một goacutei
71- Quan hệ mở rộng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Nhiều khi trong quaacute trigravenh phaacutet triển Use Case người ta thấy một số Use Case đatilde
tồn tại cung cấp một phần những chức năng cần thiết cho một Use Case mới
Trong một trường hợp như vậy coacute thể định nghĩa một Use Case mới lagrave Use Case
cũ cộng thecircm một phần mới Một Use Case như vậy được gọi lagrave một Use Case mở
rộng (Extended Use Case ) Trong quan hệ mở rộng Use Case gốc (Base Use
Case ) được dugraveng để mở rộng phải lagrave một Use Case hoagraven thiện Use Case mở
rộng khocircng nhất thiết phải sử dụng toagraven bộ hagravenh vi của Use Case gốc
Biểu đồ sau chỉ ra Use Case ―Kyacute hợp đồng mua ocirc tocirc lagrave Use Case mở rộng của
Kyacute hợp đồng bảo hiểm
Higravenh 45 - Quan hệ mở rộng giữa caacutec Use Case
Quan hệ mở rộng giữa caacutec Use Case được biểu thị bằng đoạn thẳng với higravenh tam
giaacutec rỗng trỏ về phiacutea Use Case được dugraveng để mở rộng đi kegravem với stereotype
ltltextendsgtgt
72- Quan hệ sử dụng
Khi một nhoacutem caacutec Use Case cugraveng chung một hagravenh vi nagraveo đoacute thigrave hagravenh vi nagravey coacute
thể được taacutech riecircng ra thagravenh một Use Case riecircng biệt vagrave noacute coacute thể được sử dụng
bởi caacutec Use Case kia một mối quan hệ như vậy được gọi lagrave quan hệ sử dụng
Trong quan hệ sử dụng phải sử dụng toagraven bộ Use Case khaacutei quaacutet hoacutea noacutei một
caacutech khaacutec ta coacute một Use Case nagravey sử dụng toagraven bộ một Use Case khaacutec Caacutec
hagravenh động trong Use Case khaacutei quaacutet hoacutea khocircng cần phải được sử dụng trong
cugraveng một tiến trigravenh Chuacuteng coacute thể được trộn lẫn với caacutec hagravenh động xảy ra trong
Use Case chuyecircn biệt hoacutea
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 46 - Quan hệ sử dụng giữa caacutec Use Case
Quan hệ sử dụng giữa caacutec Use Case được biểu thị bằng đoạn thẳng với higravenh tam
giaacutec rỗng trỏ về phiacutea Use Case được sử dụng đi kegravem với stereotype ltltusesgtgt
73- Quan hệ chung nhoacutem
Khi một số caacutec Use Case cugraveng xử lyacute caacutec chức năng tương tự hoặc coacute thể liecircn
quan đến nhau theo một phương thức nagraveo đoacute người ta thường nhoacutem chuacuteng lại
với nhau
Nhoacutem caacutec Use Case được thực hiện bằng khaacutei niệm Goacutei (Package) của UML Goacutei
khocircng cung cấp giaacute trị gia tăng cho thiết kế
Viacute dụ tất cả caacutec Use Case coacute liecircn quan đến sự tương taacutec giữa khaacutech hagraveng vagrave
nhacircn viecircn thu ngacircn sẽ được nhoacutem thagravenh Package Khaacutech hagraveng- Nv thu ngacircn
Higravenh 47 ndash Package của UML
Toacutem tắt về Use Case với maacutey ATM trong ngacircn hagraveng lẻ
Cho tới nay chuacuteng ta đatilde xaacutec định được một vagravei Use Case phacircn tiacutech dograveng hagravenh
động chiacutenh cũng như caacutec dograveng hagravenh động thay thế cũng như ruacutet ra caacutec mối
quan hệ giữa chuacuteng Biểu đồ sau tổng hợp những thocircng tin đatilde thu thập được về
nhoacutem caacutec Use Case căn bản của một hệ thống ATM
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Higravenh 48 - Biểu đồ một số Use Case trong hệ thống ATM
8- MIEcircU TẢ USE CASE
Như đatilde trigravenh bagravey lời miecircu tả một Use Case thường được thực hiện trong văn bản
Đacircy lagrave lời đặc tả đơn giản vagrave nhất quaacuten về việc caacutec taacutec nhacircn vagrave caacutec Use Case (hệ
thống) tương taacutec với nhau ra sao Noacute tập trung vagraveo ứng xử đối ngoại của hệ
thống vagrave khocircng đề cập tới việc thực hiện nội bộ becircn trong hệ thống Ngocircn ngữ vagrave
caacutec thuật ngữ được sử dụng trong lời miecircu tả chiacutenh lagrave ngocircn ngữ vagrave caacutec thuật ngữ
được sử dụng bởi khaacutech hagravengngười dugraveng
Văn bản miecircu tả cần phải bao gồm những điểm sau
Mục điacutech của Use Case Mục điacutech chung cuộc của Use Case lagrave gigrave
Caacutei gigrave cần phải được đạt tới Use Case noacutei chung đều mang tiacutenh
hướng mục điacutech vagrave mục điacutech của mỗi Use Case cần phải rotilde ragraveng
Use Case được khởi chạy như thế nagraveo Taacutec nhacircn nagraveo gacircy ra sự thực
hiện Use Case nagravey Trong hoagraven cảnh nagraveo
Chuỗi caacutec thocircng điệp giữa taacutec nhacircn vagrave Use Case Use Case vagrave caacutec
taacutec nhacircn trao đổi thocircng điệp hay sự kiện nagraveo để thocircng baacuteo lẫn cho
nhau cập nhật hoặc nhận thocircng tin vagrave giuacutep đỡ nhau quyết định
Yếu tố nagraveo sẽ miecircu tả dograveng chảy chiacutenh của caacutec thocircng điệp giữa hệ
thống vagrave taacutec nhacircn vagrave những thực thể nagraveo trong hệ thống được sử
dụng hoặc lagrave bị thay đổi
Dograveng chảy thay thế trong một Use Case Một Use Case coacute thể coacute
những dograveng thực thi thay thế tugravey thuộc vagraveo điều kiện Hatildey nhắc đến
caacutec yếu tố nagravey nhưng chuacute yacute đừng miecircu tả chuacuteng quaacute chi tiết đến
CuuDuongThanCongcom httpsfbcomtailieudientucntt
mức độ chuacuteng coacute thể ―che khuất― dograveng chảy chiacutenh của caacutec hoạt
động trong trường hợp căn bản Những động taacutec xử lyacute lỗi đặc biệt sẽ
được miecircu tả thagravenh caacutec Use Case khaacutec
Use Case sẽ kết thuacutec với một giaacute trị đối với taacutec nhacircn như thế nagraveo
Hatildey miecircu tả khi nagraveo Use Case được coi lagrave đatilde kết thuacutec vagrave loại giaacute trị
magrave noacute cung cấp đến taacutec nhacircn
Hatildey nhớ rằng lời miecircu tả nagravey sẽ xaacutec định những gigrave được thực thi coacute liecircn quan đến
taacutec nhacircn becircn ngoagravei chứ khocircng phải những sự việc được thực hiện becircn trong hệ
thống Văn bản phải rotilde ragraveng nhất quaacuten khiến cho khaacutech hagraveng coacute thể dễ dagraveng
hiểu vagrave thẩm tra chuacuteng (để rồi đồng yacute rằng noacute đại diện cho những gigrave magrave anhcocirc
ta muốn từ phiacutea hệ thống) Traacutenh dugraveng những cacircu văn phức tạp khoacute diễn giải vagrave
dễ hiểu lầm
Một Use Case cũng coacute thể được miecircu tả qua một biểu đồ hoạt động Biểu đồ hoạt
động nagravey chỉ ra chuỗi caacutec hagravenh động thứ tự của chuacuteng caacutec quyết định chọn lựa
để xaacutec định xem hagravenh động nagraveo sau đoacute sẽ được thực hiện
Để bổ sung cho lời miecircu tả một Use Case người ta thường đưa ra một loạt caacutec
cảnh kịch cụ thể để minh họa điều gigrave sẽ xảy ra một khi Use Case nagravey được thực
thể hoacutea Lời miecircu tả cảnh kịch minh họa một trường hợp đặc biệt khi cả taacutec
nhacircn lẫn Use Case đều được coi lagrave một thực thể cụ thể Khaacutech hagraveng coacute thể dễ
dagraveng hiểu hơn toagraven bộ một Use Case phức tạp nếu coacute những cảnh kịch được
miecircu tả thực tiễn hơn minh họa lại lối ứng xử vagrave phương thức hoạt động của hệ
thống Nhưng xin nhớ rằng một lời miecircu tả cảnh kịch chỉ lagrave một sự bổ sung chứ
khocircng phải lagrave ứng cử viecircn để thay thế cho lời miecircu tả Use Case
Sau khi caacutec Use Case đatilde được miecircu tả một hoạt động vagrave một cocircng việc đặc biệt
cần phải thực hiện lagrave thẩm tra xem caacutec mối quan hệ (đatilde đề cập tới trong phần
27) coacute được nhận diện khocircng Trước khi tất cả caacutec Use Case được miecircu tả nhagrave
phaacutet triển chưa thể coacute được những kiến thức hoagraven tất vagrave tổng thể để xaacutec định
caacutec mối quan hệ thiacutech hợp thử nghiệm lagravem theo phương thức đoacute coacute thể sẽ dẫn
đến một tigravenh huống nguy hiểm Trong thời gian thực hiện cocircng việc nagravey hatildey trả
lời caacutec cacircu hỏi sau
Tất cả caacutec taacutec nhacircn liecircn quan đến một Use Case coacute mối liecircn kết
giao tiếp với Use Case đoacute khocircng
Coacute tồn tại những sự tương tự giữa một loạt caacutec taacutec nhacircn minh họa
một vai trograve chung vagrave nhoacutem nagravey liệu coacute thể được miecircu tả lagrave một lớp
taacutec nhacircn căn bản (base class)
Coacute tồn tại những sự tương tự giữa một loạt caacutec Use Case minh họa
một dograveng chảy hagravenh động chung Nếu coacute liệu điều nagravey coacute thể được
miecircu tả lagrave một mối quan hệ sử dụng đến với một Use Case khaacutec
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Coacute tồn tại những trường hợp đặc biệt của một Use Case coacute thể
được miecircu tả lagrave một mối quan hệ mở rộng
Coacute tồn tại một taacutec nhacircn nagraveo hay một Use Case nagraveo khocircng coacute mối
liecircn kết giao tiếp Nếu coacute chắc chắn ở đacircy đatilde coacute chuyện lầm lạc sai
traacutei Tại sao lại xuất hiện taacutec nhacircn nagravey
Coacute lời yecircu cầu nagraveo về chức năng đatilde được xaacutec định nhưng lại khocircng
được bất kỳ một Use Case nagraveo xử lyacute Nếu thế hatildey tạo một Use
Case cho yecircu cầu đoacute
Văn bản miecircu tả một Use Case đơn giản
Viacute dụ Use Case Cung Cấp Thocircng Tin Về Một Tagravei Khoản Tại Nhagrave Băng ABC Sau
khi phacircn tiacutech hệ thống ta nhận thấy cần coacute một Use Case để in lecircn magraven higravenh của
nhacircn viecircn nhagrave băng tất cả những chi tiết về một tagravei khoản của một khaacutech hagraveng
Đặc tả Use Case
Chi tiết tagravei khoản tecircn Use Case
Số Use Case UCSEC35
Miecircu tả ngắn miecircu tả ngắn gọn Use Case
Use Case chi tiết tagravei khoản cho pheacutep nhacircn viecircn nhagrave băng xem caacutec chi tiết của
một tagravei khoản magrave anh ta định tigravem hiểu
Dograveng chảy caacutec sự kiện dograveng logic chung
Nhacircn viecircn chọn Chi Tiết Tagravei Khoản trecircn menu Một con đường khaacutec để chỉ ra caacutec
thocircng tin chi tiết của tagravei khoản lagrave gọi từ Magraven Higravenh Toacutem Tắt Thocircng Tin Về Tagravei
Khoản (xem Use Case số UCSEC99)
Dograveng hagravenh động chiacutenh dograveng logic chi tiết
Mỗi khaacutech hagraveng sẽ coacute một số định danh gọi lagrave CustomerId Một khaacutech hagraveng coacute
thể coacute nhiều tagravei khoản Sau khi nhacircn viecircn nhập CustomerId vagraveo hệ thống magraven
higravenh phải in ra tất cả những tagravei khoản thuộc về khaacutech hagraveng nagravey vagrave thuộc về nhagrave
băng ABC rải raacutec tại tất cả caacutec chi nhaacutenh Khi chọn tiếp loại tagravei khoản vagrave số tagravei
khoản caacutec chi tiết của tagravei khoản mong muốn sẽ được in ra
Loại tagravei khoản tiết kiệm Nếu loại tagravei khoản được chọn lagrave tagravei khoản tiết kiệm thigrave
theo Use Case số UCSEC45 caacutec chi tiết sau đacircy sẽ được in ra
Mức tiền hiện coacute
Caacutec tờ sec chưa thanh toaacuten
Lượng tiền tiacuten dụng được pheacutep
Lượng tiền latildei cho tới ngagravey hocircm nay
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Lượng tiền tối thiểu cần phải coacute trong tagravei khoản
Loại tagravei khoản đầu tư Nếu loại tagravei khoản được chọn lagrave loại đầu tư thigrave theo Use
Case số UCSEC46 caacutec chi tiết sau đacircy sẽ được in ra
Hạn đầu tư
Số tiền đầu tư
Ngagravey đầu tư
Lượng tiền cuối hạn
Ngagravey cuối hạn
Tỷ lệ lời
Dograveng hagravenh động thay thế chuỗi logic thay thế
Khocircng tigravem thấy chi tiết Khi chọn một số tagravei khoản khocircng thiacutech hợp (khocircng coacute tagravei
khoản tương ứng) dugrave vigrave lyacute do chức năng hay kỹ thuật theo Use Case số
UCSEC12 hệ thống sẽ đưa ra một magraven higravenh baacuteo lỗi
Điều kiện thoaacutet Use Case kết thuacutec như thế nagraveo
Nuacutet Thoaacutet Khi chọn nuacutet thoaacutet người sử dụng sẽ quay trở lại magraven higravenh chiacutenh
Nuacutet Xem Thecircm Khi chọn nuacutet nagravey người sử dụng sẽ được yecircu cầu chọn loại tagravei
khoản từ một danh saacutech đổ xuống
Nuacutet Xem Giao Dịch Khi chọn nuacutet nagravey người sử dụng sẽ được chuyển sang magraven
higravenh Giao dịch vagrave theo Use Case số UCSEC91 magraven higravenh sẽ chỉ ra những giao
dịch đatilde xảy ra đối với tagravei khoản becircn cạnh những chi tiết chiacutenh của tagravei khoản
Nuacutet Yecircu Cầu In Kết Quả Khi chọn phần thực đơn nagravey kết quả giao dịch theo Use
Case số UCSEC70 sẽ được in ra ở một maacutey in địa phương nối trực tiếp với maacutey
tiacutenh của nhacircn viecircn
Caacutec yecircu cầu đặc biệt caacutec yecircu cầu đặc biệt
Theo Use Case số UCSEC110 hệ thống coacute khả năng in lecircn magraven higravenh bằng những
ngocircn ngữ khaacutec Chức năng nagravey sẽ được kiacutech hoạt khi người sử dụng chọn mục
Ngoại Ngữ trecircn menu
Điều kiện trƣớc đoacute điều xảy ra trước khi Use Case được thực hiện
Bảo an Người sử dụng (nhacircn viecircn tiếp khaacutech) được cung cấp một số định danh
riecircng biệt để truy nhập vagraveo hệ thống
Dịch chuyển Người sử dụng chỉ đến được magraven higravenh Chi Tiết Tagravei Khoản sau khi đatilde
truy nhập thagravenh cocircng vagrave Identify thagravenh cocircng
CuuDuongThanCongcom httpsfbcomtailieudientucntt
Điều kiện sau đoacute điều gigrave xảy ra sau khi Use Case
được thực hiện
Hệ thống sẽ khocircng lưu trữ lại bất kỳ một thocircng tin nagraveo liecircn quan tới khaacutech hagraveng
lecircn đĩa cứng cục bộ
9- THỬ USE CASE
Một trong caacutec mục điacutech chiacutenh của Use Case lagrave thử nghiệm (testing) Coacute hai loại
thử nghiệm khaacutec nhau được thực hiện ở đacircy kiểm tra (verification) vagrave phecirc
duyệt xaacutec nhận (validation) Kiểm tra đảm bảo lagrave hệ thống đatilde được phaacutet triển
đuacuteng đắn vagrave phugrave hợp với caacutec đặc tả đatilde được tạo ra Phecirc duyệt xaacutec nhận đảm bảo
rằng hệ thống sẽ được phaacutet triển chiacutenh lagrave thứ magrave khaacutech hagraveng hoặc người sử
dụng cuối thật sự cần đến
Cocircng việc phecirc duyệt xaacutec nhận được thực hiện kề trước giai đoạn phaacutet triển
Ngay khi một mocirc higravenh Use Case được hoagraven tất (hay thậm chiacute coacute thể đang trong
giai đoạn phaacutet triển) mocirc higravenh nagravey phải được trigravenh bagravey vagrave thảo luận với khaacutech
hagraveng cũng như người sử dụng Họ cần phải xaacutec nhận rằng mocirc higravenh nagravey lagrave đuacuteng
đắn hoagraven tất vagrave thỏa matilden sự mong đợi của họ đối với hệ thống đặc biệt lagrave
phương caacutech magrave hệ thống cung cấp chức năng cho họ Để lagravem điều đoacute nhagrave phaacutet
triển phải đảm bảo rằng khaacutech hagraveng thật sự hiểu được mocirc higravenh vagrave yacute nghĩa của
chuacuteng để traacutenh trường hợp tạo ra những thứ khocircng thể chấp nhận nổi Trong
giai đoạn nagravey rotilde ragraveng lagrave caacutec cacircu hỏi vagrave caacutec yacute tưởng sẽ xuất hiện vagrave chuacuteng cần
phải được bổ sung thecircm vagraveo mocirc higravenh Use Case trước khi đến giai đoạn phecirc duyệt
chung cuộc Giai đoạn xaacutec nhận cũng coacute thể được thực hiện trong thời kỳ thử
nghiệm hệ thống nhưng điểm yếu của phương thức lagravem nagravey lagrave nếu hệ thống
khocircng thỏa matilden những yecircu cầu cụ thể của người sử dụng thigrave toagraven bộ dự aacuten rất
coacute thể sẽ phải lagravem lại từ đầu
Kiểm tra hệ thống lagrave để đảm bảo noacute hoạt động đuacuteng như đặc tả Điều nagravey
khocircng thể được thực hiện trước khi đatilde coacute những thagravenh phần của hệ thống được
tạo ra Chỉ sau đoacute người ta mới coacute thể thử xem hệ thống coacute hoạt động đuacuteng như
đặc tả magrave người sử dụng đatilde đưa ra rằng caacutec Use Case thực hiện đuacuteng theo như
những lời đatilde miecircu tả trong mocirc higravenh rằng chuacuteng hoạt động theo đuacuteng phương
thức đatilde được miecircu tả trong văn bản miecircu tả Use Case
Đi bộ dọc Use Case
Một trong những kỹ thuật hữu dụng được dugraveng trong cả giai đoạn định nghĩa lẫn
thử nghiệm Use Case gọi lagrave Đi Bộ Dọc Use Case Theo kỹ thuật nagravey nhiều
người khaacutec nhau trong nhoacutem lagravem mocirc higravenh sẽ đoacuteng vai caacutec taacutec nhacircn cũng như hệ
thống trong một Use Case cụ thể Người đảm nhận vai taacutec nhacircn sẽ bắt đầu bằng
việc noacutei ra taacutec nhacircn lagravem gigrave với hệ thống Kết quả của cocircng việc nagravey lagrave hệ thống
sẽ khởi chạy một Use Case cụ thể được bắt đầu từ hagravenh động trecircn Người đoacuteng
vai hệ thống sau đoacute sẽ noacutei anh ta lagravem gigrave khi Use Case được thực hiện Nhagrave phaacutet
CuuDuongThanCongcom httpsfbcomtailieudientucntt
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
hoagraven tất
10- THỰC HIỆN CAacuteC USE CASE
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 higravenh ellipse coacute chứa tecircn của sự cộng taacutec đoacute
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
đồ hoạt động Cần phải sử dụng loại biểu đồ nagraveo để tạo ra một bức tranh bao
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 đồ
khaacutec nhau
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
CuuDuongThanCongcom httpsfbcomtailieudientucntt
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