软件架构---质量属性

  软件属性包括功能属性与质量属性,在软件架构里,更加关注的是质量属性。质量是系统的属性,而功能是系统的目标。算法

  既然将质量属性与功能区别开,也就是说质量属性是功能以外的东西,在软件架构里,咱们寻求的是在知足功能属性的前提下,尽量知足质量属性。不少时候,致使软件须要发生变动的每每不是系统功能须要变动,而是系统难以维护、扩展、被黑客破坏等安全

  质量属性的定义:一个系统的用来描述系统知足利益相关者需求的程度的可测量或可测试的属性(A quality attribute (QA) is a measurable or testable property of a system that is used to indicate how well the system satisfies the needs of its stakeholders. )架构

   质量属性亦被称为:布局

      • 非功能性需求Non-Functional Requirements (NFRs)个人理解是与系统具体功能无关性能

      • 跨职能约束Cross-Functional Constraints (CFCs)个人理解是一个系统质量属性将会约束多个系统功能测试

构架和质量属性之间的关系字体

  • 质量属性不彻底依赖于设计、实现和部署

  易用性:
    系统可否为用户提供取消操做?——这一类属于构架层次的问题
    什么样的布局最直观?什么样的字体最清晰?——这属于详细设计的部分,不属于构架设计。
  可修改性:
    划分功能的方式——这属于架构层次的问题
    模块中的编码技巧——非架构层次问题
  系统性能:
    组件间通信数量、分配给每一个组件的功能、资源共享的方式,等,这些都属于架构层次的问题
    实现某功能采用的算法、如何编码这些算法,等,都会影响系统性能,但属于非构架层次的问题。ui

  • 构架不能独自实现质量属性

  构架为质量属性的实现打下了基础,但不关注实现细节的话,这个基础就失去了意义。编码

  •  复杂系统中,不能孤立地实现质量属性,质量属性是互相关联的,每每不能兼顾

  例如,为了可靠性,增长冗余处理器和进程,保证不会因单点故障使系统崩溃。但这样对安全性不利,系统会有更多的地方可能会遭到入侵设计


质量属性的来源:3类需求

功能需求
质量属性需求
约束

描述质量属性需求的6个部分

刺激stimulus:是到达系统的事件event
刺激源stimulus source:生成刺激的实体(计算机、人-可信或不可信)
响应response:刺激到达后采起的反应
响应度量response measure:对响应效果进行度量
环境:刺激发生时的各类条件
制品:多是系统,或系统的一部分

 

相关文章
相关标签/搜索