162
Phân tích và thiết kế HTTT theo UML Chƣơng 1: TNG QUAN VPHÂN TÍCH THIT KHTHNG 1- Dn nhp : 1.1- Tính trc quan: 1.2- Mô hình trừu tượng: 1.3- Mô hình hóa trc quan: 2- Mô tchu trình phát trin phn mm : 2.1- Software Development mt bài toán phc tp: 2.2- Chu Trình Phát Trin Phn Mm (Software Development Life Cycle): 2.3- Các giai đoạn ca Chu Trình Phát Trin Phn Mm: 3- Phƣơng pháp hƣớng chức năng và phƣơng pháp hƣớng đối tƣợng : 3.1- Phương pháp hướng chức năng: 3.2- Phương pháp hướng đối tượng: 4- Ƣu điểm của mô hình hƣớng đối tƣợng: 4.1- Tính tái sdng (Reusable) 4.2- Các giai đoạn ca chu trình phát trin phn mm vi mô hình hướng đối tượng: Phn câu hi Chƣơng 2: NGÔN NGMÔ HÌNH HOÁ THNG NHT LÀ GÌ 1- Gii thiu UML: 1.1- Mô hình hóa hthng phn mm. 1.2- Trước khi UML ra đời. 1.3- Sra đời ca UML. 1.4- UML (Unifield Modeling Language). CuuDuongThanCong.com https://fb.com/tailieudientucntt

Phân tích và thiết kế HTTT theo UML

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Phân tích và thiết kế HTTT theo UML

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

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

Page 2: Phân tích và thiết kế HTTT theo UML

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

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

Page 3: Phân tích và thiết kế HTTT theo UML

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

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

Page 4: Phân tích và thiết kế HTTT theo UML

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

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

Page 5: Phân tích và thiết kế HTTT theo UML

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

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

