【UML】第3篇 UML公共机制

发布时间:2023年12月17日

目录

?一、规格说明

二、修饰

二、通用划分

2.1 类和对象

2.2 接口和实现


今天继续基础知识,讲下公共机制。

?一、规格说明

在UML中,规格说明(Specification)是一种重要的公共机制,用于定义、解释和说明模型元素的属性和行为。规格说明提供了对模型元素的详细描述,以确保开发人员、利益相关者和其他相关人员对模型元素的理解和解释是一致的。

规格说明的定义包括以下几个方面:

  1. 语义描述:规格说明使用自然语言和形式化语言来提供对模型元素的语义描述。这包括对元素的含义、属性、操作、约束条件等进行解释和说明,以确保对模型元素的正确理解。
  2. 精确性:规格说明需要精确地描述模型元素的行为和特征,以避免歧义和误解。通过使用明确的语言和术语,规格说明可以确保相关人员对模型元素的理解是一致的,并减少沟通错误和解释偏差。
  3. 可追溯性:规格说明需要与其他模型元素和相关文档保持一致和可追溯。这意味着规格说明应该与其他UML图、需求文档、设计文档等相互引用和关联,以确保信息的准确性和一致性。

示例:

考虑一个简单的在线购物系统,其中包括一个“商品”(Product)类。为了确保开发人员和其他相关人员对“商品”类的理解是一致的,可以使用规格说明来定义该类的属性和行为。

规格说明示例如下:

“商品”类:

  • 属性:商品ID(唯一标识符)、商品名称、商品描述、价格。
  • 操作:获取商品详情、修改商品价格、添加商品到购物车、从购物车移除商品。

规格说明可以进一步详细描述每个属性和操作的语义和行为,例如:

  • 商品ID:唯一标识符,用于区分不同的商品。每个商品都有一个唯一的ID。
  • 商品名称:商品的名称,用于显示和标识商品。商品名称应该是有意义的,并能够准确描述商品。
  • 获取商品详情:该操作返回商品的详细信息,包括商品ID、商品名称、商品描述和价格等。调用该操作需要提供商品的ID作为参数。

通过使用规格说明,开发人员和其他相关人员可以清楚地了解“商品”类的属性和行为,以及如何与其他模型元素进行交互和操作。这有助于确保对模型元素的一致理解和解释,提高软件开发的质量和效率。

二、修饰

修饰(Decoration)是一种公共机制,用于对模型元素进行附加说明和注释,以提供更详细的信息或解释。修饰可以通过添加标记、颜色、字体、图标等元素来修改或补充模型元素的外观,以突出显示特定属性、行为或关系。

修饰的定义包括以下几个方面:

  1. 可视化增强:修饰通过添加可视化元素来增强模型元素的表现力。这些可视化元素可以包括不同的颜色、字体样式、线条粗细、图标等,用于突出显示模型元素的特定方面或属性。
  2. 信息补充:修饰可以提供额外的信息或解释,以帮助理解模型元素的含义和行为。这些信息可以包括注释、约束条件、规则、示例等,用于进一步说明模型元素的用途、限制或行为方式。
  3. 规范化:修饰可以用于规范化模型元素的表示方式,以确保在UML图中的一致性和准确性。通过定义和使用特定的修饰符号和约定,可以减少解释偏差和歧义,并提高UML图的可读性和可理解性。

示例:

考虑一个简单的类图,其中包含一个“用户”(User)类和一个“订单”(Order)类,它们之间存在关联关系。为了突出显示这两个类之间的关系,并添加一些额外的信息,可以使用修饰来进行说明。

修饰示例如下:

  1. 在“用户”类和“订单”类之间的关联关系上添加一个带有箭头的线条,表示这是一个导航关系,即可以通过“用户”类来访问“订单”类。这可以通过使用带有箭头的线条修饰来实现。
  2. 在“订单”类的属性“订单状态”(orderStatus)旁边添加一个注释修饰,解释该属性的含义和可能的取值,例如“已下单”、“已支付”、“已发货”等。这可以通过在属性旁边添加注释文本框并进行相应说明来实现。
  3. 在“用户”类的操作“下订单”(placeOrder)上方添加一个规则修饰,指示该操作只能由具有特定权限的用户执行。这可以通过在操作上方添加一个锁形图标或特定的颜色来进行表示和说明。

