一种符合DO-178B/C的机载软件敏捷开发过程的优化方法技术

技术编号:21398412 阅读:20 留言:0更新日期:2019-06-19 06:51
本发明专利技术提供了一种符合DO‑178B/C的机载软件敏捷开发过程的优化方法,通过定义项目人员模型与任务模型,估算项目人员工作效率与任务规模,增加流程输入输出依赖的约束,使用基于Min‑Min算法改进的PMMS调度算法对人员指派与机载软件的开发过程进行静态生成和优化。本发明专利技术包含人员、任务、调度器三大模块,首先应用PMMS调度算法生成初始符合DO‑178B/C要求的机载软件开发流程,在开发过程中不断进行OODA循环和调度算法优化,动态调整人员、任务的参数,动态生成更好的机载软件开发过程。

【技术实现步骤摘要】
一种符合DO-178B/C的机载软件敏捷开发过程的优化方法
本专利技术涉及软件工程领域,尤其是涉及一种机载软件敏捷开发过程优化方法。
技术介绍
RTCADO-178B/C,即“机载系统和设备认证的软件考虑”,是应用于机载系统安全关键软件的安全指导,是为机载软件的符合性证明和审查活动提供指导的一套标准,其目的是指导航空机载软件开发,确保机载系统中的软件可靠地运行。DO-178B/C标准是以目标为导向,涵盖整个软件研制周期的机载软件研制过程规范,它以传统的瀑布模型定义了机载软件开发过程。随着DO-178B/C标准的发展和机载软件规模的不断扩大,DO-178B/C定义的瀑布式开发模式暴露出变更困难、容易引入错误以及无法及时响应需求变更的缺点。文献“Escapethewaterfall:Agileforaerospace[C].IEEE/AIAAdigitalavionicssystemsconference,2009”公开了一种将敏捷开发应用到符合DO-178B/C的机载软件开发过程中的方法。文献总结了航空航天领域软件开发应用的关键技术,将敏捷实践映射到符合DO-178B/C约束的软件开发过程,并对关键实践进行了详细分析,将结对编程、重构等敏捷方法成功的应用到传统的DO-178B/C软件开发过程中。文献虽然实现了将敏捷开发应用到DO-178B/C软件开发中,但也带来了迭代式的频繁变更。瀑布开发模型下机载软件开发过程人为规划变更次数较少,对管理人员而言尚可接受,但在频繁变更的敏捷开发模型下就暴露出严重缺乏通用性、灵活性与效率低下的缺点。
技术实现思路
为了克服现有技术的不足,针对DO-178B/C标准约束的机载软件敏捷开发流程中,机载软件开发过程须由管理人员规划,严重缺乏通用性、灵活性与效率低下的缺点,本专利技术提供一种基于OODA循环与基于Min-Min算法改进的PMMS调度算法的机载软件敏捷开发过程优化方法。本专利技术采用通过定义项目人员模型与任务模型,估算项目人员工作效率与任务规模,增加流程输入输出依赖的约束,使用基于Min-Min算法改进的PMMS调度算法对人员指派与机载软件的开发过程进行静态生成和优化。该方法应用OODA循环,允许人员的变动和计划的频繁改动,依据当前软件开发进度,反馈人员的预估工作效率,动态地预测与优化软件开发过程,提高机载软件开发效率。本专利技术解决其技术问题所采用的技术方案包括以下步骤:步骤一,建立模型(A)DO-178B/C任务任务模型使用有向无环图DAG表示DO-178B/C标准定义的机载软件开发过程中有前置约束关系的所有任务集合;任务流程由任务节点构成的有向无环图A=(N,E),A的顶点集N为任务节点的集合,代表一个满足DO-178B/C标准的机载软件开发流程中的所有任务,边集E代表任务间的前置约束关系,若边集E中含有边eij,则任务节点Nj依赖于任务节点Ni;任务节点Ni用六元组Ni=(Ti,Tpi,Ci,ESTi,LSTi,EFTi)表示,其中T表示任务属性的集合,T包括任务名、任务ID、任务所属的阶段等,Tp是任务类型,Tpi∈{项目计划、需求、设计、编码、验证、质量保证、配置管理、合格审定},C表示任务预计的工时,EST表示任务最早开始时间,LST表示任务最晚开始时间,EFF表示任务对于人员角色组的任务效率;(B)DO-178B/C人员模型使用三元组Mk=(Ik,Rk,EffTk)描述参与项目的人员Mk∈M,其中M是所有参与项目的人员的集合,Ik是Mk的成员属性的集合,包含成员名、成员ID、成员状态等;Rk是Mk的DO-178B/C角色,其中Rk属于集合{项目管理人员,软件需求人员,软件设计人员,软件编码人员,软件验证人员,质量保证人员,配置管理人员,适航联络人员},Effk是Mk对任务类型的效率表,Effkl表示成员Mk做l类任务的效率;(C)调度模型将任务队列节点用Pi表示,Pi定义如公式(1)、公式(2)所示:Pi=(Nk,Ml,STi,EDi),Nk∈N,Ml∈M(1)Pi∈Ql(2)其中Nk为任务节点,Ml为任务分配给人员,STi,EDi分别为任务的开始时间和结束时间,一个人员的任务队列节点的集合构成一个任务队列,所有成员的任务队列构成任务队列集合Q,Q实质上扩展自sched:N→M,即所有任务节点集合到人员集合的一个映射,Nk与Ml满足sched(Nk)=Ml;调度问题的目标函数G的形式化描述如公式(3)所示,即求任务队列中最晚完成的队列的结束时间:对于任务DAG图G=(N,E),人员集合M存在一个调度schedmin:N→M在满足约束条件的情况下产生一个任务队列Q,使得G最小,如公式(4)所示:即求出一个调度序列使得所有任务完成时间最小即可;步骤二:观察阶段(Observe):统计当前各任务完成度与人员工作效率,项目开发人员每隔项目组规定的固定时间段,在Redmine上登记工时和完成进度增量,经过计算得到一个人员Mi的登记工时Si和完成一个任务的Nj完成进度增量ΔLij,其中,Mi∈M,Nj∈N,Redmine记录所有时间的人员i完成任务j的完成进度与任务j之前的进度的差值ΔLij,构成集合ΔL,Si构成集合S;角色类型为rType的人员执行任务类型为tType类任务的平均效率,为rType类人员执行tType类任务的实际贡献工时与登记工时之和比值,计算方法如公式(5)所示:式中,AvgEff(rType,tType)为时刻t下某类人员执行某类任务的平均效率,参数rType为人员角色类型,参数tType为任务类型,Sl代表时刻t人员类型为rType的人员Ml的登记工时,ΔLlm代表该登记工时关联的任务的完成进度增量;人员Mi完成任务类型m的当前计算效率,对于Mi∈M的人员,任务类型m的效率EffTim为该人员最近一次做m类任务中一个任务Nj的效率与完成m类任务的平均效率的比值,计算方法如公式(6)所示:对于给定的任务集合N,在当前时刻t,某一任务节点Ni∈N,对人员类型为r的人员的任务效率Effir是取t时刻前该任务所有的登记工时之和与完成进度增量之和与计算比值,计算方法如公式(7)、公式(8)所示:Effir∈Effi(8)指定任务Ni∈N分给指定人员Mj∈M的预计完成时间EFT,计算方法如公式(9)所示:式中,Li是任务的已完成度,Ci是任务预计工时时间;其中r=Rj即人员Mj∈M的角色类型,即任务Ni∈N的任务类型;任务效率与人员效率计算结果以增量形式保存并输出到.csv文件中,同时更新保存项目任务DAG图的顶点与边的.csv文件;步骤三、调整阶段(Orient):任务粒度优化与任务效率预测;依据观察阶段输出的计算结果进行调整,调整分为两部分,基于工作窃取的任务粒度优化器和基于统计学习模型的任务、人员效率的回归器;基于工作窃取的任务粒度优化器判断当前所有人员目前进行的任务,若当前存在没有分配任何任务人员,且该人员可以完成其他人员正在进行的任务,则将其他人员正在进行任务的剩余部分按照闲置人员个数拆分,拆分的比例由人员效率决定;基于统计学习模型的任务,通过统计过去所有记录的任务效率与人员效率的计算值训练统计学习模型,从而预测任务的效率与人员的工作效率;步骤本文档来自技高网...

