符合DO-178标准的机载软件开发流程调度方法技术

技术编号:23471244 阅读:36 留言:0更新日期:2020-03-06 13:05
本发明专利技术公开了一种符合DO‑178标准的机载软件开发流程调度方法,用于解决现有机载软件开发流程调度方法容易陷入局部最优的技术问题。技术方案是每次迭代过程是对解空间的一次搜索,多次搜索最终取最优结果。由于将基于SoftMax函数衰减的概率Min‑Min调度算法应用到符合DO‑178B/C的机载软件开发过程的任务与人员调度中,改善了原本Min‑Min调度算法的容易陷入局部最优的问题,由于增大了搜索空间,对给定66个随机生成的项目过程的实验情况表明,本发明专利技术平均情况下相比背景技术Min‑Min调度能减少8.3%的项目完成时间,而实验结果的箱形图表明该算法最差情况下也好于Min‑Min调度。

Scheduling method of airborne software development process in accordance with do-178 standard

【技术实现步骤摘要】
符合DO-178标准的机载软件开发流程调度方法
本专利技术涉及一种机载软件开发流程调度方法,特别涉及一种符合DO-178标准的机载软件开发流程调度方法。
技术介绍
RTCADO-178B/C,即“机载系统和设备认证的软件考虑”,是应用于机载系统安全关键软件的安全指导,是为机载软件的符合性证明和审查活动提供指导的一套标准,其目的是指导航空机载软件开发,确保机载系统中的软件可靠地运行。DO-178B/C标准是以目标为导向,涵盖整个软件研制周期的机载软件研制过程规范,它以传统的瀑布模型定义了机载软件开发过程。随着DO-178B/C标准的发展和机载软件规模的不断扩大,常见调度算法被应用到机载软件开发过程中,用于管理并合理分配任务与人力资源。例如,Hartmann,S.,&Briskorn,D.等人在文章Asurveyofvariantsandextensionsoftheresource-constrainedprojectschedulingproblem,EuropeanJournalofOperationalResearch,207(1),1-14(2010)中总结了资源受限的软件项目调度问题使用的调度算法。机载软件开发过程的人员与任务分配问题是一种有资源和偏序约束的静态调度问题,该类调度问题已经被证明是一个NP-Hard问题,在多项式时间内无法获得最优解,但我们可以获得近似的较优解。针对该类问题的传统方法Min-Min算法,实质是一种贪心算法,它先尝试为当前任务集中每一个任务映射一个完成任务最快的人员,再从任务-人员的映射对中选取一个完成时间最短的映射对,并真正将任务分配给人员,如此循环直到所有任务分配完成。Min-Min算法虽然能快速给出较优解,但是容易陷入局部最优,从而不能给出整体较优的解。
技术实现思路
为了克服现有机载软件开发流程调度方法容易陷入局部最优的不足,本专利技术提供一种符合DO-178标准的机载软件开发流程调度方法。该方法每次迭代过程是对解空间的一次搜索,多次搜索最终取最优结果,加入衰减因子是为了让算法收敛于Min-Min调度,有助于算法的稳定性,由于增大了搜索空间,平均情况下能取得比Min-Min调度更优的结果,最差情况下与Min-Min调度表现相当。由于将基于SoftMax函数衰减的概率Min-Min调度算法应用到符合DO-178B/C的机载软件开发过程的任务与人员调度中,改善了原本Min-Min调度算法的容易陷入局部最优的问题,由于增大了搜索空间,对给定66个随机生成的项目过程的实验情况表明,本专利技术平均情况下相比
技术介绍
Min-Min调度能减少8.3%的项目完成时间,而实验结果的箱形图表明该算法最差情况下也好于Min-Min调度。本专利技术解决其技术问题所采用的技术方案:一种符合DO-178标准的机载软件开发流程调度方法,其特点是包括以下步骤:步骤一、输入任务有向无环图的起始节点S,当前人员集合M,迭代次数I。步骤二、初始化最优调度队列集合Qmin,初始化Qmin的完成时间为有限位整数最大值,判断当前迭代次数是否小于迭代次数I,如果当前迭代次数小于迭代次数I,则执行步骤三;如果当前迭代次数大于等于迭代次数I,输出Qmin,结束。步骤三、依据起始节点S,初始化可分配的任务集合P、空任务队列集合Q、初始化映射集合Map<P,M>,并将所有任务节点放入链表U。步骤四、为人员集合M中每一位人员建立一个空任务队列,并加入到集合Q中。遍历链表U,将所有前置条件为空的任务加入到集合P中步骤五、遍历链表U,将所有前置条件为空的任务加入到集合P中步骤六、当P不为空集时,执行以下分步骤直到P为空:清空映射集合Map<P,M>对于当前可分配集合P中每一个任务T:计算当前人员集合M中每一个人员完成该任务的时间,根据完成任务时间,按照公式计算选中该人员的概率,再以随机轮盘赌的形式从所有人员中选取一个人员,作为一个任务-人员映射对加入到映射集合Map<P,M>中。根据完成任务时间与公式计算当前映射集合Map<P,M>中每一个映射被选中的概率,再以随机轮盘赌的形式从所有映射中选取一个映射,将该映射中的任务实际分给与其关联的人员的任务队列中。随后,将已分配的任务从可分配的任务集合P中移除,并判断已分配任务的每一个后继任务是否满足前置条件,如果满足则加入可分配任务集合P。步骤七、计算集合Q中所有人员的任务队列最长完成时间作为Q的完成时间,判断Q的完成时间是否小于Qmin的完成时间,如果Q的完成时间小于Qmin的完成时间,则令Qmin=Q,如果Q的完成时间是否大于等于Qmin的完成时间,Qmin不变。最后迭代次数加1,返回步骤二。本专利技术的有益效果是:该方法每次迭代过程是对解空间的一次搜索,多次搜索最终取最优结果,加入衰减因子是为了让算法收敛于Min-Min调度,有助于算法的稳定性,由于增大了搜索空间,平均情况下能取得比Min-Min调度更优的结果,最差情况下与Min-Min调度表现相当。由于将基于SoftMax函数衰减的概率Min-Min调度算法应用到符合DO-178B/C的机载软件开发过程的任务与人员调度中,改善了原本Min-Min调度算法的容易陷入局部最优的问题,由于增大了搜索空间,对给定66个随机生成的项目过程的实验情况表明,本专利技术平均情况下相比
技术介绍
Min-Min调度能减少8.3%的项目完成时间,而实验结果的箱形图表明该算法最差情况下也好于Min-Min调度。下面结合附图和具体实施方式对本专利技术作详细说明。附图说明图1是本专利技术符合DO-178标准的机载软件开发流程调度方法的流程图。具体实施方式在描述具体步骤之前,对步骤中使用的变量和模型进行说明。(A)DO-178B/C任务任务模型。使用有向无环图(DAG)表示DO-178B/C标准定义的机载软件开发过程中有前置约束关系的所有任务集合。任务流程是由任务节点构成的有向无环图T=(N,E)。T的顶点集N为任务节点的集合,代表一个满足DO-178B/C标准的机载软件开发流程中的所有任务,边集E代表任务间的前置约束关系。若边集E中含有边eij,说明任务节点Nj依赖于任务节点Ni。任务节点Ni用六元组Ni=(Ti,Tpi,Ci,ESTi,LSTi,EFFi)表示,其中T表示任务属性的集合,包括任务名、任务ID、任务所属的阶段等、Tp是任务类型,Tpi∈{项目计划,需求,设计,编码,验证,质量保证,配置管理,合格审定},C表示任务预计的工时,EST表示任务最早开始时间,LST表示任务最晚开始时间,EFF表示任务对于人员角色组的任务效率。(B)DO-178B/C人员模型。使用三元组Mk=(Ik,Rk,EffTk)来描述参与项目的人员Mk∈M。其中M是所有参与项目的人员的集合,Ik是Mk的成员属性的集合,包含成员名、成员ID、成员状态等本文档来自技高网
...

