软件体系结构-第三讲(架构设计)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3
Rational Unified Process
• Iterative • Architecture-centric • Use-case driven • Risk confronting
2012-7-11
Architecture Design Process Mode
4
Focus over time
• Architectural process
– Sequence of activities that lead to the production of architectural artifacts:
• A software architecture description • An architectural prototype
ILeabharlann Baiduerations
Iter. Iter. #m #m+1
2012-7-11
Architecture and Iterations
Use case Model
Design Model
Implementation Model
Deployment Model
Test Model
Content
8
Phase of Architecture
Build the product
Transition
Transition the product to its users
2012-7-11
Major Milestones
Inception
Elaboration
Construction
Transition
time Vision
Baseline Architecture
Business Modeling Requirements
Analysis & Design
Implementation Test
Deployment
Supporting Workflows
Configuration Mgmt Management Environment
Preliminary Iter. Iter. Iter. Iter. Iter. Iteration(s) #1 #2 #n #n+1 #n+2
• Implement architectural prototype Deployment view
• Derive tests from use cases • Evaluate architecture
Process view
Iterate
架构设计过程最佳实践
22
11
2012-7-11
架构设计总体指导原则 • 原则1:看透需求
Prelim ...
Arch
...
Dev
Dev
...
Trans
...
Iteration
Iteration
Iteration Iteration
Iteration
An iteration is a sequence of activities with an established plan and evaluation criteria, resulting in an executable release
2012-7-11
Software A Architecture Design
—— Chapter three Software Architecture Design
李哲洙 lizhezhu@163.com
1
目 录『contents』
• 软件体系结构设计过程 • 预备架构设计阶段 • 概念架构设计阶段 • 细化架构设计阶段
• Produce a Software Architecture Document
2012-7-11
体系结构设计的目标
重用:为了避免重复劳动,为了降低成本,希望 能够重用之前的代码、之前的设计。
透明:有些时候,为了提高效率,把实现的细节 隐藏起来,仅把客户需求的接口呈现给客户。
扩展:对扩展的渴求源于需求的易变。 简明:一个复杂的架构不论是测试还是维护都是
Architecture-Centric
Models are vehicles for visualizing, specifying, constructing, and documenting architecture
The Unified Process prescribes the successive refinement of an executable architecture
Worker: Architect
When does architecture happen?
What does happen?
What is produced?
Who does it?
5
Lifecycle Phases
Inception
Elaboration
Construction
Transition
Initial Capability
Product Release
6
Phases and Iterations
2012-7-11
Inception
Elaboration
Construction
Transition
Release Release Release Release Release Release Release Release
– 看透需求,就是设计人员要做到“理解、能说出所 以然”
– 看透需求,不仅要把需求找全,还要把需求项之间 的矛盾关系、追述关系也都搞清楚
• 原则2:架构大方向正确,这是一种策略。概 念架构更重视宏观定义,比如架构模式、集成 技术选型
• 原则3:设计好架构的各个方面。运用多视图 设计方法,从多个方面进行架构设计
我所要开发的软件和系统究竟是解决什么问题,各种需求是什么?
我从哪里得到和总结各种需求?
我应该考虑那些因素使我能够得到完 整的需求分析?
2012-7-11
架构设计-架构源自需求
为什么要从需求开始?
IT界的技术层出不穷,面对着如此之多的技术、 平台、框架、函数库,我们如何选择一组适合软 件的技术?
每一个客户的软件都有自身的特点,如何才能够 设计出符合客户利益的架构?
time
Inception
Elaboration Construction
Define the scope of the project and develop business case
Plan project, specify features, and baseline the architecture
1
Architectural design
• Identify, select, and validate “architecturally significant” elements
• Not everything is architecture
– Main “business” classes – Important mechanisms – Processors and processes – Layers and subsystems – Interfaces
• Task for Technical Requirement
– Started from operation generated at operation analysis phase, to transfer them into technical criterion that used for architecture design and deploy.
Inception
Elaboration
Construction
Transition
time Architecture
7
Unified Process structure
Process Workflows
Phases
Inception Elaboration Construction
Transition
• 实现阶段
– 在测试环境中创建和部署试验性和/或原型部署 – 设计和运行功能性测试来衡量与系统要求的符
合度 – 设计和运行负载测试来衡量峰值负载下的性能 – 创建生产部署,可能需要分阶段部署到生产中
10
2012-7-11
Architectural design workflow(Booch)
• Select scenarios: criticality and risk • Identify main classes and their responsibility
困难的。 高效:不论是什么系统,都希望架构是高效的 安全:是架构的一个很重要的方面。
2
2012-7-11
架构设计的复杂性
架构设计是一种权衡 一个问题总是有多种的解决方案。而我们要 确定唯一的架构设计的解决方案,就意味着 我们要在不同的矛盾体之间做出一个权衡。
在设计的过程中总可以看到很多的矛盾体:
• Task for Design deploy
– To create deploy architecture which can reflect mapping relation between design proposal and physical condition
Task for Design Phase
• Distribute behavior on classes
Use case view
• Structure in subsystems, layers,
Logical view
define interfaces
• Define distribution and concurrency Implementation view
软件中往往都充斥着众多的问题,在一开始就把 所有的问题都想清楚往往很难做到,但是如果不 解决问题,风险又居高不下
14
2012-7-11
架构设计-架构源自需求(举例)
例1:城市中自来水管的架设是一项非常的复杂的 工程。为了需要满足每家每户的需要,自来水管 组成了一个庞大的网络。在这样一个复杂的网络 中,如何完成铺设的任务呢。一般的做法是,先 找出问题的根源,也就是水的源头。从水源铺设 一条管道通至城市,然后根据城市的区域划分, 设计出主管道,剩下的就是使用的问题了,每家 每户的管道最终都是连到主管道上的。因此,虽 然自来水网络庞大复杂。但是真正的主管道的非 常简单的。
9
2012-7-11
Task for Design Phase
• Task for Logic Design
– To design a logic architecture which express case and scene defined at technical requirement phase
开放和整合 一致性和特殊化 稳定性和延展性
Software engineering process
A set of partially ordered steps intended to reach a goal. In software engineering the goal is to build a software product or to enhance an existing one.
23
架构设计过程:6个步骤
24
12
架构设计阶段具体划分
• 架构设计前准备阶段(预备架构阶段) • 概念架构设计阶段 • 细化架构设计阶段
2012-7-11
目 录『contents』
• 软件体系结构设计过程 • 预备架构设计阶段 • 概念架构设计阶段 • 细化架构设计阶段
13
架构设计的思考往往从需求开始
Discovery
Invention
Implementation
Focus
2012-7-11
Key concepts
Phase, Iterations Process Workflows
– Activity, steps
Artifacts
– models – reports, documents
用例模型 业务架构
2012-7-11
实现架构 部署架构 逻辑架构
Task for Design Phase
• Task for Operation Analysis
– To define project operation object and illustrate operation requirement for object’s satisfaction
Rational Unified Process
• Iterative • Architecture-centric • Use-case driven • Risk confronting
2012-7-11
Architecture Design Process Mode
4
Focus over time
• Architectural process
– Sequence of activities that lead to the production of architectural artifacts:
• A software architecture description • An architectural prototype
ILeabharlann Baiduerations
Iter. Iter. #m #m+1
2012-7-11
Architecture and Iterations
Use case Model
Design Model
Implementation Model
Deployment Model
Test Model
Content
8
Phase of Architecture
Build the product
Transition
Transition the product to its users
2012-7-11
Major Milestones
Inception
Elaboration
Construction
Transition
time Vision
Baseline Architecture
Business Modeling Requirements
Analysis & Design
Implementation Test
Deployment
Supporting Workflows
Configuration Mgmt Management Environment
Preliminary Iter. Iter. Iter. Iter. Iter. Iteration(s) #1 #2 #n #n+1 #n+2
• Implement architectural prototype Deployment view
• Derive tests from use cases • Evaluate architecture
Process view
Iterate
架构设计过程最佳实践
22
11
2012-7-11
架构设计总体指导原则 • 原则1:看透需求
Prelim ...
Arch
...
Dev
Dev
...
Trans
...
Iteration
Iteration
Iteration Iteration
Iteration
An iteration is a sequence of activities with an established plan and evaluation criteria, resulting in an executable release
2012-7-11
Software A Architecture Design
—— Chapter three Software Architecture Design
李哲洙 lizhezhu@163.com
1
目 录『contents』
• 软件体系结构设计过程 • 预备架构设计阶段 • 概念架构设计阶段 • 细化架构设计阶段
• Produce a Software Architecture Document
2012-7-11
体系结构设计的目标
重用:为了避免重复劳动,为了降低成本,希望 能够重用之前的代码、之前的设计。
透明:有些时候,为了提高效率,把实现的细节 隐藏起来,仅把客户需求的接口呈现给客户。
扩展:对扩展的渴求源于需求的易变。 简明:一个复杂的架构不论是测试还是维护都是
Architecture-Centric
Models are vehicles for visualizing, specifying, constructing, and documenting architecture
The Unified Process prescribes the successive refinement of an executable architecture
Worker: Architect
When does architecture happen?
What does happen?
What is produced?
Who does it?
5
Lifecycle Phases
Inception
Elaboration
Construction
Transition
Initial Capability
Product Release
6
Phases and Iterations
2012-7-11
Inception
Elaboration
Construction
Transition
Release Release Release Release Release Release Release Release
– 看透需求,就是设计人员要做到“理解、能说出所 以然”
– 看透需求,不仅要把需求找全,还要把需求项之间 的矛盾关系、追述关系也都搞清楚
• 原则2:架构大方向正确,这是一种策略。概 念架构更重视宏观定义,比如架构模式、集成 技术选型
• 原则3:设计好架构的各个方面。运用多视图 设计方法,从多个方面进行架构设计
我所要开发的软件和系统究竟是解决什么问题,各种需求是什么?
我从哪里得到和总结各种需求?
我应该考虑那些因素使我能够得到完 整的需求分析?
2012-7-11
架构设计-架构源自需求
为什么要从需求开始?
IT界的技术层出不穷,面对着如此之多的技术、 平台、框架、函数库,我们如何选择一组适合软 件的技术?
每一个客户的软件都有自身的特点,如何才能够 设计出符合客户利益的架构?
time
Inception
Elaboration Construction
Define the scope of the project and develop business case
Plan project, specify features, and baseline the architecture
1
Architectural design
• Identify, select, and validate “architecturally significant” elements
• Not everything is architecture
– Main “business” classes – Important mechanisms – Processors and processes – Layers and subsystems – Interfaces
• Task for Technical Requirement
– Started from operation generated at operation analysis phase, to transfer them into technical criterion that used for architecture design and deploy.
Inception
Elaboration
Construction
Transition
time Architecture
7
Unified Process structure
Process Workflows
Phases
Inception Elaboration Construction
Transition
• 实现阶段
– 在测试环境中创建和部署试验性和/或原型部署 – 设计和运行功能性测试来衡量与系统要求的符
合度 – 设计和运行负载测试来衡量峰值负载下的性能 – 创建生产部署,可能需要分阶段部署到生产中
10
2012-7-11
Architectural design workflow(Booch)
• Select scenarios: criticality and risk • Identify main classes and their responsibility
困难的。 高效:不论是什么系统,都希望架构是高效的 安全:是架构的一个很重要的方面。
2
2012-7-11
架构设计的复杂性
架构设计是一种权衡 一个问题总是有多种的解决方案。而我们要 确定唯一的架构设计的解决方案,就意味着 我们要在不同的矛盾体之间做出一个权衡。
在设计的过程中总可以看到很多的矛盾体:
• Task for Design deploy
– To create deploy architecture which can reflect mapping relation between design proposal and physical condition
Task for Design Phase
• Distribute behavior on classes
Use case view
• Structure in subsystems, layers,
Logical view
define interfaces
• Define distribution and concurrency Implementation view
软件中往往都充斥着众多的问题,在一开始就把 所有的问题都想清楚往往很难做到,但是如果不 解决问题,风险又居高不下
14
2012-7-11
架构设计-架构源自需求(举例)
例1:城市中自来水管的架设是一项非常的复杂的 工程。为了需要满足每家每户的需要,自来水管 组成了一个庞大的网络。在这样一个复杂的网络 中,如何完成铺设的任务呢。一般的做法是,先 找出问题的根源,也就是水的源头。从水源铺设 一条管道通至城市,然后根据城市的区域划分, 设计出主管道,剩下的就是使用的问题了,每家 每户的管道最终都是连到主管道上的。因此,虽 然自来水网络庞大复杂。但是真正的主管道的非 常简单的。
9
2012-7-11
Task for Design Phase
• Task for Logic Design
– To design a logic architecture which express case and scene defined at technical requirement phase
开放和整合 一致性和特殊化 稳定性和延展性
Software engineering process
A set of partially ordered steps intended to reach a goal. In software engineering the goal is to build a software product or to enhance an existing one.
23
架构设计过程:6个步骤
24
12
架构设计阶段具体划分
• 架构设计前准备阶段(预备架构阶段) • 概念架构设计阶段 • 细化架构设计阶段
2012-7-11
目 录『contents』
• 软件体系结构设计过程 • 预备架构设计阶段 • 概念架构设计阶段 • 细化架构设计阶段
13
架构设计的思考往往从需求开始
Discovery
Invention
Implementation
Focus
2012-7-11
Key concepts
Phase, Iterations Process Workflows
– Activity, steps
Artifacts
– models – reports, documents
用例模型 业务架构
2012-7-11
实现架构 部署架构 逻辑架构
Task for Design Phase
• Task for Operation Analysis
– To define project operation object and illustrate operation requirement for object’s satisfaction