软件开发过程_第1页
软件开发过程_第2页
软件开发过程_第3页
软件开发过程_第4页
软件开发过程_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Shanghai Jiao Tong University上海交通大学软件工程中心软件项目管理Module: Software Process 软件开发过程软件开发过程2Software Project Management沈备军项目过程w 项目过程包括:项目管理过程,项目管理过程, concerned with describing and organizing the work of the project. They are applicable to most projects, most of the time.产品开发过程,产品开发过程,concerned with specify

2、ing and creating the project product. They are typically defined by the project life cycle and vary by application area.3Software Project Management沈备军PMBOK的项目管理过程4Software Project Management沈备军典型的软件开发过程 RUP5Software Project Management沈备军本节内容w 软件开发过程概述w 推荐的软件过程统一软件过程 RUP敏捷过程微软产品开发过程w 选择和实施软件过程6Softw

3、are Project Management沈备军软件企业的核心能力开发过程开发过程 (CMM、RUP、XP) 开发技能开发技能(OO、架构、架构、构件构件)组织管理组织管理(文化、制度、团队、(文化、制度、团队、价值链价值链)软件开发过程软件开发过程是企业的核心能力是企业的核心能力是项目管理的核心能力是项目管理的核心能力7Software Project Management沈备军New or changedrequirementsNew or changed systemSoftwareProcess什么是软件过程w Defines Who is doing What, When to d

4、o it, and How to reach a certain goal.8Software Project Management沈备军软件过程的组成五大元素:w 工件/产品w 活动w 里程碑w 资源和角色w 关系9Software Project Management沈备军工件和WBSw 工件(Artifact)是指软件开发过程的中间或最后工作产品,包括文档、模型和程序。w 工作分解结构(WBS,Work Breakdown Structure)以工作为导向对项目要素进行的分组,它定义了项目的整个工作范围,每细分一层表示对项目工件更详细的描述分组方式 按开发阶段组织 按子项目/子系统组织

5、按类型组织10Software Project Management沈备军按开发阶段组织的WBS举例11Software Project Management沈备军活动w 一个项目可分为多个活动w 活动的执行可以是顺序的、迭代的(重复的)、并行的、嵌套的、或者有条件地引发的。w 活动间的时序关系F-FF-SS-FS-Sw 父子活动12Software Project Management沈备军里程碑w 里程碑是特殊的活动,当时钟到达特定时间,就会触发里程碑检查本阶段的所有活动和工作是否按要求完成制定明确的里程碑大项目制定更细化的里程碑让项目组成员时刻保持高效的工作状态为管理人员提供进度可视化的

6、可靠依据让客户都感觉到一段时间就实现了一个目标,提高客户的满意度和信任。13Software Project Management沈备军明确的可量化的里程碑14Software Project Management沈备军资源人人是最重要的资源是最重要的资源 !软件构件库软件构件库15Software Project Management沈备军软件开发过程分类w 线性顺序过程 Waterfall Processw 增量式过程Incremental Processw 演化过程Evolutionary Process 原型 Prototyping 螺旋过程 Spiral Process 并发开发过程

7、 Concurrent Development Processw 特殊过程 基于构件的开发 Component-Based Development 形式化方法模型 Formal Methods Process 面向侧面的软件开发 Aspect-Oriented Software Development16Software Project Management沈备军瀑布过程(Waterfall)w 最早的软件开发过程 w 1970年W. Royce提出w 又称为线性顺序过程需求设计编码测试运行和维护需求规约设计文档系统被确认的系统17Software Project Management沈备军瀑

8、布过程特点w 特点 强调阶段的划分及其顺序性 强调各阶段工作及其文档的完备性 每个阶段结束之前,都从技术和管理两个角度进行严格的审查 是一种严格线性的、按阶段顺序的、逐步细化的开发模式w 适用时机 所有功能、性能等要求能一次理解和描述时 所有的系统功能一次交付时 必须同时淘汰全部老系统时18Software Project Management沈备军瀑布型的风险和缺点w 获得完善的需求规约是非常困难的;w 难以适应快速变化需求;w 系统太大时,难以一次做完;w 反馈信息慢;w 极可能引起开发后期的大量返工,如返工到需求、设计等早期活动;w 19Software Project Manageme

9、nt沈备军增量过程(Incremental)w 构造一系列可执行的中间版本(Version by Version) 20Software Project Management沈备军增量过程适用时机w 早期获得需求,需求变化少;w 中间产品可以提供使用;w 系统被自然地分割成增量;w 工作人员/资金可以逐步增加。21Software Project Management沈备军演化过程(Evolutionary)w 现状: 软件需求在软件开发过程中常常发生改变,想要一次迭代就开发出最终产品是不可能的 紧迫的市场期限使得难以一下子完成一个完善的软件产品w 解决方案:演化过程 只要核心需求能够被很好地

10、理解,就可以进行渐进式开发,其余需求可以在后续的迭代中进一步定义和实现。这种过程模型称为演化模型,它能很好地适应随时间演化的产品的开发。w 特点: 迭代的开发方法,渐进地开发各个可执行版本,逐步完善软件产品。每个版本在开发时,开发过程中的活动顺序地或部分重叠平行地被采用。 与增量过程的区别是:需求在开发早期不能被完全了解和确定,在一部分被定义后开发就开始了,然后在每个相继的版本中逐步完善。22Software Project Management沈备军演化过程举例u首先执行风险最大的任务首先执行风险最大的任务u迭代内部并行开发迭代内部并行开发u迭代之间顺序执行迭代之间顺序执行u可以在细化所有需

11、求之前启动开发工作可以在细化所有需求之前启动开发工作更多的需求更多的需求设计设计编码编码测试测试初始需求初始需求维护请求维护请求完整产品完整产品- 基于风险的、顺序执行的演化过程基于风险的、顺序执行的演化过程23Software Project Management沈备军风险风险演化型演化型PreliminaryIterationArchitect.IterationArchitect.IterationDevel. IterationDevel. IterationDevel. IterationTransitionIterationTransitionIterationPost-deplo

12、yment瀑布型瀑布型时间时间演化过程价值:降低风险演化过程是目前采用最广泛的软件过程24Software Project Management沈备军几种常见的演化过程w 原型 Prototypingw 螺旋过程 Spiral Processw 并发开发过程 Concurrent Development Process需求分析需求分析原型开发原型开发最终系统设计最终系统设计原型评价原型评价最终系统实现最终系统实现用户用户反馈反馈25Software Project Management沈备军特殊过程w 基于构件的开发 Component-Based Developmentw 形式化方法过程 F

13、ormal Methods Processw 面向侧面的软件开发 Aspect-Oriented Software Development26Software Project Management沈备军基于构件的开发A1A2A3A4基础构件B1B2B3B4功能构件C1C2接口构件A1A2ABCDRA3A4B1B2B3B4C1C2D1D2DA1B1C1A2B2应用系统界面构件D1 D227Software Project Management沈备军构件和可复用构件w 构件(Component)可以被明确标识的软件制品。w 可复用构件:可被其它系统的开发者复用的构件。w 可复用构件概念的外延化随着

14、对软件复用理解的深入,构件的概念已延伸到需求、构架、设计、设计模式、测试计划、测试案例和数据以及其他对开发活动有用的信息,统称为可复用软件构件。28Software Project Management沈备军形式化方法过程w 净室软件工程 Clean Room Software Engineering一种增量软件过程模型基于函数的规范和设计在测试前进行正确性验证(基于函数理论)统计测试 抽样,测试用例-随机样本,概率分布w 特点:可生成高质量的软件29Software Project Management沈备军净室软件过程图示需求收集盒结构规约形式化设计正确性验证代码审查制订测试计划统计使用测

15、试认证系统工程迭代#1迭代#2迭代#3需求收集盒结构规约形式化设计正确性验证代码审查制订测试计划统计使用测试认证需求收集盒结构规约形式化设计正确性验证代码审查制订测试计划统计使用测试认证30Software Project Management沈备军面向侧面的软件开发w 现实问题:对多数复杂的系统,在多种需求关注点和实现的模块之间的对应中,往往出现交叉分割(横切, crosscut)的现象。w 解决方案:面向侧面的软件开发w aspect-oriented software developmentw 举例对于一个信用卡应用程序来说,存款、取款、帐单管理是它的主关注点,日志和持久化将成为横切整个

16、对象结构的横切关注点。31Software Project Management沈备军面向侧面软件开发的原理RequirementBusiness LogicPersistenceSecurityLoggingAspectual DecompositionAspectual Composition32Software Project Management沈备军本节内容w 软件开发过程概述w 推荐的软件过程统一软件过程 RUP敏捷过程微软产品开发过程w 选择和实施软件过程33Software Project Management沈备军统一软件过程 RUPRUPRUP是一个风险驱动的、基于是一个风

17、险驱动的、基于UMLUML和构件式架构的迭代、递增型开发过程和构件式架构的迭代、递增型开发过程。34Software Project Management沈备军RUP最佳实践方法迭代式开发迭代式开发需求管理需求管理构件式架构构件式架构基于基于UMLUML的可视化建模的可视化建模持续校验质量持续校验质量变更管理变更管理 35Software Project Management沈备军RUP的四个阶段Lifecycle Objective Milestone Lifecycle Architecture Milestone Initial Operational Capability Milest

18、one Product ReleasetimeuInception - Define the scope of projectuElaboration - Plan project, specify features, baseline architecture uConstruction - Build the productuTransition - Transition the product into end user community每个阶段结束是一个大的里程碑每个阶段结束是一个大的里程碑36Software Project Management沈备军阶段和迭代 iteration

19、 Minor Milestones: Releases 37Software Project Management沈备军 Results of previous iterations Up-to-date risk assessment Controlled libraries of models, code, and tests Release descriptionUpdated risk assessmentControlled librariesIteration PlanningRequirements CaptureAnalysis & DesignImplementation T

20、estPrepare ReleaseSelected scenarios一个迭代周期:一个小的瀑布模型38Software Project Management沈备军过程定义WorkerActivityArtifactDescribe a Use-CaseUse-Case PackageUse-Caseresponsible forUse-Case SpecifierA unit of work a worker may be asked to performA piece of information that is produced, modified, or used by a proc

21、essA role that may be played by an individual or a team in the development organization39Software Project Management沈备军工作指南、工具指南和文档模板w Guidelines are the rules, recommendations, and heuristics that support activities For example, modeling and programming guidelinesw Tool mentors explain how to use a

22、 specific tool to perform an activity or steps in an activity For example, building a design model using Rational Rosew Templates are predefined artifacts For example, a Rational SoDA template for a Use-Case Reportw Guidelines, tool mentors and templates make it easier to apply the process correctly

23、 and consistently40Software Project Management沈备军敏捷过程w 敏捷过程很容易适应变化并迅速做出自我调整,在保证质敏捷过程很容易适应变化并迅速做出自我调整,在保证质量的前提下,实现企业效益的最大化。量的前提下,实现企业效益的最大化。w 敏捷过程在保证软件开发有成功产出的前提下,尽量减少敏捷过程在保证软件开发有成功产出的前提下,尽量减少开发过程中的活动和制品,开发过程中的活动和制品,Just enoughJust enoughw 20012001年年2 2月,新方法的一些创始人在美国犹他州成立月,新方法的一些创始人在美国犹他州成立 Agile Agi

24、le 联盟联盟(http:/ )(http:/ )LightweightAgileXPSCRUMCrystalFDDDSDMASD dxLean Development 41Software Project Management沈备军敏捷过程的核心理念w 基于适应而非预测 Agile方法通过快速、短迭代式的开发,不断产出和演化可运行软件,根据用户的反馈信息作适应性调整,然后进入下一轮快速短迭代式开发w 以人为导向而非过程导向 努力营造诚信、开放的组织氛围,根据项目中信息流通的具体情况,按高内聚、松耦合的原则,将项目组划分为若干个小组(每个小组以不超过10人为宜,组员均在一个工作间内工作),通过

25、小组内各种渠道的沟通,来减少中间制品的工作负担,提高应变能力-Martin Fowler “New Methodology”42Software Project Management沈备军敏捷过程的12条指导原则 (1)w 在快速不断地交付用户可运行软件的过程中,将使用户满意放在第一位w 以积极的态度对待需求的变化(不管该变化出现在开发早期还是后期)w 以几周到几个月为周期,尽快、不断地交付可运行的软件供用户使用w 在项目过程中,业务人员和开发人员最好能一起工作w 以积极向上的员工为中心建立项目组,给予他们所需的环境和支持,对他们的工作予以充分的信任w 在项目组中,最有用、最有效的信息沟通手段

26、是面对面的交谈43Software Project Management沈备军敏捷过程的12条指导原则 (2)w 测量项目进展的首要依据是可运行的软件w 高度重视可持续开发w 项目发起者、开发者和用户应能始终保持步调一致w 应时刻关注技术上的精益求精和设计的合理,这样能提高软件的快速应变力w 简单化(尽可能减少不必要工作的艺术)w 最好的框架结构、需求和设计产生于自组织的项目组w 项目组要定期对其运作情况进行反思,提出改进意见,并进行相应的微调44Software Project Management沈备军敏捷过程的适用范围Martin Fowler认为:新方法不是到处可适用的适合采用敏捷过程

27、的情况:l 需求不确定、易挥发(Volatile,意指今天的要求明天就不需要了)l 有责任感和积极向上的开发人员l 用户容易沟通并能参与l十个人以下的小项目45Software Project Management沈备军极限编程(XP)w 由由Kent BeckKent Beck、Ward CunninghamWard Cunningham、Ron Ron JeffriesJeffries等人提出反响最大、最为完善的敏等人提出反响最大、最为完善的敏捷过程方法。捷过程方法。w 价值观:价值观:沟通、反馈、简化、勇气沟通、反馈、简化、勇气w 特点:特点:测试成为开发的核心测试成为开发的核心; ;纪

28、律性与灵活性巧妙结合纪律性与灵活性巧妙结合. .46Software Project Management沈备军XP项目周期 47Software Project Management沈备军XP关键做法w 现场客户(On-site Customer)w 计划博弈(Planning Game)w 系统隐喻(System Metaphor)w 简化设计(Simple Design)w 集体拥有代码(Collective Code Ownership)w 结对编程(Pair Programming)w 测试驱动(Test-driven)w 小型发布(Small Releases)w 重构(Refac

29、toring)w 持续集成(Continuous integration)w 每周40小时工作制(40-hour Weeks)w 代码规范(Coding Standards)48Software Project Management沈备军RUP与XP的共性w 基础都是面向对象方法(取代传统的结构化方法)w 都重视代码、文档的最小化和设计的简化w 采用动态适应变化的演进式迭代周期(取代传统的瀑布型生命周期)w 需求和测试驱动w 鼓励用户积极参与49Software Project Management沈备军RUP与XP的区别w XP以代码为中心,编码和设计活动融为一体,弱化了架构的概念。 w R

30、UP过程通常以架构为中心,细化阶段的主要目的就是构造出一个可运行的架构原型,作为将来添加需求功能的稳固基础。 w XP不包含业务建模、部署、过程管理等概念。w RUP适合各种规模的项目,XP只适用于小团队。50Software Project Management沈备军MSF (Microsoft Solution Framework) 4.0 软件过程w MSF for Agile Software Development 意在更加灵活,在设计上是重复的注重测试与原型、较短的开发循环与持续整合w MSF for CMMI Process Improvement注重严谨的开发流程旨在获得 CM

31、MI Level 3 Compliance Microsoft 在2005年发布51Software Project Management沈备军MSF for Agile Software Developmentw First agile process that considers the whole software lifecycle and the full software team.w Iterative and incrementalw Scenario-drivenw Small teamsw Quality of Service requirementsw Risksw Ut

32、ilizes a context-driven testing approach (based on test metric thresholds)52Software Project Management沈备军管理(Governance)53Software Project Management沈备军角色(Roles)Business Analyst Project Manager ArchitectDeveloper Tester Release Manager54Software Project Management沈备军工作项(work item)w 5 work items to a

33、ssign and track workScenarioQuality of service requirement Security, performance, and user experience TaskBugRisk 55Software Project Management沈备军MSF for CMMI Process Improvementw First agile CMMI processw Help organizations operate at Capability Maturity Model Integration (CMMI) level 3, a standard

34、 defined by the Carnegie Mellon Software Engineering Institute (SEI) w Elaborates on the MSF for Agile Software Development process More work items Extensive reportingw Does not replace process improvement infrastructure56Software Project Management沈备军过程模型Project plans approvedScope completeRelease

35、readiness approvedDeployment completeVision/scope approvedw Milestone-basedw Iterativew Flexible57Software Project Management沈备军管理(Governance)5 phases / milestones58Software Project Management沈备军角色(Roles)59Software Project Management沈备军大项目的团队Feature teamsLead teamProgramManagementReleaseOperationsPr

36、oductManagementUserExperienceDevelopmentTestCatalogProgramManagementDevelopmentTestSite Engine & DesignProgramManagementUserExperienceDevelopmentTestFulfillmentProgramManagementUserExperienceDevelopmentTestReleaseOperationsArchitectureArchitectureArchitectureArchitecture60Software Project Management

37、沈备军工作项(work item)w 7 work items to assign and track workTask Change Request Risk Review Requirement Bug Issue61Software Project Management沈备军每个阶段的主要活动(Activity)Project Plans ApprovedScope CompleteRelease Readiness ApprovedDeployment completeVision/Scope ApprovedPilot CompleteUser Acceptance Testing

38、CompletePre-Production Test CompleteRelease CandidatesZero Bug BounceBug ConvergenceTechnology ValidationFunctional Specification BaselinedMaster Plan BaselinedMaster Schedule BaselinedDevelopment and Test Environment Set UpDeployment Stable Interim MilestoneSite Deployments Complete Interim Milesto

39、neCore Components DeployedCore Team OrganizedVision/Scope DraftedProof of Concept CompleteInternal Build 1 CompleteInternal Build 2 CompleteInternal Build n Complete62Software Project Management沈备军微软软件开发的成功经验(best practice)w 以bug数据库为基础来保证质量w 产品技术开发部门的反馈w 以产品功能规格书为标准w 完成视觉效果的设计visual freezew 源程序树的锁定 lockdown source treew 源程序树的分叉fork source tree w 产品编码完成code comple

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论