HIT 软件构造 多维度视图

本节目标

从三个维度看软件构造的构成
用什么杨的模型/视图描述软件系统
将“软甲构造”看作“不同视图之间的转换”

软件构造的多维度视图

按阶段划分:构造时、运行时
按动态性划分:时刻、阶段
按构造队形的曾次划分:代码、构件
在这里插入图片描述

build-time views

idea =>requirement=>design=>code=>installable/executable package
代码层面:代码的逻辑组织
component层面:代码的物理组织
moment层面:特定时刻的软件形态
period层面:软件形态随时间的变化

Build-time, moment, and code-level view

如何使用基本程序块逻辑地组织源代码,如函数、类、方法、接口等,以及它们之间的依赖关系
源代码、语法分析树(AST)、接口、类、属性、方法、类视图

Build-time, period, and code-level view

代码变化(code churn)

Build-time, moment, and component-level view

包、文件、静态链接、build脚本、测试用例
源代码被组织成文件,这些文件进一步被目录组织
文件被封装到包中,逻辑上被装在组件和子系统中
可复用的模块在library中(library的来源有多种:os提供,编程语言提供,第三方公司提供,自己基类)

Build-time, period, and component-level view

关注的是各项软件实体随时间如何变化
SCI(配置项)、version

run-time views

运行时:程序被载入目标及其,开始执行
代码层面:逻辑尸体在内存中如何呈现
构件层面:物理实体在物理硬件环境中如何呈现
moment view:逻辑/物理实体在内存/硬件环境中特定时刻的形态如何
period view:逻辑/物理实体在内存/硬件环境中的形态随时间如何变化

Run-time, moment, and code-level view

代码快照图、内存转储文件
这些查看的都时某一时刻的信息

Run-time, period and code-level view

程序的执行栈追踪,也就是查看程序的执行顺序

Run-time, moment, and component-level view

动态链接、库、运行配置
UML中的部署图

Run-time, period, and component-level view

事件日志

三维度视图最终版

在这里插入图片描述

软件构造视图之间的转换

在这里插入图片描述

null =》code

programming/coding
review,static analysis/checking

code=》component

design
build:compile,static link,package,install,etc

build-time=》run-time

install/deploy
debug,unit/integration testing

moment=》period

refactoring
version control
loading,dynamic linking,interpreting,execution
欢迎关注公众号BBIT
让我们共同学习共同进步!

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值