系统工程的十大建模建议: #4 通过设计模式来重用经过验证的解决方案

来源:互联网 发布:上眼皮下垂恢复知乎 编辑:程序博客网 时间:2024/06/05 15:30

在 Bruce Douglass 这一关于系统工程的十大建模建议的第 4 条中,您将会了解到通过抽象或设计模式来重用其他设计者的既有经验和知识的重要性。


设计模式(Design Patterns)是针对常见问题的通用化解决方案。也就是说,它们是一组能解决不同上下文背景中同样问题的解决方案的抽象。这一抽象移除了特定的上下文背景,您可以重新应用到一个新的上下文背景中。这使得您可以以您的方式对新的设计任务重用已被验证的解决方案。您也可以利用其他设计者的经验。这是双赢的。

例如,考虑一个采用压力和流量来对医用输液泵的药物输送过程进行闭环控制的安全型关键系统。该系统必须安全和准确。有没有一种方法来安排设计元素,使得可以以最佳的方式来实现这些目标?

模式:保护单通道(Protected single channel)

描述
将组件组织为一系列控制和数据转换的步骤。在组件的边界添加错误和安全检查。
 
问题
以有效成本的方式为发生错误之后提供保护。
 
解决方案
将组件组织成一系列转换步骤,并通过轻量级冗余措施来提供错误和安全检查。
 
效果
低设计成本,低经常性费用,但不能在出现故障的情形继续运行,因此必须要有一个故障失效安全保护状态(fail-safe state)。
 

基本模式看起来如图 1。图中的组件被连接成一系列转换型元件(抽象数据变换,Abstract Data Transforms),其中每一个组件都可以添加有效性和安全性检查(抽象转换型检查器,Abstract Transformational Checker)。具体版本的元素,即该模型其中的组件应在您应用该设计模式到您的设计中时被取代。

图 1. 保护单通道(Single channel protected)模式
基本模式的模型

图 2 展示了这种模式的一个应用。压力和流量传感器组件在最前端接收原始数据(raw data),原始数据随后通过移动平均(moving average)和带通(band pass)滤波器,并在此之后被用于计算泵的更新位置。每一个这些转换都有一个用以验证它的元素:

  • 压力和流量将被进行检查,以确保它们在合理限值内;
  • 计算出的泵位也将被进行验证,以确保从最后一个泵位所采取的步骤不会太大。

如果检测到错误,警报将被发送到报警管理器(alarm manager),让值班医生可以定位到这个问题。在这种事件中,该泵将进入其失效安全保护状态(监视,但不再提供药物)。

图 2. 保护单通道的一个应用
模式图

Harmony 过程会识别架构的五个视图(参见图 3)。分别是:

子系统和组件视图(Subsystem and component view)
系统的大部分组件,它们的职责和接口。
 
并发和资源视图(Concurrency and resource view)
并发单元的识别和它们的调度属性,对这些线程所分配的软件元素、任务同步策略和资源使用政策。
 
部署视图(Deployment view)
在不同的工程规程中所分配的职责,如机械、电子和软件等的职责分配。
 
分布视图(Distribution view)
关于处理节点的分布智能以及通讯与协作所用的技术和政策等方面的决定。
 
可靠性视图(Dependability view)
系统的完整性(安全性、可靠性和安全性)在系统的执行过程中如何来维护,包括对故障和攻击的鉴别、隔离,以及对运行时故障和攻击的校正。
 

该系统架构的一个重要意义,在于总结每一个关键领域的设计决策和模式。

图 3. Harmony 过程的五个关键架构视图
Harmony 架构

您可以在我的两本书《实时设计模式》(“Real-Time Design Patterns”,Addison-Wesley 出版社,2003 年)和《C 语言嵌入式系统设计模式》(“Design Patterns for Embedded Systemse in C”,Elsevier Press 出版社,2011 年)中,看到关于这些不同架构方面的设计模式。

参考资料

学习

  • 进一步了解 Rational System Architect:
    • 浏览 developerWorks Rational System Architect 产品专题,并观看在线演示阅读描述脚本。
    • 查看 Rational System Architect Information Center 查找各个版本的文档,或从 Rational System Architect 帮助获取帮助主题。
  • 了解面向嵌入式系统的协作化模型驱动开发工具,从 IBM developerWorks Rational Rhapsody 产品线概览及 Rational Rhapsody 产品专题开始起步。并查看 Rational Rhapsody 7.6 information center 以及 改变帮助文献的定位 一文来获得文档的本地版本。
    • 浏览多个不同的版本,如:IBM Rational Rhapsody Architect for Software,一个用于嵌入式系统及软件的开发环境
    • IBM Rational Rhapsody Architect for Systems Engineers
    • IBM Rational Rhapsody Designer for Systems Engineers
    • IBM Rational Rhapsody Developer 用于嵌入式系统的协作化、模型驱动开发。这一版本是 Eclipse 用户所需要的,并且可以在其中创建 C、C++、Java 及 Ada 等语言的专门化项目。
  • 进一步了解 Rational Rhapsody 设计管理能力,查看 IBM Rational Rhapsody Design Manager 来了解如何在整个工程团队中进行协作、分享、评审和管理设计及模型。同时查看 Jazz.net 上的Design Management 页面。
  • 浏览 developerWorks Rational 软件专区,了解关于软件及系统交付的 Rational 协作及集成解决方案的技术资源、最佳实践和信息。
  • 紧跟 developerWorks 技术活动及网络视频 ,关注众多的 IBM 产品及 IT 行业主题。
    • 参加免费的 developerWorks Live! 技术讲座来快速掌握 IBM 产品及工具,以及获得最快最新的 IT 行业趋势的信息。
    • 观看 developerWorks 演示,包括了产品安装及设置方面的演示,内容涵盖了从初学者到有经验开发人员的高级功能使用。
  • 提升您的技能。查看 Rational 培训及认证目录,包括许多类型的广泛主题的课程。您可以在任何地方任何时间参与这些课程中,而且其中许多入门起步的内容是免费的。

获得产品和技术

  • 下载免费和完整功能的 Rational System Architect 试用版。
  • 在线了解 Rational Rhapsody 试用版 或下载 Rational Rhapsody 特定版本 进行评估,30 天内免费。
  • 用最适合您的方式评估 IBM 软件:下载试用版、在线试用,或在云环境中试用它。

讨论

  • 参与 EnterpriseArchitecture and Business Architecture 论坛,在那里您可以分享关于方法、框架及工具实现等方面的信息。讨论包括面向 Rational System Architect 的特定工具技术讨论。
  • 加入 Rational Rhapsody 论坛上的讨论。
  • 在 Rational 社区与您的队友保持联系并获取最新的技术信息。
  • 评分或评论 Rational 软件。非常快速简便。
  • 分享您的知识并通过 撰写 developerWorks 技术文章帮助其他 Rational 软件使用者。了解如何撰写一篇好的 developerWorks 技术文章以及如何处理。
  • 在 Facebook、Twitter (@ibmrational),以及YouTube 上跟随 Rational 软件,并添加您的评论和请求。
  • 提问或回答问题,并增加您的专业技能,并参与到 Rational 论坛,cafés,及wikis。

0 0