《软件生存周期过程幻灯片.ppt》由会员分享,可在线阅读,更多相关《软件生存周期过程幻灯片.ppt(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件生存周期过程软件生存周期过程第1页,共31页,编辑于2022年,星期三上节课布置的阅读任务:上节课布置的阅读任务:1、优秀软件应具有的四项属性?、优秀软件应具有的四项属性?2、通用软件和定制软件的不同?、通用软件和定制软件的不同?可维护性、可依赖性、有效性、可用性通用和定制软件的最大区别是需求描述的获取者不同第2页,共31页,编辑于2022年,星期三二、软件过程二、软件过程 开发逻辑开发逻辑,是获取正确软件的关键是获取正确软件的关键.本次课我们要掌握:什么是软件生命周期?(掌握)什么是软件生命周期过程?任务与活动?(掌握)基本过程、支持过程和组织过程(了解)第3页,共31页,编辑于2022
2、年,星期三软件开发软件开发本质本质软软件件生生存存周周期期过过程程定义定义软软件件生生存存周周期期模模型型软软件件工工程程生生存存周周期期过过程程支支持持过过程程方方向向(活活动动与与定定序序)的的建建立立形形成成软件开发方法学软件开发方法学 结构化方法结构化方法 面向对象方法面向对象方法 面向数据结构面向数据结构 方法方法 维也纳开发方维也纳开发方 法(法(VDM)给给出出实实现现开开发发过过程程的的途途径径支持支持/管理技术与方法管理技术与方法作用于作用于第4页,共31页,编辑于2022年,星期三2.1 2.1 软件生存周期过程软件生存周期过程 1)基本概念基本概念 软件生存周期软件生存周
3、期是从软件构思一直到软件被废弃或升级替换的全过是从软件构思一直到软件被废弃或升级替换的全过程。程。具体来说,共分为八个阶段:问题提出,可行性分析;需求分具体来说,共分为八个阶段:问题提出,可行性分析;需求分析;概要设计;详细设计;软件实现;软件测试;维护。析;概要设计;详细设计;软件实现;软件测试;维护。第5页,共31页,编辑于2022年,星期三为了表述软件开发需要做什么为了表述软件开发需要做什么,引入了以下三个概念:引入了以下三个概念:软件过程软件过程(process):活动的一个集合;:活动的一个集合;活动活动(activity):任务的一个集合;:任务的一个集合;注注:”软件过程软件过程
4、”和和”活动活动”相当于复合映射相当于复合映射.任务任务(task):将输入转换为输出的操作。将输入转换为输出的操作。注注:”任务任务”相当于原子映射相当于原子映射.第6页,共31页,编辑于2022年,星期三 2)2)过程分类过程分类 按过程的主体按过程的主体,可分为三类过程可分为三类过程:(1)(1)基本过程基本过程(primary processes)(primary processes)是指那些与是指那些与软件生产软件生产直接相关的活动集。直接相关的活动集。(2(2)支持过程)支持过程(supporting processes)(supporting processes)是有关各方按其目
5、标所从事的一系列是有关各方按其目标所从事的一系列支持支持活动集。活动集。(3(3)组织过程)组织过程(institutional processes)(institutional processes)是指那些与是指那些与软件生产组织软件生产组织有关的活动集。有关的活动集。基本过程基本过程支持过程支持过程组织过程组织过程第7页,共31页,编辑于2022年,星期三(1(1)基本过程基本过程 又按过程中活动的不同主体,将基本过程(类)分又按过程中活动的不同主体,将基本过程(类)分 为为5 5个过程个过程:获取过程、供应过程、开发过程、:获取过程、供应过程、开发过程、运行过程、维护过程运行过程、维护过
6、程 获取过程获取过程基本过程基本过程支持过程支持过程组织过程组织过程组织为组织为供应过程供应过程开发过程开发过程运行过程运行过程维护过程维护过程第8页,共31页,编辑于2022年,星期三1 1:获取过程:获取过程 获取过程是获取者所从事的活动和任务。获取过程是获取者所从事的活动和任务。其目的是获得满足客户所表达的那些要求的产品或服务。其目的是获得满足客户所表达的那些要求的产品或服务。功能需求和非功能需求功能需求和非功能需求约束和满足条件约束和满足条件第9页,共31页,编辑于2022年,星期三2 2:供应过程:供应过程 供供应应过过程程是是供供方方为为了了向向客客户户提提供供满满足足需需求求的的
7、软软件件产产品品或或服服务务所所从从事事的的一系列活动和任务。一系列活动和任务。其目的是向客户提供一个满足已达成需求的产品或服务。其目的是向客户提供一个满足已达成需求的产品或服务。该该过过程程的的启启动动,或或通通过过为为应应答答需需方方的的招招标标书书而而开开始始编编制制投投标标书书的的决决定定,或或通过与需方签订一项提供系统、软件产品或软件服务的合同。通过与需方签订一项提供系统、软件产品或软件服务的合同。继继之之,确确定定为为管管理理和和保保证证项项目目所所需需的的规规程程和和资资源源,包包括括编编制制项项目目计计划划,执执行计划,一直到将系统、软件产品或软件服务交付给需方为止。行计划,一
8、直到将系统、软件产品或软件服务交付给需方为止。第10页,共31页,编辑于2022年,星期三3:开发过程开发过程 是是软件开发者软件开发者所从事的一系列活动。所从事的一系列活动。包括包括13个活动:个活动:过程的实施准备过程的实施准备 系统需求分析系统需求分析 系统结构设计系统结构设计 软件需求分析软件需求分析 软件体系结构设计软件体系结构设计 软件详细设计软件详细设计 软件编码和测试软件编码和测试 软件集成软件集成 软件合格测试软件合格测试 系统集成系统集成 系统合格测试系统合格测试 软件安装软件安装 软件验收支持软件验收支持 第11页,共31页,编辑于2022年,星期三4:运行过程:运行过程
9、 运行过程是系统操作者所从事的一系列活动和任运行过程是系统操作者所从事的一系列活动和任务。务。包含如下四个活动:包含如下四个活动:过程实现;过程实现;运行测试;运行测试;系统运行;系统运行;用户支持。用户支持。第12页,共31页,编辑于2022年,星期三5:维护过程:维护过程 维护过程是维护者所从事的一系列的活动和任务。维护过程是维护者所从事的一系列的活动和任务。包括如下活动:包括如下活动:过程实现;过程实现;问题和修改分析;问题和修改分析;修改实现;修改实现;维维护评审护评审/验收;验收;迁移;迁移;软件退役。软件退役。第13页,共31页,编辑于2022年,星期三(2 2)支持过程支持过程
10、又按过程中活动的不同主体,将支持过程(类)分为又按过程中活动的不同主体,将支持过程(类)分为 8 8个过程个过程:文档过程、配置管理过程、质量保证、验证过程、文档过程、配置管理过程、质量保证、验证过程、确认过程、联合评审、审计过程、确认过程、联合评审、审计过程、问题解决等。问题解决等。文档过程文档过程基本过程基本过程支持过程支持过程组织过程组织过程组织为组织为配置管理过程配置管理过程质量保证过程质量保证过程验证过程验证过程联合评审过程联合评审过程确认过程确认过程审计过程审计过程问题解决过程问题解决过程第14页,共31页,编辑于2022年,星期三1:1:文档过程文档过程 是记录由某一过程或活动所
11、产生信息的过程 4个活动:过程的实施准备 设计与开发 制作与发行 维护 2:配置管理过程:配置管理过程 是应用管理上和技术上的规程来支持整个软件生存周期的过程。6个活动:过程实现 配置标识 配置控制 配置状态统计 配置评价 发布管理和交付第15页,共31页,编辑于2022年,星期三3:3:质量保证过程质量保证过程 是为项目生存周期内的软件过程和软件产品提供适当保障的过程。4个活动:过程实现 产品保证 过程保证 质量体系保证 4:验证过程:验证过程 证实一个过程或项目的每一软件工作产品或服务是否恰当第反映了已规定的需求。2个活动:过程实现 验证第16页,共31页,编辑于2022年,星期三5:5:
12、确认过程确认过程 是一个确定需求和最终的、已建成的系统或软件产品是否满足特定预期用途的过程。2个活动:过程实现 确认6:联合评审过程:联合评审过程7:审计过程:审计过程8:问题解决过程:问题解决过程第17页,共31页,编辑于2022年,星期三(3)(3)组织过程组织过程(Organizational life cycle processesOrganizational life cycle processes)分为分为4 4个过程个过程:管理过程、基础设施过程、培训过程、改进过程管理过程、基础设施过程、培训过程、改进过程 管理过程管理过程基本过程基本过程支持过程支持过程组织过程组织过程组织为组
13、织为基础设施过程基础设施过程培训过程培训过程过程改进过程过程改进过程第18页,共31页,编辑于2022年,星期三1 1:管理过程:管理过程 管理过程包括由管理其对应过程的任何一方所执行的一般管理过程包括由管理其对应过程的任何一方所执行的一般性活动和任务,管理人员负责:性活动和任务,管理人员负责:产品管理;产品管理;项目管理,以及项目管理,以及对所应用的那些过程(例如,获取、供应、开发、运对所应用的那些过程(例如,获取、供应、开发、运行、维护或支持过程)的任务管理。行、维护或支持过程)的任务管理。第19页,共31页,编辑于2022年,星期三 主要活动包括主要活动包括:过程的启动和范围定义过程的启
14、动和范围定义 规划规划 实施与控制实施与控制 评审与评估评审与评估 测量测量 表决(表决(closure)第20页,共31页,编辑于2022年,星期三2 2:基础设施基础设施过程过程 基础设施过程是为其他过程建立和维护所需基础设施的基础设施过程是为其他过程建立和维护所需基础设施的过程。基础设施可以包括用于开发、运行或维护的硬件、软过程。基础设施可以包括用于开发、运行或维护的硬件、软件、工具、技术、标准和设施。件、工具、技术、标准和设施。包括下述活动:包括下述活动:a)a)过程实施的准备;过程实施的准备;b)b)建立基础设施;建立基础设施;c)c)维护基础设施。维护基础设施。第21页,共31页,
15、编辑于2022年,星期三3 3:改进过程改进过程 是一个建立、评估、测量、控制和改进软件生存周期过程的过程。主要活动:过程建立 过程评估过程改进 4 4:培训过程培训过程 是为组织和项目提供具有技能和知识人员的过程。主要活动:过程实现定义培训需求补充合格的员工 评估员工业绩 建立项目团队需求 知识管理 第22页,共31页,编辑于2022年,星期三3)3)软件过程之间的关系软件过程之间的关系获取过程获取过程获取过程供应过程供应过程管理过程管理过程运行过程运行过程开发过程开发过程维护过程维护过程获取者获取者供应者供应者管理者管理者运行者运行者用用 户户开发者开发者维护者维护者开发者开发者维护者维护
16、者组织过程:管理、改进组织过程:管理、改进.支持过程:文档、质量保证、支持过程:文档、质量保证、配置管理配置管理.合合同同使使用用合同观点合同观点管理观点管理观点运行观点运行观点开发观点开发观点支持观点支持观点第23页,共31页,编辑于2022年,星期三小结小结软件生命周期软件生命周期软件生命周期过程软件生命周期过程基本过程、支持过程、组织过程基本过程、支持过程、组织过程第24页,共31页,编辑于2022年,星期三2.2 软件生存周期模型软件生存周期模型)基本概念基本概念 软件生存周期模型软件生存周期模型IEEE Standard 12207.0-1996 把一个软件生存周期模型描述为:一个包
17、括软件产品开把一个软件生存周期模型描述为:一个包括软件产品开发、运行和维护中有关过程、活动和任务的框架,覆盖了从该发、运行和维护中有关过程、活动和任务的框架,覆盖了从该系统的需求定义到系统的使用终止。系统的需求定义到系统的使用终止。中国计算机科学与技术百科全书中国计算机科学与技术百科全书 称软件生存周期模型为称软件生存周期模型为“软件开发模型软件开发模型”,并把它定义为:,并把它定义为:软件过程、活动、任务的结构框架。软件过程、活动、任务的结构框架。第25页,共31页,编辑于2022年,星期三系统需求系统需求软件需求软件需求需求分析需求分析设设 计计编编 码码测测 试试运运 行行)瀑布模型瀑布
18、模型.第26页,共31页,编辑于2022年,星期三()()项目的开发依次经过:需求、设计、编码和单元测试、项目的开发依次经过:需求、设计、编码和单元测试、集成以及维护集成以及维护 这一基本路径。这一基本路径。()在每一阶段提交以下产品:软件需求规约、设计文档、()在每一阶段提交以下产品:软件需求规约、设计文档、实际代码、测试用例、最终产品等。工作产品(又称可实际代码、测试用例、最终产品等。工作产品(又称可提交的产品,提交的产品,DeliverablesDeliverables)流经流经“正向正向”开发的基本步开发的基本步骤路径。骤路径。()()“反向反向”步骤流表示对前一个可提交产品的重复变更
19、(又步骤流表示对前一个可提交产品的重复变更(又称为称为“返工返工”(Rework)(Rework))。由于所有开发活动的非确定性,因此是否需要重复变由于所有开发活动的非确定性,因此是否需要重复变更,这仅在下一个阶段或更后的阶段才能认识到。更,这仅在下一个阶段或更后的阶段才能认识到。返工不仅在以前阶段的某一地方需要,而且对当前正返工不仅在以前阶段的某一地方需要,而且对当前正在进行的工作也是需要的。在进行的工作也是需要的。第27页,共31页,编辑于2022年,星期三关于瀑布模型的几点说明关于瀑布模型的几点说明()瀑布模型的优点)瀑布模型的优点 虽然瀑布模型是一个比较虽然瀑布模型是一个比较“老老”的
20、、甚至过时的开发模型,的、甚至过时的开发模型,但其优点为:但其优点为:在决定系统怎样做之前,存在一个需求阶段,鼓励对系在决定系统怎样做之前,存在一个需求阶段,鼓励对系 统统“做什么做什么”进行规约(即设计之前的规约)。进行规约(即设计之前的规约)。在建造构件之前,存在一个设计阶段,鼓励规划系统结在建造构件之前,存在一个设计阶段,鼓励规划系统结 构(即编码之前的设计)。构(即编码之前的设计)。在每一阶段结束时进行复审,允许获取方和用户的参与。在每一阶段结束时进行复审,允许获取方和用户的参与。允许基线和配置早期接受控制。允许基线和配置早期接受控制。前一步工作产品可作为下一步被认可的、文档化的基线。
21、前一步工作产品可作为下一步被认可的、文档化的基线。第28页,共31页,编辑于2022年,星期三()()瀑布模型存在的不足瀑布模型存在的不足 客户必须能够完整、正确和清晰地表达他们的需求;开发客户必须能够完整、正确和清晰地表达他们的需求;开发 人员一开始就必须理解其应用。人员一开始就必须理解其应用。在开始的两个或三个阶段中,很难评估真正的进度状态在开始的两个或三个阶段中,很难评估真正的进度状态;设计、编码和测试阶段都可能发生延期。设计、编码和测试阶段都可能发生延期。在一个项目的早期阶段,过分地强调了基线和里程碑处在一个项目的早期阶段,过分地强调了基线和里程碑处 的文档的文档;可能要花费更多的时间
22、,用于建立一些用处不可能要花费更多的时间,用于建立一些用处不 大的文档。大的文档。当接近项目结束时,出现了大量的集成和测试工作。当接近项目结束时,出现了大量的集成和测试工作。直到项目结束之前,都不能演示系统的能力。直到项目结束之前,都不能演示系统的能力。第29页,共31页,编辑于2022年,星期三(3)瀑布模型适用的情况瀑布模型适用的情况在开发中,向下、渐进的路径占支配地位。也就是说,在开发中,向下、渐进的路径占支配地位。也就是说,需求已被很好地理解;并且需求已被很好地理解;并且 过程设计人员也很清楚:开发组织非常熟悉为实现这一模过程设计人员也很清楚:开发组织非常熟悉为实现这一模 型所需要的过
23、程(或经过培训后,熟悉什么时候来支持这型所需要的过程(或经过培训后,熟悉什么时候来支持这 一项目,以实现这一模型所需要的过程)。一项目,以实现这一模型所需要的过程)。因此为了避免产生过多因此为了避免产生过多的反复迭代工作,增加开发成本,的反复迭代工作,增加开发成本,一般在准备采用瀑布模型一般在准备采用瀑布模型(也包括其他模型也包括其他模型)时,需要考虑以下时,需要考虑以下2个问题:第一个问题是,过程设计人员必须对初始产品个问题:第一个问题是,过程设计人员必须对初始产品(通常通常 是软件需求规约,是软件需求规约,SRS)的不确定性进行评估。的不确定性进行评估。另一个问题是,组织是否具有熟练实施每个活动和另一个问题是,组织是否具有熟练实施每个活动和 任务的历史经验。任务的历史经验。第30页,共31页,编辑于2022年,星期三阅读任务;阅读任务;教材:王立福教材:王立福软件工程软件工程第二章第一节第二章第一节问题:问题:什么是基本过程?什么是支持过程?什么是组织过什么是基本过程?什么是支持过程?什么是组织过程?程?软件开发过程的主要活动是什么?每个活动都有软件开发过程的主要活动是什么?每个活动都有什么输出?什么输出?第31页,共31页,编辑于2022年,星期三