1. 说明
- 1.软件架构设计是降低成本、改进质量、按时和按需交付产品的关键因素。
2. 能够满足系统的品质
- 1.系统的功能性是软件架构设计师通过组成体系架构的多种元素之间的交互作用来支持的。
- 2.架构设计用于实现系统的品质,如性能、安全性和可维护性等。
- 3.通过架构设计文档化,可以尽早地评估项目的这些品质。
3. 使受益人达成一致的目标
- 1.架构设计的过程使得不同的受益人达成一致的目标,体系架构的设计过程需要确保架构设计被清楚地传达与理解。
- 2.一个被有效传达的体系架构使得涉众们可以辩论、决议和权衡,反复讨论,最终达成共识。
- 3.文档化体系架构是非常重要的,这是软件架构设计师的主要职责。
4. 能够支持计划编制过程
- 1.架构设计将确定组件之间的依赖关系,直接支持项目计划和项目管理的活动,例如,细节划分、日程安排、工作分配、成本分析、风险管理和技能开发等。
- 2.架构设计师还能协助估算项目成本,例如,体系架构决定使用第三方组件的成本,以及支持开发的所有工具的成本;架构设计师支持技术风险的管理,包括制定每一个风险的优先次序,以及确定一个恰当的风险缓解策略。
5. 对系统开发的指导性
- 1.架构设计的主要目标就是确保体系架构能够为设计人员和实现人员所承担的工作提供可靠的框架。
- 2.很明显,这比简单的传送一个体系结构视图要复杂得多。
- 3.为了确保最终体系架构的完整性,架构设计师必须明确地定义体系架构,因为它确定了体系架构的重要元素,例如系统的组件,组件之间的接口以及组件之间的通信。
- 4.架构设计师同时还必须定义恰当的标准和指导方针,它们将会引导设计人员和实现人员的工作。
- 5.对开发过程活动采取恰当的架构回顾和评估,能够确保体系架构的完整性。
- 6.这些质量保障(Quality Assurance, QA)活动的任务是确定体系架构的标准和指导方针的有效性。
6. 能够有效地管理复杂性
- 1.如今的系统越来越复杂,这种复杂性需要我们去管理。
- 2.体系架构通过构件与构件之间的关系,描述了一个抽象的系统,因而提供了高层次的复杂的管理的方法。
- 3.同样,架构设计过程考虑组件递归分解。
- 4.这是处理一个大问题很好的方法,它可以把这个大问题分解成很多小问题,再逐个解决。
7. 为复用奠定了基础
- 1.架构设计过程可以同时支持使用和建立复用资源。
- 2.复用资源可以降低一个系统的成本,并且可以改进系统的质量,这些好处已经被证明。
- 3.一个体系架构的建立,能够支持大粒度的资源复用。
- 4.例如,体系架构的重要组件和它们之间的接口和质量,能够支持现货供应的组件,存在的系统和封装的应用程序等的选择,从而可以用来实现这些组件。
8. 能够降低维护费用
- 1.架构设计过程可以在很多方面帮助我们降低维护费用。
- 2.首先最重要的是架构设计过程要确保系统的维护人员是一个主要的涉众,并且它们的需求被作为首要的任务满足。
- 3.一个被恰当文档化的体系结构不应该仅仅为了减轻系统的可维护性,架构设计师还应该确保结合了恰当的系统维护机制,并且在建立体系架构的时候还要考虑系统的适应性和可扩充性。
9. 能够支持冲突分析
- 1.架构设计的一个重要的好处是,它可以允许人们在采取改变之前推断它所产生的影响。
- 2.一个软件架构确定了主要的组件和它们之间的交互作用,两个组件之间的依赖性以及这些组件对于需求的可追溯性。
- 3.有了这个信息,例如需求的改变等可以通过组件的影响来分析。
- 4.同样的,改变一个组件的影响可以在依靠它的其他组件上分析出来。
10.例题
10.1 例题1
1.软件架构是降低成本、改进质量、按时和按需交付产品的关键因素。以下关于软件架构的描述,错误的是(A)。
A.根据用户需求,能够确定一个最佳的软件架构,指导整个软件的开发过程
B.软件架构设计需要满足系统的质量属性,如性能、安全性和可修改性等
C.软件架构设计需要确定组件之间的依赖关系,支持项目计划和管理活动
D.软件架构能够指导设计人员和实现人员的工作
1.软件架构是降低成本、改进质量、按时和按需交付产品的关键因素,
软件架构设计需要满足系统的质量属性,如性能、安全性和可修改性等,
软件架构设计需要确定组件之间的依赖关系,支持项目计划和管理活动,
软件架构能够指导设计人员和实现人员的工作。
2.一般在设计软件架构之初,会根据用户需求,确定多个候选架构,并从中选择一个较优的架构,
并随着软件的开发,对这个架构进行微调,以达到最佳效果。
10.2 例题2
2.软件架构设计是降低成本、改进质量、按时和按需交付产品的关键活动。以下关于软件架构重要性的叙述中,错误的是(B)。
A.架构设计能够满足系统的性能、可维护性等品质
B.良好的架构设计能够更好地捕获并了解用户需求
C.架构设计能够使得不同的利益相关人(stakeholders)达成一致的目标
D.架构设计能够支持项目计划和项目管理等活动
1.软件架构设计是降低成本、改进质量、按时和按需交付产品的关键因素。
2.架构设计能够满足系统的性能、可维护性等品质;
3.能够使得不同的利益相关人(stakeholders)达成一致的目标;
4.能够支持项目计划和项目管理等活动;
5.能够有效地管理复杂性。
6.系统架构的给出必须建立在需求明确的基础上。