码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-08-31 11:59:07      阅读:184      评论:0      收藏:0      [点我收藏+]

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

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

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

标签:uml   面向对象   软件过程模型   软件工程   

原文地址:http://blog.csdn.net/shangqing1123/article/details/48130747

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!