通过使用修饰,UML图可以更加直观地传达模型元素的含义和行为,并提供额外的信息和解释。这有助于增强UML图的可读性和可理解性,减少解释偏差和歧义,并提高软件开发过程中的沟通和协作效率。

在UML中,“+”和“-”符号确实被用作修饰符,用于表示类成员的可见性。其中,“+”表示公有(public)可见性,意味着该成员可以被其他类直接访问,没有任何限制。而“-”表示私有(private)可见性,意味着该成员对外部完全不可见,只有类本身内部可以访问和使用这些成员。“#”通常表示受保护的(protected)可见性,意味着该成员只能被该类及其子类访问。此外,无修饰符通常代表默认的访问权限,也就是包内可见性(internal),意味着该成员只能在同一个包内的其他类中被访问。

这些修饰符在UML类图中非常重要,它们准确地描述了类成员的可见性和访问权限,帮助开发人员和其他相关人员更好地理解类的结构和行为。通过使用这些修饰符,UML图可以提供更清晰、更精确的信息,从而提高软件开发过程的效率和质量。

二、通用划分

2.1 类和对象

在UML的公共机制中,通用划分是对模型元素进行分类和组织的一种方法,其中类和对象是核心概念之一。

类的定义:
类(Class)是对现实世界中具有相同属性、操作和关系的对象的抽象表示。它定义了一组具有相似特性和行为的对象的集合。类描述了对象的结构、属性和操作,并规定了对象之间的关系。在UML中,类使用矩形符号来表示,其中包含类的名称、属性和操作等信息。

对象的定义:
对象(Object)是类的实例,即具有类所定义的属性和操作的具体实体。对象是现实世界中具体事物的表示,例如人员、车辆、订单等。每个对象都具有唯一的标识,并且可以有自己的状态和行为。在UML中,对象通常使用带有类名的矩形来表示,并展示其具体的属性值和行为。

在上面这个图中,Dog是一个类,而下面三个是它的对象,其中第一个显式的指出Jack是类Dog的一个对象;而第二个是Dog的一个匿名对象;第三个未给出其所属的对象,但可以在其规格说明中指出其所属的类。

2.2 接口和实现

在UML的公共机制中,通用划分中的接口和实现是核心概念之一。

接口的定义:
接口(Interface)是一种定义了一组操作的契约或规范,但没有具体实现的结构。它描述了类或组件应该具备的行为,但并不提供具体的实现细节。接口定义了一组操作的签名,包括操作的名称、参数和返回类型,但不包含具体的实现代码。在UML中,接口通常使用带有“<<interface>>”标签的矩形来表示,其中列出了接口所定义的操作。

实现的定义:
实现(Implementation)是指类或组件对接口定义的操作的具体实现。它描述了类或组件如何实现接口中声明的行为。实现可以是一个类、一个组件或一个对象,它必须提供接口中定义的所有操作的具体实现代码。实现与接口之间存在一种“实现关系”,表示实现满足接口的契约或规范。在UML中,实现关系使用带有虚线的箭头来表示,箭头从实现指向接口。

上图是接口的一个棒棒糖表示法。圆头旁边是接口名称。

?

上图是类对接口的实现,用虚线和空三角箭头来指向实现的接口。?

示例:
考虑一个简单的例子,以描述“打印机”(Printer)接口及其实现。

1. 接口的定义:

  • 接口名:打印机(Printer)
  • 操作:打印(print)、扫描(scan)、复印(copy)在UML中,这个接口可以使用一个带有“<<interface>>”标签的矩形来表示,并在矩形内列出接口所定义的操作。

2. 实现的定义:

假设我们有一个具体的打印机实现类,名为“喷墨打印机”(InkjetPrinter),它实现了“打印机”接口。

  • 类名:喷墨打印机(InkjetPrinter)
  • 实现的接口:打印机(Printer)
  • 操作实现:提供具体的打印、扫描和复印方法的实现在UML中,这个实现类可以使用一个带有类名的矩形来表示,并通过一个带有虚线的箭头指向“打印机”接口,表示它实现了该接口。

通过使用接口和实现的概念,UML可以帮助开发人员更好地组织和设计软件系统中的组件和它们之间的交互。接口定义了组件之间的契约和规范,而实现则提供了这些契约和规范的具体实现。这种分离使得组件之间的依赖关系更加清晰和灵活,同时也促进了代码的重用和扩展性。

(未完待续)

文章来源:https://blog.csdn.net/giszz/article/details/134957457
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。