




已阅读5页,还剩65页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件项目管理 Module SoftwareProcess软件开发过程 项目过程 项目过程包括 项目管理过程 concernedwithdescribingandorganizingtheworkoftheproject Theyareapplicabletomostprojects mostofthetime 产品开发过程 concernedwithspecifyingandcreatingtheprojectproduct Theyaretypicallydefinedbytheprojectlifecycleandvarybyapplicationarea PMBOK的项目管理过程 典型的软件开发过程RUP 本节内容 软件开发过程概述推荐的软件过程统一软件过程RUP敏捷过程微软产品开发过程选择和实施软件过程 软件企业的核心能力 软件开发过程是企业的核心能力是项目管理的核心能力 Neworchangedrequirements Neworchangedsystem SoftwareProcess 什么是软件过程 DefinesWhoisdoingWhat Whentodoit andHowtoreachacertaingoal 软件过程的组成 五大元素 工件 产品活动里程碑资源和角色关系 工件和WBS 工件 Artifact 是指软件开发过程的中间或最后工作产品 包括文档 模型和程序 工作分解结构 WBS WorkBreakdownStructure 以工作为导向对项目要素进行的分组 它定义了项目的整个工作范围 每细分一层表示对项目工件更详细的描述分组方式按开发阶段组织按子项目 子系统组织按类型组织 按开发阶段组织的WBS举例 活动 一个项目可分为多个活动活动的执行可以是顺序的 迭代的 重复的 并行的 嵌套的 或者有条件地引发的 活动间的时序关系F FF SS FS S父子活动 里程碑 里程碑是特殊的活动 当时钟到达特定时间 就会触发里程碑检查本阶段的所有活动和工作是否按要求完成制定明确的里程碑大项目制定更细化的里程碑让项目组成员时刻保持高效的工作状态为管理人员提供进度可视化的可靠依据让客户都感觉到一段时间就实现了一个目标 提高客户的满意度和信任 明确的可量化的里程碑 资源 人是最重要的资源 软件构件库 软件开发过程分类 线性顺序过程WaterfallProcess增量式过程IncrementalProcess演化过程EvolutionaryProcess原型Prototyping螺旋过程SpiralProcess并发开发过程ConcurrentDevelopmentProcess特殊过程基于构件的开发Component BasedDevelopment形式化方法模型FormalMethodsProcess面向侧面的软件开发Aspect OrientedSoftwareDevelopment 瀑布过程 Waterfall 最早的软件开发过程1970年W Royce提出又称为线性顺序过程 瀑布过程特点 特点强调阶段的划分及其顺序性强调各阶段工作及其文档的完备性每个阶段结束之前 都从技术和管理两个角度进行严格的审查是一种严格线性的 按阶段顺序的 逐步细化的开发模式适用时机所有功能 性能等要求能一次理解和描述时所有的系统功能一次交付时必须同时淘汰全部老系统时 瀑布型的风险和缺点 获得完善的需求规约是非常困难的 难以适应快速变化需求 系统太大时 难以一次做完 反馈信息慢 极可能引起开发后期的大量返工 如返工到需求 设计等早期活动 增量过程 Incremental 构造一系列可执行的中间版本 VersionbyVersion 增量过程适用时机 早期获得需求 需求变化少 中间产品可以提供使用 系统被自然地分割成增量 工作人员 资金可以逐步增加 演化过程 Evolutionary 现状 软件需求在软件开发过程中常常发生改变 想要一次迭代就开发出最终产品是不可能的紧迫的市场期限使得难以一下子完成一个完善的软件产品解决方案 演化过程只要核心需求能够被很好地理解 就可以进行渐进式开发 其余需求可以在后续的迭代中进一步定义和实现 这种过程模型称为演化模型 它能很好地适应随时间演化的产品的开发 特点 迭代的开发方法 渐进地开发各个可执行版本 逐步完善软件产品 每个版本在开发时 开发过程中的活动顺序地或部分重叠平行地被采用 与增量过程的区别是 需求在开发早期不能被完全了解和确定 在一部分被定义后开发就开始了 然后在每个相继的版本中逐步完善 演化过程举例 首先执行风险最大的任务迭代内部并行开发迭代之间顺序执行可以在细化所有需求之前启动开发工作 更多的需求 设计 编码 测试 初始需求 维护请求 完整产品 基于风险的 顺序执行的演化过程 风险 PreliminaryIteration Architect Iteration Architect Iteration Devel Iteration Devel Iteration Devel Iteration TransitionIteration TransitionIteration Post deployment 瀑布型 时间 演化过程价值 降低风险 演化过程是目前采用最广泛的软件过程 几种常见的演化过程 原型Prototyping螺旋过程SpiralProcess并发开发过程ConcurrentDevelopmentProcess 特殊过程 基于构件的开发Component BasedDevelopment形式化方法过程FormalMethodsProcess面向侧面的软件开发Aspect OrientedSoftwareDevelopment 基于构件的开发 A1 A2 A3 A4 基础构件 B1 B2 B3 B4 功能构件 C1 C2 接口构件 A1 A2 A B C D R A3 A4 B1 B2 B3 B4 C1 C2 D1 D2 D A1 B1 C1 A2 B2 应用系统 标准规范与质量保证 应用构架库 构件生产车间 组装车间 应用构架提取车间 构件库 界面构件 D1 D2 应用系统 构件和可复用构件 构件 Component 可以被明确标识的软件制品 可复用构件 可被其它系统的开发者复用的构件 可复用构件概念的外延化随着对软件复用理解的深入 构件的概念已延伸到需求 构架 设计 设计模式 测试计划 测试案例和数据以及其他对开发活动有用的信息 统称为可复用软件构件 形式化方法过程 净室软件工程CleanRoomSoftwareEngineering一种增量软件过程模型基于函数的规范和设计在测试前进行正确性验证 基于函数理论 统计测试抽样 测试用例 随机样本 概率分布特点 可生成高质量的软件 净室软件过程图示 需求收集 盒结构规约 形式化设计 正确性验证 代码审查 制订测试计划 统计使用测试 认证 系统工程 迭代 1 迭代 2 迭代 3 需求收集 盒结构规约 形式化设计 正确性验证 代码审查 制订测试计划 统计使用测试 认证 需求收集 盒结构规约 形式化设计 正确性验证 代码审查 制订测试计划 统计使用测试 认证 面向侧面的软件开发 现实问题 对多数复杂的系统 在多种需求关注点和实现的模块之间的对应中 往往出现交叉分割 横切 crosscut 的现象 解决方案 面向侧面的软件开发aspect orientedsoftwaredevelopment举例对于一个信用卡应用程序来说 存款 取款 帐单管理是它的主关注点 日志和持久化将成为横切整个对象结构的横切关注点 面向侧面软件开发的原理 Requirement BusinessLogic Persistence Security Logging AspectualDecomposition AspectualComposition 本节内容 软件开发过程概述推荐的软件过程统一软件过程RUP敏捷过程微软产品开发过程选择和实施软件过程 统一软件过程RUP RUP是一个风险驱动的 基于UML和构件式架构的迭代 递增型开发过程 RUP最佳实践方法 迭代式开发需求管理构件式架构基于UML的可视化建模持续校验质量变更管理 RUP的四个阶段 time Inception DefinethescopeofprojectElaboration Planproject specifyfeatures baselinearchitectureConstruction BuildtheproductTransition Transitiontheproductintoendusercommunity 每个阶段结束是一个大的里程碑 阶段和迭代 Aniterationisadistinctsequenceofactivitieswithanestablishedplanandevaluationcriteria resultinginanexecutablerelease internalorexternal MinorMilestones Releases ResultsofpreviousiterationsUp to dateriskassessmentControlledlibrariesofmodels code andtests ReleasedescriptionUpdatedriskassessmentControlledlibraries IterationPlanning RequirementsCapture Analysis Design Implementation Test PrepareRelease Selectedscenarios 一个迭代周期 一个小的瀑布模型 过程定义 Worker Activity Artifact Describea Use Case responsiblefor Use Case Specifier Apieceofinformationthatisproduced modified orusedbyaprocess Arolethatmaybeplayedbyanindividualorateaminthedevelopmentorganization 工作指南 工具指南和文档模板 Guidelinesaretherules recommendations andheuristicsthatsupportactivitiesForexample modelingandprogrammingguidelinesToolmentorsexplainhowtouseaspecifictooltoperformanactivityorstepsinanactivityForexample buildingadesignmodelusingRationalRoseTemplatesarepredefinedartifactsForexample aRationalSoDAtemplateforaUse CaseReportGuidelines toolmentorsandtemplatesmakeiteasiertoapplytheprocesscorrectlyandconsistently 敏捷过程 敏捷过程很容易适应变化并迅速做出自我调整 在保证质量的前提下 实现企业效益的最大化 敏捷过程在保证软件开发有成功产出的前提下 尽量减少开发过程中的活动和制品 Justenough2001年2月 新方法的一些创始人在美国犹他州成立Agile联盟 http Lightweight Agile XP SCRUM Crystal FDD DSDM ASDdx LeanDevelopment 敏捷过程的核心理念 基于适应而非预测Agile方法通过快速 短迭代式的开发 不断产出和演化可运行软件 根据用户的反馈信息作适应性调整 然后进入下一轮快速短迭代式开发以人为导向而非过程导向努力营造诚信 开放的组织氛围 根据项目中信息流通的具体情况 按高内聚 松耦合的原则 将项目组划分为若干个小组 每个小组以不超过10人为宜 组员均在一个工作间内工作 通过小组内各种渠道的沟通 来减少中间制品的工作负担 提高应变能力 MartinFowler NewMethodology 敏捷过程的12条指导原则 1 在快速不断地交付用户可运行软件的过程中 将使用户满意放在第一位以积极的态度对待需求的变化 不管该变化出现在开发早期还是后期 以几周到几个月为周期 尽快 不断地交付可运行的软件供用户使用在项目过程中 业务人员和开发人员最好能一起工作以积极向上的员工为中心建立项目组 给予他们所需的环境和支持 对他们的工作予以充分的信任在项目组中 最有用 最有效的信息沟通手段是面对面的交谈 敏捷过程的12条指导原则 2 测量项目进展的首要依据是可运行的软件高度重视可持续开发项目发起者 开发者和用户应能始终保持步调一致应时刻关注技术上的精益求精和设计的合理 这样能提高软件的快速应变力简单化 尽可能减少不必要工作的艺术 最好的框架结构 需求和设计产生于自组织的项目组项目组要定期对其运作情况进行反思 提出改进意见 并进行相应的微调 敏捷过程的适用范围 MartinFowler认为 新方法不是到处可适用的适合采用敏捷过程的情况 l需求不确定 易挥发 Volatile 意指今天的要求明天就不需要了 l有责任感和积极向上的开发人员l用户容易沟通并能参与l十个人以下的小项目 极限编程 XP 由KentBeck WardCunningham RonJeffries等人提出反响最大 最为完善的敏捷过程方法 价值观 沟通 反馈 简化 勇气特点 测试成为开发的核心 纪律性与灵活性巧妙结合 XP项目周期 XP关键做法 现场客户 On siteCustomer 计划博弈 PlanningGame 系统隐喻 SystemMetaphor 简化设计 SimpleDesign 集体拥有代码 CollectiveCodeOwnership 结对编程 PairProgramming 测试驱动 Test driven 小型发布 SmallReleases 重构 Refactoring 持续集成 Continuousintegration 每周40小时工作制 40 hourWeeks 代码规范 CodingStandards RUP与XP的共性 基础都是面向对象方法 取代传统的结构化方法 都重视代码 文档的最小化和设计的简化采用动态适应变化的演进式迭代周期 取代传统的瀑布型生命周期 需求和测试驱动鼓励用户积极参与 RUP与XP的区别 XP以代码为中心 编码和设计活动融为一体 弱化了架构的概念 RUP过程通常以架构为中心 细化阶段的主要目的就是构造出一个可运行的架构原型 作为将来添加需求功能的稳固基础 XP不包含业务建模 部署 过程管理等概念 RUP适合各种规模的项目 XP只适用于小团队 MSF MicrosoftSolutionFramework 4 0软件过程 MSFforAgileSoftwareDevelopment意在更加灵活 在设计上是重复的注重测试与原型 较短的开发循环与持续整合MSFforCMMIProcessImprovement注重严谨的开发流程旨在获得CMMILevel3Compliance Microsoft在2005年发布 MSFforAgileSoftwareDevelopment Firstagileprocessthatconsidersthewholesoftwarelifecycleandthefullsoftwareteam IterativeandincrementalScenario drivenSmallteamsQualityofServicerequirementsRisksUtilizesacontext driventestingapproach basedontestmetricthresholds 管理 Governance 角色 Roles BusinessAnalystProjectManagerArchitectDeveloperTesterReleaseManager 工作项 workitem 5workitemstoassignandtrackworkScenarioQualityofservicerequirementSecurity performance anduserexperienceTaskBugRisk MSFforCMMIProcessImprovement FirstagileCMMIprocessHelporganizationsoperateatCapabilityMaturityModelIntegration CMMI level3 astandarddefinedbytheCarnegieMellonSoftwareEngineeringInstitute SEI ElaboratesontheMSFforAgileSoftwareDevelopmentprocessMoreworkitemsExtensivereportingDoesnotreplaceprocessimprovementinfrastructure 过程模型 Projectplansapproved Scopecomplete Releasereadinessapproved Deploymentcomplete Vision scopeapproved Milestone basedIterativeFlexible 管理 Governance 5phases milestones 角色 Roles 大项目的团队 Featureteams Leadteam ReleaseOperations UserExperience Development Test Catalog ProgramManagement Development Test Fulfillment ProgramManagement UserExperience Development Test 工作项 workitem 7workitemstoassignandtrackworkTaskChangeRequestRiskReviewRequirementBugIssue 每个阶段的主要活动 Activity ProjectPlansApproved ScopeComplete ReleaseReadinessApproved Deploymentcomplete Vision ScopeApproved UserAcceptanceTestingComplete ReleaseCandidates TechnologyValidation FunctionalSpecificationBaselined MasterPlanBaselined MasterScheduleBaselined DevelopmentandTestEnvironmentSetUp DeploymentStableInterimMilestone SiteDeploymentsCompleteInterimMilestone CoreComponentsDeployed CoreTeamOrganized Vision ScopeDrafted ProofofConceptComplete InternalBuild1Complete InternalBuild2Complete InternalBuildnComplete 微软软件开发的成功经验 bestpractice 以bug数据库为基础来保证质量产品技术开发部门的反馈以产品功能规格书为标准完成视觉效果的设计visualfreeze源程序树的锁定lockdownsourcetree源程序树的分叉forksourcetree产品编码完成codecomplete先自尝其果 可用性
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 杭州市2025浙江省国际商事法律服务中心招聘1人-统考笔试历年参考题库附带答案详解
- 张店区2025年山东淄博市张店区事业单位公开招聘综合类岗位工作人员(115人)笔试历年参考题库附带答案详解
- 广州市2025中国热带农业科学院广州实验站第一批招聘工作人员4人笔试历年参考题库附带答案详解
- 宜宾市2025年四川宜宾三江新区社会事业局宜宾三江新区招聘合同制专业技术人员笔试历年参考题库附带答案详解
- 孟村回族自治县2025河北沧州孟村县农业农村局招聘劳务派遣制辅助人员10名笔试历年参考题库附带答案详解
- 天津市2025年天津财经大学第二批招聘硕士等人员6人笔试历年参考题库附带答案详解
- 大足区2025重庆市大足区水利工程运行服务中心招聘3人笔试历年参考题库附带答案详解
- 离婚诉讼中财产清算、分割及子女抚养协议范本
- 碎石开采与石材加工企业环保责任协议范本
- 人力资源行业发展趋势分析与劳动合同范本设计
- 乡村积分超市协议书
- 小学一年级上册体育全册教案
- 电焊工理论知识培训课件
- DB42-T 2051-2023 文物保护单位保护标志及保护界桩设置规范
- 高压配电抢修方案范本
- 2025高考英语全国II卷试题分析及备考策略指导课件
- 人口老龄化带来的公共卫生挑战-深度研究
- 医院外出进修、培训及参加学术会议的管理规定
- 全国公开课大赛一等奖小学二年级下册数学新人教版《除法的初步认识-除法》课件
- 内容理解与概括【知识精研】 中考语文一轮复习精讲专练
- 牙科设备供应及后续服务方案
评论
0/150
提交评论