一、四个维度八个视角的整体概括

软件构造第一章:软件四个维度八个视图总结

四个维度:

1、Build-time(构造阶段)

2、Run-time(程序运行阶段) 

3、Moment view:软件某个特定时刻呈现的状态 

4、Period view:软件形态随时间的变化。

八个视图:

根据四个维度以及Code-level(代码层面)、Component-level(物理结构层面)形成了八个视图:

1、Build-time,moment,and code-level view

2、Build-time,moment,and Component-level view

3、Build-time,period,and code-level view

4、Build-time,period,and Component-level view

5、Run-time,moment,and code-level view

6、Run-time,moment,and Component-level view

7、Run-time,period,and code-level view

8、Run-time,period,and Component-level view

二、各个视图的具体描述

1、Build-time,moment,and code-level view

这个视图主要有三个相互关联的形式:词汇层面、语法层面、语义层面。

词汇层面:软件的代码,也是软件最重要的部分。代码是半结构化的:近乎自然语言的风格+遵循特定的编程语法。前者是为了方便程序员理解程序,后者是为了方便编译器。

语法层面:表示了程序的语法结构。比如:Abstract Syntax Tree(AST)抽象语法树。抽象语法树是将代码彻底结构化编程一棵树,对树所做的各种操作等于对代码的修改。

语义层面:表达了源代码具体想实现的目标,通常是图形化或形式化的。通过图示来表达“需求”和“设计”思想,在转化成代码。

2、Build-time,period,and code-level view

这个视图变现了代码的变化例如:在某些地方做了修改,添加了代码,删除一些无用代码等等。在写实验的过程中,我们每次提交GitHub都可以看到我们代码修改的部分,每次代码的修改就是Code churn,也就是代码随时间的变化。

3、Build-time,moment,and Component-level view

这个视图就是我们在写代码时的物理组织结构,代码被组织到文件中,文件包含在packages中,package又被组织到更大的结构中,构成了程序的物理组织结构。就像eclipse中,每次写代码都有物理组织结构。

软件构造第一章:软件四个维度八个视图总结

一些可以重复使用的模块存储在库(library)中。开发者可以使用库中的功能。库的来源包括:操作系统提供的库、编程语言提供的库、第三方公司提供的库,你自己积累的库。

4、Build-time,period,and Component-level view

这个视图主要讲述了各个软件实体随时间是如何变化的。Software Configuration Item(SCI,软件配置项)以及Version(版本)如何变化。

在版本的更新中并不是所有项目都是同步更新的,每个项目都有着自己更新的过程。所有项目的最终形态构成了最终的版本。所以这个视图就是表现各个项目,以及版本随时间的变化。

5、Run-time,moment,and code-level view

Snapshot diagram(快照图):描述程序运行时内存里变量层面的状态。

Memory dump(内存信息转储):一个可以反应内存的文件。它包含了寄存器中存的内容,栈的信息以及程序的数据。他可以用来分析程序的状态,可以查看哪个数据项目发生了错误。

软件构造第一章:软件四个维度八个视图总结

6、Run-time,period,and code-level view

这个视图表现了代码层面在运行过程中各个部分的调用和继承关系。可以用日志方式记录程序执行的调用次序。用日志方式执行跟踪也是一种debug的重要方式。

7、Run-time,moment,and Component-level view

这个视图变现了在运行阶段,某一特定时刻组织层面的结构。一UML为例:

软件构造第一章:软件四个维度八个视图总结

该图就是某一特定时刻的组织结构


8、Run-time,period,and Component-level view

这个视图展现的系统层面的信息。可以通过事件日志记录,记录事件发生的地点,时间,信息等。这些信息可以方便系统管理员发现问题,处理问题。

相关文章: