PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
5
w Subsystem là sự “kết hợp” giữa package và
class
w Hiện thực hóa 1 hoặc nhiều interfaces đònh
nghóa hành vi của nó
<<subsystem>>
Subsystem Name
Interface Subsystem
<<subsystem>>
Subsystem Name
Interface
Realization (Canonical form)
Realization (Elided form)
<<interface>>
Interface
Nhắc lại: Subsystems và Interfaces
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
6
Chìa khóa là abstraction và encapsulation
A
<<subsystem>>
B
<<subsystem>>
C
<<subsystem>>
Subsystem Guidelines
w Mục tiêu
§ Giảm thiểu kết nối
§ Có tính cơ động, tương thích plug-and-play
§ Cách ly các thay đổi
§ Tiến hóa độc lập
w Những đề nghò
§ Đừng khảo sát chi tiết, chỉ interfaces
§ Chỉ phụ thuộc vào interfaces khác
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
7
Nhắc lại: Các qui ước mô hình hóa
CourseCatalogSystem
<<subsystem>>
ICourseCatalogSystem
ICourseCatalogSystem
CourseCatalogSystem
<<subsystem proxy>>
CourseCatalogSystem
<<subsystem>>
Interfaces start with an “I”
<<subsystem>> package
<<subsystem proxy>> class
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
8
Các bước thiết kế Subsystem
w Phân bố các hành vi của Subsystemcho các
phần tử của nó
w Lập sưu liệu về các phần tử của Subsystem
w Mô tả các phụ thuộc của Subsystem
w Checkpoints
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
9
Các bước thiết kế Subsystem
w Phân bố các hành vi của Subsystemcho các
phần tử của nó
w Lập sưu liệu về các phần tử của Subsystem
w Mô tả các phụ thuộc của Subsystem
w Checkpoints
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
10
CourseCatalogSystem
<<subsystem>>
ICourseCatalogSystem
getCourseOfferings()
<<interface>>
subsystem responsibility
Các nhiệm vụ của Subsystem
w Các interface operation xác đònh nhiệm vụ của
Subsystem
w Interface operations được hiện thực hóa bởi
§ Internal class operations
§ Internal subsystem operations
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
11
Phân bố nhiệm vụ của Subsystem
w Xác đònh các phân tử thiết kế mới, hoặc dùng lại
cái có sẵn, (chẳng hạn, các class hay subsystem)
w Gán trách nhiệm của subsystem cho các phần tử
của nó
w Tích hợp các cơ chế khả dụng (persistence,
distribution, …)
w Lập sưu liệu về collaboration giữa các phần tử thiết
kế trong “interface realizations”
§ Một hay nhiều interaction diagrams/interface
operation
§ Class diagram(s) chứa các quan hệ cần thiết
w Tham khảo lại phần thiết kế kiến trúc
§ Chỉnh subsystem boundaries và các phụ thuộc,
nếu cần
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
12
Qui ước: Subsystem Interaction Diagrams
Subsystem Client
Subsystem Proxy
Design Element 1
performResponsibility( )
Op1()
subsystem responsibility
Op2()
Design Element 2
Op3()
Op4()
Internal subsystem
interactions
Không hiển thò Subsystem interface
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
13
Ví dụ: CourseCatalogSystem Subsystem
subsystem interface
: Student
: RegisterFor
CoursesForm
: Registration
Controller
: Schedule : Student: ICourseCatalog
System
A list of the available
course offerings for this
semester are displayed
Student wishes to
create a new
schedule
1: // create schedule( )
4: // display course offerings( )
2: // get course offerings( )
9: // add schedule(Schedule)
3: getCourseOfferings(Semester)
5: // display blank schedule( )
At this, point the Submit Schedule subflow is executed.
6: // select 4 primary and 2 alternate offerings( )
7: // create schedule with offerings( )
8: // create with offerings( )
A blank schedule
is displayed for the
students to select
offerings
subsystem responsibility
Legacy RDBMS Database Access
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
14
Analysis Class Analysis Mechanism(s)
Student
CourseOffering
Course
RegistrationController
Persistency, Security
Persistency, Legacy Interface
Persistency, Legacy Interface
Distribution
Tích hợp cơ chế kiến trúc: Persistency
w Bảng ánh xạ Analysis-Class với các cơ chế
kiến trúc có từ phân tích Use-Case
Schedule Persistency, Security
OODBMS Persistency đã khảo sát
trong Use-Case Design
OODBMS
Persistency
RDBMS
Persistency
Không có nhận xét nào:
Đăng nhận xét