Mục tiêu:kiến trúc và thời điểm thực hiện công đoạn này và cách gán chúng từ các cơ chế phân tích trò của chúng trong kiến trúc hệ thống subsystems các quyết định về kiến trúc... Design
Trang 1Phân tích và Thiết kế Hướng đối tượng
dùng UML
Module 8: Thiết kế kiến trúc
Trang 2Mục tiêu:
kiến trúc và thời điểm thực hiện công đoạn này
và cách gán chúng từ các cơ chế phân tích
trò của chúng trong kiến trúc hệ thống
subsystems
các quyết định về kiến trúc
Trang 3Designer
Architectural Analysis
Architecture Reviewer
Review the Design
Review the Architecture
Use-Case Analysis
Architectural Design Concurrency Describe Distribution Describe
Class Design
Subsystem Design
Use-Case Design Reviewer Design
Vò trí cuûa Phaân tích kieán truùc
Trang 4Specifications
Architectural Design
Software Architecture
Document
Design Model
Design Guidelines
Glossary
Design Guidelines
Analysis Classes
Toång quan veà phaân tích kieán truùc
Trang 5Architectural 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
Trang 6Architectural 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 khả năng tái sử dụng
w Tổ chức mô hình thiết kế
Trang 7Process View Deployment View
Logical View
Use-Case View
Implementation View
End-user
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
Trang 8Class 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?
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
Trang 9Foundation 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
Trang 10Architectural 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 khả năng tái sử dụng
w Tổ chức mô hình thiết kế
Trang 11Các cơ chế thiết kế và cài đặt
Remote Method Invocation (RMI)
Persistency
Analysis Mechanism (Conceptual)
Design Mechanism (Concrete)
Implementation Mechanism (Actual)
OODBMS
ObjectStore
Java 1.2 from Sun
Legacy Data
New Data
Distribution Persistency
Trang 12w Các cơ chế kiến trúc có thể xem như các khuôn mẫu (pattern)
Documenting Architectural Mechanisms
Pattern Name
Template Parameters
Được ghi nhận trong Design Guidelines
Trang 13Ví 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ế
Trang 14Ví dụ: Persistency: RDBMS: JDBC: Khởi tạo
DriverManager
1 getConnection(url, user, pass)
Trang 15Ví duï: Persistency: RDBMS: JDBC: Create
: Connection : Statement
: PersistencyClient : DBClass PersistentClass :
1 create( )
1.1 New()
1.3 createStatement( )
1.4 executeUpdate(String) 1.2 getData( )
Trang 16Ví duï: Persistency: RDBMS: JDBC: Read
: Connection : Statement : ResultSet
:
PersistencyClient : DBClass PersistentClassList : PersistentClass :
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
Trang 17Ví duï: 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
Trang 18Ví duï: Persistency: RDBMS: JDBC: Delete
: PersistencyClient : DBClass : Connection : Statement
1 delete(PersistentClass)
1.1 createStatement( )
1.2 executeUpdate(string)
execute SQL statement
Trang 19Tổng hợp JDBC: Các bước
thiết để cài đặt JDBC
w Tạo/cập nhật interaction diagram để diễn tả:
Delete
Trang 20ResultSet
(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