实现软件
虽然分析模型可以帮助你解决问题提供了一个基础,不过离实现还是很远。在设计期间,你必须考虑到所采用的技术带来的额外限制和需求,并且尝试映射解决方案到最优化的实现。
在我们的例子中,假设我们正在建立一个基于Web的应用。实现这样一个应用需要一个深思熟虑的方法。分析模型的作用是作为一个出发点,用来决定将不同的J2EE技术映射到方案。例如,<<control>> 类可很好地映射到Java Servlets或者Enterprise JavaBean (EJB) Session Beans。这个方法可以将J2EE层的实现模型和Sun的"Model 2"参考体系对应起来。
Rational Rose提供了一个简化的接口来开发servlets和EJB Session Beans。图5显示了创建一个servlet的对话框。
****图5 Servlet定义窗口*****
虽然EJB包含有多个接口和类,Rational Rose还是提供了创建EJB的便利接口。创建EJB的对话框如图6所示。在这里,对话框显示了需要创建一个无状态Session Bean的设置。
****图6****
创建一个无状态Session Bean
得到的Session EJB如图7所示。这是基于为EJB开发的UML模型,它是以Sun Java Community Process在JSR-26开发的。它显示了构成EJB的各种元素之间的关系,特别是home和remote接口和EJB实现类。由于EJB并不真正实现home和remote接口(它们是通过配置工具自动产生的对象实现的),因此关系并不是实现home和remote接口而是分别产生<<EJBRealizeHome>>和<<EJBRealizeRemote>>。home和remote接口的依赖关系表明home接口实例化remote接口。
************图7**********
一个无状态Session Bean
<<boundary>>类粗略地映射到JSP、HTML和form,如果你正在开发一个传统的基于客户的应用,它映射到一个客户应用的对话框。我们使用JSP作为呈现实体和系统交互的的一个手段。JSP实际上由两个方面,也就是客户端的表现和服务器端的行为,所以它的模型包含有一个客户端页面和服务器端的页面,它们之间的关系是<<build>> 。一个例子如图8所示。
***********图8***********
JSP作为服务器端和客户端页面
创建一个JSP比EJB还简单,你只需要在browser的菜单中选择Web Modeler>New>Server Page就可以了,如图9所示。
*************图9***********
在Rational Rose中创建一个JavaServer Page
诸如Catalog, Order和Customer的<<entity>> 类可映射为Entity Bean。它们的创建如上面图6所示。
J2EE应用中常利用的一个技术是使用JavaBean在servlets和JSPs之间传送信息。在Rational Rose中要做到这一点是很简单的,通过在一个Java类上创建attributes,并且通过如图10中的attribute规范对话框来将attribute设置为属性。
*************图10***********
将一个attribute设置为属性
在整体实现模型中,创建JSPs, servlets, JavaBeans和EJBs是非常有用的。Rational Rose可让你很容易地模型化关系和告诉工程师其中的基本细节,不仅包括JSPs, servlets, EJBs和JavaBeans,还包括实现中涉及到的HTML页面和Form。这些可以送给表现层开发者作进一步的处理,同时可与你的应用逻辑保持兼容性。
图11是某个类框图的一部分,它显示了实现在线CD商店中涉及到的不同技术。该框图展示了各个类以及它们如何与表现、商业逻辑和数据层排列在一起。这样,客户端的页面在左边,控制的servlet在中间,Entity Beans在右边。
*************图11**************
在线CD商店的部分实现模型
该框图只显示了付费和浏览CD细节用例中需要用到一些类。我们可以通过一个简单的付费情景来尝试“阅读”该框图。假定你已经浏览完毕,并且选择了一些准备购买的CD,你在主页(左边的顶部)上选择“checkout”的选项。这样将会调用经由相关stereotyped <<link>>显示的MainSerlet控制器。MainServlet由Order EJB中得到订单的细节,构造一个Order JavaBean,并且将它设置为session的一个属性,并且将请求向前送,如<<forward>>标识的一样,直到一个Checkout JSP。Checkout JSP使用Order JavaBean,如JSP和Order JavaBean之间所示的<<Use Bean>>关系一样,它会构造Checkout_Client页面并且呈现给用户。
很明显,我们忽视了其中的一些细节。例如,在实际的项目中,你可能将使用购物车来跟踪项目;控制的责任或许会更分散,而不只是用唯一一个MainServlet等。这里的主要观点是告诉你,对于设计和开发复杂的J2EE应用,UML是一个强大的工具,通过上面的例子,你将会认识到这一点。
实现工作
Rational Rose可让你直接从框图中产生, JavaBean, HTML, Servlet和EJB代码。例如,两个JSP间的<<include>>关系将会在导致在相应的JSP中产生<%@ include file="header.jsp" %> 。同样,<<Use Bean>>将会在JSP中产生<jsp:useBean id="cd" class="com.rational.cdshop.util.CD" scope="session">,这样就可使用CD JavaBean。
在EJB方面,除了可为EJB2.0中的全部三种EJB产生代码外(以及符合EJB1.1的EJB),Rational Rose还提供了一些特性以简化EJB的开发。例如,在开发EJB时,其中一个较麻烦的是需要在接口和实现类中写方法的代码。Rational Rose提供了一个菜单的选项,你只需要按一下按钮就解决了。它还提供了一个"check and repair"菜单选项,可以验证定义的EJB的合法性(例如,remote接口中的remote方法和EJB实现类中的是对应的),如果不是,可以为你修复它们。
Rational Rose中另一个和EJB相关的特性是Rational Quality Architect (RQA),可用作设计测试EJB。例如,可以使用RQA为EJB作单元测试。还可以使用在Rose中定义的顺序图来作多个EJB的测试。当依赖某个软件组件,但是它还未设计好,那么可以使用RQA来产生框架。
为了确保可以用自己的条件来实现,而无需担心UML模型的改变,反之亦然,Rational Rose提供了一个内置的代码编辑器,用户可以设置同步的选项。例如,你可以选择一直保持同步。在这种情况下,每当你更新源代码并且保存时,Rose中的UML模型就会自动被更新。有些时候,你可以只是想看一下它们是如何处理的,并不想影响你的模型。在这种情况下,你可以在全局或者基于每个类的设置将同步关掉。
当然,当谈到实现和编码时,你将需要一个好的IDE,例如Sun's Forte for Java或者Borland JBuilder。Rational Rose 2001a提供的主流IDE的深度集成和自动同步,所以可以在享受Rational Rose在UML模型和开发J2EE应用好处的同时,继续使用自己最喜爱的IDE。
关于UML和J2EE的更多方面 我们只是很简略地谈了一下使用UML作模型及开发J2EE应用。例如,通过session中涉及到的各种实体,你可以使用UML活动图来模型化session管理。
另一个挑战是传达session EJB需要的正确操作调用顺序。一个顺序图可以标识某个情景,但是你需要大量的顺序图来表示组件支持的各种情景(有些人尝试使用带有控制和分支语句的顺序图,但是这样只会得到一个复杂和费解的顺序图)。另一方面,UML状态图提供了一个强大的功能,可以模型化和传达这些信息。通过状态图,你可以查看顺序图的每个情景,这样你就可以验证每个顺序图,并且看组件是否支持你需要用的操作。
总结 通过使用UML,你可以理解需求,作正确的分析和设计,并且在一个经过验证的规则上开发一个方案和作最佳的实现,从而可以明显的提升开发可扩展、易维护和可长时间使用的软件的机会。
Rational Rose是仅有的可以支持全程建模及J2EE应用设计的UML模型工具。
分享到:
相关推荐
### 使用Rational Rose和UML开发J2EE应用的知识点详解 #### 一、引言 随着企业级应用的日益复杂,确保软件项目的成功变得更具挑战性。在这样的背景下,有效的沟通、明智的分析与设计决策及恰当的技术选择成为了关键...
《使用UML与Rational Rose开发J2EE应用程序》是一本深入探讨企业级Java应用开发的专业书籍。本书主要关注如何利用统一建模语言(UML)和Rational Rose这一强大的建模工具,来设计和实现复杂的J2EE(Java 2 Platform,...
在学UML的过程中,RationalRose的角色无比重要。现在能找到的大多数是2003的,但下面连接是2007。http://blog.csdn.net/skl_TZ/article/details/8925152 这个教程会教会你用RationalRose。包括用例图,类图,时序图...
本文将探讨如何有效地利用UML和Rational Rose 2001这一领先的基于UML的软件建模和发展工具来开发基于J2EE的企业级应用。 #### 二、什么是Unified Modeling Language (UML)? UML自1997年末以来一直是Object ...
Rational Rose 是一款流行的软件开发工具,支持 Unified Modeling Language(UML)和 Rational Unified Process(RUP)。Rational Rose 提供了从需求分析到设计、实现和测试的全生命周期支持,帮助开发者快速开发高...
Rational Rose 是一个功能强大的统一建模语言(UML)工具,能够生成多种编程语言的代码,包括 Visual C++、Java 等。下面将详细介绍 Rational Rose 生成代码的步骤和相关知识点。 一、生成代码的准备工作 在生成...
J2EE平台提供了丰富的服务和组件模型,包括Servlet、JSP、EJB(Enterprise JavaBeans)、JMS(Java Message Service)等,以支持分布式、多层架构的应用开发。本主题聚焦于如何结合UML(Unified Modeling Language)...
7. **集成J2EE与UML**:使用UML建模工具(如IBM Rational Rose或Visual Paradigm),可以直接生成Java代码,简化开发过程。同时,UML模型可以作为文档,帮助团队成员理解和沟通设计决策。 8. **测试与部署**:在...
Rational Rose由代码生成类图 ...通过使用Rational Rose可以从Java代码生成类图,从而帮助我们更好地理解和分析软件系统的结构和关系。Rational Rose提供了强大的功能和灵活的配置选项,使得我们可以生成高质量的类图。
Rational工具集通过UML建模简化需求理解,通过Rational Application Developer提供高效的开发环境,通过Rational Team Concert促进团队协作,通过Rational Performance Tester和Rational Quality Manager保障应用...
在IT行业中,J2EE(Java 2 Platform, Enterprise Edition)是一种广泛使用的开源企业级应用开发框架,它为构建分布式、多层的企业级应用程序提供了全面的平台支持。UML(Unified Modeling Language)则是面向对象...
在开发基于J2EE的网络教学管理系统时,使用Rational Rose进行建模是一个关键步骤。首先,根据系统需求,通过用例视图定义系统的功能需求和用户交互。接着,在逻辑视图中细化系统内部的逻辑结构,明确各个模块之间的...
标题“论文研究-基于UML和RationalRose的计算机远程教学系统的设计”所涵盖的知识点主要包括:UML(统一建模语言)的应用、Rational Rose这一软件工具在系统设计中的使用、计算机远程教学系统的设计思路及其设计过程...
Rational Rose是一款强大的UML建模工具,尤其在软件开发过程中,它能够帮助开发者通过可视化的方式设计、管理和维护系统架构。逆向工程是Rational Rose的一项核心功能,它允许用户从已有的源代码中提取信息,生成UML...
根据给定的文件信息,我们将深入探讨UML开发工具及其特性,这将涵盖从开源解决方案到商业产品,以及它们在不同编程环境中的应用。 ### Ameos:实时嵌入式系统建模工具 Ameos是一款由Aonix提供的UML工具,特别适合...
它支持Java Server Faces (JSF)和Enterprise Generation Language (EGL),使得快速应用开发更为便捷。 5. **Rational Software Modeler (RSM)**:RSM是基于UML的建模工具,可以多视角描述和沟通软件的分析和设计。...
在课程设计中,我们将使用 Rational Rose 和 MyEclipse 等软件开发工具, MySQL 作为数据库管理软件,並使用 J2EE 作为开发语言。通过这次课程设计,我们将设计出一个网上购物系统,具有商品信息管理、购物车订单...