本节框架:


外部质量因素是非开发人员的,是使用者的感受,例如图形界面是否友好,使用是否方便;内部因素由开发人员控制,内部因素影响外部因素。

外部因素

主要的外部因素如下,下逐一说明:

1、正确性:是需要首要保证的。是相对的概念,有条件的,规约之内,符合软件规格说明书,假定一个软件系统是分层开发的,每层都要确保自己层和自己的低层是正确的,亦即确保每层都是正确的。保证正确性的方法:形式化开发、测试改错。
2、健壮性(鲁棒性):是软件对异常情况做出适当反应的能力,表现在规格之外,可能规格说明书并没有详细说明。健壮性就是要让这些异常情况不产生灾难性的后果。考虑边界范围,若某些灾难的事情发生了,将后果降到最低。判断情况是否异常不取决于客观条件,而取决于软件的规格说明书。
3、易扩展性:指软件易于调整以适应变化的能力,在开发和使用过程中可能会有很多新的要求,这些要求可能在规格说明书中没有。需要改的话,改那个地方?改了会不会影响其他功能?规模越大越难扩展,而软件是易变的。怎么让软件易扩展?体系结构简单、使模块自治性强,变化时对其他模块影响小。第三章、第六章。
4、复用性:使开发更便宜,软件开发中经常遇到一些相似的模式,利用共性,避免重复实现。可复用性———可复用价值。第五章。
5、兼容性:软件的一些元素和其他的元素可以混合使用。设计的一致性、标准化是解决兼容性的关键,通过协议来实现更通用的兼容性。
6、效率:效率是软件对硬件资源尽可能少的需求的能力。平衡一些其他的目标,第八章。
7、可移植性:可移植性是指便于将软件产品转移到各种硬件和软件环境。
8、易用性:用户可以轻松掌握软件的使用,包括安装、运行和监控的容易度。结构简洁、换位思考,站在用户的角度设计软件。
9、功能性:软件的功能会越来越多,影响易用性、一致性,要在保证正确性和质量的情况下提升功能性。集中实现主要功能。功能增加要确保其他质量属性不下降。
10、时效性,可验证性,完整性(软件保护各组件不受未经授权的访问和修改)

内部质量因素

内部质量因素通常用作外部质量因素的部分度量。
例如代码行数、圈复杂度、高内聚低耦合(独立性)、可读性(容易理解)、复杂度、大小等。

权衡:

有些因素之间互相影响,或者矛盾或者相关。做决策,不同的条件环境不同。正确性一定是最重要的。

正确性和鲁棒性是相互依赖的:
可扩展性和复用性:模块化

五个主要的质量标准

代码可理解,第四章
可复用性,第五章
可扩展性,第六章
鲁棒性,第七章
效率,第三章

一些示例:

操作系统:
航空航天、工业控制软件:正确性、鲁棒性、性能
社交软件:易用性
游戏软件:性能
面向儿童的教学软件:鲁棒性、易用性
面向老人的智能家居软件:易用性
Chrome、Firefox浏览器:可扩展性

1-2 软件构造的质量目标相关推荐

  1. 2020春季学期哈工大软件构造学习心得一

    前言: 今年是特殊的一年,由于新冠病毒的爆发,导致我们无法正常开学,所以网上开课如期进行,其中软件构造是这学期我们要面临的巨大挑战. 准备工作: 上学期末得知本门课程需要学习Java语言进行编程,所以 ...

  2. HIT软件构造——从一个实际案例考察开发质量目标

    在之前的文章中,简要陈述了一些软件的外部质量因素,但这毕竟只是纸上谈兵的介绍,那么在实际开发中,这些因素是怎么与软件开发过程和产品相互作用的呢?重要的是,用户视角下这些因素究竟对产品表现有何影响呢?下 ...

  3. 哈工大软件构造实验一

    哈工大软件构造lab1 实验目标 实验过程 Magic Square 第一部分 要求 实现 第二部分 要求 实现 Turtle Graphics 第一部分 绘制多边形 第二部分 计算方位 第三部分 凸 ...

  4. 2021-06-29 Views and Quality Objectives of Software Construction 软件构造的多维度视图和质量目标

    第一章:Views and Quality Objectives of Software Construction 软件构造的多维度视图和质量目标 目标 1.从三个维度看软件系统的构成 2.用什么样的 ...

  5. 软件构造 第一章第二节 软件开发的质量属性

    ​软件构造 第一章第二节 软件开发的质量属性 1.软件系统质量指标 External quality factors affect users 外部质量因素影响用户 Internal quality ...

  6. 软件构造的视图与质量指标

    软件构造的实质:Transformation between different views(不同视图之间的转换) Multi-dimensional software views 按阶段分:buil ...

  7. 【软件构造】第二章 软件构建的过程和工具(2)

    二.软件构造的编程.系统.工具 [广义软件构造的过程] 1. 编程 (1)开发语言:Java.C.C++.Python等 ·IDE:集成开发环境 - 方便编写代码和管理文件 - 能够编译.构建 - 结 ...

  8. 2022 - 软件构造复习

    软件生命周期 一个软件产品或软件系统经历孕育.诞生.成长.成熟.衰亡等阶段,一般称为软件生存周期(软件生命周期). 根据软件所处的状态和特征,划分软件生存周期. 需求定义.软件设计.软件实现.软件维护 ...

  9. 【软件构造】LAB1实验报告

    2022年春季学期 计算学部<软件构造>课程 Lab 1实验报告 姓名 李** 学号 班号 电子邮件 手机号码 目录 1 实验目标概述... 1 2 实验环境配置... 1 3 实验过程. ...

最新文章

  1. Amber18安装(非root用户)
  2. Linux 配置IP地址,子网,网关,DNS,linux远程, wget 下载工具
  3. Windows的Java_HOME环境变更配置
  4. Oracle数据类型(转)
  5. clion 工程打开选项 安全模式预览 Preview in Safe Mode 信任工程 Trust Project 简介
  6. Django后台admin的使用
  7. SAP Data Intelligence API返回错误消息 - Fordidden cross-site request
  8. 海南首例供港造血干细胞志愿者启程赴广东捐献
  9. Ubuntu火狐浏览器无法输入简体中文的解决方案
  10. ADO.NET 3.5 同SQL 2008的新的存储过程保存方式
  11. Unity笔记——1.Unity3D脚本基础
  12. 仿宋gb2312字体 官方版
  13. MySQL 2021 个税计算公式,自定义函数
  14. python的socket
  15. 如何编写没有工作经验的简历
  16. Python:练习打字游戏
  17. 【笔记】Every Document Owns Its Structure Inductive Text Classifification via
  18. foreign key() references 字段名(字段名)详细用法
  19. 16款设计师必知晓的思维导图工具
  20. 从最硬核买家秀,读懂华为数据中心网络的智能纪元

热门文章

  1. Jafka来源分析——文章
  2. laravel配置加解密
  3. 程序员面试必备:动图演示十大经典排序算法及代码实现
  4. 第二章 Flask——Flask中的request
  5. 在 Windows 上安装 TensorFlow(转载)
  6. java内存模型—先行发生原则
  7. express 写接口
  8. loadrunner协议选择
  9. celery 实例进阶
  10. SpringBoot 核心知识点整理!