Tải bản đầy đủ (.pdf) (33 trang)

Tài liệu hướng dẫn thực tập tốt nghiệp Tin học xây dựng - Chương 2 doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (297.78 KB, 33 trang )

B

môn Tin h

c Xây d

ng –
Đ
HXD Tài li

u h
ướ
ng d

n th

c t

p t

t nghi

p

73

CHƯƠNG II. Thiết kế phần mềm
II.1. Khái quát về UML
II.1.1. Giới thiệu UML
UML là ngôn ngữ mô hình hóa, bao gồm một hệ thống chuẩn các ký pháp (tương tự như các
tiêu chuẩn về bản vẽ: quy định kích thước chữ, độ dày của nét, các ký hi ệu quy ước trong


bản vẽ kỹ thuật) và tập các luật để sử dụng các ký pháp đó.
Xây nhà, có thể bạn không cần bản vẽ thiết kế. Tuy nhiên, nếu quy mô công trình càng l ớn,
số lượng người tham gia càng đông thì nhu cầu có bản vẽ thiết kế càng cao. Bản vẽ chính là
ngôn ngữ chung giữa chủ nhà, người thiết kế, người chỉ đạo thi công và người thợ. Về một
khía cạnh nào đó, có th ể coi UML là bản vẽ thiết kế của phần mềm, UML là ngôn ng ữ
chung giữa khách hàng, người thiết kế và người phát triển phần mềm.
Để sử dụng được UML, cần hiểu các vấn đề chính sau:
- Các phần tử cơ bản trong mô hình UML
- Các quy định để liên kết các phần tử thành mô hình
II.1.2. Các khái niệm của UML
Để hình thành mô hình UML, chúng ta c ần 3 khối: Phần tử, quan hệ, biểu đồ. Phần tử là
yếu tố căn bản nhất trong mô hình, các quan hệ gắn các phần tử này với nhau, biểu đồ nhóm
tập hợp các phần tử.
II.1.2.1. Phần tử mô hình
Phần tử gồm 4 loại: cấu trúc, hành vi, nhóm và chú thích
Phần tử cấu trúc
Là thành phần tĩnh, biểu diễn các khái niệm hay thành phần vật lý
- Lớp (class): Mô tả tập các đối tượng (object) cùng chung thuộc tính và thao tác. Biểu
diễn bằng hình chữ nhật gồm 3 phần: Tên lớp, các thuộc tính, các thao tác
- Trường hợp sử dụng (UseCase – UC): Tập trình t ự các hành động mà h ệ thống
thực hiện để đạt một kết quả cho tác nhân nào đó. Theo nghĩa hẹp, UC thường tương
ứng với một chức năng của phần mềm.
- Thành phần (Component): Biểu diễn các file mã ngu ồn, các tệp dữ liệu trong quá
trình phát triển hệ thống
B

môn Tin h

c Xây d


ng –
Đ
HXD Tài li

u h
ướ
ng d

n th

c t

p t

t nghi

p

74

Phần tử hành vi
Là thành phần động của hệ thống, biểu diễn hành vi theo thời gian và không gian
- Tương tác: là hành vi bao g ồm tập các thông điệp trao đổi giữa các đối tượng trong
ngữ cảnh cụ thể để thực hiện mục đích cụ hể.
- Máy trạng thái: Là hành vi ch ỉ ra trật tự các trạng thái mà đối tượng hay tương tác
sẽ đi qua để đáp ứng sự kiện. Hành vi của lớp hay cộng tác của lớp có thể được xác
định bằn máy trạng thái. Máy trạng thái kích hoạt nhiều phần tử, bao gồm trạng thái,
chuyển tiếp (từ trạng thái này sang tr ạng thái khác), s ự kiện và các ho ạt động (đáp
ứng sự kiện)
Phần tử nhóm

Là cơ chế tổ chức các phần tử vào cùng một gói (package). Gói chỉ mang tính logic (chỉ tổn
tại trong th ời gian phát tri ển hệ thống, không t ồn tại vào th ời gian ho ạt động của chương
trình).
Phần tử chú thích
Sử dụng để chú giải cho các lược đồ của UML, bổ sung thêm các thông tin cho các lược đồ.
II.1.2.2. Quan hệ
Phụ thuộc (dependency)
(A) phụ thuộc (B) có nghĩa là (B) phải tồn tại trước (A), phải có (B) thì mới có (A)
Kết hợp (association)
Quan hệ kết hợp là quan h ệ mà đối tượng này ch ứa đối tượng kia. Quan h ệ kết hợp đặc
trưng bởi tính nhiều (multiplicity), thể hiện đối tượng này chứa bao nhiêu đối tượng kia.
Khái quát hóa (generalization)
Quan hệ khái quát hóa là quan h ệ mà đối tượng này thừa kế các đặc tính của đối tượng kia
(kế thừa trong lập trình hướng đối tượng)
Hiện thực hóa (realization)
Quan hệ giữa giao diện (interface) và lớp thực thi (hiện thực hóa) của interface đó.
II.1.2.3. Biểu đồ
Biểu đồ Use Case (UC diagram)
B

môn Tin h

c Xây d

ng –
Đ
HXD Tài li

u h
ướ

ng d

n th

c t

p t

t nghi

p

75

