软件构造三维度、八视图

软件构造不是简单的写完源代码,能够成功运行就可。一般通过三维度、八视图的方法来认识软件构造。
软件构造的三个维度:
按阶段分:build-time / run-time;
按动态性分:moment / period;
按构造对象分:code-level / component-level。

三维度、八视图的总图:
在这里插入图片描述

  1. build-time,moment,code-level
    这里面涉及到三个相互关联的层面:词汇层面、语法层面、语义层面;
    **词汇层面:**基于词汇的半结构化源代码,之所以半结构化是为了便于程序员理解 的同时便于编译器理解。
    **语法层面:**程序的语法结构。具体的例子有AST(抽象语法树),是将程序按照语法结构化的形成一棵树来反映程序,对树的各种操作就是对代码的修改。
    **语义层面:**程序的语义机构。具体的例子有类图(UML),他描述了interfaces、classes、attributes、methods以及他们之间的关系。

  2. build-time,period,code-level
    这个视图中描述了代码的变化,具体有代码行的增加、删除和修改。在github每次提交的时候我们可以很清楚的看到这个视图。在这里插入图片描述

  3. build-time,moment,component-level
    这个视图描述的是软件的物理组成结构,也就是文件组成结构。大部分的开发需要大量的文件,如何组织这些文件就是这个视图所要展示的,对于一些功能相关的文件我们需要把他们放在一个包中,进而形成组件或者子系统,对于一些可复用的组件我们可以将他们封装成库,同时我们在开发过程中很大可能性要用到其他库中的某些功能,一种实现技术就是通过静态链接的方式。

  4. build-time,period,component-level
    软件开发是一个长久的,不断迭代的过程,在上一个时刻用这个算法编写的代码,下一个时刻需要用其他算法,或者某一个时刻的代码中包含了某个bug,需要修复。这些变化一般是发生的某个组件中的,不需要修改全部。可以一张图来表示:
    在这里插入图片描述

  5. run-time,moment,code-level
    Code snapshot:描述了程序运行时内存里变量层面的状态。
    在这里插入图片描述
    memory dump:一种可以反应内存状态的文件,当进程因为错误或者信号终止时产生。里面包含了寄存器的信息,栈的信息以及程序的数据。

  6. run-time,period,code-level
    这个视图展示了代码在运行时的调用和继不同的机器承关系,可以通过日志方式记录调用次序。

  7. run-time,moment,component-level
    举个栗子:一个分布式的系统需要配置到多个物理机器上,如何将这些组件配置到机器上以及他们之间的关系就是这个系统在这个视图中的表现。用一张图表示为:
    在这里插入图片描述

  8. run-time,period,component-level
    这个视图展示了软件运行过程过系统层面上产生的信息。可以通过事件日志记录,记录事件发生的地点,时间,信息等。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

看风听雨的人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值