一、描述软件系统的三个维度
1、分阶段(by phases):构建和运行时视图(build- and run-time)
2、通过动态(dynamics):时刻和周期的看法(moment and period)
3、按级别(levels):代码和组件视图(code and component )
二、软件系统的组成部分
1、软件=程序+数据+文档
2、软件=模块(组件)+数据/控制流程
三、软件系统构建时的视图
构建时:想法 /span> 要求 /span> 设计 /span> 代码 安装/可执行包
1、代码级视图:源代码 —-源代码是如何通过基本的程序块如函数,类,方法,接口,逻辑上组织的以及依赖关系
2、组件级视图 : 体系结构 —-源代码由文件,目录,包,库和依赖关系组织的物理方式
3、moment 视图:特定时间的源代码和组件的外观
4、period视图:他们如何随时间演变/变化
四、软件系统的运行时的视图
运行时: 程序如何在目标机器内部运行时,以及什么磁盘文件需要加载到内存中
1、代码级视图:源代码 —-内存状态,可执行程序(对象,功能等)像程序单元一样相互交流
2、组件级视图 : 体系结构 —-软件包如何部署到物理环境(操作系统, 络,硬件等)以及他们如何互动/span>
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、
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!