软件构造多维视图总结

一、描述软件系统的三个维度

    1、分阶段(by phases):构建运行时视图(build- and run-time

    2、通过动态(dynamics):时刻周期的看法(moment and period

    3、按级别(levels):代码组件视图(code and component  


二、软件系统的组成部分

    1、软件=程序+数据+文档

    2、软件=模块(组件)+数据/控制流程


三、软件系统构建时的视图

构建时:想法  要求  设计  代码 ⇒可安装/可执行包

 1、代码级视图:源代码 ----源代码是如何通过基本的程序块如函数,类,方法,接口,逻辑上组织的以及依赖关系

 2、组件级视图  体系结构 ----源代码由文件,目录,包,库和依赖关系组织的物理方式

 3、moment 视图:特定时间的源代码和组件的外观

 4、period视图:他们如何随时间演变/变化


四、软件系统的运行时的视图

运行时: 程序如何在目标机器内部运行时,以及什么磁盘文件需要加载到内存中

 1、代码级视图:源代码 ----内存状态,可执行程序(对象,功能等)像程序单元一样相互交流

 2、组件级视图  体系结构 ----软件包如何部署到物理环境(操作系统,网络,硬件等)以及他们如何互动?

 3、moment 视图:程序如何在特定时间内运行

 4、period视图:他们如何随时间演变/变化


五、软件系统构建时的视图元素模型

moment:

1、代码级:

词法Source code) ②语法(AST抽象语法树)  ③语义Class Diagram类图

2、组件级:

Package(包)File(文件)Static linking(静态链接Library(库)test Case (Component Diagram) (测试案例)

period:


1、代码级:代码变化(Code Churn


2、组件级:版本变化,项目配置(Configuration Item, Version 


六、软件系统运行时的视图元素模型


moment:

1、代码级:

Code Snapshot(代码快照)   Memory dump (内存转储


2、组件级:

①包(Package),②库( Library,动态链接 Dynamic linking, ④组态(Configuration, ⑤数据库(Database,⑥中间件( Middleware, ⑦网络(Network, ⑧硬件(Hardware (Deployment Diagram)


period:

1、代码级:软件跟踪

2、组件级:事件日志


七、个别概念详解


1、库

存储在自己的磁盘文件 中,收集一组代码可以在各种程序中重用的函数 

②库的来源:

从操作系统预安装的库文件和文件等操作

从语言SDK;

来自第三方来源,例如从互联网下载它们。

开发人员也可以发布他们自己的库

两种不同的方法将库整合到一个可执行程序:

- 静态链接

动态链接


2、可执行程序:机器可读的CPU执行的指令以及相关数据


3、动态链接优点

 可以升级到更新版本的库(添加功能或

修复错误), 而无需重新创建可执行程序。

许多操作系统可以通过加载来优化其内存使用情况

只有一个库的单个副本到内存中,然后与其他人共享

需要同一个库的程序


4、事件记录与软件跟踪的比较

事件记录

主要 由系统管理员使用

②记录“ 高级信息 (例如失败安装程序)

③不能太(包含许多重复事件或信息对其预期没有帮助听众)

④基于标准的输出格式

⑤事件日志消息通常是本地化的

⑥添加新类型的事件,以及新的事件消息,不需要敏捷

软件跟踪

主要 由开发人员 消费

②记录 “低级别信息 (例如a抛出 异常 

③可能 会嘈杂

④输出格式几乎没有限制

⑤本地化很少受到关注

⑥追加新的跟踪消息 必须 是敏捷的

5、

软件构造多维视图总结

6、

软件构造多维视图总结