Biểu đồ Use Case chỉ ra tương tác giữa tác nhân và hệ thống, thực chất là biểu diễn các chức
năng của hệ thống.
Biểu đồ Use Case là bi ểu đồ dễ hiểu, cho cái nhìn tổng quát về hệ thống, dùng để giao tiếp
giữa khách hành, quản lý dự án, người phân tích thiết kế, lập trình viên.
Biểu đồ trình tự (Sequence diagram)
Biểu đồ trình tự chỉ ra các thao tác nhằm thực hiện các chức năng (Use Case). Biểu đồ trình
tự mô tả tương tác giữa các đối tượng. Thực chất là trình tự các lời gọi hàm (phương thức)
từ đối tượng này sang đối tượng khác.
Biểu đồ cộng tác (Collaboration diagram)
Biểu đồ cộng tác thực chất cũng cung cấp các thông tin giống với biểu đồ trình tự, nhưng ở
một cách nhìn khác. Nếu biểu đồ trình tự chỉ ra các tương tác theo thời gian thì biểu đồ cộng
tác cho phép nhìn các t ương tác đó theo số lượng (sự phân bố) các tương tác giữa từng cặp
đối tượng.
Biểu đồ lớp (Class diagram)
Biểu đồ lớp chỉ ra c ấu trúc chi ti ết của từng lớp (class) và quan h ệ giữa các l ớp trong h ệ
thống. Biểu đồ lớp rất quan trọng trong quá trình lập trình.

Biểu đồ chuyển trạng thái (State transition diagram)
Biểu đồ chuyển trạng thái mô tả vòng đời của đối tượng, từ khi sinh ra đến khi bị phá hủy.
Biểu đồ lớp là bức tranh tĩnh về đối tượng, biểu đồ trạng thái cho cái nhìn động về các trạng
thái của đối tượng.
Biểu đồ thành phần (Component diagram)
Biểu đồ thành phần cho cái nhìn v ật lý về mô hình: H ệ thống gồm những thành ph ần (các
file Exe, mã nguồn, dữ liệu) gì? Quan hệ của chúng ra sao?
Biểu đồ triển khai (Deployment diagram)
Biểu đồ triển khai chỉ ra địa chỉ vật lý của các thành phần hệ thống sau khi đã cài đặt.
II.1.3. Kiến trúc hệ thống
Mỗi hệ thống được quan sát và hi ểu một cách khác nhau t ừ phía nh ững người khác nhau.
Khách hàng, người thiết kế, người quản lý và người phát triển luôn có những cái nhìn khác
nhau về hệ thống.
B

môn Tin h

c Xây d

ng –
Đ
HXD Tài li

u h
ướ
ng d

n th

c t


p t

t nghi

p

76

Kiến trúc hệ thống được chia thành 5 khung nhìn khác nhau tương ứng với những cách nhìn
khác nhau. Tuy nhiên, tùy thuộc vào quy mô và tính chất, không phải hệ thống nào cũng cần
đầy đủ 5 khung nhìn này.

II.1.3.1. Khung nhìn UC (Use case view)
Khung nhìn đầu tiên, được hình thành từ giai đoạn phân tích yêu cầu. Mô tả các hành vi của
hệ thống theo cách nhìn của khách hàng, người phân tích và tester. Khung nhìn UC gồm
- Phần tĩnh: các tác nhân, UC, biểu đồ UC
- Phần động: một vài biểu đồ trình tự, cộng tác
II.1.3.2. Khung nhìn thiết kế (Design view)
Khung nhìn thi ết kế (hay khung nhìn logic – logical view), bi ểu diễn tổ chức của các l ớp
quan trọng nhất, quan hệ giữa các lớp này với nhau. Khung nhìn thiết kế bao gồm:
- Phần tĩnh: Các lớp, biểu đồ lớp, biểu đồ đối tượng
- Phần động: Các biểu đồ tương tác, biểu đồ biến đổi trạng thái
II.1.3.3. Khung nhìn cài đặt (Implementation view)
Khung nhìn cài đặt (khung nhìn thành ph ần – component view). Thành ph ần là module vật
lý (thư viện, file exe, thư viện động dll), hay tệp mã nguồn để lắp ráp thành hệ thống vật lý.
Khung nhìn thành phần bao gồm thành phần, biểu đồ thành phần và gói.
Người quan tâm nh ất đến khung nhìn thành ph ần là người quản lý mã ngu ồn, dịch chương
trình và triển khai ứng dụng.
Development

View

Process View
Physical View
Use Cases/
Scenarios

Logical View
Class diagrams,
Sequence diagrams

Component diagrams
Deployment diagrams
Deployment diagrams
Use Case diagrams,
Sequence diagrams
B

môn Tin h

c Xây d

ng –
Đ
HXD Tài li

u h
ướ
ng d


n th

c t

p t

t nghi

p

77

II.1.3.4. Khung nhìn triển khai (Deployment view)
Khung nhìn tri ển khai ch ỉ ra các ti ến trình và thi ết bị trên m ạng, các k ết nối vật lý gi ữa
chúng. Biểu đồ triển khai cũng hiển thị tiến trình và chỉ ra tiến trình nào chạy trên máy nào.
II.1.3.5. Khung nhìn tiến trình (Process view)
Biểu diễn phân tách giữa các tiến trình, đồng bộ hóa các tiến trình. Khung nhìn này ít được
sử dụng (không có trong Rational Rose).
II.2. Rational Rose
II.2.1. Rational Rose là gì
Rational Rose là công c ụ hỗ trợ phân tích, thi ết kế hướng đối tượng bằng UML. Mô hình
Rose gồm toàn bộ các biểu đồ UML: tác nhân, Use Case, đối tượng, lớp, thành phần
Hơn nữa, Rational Rose còn h ỗ trợ phát sinh (generate) mã khung ch ương trình cho nhi ều
ngôn ngữ khác nhau: C++, Java, Visual Basic. N ếu tận dụng tốt điều này, b ạn có th ể vừa
thiết kế vừa sinh code để lập trình, sau đó lại sử dụng tính n ăng cập nhật từ code ch ương
trình thành biểu đồ.
B

môn Tin h


c Xây d

ng –
Đ
HXD Tài li

u h
ướ
ng d

n th

c t

p t

t nghi

p

78

