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

软件构造的多维视图

从三个维度看软件系统构成

按阶段划分:构造时视图/运行时视图
按动态性划分:时刻视图/阶段视图
按构造对象的层次划分: 代码视图/构件视图
软件构造的多维视图
build-time:idea > requirement > design > code > installable/executable package
code-level view 代码的逻辑组织
component-level 代码的物理组织
Moment View 特定时刻的软件形态
Period view 软件形态随时间变化
runtime 运行时程序被载入目标机器开始执行
code-level view 逻辑实体在内存中如何实现
component-level view 物理实体在硬件环境中如何实现
Moment view 逻辑/物理实体在内存/硬件环境中特定时刻的形态
Period view 逻辑/物理实体在内存/硬件中的形态如何随时间变化

将“软件构造”看作“不同视图间的转换”

– ∅→ Code
programimg / coding (ADT/OOP)
review, static analysis/checking
– Code → Component
Design (ADT/OOP, Resuability,Mainabliity)
Build:complie,satic link,instaall,etc
– Build-time → Run-time
Install/deploy
Debug,Unit/integration testing(Robustness and Correctness)
– Moment → Period
Version control
Loading dynamic
Concurrent threads
视图转换图

软件构造的质量目标

内部因素与外部因素

外部质量因素影响用户
内部质量因素影响软件本身与开发者
外部质量取决于内部质量

外部质量因素

正确性

最重要的质量指标,要按照预先定义的规约执行

  • 测试与调试:发现不正确,消除不正确
  • 防御式编程:在写程序时就确保正确
  • 形式化方法:通过形式化验证发现问题
健壮性

针对异常情况的处理,是对正确性的补充

  • 当出现规约之外的行为软件要做出恰当的反应
  • 未被规约覆盖的情况即为异常情况
拓展性

对软件规约修改是否足够容易

  • 规模越大拓展起来越不容易
  • 拓展的目的:应对变化
  • 提升可拓展性方法:简约主义设计与分离主义设计
可复用性

一次开发多次使用

兼容性

不同软件系统之间相互可容易的集成

  • 难点:不同软件有不同的设定
  • 关键:保持设计同构性,使软件通信标准一致
性能
  • 要在保证正确性的情况下追求性能
  • 对性能的关注要与其他质量属性折中
  • 过度的优化导致软件不再适应变化与复用
可移植性

软件方便地在不同技术环境间移植(硬件与软件)

易用性

容易学习,安装,操作,监控

  • 给用户提供详细的指南
  • 结构简单
  • 了解用户
功能

功能是系统提供的可能想的范围
程序设计中一种不适宜的趋势:软件开发者增加越来越多的功能,企图跟上竞争,其结果是程序极为复杂,不灵活,占用过多的磁盘空间
不能在可靠性与可拓展性上妥协
除非对现有的功能达到满意,否则不要使用新的功能

及时性

在用户需要它之前发布的能力
优秀的软件发布得晚可能错过目标

其他的质量特性
  • 可验证性
  • 完整性
  • 可修复性
  • 经济性

内部质量因素

  • 源代码相关因素
  • 框架相关因素
  • 可读性
  • 可理解性
  • 清晰度
  • 大小

在质量因素间的折中

  • Integrity vs. ease of use
  • Economy vs. functionality
  • Efficiency vs. portability
  • Efficiency vs. reusability
  • Economy vs. reusability
  • Timeliness vs. extendibility
    正确的软件开发过中,开发者应该将不同质量因素间如何折中的设计决策和标准明确写出
    虽然需要折中但是正确性绝不能与其他因素折中

最重要的几个质量因素

  • 正确性与健壮性:可靠性
  • 可拓展性与可复用性:模块化

软件构造的五个关键质量目标

  • 简洁漂亮的代码> 容易理解,可理解性
  • 可复用设计> 开发成本低,可复用性
  • 低复杂性 > 为了该边做准备,容易拓展,可维护与兼容性
  • 健壮性与正确性 > 安全无bug,不易出错,正确性
  • 性能与效率:高效运行,性能
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值