软件工程方法论对我们经软件开发有多 大用处?谈谈你的看法。

一.软件工程

简而言之,就是尽可能的为我们的生活提供方便。

软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。 它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。 在现代社会中,软件应用于多个方面。 典型的软件有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。

二.软件工程方法论

软件工程方法论有什么用?
通过学习软件工程方法论,学习系统的,科学的理论框架,吸收前人的经验,可以提高我们软件开发的速度和质量。

从定义上来说,方法论是指人们认识世界、改造世界的一般方法,是人们用什么样的方式、方法来观察事物和处理问题。软件危机的产生使得软件开发进入了软件工程阶段,软件工程方法就是为了缓解软件生命周期中一系列问题的工具,软件工程方法告诉人们怎么做,怎么取得最高效率。软件工程方法论包含前人开发软件的经验,掌握方法,能够少走弯路、错路,能够指导我们更好地、高效地开发软件。

三.软件过程模型

1.瀑布模型

定义:瀑布模型是一个经典的软件生命周期模型,也叫预测型生命周期、完全计划驱动型生命周期。在这个模型里,在项目生命周期的尽早时间,要确定项目范围及交付此范围所需的时间和成本。

如果采用这个模型的话,一般将软件开发分为软件计划、需求分析、软件设计、软件实现(编码)、测试、运行维护等几个阶段,如下图所示。
在这里插入图片描述

瀑布模型中每项开发活动具有以下特点:

(1)从上一项开发活动接受其成果作为本次活动的输入。
(2)利用这一输入,实施本次活动应完成的工作内容。
(3)给出本次活动的工作成果,作为输出传给下一项开发活动。
(4)对本次活动的实施工作成果进行评审。若其工作成果得到确认,则继续进行下一项开发活动;否则返回前一项,甚至更前项的活动。尽量减少多个阶段间的反复。以相对来说较小的费用来开发软件。

瀑布模型优缺点都很明显:

优点:有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。

缺点:开发过程一般不能逆转,否则代价太大;很难严格按该模型进行;很难清楚地给出所有的需求。

瀑布模型的使用范围:用户的需求非常清楚全面,且在开发过程中没有或很少变化,对软件的应用领域很熟悉;用户的使用环境非常稳定;开发工作对用户参与的要求很低。

2.快速原型模型

定义:快速原型模型需要迅速建造一个可以运行的软件原型 ,以便理解和澄清问题,使开发人员与用户达成共识,最终在确定的客户需求基础上开发客户满意的软件产品。 快速原型模型允许在需求分析阶段对软件的需求进行初步而非完全的分析和定义,快速设计开发出软件系统的原型,该原型向用户展示待开发软件的全部或部分功能和性能;用户对该原型进行测试评定,给出具体改进意见以丰富细化软件需求;开发人员据此对软件进行修改完善,直至用户满意认可之后,进行软件的完整实现及测试、维护。

在这里插入图片描述

快速原型模型的优缺点以及适用范围:

优点
1.克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。
2.适合预先不能确切定义需求的软件系统的开发。
缺点
1.所选用的开发技术和工具不一定符合主流的发展;快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。
2.使用前提是要有一个展示性的产品原型,一定程度上可能会限制开发人员的创新。
适用范围
快速原型模型需要迅速建造一个可以运行的软件原型 ,以便理解和澄清问题,使开发人员与用户达成共识,最终在确定的客户需求基础上开发客户满意的软件产品. 快速原型模型允许在需求分析阶段对软件的需求进行初步而非完全的分析和定型。

3.增量模型

定义:把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。

在这里插入图片描述

增量模型的特点;

把瀑布模型的顺序特征与快速原型法的迭代特征相结合,将软件看作一系列相互联系的增量,在开发过程的各次迭代中,每次完成其中的一个增量.

增量模型的优缺点以及适用范围:

优点
(1)采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源;(2)如果核心产品很受欢迎,则可增加人力实现下一个增量;
(3)可先发布部分功能给客户,对客户起到镇静剂的作用。
缺点
(1)并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构;
(2)增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。
使用范围
(1)进行已有产品升级或新版本开发,增量模型是非常适合的;
(2)对完成期限严格要求的产品,可以使用增量模型;
(3)对所开发的领域比较熟悉而且已有原型系统,增量模型也是非常适合的。

4. 螺旋模型

定义:螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径,螺旋模型是快速原型模型以进化的开发方式为中心,在每个项目阶段使用瀑布模型法

在这里插入图片描述

螺旋模型的特点

螺旋模型强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解,继而做出应有的反应,因此特别适用于庞大、复杂并具有高风险的系统.