II.2.2. Giao diện của Rational Rose

II.3. Use case diagram
II.3.1. Phân tích UC
II.3.1.1. UC là gì?
UC mô t ả ai sử dụng hệ thống như thế nào? Mô t ả tương tác giữa người sử dụng và h ệ
thống phần mềm (các thao tác để giải quyết một công việc cụ thể).
UC là nền tảng của phân tích h ệ thống, tìm đầy đủ các UC s ẽ đảm bảo hệ thống được xây

dựng sẽ đáp ứng đầy đủ các yêu cầu của người dùng.
UC được sử dụng trong toàn bộ quá trình phân tích thiết kế:
- Mô tả yêu c ầu chức năng của hệ thống (thỏa thuận giữa khác hàng và ng ười phân
tích)
- Cung cấp cơ sở để kiểm tra, test hệ thống
B

môn Tin h

c Xây d

ng –
Đ
HXD Tài li

u h
ướ
ng d

n th

c t

p t

t nghi

p

79


II.3.1.2. Tìm kiếm Actor
Tác nhân (Actor) có th ể là người sử dụng hoặc các hệ thống bên ngoài có t ương tác với hệ
thống. Để xác định tác nhân, người ta thường đặt và trả lời các câu hỏi sau:
- Ai sẽ sử dụng chức năng chính của hệ thống?
- Ai quản trị, bảo dưỡng hệ thống?
- Hệ thống đang xây dựng tương tác với hệ thống khác nào?


II.3.1.3. Tìm kiếm UC
Việc tìm ki ếm UC không th ể thiếu được sự tham gia c ủa khách hàng, th ường là s ử dụng
phương pháp phỏng vấn. Người phân tích đặt một số câu hỏi để khách hàng trả lời
- Tác nhân yêu cầu hệ thống thực hiện chức năng nào?
- Tác nhân cần đọc, tạo, xóa, sửa, lưu trữ các thông tin nào trong hệ thống?
II.3.2. UC Diagram
Biểu đồ UC (Use Case Diagram) là biểu đồ chỉ ra sự tương tác giữa actor và UC. Biểu đồ
UC chính là ngôn ngữ chung giữa khách hàng, người phân tích, người quản lý và người phát
triển hệ thống. Mỗi hệ thống tùy theo độ phức tạp có thể có 1 hoặc vài UC. Với hệ thống có
nhiều biểu đồ:
- Biểu đồ UC mức chính chỉ ra gói hay nhóm UC
- Các biểu đồ UC khác là tương tác giữa tác nhân và UC
Chú ý:
- Biểu đồ UC không mô tả tương tác giữa actor với actor (vì nằm ngoài hệ thống)
- Không hình thành quan hệ trực tiếp giữa 2 UC, luồng thông tin giữa 2 UC
- Mỗi UC phải được khởi động bởi tác nhân
Actor

B

môn Tin h


c Xây d

ng –
Đ
HXD Tài li

u h
ướ
ng d

n th

c t

p t

t nghi

p

80


II.3.2.1. Tài liệu mô tả UC
Biểu đồ UC cho cái nhìn toàn cảnh về hệ thống nhưng lại quá súc tích, để cụ thể hóa (khách
hàng có th ể hiểu được), người ta phải lập các tài li ệu mô tả cho từng UC. Tài li ệu mô tả
của mỗi UC gồm có: Mô tả vắn tắt và các dòng sự kiện
Thành ph


n Mô t


Mô tả vắn tắt (brief
description)
UC làm gì? Ai sử dụng UC? Kết quả cuối cùng của UC? (một vài dòng)
Dòng sự kiện (flow of events)

Dòng sự kiện là m ột chuỗi các hành vi, mô t ả người sử dụng làm gì, h ệ
thống làm gì.
Mỗi UC gồm
- Một dòng sự kiện chính (basic flow), là dòng đơn giản nhất (khi dữ
liệu, trạng thái không có gì đặc biệt, các hành vi được thực hiện
tuần tự, cho ra đúng kết quả mong muốn)
- Các dòng s ự ki ện r ẽ nhánh (alternative flow): khi có nh ững d ữ
liệu, trạng thái không bình th ường. Hệ thống phải có nh ững ứng
xử thích hợp trong những trường hợp này

II.3.3. Tổng kết
Các bước phải làm
- Tìm kiếm tác nhân (actor)
- Tìm kiếm UC
Customer
Conduct Bank Transactions
ATM Maintenance
Maintain ATM Machine
Run Reports
Bank
B


môn Tin h

c Xây d

ng –
Đ
HXD Tài li

u h
ướ
ng d

n th

c t

p t

t nghi

p

81

- Lập biểu đồ UC
- Lập tài liệu mô tả cho từng UC
o Mô tả vắn tắt
o Các luồng sự kiện (luồng sự kiến chính, luồng sự kiện rẽ nhánh)
II.4. Biểu đồ tương tác (Interaction diagram)
Biểu đồ UC mô tả khía cạnh tĩnh của hệ thống, còn biểu đồ tương tác (Interaction diagram)

