《软件体系结构评估》是清华大学出版社出版的一部教材,由张友生编著。课程涵盖了软件体系结构的多个核心主题,如概论、建模、风格、描述、动态体系结构、Web服务、基于架构的软件开发、分析与测试、评估以及软件产品线体系结构。在第9章中,重点讲解了软件体系结构的评估,特别是如何衡量和优化系统的关键特性。
体系结构评估主要关注以下几个方面:
1. **性能**:性能是衡量系统响应速度和处理能力的指标,通常使用事务处理数量或处理时间来量化。性能测试常借助基准测试程序来执行。
2. **可靠性**:可靠性是指软件在面对错误或异常情况时保持功能的能力。常用平均失效等待时间(MTTF)和平均失效间隔时间(MTBF)来度量。此外,容错性和健壮性也是衡量可靠性的关键因素。
3. **可用性**:可用性是系统无故障运行的时间比例,通常以故障间隔时间或恢复速度来表示。
4. **可修改性**:包括可维护性、可扩展性、结构重组和可移植性,这些都是保证软件适应变化和长期可持续发展的关键。
5. **功能性**:功能性评估系统完成预期任务的能力,涉及系统组件间的协同工作。
6. **可变性**:可变性是指体系结构能否适应扩展或变化以生成新的架构,对于软件产品线尤其重要。
7. **集成性**:系统与其它系统协作的能力,直接影响到系统的互操作性和整体效能。
评估过程通常会考虑不同的风险承担者,如关键开发者、客户和项目经理的需求。其中,架构评估方法如 ATAM(Architecture Tradeoff Analysis Method)强调识别关键架构方法和风格,以确保优先级最高的质量属性得以实现。
评估方法可能包括已记录的架构方法/风格,以及灵活适应多种质量和设计阶段的评估策略。场景在评估中扮演重要角色,它们是描述风险承担者与系统交互的简短叙述,包含刺激(触发交互的动作)、环境(交互发生的背景)和响应(系统对刺激的反应)三个要素。
此外,互操作性是另一个关键概念,确保软件能够与其他系统或环境无缝交互,这要求在体系结构设计中对功能接口和数据结构进行精心规划。整个评估过程不仅关注技术层面,还应考虑到不同利益相关者的利益和目标,以确保软件体系结构的成功实施和长期有效性。