UML及软件建模 主讲人:李唯 Clx7000@163.com
Page 1 UML及软件建模 主讲人 :李 唯 clx7000@163.com
第十三章扩展组件 什么是扩展组件 扩展组件包含哪些内容 如何应用扩展组件
Page 2 第十三章 扩展组件 什么是扩展组件 扩展组件包含哪些内容 如何应用扩展组件
概述 UML提供了几种扩展机制,允许建模者在不用改变基 本建模语言的情况下做一些通用的扩展。这些扩展机制 已经被设计好,以便于在不需理解全部语义的情况下就 可以存储和使用。由于这个原因,扩展可以作为字符串 存储和使用。对不支持扩展机制的工具来说,扩展只是 个字符串,它可以作为模型的一部分被导入、存储, 还可以被传递到其他工具。我们期望后端工具设计成能 够处理各种扩展,这些工具会为它们需要理解的扩展定 义特定的语法和语义
Page 3 1、概述 UML提供了几种扩展机制,允许建模者在不用改变基 本建模语言的情况下做一些通用的扩展。这些扩展机制 已经被设计好,以便于在不需理解全部语义的情况下就 可以存储和使用。由于这个原因,扩展可以作为字符串 存储和使用。对不支持扩展机制的工具来说,扩展只是 一个字符串,它可以作为模型的一部分被导入、存储, 还可以被传递到其他工具。我们期望后端工具设计成能 够处理各种扩展,这些工具会为它们需要理解的扩展定 义特定的语法和语义
这种扩展的方法很可能不能满足出现的多种要求,但是它 以一种易于实现的简单方式容纳建模者对UML裁制的大部分 要求 定要记住扩展是违反UML的标准形式的,并且使用它们 会导致相互影响。在使用扩展机制之前,建模者应该仔细权衡 它的好处和代价,特别是当现有机制能够合理工作时。典型地 ,扩展用于特定的应用域或编程环境,但是它们导致了UML 方言的出现,包括所有方言的优点和缺点。 扩展机制包括约束、标记值和构造型
Page 4 这种扩展的方法很可能不能满足出现的多种要求,但是它 以一种易于实现的简单方式容纳建模者对UML裁制的大部分 要求。 一定要记住扩展是违反UML的标准形式的,并且使用它们 会导致相互影响。在使用扩展机制之前,建模者应该仔细权衡 它的好处和代价,特别是当现有机制能够合理工作时。典型地 ,扩展用于特定的应用域或编程环境,但是它们导致了UML 方言的出现,包括所有方言的优点和缺点。 扩展机制包括约束、标记值和构造型
2、约束 约束是用文字表达式表示的语义限制。每个表达式有一种 隐含的解释语言,这种语言可以是正式的数学符号,如set- heoretic表示符号;或是一种基于计算机的约束语言,如OCL ;或是一种编程语言,如C++;或是伪代码或非正式的自然语 言。当然,如果这种语言是非正式的,那么它的解释也是非正 式的,并且要由人来解释。即使约束由一种正式语言来表示, 也不意味着它自动为有效约束
Page 5 约束是用文字表达式表示的语义限制。每个表达式有一种 隐含的解释语言,这种语言可以是正式的数学符号,如settheoretic表示符号;或是一种基于计算机的约束语言,如OCL ;或是一种编程语言,如C++;或是伪代码或非正式的自然语 言。当然,如果这种语言是非正式的,那么它的解释也是非正 式的,并且要由人来解释。即使约束由一种正式语言来表示, 也不意味着它自动为有效约束。 2、约束
约束可以表示不能用UM表示法来表示的约束和关系 考陈述全局条件或影响许多元素的条件时约束特别有用 约束用大括弧内的字符串表达式表示。约束可以附加在表 元素、依赖关系,或注释上。下图表示了几种约束
Page 6 约束可以表示不能用UML表示法来表示的约束和关系。 当陈述全局条件或影响许多元素的条件时约束特别有用。 约束用大括弧内的字符串表达式表示。约束可以附加在表 元素、依赖关系,或注释上。下图表示了几种约束
ATM Transaction 约束用花括号括起 amount: Money i value is multiple of $20] CorporateAccount cOrporation Account PersonalAccount率 Person worker employee employer 0、1 Person/ .cOmpany b [Person, employer Person. boss. employer]
Page 7
3、标签值 标记值是一对字符串—一个标记字符串和一个值字符串一存 储着有关元素的一些信息。标记值可以与任何独立元素相关 ,包括模型元素和表达元素。标记是建模者想要记录的一些 特性的名字,而值是给定元素的特性的值。例如,标记可以 是 author,而值是对元素负责的人的名字,如 Charles Babbage 标记值可以用来存储元素的任意信息,对于存储项目管 理信息尤其有用的,如元素的创建日期、开发状态、截止日 期和测试状态。除了内部元模型属性名外,任何字符串可以 作为标记名(这是因为标记和属性在一起会被认为是一个元 素的属性并且可以被工具一起访问),而一些标记名已经被 预定义了
Page 8 标记值是一对字符串—一个标记字符串和一个值字符串—存 储着有关元素的一些信息。标记值可以与任何独立元素相关 ,包括模型元素和表达元素。标记是建模者想要记录的一些 特性的名字,而值是给定元素的特性的值。例如,标记可以 是author,而值是对元素负责的人的名字,如Charles Babbage。 标记值可以用来存储元素的任意信息,对于存储项目管 理信息尤其有用的,如元素的创建日期、开发状态、截止日 期和测试状态。除了内部元模型属性名外,任何字符串可以 作为标记名(这是因为标记和属性在一起会被认为是一个元 素的属性并且可以被工具一起访问),而一些标记名已经被 预定义了。 3、标签值
标记值还提供了一种方式将独立于实现的附加信息与元素联系起 来。例如,代码生成器需要有关代码种类的附加信息以从模型中 生成代码。通常,有几种方式可以用来正确地实现模型,建模者 必须提供做出何种选择的指导。有些标记可以用做标志告诉代码 生成器使用哪种实现方式。其他标记可为加入工具使用,如项目 计划生成器和报表书写器。 标记值也可以用来存储有关构造型模型元素的信息。 标记值用字符串表示,字符串有标记名、等号和值。它们被规则 地放置在大括弧内,如图下图所示。在图表中标记值经常被省略 ,只显示在下拉表格中
Page 9 标记值还提供了一种方式将独立于实现的附加信息与元素联系起 来。例如,代码生成器需要有关代码种类的附加信息以从模型中 生成代码。通常,有几种方式可以用来正确地实现模型,建模者 必须提供做出何种选择的指导。有些标记可以用做标志告诉代码 生成器使用哪种实现方式。其他标记可为加入工具使用,如项目 计划生成器和报表书写器。 标记值也可以用来存储有关构造型模型元素的信息。 标记值用字符串表示,字符串有标记名、等号和值。它们被规则 地放置在大括弧内,如图下图所示。在图表中标记值经常被省略 ,只显示在下拉表格中
KioskTransaction author=Mike Pike Server requirement=1452, due=12/399 status=designed] 项目管理标记值 form=standalone optimize=time, searcherandom 代码生成标记值 library=RW, indexeboth
Page 10