资源预览内容
第1页 / 共29页
第2页 / 共29页
第3页 / 共29页
第4页 / 共29页
第5页 / 共29页
第6页 / 共29页
第7页 / 共29页
第8页 / 共29页
第9页 / 共29页
第10页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
软件工程实践软件工程实践软件学院高海昌hchgaoxidian.edu.cnOperating SystemsGao Haichang , Software School, Xidian University2内容内容1. 1. 概述概述2. 2. 软件过程和生命周期软件过程和生命周期3. 3. 项目管理项目管理4. 4. 需求工程需求工程5. 5. 软件设计软件设计6. 6. 软件实现软件实现7. 7. 软件测试软件测试8. 8. 软件交付软件交付Operating SystemsGao Haichang , Software School, Xidian University3软件开发过程软件开发过程FIEEE给给过程过程下的定义:过程描述了针对一个给定下的定义:过程描述了针对一个给定目标的一系列操作步骤,操作步骤说明有哪些操目标的一系列操作步骤,操作步骤说明有哪些操作以及按照何种方式来执行操作。作以及按照何种方式来执行操作。 F软件开发过程应该明确定义以下元素:软件开发过程应该明确定义以下元素:(1) 过程中所执行的活动及其顺序关系。(2) 每一个活动的内容和步骤。(3) 团队人员的工作和职责Operating SystemsGao Haichang , Software School, Xidian University4软件开发过程软件开发过程F软件开发一共包括七个过程:软件开发一共包括七个过程:获取过程供应过程开发过程操作过程维护过程管理过程支持过程Operating SystemsGao Haichang , Software School, Xidian University5软件开发过程模型软件开发过程模型F常见的软件开发过程模型包括:常见的软件开发过程模型包括:瀑布模型快速原型模型增量模型迭代模型螺旋模型RUP (Rational Unified Process)Operating SystemsGao Haichang , Software School, Xidian University6瀑布模型瀑布模型F要求软件项目的开发严格按照软件生命周期的方要求软件项目的开发严格按照软件生命周期的方式进行式进行F特点:特点:分阶段阶段间有因果关系评审允许反馈Operating SystemsGao Haichang , Software School, Xidian University7瀑布模型瀑布模型F优点:优点:严格规范软件开发过程,克服了非结构化的编码和修改过程的缺点强调文档的作用,要求每个阶段都要仔细验证F缺点:缺点:各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,中间提出的变更要求很难响应早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果Operating SystemsGao Haichang , Software School, Xidian University8快速原型模型快速原型模型F允许在需求分析阶段对软件的需求进行允许在需求分析阶段对软件的需求进行初步初步的分的分析和定义析和定义Operating SystemsGao Haichang , Software School, Xidian University9快速原型模型快速原型模型F优点:优点:不需要需求预先完备定义支持用户参与软件项目的开发过程F缺点:缺点:需要多次迭代,无法预知次数,给项目管理带来困难快速建立起来的系统结构加上连续的修改可能会导致产品质量低下Operating SystemsGao Haichang , Software School, Xidian University10增量模型增量模型F与瀑布模型类似,但软件系统是被增量式地一块与瀑布模型类似,但软件系统是被增量式地一块块开发的块开发的Operating SystemsGao Haichang , Software School, Xidian University11增量模型增量模型F优点:优点:各模块可以并行开发较好地适应需求的变化,用户可以不断地看到所开发软件的可运行中间版本重要功能被首先交付,从而使其得到最多的测试F缺点:缺点:容易退化为边做边改的方式,从而使软件过程的控制失去整体性Operating SystemsGao Haichang , Software School, Xidian University12迭代模型迭代模型F通过多次逐步的迭代,建立软件系统,每次迭代通过多次逐步的迭代,建立软件系统,每次迭代都是一个相对独立的软件过程都是一个相对独立的软件过程Operating SystemsGao Haichang , Software School, Xidian University13迭代模型迭代模型F优点:优点:能够较好地适应需求难以确定、不断变更的软件系统的开发F缺点:缺点:迭代次数难以事先确定,增加了过程管理的复杂度Operating SystemsGao Haichang , Software School, Xidian University14螺旋模型螺旋模型F结合了瀑布模型、快速原型模型和迭代模型的思结合了瀑布模型、快速原型模型和迭代模型的思想,并引入了风险分析活动。想,并引入了风险分析活动。F每个循环迭代都包含每个循环迭代都包含4个阶段:个阶段:制定计划风险分析设计实施用户反馈Operating SystemsGao Haichang , Software School, Xidian University15螺旋模型螺旋模型F优点:优点:以风险驱动开发过程,强调可选方案和约束条件从而支持软件的重用关注于早期错误的消除,将软件质量作为特殊目标融入产品开发之中F缺点:缺点:要求许多客户接受和相信风险分析并做出相关反应是不容易的,往往适应于内部的大规模软件开发需要软件开发人员具备风险分析和评估的经验,否则将会带来更大的风险Operating SystemsGao Haichang , Software School, Xidian University16RUP模型模型FRUP (Rational Unified Process)统一软件过程。统一软件过程。F由由 Ivar Jacobson的的 The Objectory Approach 和和 The Rational Approach 发展而来,是一个文档化发展而来,是一个文档化的软件工程产品,所有的软件工程产品,所有RUP 的实施细节及方法导的实施细节及方法导引均以引均以Web文档的方式呈现。文档的方式呈现。FRUP又是一套软件工程方法框架,各个组织可根又是一套软件工程方法框架,各个组织可根据自身的实际情况,以及项目规模对据自身的实际情况,以及项目规模对RUP进行裁进行裁剪和修改,以制定出合乎需要的软件工程过程。剪和修改,以制定出合乎需要的软件工程过程。 Operating SystemsGao Haichang , Software School, Xidian University17RUP模型模型F在在RUP中,软件开发生生命周期根据中,软件开发生生命周期根据时间时间和和RUP的的核心工作流核心工作流划分为二维空间。划分为二维空间。F时间维从组织管理的时间维从组织管理的角度描述整个软件开角度描述整个软件开发生命周期,是发生命周期,是RUP的动态组成部分。的动态组成部分。F核心工作流从技术角核心工作流从技术角度描述度描述RUP的静态组的静态组成部分。成部分。 Operating SystemsGao Haichang , Software School, Xidian University18RUP模型模型FRUP有九个核心的工作流:有九个核心的工作流:业务建模(Business Modeling):理解待开发系统的组织结构及其业务运作,确保所有参与人员对待开发系统有共同的认识需求分析(Requirements):定义系统功能及用户界面,使客户知道系统的功能,开发人员知道系统的需求,为项目预算及计划提供基础。分析与设计(Analysis and Design):把需求分析的结果转化为实现规格。实现(Implementation):定义代码的组织结构、实现代码、单元测试、系统集成。测试(Test):校验各自子系统的交互与集成。确保所有的需求被正确实现并在系统发布前发现错误。发布(Deployment):打包、分发、安装软件,升级旧系统;培训用户及销售人员,并提供技术支持。制定并实施beta测试。配置管理(Configuration and Change Management):跟踪并维护系统所有产品s的完整性和一致性。项目管理(Project Management):为计划、执行和监控软件开发项目提供可行性的指导;为风险管理提供框架。环境(Environment):为组织提供过程管理和工具的支持。Operating SystemsGao Haichang , Software School, Xidian University19RUP模型模型F在时间维上,为了能够方便地管理软件开发过程,监控软在时间维上,为了能够方便地管理软件开发过程,监控软件开发状态,件开发状态,RUP把软件开发周期划分为若干把软件开发周期划分为若干Cycles,每每个个Cycle生成一个产品的新的版本。每个生成一个产品的新的版本。每个Cycle都依次由四都依次由四个连续的阶段个连续的阶段(phase)组成:组成:起始阶段(Inception):定义最终产品视图、商业模型并确定系统范围。演化阶段(evaluation):设计及确定系统的体系结构,制定工作计划及资源要求。构造阶段(construction):构造产品并继续演进需求、体系结构、计划直至产品提交。提交阶段(Transition ):把产品提交给用户使用。Operating SystemsGao Haichang , Software School, Xidian University20RUP模型特点模型特点F具有迭代式的增量开发、使用实例驱动、具有迭代式的增量开发、使用实例驱动、 以软件以软件体系结构为核心三个鲜明特点,这使得体系结构为核心三个鲜明特点,这使得RUP非常非常适宜于开发复杂、技术难度大、需求多变、高风适宜于开发复杂、技术难度大、需求多变、高风险的项目。险的项目。F又是可裁剪的软件开发过程框架,各组织可以根又是可裁剪的软件开发过程框架,各组织可以根据自身及项目特点对据自身及项目特点对RUP进行裁减,在某些情况进行裁减,在某些情况下下RUP甚至可以蜕化为瀑布式开发模型。甚至可以蜕化为瀑布式开发模型。 Operating SystemsGao Haichang , Software School, Xidian University21各种软件过程模型的特点各种软件过程模型的特点模型名称模型名称技术特点技术特点适用范围适用范围瀑布模型瀑布模型简单,分阶段,阶段间存在因果关系,各个阶段简单,分阶段,阶段间存在因果关系,各个阶段完成后都有评审,允许反馈,不支持用户参与,完成后都有评审,允许反馈,不支持用户参与,要求预先确定需求要求预先确定需求需求易于完善定义且不易变更的软需求易于完善定义且不易变更的软件系统件系统快速原型快速原型不要求需求预先定义,支持用户参与,支持需求不要求需求预先定义,支持用户参与,支持需求的渐进式完善和确认,能够适应用户需求的变化的渐进式完善和确认,能够适应用户需求的变化需求复杂、难以确定、动态变化的需求复杂、难以确定、动态变化的软件系统软件系统增量模型增量模型软件产品是被增量式地一块块开发的,允许开发软件产品是被增量式地一块块开发的,允许开发活动并行和重叠活动并行和重叠技术风险较大、用户需求较为稳定技术风险较大、用户需求较为稳定的软件系统的软件系统迭代模型迭代模型不要求一次性地开发出完整的软件系统,将软件不要求一次性地开发出完整的软件系统,将软件开发视为一个逐步获取用户需求、完善软件产品开发视为一个逐步获取用户需求、完善软件产品的过程的过程需求难以确定、不断变更的软件系需求难以确定、不断变更的软件系统统螺旋模型螺旋模型结合瀑布模型、快速原型模型和迭代模型的思想,结合瀑布模型、快速原型模型和迭代模型的思想,并引进了风险分析活动并引进了风险分析活动需求难以获取和确定、软件开发风需求难以获取和确定、软件开发风险较大的软件系统险较大的软件系统RUPRUP可改造、扩展和剪裁,可以对它进行设计、开发、可改造、扩展和剪裁,可以对它进行设计、开发、维护和发布,强调迭代开发维护和发布,强调迭代开发复杂和需求难以获取和确定的软件复杂和需求难以获取和确定的软件系统,软件开发项目组拥有丰富的系统,软件开发项目组拥有丰富的软件开发和管理经验软件开发和管理经验Operating SystemsGao Haichang , Software School, Xidian University22定义软件过程定义软件过程F在实施软件项目之前,必须定义或者选择一个适在实施软件项目之前,必须定义或者选择一个适合于该软件项目的软件过程合于该软件项目的软件过程Operating SystemsGao Haichang , Software School, Xidian University23步骤步骤1F选择合适的软件过程模型,需要考虑:选择合适的软件过程模型,需要考虑:软件开发组织和软件项目的特征软件项目的风险软件项目是否需要预先向用户展示原型需要多少经验和技巧来成功地使用软件过程模型软件开发组织和软件项目组人员的经验和能力技术的成熟度Operating SystemsGao Haichang , Software School, Xidian University24步骤步骤2F确定和描述软件开发活动,需要从以下几个方面确定和描述软件开发活动,需要从以下几个方面予以定义和描述:予以定义和描述:名称:说明软件开发活动的名称任务:说明该软件开发活动的任务输入:说明实施该活动所必需的输入u,即开展活动所需满足的前提条件输出:说明该活动实施完成之后所产生的结果实施:说明如何实施该活动Operating SystemsGao Haichang , Software School, Xidian University25步骤步骤F确定和描述软件开发活动间的关系:确定和描述软件开发活动间的关系:执行时序关系:描述软件开发活动之间执行时间的先后关系逻辑依赖关系:一个软件开发活动的执行需要其他软件开发活动实施所产生的结果Operating SystemsGao Haichang , Software School, Xidian University26步骤步骤F文档化软件过程文档化软件过程全面:包含软件项目开发所需要的所有软件活动可操作:各个软件开发活动应易于实施简洁、易于理解:不包含无意义的软件开发活动,描述简洁,易于理解易于改进:能够不断对软件开发活动进行改进和提高Operating SystemsGao Haichang , Software School, Xidian University27步骤步骤F评审软件过程评审软件过程是否全面是否正确和准确是否符合软件开发组织和软件项目的特点描述是否简洁、直观,易于理解是否易于改进Operating SystemsGao Haichang , Software School, Xidian University28步骤步骤F认可、发布和培训认可、发布和培训Operating SystemsGao Haichang , Software School, Xidian University29任务任务F针对所选案例,根据第二章(过程模型及生命期)针对所选案例,根据第二章(过程模型及生命期)所学内容,参考教材所学内容,参考教材97页的例子,撰写所开发项页的例子,撰写所开发项目的目的开发过程模型开发过程模型。
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号