本文根据课程ppt整理而成,仅供参考。
目录
一、Views and Quality Objectives of Software Construction
1.Multi-dimensional software views
二、Quality properties of software systems
一、Views and Quality Objectives of Software Construction
多角度看待软件:
按阶段划分:构造时/运行时视图
按动态性划分:时刻/阶段视图
按构造对象的层次划分:代码/构件视图
软件构造:不同视角间的转化
从无到有(代码)
从代码到部分
从构建到运行
从时刻到时间段
软件构造五个关键质量指标:
可理解性、可变性和可维护性、可复用性、鲁棒性、高效性
1.Multi-dimensional software views
(1)Build-time Views
代码变化(code churn):从一个版本到另一个版本向文件添加、修改或删除的行。
库:存储在自己的磁盘文件中,收集一组可以在各种程序中重用的代码函数,在构建的时候,库函数可以被视为标准语言的扩展,其使用方式与开发人员编写的函数相同。
链接库的两种方式:静态链接、动态链接
静态链接:库是单个对象文件的集合,在构建过程中,当链接器工具确定需要函数时,他会从库中提取相应的对象文件并将其复制到可执行的程序中。静态链接发生在构造阶段。
软件版本控制:为计算机软件的唯一状态分配唯一版本名称或版本号的过程。在给定的版本号类别(主要、次要)中,这些编号通常按递增顺序分配,并与软件的新开发相对应。在细粒度级别,版本控制通常用于跟踪电子信息的增量不同版本,无论此信息是否是计算机软件。
(2)Run-time Views
可执行程序:CPU 执行的机器可读指令序列以及关联的数据值。
库:可由不同程序重用的常用目标代码的集合。大多数操作系统都包含一组开发人员可以重用的标准库,而不是要求每个程序都提供自己的库。库不能直接在目标计算机上加载和执行,它必须首先与可执行程序链接。
动态链接:动态链接方法不会将目标文件复制到可执行映像中; 相反,它会指出成功执行程序需要哪些库。当程序开始运行时,库将作为单独的实体加载到内存中,然后与主程序连接。动态库是通过联接对象文件构造的磁盘文件。然后将库收集到发布包中并安装在目标计算机上。 只有这样,它才能加载到机器的内存中。
内存信息转储:硬盘上的文件,其中包含进程内存内容的副本,当进程因某些类型的内部错误或信号而中止时生成。
二、Quality properties of software systems
外部质量因素:速度或易用性等质量,其用户可能会检测到软件产品中是否存在。外部质量因素影响用户。
其他适用于软件产品的品质,例如模块化或可读性,是内部因素,只有能够访问实际软件文本的开发人员才能察觉到。内部质量因素影响软件本身和它的开发者。
实现外部因素的关键在于内部因素:为了使用户享受可见的品质,设计者和实现者必须应用内部技术来确保隐藏的品质。
1. External quality factors
正确性是软件产品执行其确切任务的能力,由其规范定义。
鲁棒性是软件系统对异常情况做出适当反应的能力。鲁棒性是为了确保如果确实出现这种情况,系统不会造成灾难性事件; 它应该生成适当的错误消息,干净地终止其执行,或进入所谓的“优雅降级”模式。
可扩展性是使软件产品适应规范变化的便利性。
两个原则对于提高可扩展性至关重要:简约主义设计、分离主义设计。
可复用性是软件元素用于构建许多不同应用程序的能力。
高效性是软件系统对硬件资源提出尽可能少的要求的能力,例如处理器时间、内部和外部存储器占用的空间、通信设备中使用的带宽。
及时性是软件系统在其用户需要的时间或之前发布的能力。