Thiết kế Subsystem trong UML
Trang 1Phân tích và Thiết kế Hướng đối tượng
dung UML
Module 12: Thiét ké Subsystem
Trang 2Mục tiêu:
*® Tìm hiêu mục đích của bước thiết kế
Subsystem va vi tri cua cOng doan nay trong
qui trinh
*® Định nghĩa các hành vi được mô tả trong
interfaces cua subsystem dưới dạng
collaboration cua cac class chu/a bén trong
¢ Lap suu liéu vé cau tric bén trong cua subsystem
¢ Xdc dinh cdc phụ thuộc cào các phần tử bên
ngoai subsystem
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức
Trang 3Vị trí của Thiét ké Subsystem
Architectural | Describe Describe
Trang 4Tổng quan về thiét ké Subsystem
Design Subsystems and Interfaces Design Subsystems and Interfaces (updated)
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức
Trang 5Nhac lai: Subsystems va Interfaces
Trang 6Giảm thiểu kết nối <<subsystem>>
Trang 7ICourseCatalogSystem
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức
Trang 8Cac budc thiét ké Subsystem
¢ Phân bổ các hành vi của Subsystemcho các
phần tử của nó
*® Lập sưu liệu về các phần tử của Subsystem
*® Mô tả các phụ thuộc cua Subsystem
¢ Checkpoints
Trang 9Cac budc thiét ké Subsystem
¢ Phân bổ các hành vi của Subsystemcho các
phần tử của nó
*® Lập sưu liệu về các phần tử của Subsystem
*® Mô tả các phụ thuộc cua Subsystem
¢ Checkpoints
Trang 10Cac nhiém vu cua Subsystem
¢ Cac interface operation xdc dinh nhiệm vụ của Subsystem
¢ Interface operations dudc hién thu'c héa boi
" Internal class operations
" Internal subsystem operations
Trang 11Phân bố nhiệm vụ của Subsystem
¢ Xdc dinh cdc phân tử thiết kế mới, hoặc dùng lại
cai co san, (chang han, cac class hay subsystem)
+ Gán trách nhiệm cua subsystem cho các phần tử
cua no
® Tích hợp các cơ chế kha dung (persistence,
distribution, .)
¢ Lap 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
*® Tham khảo lại phần thiết kế kiến trúc
= Chinh subsystem boundaries và các phụ thuộc,
nều cần
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức
Trang 12Qui udc: Subsystem Interaction Diagrams
Subsystem Client Subsystem Proxy Design Element 1
Design Element 2
Không hiển thị Subsystem interface
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức
Trang 13Vi du: CourseCatalogSystem Subsystem
f the availabl offerings for this
Er are displaye
A blanl 1s đispl student offerin;
At this, point the Subm
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức
ecuted
13
Trang 14
Tích hợp cơ chế kiến trúc: Persistency
*® Bảng ánh xạ BUNS Class với các cơ chế kiến trúc có từ phân tích Use-Case
OODBMS Persistency đã khảo sát
trong Use-Case Design
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức
OODBMS Persistency RDBMS Persistency
Trang 15Nhắc lai: Gác bước tích hợp JDBC
x Cung cap khả năng truy suất đến thư viện các class cần
để cai dat JDBC
"= Cung cap java.sgl package
*® Tạo các DBClass cần thiết
"m Mfột DBClass/mot persistent class
" Course Offering persistent class =>
DBCourseOffering
(con tiép)
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức
Trang 16Nhắc lai: Gác bước tich hgp JDBC (tt.)
® Tích hợp các DBClass vào thiết kế
" Cián cho các package/layer
¢ DBCourseOffering ddt vao CourseCatalogSystem subsystem
=» Thém cac quan hé vGi persistency clients
¢ Persistency clients la CourseCatalogSystem subsystem clients
¢ Tao/Hiéu chinh cac interaction diagram m6 ta:
" Việc khoi tao Database
“ Truy xuất dén Persistent class: Create, Read,
Update, Delete
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức
Trang 17Vi du: Local CourseCatalogSystem Subsystem Interaction
CourseCatalog System Client
Retrieve all available cou
offerings |for the current
sql statement 1$
specifying the course offerings
semesfer
passed in
séarch criteria 1n the current
iF Ji coe lisse
1.1.2 execufeQuery(String )
The getData and
operations are ci attribute in the e class instance
trations for aN
| from the tommand
> a list to hold al red course offer :
se offermg
d
Trang 18
Vi du: Billing System Subsystem
l|.1 //is registration open ?( Retrieve a list of cours
call offerings for the current
Close
BÀ Í: "` ố registration for
rr rear I each course
en jj ce ts la Ôi 0 If the maximum number of eck 1 ae selected primary courses have
rr ber of i >~- not been committed, select
——_—— ail alternate course offerings)
ail
Currently assuming tuition based on number of offerings|taken and certain attributes of students If different offerings get different prices this will change slightly
HnalÏy commit or ancel the course fifering once all pweling has occurred
Trang 19Vi du: Local BillingSystem Subsystem Interaction
Subsystem Proxy
Billing System Client
| create(Student, double) Xora lit
the ion that must Hed on the bill
Trang 20Cac budc thiét ké Subsystem
¢ Phân bổ các hành vi của Subsystemcho các
phần tử của nó
¢ Lap sưu liệu về các phần tử của Subsystem
¢ Mô tả các phụ thuộc cua Subsystem
¢ Checkpoints
Trang 21new() add()
1 0 *
<<enfIty>>
CourseOffering
(from University Artifacts)
new() setData()
Trang 22Vi du: Billing System subsystem Elements
submit(theTransaction : StudentBillingTransaction)
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức
Trang 23Cac budc thiét ké Subsystem
¢ Phân bổ các hành vi của Subsystemcho các
phần tử của nó
*® Lập sưu liệu về các phần tử của Subsystem
¢ Mô tả các phụ thuộc cua Subsystem
¢ Checkpoints
Trang 24Describing Subsystem Dependencies
¢ Subsystem phu thudc vao m6t subsystem
Dùng nhưng cẩn
thận
Trang 25Vi au: GourseCatalogsystem subsystem
Trang 26Vi du: BillingSystem subsystem Dependencies
(from Business Services)
Trang 27Cac budc thiét ké Subsystem
¢ Phân bổ các hành vi của Subsystemcho các
phần tử của nó
*® Lập sưu liệu về các phần tử của Subsystem
*® Mô tả các phụ thuộc cua Subsystem
¢ Checkpoints
Trang 28Checkpoints: Thiét Subsystems
¢ Da dinh nghia realization association cho moi interface dé nghi bdi subsystem?
¢ Da dinh nghia mot dependency association cho
m0i interface dung boi subsystem chua’?
* Hãy chắc chắn ran, khong có một phần tử nào
cua subsystem co public visibility
*® Môi operation trên mot interface dudc hién thực
hóa bởi subsystem đã được mộ tả trền một
interaction diagram chưa ? Nêu chưa, operation
có được hiến thực hóa bởi một class đơn không?
Khi do, co dé thay do la anh xa 1:1 giira class
operation va interface operation?
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức
Trang 29Nhắc lại: Thiết ké Subsystem Design
¢ Muc dich cia thiét ké Subsystem 1a gi ?
Orb tao ra bao nhiéu interaction diagrams
trong khi thiết kế Subsystem?
® Tại sao phải đặt các phụ thuộc của một subsystem lén subsystem interface’?
Trang 30
Bai tap: Thiét ké Subsystem
* Cho biết các điều sau:
=" Dinh nghĩa các subsystem, cac interface va cac
quan hệ của chúng với các phần tử thiết kế khác (các lược đồ trong ngữ cảnh của subsystem)
(còn tiến)
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức
Trang 31Bai tap: Thiét ké Subsystem (tt.)
*® Với một subsystem cụ thể, hãy xác định:
=" Các phần tử thiết kế chứa trong subsystem và các
Trang 32Bai tap: Thiét ké Subsystem Design (tt.)
*® Với một subsystem cụ thể, hãy tạo các lược
Coy
= “Interface realizations”
¢ Interaction diagram cho m6i interface operation
¢ Class diagram chua cdc phan ttf cia subsystem
hiện thực hóa các chức năng của Interface và
quan hệ của chúng
“ Class diasram thể hiện subsys(em và tất cả các phụ thuộc lên các external package va subsystem (subsystem dependencies class diagram)
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức