软件过程模型:
传统工程过程模型:
编码修正模型
瀑布模型:
上一阶段的结果是下一阶段的输入;
阶段间具有顺序性和依赖性;
推迟实现;
质量保证。
演化模型:针对事先不能完整定义需求的软件开发。用户给出待开发系统的核心需求,并在核心需求实现后,能够及时有效地提出反馈,以支持系统的最终设计和实现。每一迭代过程均由需求、设计、编码、测试、集成等阶段组成,为整个系统增加一个可定义的、可管理的子集。每个循环开发周期6-8周。
增量模型:整个产品被分解为若干个构件,开发人员逐个构件地交付产品。
缺点:软件需要具备开放式体系结构;容易失去软件的整体性;
优点:较好地适应变化;降低开发风险
螺旋模型:图中四个象限代表了四个活动,制定计划、风险分析、客户评估、实施工程
强调风险分析,要求许多客户接受和相信这种分析,适用于内部大规模软件开发
如果执行风险分析将大大影响项目的利润,那么进行风险分析毫无意义;
软件开发人员应该擅长寻找可能的风险,准确分析风险,否则会带来更大风险。
原型模型
传统模型缺陷:
1.忽视变化的存在
2.忽视软件开发是一个智力密集型的工作,过分强调纪律和文档,导致人的创造性降低
3.忽视了人与人之间的直接交流
4.过分注重过程。
现代软件工程过程模型:
IBM公司的统一过程模型(RUP):一种流行的、构造面向对象的、迭代式软件开发过程
三个视角描述过程:动态视角、静态视角、实践视角
六个过程工作流:业务建模、需求、分析设计、实现、测试、部署
三个支持工作流:配置和变更管理、项目管理、环境
敏捷过程(AP):不强调文档,转向强调可运行的软件片段;开发者和顾客之间频繁沟通;快速开发、反馈、修改;连续不断的短周期迭代。
核心理念:基于适应而非预测;以人为导向而非过程导向;
目标:快速、增量地发布软件
原则:小步快跑,及时反馈
团队成员要素:决策能力、相互尊重和信任、不断学习、自我组织。
微软解决方案(MSF)