`
ihuashao
  • 浏览: 4663457 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

用UML建模需要注意的问题

阅读更多

用UML建模时,对软件开发过程是有要求的,必须是用例驱动,以架构为中心,迭代和递增的开发,如果软件开发组织的软件开发过程不能满足这三点要求,那么UML的使用效果就会大打折扣,下面详细论述:

一、 用例驱动

用例驱动意味着为系统定义的用例是整个开发过程的基础。

用例在多个核心工作流程中都发挥了作用。

1、 用例的概念可用来表示业务流程,我们称这种用例的变体为“业务用例”。

2、 用例模型是需求工作流程的输出结果。在这一早期流程中,需要通过用例来建立用户希望系统完成的任务的模型。这样,用例构成了一个重要的基本概念,客户和系统开发人员都必须认可这个概念。

3、 在分析设计中,用例是在设计模型中实现的。您需要生成用例实现来说明在设计模型中如何通过对象的交互来执行用例。此模型根据设计对象来说明所实施系统的各个组成部分,以及这些部分如何通过相互作用来执行用例。

4、 在实施阶段,设计模型就是实施的规约。由于用例是设计模型的基础,所以用例需通过设计类来实施。

5、 在测试期间,用例是确定测试用例和测试过程的基础。也就是说,通过执行每一个用例来核实系统。

6、 在项目管理过程中,用例被用来作为计划迭代式开发的基础。

7、 在部署工作流程中,它们构成用户手册阐述内容的基础。用例也可用来确定产品构件如何排列组合。例如,客户可通过将用例进行某种组合来配置一个系统。

二、 以架构为中心

构架之所以重要,原因有以下几点:

1、 它使您可对项目进行并保持理智的控制,应付项目中复杂多变的情况,同时保持系统的完整性。

一个复杂的系统不仅仅是其各组成部分之和,也不光是一连串没有关联关系的、很小的技巧决定。它必须依靠某种连贯统一的结构来有条理地组织那些部分,并且提供准确的规则,使系统发展过程中,其复杂程度不会膨胀,超越人类的理解力。

通过建立用于讨论设计问题的一套公共参考材料和一个公共词汇表,构架提供了增进交流和理解的手段。

2、 它是大规模复用的有效基础。

通过明确阐述它们之间的主要构件和关键接口,构架为您决定重复使用提供依据,包括内部复用(确定公用的部分)和外部复用(并入现成的构件)。它还允许更大规模上的复用:构架本身的复用,用于处理同一领域中的不同功能。

3、 构架还可作为项目管理的基础。

项目计划和人员配备是根据主要构件的类别组织进行的。基本的结构决策是由一个人员组成相对固定的构架小组作出的,他们不是分散的。而开发活动则被分配给若干个小组,每个小组负责开发系统的一个或若干个部分。

三、 迭代和递增的开发

迭代式方法一般要优于线性或瀑布式方法,其原因很多。

1、 允许变更需求。需求有时会变化,这常常给项目带来麻烦,它们会导致延期交付、工期延误、客户不满意、开发人员受挫。

2、 逐步集成元素。在迭代式方法中,集成可以说是连续不断的。过去在项目结束时要占到整个项目工作量的那段较长的、不确定的且棘手的时期,现在分散到六至九个集成部分中,每一部分要集成的元素都比过去少得多。

3、 及早降低风险。因为风险一般只有在集成阶段才能发现或得到处理。在初期迭代时,检查所有的核心工作流程,对项目使用的工具、市售软件及人员技能等许多方面进行磨合。过去认定的风险可能被证明不再是风险,而又可能出现一批新的未曾怀疑过的风险。

4、 有助于组织学习和提高。团队成员有机会在整个生命周期中边做边学,各显其能。测试员可以早一些开始测试,技术文档编写员可及早开始编写,其他人也是如此。 如果是非迭代式开发,这些人在初期只能制定计划或培训技能,空等着开始他们的工作。培训需求等也可在评估复审中尽早提出。

5、 提高复用性。因为分部分设计或实施比起预先确定所有共性更容易确定公用部分。确定和开发可重复使用的部分并非易事。早期迭代中的设计复审可使构架设计师确定毋庸置疑的潜在复用部分,并在以后的迭代中开发和完善这些公用代码。

6、 生成性能更强壮的产品。因为在多次迭代中您总是不断地纠正错误。在产品脱离先启阶段后的初期迭代中仍然可以发现缺陷。性能上的瓶颈可以尽早发现并处理,而不象在交付前夕,此时已来不及处理。

7、 容许产品进行战术改变。例如同现有的同类产品竞争。可以决定采用抢先竞争对手一步的方法,提前发布一个功能简化的产品,或者采用其他厂商的已有技术。

8、 迭代流程自身可在进行过程中得到改进和精炼。一次迭代结束时的评估不仅要从产品和进度的角度来考察项目的情况,而且还要分析组织和流程本身有什么待改进之处,以便在下次迭代中更好地完成任务。

通常在软件开发过程中,迭代在数量、持续时间和目标上都是按计划进行的。参与者的任务和职责都已确定好。对进度进行的目标评测都将记录备查。从一次迭代到下一次迭代确实会存在返工现象,但返工也是严格按规定进行的。

四、 使用不当的问题

很多企业员工在使用UML的过程中,只是进行了领域建模,没有进行用例建模,这样是不能最大可能地发挥UML的优势的,因为该组织的软件开发过程不是用例驱动的。

如 果软件开发组织的软件开发过程不能满足上述三点要求,那么UML的使用效果就会大打折扣。也会产生一些问题,有些组织在使用UML之后,发现前期花很长时 间设计的模型到了项目的中后期和真正的开发成果相去甚远,以至于全都束之高阁了,如果产生这样的问题,就应该仔细研究一下组织的软件开发过程,是否满足上 述三点要求,如果软件开发过程不满足迭代的开发,模型没有随着进度改进,这种问题就很容易出现。

UML2.0和MDA(模型驱动架构)提出了一些解决开发周期前期和后续的模型不一致问题的方法,就是通过模型的转换来完成模型的自动变更,而不是对各个抽象层次的模型全部进行修改,但MDA为大部分人所接受还需要些时日。

五、 总结

综上所述,UML虽然是软件建模的有利武器,也要遵循一定的规则来使用,否则就不能很好地发挥它的价值,也会事倍功半。

理解UML使用的前提,并认真按照这些方法进行实施,相信会有理想的效果。

六、 参考资料

[1]. Rational Unified Process documents

分享到:
评论

相关推荐

    我对uml建模的一点理解

    - **Rose工具的使用**:Rose是一款广泛使用的UML建模工具,它可以支持从需求分析到系统设计的全过程。例如,在需求分析阶段,可以使用Rose绘制用例图来描述系统的功能需求;在设计阶段,可以通过Rose生成类图、顺序...

    UML统一建模实用教程

    "UML统一建模实用教程" UML(Unified Modeling Language)是一种用于软件设计和开发的建模语言,它提供了一种通用的语言来描述、制定、构建和文档化软件系统。UML模型由三个基本的建筑块组成:事物、关系和图。 ...

    软件需求设计UML建模

    需求变更可能不会从天而降,因此在UML建模中要特别注意区分需求变更的真伪,并理解外部价值集合如何通过业务用例图来展现,而系统的集合则通过业务序列图来描绘。 总的来说,UML建模不仅仅是一种技术活动,更是一种...

    为什么要用UML建模之建模的重要性

    ### UML建模的重要性 UML(Unified Modeling Language,统一建模语言)作为一种标准化的建模语言,在软件工程领域有着举足轻重的地位。本文将深入探讨为什么在软件开发过程中,UML建模如此重要。 #### 一、提高...

    《UML面向对象建模基础》电子教案

    《UML面向对象建模基础》是一门深入探讨UML(Unified Modeling Language)技术的课程,旨在教授如何使用UML进行面向对象的系统分析与设计。徐锋作为该课程的作者,通过电子教案的形式,为学习者提供了丰富的教学资源...

    UML建模入门

    ### UML建模入门 #### 一、UML概述及三种使用方式 **UML**(Unified Modeling Language,统一建模语言)是一种广泛应用于软件工程领域的标准化建模语言,旨在为软件开发过程提供一种通用的、可视化的方式来进行系统...

    UML建模说明书格式

    ### UML建模说明书格式详解 #### 一、引言 在软件开发过程中,统一建模语言(Unified Modeling Language, UML)作为一种图形化的标准建模语言,被广泛应用于系统设计与开发之中。UML通过一系列图表来描述系统的...

    UML用例建模

    Rational Rose等工具能够支持UML建模,并提供了一套完整的绘图功能,使得模型的创建和维护更加高效和准确。 UML用例建模不仅适用于软件开发,也适用于各种系统工程领域,例如嵌入式系统、业务流程建模等,它提供了...

    UML建模 用例说明及应用

    用例图作为UML建模的重要组成部分,对于理解和描述系统功能需求具有不可替代的作用。通过上述步骤,我们可以有效地识别、描述和组织用例,进而为软件开发提供坚实的基础。然而,在实际应用中,还需要注意避免滥用...

    Argo UMl软件建模工具

    ROSE是Rational公司的一款知名UML建模工具,其教材通常包含丰富的UML理论和实践知识。尽管ArgoUML与ROSE在功能和界面设计上可能有所不同,但基本的UML概念和原则是通用的。因此,你可以借鉴ROSE的教程来学习如何使用...

    UML动态建模及设计规范

    本主题将重点关注动态建模的几个核心方面,包括活动图、状态图、协作图和顺序图的使用,以帮助学习者掌握如何用UML来清晰地表达系统动态行为。 首先,活动图(Activity Diagrams)是UML中用于描绘业务流程或系统...

    需求开发与UML用例建模

    统一建模语言(Unified Modeling Language,简称UML)是一种广泛使用的可视化建模语言,它提供了一系列图形化的工具和技术,用于构建系统的概念模型。其中,UML用例建模是一种特别有用的技术,用于捕捉系统的功能性...

    UML建模案例之图书管理系统1+

    UML建模案例之图书管理系统 UML工程实例,为有标准建模语言需求的同志们服务,是公司的内部培训资料, 没注意一次只能传一个文件,PPT文件(培训稿)和实例单独提交,就不压缩了

    PHP的类建模工具,支持UML等等

    UML建模对于大型项目尤其有价值,因为它能促进团队之间的沟通,提高代码质量,并减少潜在的错误。 PHP作为一门流行的服务器端脚本语言,广泛应用于Web开发。然而,由于其动态特性和灵活性,有时候可能会导致代码...

    基于UML的用例建模和对象建模实验.doc

    在设计用例图的过程中,我们需要注意actor和use case之间的关系,并确保所有的功能都能够丰富进入图像中。在设计类图的过程中,我们需要注意类和类之间的关系,并确保所有的变量和方法都能够正确地设计。 通过本...

    uml大作业用例图及报告

    在完成UML用例图时,我们需要注意以下几点: - **明确性**:确保每个用例和参与者都有明确的定义,避免模糊不清。 - **完整性**:覆盖所有必要的系统功能,不应遗漏任何重要的交互。 - **简洁性**:避免过度复杂,每...

Global site tag (gtag.js) - Google Analytics