第16章统一软件开发过程UP统一过程(UP)软件开发过程描述了构造、部署以及维护软件的方式。统一过程(UnifiedProcess)是一种构造面向对象系统的迭代软件开发过程。其中RUP是对UP的详细精化。98年RUP5.0推出6个最佳开发经验迭代式开发管理需求使用基于构件的体系构架可视化软件建模验证软件质量控制软件变更迭代和演化式开发迭代和演化式开发是UP和其它方法中普遍采用的开发方法。开发被组织成一系列固定的短期小项目(迭代,iteration),每次迭代都产生可执行的局部系统,都具有各自的需求分析、设计、实现和测试活动。迭代和演化式开发RequirementsDesignImplementation&Test&Integration&MoreDesignFinalIntegration&SystemTestRequirementsDesign3weeks(forexample)Thesystemgrowsincrementally.FeedbackfromiterationNleadstorefinementandadaptationoftherequirementsanddesigniniterationN+1.Iterationsarefixedinlength,ortimeboxed.TimeImplementation&Test&Integration&MoreDesignFinalIntegration&SystemTest一次迭代不宜过长,否则复杂性不可控制瀑布式开发试图在编程之前详细定义出所有的需求,创建出完整的设计(模型集),一次性完成软件系统的分析、设计、实现、测试等现实情况往往并非如此理想化。迭代式开发更适合处理变更。051015202530354010100100010000ProjectSizeinFunctionPointsRequirementschange迭代开发的优点减少项目失败可能性,提高生产率,降低缺陷率在早期(而不是晚期)缓解高风险(技术、需求、目标、可用性等)早期可见的进展早期反馈,用户参与调整,会更接近用户需求可控复杂性;团队不会被长期且复杂的步骤所淹没一次迭代中的经验可以被系统的用于改进开发过程本身,并反复进行下去可以提出一个软件体系结构来指导开发迭代示例Iteration1Iteration2Iteration3Iteration4Iteration520%2%requirementssoftware30%5%requirementssoftware50%8%90%90%20%10%requirementsworkshopsImaginethiswillultimatelybea20-iterationproject.Inevolutionaryiterativedevelopment,therequirementsevolveoverasetoftheearlyiterations,throughaseriesofrequirementsworkshops(forexample).Perhapsafterfouriterationsandworkshops,90%oftherequirementsaredefinedandrefined.Nevertheless,only10%ofthesoftwareisbuilt.12345...20week1MTWThFweek2MTWThFweek3MTWThFkickoffmeeti...