软件工程——2.软件过程模型.ppt
《软件工程——2.软件过程模型.ppt》由会员分享,可在线阅读,更多相关《软件工程——2.软件过程模型.ppt(83页珍藏版)》请在沃文网上搜索。
1、软件工程Software Engineering(AnIntroduction)Chapter 2Process&Process Models回回 顾顾l克服软件危机的途径克服软件危机的途径研究软件开发的本质,消除研究软件开发的本质,消除错误的错误的认识、概念和做法;认识、概念和做法;研究先进的软件开发技术和方法,研究先进的软件开发技术和方法,推广推广使用成功的开发技术和方法;使用成功的开发技术和方法;研制使用研制使用软件工具和软件工程支持环软件工具和软件工程支持环境;境;加强软件加强软件管理管理。回回 顾顾l【IEEE】“软件软件”的定义为:计算机程的定义为:计算机程序、方法、规则、相关的文
2、档资料以及在序、方法、规则、相关的文档资料以及在计算机上运行时所必需的数据。计算机上运行时所必需的数据。虽然表面上看来在这个定义中列出了软件的虽然表面上看来在这个定义中列出了软件的5个配置成分,但是,方法和规则通常是在文个配置成分,但是,方法和规则通常是在文档中说明并在程序中实现的。档中说明并在程序中实现的。l【ISO】软件是与计算机系统操作有关的软件是与计算机系统操作有关的程序、过程、规划及任何有关的资料。程序、过程、规划及任何有关的资料。l【SEI】软件是程序及其支持该程序的安软件是程序及其支持该程序的安装,操作,修复和加强所需的各种信息和装,操作,修复和加强所需的各种信息和资料。资料。回
3、回 顾顾lThereisnouniversalaccepted,definitionofSE.“SoftwareEngineerprogrammer,whattitledoyouwant”Computer,2001,34(5)l软件工程(软件工程(SEI):软件工程指规范:软件工程指规范地应用各种工程的科学的和数学的原地应用各种工程的科学的和数学的原理与方法以经济地生产高质量的软件。理与方法以经济地生产高质量的软件。软软软软件件件件生生生生命命命命周周周周期期期期(SDLDSDLDSDLDSDLD)是是指指从从软软件件开开始始开开发发到到报报废废的的全全过过程程,亦亦称称软软软软件生存期(件生
4、存期(件生存期(件生存期(life cyclelife cyclelife cyclelife cycle)。一般用经典的。一般用经典的瀑布模型瀑布模型来描述。来描述。GB 8567GB 8567中规定,软件生命周期分为中规定,软件生命周期分为7 7个阶段:个阶段:1 1、可行性研究和项目开发计划可行性研究和项目开发计划 2 2、需求分析需求分析3 3、概要设计、概要设计 4 4、详细设计详细设计5 5、编码、编码 6 6、测试测试7 7、维护、维护在在大大部部分分文文献献中中将将生生存存周周期期划划分分为为5 5个个阶阶段段,即即要要求求定定义义、设设计计、编编码码、测测试试及及维维护护。其
5、其中中要要求求定定义义阶阶段段包包括括可可行行性性研研究究和和项项目目开开发发计计划划、需求分析,设计阶段包括概要设计和详细设计。需求分析,设计阶段包括概要设计和详细设计。为了描述软件生存期的活动,提出了多种生存期模型:为了描述软件生存期的活动,提出了多种生存期模型:例如:例如:瀑布模型瀑布模型、循环模型循环模型、演化模型、演化模型、螺旋模型螺旋模型等。等。回顾:回顾:Software Life Cycle(维护报告维护报告)开发开发时期时期运行时期运行时期计划计划时期时期(目标与范围说明书目标与范围说明书)(可行性论证论告可行性论证论告)(测试报告测试报告)(程序程序)(设计文档设计文档)(
6、需求说明书需求说明书)回回 顾顾回顾:回顾:Software Life Cycle(1)Requirements:Identify the needs of the users by interviewing them.(2)Specification or Analysis:Describe what the software system should do to meet the requirements.(3)Design:Describe how the system should perform the required tasks.回顾:回顾:Software Life Cycl
7、e(4)Implementation:Program various modules of the system.(5)Integration:Combine the modules and verify that the whole system works correctly.(6)Maintenance:Maintain the operation of the system,remove bugs as they are discovered.(7)Retirement:Migrate to a new system.回顾:回顾:Software Life CycleInputs/Ou
8、tputs of Each PhaseInputs/Outputs of Each Phase回回 顾顾可可用用性性性性性性确确正正合合算算选取适宜的开发模型选取适宜的开发模型采用合适的设计方法采用合适的设计方法提供高质量的工程支持提供高质量的工程支持重视软件工程的管理重视软件工程的管理基基本本过过程程原则原则 目标目标 过过 程程支支持持过过程程组组织织过过程程u软件工程框架软件工程框架回回 顾顾l软件工程软件工程层次化技术层次化技术质量焦点质量焦点过程过程方法方法软件工程软件工程三要素:方法、工具、过程三要素:方法、工具、过程工具工具2.1 软件过程软件过程l软件过程是软件过程是“为了获得
9、软件所需要完成的为了获得软件所需要完成的一系列任务的工作步骤一系列任务的工作步骤”。l软件过程定义了运用方法的顺序、各阶段软件过程定义了运用方法的顺序、各阶段应交付的文档资料、为保证软件质量所要应交付的文档资料、为保证软件质量所要采取的管理措施,以及标志软件开发各个采取的管理措施,以及标志软件开发各个阶段任务完成的结果形式。阶段任务完成的结果形式。l通常用使用生命周期模型来简洁地描述软通常用使用生命周期模型来简洁地描述软件过程,也称为过程模型。件过程,也称为过程模型。2.1 软件过程软件过程l软件过程软件过程是软件工程人员为了获得软件产品而在软件是软件工程人员为了获得软件产品而在软件工具的支持
10、下实施的一系列软件工程活动。工具的支持下实施的一系列软件工程活动。l软件过程软件过程应该明确定义应该明确定义团队人员的工作和职责团队人员的工作和职责所执行的活动及其顺序关系所执行的活动及其顺序关系活动的内容和步骤活动的内容和步骤l软件过程的软件过程的目标目标标准化、预见性、生产率、高质量、计划进标准化、预见性、生产率、高质量、计划进度和预算的能力度和预算的能力2.1 Software ProcesseslStructured set of activities required to deve-lop a software systemSpecificationDesign and Devel
11、opmentValidationEvolutionlActivities vary depending on the organisation and the type of system being developedlMust be explicitly modelled if it is to be managed2.2软件开发模型软件开发模型软件开发模型是软件开发全部过程、活动和软件开发模型是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全任务的结构框架。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和过程,明确规定要完成的主要活动、任务和开发策略。开发策略。
12、软件开发模型也常称为:软件开发模型也常称为:软件过程模型软件过程模型软件生存周期模型软件生存周期模型软件工程范型软件工程范型2.2软件开发模型软件开发模型q软件开发模型(又称为软件生存周期模型)软件开发模型(又称为软件生存周期模型)软件项目开发和维护的总体过程思路的框架软件项目开发和维护的总体过程思路的框架。q它它指指出出了了软软件件开开发发过过程程各各阶阶段段之之间间的的关关系系和和顺顺序序,是是软软件件开开发发过过程程的的概概括括。它它为为软软件件开开发发过过程程提提供供原原则则和和方方法法,并并为为软软件件工工程程管管理理提提供供里里程程碑碑和和进进度度表表。因因此此,软软件件开开发发模
13、模型型也也是是软软件件工程的重要内容。工程的重要内容。l软件生存期模型软件生存期模型(也称软件开发模型、软(也称软件开发模型、软件过程模型、软件工程范型)件过程模型、软件工程范型)是跨越整个是跨越整个生存期的系统开发、运作和维护所实施的生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。全部过程、活动和任务的结构框架。l所谓模型就是一种开发策略,这种策略针所谓模型就是一种开发策略,这种策略针对软件工程的各个阶段提供了一套范型,对软件工程的各个阶段提供了一套范型,使工程的进展达到预期的目的。使工程的进展达到预期的目的。2.1软件生存周期模型软件生存周期模型2.2 Software
14、 Process Model(SPM)l软件过程模型是从特定角度呈现的对软件过程的软件过程模型是从特定角度呈现的对软件过程的简化描述。简化描述。l软件过程模型是对实际过程的抽象描述,包括软软件过程模型是对实际过程的抽象描述,包括软件过程的活动、软件产品以及参与人员的不同角件过程的活动、软件产品以及参与人员的不同角色。色。l即如何组织和实施软件过程中各种任务和活动的即如何组织和实施软件过程中各种任务和活动的一种模式。一种模式。l软件过程模型(软件生存周期模型),是把软件软件过程模型(软件生存周期模型),是把软件生存周期中软件生产活动的有序流程用一个合理生存周期中软件生产活动的有序流程用一个合理的
15、框架的框架开发模型规范描述。开发模型规范描述。2.2 软件过程模型软件过程模型l生命期模型:在软件生存期中,按照预定生命期模型:在软件生存期中,按照预定的模式或步骤,使用某些特定的规则和方的模式或步骤,使用某些特定的规则和方法,配以适当的软件工具,进行软件产品法,配以适当的软件工具,进行软件产品的开发、使用和维护;是的开发、使用和维护;是SLC中所实施的中所实施的全部过程、活动和任务的结构框架。全部过程、活动和任务的结构框架。lSPM:SPM即对即对SP的抽象描述,它可以是的抽象描述,它可以是形式化的,半形式的或非形式化的。可以形式化的,半形式的或非形式化的。可以通过人员或计算机系统(过程代理
16、者)的通过人员或计算机系统(过程代理者)的实施活动来完成过程模型所描述的软件过实施活动来完成过程模型所描述的软件过程。(人们对程。(人们对SP的一种认识观)的一种认识观)2.2 软件过程模型软件过程模型l软件过程模型主要是根据软件的类软件过程模型主要是根据软件的类型、规模,特别是软件的开发方法、型、规模,特别是软件的开发方法、开发环境等多种因素确立模型。开发环境等多种因素确立模型。l给出一种组织和开展给出一种组织和开展SLC中各种活中各种活动的方案,包括把动的方案,包括把SLC划分为那些划分为那些阶段,阶段间的关系,每阶段做什阶段,阶段间的关系,每阶段做什么,用什么方法来做,如何管理和么,用什
17、么方法来做,如何管理和检查等等。检查等等。2.2 软件过程模型软件过程模型2.2 软件过程模型软件过程模型l软件过程模型软件过程模型一个过程模型是一个一个过程模型是一个过程的抽象表示。过程的抽象表示。过程模型帮助我们更过程模型帮助我们更好地理解软件开发。好地理解软件开发。模型帮助我们解释事模型帮助我们解释事物如何工作。物如何工作。2.2软件开发模型软件开发模型q软件开发模型的几种类型:软件开发模型的几种类型:以软件需求完全确定为基础的瀑布模型;以软件需求完全确定为基础的瀑布模型;在开发初期仅给出基本需求的渐进式模型,如原型在开发初期仅给出基本需求的渐进式模型,如原型模型、螺旋模型、喷泉模型等;
18、模型、螺旋模型、喷泉模型等;以形式化开发方法为基础的变换模型、基于四代技以形式化开发方法为基础的变换模型、基于四代技术的模型;术的模型;基于知识的智能模型等等。基于知识的智能模型等等。在实际开发时,应根据项目的特点和现有的条件选在实际开发时,应根据项目的特点和现有的条件选取合适的模型,也可以把几种模型组合起来使用以取合适的模型,也可以把几种模型组合起来使用以便充分利用各模型的优点。便充分利用各模型的优点。2.2 软件过程模型软件过程模型l典型的软件过程模型有:典型的软件过程模型有:瀑布模型(瀑布模型(waterfallmodel)原型模型(原型模型(prototypingmodel)增量模型(
19、增量模型(incrementalmodel)演化模型(演化模型(evolutionarymodel)螺旋模型(螺旋模型(spiralmodel)喷泉模型(喷泉模型(waterfountainmodel)基于构件的开发模型(基于构件的开发模型(component-baseddevelopmentmodel)形式方法模型(形式方法模型(formalmethodsmodel)智能模型智能模型(IntelligentModel)2.2.1瀑布模型瀑布模型瀑布模型(瀑布模型(waterfallmodel)是由是由W.Royce于于1970年提出来的。又称为软件生存周期模年提出来的。又称为软件生存周期模型
20、。型。q瀑布模型严格按照软件生存周期各个阶段来瀑布模型严格按照软件生存周期各个阶段来进行开发,上一阶段的输出即是下一阶段的进行开发,上一阶段的输出即是下一阶段的输入,并强调每一阶段的严格性。它规定了输入,并强调每一阶段的严格性。它规定了各阶段的任务和应提交的成果及文档,每一各阶段的任务和应提交的成果及文档,每一阶段的任务完成后,都必须对其阶段性产品阶段的任务完成后,都必须对其阶段性产品(主要是文档)进行评审,通过后才能开始(主要是文档)进行评审,通过后才能开始下一阶段的工作。因此,它是一种以文档作下一阶段的工作。因此,它是一种以文档作为驱动的模型。为驱动的模型。开发开发时期时期运行运行时期时期
21、计划计划时期时期(目标与范围说明书目标与范围说明书)(可行性论证论告可行性论证论告)(维护报告维护报告)(测试报告测试报告)(程序程序)(设计文档设计文档)(需求说明书需求说明书)2.2.1 瀑布模型瀑布模型图图1.3瀑布模型瀑布模型2.2.1 waterfall modellThe linear Sequential2.2.1 瀑布模型瀑布模型l传统的瀑布模型过于理想化,事传统的瀑布模型过于理想化,事实上,人在工作过程中不可能不实上,人在工作过程中不可能不犯错误,评审也并不能保证发现犯错误,评审也并不能保证发现所有错误,潜伏的错误将在后续所有错误,潜伏的错误将在后续阶段被陆续发现。在设计阶段
22、可阶段被陆续发现。在设计阶段可能发现规格说明文档中的错误,能发现规格说明文档中的错误,而设计上的缺陷或错误可能在实而设计上的缺陷或错误可能在实现过程中显现出来,在综合测试现过程中显现出来,在综合测试阶段将发现需求分析、设计或编阶段将发现需求分析、设计或编码阶段的许多错误。发现错误就码阶段的许多错误。发现错误就必须及时改正,因此,实际的瀑必须及时改正,因此,实际的瀑布模型是带布模型是带“反馈环反馈环”的。(图的。(图中实线箭头表示开发过程,虚线中实线箭头表示开发过程,虚线箭头表示维护过程)。箭头表示维护过程)。2.2.1 瀑布模型瀑布模型1)1)把生存期划分成明确的、把生存期划分成明确的、严格的
23、顺序阶段;严格的顺序阶段;2)2)只有在前阶段的阶段性只有在前阶段的阶段性产品完成后,才能开始产品完成后,才能开始下一阶段的工作;下一阶段的工作;3)3)每一阶段都要配合生成每一阶段都要配合生成相应的具体文档;相应的具体文档;4)4)每个阶段的结束都要经每个阶段的结束都要经过严格的复审和确认。过严格的复审和确认。2.2.1 瀑布模型需求分析需求分析7%系统设计系统设计6%软件编程软件编程7%软件测试软件测试13%软件维护软件维护67%用户要求用户要求分析报告分析报告系统设计报告系统设计报告源程序源程序测试报告测试报告更改要求更改要求UAMATMMPUTPUAMPA A 系统分析员系统分析员M
24、M 项目管理员项目管理员P P 程序员程序员T T 高级程序员高级程序员U U 用户用户20%20%15%45%2.2.1 瀑布模型瀑布模型l瀑布模型要点瀑布模型要点把生存期划分成明确的、严格的顺序阶段;把生存期划分成明确的、严格的顺序阶段;只有在前阶段的阶段性产品完成后,才能只有在前阶段的阶段性产品完成后,才能开始下一阶段的工作;开始下一阶段的工作;每一阶段都要配合生成相应的具体文档,它每一阶段都要配合生成相应的具体文档,它们类似于其它工程中的图纸资料,是下一阶们类似于其它工程中的图纸资料,是下一阶段工作的依据,极为重要;段工作的依据,极为重要;每个阶段的结束都要经过一个定性或定量每个阶段的
25、结束都要经过一个定性或定量的复审和确认。的复审和确认。2.2.1 瀑布模型瀑布模型q瀑布模型优点瀑布模型优点q提供了软件开发的基本框架,有利于大型软件开发提供了软件开发的基本框架,有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和过程中人员的组织、管理,有利于软件开发方法和工具的研究与使用,因此,在软件工程中占有重要工具的研究与使用,因此,在软件工程中占有重要的地位。的地位。q瀑布模型是软件工程中应用最广泛的过程模型。瀑布模型是软件工程中应用最广泛的过程模型。q严格规定了每一阶段必须提交的文档。严格规定了每一阶段必须提交的文档。q要求每一阶段交付之产品都必须经过质量保证小组要求每一
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 软件 过程 模型