文章目录
软件构造的多维度视图和质量目标
1 软件构造的多维度视图
2 软件构造的阶段划分、各阶段的构造活动
2.1 Build-time 构造阶段
2.1.1 Moment
-
Code-level
Source code
:源代码Interface-Class-Attribute-Method
:接口、类
-
Component-level
Package, File, Static Linking, Library, Test Case,
:源代码Source code
在物理上被组织成文件File
,这些文件进一步按目录组织;文件被封装到软件包Package
中,并且在逻辑上被封装到组件和子系统中。可重用模块采用库Library
的形式.Static Linking
:静态链接,发生在构造阶段,库被拷贝进入代码形成整体,执行的时候无需提供库文件Library
:开发者像使用编程语言指令一样使用库中的功能Test Case
:测试用例
2.1.2 Period
-
Code-level
Code Churh
:代码变化。定义为从一个版本到另一个版本添加、修改或删除到文件中的行。
-
Component-level
Software Configuration Item (SCI)
:配置项,软件中发生变化的基本单元(例如:文件)Version
:版本
2.2 Run-time 运行阶段
2.1.1 Moment
-
Code-level
Code Snapshot
:代码快照图,描述程序运行时内存里变量层面的状态Memory dump
:内存信息转储,硬盘上的一种文件,包含进程内存内容的副本,当进程因某种内部错误或信号而中止时产生
-
Component-level
Dynamic linking
:动态链接,程序运行时,根据标记装载库至内存
2.1.2 Period
-
Code-level
Execution stack trace
:执行跟踪,用日志方式记录程序执行的调用次序
-
Component-level
Event log
:事件日志:系统层面
3 内部/外部的质量指标
2.1 外部的质量指标
- 正确性
Correctness
:按照预先定义的“规约”执行 - 健壮性
Robustness
:针对异常情况的处理,出现异常时不要“崩溃” - 可扩展性
Extendibility
:对软件的规约进行修改,是否足够容易 - 可复用性
Reusability
:一次开发,多次使用
2.2 内部的质量指标
- 可读性
Readability
- 可理解性
Understandability
- 清洁度
Clearness
- 代码行数
Size
2.3 软件构造的五个关键质量目标
- 易于理解:优雅优美的代码/易于理解
- 随时准备更改:可维护性
maintainability
和适应性adaptability
- 开发成本低廉:可重复使用的设计:可重用性
reusability
- 安全无漏洞:鲁棒性
robustness
- 高效运行:性能
performance