[软件构造] Views and Quality Objectives of Software Construction

1 Multi-dimensional software views


软件在计算机中的地位:

下面这张图非常重要:

这就是多维软件视图,下面将围绕这张图进行分析。

首先先总括一下:
Moment表示的是特定时刻软件的状态、Period表示的是软件状态随时间的变化。
Build-time表示的是程序开发时,Run-time表示的是程序运行时。
Code-level表示的是代码的逻辑组织、Componment-level表示的是代码的物理组织。


1.Build-time Views


构造阶段主要有以下步骤:
idea→需求→设计→代码→打包→发布

a.Build-time, moment, and code-level view

词汇层面
    半结构化编码:近乎自然语言的风格+遵循特定的编程语法

语法层面
    AST(抽象语法树):彻底结构化,将源代码变为一棵树,对树做各种操作==对源代码的修改

语义方面
    使用类图(UML)来描述接口,类,属性,方法和关系。

b.Build-time, period, and code-level view

代码变化

c.Build-time, moment, and component-level view


    源代码在被封装成文件、文件被封装成包,组件和子系统。
    开发者像使用编程语言指令一样使用库(library)中的功能

两种导入库(library)的方法:
– Static linking (静态链接)
– Dynamic linking (动态链接)
静态链接发生在构造阶段,简单点讲就是用哪个库,直接把这个库的代码copy一份就行。
动态链接发生在运行阶段,程序运行时确定调用哪些库,根据标记装载库至内存。

d.Build-time, period, and component-level view   

版本控制

2.Runtime Views

 

a.Run-time, moment, and code-level view


    快照图(Snapshot diagram)[非常重要]
    内存信息转储


b.Run-time, period and code-level view


    UML中的序列图
    执行追踪


c.Run-time, moment, and component-level view


    UML中的部署图

d.Run-time, period, and component-level view


    事件日志

最重要的是将下面这张图片熟记于心:

视图之间转换

3 Quality properties of software 
systems


(1) External quality factors


a.Correctness(正确性)

    最重要的质量指标

b.Robustness(鲁棒性)
c.Extendibility(可扩展性)
d.Reusability(可重用性)
e.Compatibility(兼容性)
f.Efficiency(性能)

    许多质量目标是相互冲突的
    引起冲突的大多都是性能
    过早优化是万恶之源

g.Portability(可移植性)
h.Ease of use(易用性)
i.Functionality(功能性)

    过度追求功能的增加

j.Timeliness(及时性)


(2) Internal quality factors


内部质量因素通常作为外部质量因素的部分度量
eg 可读性,复杂性,尺寸


(3) Tradeoff between quality properties


    正确性放在首要地位
    在目前软件行业,有4个突出:
    – 正确性和鲁棒性→可靠性
    – 可扩展性和可复用性→模块化


4 Five key quality objectives of software construction


    优雅而美观的代码:易于理解,易懂
   

    设计/重复使用:便于开发
   

    低复杂性:便于变更,易于扩展
   

    鲁棒性和正确性:不受错误的影响,不容易出错
   


Summary


posted @ 2022-05-15 18:41  Matrix_250  阅读(39)  评论(0编辑  收藏  举报