chỉ ra khía cạnh động của hệ thống. Biểu đồ tương tác bao gồm các tác nhân, đối tượng, và
thông điệp trao đổi giữa chúng. Biểu đồ tương tác là c ụ thể hóa c ủa các lu ồng sự kiện
trong các tài liệu mô tả UC.
Biểu đồ tương tác xu ất hiện trong c ả khung nhìn UC và khung nhìn thi ết kế (khung nhìn
logic trong Rose). Các bước thực hiện như sau
- Phân tích mô tả UC, tìm các đối tượng
- Dựa vào luồng các sự kiện, xây dựng biểu đồ tương tác của khung nhìn UC
- Xây dựng biểu đồ lớp
- Chỉnh sửa lại biểu đồ tương tác c ủa khung nhìn UC để có bi ểu đồ tương tác c ủa
khung nhìn thiết kế (khung nhìn logic)
Biểu đồ tương tác gồm có:
- Biểu đồ trình tự (Sequence diagram)
- Biểu đồ cộng tác (Collaboration diagram)
II.4.1. Đối tượng là gì?
Đối tượng là các thực thể vật lý hoặc các hệ thống phần mềm, giao diện Đối tượng là tập
hợp các dữ liệu (property) và thao tác (operator).
II.4.2. Tìm đối tượng
Để tìm đối tượng, khảo sát các danh từ trong luồng sự kiện (của tài li ệu mô t ả UC). Tuy
nhiên, không phải tất cả các danh từ đều là đối tượng, danh từ có thể là:
- Đối tượng
- Mô tả trạng thái của đối tượng
- Actor hoặc các hệ thống bên ngoài
B

môn Tin h

c Xây d

ng –
Đ

HXD Tài li

u h
ướ
ng d

n th

c t

p t

t nghi

p

82

II.4.3. Biểu đồ trình tự (Sequence Diagram)
Biểu đồ trình tự là các giao tiếp bằng thông điệp giữa actor với đối tượng, đối tượng với
đối tượng được sắp xếp theo trình tự thời gian. Mỗi biểu đồ trình tự biểu diễn một luồng sự
kiện của một UC.

II.4.4. Biểu đồ cộng tác (Collaboration Diagram)
Là góc nhìn khác của biểu đồ trình tự. Trong khi biểu đồ trình tự có trật tự theo thời gian thì
biểu đồ cộng tác tập trung nhiều hơn vào quan h ệ giữa các đối tượng, thể hiệu tổ chức và
cấu trúc của các đối tượng gửi hay nhận thông điệp.
John : Student

registration


form

schedule

form

available

course
1: enter
2: validate id

3: enter current semester

4: create new schedule

5: display
6: get courses
B

môn Tin h

c Xây d

ng –
Đ
HXD Tài li

u h

ướ
ng d

n th

c t

p t

t nghi

p

83


II.5. Class diagram
II.5.1. Class là gì?
Đối tượng tồn tại trong thế giới thực (máy móc, tổ chức, ). Lớp là mô tả về thuộc tính, thao
tác của một kiểu (một tập) các đối tượng. Như vậy, lớp là trừu tượng của đối tượng, đối
tượng là hiện thực (instance) của lớp.
Khái niệm lớp trong Tin h ọc rất gần với khái ni ệm lớp trong thuyết tiến hóa c ủa Darwin:
Các lớp tập hợp các loài có chung nhi ều đặc điểm, lớp sau có th ể kế thừa các đặc tính của
lớp trước và có những đặc tính riêng của mình.
II.5.2. Tìm kiếm class
Lớp được tìm ki ếm đầu tiên trong bi ểu đồ tương tác. Tìm các đối tượng (trong bi ểu đồ
tương tác) có chung các đặc điểm (thuộc tính, thao tác ), gộp chúng lại chúng ta có các lớp.
Ngoài ra, có nh ững lớp không th ể tìm được trong bi ểu đồ tương tác, đó là các l ớp nằm
ngoài, chịu trách nhi ệm điều khiển hoạt động của biểu đồ tương tác này, ta g ọi đó là l ớp
điều khiển (control class).

Một số câu hỏi hữu ích có thể đặt ra để tìm lớp:
- Có thông tin nào cần lưu trữ hay phân tích?
- Có hệ thống ngoài không?
- Có thư viện, thành phần không?
John :
Student
registration form
schedule form available classes
1: enter id
2: validate id
3: enter current semester
4: create new schedule
5: display

6: get courses
B

môn Tin h

c Xây d

ng –
Đ
HXD Tài li

u h
ướ
ng d

n th


c t

p t

t nghi

p

84

II.5.3. Phân loại class (stereotype)
Stereotype Mô t


Boundary class (lớp biên)
Lớp biên là lớp nằm trên biên của hệ thống (form, report, giao diện với các
hệ thống khác )
Entity class (lớp thực thể) Lớp thực thể lưu trữ thông tin mà nó sẽ được ghi vào bộ nhớ ngoài.
Control class (lớp điều khiển) Lớp điều khiển là lớp có trách nhiệm điều phối hoạt động của các lớp khác.

II.5.4. Class Diagram
Biểu đồ lớp thể hiện các lớp và quan hệ giữa chúng, hoặc các gói các l ớp và quan h ệ giữa
các gói này. Bi ểu đồ lớp giúp người phát triển quan sát và l ập kế hoạch cấu trúc hệ thống
trước khi lập trình. Nó đảm bảo hệ thống được thiết kế tốt ngay từ đầu.
Trong biểu đồ lớp, mỗi lớp được biểu diễn bằng một hình chữ nhật với tên lớp, các thuộc
tính (attribute) và các thao tác (operator):
- Thuộc tính (attribute): Thu ộc tính là các thông tin c ủa lớp (ví dụ lớp Công ty có
các thuộc tính: Tên, Địa chỉ, Số nhân viên )
- Thao thác (operator): Thao tác là các hành vi c ủa lớp. Mỗi thao tác gồm có 3 phần

sau: Tên thao tác, tham số của thao tác và kiểu giá trị của thao tác.

