|
知识路径: > 嵌入式系统软件基础知识 > 嵌入式系统程序设计 > 嵌入式软件开发过程 > 嵌入式软件设计 > 特性设计技术 > 可扩展性的设计 >
|
考试要求:掌握
相关知识点:3个
|
|
|
|
模块化设计方法适用于通用软件和嵌入式软件的设计,是提高系统可扩展性和软件复用性的通用方法。模块化设计包括四个方面:模块、数据、体系和程序设计。
|
|
|
模块设计降低了系统的复杂性、使得系统易于修改、且支持了各部分的并行开发。针对模块的操作特性,则是通过时间历史、激活机制和控制模式进行体现。在程序结构内部,模块可分类:
|
|
|
(1)顺序模块,由应用程序进行引用和执行,运行过程中不能被打断。
|
|
|
(2)增量模块,运行过程中可被其他应用程序打断,而后再从断点重新开始。
|
|
|
(3)并行模块,在多处理器环境下可以与其他模块同时执行。
|
|
|
由于单个模块的功能已被划分出来,开发起来相对较为容易,更多要从独立性的角度关注模块之间的界限。功能的独立性可以使用内聚性和耦合性这两个特性要素进行衡量:内聚性衡量模块功能强度的相关性,耦合性衡量模块间的相互依赖的相关性。
|
|
|
数据设计至关重要,并被有些人认为是最重要的设计行为。数据设计主要取决于数据结构的设计和程序复杂性的设计,通常采用如下办法保证数据设计的质量:
|
|
|
(1)用于功能和行为分析的系统分析原理也适用于数据。
|
|
|
(2)模块涉及的数据结构及基于数据结构的操作应被确定。
|
|
|
(3)创建数据词典并用来详细说明数据和程序的设计。
|
|
|
(4)较低层次的数据设计策略延迟至设计过程的后期。
|
|
|
(5)数据结构的信息应只被需要使用此结构内数据成员的模块知道。
|
|
|
|
(7)设计和编程语言应支持抽象数据类型的规范和实现。
|
|
|
体系设计的主要目标是定义适合模块化开发的程序结构,并描述出模块之间的控制相关性。体系设计应融合程序结构与数据结构,并对数据在程序中流动的界限进行定义。体系设计要关注系统的整体设计而不是单独组件。进行体系设计有许多不同的方法,但这些方法无一例外都是从软件的全局性出发,逐步接近设计的原点。
|
|
|
过程设计通常是在数据、程序结构及算法被确定后(通常是类似英语的自然语言),再进行程序过程设计。
|
|
|