如上所示的三维度八视图是软件构造过程中的重要概念,它从时刻和时段,编译和运行,代码和构件三个软件编码的不同维度进行分析,探讨划分了其中八个视图的作用和意义。实际上软件构造的过程也就是这八个视图不断转化的过程。
软件构造的要求
Easy to understand 要用优雅,简洁且易于理解的手法编写代码
Ready for change 要确保可维护性和高适应性便于随时可能的改变
Cheap for develop 要发挥可重用性来降低开发成本
Safe from bugs 要编写足够健壮的代码块来防范漏洞
Efficient to run 要注重必要的优化来提高执行性能
维度划分
根据编码的阶段性过程,视图被分为构造视图和运行视图
根据编码的动态性差异,视图被分为时刻视图和阶段视图
根据构造对象的层次不同,视图被分为代码视图和构件视图
八个视图的详细分析
Build-time,moment,and code-level view
这一视图负责表示源代码,抽象语法树,类和接口的属性、方法。
这一部分对应的就是计算机系统中的编译过程,与之紧密相关的就是编码中最常见的源代码部分,以及语法分析树。语法分析树是由编译器生成的树,主要是对程序进行词汇、词义和语法的分析。
Build-time,period,and code-level view
这一视图负责表示代码的改动内容
这一部分实时关注着编码过程中代码的变化。
Build-time,moment,and component-level view
这一视图负责表示包、文件、静态链接、库、测试用例以及编译脚本的状态。
这一部分关注着编码过程中内部代码与外部库信息的静态链接,这些库包括操作系统提供的库,编程语言提供的库,第三方公司提供的库等等。
Build-time,period,and component-level view
这一视图负责表示构造过程中的配置项和版本控制系统。
在这一部分,软件生命周期中各个阶段活动的产物经过审批后就可以成为软件配置项。而版本控制系统作为重要的开发管理工具,在软件升级迭代的过程中为其版本管理起到了至关重要的作用,其中我们最为熟知的开发管理平台便当属github了。
Run-time,moment,and code-level view
这一视图负责表示执行阶段中代码和堆的存储信息。
这一部分会生成代码快照图,用以描述程序运行时内存里变量层面的状态。
Run-time,period,and code-level view
这一视图负责表示执行阶段中的异常栈轨迹,多线程同步,执行跟踪状态。
这一部分可以看成是在对程序运行过程中栈的信息进行展示,其中执行跟踪就是用日志方式记录程序执行的调用次序。
Run-time,moment,and component-level view
这一视图负责表示包,库,动态链接,加载配置,数据库,中间件,硬件等信息
这一部分相对于c中提到的视图,即是表示内部编码与外部文件的动态链接情况。
Run-time,period,and component-level view
这一视图负责表示事件日志,多进程以及分布式建成。
这一部分会展示运行过程中系统层次上的日志信息,记录代码运行过程中的重要事件。
上述即为我对软件构造三维度八视图的一点理解,希望能在巩固自身掌握的同时为其他阅读者带来一点收获。💪