《软件工程-2软件生命周期与模型36038.pptx》由会员分享,可在线阅读,更多相关《软件工程-2软件生命周期与模型36038.pptx(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件工程软件工程王王 勇勇1个人介绍个人介绍王王 勇勇Tel:13808669081Email:地理信息系统软件开发地理信息系统软件开发网格与分布式系统网格与分布式系统地理信息系统网格地理信息系统网格软件过程改进软件过程改进2本章学习内容本章学习内容1掌握软件的生命周期的概念掌握软件的生命周期的概念2掌握各种生命周期模型的特点与适用范围掌握各种生命周期模型的特点与适用范围3软件的过程软件的过程过程过程一系列按顺序组成的任务叫作过程一系列按顺序组成的任务叫作过程这些一些列的步骤涉及:活动、限制、资源这些一些列的步骤涉及:活动、限制、资源等等一个过程涉及一系列的工具和技术一个过程涉及一系列的工具和
2、技术4软件的过程软件的过程过程具有的特点过程具有的特点1.1.过程规定了所有主要活动过程规定了所有主要活动2.2.过程利用资源产生中间产品和最终产品,过程利用资源产生中间产品和最终产品,同时受同时受一定限制一定限制3.3.过程可以由子过程组成过程可以由子过程组成4.4.每个过程活动有入口和出口标准,活动的开始和每个过程活动有入口和出口标准,活动的开始和结束清楚可知结束清楚可知5.5.活动按顺序组织活动按顺序组织6.6.这些一些列的步骤涉及:活动、限制、资源等这些一些列的步骤涉及:活动、限制、资源等7.7.每个过程有一系列指导原则,解释每个活动的目每个过程有一系列指导原则,解释每个活动的目标标5
3、软件的过程软件的过程软件过程软件过程n软件过程是为了获得高质量软件所需要完成的一软件过程是为了获得高质量软件所需要完成的一些列任务的框架,它规定了完成各项任务的工作些列任务的框架,它规定了完成各项任务的工作步骤步骤n过去我们将软件过程叫作软件生命周期过去我们将软件过程叫作软件生命周期6软件的生命周期软件的生命周期 软件生命周期软件生命周期软件的生命周期指软件产品从功能确定、设软件的生命周期指软件产品从功能确定、设计、开发成功、投入使用,并在使用中不断计、开发成功、投入使用,并在使用中不断修改、完善,直至被新的软件所替代而停止修改、完善,直至被新的软件所替代而停止该软件的使用的全过程。该软件的使
4、用的全过程。7软件的生命周期软件的生命周期 软件生命周期作用软件生命周期作用n从时间的角度,对软件开发和维护的复杂过程进行从时间的角度,对软件开发和维护的复杂过程进行了有效的划分,了有效的划分,n把整个生命周期划分为若干个互相区别而又彼此联把整个生命周期划分为若干个互相区别而又彼此联系的阶段,系的阶段,n给每个阶段赋予确定而有限的任务给每个阶段赋予确定而有限的任务。8软件的生命周期软件的生命周期 软件生命周期作用软件生命周期作用n这这样样就就便便于于每每个个阶阶段段都都采采用用经经过过验验证证行行之之有有效的管理技术和方法,效的管理技术和方法,n从从技技术术和和管管理理的的角角度度进进行行严严
5、格格审审查查,以以达达到到保保证证软软件件质质量量、降降低低成成本本、合合理理使使用用资资源源,进而提高软件开发生产率的目的。进而提高软件开发生产率的目的。9软件的生命周期软件的生命周期 软件生命周期任务软件生命周期任务1 1、软件定义、软件定义2 2、软件开发、软件开发3 3、运行和维护、运行和维护10软件的生命周期软件的生命周期每个时期又可以进一步划分成若干个阶段每个时期又可以进一步划分成若干个阶段1 1、问题定义、问题定义2 2、可行性研究、可行性研究3 3、需求分析、需求分析4 4、概要设计、概要设计5 5、详细设计、详细设计6 6、编码和单元测试、编码和单元测试7 7、综合测试、综合
6、测试8 8、软件维护、软件维护11软件生命周期模型软件生命周期模型软件生命周期模型软件生命周期模型 把把软软件件生生命命周周期期中中各各项项开开发发活活动动的的流流程程用用一一个个合合理理的的框框架架开开发发模模型型来来规规范范描描述述,这就是软件生命周期模型(过程模型)这就是软件生命周期模型(过程模型)。12软件生命周期模型软件生命周期模型软件生命周期模型软件生命周期模型 软件生命周期模型是从一个特定的角度表现软件生命周期模型是从一个特定的角度表现一个过程,主要根据软件的类型、规模,特别是一个过程,主要根据软件的类型、规模,特别是软件的开发方法、开发环境等多种因素确立过程软件的开发方法、开发
7、环境等多种因素确立过程模型。模型。13软件生命周期模型软件生命周期模型瀑布模型瀑布模型14软件生命周期模型软件生命周期模型瀑布模型的特点:瀑布模型的特点:阶段性阶段性 阶段评审阶段评审 文档管理文档管理 瀑布模型适用于具有以下特征的一类系统瀑布模型适用于具有以下特征的一类系统:在开发时期内没有或很少有需求变化;在开发时期内没有或很少有需求变化;开发者对应用领域很熟悉;开发者对应用领域很熟悉;低风险项目,如开发者对目标和开发环境很熟悉;低风险项目,如开发者对目标和开发环境很熟悉;除了在早期阶段,用户对开发工作参与很少;除了在早期阶段,用户对开发工作参与很少;系统编程要求使用面向过程的程序设计语言
8、。系统编程要求使用面向过程的程序设计语言。15软件生命周期模型软件生命周期模型瀑布模型的瀑布模型的缺点缺点阶阶段段与与阶阶段段划划分分固固定定,阶阶段段间间产产生生大大量量的的文文档档,极极大大地增加了工作量;地增加了工作量;由由于于开开发发模模型型呈呈线线性性,当当开开发发成成果果尚尚未未经经过过测测试试时时,用用户户无无法法看看到到软软件件的的效效果果,这这些些问问题题往往往往会会导导致致开开发发出来的软件不是用户真正需要的软件;出来的软件不是用户真正需要的软件;无无法法通通过过开开发发活活动动澄澄清清本本来来不不够够确确切切的的软软件件需需求求,因因此,需要返工或者不得不在维护中纠正需求
9、的偏差;此,需要返工或者不得不在维护中纠正需求的偏差;由由于于固固定定顺顺序序,前前期期工工作作中中造造成成的的差差错错越越到到后后期期阶阶段段所所造造成成的的损损失失越越大大,为为了了纠纠正正偏偏差差,需需要要付付出出高高昂昂的的代价。代价。16软件生命周期模型软件生命周期模型一个真实的瀑布模型一个真实的瀑布模型 软件需求需求分析设计编码设计测试运行维护17软件生命周期模型软件生命周期模型 改进的瀑布模型改进的瀑布模型 18软件生命周期模型软件生命周期模型原型模型原型模型 1 1快速原型方法快速原型方法快速原型方法是原型模型在软件分析、设计阶段快速原型方法是原型模型在软件分析、设计阶段的应用
10、,用来解决用户对软件系统在需求分析上的应用,用来解决用户对软件系统在需求分析上的模糊认识。的模糊认识。19软件生命周期模型软件生命周期模型原型模型原型模型 快速原型法的特点:快速原型法的特点:快快速速原原型型是是用用来来获获取取用用户户需需求求的的,或或是是用用来来试试探探某某种种设设计计是是否否有有效效。一一旦旦需需求求或设计确定下来,原型就将被抛弃。或设计确定下来,原型就将被抛弃。20软件生命周期模型软件生命周期模型快快速速原原型型是是暂暂时时使使用用的的,因因此此并并不不要要求求完完整整。它它往往往往针针对对某某个个局局部部问问题题建建立立专专门门原原型型,如如界界面面原原型型、工工作作
11、流流原原型型、查查询原型等。询原型等。快快速速原原型型不不能能贯贯穿穿软软件件的的整整个个生生命命周周期期,它它需需要要和和其其他他的的过过程程模模型型相相结结合合才才能能产产生作用。生作用。21软件生命周期模型软件生命周期模型 改进的瀑布模型改进的瀑布模型 22软件生命周期模型软件生命周期模型对对于于一一个个大大型型复复杂杂的的系系统统,如如果果不不经经过过分分析析来来进进行行整整体体性性划划分分,想想直直接接用用屏屏幕幕来一个一个地模拟是很困难的;来一个一个地模拟是很困难的;对对于于大大量量运运算算、逻逻辑辑性性较较强强的的程程序序模模块块,快快速速原原型型方方法法很很难难构构造造出出模模
12、型型来来供供人人评评价。价。23软件生命周期模型软件生命周期模型原型方法只适用于小型、简单、处理过程原型方法只适用于小型、简单、处理过程比较明确、没有大量运算和逻辑处理过程比较明确、没有大量运算和逻辑处理过程的系统。的系统。24软件生命周期模型软件生命周期模型 2 2原型进化模型原型进化模型需 求 描 述建立/完善原型使用原型系统系统充分交付目标系统否是25软件生命周期模型软件生命周期模型 2 2原型进化模型原型进化模型原原型型进进化化模模型型将将软软件件的的需需求求细细节节定定义义、产产品品开开发发和和有有效效性性验验证证放放在在同同一一个个工工作作进进程程中中交交替替或或并并行行运运作作。
13、因因此此,在在获获得得了了软软件件需需求求框框架架以以后后,就可以直接进入到对软件的开发中。就可以直接进入到对软件的开发中。原原型型进进化化模模型型是是通通过过不不断断发发布布新新的的软软件件版版本本而而使使软软件件逐逐步步完完善善的的,因因此此,这这种种开开发发模模式式特特别别适合于那些用户急需的软件产品开发。适合于那些用户急需的软件产品开发。26软件生命周期模型软件生命周期模型增量模型增量模型定义需求框架按照构件组成及其关系设计软件系统体系结构将构件集成进系统验 证 系 统系统已完成最 终 系 统开发增量构件细化构件需求设计构件实现构件验证构件否是27软件生命周期模型软件生命周期模型1.1
14、.增量模型的三个阶段增量模型的三个阶段(1 1)在在系系统统开开发发的的前前期期阶阶段段,为为了了确确保保所所建建系系统统具具有有优优良良的的结结构构,仍仍需需要要针针对对整整个个系系统统进进行行需需求求分分析析和和总总体体设设计计,需需要要启启动动系系统统的的基基于于增增量量构构件件的的需需求求框框架架,并并以以需需求求框框架架中中构构件件的的组组成成及及关关系系为为依依据据,完完成成对对软软件件系系统统的的体体系系结结构构设计。设计。28软件生命周期模型软件生命周期模型1.1.增量模型的三个阶段增量模型的三个阶段(2 2)在在完完成成软软件件体体系系结结构构设设计计之之后后,可可以以进进行
15、行增增量量构构件件的的开开发发。这这时时需需要要对对构构件件进进行行需需求求细细化,然后进行设计、编码测试和有效性验证。化,然后进行设计、编码测试和有效性验证。29软件生命周期模型软件生命周期模型1.1.增量模型的三个阶段增量模型的三个阶段(3 3)在在完完成成了了对对某某个个构构件件的的开开发发之之后后,需需要要将将该该构构件件集集成成到到系系统统中中去去,并并对对已已经经发发生生了了改改变变的的系系统统重重新新进进行行有有效效性性验验证证,然然后后再再继继续续下下一一个增量构件的开发。个增量构件的开发。30软件生命周期模型软件生命周期模型2.2.增量模型的作用增量模型的作用(1 1)开开发
16、发初初期期的的需需求求定定义义只只是是用用来来确确定定软软件件的的基基本本结结构构,这这使使得得开开发发初初期期,用用户户只只需需要要对对软软件件需需求求进进行行大大概概的的描描述述,而而对对于于需需求求的的细细节节描描述述,则则可可以以延延迟迟到到增增量量构构件件开开发发时时进进行行,以以增增量量构构件件为为单单位位逐逐个个地地进进行行需需求求补补充。充。31软件生命周期模型软件生命周期模型2.2.增量模型的作用增量模型的作用(2 2)软软件件系系统统可可以以按按照照增增量量构构件件的的功功能能安安排排开开发发的的优优先先顺顺序序,并并逐逐个个实实现现和和交交付付使使用用。这这不不仅仅有有利
17、利于于用用户户尽尽早早地地用用上上系系统统,能能够够更更好好地地适适应应新新的的软软件件环环境境,而而且且用用户户在在以以增增量量方方式式使使用用系系统统的的过过程程中中,还还能能够够获获得得对对软件系统后续构件的需求经验。软件系统后续构件的需求经验。32软件生命周期模型软件生命周期模型2.2.增量模型的作用增量模型的作用(3 3)软软件件系系统统是是逐逐渐渐开开展展的的,因因此此开开发发者者可可以以通通过过对对诸诸多多构构件件的的开开发发,逐逐步步积积累累开开发发经经验验。实实际际上上增增量量式式开开发还有利于技术复用发还有利于技术复用(4 4)增增量量式式开开发发还还有有利利于于从从总总体
18、体上上降降低低软软件件项项目目的的技技术术风险。风险。33软件生命周期模型软件生命周期模型2.2.增量模型的缺点增量模型的缺点开放的软件体系结构导致软件设计难度增加开放的软件体系结构导致软件设计难度增加增量模型本事是矛盾的增量模型本事是矛盾的34软件生命周期模型软件生命周期模型螺旋模型螺旋模型35软件生命周期模型软件生命周期模型u螺旋模型螺旋模型 在在笛笛卡卡尔尔坐坐标标的的4 4个个象象限限上上分分别别表表达达各各方方面面的的活动:活动:制制订订计计划划:确确定定软软件件目目标标,选选定定实实施施方方案案,弄清项目开发限制条件。弄清项目开发限制条件。风风险险分分析析:分分析析所所选选方方案案
19、,考考虑虑如如何何识识别别和和消除风险。消除风险。实施工程:实施软件开发。实施工程:实施软件开发。用户评估:评价开发工作,提出修正建议。用户评估:评价开发工作,提出修正建议。36软件生命周期模型软件生命周期模型u螺旋模型螺旋模型 适用于内部开发大型软件项目适用于内部开发大型软件项目 风险驱动可以规避风险风险驱动可以规避风险 需要丰富的风向评估经验和知识需要丰富的风向评估经验和知识37软件生命周期模型软件生命周期模型喷泉模型喷泉模型 1.迭代是软件开发过程中普遍存在的一种内在属性2.在面向对象范型中比结构化范型更常见3.喷泉这个词体现了面向对象软件开发过程迭代和无缝的特性4.两个活动可以重叠,保
20、证各项开发活动的无缝过度38软件生命周期模型软件生命周期模型喷泉模型喷泉模型 需求分析面向对象分析面向对象设计编码测试运行进一步开发维护39面向对象的方法学面向对象的方法学在软件工程过程中应用面向对象的技术在软件工程过程中应用面向对象的技术在软件工程过程中应用面向对象的技术在软件工程过程中应用面向对象的技术40面向对象的方法学面向对象的方法学面向对象的技术的基本观点面向对象的技术的基本观点面向对象的技术的基本观点面向对象的技术的基本观点客观世界是由对象组成的。客观世界是由对象组成的。具有相同的数据和相同的操作的对象可以归并为一类,具有相同的数据和相同的操作的对象可以归并为一类,对象是类的一个实
21、例。类可以产生对象。对象是类的一个实例。类可以产生对象。类可以派生子类,子类继承父类的特性。类可以派生子类,子类继承父类的特性。对象之间通过消息传递相互联系。对象之间通过消息传递相互联系。41面向对象的方法学面向对象的方法学面向对象的软件工程方法面向对象的软件工程方法面向对象的分析(面向对象的分析(OOA)面向对象的设计(面向对象的设计(OOD)面向对象的编程(面向对象的编程(OOP)面向对象的测试(面向对象的测试(OOT)面向对象的维护(面向对象的维护(OOSM)42面向对象的方法学面向对象的方法学43面向对象的方法学面向对象的方法学面向对象技术的应用44面向对象的方法学面向对象的方法学用稳
22、定把不稳定包装起来45面向对象的方法学面向对象的方法学1.1.按照人类的自然思维方式,面对客观世界建立软按照人类的自然思维方式,面对客观世界建立软按照人类的自然思维方式,面对客观世界建立软按照人类的自然思维方式,面对客观世界建立软件系统模型。有利于对问题域和系统责任的理解,件系统模型。有利于对问题域和系统责任的理解,件系统模型。有利于对问题域和系统责任的理解,件系统模型。有利于对问题域和系统责任的理解,有利于人员交流。有利于人员交流。有利于人员交流。有利于人员交流。2.2.对需求变化的适应性。把最稳定的部分,即对象对需求变化的适应性。把最稳定的部分,即对象对需求变化的适应性。把最稳定的部分,即
23、对象对需求变化的适应性。把最稳定的部分,即对象作为构筑系统的基本单位,而把容易发生变化的作为构筑系统的基本单位,而把容易发生变化的作为构筑系统的基本单位,而把容易发生变化的作为构筑系统的基本单位,而把容易发生变化的部分,既属性与服务,封装在对象之内,对象之部分,既属性与服务,封装在对象之内,对象之部分,既属性与服务,封装在对象之内,对象之部分,既属性与服务,封装在对象之内,对象之间通过接口联系,使得需求变化的影响尽可能地间通过接口联系,使得需求变化的影响尽可能地间通过接口联系,使得需求变化的影响尽可能地间通过接口联系,使得需求变化的影响尽可能地限制在对象内部。限制在对象内部。限制在对象内部。限
24、制在对象内部。46面向对象的方法学面向对象的方法学可维护性好可维护性好可维护性好可维护性好支持软件重用支持软件重用支持软件重用支持软件重用47面向对象的方法学面向对象的方法学面向对象的软件开发语言与工具面向对象的软件开发语言与工具面向对象的软件开发语言与工具面向对象的软件开发语言与工具19811981推出的推出的推出的推出的Smalltalk-80Smalltalk-80面向对象的面向对象的面向对象的面向对象的C+C+、JavaJava等等等等MicroSoftMicroSoft公司的公司的公司的公司的C#C#计算机辅助软件工程(计算机辅助软件工程(计算机辅助软件工程(计算机辅助软件工程(CA
25、SEComputer Aided CASEComputer Aided Software Engineering)Software Engineering)Rational RoseRational Rose一个面向对象的且支持一个面向对象的且支持一个面向对象的且支持一个面向对象的且支持UMLUML语言语言语言语言的的的的CASECASE工具工具工具工具48面向对象的方法学面向对象的方法学面向对象与面向功能的例子面向对象与面向功能的例子面向对象与面向功能的例子面向对象与面向功能的例子49参考资料参考资料张海藩张海藩,软件工程软件工程,人民邮电出版社人民邮电出版社软件过程改进软件过程改进CMM面向对象的软件工程面向对象的软件工程软件配置管理软件配置管理Internet50Question&AnswerThank you51演讲完毕,谢谢观看!