【技术保护点】
1.一种符合DO‑178B/C的机载软件敏捷开发过程的优化方法,其特征在于包括下述步骤:步骤一,建立模型(A)DO‑178B/C任务任务模型使用有向无环图DAG表示DO‑178B/C标准定义的机载软件开发过程中有前置约束关系的所有任务集合;任务流程由任务节点构成的有向无环图A=(N,E),A的顶点集N为任务节点的集合,代表一个满足DO‑178B/C标准的机载软件开发流程中的所有任务,边集E代表任务间的前置约束关系,若边集E中含有边eij,则任务节点Nj依赖于任务节点Ni;任务节点Ni用六元组Ni=(Ti,Tpi,Ci,ESTi,LSTi,EFTi)表示,其中T表示任务属性的集合,T包括任务名、任务ID、任务所属的阶段等,Tp是任务类型,Tpi∈{项目计划、需求、设计、编码、验证、质量保证、配置管理、合格审定},C表示任务预计的工时,EST表示任务最早开始时间,LST表示任务最晚开始时间,EFF表示任务对于人员角色组的任务效率;(B)DO‑178B/C人员模型使用三元组Mk=(Ik,Rk,EffTk)描述参与项目的人员Mk∈M,其中M是所有参与项目的人员的集合,Ik是Mk的成员属性的集合,包含成员名、成员ID、成员状态等;Rk是Mk的DO‑178B/C角色,其中Rk属于集合{项目管理人员,软件需求人员,软件设计人员,软件编码人员,软件验证人员,质量保证人员,配置管理人员,适航联络人员},Effk是Mk对任务类型的效率表,Effkl表示成员Mk做l类任务的效率;(C)调度模型将任务队列节点用Pi表示,Pi定义如公式(1)、公式(2)所示:Pi=(Nk,Ml,STi,EDi),Nk∈N,Ml∈M  (1)Pi∈Ql  (2)其中Nk为任务节点,Ml为任务分配给人员,STi,EDi分别为任务的开始时间和结束时间,一个人员的任务队列节点的集合构成一个任务队列,所有成员的任务队列构成任务队列集合Q,Q实质上扩展自sched:N→M,即所有任务节点集合到人员集合的一个映射,Nk与Ml满足sched(Nk)=Ml;调度问题的目标函数G的形式化描述如公式(3)所示,即求任务队列中最晚完成的队列的结束时间:...

