To understand the constituents of a software system in three orthogonal dimensions 从三个维度看软件系统的构成
By phases: build- and run-time views 按阶段划分:构造时/运行时视图
By dynamics: moment and period views 按动态性划分:时刻/阶段视图
By levels: code and component views 按构造对象的层次划分:代码/构件视图
Elements, relations, and models of each view
Software construction: transformation between views
空集->Code
Code -> Component
Build-time -> Run-time
Moment -> Period
外部质量因素:
1.正确性:按照预先定义的规约执行,是最重要的质量指标。
2.健壮性:针对异常情况的处理,关键在于出现异常时不要崩溃。
3.可扩展性:对软件规约的修改,是否足够容易。
4.可复用性:一次开发,多次使用。
5.兼容性:不同软件系统之间相互可容易集成。
6.性能
7.可移植性:软件可方便的在不同的技术环境之间移植,包括硬件和操作系统。
8.易用性:对用户而言容易学、安装、操作、监控。
9.功能性
10.及时性:在用户有对应需求前放出新版本。
内部质量因素
源码方面:行数(LOC)、逻辑复杂度
结构方面:耦合、内聚
除此之外还有代码可读性、易于理解、清晰、大小等。
折中策略
五个软件构造的关键质量指标
1.易于理解
2.开发成本低
3.易于改变
4.安全无bug
5.运行高效