`
JAVA海洋
  • 浏览: 618297 次
  • 性别: Icon_minigender_1
  • 来自: 太原
社区版块
存档分类
最新评论

用Rational Rose和UML开发J2EE应用(一)

阅读更多
前言

  成功地运用J2EE构建企业应用的关键和所有复杂的软件平台是一样的:有效的需求沟通、制定正确的分析和设计决定,并且识别最佳的实现选择。

  追求最佳可视化模型的公司可以更快地开发它们的软件,并且建立更高质量的系统。Unified Modeling Language (UML)就是可视模型化的软件工业标准。

在这里,我们将向你介绍如何运用UML和Rational Rose 2001a,它是现今最流行的基于UML的软件模型化和开发工具,可用于开发基于J2EE的企业应用。

  什么是UML?

  Unified Modeling Language (UML),是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。

  使用UML作可视化模型主要是为了了解系统的重要细节,以便项目的需求可以清晰地表达、开发出解决方案体系、并且一个选择的实现可以清晰地标识和构造。为达到这个目的,需要丰富的符号来表达模型化的软件系统。UML不但为基本的构造块提供了符号表示,它还提供了方法来表达基本构造块之间的复杂关系。这些关系都以UML框图的形式表示出来。

  以下就让我们来看一下UML和Rational Rose是如何有助于理解、设计和实现J2EE应用的。

  理解需求

  项目失败的原因通常是由于需求没有很好地理解或者进行沟通。我们也可以很容易地理解,无论是口头或者书面的语言,都是不严密的。

  你可以应用UML用例模型来开发一个精确的模型来表示系统的需求,然后以这些用例为基础来推动系统开发的其它方面。用例的作用就好象是项链上的一条线,它将所有的珍珠绑定在一起。用例在最终的用户和系统需求之间建立起一座桥。它们可用来在功能需求和系统实现本身之间进行回溯。用例也可以作为一个连接点,连接到一个详细的说明需求细节的用例文档。

  图1展示了一个在线CD商店的部分用例框图,它们是从文本和口头的功能需求中提取出来,然后转为用例。在这个例子中,很明显购买者(由几条线条组成的人物,表示为UML中的角色)可以通过4种方式来使用系统(在UML中以椭圆表示一个用例)。


***********图1********
一个简单的用例图

  每个用例则通过顺序框图中的一个或者多个场景来精确描述。当然,在需求捕捉和分析的早期阶段,顺序图是相对简单,而且也可能是不完整的。顺序图的这样一个例子如图2所示。在Rational Rose中,要为某个用例创建顺序图,你可以在浏览器中选择它,然后从用例的菜单中选择New>Sequence Diagram。


***********图2************
一个解释付费用例的顺序图

设计一个方案

  随后的阶段是用例分析,对于内部元素是如何交互来满足系统的功能需求,以及它们是如何相关,这个阶段提供了一个初始的、高级别的定义。这个分析需要进行反复的试验,直到产生满意的解决方案。“Analysis classes(分析类)”的行为通常是通过自然的语言描述的,比较抽象,在这个分析阶段中,它是一个有用的工具。分析类通常都不在软件中实现,虽然我们可以做到这一点,实际上,在总体设计过程中,分析类才会转换为精确定义的设计类和子系统。

  我们首先要精心地制造顺序图,以便它们可以揭露出系统的内部运作,我们并不是通过展示角色和一个系统的交互来分析系统,而是将系统分解成独立的分析对象。系统的职责被分解到分析级别的对象中,以便可以得到一个更好的顺序图。在这里我们要介绍三种分析对象:

  .边界对象

  边界对象代表系统的内部工作和它所处环境之间的交互。它包括有一个用户通过图形界面的交互,与其它角色的交互(例如代表其它系统的角色),和设备的交互等。边界对象将系统的其它部分和外部的相关事物隔离和保护起来。简单地说,每一个角色-用例交互对映射到一个边界对象。

  . 实体对象

  实体对象代表系统的重要信息。在一个很长的时间内,它们都是持久和存在的。它们的主要目的是表达和管理系统中的信息。在模型中,系统中的关键概念以实体对象来表现。

  . 控制对象

  控制对象是用来模型化系统中的行为的。控制对象并不需要实现这个行为,它可能是与其它对象协作以实现用例的行为。它的想法是为了将行为和模型下层的信息隔离开来,这样在处理以后的改变时就比较容易。

  UML提供了stereotype符号,它表示为放在一个双角括号中的文本,以便和不同类型的类区别开来。在Rational Rose中,你可以很容易地创建分析类,只需将类的stereotype字段分别修改为<<boundary>&gt;, &lt;<entity>&gt;和&lt;<control>&gt;就可以了。这些都可以作为创建分析级框图的基础。</control></entity></boundary>

  付款用例顺序图的一个更新版本如图3所示,这里系统被分解为分析对象。在这个图中,使用图标来代表边界、控制和实体对象(分别以一个T、带箭头的圆圈和一个带切线的圆表示)。

  当然,类通常都参与到几个用例中,因此为确保系统的一致性,理解它们的静态关系也是同样重要的。对于捕捉不同结构元素的静态模型,UML类图是很有用的。

  首先,我们标识和放置用例中所有的类到一个类框图中。我们已经将用例的行为分布到对象中,所以要分析每个类的操作就变得相对简单了。要注意的是,这些是分析的操作,这意味着随着我们不断地进行分析和设计,这些操作将会不断地需要细化。

  Rational Rose可让你很简单地在顺序图中的分析类上定义新的操作,你只要选择现有的信息,并且在菜单上选择<new operation> 就可以了(如图3所示)。如果你已经定义了一个类的操作,你可以简单地由列表上选择现有的操作。</new>


****图3:带有分析对象的精确顺序图****

  这是Rational Rose中的一个典型方法,它可以提高用户的生产力,并且确保整个模型的一致性和质量,另一个类似的有用特性包括有查询模型哪个类和消息是没有解释的(例如在模型中没有映射到真正的类或者操作)。

  还有一个方面是需要标识每个类的属性。属性代表的信息,可能是其它类需要的,也可能是类自身为履行自己的职责需要的。在这个分析阶段,应将属性标识为普通的类型,例如数字、字符串等。

  要完成用例的类图,你还需要标识类间的关系。在这个阶段中我们特别感兴趣的关系是关联、依赖和继承。

  在分析完所有的用例和为每个用例创建类框图后,我们就需要接合各种不同的分析类来得到一个统一的分析模型。这是一个重要的活动,因为我们需要得到一个最小集合的类,并且为了避免在最后的分析模型中出现不必要的冗余。

  这个阶段的主要任务是标识在用例间重复出现的类或者只有很小改变的类。例如,对于跨用例间拥有类似行为或者表示同样概念的控制类,我们应该将它们合并。拥有同样属性的实体类也应该被合并,它们的行为也合并为一个类。

  图4展示了一个初步分析级的类框图(这是根据图1的用例得到的)。由于我们现今只是关系类间的关系,所以我们使用Rational Rose的显示过滤能力来过滤掉每个类的细节(通过不勾选Format>Show all attributes和Format>Show all operations就可以了)。


**********图4************
初步分析级的类框图

分享到:
评论

相关推荐

    用Rational Rose和UML开发J2EE应用

    ### 使用Rational Rose和UML开发J2EE应用的知识点详解 #### 一、引言 随着企业级应用的日益复杂,确保软件项目的成功变得更具挑战性。在这样的背景下,有效的沟通、明智的分析与设计决策及恰当的技术选择成为了关键...

    Developing J2EE Applications with the UML and Rational Rose

    《使用UML与Rational Rose开发J2EE应用程序》是一本深入探讨企业级Java应用开发的专业书籍。本书主要关注如何利用统一建模语言(UML)和Rational Rose这一强大的建模工具,来设计和实现复杂的J2EE(Java 2 Platform,...

    RationalRose与UML教程

    在学UML的过程中,RationalRose的角色无比重要。现在能找到的大多数是2003的,但下面连接是2007。http://blog.csdn.net/skl_TZ/article/details/8925152 这个教程会教会你用RationalRose。包括用例图,类图,时序图...

    J2EE with Rational Rose

    本文将探讨如何有效地利用UML和Rational Rose 2001这一领先的基于UML的软件建模和发展工具来开发基于J2EE的企业级应用。 #### 二、什么是Unified Modeling Language (UML)? UML自1997年末以来一直是Object ...

    rational rose软件工程课设

    Rational Rose 是一款流行的软件开发工具,支持 Unified Modeling Language(UML)和 Rational Unified Process(RUP)。Rational Rose 提供了从需求分析到设计、实现和测试的全生命周期支持,帮助开发者快速开发高...

    Rationalrose生成代码.pdf

    Rational Rose 是一个功能强大的统一建模语言(UML)工具,能够生成多种编程语言的代码,包括 Visual C++、Java 等。下面将详细介绍 Rational Rose 生成代码的步骤和相关知识点。 一、生成代码的准备工作 在生成...

    基于j2ee和UML建模开发

    J2EE平台提供了丰富的服务和组件模型,包括Servlet、JSP、EJB(Enterprise JavaBeans)、JMS(Java Message Service)等,以支持分布式、多层架构的应用开发。本主题聚焦于如何结合UML(Unified Modeling Language)...

    用J2EE 和UML开发Java 企业级应用程序

    7. **集成J2EE与UML**:使用UML建模工具(如IBM Rational Rose或Visual Paradigm),可以直接生成Java代码,简化开发过程。同时,UML模型可以作为文档,帮助团队成员理解和沟通设计决策。 8. **测试与部署**:在...

    Rational Rose由代码生成类图

    Rational Rose是一款功能强大的UML建模工具,通过对Java代码的逆向工程,可以生成类图。下面我们将详细介绍如何使用Rational Rose从Java代码生成类图。 一、创建ROSE工程 要使用Rational Rose生成类图,首先需要...

    应用 Rational 工具简化基于 J2EE 的项目

    Rational软件如Rational Rose和Rational Software Architect支持UML建模,提供了一个直观的图形用户界面来创建和编辑模型,这大大简化了设计阶段的工作。 接着,Rational Application Developer (RAD) 是一个集成...

    基于J2EE的UML核心编程技术开发

    在IT行业中,J2EE(Java 2 Platform, Enterprise Edition)是一种广泛使用的开源企业级应用开发框架,它为构建分布式、多层的企业级应用程序提供了全面的平台支持。UML(Unified Modeling Language)则是面向对象...

    基于Rose 和J2EE 的网络教学管理系统

    在开发基于J2EE的网络教学管理系统时,使用Rational Rose进行建模是一个关键步骤。首先,根据系统需求,通过用例视图定义系统的功能需求和用户交互。接着,在逻辑视图中细化系统内部的逻辑结构,明确各个模块之间的...

    论文研究-基于UML和RationalRose的计算机远程教学系统的设计.pdf

    标题“论文研究-基于UML和RationalRose的计算机远程教学系统的设计”所涵盖的知识点主要包括:UML(统一建模语言)的应用、Rational Rose这一软件工具在系统设计中的使用、计算机远程教学系统的设计思路及其设计过程...

    用Rational Rose逆向工程(java)生成类图(教程和错误解决)

    Rational Rose是一款强大的UML建模工具,尤其在软件开发过程中,它能够帮助开发者通过可视化的方式设计、管理和维护系统架构。逆向工程是Rational Rose的一项核心功能,它允许用户从已有的源代码中提取信息,生成UML...

    UML开发工具一览表

    根据给定的文件信息,我们将深入探讨UML开发工具及其特性,这将涵盖从开源解决方案到商业产品,以及它们在不同编程环境中的应用。 ### Ameos:实时嵌入式系统建模工具 Ameos是一款由Aonix提供的UML工具,特别适合...

    IBM Rational 软件开发平台

    它支持Java Server Faces (JSF)和Enterprise Generation Language (EGL),使得快速应用开发更为便捷。 5. **Rational Software Modeler (RSM)**:RSM是基于UML的建模工具,可以多视角描述和沟通软件的分析和设计。...

    J2EE实例讲解RUP10-1

    - **功能介绍**:Rational工具套件包括一系列支持RUP实施的工具,如Rational Rose(用于建模和可视化)、Rational Team Concert(支持团队协作)、以及其他支持不同开发阶段的工具。 - **应用场景**:这些工具在...

Global site tag (gtag.js) - Google Analytics