《软件工程2软件过程.ppt》由会员分享,可在线阅读,更多相关《软件工程2软件过程.ppt(32页珍藏版)》请在第壹文秘上搜索。
1、软件过程软件工程一 软件过程1 1、定义、定义定义:定义:计算机科学技术百科全书计算机科学技术百科全书:软件过程是:软件过程是软软件生存周期件生存周期中的中的一系列相关过程一系列相关过程。软件生命周期一软件过程2 2、软件过程的时期(软件生命周期)、软件过程的时期(软件生命周期)一软件过程5 5、软件过程的基本任务、软件过程的基本任务问题定义明确要解决的问题是什么?可行性研究上一个阶段所确定的问题是否有行得通的解决方法需求分析目标系统必须做什么概要设计怎样实现目标系统详细设计应该怎样具体地实现这个系统编码和单元测试写出正确、容易理解和容易维护的程序模块综合测试通过各种类型的测试、调试,使软件达
2、到预定的要求软件维护改正性维护、适应性维护、完善性维护、预防性维护注意:注意:只为框架,根据实际组成最佳软件过程!二 软件过程模型1 1、模型概述、模型概述 软件过程模型软件过程模型 软件过程模型是对实际过程的抽象描述 常见的软件过程模型常见的软件过程模型 瀑布模型 快速原型模型 增量模型 螺旋模型 形式化方法模型 基于组件的开发模型 喷泉模型增量模型 Rational统一过程 敏捷过程与极限编程 能力成熟度模型1 1、瀑布模型:、瀑布模型:将软件开发活动分为需求分析、设计、编码、测试等阶段自上而下,相互衔接的固定次序,如瀑布流水、逐级下落瀑布模型的特点: (1). 线性化模型结构; 瀑布模型
3、中,前一个阶段完成后,下一个阶段才往下做。 任何阶段如果发生错误,立即返回发生错误的阶段进行修改。 (2). 各阶段具有里程碑特征; 里程碑指瀑布模型中的阶段只能逐级到达、不能跨越;瀑布模型的特点: (3). 基于文档的驱动; 瀑布模型中,每一阶段完成后,都会产生文档。 (4). 严格的阶段评审机制。瀑布模型的特点: (5).瀑布模型是线性的,用户只有等到整个过程末期才能见到开发出来的软件产品,从而增加了开发风险。 (6)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。瀑布模型的特点: (7). 为软件开发和维护提供了一种有效管理模式,对保证软件产品的质量有重要的作用; (
4、8)不适应用户需求的变化,缺乏灵活性。有可能直到软件开发完成才发现软件不是用户需求的。瀑布模型适应于:1. 需求不发生或发生很少变化,需求明确的情况。2. 软件开发人员具有丰富的经验,对软件应用领域很熟悉。3. 软件项目的风险较低。瀑布模型不具有完善的风险控制机制2 2、快速原型模型、快速原型模型为了克服瀑布模型的缺点而提出来的。通过快速构建一个在机器上可运行的原型系统,让用户试用原型,并收集反馈意见的办法,来获取用户真实的需求。三 软件过程模型快速原型模型步骤快速原型模型步骤第第1 1步:步:快速建立一个能反映用户主要需求的原型系统,让用户在计 算机上试用它,通过实践来了解目标系统的概貌。第
5、第2 2步:步:用户试用原型系统之后会提出许多修改意见,开发人员按照 用户意见快速地修改原型系统,然后再次请用户试用,。 经过多次反复之后,一旦用户认为现在这个原型系统确实能 做他们所需要的工作,开发人员便可以依照这个原型系统书 写规格说明文档,根据这份文档开发出的软件应该能够满足 用户的真实需要。第3步、第4步快速原型模型特点快速原型模型特点1、迭代性:原型法第一次只是试验开发,第二次则在此基础上获得较为满意的软件产品,接下来第三次获得更为满意的软件产品,第四次不断迭代,直到得到最终的产品。2、减少由于软件需求不明确而给开发带来的风险。3、与瀑布模型相比,原型法需要更多用户、获取方的参与。快
6、速原型模型特点快速原型模型特点4、没有考虑软件的整体质量和长期的可维护性。原型中,一些不合适的操作算法会被采用,目的为了演示功能和快速创建原型。还有,一些不合适的开发工具被采用也仅仅只是为了它的方便,还有不合适的操作系统被选择等等。如果客户和开发者达成一致协议:原型被建造仅为了定义需求,之后就被抛弃或者部分抛弃,而采用新模型重新设计。5、原型用于需求的获取和确认6、对于大型软件项目,原型模型缺乏有效的管理规程。7、快速模型还包含瀑布模型的思想。快速原型模型适用于:1. 已有产品或产品的原型(样品),只需客户化的工程项目2. 简单而熟悉的行业或领域3. 有快速原型开发工具4. 进行产品移植或升级
7、增量模型是把待开发的软件系统模块化将每个模块作为一个增量组件分批次地分析、设计、编码和测试这些增量组件。3 3、增量模型(渐增模型)、增量模型(渐增模型) 以增量方式逐步完善待开发的软件。 当一个新的构件被编码和测试后,并入到软件系统中,然后作为一个整体进行测试。 分批逐步向用户提交产品,直到最后一次得到满足全部需求的完整产品。3 3、增量模型(渐增模型)、增量模型(渐增模型)增量模型增量模型增量模型特点:1. 作为瀑布模型变体,具有瀑布模型的所有优点。每个增量开发都是一次瀑布模型的过程2. 递增式开发。开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交。3. 第一个可交付
8、版本所需要的成本和时间很少;增量模型特点:4. 开发由增量表示的小系统,承担的风险不大。5. 当使用增量模型时,第一个增量往往是核心产品,也就是说第一个增量实现了基本的需求。6. 由于很快发布了第一个版本,因此可以减少用户需求的变更;使投资获得明显回报;但要求软件具有开放结构。7. 允许增量投资,即在项目开始时,可以仅对一个或两个增量投资。增量模型特点:8. 可将早期增量作为原型,从中获得对后面增量的需求经验;项目总体性失败的风险比较低。9. 增量模型强调每一个增量,都是一个可发布的软件产品。10.增量模型融合了线性顺序模型的基本成分(重复的应用)和原型实现的迭代特征。增量模型特点:11.人员
9、分配灵活。刚开始不用投入大量人力资源,当核心产品很受欢迎时,可增加人力实现下一个增量。 12.具有一定的市场。当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径,这样就可以先发布部分功能给客户,对客户起到镇静剂的作用。 13.至始至终开发者和客户纠缠在一起,直到完全版本出来。 增量模型适用于:增量模型适用于:1. 当需要快速推出可运行的版本,而该版本不需要完整的功能时,我们可以选择增量模型。2. 在不确定性因素很多,很多东西前面无法计划情况下,可以采用增量迭代模型3. 软件产品可以分批次地进行交付。4. 待开发的软件系统能够被模块化。5. 软件开发人员对应用领域不熟悉,
10、难以一次性进行系统开发。6. 项目管理人员把握全局的水平较高。4 4、螺旋模型、螺旋模型1. 是一种引入了风险分析的模型2. 是瀑布模型、快速原型方法和风险分析方法的有机结合。三 软件过程模型4 4、螺旋模型、螺旋模型螺旋模型特性螺旋模型特性1. 螺旋模型被划分为若干框架活动2. 关注软件的重用3. 螺旋模型可以降低风险4. 需要风险评估的经验5. 逐步明确需求螺旋模型特性螺旋模型特性6. 螺旋模型一个周期执行时间太长,而且要有方法和自动化工具支持,否则无法实施7. 螺旋模型适应于风险较大的大型软件项目的开发。8. 由于软件项目的风险分析会增加成本,假如风险分析费用比例过高则不合算。因此,只有
11、开发资金较多的大型项目才有按阶段进行详细风险分析的可能与必要。9. 也是一个演化模型10.一次次迭代逐步产生更加完善版本。三 软件过程模型5 5、喷泉模型、喷泉模型 喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象面向对象的软件开发过程。迭代:迭代:软件的某个部分常常被重复工作多次,相关对象在每 次迭代中随之加入渐进的软件成分。 重复 演进 无间隙三 软件过程模型喷泉模型喷泉模型三 软件过程模型喷泉模型特性喷泉模型特性优点:优点: 开发人员可以同步进行开发。可以提高软件项目开发效率,节省可以提高软件项目开发效率,节省开发时间。开发时间。 具有较好的具有较好的可移植性可移植性,容易适应各种运行环境,容易适应各种运行环境缺点:缺点: 由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员大量的开发人员,不利于项目的管理。,不利于项目的管理。 这种模型要求这种模型要求严格管理文档严格管理文档,使得审核的难度加大,尤其是面对,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。可能随时加入各种信息、需求与资料的情况。 结 束