II.5.4.1. Quan hệ giữa các class (relationship)
Trong hệ thống, các lớp không đứng riêng lẻ mà làm việc phối hợp với nhau. Quan hệ giữa
các lớp cho phép một lớp biết về thuộc tính, thao tác và quan h ệ của lớp khác. Các quan h ệ
được bi ểu di ễn trên bi ểu đồ l ớp. Gi ữa các l ớp có 4 ki ểu quan h ệ chính: kết h ợp
(association), phụ thu ộc (dependencies) , tập h ợp (aggregation) và khái quát hóa
(generalization).
Quan hệ kết hợp (assiciation)
Quan hệ kết hợp chỉ ra rằng có một đường liên kết giữa 2 lớp. Khi có quan hệ kết hợp, mỗi
lớp có thể gửi thông điệp đến lớp khác trong bi ểu đồ tương tác. K ết hợp có th ể một chiều
hay hai chiều.
Quan hệ kết hợp có th ể đệ quy. Kết hợp đệ quy chỉ ra rằng một đối tượng có quan h ệ với
một đối tượng khác thuộc cùng một lớp.
B

môn Tin h

c Xây d

ng –
Đ
HXD Tài li

u h
ướ
ng d

n th


c t

p t

t nghi

p

85



Quan hệ phụ thuộc (dependency)
Quan hệ phụ thuộc cũng sử dụng để kết nối 2 lớp. Nhưng khác với quan hệ kết hợp, quan hệ
phụ thuộc chỉ có 1 chiều. Quan hệ phụ thuộc chỉ ra lớp (A) phụ thuộc lớp (B). Có ngh ĩa là
các thao tác của lớp (A) hiểu được ngữ nghĩa của lớp (B). Trong VB, khi thiết kế không cần
phải xây d ựng quan h ệ phụ thuộc vì b ất cứ lớp (form, module, class module ) nào trong
VB đều có thể hiểu các lớp khác.
Quan hệ tụ hợp (aggregation)
Tụ hợp (aggregation) là hình th ức mạnh của quan hệ kết hợp. Quan hệ kết hợp chỉ ra rằng
một đối tượng thuộc lớp này chứa đối tượng thuộc lớp kia. Quan h ệ kết hợp cài đặt trong
VB thực chất là việc khai báo một thuộc tính của một lớp là một đối tượng thuộc lớp khác.

Quan hệ khái quát hoá (generalization)
Khái quát hóa (hay tr ừu tượng hóa) là ti ến trình nh ằm lược bỏ những thuộc tính, thao tác
không thực sự cần thiết của đối tượng để có được cái nhìn t ổng quát h ơn. Khái ni ệm khái
quát hóa gắn liền với khái niệm kế thừa (inherite) trong lập trình hướng đối tượng. Nếu lớp
(A) kế thừa lớp (B) có nghĩa là lớp (A) là con của lớp (B), lớp (A) có đầy đủ các thuộc tính,
thao tác của lớp (B), đồng thời có những thuộc tính và thao tác riêng của mình. Trong UML,
ta gọi (B) là khái quát hóa của (A).

ScheduleForm
<<boundary>>
RegistrationForm
<<boundary>>
1 111
B

môn Tin h

c Xây d

ng –
Đ
HXD Tài li

u h
ướ
ng d

n th

c t

p t

t nghi

p

86



II.5.4.2. Tính nhiều (multiplicity) của quan hệ
Tính nhiều của quan hệ giữa hai lớp (A) và (B) là s ự biểu diễn MỘT đối tượng thuộc lớp
(A) có quan hệ với bao nhiêu đối tượng của lớp (B) trong cùng 1 thời điểm?
Với mỗi quan hệ, phải xác định tính nhiều ở 2 đầu của đường quan hệ.
Tính nhi

u Ý ngh
ĩ
a
* Nhiều
0 Không
1 Một
0 * Từ không đến nhiều
1 * Từ một đến nhiều
0 1 Không hay một
1 1 Chỉ một

Một giáo viên có thể dạy nhiều cua học, mỗi cua học chỉ có một giáo viên.

Mỗi cua h ọc có t ừ 3 đến 10 sinh viên. M ột sinh viên có th ể tham gia nhi ều cua h ọc hoặc
chẳng tham gia cua học nào.
1 *

Person
Teacher
Course
1


Course

Student

3 10
0 *
Truck

tonnage

GroundVehicle

weight

licenseNumber

Car

B

môn Tin h

c Xây d

ng –
Đ
HXD Tài li

u h
ướ

ng d

n th

c t

p t

t nghi

p

87

II.5.5. Cập nhật sequence diagram
Biểu đồ tuần tự được xây d ựng ở bước trước là bi ểu đồ tuần tự của khung nhìn UC (khi
chúng ta ch ưa có các l ớp). Trong khung nhìn thi ết kế (khung nhìn logic), sau khi đã xác
định các lớp, các thuộc tính và thao tác c ủa lớp, chúng ta ph ải tiến hành xây d ựng biểu đồ
tuần tự của khung nhìn logic.
Biểu đồ tuần tự này thực chất là sự cập nhật của biểu đồ tuần tự của khung nhìn UC, nhưng
được cập nhật tên lớp, thao tác của lớp.
Quá trình này nếu kết hợp với công việc lập trình có thể tạo được khung chương trình đồng
bộ với các biểu đồ UML. Việc lập trình theo khung này giúp người thiết kế có thể hình dung
độ phức tạp của dự án, khối lượng công việc cần thực hiện, giúp phát tri ển dự án một cách
có kế hoạch.
Rational Rose hỗ trợ tích hợp với Java, VC, VB theo cả 2 chiều: Từ mô hình UML phát sinh
mã nguồn và t ừ mã ngu ồn chuyển đổi thành mô hình UML để giúp xây d ựng phần mềm
một cách đồng bộ.
II.6. Biểu đồ thành phần (Component diagram)
Biểu đồ thành phần là biểu đồ mức kiến trúc vật lý (liên quan đến cài đặt), gồm các modul