【技术保护点】
1.一种符合DO-178标准的机载软件开发流程调度方法,其特征在于包括以下步骤:/n步骤一、输入任务有向无环图的起始节点S,当前人员集合M,迭代次数I;/n步骤二、初始化最优调度队列集合Qmin,初始化Qmin的完成时间为有限位整数最大值,判断当前迭代次数是否小于迭代次数I,如果当前迭代次数小于迭代次数I,则执行步骤三;如果当前迭代次数大于等于迭代次数I,输出Qmin,结束;/n步骤三、依据起始节点S,初始化可分配的任务集合P、空任务队列集合Q、初始化映射集合Map<P,M>,并将所有任务节点放入链表U;/n步骤四、为人员集合M中每一位人员建立一个空任务队列,并加入到集合Q中;遍历链表U,将所有前置条件为空的任务加入到集合P中;/n步骤五、遍历链表U,将所有前置条件为空的任务加入到集合P中;/n步骤六、当P不为空集时,执行以下分步骤直到P为空:/n清空映射集合Map<P,M>,/n对于当前可分配集合P中每一个任务T:/n计算当前人员集合M中每一个人员完成该任务的时间,根据完成任务时间,按照公式

【技术特征摘要】
1.一种符合DO-178标准的机载软件开发流程调度方法,其特征在于包括以下步骤:
步骤一、输入任务有向无环图的起始节点S,当前人员集合M,迭代次数I;
步骤二、初始化最优调度队列集合Qmin,初始化Qmin的完成时间为有限位整数最大值,判断当前迭代次数是否小于迭代次数I,如果当前迭代次数小于迭代次数I,则执行步骤三;如果当前迭代次数大于等于迭代次数I,输出Qmin,结束;
步骤三、依据起始节点S,初始化可分配的任务集合P、空任务队列集合Q、初始化映射集合Map<P,M>,并将所有任务节点放入链表U;
步骤四、为人员集合M中每一位人员建立一个空任务队列,并加入到集合Q中;遍历链表U,将所有前置条件为空的任务加入到集合P中;
步骤五、遍历链表U,将所有前置条件为空的任务加入到集合P中;
步骤六、当P不为空集时,执行以下分步骤直到P为空:
清空映射集合Map<P,M>,
对于当...

【专利技术属性】
技术研发人员:朱怡安欧阳湘臻崔敏
申请(专利权)人:西北工业大学
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1