[软件构造] 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
优雅而美观的代码:易于理解,易懂
设计/重复使用:便于开发
低复杂性:便于变更,易于扩展
鲁棒性和正确性:不受错误的影响,不容易出错
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)