版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程SoftwareEngineering第二讲软件生命周期和开发模型Lesson2:SoftwareLifeCycleandProcessModel
Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/20241主讲内容软件生命周期软件开发模型中国与印度软件行业对比CASE工具和环境Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/20242软件发展阶段程序设计阶段—50至60年代程序系统阶段—60至80年代 软件工程阶段—80年代以后Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/20243软件工程:一种层次化的技术对质量的关注支持软件工程的根基过程管理部分方法技术手段工具对过程和方法提供自动/半自动的支持CASE质量焦点过程方法工具Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/20244软件开发方法的发展
结构化开发方法(60年代)原型化开发方法(70年代)面向对象开发方法、计算机辅助软件工程(80年代)基于部件开发、软件综合集成、解决方案(90年代)Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/20245软件工程过程问题识别需求分析软件设计(概要设计、详细设计)编程实现系统测试系统维护制定开发计划What,Why,Who,WhenWhat,Who,WhenWhat?是什么?How?怎么做?可行性分析/风险分析Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/20246软件生命周期
lifecycle软件有一个孕育、诞生、成长、成熟、衰亡的生存过程
软件生存期(生命周期)软件产品从考虑其概念开始,到该软件产品不再能使用为止的整个时期。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/20247软件生命周期(2)可行性研究需求分析概要设计详细设计实现集成测试确认测试使用与维护退役软件定义软件开发维护Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/20248软件生命周期(3)软件生命周期方法学的定义从时间角度对软件开发和维护的复杂问题进行分解,把软件生命的漫长周期依次划分为若干阶段.每个阶段有相对独立的任务,然后逐步完成每个阶段的任务.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/20249软件生命周期(4)优点降低整个软件开发工程的难度便于不同人员分工协作便于在各个阶段采用科学的管理技术便于在各个阶段采用先进的开发方法和技术便于对软件开发工程的全过程的组织和管理Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202410软件生命周期(5)软件生存期的划分原则划分方法多种受软件规模、种类、开发方式、开发环境、方法论的影响原则各阶段的任务尽可能独立同一阶段各项任务的性质尽可能相同
Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202411软件生命周期(2)可行性研究需求分析概要设计详细设计实现集成测试确认测试使用与维护退役软件定义软件开发维护Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024121可行性研究任务
了解用户要求和现实环境,从技术、经济、市场等方面研究并论证开发该软件系统的可行性Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024131可行性研究(2)技术途径(1)调查和了解用户要求和现实环境(2)撰写调查报告(3)可行性论证和分析(技术、经济等)(4)如可行,制定初步项目开发计划(人员,进度)Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024141可行性研究(3)阶段性产品(1)可行性论证报告(2)初步的项目开发计划Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202415软件生命周期(2)可行性研究需求分析概要设计详细设计实现集成测试确认测试使用与维护退役软件定义软件开发维护Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202416
2需求分析任务
确定用户对待开发软件系统的需求。包括:功能性能运行环境约束需求分析阶段的任务不是具体地解决问题,而是准确地确定软件系统必须做什么,确定软件系统必须具备哪些功能Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024172需求分析(2)重要性软件开发依据,软件验收的标准困难性难以说清,动态变化,歧义,复杂Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024182需求分析(3)技术途径需求分析人员需与用户不断、反复地交流和商讨,使用户需求逐步准确化、一致化、完全化抽象、问题分解、快速原型、多视点等技术工具RationalRoseEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024192需求分析(4)阶段性产品软件需求规格说明书SRS(功能,性能和运行环境约束)Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202420软件生命周期(2)可行性研究需求分析概要设计详细设计实现集成测试确认测试使用与维护退役软件定义软件开发维护Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024213概要设计任务根据SRS建立目标软件系统的总体结构、设计全局数据库和数据结构,规定设计约束,制定组装测试计划等。概要设计原则力争做到功能模块之间有较低的耦合度,功能模块内部有较高的内聚度。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024223概要设计(2)技术途径根据软件需求规格说明书,自顶向下,逐步求精,抽象,模块化,局部化,信息隐藏工具RationalRoseEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024233概要设计(3)阶段性产品 概要设计规格说明书,数据库或数据结构设计说明书,集成测试计划。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202424软件生命周期(2)可行性研究需求分析概要设计详细设计实现集成测试确认测试使用与维护退役软件定义软件开发维护Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024254详细设计任务细化概要设计所生成的各个模块,并详细描述程序模块的内部细节(算法,数据结构等),形成可编程的程序模块,制订单元测试计划原则与软件需求保持一致。设计的软件结构应支持模块化、信息隐藏等。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024264详细设计(2)技术途径根据SRS和概要设计结果进行RationalRose阶段性产品详细设计规格说明书,单元测试计划Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202427软件生命周期(2)可行性研究需求分析概要设计详细设计实现集成测试确认测试使用与维护退役软件定义软件开发维护Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024285实现任务根据详细设计规格说明书编写源程序,并对程序进行调试和单元测试,验证程序与详细设计文档一致性原则系统分析方法、设计方法、编程方法及选用的程序设计语言应尽可能匹配。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024295实现(2)技术途径以详细设计规格说明书为依据、基于某种程序设计语言进行编码工具VisualC++,JavaEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024305实现(3)阶段性产品源程序代码Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202431软件生命周期(2)可行性研究需求分析概要设计详细设计实现集成测试确认测试使用与维护退役软件定义软件开发维护Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024326集成测试任务根据概要设计规格说明书,将经过单元测试的模块逐步进行集成和测试Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024336集成测试(2)技术途径以概要设计规格说明书和集成测试计划为依据,进行集成模块并进行测试工具IDE,专有工具等Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024346集成测试(3)阶段性产品满足概要设计要求、可运行的系统源程序和系统集成测试报告Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202435软件生命周期(2)可行性研究需求分析概要设计详细设计实现集成测试确认测试使用与维护退役软件定义软件开发维护Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024367确认测试
任务根据软件需求规格说明书,测试软件系统是否满足用户的需求途径由用户参与,以软件需求规格说明书为依据进行确认测试专有工具Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024377确认测试(2)阶段性产品可供用户使用的软件产品(文档,源程序)Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202438软件生命周期(2)可行性研究需求分析概要设计详细设计实现集成测试确认测试使用与维护退役软件定义软件开发维护Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024398软件维护任务
对使用后的软件进行维护例如:修正使用过程中发现的错误-纠错性维护增加新的功能-完善性维护从一个环境搬迁到另一个环境-适应性维护Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024408软件维护(2)途径以文档和源程序为基础按用户要求进行阶段性产品版本更新的软件产品Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202441软件生命周期
各阶段的关键问题和阶段性成果
阶段关键问题阶段性成果可行性研究有可行的解吗?可行性论证报告,初步的项目开发计划需求分析系统必须做什么?软件需求规格说明书总体设计应如何解决这个问题?概要设计规格说明书,数据库或数据结构设计说明书,集成测试计划详细设计怎样具体地实现这个系统?详细设计规格说明书,单元测试计划集成测试符合要求的软件?系统源程序和系统集成测试报告Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202442软件定义开发与测试的关系Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202443软件开发模型
软件开发全过程、软件开发活动以及它们之间关系的的结构框架为软件项目的管理提供里程碑和进度表为软件开发提供原则和方法里程碑是用来说明项目进展情况的事件。通常把一个开发活动的结素或一项开发任务的完成定义为一个里程碑Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202444
软件开发模型种类以软件需求可完全确定为前提的瀑布模型在软件开发初期只能提供基本需求所采用的渐进式开发模型如原型模型、增量模型、螺旋模型Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024451.瀑布模型可行性研究需求分析概要设计详细设计实现组装测试确认测试使用与维护Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024461.瀑布模型(2)主要思想软件开发过程与软件生命周期是一致的相邻二阶段之间存在因果关系需对阶段性产品进行评审Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202447带反馈的瀑布模型示意图可行性研究需求分析概要设计详细设计实现组装测试确认测试使用与维护Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024481.瀑布模型(3)特点生命周期的各个阶段自顶向下,恰如奔流不息拾级而下的瀑布阶段间具有顺序性和依赖性推迟实现的观点(推迟编码)区分逻辑设计与物理设计尽可能推迟物理实现质量保证的观点Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024491.瀑布模型(4)瀑布模型在软件工程中占有重要地位优点明确各个开发阶段的内容,控制进度支持结构化软件开发,控制复杂性,促进工程化。克服了软件开发的随意性,从而提高了大型软件项目开发的质量和效率。适用有稳定的产品定义和易于理解的技术解决方案的项目Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024501.瀑布模型(5)缺点项目开始阶段用户很难精确的提出产品需求,由于技术进步,用户对系统深入的理解,修改需求十分普遍。项目开发晚期才能得到程序的运行版本,这时修改软件需求和开发中的错误代价很大。采用线性模型组织项目开发经常发生开发小组人员“堵塞状态”,特别是项目的开始和结束Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024512.快速原型模型示意图Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202452原型不是一个新概念用户和建筑师之间的关系
软件开发人员根据用户提出的要求快速开发出一个原型,她向客户展示了待开发软件系统的全部或部分软件功能和性能,在征求客户对原型意见的过程中,进一步修改、完善、确认软件系统的需求并达到一致的理解。建筑师接到一个项目后,他根据用户提出的要求和自己对用户需求的理解,按一定比例设计并建造一个原型,用户和建筑师以原型为基础进一步研究并确定建筑物的需求,当用户和建筑师对建筑物的需求取得一致理解之后,建筑师再组织对建筑物的设计和施工。针对软件开发初期在确定软件系统需求方面存在的困难,人们开始借鉴建筑师在设计和建造原型方面的经验。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024532.快速原型模型(1)阶段初步需求分析
快速设计
原型的建造
逐步调整原型
Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024542.快速原型模型(3)优点原型模型支持软件需求开发,帮助用户和开发人员理解需求,是软件需求工程的关键。它产生的正式需求文挡,是软件开发的基础。如果开发的原型是可运行的,它的若干高质量的程序片段和开发工具可用于工作程序的开发。原型的开发和评审是系统分析员和用户/客户共同参予的迭代过程,每个迭代循环都是线性过程。尽早发现软件中的错误,支持需求的动态变化。一个迭代包含将软件开发的核心规程应用于生产出可证明的,可执行的开发后的产品,并确保在一系列的迭代后(每次都根据产品和由先前迭代而来的教训)产品会不断演化成我们所需要的。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024552.快速原型模型(4)缺点用户有时误解了原型的角色,例如他们可能误解原型应该和真实系统一样可靠缺少项目标准,进化原型法有点像编码修正缺少控制,由于用户可能不断提出新要求,因而原型迭代的周期很难控制额外的花费:研究结果表明构造一个原型可能需要10%额外花费运行效率可能会受影响原型法要求开发者与用户密切接触,有时这是不可能的。例如外包软件。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024563.增量模型增量模型也称为渐增模型,使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。使用增量模型时,第一个增量构件往往实现软件的基本需求,提供最核心的功能。设计开放的软件体系结构Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024573.增量模型示意图Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024584.螺旋模型(1)基本思想瀑布模型、原型模型的有机结合增加了风险分析产生
70和80年代,面对复杂的大型软件系统,用线性的瀑布模型难于有效的完成项目BarryBohem于1988年提出
Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202459
螺旋模型Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202460螺旋模型特征螺旋模型沿着螺线旋转,在四个象限上分别表达四个方面的活动,即:制定计划──确定软件目标,选定实施方案,弄清项目开发的限制风险分析──分析所选方案,考虑如何识别和消除风险实施工程──实施软件开发客户评估──评价开发工作,提出修正建议Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024614.螺旋模型(2)软件工程项目从螺旋中心开始启动,沿顺时针方向前进。第一圈产生产品规格说明;第二圈产生一个用于开发的原型;第三圈产生软件产品的初始版本;第四圈产生软件产品比较完善的新版本……。特点演化软件过程模型将原型的迭代特征与瀑布模型中的控制和系统化的方面结合起来软件开发是一系列的增量发布。理解这种模型的一个简便方法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024624.螺旋模型(3)优点支持需求的动态变化尽早发现软件中的错误支持风险分析适用于需求动态变化,开发风险较大的系统缺点
风险分析需要有丰富的风险评估知识和方法,不容易掌握
Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202463小结软件过程是为了获得高质量软件产品所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。软件过程必须科学、合理,才能开发出高质量的软件产品。按照在软件生命周期全过程中应完成的任务的性质,在概念上可以把软件生命周期划分成问题定义、可行性研究、需求分析、概要设计、详细设计、编码和单元测试、综合测试以及维护等八个阶段。实际从事软件开发工作时,软件规模、种类、开发环境及使用的技术方法等因素,都影响阶段的划分。因此,一个科学、有效的软件过程应该定义一组适合于所承担的项目特点的任务集合。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202464小结(续)生命周期模型(即软件过程模型)规定了把生命周期划分成的阶段及各个阶段的执行顺序。本章介绍了四类典型的软件生命周期模型。瀑布模型历史悠久、广为人知,它的优势在于它是规范的、文档驱动的方法;这种模型的问题是,最终交付的产品可能不是用户真正需要的。快速原型模型正是为了克服瀑布模型的缺点而提出来的。它通过快速构建起一个可运行的原型系统,让用户试用原型并收集用户反馈意见的办法,获取用户的真实需求。增量模型具有能在软件开发的早期阶段使投资获得明显回报和易于维护的优点,但是,要求软件具有开放结构是使用这种模型时固有的困难。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202465小结(续)风险驱动的螺旋模型适用于大规模的内部开发项目,但是,只有在开发人员具有风险分析和排除风险的经验及专门知识时,使用这种模型才会获得成功。每个软件开发组织都应该选择适合于本组织及所要开发的软件特点的软件生命周期模型。这样的模型应该把各种生命周期模型的合适特性有机地结合起来,以便尽量减少它们的缺点,充分利用它们的优点。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202466案例分析1
选择效率低下的开发模型Giga-Safe公司区域代理商:要求升级Giga-Quote1.0改正错误,修改用户界面上的小问题时限:6个星期Bill:Giga-Quote1.1项目的项目经理采用原型法:“原型法是最新、最快的方法”Mike:项目的技术负责人;Sue:开发人员Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202467案例分析1
选择效率低下的开发模型(续)第2周演示原型代理商经理:要增加新的报表第3-4周每天:需要修改的内容第12周Bill:把已经完成的部分交付Mike,Sue:中断工作Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202468案例分析2 选择有效的开发模型Square-Tech公司:Cube-It时限:一年Eddie:项目经理降低风险:螺旋生命期模型George,Jill:开发人员Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202469案例分析2
选择有效的开发模型(续)2周:第一次迭代分析风险,发现两个基本方案4周:第二次迭代需求,目标,时间计划3个月:第三次迭代设计,精确估算第11个月:系统测试准时交付Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202470当前发展情况(1)质量的本质在变化早期:与规格说明一致
以后:用户满意
90年代:指导应用方向
Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202471当前发展情况(2)ISO9000的影响质量体系ISO9000《质量管理和质量保障》系列国际标准
设计、开发、生产、安装和服务的质量保障模式:ISO9001
生产和安装的质量保障模式:ISO9002
最终检验和试验的质量保障模式:ISO9003CMM(TheCapabilityMaturityModel):评估软件开发组织的能力
Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202472我国软件业的现状我国软件业的规模目前,我国从事软件开发、研制、销售、维护和服务的软件企业有2000家左右,加上兼营的企业,总数大约有10000多家,其中具有自主软件研发能力的软件企业约5700家,已经通过双软认定的有2300余家,从事软件销售、维护和服务的企业5000多家。在这里面,营业规模超过一亿元的软件企业达到100家以上,超过5亿元的达到18家,超过10亿元的达到12家。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/2024732001年,世界软件产品市场销售额超过1865亿美元,我国当年的销售额为285亿元人民币,只占世界市场不到2%的份额。国内软件市场有限的份额中大部分为国外软件厂商所瓜分,国内所开发的软件产品仅占小部分。2001年我国软件销售总额96.3亿美元,软件企业约5000家,从业人员29万。2001年印度软件销售总额102.3亿美元,软件企业约6000家,从业人员40万。2001年我国软件的出口额仅为7.2亿美元,2000年与1999年分别为4亿美元及2.5亿美元。印度在软件出口方面,则一直保持高速的增长。1990年印度软件出口只有5000万美元,1999年就达到了39亿美元,2000年达到了62亿美元,而2001年印度软件出口额为77.8亿美元,已经占到了印度全部出口总额的10.5%。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.5/9/202474印度的软件业印度软件业能够这么迅速地发展起来,除了有政府支持、英语程度、人才储备等原因外,最重要的是从标准化与产品流程入手,重视管理。印度的软件开发管理的特点是流程重于项目,流程管理人员独立于研发部门,专门检查研发部门的开发流程是不是按照既定流程走,如果流程不对,项目肯定就此停止。另外,所谓的项目经理一般都是从编码人员升上来的,至少有四年以上的经验,而公司所有的东西(包括草稿)都有文档,其详细文档要求达到只有这个文档就可以编码的程度。于是,印度软件公司开发出来的软件整个体系架构非常清晰,而且相当稳定。由于印度企业不是靠一两个软件英雄搞研发,而是靠一大批软件技术人员的分工协作,所以,他们必须注重标准化,注重开发的流程管理,以与国际接口。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro.Copyright200
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《论文写作》课程课件
- 内蒙古鄂尔多斯西部四旗2025届高三下第一次测试数学试题含解析
- 湖北省沙洋县后港中学2025届高考英语五模试卷含解析
- 浙江省乐清市知临中学2025届高三二诊模拟考试英语试卷含解析
- 吉林省长春二中2025届高考数学四模试卷含解析
- 陕西省西安市长安区2025届高三下学期联合考试数学试题含解析
- 2025届天津五区县高考考前提分语文仿真卷含解析
- 现代学徒制课题:市域产教联合体与行业产教融合共同体内开展现场工程师培养的机制创新研究(研究思路模板、技术路线图)
- 2025届四川省德阳五中高考仿真卷语文试卷含解析
- 安徽省安庆市六校2025届高三第六次模拟考试数学试卷含解析
- 安徽工程大学《自然语言处理及应用》2022-2023学年第一学期期末试卷
- 电路分析基础知到智慧树章节测试课后答案2024年秋太原理工大学
- 2024年室内设计协议书
- 跨境TIR公路运输场景实测白皮书-中俄篇 2024
- 中储粮西安分公司招聘真题
- 2024年统编版新教材语文小学一年级上册全册单元测试题及答案(共8单元)
- 企业年会的活动策划方案
- 部编 2024版历史七年级上册期末复习(全册)教案
- 探寻中国茶:一片树叶的传奇之旅学习通超星期末考试答案章节答案2024年
- GB/T 44264-2024光伏组件清洁机器人通用技术条件
- 2024年军队文职统一考试《专业科目》管理学真题及答案解析
评论
0/150
提交评论