思维导图
软件开发的基本问题(两个转换)
- 用户对软件功能的理解与程序员对软件功能的理解之间的转换(人到人)
- 程序员对软件功能的理解与程序的实现之间的转换(人与机器)
大型软件开发中的困难
- 一致性的保持成为十分困难的问题
各部分之间不可避免的各种信息的交流与共享直接影响到各部分之间的协调与配合 - 测试难度大大增加
“水波效应”,一个代码片段的修改可能导致部分模块不可用甚至是整个系统 - 工作进度难以控制
单个程序元往往过低估计估计工作难度而拖延进度 - 文档与代码的协调十分困难
随着编程的不断深入,文档需要不断修改以保证与代码的一致性 - 版本更新带来的困难
对代码与文档的审核与检查十分繁琐且结果不是十分显著
困难产生的原因
- 大系统的复杂性
量变引起质变——一个软件由10行代码构成与一个软件由10万行代码构成 - 具有主动性的个人之间的组织与协调
各部门之间的合作 - 各个应用领域之间的差异
隔行如隔山
- 时间的因素,变化的因素
随着时间的变化,用户需求、社会环境、硬件及其相关技术等的变化