理解UML是工具箱的重要组成部分

工程和IT洞察力:控制系统开发需要在许多人和系统之间进行信息交换。统一建模语言(UML)可以帮助产生不一致,消除歧义,并提供一种“标准”的方式来交流项目信息。

通过丹尼斯Brandl 2012年1月24日

控制系统的开发要求在用户和开发人员、客户和供应商、编码员和分析师以及管理层和员工之间交换大量详细和准确的信息。语言是用来交流这些信息的工具,但自然语言(汉语、英语、西班牙语、法语等)是出了名的模棱两可。自然语言依赖上下文信息,通常是模糊和不完整的。它们通常包含对假定为众所周知的信息的推断和引用。(见《人类语言的故事,约翰·麦克沃特教授,《伟大的课程》,www.thegreatcourses.com)

开发控制系统不能依赖于假定的信息和模糊的定义。为了解决这个问题,软件工程社区以及其他工程社区开发了人工语言来明确定义需求、规范和设计。每个工程学科都开发了人工语言。例如,电气工程有电路图,化学工程有管道和仪器仪表图(P&ID)和工艺流程图(PFD)。除非您接受过特定的软件工程培训,否则您可能不熟悉软件工程语言。这些语言的知识将允许您定义更好的需求和设计,并且它是任何专业控制工程师知识库的重要组成部分。

人工工程语言都有一些共同点:它们都有一个带注释的图形组件,其中的符号和文本使用定义良好的严格规则集排列在图中。软件工程用于规范和设计的人工语言称为UML,即统一建模语言。UML已经在ISO/IEC 19501规范中正式定义,并且在其他IEC和ISO标准中普遍使用。不幸的是,标准不是教程,也不是学习UML的最好方法,但是有很多关于UML的好书。(参见学习UML 2.0、拉斯·迈尔斯和金·汉密尔顿,ISBN 978-0596009823;UML提炼:标准对象建模语言的简要指南,马丁·福勒,ISBN 978-0321193681;而且使用UML、模式和Java的面向对象软件工程, Bernd Bruegge和Allen H. Dutoit, ISBN 978-0136061250。)

UML由14种类型的图组成,分为两类:结构信息和行为信息。虽然14个图符号可能令人生畏,但大多数UML用户关注5种图类型:类图、对象图、状态图、用例图和序列图。官方的UML规范并没有将图元素限制为特定的图类型,所以通常任何UML元素都可能出现在几乎任何类型的图上。然而,每种图类型都有特定的用途,并且通常的使用将图元素限制为与之相关的图类型。

理解信息图的结构会有所帮助。两种最常用的结构信息图是类图和对象图。类图用于描述系统类的结构及其关系。类用于定义特定于问题的元素集合。例如,您可以为材料运动系统定义一类电机、一类传感器和一类材料。类是一种抽象,学习如何抽象一个问题并定义它,以便其他人能够理解它,这是使用UML可以学到的最重要的经验之一。类用矩形表示,关系用矩形之间的线表示。类图是关于类的一组关系和信息的图形表示。例如,一份规格书可能有几百行,例如:一个案例包装机包含一个PLC程序,一个案例包装机使用故障传感器,一个PLC程序有一个作者,一个PLC程序有一个版本。这些语句可以在类图中简洁地表示,将密集的文本减少到几个简单的图。 We are much better at recognizing patterns through diagrams than in strings of text, and UML class diagrams take advantage of our pattern-recognition abilities. Class figures may contain the attributes associated with the class, such as a serial number for a motor. The class figures may also contain the operations that can be performed on the class, such as “Start the motor”. Each sentence in a specification that uses the “has a” verb, such as “a motor has a serial number”, defines an attribute. Each sentence in a specification that uses the “can” verb, such as “a motor can be started”, defines an operation. Class figures unambiguously represent information about objects in the class and what can be done to the objects.

类图还可以显示更复杂的关系,如聚合、组合和子类型。聚合表示双向和非对称的关系,例如“一个服务器向其他服务器提供域名服务”。组合是更强的聚合,例如“一个PLC包含一个IO机架”。子类型是泛化的一种形式,例如“PLC是一个托管设备”。这些关系是使用类之间行上的注释和符号定义的。

UML类图在规范中被广泛使用,因为它能够以易于理解的格式表示结构性问题特定的信息。它们通过简单的模式显示复杂的关系,并提供了正式记录您的规范、需求和设计的好方法。

UML还定义了对象图,它显示了在特定实例中所选对象的系统示例。它们呈现了实际系统结构的视图,而不是类图的抽象视图。通常,对象图只是整个系统的部分视图,用于说明在特定情况下如何实际使用关系。在只有少量对象的简单项目中,可以使用对象图来记录实际的实现。例如,一个小型项目可能有5个电机和10个传感器,可以在一个图表上记录。然而,在大多数项目中,对象图只是作为例子来帮助理解类图。

理解UML对所有控制工程师都很重要。UML将有助于产生不一致,消除歧义,并提供一种“标准”的方式来交流项目信息。让UML知识成为控制工程工具箱的一部分。

- Dennis Brandl是北卡罗来纳州Cary BR&L咨询公司的总裁,www.brlconsulting.com。他的公司专注于IT制造业。与他联络:dbrandl@brlconsulting.com.马克·霍斯克编辑,控制工程www.globalelove.com

相关阅读

节省时间:不要重复关于项目方向的基本论点:你的制造IT项目原则是什么?

你们的制造IT项目原则是什么?