系统工程的十大建模建议: #8 餐巾纸模型是开始对话最好的方式,但也绝对是结束对话最糟糕的方式。

不要基于草拟在餐巾纸上的不精确思考开始构建一个风险大容易失败的系统。Bruce Douglass 系统工程的十大建模建议系列的第 8 条帮助您从轻量级模型转型到高保真模型。

Bruce Douglass, Rational 系统工程首席推广员, IBM

作者照片Bruce Douglass 拥有 30 多年软件开发经验,专门从事于实时和嵌入式系统和软件的开发。他是 IBM Rational Harmony™ for Embedded RealTime Development (Harmony/ERT) process 的作者。他和 Peter Hoffmann 开发了最初的 Harmony 流程,将系统和软件工程与一个成熟的流程相结合,实现流畅、集成的工作流。在 IBM 任职期间,他不仅向 Rational 软件客户,还向 IBM 自己的专业服务工程师和应用工程师、研究和开发人员,以及营销人员提供 UML、SysML 和 DoDAF 应用方面的咨询和高级培训。Bruce 撰写了 100 多篇杂志文章和 15 部技术图书,他是 Embedded Systems Conference 和 UML World Conference 的咨询委员会的演讲者和成员。他的专业技能包括敏捷开发和系统工程中的敏捷,以及基于模型的开发和安全关键系统。



2014 年 6 月 25 日

本条建议是我在业界所见过的,关于最常见的(错误)使用建模技术人尽皆知的抱怨:轻量级、不精确、不正确和不可维护的模型,对分析支持的功用很少,而且几乎无法回答关于利益关注的任何问题。您也许已经感觉到我对这种方式的建模毫无兴趣。我倾向于“高保真”("high-fidelity")模型。这些模型(在其范围和目的内)是完整、精确、正确和清晰的;而且是可验证的(一些有关的东西我们将会在后续的第 1 条建议中探讨)。

让我澄清一下:建模的价值依赖于我们在考虑模型的目的和范围的前提下,能完整、清晰和精确地进行验证的能力。餐巾纸模型("napkin model",因经常被手绘在触手可及的物体表面而得名),是一种最常见的使用 UML 或 SysML 的方式。但是以这种方式来使用模型,类似于使用约摸大概的弹道学参数来为导弹编程。导弹确实会击中某处地面目标,差别在于哪儿?如果您正好处在导弹弹道轨迹末端的弹着点上,这差别就大了。

图 1. 餐巾纸模型是不精确的
在餐巾纸上草绘建模

注解:因为这是一个餐巾纸模型,没有存储库在模型之下确保它与您口袋中可能存在的其他餐巾纸模型在语义陈述上的一致性。

关于这一模型您可能存有的疑问包括:

  • 这一模型尝试去描绘什么?(What is this model trying to depict?)
  • 这些就是 Student 类或 Seminar 类所具有的所有属性吗?(Are those all the attributes of Student or Seminar?)
  • 属性的数据类型及合适的子范围是什么?(What are the data types and appropriate subranges for the attributes?)
  • 各个操作(operation)的参数和返回值是什么?(What are the parameters and return values of the operations?)
  • 如何确定一次研讨会(Seminar)的合格性?需要什么信息来确定这一点?(How do you determine eligibility for a seminar? What information is needed to determine that?)
  • 这些元素如何创建?它们如何彼此链接在一起?它们如何被销毁?(How are these elements created? How are they linked together? How are they destroyed?)
  • 您如何界定一场研讨会是冷场还是满座?需要什么信息来界定?MaxNumber:unsigned int 属性是否缺失?(How can you tell if a seminar is empty or full? What information is needed for that? Is the MaxNumber:unsigned int attribute missing?)
  • 所有的属性都有默认值吗?(Are there any default values for the attributes?)

似乎听起来我像是把餐巾纸模型置于万劫不复的境地。但这并不完全正确。我认为餐巾纸模型是开启对话的一种很好的方式。在您接下来回答关于系统的结构和行为的问题和原因时,您可以将模型从“纸巾模型”转化为“高保真模型”。当模型是用具备实时模型存储库的建模工具来管理的话,这很容易做到。如果工具支持模型验证的话,则更加容易了,例如某些高端工具,Rational Rhapsody。

最差的情形是,不精确的思考会得到一个失败的系统。在我眼里,这是无法接受的。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational
ArticleID=975612
ArticleTitle=系统工程的十大建模建议: #8 餐巾纸模型是开始对话最好的方式,但也绝对是结束对话最糟糕的方式。
publish-date=06252014