UML(一)——面向对象方法与软件过程模型

1、软件的实质:程序+数据+文档。

2、软件工程的三维空间观:过程+方法+工具。

3、面向对象方法之于软件工程的意义:

从软件工程三维空间观看面向对象方法:

  • 属于软件工程空间的方法维
  • 不是方法维的唯一

4、面向对象方法与软件过程模型

1)基本模型

  • 线性顺序模型:瀑布模型
  • 迭代模型:原型法模型
  • 基于构件的开发模型

2)迭代模型

3)其他

5、瀑布模型

缺点

  • 实际的项目很少按照该模型给出的 流程进行。虽然线性容许迭代,但是这种迭代是间接的,且极容易导致混乱。
  • 客户常常很难清楚地给出所有需求,但该模型却要求非得如此,并且不能忍受项目开始阶段自然存在的不确定性。
  • 客户必须有足够的耐心,因为软件产品的运行版本要等到项目开发周期的晚期才能看到。
  • 如果直到检查运行程序才发现大的错误,其后果很可能是灾难性的。
  • 线性顺序会导致“阻塞状态”,即等待时间>开发时间。

6、原型法模型

1)特点:

  • 以增量方式进行
  • 环状
  • 规格描述、开发和验证等阶段交织在一起

2)优点:

  • 开发者与客户之间的误解,可通过对系统功能的“示范”而被识别出来。
  • 客户在使用原型法模型期间,可以发现新的需求或找出来发觉的问题。
  • 可大量节约开发成本,并可提高系统的应变能力。

3)缺点:

  • 原型只包含局部功能,难以掌握系统的整体动态状况。
  • 许多机构认为在原型上花费过多资源是一种浪费。
  • 维护工作较为困难。

4)注意:

  • 建造原型仅仅是为了定义需求,之后将被抛弃或至少部分被抛弃,实际的软件在充分考量了质量和可维护性之后才被开发。

7、基于构件的开发(Component-Based Development,CBD)

1)出发点:复用

2)基础:庞大的可复用软件构件库+构建的集成框架。

3)典型代表:统一软件开发过程(USDP)

4)两种流程:

  • 需求规格分析——>构件分析——>需求调整——>复用——>完善和集成——>系统认可
  • 标识候选构件——在库中查找构建——如果可用则获取构建——如果不可用则构造构件——将新构件放入库中——构造系统的地m次迭代

5)优点:

  • 显著减少软件开发工作量(70%),从而能显著降低开发成本和开发风险。
  • 软件产品可以尽快交付用户。

6)缺点:

  • 需求折中无法回避,可能导致系统与额客户的实际需求背离。

当可复用构建的新版本不受开发者的掌控时,系统的烟花能力将可能受损。

8、迭代模型

1)增量模型

  • 特点:
    • 融合了瀑布模型的基本成分和原型法模型的进化特征。
    • 每一个线性序列产生软件的一个可发布的“增量”
    • 任何增量的处理流程都可以结合原型法模型。
    • 第一个增量往往是核心的产品
  • 优点:
    • 不必等到最终产品完成,客户便可以从早期增量受益。
    • 客户可以把早期增量作为原型,并为后期增量提出需求。
    • 尽管某些增量肯那个存在问题,但是整个项目的风险较低。
  • 增量模型VS.原型法模型
    • 与原型法模型最大的不同在于:增量模型特别强调每一个增量都发布一个可操作产品。
  • 局限性
    • 增量不能太大。
    • 每个增量均应具备一定功能。
    • 客户需求与增量大小之间的映射应匹配。
  • 发展
    • 典型变种:极限编程:每个增量都非常小,因此周期短,速度快。但增量数目多,组织困难,局限性大。(适合小编程)

