版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-软件生命周期软件生命周期软件生命周期软件生命周期软件过程的基本活动软件过程的基本活动软件描述软件描述软件设计与实现软件设计与实现软件有效性验证软件有效性验证软件进化软件进化内容提要内容提要软件生命周期软件生命周期软件从定义开始,经过开发、使用和维软件从定义开始,经过开发、使用和维护,直到最终退役的全过程称为护,直到最终退役的全过程称为软件生软件生存周期存周期。软件生命周期由软件定义、软件开发、软件生命周期由软件定义、软件开发、运行、维护及退役五个时期。而每个时运行、维护及退役五个时期。而每个时期又可以进一步划分成若干阶段。期又可以进一步划分成若干阶段。问题定义问题定义“要解决什么问题要解决什
2、么问题?”“尽管确切定义问题的必要性是十分明显的,但尽管确切定义问题的必要性是十分明显的,但在实践中它却可能是最容易被忽视的问题在实践中它却可能是最容易被忽视的问题”通过对客户的访问调查,系统分析员扼要的写通过对客户的访问调查,系统分析员扼要的写出问题的性质、工程目标和工程规模的书面报出问题的性质、工程目标和工程规模的书面报告,经过讨论和必要的修改后这份报告应该得告,经过讨论和必要的修改后这份报告应该得到客户用户的确认。到客户用户的确认。可行性研究可行性研究“做还是不做做还是不做”本阶段的任务是根据用户提出的工程项目的性本阶段的任务是根据用户提出的工程项目的性质、目标和规模,进一步了解用户的要
3、求及现有的环质、目标和规模,进一步了解用户的要求及现有的环境及条件,从技术、经济和社会等多方面研究并论证境及条件,从技术、经济和社会等多方面研究并论证该项目的可行性,即该项目的可行性,即该项目是否值得去解决,是否存该项目是否值得去解决,是否存在可行的解决办法。在可行的解决办法。可行性论证包括可行性论证包括经济可行性经济可行性、技术可行性技术可行性、操作操作可行性可行性、法律可行性法律可行性等。等。需求分析需求分析 需求分析的任务需求分析的任务 需求分析的任务是确定待开发的软件系统需求分析的任务是确定待开发的软件系统“做什么做什么,不做什么,不做什么”。不考虑。不考虑“怎样做怎样做” 具体任务包
4、括确定软件系统的具体任务包括确定软件系统的功能需求功能需求、性能需求性能需求和和运行环境约束运行环境约束,编制软件需求规,编制软件需求规格说明书、软件系统的验收测试准则和初步格说明书、软件系统的验收测试准则和初步的用户手册。的用户手册。需求分析需求分析2 2)需求分析的实现途径)需求分析的实现途径 软件系统需求一般由用户提出。系统分析员软件系统需求一般由用户提出。系统分析员和开发人员在需求分析阶段必须与用户反复讨论、和开发人员在需求分析阶段必须与用户反复讨论、协商,充分交流信息,并用某种方法和工具构建协商,充分交流信息,并用某种方法和工具构建软件系统的软件系统的逻辑模型逻辑模型。为了使开发方与
5、用户对待。为了使开发方与用户对待开发软件系统达成一致的理解,必须建立相应的开发软件系统达成一致的理解,必须建立相应的需求文档需求文档。有时对大型、复杂的软件系统的主要。有时对大型、复杂的软件系统的主要功能、接口、人机界面等还要进行模拟或建造原功能、接口、人机界面等还要进行模拟或建造原型,以便向用户和开发方展示待开发软件系统的型,以便向用户和开发方展示待开发软件系统的主要特征。确定软件需求的过程有时需要反复多主要特征。确定软件需求的过程有时需要反复多次,最终得到用户和开发者的确认。次,最终得到用户和开发者的确认。需求分析需求分析3)需求分析的阶段成果)需求分析的阶段成果 需求分析阶段的主要成果有
6、软件需求规格说明、需求分析阶段的主要成果有软件需求规格说明、软件验收测试计划和准则、初步的用户手册等。软件验收测试计划和准则、初步的用户手册等。软件需求规格说明(软件需求规格说明(Software Requirements Specification,即,即SRS),是一个关键性的文档。),是一个关键性的文档。多数场合,面向开发者的软件需求用需求规格说明语言多数场合,面向开发者的软件需求用需求规格说明语言来描述,它是软件开发人员进行软件设计的依据;另一来描述,它是软件开发人员进行软件设计的依据;另一方面,从某种意义上讲,方面,从某种意义上讲,SRS又起到与用户签定合同的又起到与用户签定合同的合
7、同书的作用。合同书的作用。软件开发软件开发q软件开发过程由概要设计、详细设计、编码与单软件开发过程由概要设计、详细设计、编码与单元测试、(综合)测试共元测试、(综合)测试共5个阶段组成。个阶段组成。q开发者通常可提出多种设计方案,并对各种方案开发者通常可提出多种设计方案,并对各种方案在功能、性能、成本、进度等方面进行比较和折在功能、性能、成本、进度等方面进行比较和折衷,从中选出一种衷,从中选出一种“最佳方案最佳方案”。概要设计概要设计1 1)任务:)任务: 是对需求规格说明中提供的软件系统逻辑是对需求规格说明中提供的软件系统逻辑模型进行进一步的分解,从而建立软件系统模型进行进一步的分解,从而建
8、立软件系统的总体结构和各子系统之间、各模块之间的的总体结构和各子系统之间、各模块之间的关系,定义各子系统接口界面和各功能模块关系,定义各子系统接口界面和各功能模块的接口,设计全局数据库或数据结构,规定的接口,设计全局数据库或数据结构,规定设计约束,制定组装测试计划,进而给出每设计约束,制定组装测试计划,进而给出每个功能模块的功能描述、全局数据定义和外个功能模块的功能描述、全局数据定义和外部文件定义等。部文件定义等。概要设计概要设计2 2)实现途径)实现途径 选择某种方法和工具。设计的软件系统应具有选择某种方法和工具。设计的软件系统应具有良好的总体结构、尽量降低模块接口的复杂度,良好的总体结构、
9、尽量降低模块接口的复杂度,并力争做到各功能模块之间的低耦合度、而功能并力争做到各功能模块之间的低耦合度、而功能模块内部具有较高的内聚度。模块内部具有较高的内聚度。3 3)阶段性成果)阶段性成果 概要设计说明书、概要设计说明书、数据库或数据结构说明书、数据库或数据结构说明书、组装测试计划等文档。组装测试计划等文档。详细设计详细设计 任务:是将概要设计产生的功能模块进一步细化,任务:是将概要设计产生的功能模块进一步细化,形成可编程的程序模块,然后设计程序模块的内形成可编程的程序模块,然后设计程序模块的内部细节,包括算法、数据结构以及各程序模块间部细节,包括算法、数据结构以及各程序模块间的接口信息,
10、并设计模块的单元测试计划。的接口信息,并设计模块的单元测试计划。 途径:可以采用结构化的设计方法,采用结构化途径:可以采用结构化的设计方法,采用结构化的程序流程图、的程序流程图、N-SN-S图、图、PADPAD图、过程设计语言图、过程设计语言(PDLPDL,Procedure Design LanguageProcedure Design Language)等工具进)等工具进行描述,也可以采用面向对象的设计方法等等。行描述,也可以采用面向对象的设计方法等等。 阶段成果:应提供阶段成果:应提供“详细设计规格说明详细设计规格说明”和单元和单元测试计划等详细设计文档。测试计划等详细设计文档。 编码与
11、单元测试编码与单元测试 编码的主要任务是根据详细设计规格说明,用某编码的主要任务是根据详细设计规格说明,用某种选定的程序设计语言把详细设计的结果转化为种选定的程序设计语言把详细设计的结果转化为机器可运行的源程序模块,这是一个编程和调试机器可运行的源程序模块,这是一个编程和调试程序的过程。程序的过程。一般来说,对软件系统所采用的分析方法、设计一般来说,对软件系统所采用的分析方法、设计方法、编程方法以及所选用的程序设计语言应尽方法、编程方法以及所选用的程序设计语言应尽可能保持一致。可能保持一致。编码阶段应注意遵循编程标准、养成良好的编程编码阶段应注意遵循编程标准、养成良好的编程风格,以便编写出正确
12、的便于理解、调试和维护风格,以便编写出正确的便于理解、调试和维护的程序模块。的程序模块。编码与单元测试编码与单元测试2 2)单元测试:每编写出一个程序模块的源程)单元测试:每编写出一个程序模块的源程序,调试通过后,即对该模块进行测试,这序,调试通过后,即对该模块进行测试,这称为单元测试。称为单元测试。3 3)实现阶段的成果:)实现阶段的成果:按一定规则存储在一定载体上的通过按一定规则存储在一定载体上的通过单元测试的各功能模块的集合;单元测试的各功能模块的集合;详细的单元测试报告等文档。详细的单元测试报告等文档。测试测试测试阶段解决的主要问题是测试阶段解决的主要问题是“通过怎样的测通过怎样的测试
13、(及相应的调试),使软件系统达到用户试(及相应的调试),使软件系统达到用户的预期要求。的预期要求。”测试分模块测试、集成测试、验收测试。测试分模块测试、集成测试、验收测试。(1)集成测试集成测试 集成测试:根据概要设计提供的软件结构、各功集成测试:根据概要设计提供的软件结构、各功能模块的说明和集成测试计划,把经过单元测试能模块的说明和集成测试计划,把经过单元测试检验的模块按照某种选定的策略逐步进行组装和检验的模块按照某种选定的策略逐步进行组装和测试。测试。 主要任务:测试系统各模块间的连接是否正确,主要任务:测试系统各模块间的连接是否正确,系统或子系统的正确处理能力、容错能力、输入系统或子系统
14、的正确处理能力、容错能力、输入/ /输出处理是否达到要求。输出处理是否达到要求。 阶段成果:阶段成果: 应是满足概要设计要求、可运行应是满足概要设计要求、可运行的软件系统和源程序清单;的软件系统和源程序清单; 集成测试报告等文档。集成测试报告等文档。(2)验收测试验收测试 任务:按照验收测试计划和准则对软件系统进行任务:按照验收测试计划和准则对软件系统进行测试,看其是否达到了需求规格说明中定义的全测试,看其是否达到了需求规格说明中定义的全部功能和性能等方面的需求。部功能和性能等方面的需求。 验收测试结束时,应生成验收测试结束时,应生成验收测试报告验收测试报告、项目开项目开发总结报告发总结报告,
15、并向用户提交,并向用户提交源程序清单源程序清单、最终用最终用户手册户手册、操作手册操作手册等文档资料。等文档资料。 最后,由专家、用户负责人、软件开发和管理人最后,由专家、用户负责人、软件开发和管理人员组成的软件评审小组要对软件验收测试报告、员组成的软件评审小组要对软件验收测试报告、测试结果和软件进行评审,通过后,软件产品正测试结果和软件进行评审,通过后,软件产品正式通过验收(即完成了开发合同),可以交付用式通过验收(即完成了开发合同),可以交付用户使用了。户使用了。运行运行软件工程师将所开发的软件安装在用户需要的运软件工程师将所开发的软件安装在用户需要的运行环境中,以交给用户使用,这个阶段成
16、为运行行环境中,以交给用户使用,这个阶段成为运行阶段。阶段。该阶段的问题是该阶段的问题是“软件能否顺利的为用户进行服软件能否顺利的为用户进行服务务”。“软件的运行是软件产品发挥社会和经济效益的软件的运行是软件产品发挥社会和经济效益的重要时期重要时期”在软件使用过程中用户或软件工程师必须仔细收在软件使用过程中用户或软件工程师必须仔细收集已发现的软件运行中的问题,定期或不定期的集已发现的软件运行中的问题,定期或不定期的拟定拟定“软件问题报告软件问题报告”。维护维护任务任务: : 通过各种维护活动使软件系统持久地满足通过各种维护活动使软件系统持久地满足用户的需求。用户的需求。每项维护活动实质上都是一
17、次压缩和简化了的软每项维护活动实质上都是一次压缩和简化了的软件定义和软件开发过程。都要经历提出维护要求、件定义和软件开发过程。都要经历提出维护要求、分析维护要求、提出维护方案、审批维护方案、分析维护要求、提出维护方案、审批维护方案、确定维护计划、修改软件设计、修改程序、测试确定维护计划、修改软件设计、修改程序、测试程序、评审、验收等步骤。程序、评审、验收等步骤。维护活动一般可以分程四类:维护活动一般可以分程四类:v改正性维护改正性维护v适应性维护适应性维护v完善性维护完善性维护v预防性维护预防性维护维护维护据统计,软件维护人员为了分析和据统计,软件维护人员为了分析和理解原软件系统所花费的工作量
18、约理解原软件系统所花费的工作量约占整个维护工作量的占整个维护工作量的60%60%以上。在软以上。在软件开发的过程中应重视对软件可维件开发的过程中应重视对软件可维护性的支持。护性的支持。退役退役它是软件生命周期的结束,即停止使用、终止它是软件生命周期的结束,即停止使用、终止其运行。其运行。软件研制与软件测试的层次对应关系软件研制与软件测试的层次对应关系需求分析需求分析( (验收测试计划验收测试计划) )概要设计概要设计( (组装测试计划组装测试计划) )详细设计详细设计( (单元测试计划单元测试计划) )编码与调试编码与调试单元测试单元测试组装测试组装测试验收测试验收测试运行与维护运行与维护可行
19、性研究可行性研究软件过程的基本活动软件过程的基本活动所有软件过程都包含所有软件过程都包含4项基本活动:项基本活动:n 软件描述(需求工程)软件描述(需求工程) 软件的功能及操作上的约束必须定义软件的功能及操作上的约束必须定义n 软件设计与实现软件设计与实现 软件一定要按描述来生产软件一定要按描述来生产n 软件有效性验证软件有效性验证 软件要被确定是有效的,即要做客户想要的事软件要被确定是有效的,即要做客户想要的事n 软件进化(维护)软件进化(维护) 软件一定按客户需求的变更来进化软件一定按客户需求的变更来进化软件描述(需求工程)软件描述(需求工程)软件描述的目标是确定系统需要哪些软件描述的目标
20、是确定系统需要哪些服务服务以及运以及运行期间受到哪些行期间受到哪些约束约束。需求工程产生用以描述系统的需求文档。通常需需求工程产生用以描述系统的需求文档。通常需求文档被分成两个层次来描述:求文档被分成两个层次来描述:最终用户和客户需要高层次的需求描述;最终用户和客户需要高层次的需求描述;系统开发人员需要比较详细的系统描述。系统开发人员需要比较详细的系统描述。需求工程过程有需求工程过程有4个主要阶段:个主要阶段:可行性研究、需求可行性研究、需求导出与分析、需求描述和需求有效性验证导出与分析、需求描述和需求有效性验证。软件描述(需求工程)软件描述(需求工程)可行性报告可行性报告可行性研究可行性研究
21、需求导出与分析需求导出与分析系统模型系统模型用户需求与用户需求与系统需求系统需求需求文档需求文档需求描述需求描述需求有效性验证需求有效性验证软件设计与实现软件设计与实现软件设计与实现阶段是把软件设计与实现阶段是把系统描述系统描述转换成转换成一个一个可可运行的系统运行的系统的过程。它总是包含设计和编程。的过程。它总是包含设计和编程。v软件设计是对实现软件的结构、系统的数据、软件设计是对实现软件的结构、系统的数据、系统组件间的接口以及所用的算法进行描述。系统组件间的接口以及所用的算法进行描述。在设计过程中不断添加设计要素和设计细节,在设计过程中不断添加设计要素和设计细节,并对先前的设计方案进行修正
22、。并对先前的设计方案进行修正。v软件实现是将设计方案转换成可执行的程序。软件实现是将设计方案转换成可执行的程序。软件设计软件设计设计过程中一些特别的活动有:设计过程中一些特别的活动有:体系结构设计体系结构设计识别系统由哪些子系统构成,及其关系识别系统由哪些子系统构成,及其关系抽象描述抽象描述每个子系统提供的服务及在什么范围内运行每个子系统提供的服务及在什么范围内运行接口设计接口设计每个子系统与其他子系统间的接口每个子系统与其他子系统间的接口组件设计组件设计分派服务到不同组件,并设计接口分派服务到不同组件,并设计接口数据结构设计数据结构设计详细设计并描述实现阶段的数据结构详细设计并描述实现阶段的
23、数据结构算法设计算法设计详细设计并描述服务将要采用的算法详细设计并描述服务将要采用的算法软件设计软件设计“事实上设计过程中的活动是交替进行的事实上设计过程中的活动是交替进行的”设计产品设计产品需求描述需求描述体系结构体系结构设计设计抽象描述抽象描述接口设计接口设计组件设计组件设计数据结构数据结构设计设计算法设计算法设计系统体系系统体系结构结构软件描述软件描述接口描述接口描述组件描述组件描述数据结构数据结构算法描述算法描述设计活动设计活动设计错误设计错误修复修复定位错误定位错误程序错误程序错误修复修复重测程序重测程序软件有效性验证软件有效性验证软件有效性验证是软件有效性验证是要看系统是否符合它的描述以要看系统是否符合它的描述以及是否符合客户的需求及是否符合客户的需求。它包括检查过程、从用。它包括检查过程、从用户需求定义到程序开发的每个软
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产科急危重病人的监护与支持
- 2025年随州市中心医院卫生专业技术人员专项招聘21人备考题库及完整答案详解一套
- 变暖时代登革热媒介的孳生地管理规范
- 医院安全生产监督制度
- 单位团购房抽签监督制度
- 公益性设施民主监督制度
- 国库会计事后监督制度
- 交通局财会制度
- 健身房仪容仪监督制度
- 人事四项监督制度
- 牙科蜡型制作培训课件
- 工地春节后复工安全培训课件
- 四川省土地开发项目预算定额标准
- 河南省2025年中考真题化学试卷(含答案)
- 中国信保江苏分公司发展战略:基于开放经济的多维视角与实践路径
- 《数智时代人力资源管理理论与实践》全套教学课件
- 《技术经济学》课件-第1章 绪论
- 2025年公务员考试行测逻辑推理试题库及答案(共200题)
- 健康管理中心2025年运营发展计划
- 监理单位网格化管理制度
- 工艺验证检查指南
评论
0/150
提交评论