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
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:
- bai_giang_phan_tich_va_thiet_ke_he_thong_thong_tin_phan_2_mo.pdf