第二章软件生存期与与软件过程_第1页
第二章软件生存期与与软件过程_第2页
第二章软件生存期与与软件过程_第3页
第二章软件生存期与与软件过程_第4页
第二章软件生存期与与软件过程_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1软件生存周期软件生存周期与软件过程与软件过程2一、实用软件工程方法:一、实用软件工程方法: 1 1、结构化方法、结构化方法(SA(SA、SDSD、SP)SP), 2 2、面向数据结构(、面向数据结构(JacsonJacson、warrierwarrier)方法,)方法, 3 3、问题分析法、问题分析法PAMPAM, 4 4、面向对象方法(、面向对象方法(OOAOOA、OODOOD、OOPOOP),), 面向方面编程面向方面编程(Aspect(AspectOriented ProcessOriented Process,AOP)AOP) 5 5、可视化开发(针对图形用户界面的开发方法),、可视

2、化开发(针对图形用户界面的开发方法), 6 6、ICASEICASE(Integrated Computer-Aided Software EngineeringIntegrated Computer-Aided Software Engineering), 7 7、软件重用、软件重用和和组件连接组件连接等等二、形式化开发方法:二、形式化开发方法: 采用严格的数学语言,具有精确的数学语义的方法,都采用严格的数学语言,具有精确的数学语义的方法,都称为形式化方法。称为形式化方法。 有限状态机、有限状态机、Petri Petri 网、进程代数、一阶逻辑、网、进程代数、一阶逻辑、 时态逻辑、时态逻辑、

3、Z Z方法、方法、VDMVDM、LarchLarch软件开发方法:软件开发方法:3A process A process defines defines WhoWho is doing is doing WhatWhat, , WhenWhen, and , and HowHow, in order , in order to reach a to reach a certain goal.certain goal.过程定义了运用方法的顺序、应该交付的文过程定义了运用方法的顺序、应该交付的文档资料、为保证软件质量和协调变化所需要档资料、为保证软件质量和协调变化所需要采取的管理措施,以及标志软件

4、开发各个阶采取的管理措施,以及标志软件开发各个阶段任务完成的里程碑。段任务完成的里程碑。4过程:过程: 我们可以把一系列有序的任务集合看作过程:过程是涉我们可以把一系列有序的任务集合看作过程:过程是涉及活动、约束和资源,并产生某种输出的一系列步骤。及活动、约束和资源,并产生某种输出的一系列步骤。过程的特点:过程的特点:n过程需要使用一系列工具和技术。过程需要使用一系列工具和技术。n过程规定所有主要的过程活动。过程规定所有主要的过程活动。n过程使用资源,受制于约束(如进度),产生中间产品和最终过程使用资源,受制于约束(如进度),产生中间产品和最终产品。产品。n过程可能由在某种方式上相互关联的子过

5、程组成,过程可定义过程可能由在某种方式上相互关联的子过程组成,过程可定义过程的层次结构,以便每一子过程均有自己的过程模型。过程的层次结构,以便每一子过程均有自己的过程模型。n每一过程活动均有入口和出口标准,以便我们知晓活动何时开每一过程活动均有入口和出口标准,以便我们知晓活动何时开始,何时结束。始,何时结束。软件生命周期与过程软件生命周期与过程5 软件开发模型软件开发模型软件开发模型软件开发模型: : 软件开发软件开发全部过程全部过程、活动活动和和任务任务的的结构框架结构框架。 它能直观表达软件开发全过程,明确规定它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。要完成的主

6、要活动、任务和开发策略。 软件开发模型软件开发模型也常称为:也常称为: 软件过程模型软件过程模型 软件生存期模型软件生存期模型 软件工程范型软件工程范型6n活动活动按顺序组织在一起,以便我们清晰地知道按顺序组织在一起,以便我们清晰地知道当一项活动执行时,与何活动相关。当一项活动执行时,与何活动相关。n为解释每一活动的目标,每一过程都有一系列为解释每一活动的目标,每一过程都有一系列的指导原则。的指导原则。n对活动、资源或产品须施于约束或控制。例如对活动、资源或产品须施于约束或控制。例如预算或进度会限制活动花费的时间,工具会限预算或进度会限制活动花费的时间,工具会限制使用资源的方式。制使用资源的方