2)螺旋模型

  • 特点
    • 吸收了瀑布模型和原型法模型的优点
    • 增加了风险分析
    • 是软件的增量版本的快速开发成为可能
  • 优点
    • 使用原型实现作为降低风险的机制。
    • 在系统开发初期,风险性高的部分首先被考虑,从而能及早发现错误、降低风险并减少开发成本。
    • 在编写软件时,已有产品可供运行或“示范”。
  • 缺点
    • 客户对该模型的可控性常常产生疑虑。
    • 开发者需要具备和掌握较多风险评估的知识和技术。
    • 如果某个大风险未被及时考虑,会给后续开发造成困难。

9、其他模型

1)Formal Model(形式化模型)

  • 特点
    • 开发者通过使用一个严格的数学符号体系来描述、开发和验证基于计算机的系统。
    • 使用形式化方法能够更容易发现和纠正二义性、不完整性和不一致性等其他软件过程模型难以克服的问题。
  • 局限性
    • 开发狠费时、昂贵。
    • 具备所必须背景的开发者太少。
    • 当客户对形式化模型一无所知时,开发者无法将该模型作为和客户通信的机制。
  • 存在原因
    • 安全性、可靠性至关重要时
    • 软件发生错误会导致严重经济损失时

2)快速应用开发(RAD)

  • 特点
    • 强调极短的开发周期
    • 是线性顺序模型的一个“高速”变种
    • 与增量模型具有相似性
    • 通过使用基于构建的构造方法实现快速开发
    • 主要用于信息系统开发。
  • 缺点
    • 对于大型软件开发项目必须有足够的人力资源支持。
    • 要求客户和开发者均应在短的时间框架内完成各自相应的快速活动。
    • 当系统难以模块化时,或者当高性能是系统的主要指标时,RAD可能失效。
    • 不适合技术风险高的情况。

3)第四代技术(4GT)

  • 特点:
    • 是多种软件过程模型的综合
    • 包含了一系列软件工具
    • 开发者在更高抽象层次上描述软件规格
    • 软件工具根据开发者的软件规格描述自动生成源代码
  • 优点
    • 显著缩短了软件的开发周期。
    • 显著提高了构造软件的开发时间。
  • 缺点
    • 易用性不高。
    • 生成的源代码太低效。
    • 可维护性差。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-29 15:03:10

UML(一)——面向对象方法与软件过程模型的相关文章

结构化方法和面向对象方法在软件开发中的对比

学习过C语言和JAVA的同学们一定清楚,这两种语言代表了两种不同的开发方式,即以C语言为代表的结构化开发方法和JAVA代表的面向对象的开发方法.由于二者在程序结构上有着很大的区别,因此,在软件开发领域中,根据自己的需求来选择合理的开发方式就显得尤为重要. 开发软件通常有三个层次: 1.满足用户需求 2.可维护性,即可修改性,让软件能随着用户需求的变更而容易改变 3.可重用性(在其它软件中,能尽量重用该软件的模块) 通过对软件的这三个主要层次的分析,我们就能在实际开发中确定我们的选择. 结构化方法

浅谈结构化方法与面向对象方法

一. 引言 在软件开发过程中,有很多不同的软件开发方法.选取合适的软件开发方法,对于软件开发的过程和结果有着非常重要的影响.我们知道自软件工程发展以来诞生了很多不同的软件开发方法,例如具有代表性的结构化方法.面向对象方法,以及其他的原型法.面向数据结构的Jackson方法.基于模型的VDM方法等.而结构化方法和面向对象方法在软件开发过程中的应用是最广泛的,因而了解两者的区别与联系,并将两者更好的结合是长期以来软件开发人员津津乐道的话题.所以我们今天来探讨一下结构化方法与面向对象方法之间的一些区别

1.1经典软件过程模型的特点

经典软件过程模型的特点(瀑布模型.增量模型.演化模型.统一过程模型) 一.软件过程软件过程的概念:经典软件过程模型的特点(瀑布模型.增量模型.演化模型.统一过程模型):过程评估与CMM/CMMI的基本概念:敏捷宣言与敏捷过程的特点 01:瀑布模型(Waterfall Model) 1970年Winston Royce提出了著名的"瀑布模型",直到80年代早期,它一直是唯一被广泛采用的软件开发模型. 瀑布模型将软件生命周期划分为制定计划.需求分析.软件设计.程序编写.软件测试和运行维护等

