软件构造的多维度视图

目录

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

1.Source code(源代码)

2.AST(抽象语法树)

3.Class Diagram(UML类图)

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

1.Code Churn(代码改动)

三、Build-time, moment, and component-level view

1.File(文件)

2.Package(包)

3. Static Linking Library(静态链接库)

四、Build-time, period, and component-level view

1.Software Configuration Item(软件配置项)

2.Version(版本)

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

1.Snapshot diagram(代码快照图)

2.Memory dump(内存信息转储)

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

1.Execution tracing (执行跟踪)

七、Run-time, moment, and component-level view

八、Run-time, period, and component-level view


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

1.Source code(源代码)

        根据语言规范所编写的源程序文件。java的源代码文件的扩展名为.java。

2.AST(抽象语法树)

        对源代码进行解析可以得到解析树。可以自己手动解析,也可以使用现成的解析器。

        什么是解析树呢?我们知道一棵解析树是包含代码所有语法信息的树型结构,它是代码的直接翻译。所以解析树,也被成为具象语法树(Concret Syntax Tree, 简称CST);而抽象语法树,忽略了一些解析树包含的一些语法信息,剥离掉一些不重要的细节,所以它看起并不像解析树那么事无巨细,这也是AST名字中抽象一词的由来。

        不同的语言,都会有对应不同的语法分析器,语法分析器会把源代码作为字符串读入、解析,并建立语法树,这是一个程序完成编译所必要的前期工作。

        在java的编译过程中,扫描器读取源代码生成token流,解析器根据token流生成AST。

3.Class Diagram(UML类图)

        类图(Class diagram)由许多(静态)说明性的模型元素(例如类、包和它们之间的关系,这些元素和它们的内容互相连接)组成。类图描述了系统的类的集合,类的属性和类之间的关系,可以简化了人们对系统的理解。

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

1.Code Churn(代码改动)

不同版本的代码进行比较,可以找到发生改动的代码。

三、Build-time, moment, and component-level view

1.File(文件)

        源代码被物理组织成文件。

2.Package(包)

        文件被封装后得到包。

3. Static Linking Library(静态链接库)

        源程序经过预处理、编译、汇编后生成可重定位目标程序,然后在链接阶段将使用的静态链接库合并到当前程序中得到可执行目标文件。

        静态链接库的文件扩展名为.lib。

四、Build-time, period, and component-level view

1.Software Configuration Item(软件配置项)

       

        一般认为:软件生存周期各个阶段活动的产物经审批后即可称之为软件配置项。 软件配置项包括:

①与合同、过程、计划和产品有关的文档和资料;

②源代码、目标代码和可执行代码;

③相关产品,包括软件工具、库内的可重用软件、外购软件及顾客提供的软件等。

        在软件建立时变更是不可避免,而变更又加剧了项目中软件工程师间的混乱。之所以产生混乱,是因为在进行变更前没有仔细分析,或没进行变更控制。Babich曾经这样说过:“协调软件开发使得混乱达到最小的技术叫配置管理。配置管理是一种标识、组织和控制修改的技术,目的是使错误达到最小并最有效地提高生长率。

基线:软件持续变化过程中的“稳定时刻”(例如:对外发布的版本)

        软件配置管理,又叫SCM,它应用于整个软件工程过程。因为变更在任何时刻都可能发生,因此SCM活动的目标就是为了:

(1)标识变更;

(2)控制变更;

(3)确保变更正确地实现;

(4)向其他有关的人员报告变更。

        软件配置管理是贯穿整个软件生成周期的一项技术。它的主要功能是控制软件生存周期中软件的改变,减少各种改变所造成的影响,确保软件产品的质量。正确应用软件配置管理是开发高质量软件所不可缺少的。软件配置管理的过程是软件开发过程中质量管理的精髓。

2.Version(版本)

版本:为软件的任一特定时刻(Moment)的形态指派一个唯一的编号,作为“身份标识”。

Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。

Git的常用指令:

git add:从工作目录上传到暂存区

git commit:从暂存区上传到本地仓库

git pull:从本地仓库上传到远程仓库

git push:从远程仓库下载到工作目录

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

1.Snapshot diagram(代码快照图)

带箭头的线从【引用】指向【对象】,引用只需给出名称即可,对象的画法分为以下三种:

基本数据类型对象无需用圈包围,并且不必注明数据类型,只需要给出对象的值即可。

对象数据类型需要用圈包围并注明对象的数据类型、值。

抽象数据类型需要用圈包围并注明抽象数据类型(下称ADT)的名称,以及该ADT的属性——包括属性的名称以及属性的数据类型,并根据前两条画出每个属性引用的对象。

对于可变的引用,画单线箭头。
对于不可变的引用,画双线箭头。
对于可变的对象,如果需要用圈包围,使用单圈包围。
对于不可变的对象,如果需要用圈包围,使用双圈包围。

2.Memory dump(内存信息转储)

        内存转储是在应用程序或系统崩溃的情况下显示和存储内存内容的过程。它帮助软件开发人员和系统管理员诊断、识别和解决导致应用程序或系统故障的问题。它主要识别操作系统或系统内任何已安装应用程序中的问题或错误。通常,内存转储提供有关程序、应用程序和系统在终止或崩溃之前的最后状态的信息。该信息包括内存位置、程序计数器、程序状态和其他相关细节。它显示在屏幕上,还会创建一个系统日志文件,供以后查看或参考。内存转储后,计算机通常不可用或无法访问,直到重新启动。

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

1.Execution tracing (执行跟踪)

用日志方式记录程序执行的调用次序

七、Run-time, moment, and component-level view

UML部署图

八、Run-time, period, and component-level view

系统层面的事件日志


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值