软件过程解析课件_第1页
软件过程解析课件_第2页
软件过程解析课件_第3页
软件过程解析课件_第4页
软件过程解析课件_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

1、软件工程第02章 软件过程2022/10/1512022/10/151软件工程第02章 软件过程2022/10/11120目标软件过程和软件过程模型的概念;三个一般的软件过程模型及何时可以使用它们;软件需求工程、软件开发、测试和进化中所涉及的活动概貌;理解为什么软件过程要有效地组织以应对软件需求和设计上的变更;Rational统一过程如何集成好的软件过程实践来产生一个现代的一般过程模型;22022/10/152022/10/152目标软件过程和软件过程模型的概念;22022/10/1120内容软件过程模型过程活动应对变更Rational统一过程32022/10/152022/10/153内容软

2、件过程模型32022/10/112022/10/113软件过程一个软件过程是一组引发软件产品生产的活动。软件描述;软件设计和实现;软件有效性验证;软件进化;软件过程模型-软件过程的抽象表示法。每个过程模型从一个特定的角度表现一个过程,只提供过程的某一侧面的信息。42022/10/152022/10/154软件过程一个软件过程是一组引发软件产品生产的活动。42022软件过程描述过程描述包括:产品,这是软件过程活动的结果。角色,反映人在软件过程的职责。前置和后置条件,是指一个过程活动执行前后或产品生产的前后,陈诉语句为真。2022/10/155软件过程描述过程描述包括:2022/10/115计划驱

3、动过程和敏捷过程计划驱动的过程是提前计划好所有的过程活动,然后按计划去考核过程的执行。在敏捷过程中,计划是增量式的,而且很容易根据不断变化的客户需求变更过程。实际应用中,大多数过程都同时包含计划驱动和敏捷方法。没有所谓好的或坏的的软件过程2022/10/156计划驱动过程和敏捷过程计划驱动的过程是提前计划好所有的过程活2.1 通用软件过程模型瀑布模型使用单独的过程阶段(如需求描述,软件设计,实现和测试等阶段)表现这些活动。增量式开发需要分析,设计与验证都是交错进行。面向复用的软件工程这个方法是基于已存在的很多可复用的组件。这三个模型相互不排斥,而且经常一起使用,尤其是对大型系统的开发。7202

4、2/10/152022/10/1572.1 通用软件过程模型瀑布模型72022/10/11202瀑布模型82022/10/15需求分析和定义系统和软件设计实现和单元测试集成和系统测试运行和维护2022/10/158瀑布模型82022/10/11需求分析和定义系统和软件设计实瀑布模型阶段瀑布模型也可以看成是软件的生命周期模型,它是计划驱动的软件过程的实例,也就是说,在开始工作之前,你必须对所有的过程活动制定计划并给出进度安排。瀑布模型中的主要活动包括:需求分析和定义系统和软件设计实现和单元测试集成和系统测试运行和维护92022/10/152022/10/159瀑布模型阶段瀑布模型也可以看成是软件

5、的生命周期模型,它是计划瀑布模型阶段每个阶段的结果是一个或多个经过核准的文件。直到上一个阶段完成,下一个阶段才能启动。在实际过程中,这些阶段经常是重叠和彼此间有信息交换的。生成和确认文档的成本很高,反复是昂贵且十分费事,但又在所难免。依据不同的项目需要采取不同的处理方法。102022/10/152022/10/1510瀑布模型阶段每个阶段的结果是一个或多个经过核准的文件。102瀑布模型的问题不能灵活划分为不同的阶段,难以应对不断变化的客户需求。只有在全面理解了需求,而且在系统开发过程中不太可能发生重大改变的时候,可以采用瀑布模型。 很少有商业系统有稳定的要求。适合大型系统工程项目瀑布模型反映了

6、在其他工程项目中使用的过程模型类型。112022/10/152022/10/1511瀑布模型的问题不能灵活划分为不同的阶段,难以应对不断变化的客2.1.2 增量式开发122022/10/15框架描述描述开发有效性验证初始版本中间版本最终版本2022/10/15122.1.2 增量式开发122022/10/11框架描述描述开增量式开发(一)是敏捷方法的一个基本部分,对于商务、电子商务和个人系统来说更加适合探索式开发 其目标是与用户一起工作,共同探索系统需求,直到最后交付系统。抛弃式原型这种开发方法的目标是理解用户需求,然后再给出系统的一个较好的需求定义。132022/10/152022/10/1

7、513增量式开发(一)是敏捷方法的一个基本部分,对于商务、电子商务增量式开发的优点降低了适应用户需求变更的成本重新分析和修改文档的工作量较之瀑布模型要少很多在开发过程中更容易得到用户对于已做的开发工作的反馈意见用户可以评价软件的实现版本,并可以看到已实现了多少使更快的交付和部署有用的软件到客户方成为可能相比瀑布模型,用户可以更早地使用软件并创造商业价值2022/10/1514增量式开发的优点降低了适应用户需求变更的成本2022/10/增量式开发的问题过程不可见;频繁文档交互伴随新功能增加,系统结构逐渐退化,导致结构通常较差;重构适用性小型或中型的交互式系统;大型系统的部件;生命周期比较短的系统

8、。152022/10/152022/10/1515增量式开发的问题过程不可见;152022/10/1120222.1.3 面向复用的软件工程面向复用的方法依赖可以存取的可复用软件组件以及能集成这些组件的框架。这些组件本身就是一个独立的能满足某种需要的系统(COTS或商业现成产品系统)。过程阶段组件分析;需求修改;使用复用的系统设计; 开发和集成;162022/10/152022/10/15162.1.3 面向复用的软件工程面向复用的方法依赖可以存取的可面向复用开发172022/10/15需求描述组件分析需求修改使用复用的系统设计开发和集成系统有效性验证2022/10/1517在需求描述的基础上

9、,搜寻能满足需求的组件。通常情况下,正好合适的组件很难获得。根据得到的组件信息分析需求,然后修改需求以反映可得到的组件。当需求修改无法做到的时候,就需要考虑其他替代方案。设计系统的框架或者重复使用一个已存在的框架。组件不能买到就需要自己开发,然后集成这些组件(自己开发和购买的)。面向复用开发172022/10/11需求描述组件分析需求修改软件组件类型通过标准服务开发的Web 服务,可用于远程调用。对象的集合,作为一个包和组件框架。如.NET或者J2EE 等集成在一起。独立的软件系统,通过配置在特定的环境下使用。2022/10/1518软件组件类型通过标准服务开发的Web 服务,可用于远程调用。

10、面向复用模型的特点优势是减少了需要开发的软件数量,这样可降低开发成本,自然降低开发中的风险。可使软件快速交付。由于需求妥协不可避免,这样可能导致交付的系统不符合用户真正的需要。对系统进化的控制能力降低或失效,因为可复用的组件新版本可能不受机构的控制。2022/10/1519面向复用模型的特点优势是减少了需要开发的软件数量,这样可降低2.2 过程活动软件过程是交织着技术、协作、管理等内容的一个活动序列,围绕一个总的目标:软件描述软件设计和实现软件有效性验证软件进化202022/10/152022/10/15202.2 过程活动软件过程是交织着技术、协作、管理等内容的一2.2.1 软件描述软件描述

11、或需求工程主要是理解并定义系统需要哪些服务以及找出开发和运行期间受到哪些约束。需求工程过程有四个主要的阶段:可行性研究需求导出和分析需求描述需求有效性验证212022/10/152022/10/15212.2.1 软件描述软件描述或需求工程主要是理解并定义系统需需求工程过程222022/10/15可行性研究可行性报告需求导出和分析系统模型需求描述需求有效性验证用户需求和系统需求需求文档2022/10/1522需求工程过程222022/10/11可行性研究可行性报告需求2.2.2 软件设计和实现软件开发的实现阶段是把系统描述转换成一个可运行的系统的过程。软件设计是对实现软件的结构,系统的数据,系

