软件构造第一章名为软件构造的多维视图和质量目标,作为整个课程的开篇,阐释了软件构造的对象是什么,以及软件系统构成的维度和指标。
1.软件构造的多维视图
第一章的第一部分内容可以由下面这幅图来概括:
那么按找该表头的信息,软件构造的多维视图可以分为8个部分:
在build-time过程中的moment情况下,软件的逻辑结构代表源代码、抽象语法树、方法和类等,而物理结构则指包、文件、库等软件在物理层面的组织;而来period情况下逻辑结构和物理结构则又分别指代码的变化以及版本的变化。(一般来说,代码变化指代码行的修改、增加与删除,而版本变化则是用major-minor-patch的结构组织起来的版本号来表示同一软件的不同状态)
而在run-time过程中的moment情况下,软件的逻辑结构可用代码快照(程序运行时某时刻内存中变量层面的状态)和内存信息转储来表示,period视角下则为执行追踪(以日志方式记录程序调用次序)和并行多线程;最后period下的物理结构则主要指事件日志,提供对于系统进行诊断与检查又帮助的事件记录。
2.视图的转换
在关键构造过程中,对于软件的视图将会从一个角度向另一个角度转换,如下图:
其中主要经过了从无到代码(编程与分析)、从代码到组件(依靠包、链接、编译等)、从构建阶段到运行阶段,以及从时刻到时间段的转变。
3.软件系统的质量指标
包括外部与内部两部分,外部影响用户,内部影响软件本身与开发者,外部质量取决于内部质量。
(1)外部质量指标
1)正确性:严格按照规约进行,最重要的指标。
2)健壮性:出现规约外的异常情况时要有相应的处理,是正确性的补充。
3)可扩展性:应对变化
4)可复用性:一次开发多次使用。
5)兼容性:不同系统相互集成。
6)性能:在保证其他指标的情况下提高性能。
7)可移植性:软件可在不同技术环境之间移植。
8)易用性:容易学习、安装、操作、监控。
9)功能性:每增加一点功能都要确保其他属性不受损失
10)及时性:开发进度需要达到需求。
此外还有其他指标,比如可验证性、完整性、可修复性和经济性等,而所有外部指标中正确性是最重要的指标,不可让步。
(2)内部质量指标
如可读,易懂,清晰和大小等。
(3)指标折中
在开发过程中,程序不同的质量因素之间存在冲突,这就需要程序员将不同因素的折中设计决策和标准明确下来,但是需要注意,程序的正确性是不能与其他因素折中的。
4.软件构造的五个关键指标
易懂,易改,廉价开发,避免漏洞,运行高效。