第1章 软件体系结构的相关概念
软件体系结构
- 软件体系 = 构件 + 连接件 + 约束
- 构件:是某种功能的可复用的结构单元
- 连接件:是构件之间建立和维护行为关联与信息传递的途径,连接需要两方面的支持:连接发生和维持的机制和规则。
- 方向性
- 角色
- 继发性
- 响应特性
软件架构结构
- 模块结构:系统如何被构造为一组代码或数据单元的决策。
- 常见模块结构举例:
- 分解结构:大模块分为小模块更易于理解。
- 使用结构:
- 分层结构
- 类泛化结构
- 构件和连接件结构:系统如何被设计为一组具有运行时行为(构件)和交互(连接件)的元素。
- 常见举例:
- 服务结构:
- 客户机/服务器结构
- 共享数据或存储结构
- 并发结构
- 分配结构:展示如何将来自于模块结构或者构件-连接件的单元映射到非软件结构
- 常见举例:
- 部署结构:
- 实现结构:
- 工作分配结构:
软件体系结构风格
- 概念:一种体系结构风格定义了构件类型和连接件类型的词汇表,以及它们如何组合的约束条件。
- 分类:下面风格案例介绍
第2章 软件质量属性
什么是软件质量属性
- 软件质量属性指的是一个系统的可度量、可测试的属性,这些属性会影响到系统的运行时行为、系统设计方式以及用户的体验等。质量属性的优劣程度反映了设计是否成功以及软件系统的整体质量。
质量属性需求说明
- 刺激源:某个生成该刺激的实体
- 刺激:当到达时引起系统进行响应的条件
- 环境:刺激到达时,系统所处的状态
- 制品:被刺激的部分
- 响应:系统再刺激到达后采取的行动或措施
- 响应度量:响应发生时,我们以某种方式对其进行度量,便于我们对需求进行测试
软件质量属性具体介绍
- 功能正确性:软件系统能按照功能需求正确执行
- 设计时质量属性
- 概念完整性:架构设计一致性。
- 可维护性:指系统可以承受一定程度修改能力
- 可重用性:组件和子系统在其他应用程序或场景中进行重用的能力。
- 运行时质量属性
- 可用性 Availablity:系统正常运转并发挥功能的能力
- 平均故障时间 MTBF :指相邻两次故障之间的平均工作时间。衡量可靠性。
- 平均修复时间 MTTR:是描述产品由故障状态转为工作状态时修理时间的平均值。
- 公式:
Availability = \frac {MTBF} {MTBF + MTTR} MTBF = \frac {总正常运行时间} {故障次数} MTTR = \frac {总宕机时间} {故障次数} Availability = \frac {累计正常工作时间} {总工作时间}
- 可靠性:
- 狭义可靠性:软件无失效运行的定量度量,常代表为软件在规定的运行环境中和规定的时间内无失效运行的概率。
- 广义可靠性:指一切旨在避免、减少、处理、度量软件故障的分析、设计、测试方法、技术和实践活动。
e^{-(\frac {t}{\theta})} \theta 可以是 MTBF 或者 MTTR
- 可管理性:指查看和修改指定系统或软件状态的能力,描述了系统管理员应用程序的难易程度。
- 互操作性:描述两个或多个软件构件协作的能力,即不同来源的构件能
- 可用性 Availablity:系统正常运转并发挥功能的能力