




已阅读5页,还剩53页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程,软件开发模型,1,2,软件开发模型,传统开发模型瀑布模型(waterfallmodel)快速原型模型(rapidprototypemodel)演化开发模型增量模型(incrementalmodel)螺旋模型(spiralmodel)构件集成模型(componentintegrationmodel)形式化开发模型转换模型(transformationalmodel)净室模型(cleanroommodel)统一过程(RationalUnifiedProcess)敏捷过程(AgileDevelopment),3,2.1软件生存周期,定义一个软件从开始计划起,到废弃不用止,称为软件的生存周期。包括计划、开发与运行三个时期。计划时期:问题定义、可行性研究开发时期:需求分析、系统设计、编码和测试运行时期:系统维护阶段划分阶段的意义:简化每一步的工作内容,使因软件规模增大而大大增加的软件复杂性变得易于控制和管理。,4,可行性研究(该问题是否有行得通的解决办法),软件定义,需求分析(目标系统必须做什么),概要设计(怎样实现目标系统),软件生命周期,问题定义(要解决的问题是什么),详细设计(应该怎样具体地实现这个系统),编码和单元测试(写出正确的容易理解、容易维护的程序模块),综合测试(集成测试和验收测试),系统设计,系统实现,软件开发,运行维护(纠错性维护、适应性维护、完善性维护、预防性维护),(系统分析),5,在实际从事软件开发工作时,软件规模、种类、开发环境及开发时使用的技术方法等因素,影响阶段的划分。生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。我国国家标准计算机软件开发规范(GB8566-88)把软件生命周期的划分成8个阶段:可行性研究与计划、需求分析、概要设计、详细设计、实现、组装测试、确认测试、使用和维护。,6,计划时期,开发时期,运行时期,典型的软件生存周期,7,1、计划时期任务调查用户需求,分析新系统的主要目标,分析开发该系统的可行性。问题定义明确“用户需要计算机解决什么问题”提出关于“系统目标与范围的说明”请用户确认。可行性研究明确“上一阶段确定的问题是否有行得通的解决办法”提出一套或多套在技术上可行、在经济上有较高效益的可操作解决方案。,8,2、开发时期设计需求分析软件设计实现编码测试开发时期划分阶段的目的程序员在开发初期集中全力搞好软件的逻辑结构,避免过早为实现的细节分散精力。,9,需求分析概括地回答“实现什么样的目标系统?”弄清楚用户对软件系统的全部需求;用“需求规格说明书”准确表达出来;系统分析员必须和用户密切配合,充分交流信息,以得出经过用户确认的系统需求。,10,软件设计将需求转变为软件的表示形式总体设计(概要设计)建立软件系统的总体结构,形成系统的功能结构图;定义功能模块的接口,包括模块功能、关系及接口界面定义设计全局数据库或数据结构规定设计约束,定义软件系统的边界并给出约束说明编制概要设计文档详细设计模块详细设计,包括模块详细功能、算法、数据结构和接口信息的设计,拟定模块测试方案;编制模块的详细规格说明,11,编码选择一种程序设计语言;写出正确的容易理解、容易维护的源程序模块;产生可执行的目标程序。,12,测试-保证软件质量的重要手段任务保证输出与要求的一致;发现错误。单元测试验证模块功能及接口与文档的一致性集成测试将经过单元测试的模块逐步进行组装和测试生成可运行的系统源程序并编写组装测试报告系统测试软件系统测试依据软件需求说明功能性及非功能性软件评审,通过后交付用户使用用户(接收)测试,13,3、运行时期使用将软件安装在用户确定的运行环境中使用维护通过各种必要的维护活动使系统持久地满足用户的需要。对所有的维护写出维护报告。通常有四类维护活动纠错性维护适应性维护完善性维护预防性维护退役:软件一旦完成其使命,就要终止对软件产品的支持,软件停止使用。,14,2.2传统软件开发模型,软件开发模型(过程)为整个软件生存期建立的模型。内容定义-What开发-How维护-Change传统软件开发模型瀑布模型快速原型模型,15,2.2.1瀑布模型,又称线性顺序模型或生存周期模型W.Royce于1970年首次提出各个阶段的工作顺序展开重要的指导思想把逻辑设计与物理实现划分开,尽可能推迟程序的物理实现,16,用户要求,编码,需求分析,模块说明,详细设计,需求规格说明,软件结构图,总体设计,单元测试,程序清单,系统测试,集成测试,用户测试,瀑布模型的阶段与文档,17,瀑布模型的特点阶段间的顺序性和依赖性相邻两个阶段有因果关系,要求严格顺序执行上一阶段的变换结果是下一阶段变换的输入每个阶段都要进行阶段性评审,确认后转下一阶段推迟实现的观点尽可能推迟软件的编码时间质量保证的观点(文档驱动性)每个阶段都要完成规定的文档;每个阶段都要对已完成的文档进行复审,尽早发现问题,消除隐患。,18,同一变动付出的代价随时间变化的趋势,19,瀑布模型的优点可强迫开发人员采用规范的方法严格地规定了每个阶段必须提交的文档要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证瀑布模型的缺点不适合需求模糊的系统,20,2.2.2快速原型模型,快速原型模型的第一步是快速建立一个能反映用户主要需求的原型系统,让用户在计算机上试用它,通过实践来了解目标系统的概貌。通常,用户试用原型系统之后会提出许多修改意见,开发人员按照用户的意见快速地修改原型系统,然后再次请用户试用。一旦用户认为这个原型系统确实能做他们所需要的工作,开发人员便可据此书写规格说明文档,根据这份文档开发出的软件可以满足用户的真实需求。,21,快速原型模型,22,快速原型的本质是“快速”。开发人员应该尽可能快地建造出原型系统,以加速软件开发过程,节约软件开发成本。原型的用途是获知用户的真正需求,一旦需求确定了,原型将被抛弃。适用于需求确定性不高的系统开发。,23,怎样保证“快”?原型模型仅包括未来系统的主要功能,以及系统的重要接口。开发原型系统时尽量使用能缩短开发周期的语言和工具。,24,特点原型驱动型过程的交互性与迭代性优点用户在开发过程中可以完善对软件系统的需求;有效发挥用户与开发人员之间的密切配合作用;充分体现逐步发展、逐步完善的原则。缺点频繁的需求变化会使开发过程难于管理和控制;原型的快速开发和修改对技术要求比较高。,25,2.3软件演化模型,思想方法使所开发的软件在迭代中逐步达到完善种类增量模型螺旋模型适用于大型软件的开发,26,2.3.1增量模型,基本思想把软件产品作为一系列的增量构件来设计、实现、集成和测试。开发时分批逐步向用户提交产品,每次提交一个满足用户需求子集的增量构件,直到最后一次得到满足用户全部需求的完整产品为止。将软件分解成增量构件时的约束条件当把新构件集成到现有软件中时,所形成的产品必须是可测试的。,27,使用增量模型时,第一个增量构件往往实现软件的基本需求,提供最核心的功能。,28,优点能在较短的时间内向用户提交部分功能的构件;逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,减少一个全新软件可能给用户带来的冲击。缺点增量构件的划分依赖于系统功能的构成和软件开发人员的经验;要求软件系统的体系结构具有高度的可扩充性和开放性。,29,2.3.2螺旋模型,基本思想使用原型及其他方法来尽量降低风险。是结合瀑布模型与快速原型模型演变而成。螺旋模型的每一个周期都包括计划、风险分析、建立原型和用户评审4个步骤。每迭代一次,过程完成一个周期,软件开发前进一个层次,系统生成一个新的版本。,30,每个螺旋周期的工作步骤及各步骤的任务计划确定本轮螺旋的目标、选择方案、设定约束条件风险分析评估方案、标识风险和解决风险建立原型建立一个原型来实现本轮目标用户评审评价该阶段的工作并计划下一个阶段的工作,31,完整的螺旋模型,螺旋模型主要适用于高风险的大规模项目,32,特点瀑布模型+快速原型+风险分析迭代过程优点有效降低风险;源于对识别所有类型目标和约束的强调,有助于把软件质量作为软件开发的一个重要目标;维护只是模型的另一个周期,在维护和开发之间并没有本质区别。缺点需耗费大量资金和时间用于风险评估;要求开发人员具有丰富风险评估经验和有关知识;开发过程比较复杂;给过程管理和控制带来了一定的难度。,33,2.3.3构件集成模型,主要适用于面向对象的软件开发。融合了螺旋模型的特征,支持软件开发的迭代。,34,面向对象的基本概念,对象(Object)类(Class)继承(Inheritance)消息(Message)面向对象=对象+类+继承+消息,35,构件集成模型,构件:适当设计和实现的类。在某个领域中具有一定通用性,可以复用。构件库:将一系列构件存储起来,为基于构件的软件开发提供基础。,36,构件集成模型,基于构件的软件开发,37,特点面向对象基于构件库融合螺旋模型特征支持软件开发的迭代方法软件重用,38,2.4形式化方法模型,转换模型净室模型,39,2.4.1转换模型,定义结合形式化软件开发方法和程序自动生成技术的一种软件开发模型。实现过程采用严格的、数学的表示体系表示软件规格说明;进行一系列自动或半自动的程序变换;转换为计算机系统能够接受的目标程序系统。,40,形式化规格说明,与需求比较后修正,变换2,变换1,变换n,测试,形式化开发记录,系统需求,目标系统,转换模型原理,41,特点形式化软件开发方法形式化需求规格说明变换技术程序自动生成技术确保正确,42,2.4.2净室模型,形式化盒结构表示分析和设计正确性验证增量模型净室思想在分析和设计阶段消除错误在“洁净”状态下实现软件制作,43,44,小结,2.5统一过程,RationalUnifiedProcess统一过程描述了在软件开发的各个环节why,what,howandwhentodo。它将软件生存周期划分为4个阶段,每个阶段又可以分为一个或多次迭代。每次迭代是一个完整的开发循环。每个阶段或迭代都设定一个里程碑。,45,统一过程,46,4个阶段:初始细化构造迁移,初始阶段,该阶段适当的划定系统范围并以此为基础来估计成本和预算。在该阶段识别商业需求,包括商业环境,成功因素以及可行性分析。为此需要建立基础用例模型,项目计划,风险评估和项目描述。识别系统的大多数角色和用例划分主要子系统分析高层次风险考虑时间、经费、技术、项目规模和效益等因素制定开发计划,47,细化阶段,识别出完整的用例并完成高层设计。对当前迭代的用例进行细化,分析用例的处理流程状态细节及可能发生的状态变化。进行需求风险分析:分析项目是否偏离的用户需求。尽量列出所有的用例和需求优先级,建立领域模型。进行技术风险分析:通过原型方法,考察所选技术方案是否可行。进行技能风险分析:考察人员素质是否能胜任项目的要求。进行政策风险分析:考虑政策性因素对项目的影响。进行高层分析和设计、作出结构性决策并建立简要的体系结构。为构造阶段制定计划。,48,构造阶段与迁移阶段,构造阶段进行多次迭代,每次迭代开发都是针对用例进行分析、设计、编码、测试和部署的过程。在代码完成后要保证其符合标准和设计,并进行质量检查。迁移阶段完成软件产品的验收测试,并完成用户文档编制和用户培训等工作。,49,2.6敏捷过程,敏捷开发(AgileDevelopment)是一种以人为核心的迭代式的开发方法。其开发过程称为敏捷过程。软件项目被分为多个子项目,各个子项目的成果都经过测试,具备集成和可运行特征。敏捷开发的思想:个人和交互胜过过程和工具可运行的软件胜过面面俱到的文档客户合作胜过合同谈判响应变化胜过遵循计划,50,敏捷过程,12条原则:通过尽早地、不断地提交有价值的软件来使客户满意。即使到了开发后期,也不回避改变需求。以几个星期到几个月为周期,尽快不断地提交可运行软件。在整个项目开发期间,客户和开发人员都在一起工作。以积极向上的员工为中心建立团队,为他们提供所需支持并充分信任他们的工作。在团队内部鼓励面对面的交流。度量项目进展的首要依据是可运行软件。敏捷过程提倡可持续的开发。时刻关注技术上的求精和好的设计。简单是最根本的。最好的架构、需求和设计出自于自己的团队。每隔一段时间,要反省并调整自身以保持高效的工作。,51,极限编程,极限编程(eXtremeProgramming)是由KentBeck提出的轻量级的、敏捷的软件开发方法。XP采用循环迭代的开发方法,将复杂的开发过程分解为一个个相对比较简单的周期。通过积极地交流是开发人员和客户都非常清楚开发的进度、变化、待解决的问题的潜在困难,并根据实际情况及时的调整开发过程。,52,极限编程,完整团队(wholeteam)计划对策(planninggame)测试驱动(testingdriven)简单设计(simpledesign)结对编程(pairprogramming)小版本发布(smallrelease)设计改进(designimprovement)持续集成(continuousintegration)代码集体共有(collectivecodeownership)编码标准(codestandard)系统比喻(systemmetaphor)可持续的速度(su
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年农村环境综合治理方案设计大赛试题集
- 护理基础吸氧知识培训课件
- 2025秋苏教版一年级上册数学教学计划
- 2025年OLED检测系统项目发展计划
- 2025年乙二醇二乙醚合作协议书
- 黑龙江省大庆市肇源县西部五校联考(五四学制)2025-2026学年八年级上学期开学考试地理试卷(含答案)
- 河北省承德市围场县围场玉林学校2024-2025学年六年级上学期期末数学试题参考答案
- 第二单元混合运算单元测试卷(含答案) 2025-2026学年人教版三年级数学上册
- 新冠育苗考试及答案
- 幼儿语言领域考试及答案
- 沉降观测记录表(标准版)
- PCB流程介绍-VCP和龙门电镀简介
- 2023年高考全国甲卷语文试卷真题(含答案)
- DB37-T 2368-2022 钻芯法检测混凝土抗压强度技术规程
- 第十章青霉素和头孢菌素C
- 教师职业道德与教育法规全套教学课件
- 蛋白质能量营养不良与小儿肥胖症
- 神华陕西国华锦界电厂三期工程环评报告
- 隧道工程测量
- 生理学第十章 神经系统
- 中信保三方协议模板
评论
0/150
提交评论