【技术特征摘要】
1.一种符合DO-178B/C的机载软件敏捷开发过程的优化方法,其特征在于包括下述步骤:步骤一,建立模型(A)DO-178B/C任务任务模型使用有向无环图DAG表示DO-178B/C标准定义的机载软件开发过程中有前置约束关系的所有任务集合;任务流程由任务节点构成的有向无环图A=(N,E),A的顶点集N为任务节点的集合,代表一个满足DO-178B/C标准的机载软件开发流程中的所有任务,边集E代表任务间的前置约束关系,若边集E中含有边eij,则任务节点Nj依赖于任务节点Ni;任务节点Ni用六元组Ni=(Ti,Tpi,Ci,ESTi,LSTi,EFTi)表示,其中T表示任务属性的集合,T包括任务名、任务ID、任务所属的阶段等,Tp是任务类型,Tpi∈{项目计划、需求、设计、编码、验证、质量保证、配置管理、合格审定},C表示任务预计的工时,EST表示任务最早开始时间,LST表示任务最晚开始时间,EFF表示任务对于人员角色组的任务效率;(B)DO-178B/C人员模型使用三元组Mk=(Ik,Rk,EffTk)描述参与项目的人员Mk∈M,其中M是所有参与项目的人员的集合,Ik是Mk的成员属性的集合,包含成员名、成员ID、成员状态等;Rk是Mk的DO-178B/C角色,其中Rk属于集合{项目管理人员,软件需求人员,软件设计人员,软件编码人员,软件验证人员,质量保证人员,配置管理人员,适航联络人员},Effk是Mk对任务类型的效率表,Effkl表示成员Mk做l类任务的效率;(C)调度模型将任务队列节点用Pi表示,Pi定义如公式(1)、公式(2)所示:Pi=(Nk,Ml,STi,EDi),Nk∈N,Ml∈M(1)Pi∈Ql(2)其中Nk为任务节点,Ml为任务分配给人员,STi,EDi分别为任务的开始时间和结束时间,一个人员的任务队列节点的集合构成一个任务队列,所有成员的任务队列构成任务队列集合Q,Q实质上扩展自sched:N→M,即所有任务节点集合到人员集合的一个映射,Nk与Ml满足sched(Nk)=Ml;调度问题的目标函数G的形式化描述如公式(3)所示,即求任务队列中最晚完成的队列的结束时间:对于任务DAG图G=(N,E),人员集合M存在一个调度schedmin:N→M在满足约束条件的情况下产生一个任务队列Q,使得G最小,如公式(4)所示:即求出一个调度序列使得所有任务完成时间最小即可;步骤二:观察阶段(Observe):统计当前各任务完成度与人员工作效率,项目开发人员每隔项目组规定的固定时间段,在Redmine上登记工时和完成进度增量,经过计算得到一个人员Mi的登记工时Si和完成一个任务的Nj完成进度增量ΔLij,其中,Mi∈M,Nj∈N,Redmine记录所有时间的人员i完成任务j的完成进度与任务j之前的进度的差值ΔLij,构成集合ΔL,Si构成集合S;角色类型为rType的人员执行任务类型为tType类任务的平均效率,为rType类人员执行tType类任务的实际贡...

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

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

1