大学计算机软件架构复习笔记 体系结构
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件架构复习笔记(7) --体系结构
21 Jun 2012At NJU
为什么需要有体系结构的设计(高层设计)
详细设计的不足
•关注点偏差(载体失配)
o程序语言无法描述整理的质量要求
•无法实现佳偶信息本地化(信息隐藏的局限性)
o单词匹配的需求是模块见必须依赖与对方的接口
•无法有效抽象部件的整体特性(无法描述Module itself)
•接口的定义缺乏结构性
o模块的众多接口之间太独立了
o无法实现区别对待
•不能有效适应大型软件开发的特殊开发方法
o复用与单词匹配
o多语言/多泛型与联合编译
o遗留资产与Module Inside使用
Programming in the large 的特点
•载体复杂度过大:过于依赖单词匹配的导入导出关系
•导入导出并不适合整体结构设计
•…
体系结构设计
the set of principal design decision about the system
组成部分
•Components: computation and state
•Connector: relation among components (deserve to be first-class)
•Configuration
注意点
•Components should be independent
•Connectors should be independent
•Relations among components are not fixed
体系结构设计的关注点
•Qualities of the system
o availability
o modifiability
o performance
o security
o testability
o usability
•Project Environments
o Develop Environments
o Business Environments
o Technology Environments
•Business Goals
Why architectural design decisions are important and difficult?
•Design decisions are cross cutting and intertwined:
o the design decision information is fragmented across various parts of the design, making it hard to find and change the decisions.
•Design rules and constraints are violated:
o designers can easily violate design rules and constraints arising from previously taken design decisions
o lead to architectural drift and its associated problems •Obsolete design decisions are not removed
o In the current design practice removing design decisions is avoided, because of the effort needed, and the unexpected effects this
removing can have on the system.
Software Architecture Description
4 + 1 View
传送门
Logic to Process
•Inside-out: from Logic structure
o define agent tasks
o Objects executed on that same agent
o several classes that need to be executed in mutual exclusion •Outside-in: from physical structure
o identify external stimuli (requests) to the system
o define client and servers processes
o define the right set of servers,and allocate objects to the client and servers agents
Logic to Development
•very close, but not the same
• A Component is usually implemented as a module. Large one are decomposed into multiple packages
•Grouping to subsystems based on:
•…
Strategies and Tactics (Ch5)
Availability Tactics
•Fault detection
o Ping echo