??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
依赖是指一个类使用了另一个类Q它是一U用关p,描述了一个事物的规格说明的变化可能会影响C用它的另一个事物(反之不一定)。最常见的依赖关pL一个类内部中用到了另一个类的定义。在UML中表CZؓ一条指向被依赖事物的虚Uѝ?/p>
依赖可以采取多种方式来实玎ͼ如以下代?
internal class DependReturnType
{
}
internal class DependParameter
{
}
internal class DependVarible
{
}
class Depend
{
public DependReturnType Test(DependParameter param)
{
DependVarible var = new DependVarible();
return new DependReturnType();
}
}
当类之间在概念上有连接关pLQ类之间的连接称之ؓ兌Q关联是一U结构关p,说明一个事物的对象与另一个事物的对象相联pR给定一个连接两各类的关联,可以从一个类的对象导航到另一个类的对象?br /> 一般把兌Mؓq接相同或者不同的cM条实Uѝ关联可以有方向Q即D。一般不作说明的时候,D是双向的Q不需要在U上标出头。大部分情况下导航是单向的,可以加一个箭头表C?/p>
兌一般采取全局变量的方式来实现Q如以下代码
internalclass Employee
{
publicvoid DoWork()
{
}
}
class Association
{
private Employee myEmployee;
public Employee MyEmployee
{
get
{
return myEmployee;
}
set
{
myEmployee = value;
}
}
publicvoid DoSomething()
{
myEmployee.DoWork();
}
}
依赖和关联都是一个类中用了另一个类Q那它们有什么区别呢Q?/p>
依赖和关联都是两个或多个相对独立的类之间的关pR当一个对象负责构造另一个对象的实例Q或者依赖另一个对象的服务Ӟq两个对象之间主要体?
Z赖关p;当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系Ӟq两个对象之间ؓ兌关系。依赖关p表现在局部变量,Ҏ的参敎ͼ以及?
静态方法的调用Q关联关pL使用实例变量来实现?
泛化是面向对象中的l承。它表示cMcM间的l承关系Q接口与接口之间的承关p,或类Ҏ口的实现关系。一般化的关pL从子cL向父cȝQ与l承或实现的Ҏ相反?/p>
代码如下
internalclass Father
{
}
internalclass Child : Father
{
}
class Generalization
{
publicvoid Test()
{
Father father =new Child();
}
}
当对象A被加入到对象B中,成ؓ对象B的组成部分时Q对象B和对象A之间合关pR聚合是兌关系的一U,是较强的兌关系Q强调的是整体与部分之间的关pR?/pre>
与关联关pMP聚合关系也是通过实例变量来实现这样关pȝ。关联关pd聚合关系来语法上是没办法区分的,从语义上才能更好的区分两者的区别?/p>
聚合用带一个空心菱形(整体的一端)的实U表C?
聚合与关联的区别Q关联关pL涉及的两个对象是处在同一个层ơ上的。比如h和自行R是一U关联关p,而不是聚合关p,因ؓZ是由自行车组成的?
l合是一U特D的聚合关系Q它是一U强cd的聚合,l合中的部分不能q整体而独立存在。例如Windows的窗口和H口上的菜单是l合? pR组合中的整体和部分的生命周期一_即部分必dl合创徏的同时或者之后创建,在组合销毁之前或者同旉毁,部分的生命周期不会超出组合的生命周期?/p>
l合是用带实心菱形(整体的一端)的实U来表示?
l合与聚合的区别Q?/p>
q求最佛_视化模型的公司可以更快地开发它们的软gQƈ且徏立更高质量的pȝ。Unified Modeling Language (UML)是可视模型化的软g工业标准?
在这里,我们向你介l如何运用UML和Rational Rose 2001aQ它是现今最行的基于UML的Y件模型化和开发工P可用于开发基于J2EE的企业应用?
什么是UML?
Unified Modeling Language (UML),是始?997q一个OMG标准Q它是一个支持模型化和Y件系l开发的囑Ş化语a,Y件开发的所有阶D|供模型化和可视化支持Q包括由需求分析到规格Q到构造和配置?
使用UML作可视化模型主要是ؓ了了解系l的重要l节Q以侉K目的需求可以清晰地表达、开发出解决Ҏ体系、ƈ且一个选择的实现可以清晰地标识和构造。ؓ辑ֈq个目的Q需要丰富的W号来表达模型化的Y件系l。UML不但为基本的构造块提供了符可C,它还提供了方法来表达基本构造块之间的复杂关pR这些关p都以UML框图的Ş式表C出来?
以下p我们来看一下UML和Rational Rose是如何有助于理解、设计和实现J2EE应用的?
理解需?
目p|的原因通常是由于需求没有很好地理解或者进行沟通。我们也可以很容易地理解Q无论是口头或者书面的语言Q都是不严密的?
你可以应用UML用例模型来开发一个精的模型来表C系l的需求,然后以这些用例ؓ基础来推动系l开发的其它斚w。用例的作用好象是w上的一条线Q它所有的珍珠l定在一赗用例在最l的用户和系l需求之间徏立v一座桥。它们可用来在功能需求和pȝ实现本n之间q行回溯。用例也可以作ؓ一个连接点Q连接到一个详l的说明需求细节的用例文档?
?展示了一个在UCD商店的部分用例框图,它们是从文本和口头的功能需求中提取出来Q然后{为用例。在q个例子中,很明显购买者(由几条线条组成的人物Q表CZؓUML中的角色Q可以通过4U方式来使用pȝQ在UML中以椭圆表示一个用例)?
***********?********
一个简单的用例?
每个用例则通过序框图中的一个或者多个场景来_描述。当Ӟ在需求捕捉和分析的早期阶D,序图是相对单,而且也可能是不完整的。顺序图的这样一个例子如?所C。在Rational Rose中,要ؓ某个用例创徏序图,你可以在览器中选择它,然后从用例的菜单中选择New>Sequence Diagram?
***********?************
一个解释付费用例的序?br />
概述
在这个面向对象应用程序开发不断变化的时代Q在合理旉内开发和理高质量应用程序变得越来越困难。ؓ了面对这U挑战,制定出每个公叔R能用的通用对象模型语言Q统一建模语言QUMLQ。UML是信?a class="channel_keylink" >技?/font>行业的蓝图,是详l描q系l结构的Ҏ。利用这个蓝图,我们来容易徏立和l护pȝQ保证系l能适应需求的改变。一个系l的模型建得好,׃ؓ满用户需求、保证系l的E_性和质量、提高系l的扩展性打下了良好的基。ROSE是用UML快速开发应用程序的工具之一Q它是一个面向对象的建模工具?
UMLl一建模语言
UMLQUnified Modeling LanguageQ统一建模语言Q是一U面向对象的建模语言Q它的主要作用是帮助我们对Y件系l进行面向对象的描述和徏模,它可以描q这个Y件开发过E从需求分析直到实现和试的全q程。UML通过建立各种cR类之间的关联、类/对象怎样怺配合实现pȝ的动态行为等成分Q这些都UCؓ模型元素Q来l徏整个模型Q刻d观世界。UML提供了各U图形,比如Use Case图、类图、顺序图、协作图、状态图{,来把q些模型元素及其关系可视化,让h们可以清楚容易的理解模型。我们可以从多个视角来考察模型Q从而更加全面的了解模型Q这样同一个模型元素可能会出现在多个图中,对应多个囑Ş元素?
p图viewQ图diagramQ模型元素model element和通用机制general mechanism{几个部分组?.视图是表辄l的某一斚w特征的UML建模元素的子集,由多个图构成Q是在某一个抽象层上,对系l的抽象表示.图是模型元素集的囑Ş表示Q通常为弧Q关p)和顶点(其他模型元素Q相互连接构成的.模型元素代表面向对象中的cR对象、消息和关系{概念,是构成图的最基本的常用概?通用机制用于表示其它信息Q比如注释、模型元素的语义{。另外,它还提供扩展机制QUML语言能够适应一个特D的ҎQ或q程Q,或扩充至一个组l或用户.
UML是用来描q模型的Q用模型来描q系l的l构或静态特征,以及行ؓ或动态特征。从不同的视角ؓpȝ的构架徏模,形成pȝ的不同视图(VIEWQ?
用例视图(use case view)Q强调从用户的角度看到的或需要的pȝ功能Q是被称为参与者的外部用户所能观察到的系l功能的模型图;
逻辑视图(logical view)Q展现系l的静态或l构l成及特征,也称为结构模型视?structural model view)或静态视图(static viewQ;
q发视图(concurrent view)Q体Cpȝ的动态或行ؓ特征Q也UCؓ行ؓ模型视图Qbehavioral model viewQ、动态视?dynamic view)Q?
lg视图(component view)Q体Cpȝ实现的结构和行ؓ特征Q也UCؓ实现模型视图(implementation model view) Q?
配置视图(deployment view)Q体Cpȝ实现环境的结构和行ؓ特征Q也UCؓ环境模型视图Qenvironment model viewQ或物理视图(physical view)?
建模工具Rose 之游
ROSE是美国Rational公司的面向对象徏模工P利用q个工具Q我们可以徏立用UML描述的Y件系l的模型Q而且可以自动生成和维护C++、Java、VB、Oracle{语a和系l的代码?
ROSE是个菜单驱动应用E序Q用工具栏帮助用常用特性。它的界面分Z个部?-BrowserH口、DiagramH口和DocumentH口。BrowserH口用来览、创建、删除和修改模型中的模型元素QDiagramH口用来昄和创作模型的各种图;而DocumentH口则是用来昄和书写各个模型元素的文档注释?
Rose界面
Rose模型的四个视图是Use Case视图 、Logical视图、Component视图和Deployment视图。每个视N对不同对象,h不同用途。Use Case视图包括pȝ中的所有角艌Ӏ案例和Use Case图,q包括一些Sequence囑֒Collaboration图?
Use Case视图
Logical视图xpȝ如何实现使用案例中提到的功能。它提供pȝ的详l图形,描述lg间如何关联。除其它内容之外QLogical视图q包括需要的特定cRClass囑֒State Transition 图。利用这些细节元素,开发h员可以构造系l的详细设计?
Logical视图
Component视图包括模型代码库、执行库和其它组件的信息。组件是代码的实际模块。Component视图的主要用h负责控制代码和编译部|应用程序的人。有些组件是代码库,有些lg是运行组Ӟ如执行文件或动态链接库QDLLQ文件?
Collaboration囑օ注系l的部vQ可能与pȝ的逻辑l构不同。整个小l都用Collaboration图了解系l部|Ԍ但用h发布应用E序的h员?
Rose的九U图
用例图use case diagramQ描q系l功?
cdclass diagramQ描q系l的静态结?
对象图object diagramQ描q系l在某个时刻的静态结?
序列图sequence diagramQ按旉序描述pȝ元素间的交互
协作图Collaboration diagramQ按照时间和I间序描述pȝ元素间的交互和它们之间的关系
状态图state diagramQ描qCpȝ元素的状态条件和响应
zd图activity diagramQ描qCpȝ元素的活?
lg图component diagramQ描qC实现pȝ的元素的l织
配置图deployment diagramQ描qC环境元素的配|,q把实现pȝ的元素映到配置?
Ҏ它们在不同架构视囄应用Q可以把9U图分成Q?
用户模型视图Q用例图
l构模型视图Q类图、对象图
行ؓ模型视图Q序列图、协作图、状态图、活动图Q动态图Q?
实现模型视图Q组件图
环境模型视图Q配|图