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

Tài liệu Phân tích thiết kế hệ thống hướng đối tượng dùng UML - Module 11: Thiết kế Use-Case pdf

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 (230.08 KB, 38 trang )

Phân tích và Thiết kế Hướng đối tượng
dùng UML
Module 11: Thiết kế Use-Case

PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức

1


Mục tiêu
w Tìm hiểu mục đích của bước thiết kế Use-Case
và thời điểm thực hiện công đoạn này
w Kiểm định tính nhất quán trong cài đặt usecase
w Tinh chỉnh use-case realizations có được từ
bước phân tích Use-Case dựa trên các phần tử
thiết kế đã được xây dựng

PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức

2


Vị trí của Thiết kế Use-Case
Architectural
Analysis
Describe
Architectural
Design
Concurrency



Architect

Review the
Design

Use-Case
Design

Class
Design

PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức

Review the Architecture
Architecture Reviewer

Subsystem Design

Use-Case
Analysis
Designer

Describe
Distribution

3

Design

Reviewer


Tổng quan về Thiết kế Use-Case

Supplementary
Specifications

Design Subsystems and Interfaces

Use-Case Realization

Use-Case
Design

Design Classes
Use Case
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức

4

Use-Case Realization


Các bước thiết kế Use-Case
w Mô tả tương tác giữa các Design Object
w Đơn giản hóa các Interaction Diagram nhờ vào
các Subsystem (optional)
w Mô tác các hành vi liên quan đến tính

Persistence
w Tinh chỉnh mô tả về các Flow of Events
w Hợp nhất các Class và các Subsystem
w Checkpoints

PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức

5


Nhắc lại: Use-Case Realization
Use-Case Model

Design Model

Use Case

Use-Case Realization

Sequence Diagrams

Collaboration Diagrams

Use Case

PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức

Class Diagrams

6


Các bước thiết kế Use-Case
w Mô tả tương tác giữa các Design Object
w Đơn giản hóa các Interaction Diagram nhờ vào
các Subsystem (optional)
w Mô tác các hành vi liên quan đến tính
Persistence
w Tinh chỉnh mô tả về các Flow of Events
w Hợp nhất các Class và các Subsystem
w Checkpoints

PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức

7


Tinh chỉnh Use-Case Realization
w Xác định các object có tham gia vào Use-Case
w Phân công trách nhiệm cho các object
w Mo hình hóa các thông điệp giữa các object
w Mô tả các kết quả xử lý từ các thông điệp
w Mô hình hóa quan hệ giữa các class liên quan

Class Diagrams

Sequence Diagrams
PT & TK Hướng đối tượng – Thiết kế kiến trúc

Dương Anh Đức

8


Các bước tinh chỉnh Use-Case Realization
w Thay thế các class khả dụng bằng các
subsystem interface kết hợp với chúng

w Từng bước tích hợp các cơ chế kiến trúc khả
dụng
w Hiệu chỉnh use-case realization
§ Các Interaction diagram
§ View of participating classes (VOPC) class
diagram(s)

PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức

9


Ví dụ: Tích hợp Subsystem Interfaces
Analysis Classes

Design Elements

<<boundary>>
BillingSystem
// submit bill()


<<subsystem>>
BillingSystem
IBillingSystem
submitBill(forTuition : Double, forStudent : Student)

<<boundary>>
CourseCatalogSystem
// get course offerings()

ICourseCatalogSystem

<<subsystem>>
CourseCatalogSystem

getCourseOfferings(forSemester : Semester) : CourseOfferingList

Tất cả các analysis class khác được ánh xạ thành các design class
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức

10


Ví dụ: Trước khi tích hợp SubSystem Interfaces
Phải thay bằng subsystem interface
: RegisterForCoursesForm

: Student


: RegistrationController

: CourseCatalogSystem

: Schedule

1. // create schedule( )
1.1. // get course offerings( )

Student muốn
Tạo mới
schedule

1.1.1. // get course offerings(forSemester)

1.2. // display course offerings( )
Một ds các học phần
có thể đăng ký trong HK
được hiển thị
A blank schedule
is displayed for the
students to select
offerings

1.3. // display blank schedule( )

2. // select 4 primary and 2 alternate offerings( )
2.1. // create schedule with offerings( )

2.1.1. // create with offerings( )

2.1.2. // add schedule(Schedule)

Tại vị trí này Submit Schedule subflow được thực hiện
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức

11

: Student


Ví dụ: Sau khi tích hợp Subsystem Interface
Đã thay vào subsystem interface
: Student

: RegisterFor
CoursesForm

: Registration
Controller

: ICourseCatalog
System

: Schedule

1: // create schedule( )
1.1: // get course offerings( )

Student wishes to

create a new
schedule

1.1.1: getCourseOfferings(Semester)

1.2: // display course offerings( )
A list of the available
course offerings for this
semester are displayed
A blank schedule
is displayed for the
students to select
offerings

1.3: // display blank schedule( )

2: // select 4 primary and 2 alternate offerings( )
2.1: // create schedule with offerings( )

2.1.1: // create with offerings( )
2.1.2: // add schedule(Schedule)

Taïi vị trí này Submit Schedule subflow được thực hiện

PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức

12

: Student



Ví dụ: Tích hợp Subsystem Interfaces (VOPC)
<<boundary>>
RegisterForCoursesForm
(from Registration)

// submit schedule()
// display course offerings()
// display schedule()
// save schedule()
// create schedule()
// select 4 primary and 2 alternate offerings()
// display blank schedule()

<<Interface>>
ICourseCatalogSystem

Subsystem interface

(from External System Interfaces)

<<control>>
RegistrationController

0..*

(from Registration)

1 1 // submit schedule()

