软件构造 第一章第一节软件构造的多维视图
从八个维度解释软件构造的对象是什么,并简单介绍在每个维度的刻画技术。
Outline
描述软件系统的三个维度元素、关系和各种视角的模式
阶段:build-time && run-time
动态:moment && period
级别:code && component
不同视角间的转换
Notes
【软件的构成要素】
– 软件=算法+数据结构
- 软件=程序+数据+文档(80年代)
- 软件=Modules(Components)+Data/Control Flow 模块(组件)+数据流/控制流
【软件系统的组成】
Software system =
Programs(UI,算法,utilities(实用工具 function),APIs,test cases)
- Data(files,database)
- Documents(SRS(需求规格声明),SDD(设计规格声明),user manuals)
- Users(谁来使用)
- Business Objective(为什么使用它)
- Social Environment(法规)
- Technological Environement(如何部署)
- Hardware / Network(硬件)
(前三个是主要)
【软件构造的多维视角】
1.阶段:构建 || 运行
2.动态:时刻 || 周期
3.级别:代码 || 组件
Buildtime概述
想法 -> 需求 -> 设计 -> 代码 -> 可安装可执行的包
- 代码是如何组建起来的赖关系)
- 体系架构 源代码如何组成文件
- 时间角度 源代码在特定的时间什么样,随着时间如何变化
【Code-level;Build-time;Moment】
三种相互关联的形式
- 面向词法 半结构化源代码
- 面向语法 (AST抽象语法树)半结构化的源代码变成语法树(编译器能够处理)
- 面向语义 UML(参考软件工程课程内容)
关于词法、语法、语义的更多内容
https://www.cnblogs.com/lightsong/p/6107310.html
【Code-level;Build-time;Period——Code Churn(代码变化)】
- Churn Trends
- 代码变化包括添加、修改、删除
【Component-level ;Build-time;Moment】
- 源代码如何组织成文件——通过类库
- 文件被压缩进package,逻辑上进入components(组件)and sub-systems(子系统)
- 链接技术(动态 / 静态)
【类库(Library)】
【Component-level ;Build-time;Period】
– 版本控制(Git、SVN)
【Code level;Run-time;Moment】
- 快照图:着眼于目标计算机内存中的变量级执行状态,体现某时刻内存中变量的情况。
【Component level;Run-time;Moment】
- UML部署图:程序中的各个模块在物理上如何分布;表明客户端、服务器之间的关系。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!