Bài giảng Kiến trúc phần mềm Tài liệu kiến trúc phần mềm trình bày về tài liệu kiến trúc; suy nghĩ cẩn thận về những gì để tài liệu; sơ đồ lớp; sơ đồ trình tự; mẫu tài liệu....
Trang 1CTT526 - Kiến trúc phần mềm
Tài liệu kiến trúc phần mềm
PGS.TS Trần Minh Triết
tmtriet@fit.hcmus.edu.vn
Trường Đại học Khoa Học Tự Nhiên Khoa Công Nghệ Thông Tin
Bộ môn Công Nghệ Phần Mềm
Trang 2 Nội dung của bài giảng sử dụng:
Session 6:
Documenting a Software Architecture
của GS Ian Gorton
Software Engineering Institute
Carnegie Mellon University
Trang 3Architecture Documentation
architecture
very useful
information
inappropriate and not very useful!
Trang 4Documenting an Architecture is
good!
organization can learn from the architecture
its likely performance, or to generate standard metrics
Trang 5But it’s difficult …
documentation standard
it in a comprehensible manner is time consuming
and non-trivial
Documenting all the potentially useful ones is time
consuming and expensive.
architecture documents current is often forgotten,
especially with time and schedule pressures in a
project.
Trang 6Think carefully about what to
document
on high value products
Trang 7UML 2.0
architecture views
Trang 8Component Diagram
id Component View
OrderProcessing
MailQueue
SendEmail
MailServer OrderSystem
CustomerSystem OrderQueue
«table»
NewOrders
1 validate 1
readQ
1 writeQ 1 read
1 send 1
1 readQ 1
1 writeQ
1
Trang 9Class Diagram
cd OrderProcessing
OrderReader
Validate Store
QueueWriter
1
1
1
1
Trang 10Sequence Diagram
sd Interactions
OrderReader
MailQueue
Validate
OrderQueue
Store QueueWriter
readOrderData
success:=
validateOrder
success:=
newOrder success:=
storeOrder
success:=
writeQueue success:=
acknowledgeOrderSuccess
success:=
writeQueue
Trang 11Deployment Diagram
Trang 12Component Interfaces
id Component View
OrderProcessing
MailQueue
SendEmail
MailServer
OrderSystem CustomerSystem
OrderQueue
«table»
NewOrders
JDBC
SMTP QueueRead
QueueRead
QueueWrite
CustomerServices
QueueWrite
Trang 13Component Decomposition
id Component View
OrderProcessing
validateOrder
getOrders writeConfirmation
writeOrder
MailQueue
SendEmail
MailServer
OrderSystem CustomerSystem
validate
ProvidedInterface1
OrderQueue
«table»
NewOrders
JDBC
QueueWrite
QueueWrite
CustomerServices SMTP
QueueRead
QueueRead
cd Component View
OrderProcessing
getOrders
validateOrder
writeConfirmation
writeOrder
or: OrderReader
val: Validate
qw:
QueueWriter
st: Store
«delegate»
«delegate»
«delegate»
«delegate»
Trang 14Document Template
ready-made document structures
the efficient capture of project design details
Trang 15Template Headings
Architecture Documentation Template Project Name: XXX
1 Project Context
2 Architecture Requirements 2.1 Overview of Key Objectives 2.2 Architecture Use Cases 2.3 Stakeholder Architectural Requirements 2.4 Constraints
2.5 Non-functional Requirements 2.6 Risks
3 Solution 3.1 Relevant Architectural Patterns 3.2 Architecture Overview
3.3 Structural Views 3.4 Behavioral Views 3.5 Implementation Issues
Trang 16Summary