7、式。软件生命周期也是一个过程!软件生命周期也是一个过程!7 同其它事物一样,软件也有一个孕育、同其它事物一样,软件也有一个孕育、诞生、成长、成熟、衰亡的生存过程。我们诞生、成长、成熟、衰亡的生存过程。我们称其为计算机软件的生存周期。即:称其为计算机软件的生存周期。即: 软件产品或软件系统从软件产品或软件系统从设计、设计、投入使用到被淘汰投入使用到被淘汰的全过程。的全过程。 根据这一思想,把上述基本的过程活动根据这一思想,把上述基本的过程活动进一步展开,可以得到软件生存周期的六个进一步展开,可以得到软件生存周期的六个步骤。步骤。软件生存周期软件生存周期( (Software Life Cycle

8、Software Life Cycle) )8 1 1) 制定计划:制定计划:确定要开发软件系统的总目标,给出它确定要开发软件系统的总目标,给出它的功能、性能、可靠性以及接口等方面的要求的功能、性能、可靠性以及接口等方面的要求; ; 研究完成该项软件任务的可行性,探讨解决问题的可研究完成该项软件任务的可行性,探讨解决问题的可能方案能方案; ; 制定完成开发任务的实施计划,连同可行性研究报告,制定完成开发任务的实施计划,连同可行性研究报告,提交管理部门审查。提交管理部门审查。 2 2) 需求分析:需求分析:对待开发软件提出的需求进行分析并对待开发软件提出的需求进行分析并给出详细的定义。给出详细的

9、定义。编写出软件需求说明书及初步的用户手编写出软件需求说明书及初步的用户手册,提交管理机构评审。册,提交管理机构评审。 3 3)软件设计)软件设计:把已确定了的各项需求转换成一个相应把已确定了的各项需求转换成一个相应的体系结构。进而对每个模块要完成的工作进行具体的描的体系结构。进而对每个模块要完成的工作进行具体的描述。述。编写设计说明书,提交评审。编写设计说明书,提交评审。 9 4 4) 程序编写:程序编写:在设计完成之后,用一种适当的程序设在设计完成之后,用一种适当的程序设计语言或计语言或CASECASE工具把软件设计转换成计算机可以接受的程工具把软件设计转换成计算机可以接受的程序代码。序代

10、码。应当就风格及清晰性对代码进行评审,应当就风格及清晰性对代码进行评审,而且反过来而且反过来应能直接追溯到详细设计描述。应能直接追溯到详细设计描述。 5 5) 软件测试:软件测试:在设计测试用例的基础上检验软件的在设计测试用例的基础上检验软件的各个组成部分。各个组成部分。单元测试单元测试检查每一单独的模块部件的功能和检查每一单独的模块部件的功能和性能。性能。组装测试组装测试提供了构造软件模块结构的手段,同时测试提供了构造软件模块结构的手段,同时测试其功能和接口。其功能和接口。确认测试确认测试检查所有的需求是否都得到满足。检查所有的需求是否都得到满足。在每一个测试步骤之后,都要进行调试,以诊断和

11、纠正的故在每一个测试步骤之后,都要进行调试,以诊断和纠正的故障。障。 6 6) 运行运行/ /维护:维护:已交付的软件投入正式使用,并在运已交付的软件投入正式使用,并在运行过程中进行适当的维护。为改正错误,适应环境变化及功行过程中进行适当的维护。为改正错误,适应环境变化及功能增强而进行的一系列修改活动。与软件维护相关联的那些能增强而进行的一系列修改活动。与软件维护相关联的那些任务依赖于所要实施的维护的类型。任务依赖于所要实施的维护的类型。 10软件生存期阶段的不同划分软件生存期阶段的不同划分(1)(1)可行性研究与计划可行性研究与计划(2)(2)需求分析需求分析(3)(3)总体设计总体设计 上

