Sơ đồ trạng thỏi đƣợc sử dụng để chỉ ra cỏch cỏc đối tƣợng phản ứng lại đối với cỏc sự kiện và cỏch biến đổi cỏc trạng thỏi theo cỏc sự kiện đú.
41
Vớ dụ: Sơ đồ trạng thỏi của lớp hệ bỏn hàng:
Hỡnh 2.18. Sơ đồ trạng thỏi của lớp HệBỏnHàng
2.5. C C Mễ HèNH THIẾT Ế TƢƠNG T C 2.5.1. Sơ ồ oạt ộng
Sơ đồ hoạt động (Activity Diagram) trong UML gần giống với lƣu đồ (Flow Chart) mà chỳng ta đó sử dụng trong phõn tớch thiết kế cú cấu trỳc. Nú chỉ ra cỏc bƣớc thực hiện, cỏc hoạt động, cỏc nỳt quyết định và điều kiện rẽ nhỏnh để điều khiển luồng thực hiện của hệ thống.
Sơ đồ hoạt động mụ tả cỏc hoạt động và cỏc kết quả của những hoạt động đú và:
- Nhấn mạnh hơn về cụng việc thực hiện khi cài đặt một thao tỏc của từng đối tƣợng.
- Tƣơng tự nhƣ sơ đồ trạng thỏi, nhƣng khỏc chủ yếu ở chỗ nú tập trung mụ tả về cỏc hoạt động (cụng việc và những thao tỏc cần thực thi) cựng những kết quả thu đƣợc từ việc thay đổi trạng thỏi của cỏc đối tƣợng.
Khỏch đƣa hàng đến quầy trả tiền Nhập tiếp Xử lý kết quả Kết thỳc nhập Nhập cỏc mặt hàng khỏch đó chọn Kết thỳc bỏn hàng Nhập vào TT mặt hàng
Thanh toỏn tiền mặt
Trả thẻ tớn dụng
Trả bằng sộc Kiểm duyệt thẻ/sộc
Chờ thanh toỏn Chờ để mua hàng
42
- Trạng thỏi trong sơ đồ hoạt động là cỏc trạng thỏi hoạt động nú sẽ đƣợc chuyển sang trạng thỏi sau, nếu hoạt động ở trạng thỏi trƣớc đƣợc hoàn thành.
2.5.1.1. Nỳt quyết đ nh và rẽ nhỏnh
Một đối tƣợng khi hoạt động thỡ từ một trạng thỏi cú thể rẽ nhỏnh sạng những trạng thỏi khỏc nhau tựy thuộc vào những điều kiện, những sự kiện xảy ra để quyết định. Điều kiện rẽ nhỏnh thƣờng là cỏc biểu thức Boolean. Trong UML, nỳt quyết định rẽ nhỏnh đƣợc biểu diễn bằng hỡnh thoi cú cỏc đƣờng rẽ nhỏnh với những điều kiện đi kốm để lựa chọn nhƣ sau:
Hỡnh 2.19. Nỳt rẽ nhỏnh trong sơ đồ hoạt động
2.5.1.2. Thanh tương tranh hay thanh đồng bộ
Trong hoạt động của hệ thống, cú thể cú nhiều luồng hoạt động đƣợc bắt đầu thực hiện hay kết thỳc đồng thờị Trong UML, thanh đồng bộ đƣợc vẽ bằng đoạn thẳng đậm đƣợc sử dụng để kết hợp nhiều luồng hoạt động đồng thời và để chia nhỏnh cho những luồng cú khả năng thực hiện song song.
Vớ dụ: Vẽ sơ đồ hoạt động mụ tả cỏc hoạt động “Đun nước và pha tỏch chố Lipton”.
Chỳng ta thấy một số hoạt động cú thể thực hiện song hành nhƣ “đun nước”, “Tỡm một gúi chố Lipton”, “Tỡm tỏch”,…
Sơ đồ hoạt động cho cỏc hoạt động trờn cú thể mụ tả nhƣ sau:
[a > 100]
[a = 100]
[a < 100]
43
Ghi chỳ: hỡnh này biểu diễn một hoạt động
Hỡnh 2.20. Sơ đồ hoạt động “Đun nước và pha chố”
2.5.1.3. Tuyến cụng việc
Tuyến cụng việc (đƣờng bơi) đƣợc sử dụng để phõn hoạch cỏc hoạt động (trạng thỏi) theo cỏc nhúm đối tƣợng hay theo tuyến hoạt động của từng đối tƣợng. Giống nhƣ trong một cuộc thi bơi, trong bể bơi mỗi vận động viờn bơi lội chỉ đƣợc bơi theo một tuyến đó đƣợc xỏc định. Trong hệ thống phần mềm cũng vậy, mỗi đối tƣợng hệ thống theo tuyến đó đƣợc xỏc định, nhƣng cú khỏc là giữa cỏc tuyến này cú sự chuyển đổi thụng tin với nhaụ
Sơ đồ hoạt động sử dụng để thể hiện những hoạt động sẽ thực hiện của mỗi đối tƣợng và chỉ ra cỏch thực hiện cỏc hoạt động nghiệp vụ thụng qua cỏc dũng cụng việc, theo tổ chức của cỏc đối tƣợng.
Đổ nƣớc vào ấm đun nƣớc Tỡm một gúi chố Lipton Tỡm tỏch Đun nƣớc sụi Bỏ gúi chố Vào tỏch Đổ nƣớc vào tỏch cú chố Pha thờm sữa Đổ nƣớc vào ấm đun nƣớc Tỡm một gúi chố Lipton Tỡm tỏch Đun nƣớc sụi Bỏ gúi chố Vào tỏch Đổ nƣớc vào tỏch cú chố Pha thờm sữa
44
:KhachHang :NguoiBanHang :BoPhanKiemDuyetThe :HeThong
Ghi chỳ: hỡnh này biểu diễn một hoạt động
Hỡnh 2.21. Cỏc tuyến cụng việc trong sơ đồ hoạt động
2.5.2. Sơ ồ ộng tỏ
Sơ đồ cộng tỏc (collaboration diagram) gần giống nhƣ sơ đồ trỡnh tự, mụ tả sự tƣơng tỏc của cỏc đối tƣợng với nhau, nhƣng khỏc với sơ đồ trỡnh tự là ở đõy tập trung vào ngữ cảnh và khụng gian thực hiện cụng việc.
Sơ đồ cộng tỏc chớnh là một đồ thị chỉ ra một số cỏc đối tƣợng và những sự liờn kết giữa chỳng, trong đú cỏc đỉnh là cỏc đối tƣợng cũn cạnh thể hiện sự trao đổi thụng điệp giữa cỏc đối tƣợng.
2.5.2.1. Cỏc cấu phần trong sơ đồ cộng tỏc
Tổng quỏt, sơ đồ cộng tỏc chứa cỏc thành phần sau: - Đối tƣợng
- Liờn kết: thể hiện của kết hợp
- Thụng điệp: giỳp lớp hay đối tƣợng cú thể yờu cầu lớp hay đối tƣợng khỏc thực hiện chức năng cụ thể. Trỡnh thẻ tớn dụng Nhận thẻ tớn dụng Kiểm duyệt Trừ tiền thẻ tớn dụng Nhận lại thẻ tớn dụng
45
2.5.2.2. Thiết kế cỏc sơ đồ cộng tỏc và cỏc lớp đối tượng
Nhiệm vụ chớnh của pha thiết kế là xõy dựng cỏc sơ đồ cộng tỏc mụ tả chớnh xỏc cỏc hoạt động của hệ thống và từ đú thiết kế chi tiết cỏc lớp. Một trong những khú khăn chớnh của cụng việc trờn là gỏn trỏch nhiệm cho cỏc đối tƣợng nhƣ thế nàọ Nguyờn lý tổng quỏt để gỏn giỏ trị cho cỏc đối tƣợng đƣợc gọi là mẫu (pattern) gỏn trỏch nhiệm.
Việc tạo lập cỏc sơ đồ cộng tỏc phụ thuộc vào cỏc kết quả trong pha phõn tớch:
- Mụ hỡnh khỏi niệm: từ những mụ hỡnh này, ngƣời thiết kế cú thể chọn để định nghĩa cỏc lớp ứng với từng khỏi niệm trong hệ thống. Cỏc đối tƣợng của những lớp này tƣơng tỏc với nhau và đƣợc thể hiện trong cỏc sơ đồ tƣơng tỏc nhƣ sơ đồ trỡnh tự, sơ đồ trạng thỏị
- Cỏc hợp đồng/đặc tả hoạt động của hệ thống: từ những đặc tả này, ngƣời thiết kế xỏc định đƣợc cỏc trỏch nhiệm và cỏc điều kiện (Pre-condition, Post-condition) trong cỏc sơ đồ tƣơng tỏc.
- Cỏc ca sử dụng cốt yếu và thực tế: từ những trƣờng hợp này, ngƣời thiết kế cú thể lƣợm lặt đƣợc những thụng tin về những nhiệm vụ mà cỏc sơ đồ tƣơng tỏc phải thỏa món.
ạ Ca sử dụng thực tế
Ca sử dụng thực tế là một thiết kế cụ thể về một ca sử dụng, trong đú đó xỏc định kỹ thuật vào/ra và hỗ trợ cài đặt.
Vớ dụ: Mụ tả ca sử dụng thực tế cho ca sử dụng Thanh toỏn tiền mặt. Ca sử dụng: Thanh toỏn tiền mặt (Buy Items with Cash)
Tỏc nhõn: Ngƣời mua (khỏch hàng), ngƣời bỏn hàng
Mục đớch: Ghi nhận cỏc thụng tin về phiờn bỏn hàng và thu tiền hàng Mụ tả túm tắt: Sau khi chọn đủ hàng, ngƣời mua đƣa giỏ hàng (xe hàng) đến quầy trả tiền. Ngƣời bỏn ghi nhận thụng tin về cỏc mặt hàng và thu tiền bỏn
46
hàng bằng tiền mặt. Thanh toỏn xong, khỏch hàng cú thể đƣa hàng ra khỏi cửa hàng.
Kiểu: Thực tế
Tham chiếu: R1.1, R1. R1.1, R1.3, R1.7, R1.9, R2.1 .
Trờn cơ sở khảo sỏt bài toỏn thực tế, ngƣời thiết kế cú thể xõy dựng màn hỡnh thực hiện nhiệm vụ trờn nhƣ sau:
Hỡnh 2.22. Màn hỡnh giao diện của ca sử dụng thực tế “Bỏn hàng”
Kịch bản mụ tả ca sử dụng thực tế trờn đƣợc việc cụ thể nhƣ sau:
Bảng 2.4. Kịch bản mụ tả ca sử dụng thực tế
Hoạt ộng ủa tỏ n õn Hoạt ộng ủa ệ t ống
1. Ca sử dụng bắt đầu khi khỏch đƣa hàng đến quầy trả tiền.
2. Với mỗi mặt hàng, ngƣời bỏn hàng nhập vào cửa số A mó hàng. Nếu số lƣợng mua nhiều hơn 1 thỡ nhập số đú vào cửa số B. Ấn X sau mỗi lần nhập xong một mặt hàng.
3. Bổ sung cỏc thụng tin của từng mặt hàng vào phiờn bỏn hàng. Mụ tả của từng mặt hàng vừa nhập vào đƣợc hiển thị ở ụ D và giỏ bỏn ở ụ C Nhập từng mặt hàng Mã hàng Số l-ợng Tổng tiền Tiền nộp: Tiền trả lại:
Siờu thị MINH CAU -
Kết thúc nhập tiền Thanh toán E B Y Z X A G F Giá C Mô tả D
47
4. Khi nhập xong cỏc mặt hàng thỡ ấn Y 5. Tớnh toỏn và hiển thị tổng số tiền phải trả ở ụ Ẹ
6. Khỏch hàng đƣa một số tiền để trả tiền mua hàng, ngƣời nhập số đú vào ụ F và ấn Z, số đú khụng nhỏ hơn tổng tiền.
7. Hệ thống xỏc định số tiền trả lại cho khỏch và hiển thị ở ụ G
…
b. Cỏc bước thiết kế sơ đồ cộng tỏc
Bước 1: Xỏc định cỏc trỏch nhiệm từ cỏc ca sử dụng, mụ hỡnh khỏi niệm (sơ đồ lớp) và cỏc hợp đồng hoạt động của hệ thống.
Bước 2: Gỏn trỏch nhiệm cho cỏc đối tƣợng, quyết định xem đối tƣợng nào phải thực thi những trỏch nhiệm trờn,
Bước 3: Lặp lại hai bƣớc trờn cho đến khi gỏn hết cỏc trỏch nhiệm trong sơ đồ cộng tỏc.
2.6 Mễ HèNH IẾN TRÚC VẬT í 2.6.1. Sơ ồ t n p ần
Sơ đồ thành phần (Component Diagram) là sơ đồ mụ tả cỏc thành phần và sự phụ thuộc của chỳng trong hệ thống. Sơ đồ thành phần đƣợc xem nhƣ là tập cỏc biểu tƣợng thành phần biểu diễn cho cỏc thành phần vật lý trong một hệ thống. í tƣởng cơ bản của sơ đồ thành phần là tạo ra cho những ngƣời thiết kế và phỏt triển hệ thống một bức tranh chung về cỏc thành phần của hệ thống.
2.6.1.1. Cỏc thành phần trong sơ đồ
Cỏc thành phần của hệ thống là:
- Thành phần mó nguồn, cú ý nghĩa vào thời điểm dịch chƣơng trỡnh. Thụng thƣờng nú là tập cỏc chƣơng trỡnh cài đặt cỏc lớp.
48
Vớ dụ: Trong C++, mỗi tệp .cpp và .h là một thành phần. Trƣớc khi phỏt sinh mó chƣơng trỡnh, phải thực hiện ỏnh xạ từng tệp vào thành phần tƣơng ứng, thụng thƣờng mỗi lớp đƣợc ỏnh xạ vào hai tệp (.cpp và.h).
- Thành phần mó nhị phõn là mó trỡnh nhị phõn đƣợc dịch từ mó chƣơng trỡnh nguồn. Nú cú thể là tệp mó đớch (.obj), tệp thƣ viện tĩnh (.Iib) hay tệp thƣ viện động (.dll). Thành phõn nhị phõn đƣợc sử dụng để liờn kết, hoặc để thực thi chƣơng trỡnh (đối với thƣ viện động).
- Thành phần thực thi là tệp chƣơng trỡnh cú thể thực thi đƣợc (cỏc tệp . exe). Nú là kết quả của chƣơng trỡnh liờn kết cỏc thành phần nhị phõn.
Với sơ đồ thành phần, ngƣời phỏt triển hệ thống thực hiện dịch hay triển khai hệ thống sẽ biết thƣ viện mó trỡnh nào tồn tại và những tệp cú thể thực thi (.exe) khi dịch và liờn kết thành cụng.
Giữa cỏc thành phần chỉ cú một loại quan hệ phụ thuộc đƣợc biểu diễn bằng đƣờng mũi tờn đứt nột. Kết nối phụ thuộc cho biết thành phần phụ thuộc phải dịch sau thành phần kiạ
Vớ dụ: Sơ đồ thành phần mụ tả sự phụ thuộc giữa cỏc thành phần của hệ thống
49
Hỡnh 2.23. Sự phụ thuộc của cỏc thành phần trong sơ đồ thành phần
Trong UML cú một số biểu tƣợng biểu diễn cho cỏc thành phần:
- Thành phần: biểu tƣợng thành phần (hỡnh 7.2.a) đƣợc sử dụng để biểu diễn mụ-đun chƣơng trỡnh cú cỏc giao diện. Trong đặc tả cú xỏc định kiểu Stereotype (AciveX, Applet, DLL, exe,…).
- Đặc tả và thõn chƣơng trỡnh con: biểu tƣợng thành phần cho đặc tả chƣơng trỡnh con và cài đặt của chƣơng trỡnh con. Chƣơng trỡnh con khụng chứa cỏc định nghĩa lớp.
- Chƣơng trỡnh chớnh: biểu tƣợng thành phần (tệp) chứa điểm vào của chƣơng trỡnh chớnh .
Vớ dụ: trong C/C++ đú là tệp chứa hàm main()
- Đặc tả và thõn của gúi: đặc tả gúi là tệp header chứa thụng tin về cỏc hàm thành phần của lớp.
Vớ dụ: đặc tả gúi trong C/C++ là tệp .h định nghĩa cỏc hàm prototypẹ
Window Handler (Whd.cpp ) Window Handler (Whd.obj) Graphics Lib (graphics.dll ) Comm Handler (chd.cpp) Comm Handler (chd.obj) MyProgram (System.exe ) MainClass (main.cpp ) MainClass (main.obj)
50
Biểu tƣợng cho thõn gúi gồm mó cỏc lệnh của cỏc hàm thành phần của lớp chứa trong gúị Trong C/C++ thành phần này là tệp .cpp.
- Đặc tả và nội dung nhiệm vụ: cỏc biểu tƣợng biểu diễn cho phần đặc tả và nội dung của những nhiệm vụ độc lập.
Hỡnh 2.24. Cỏc thành phần của hệ thống
2.6.1.2. Sơ đồ thành phần trong ATM
Sơ đồ thành phần cho ta cỏi nhỡn vật lý về mụ hỡnh hệ thống. Cú ba loại chớnh trong sơ đồ, đú là thành phần khả thi, thành phần mó nguồn và cỏc thƣ viện. Trong Rose, mỗi lớp cú thể đƣợc ỏnh xạ vào một thành phần mó nguồn. Hỡnh 8.3. mụ tả sơ đồ thành phần của ATM trờn mỏy trạm. Nếu chỳng ta chọn ngụn ngữ lập trỡnh C++ để cài đặt thỡ mỗi lớp sẽ cú hai tệp tƣơng ứng là .cpp và .h riờng biệt.
Vớ dụ: Lớp ManHinh ỏnh xạ thành hai thành phần và sinh mó tƣơng ứng thành hai tệp .h (header) và tệp .cpp (thõn của lớp). Khi tất cả cỏc lớp dịch xong thỡ ta mới cú thành phần thực thi ATMClient.exẹ
MainSubprog SubprogSpec SubprogBody Component PackageSpec PackageBody TaskSpec TaskBody
51
Hỡnh 2.25. Sơ đồ thành phần của ATM trờn mỏy trạm
Hệ thống ATM cú hai tiến trỡnh xử lý chớnh:
- Tiến trỡnh thứ nhất là ATM trờn mỏy trạm gồm cỏc thành phần Mỏy trả tiền, Mỏy đọc thẻ và Màn hỡnh.
- Tiến trỡnh thứ hai là mỏy chủ ATM cú Tài khoản và HT tớn dụng. Sơ đồ thành phần của mỏy chủ ATM đƣợc mụ tả nhƣ hỡnh 2.25.
Hỡnh 2.25. Sơ đồ thành phần của Mỏy chủ ATM
MayDocThe <<Main Program>> ATM ManHinh MayDocThe ManHinh MayTraTien MayTraTien .exe .h .cpp .h .cpp .cpp .h <<Subprogram Body>> ATM Server TaiKhoan TaiKhoan HTTinDung HTTindung .exe .h .cpp .cpp .h
52
Cú thể cú nhiều sơ đồ thành phần cho một hệ thống, số lƣợng này phụ thuộc vào cỏc hệ thống con của nú. Mỗi hệ thống con là gúi thành phần, do vậy, hệ thống ATM cú hai gúi: gúi Mỏy trạm và gúi Mỏy chủ.
2.6.2. Sơ ồ tr ển k a
2.6.2.1. nh ngh a
Sơ đồ triển khai (Deployment Diagram) chỉ ra cấu hỡnh cỏc phần tử xử lý lỳc chƣơng trỡnh chạy, cỏc nỳt trờn mạng và cỏc tiến trỡnh phần mềm thực hiện trờn những phần tử đú. Nú chỉ ra mối quan hệ giữa cỏc phần cứng và phầm mềm của hệ thống.
2.6.2.2. Cỏc phần tử (nỳt) của sơ đồ triển khai
ạ Bộ xử lý (Processor)
Bộ xử lý (Processor) của mỏy tớnh, mỏy chủ, trạm làm việc,… Cỏc bộ xử lý đƣợc đặc tả chi tiết bằng cỏch bổ sung thờm cỏc thụng tin:
- Stereotype: để phõn nhúm cỏc bộ xử lý.
- Đặc tả: mụ tả cỏc tớnh chất vật lý của mỗi bộ xử lý nhƣ: tốc độ tớnh toỏn, dung lƣợng bộ nhớ, …
- Lịch biểu (Schelduling): mụ tả loại lịch biểu thời gian xử lý, bao gồm: + Preemptive: cho phộp những tiến trỡnh cú mức ƣu tiờn cao hơn cơ chế chiếm quyền xử lý đối với những tiến trỡnh cú mức ƣu tiờn thấp hơn.
+ NonPreemptive: khụng cú ƣu tiờn, một tiến trỡnh chỉ dừng khi nú tự kết thỳc.
+ Cyclic: chỉ ra chu kỳ điều khiển giữa cỏc tiến trỡnh.
+ Executive: cỏc lịch biểu đƣợc điều khiển bằng thuật toỏn, bằng chƣơng trỡnh.
+ Manual: tiến trỡnh đƣợc điều khiển bằng ngƣời sử dụng.