// save schedule()
// create schedule with offerings() 0..1
// getCourseOfferings()

1

getCourseOfferings()
initialize()

currentSchedule
0..1

0..1

0..*

<<entity>>
Student.

// addSchedule()
// getSchedule()
// hasPrerequisites()
// passed()

// submit()
// save()
// any conflicts?()
// new()

0..*


(from University Artifacts)

- name
- address
- studentID : int

(from University Artifacts)

semester

0..1
registrant

<<entity>>
Schedule

1
primaryCourses
0..4

0..*

alternateCourses
0..2
<<entity>>
CourseOffering
(from University Artifacts)

number

startTime
endTime
days
// addStudent()
// removeStudent()
// new()
// setData()

PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức

13


Tích hợp các cơ chế kiến trúc: Security
w Bảng ánh xạ các Analysis-Class với các cơ chế
kiến trúc có từ bước phân tích Use-Case
Analysis Class

Các cơ chế

Student

Persistency, Security

Schedule

Persistency, Security

CourseOffering


Persistency, Legacy Interface

Course

Persistency, Legacy Interface

RegistrationController

Distribution

PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức

14


Tích hợp các cơ chế kiến trúc: Distribution
w Bảng ánh xạ các Analysis-Class với các cơ chế
kiến trúc có từ bước phân tích Use-Case
Analysis Class

Các cơ chế

Student

Persistency, Security

Schedule


Persistency, Security

CourseOffering

Persistency, Legacy Interface

Course

Persistency, Legacy Interface

RegistrationController

Distribution

PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức

15


Các bước thiết kế Use-Case
w Mô tả tương tác giữa các Design Object
w Đơn giản hóa các Interaction Diagram nhờ vào
các Subsystem (optional)
w Mô tác các hành vi liên quan đến tính
Persistence
w Tinh chỉnh mô tả về các Flow of Events
w Hợp nhất các Class và các Subsystem
w Checkpoints


PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức

16


Đóng gói các Subsystem Interaction
w Có thể mô tả các tương tác dưới nhiều mức độ
khác nhau
w Tương tác giữa các Subsystem có thể mô tả
bởi các interaction diagram của chúng

Tăng mức độ trừu tượng
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức

17


Khi nào đóng gói Sub-Flows trong Subsystem
w Sub-flow xuất hiện trong nhiều use-case
realizations
w Sub-flow có tiềm năng tái sử dụng
w Sub-flow phức tạp và dễ dàng đóng gói
w Sub-flow do 1 người/đội đảm nhiệm
w Sub-flow tạo ra một kết quả xác định tốt
w Sub-flow được gói gọn trong một component
trong mô hình cài đặt

PT & TK Hướng đối tượng – Thiết kế kiến trúc

Dương Anh Đức

18


Guidelines: Đóng gói Subsystem Interactions
w Các Subsystem phải được biểu diễn với các
interface của chúng trong interaction diagrams
w Các thông điệp đến subsystems được mô hình
như các thông điệp đến subsystem interface
w Các thông điệp đến subsystems tương ứng với
các operation của subsystem interface
w Các tương tác trong subsystems được mô hình
trong Subsystem Design
:InterfaceA
InterfaceA

<<subsystem>>
MySubsystem

Op1()

op1()
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức

19


Lợi ích của việc đóng gói Subsystem Interaction

w Use-case realization bớt hỗn độn
w Use-case realization có thể được tạo trước khi
xây dựng thiết kế bên trong của subsystems
(parallel development)
w Use-case realizations generic hơn và dễ dàng
thay đổi (subsystems có thể được thay thế)

PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức

20


Parallel Subsystem Development
w Chú ý vào các y/c ảnh hưởng đến subsystem
interfaces
w Phác thảo các interface cần thiết
w Mo hình hóa các thông điệp băng qua ranh giới
các subsystem
w Vẽ interaction diagrams dùng các subsystem
interfaces cho mỗi use case
w Tinh chỉnh các interface cần để cung cấp các
thông điệp
w Phát triển song song các subsystem
Dùng các subsystem interface như điểm đồng bộ hóa

PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức

21



Các bước thiết kế Use-Case
w Mô tả tương tác giữa các Design Object
w Đơn giản hóa các Interaction Diagram nhờ vào
các Subsystem (optional)
w Mô tác các hành vi liên quan đến tính
Persistence
w Tinh chỉnh mô tả về các Flow of Events
w Hợp nhất các Class và các Subsystem
w Checkpoints

PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức

22


Mô tả các hành vi liên quan đến cơ chế Persistence

w Mô tả các hành vi liên quan đến cơ chế
Persistence
§ Mô hình hóa các Transaction
§ Lưu (ghi) các Persistent Object
§ Đọc các Persistent Object
§ Hủy các Persistent Object

PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức


23


Mô hình hóa các Transaction
w Transaction là gì?
§ Lời gọi đến các Atomic operation
§ “Tất cả hoặc không operation nào”
§ Cung cấp tính bền vững

w Modeling Options
§ Văn bản (scripts)
§ Các thông điệp hiện

w Error conditions
§ Có thể đòi hỏi các interaction diagrams riêng biệt
§ Rollback
§ Failure modes
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức

24


Tích hợp các cơ chế kiến trúc: Persistency
w Bảng ánh xạ các Analysis-Class với các cơ chế
kiến trúc có từ bước phân tích Use-Case
Analysis Class

Analysis Mechanism(s)


Student

Persistency, Security

Schedule

Persistency, Security

CourseOffering

Persistency, Legacy Interface

Course

Persistency, Legacy Interface

RegistrationController

Distribution

Legacy Persistency (RDBMS )
deferred to Subsystem Design

PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức

25

OODBMS
Persistency

RDBMS
Persistency


×