12、游上游 (4)(4)详细设计详细设计(5)(5)实现实现(6)(6)集成测试集成测试(7)(7)确认测试确认测试 下游下游(8)(8)使用和维护使用和维护(根据(根据国标国标计算机软件开发规范计算机软件开发规范)11只考虑只考虑编写程序编写程序 涉及整个涉及整个软件生存软件生存周期周期扩展到扩展到软件工作的范围121314151617软件生存期模型(描述软件过程)软件生存期模型(描述软件过程) 瀑布模型是将软件生存周期各活动规定为瀑布模型是将软件生存周期各活动规定为依线性顺序联接的若干阶段的模型。它包括:依线性顺序联接的若干阶段的模型。它包括:可行性分析、项目开发计划、需求分析、概要可行性分析

13、、项目开发计划、需求分析、概要设计、详细设计、编码、测试和维护。设计、详细设计、编码、测试和维护。 它规定了由前至后、相互衔接的固定次序,它规定了由前至后、相互衔接的固定次序,如同瀑布流水,逐级下落。如同瀑布流水,逐级下落。18可行性研究与计划可行性研究与计划需求分析需求分析设计设计编码编码运行维护运行维护测试测试定义定义阶段阶段开开发发阶阶段段维护阶段维护阶段19 有人把软件维护看成为软件的二次开发,把开发活动和有人把软件维护看成为软件的二次开发,把开发活动和维护活动区别开来,便有了维护活动区别开来,便有了“ “ b ”b ”型软件生存期模型。型软件生存期模型。20 阶段间具有顺序性和依赖性

14、。阶段间具有顺序性和依赖性。21原型模型原型模型(快速原型模型)(快速原型模型)原型范型原型范型用户测试用户测试运行原型运行原型建造建造/ /修改修改 原型原型 听取用听取用 户意见户意见22采用原型模型的软件生存周期采用原型模型的软件生存周期分析定义分析定义系统需求系统需求生成生成原型原型系统系统设计设计程序程序设计设计编码编码测试测试运运 行行和维护和维护原型化原型化含原型化的含原型化的软件软件生存期生存期23需求分析需求分析系统设计系统设计程序设计程序设计编编 码码运行与维护运行与维护可接受性测可接受性测试试系统测试系统测试单元与集成单元与集成测试测试需求验证需求验证设计确认设计确认V模

15、型模型24zV模型是瀑布模型的变型模型是瀑布模型的变型,表现了验证测试活动与分析和,表现了验证测试活动与分析和设计间关系。设计间关系。z模型左侧与右侧的联系表明若在确认和验证过程中发现了模型左侧与右侧的联系表明若在确认和验证过程中发现了问题,问题,V V模型的左侧需要重新被执行。模型的左侧需要重新被执行。z 换句话说,换句话说,V V模型隐含在瀑布模型中迭代和再工作模型隐含在瀑布模型中迭代和再工作的明确化。的明确化。z 瀑布模型关注瀑布模型关注:过程和产品,过程和产品,z V V模型关注模型关注: 活动和正确性。活动和正确性。25阶段式开发:增量和迭代模型阶段式开发:增量和迭代模型 系统设计时

16、分片交付,可使用户在系统设计时分片交付,可使用户在使用某些基本功能的同时,开发剩余的使用某些基本功能的同时,开发剩余的功能。功能。 这样通常会并行地存在两个系统:这样通常会并行地存在两个系统:生产系统生产系统和和开发系统开发系统。 运行或生产系统是当前被客户或用运行或生产系统是当前被客户或用户所使用的系统。户所使用的系统。 开发系统是准备用于替代当前生产开发系统是准备用于替代当前生产系统的下一个版本。系统的下一个版本。26创建版本创建版本1创建版本创建版本2创建版本创建版本3使用版本使用版本1使用版本使用版本2使用版本使用版本3开发者开发者使用者使用者阶段式开发:增量和迭代模型阶段式开发:增量

17、和迭代模型27阶段式开发:增量和迭代模型阶段式开发:增量和迭代模型 增量开发增量开发迭代开发迭代开发28 螺旋模型n螺旋模型螺旋模型将瀑布模型将瀑布模型与与增量模型增量模型结合起来,结合起来,加入了两种模型均忽略了的风险分析,弥加入了两种模型均忽略了的风险分析,弥补了这两种模型的不足。补了这两种模型的不足。n螺旋模型是一种螺旋模型是一种风险驱动的模型风险驱动的模型。n螺旋模型将开发过程分为几个螺旋周期,螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符合。每个螺旋周期大致和瀑布模型相符合。 n螺旋模型适合于螺旋模型适合于大型软件的开发大型软件的开发。2930 面向对象的开发模型

18、面向对象的开发模型n对象技术对象技术为软件工程基于构件的过程模型提供为软件工程基于构件的过程模型提供了技术框架。了技术框架。n面向对象范型面向对象范型强调了类的创建,类封装了数据强调了类的创建,类封装了数据和用于操纵该数据的算法。如果经过合适的设和用于操纵该数据的算法。如果经过合适的设计和实现,面向对象的类可以在不同的应用及计和实现,面向对象的类可以在不同的应用及基于计算机的系统结构中复用基于计算机的系统结构中复用 。n 面向对象模型面向对象模型融合了螺旋模型的许多特征。融合了螺旋模型的许多特征。 它本质上是演化的,支持软件开发的迭代方它本质上是演化的,支持软件开发的迭代方法。法。 31喷泉模

19、型喷泉模型3233变换模型变换模型n变换模型是一种适合于形式化开发变换模型是一种适合于形式化开发方法的模型。方法的模型。n从软件需求形式化说明开始,经过从软件需求形式化说明开始,经过一系列变换,最终得到系统的目标一系列变换,最终得到系统的目标程序。程序。34模型检查模型检查软件需求形式软件需求形式化说明(化说明(M0)软件需求形式软件需求形式化说明(化说明(M1)(M2)程序程序(Mn)变换变换变换变换变换变换变换模型变换模型35 (1) (1)该模型只适合于软件的形式化开发方法。该模型只适合于软件的形式化开发方法。 (2)(2)必须有严格的数学理论和形式化技术支持。必须有严格的数学理论和形式

20、化技术支持。 (3)(3)缺乏相应的支持工具,处于手工处理方式。缺乏相应的支持工具,处于手工处理方式。 (4)(4)尚处于研究和实验阶段,离使用尚有一定距离。尚处于研究和实验阶段,离使用尚有一定距离。 (5)(5)对软件开发人员要求较高。对软件开发人员要求较高。36也称为基于知识的软件开发模型:也称为基于知识的软件开发模型: 1 1、是知识工程与软件工程在开发模型上结合的产、是知识工程与软件工程在开发模型上结合的产物物 2 2、要建立知识库、要建立知识库/ /专家系统专家系统 将模型本身、软件工程知识和特定领域的知识分将模型本身、软件工程知识和特定领域的知识分别存入知识库,由此构成某一领域的软

21、件开发系别存入知识库,由此构成某一领域的软件开发系统统 。3738n软件过程软件过程 可定义为人们用来开发和维护软件以及相关产品(如:工程计划、设可定义为人们用来开发和维护软件以及相关产品(如:工程计划、设计文档、规章、检测事例及用户手册)的一组活动、方法、实践及转换。计文档、规章、检测事例及用户手册)的一组活动、方法、实践及转换。 软件过程重要性的提高已经引起了对软件过程改进的要求,这就需要软件过程重要性的提高已经引起了对软件过程改进的要求,这就需要过程分析和评估的方法。过程分析和评估的方法。(1) (1) 软件工程过程软件工程过程 (Software Engineering Process

22、) (Software Engineering Process) 软件工程过程是为获得软件产品,在软件工具支持下由软件工程师完成的软件工程过程是为获得软件产品,在软件工具支持下由软件工程师完成的一系列软件工程活动。软件工程过程通常包含四种基本的过程活动:一系列软件工程活动。软件工程过程通常包含四种基本的过程活动: P(Plan)P(Plan):软件规格说明。规定软件的功能及其运行的限制;:软件规格说明。规定软件的功能及其运行的限制; D(Do)D(Do):软件开发。产生满足规格说明的软件;:软件开发。产生满足规格说明的软件; C(Check)C(Check):软件确认。确认软件能够完成客户提出

23、的要求;:软件确认。确认软件能够完成客户提出的要求; A(Action)A(Action):软件演进。为满足客户的变更要求,软件必须在使用的过:软件演进。为满足客户的变更要求,软件必须在使用的过程中演进。程中演进。 事实上,软件工程过程是一个软件开发机构针对某一类软件产品为自事实上,软件工程过程是一个软件开发机构针对某一类软件产品为自己规定的工作步骤,它应当是科学的、合理的,否则必将影响到软件产品己规定的工作步骤,它应当是科学的、合理的,否则必将影响到软件产品的质量。的质量。39nRational Rational 统一过程(统一过程(RUPRUP) 由由RationalRational推出的

24、一种完整的软件过程。推出的一种完整的软件过程。六条最有效的开发经验六条最有效的开发经验 ( 迭代式开发、管理需求、使用基于构件的体系结构、迭代式开发、管理需求、使用基于构件的体系结构、 可视化建模、验证软件质量、控制软件变更)可视化建模、验证软件质量、控制软件变更) RUPRUP软件开发生命周期软件开发生命周期 二维的生命周期模型,纵轴:核心工作流(二维的生命周期模型,纵轴:核心工作流(9 9个),个), 横轴:时间;横轴:时间; RUPRUP软件生命周期:分四个连续阶段软件生命周期:分四个连续阶段 初始、精化、构建、移交;初始、精化、构建、移交;40n敏捷过程敏捷过程(0101年年1717位

25、软件专家起草宣言)位软件专家起草宣言)与极限(与极限(XPXP)编程)编程 极限编程是敏捷过程中最有名的一个极限编程是敏捷过程中最有名的一个, ,含义:把好的开发时间运用到极致。含义:把好的开发时间运用到极致。 XPXP(Extreme ProgrammingExtreme Programming),是由),是由Kent BeckKent Beck大师提出的。大师在经历大师提出的。大师在经历传统软件开发的痛苦之后,希望能够找到一种优秀的软件开发方法。他总传统软件开发的痛苦之后,希望能够找到一种优秀的软件开发方法。他总结了大量软件的成功和失败因素之后,提出了改进软件开发方法的四个要结了大量软件的

26、成功和失败因素之后,提出了改进软件开发方法的四个要素:素: 沟通(沟通(communicationcommunication)、简单化()、简单化(simplicitysimplicity)、)、 反馈(反馈(feedbackfeedback)、)、 勇气(勇气(couragecourage)。)。 形成了形成了XPXP的核心价值观。在经历了数年的发展,的核心价值观。在经历了数年的发展,XPXP在软件开发的各方面都在软件开发的各方面都发展出了众多的方法来支持软件开发。发展出了众多的方法来支持软件开发。n微软过程微软过程 微软过程准则、微软生命周期(微软过程准则、微软生命周期(5 5个阶段)、微

27、软过程模型个阶段)、微软过程模型4142国际标准定义的软件生存过程(1995 ISO/IEC 12207)软件生存期过程软件生存期过程支持过程支持过程组织过程组织过程主要过程主要过程获获取取过过程程供供应应过过程程开开发发过过程程运运行行过过程程维维护护过过程程文文档档编编制制过过程程配配置置管管理理过过程程质质量量保保证证过过程程验验证证过过程程确确认认过过程程联联合合评评审审过过程程审审核核过过程程问问题题解解决决过过程程管管理理过过程程基基础础设设施施过过程程改改进进过过程程培培训训过过程程43过程名过程名执行者执行者活动内容活动内容获取获取过程过程项目委项目委托方托方确定需求;招标;签订合同;对供应方的监督;验确定需求;招标;签订合同;对供应方的监督;验收完成。收完成。供应供应过程过程项目承项目承包方包方理解需求;投标;签订合同;计划;实施;控制;理解需求;投标;签订合同;计划;实施;控制;评审评价;交付。评审评价;交付。开发开发过程过程软件开软件开发人员发人员过程实施准备;系统需求分析;系统结构设计;软过程实施准备;系统需求分析;系统结构

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论