软件生存周期及其模型_第1页
软件生存周期及其模型_第2页
软件生存周期及其模型_第3页
软件生存周期及其模型_第4页
软件生存周期及其模型_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

软件生存周期及其模型第一页,共四十四页,编辑于2023年,星期三2.1软件工程过程与软件生存期

为了克服软件危机,人们从其他产业的工业化生产得到启示,于是在68年北大西洋公约的软件可靠性会议(NATO)上,首次提出了“软件工程”的概念。提出了在软件生产中采用工程化的方法,采用一系列科学的、现代化的方法技术来开发软件。这种工程化的思想贯穿到软件开发和维护的全过程。第二页,共四十四页,编辑于2023年,星期三是指在软件工具的支持下,所进行的一系列软件开发和进化的活动。通常包括以下四类基本过程:1、软件规格说明:规定软件的功能及其运行环境。2、软件开发:产生满足规格说明的软件。3、软件确认:确认软件能够完成客户提出的要求。4、软件演进:为满足客户的变更要求,软件必须在使用的过程中演进。软件工程过程

(Softwareengineeringprocess)第三页,共四十四页,编辑于2023年,星期三软件工程过程

(Softwareengineeringprocess)规程与方法工具和设备有技能经过培训的开发人员过程第四页,共四十四页,编辑于2023年,星期三软件工程三要素软件工程过程方法工具软件工程釆用层次化的方法,每个层次都包括过程、方法、工具三要素。第五页,共四十四页,编辑于2023年,星期三软件生存周期软件的生存周期是指一个软件从提出开发要求直到该软件报废为止的整个时期。软件的生存周期一次划分为若干阶段,生存阶段划分时应遵循的基本原则是各阶段的任务尽可能相对独立,同一阶段各项任务的性质尽可能相同,每一阶段都有明确的任务。第六页,共四十四页,编辑于2023年,星期三典型的软件生存周期包括以下阶段:4.详细设计3.概要设计2.需求分析1.可行性研究和项目开发计划第七页,共四十四页,编辑于2023年,星期三典型的软件生存周期包括以下阶段:

1.可行性研究和项目开发计划2.需求分析3.概要设计4.详细设计基本任务:要解决的问题是什么?该问题有行得通的解决办法吗?若有,则需要多少费用、资源、时间等?结束标准:提出书面可行性研究报告;若问题值得去解决,制定项目开发计划。第八页,共四十四页,编辑于2023年,星期三典型的软件生存周期包括以下阶段:1.可行性研究和项目开发计划2.需求分析3.概要设计4.详细设计基本任务:为了解决问题,目标系统必须做什么?确定目标系统的功能。结束标准:给出软件需求说明书第九页,共四十四页,编辑于2023年,星期三典型的软件生存周期包括以下阶段:1.可行性研究和项目开发计划2.需求分析3.概要设计4.详细设计基本任务:概括地说,应如何解决这个问题?把确定的各项功能需求转换成需要的体系结构。设计软件的结构,确定程序由哪些模块组成及模块间的关系,同时设计该项目的总体数据结构和数据库结构。结束标准:给出概要设计文档第十页,共四十四页,编辑于2023年,星期三典型的软件生存周期包括以下阶段:1.可行性研究和项目开发计划2.需求分析3.概要设计4.详细设计基本任务:应怎样具体地实现这个系统?为每个模块完成的功能进行具体描述,把功能描述转变为精确的、结构化的过程描述。结束标准:设计出程序的详细规格说明书第十一页,共四十四页,编辑于2023年,星期三典型的软件生存周期包括以下阶段:7.软件维护6.测试5.编码第十二页,共四十四页,编辑于2023年,星期三典型的软件生存周期包括以下阶段:

5.编码6.测试7.软件维护基本任务:把每个模块的控制结构转换成计算机可接受的程序代码。程序应是结构好、清晰易读,并且与设计一致。结束标准:以某种程序设计语言表示的源程序清单。第十三页,共四十四页,编辑于2023年,星期三典型的软件生存周期包括以下阶段:

5.编码6.测试7.软件维护基本任务:为保证软件的质量,在设计测试用例的基础上检验软件的各个组成部分,是否达到预定要求。结束标准:软件合格,能交付用户使用。第十四页,共四十四页,编辑于2023年,星期三典型的软件生存周期包括以下阶段:

