Bài giảng Phân tích và thiết kế hướng đối tượng sử dụng UML - Thiết kế Subsystem

w Tìm hiêu mục đích của bước thiết kế

Subsystem và vị trí của công đoạn này trong

qui trình

w Định nghĩa các hành vi đươc mô tả trong

interfaces của subsystem dưới dạng

collaboration của các class chưa bên trong

w Lập sưu liệu về cấu trúc bên trong của

subsystem

w Xác định các phụ thuộc cào các phần tử bên

ngoài subsystem

pdf32 trang | Chuyên mục: Thiết Kế Hướng Đối Tượng Với UML | Chia sẻ: dkS00TYs | Lượt xem: 3046 | Lượt tải: 3download
Tóm tắt nội dung Bài giảng Phân tích và thiết kế hướng đối tượng sử dụng UML - Thiết kế Subsystem, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
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
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 15
w Cung cấp khả năng truy suất đến thư viện các class cần 
để cài đặt JDBC 
§ Cung cấp java.sql package
w Tạo các DBClass cần thiết
§ Một DBClass/một persistent class
§ Course Offering persistent class => 
DBCourseOffering
Nhắc lại: Các bước tích hợp JDBC
Ư
Ư - Done
(còn tiếp)
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 16
w Tích hợp các DBClass vào thiết kế
§ Gán cho các package/layer
• DBCourseOffering đặt vào
CourseCatalogSystem subsystem
§ Thêm các quan hệ với persistency clients
• Persistency clients là CourseCatalogSystem
subsystem clients
w Tạo/Hiệu chỉnh các interaction diagram mô tả:
§ Việc khởi tạo Database
§ Truy xuất đến Persistent class: Create, Read, 
Update, Delete
Nhắc lại: Các bước tích hợp JDBC (tt.)
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 17
Ví dụ: Local CourseCatalogSystem Subsystem Interaction
Subsystem Proxy
RDBMS
Read
Retrieve all available course 
offerings for the current 
semester
CourseCatalog
System Client
: 
CourseCatalogSystem
: 
DBCourseOfferring
: 
CourseOffering
: 
CourseOfferingList
: ResultSet: Course Catalog: Statement: Connection
1. getCourseOfferings(Semester)
1.1. read(string)
1.1.1. createStatement( )
1.1.2. executeQuery(String)
sql statement is passed in 
specifying the search criteria --
course offerings in the current 
semester
1.1.4. new( )
Repeat these operations for each 
element returned from the 
executeQuery() command.
The CourseOfferingList is loaded 
with the data retrieved from the 
database.
The getData and setData 
operations are called for each 
attribute in the each retrieved 
class instance.
3. setData( )
Create a list to hold all 
retrieved course offerings
Add the retrieved course offering 
to the list to be returned
2. getString( )
1.1.3. new( )
4. add(CourseOffering)
1.1.2.1. // executeQuery( )
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 18
Ví dụ: Billing System Subsystem
Send student and tuition to 
the Billing System, which will 
do the actual billing to the 
student for the schedule.
: Registrar : CloseRegistrationForm
: 
CourseOffering
: Schedule : Student. : 
IBillingSystem
: 
ICourseCatalogSystem
: 
CloseRegistrationController
Close 
registration for 
each course 
offering
Retrieve a list of course 
offerings for the current 
semester
If the maximum number of 
selected primary courses have 
not been committed, select 
alternate course offerings).
Currently assuming tuition based on 
number of offerings taken and certain 
attributes of students. If different offerings 
get different prices this will change slightly.
Repeat twice this is 
for simplicity; 
realistically, an 
indefinite number of 
iterations could 
occur)
Finally commit or 
cancel the course 
offering once all 
leveling has occurred
1. // close registration( )
2. // close registration( )
2.2. // close registration( )
1.1. // is registration open?( )
2.6. submitBill(Student, double)
2.3. // level( )
2.1. getCourseOfferings(Semester)
2.4. // close( )
2.5. getTuition( )
subsystem interface
subsystem responsibility
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 19
Ví dụ: Local BillingSystem Subsystem Interaction
Billing System 
Client
: 
BillingSystem
: 
StudentBillingTransaction
: 
BillingSystemInterface : Billing System
: Student.
1. submitBill(Student, double)
1.1. create(Student, double)
1.2. submit(StudentBillingTransaction)
1.1.1. // get contact info( )
Retrieve the 
information that must 
be included on the bill
1.2.1. // open connection( )
1.2.2. // process transaction( )
1.2.3. // close connection( )
Subsystem Proxy
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 20
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
wMô 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 21
Ví dụ: CourseCatalogSystem Subsystem Elements
Subsystem Proxy
Subsystem Interface
DBCourseOfferring
create() : CourseOffering
read(searchCriteria : string) : CourseOfferingList
CourseCatalogSystem
getCourseOfferings(forSemester : Semester) : CourseOfferingList
>
ICourseCatalogSystem
getCourseOfferings(forSemester : Semester) : CourseOfferingList
(from External System Interfaces)
>
Statement
executeQuery()
executeUpdate()
(from java.sql)
Connection
createStatement()
(from java.sql)
1
1
CourseOfferingList
new()
add()
(from University Artifacts)
CourseOffering
new()
setData()
(from University Artifacts)
>
1
0..*
ResultSet
getString()
(from java.sql)
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 22
Ví dụ: Billing System Subsystem Elements
StudentBillingTransaction
create(forStudent : Student, forAmount : double)
Student.
// get contact info()
(from University Artifacts)
>
BillingSystem
submitBill(forStudent : Student, forTuition : double)
>
BillingSystemInterface
submit(theTransaction : StudentBillingTransaction)
0..1
1
IBillingSystem
submitBill()
(from External System Interfaces)
>
Subsystem Proxy
Subsystem Interface
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 23
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
wMô 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 24
Mềm dẻo
Describing Subsystem Dependencies
w Subsystem phụ thuộc vào một subsystem
w Subsystem phụ thuộc vào package
Server
Client Support
>
Server Support
>
Dùng nhưng cẩn 
thận
Client Support
> Supporting
Types
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 25
Ví dụ: CourseCatalogSystem Subsystem 
Dependencies
java.sql
(from Middleware)
CourseCatalogSystem
(from Business Services)
>
External System 
Interfaces
(from Business Services)
University Artifacts
(from Business Services)
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 26
Ví dụ: BillingSystem Subsystem Dependencies
BillingSystem
(from Business Services)
>
External System 
Interfaces
(from Business Services)
University Artifacts
(from Business Services)
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 27
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
wMô 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 28
Checkpoints: Thiết Subsystems
w Đã định nghĩa realization association cho mỗi
interface đề nghị bởi subsystem?
w Đã định nghĩa một dependency association cho 
mỗi interface dùng bởi subsystem chưa?
w Hãy chắc chắn rằn, không có một phần tử nào 
của subsystem có public visibility.
w Mỗi operation trên một interface được 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 đó, có dề thấy đó là ánh xạ 1:1 giữa class 
operation và interface operation?
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 29
Nhắc lại: Thiết kế Subsystem Design
wMục đích của thiết kế Subsystem là gì ?
w Cần tạo ra bao nhiêu interaction diagrams 
trong khi thiết kế Subsystem?
w Tại sao phải đặt các phụ thuộc của một
subsystem lên subsystem interface?
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 30
(còn tiếp)
Bài tập: Thiết kế Subsystem
w Cho biết các điều sau:
§ Định nghĩa các subsystem, các interface và các 
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)
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 31
(còn tiếp)
Bài tập: Thiết kế Subsystem (tt.)
w 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 
quan hệ của chúng
§ Các cơ chế kiến trúc khả dụng
§ Các interaction cần để cài đặt các subsystem 
interface operation
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 32
Bài tập: Thiết kê Subsystem Design (tt.)
w Với một subsystem cụ thể, hãy tạo các lược 
đồ:
§ “Interface realizations”
• Interaction diagram cho mỗi interface operation
• Class diagram chưa các phần tử của subsystem
hiện thực hóa các chức năng của interface và 
quan hệ của chúng
§ Class diagram thể hiện subsystem và tất cả các 
phụ thuộc lên các external package và subsystem
(subsystem dependencies class diagram)

File đính kèm:

  • pdfBài giảng Phân tích và thiết kế hướng đối tượng sử dụng UML - Thiết kế Subsystem.pdf
Tài liệu liên quan