Bài giảng Phân tích và thiết kế hệ thống thông tin - Phần 2: Mô hình hóa bằng UML - Nguyễn Anh Hào

Nội dung bài giảng 2

1. USE CASE

2. OBJECT RELATION SHIP MODEL

3. FUNCTIONAL MODEL

4. STAT MODELUSE CASE 3

• Ý nghĩa

• Cách diễn tả lược đồ use case

– Quan hệ giữa các use cases

– Quan hệ giữa các actors

• Tham khảo thêm:

UML Use Case Diagrams: Tips and FAQ

pdf49 trang | Chuyên mục: Phân Tích Thiết Kế Hệ Thống | Chia sẻ: yen2110 | Lượt xem: 289 | Lượt tải: 0download
Tóm tắt nội dung Bài giảng Phân tích và thiết kế hệ thống thông tin - Phần 2: Mô hình hóa bằng UML - Nguyễn Anh Hào, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
rình viên có 2 tổng 
quát hóa: con người, và lập trình.
• Quan hệ tổng quát hóa có thể không tồn tại vĩnh cữu. Nếu 1 
nhân viên không còn làm việc nữa thì anh ta không còn thừa 
kế các thuộc tính của đối tượng “làm công” (lĩnh lương, thăng 
tiến, nghỉ phép)
22
Kế thừa từ quan hệ tổng quát hóa
1. Lớp đối tượng con thừa hưởng được toàn bộ thuộc 
tính, quan hệ và dịch vụ của lớp đối tượng cha.
2. Lớp đối tượng con có thể thừa hưởng trọn vẹn hành vi
của lớp đối tượng cha, và cũng có thể thay đổi các 
hành vi này (đa hình).
3. Nếu B là tổng quát hóa của A, thì A không thể là tổng 
quát hóa của B (bất đối xứng)
4. Nếu A là B và B là C thì A là C (bắc cầu)
Trong việc lập mô hình, có 2 đặc tính quan trọng:
1. Disjoint: không có đa kế thừa, ngược lại là Overlaping.
2. Complete: Các lớp con được vẽ đầy đủ, ngược lại là 
Incomplete (vẫn còn một số chưa được vẽ).
23
UML cho quan hệ tổng quát hóa
(Spec)
(Gen)
“Disjoint, Complete”
Patient
PatientID
AdmitDate
OutPatient
CheckbackDate
ResidentPatient
DateDischarged
24
UML cho quan hệ tổng quát hóa
Hourly-Emp
HourlyRate
ComputeWage()
Salary-Emp
AnnualSalary
StockOption
ComputePension()
Consultant
ContractNumber
BilingRate
ComputeFee()
Employee
EmpName
EmpNumber
Address
DateHired
PrintIDCard()
“Disjoint, Incomplete”
25
UML cho quan hệ tổng quát hóa
Research
Assistant
ResearchHrs
AssignProject( )
Teaching
Assistant
TeachingHrs
AssignCourse()
Graduate Student
UndergradMajor
DesiredMajor
“Overlaping, Complete”
Research & teaching
Assistant
“Multiple Inheritance”
26
Tính đa hình trong thừa kế
• Là cơ chế cho phép đa dạng hóa các dịch vụ của đối tượng; tuy 
tên gọi cho các dịch vụ rất giống nhau (‘move()’) ở các đối 
tượng ‘circle’, ‘polygon’, ‘line’, nhưng cách thực hiện các dịch vụ 
này lại khác nhau.
CIRCLE
Location
DrawCircle()
Move()
Scale()
POLYGON
Location
DrawPolygon()
Move()
Scale()
LINE
Location
DrawLine()
Move()
Scale()
GRAPH-ITEM
Location
Move()
Scale()
27
Kết tập (aggregation/composit)
~ một tập các đối tượng hợp thành một đối tượng duy nhất.
- 1 xe hơi gồm có các bánh xe (tyres) và động cơ (engine).
- 1 đơn đặt hàng (phải) gồm có thông tin khách hàng (cust-info) 
và các mặt hàng được yêu cầu (items).
CUST-INFO: ITEM:
ORDER:
TIRE: ENGINE:
CAR:
(Part)
(whole)
(Part)
(whole)
(composit) (composit)
28
Quan hệ kết tập
• Là quan hệ diễn tả sự liên kết nhiều đối tuợng có chung một 
mục đích (chức năng) để “tạo thành” một đối tượng duy nhất, 
dựa trên một số tính chất:
– Tích hợp các thành phần (component-integral).Vd: bánh xe, 
máy, khung  tạo thành xe.
– Vật liệu làm ra vật thể. Vd: sắt, gỗ, nhựa, làm ra ghế.
– Nội dung chứa bên trong (container content).Vd: các mục 
hàng, ngày mua, nơi, trong yêu cầu đặt hàng.
Giống như quan hệ tổng quát hóa, kết tập có tính bất đối xứng, 
bắc cầu và các đối tượng đều có một vài chức năng chung; 
nhưng trong kết tập không có tính kế thừa.
• UML định nghĩa 2 loại kết tập: aggregation và composition.
29
UML cho quan hệ kết tập
Aggregation
Composition
Slider Header Panel
Window
scrollbar title body2 1 1
1
Part
Whole
Content
Container
Adm Unit
University
1..* 1..*
1
Faculty
Whole được hợp 
thành từ các part
Container “chứa”, 
nhưng không phụ thuộc
vào content
30
Liên kết (Association)
• Là mối quan hệ “logic” giữa các lớp đối tượng; các lớp trong liên 
kết tồn tại độc lập nhau.
• Tên của liên kết: bắt buộc phải có.
PERSON: JohnCAR: Toyota
Owner
has
Property
PERSON: JanePERSON: John
Wife
Is-married
Husband
Class A Class B
+Role A +Role B
Ví dụ:
31
Liên kết
Person Company
Employee Employer
Work for1..* *
Account
Person
Account
PersonalOwner
CorporateOwner
Corporation
Account
{X-OR}
32
Liên kết trong hệ thống
Customer
Places Includes
Requests*
*
Order Product
Product Line
1
1..*
1
1..*
Course
Teaches
Register for
0..10
*
Student CourseOffer
Faculty
0..1
*
1,2
* Scheduled for
* 1
Advisor
Advisee
Advise
33
Ví dụ lược đồ lớp đối tượng
Nhân viên
Tên
Mức lương
Thực thi ()
Công ty
Tên
Địa chỉ
Kinh doanh ()
Tên
Nhiệm vụ
Giám đốc
Trách nhiệm
Quyết định ()
làm viêc cho
điều hành
(Gồm có)
34
FUNCTIONAL MODEL
• Lược đồ tuần tự
– Các thông điệp được diễn tả theo trình tự (thời gian) xuất 
hiện của chúng
• Lược đồ cộng tác
– Là lược đồ tuần tự, nhưng nhìn ở cách giao tiếp giữa các cặp 
đối tượng
• Lược đồ hoạt động
– Cải tiến của flow-chart (diễn tả giải thuật) để cho nhiều đối 
tượng cùng nhau làm việc
35
Truyền thông điệp
• Là cơ chế gửi thông điệp mang yêu cầu từ một đối tượng 
(Client) đến một đối tượng khác (Agent) để nhờ thực hiện. Đây 
là cơ chế thực hiện theo nghĩa hợp tác, chứ không phải theo 
mệnh lệnh: 
1. Việc thông dịch message phụ thuộc ở Agent, và
2. Agent có thể ủy thác (delegate) cho một Agent khác thực 
hiện.
• Sự ủy thác (Delegation): Thông điệp mang yêu cầu được 
chuyển đi từ đối tượng này đến đối tượng khác cho đến khi có 
một đối tượng đáp ứng được yêu cầu.
36
Thông điệp (message)
• Thông điệp là một thông báo mang yêu cầu hoặc 
thông tin gửi từ một đối tượng đến một đối tượng.
• Trong UML, thông điệp được diễn tả là:
[điều kiện] (thông sô)
– [Điều kiện]: để thông điệp xuất hiện.
– : tên của nhóm thông điệp
– (thông số): các thuộc tính của nhóm thông điệp
• ví dụ:
[acc=valid] Đặt hàng (mã kh,mã hàng,slg, ngày)
37
Sự cộng tác
• Là sự liên kết dịch vụ giữa các đối tượng qua cơ chế 
truyền thông điệp để thực hiện ý đồ nào đó.
vd: User là khách hàng muốn cập nhật dữ liệu của họ vào hệ 
thống
User
Customer Manager
Customer Data Feeder
1: Connect(name)
2: Id=LocateCustomer(name)
3: OK=Activate (Id)
4: [OK] Redirect(Id)
5: [OK] Update(Id, CustData)
38
Lược đồ tuần tự (sequence diagram)
Lược đồ tuần tự cho “open account”
Bank Manager Cust manager
OpenAccount(id)
AskCustInfo(id)
CustomerInfo(data)
AskAccountType(id)
AccountType(AccType)
AskInitialBalance(id)
Balance(InitBalance)
Confirm(ResultCode)
Messages
Thứ tự 
thông điệp
Acc manager Acc DB
Activate(Cust)
CreateAcc
(Cust, Acc)
39
Lược đồ cộng tác (collaboration d.)
Lược đồ cộng tác cho “open account”
Bank Manager
CustManager
1: OpenAccount(id)
2: AskCustInfo(id)
3: CustomerInfo(data)
5: AskAccountType(id)
6: AccountType(Acctype)
7: AskIntialBalance(id)
8: Balance(InitBalance)
10: Confirm(id,ResultCode)
AccManager
4: Activate(Cust)
AccDatabase
9: CreateAcc
(Cust,Acc)
System
40
Lược đồ hoạt động (activity diagram)
Lược đồ hoạt động cho “open account”
New customer
Get Cutomer Data
Create Account
Cust Manager
Swimlane
Get Account Type
Old
customer
Acc Manager AccDatabase
Get Initial Balance
41
DYNAMIC MODEL
• Mô hình trạng thái
– Dựa trên lý thuyết Automata
• Phân tích các trạng thái của hệ thống
• Lược đồ chuyễn trạng thái
– Trạng thái
– Chuyễn trạng thái
– Sự kiện chuyễn trạng thái / hành vi gây ra thay đổi trạng thái
42
Mô hình trạng thái
• Dựa trên ô-tô-mát hữu hạn (finite state automata)
• Một mô hình trạng thái diễn tả các trạng thái và liên 
hệ giữa chúng
1. Trạng thái: là bộ giá trị tạm thời của các thuộc tính mô 
tả đối tượng trong khoảnh khắc nào đó (trước hoặc 
sau khi đối tượng phản ứng với sự kiện).
2. Sự kiện: sự kiện kích hoạt làm chuyễn trạng thái.
3. Hành động: là hoạt động phản ứng bên trong của đối 
tượng gây ra sự thay đổi trạng thái.
4. Chuyển trạng thái: là sự đổi từ trạng thái củ sang mới 
do do đối tượng có phản ứng với sự kiện kích hoạt.
43
Trạng thái của đối tượng
• Giả sử đối tượng A có 2 thuộc tính: X và Y, và
– Giá trị của X chỉ có thể là x1,x2 hoặc x3 (3 giá trị)
– Giá trị của Y chỉ có thể là y1 hoặc y2 (2 giá trị)
• Tập toàn bộ các trạng thái của A là:
 = {(x1,y1), (x1,y2),,(x3,y2)}, với |  | = 3x2 = 6
• Tập trạng thái chấp nhận được của A là tập con của 
(loại bỏ các trạng thái vô nghĩa, hoặc hư hỏng).
44
Chuyễn trạng thái
• Một bóng đèn chỉ có 2 trạng thái: sáng 
và tối. Ta không xét các trạng thái mờ 
do thiếu điện, hoặc đứt tim.
• Bóng đèn chuyễn từ trạng thái tối 
sang trạng thái sáng khi ta bật đèn 
(SW ON) và ngược lại, SW OFF làm 
đèn tắt do bị ngắt điện.
• SW ON và SW OFF là 2 sự kiện 
chuyễn trạng thái của bóng.
SW ON SW OFF
45
Ví dụ: Traffic light
46
Traffic light: các trạng thái
• Mỗi cột có 3 đèn : đỏ (Đ), vàng (V), xanh (X). Mỗi đèn 
có 2 trạng thái: sáng và tối. Luật: chỉ cho 1 trong 3 đèn 
sáng, vậy 1 cột đèn chỉ có 3 trạng thái: Đ, V và X.
• Mỗi chiều đi cần 1 cột đèn. Giao lộ có 2 đường A&B, 
mỗi đường có 2 chiều đi, vậy giao lộ có 4 cột đèn. Tuy 
nhiên, 2 cột đèn điều khiển 1 đường hoạt động giống 
nhau, vậy giao lộ chỉ có 2 cột đèn khác nhau: (ĐA,ĐB)
• 1 đường đang đi thì đường kia phải ngừng, vậy cặp 
đèn có 4 trạng thái: (Đ,X), (Đ,V), (X,Đ) và (V,Đ).
47
Traffic light: chuyễn trạng thái
• Thời gian sáng của mỗi đèn được quyết định bằng timer.
• Timeout(duration) là sự kiện chuyễn trạng thái. Giả sử đèn 
Xanh sẽ sáng 30’’ & đèn Vàng sáng 3”, bộ đèn ở giao lộ A&B 
có lược đồ chuyễn trạng thái:
A: Đ
B: X
A: Đ
B: V
A: X
B: Đ
A: V
B: Đ
TIMEOUT(30’’)
TIMEOUT(3’’)
TIMEOUT(30’’)
TIMEOUT(3’’)
48
Ví dụ: lđ tuần tự của lò viba
:user Oven Light Tube Timer
Door opened Turn on
Door closed Turn off
Put in food
Button pushed Set timer for 1 minute
Turn on
Button pushed Add 1 minute
Time out
Turn off
Turn off
Turn on
49
Lđ chuyễn trạng thái của lò viba
Entry: turn off tube
Entry: turn off light
Cooking complete
Entry: turn off tube
Entry: clear timer
Cooking interrupted
Entry: turn on light
Idle with door open
Entry: turn off light
Idle with door closed
Entry: set timer 1’
Entry: turn on light
Entry: turn on tube
Innitial cooking state
door open door closed
door open
door closed
door open
button pushed
button pushed
door open
Entry: add 1 minute
Extend cooking
button pushed
timer timout
V4:timer timout
Hành vi gây ra 
trạng thái này

File đính kèm:

  • pdfbai_giang_phan_tich_va_thiet_ke_he_thong_thong_tin_phan_2_mo.pdf
Tài liệu liên quan