5.编码6.测试7.软件维护基本任务:通过各种必要的维护活动使系统持久地满足用户需要,是软件生存周期中时间最长的阶段。结束标准:以某种程序设计语言表示的源程序清单。第十五页,共四十四页,编辑于2023年,星期三技术审查和管理复审技术审查是从技术角度进行审查,是保证软件质量和降低软件成本的重要措施。技术审查通常由专家组成的审查小组来承担审查工作。管理复审的主要任务实在软件生存周期的每个重要里程碑,对工程项目的成本、实际花费的经费、投资回收的前景、项目的进度等经济因素从管理角度进行审查。第十六页,共四十四页,编辑于2023年,星期三2.2软件生存周期模型软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。软件生存周期模型的选择受软件规模、种类、开发方式、开发环境以及开发使用的方法等因素影响。软件生存周期模型一旦确定,软件开发过程就应该按照模型严格执行,不可随意更改。第十七页,共四十四页,编辑于2023年,星期三问题定义编码需求分析软件设计可行性研究运行与维护测试开发时期运行时期计划时期(目标与范围说明书)(可行性论证论告)(维护报告)(测试报告)(源程序清单)(设计文档)(需求说明书)软件生命周期(SDLD)—瀑布模型瀑布模型第十八页,共四十四页,编辑于2023年,星期三常用的软件开发模型软件开发模型是描述软件开发过程中各种活动如何执行的模型。因此又称为软件过程模型。软件过程模型是对软件开发实际过程的抽象和简化。

目前典型的软件开发模型有:

瀑布模型、增量模型、原型模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等。不同的开发方法有不同的软件过程模型。第十九页,共四十四页,编辑于2023年,星期三软件过程模型软件过程模型是软件开发全过程、软件开发活动以及它们之间关系的结构框架软件项目的管理提供里程碑和进度表为软件开发提供原则和方法第二十页,共四十四页,编辑于2023年,星期三以软件需求完全确定为前提的瀑布模型在软件开发初期只能提供基本需求所采用的渐进式开发模型如原型模型、螺旋模型、增量模型、并发开发模型

以形式化开发方法为基础的变换模型基于构件的开发过程敏捷开发过程---统一软件开发过程RUP五类软件开发过程模型第二十一页,共四十四页,编辑于2023年,星期三瀑布模型问题定义编码需求分析软件设计可行性研究运行与维护测试开发时期运行时期计划时期(目标与范围说明书)(可行性论证论告)(维护报告)(测试报告)(程序)(设计文档)(需求说明书)瀑布模型第二十二页,共四十四页,编辑于2023年,星期三瀑布模型主要思想

软件开发过程与软件生命周期是一致的相邻二阶段之间存在因果关系需对阶段性产品进行评审第二十三页,共四十四页,编辑于2023年,星期三瀑布模型的优点软件生命周期模型,使软件开发过程可以在分析、设计、编码、测试和维护的框架下进行;软件开发过程具有系统性、可控性,克服了软件开发的随意性。第二十四页,共四十四页,编辑于2023年,星期三瀑布模型的缺点项目开始阶段用户很难精确的提出产品需求,由于技术进步,用户对系统深入的理解,修改需求十分普遍。项目开发晚期才能得到程序的运行版本,这时修改软件需求和开发中的错误代价很大。采用线性模型组织项目开发经常发生开发小组人员“堵塞状态”,特别是项目的开始和结束。第二十五页,共四十四页,编辑于2023年,星期三增量模型(incrementalmodel)增量模型是一种非整体开发的模型。是一种进化式的开发过程。根据增量的方式和形式的不同,分为:基于瀑布模型的渐增模型基于原型的快速原型模型该模型具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目。增量模型和瀑布模型之间的本质区别是什么?第二十六页,共四十四页,编辑于2023年,星期三增量模型特点增量小而可用的软件特点在前面增量的基础上开发后面的增量每个增量的开发可用瀑布或快速原型模型迭代的思路第二十七页,共四十四页,编辑于2023年,星期三

为了描述软件开发过程中可能的回溯,尤其是维护阶段往往要经历上述各个阶段。采用循环模型描述。需求分析设计编码测试运行评价计划循环模型循环模型第二十八页,共四十四页,编辑于2023年,星期三

速成原型的工作模型是一个循环的模型。1.快速分析快速确定软件系统的基本要求,确定原型所要体现的特征(界面,总体结构,功能,性能)2.构造原型考虑主要特征,快速构造一个可运行的系统。有三类原型:用户界面原型,功能原型,性能原型。3.运行和评价原型

4.修改与改进原型的工作模型运行评价构造快速分析修改第二十九页,共四十四页,编辑于2023年,星期三软件开发方法

