软件构造的多维度视图和质量目标

一、多维度视图

By phases:build- and run-time views                    按阶段划分:构造时/运行时视图
By dynamics:moment and period views                按动态性划分:时刻/阶段视图
By levels:code and component views                    按构造对象的层次划分:代码/构件视图

1.Build-time Views

Code-level view: functions,classes,methods,interfaces          代码的逻辑组织

Component-level view: file,directories,packages,libraries       代码的物理组织

(1) Build-time, moment, and code-level view
(2) Build-time, period, and code-level view
(3) Build-time, moment, and component-level view
Linking with a library :编程时和build时,需告诉IDE和JVM在哪里寻找某些库
Static linking:库被拷贝进入代码形成整体,执行的时候无需提供库文件
(4) Build-time, period, and component-level view
Versioning:版本控制是给计算机软件的不同状态分配唯一的名字或者编号的过程
2. Runtime Views
运行时:程序被载入目标机器,开始执行
代码层面:逻辑实体在内存中如何呈现?
构件层面:物理实体在物理硬件环境中如何呈现?
逻辑/物理实体在内存/硬件环境中特定时刻的形态如何?
逻辑/物理实体在内存/硬件环境中的形态随时间如何变化?
Dynamic linking:库文件不会在build阶段被加入可执行软件中,仅仅做出标记;程序运行时,根据标记装载库至内存 ;发布软件时,记得将程序所依赖的所有动态库 都复制给用户。
(5) Run-time, moment, and code-level view
代码快照图:描述程序运行时,某时刻内存里变量层面的状态
(6) Run-time, period and code-level view
(7) Run-time, moment, and component-level view
(8) Run-time, period, and component-level view
二、质量目标
外部质量因素影响用户;内部质量因素影响软件本身和它的开发者;外部质量取决于内部质量。
外部质量:
1.正确性: 最重要的质量指标
按照预先定义的“规约”执行
维护正确性方法:
(1) 测试和调试:发现不正确、消除不正确
(2)防御式编程:在写程序的时候就确保正确性
(3)形式化方法:通过形式化验证发现问题
2.健壮性:针对异常情况的处理
出现规约定义之外情况的时候,软件要做出恰当的反应
3. 可扩展性:应对变化
4. 可复用性:一次开发 ,多次使用
5.兼容性:不同的软件系统之间相互可容易的集成
6. 同构性
7.性能: 性能毫无意义,除非有足够的正确性 ;对性能的关注要与其他质量属性进行折中;过度的优化导致软件不再适应变化和复用 ;过早优化是万恶之源。
8. 可移植性: 软件可方便的在不同的技术环境之间移植
9. 易用性: 容易学、安装、操作、监控;给用户提供详细的指南。
10.功能性
11. 及时性
12. 可验证性
13. 完整性
14.可修复性
15.经济性
内部质量: 可读性、 可理解性、 简洁、 大小
正确的软件开发过程中,开发者应该将不同质量因素之间如何做出折中的设计决策和标准明确的写下来。虽然需要折中,但“正确性”绝不能与其他质量因素折中。
三、软件构造五大质量目标
1. easy to understand  
2.cheap for develop
3.ready for changes
4. safe from bug
5.efficient to run    
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值