软件构造第一章 软件构造基础
Posted 长安蒹葭
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件构造第一章 软件构造基础相关的知识,希望对你有一定的参考价值。
二.软件构造的质量目标
1. 外部属性(主要):影响用户感受,如外观、速度等
(1)正确性:符合规格范围和计划目标
·只保证各个层面的正确性(假设调用正确)
·检验与调试
·防御性编程
·形式化编程
(2)健壮性:响应规格范围外的异常情况
·提示错误信息
·正常退出或降级
(3)可扩展性:提供增加新功能的空间
·固化需求以规避风险
·设计简洁、离散化
(4)可复用性:使软件模块能够被其他程序使用
·模式固化
(5)兼容性:跨平台、跨软件交互
·使用标准文件格式、数据结构、接口,保持一致性
·定义一套标准的访问协议
(6)效率:程序运行过程中对CPU、内存、硬盘等的占用情况
·优化过程中正确性优先,在各个指标间进行权衡
·良好的算法、 I/O技术、内存管理
·将问题抽象便于处理,去掉一层抽象便于优化
(7)可移植性:从一个环境转移到另一个环境
(8)易用性:不影响专业用户的前提下便于初学者使用
·结构清晰的设计
·理解用户的界面
(9)功能性:软件提供功能的多少
·蠕变特征:竞争导致程序冗杂混乱
·更新原则:保证整体质量处于稳定水平
·渐进式开发
(10)其他
·及时性:高效率大致完成以占领市场
·可验证性:保证软件的效果
·完整性:各个模块间不会被非法访问所干扰
2. 内部属性(次要):影响外部属性,针对开发人员
(1)代码可读性
(2)圈复杂度:用来衡量一个模块判定结构的复杂程度
(3)耦合度/内聚度:追求低耦合、高内聚
3. 均衡决策
(1)经济性与功能性相矛盾
(2)性能与可移植性、可复用性相矛盾
(3)及时性与延展性相矛盾
4. 重要属性
(1)可读性
·构建-代码-时刻
- 代码的可理解性(命名标准、代码布局与风格、注释、复杂度)
- 函数规约
- 评审、演练
·构建-组件-时刻:构建/项目的可理解性(包、文件的组织和命名空间)
·构建-代码-周期:重构
·运行-代码-时刻:日志跟踪
(2)可复用性
·构建-代码-时刻
- ADT/OOP
- 接口与实现分离
- 继承/重载/重写
- 组合/代理
- 多态
- 子类型与泛型编程
- OO设计模式
·构建-组件-时刻
- API设计
- 类库
- 框架(可复用)
(3)可扩展性
·构建-代码-时刻
- 模块化设计
- 聚合度/耦合度
- OO设计模式
- 格式化、规范化、语法化编程
·构建-组件-周期:软件版本控制
(4)可靠性(正确性 && 健壮性)
·构建-代码-时刻
- 异常处理
- 防御编程
- 先验程序
·构建-组件-时刻:
- 单元测试
- 集成测试
·构建-周期:回归测试
·运行-时刻:调试转储
·运行-周期:日志跟踪
(5)性能
·构建-代码-时刻:设计模式
·运行-代码-时刻
- 空间复杂性(内存管理)
- 时间复杂性(算法性能)
- 代码调优
·运行-组件-时刻:分布式系统
·运行-代码-周期:性能分析和调整
·运行-组件-周期:并行/多线程程序
以上是关于软件构造第一章 软件构造基础的主要内容,如果未能解决你的问题,请参考以下文章