软件构造的多维度视图

文章介绍了软件构造的三个维度——构造时/运行时、时刻/阶段、代码/构件视图,并详细阐述了由此衍生出的八个不同视图,包括源代码的组织和依赖、代码变化、软件版本控制、运行时内存状态、调用顺序、系统架构以及事件日志记录。每个视图都与相应的工具和表示法(如UML的时序图和部署图)关联,展示了软件开发的不同方面和转换过程。
摘要由CSDN通过智能技术生成

前言

本篇博客是对哈工大CS32123《软件构造》课程第一讲多维度视图部分的理解与总结

软件构造的三个维度

  • 按阶段划分:构造时/运行时视图(build- and run-time views)
  • 按动态性划分:时刻/阶段视图(moment and period views)
  • 按构造对象的层次划分:代码/构件视图( code and component views)

八个视图

依据以上三个维度,可将软件构造过程划分为8个视图:
8个视图
以下将逐一对这8个视图进行分析:

构建时,时刻,代码视图

构建时,阶段,代码视图
这一视图是主要是源代码相关内容,包括源代码的逻辑组织(比如函数,类,接口等)以及源代码不同部分之间的依赖关系。

构建时,阶段,代码视图

构建时,阶段,代码视图
“阶段”相比“时刻”强调代码发生的变化(Code churn)。
比如git等版本管理工具可以很方便的看到代码发生的变化:

代码发生的变化

图中红色表示新版本删除内容,绿色表示新版本增添内容

构建时,时刻,构件视图

构建时,时刻,构件视图
这一视图是关于源代码被物理组织成文件按目录组织。
Maven结构

IntelliJ IDEA创建的默认Maven项目结构

构建时,阶段,构件视图

构建时,时期,构件视图
这一视图表现软件实体随时间的变化。
这里引入软件版本的概念,百度百科对于软件版本是这样定义的:
“软件版本:包含两种不同含义(1)为满足不同用户的不同使用要求,如适用于不同运行环境或不同平台的系列产品。(2)软件产品投入使用以后,经过一段时间运行提出了变更的要求,需要做较大的修正或纠错,增强功能或提高性能。”
将“版本”作为不同时期的软件实体的标识,这一视图即是描述不同版本软件的变化。

运行时,时刻,代码视图

运行时,时刻,代码视图
这一视图描述某一时刻程序运行时内存里变量层面的状态(将其称为代码快照)。

运行时,阶段,代码视图

构建时,阶段,代码视图
这一视图描述了程序运行是代码各部分的调用顺序。
可以使用UML建模语言中的“时序图”来表示:
时序图

时序图示例

运行时,时刻,构件视图

运行时,时刻,构件视图

这一视图描述了软件产品中硬件和软件的物理架构关系。
可以使用UML建模语言中的“部署图”来表示:
部署图

部署图示例

运行时,阶段,构件视图

运行时,阶段,构件视图
这一视图描述程序运行过程和经历。
可以使用“事件日志”来体现。
事件日志为系统管理员提供信息 用于诊断和审计。下图为事件日志示例:
日志

日志

不同视图之间的转换

在软件构造的不同阶段会进行不同视图的转换,下图描述了这一行为:
视图转换

不同视图之间的转换
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值