目录
2.体系架构与需求Architecture and Requirements
5.表达质量属性Express Quality Attribute
7.指导质量设计决策Guiding Quality Design Decisions
0.前言
本系列文章旨在软件设计与体系结构的知识点,资料来源四川大学授课内容,可用于期末复习,笔者理解尚浅,文中不正之处静待批正。加粗部分为重点。
1.Introduction
功能function和质量quality的关系:在开发计划中,功能往往被放在首位,这是目光短浅的表现;质量超越功能;质量属性优先于开发功能;功能描述的是系统的功能,质量描述的是系统的功能发挥得如何
质量Quality的定义:质量是指功能满足利益相关者需求的程度
质量属性(QA)定义:是系统的一种可测量或可测试的属性,用于表明系统满足利益相关者需求的程度,是指在利益相关者感兴趣的某个维度上衡量产品的好坏
软件质量模型:
2.体系架构与需求Architecture and Requirements
需求的形式:Textual requirements文本需求;Mockups模拟;Existing systems现有系统;Use cases用例;User stories用户故事
2.1 需求分类:功能需求;质量属性需求;约束
①功能需求Functional requirements
功能需求说明系统必须做什么,以及必须如何表现或对运行时的刺激做出反应
②质量属性需求Quality attributes requirements
质量属性要求是对功能要求或整个产品的限定
③约束Constraints
约束是自由度为零的设计决策
2.2 体系结构如何支持功能
①通过在整个设计过程中分配适当的责任顺序来满足功能需求
②架构中设计的各种结构,尤其是行为和交互结构,可满足质量属性需求
③通过接受设计决策并将其与其他受影响的设计决策相协调来满足约束条件
3.功能性Functionality
功能性:是指系统完成预期工作的能力
功能适用性functional suitability:是指软件产品在特定条件下使用时,根据 ISO 25010 标准提供满足状态和隐含需求的功能的能力。
4.质量属性考虑
质量属性的三个问题:为属性提供的定义无法测试;讨论往往集中在某个特定问题属于哪种质量;每个属性社区都有自己的词汇表
解决方案:解决第一和第二个问题的办法是使用质量属性情景作为表征质量属性的手段;第三个问题的解决方案是在不同的质量属性方案中对每种属性进行讨论
两种质量属性:
- 第一类描述系统在运行时at runtime的某些特性,如可用性、性能或易用性、安全性(参考McCall)
- 第二种描述系统开发时的某些特性,如可修改性或可测试性modifiability/testability
5.表达质量属性Express Quality Attribute
质量属性场景定义:使用通用表格指定所有质量属性要求
5.1 质量属性场景组成部分
质量属性场景quality attribute scenario的六个部分:Source of stimulus\ Stimulus(input)\ Response(output)\ Response measure \Environment\ Artifact(system)
- Source of stimulus(刺激源)是产生刺激的某个实体,该实体包括人、计算机系统或任何其他执行器
- Stimulus(刺激)是一种条件,当它到达系统时需要做出反应
- Response是由于刺激的到来而产生的活动
- Response measure是以某种方式进行度量,以便对质量要求进行测试
- Environment是指刺激发生时的特定条件
- Artifact(工件)是需求适用的系统部分
5.2 通用或特定质量属性方案General or Specific quality attribute scenarios
通用质量属性方案与系统无关
具体的质量属性方案是针对特定系统的
6.通过战术实现质量属性
战术tactic定义:是影响质量属性响应实现的设计决策
战术的作用:战术直接影响系统对某些刺激的反应
7.指导质量设计决策Guiding Quality Design Decisions
设计决策(战术)的7个类别:责任分配;协调模式;数据模型;资源管理;架构要素之间的映射;绑定时间决策;技术选择