vật lý (mã nguồn chương trình, các tệp chạy được - exe, dll ). Các dạng biểu đồ thành phần
- Thành phần mã nguồn: Có ý nghĩa vào thời điểm dịch chương trình, là các file mã
nguồn của chương trình (*.frm, *.frx, *.bas, *.cls)
- Thành phần nhị phân : Được d ịch ra t ử các file mã ngu ồn (các file *.obj, *.lib,
*.dll ). Có ý nghĩa vào thời điểm liên kết hoặc thời điểm chạy chương trình
- Thành phần khả thi: là các t ệp chương trình th ực hiện được (*.exe ), là k ết quả
của các thành phần nhị phân (liên kết tĩnh hay động).
II.6.1. Tổng kết
Các việc phải làm:
- Phân tích các bi ểu đồ tương tác (tuần tự và cộng tác), tìm ki ếm các đối tượng trong
biểu đồ này
- Gộp các đối tượng cùng loại thành các l ớp. Bổ sung các l ớp điều khiển và lớp biên
chưa có trong biểu đồ tương tác.
- Tìm các thuộc tính và thao tác của biểu đồ tương tác
- Tìm quan hệ
- Lập biểu đồ lớp
B

môn Tin h

c Xây d

ng –
Đ
HXD Tài li

u h
ướ
ng d


n th

c t

p t

t nghi

p

88

- Chỉnh sửa lại biểu đồ tương tác c ủa khung nhìn UC thành bi ểu đồ tương tác c ủa
khung nhìn thiết kế (khung nhìn logic)
II.7. Ví dụ áp dụng
II.7.1. Mô tả bài toán
Phần mô tả bài toán r ất quan trọng để bạn có th ể có được một bản thiết kế phần mềm tốt,
hãy đặt mình ở vị trí của khách hàng để yêu cầu người thiết kế, mô tả càng chi tiết càng tốt.
Sau đây là phần mô tả bài toán ví dụ:
Xây dựng phần mềm nhập sơ đồ kết cấu phẳng, nhập tải trọng, kết xuất dữ liệu ra file S2K
(SAP2000 v8.0).
Các chức năng
- Tạo lưới: người dùng chọn các bước theo chiều dọc (ví dụ 3:6:6:3m), và theo chi ều
ngang (ví d ụ 3:3:3m), ch ương trình t ạo ra l ưới vuông góc theo các kho ảng chia đã
chọn.
- Chương trình ở 1 trong 3 chế độ
o Chọn: Người dùng sử dụng chuột để chọn đối tượng
o Vẽ nút: Người dùng vẽ các nút tại các mắt lưới
o Vẽ thanh: Người dùng vẽ các thanh bằng cách nối 2 nút
o Khi click trái chu ột vào các bi ểu tượng trên toolbar thì chuy ển về các chế độ

tương ứng. Khi click ph ải chuột thì ch ương trình chuy ển ngay sang ch ế độ
chọn.
- Vẽ nút trên các đỉnh lưới: Ở chế độ vẽ nút, mỗi khi người dùng di chuy ển chuột, vị
trí nút lưới gần con trỏ chuột nhất được sáng lên (giống chế độ snap của AutoCAD).
Khi người dùng click trái chuột thì chương trình sẽ tạo ra nút tại vị trí đó.
- Vẽ thanh nối các nút: Ở chế độ vẽ thanh, chương trình chia làm 2 chế độ nhỏ
o Chọn nút đầu: Khi ng ười dùng di chuy ển chuột, nút g ần con tr ỏ chuột nhất
được sáng lên. Khi click trái chuột thì chương trình đánh dấu nút tương ứng và
chuyển sang chế độ Chọn nút cuối.
o Chọn nút cu ối: Khi người dùng di chuy ển chuột, nút g ần con tr ỏ chuột nhất
được sáng lên, một đường nối giả định được vẽ giữa nút đầu và nút cuối. Khi
click trái chuột, chương trình tạo thêm 1 thanh nối giữa 2 nút và lại chuyển về
chế độ Chọn nút đầu
- Chọn nút, thanh bằng chuột (click hoặc chọn theo window)
B

môn Tin h

c Xây d

ng –
Đ
HXD Tài li

u h
ướ
ng d

n th


c t

p t

t nghi

p

89

o Chọn nút, thanh bằng chuột: Khi người dùng click chuột ở gần nút hoặc thanh
(khoảng cách khoảng 6 pixel), đánh dấu nút hoặc thanh đang được chọn
o Chọn nút, thanh b ằng window: Khi ng ười dùng click vào 1 vùng tr ống trên
màn hình, tạo ra một hình chữ nhật di chuyển theo con chuột. Click chuột lần
nữa để xác định vùng chọn hình chữ nhật, tất cả các đối tượng nằm trong vùng
chọn được đánh dấu là đang chọn.
- Xóa thanh, nút: Khi ng ười dùng b ấm phím Delete ho ặc click vào bi ểu tượng trên
Toolbar, xóa tất cả các nút và thanh đang được chọn. Nếu một nút bị xóa, tất cả các
thanh nối với nút đó cũng bị xóa theo.
- Nhập tải tập trung cho nút: Khi ng ười dùng chọn menu hoặc click vào Toolbar, hiển
thị hộp thoại cho phép nhập tải tập trung cho tất cả các nút đang được chọn.
- Nhập tải phân bố đều cho thanh: Khi người dùng chọn menu hoặc click vào Toolbar,
hiển thị hộp tho ại cho phép nh ập tải phân b ố đều cho t ất cả các thanh đang được
chọn.
- Lưu dữ liệu ra file S2K
II.7.2. Biểu đồ UseCase
II.7.2.1. Tìm kiếm Actor
Hệ thống chỉ có 1 Actor là người dùng chương trình.
II.7.2.2. Tìm UseCase
Dựa vào các ch ức năng được liệt kê trong yêu c ầu người dùng, có th ể phân chia các ch ức