螺旋模型的优缺点以及适用范围:

优点
1.对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标。
2.减少了过多测试(浪费资金)或测试不足(产品故障多)所带来的风险。
3.在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质区别。
缺点
1.采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失。
2.过多的迭代次数会增加开发成本,延迟提交时间。
使用范围
螺旋模型只适合于大规模的软件项目。

5.喷泉模型

定义:喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。该模型认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性。

在这里插入图片描述

喷泉模型的优缺点以及适用范围:

优点
  喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动。该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。其优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。
缺点
 由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。
适用范围
 适应于面向对象的软件开发过程。

6.Rational统一过程

定义:Rational统一过程,它是由Rational软件公司推出的一种完整而且完美的软件过程。它可以作为软件开发的良好开端。

在这里插入图片描述

特点

用例驱动、以构架为中心、迭代和增量的软件过程框架。

Rational统一过程的优缺点以及适用范围:

优点

  1. RUP是建立在非常优秀的软件工程原则基础上的,例如迭代,需求驱动,基于结构化的过程开发。
  2. RUP提供了几个方法,例如每一次迭代产生一个工作原型,在每一个阶段的结束决定项目是否继续,这些方法提供了对开发过程的非常直观的管理。
    缺点
  3. RUP仅仅包含了开发过程。它没有完全覆盖软件过程,从图1能够明显看出,它丢失了维护和技术支持这两个重要的阶段。
  4. RUP不支持组织内的多项目开发,导致组织内的大范围的重用无法实现。
  5. RUP缺少开发商的支持。
  6. RUP在度量管理,重用管理,人员管理和测试上有缺陷。
    适用范围
    Rational统一过程的开发活动是 用况驱动 的,该过程重点强调在透彻地理解如何使用被交付系统的基础上建造系统。

7.极限编程

定义:极限编程是由KentBeck在1996年提出的,是一种软件工程方法学,是敏捷软件开发中可能是最富有成效的几种方法学之一。如同其他敏捷方法学,极限编程和传统方法学的本质不同在于它更强调可适应性能性以及面临的困难。1996年三月,Kent终于在为DaimlerChrysler所做的一个项目中引入了新的软件开发观念——XP。

在这里插入图片描述

极限编程的优缺点以及适用范围:

优点
1.快速。 工作节奏快,不浪费时间。 有持续的集成和部署。
2.可见。 团队内部的开放式沟通可帮助每个人跟上项目进度。 每个人都在处理各自的任务,但是例行会议会集体记录改进情况。
3.降低成本。 在极限编程中,减少了反馈回路。
4.团队合作。 在XP中,开发人员努力工作以在紧迫的期限内完成目标。 因此,增加了员工的承诺和满意度。
缺点
1.代码克服了设计。 XP的重点肯定是代码而不是设计。 有时,这可能导致无法完全实现软件要求。
2.位置。 当客户远离开发团队时,XP项目很难实施。 因此,应用极限编程会限制项目范围。
3.缺少文档。 不断的更改无法正确记录。 因此,存在无法跟踪的意外故障的高风险。 即使修正了错误,但是如果没有准确的文档说明,同样的错误也有可能再次发生。
4.强调。 如果开发人员压力很大,无法按时完成任务,则他们更有可能在编码时犯错误。由于调度,软件质量可能会降低。
适用范围
适用于小团队开发。

8.微软过程

定义:微软所使用 软件开发 过程模型是一种基于阶段的,由里程碑驱动的,递进的 软件开发 模型。

微软过程的各个阶段:

规划阶段
​ 开展市场调查研究。
设计阶段
完成软件功能规格说明和总体设计,确定产品开发的主要进度。
开发阶段
​ 完成产品中所有构件的开发工作。
稳定阶段
​ 实行全面测试,最终形成可发布的RTM版本。
发布阶段
​ 确认产品质量符合标准后,发布产品及相关消息。
在这里插入图片描述
微软过程的优点
有效地结合了瀑布模型和螺旋模型各自的优点,并在一定程度上弥补了这两种传统过程模型的不足。

四.总结

以上就是今天要讲的内容,本文仅仅简单介绍了8种典型的软件过程模型,以及软件过程和软件工程方法论的概念。诚然,为了计算机系统的进一步发展,需要认真研究开发和维护软件的科学技术。更要认真学习软件工程方法论,熟练地掌握了这个方法,能够少走弯路、错路,能够指导我们避免不必要的错误,更好地、高效地开发软件。在这个互联网时代,网络越来越占据主导地位,加强软件知识的乃至计算机的学习,使我们的生活更有质量,工作更有效率。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小熊可可茶+

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值