《ch软件过程的管理实践.pptx》由会员分享,可在线阅读,更多相关《ch软件过程的管理实践.pptx(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件过程的管理实践不同的项目需要不同的方法论,一个项目的最佳过程是这个项目所能负担的最小过程。Alistair Cockburn第1页/共34页本章提纲10.1 IBM-Rational 业务驱动开发的过程管理10.2 微软公司的软件开发过程模式10.3 敏捷模型的软件过程管理10.4 面向构件的软件过程10.5 软件过程的自定义体系第2页/共34页10.1 IBM-Rational 业务驱动开发的过程管理10.1.1 RUP的迭代过程10.1.2 提高过程的适应性10.1.3 需求开发和质量改进10.1.4 架构设计和组件复用10.1.5 跨团队协作10.1.6 过程实施的最佳实践第3页/共
2、34页10.1.1 RUP的迭代过程1234第4页/共34页初始阶段主要成果是:n前景文档:对核心项目要求、关键性质、前景说明。n初始的项目术语表。n初始的用例模型和商业用例。n项目规划,其中明确阶段和迭代,一个或多个原型。n初始的风险评估和商业模型。里程碑被评估的准则是:n相关共利益者对项目范围定义和成本/进度估计达成共识。n通过主要的用例将需求无二义地表达出来。n成本/进度估计、优先级、风险和开发过程的可信度。n开发出来的体系结构原型的深度和广度 初始阶段第5页/共34页细化阶段成果是:n用例模型。n一些增加的需求n可执行的体系结构原型及其描述。n修订后的风险表和商业用例、开发用例,指定要
3、使用的过程。n整个项目的开发计划。n初步的用户手册(可选)。细化阶段被评估的准则是:n产品的前景是否稳定?体系结构是否稳定?n可执行的演示是否强调了主要的风险元素,并得到解决?n构造阶段的规划是否已经足够详细和准确,是否有可信度的评估支持?n如果用当前的计划来开发整个系统,包括使用已定义的体系结构,是否所有相关共利益者对此都达成一致?第6页/共34页构造阶段版,至少应该包括:n在特定平台上集成的软件产品。n用户手册和对当前版本的描述。评估准则是:n产品版本是否足够稳定和成熟,可以在用户群中发布吗?n是否所有相关共利益者都同意产品的发布?n实际的资源支出和计划的支出的比值是否仍然可接受?第7页/
4、共34页交付阶段主要工作有:n测试,确认新系统达到用户的预期。n与被取代的旧系统并行操作,以及功能性数据库的转换。n用户和维护人员培训。n向市场、分销商和销售人员进行新产品的展示。交付阶段侧重向用户提交软件的活动,评估准则可以非常简单,也可能极其复杂。n用户是否满意?n是否能够接受实际的和计划的资源支出的比?第8页/共34页10.1.2 提高过程的适应性n早期开发活动的目标应是找出不确定性,在计划中逐渐提高精确性。n把项目划分为一组迭代过程以交付产品的增量价值来获得早期的、连续的用户反馈。n利用演示和反馈来调整开发计划。n包含并管理变更。n在生命周期尽早发现关键风险,通过不断评估所面对的风险,
5、并在下一次迭代中消除或减少已知的风险。n同步的测试和验证是减少风险的重要手段之一。第9页/共34页10.1.3 需求开发和质量改进1.定义并理解业务过程和用户需求2.区分项目,需求与软件能力的优先次序3.尽早地并且不断地测试4.资源的复用5.整个团队在整个过程中关注质量第10页/共34页10.1.4 架构设计和组件复用n复用的问题之一是在开发时两个组件需要知道对方的存在。基于标准的接口和独立于平台和具体实现技术的。n软件开发的目标是设计、实现并验证一个架构。n降低复杂度和改善交流的方法是利用高级工具、框架和语言。n逐步建立起测试自动化,更有效地实施持续集成策略。第11页/共34页10.1.5
6、跨团队协作n自我管理团队的概念,激励团队成员达到最好表现。n鼓励跨职能的合作。n提供有效的合作环境。n集成化的跨业务、软件和运作团队间的合作。n各司其职,积极参与质量工作。第12页/共34页10.1.6 过程实施的最佳实践n起始阶段 n细化阶段 n构建和发布阶段 第13页/共34页10.2 微软公司的软件开发过程模式 10.2.1 MSF的过程模型10.2.2 MSF的团队模型10.2.3 MSF过程模型的特点和原则10.2.4 MSF过程模型的应用第14页/共34页10.2.1 MSF的过程模型第15页/共34页角色和任务角色和任务角色角色任务任务产品管理产品管理程序管理程序管理开发开发用户
7、体验用户体验测试测试发布管理发布管理负责全面工作,确认用户需求,编写前景/范围说明书。负责设计工作,概念设计,项目组织结构。开发系统原型,技术选型,可行性分析。收集用户在使用方面的需求和建议。制定测试策略,建立测试标准。运营和支持,建立运营标准。第16页/共34页10.2.2 MSF的团队模型6种基本角色,即程序管理、开发、测试、发布管理、用户体验和产品管理。这些角色和实现特定的关键质量目标有直接的关系,而关键质量目标能否达到是项目成功的标志。所以,MSF 团队模型的核心是技术项目必须符合各种利益相关人的需求。两种类型的子团队n职能团队是由职能角色组织起来的单领域子团队。开发角色常常有一个或者
8、多个职能团队来承担。n特性团队是跨专业的子团队,把主要精力放在构建解决案的特定特性或者能力上。原则第17页/共34页10.2.3 MSF的特点和原则n目标驱动而非任务驱动。n外部可见的里程碑。n应提交项的变更管理。n递进的版本发布策略。n风险驱动的进度管理。n项目组集体参与管理产品质量。第18页/共34页10.2.4 MSF过程模型的应用1为共同的愿景而工作2 推动开放式沟通3 赋予团队成员权力4 建立清晰的职责和共同的责任5关注交付业务价值 6 保持灵巧,预测变化7 质量投资8 学习所有的经验 第19页/共34页10.3 敏捷模型的软件过程管理10.3.1 敏捷方法的过程模型10.3.2 敏
9、捷过程的最佳实践第20页/共34页10.3.1 敏捷方法的过程模型n主张简单、轻装前进。n拥抱变化,这种变化是不断递增的。n可持续性,简单的说,在开发的时候就能想象到未来。n项目投资产生最大的效益或回报。n有目的的建模。n多种模型。n高质量的工作、快速反馈。n软件是项目的主要目标,文档是次要的。第21页/共34页极限编程生命周期 第22页/共34页测试驱动开发 第23页/共34页10.3.2 敏捷过程的最佳实践编程编程简单设计、测试、重构、编码标准团队实践团队实践代码集体所有、持续集成、隐喻、编码标准、每周40小时工作制、结对编程、小型发布过程过程现场客户、测试、计划博弈、小型发布起始阶段起始
10、阶段 细化阶段细化阶段构建阶段构建阶段交付阶段交付阶段需求用户素材小型发布先行测试测量分析CRC卡片迭代计划任务计划、迭代编程 计划博弈设计系统隐喻单元测试重构持续集成实现编码标准简单设计集体代码所有权运行所有测试第24页/共34页10.4 面向构件的软件过程10.4.1 面向构件软件过程的思想10.4.2 面向构件软件过程的阶段划分第25页/共34页10.4.1 面向构件软件过程的思想1从传统的关注点分离到构件组装2以构件为中心组织软件过程。3高度关注可复用性和软件过程知识积累4高度并行的开发过程第26页/共34页基于构件描述的网状软件结构 第27页/共34页10.4.2 面向构件软件过程的
11、阶段划分1.需求阶段。捕获需求、识别业务构件、归纳业务构件需求。2.分析与高层设计阶段。分析业务构件、识别服务构件,归纳服务构件的需求并完成架构设计。3.并行开发与测试阶段。4.提交、发布与部署阶段。5.应用管理。CBSP的核心工作产品表10-9 CBSP的各个阶段的描述 第28页/共34页10.5 软件过程的自定义体系10.5.1 过程模式的对比分析10.5.2 自我定义的理想管理过程第29页/共34页10.5.1 过程模式的对比分析鉴于每个软件组织,无论在所属的行业、业务类型、组织规模、成熟度等方面,还是在软件产品线结构、特点、开发平台等方面,都具有自己的特点,很难直接采用某种现成的软件过
12、程模式 CMM/CMMI、RUP、MSF、Agile和CBSPn 优势、弱势和适用范围 n 对比分析 表10-10 不同过程模式的比较 第30页/共34页10.5.2 自我定义的理想管理过程1过程选择的原则2过程的具体操作建议根据自己的特色来选择软件过程。不要过于在乎过程过根据自己的特色来选择软件过程。不要过于在乎过程过轻或过重,只需要关注它是否合适,因为没有最好、只轻或过重,只需要关注它是否合适,因为没有最好、只有最适合组织本身的过程模式、方法等有最适合组织本身的过程模式、方法等.第31页/共34页作业第10章 1、3第32页/共34页Q&A第33页/共34页感谢您的观看!第34页/共34页