Tài liệu Phân tích và thiết kế hướng đối tượng sử dụng UML - Thiết kế kiến trúc: PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 1
Phân tích và Thiết kế Hướng đối tượng
dùng UML
Module 8: Thiết kế kiến trúc
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 2
Mục tiêu:
w Tìm hiểu mục đích của công đoạn Thiết kế
kiến trúc và thời điểm thực hiện công đoạn
này
wDiễn giải về các cơ chế thiết kế và cài đặt
và cách gán chúng từ các cơ chế phân tích
w Tìm hiểu về subsystems aà interfaces và vai
trò của chúng trong kiến trúc hệ thống
wMô tả quy trình xác định các interfaces và
subsystems
w Tìm hiểu các lý lẽ và các cở sở hỗ trợ cho
các quyết định về kiến trúc
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 3
Architect
Designer
Architectural
Analysis
Architecture
Reviewer
Review the
Design
Review the
Architecture
Use-Case
Analysis
Architectural
Design
Describe
Concurrency
Describe
Distribution
Class...
68 trang |
Chia sẻ: hunglv | Lượt xem: 2130 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Phân tích và thiết kế hướng đối tượng sử dụng UML - Thiết kế kiến trúc, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 1
Phân tích và Thiết kế Hướng đối tượng
dùng UML
Module 8: Thiết kế kiến trúc
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 2
Mục tiêu:
w Tìm hiểu mục đích của công đoạn Thiết kế
kiến trúc và thời điểm thực hiện công đoạn
này
wDiễn giải về các cơ chế thiết kế và cài đặt
và cách gán chúng từ các cơ chế phân tích
w Tìm hiểu về subsystems aà interfaces và vai
trò của chúng trong kiến trúc hệ thống
wMô tả quy trình xác định các interfaces và
subsystems
w Tìm hiểu các lý lẽ và các cở sở hỗ trợ cho
các quyết định về kiến trúc
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 3
Architect
Designer
Architectural
Analysis
Architecture
Reviewer
Review the
Design
Review the
Architecture
Use-Case
Analysis
Architectural
Design
Describe
Concurrency
Describe
Distribution
Class
Design
Subsystem Design
Use-Case
Design
Design
Reviewer
Vị trí của Phân tích kiến trúc
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 4
Supplementary
Specifications
Architectural
Design
Software Architecture
Document
Design Model
Design Model
Design
Guidelines
Glossary
Design
Guidelines
Analysis Classes
Tổng quan về phân tích kiến trúc
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 5
Architectural Design Topics
w Các khái niệm then chốt
w Các cơ chế thiết kế và cài đặt
w Các Design Class và Subsystem
w Các khả năng tái sử dụng
w Tổ chức mô hình thiết kế
w Checkpoints
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 6
Architectural Design Topics
w Các khái niệm then chốt
w Các cơ chế thiết kế và cài đặt
w Các Design Class và Subsystem
w Các khả năng tái sử dụng
w Tổ chức mô hình thiết kế
w Checkpoints
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 7
Process View Deployment View
Logical View
Use-Case View
Implementation View
End-user
Functionality
Programmers
Software management
Performance
Scalability
Throughput
System integrators
System topology
Delivery, installation
communication
System engineering
Analysts/Designers
Structure
Mô hình kiến trúc “4+1 View”
Logical View là phần có ý nghĩa về mặt kiến trúc của Design Model
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 8
Class Name
Package Name
Nhắc lại: Class và Package
w Thế nào là class?
§ Là mô tả của một tập các đối tượng cùng chia xẻ
các trách nhiệm, mối quan hệ, các tác vụ, thuộc
tính, và ngữ nghĩa.
w Thế nào là package?
§ Là một cơ chế dùng chung để nhóm các phần tử
thành các nhóm
§ Là một phần tử của môhình có thể chứa bên trong
các phần tử khác
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 9
Foundation
Classes
global
Các Global Package
w Toàn bộ package được sử dụng bởi tất cả các
package khác
w Những package này được đánh dấu là global
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 10
Architectural Design Topics
w Các khái niệm then chốt
w Các cơ chế thiết kế và cài đặt
w Các Design Class và Subsystem
w Các khả năng tái sử dụng
w Tổ chức mô hình thiết kế
w Checkpoints
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 11
Các cơ chế thiết kế và cài đặt
Analysis Design Implementation
Remote Method
Invocation (RMI)
Persistency
Analysis
Mechanism
(Conceptual)
Design
Mechanism
(Concrete)
Implementation
Mechanism
(Actual)
OODBMS
RDBMS JDBC
ObjectStore
Java 1.2 from Sun
Legacy Data
New Data
Distribution
Persistency
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 12
w Các cơ chế kiến trúc có thể xem như các
khuôn mẫu (pattern)
Documenting Architectural Mechanisms
Structural Aspect Behavioral Aspect
Pattern Name
Template
Parameters
Được ghi nhận trong Design Guidelines
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 13
Ví dụ: Persistency: RDBMS: JDBC
ResultSet
getString() : string
(from java.sql)
Connection
createStatement() : Statement
(from java.sql)
Statement
executeQuery(sql : String) : ResultSet
executeUpdate(sql : String) : int
(from java.sql)
DriverManager
getConnection(url, user, pass) : Connection
(from java.sql)
DBClass
create() : PersistentClass
read(searchCriteria : string) : PersistentClassList
update(c : PersistentClass)
delete(c : PersistentClass)
>
1
1
PersistencyClient
(from SamplePersistency Client)
>
PersistentClass
getData()
setData()
command()
new()
(from SamplePersistentClass)
>
PersistentClassList
new()
add(c: PersistentClass)
(from SamplePersistentClass)
>
0..*
1
Roles sẽ được điền bởi designer
áp dụng cơ chế
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 14
Ví dụ: Persistency: RDBMS: JDBC: Khởi tạo
: DBClass :
DriverManager
1. getConnection(url, user, pass)
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 15
Ví dụ: Persistency: RDBMS: JDBC: Create
: Connection : Statement:
PersistencyClient
: DBClass :
PersistentClass
1. create( )
1.1. New()
1.3. createStatement( )
1.4. executeUpdate(String)
1.2. getData( )
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 16
Ví dụ: Persistency: RDBMS: JDBC: Read
: Connection : Statement : ResultSet:
PersistencyClient
: DBClass :
PersistentClass
:
PersistentClassList
1. read(string)
1.1. createStatement( )
1.2. executeQuery(string)
1.4. new()
1.5. getString( )
1.6. setData( )
called for each
attribute in the
class
returns a
Statement
1.3. new( )
Create a list to hold all
retrieved data
1.7. add(PersistentClass)
Add the retrieved course offering
to the list to be returned
Repeat these operations for
each element returned from
the executeQuery()
command.
The PersistentClassList is
loaded with the data retrieved
from the database.
The SQL statement
built by the DBClass
using the given
criteria is passed to
executeQuery()The criteria used to
access data for the
persistent class
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 17
Ví dụ: Persistency: RDBMS: JDBC: Update
: DBClass:
PersistencyClient
:
PersistentClass
: Connection : Statement
1. update(PersistentClass)
1.2. createStatement( )
1.1. getData( )
1.3. executeUpdate(string)
execute SQL
statement
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 18
Ví dụ: Persistency: RDBMS: JDBC: Delete
:
PersistencyClient
: DBClass : Connection : Statement
1. delete(PersistentClass)
1.1. createStatement( )
1.2. executeUpdate(string)
execute SQL
statement
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 19
Deferred
Tổng hợp JDBC: Các bước
w Cung cấp khả năng truy cập đến class libraries cần
thiết để cài đặt JDBC
§ Cung cấp java.sql package
w Tạo các DBClass cần thiết
§ Một DBClass / persistent class
w Tích hợp các DBClass vào thiết kế
§ Xếp đặt vào package/layer
§ Thêm các mối quan hệ từ các persistency client
w Tạo/cập nhật interaction diagram để diễn tả:
§ Database initialization
§ Persistent class access: Create, Read, Update,
Delete
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 20
java.sql
ResultSet
(from java.sql)
Connection
(from java.sql)
Statement
(from java.sql)
DriverManager
(from java.sql)
Sample
Persistency
Client Package
Ví dụ: Tổng hợp JDBC
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 21
Architectural Design Topics
w Các khái niệm then chốt
w Các cơ chế thiết kế và cài đặt
w Các Design Class và Subsystem
w Các khả năng tái sử dụng
w Tổ chức mô hình thiết kế
w Checkpoints
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 22
Analysis Classes Design Elements
Quan hệ nhiều nhiều
Từ Analysis Classes đến Design Elements
>
>
>
>
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 23
Xác định các Design Class
w Analysis class ánh xạ thẳng thành design class
nếu:
§ Đơn giản
§ Biểu diễn một single logical abstraction
w Các analysis class phức tạp hơn có thể:
§ Tách thành nhiều class
§ Trở thành một package
§ Trở thành một subsystem (sẽ khảo sát sau)
§ Một tổ hợp bất kỳ …
w Các analysis class đơn giản có thể trở thành
một design class
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 24
PackageB
+Class B1
-Class B2
PackageA
Class A1
Class A3
Class A2
A
B
Public visibility
Private visibility
Chỉ các public class
mới được tham chiếu
từ bên ngoài package
sở hữu nó
Nguyên lý OO : Encapsulation
Các phụ thuộc Package: Tính khả kiến của các ptử
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 25
wMột dạng trung gian giữa package (có thể chứa
các phần tử khác) và class (có hành vi)
w Hiện thực hoá 1 hoặc nhiều interface định
nghĩa hành vi của nó
>
Subsystem Name
Interface Subsystem
>
Subsystem Name
Interface
Realization (Canonical form)
Realization (Elided form)
>
Interface
Nhắc lại: Subsystem và Interface
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 26
>
SubsystemA
InterfaceK
>
X()
W()
>
SubsystemB
Class B1
W()
Y()
Class B2
X()
Class B3
Z()
Class A1
W()
Class A2
X()
Subsystem và Interface (tt.)
w Các Subsystem:
§ Hoàn toàn đóng gói hành vi
§ Thể hiện một khả năng hoàn toàn độc lập, với các
interface rõ ràng (có tiềm năng tái sử dụng)
§ Mô hình hoá nhiều phương án cài đặt khác nhau
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 27
A
>
PackageB
Class B1
Class B2
Client Class
Encapsulation là mấu chốt !
So sánh Package với Subsystem
w Subsystem cung cấp hành vi, package không
w Subsystem hoàn toàn đóng gói nội dung của
nó, package thì không
w Subsystem dễ dàng được thay thế
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 28
Các Subsystem nâng cao mức độ trừu tượng
Cách dùng Subsystem
w Subsystem có thể dùng để chia system thành các phần độc lập
về:
§ Thứ tự, cấu hình, hoặc vận chuyển
§ Phát triển, chừng nào mà interface còn chưa thay đổi
§ Triển khai trên các node tính toán phân tán
§ Thay đổi mà không phá vỡ các phần khác của system
w Subsystem còn có thể dùng để:
§ Phần chia system thành các đơn vị cung cấp độ bảo mật
cao đối với các tài nguyên then chốt
§ Biểu diễn các sản phẩm có sẵn hoặc các system nằm ngoài
bản thiết kế (chẳng hạn như các component)
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 29
Các gợi ý giúp xác định các Subsystem
w Tìm kiếm sự cộng tác giữa các object
w Tìm kiếm sự tuỳ chọn
w Chú ý user interface của system
w Chú ý các Actor
w Tìm kiếm sự kết dính giữa các class
w Xem xét sự thay thế (các mức độ service)
w Xem xét sự phân bố
w Xem xét sự kém bền vững
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 30
w Các Analysis classe có thể tiến hoá thành các subsystem
§ Các Class cung cấp các dịch vụ và/hoặc các tiện ích trọn
vẹn
§ Các Boundary class (user interface và external system
interface)
w Các sản phẩm sẵn có hoặc các system nằm ngoài thiết kế
§ Communication software
§ Database access support
§ Các kiểu và cấu trúc dữ liệu
§ Các tiện ích dùng chung
§ Các sản phẩm ứng dụng đặc thù
Các Subsystem tiềm năng
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 31
InterfaceA
>
Y()
Z()
>
SubsystemK
ClassA
Y()
Z()
“Superman Class”
Identifying Subsystems
?
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 32
Các interface ổn định, thiết kế tốt là nền tảng cho một kiến trúc bền vững
Identifying Interfaces
w Mục đích
§ Để xác định interface của các subsystem dựa trên
nhiệmvụ của chúng
w Các bước
§ Xác định một tập các interface tiềm năng cho tất
cả các subsystem
§ Tìm kiếm sự tương tự giữa các interface
§ Định nghĩa các phụ thuộc của interface
§ Ánh xạ các interface đến các subsystem
§ Định nghĩa hành vi được mô tả bới interface
§ Đoán gói các interface
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 33
Interface Guidelines
w Đặt tên cho Interface
§ Thể hnện vai trò trong system
wMô tả Interface
§ Chuyển tải các nhiệm vụ
w Định nghĩa Operation
§ Tên phải phản ánh đúng kết quả của operation
§ Mô tả operation được thực hiện, tất cả các tham số
và kết quả
w Interface documentation
§ Package các thông tin hỗ trợ: sequence aà state
diagrams, kế hoạch kiểm chứng, …
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 34
BillingSystem
// submit bill()
>
BillingSystem
>
IBillingSystem
CourseCatalogSystem
// get course offerings()
>
CourseCatalogSystem
>
ICourseCatalogSystem
Tất cả các analysis class khác đều chuyển thành design class
Analysis Design
Ví dụ: Các Design Subsystem
getCourseOfferings(forSemester : Semester) : CourseOfferingList
submitBill(forTuition : Double, forStudent : Student)
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 35
Analysis Class Design Element
CourseCatalogSystem
BillingSystem
All other analysis classes map
directly to design classes
CourseCatalogSystem Subsystem
BillingSystem Subsystem
Via dụ: Analysis-Class-To-Design-Element Map
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 36
CourseCatalogSystem
>
ICourseCatalogSystem
ICourseCatalogSystem
CourseCatalogSystem
>
CourseCatalogSystem
>Interfaces start with an “I”
> package
> class
Qui ước mô hình hoá: Subsystem và Interface
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 37
courseCatalog
CourseOfferingList
CourseCatalogSystem
getCourseOfferings(forSemester : Semester) : CourseOfferingList
>
RegistrationController
// get course offerings()
// get current schedule()
// delete current schedule()
// submit schedule()
// is registration open?()
// save schedule()
// create schedule with offerings()
// update schedule with new selections()
>
CloseRegistrationController
// is registration open?()
// close registration()
>
ICourseCatalogSystem
getCourseOfferings(forSemester : Semester) : CourseOfferingList
>
1
0..*
1
0..1
courseCatalog
Ví dụ: Subsystem Context: CourseCatalogSystem
Interface defined
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 38
BillingSystem
submitBill(forStudent : Student, forTuition : double)
>
IBillingSystem
submitBill(forTuition : Double, forStudent : Student)
>
Student
>
0..1
1
+Biller
CloseRegistrationController
// is registration open?()
// close registration()
>
Ví dụ: Subsystem Context: Billing System
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 39
Bài tập: Architectural Design, phần 1
w Cho biết các vấn đề sau:
§ Các analysis class và mối quan hệ của chúng
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 40
(còn tiếp)
Bài tập: Architectural Design, phần 1 (tt.)
w Hãy xác định:
§ 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
§ Ánh xạ các analysis class thành các phần tử thiết
kế
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 41
Bài tập: Architectural Design, Part 1 (tt.)
w Hãy xây dựng các lược đồ sau:
§ Với mỗi subsystem, xây dựng 1 subsystem context
class diagram
§ Xây dựng bảng ánh xạ các analysis class thành
các phần tử thiết kế (design element)
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 42
Architectural Design Topics
w Các khái niệm then chốt
w Các cơ chế thiết kế và cài đặt
w Các Design Class và Subsystem
w Các khả năng tái sử dụng
w Tổ chức mô hình thiết kế
w Checkpoints
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 43
Xác định các khả năng dùng lại
wMục đích
§ Để xác định nơi đâu có thể dùng lại các subsystem
hay các component đã xây dựng dựa trên interface
của chúng.
w Các bước
§ Tìm kiếm các interface tương tự nhau
§ Hiệu chỉnh các interface mới để phù hợp hơn
§ Thay thế các interface cần có bằng các interface
có sẵn
§ Ánh xạ các subsystem cần có với các component
có sẵn
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 44
Những cơ hội dùng lại
w Bên trong hệ thống đang xây dựng:
§ Nhận biết sự giống nhau giữa các package và các
subsystem
w Bên ngoài hệ thống đang xây dựng:
§ Các component thương mại
§ Các component từ các ứng dụng đã xây dựng trước
đó
§ Các component đã được reverse engineered
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 45
?
Cơ hội dùng lại ngay bên trong hệ thống
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 46
Architectural Design Topics
w Các khái niệm then chốt
w Các cơ chế thiết kế và cài đặt
w Các Design Class và Subsystem
w Các khả năng tái sử dụng
w Tổ chức mô hình thiết kế
w Checkpoints
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 47
Hướng tiếp cận phân lớp truyền thống
General
functionality
Specific
functionality
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 48
Mục đích là giảm sự chồng lắp và tăng khả năng bảo trì nâng cấp
Layering Guidelines
w Tính khả kiến
§ Chỉ có các phụ thuộc giữa layer hiện tại và layer kế
w Tính dễ thay đổi
§ Các layer ngoài bị thay đổi khi y/c đ/v HT thay đổi
§ Các layer trong bị thay đổi khi môi trường hoạt động
thay đổi
w Tính tổng quát
§ Các phần tử có chức năng tổng quát ở các layer thấp
w Số lượng các layer
§ Hệ thống nhỏ: 3-4 layer
§ Hệ thống phức tạp: 5-7 layer
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 49
Layer 1 >
> >
Layer 2
>
>
>
>
>
Layer 3
> >
>
>
Các Design Element và Kiến trúc
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 50
Base Reuse
global
Middleware
>
Application
>
Business
Services
>
Ví dụ: Architectural Layers
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 51
Các tiêu chuẩn phân chia
w Sự chồng lắp và kết dính
w Tổ chức của đơn vị sử dụng
w Năng lực và kỹ năng
w Sự phân bố của hệ thống
w Tính bảo mật
w Khả năng biến đổi
Hãy thử loại bỏ các phụ thuộc xoay vòng
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 52
B
A Package A
Package B
Ví dụ: Partitioning
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 53
RegistrationController
>
MainStudentForm
RegisterForCoursesForm
>
1
1
1
0..1
CloseRegistrationController
>
MainRegistrarForm
CloseRegistrationForm
>
1
1
1
0..1
Ví dụ: Registration Package
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 54
FulltimeStudent
>
ParttimeStudent
>
PrimaryScheduleOfferingInfo
>
ScheduleOfferingInfo
>
Student
>
Course
>
Professor
>
Schedule
>
CourseOffering
>
CourseOfferingList
1
preRequisites
0..*
0..*
1
instructor
0..1
0..*
0..*0..*
0..*
0..4
primaryCourses
0..*
0..2
alternateCourses
0..*
1
Vó dụ: University Artifacts Package
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 55
IBillingSystem
>
ICourseCatalogSystem
>
Ví dụ: External System Interfaces Package
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 56
Registration
>
Application
Ví dụ: Application Layer
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 57
Application
>
Business
Services
>
Security
Registration
GUI Framework
External System
Interfaces
University Artifacts
>
Application
>
Business Services
Secure Interfaces
Ví dụ: Application Layer Context
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 58
BillingSystem
>
CourseCatalogSystem
>
External System
Interfaces
University
Artifacts
ObjectStore
Support
>
Business Services
GUI
Framework
Secure
Interfaces
Security
>
Security
Manager
Ví dụ: Business Services Layer
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 59
Middleware
>
Business
Services
>
java.sqlcom.odi
>
Middleware
BillingSystem
>
CourseCatalogSystem
>
External System
Interfaces
University
Artifacts
ObjectStore
Support
>
Business Services
GUI
Framework
Secure
Interfaces
Security
>
Security
Manager
Ví dụ: Business Services Layer Context
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 60
com.odi
Database
(from com.odi)
Session
(from com.odi)
Transaction
(from com.odi)
Map
(from com.odi)
java.sql
ResultSet
(from com.odi)
Connection
(from com.odi)
Statement
(from com.odi)
DriverManager
(from com.odi)
Ví dụ: Middleware Layer
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 61
Architectural Design Topics
w Các khái niệm then chốt
w Các cơ chế thiết kế và cài đặt
w Các Design Class và Subsystem
w Các khả năng tái sử dụng
w Tổ chức mô hình thiết kế
w Checkpoints
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 62
Checkpoints
w Tổng quát
§ Kiến trúc có cung cấp 1 bức tranh dề hiểu về
những dịch vụ của các package khác nhau không?
§ Kiến trúc có cung cấp 1 bức tranh dề hiểu về các
cơ chế không?
§ Bạn có thể tìn được lời giải có thể dùng rộng rãi
hơn trong lãnh vực của ứng dụng không ?
w Layers
§ Có nhiều hơn 7 layers không?
w Subsystems
§ Việc phân chia thành các subsystem có logic và
phù hợp với toàn bộ mô hình không?
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 63
Checkpoints (tt.)
w Packages
§ Tên của các package có dễ hiểu, có ý nghĩa
không?
§ Mô tả về package có khớp với trách nhiệm của
các class chứa bên trong không?
§ Sự phụ thuôc giữa các package có tương ứng với
các quan hệ giữa các class chứa bên trong
không?
§ Các class bên trong package có phù hợp với các
tiêu chuẩn phân chia package không?
§ Có thể phân chia một package thành hai
package?
§ Tỉ lệ giữa số package và số các classcó hợp lý?
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 64
Checkpoints (tt.)
wCác Class
§ Tên mỗi class có phản ánh đúng vai trò của
nó ?
§ Liệu class có kết dính như một thể thống
nhất ?
§ Toàn bộ các thành phần trong class có cần
thiết cho use-case realizations?
§ Tên của role trong các aggregation và
association có diễn tả chính xác mối quan
hệ?
§ Các bản số trong mối quan hệ có chính xác?
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 65
Nhắc lại: Architectural Design
wMục tiêu của Architectural Design là gì?
w Thiết kế và cài đặt là gì?
wMechanisms? Cho ví dụ.
w Interface là gì?
w Subsystem là gì? Khác package chỗ nào?
w Subsystem dùng để làm gì và làm sao để xác
định được nó?
w Phân lớp và chia nhóm như thế nào?
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 66
Bài tập: Architectural Design, Part 2
w Làm các việc sau:
§ Xây dựng layers, packages, và các phụ thuộc
§ Xây dựng các design elements (chẳng hạn, các
class, subsystem, interface) và quan hệ của chúng
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 67
(continued)
Bài tập: Architectural Design, Part 2 (tt.)
w Hãy xác định
§ Vị trí của các design element (như, subsystem và
design class) trong kiến trúc (nghĩa là, xác định
các package/layer chứa các design element)
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 68
Bài tập: Architectural Design, Part 2 (tt.)
w Hãy xây dựng:
§ Bảng liệt kê các design element và các package
“sở hữu” chúng
Các file đính kèm theo tài liệu này:
- BAI8.PDF