năng đó thành các UseCase sau
- Tạo lưới
- Vẽ nút
- Vẽ thanh
- Chọn đối tượng
- Xóa đối tượng
- Nhập liên kết
- Nhập tải tập trung
- Nhập tải phân bố đều
- Lưu dữ liệu ra file S2K
B

môn Tin h

c Xây d

ng –
Đ
HXD Tài li

u h
ướ
ng d

n th

c t

p t


t nghi

p

90

II.7.2.3. Biểu đồ UseCase

II.7.2.4. Mô tả UseCase
UseCase Tạo lưới
Name T

o l
ướ
i
Brief Description Tạo lưới chia vuông góc theo các khoảng cách ngang và dọc do người dùng lựa chọn
Preconditions
Actor Input System Response
0 Chọn chức năng Tạo mới
1
Hiển thị hộp thoại (danh sách các kho ảng
cách theo phương x và y)
2 Thêm khoảng cách (phương x, y)
3 Bổ sung khoảng cách theo phương x, y
4 Xóa khoảng cách (phương x, y)
5
Xóa kho ảng cách t ại v ị trí được ch ọn
trong danh sách các kho ảng cách phương
x, y
6 Nhấn OK để tạo lưới

Main Flow
7
Tạo l ưới vuông góc v ới các kho ảng các
theo ph ương x, y đã ch ọn. Đóng h ộp
thoại
0 Nhấn OK để tạo lưới Alternative Flow
1
Nếu số khoảng cách theo phương x (hoặc
y) là 0, thông báo lỗi
Post-conditions
UseCase Vẽ nút
B

môn Tin h

c Xây d

ng –
Đ
HXD Tài li

u h
ướ
ng d

n th

c t

p t


t nghi

p

91

Name V

nút
Brief Description Vẽ nút trên mắt lưới
Preconditions Đã tạo lưới.
Actor Input System Response
0 Chọn chức năng vẽ nút
1 Chuyển sang chế độ vẽ nút
2 Di chuyển con trỏ chuột
3
Tìm m ắt l ưới g ần con tr ỏ chu ột nh ất,
đánh dấu mắt lưới đó
4 Click trái chuột
Main Flow
5
Tạo nút tại vị trí mắt lưới đang được đánh
dấu
0
Click phải chuột ho ặc nhấn phím
ESC hoặc chọn 1 chức năng khác


Chuyển ch ương trình sang ch ế độ ch ọn

đối tượng
Alternative Flow
1
Post-conditions
UseCase Vẽ thanh
Name V

thanh
Brief Description Vẽ thanh nối 2 nút
Preconditions Có ít nhất 2 nút đã được vẽ
Actor Input System Response
0 Chọn chức năng vẽ thanh
1 Chuyển sang chế độ vẽ thanh – nút đầu
2 Di chuyển con trỏ chuột
3
Tìm nút gần con trỏ chuột nhất, đánh dấu
nút đó
4 Click trái chuột
5
Ghi nh ận nút đang được đánh d ấu,
chuyển sang chế độ vẽ thanh – nút cuối
6 Di chuyển con trỏ chuột
7
Tìm nút gần con trỏ chuột nhất, đánh dấu
nút đó, vẽ đường kết nối giữa 2 nút
8 Click trái chuột
Main Flow
9
Tạo thanh n ối giữa nút đầu và nút cu ối,
chuyển sang chế độ vẽ thanh – nút đầu

Alternative Flow 0
Click phải chuột ho ặc nhấn phím

B

môn Tin h

c Xây d

ng –
Đ
HXD Tài li

u h
ướ
ng d

n th

c t

p t

t nghi

p

92

ESC hoặc chọn 1 chức năng khác


Chuyển ch ương trình sang ch ế độ ch ọn
đối tượng
1 Chọn nút cuối trùng nút đầu
Thông báo l ỗi, chuy ển sang ch ế độ v ẽ
thanh – nút đầu
Post-conditions
UseCase Chọn đối tượng
Name Ch

n
đố
i t
ượ
ng
Brief Description Chọn đối tượng bằng chuột
Preconditions
Actor Input System Response
0 Chọn chế độ chọn đối tượng
1
Chuyển sang ch ế độ ch ọn đối t ượng –
bình thường
2 Di chuyển chuột
3
Nếu đang ở chế động ch ọn đối t ượng –
cửa sổ, vẽ cửa sổ từ điểm đã lưu đến vị
trí của con trỏ chuột
4 Click chuột trên màn hình chính
5
Nếu con tr ỏ chu ột g ần nút ho ặc thanh,

đánh dấu đối tượng được chọn
6
Nếu con tr ỏ chu ột không g ần đối t ượng
nào, l ưu lại điểm vừa click, chuy ển sang
chế độ chọn đối tượng – cửa sổ
Main Flow
7
Nếu đang ở chế độ chọn đối tượng – cửa
sổ, đánh d ấu t ất c ả các đối n ằm trong
cửa sổ
0
Click phải chuột ho ặc nhấn phím
ESC hoặc chọn 1 chức năng khác

1
Chuyển ch ương trình sang ch ế độ ch ọn
đối tượng
2 Chọn nút cuối trùng nút đầu
Alternative Flow

Thông báo l ỗi, chuy ển sang ch ế độ v ẽ
thanh – nút đầu
Post-conditions
UseCase Xóa đối tượng
Name Xóa
đố
i t
ượ
ng
Brief Description Xóa các đối tượng đang đánh dấu được chọn

B

môn Tin h

c Xây d

ng –
Đ
HXD Tài li

u h
ướ
ng d

n th

c t

p t

t nghi

p

93

Preconditions Có đối tượng được chọn
Actor Input System Response
0
Nhấn nút Delete hoặc biểu tượng

trên Toolbar

1 Xóa tất cả các thanh được đánh dấu chọn
Main Flow
2 Xóa t ất c ả các nút đang được đánh dấu
chọn. Xóa tất cả các thanh nối với nút đó
0 Không có nút nào được chọn Alternative Flow
1 Thông báo lỗi
Post-conditions
UseCase Nhập liên kết
Name Nh

p liên k
ế
t
Brief Description
Nhập các ràng bu ộc (chuyển vị theo phương x, y, z, chuy ển vị quay theo ph ương 1,
2, 3)
Preconditions Có đối tượng được chọn
Actor Input System Response
0
Chọn ch ức n ăng nh ập liên k ết
(menu hoặc toolbar)

2
Hiển th ị h ộp tho ại cho phép đối t ượng
chuyển vị theo ph ương x, y, z ho ặc quay
theo ph ương 1, 2, 3 (d ưới d ạng check
box)
3

Lựa ch ọn các giá tr ị trên check
box

4 Click OK
Main Flow
Đưa ràng buộc vào các đối tượng
0
Không có đối t ượng nào được
chọn

1 Thông báo lỗi
2 Nhấn cancel
Alternative Flow
3 Đóng hộp thoại
Post-conditions
UseCase Nhập tải tập trung
Name Nh

p t

i t

p trung
Brief Description Nhập tải tập trung (các giá trị X, Y, Z) cho tất cả các nút đang được chọn
Preconditions Có đối tượng được chọn
Main Flow Actor Input System Response
B

môn Tin h


c Xây d

ng –
Đ
HXD Tài li

u h
ướ
ng d

n th

c t

p t

t nghi

p

94

0
Chọn ch ức n ăng nh ập t ải t ập
trung (menu hoặc toolbar)

1
Bỏ đánh dấu tất cả các thanh đang được
chọn
2

Hiển thị hộp thoại cho phép nhập 3 giá trị
x, y, z của tải
3 Nhập các giá trị x, y, z
4 Click OK
5
Đưa giá tr ị các t ải vào nút, đóng h ộp
thoại
0 Không có nút nào được chọn
1 Thông báo lỗi
2
Nhập sai giá tr ị x, y, z (không
phải số)

3 Thông báo lỗi
4 Nhấn cancel
Alternative Flow
5 Đóng hộp thoại
Post-conditions
UseCase Nhập tải phân bố đều
Name Nh

p t

i phân b


đề
u
Brief Description
Nhập tải phân bố đều (các giá tr ị X, Y, Z lo ại hệ tọa độ local hay global) cho t ất cả

các thanh đang được chọn.
Preconditions Có đối tượng được chọn
Actor Input System Response
0
Chọn ch ức n ăng nh ập t ải phân
bố (menu hoặc toolbar)

1
Bỏ đánh d ấu t ất c ả các nút đang được
chọn
2
Hiển thị hộp thoại cho phép nhập 3 giá trị
x, y, z c ủa t ải phân b ố, h ệ t ọa độ local
hay global
3
Nhập các giá tr ị x, y, z, lo ại h ệ
tọa độ

4 Click OK
Main Flow
5
Đưa giá tr ị các t ải vào thanh, đóng h ộp
thoại
0 Không có thanh nào được chọn
1 Thông báo lỗi
Alternative Flow
2
Nhập sai giá tr ị x, y, z (không

B


môn Tin h

c Xây d

ng –
Đ
HXD Tài li

u h
ướ
ng d

n th

c t

p t

t nghi

p

95

phải số)
3 Thông báo lỗi
4 Nhấn cancel
5 Đóng hộp thoại
Post-conditions

UseCase Lưu dữ liệu ra file S2K
Name L
ư
u d

li

u ra file S2K
Brief Description Lưu dữ liệu (nút, thanh, tải tập trung, tải phân bố) ra file S2K
Preconditions Có nút và thanh
Actor Input System Response
0
Chọn ch ức n ăng l ưu d ữ li ệu
(menu, toolbar)

1 Hiển thị hộp thoại chọn tên file
2 Click OK
3 Ghi danh sách các nút (s ố thứ tự, tọa độ)
ra file
4
Ghi danh sách các thanh (s ố th ứ t ự, 2
nút, ràng buộc) ra file
5 Ghi các ràng buộc của nút ra file (nếu có)
6 Ghi các tải tập trung của nút ra file
Main Flow
7 Ghi các tải phân bố của thanh ra file
0 Thao tác trên file bị lỗi
1 Thông báo lỗi, hỏi có tiếp tục hay không?
2 Chưa vẽ nút, thanh
3 Thông báo lỗi

4 Nhấn cancel
Alternative Flow

5 Đóng hộp thoại
Post-conditions
II.7.3. Biểu đồ tương tác
II.7.3.1. Tìm đối tượng
Dựa vào yêu cầu người dùng và các đặc tả chi tiết của từng Usecase, chúng ta có danh sách
các ứng viên đối tượng (tìm các danh từ có chứa thuộc tính và thao tác)
- MainForm: tất cả các thao tác trên sơ đồ kết cấu đều thực hiện trên form này
- Structure: Sơ đồ kết cấu
B

môn Tin h

c Xây d

ng –
Đ
HXD Tài li

u h
ướ
ng d

n th

c t

p t


t nghi

p

96

- Frame: Thanh
- Node: Nút
- Grid: lưới vuông góc
- GridForm: hộp thoại nhập các khoảng cách của lưới vuông góc
- RestraintForm: hộp thoại nhập liên kết
- ForceForm: hộp thoại nhập tải tập trung
- DistributedForm: hộp thoại nhập tải phân bố
- SaveDialog: hộp thoại chọn tên file để lưu
II.7.3.2. Biểu đồ tuần tự (sequence diagram)

B

môn Tin h

c Xây d

ng –
Đ
HXD Tài li

u h
ướ
ng d


n th

c t

p t

t nghi

p

97


×