《软件工程生命周期精.ppt》由会员分享,可在线阅读,更多相关《软件工程生命周期精.ppt(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程生命周期第1页,本讲稿共36页软件生命周期软件生命周期软件过程的基本活动软件过程的基本活动软件描述软件描述软件设计与实现软件设计与实现软件有效性验证软件有效性验证软件进化软件进化内容提要内容提要第2页,本讲稿共36页软件生命周期软件生命周期软件从定义开始,经过开发、使用和维软件从定义开始,经过开发、使用和维护,直到最终退役的全过程称为护,直到最终退役的全过程称为软件生软件生存周期存周期。软件生命周期由软件定义、软件开发、软件生命周期由软件定义、软件开发、运行、维护及退役五个时期。而每个时运行、维护及退役五个时期。而每个时期又可以进一步划分成若干阶段。期又可以进一步划分成若干阶段。第3页
2、,本讲稿共36页问题定义问题定义“要解决什么问题要解决什么问题?”“尽管确切定义问题的必要性是十分明显的,但在实践中尽管确切定义问题的必要性是十分明显的,但在实践中它却可能是最容易被忽视的问题它却可能是最容易被忽视的问题”通过对客户的访问调查,系统分析员扼要的写出通过对客户的访问调查,系统分析员扼要的写出问题的性质、工程目标和工程规模的书面报告,问题的性质、工程目标和工程规模的书面报告,经过讨论和必要的修改后这份报告应该得到客户经过讨论和必要的修改后这份报告应该得到客户用户的确认。用户的确认。第4页,本讲稿共36页可行性研究可行性研究“做还是不做做还是不做”本阶段的任务是根据用户提出的工程项目
3、的性质、本阶段的任务是根据用户提出的工程项目的性质、目标和规模,进一步了解用户的要求及现有的环境及条目标和规模,进一步了解用户的要求及现有的环境及条件,从技术、经济和社会等多方面研究并论证该项目的件,从技术、经济和社会等多方面研究并论证该项目的可行性,即可行性,即该项目是否值得去解决,是否存在可行的解该项目是否值得去解决,是否存在可行的解决办法。决办法。可行性论证包括可行性论证包括经济可行性经济可行性、技术可行性技术可行性、操作可行操作可行性性、法律可行性法律可行性等。等。第5页,本讲稿共36页需求分析需求分析1)1)需求分析的任务需求分析的任务 需求分析的任务是确定待开发的软件系统需求分析的
4、任务是确定待开发的软件系统“做做什么什么,不做什么,不做什么”。不考虑。不考虑“怎样做怎样做”具体任务包括确定软件系统的具体任务包括确定软件系统的功能需求功能需求、性能性能需求需求和和运行环境约束运行环境约束,编制软件需求规格说明,编制软件需求规格说明书、软件系统的验收测试准则和初步的用户书、软件系统的验收测试准则和初步的用户手册。手册。第6页,本讲稿共36页需求分析需求分析2 2)需求分析的实现途径)需求分析的实现途径 软软件件系系统统需需求求一一般般由由用用户户提提出出。系系统统分分析析员员和和开开发发人人员员在在需需求求分分析析阶阶段段必必须须与与用用户户反反复复讨讨论论、协协商商,充充
5、分分交交流流信信息息,并并用用某某种种方方法法和和工工具具构构建建软软件件系系统统的的逻逻辑辑模模型型。为为了了使使开开发发方方与与用用户户对对待待开开发发软软件件系系统统达达成成一一致致的的理理解解,必必须须建建立立相相应应的的需需求求文文档档。有有时时对对大大型型、复复杂杂的的软软件件系系统统的的主主要要功功能能、接接口口、人人机机界界面面等等还还要要进进行行模模拟拟或或建建造造原原型型,以以便便向向用用户户和和开开发发方方展展示示待待开开发发软软件件系系统统的的主主要要特特征征。确确定定软软件件需需求求的的过过程程有时需要反复多次,最终得到用户和开发者的确认。有时需要反复多次,最终得到用
6、户和开发者的确认。第7页,本讲稿共36页需求分析需求分析3)需求分析的阶段成果)需求分析的阶段成果 需需求求分分析析阶阶段段的的主主要要成成果果有有软软件件需需求求规规格格说说明明、软软件验收测试计划和准则、初步的用户手册等。件验收测试计划和准则、初步的用户手册等。软软件件需需求求规规格格说说明明(Software Requirements Specification,即,即SRS),是一个关键性的文档。),是一个关键性的文档。多多数数场场合合,面面向向开开发发者者的的软软件件需需求求用用需需求求规规格格说说明明语语言言来来描描述述,它它是是软软件件开开发发人人员员进进行行软软件件设设计计的的
7、依依据据;另另一一方方面面,从从某种意义上讲,某种意义上讲,SRS又起到与用户签定合同的合同书的作用。又起到与用户签定合同的合同书的作用。第8页,本讲稿共36页软件开发软件开发软件开发过程由概要设计、详细设计、编码与单元测软件开发过程由概要设计、详细设计、编码与单元测试、(综合)测试共试、(综合)测试共5个阶段组成。个阶段组成。开发者通常可提出多种设计方案,并对各种方案在开发者通常可提出多种设计方案,并对各种方案在功能、性能、成本、进度等方面进行比较和折衷,功能、性能、成本、进度等方面进行比较和折衷,从中选出一种从中选出一种“最佳方案最佳方案”。第9页,本讲稿共36页概要设计概要设计1 1)任
8、务:)任务:是是对对需需求求规规格格说说明明中中提提供供的的软软件件系系统统逻逻辑辑模模型型进进行行进进一一步步的的分分解解,从从而而建建立立软软件件系系统统的的总总体体结结构构和和各各子子系系统统之之间间、各各模模块块之之间间的的关关系系,定定义义各各子子系系统统接接口口界界面面和和各各功功能能模模块块的的接接口口,设设计计全全局局数数据据库库或或数数据据结结构构,规规定定设设计计约约束束,制制定定组组装装测测试试计计划划,进进而而给给出出每每个个功功能能模模块块的的功功能能描描述述、全全局局数数据据定定义义和和外外部文件定义等。部文件定义等。第10页,本讲稿共36页概要设计概要设计2 2)
9、实现途径)实现途径 选选择择某某种种方方法法和和工工具具。设设计计的的软软件件系系统统应应具具有有良良好好的的总总体体结结构构、尽尽量量降降低低模模块块接接口口的的复复杂杂度度,并并力力争争做做到到各各功功能能模模块块之之间间的的低低耦耦合合度度、而而功功能能模模块块内内部具有较高的内聚度。部具有较高的内聚度。3 3)阶段性成果)阶段性成果 概要设计说明书、概要设计说明书、数据库或数据结构说明书、数据库或数据结构说明书、组装测试计划等文档。组装测试计划等文档。第11页,本讲稿共36页详细设计详细设计1)1)任任务务:是是将将概概要要设设计计产产生生的的功功能能模模块块进进一一步步细细化化,形形
10、成成可可编编程程的的程程序序模模块块,然然后后设设计计程程序序模模块块的的内内部部细细节节,包包括括算算法法、数数据据结结构构以以及及各各程程序序模模块块间间的的接接口口信信息息,并并设设计模块的单元测试计划。计模块的单元测试计划。2)2)途途径径:可可以以采采用用结结构构化化的的设设计计方方法法,采采用用结结构构化化的的程程序序流流程程图图、N-SN-S图图、PADPAD图图、过过程程设设计计语语言言(PDLPDL,Procedure Procedure Design Design LanguageLanguage)等等工工具具进进行行描描述述,也也可可以以采采用用面面向向对对象象的设计方法
11、等等。的设计方法等等。3)3)阶阶段段成成果果:应应提提供供“详详细细设设计计规规格格说说明明”和和单单元元测测试试计划等详细设计文档。计划等详细设计文档。第12页,本讲稿共36页编码与单元测试编码与单元测试1)1)编编码码的的主主要要任任务务是是根根据据详详细细设设计计规规格格说说明明,用用某某种种选选定定的的程程序序设设计计语语言言把把详详细细设设计计的的结结果果转转化化为为机机器器可可运运行的源程序模块,这是一个编程和调试程序的过程。行的源程序模块,这是一个编程和调试程序的过程。一一般般来来说说,对对软软件件系系统统所所采采用用的的分分析析方方法法、设设计计方方法法、编编程程方方法法以以
12、及及所所选选用用的的程程序序设设计计语语言言应应尽尽可可能能保持一致。保持一致。编编码码阶阶段段应应注注意意遵遵循循编编程程标标准准、养养成成良良好好的的编编程程风风格格,以以便编写出正确的便于理解、调试和维护的程序模块。便编写出正确的便于理解、调试和维护的程序模块。第13页,本讲稿共36页编码与单元测试编码与单元测试2 2)单单元元测测试试:每每编编写写出出一一个个程程序序模模块块的的源源程程序序,调调试试通通过过后后,即即对对该该模模块块进进行行测测试试,这这称称为为单单元测试。元测试。3 3)实现阶段的成果:)实现阶段的成果:按按一一定定规规则则存存储储在在一一定定载载体体上上的的通通过
13、过单单元元测试的各功能模块的集合;测试的各功能模块的集合;详细的单元测试报告等文档。详细的单元测试报告等文档。第14页,本讲稿共36页测试测试测测试试阶阶段段解解决决的的主主要要问问题题是是“通通过过怎怎样样的的测测试试(及及相相应应的的调调试试),使使软软件件系系统统达达到到用用户户的的预预期期要要求求。”测试分模块测试、集成测试、验收测试。测试分模块测试、集成测试、验收测试。第15页,本讲稿共36页(1)集成测试集成测试1)1)集集成成测测试试:根根据据概概要要设设计计提提供供的的软软件件结结构构、各各功功能能模模块块的的说说明明和和集集成成测测试试计计划划,把把经经过过单单元元测测试试检
14、检验验的的模模块块按按照某种选定的策略逐步进行组装和测试。照某种选定的策略逐步进行组装和测试。2)2)主主要要任任务务:测测试试系系统统各各模模块块间间的的连连接接是是否否正正确确,系系统统或或子子系系统统的的正正确确处处理理能能力力、容容错错能能力力、输输入入/输输出出处处理理是是否否达达到到要求。要求。3)3)阶段成果:阶段成果:应应是是满满足足概概要要设设计计要要求求、可可运运行行的软件系统和源程序清单;的软件系统和源程序清单;集成测试报告等文档。集成测试报告等文档。第16页,本讲稿共36页(2)验收测试验收测试1)任任务务:按按照照验验收收测测试试计计划划和和准准则则对对软软件件系系统
15、统进进行行测测试试,看看其其是是否否达达到到了了需需求求规规格格说说明明中中定定义义的的全全部部功功能能和和性性能能等方面的需求。等方面的需求。2)验验收收测测试试结结束束时时,应应生生成成验验收收测测试试报报告告、项项目目开开发发总总结结报报告告,并并向向用用户户提提交交源源程程序序清清单单、最最终终用用户户手手册册、操操作作手册手册等文档资料。等文档资料。3)最最后后,由由专专家家、用用户户负负责责人人、软软件件开开发发和和管管理理人人员员组组成成的的软软件件评评审审小小组组要要对对软软件件验验收收测测试试报报告告、测测试试结结果果和和软软件件进进行行评评审审,通通过过后后,软软件件产产品
16、品正正式式通通过过验收(即完成了开发合同),可以交付用户使用了。验收(即完成了开发合同),可以交付用户使用了。第17页,本讲稿共36页运行运行软软件件工工程程师师将将所所开开发发的的软软件件安安装装在在用用户户需需要要的的运运行行环环境境中中,以交给用户使用,这个阶段成为运行阶段。以交给用户使用,这个阶段成为运行阶段。该阶段的问题是该阶段的问题是“软件能否顺利的为用户进行服务软件能否顺利的为用户进行服务”。“软软件件的的运运行行是是软软件件产产品品发发挥挥社社会会和和经经济济效效益益的的重重要时期要时期”在在软软件件使使用用过过程程中中用用户户或或软软件件工工程程师师必必须须仔仔细细收收集集已
17、已发发现现的的软软件件运运行行中中的的问问题题,定定期期或或不不定定期期的的拟拟定定“软件问题报告软件问题报告”。第18页,本讲稿共36页维护维护任任务务:通通过过各各种种维维护护活活动动使使软软件件系系统统持持久久地地满满足足用用户的需求。户的需求。每每项项维维护护活活动动实实质质上上都都是是一一次次压压缩缩和和简简化化了了的的软软件件定定义义和和软软件件开开发发过过程程。都都要要经经历历提提出出维维护护要要求求、分分析析维维护护要要求求、提提出出维维护护方方案案、审审批批维维护护方方案案、确确定定维维护护计计划划、修修改软件设计、修改程序、测试程序、评审、验收等步骤。改软件设计、修改程序、
18、测试程序、评审、验收等步骤。维护活动一般可以分程四类:维护活动一般可以分程四类:v改正性维护改正性维护v适应性维护适应性维护v完善性维护完善性维护v预防性维护预防性维护第19页,本讲稿共36页维护维护据统计,软件维护人员为了分析和理据统计,软件维护人员为了分析和理解原软件系统所花费的工作量约占整解原软件系统所花费的工作量约占整个维护工作量的个维护工作量的60%60%以上。在软件开发以上。在软件开发的过程中应重视对软件可维护性的支的过程中应重视对软件可维护性的支持。持。第20页,本讲稿共36页退役退役它是软件生命周期的结束,即停止使用、终止其运行。它是软件生命周期的结束,即停止使用、终止其运行。
19、第21页,本讲稿共36页软件研制与软件测试的层次对应关系软件研制与软件测试的层次对应关系需求分析需求分析(验收测试计划验收测试计划)概要设计概要设计(组装测试计划组装测试计划)详细设计详细设计(单元测试计划单元测试计划)编码与调试编码与调试单元测试单元测试组装测试组装测试验收测试验收测试运行与维护运行与维护可行性研究可行性研究第22页,本讲稿共36页软件过程的基本活动软件过程的基本活动所有软件过程都包含所有软件过程都包含4项基本活动:项基本活动:软件描述(需求工程)软件描述(需求工程)软件的功能及操作上的约束必须定义软件的功能及操作上的约束必须定义软件设计与实现软件设计与实现软件一定要按描述来
20、生产软件一定要按描述来生产软件有效性验证软件有效性验证软件要被确定是有效的,即要做客户想要的事软件要被确定是有效的,即要做客户想要的事软件进化(维护)软件进化(维护)软件一定按客户需求的变更来进化软件一定按客户需求的变更来进化第23页,本讲稿共36页软件描述(需求工程)软件描述(需求工程)软软件件描描述述的的目目标标是是确确定定系系统统需需要要哪哪些些服服务务以以及及运运行行期期间间受到哪些受到哪些约束约束。需需求求工工程程产产生生用用以以描描述述系系统统的的需需求求文文档档。通通常常需需求求文文档档被分成两个层次来描述:被分成两个层次来描述:最终用户和客户需要高层次的需求描述;最终用户和客户
21、需要高层次的需求描述;系统开发人员需要比较详细的系统描述。系统开发人员需要比较详细的系统描述。需需求求工工程程过过程程有有4个个主主要要阶阶段段:可可行行性性研研究究、需需求求导导出出与分析、需求描述和需求有效性验证与分析、需求描述和需求有效性验证。第24页,本讲稿共36页软件描述(需求工程)软件描述(需求工程)可行性报告可行性报告可行性研究可行性研究需求导出与分析需求导出与分析系统模型系统模型用户需求与系用户需求与系统需求统需求需求文档需求文档需求描述需求描述需求有效性验证需求有效性验证第25页,本讲稿共36页软件设计与实现软件设计与实现软软件件设设计计与与实实现现阶阶段段是是把把系系统统描
22、描述述转转换换成成一一个个可可运运行行的的系统系统的过程。它总是包含设计和编程。的过程。它总是包含设计和编程。软软件件设设计计是是对对实实现现软软件件的的结结构构、系系统统的的数数据据、系系统统组组件件间间的的接接口口以以及及所所用用的的算算法法进进行行描描述述。在在设设计计过过程程中中不不断断添添加加设设计计要要素素和和设设计计细细节节,并并对对先先前前的的设设计计方方案案进行修正。进行修正。软件实现是将设计方案转换成可执行的程序。软件实现是将设计方案转换成可执行的程序。第26页,本讲稿共36页软件设计软件设计设计过程中一些特别的活动有:设计过程中一些特别的活动有:体系结构设计体系结构设计识
23、别系统由哪些子系统构成,及其关系识别系统由哪些子系统构成,及其关系抽象描述抽象描述每个子系统提供的服务及在什么范围内运行每个子系统提供的服务及在什么范围内运行接口设计接口设计每个子系统与其他子系统间的接口每个子系统与其他子系统间的接口组件设计组件设计分派服务到不同组件,并设计接口分派服务到不同组件,并设计接口数据结构设计数据结构设计详细设计并描述实现阶段的数据结构详细设计并描述实现阶段的数据结构算法设计算法设计详细设计并描述服务将要采用的算法详细设计并描述服务将要采用的算法第27页,本讲稿共36页软件设计软件设计“事事实实上上设设计计过过程程中中的的活活动动是是交交替替进进行行的的”设计产品设
24、计产品需求描述需求描述体系结构体系结构设计设计抽象描述抽象描述接口设计接口设计组件设计组件设计数据结构数据结构设计设计算法设计算法设计系统体系结系统体系结构构软件描述软件描述接口描述接口描述组件描述组件描述数据结构数据结构算法描述算法描述设计活动设计活动第28页,本讲稿共36页Programming and debuggingTranslating a design into a program and removing errors from that program.Programming is a personal activity-there is no generic program
25、ming process.Programmers carry out some program testing to discover faults in the program and remove these faults in the debugging process.第29页,本讲稿共36页The debugging process设计错误设计错误修复修复定位错误定位错误程序错误程序错误修复修复重测程序重测程序第30页,本讲稿共36页软件有效性验证软件有效性验证软软件件有有效效性性验验证证是是要要看看系系统统是是否否符符合合它它的的描描述述以以及及是是否否符符合合客客户户的的需需求求
26、。它它包包括括检检查查过过程程、从从用用户户需需求求定定义义到到程序开发的每个软件过程阶段。程序开发的每个软件过程阶段。绝绝大大多多数数有有效效性性验验证证的的成成本本发发生生在在系系统统完完成成测测试试的的时候。时候。“测试过程应该和开发过程相结合,分阶段增量进行测试过程应该和开发过程相结合,分阶段增量进行”第31页,本讲稿共36页系统有效性验证系统有效性验证测试过程的阶段包括:测试过程的阶段包括:单元测试单元测试模块测试模块测试子系统测试子系统测试系统测试系统测试接收测试接收测试测试(针对产品软件)测试(针对产品软件)第32页,本讲稿共36页测试过程测试过程单元测试单元测试模块测试模块测试
27、子系统测试子系统测试系统测试系统测试接收测试接收测试用户测试用户测试集成测试集成测试组件测试组件测试第33页,本讲稿共36页测试过程中的测试阶段测试过程中的测试阶段需求描述需求描述系统描述系统描述系统设计系统设计详细设计详细设计接收测试接收测试计划计划系统集成系统集成测试计划测试计划子系统集成子系统集成测试计划测试计划模块、单元、模块、单元、代码测试代码测试子系统子系统集成测试集成测试系统集成系统集成测试测试接收测试接收测试服务服务第34页,本讲稿共36页软件进化软件进化(维护维护)自自有有软软件件开开发发以以来来,就就有有软软件件开开发发过过程程和和软软件件维维护护过过程程之之分分。但但现现在在看看来来,这这种种划划分分越越来来越越不不恰恰当当。现现在在完完全全从从头头开开始始的的系系统统很很少少,将将软软件件的的开开发发和和维维护护看看成成一一个个连连续续过过程程显显得得更更有有意意义义,即即将将软软件件工工程程看看成成一一个个进进化化过过程程软软件件在在其其生生命命周周期期内内不不断断随随着着需需求求变变更更而而变变化化的的进进化式过程。化式过程。第35页,本讲稿共36页软件维护软件维护定义系统需求定义系统需求访问现有系统访问现有系统提出系统变更提出系统变更修改系统修改系统现有系统现有系统新系统新系统第36页,本讲稿共36页
限制150内