软件开发过程中确定软件框架,并将框架按照一定顺序组织起来
①瀑布模型
适用最早、应用最广
因为它自上而下的顺序,所以叫做瀑布模型
特点:阶段具有顺序性、依赖性;推迟实现的观点(编码非常靠后);质量保证的管理(每个阶段必须有文档、每个阶段结束前必须评审文档)
缺点:每个阶段不可能不产生问题,如果前面阶段产生问题无法修改
适合软件开发缓解,运行回去修改
优点:提高软件质量、降低软件成本、缓解软件危机
缺点:用户不能一次明确所有需求,需求不明确(可能需求分析要很多时间),从而难以完成本阶段工作
②快速原型模型
建立一个软件雏形,给用户使用从而获取新的需求
优点:客户需求不明确时也可以很快建立软件 因为用户有软件可用,所以获取需求优于瀑布模型;提供了一个学习手段,
开发者和用户都能学习进步;有的雏形也能成为最终软件的一部分(复用)
缺点:内部结构可能紊乱,导致可维护性下降
③增量模型
开发软件时将软件产品作为一系列的增量构件设计、编码、测试
可以分批次的向用户提供服务
这里的设计指总体设计
每个构件进行详细设计、编码、测试后链接交予用户使用
优点:因为各个构件并行工作,可以较短时间给用户提供服务;用户有充裕时间适应软件;软件结构开放
缺点:各个构件耦合可能失败,即结构开发很难;即存在一定风险
风险更大的增量模型,集成可能失败,不建议使用
④螺旋模型
加入了风险分析
螺旋模型进行版本的迭代
优点:对于大型软件开发项目可以控制风险
缺点:需要风险评估经验,否则后果严重;不利于契约式开发
⑤喷泉模型
面向对象的生产周期模型
迭代、无缝
优点;无缝可以同步开发,提高开发效率;节省开发时间
缺点:可能随时添加各种信息,文档管理、更新困难
⑥Rational 统一过程
迭代、渐增方式开发软件
横轴是时间,纵轴是工作流
6个核心过程工作流,三个核心支持工作流
初始、精化、构建、移交
每一个阶段多次精华、每个阶段访问核心工作流是不一样的
优点:不断迭代软件开发;新的需求可以放到下一个版本中;
⑦微软过程
各个阶段都有一个里程碑,代表这个阶段完成
优点:缩短软件上市周期
缺点:理论支撑不足