System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及嵌入式软件,具体为一种嵌入式软件模块及软件模块设计方法。
技术介绍
1、常规软件模块设计中,软件模块通常会被划分为很多层级,每个层级都会处理一些相关的事情,每个层级之间都会处理一些相关的功能,但是每个层级之间处理事情的时候可能会需要用到其他层级的一些函数接口或者数据,这样每个层级就会和多个其他层级之间具有高度耦合。随着软件业务的复杂程度的提升,软件模块的耦合度会越来越高,后期如果由于需求的变更我们需要替换某个模块功能的时候,由于该模块与外部的依赖关系错综复杂导致该模块根本无法进行替换或者替换会造成巨大的人力物力的浪费。
技术实现思路
1、鉴于现有技术中所存在的问题,本专利技术的目的是提供一种嵌入式软件模块及软件模块设计方法,提高了软件的后期可维护性和扩展性,具有高可复用的优点。
2、为了实现上述专利技术目的,本专利技术采用如下所述的技术方案:
3、一种嵌入式软件模块,包括:本地化外部接口层、数据层、配置层、状态层、功能层、基础软件层和输出接口层:
4、所述本地化外部接口层集成或重新封装调用外部模块的数据访问接口;本地化外部接口层集成有所述软件模块中配置层和状态层所需的其他模块的函数和数据的封装,即调用其他模块的数据只能通过本地化外部接口层进行调用,有且只有此一条合法路径;
5、所述数据层定义本模块所需的基本数据定义;
6、所述配置层定义本模块所需的数据,将抽象的功能定义形象化;配置层对本模块所需的数据对应着功
7、所述状态层用于检查整个嵌入式模块状态,引导后续基础软件层的功能实现;状态层通过调用系统状态反馈函数以确认当前状态,以指导基础软件层进行模块状态切换,并对之后功能切换做准备;
8、所述基础软件层是实现功能所需的本地函数集合,与输出接口层进行区分,以实现内耦合的目标;基础软件层是提供软件模块功能所需的基础条件,整合各个层级间的数据输入,协调功能分配;基础软件层整合外部输入针对内部功能需求做出资源和功能划分,多是一些静态函数,为功能层提供函数输入;
9、所述功能层基于基础软件层的反馈,根据对应状态做出相应的行为,即接收到睡眠请求,则模块进行睡眠操作,接收到唤醒操作则在唤醒后进行正常操作;
10、所述输出接口层是提供给其他模块的函数接口或数据接口,其他层不能非法输出数据给外部模块使用,以此实现不同模块间的功能交互;
11、所述本地化外部接口层只能被状态层和配置层调用,所述数据层可被其他所有层级调用,所述基础软件层可调用状态层和配置数据,其余各层级的模块层之间的引用关系为高层级的模块层被其相邻的下一层级的模块层调用,所述状态层、基础软件层、功能层层级递减。
12、作为本专利技术的一种优选方案,所述数据层提供给其他层级的基本数据定义包括本地函数、变量、结构体、联合体。
13、作为本专利技术的一种优选方案,所述配置层和输出接口层可供外部模块访问,所述输出接口层将其他模块的输出重新在本模块中进行封装。
14、作为本专利技术的一种优选方案,所述数据层和配置层将数据定义为同一命名规则的宏定义或结构体变量,配置层中多用宏定义、结构体以及联合体进行封装,并做好批注,可针对不同项目进行适当修改,显得灵活多用。
15、作为本专利技术的一种优选方案,所述状态层所检查的模块状态,包括睡眠请求、唤醒、正常状态;状态层中初始化状态时候对本模块所需的所有数据进行初始化;空闲状态时候时时检测模块状态;工作状态时候执行功能;收到睡眠指令时候关闭或开启对应功能。
16、作为本专利技术的一种优选方案,所述模块有且只有输出接口层一个出口,其他层不能非法输出数据给外部模块使用。
17、作为本专利技术的一种优选方案,所述配置层定义的数据包括结构体、联合体数据。
18、作为本专利技术的一种优选方案,所述配置层包括时间参数、状态参数、通讯数据参数及接口数据参数。
19、一种嵌入式软件模块设计方法,包括:
20、步骤s101:整合本模块其他所有层级所需的数据,以构建所述软件模块的数据层;
21、步骤s102:集成其他模块的接口及数据,以构建所述软件模块的本地化外部接口层;
22、步骤s103:划分本模块时间参数、状态参数、通讯数据参数及接口数据参数,以构建所述软件模块的配置层;
23、步骤s104:划分初始化状态、开始状态、空闲状态、工作状态、准备睡眠状态,预睡眠状态,睡眠状态,以构建所述软件模块的状态层;
24、步骤s105:结合状态层和配置层的反馈来编写功能层所需的本地静态功能函数,以构建所述软件模块的基础软件层;
25、步骤s106:根据本模块功能需求进行代码编写,以构建所述软件模块的功能层;
26、步骤s107:针对外部模块需求来封装某些特定功能的函数接口,以构建所述软件模块的输出接口层。
27、由于采用上述技术方案,本专利技术具有以下有益效果:
28、本专利技术通过层级的划分,可以将整个软件模块设计划分为本地化外部接口层、数据层、配置层、状态层、功能层、基础软件层和输出接口层,并且对每个层级的软件层的功能进行了清晰明了的定义每个层级的软件层之间仅仅有纵向依赖关系而没有横向依赖关系,即每个层级的软件层仅能引用与其相邻的下一层级的软件层,而同层级的模块之间不能相互引用,这样的层级划分方式较为明确,并且每个层级的软件层的功能定义清晰明了,极大地提升了软件的后期可维护性和可扩展性,实现了各个层级模块之间的高内聚低耦合的目标,是一个高可复用的优秀的软件模块设计。
本文档来自技高网...【技术保护点】
1.一种嵌入式软件模块,其特征在于,包括:本地化外部接口层、数据层、配置层、状态层、功能层、基础软件层和输出接口层:
2.根据权利要求1所述的一种嵌入式软件模块,其特征在于:所述数据层提供给其他层级的基本数据定义包括本地函数、变量、结构体、联合体。
3.根据权利要求1所述的一种嵌入式软件模块,其特征在于:所述配置层和输出接口层可供外部模块访问,所述输出接口层将其他模块的输出重新在本模块中进行封装。
4.根据权利要求1所述的一种嵌入式软件模块,其特征在于:所述数据层和配置层将数据定义为同一命名规则的宏定义或结构体变量。
5.根据权利要求1所述的一种嵌入式软件模块,其特征在于:所述状态层所检查的模块状态,包括睡眠请求、唤醒、正常状态。
6.根据权利要求1所述的一种嵌入式软件模块,其特征在于:所述模块有且只有输出接口层一个出口,其他层不能非法输出数据给外部模块使用。
7.根据权利要求1所述的一种嵌入式软件模块,其特征在于:所述配置层定义的数据包括结构体、联合体数据。
8.根据权利要求1所述的一种嵌入式软
9.一种嵌入式软件模块设计方法,其特征在于,包括:
...【技术特征摘要】
1.一种嵌入式软件模块,其特征在于,包括:本地化外部接口层、数据层、配置层、状态层、功能层、基础软件层和输出接口层:
2.根据权利要求1所述的一种嵌入式软件模块,其特征在于:所述数据层提供给其他层级的基本数据定义包括本地函数、变量、结构体、联合体。
3.根据权利要求1所述的一种嵌入式软件模块,其特征在于:所述配置层和输出接口层可供外部模块访问,所述输出接口层将其他模块的输出重新在本模块中进行封装。
4.根据权利要求1所述的一种嵌入式软件模块,其特征在于:所述数据层和配置层将数据定义为同一命名规则的宏定义或结构体变量。
【专利技术属性】
技术研发人员:李伟,王臻,林晓东,
申请(专利权)人:圣加仑汽车工程技术上海有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。