资源描述
,*,第二章 软件开发模型,传统开发模型,瀑布模型,快速原型模型,演化开发模型,增量模型,螺旋模型,面向对象开发模型,喷泉模型,构件集成模型,形式化开发模型,转换模型,净室模型,2.1 软件生存周期,引言,生存周期:工业产品、软件、人的生命,计划时期,问题定义,系统解决什么问题、目标、范围,可行性分析,了解用户要求及观察环境、收集资料、数据流程、技术、,经济、操作可行性、组织、人力、物力、效益,开发时期,需求分析,弄清用户的全部需求,用“需求规格说明书”准确地表达出来;,建立系统目标逻辑模型,即“做什么”,软件设计,分为总体设计与详细设计,产生软件结构、数据结构、用户界面和算法;建立系统物理模型,即“怎么做”,编码,实现用户界面,将详细设计“翻译”成员程序代码,测试,单元、组装(综合)、确认、系统;白盒、黑盒,运行时期,软件维护,正确性、适应性、完善性,典型的软件生存周期,问题定义,可行性研究,需求分析,软件设计,编码,测试,运行与维护,计划时期,开发时期,运行时期,技术复审和管理复审,复审,每阶段结束前,技术复审,从技术角度确保质量,降低软件成本(尽早发现问题),管理复审,成本、进度、经费等,技术复审和管理复审,审查小组,审查过程,准备,简要介绍情况,阅读被审文档,开审查会,返工,复查,2.2 传统软件开发模型,1.瀑布模型,瀑布模型是将软件生存周期各活动规定为依线性顺序联接的若干阶段的模型。它包括可行性分析、项目开发计划、需求分析、概要设计、详细设计、编码、测试和维护。它规定了由前至后、相互衔接的固定次序,如同瀑布流水,逐级下落。,瀑布模型,问题定义,编 码,需求分析,设 计,可行性研究,运行与维护,测 试,开发,时期,运行,时期,计划时期,(目标与范围说明书),(可行性论证论告),(测试报告),(程序),(设计文档),(需求说明书),图2.2.0 瀑布模型的生存周期,(运行日志,维护报告),瀑布模型,特点,阶段的顺序性和依赖性,推迟实现的观点,质量保证,存在问题,不适合需求模糊的系统,瀑布模型的开发过程,在实际开发过程中,为了保证软件产品的质量,每个阶段完成之后,要对其阶段的工作和成果做出客观评价,如发现问题,就应停止前进,沿着所经历的阶段返回,就构成了图中所示的阶段间的向上流线。(带“反馈环”),瀑布模型各个阶段的任务与文档,在各个阶段之间的工作转换是通过各阶段的不同文档资料来完成的,而各个阶段的任务则由一系列工程化的方法和工具来实现。其中系统分析和系统设计是系统生命周期中最重要的两个阶段,它们是系统开发的核心内容,开发的难度较大,需要使用有效的方法和工具,在系统分析阶段的常用技术有结构化系统分析方法(SA)、结构化系统设计方法(SD),在系统分析阶段的相应软件工具有信息关联图(IRD),管理业务流程图(TFD),数据流程图(DFD),数据词典(DD),实体关系图(E-R)等等。在系统设计阶段的软件工具有系统模块结构图,Jackson设计方法。在程序设计阶段用结构化程序设计方法(SP)。,瀑布模型各个阶段的任务与文档,瀑布模型法明确规定了每个阶段的任务。上一阶段完成确定的任务后就产生一定格式的文档交给下一阶段。不同阶段的任务一般由不同级别的软件人员来承担。,瀑布模型法适合于在软件需求比较明确、开发技术比较成熟、工程管理比较严格的场合下使用。,例如工资管理、会计系统软件的需求比较明确,就适合于使用瀑布模型法进行开发。,瀑布模型各个阶段的任务与文档,软件的简要定义:,软件=程序+数据+文档,按照软件工程学的要求,在软件生命期的每一阶段,都有明确的任务,并产生相应的文档,作为下阶段工作的基础和依据。采用瀑布模型进行软件开发时,各阶段的主要任务及文档如下:,1.,可行性研究与计划, 就是调查了解用户的要求及观察环境,包括企业的管理现状和人、财、物的使用状况,企业内部分工及内部业务往来等。, 掌握现有系统的数据处理流程和方法,包括各部门人员的分工,当前存在的问题及薄弱环节,业务处理流程收集系统有关的账、证、表、卡、文件、资料等信息。,瀑布模型各个阶段的任务与文档,1.,可行性研究与计划, 从技术上,经济上,操作可行性上和其它方面(如组织上、人员上)去研究确定并论证新系统的可行性,包括企业的管理工作的规范性、科学性、各种信息的可靠性、管理水平、有关人员对新开发系统的设想和要求,现有人员对计算机知识的掌握程度是否足以支持新系统的运行,经济效益与管理效益的初步分析等。,瀑布模型各个阶段的任务与文档,1.,可行性研究与计划,编写系统调查报告和可行性报告,报有关部门审批。,可行性报告,其内容主要包括:,单位的基本情况(规模、人员、机构);,系统的初步方案;,开发新系统的必要性;,技术可行性;,操作可行性;,经济可行性;,结论或建议。,瀑布模型各个阶段的任务与文档,值得注意的是,首先必须有由,单位领导签发的系统开发任务书,,任务书的内容应简洁明了、全面完整而具体,以作为系统需求分析和开发工作的依据。,可行性研究报告批准之后,便可着手进行软件计划工作。对软件作用范围、工作环境和基本功能、特性加以研究,确定要做什么,不要做什么,做到什么程序。同时,估算出所需的资金、工作量、费用和进度。编制系统开发初步进度计划表。,瀑布模型各个阶段的任务与文档,2. 系统(需求)分析,研究现有系统的数据处理流程,去粗取精,去伪存真,把握现有系统数据处理流程中的本质要素,改善其中不合理部分,增加用户需要的新功能,并以计算机为基础,确定出新系统的功能界面,建立新系统的逻辑模型(即数据流图、数据词典、加工说明、控制说明等),编制出能反映新系统功能、特点,运行环境和测试确认准则的软件需求说明书(或称系统分析说明书),报有关部门审批。,瀑布模型各个阶段的任务与文档,3.,系统(软件)设计(1),系统设计包括概要设计和详细设计两部分。,概要设计又叫总体设计,它在系统分析说明书的基础上,建立起包括模块结构和数据结构在内的软件系统结构,并完成各模块的功能和相应之间的接口关系。它以交付包括总体结构设计和数据库设计的概要设计说明书为完成标志。,瀑布模型各个阶段的任务与文档,3.,系统(软件)设计(2),详细设计是对概要设计所划分模块的进一步细化,它详细描述每一模块的功能和实现该功能的程序,完成所用到的程序实现方法和内部数据结构等。并确定模块间的详细接口。设计完成后,应提交详细设计说明书。,模块表示能够用计算机程序代码实现的,相对独立的单一数据处理功能,所以模块有时也叫功能模块。,瀑布模型各个阶段的任务与文档,系统调查、系统分析与系统设计的主要区别在于:系统调查得出的是旧系统的逻辑模型;系统分析将旧系统的逻辑模型转换成新系统的目标逻辑模型;系统设计得到的则是新系统的物理模型(即解决如何用计算机实现逻辑模型的全部功能)。,瀑布模型各个阶段的任务与文档,旧系统的逻辑模型是手工方式的真实写照。新系统的目标逻辑模型主要用来规定未来的新系统应具备哪些功能,新系统的信息流程等,反映了新系统需要做什么,但不反映如何做。物理模型则着重于描述在技术上如何实现这些功能,采用哪些技术方法,解决如何做的问题。例如,在调查阶段,我们遇到报表收集和输入问题,这只需要了解报表的种类、作用、各种报表所包含的数据项,没有必要考虑、报表的输入格式、输入方式、输入内容、输入的正确性控制等问题。这些问题将在系统分析、系统设计阶段来完成。,瀑布模型各个阶段的任务与文档,4.,程序设计(编码),程序设计是按照详细设计说明书的要求,用程序设计语言或数据库语言为每个模块编制计算机可运行的源程序,并且对单个模块进行测试,验证模块的功能、模块接口与设计说明书的一致性。最后提交源程序清单及程序设计说明书。,瀑布模型各个阶段的任务与文档,5.,系统测试,通过测试,发现隐藏在程序内部的各种错误。测试包括单元测试,组装(综合)测试、确认测试和系统测试。单元测试是验证单个模块的正确性,组装测试是将经过模块测试的各个模块进行装配并测试,从而形成一个完整的系统。确认测试是验证所开发的系统是否符合系统分析中确定的全部功能和性能要求。系统测试完毕,提交的文档应包括测试报告,用户操作手册等,经有关部门评审确认后,便结束了软件开发工作,软件可作为一个产品投入运行。,瀑布模型各个阶段的任务与文档,6.,运行和维护,(1),当软件产品制成并交付使用后,便开始了软件生命周期的最后阶段运行和维护阶段。软件产品投入运行之后。仍有必要对软件进行维护,维护工作又分为以下两个部分。,程序维护,正确性维护:改正在开发阶段产生,在测试阶段又没,有发现的错误。,适应性维护:为适应软件的外界环境的变化引起的软,件修改。,完善性维护:为扩充软件系统功能或改善性能而进行,的修改。,瀑布模型各个阶段的任务与文档,6.,运行和维护,(2),使用维护,环境维护:为保证软件产品正常运行而进行的维护,(如主机、 打印机等)。,意外事故维护:解决因发生意外事故而使数据混,乱或丢失的问题而进行的维护。,计算机病毒治理和维护:预防、检测,清除计算机,病毒。,运行和维护也应像其他开发阶段一样,提供运行日志、软件问题报告、软件修改报告等维护文档,。,快速原型模型的基本思想,在获得用户基本需求说明的基础上,投入少量人力和物力,快速建立一个原始模型,使用户及时运行和看到模型的概貌和使用效果,并对需求说明进行补充和精化,提出改进意见,开发人员进一步修改完善,如此循环迭代,直到得到一个用户满意的模型为止。 从原型法的基本思想中可以看到,用户能及早看到系统模型,在循环迭代修改和完善过程中,使用户的需求日益明确,从而消除了用户需求的不确定性,同时从原型到模型的生成,周期短、见效快,对环境变化的适应能力较强。,快速原型模型包含的内容, 功能选择 要恰当选择原型实现的功能。根据用户基本需求,对系统给出初步定义。用户的基本需求包括各种功能的要求、数据结构、菜单和屏幕、报表内容和格式等要求。这些要求虽是概略的,但是最基本的,易于描述和定义。原型和最终的软件系统不同,,两者在功能范围上的区别主要有以下两个方面:,快速原型模型包含的内容,第一最终系统是软件需求全部功能的实现,而原型只实现所选择的部分功能。 第二最终系统对每个软件需求都要求详细实现,而原型仅仅是为了试验和演示用的,部分功能需求可以忽略,或者模拟实现。,快速原型模型包含的内容, 构造原型 根据用户初步需求,开发出一个可以应用的系统,它应满足上述的由用户提出的基本要求。在构造一个原型时,应当强调着眼于预期的评估,而不是为了正规的长期使用。,快速原型模型包含的内容, 运行和评价原型 在试用中能亲自参加和面对一个实在的模型,能较为直观和明确地进一步提出需求,提出修改意见。通过运行原型对软件需求规格说明进行评价和确认。评价要有用户参与,注意来自用户的反馈信息。,快速原型模型包含的内容, 修改和完善原型,根据修改意见进行修改,以得到新的系统原型,然后再进行试用和评价,这样经过有限次的循环反复,逐步提高和完善,直到得到一个用户满意的系统模型为止。根据原型实现的特点和环境,可以把原型作为试验的工具,用完就丢弃之;也可以使原型全部或部分地成为最终系统的组成部分。,原型法的开发过程如图2-3所示。其中,原型开发与原型运行评价两者需反复进行多次,才能最后得到经过确认的需求规格说明,并以此作为进一步的软件设计和实现的基础,。,快速原型模型,需求分析,原型开发,最终系统设计,原型评价,最终系统实现,用户,反馈,图2.3 快速原型模型,原型模型,(快速原型模型),原型范型,用户测试,运行原型,建造/修改,原型,听取用,户意见,采用原型模型的软件生存周期,分析定义,系统需求,生成,原型,系统,设计,程序,设计,编码,测试,运 行,和维护,原型化,含原型化的,软件,生存期,快速原型模型,特点,(1)快速开发工具 (2)循环 (3)低成本,种类,(1)渐进型 (2)抛弃型,原型法具有明显的优点,它的开发周期短,见效快,可以边开发边使用,较适合于开发环境和管理体制多变、系统结构不稳定的情况。但是开发系统采用原型法,需要有交互式开发环境和第四代语言及自动编程系统的支持,其初始原型设计较为困难,开发过程尚缺乏有效的管理方法和控制手段。,2.3 软件演化模型,1.阶段式开发:增量模型,系统设计时分片交付,可使用户在使用某些基本功能的同时,开发剩余的功能。这样通常会并行地存在两个系统:生产系统和开发系统。运行或生产系统是当前被客户或用户所使用的系统。而开发系统是准备用于替代当前生产系统的下一个版本。,增量模型是一种非整体开发的模型。是瀑布模型的顺序特征和,快速原型模型的迭代特征相结合的产物,。,该模型具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目,。,创建版本1,创建版本2,创建版本3,使用版本1,使用版本2,使用版本3,开发者,使用者,阶段式开发:增量和迭代模型,增量模型,规格说明,设计,实现和集成,交付客户,规格说明,设计,实现和集成,交付客户,规格说明,设计,实现和集成,交付客户,规格说明,设计,实现和集成,交付客户,增量1,增量2,增量3,增量n,增量模型,增量,小而可用的软件,特点,在前面增量的基础上开发后面的增量,每个增量的开发可用瀑布或快速原型模型,迭代的思路,螺旋模型,软件开发几乎总要冒一定的风险,例如,产品交付给用户之后用户可能对产品不满意,到了预定的交付日期软件可能还未开发出来,实际的开发成本可能超过了预算,产品完成之前一些关键的开发人员可能“跳槽”了,产品投入市场之前竞争对手发布了一个功能相近、价格更低的软件等等。软件风险是任何软件开发项目中都普遍存在的实际问题,项目越大,软件产品越复杂,承担该项目所冒的风险也越大。软件风险可能在不同程度上损害软件开发过程和软件产品质量。因此,在软件开发过程中必须及时识别和分析风险,并且采取适当措施以消除或减少风险的危害。,构建原型是一种能使某些类型的风险降至最低的方法。,于是在,1988年B.boehm提出了,螺旋模型,。,螺旋模型,螺旋模型的基本思想是,使用原型及其他方法以尽可能地降低风险。理解这种模型的一个简易方法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型,如右图所示。,简化的螺旋模型图,螺旋模型,螺旋模型将瀑布模型与增量模型结合起来,加入了两种模型均忽略了的风险分析,弥补了这两种模型的不足。,螺旋模型是一种风险驱动的模型。,螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符合。,螺旋模型适合于大型软件的开发。,螺旋模型,完整的螺旋模型图,制定计划,风险分析,客户评估,工程实施,螺旋模型,图中带箭头的点划线的长度代表当前累计的开发费用,螺线旋过的角度值代表开发进度。螺旋线每个周期对应于一个开发阶段。每个阶段开始时(左上象限)的任务是,确定该阶段的目标、为完成这些目标选择方案及设定这些方案的约束条件。接下来的任务是,从风险角度分析上一步的工作结果。努力排除各种潜在的风险,通常用建造原型的方法来排除风险。如果风险不能排除,则停止开发工作或大幅度地削减项目规模。如果成功地排除了所有风险,则启动下一个开发步骤(右下象限),在这个步骤的工作过程相当于纯粹的瀑布模型。最后是评价该阶段的工作成果并计划下一个阶段的工作。,螺旋模型,特点,瀑布模型+快速原型+风险分析,迭代过程,一个螺旋,式周期,确定目标,选择方案,选定完成目标的策略,风险角度分析该策略,启动一个开发阶段,评价前一步的结果,,,计划下一轮的工作,2.4 面向对象的开发模型1,在讲,面向对象的开发模型之前先讲,面向对象的基本概念,对象Object,类Class,继承Inheritance,消息Message,面向对象,对象+类+继承+消息通信,对象Object,客观世界中的实体,状态(静态属性 Attributes),操作(动态行为 Methods),对象:=,Identifier,(标识:即名称,用来在问题域中区分其他对象),Method Set,(即行为或方法:一是对自身的操作,改变原有的属性状态;另一是施加于其他对象的操作,将产生的输出结果作为消息发送的操作),Data Structure,(数据:描述对象属性的存储或数据结构,他表示了对象的一个状态),Message Interface,(接口:主要指对外接口,指对象受理外部消息所制定的操作的名称集合),对象的特点,以数据为中心,对象是主动的,实现数据封装,本质上有并行性,模块独立性好,类Class和实例Instance,类,相同属性和行为的对象的抽象,实例,特定类所描述的一个具体对象,子类直接继承父类的数据和操作,继承的传递性,单继承、多重继承,继承(Inheritance),家具,桌子,椅子,衣柜,床,椅子的实例,多态性Polymorphism,概念,不同类层次共享一个方法名,相同的参数特征和返回值类型,多种不同实现,C+中虚函数实现,动态联编,重载Overloading,函数重载,同一作用域,多个名字相同的函数,参数特征不同,静态联编,运算符重载,消息Message,对象间的交互手段,形式:,Message:dest,op,para,Destination Object(目标对象),Operation(操作),Parameters(参数),2.4 面向对象的开发模型2,对象技术为软件工程的基于构件的过程模型提供了技术框架。面向对象范型强调了类的创建,类封装了数据和用于操纵该数据的算法。如果经过合适的设计和实现,面向对象的类可以在不同的应用及基于计算机的系统结构中复用,。,面向对象模型融合了螺旋模型的许多特征。它本质上是演化的,支持软件开发的迭代方法。,喷泉模型,喷泉模型是属于面向对象方法学的,是一种以用户需求为动力,以对象作为驱动的模型。,它适合于面向对象的开发方法。它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。喷泉模型使开发过程具有迭代性和无间隙性。系统某些部分常常重复工作多次,相关功能在每次迭代中随之加入演化的系统。,无间隙是指在分析、设计和实现等开发活动之间不存在明显的边界。,该模型是由,B.H.Sollers,和,J.M.Edwards,于,1990,年提出的一种新的开发模型。主要用于采用对象技术的软件开发项目。它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性,喷泉模型使开发过程具有迭代性和无间隙性,。,喷泉模型,喷泉模型,实 现,软件设计,系统设计,分 析,喷泉模型,其特点如下:,、,开发过程有分析、系统设计、软件设计和实现,4,个阶段。,、各阶段相互重叠,它反映了软件过程并行性的特点。,、以分析为基础,资源消耗成塔型。,、反映了软件过程迭代性的自然特性,从高层返回低层无资源消耗。,、强调增量开发,整个过程是一个迭代的逐步提炼的过程。,6、喷泉模型是对象驱动的过程,对象是所有活动作用的实体,也是项目管理的基本内容。,构件集成模型,构件(component)也称为组件,是一段实现一系列有确定接口的程序体,具有自己的功能和逻辑,能同其他构件组装起来协调工作。,该模型支持软件重用,对缩短软件开发周期、降低项目成本有重要的现实意义。同时,建造符合某应用领域体系结构标准的构件,可以用来搭建分布式的、跨越不同操作平台的软件,扩展了软件的应用前景,促进了软件标准化、商品化的发展。,因此,在此基础上专家们又提出了“基于构件的软件工程”(CBSE)。,构件组装模型具有极其广阔的实用性和深远的意义,。,构件组装模型如下图所示:,构件集成模型,软件需求,标识构件,检索构件库,开发构件,取出构件,存入构件库,集成目标系统,体系结构设计,构件适应性修改,集成测试,系统测试,运行维护,构件集成模型,构件集成模型,特点,面向对象,基于构件库,融合螺旋模型特征,支持软件开发的迭代方法,软件重用,构件技术,软件体系结构被建立后,必须用构件去充实,这些构件可从复用库中获得,或者根据专门需要而开发。整个过程可以演化地进行,面向对象方法给予技术上的支持。,构件技术目前主要有三种流行标准:, OMG的CORBA: 对象管理组织发布的公共对象请求代理体系结构(Common Object Request Broker Architecture)。一个对象请求代理(ORB)提供一系列服务,使得一个构件和其他构件通信,而不管它们在系统中的位置,实现了远程对象通过接口进行通信的机制。,构件技术, 微软的COM/DCOM:微软开发了构件对象模型(Component Object Model),它提供了运行于windows之上的单个应用系统使用不同厂商生产的构件的规约。基于分布式环境下的COM称为DCOM (Distribute COM)。, SUN的EJB (Enterprise JavaBean):随着Java在企业级应用的地位日趋重要,Sun提出了一个统一的企业级Java平台J2EE。在J2EE中,EJB负责最核心的业务处理。它为服务器端的应用程序提供了一种与厂商无关的Java接口,让任何符合EJB规范的构件都可以运行在每一台这样的服务器上,。,基于构件的未来,软件生产线,应用构件,提取车间,应用,构件库,构件生,产车间,构件库,组装,车间,领域,1,领域,2,应用,系统,.,1,2,3,4,1,基础构件,,2,功能构件,3,接口构件,,4,用户界面构件,2.5 形式化方法模型,形式化方法模型是一种基于数学的开发技术,主要采用数学的方法与表示体系描述软件的性质,表示软件规格说明,然后进行一系列自动或半自动的程序转换,最后转化为计算机系统能够接受的目标程序系统。,是基于形式化语言和程序变换的模型,因此,也称,变换模型,。从软件需求形式化说明开始,经过一系列的数学变换和正确性证明,最终得到系统的目标程序。形式化方法使开发者应用一个严格的数学符号体系来表示、构造和验证系统,从而大大提高软件的可靠性。,模型见下图:,转换模型,形式化,规格说明,与需求比较后修正,变换2,变换1,变换n,测试,形式化开发记录,系统需求,目标系统,转换模型,两种技术:, 基于模型的规格说明及其变换技术,基于模型的技术使用数学上的结构如集合和函数为系统建模。它们能展现系统的状态以简化对某些行为的描述。基于模型的描述语言及方法如,Z、VDM,(,Vienna Definition Method)、B、Petri Nets,等。, 基于代数结构及其变换技术,代数方法适合于对接口的描述。这里接口被定义为一组对象类或抽象数据类型的集合,用接口操作之间的关系来刻画系统。,转换模型,特点:, 该模型迫使对系统需求的分析在软件开发的早期阶段完成。在这个阶段改正错误比在系统被交付之后修改错误要经济得多。, 形式化描述是对非形式化描述技术的补充。可以用来精化非形式化的详细的系统需求描述。描述是精确的和无二义的,避免了由于语言误解而产生的一些问题。, 最适合用于安全性、可靠性和保密性等性能要求极高的系统。,开发成本较高。,需要严格的数学理论和开发环境的支持。,难以与用户进行通信。,形式化过程模型的一个扩展净室模型,形式化过程模型的一个扩展,称为,净室软件工程,或,净室模型,,它除了强调分析和设计上的严格性,以及使用基于数学的正确性证明来对设计模型的每个元素进行形式化验证外,还强调了统计质量控制技术。,基本思想,:,力求在分析和设计阶段就消除错误,确保正确,然后在无缺陷或“洁净”的状态下实现软件的制作。,关键技术,:, 基于统计过程控制之下的增量开发, 基于函数的规范、设计、验证, 统计测试和软件认证,模型见下图:,净室模型,需求,收集,盒结构,规约,形式化,设计,统计性使,用测试,正确性,证明,代码生成,与检查,测试计划,认证,需求,收集,盒结构,规约,形式化,设计,统计性使,用测试,正确性,证明,代码生成,与检查,测试计划,认证,需求,收集,盒结构,规约,形式化,设计,统计性使,用测试,正确性,证明,代码生成,与检查,测试计划,认证,增量1,增量2,增量n,净室模型,净室思想,在分析和设计阶段消除错误,在“洁净”状态下实现软件制作,形式化,盒结构表示分析和设计,正确性验证,增量模型,案例,考虑如下两个软件项目的例子:,针对一种新机器,为一种已知的编程语言(例如,C语言)开发一种普通的编译器;,开发一个应用程序使医生办公室自动化。,问:其中哪一个项目可能要求一个瀑布型生命期开发模型?为什么?这两个例子可能存在什么风险?所选的开发模型如何处理这些风险?,小结,讲了八种软件开发模型,还有智能模型等等,软件开发模型是不断发展的,各种软件开发模型各有优缺点,选用时不必拘泥于某种模型,可组合多种模型,也可根据实际创建新的模型,作业,习 题 P29,1.,2.,3.,1.什么是软件生存周期?软件生存周期划分成阶段的目的是什么? 软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。,(1) 任何一个阶段的具体任务不仅独立,而且简单,便于不同人员分工协作,从而降低整个软件开发工作的困难程度。,(2) 可以降低每个阶段任务的复杂程度,简化不同阶段的联系,有利于工程的组织管理,也便于采用良好的技术方法。,(3) 使软件开发的全过程以一种有条不紊的方式进行,保证软件的质量,特别是提高了软件的可维护性。,2.,3.,
展开阅读全文