软件生命周期
- 计划周期
涉及到的人员:用户、系统分析师,乙方项目负责人
①问题定义
②可行性研究 - 开发周期
①需求分析
涉及到的人员:用户、系统分析师、乙方项目负责人。
②总体设计
涉及到的人员:软件分析师、系统分析师。
③详细设计
涉及到的人员:软件设计师、程序员。
④编码
涉及到的人员:程序员。
⑤测试
涉及到的人员:测试工程师。 - 运行周期(历时最长的阶段)
①维护
软件开发模型
-
瀑布模型
要求开发人员能够精准捕获到用户的需求,不明确用户的需求不能使用该模型。 -
原型化模型
构造一个软件的原型,说明软件有哪些功能,然后再进行改进。 -
演化模型(为了捕获用户的需求)
和原型化模型类似,但是在后面开发过程中,不再使用原来的原型,而是发生了改变,不是针对原型进行开发的。 -
增量模型(为了捕获用户的需求)
和原型化模型类似,只不过发生了一些增量,每一次都会发布可操作的产品出来。 -
V模型(拔高测试的地位)
-
喷泉模型(提高开发的效率,不利于人员的组织和管理)
各个活动之间没有明显的界限(本活动还没完成,但是我还能做一些后面的活动) -
螺旋模型(原型化模型和喷泉模型的组合)
加入了风险分析,减低开发的风险。
软件开发和测试
内聚:一个模块内部各个元素的集聚程度,越集聚越好。
耦合:模块和模块之间的关系称为耦合,越松散越好。
动态测试:要上机。
黑盒测试法:不关心细节,只关心输入输出,结果是否正确。
白盒测试法:关心程序的实现细节。
灰盒测试法:既关心输入输出,也关心程序实现细节,当时没有那么细节。
静态测试法:程序员自查、代码审计。
软件测试
项目管理
甘特图:不知道活动之间的关系。
PERT图:能够清晰看到活动之间的关系。
关键路径:开始到结束历时最长的的路径。
最晚开始时间:根据关键路径的耗时减去终点到该点的最短路径。比如图中,6的最晚完成开始时间是10。
最早开始时间:最短的路径时间,比如图中,6的最晚完成开始时间是4。
松弛时间:某个活动在不影响工期的情况下,所能松弛的时间,等于最晚开工时间减去最早开工时间,或者等于关键路径减去该点的最长时间。