分享
 
 
 

对企业级Java应用程序及其部署进行建模

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

摘要

如今,UML用于对软件系统进行建模已有多年时间。然而,我极少看到有关对现代软件系统建模和技术的具体讨论或实例。例如,对应用程序及其部署建模需要开发各类原型系统,并需要使用有组织的方法来设计图的作用范围和布局,使其真正发挥作用。在复杂的环境中,建模显得尤为重要,它不仅能为编写代码的软件工程师带来好处,而且负责正确配置和部署软件系统的软件配置治理团队和生产服务团队也能从中获益良多。本文演示了对现代软件建模的几种方法,这些方法可用于精确而简明地交流架构方面的细节。

简介

不久以前,有用的企业应用程序还是由少数实体bean、较多的会话bean和一些jsp构建而成。EJB被打包在JAR文件中,而JSP则被简单地存储在Web服务器的类路径中。假如软件业还能有什么让您所称道的,那就是软件在大小、功能和复杂性方面呈几何指数增长。软件大小已经增长到每个企业应用程序的各个部分都被存储在压缩格式的WAR和EAR文件中的程度。软件系统的复杂性需要高效的建模,以便帮助治理设计和相互关系。软件功能现在已经处于这样一个级别:需要定义一个完整的新范型——即服务,才能对其进行治理。

必须对软件复杂性进行治理,因为它对企业的影响很大。这种治理可以同时采取规划和通信的形式。现在,可以使用UML来帮助规划软件的架构、设计和部署。还可以使用它把这些规划发送到企业中必须创建、安装和维护企业软件的各个部门中。

假如是对代码进行建模,UML 1 X就已经很不错了。而当对软件系统的打包和部署进行建模时,它就显得不够了。随着UML 2.0的出现,UML对核心软件系统建模的能力大为增强。然而,UML 2.0真正刺眼的地方是在对软件打包和部署建模时。

本文的目的是演示对现代软件系统进行建模的几种有效方法,这些方法可用于把架构、设计和部署方面的细节精确而简明地传达给企业中的相关负责部门。我并没有声明这是建模现代软件的惟一方法。UML的建模语言相当丰富。然而,假如您不确定如何使用UML.2.0进行快速建模,尤其是对特定于BEA WebLogic Platform建模的信息,本文将会为您提供帮助。

建模难题——少就是多

我喜欢更加灵敏的建模方法。对软件系统进行建模不会使公司直接获益,但可执行软件却可从中受益。然而,建模是一种有效的通信工具,有助于让整个公司就如何构建、部署和操作软件达成一致的熟悉。

在对软件建模时,其实少就是多。代码随着时间而增多,而模型则是静止的,它是某个时刻设计思想的快照。因此,对软件系统的每一个细节都建模并没有太大用处。软件系统的细节是在有机变化的。最佳方法是对软件的核心部分进行建模。这些模型往往能够在相当长的时间内发挥作用。

对代码进行建模

我将从一个特定于代码的模型开始,然后再逐渐转到软件打包和部署图上。在此过程中,我认为您可以很好地理解什么样的细节级别适合于您的企业。有一点很重要,即,您要不断地询问自己,“这个图可以帮助大家理解设计吗?”。

首先,让我们看一看我称之为“over-modeling”的建模方式。图1给出了一个使用了bean托管持久性的实体bean的UML图。在这个图中,您可以看到3个主接口和它们的根接口,以及实现类。

图1. 对一个EJB进行Over-modeling(点击放大)

乍一看,图中的内容似乎很多。其实,这个模型不过是较为具体而已,实际上内容很少。该图实际上显示了一个实体bean的基本结构。稍微了解一点EJB知识的工程师就会发现这个图其实很简单。假如您提供一个布满了这种“没有价值的东西”的完整设计文档,工程师们很快就会感到厌烦,并拒绝接受这种“无用的”设计文档。

提示!——对系统的重要部分而不是无关紧要的部分进行建模。

让我们看一看同一个图经过修改后的版本。它删除了无价值的内容,并将重点放在重要的内容上。样板代码和构件几乎从不需要建模,除非它们能给图带来非凡的好处(比如提供上下文)。例如,表示一个像ejbActivate()这样的函数不能为图增加清楚度或内容,因此也就无需对其进行建模。EJB规范中说方法必须出现在实现类中,并不意味着它需要出现在模型中。

图2. 一个简明的EJB模型

除了在建模上显而易见的区别之外,两张图之间还有一处基本的区别:stereotype的自由使用。Stereotype是一种传达有关任意模型元素的不相关信息的强大方式。使用stereotype的另一个有利之处是,定义的信息是由对象而不是图来传达的。在图1中,JNDI信息表示在图中的一条注释中。这可以使JNDI信息特定于图。在图2中,我为捕捉JNDI信息的<<EntityBean>> stereotype定义了两个标记值。标记定义是stereotype的属性。通过为stereotype定义标记定义,实现了下面两个目标:为架构师和设计师提供一些有关每个stereotype中应该包含何种信息的提示,并为企业引入了一些建模标准。通过使用stereotype并填充相关的标记定义值,可以让包含该元素的每个图都能使用这些信息。大多数UML工具都答应有选择性地隐藏stereotype及其标记定义,您可以定制化每个图,同时无需修改任何重要的模型数据。在本文后面,我将提供一个示例的stereotype类别。

提示!——使用stereotype对不相关信息进行建模。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有