多维度的软件构造

第一章 多维度的软件构造

1.1Multi-dimensional software views

  • By phases: build- and run-time views(按阶段:构建和运行时视图)
  • By dynamics: moment and period views(按动态:时刻和时段视图)
  • By levels: code and component views(按级别:代码和组件视图)

1.1.1软件

 软件系统的组成:

组成
组成
组成
软件系统
Programs
Data
Documents
UI, Algorithms, Utilities, APIs, test cases, etc
files, databases, etc
需求规格说明SRS, 设计规格说明SDD, user manuals, etc

 软件的各种视图:
多维度的软件构造

Build-time views

 下图是Build-time views的一个流程

idea
requirement
design
code
installable /executable package

对于

  • Moment view: 特定时间节点的属性
    • Code-level view: 有效代码,如函数,类,接口等等
    • Component-level view:结构,如文件,包,库等等
  • Period view:一段时间的变化情况
    • Code-level view: 代码的增删改动
    • Component-level view:工程的版本更替

Runtime Views

 Runtime Views研究当程序在目标计算机中运行时,它看起来是什么样子的,目标计算机需要将哪些磁盘文件加载到内存中。
 无论对于Code-level view还是Component-level view,在运行时的视图都是检测相似的东西

  • Code-level view:可执行程序的内存状态是什么样子的?程序单元(对象、函数等)如何相互作用
  • Component-level view:软件包如何部署到物理环境(操作系统、网络、硬件等)中,以及它们如何交互
    下面是其直观体现
  • Moment view: 特定时间节点的属性
    • Code-level view: Code Snapshot,Memory dump等
    • Component-level view: 库,包,链接,数据库,中间件,网络 和硬件的属性
  • Period view:一段时间的变化情况
    • Code-level view: 执行跟踪
    • Component-level view:日志

1.2Elements, relations, and models of each view

 Elements, relations, and models of each view(每个视图的元素、关系和模型)
多维度的软件构造