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

在 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 年)中,看到关于这些不同架构方面的设计模式。

参考资料

学习

获得产品和技术

讨论


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值