Page 6: Phân tích và thiết kế HTTT theo UML
Page 7: Phân tích và thiết kế HTTT theo UML
Page 8: Phân tích và thiết kế HTTT theo UML
Page 9: Phân tích và thiết kế HTTT theo UML
Page 10: Phân tích và thiết kế HTTT theo UML
Page 11: Phân tích và thiết kế HTTT theo UML
Page 12: Phân tích và thiết kế HTTT theo UML
Page 13: Phân tích và thiết kế HTTT theo UML
Page 14: Phân tích và thiết kế HTTT theo UML
Page 15: Phân tích và thiết kế HTTT theo UML
Page 16: Phân tích và thiết kế HTTT theo UML
Page 17: Phân tích và thiết kế HTTT theo UML
Page 18: Phân tích và thiết kế HTTT theo UML
Page 19: Phân tích và thiết kế HTTT theo UML
Page 20: Phân tích và thiết kế HTTT theo UML
Page 21: Phân tích và thiết kế HTTT theo UML
Page 22: Phân tích và thiết kế HTTT theo UML
Page 23: Phân tích và thiết kế HTTT theo UML
Page 24: Phân tích và thiết kế HTTT theo UML
Page 25: Phân tích và thiết kế HTTT theo UML
Page 26: Phân tích và thiết kế HTTT theo UML
Page 27: Phân tích và thiết kế HTTT theo UML
Page 28: Phân tích và thiết kế HTTT theo UML
Page 29: Phân tích và thiết kế HTTT theo UML
Page 30: Phân tích và thiết kế HTTT theo UML
Page 31: Phân tích và thiết kế HTTT theo UML
Page 32: Phân tích và thiết kế HTTT theo UML
Page 33: Phân tích và thiết kế HTTT theo UML
Page 34: Phân tích và thiết kế HTTT theo UML
Page 35: Phân tích và thiết kế HTTT theo UML
Page 36: Phân tích và thiết kế HTTT theo UML
Page 37: Phân tích và thiết kế HTTT theo UML
Page 38: Phân tích và thiết kế HTTT theo UML
Page 39: Phân tích và thiết kế HTTT theo UML
Page 40: Phân tích và thiết kế HTTT theo UML
Page 41: Phân tích và thiết kế HTTT theo UML
Page 42: Phân tích và thiết kế HTTT theo UML
Page 43: Phân tích và thiết kế HTTT theo UML
Page 44: Phân tích và thiết kế HTTT theo UML
Page 45: Phân tích và thiết kế HTTT theo UML
Page 46: Phân tích và thiết kế HTTT theo UML
Page 47: Phân tích và thiết kế HTTT theo UML
Page 48: Phân tích và thiết kế HTTT theo UML
Page 49: Phân tích và thiết kế HTTT theo UML
Page 50: Phân tích và thiết kế HTTT theo UML
Page 51: Phân tích và thiết kế HTTT theo UML
Page 52: Phân tích và thiết kế HTTT theo UML
Page 53: Phân tích và thiết kế HTTT theo UML
Page 54: Phân tích và thiết kế HTTT theo UML
Page 55: Phân tích và thiết kế HTTT theo UML
Page 56: Phân tích và thiết kế HTTT theo UML
Page 57: Phân tích và thiết kế HTTT theo UML
Page 58: Phân tích và thiết kế HTTT theo UML
Page 59: Phân tích và thiết kế HTTT theo UML
Page 60: Phân tích và thiết kế HTTT theo UML
Page 61: Phân tích và thiết kế HTTT theo UML
Page 62: Phân tích và thiết kế HTTT theo UML
Page 63: Phân tích và thiết kế HTTT theo UML
Page 64: Phân tích và thiết kế HTTT theo UML
Page 65: Phân tích và thiết kế HTTT theo UML
Page 66: Phân tích và thiết kế HTTT theo UML
Page 67: Phân tích và thiết kế HTTT theo UML
Page 68: Phân tích và thiết kế HTTT theo UML
Page 69: Phân tích và thiết kế HTTT theo UML
Page 70: Phân tích và thiết kế HTTT theo UML
Page 71: Phân tích và thiết kế HTTT theo UML
Page 72: Phân tích và thiết kế HTTT theo UML
Page 73: Phân tích và thiết kế HTTT theo UML
Page 74: Phân tích và thiết kế HTTT theo UML
Page 75: Phân tích và thiết kế HTTT theo UML
Page 76: Phân tích và thiết kế HTTT theo UML
Page 77: Phân tích và thiết kế HTTT theo UML
Page 78: Phân tích và thiết kế HTTT theo UML
Page 79: Phân tích và thiết kế HTTT theo UML
Page 80: Phân tích và thiết kế HTTT theo UML
Page 81: Phân tích và thiết kế HTTT theo UML
Page 82: Phân tích và thiết kế HTTT theo UML
Page 83: Phân tích và thiết kế HTTT theo UML
Page 84: Phân tích và thiết kế HTTT theo UML
Page 85: Phân tích và thiết kế HTTT theo UML
Page 86: Phân tích và thiết kế HTTT theo UML
Page 87: Phân tích và thiết kế HTTT theo UML
Page 88: Phân tích và thiết kế HTTT theo UML
Page 89: Phân tích và thiết kế HTTT theo UML
Page 90: Phân tích và thiết kế HTTT theo UML
Page 91: Phân tích và thiết kế HTTT theo UML
Page 92: Phân tích và thiết kế HTTT theo UML
Page 93: Phân tích và thiết kế HTTT theo UML
Page 94: Phân tích và thiết kế HTTT theo UML
Page 95: Phân tích và thiết kế HTTT theo UML
Page 96: Phân tích và thiết kế HTTT theo UML
Page 97: Phân tích và thiết kế HTTT theo UML
Page 98: Phân tích và thiết kế HTTT theo UML
Page 99: Phân tích và thiết kế HTTT theo UML
Page 100: Phân tích và thiết kế HTTT theo UML
Page 101: Phân tích và thiết kế HTTT theo UML
Page 102: Phân tích và thiết kế HTTT theo UML
Page 103: Phân tích và thiết kế HTTT theo UML
Page 104: Phân tích và thiết kế HTTT theo UML
Page 105: Phân tích và thiết kế HTTT theo UML
Page 106: Phân tích và thiết kế HTTT theo UML
Page 107: Phân tích và thiết kế HTTT theo UML
Page 108: Phân tích và thiết kế HTTT theo UML
Page 109: Phân tích và thiết kế HTTT theo UML
Page 110: Phân tích và thiết kế HTTT theo UML
Page 111: Phân tích và thiết kế HTTT theo UML
Page 112: Phân tích và thiết kế HTTT theo UML
Page 113: Phân tích và thiết kế HTTT theo UML
Page 114: Phân tích và thiết kế HTTT theo UML
Page 115: Phân tích và thiết kế HTTT theo UML
Page 116: Phân tích và thiết kế HTTT theo UML
Page 117: Phân tích và thiết kế HTTT theo UML
Page 118: Phân tích và thiết kế HTTT theo UML
Page 119: Phân tích và thiết kế HTTT theo UML
Page 120: Phân tích và thiết kế HTTT theo UML
Page 121: Phân tích và thiết kế HTTT theo UML
Page 122: Phân tích và thiết kế HTTT theo UML
Page 123: Phân tích và thiết kế HTTT theo UML
Page 124: Phân tích và thiết kế HTTT theo UML
Page 125: Phân tích và thiết kế HTTT theo UML
Page 126: Phân tích và thiết kế HTTT theo UML
Page 127: Phân tích và thiết kế HTTT theo UML
Page 128: Phân tích và thiết kế HTTT theo UML
Page 129: Phân tích và thiết kế HTTT theo UML
Page 130: Phân tích và thiết kế HTTT theo UML
Page 131: Phân tích và thiết kế HTTT theo UML
Page 132: Phân tích và thiết kế HTTT theo UML
Page 133: Phân tích và thiết kế HTTT theo UML
Page 134: Phân tích và thiết kế HTTT theo UML
Page 135: Phân tích và thiết kế HTTT theo UML
Page 136: Phân tích và thiết kế HTTT theo UML
Page 137: Phân tích và thiết kế HTTT theo UML
Page 138: Phân tích và thiết kế HTTT theo UML
Page 139: Phân tích và thiết kế HTTT theo UML
Page 140: Phân tích và thiết kế HTTT theo UML
Page 141: Phân tích và thiết kế HTTT theo UML
Page 142: Phân tích và thiết kế HTTT theo UML
Page 143: Phân tích và thiết kế HTTT theo UML
Page 144: Phân tích và thiết kế HTTT theo UML
Page 145: Phân tích và thiết kế HTTT theo UML
Page 146: Phân tích và thiết kế HTTT theo UML
Page 147: Phân tích và thiết kế HTTT theo UML
Page 148: Phân tích và thiết kế HTTT theo UML
Page 149: Phân tích và thiết kế HTTT theo UML
Page 150: Phân tích và thiết kế HTTT theo UML
Page 151: Phân tích và thiết kế HTTT theo UML
Page 152: Phân tích và thiết kế HTTT theo UML
Page 153: Phân tích và thiết kế HTTT theo UML
Page 154: Phân tích và thiết kế HTTT theo UML
Page 155: Phân tích và thiết kế HTTT theo UML
Page 156: Phân tích và thiết kế HTTT theo UML
Page 157: Phân tích và thiết kế HTTT theo UML
Page 158: Phân tích và thiết kế HTTT theo UML
Page 159: Phân tích và thiết kế HTTT theo UML
Page 160: Phân tích và thiết kế HTTT theo UML
Page 161: Phân tích và thiết kế HTTT theo UML
Page 162: Phân tích và thiết kế HTTT theo UML