几种常见软件过程模型的比较

瀑布模型 瀑布模型(经典生命周期)提出了软件开发的系统化的.顺序的方法.其流 程从用户需求规格说明开始,通过策划.建模.构建和部署的过程,最终提供一 个完整的软件并提供持续的技术支持. 优点: 1. 强调开发的阶段性,各阶段具有顺序性和依赖性 2. 强调早期调研和需求分析,推迟编码实现的观点 3.  提供了一个摸板,这个摸板使得分析.设计.编码.测试和支持的方法可以 在该摸板下有一个共同的指导 缺点: 1. 文档驱动,用户无法及时了解产品的情况 2. 依赖早期调研和需求分析,很难适应在许多项目开

结构化与面向对象方法的比较

计算机软件在现代科学技术中有着十分重要地位和作用,已成为信息社会高技术竞争的关键领域之一.我在这篇文章中针对计算机软件两大开发方法:结构化方法与面向对象方法进行了梳理.对比,剖析了结构化方法和面向对象方法这两种软件开发方法具体的分析设计过程,讨论了各自在不同软件开发中的应用及局限性,并在最后提出了一点自己的看法. 1结构化方法 结构化方法(Structured Methodology)是编程领域的一种典型的系统开发方法. 它采用了系统科学的思想方法,从层次的角度,自顶向下地分析和设计系统. 结构

结构化方法与面向对象方法之应用比较

软件的开发对于整个软件产业的发展,起着至关重要的作用,在开发过程中,需要有各种开发工具.开发方法和开发过程的支持.不管是开发工具.开发方法还是开发过程,都一直在不断的发展和更新.在软件开发方法发展的过程中,产生了许多众所周知的开发方法,如结构化方法,原型法,面向数据结构的Jackson方法.面向对象方法等.其中,结构化方法和面向对象方法是两种应用十分广泛的软件开发方法,未来的软件开发过程中,可能还会出现一些更好的软件开发方法,如现在的面向服务的软件开发方法,但就目前来说,结构化方法和面向对象方法

结构化方法与面向对象方法比较

结构化方法与面向对象方法比较 软件工程离不开软件开发方法,软件开发方法是指在项目投资规模和时间限制内.设计.实现符合用户需求的高质量软件,根据软件开发的特点,提出的多种软件开发策略.而自20世纪60年代以来,受到开发综合症"软件危机"的影响,软件开发方法不断地快速发展着,产生了许多众所周知的开发方法,比如结构化方法.原型法基于模型的VDM(维也纳开发)方法.面向对象方法等.其中,结构化方法和面向对象方法最具有代表性,在软件开发领域中使用比较广泛,下面我们就来对这两种方法进行说明和比较.

结构化方法与面向对象方法浅析

结构化方法与面向对象方法浅析   在目前的软件开发领域,结构化方法和面向对象方法是两种比较流行的方法.在过去两年多时间里,我们也对这两种方法进行了学习和实践,下面谈一谈自己对这两种方法的理解.   结构化方法   结构化方法是一种比较传统的软件系统开发方法,主要思想是分析问题确定软件功能,之后将整体功能划分成不同的功能模块,然后将实现之后的模块拼接结合在一起,是一个先分再和的过程.功能分解可以使软件条理清晰,将复杂的问题拆分成相对简单的小问题也便于实现. 结构化方法注重算法和数据,程序过程可以看

软件工程:结构化方法 VS 面向对象方法

一.基本概念 1.结构化方法 结构化方法是一种传统的软件开发方法,它是由结构化分析.结构化设计和结构化程序设计三部分有机组合而成的. 基本思想:把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内. 2.面向对象方法 面向对象方法是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO,是建立在"对象"概念基础上的方法学.对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象