开发模型
整个软件开发的生命周期:需求-计划-设计-编码-测试-运行维护。
瀑布模型
瀑布模型是其他模型的基础框架,是线性顺序执行的软件开发模型。
优点:强调开发的阶段性;强调早期计划及需求调查;强调产品测试。
缺点:太过依赖早期进行的需求调查,不能适应需求的变化;由于是单一的流程,风险经常会在后期的测试阶段才能显现出来,失去了及时纠正的机会。
螺旋模型
一般在软件开发初期需求不是很明确时,采用渐进式的开发模型,螺旋开发就是渐进式开发模型的代表。
优点:强调严格的全过程风险管理;强调各开发阶段的质量;提供机会检讨项目是否有价值继续下去
缺点:引入非常严格的风险意识、风险分析和风险控制,对风险管理的技术水平有很高的要求。
增量、迭代模型
增量开发模型,鼓励用户反馈,在每个达代过程中,促使开发小组以一种循环的、可预测的方式驱动产品的开发。因此,在这种开发模式下,每一次的迭代都意味着可能有需求的更改、构建出新的可执行软件版本,意味着测试需要频繁进行,测试人员需要与开发人员更加紧密地协作。
敏捷开发
敏捷开发是有关软件开发的社会工程的,敏捷的贡献在于更加关注开发人员的工作热情。
敏捷开发有很多种方式,其中scrum就是比较流行的一种。
scrum由PO(product owner)产品经理、SM(scrum master)项目经理和ST(scrum team)研发团队组成。
PO:客户代表方,整理客户需求。
SM:项目经理,管理整个开发流程,保证敏捷开发流程的顺利实施。
ST:研发团队,各种技术人员的组成。
基本流程:
产品发布会议-迭代计划会议-每日例会-产品演示会议-回顾会议
测试模型
v模型
v模型中指出,单元和集成测试应检测程序的执行是否满足软件设计的要求;
系统测试应检测系统的功能、性能的质量特性是否达到系统要求的指标;
验收测试确定软件的实现是否满足用户需要和合同的要求。
优点:明确标注了测试过程中存在的不同类型的测试;清除表示了测试阶段和开发阶段的对应关系。
缺点:将测试作为编码之后的一个阶段,没有在需求阶段就进入测试。
w模型
W模型由两个v模型组成,分别代表测试和开发的过程。W模型的测试对象不仅是程序,需求、设计等也要进行测试,测试和开发时同步进行的。
优点:有利于尽早地全面的发现问题。对需求的测试也有利于及时了解项目难度和测试风险,及早指定应对措施,加快项目进度。
缺点:不可以适应需求的变化,不支持敏捷开发模式。