软件构造第一章知识小结

第一章课程内容简述

  • 软件的多维度视图

    ​软件的多维度视图大致可以从3个方面进行分析:按照阶段划分可以分为:构造时/运行时视图;按照动态性划分可以分为:时刻/阶段视图;按照构造对象的层次划分可以分为:代码/构件视图

    ​在实际中进行对软件的开发和分析实际上是极其复杂的,这里可以通过课程中介绍的一张图片进行分析:

    软件构造的过程

    由上面的这张图片,我们能够很清晰的看到其实在设计软件或者构造软件的过程中,是包含很多不同的流程的,之前我们一直在训练的都是设计和编写代码环节,而忽视了在其他环节的分析和构建。而软件构造的多维度视图正是可以通过不同的维度尽量对图中所包含的环节尽可能进行覆盖。

    ​对软件的分析可以通过以上3个层次进行分析。而在不同的角度大致可以通过这个分类将软件构造的整个过程分成8个部分进行管理。它们之间的关系如图所示:

    软件构造的多维度视图

    通过上面这张图,我们能够清楚看到在不同的阶段交叉点,我们应该注意或者关注的重点是什么。以下通过详细介绍在构造、时刻、代码阶段构造、阶段、代码阶段之间的不同来更好认识这张图,了解其他6个阶段我们应该关注什么。

    ​在构造、时刻、代码阶段,我们应该通过关注AST抽象语法树来达到对构造软件过程中的理解。在源代码方面,我们可以通过分析词汇、语法、语义层面来进行对代码的分析。在这个过程中,我们主要更加关注的是代码的逻辑组织,以及在这个特定时刻的软件形态。在这个角度中,我们更加关注的就是在这个时间点上我们构造的代码呈现的是一种什么样的形式。从词法层面,我们关注的是使用代码的语句和变量。这其中包含着两种,一种是近似自然语言的注释,另一种是遵循特定的编程语法。这两种各有方便的人群。从语法层面,我们更关注的是语句的流程,通常可以表示为语法树。对于功能都可以转化为流程,而AST将源代码彻底结构化,变成抽象语法树。语义则是表达源代码具体想实现什么目标,通常可以通过将类与类之间的关系通过UML图表示出来,这通常是形式化的。换成图形结构能够方便我们理解。

    ​在构造、阶段、代码阶段的组合,我们关注的主要是代码的组合。在设计程序的过程中,我们一般会通过改变代码来完成某一些功能。在这个过程中,我们需要通过一些版本控制工具来保存代码的改变。

  • 软件不同视图之间的转化

    不同的视图是通过不同的角度来看待同一个软件,因此它们之间必然存在着某种联系。它们之间的关联可以通过如下关联图来表示:

    维度之间的关联

    例如从代码阶段和构件结构来说,最终的构件就是不同的代码之间的组合。因此从这张图中,我们通过这些关联线,我们能够很轻松理解它们之间的关系。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值