Java 软件构造Software construction(六)

软件构造的多维度视图和质量目标

该部分是该怎样以全面的眼光/模型/视图来看待软件系统的,搞清楚构造对象是什么,如何刻画,并学会构造过程中应考虑的质量指标,理解清楚如何构造对象才算好。

多维度视图

按阶段划分:构造时/运行时视图
按动态性划分:时刻/阶段视图
按构造对象层次划分:代码/构件视图
关于多维度视图的整体表现如下图所示
在这里插入图片描述
对于这副图的理解,个人认为首先掌握好代码与构件视图的区别,构件永远是高于代码层面的变化,如包,文件,配置,版本,日志,进程等等。然后掌握运行与构造时视图的区别,构造时都是关于文件本身不涉及执行时的变化,运行时则是关于栈,变量,内存信息等的一些执行时变化,至于时刻和阶段视图的区分则是一个时间点和一个时间段的区别,如一个时间点的source code是具体怎样的和一个时间段的code churn代码变化是怎么样的。

具体某些重要视图

(1)Build-time, moment, and code-level view:
词汇层面:source code
语法层面:AST(半结构化的语言彻底结构化成一棵树)
语义层面:Class Diagram(图形化形式化的实现具体目标的结构)
(2) Build-time, period, and code-level view
Code churn 代码变化
(3) Build-time, moment, and component-level view
文件,包,库等等,注意静态链接在构造时,动态链接在运行时
(4) Build-time, period, and component-level view
SCI配置项和版本(基线和版本)
(5) Run-time, moment, and code-level view
Code Snapshot:描述程序运行时内存里变量层面的状态
(6) Run-time, period and code-level view
Execution tracing 执行跟踪
在这里插入图片描述

质量目标

分为外部质量因素与内部质量因素,外部质量因素影响用户,内部质量因素影响软件和它本身开发者,外部质量取决于内部质量。

外部质量因素

正确性:最重要的质量指标
健壮性:针对异常情况的处理,这里对异常情况的定义为未被specification覆盖的情况即为“异常情况”!
可扩展性: 对软件的规约进行修改,是否足够容易
可复用性:一次开发,多次使用,不要重复造轮子!!
兼容性:不同的软件系统之间相互可容易的集成
性能: 性能毫无意义,除非有足够的正确性,过早的优化是万恶之源!!改变算法思想!
可移植性:软件可方便的在不同的技术环境之间移植
易用性:字面意思
Functionality:每增加一小点功能,都确保其他质量属性不受到损失
Timeliness:在用户想要其前则发布

内部质量因素

Readability
Understandability
Clearness
Size

五大质量目标

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/eliforsharon/article/details/118497543
今日推荐