佛山论坛建站模板,网站流量功能更怎么做,四川政务服务网官网,甘肃建设体网站一、迭代和进化式开发的优势 相对于顺序或“瀑布”软件开发模型#xff0c;迭代和进化式开发#xff08;iterative and evolutionary development #xff09;对部分系统及早地引入了编程和测试#xff0c;并重复这一循环。这种方式通常会还没有详细定义所有需求的情况下假…一、迭代和进化式开发的优势 相对于顺序或“瀑布”软件开发模型迭代和进化式开发iterative and evolutionary development 对部分系统及早地引入了编程和测试并重复这一循环。这种方式通常会还没有详细定义所有需求的情况下假设开发开始同时使用反馈来明确和改进演化中的规格说明。 在迭代开发中我们依赖于短时快速的开发步骤、反馈和改写来不断明确需求和设计。相比之下瀑布模型提倡在编程之前就预先完成需求和设计步骤。一直以来成功/失败的研究表明瀑布模型和软件项目高失败率具有极大关系对它的推广源于信念和风闻而不是具有统计意义的证据。研究证实迭代方法与较高的成功率、生产率和低缺陷率具有关系。
二、统一过程统一了什么 软件开发过程描述了构造、部署以及维护软件的方式。而统一过程Unified Process, UP是一种构造面向对象系统的迭代软件开发过程。 统一过程十分灵活和开放鼓励引进其他迭代方法中的有用的实践诸如极限编程Extreme Programming, XP、Scrum等。例如可以在统一过程项目中引入极限编程的测试驱动开发test-driven development)、重构refactoring和持续集成continuous integration等实践。同样也可以引入Scrum的公共项目室“作战室”和Scrum日常会议等实践。 统一过程把普遍认可的最佳实践如迭代生命周期和风险驱动开发结合起来成为联系紧密并具有良好同步文档的过程描述。 总体而言统一过程是OOA/D时的一系列迭代过程在软件开发过程中即拥抱变更又尊重未知与传统瀑布模型相比是一种“波浪式前进、螺旋式上升” “小步快跑”逐步向目标价值逼进的开发过程。经由行业证明是通用且公认的软件开发最佳实践。
三、统一过程下的迭代、进化 迭代开发iterative development是统一过程和大多数其他现代方法中的关键实践。在这种生命周期方法中开发被组织成一系统固定的短期小项目称为迭代每次迭代都产生经过测试、集成并可执行的局部系统每次迭代都具有各自的需求分析、设计、实现和测试活动。 迭代生命周期基于对经过多次迭代的系统进行持续扩展和精化并以循环反馈和调整为核心驱动力使之最终成为适当的系统。随着时间和一次又一次迭代的递进系统增量式地发展完善因此这一方法也被称为迭代和增量式开发。 迭代的输出不是实验性的或将丢弃的原型迭代开发也不是构造原型。与之相反其输出是最终系统的产品子集。而每一次迭代又是上一次迭代基础之上的进化。 四、统一过程下的敏捷开发 敏捷开发agile development方法通常应用时间定量的迭代和进化式开发、使用自适应计划、提倡增量交付并包含其他提倡其他敏捷性快速和灵活的响应变更的价值和实践。由于特定实践多种多样因此不可能精确地定义敏捷方法。除进化式精化的计划、需求和设计的短时间定量迭代外还倡导反映简易、轻量、沟通、自组织团队等更多敏捷性的实践和原则。 统一过程可以采纳和应用可适应性和轻量级的精神从而变身敏捷统一过程。
1、推荐使用统一过程活动和制品的简集。
2、统一过程是迭代和不断进化的所以在实现前的需求和设计是不完整的。它们是在一系列迭代中基于反馈而产生的。
3、以敏捷建模实践应用UML
4、对于整个项目不应有详细的计划。仅估计结束日期和主要里程碑的高阶计划但不对这些里程碑定义细粒度的步骤。详细计划由一次次迭代的调整而完成。
五、统一过程的其他关键实践 统一过程所倡导的核心思想是短时间定量迭代、进化和可适应性开发。其他实践和概念包括
在早期迭代中解决高风险和高价值的问题不断地让用户参与评估、反馈和需求在早期迭代中建立内聚的核心架构不断地验证质量提早、经常和实际地测试在适当的地方使用用例进行一些可视化的建模使用UML认真管理需求实行变更请求和配置管理
六、参考文档 UML和模式应用 Applying UML and Patterns An Introduction to Object-Oriented Analysis and Design and Iterative Development (美) Craig Larman 著 李洋 郑䶮 等译