UML(1)——面向对象方法与软件过程模型
UML(一)——面向对象方法与软件过程模型
1、软件的实质:程序+数据+文档。
4、面向对象方法与软件过程模型
1、软件的实质:程序+数据+文档。
2、软件工程的三维空间观:过程+方法+工具。
3、面向对象方法之于软件工程的意义:
从软件工程三维空间观看面向对象方法:
- 属于软件工程空间的方法维
- 不是方法维的唯一
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)
- 特点:
-
- 是多种软件过程模型的综合
- 包含了一系列软件工具
- 开发者在更高抽象层次上描述软件规格
- 软件工具根据开发者的软件规格描述自动生成源代码
- 优点
-
- 显著缩短了软件的开发周期。
- 显著提高了构造软件的开发时间。
- 缺点
-
- 易用性不高。
- 生成的源代码太低效。
- 可维护性差。
版权声明:本文为博主原创文章,未经博主允许不得转载。
- 1楼tr1912昨天 17:12
- 把软工和UML结合起来总结真的很不错