软件开发的目标是要在规定的投资和时间内,开发出符合用户的需求,高质量的软件,为此需要有成功的开发方法。软件开发方法可分为两大类:面向过程(结构化)的开发方法面向对象的开发方法第三十页,共四十四页,编辑于2023年,星期三结构化开发方法(StructuredDevelopingMethod)是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速,自然和方便。结构化方法总的指导思想自顶向下、逐步求精。它的基本原则是功能的分解与抽象。一、结构化开发方法的组成结构化程序设计方法SP法(StructuredProgram)结构化设计方法SD法(StructuredDesign)结构化分析方法SA法(StructuredAnalysis)SA,SD,SP法相互衔接,形成了一整套开发方法。结构化方法及瀑布模型第三十一页,共四十四页,编辑于2023年,星期三什么是原型化方法(PrototypingMethod)原型化方法及其工作模型

原型——是软件的一个早期可运行的版本,它反映了最终系统的部分重要特性。原型化方法的基本思想是花费少量代价建立一个可运行的系统,使用户及早获得学习的机会。原型化方法又称速成原型法(RapidPrototyping)。第三十二页,共四十四页,编辑于2023年,星期三构造原型运行/评价原型原型完成否要细部说明否严格说明细部效果满意否整理原型提供文档修正改进原型YYNN快速分析,确定初步规格说明YN细化的快速原型模型图2细化的快速原型模型快速分析或修改评价构造运行第三十三页,共四十四页,编辑于2023年,星期三原型模型的优点原型模型支持软件需求开发,帮助用户和开发人员理解需求,是软件需求工程的关键。它产生的正式需求文挡,是软件开发的基础。如果开发的原型是可运行的,它的若干高质量的程序片段和开发工具可用于工作程序的开发。原型的开发和评审是系统分析员和用户/客户共同参予的迭代过程,每个迭代循环都是线性过程。第三十四页,共四十四页,编辑于2023年,星期三对大型软件,需要多个原型描述系统的生存期,螺旋模型将瀑布模型与原型化模型结合起来,并加入了风险分析。螺旋模型螺旋模型螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期可分为4个工作步骤:第一,确定目标、方案和限制条件;第二,评估方案、标识风险和解决风险;第三,开发确认产品;第四,计划下一周期工作。第三十五页,共四十四页,编辑于2023年,星期三螺旋模型的使用软件工程项目从螺旋中心开始启动,沿顺时针方向前进。第一圈产生产品规格说明;第二圈产生一个用于开发的原型;第三圈产生软件产品的初始版本;第四圈产生软件产品比较完善的新版本

……。第三十六页,共四十四页,编辑于2023年,星期三螺旋模型的优点符合人们认识现实世界和软件开发的客覌规律;支持软件整个生命周期;保持瀑布模型的系统性、阶段性;利用原型评估降低开发风险;开发者和用户共同参与软件开发,尽早发现软件中的错误;不断推出和完善软件版本,有助于需求变化,获取用户需求,加强对需求的理解。第三十七页,共四十四页,编辑于2023年,星期三面向对象方法(OOSD(Object-OrientedSoftwareDevelopment)是80年代推出的一种全新的软件开发方法。非常实用而强有力,被誉为90年代软件的核心技术之一。面向对象方法及其工作模型

其基本思想是:对问题领域进行自然的分割,以更接近人类通常思维的方式建立问题领域的模型,以便对客观的信息实体进行结构和行为的模拟,从而使设计的软件更直接地表现问题的求解过程。面向对象的开发方法以对象作为最基本的元素,是分析和解决问题的核心。第三十八页,共四十四页,编辑于2023年,星期三面向对象开发方法的组成

OOSD由三部分组成:

OOA(Object-OrientedAnalysis)面向对象的分析

OOD(Object-OrientedDesign)面向对象的设计

OOP(Object-OrientedProgram)面向对象的程序设计OOAOOA强调的是对一个系统中的对象特征和行为的定义。建立系统的三类模型。OODOODOOD与OOA密切配合顺序实现对现实世界的进一步建模。OOPOOPOOP是面向对象的技术中发展最快的,使用面向对象的程序设计语言,进行编码。第三十九页,共四十四页,编辑于2023年,星期三喷泉模型分析系统设计软件设计实现喷泉模型

该模型是由B.H.Sollers和J.M.Edwards于1990年提出的一种新的开发模型。它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性,喷泉模型使开发过程具有迭代性和无间隙性。

其特点如下:

1.开发过程有分析、系统设计、软件设计和实现4个阶段。2.各阶段相互重叠,它反映了软件过程并行性的特点。3.以分析为基础,资源消耗成塔型。4.反映了软件过程迭代性的自然特性,从高层返回低层无资源消耗。5.强调增量开发,整个过程是一个迭代的逐步提炼的过程。

第四十页,共四十四页,编辑于20

温馨提示

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

评论

0/150

提交评论