12、统组件间的接口以及所用的算法的描述。软件实现是对上述设计转化为可执行的程序。设计和实现活动是联系紧密的,有时还是重叠和交叉的。232022/10/152022/10/15232.2.2 软件设计和实现软件开发的实现阶段是把系统描述转换设计过程的通用模型2022/10/1524设计过程的通用模型2022/10/1124设计过程活动体系结构设计识别系统的总体结构、基本组件、它们之间的关系以及它们是怎样分布的。接口设计定义系统组件之间的接口。组件设计针对每个系统组件设计它的运行方式。数据库设计设计系统数据结构,以及如何在数据库中表示这些数据结构。252022/10/152022/10/1525设计过

13、程活动体系结构设计252022/10/112022/12.2.3 软件有效性验证软件有效性验证,或更一般地称为检验和有效性验证,是要看系统是否符合它的描述以及系统是否符合客户的预期目标。包括检查过程和从用户需求定义到程序开发的每个软件过程阶段。绝大多数的有效性验证成本发生在系统完成过程中和完成之后(测试环节)。262022/10/152022/10/15262.2.3 软件有效性验证软件有效性验证,或更一般地称为检验测试过程272022/10/152022/10/1527测试过程272022/10/112022/10/1127测试阶段组件(或单元)测试测试单个的组件,以确保其操作的正确性。独立

14、地测试每个组件,而不受其他系统组件的影响。系统测试测试系统的总体特性。 接收测试用客户提供的真实数据测试系统。282022/10/152022/10/1528测试阶段组件(或单元)测试282022/10/112022/测试阶段292022/10/15需求描述 模块,单元,代码,测试系统描述系统设计详细设计接收测试计划系统集成测试计划子系统集成测试计划子系统集成测试系统集成测试接收测试服务2022/10/1529测试阶段292022/10/11需求描述 模块,单元,系2.2.4 软件进化软件本身是灵活的,可以改变的。 由于不断变化的业务需求,通过改变该软件支持的业务也必须发展和变化。不再将软件工

15、程看做开发和维护两个完全独立的过程,而是将其看做一个进化过程,即软件在其生命周期内不断地随着需求的变化而变更的进化式过程。302022/10/152022/10/15302.2.4 软件进化软件本身是灵活的,可以改变的。 3020系统进化312022/10/152022/10/1531系统进化312022/10/112022/10/11312.3 应对变更在大型项目中,变更是无法避免的业务的改变新技术的出现平台的变化变更增加了软件开发的成本分析、设计和实现2022/10/15322.3 应对变更在大型项目中,变更是无法避免的2022/10降低返工成本变更避免,软件过程中预测变更的活动原型系统开

16、发,要先给客户看系统的一些重要特征。变更容忍,设计过程使得变更以比较低的成本得到处理增量式开发。2022/10/1533降低返工成本变更避免,软件过程中预测变更的活动2022/102.3.1 原型构造原型是一个软件系统的最初版本,用于验证概念、试用设计选项、发现更多的问题和可能的解决方法。软件原型使用需求工程过程中,原型有助于启发和验证系统需求系统设计过程,原型探索特定软件的解决方案,支持用户接口设计测试过程中,执行回归测试2022/10/15342.3.1 原型构造原型是一个软件系统的最初版本,用于验证概原型的作用提高系统的可用性贴近用户的真实要求提高设计质量提高系统可维护性减少开发难度20

17、22/10/1535原型的作用提高系统的可用性2022/10/1135原型开发过程2022/10/1536建立原型目标包括用户界面、验证需求、可行性验证等。定义原型功能从成本和进度方面考虑要开发的原型及原型该放弃的非功能需求开发原型程序的可依赖性和质量方面的标准可以降低,忽略部分错误处理评估原型建立原型评估标准,对照目标要求进行评估。原型开发过程2022/10/1136建立原型目标定义原型功能原型的开发基于快速原型语言或工具可能剔除一些功能关注于那些不是理解很清楚的区域错误检测和系统恢复一般不包括在原型中关注功能性的需求,而不是非功能性的需求,如,可靠性、安全性2022/10/1537原型的开

