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
w Diễ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
w Mô 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)
<<role>>
1
1
PersistencyClient
(from SamplePersistency Client)
<<role>>
PersistentClass
getData()
setData()
command()
new()
(from SamplePersistentClass)
<<role>>
PersistentClassList
new()
add(c: PersistentClass)
(from SamplePersistentClass)
<<role>>
0 *
1
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
<<boundary>>
<<control>>
<<entity>>
<<boundary>>
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
w Mộ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>>
Subsystem Name
Interface Subsystem
<<subsystem>>
Subsystem Name
Interface
Realization (Canonical form)
Realization (Elided form)
<<interface>>
Interface
Nhắc lại: Subsystem và Interface