实时软件设计策略
实时软件设计策略解决了三个核心实时设计概念,包括:决定控制方面的有限状态机、决定系统的并行性任务,以及决定系统可修改性和可重用性的信息隐藏。这些策略还解决了每个实时软件如何处理时间限制的问题。
基于功能分解的设计
这种设计策略非常适合实时结构化设计和分析。顾名思义,系统被分解成不同的功能,称为流程或转换。功能之间的界面被定义成控制流或数据流。像控制或数据转换这样的功能被映射到任务、模块和处理器上。
基于并行任务结构的设计
这种设计策略主要是由 DARTS(Design and Analysis for Real Time Systems,实时系统设计与分析)所强调的,其中并行任务被归类为实时设计中的核心部分。DARTS 提供了一种任务结构标准,帮助实时系统设计师识别实时系统中的并行结构,还提供了有助于决定任务界面的指导方针。
基于信息隐藏模块结构的设计
这是一种目的在于提供可维护性、可修改且可重用的软件设计组件而成的策略,并能通过利用隐藏在系统设计组件中的信息来达成。这种策略非常适合面向对象的设计方法和研究实验室的软件成本降低方法。
基于建模问题领域的设计
Jackson 系统开发法特别强调这种设计策略,因为这方法学的主要目标就是建模问题域中的实体并将其映射到软件流程中。
DCDS(Distributed Computing Design System,分布式计算设计系统)方法
DCDS为阶层式的分解实时系统设计提供了一种图形概念,强调事件、并行和顺序功能。每个高阶功能都有一个性能指针,随着功能被一层层的分解,允许最大响应时间的性能指针就会被分配至低阶功能。在最低的分解层级中,并行和顺序功能则被分配给实时系统组件。
PAMELA 设计方法
这个方法采用基于数据流图的阶层分解方式,将转换分解成最低层级的并行任务。这些任务及其界面再被映射到 Ada 语言。
状态图
状态图(Statecharts)或状态图表(State diagrams)是以阶层式分解状态转换的图形表示法,并使用一种包含模块和活动图的Statemate 工具。因此,这些图表非常适合支持不同的设计和规范方法。例如实时结构化分析就可以很容易地在 Statemate 中表达。
总结
有些实时软件设计策略是为了追求理想的分解方法而建议的设计概念,不是用来提供执行特定设计的步骤和原则。因此,并没有每个软件设计师都必须严格遵守的实时软件设计策略。