论文部分内容阅读
随着软件技术的不断发展,控制类软件系统正广泛地应用于家用,办公,医疗等领域,应用本身对软件可靠性的要求也越来越高。环境上下文信息是控制类软件设计和开发时考虑的主要因素,面向上下文编程方法针对控制类软件开发的这一特点为开发控制类软件提供了良好的支持。但是用户对控制类软件可靠性的需求随着软件应用上下文环境的变化可能需要得到增强,此时软件的行为就需要改变以满足新的可靠性需求。面向上下文编程方法通过增加新的行为变体定义,使得软件可以在指定的上下文环境下改变软件行为,但是这种传统的方法还存在一些不足之处:1)行为变体定义之间的冲突问题。可靠性增强引入的行为变体定义与原有的行为变体之间可能存在对同一共享资源的操作而导致共享资源状态的不一致性,导致这类问题的行为变体定义之间存在冲突关系,例如车辆控制系统中定义停止马达转动的行为变体和定义使马达转动的行为变体之间就存在着冲突关系。冲突关系需要被检测出来用于协调存在冲突关系的行为变体的并发执行。但是目前的COP语言没有提供相关的语法元素用于检测冲突关系。2)存在冲突关系的行为变体并发执行的协调问题。可靠性增强引入的行为变体如果同原有的行为变体存在冲突关系,则需要协调并发执行的流程,包括执行的顺序以及执行过程中的中断现象。目前的COP语言没有对上述问题提供准确、简洁的支持。COP语言可以使用宿主语言提供的机制,如Java的多线程机制,但是在编程时需要用户编写相关的代码,因此不利于用户专注于设计与编码同可靠性增强功能相关的行为变体。为了解决上述问题,为可靠性控制软件的开发与软件的可靠性增强提供良好的支持,本文对COP的研究现状和已有研究结果进行了分析,针对一个现有的COP语言EventCJ在控制类软件开发与可靠性增强方面存在的问题进行了相关研究。本文的主要贡献如下:1)本文提出了一个基于COP的可靠性控制软件开发框架和原型系统。本文在现有的EventCJ基础上,通过引入行为变体冲突检测与处理方法和行为变体运行协调机制来解决EventCJ中存在的行为变体定义约束问题和行为变体并发运行问题,并在此基础上实现了一个原型系统用于可靠性开发框架的实际应用。2)本文提出了行为变体冲突检测方法。针对行为变体定义缺乏约束的问题,本文定义了行为变体的冲突关系,并在此基础上提出了冲突检测方法,并提出了根据冲突检测结果得到最大冲突集的方法。3)本文提出了行为变体运行协调机制。针对行为变体并发运行问题,本文根据冲突关系和相对优先级来协调行为变体的并发执行。针对行为变体并发造成系统不一致性的问题,本文提出了通过保存和恢复中断上下文的方法来解决这一问题。