18、发基于快速原型语言或工具2022/10/1137抛弃式原型抛弃式原型不能当做正式的系统交付给用户,因为不可能调整原型以满足非功能性的要求原型系统没有完整的文档原型开发过程中的变更可能会破坏系统的结构原型系统一般不满足质量标准2022/10/1538抛弃式原型抛弃式原型不能当做正式的系统交付给用户,因为2022.3.2 增量式交付在增量开发过程中,客户大概地提出系统需要提供的服务,指明哪些服务是最重要的,哪些是最不重要的。当一系列交付增量被确定,每个增量提供系统功能的一个子集。对增量中服务的分配取决于服务的优先次序,最高优先权的服务首先被交付。392022/10/152022/10/15392.

19、3.2 增量式交付在增量开发过程中,客户大概地提出系统需增量式交付402022/10/15定义框架需求对增量指定需求设计系统体系结构开发系统增量增量有效性验证增量集成系统有效性验证2022/10/1540部署增量最终系统系统完成系统未完成增量式交付402022/10/11定义框架需求对增量指定需求增量式开发的好处客户无需等到整个系统的实现。客户可以将早期的增量作为原形,从中获得对后面系统增量的需求经验。项目总体性失败的风险比较低。因为具有最高优先权的服务被首先交付,而后面的增量也不断被集成进来,这就使得最重要的系统服务肯定接受了最多的测试。412022/10/152022/10/1541增量式

20、开发的好处客户无需等到整个系统的实现。412022/1增量式交付的问题大多数系统需要一组基础设施,增量式开发很难确定全体增量所需要的公用设施。开发替换系统时,迭代开发比较困难。因为要替代的旧系统的功能无法在增量式开发的最初得以交互,用户会很难接受。软件描述和软件本身一起开发是迭代的本质,但实际实现比较难。2022/10/1542增量式交付的问题大多数系统需要一组基础设施,增量式开发很难确2.3.3 Boehm 螺旋模型它不是将软件过程用一系列活动和活动间的回溯来表示,而是将过程用螺旋线表示。在螺旋线中,每个回路表示软件过程的一个阶段。 最里面的回路可能与系统可行性有关,下一个回路与系统需求定义

21、有关,再下一个回路与系统设计有关。432022/10/152022/10/15432.3.3 Boehm 螺旋模型它不是将软件过程用一系列活动软件过程的螺旋模型442022/10/152022/10/1544软件过程的螺旋模型442022/10/112022/10/1螺旋式模型回路螺旋开发中螺旋线中每个回路被分成四个部分:目标设置;风险评估和规避;开发和有效性验证;规划 螺旋式模型和其他软件过程模型之间的重要区别在于,螺旋式模型中的风险考虑是明确的。452022/10/152022/10/1545螺旋式模型回路螺旋开发中螺旋线中每个回路被分成四个部分:452.4 Rational 统一过程Ra

22、tional统一过程是现代过程模型的一个实例,该现代过程模型来自于UML上的工作以及相关的统一软件开发过程。.一般从三个视角来描述:动态视角,给出模型随时间所经历的各个阶段;静态视角,给出所规定的过程活动;实践视角,建议在过程中采用好的实践实例。462022/10/152022/10/15462.4 Rational 统一过程Rational统一过程是RUP 中的各阶段472022/10/15阶段反复开端细化构造转换2022/10/1547RUP 中的各阶段472022/10/11阶段反复开端细化构RUP 中的阶段开端目标是建立系统的一个业务案例。细化目标是增进对问题域的理解,建立系统的体系框架,给出项目计划并识别关键项目风险。构造主要关心的是系统设计,编程和测试。转换关注如何将系统从开发单位转移到用户单位,并使之在真实环境中工作。482022/10/152022/10/1548RUP 中的阶段开端482022/10/112022/10/RUP迭代阶段内迭代跨阶段迭代2022/10/1549RUP迭代阶段内迭代2022/10/1149RUP 的静态工作流502022/10/15工作流描述业务建模使用业务用例对业务过程进行建模。需求找出与系统进行交互的参与者并开发用例完成对系统需求的建模。分析和设计使用体系结构模型、组

温馨提示

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

评论

0/150

提交评论