软件开发过程
产品的组成部分
软件产品除了计算机上的程序,还包括许多隐含的内容。
软件产品需要多少投入
- 客户需求
产品开发小组必须摸清客户所想,如搜集详细信息采用问卷调查、收集反馈信息、收集竞争产品的信息、期刊评论......接下来这些信息将会被研究、提炼、分析以确定产品应该具备哪些功能。
- 产品说明书
客户需求的研究结果其实只是原始材料,并没有描述产品,只是确定需求的功能。产品说明书综合上述信息以及没有提出但必须实现的需求,真正定义产品是什么、有哪些功能以及外观。
- 进度表
制定进度表的目的是为了了解哪些工作完成了,还有多少工作要做,何时全部完成。
- 软件设计文档
对于稍微大一点的程序,就必须有一个设计过程来规划软件如何编写。
常用的软件设计文档的清单:
结构文档、数据流图、状态转换图、流程图、代码注释、
- 测试文档
和程序员一样,测试员也必须编写测试文档。
常用的测试提交清单:
测试计划、测试用例、缺陷报告、测试工具和自动测试、度量统计与总结
软件产品由哪些部分组成
如:帮助文档、用户手册、样本与示例、产品支持信息、图标与标志、错误信息、安装、说明文档 ......
软件项目成员
大多情况下,人员分工基本相同。
主要人员及职责,最常用的名称:
- 项目经理或监制人员:驱动整个项目、编写产品说明书、管理进度、进行重大决策
- 体系架构师或系统工程师:设计整个系统的体系架构或软件
- 程序员或开发人员:设计、编写软件并修复其中的缺陷
- 测试员或质量保证(QA):找出并报告软件产品的问题
- 技术作者或用户协助专员:编写软件产品附带的文件与联机文档
- 配置管理员或构建员:将代码与文档资料组合,合成为一个软件包
软件开发生命周期
软件产品从最初的构思到公开发行的过程称为软件开发生命周期模式
4种常用的模式:
- 大爆炸模式:简单,几乎没有计划、进度安排与开发过程。如果产品需求很好理解,最终发布日期可以随意更改,这样的开发过程就很理想。但对测试员很不友好。
- 边写边改模式:基于大爆炸模式更进一步,至少考虑到了产品需求。几乎没有计划与文档编制,适合快速制作且用完就丢的小项目。
- 瀑布模式:从最初的构思到最终产品要经过一系列步骤。每个步骤结束时,项目小组组织审查,决定是否进入下一步。需要注意三点:1. 该模式强调产品的定义,开发或测试只是其中的一个模块、2. 各步骤分布独立,没有交叉、3. 瀑布模式无法回溯
- 螺旋模式:尽管不太理想,但该模式解决了一些其他模式存在的问题,兵有好的突破。螺旋模式的总体思想时一开始不必详细定义所有细节。从小开始定义并实现重要的功能,接受客户反馈,然后进行下一步,重复过程,直到得到最终产品。每次循环的六个步骤:1. 确定目标、可选方案和限制条件。2. 明确并化解风险。3. 评估可选方案。4. 当前阶段的开发与测试。5. 计划下一阶段。6. 确定下一阶段的方法。该模式对测试员十分友好。