质量属性与架构评估

软件系统属性包括功能属性和质量属性,软件架构重点关注的是质量属性

架构需求是在满足功能属性的前提下,关注软件系统的质量属性

质量属性

1、什么是软件系统的质量

        是软件系统与需求(明确的和隐含的)一致性的程度

2、什么是质量属性

        是一个系统可测量或可观测的属性用来度量软件系统的质量,即用来描述系统满足利益相关者需求的程度。

3、质量属性有哪些

3.1按照软件系统的生命周期分类

3.1.1开发期质量属性:软件开发阶段关注的质量属性

易理解:被开发人员理解的难易程度

可扩展:适应新需求或需求变化而增加新功能的能力

可重用:重用软件系统或一部分的难易程度

可测试:对软件测试以证明其满足需求规范的难易程度

可维护:识别修改点并实施修改的难易程度

可移植:从一个运行环境转移到另一个不同的运行环境的难易程度

3.1.2运行期质量属性:软件运行阶段关注的质量属性

性能:及时提供相应服务的能力

安全性:同时兼顾为合法用户提供服务和阻止非授权使用的能力

可伸缩性:可以通过增加服务节点提高能力

互操作性:与其他系统交换数据和相互调用服务的难易程度

可靠性:一定时间内持续无故障运行的能力

可用性:一定时间内正常工作的时间所占用的比例

鲁棒性(健壮性、容错性):非正常情况下仍能正常运行的能力

3.2、架构评估所关注的质量属性

性能

提高性能的方法

  1. 资源需求:提高计算效率,减少计算开销,管理事件率,控制采样频率
  2. 资源管理:引入并发,维护多个副本,增加可用资源
  3. 资源仲裁:资源调度策略、优先级

可用性

提高可用性的方法

  1. 错误检测
    1. Ping/Echo:种基于ICMP协议的网络诊断工具,主要用于测试网络设备之间的连通性和响应时间。它通过发送ICMP Echo请求(Echo Request)到目标设备,并等待ICMP Echo应答(Echo Reply)来判断网络的连通性。
    2. 心跳:通常,系统中的节点会定期向监控端或其他节点发送“心跳”信号,表明自己正常运行。
    3. 异常检测
  2. 错误恢复:表决、冗余、备份

你可能感兴趣的:(软考,架构师,质量属性,架构)