标准建模语言UML及其支持环境.docx
《标准建模语言UML及其支持环境.docx》由会员分享,可在线阅读,更多相关《标准建模语言UML及其支持环境.docx(42页珍藏版)》请在课桌文档上搜索。
1、标准建模语言UM1.及其支持环境(一)编者按:软件工程领域在1995年至1997年取得了前所未有的进展,其成果超过软件工程领域过去15年来的成就总和。其中最重要的、具有划时代重大意义的成果之一就是统一建模语言(UM1.UnifiedModeling1.angUage)的出现。在世界范围内,至少在近10年内,UM1.将是面向对象技术领域内占主导地位的标准建模语言。采用UM1.作为我国统一的建模语言是完全必要的首先,过去数十种面向对象的建模语言都是相互独立的,而UM1.可以消除一些潜在的不必要的差异以免用户混淆;其次,通过统一语义和符号表示,能够稳定我国的面向对象技术市场,使项目根植于一个成熟的标
2、准建模语言,从而可以大大拓宽所研制与开发的软件系统的适用范围,并大大提高其灵活程度。为使读者对UM1.语言及其支持环境有更深入、细致的了解,我们特邀北京航空航天大学软件工程研究所的专家撰文介绍,本文共分五个部分:一、标准建模语言UM1.的概念作者张莉周伯庄二、标准建模语言UM1.的静态建模机制作者葛科杨顺祥三、标准建模语言UM1.的动态建模机制作者王云葛科四、标准建模语言UM1.支持环境作者周伯生张莉五、标准建模语言UM1.的应用实例作者杨顺祥王云我们将以连载的形式分7次对上述内容进行介绍。一、标准建模语言UM1.概述面向对象的分析与设计(C)OA&D)方法的发展在80年代末至90年代中出现了
3、一个高潮,UM1.是这个高潮的产物。它不仅统一了Boe)Ch、RUmbaUgh和JaCe)bson的表示方法而且对其作了进一步的发展,并最终统一为大众所接受的标准建模语言。1 .标准建模语言UM1.的出现公认的面向对象建模语言出现于70年代中期。从1989年到1994年其数量从不到十种增加到了五十多种。在众多的建模语言中,语言的创造者努力推崇自己的产品,并在实践中不断完善。但是Qo方法的用户并不了解不同建模语言的优缺点及相互之间的差异,因而很难根据应用特点选择合适的建模语言,于是爆发了一场方法大战”。90年代中,一批新方法出现了,其中最引人注目的是Booch1993、OOSE和OMT-2等。B
4、OOCh是面向对象方法最早的倡导者之一,他提出了面向对象软件工程的概念。1991年他将以前面向Ada的工作扩展到整个面向对象设计领域。Booch1993比较适合于系统的设计和构造。Rumbaugh等人提出了面向对象的建模技术(C)MT)方法屎用了面向对象的概念拼引入各种独立于语言的表示符。这种方法用对象模型、动态模型、功能模型和用例模型,共同完成对整个系统的建模,所定义的概念和符号可用于软件开发的分析、设计和实现的全过程,软件开发人员不必在开发过程的不同阶段进行概念和符号的转换。OMT-2特别适用于分析和描述以数据为中心的信息系统。JaCObSon于1994年提出了Oe)SE方法,其最大特点是
5、面向用例(USe-CaSe),并在用例的描述中引入了外部角色的概念。用例的概念是精确描述需求的重要武器,但用例贯穿于整个开发过程,包括对系统的测试和验证。OOSE比较适合支持商业工程和需求分析。此外,还有Coad/Y。Urdon方法,即著名的00A/00D,它是最早的面向对象的分析和设计方法之一。该方法简单、易学,适合于面向对象技术的初学者使用,但由于该方法在处理能力方面的局限,目前已很少使用。概括起来,首先,面对众多的建模语言,用户由于没有能力区别不同语言之间的差别因此很难找到一种比较适合其应用特点的语言淇次众多的建模语言实际上各有千秋;第三,虽然不同的建模语言大多类同,但仍存在某些细微的差
6、别极大地妨碍了用户之间的交流。因此在客观上,极有必要在精心比较不同的建模语言优缺点及总结面向对象技术应用实践的基础上,组织联合设计小组,根据应用需求,取其精华,去其糟粕,求同存异,统一建模语言。1994年10月,GradyBooch和JimRumbaugh开始致力于这一工作。他们首先将Booch93和OMT-2统一起来,并于1995年10月发布了第一个公开版本,称之为统一方法UM0.8(itiedMethod)o1995年秋QoSE的创始人IVarJaCobSon加盟到这一工作。经过BoochsRumbaugh和Jacobson三人的共同努力,于1996年6月和10月分别发布了两个新的版本,即
7、UM1.0.9和UM1.0.91,并将UM重新命名为UM1.(UnifiedModeling1.anguage)o1996年,一些机构将UM1.作为其商业策略已日趋明显。UM1.的开发者得到了来自公众的正面反应,并倡议成立了UM1.成员协会,以完善、加强和促进UM1.的定义工作。当时的成员有DECsHPJ-1.ogix.ItellicorpsIBMsICONComputingsMCISyStemhOUse、MicrosoftsOracle、RationalSoftwarexTl以及Unisyso这一机构对UM1.1.0(1997年1月)及UM1.1.1(1997年11月17日)的定义和发布起了
8、重要的促进作用。UM1.是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它溶入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。图1UM1.的发展历程面向对象技术和UM1.的发展过程可用上图来表示,标准建模语言的出现是其重要成果。在美国,截止1996年10月,UM1.获得了工业界、科技界和应用界的广泛支持,已有700多个公司表示支持采用UM1.作为建模语言。1996年底,UM1.已稳占面向对象技术市场的85%,成为可视化建模语言事实上的工业标准。1997年11月17日QMG采纳UM1.1.l作为基于面向对象技术的标
9、准建模语言。UM1.代表了面向对象方法的软件开发技术的发展方向,具有巨大的市场前景,也具有重大的经济价值和国防价值。2 .标准建模语言UM1.的内容首先,UM1.融合了Booch.OMT和OOSE方法中的基本概念,而且这些基本概念与其他面向对象技术中的基本概念大多相同,因而,UM1.必然成为这些方法以及其他方法的使用者乐于采用的一种简单一致的建模语言;其次,UM1.不仅仅是上述方法的简单汇合而是在这些方法的基础上广泛征求意见,集众家之长,几经修改而完成的,UM1.扩展了现有方法的应用范围;第三,UM1.是标准的建模语言而不是标准的开发过程。尽管UM1.的应用必然以系统的开发过程为背景,但由于不
10、同的组织和不同的应用领域,需要采取不同的开发过程。作为一种建模语言,UM1.的定义包括UM1.语义和UM1.表示法两个部分OUM1.语义描述基于UM1.的精确元模型定义。元模型为UM1.的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响。此外UM1.还支持对元模型的扩展定义。UM1.表示法定义UM1.符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UM1.元模型的实例。标准建模语言UM1.的重要内容可以由下列五类图(共9种图形)来定
11、义:.第一类是用例图,从用户角度描述系统功能,并指出各功能的操作者。第二类是静态图(StatiCdiagram),包括类图、对象图和包图。其中类图描述系统中类的静态结构。不仅定义系统中的类表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。类图描述的是一种静态关系,在系统的整个生命周期都是有效的。对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。包由包或类组成,表示包与包之间的关系。包图用于描述系统的分层结构。第三类是行为图(
12、BehaViOrdiagram,描述系统的动态模型和组成对象间的交互关系。其中状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件。通常,状态图是对类图的补充。在实用上并不需要为所有的类画状态图,仅为那些有多个状态其行为受外界环境的影响并且发生改变的类画状态图。而活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。第四类是交互图(InteraCtiVediagram)描述对象间的交互关系。其中顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互;合作图描述对象间的协作关系,合作图跟顺序图相似,显示对象间的动态合作关系。除显示信
13、息交换外,合作图还显示对象以及它们之间的关系。如果强调时间和顺序厕使用顺序图;如果强调上下级关系,则选择合作图。这两种图合称为交互图。第五类是实现图(ImPiementatiOndiagram)。其中构件图描述代码部件的物理结构及各部件之间的依赖关系。一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件。它包含逻辑类或实现类的有关信息。部件图有助于分析和理解部件之间的相互影响程度。配置图定义系统中软硬件的物理体系结构。它可以显示实际的计算机和设备(用节点表示)以及它们之间的连接关系,也可显示连接的类型及部件之间的依赖性。在节点内部,放置可执行部件和对象以显示节点跟可执行软件单元的对应
14、关系。从应用的角度看,当采用面向对象技术设计系统时,首先是描述需求;其次根据需求建立系统的静态模型以构造系统的结构;第三步是描述系统的行为。其中在第一步与第二步中所建立的模型都是静态的,包括用例图、类图(包含包)、对象图、组件图和配置图等五个图形,是标准建模语言UM1.的静态建模机制。其中第三步中所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系。它包括状态图、活动图、顺序图和合作图等四个图形,是标准建模语言UM1.的动态建模机制。因此,标准建模语言UM1.的主要内容也可以归纳为静态建模机制和动态建模机制两大类。3 .标准建模语言UM1.的主要特点标准建模语言UM1.的主要特点可以归
15、结为三点:UM1.统一了BOOCh、OMT和OoSE等方法中的基本概念。UM1.还吸取了面向对象技术领域中其他流派的长处,其中也包括非00方法的影响。UM1.符号表示考虑了各种方法的图形表示删掉了大量易引起混乱的、多余的和极少使用的符号,也添加了一些新符号。因此,在UM1.中汇入了面向对象领域中很多人的思想。这些思想并不是UM1.的开发者们发明的,而是开发者们依据最优秀的00方法和丰富的计算机科学实践经验综合提炼而成的。UM1.在演变过程中还提出了一些新的概念。在UM1.标准中新加了模板(Stereotypes)x职责(Responsibilities)、扩展机制(Extensibilitym
16、echanisms)、线程(Threads)、过程(PrOCeSses)、分布式(DiStribUtiOn)、并发(ConCUITency)、模式(Patterns)s合作(CollabOrations)、活动图(ACtiVitydiagram)等新概念,并清晰地区分类型(TyPe)、类(CIaSS)和实例(InStance)、细化(Refinement)、接口(Interfaces)和组件(ComPonentS)等概念。因此可以认为,UM1.是一种先进实用的标准建模语言,但其中某些概念尚待实践来验证,UM1.也必然存在一个进化过程(未完待续)。Home标准建模语言UM1.及其支持环境(二)北
17、京航空航天大学软件工程研究所(接上期)4 .标准建模语言UM1.的应用领域UM1.的目标是以面向对象图的方式来描述任何类型的系统,具有很宽的应用领域。其中最常用的是建立软件系统的模型,但它同样可以用于描述非软件领域的系统,如机械系统、企业机构或业务过程以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。总之,UM1.是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行建模。此外,UM1.适用于系统开发过程中从需求规格描述到系统完成后测试的不同阶段。在需求分析阶段,可以用用例来捕获用户需求。通过用例建模描述对系统感兴趣的外部角色及其对系统(用例)的功能要求。分析阶段主
18、要关心问题域中的主要概念(如抽象、类和对象等)和机制,需要识别这些类以及它们相互间的关系,并用UM1.类图来描述。为实现用例,类之间需要协作,这可以用UM1.动态模型来描述。在分析阶段,只对问题域的对象(现实世界的概念)建模,而不考虑定义软件系统中技术细节的类(如处理用户接口、数据库、通讯和并行性等问题的类)。这些技术细节将在设计阶段引入,因此设计阶段为构造阶段提供更详细的规格说明。编程(构造)是一个独立的阶段,其任务是用面向对象编程语言将来自设计阶段的类转换成实际的代码。在用UM1.建立分析和设计模型时应尽量避免考虑把模型转换成某种特定的编程语言。因为在早期阶段,模型仅仅是理解和分析系统结构
19、的工具,过早考虑编码问题十分不利于建立简单正确的模型。UM1.模型还可作为测试阶段的依据。系统通常需要经过单元测试、集成测试、系统测试和验收测试。不同的测试小组使用不同的UM1.图作为测试依据:单元测试使用类图和类规格说明;集成测试使用部件图和合作图;系统测试使用用例图来验证系统的行为;验收测试由用户进行以验证系统测试的结果是否满足在分析阶段确定的需求。总之,标准建模语言UM1.适用于以面向对象技术来描述任何类型的系统,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。二、标准建模语言UM1.的静态建模机制任何建模语言都以静态建模机制为基础,标准建模语言UM1.也不例外。
20、UM1.的静态建模机制包括用例图(USeCaSediagram)、类图(CIaSSdiagram)、对象图(Objectdiagram)、包(PaCkage)、构件图(COmPonentdiagram)和配置图(Deploymentdiagram)o1.用例图(1)用例模型(USecasemodel)长期以来,在面向对象开发和传统的软件开发中,人们根据典型的使用情景来了解需求。但是,这些使用情景是非正式的虽然经常使用,却难以建立正式文挡。用例模型由IvarJacobson在开发AXE系统中首先使用,并加入由他所倡导的OOSE和ObjeCtory方法中。用例方法引起了面向对象领域的极大关注。自1
21、994年IVarJacobson的著作出版后,面向对象领域已广泛接纳了用例这一概念,并认为它是第二代面向对象技术的标志。用例模型描述的是外部执行者(ACtor)所理解的系统功能。用例模型用于需求分析阶段,它的建立是系统开发者和用户反复讨论的结果,表明了开发者和用户对需求规格达成的共识。首先,它描述了待开发系统的功能需求;其次,它将系统看作黑盒,从外部执行者的角度来理解系统第三,它驱动了需求分析之后各阶段的开发工作,不仅在开发过程中保证了系统所有功能的实现,而且被用于验证和检测所开发的系统,从而影响到开发工作的各个阶段和UM1.的各个模型。在UM1.中,一个用例模型由若干个用例图描述,用例图主要
22、元素是用例和执行者。(2)用例(USecase)从本质上讲,一个用例是用户与计算机之间的一次典型交互作用。以字处理软件为例,”将某些正文置为黑体”和“创建一个索弓1“便是两个典型的用例。在UM1.中,用例被定义成系统执行的一系列动作,动作执行的结果能被指定执行者察觉到。图1用例图在UM1.中,用例表示为一个椭圆。图1显示了一个金融贸易系统的用例图。其中,“风险分析7交易估价7进行交易7设置边界;超越边界的交易7评价贸易;更新帐目”等都是用例的实例。概括地说用例有以下特点:用例捕获某些用户可见的需求,实现一个具体的用户目标。用例由执行者激活,并提供确切的值给执行者。 用例可大可小,但它必须是对一
23、个具体的用户目标实现的完整描述。(3)执行者(ACtor)执行者是指用户在系统中所扮演的角色。其图形化的表示是一个小人。图1中有四个执行者:贸易经理、营销人员、售货员和记帐系统。在某些组织中很可能有许多营销人员,但就该系统而言他们均起着同一种作用,扮演着相同的角色,所以用一个执行者表示。一个用户也可以扮演多种角色(执行者)。例如,一个高级营销人员既可以是贸易经理,也可以是普通的营销人员;一个营销人员也可以是售货员。在处理执行者时,应考虑其作用,而不是人或工作名称,这一点是很重要的。图1中,不带箭头的线段将执行者与用例连接到一起,表示两者之间交换信息,称之为通信联系。执行者触发用例,并与用例进行
24、信息交换。单个执行者可与多个用例联系;反过来,一个用例可与多个执行者联系。对同一个用例而言,不同执行者有着不同的作用:他们可以从用例中取值也可以参与到用例中。需要注意的是执行者在用例图中是用类似人的图形来表示尽管执行的,但执行者未必是人。例如,执行者也可以是一个外界系统该外界系统可能需要从当前系统中获取信息,与当前系统有进行交互。在图1中,我们可以看到,记帐系统是一个外界系统,它需要更新帐目。通过实践我们发现执行者对提供用例是非常有用的。面对一个大系统,要列出用例清单常常是十分困难。这时可先列出执行者清单,再对每个执行者列出它的用例问题就会变得容易很多。(4)使用和扩展(USeandExten
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 标准 建模 语言 UML 及其 支持 环境

链接地址:https://www.desk33.com/p-1433453.html