CN109901820A - 一种符合do-178b/c的机载软件敏捷开发过程的优化方法 - Google Patents
一种符合do-178b/c的机载软件敏捷开发过程的优化方法 Download PDFInfo
- Publication number
- CN109901820A CN109901820A CN201910042119.8A CN201910042119A CN109901820A CN 109901820 A CN109901820 A CN 109901820A CN 201910042119 A CN201910042119 A CN 201910042119A CN 109901820 A CN109901820 A CN 109901820A
- Authority
- CN
- China
- Prior art keywords
- task
- personnel
- efficiency
- formula
- schedule
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种符合DO‑178B/C的机载软件敏捷开发过程的优化方法,通过定义项目人员模型与任务模型,估算项目人员工作效率与任务规模,增加流程输入输出依赖的约束,使用基于Min‑Min算法改进的PMMS调度算法对人员指派与机载软件的开发过程进行静态生成和优化。本发明包含人员、任务、调度器三大模块,首先应用PMMS调度算法生成初始符合DO‑178B/C要求的机载软件开发流程,在开发过程中不断进行OODA循环和调度算法优化,动态调整人员、任务的参数,动态生成更好的机载软件开发过程。
Description
技术领域
本发明涉及软件工程领域,尤其是涉及一种机载软件敏捷开发过程优化方法。
背景技术
RTCA DO-178B/C,即“机载系统和设备认证的软件考虑”,是应用于机载系统安全关键软件的安全指导,是为机载软件的符合性证明和审查活动提供指导的一套标准,其目的是指导航空机载软件开发,确保机载系统中的软件可靠地运行。DO-178B/C标准是以目标为导向,涵盖整个软件研制周期的机载软件研制过程规范,它以传统的瀑布模型定义了机载软件开发过程。随着DO-178B/C标准的发展和机载软件规模的不断扩大,DO-178B/C定义的瀑布式开发模式暴露出变更困难、容易引入错误以及无法及时响应需求变更的缺点。
文献“Escape the waterfall:Agile for aerospace[C].IEEE/AIAA digitalavionics systems conference,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):任务粒度优化与任务效率预测;依据观察阶段输出的计算结果进行调整,调整分为两部分,基于工作窃取的任务粒度优化器和基于统计学习模型的任务、人员效率的回归器;
基于工作窃取的任务粒度优化器判断当前所有人员目前进行的任务,若当前存在没有分配任何任务人员,且该人员可以完成其他人员正在进行的任务,则将其他人员正在进行任务的剩余部分按照闲置人员个数拆分,拆分的比例由人员效率决定;
基于统计学习模型的任务,通过统计过去所有记录的任务效率与人员效率的计算值训练统计学习模型,从而预测任务的效率与人员的工作效率;
步骤四、决策阶段(Decide):生成新的调度序列;
针对步骤一建立的任务模型、人员模型和调度模型,每次调度将所有任务分配给完成对应任务时间最少的处理机,得到每个任务到处理机的映射对<task,machine>,再从该映射对集合中,获得最小完成时间的一个映射<taskmin,machinemin>,最后将该映射对中的taskmin分配给machinemin;以.csv文件形式读取调整阶段输出的经过调整的人员效率、任务效率以及任务DAG图,在Java中构造尚未指派的任务DAG图对象和人员表、人员、任务效率表,生成一个调度序列;当生成调度序列后,输出为.csv文件,Redmine读取该.csv文件,对当前没有任务指派的人员,按照调度序列的安排进行相应的指派;
步骤五、行动阶段(Act):按照计划完成任务;
行动阶段接受步骤四中决策阶段给出的调度序列,按照调度序列对每位人员的任务进行指派,每位人员的任务不可剥夺,即人员当前正在完成的任务不能被其他任务抢占的方式来执行任务,固定时间在Redmine上登记工时与完成度。
本发明的有益效果在于由于采用了一种符合DO-178B/C的基于OODA循环与PMMS调度算法的机载软件敏捷开发过程优化方法,本发明包含人员、任务、调度器三大模块,首先应用PMMS调度算法生成初始符合DO-178B/C要求的机载软件开发流程,在开发过程中不断进行OODA循环和调度算法优化,动态调整人员、任务的参数,动态生成更好的机载软件开发过程。
附图说明
图1是本发明基于PMMS调度算法的机载软件开发过程生成示意图。
图2是本发明基于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):任务粒度优化与任务效率预测;依据观察阶段输出的计算结果进行调整,调整分为两部分,基于工作窃取的任务粒度优化器和基于统计学习模型的任务、人员效率的回归器;
基于工作窃取的任务粒度优化器判断当前所有人员目前进行的任务,若当前存在没有分配任何任务人员,且该人员可以完成其他人员正在进行的任务,则将其他人员正在进行任务的剩余部分按照闲置人员个数拆分,拆分的比例由人员效率决定;
基于统计学习模型的任务,通过统计过去所有记录的任务效率与人员效率的计算值训练统计学习模型,从而预测任务的效率与人员的工作效率,获得稳定、准确的预测效率;
步骤四、决策阶段(Decide):生成新的调度序列;
针对步骤一建立的任务模型、人员模型和调度模型,对Min-Min调度算法做了相关适应性的改动并应用于人员与任务的调度,实现了一种适用于人员调度的PMMS调度算法,即每次调度将所有任务分配给完成对应任务时间最少的处理机,得到每个任务到处理机的映射对<task,machine>,再从该映射对集合中,获得最小完成时间的一个映射<taskmin,machinemin>,最后将该映射对中的taskmin分配给machinemin;以.csv文件形式读取调整阶段输出的经过调整的人员效率、任务效率以及任务DAG图,在Java中构造尚未指派的任务DAG图对象和人员表、人员、任务效率表,生成一个调度序列;当生成调度序列后,输出为.csv文件,Redmine读取该.csv文件,对当前没有任务指派的人员,按照调度序列的安排进行相应的指派;
步骤五、行动阶段(Act):按照计划完成任务;
行动阶段接受步骤四中决策阶段给出的调度序列,按照调度序列对每位人员的任务进行指派,每位人员的任务不可剥夺,即人员当前正在完成的任务不能被其他任务抢占的方式来执行任务,固定时间在Redmine上登记工时与完成度。
参照图1-图2。本发明使用基于Ruby On rails框架的Redmine作为观察阶段,Java编写的工作窃取优化器与Python编写的TensorFlow非线性回归器作为调整阶段,Java编写的PMMS静态调度算法作为决策阶段。其中Java、Python、Ruby的实现均为可跨平台性的高级编程语言,且Java满足编写调度算法需要的性能以及数据结构如HashMap等,Python的TensorFlow包支持GPU加速,满足统计学习回归的性能需求。
本发明基于OODA循环与PMMS调度算法的机载软件敏捷开发过程的优化方法的实施例如下:
步骤一,观察阶段(Observe):统计当前各任务完成度与人员工作效率。项目开发人员每隔一段时间在Redmine上登记工时和完成进度增量。经过计算得到一个人员Mi∈M的登记工时Si和完成一个任务Nj∈N的完成进度增量ΔLij。Redmine记录所有时间的ΔLij构成集合ΔL,Si构成集合S。
某类人员执行某类任务的平均效率。为某类人员执行某类任务的实际贡献工时CmΔLlm与登记工时之和比值,其计算方法如公式(1)所示。
式中,AvgEff(rType,tType)为时刻t下某类人员执行某类任务的平均效率,参数rType为人员角色类型,参数tType为任务类型,Sl代表时刻t人员类型为rType的的人员Ml的登记工时,ΔLlm代表该登记工时关联的任务的完成进度增量。
Mi∈M的人员完成任务类型m的当前计算效率。对于Mi∈M的人员,任务类型m的效率EffTim是该人员最近一次做m类任务中一个任务Nj的效率与完成m类任务的平均效率的比值,计算方法如公式(2)所示。
对于给定的任务集合N,在当前时刻t,某一任务节点Ni∈N,对人员类型为r的人员的任务效率Effir是取t时刻前该任务所有的登记工时之和与完成进度增量之和与计算比值,计算方法如公式(3)、公式(4)所示:
Effir∈Effi (4)
指定任务Ni∈N分给指定人员Mj∈M的预计完成时间EFT,计算方法如公式(5)所示。
式中,Li是任务的已完成度,Ci是任务预计工时时间。
其中r=Rj即人员Mj∈M的角色类型,即任务Ni∈N的任务类型。
任务效率与人员效率计算结果以增量形式保存并输出到.csv文件中,同时更新保存项目任务DAG图的顶点与边的.csv文件。
步骤二、调整阶段(Orient):任务粒度优化与任务效率预测。依据观察阶段输出的计算结果进行调整。调整分为两部分,基于工作窃取的任务粒度优化器和基于统计学习模型的任务、人员效率的回归器。
基于工作窃取的任务粒度优化器从Redmine保存的.csv文件中读出所需信息,并以此判断是否对当前任务进行拆分。若当前存在没有分配任何任务人员,且该人员可以完成其他人员正在进行的任务,则将其他人员正在进行的任务的剩余部分拆分为闲置人员个数,拆分的比例由人员效率决定。任务调整的结果通过.csv文件输出,然后由Redmine读取该文件,并调整当前任务,拆分出新任务意味着Redmine需要基于原有的任务信息创建新任务,并删除旧任务。
基于统计学习模型的任务、人员效率的回归器,通过统计过去所有记录的任务效率与人员效率的计算值训练统计学习模型,从而预测未来一段时间任务的效率与人员的工作效率,获得稳定、准确的预测效率。任务效率与人员效率的预测使用谷歌Tensorflow机器学习框架实现了一个单因素神经网络非线性回归器,其流式计算模型使用Tensorflow框架提供的Tensorboard显示。
该TensorFlow非线性回归模型由1个节点的输入层,16个节点的隐藏层,与1个节点的输出层构成,输入层到隐藏层的以及隐藏层到输出层的参数分别为(weight,biases)与(weight_1,biases_1),其中weight为前一个层入度到后一个层出度之间的正态分布随机数,biases为全0数组,激活函数为sigmoid函数,损失函数为MSE(Y-F(X))即离散点与拟合曲线均方误差,使用adams优化器最小化损失函数。并将每个任务的Eff与每位人员的EffT以.csv的形式输出,交给下一阶段调度器读取。
步骤三、决策阶段(Decide):生成新的调度序列。基于PMMS算法调度算法以.csv文件形式读取调整阶段输出的经过调整的人员效率、任务效率以及任务DAG图,在Java中构造尚未指派的任务DAG图对象和人员表、人员、任务效率表,启用新一轮的调度,生成一个调度序列。当生成新的调度任务序列后,输出为.csv文件,Redmine读取.csv文件,对当前没有任务指派的人员,按照调度序列的安排进行相应的指派。
步骤四、行动阶段(Act):按照计划完成任务。行动阶段接受决策阶段给出的较优任务序列,按照任务序列,每位人员以任务不可剥夺,即当前正在完成的任务不能被其他任务抢占的方式来执行任务,固定时间在Redmine上登记工时与完成度。
Claims (1)
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类任务的实际贡献工时与登记工时之和比值,计算方法如公式(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):任务粒度优化与任务效率预测;依据观察阶段输出的计算结果进行调整,调整分为两部分,基于工作窃取的任务粒度优化器和基于统计学习模型的任务、人员效率的回归器;
基于工作窃取的任务粒度优化器判断当前所有人员目前进行的任务,若当前存在没有分配任何任务人员,且该人员可以完成其他人员正在进行的任务,则将其他人员正在进行任务的剩余部分按照闲置人员个数拆分,拆分的比例由人员效率决定;
基于统计学习模型的任务,通过统计过去所有记录的任务效率与人员效率的计算值训练统计学习模型,从而预测任务的效率与人员的工作效率;
步骤四、决策阶段(Decide):生成新的调度序列;
针对步骤一建立的任务模型、人员模型和调度模型,每次调度将所有任务分配给完成对应任务时间最少的处理机,得到每个任务到处理机的映射对<task,machine>,再从该映射对集合中,获得最小完成时间的一个映射<taskmin,machinemin>,最后将该映射对中的taskmin分配给machinemin;以.csv文件形式读取调整阶段输出的经过调整的人员效率、任务效率以及任务DAG图,在Java中构造尚未指派的任务DAG图对象和人员表、人员、任务效率表,生成一个调度序列;当生成调度序列后,输出为.csv文件,Redmine读取该.csv文件,对当前没有任务指派的人员,按照调度序列的安排进行相应的指派;
步骤五、行动阶段(Act):按照计划完成任务;
行动阶段接受步骤四中决策阶段给出的调度序列,按照调度序列对每位人员的任务进行指派,每位人员的任务不可剥夺,即人员当前正在完成的任务不能被其他任务抢占的方式来执行任务,固定时间在Redmine上登记工时与完成度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910042119.8A CN109901820B (zh) | 2019-01-17 | 2019-01-17 | 一种符合do-178b/c的机载软件敏捷开发过程的优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910042119.8A CN109901820B (zh) | 2019-01-17 | 2019-01-17 | 一种符合do-178b/c的机载软件敏捷开发过程的优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109901820A true CN109901820A (zh) | 2019-06-18 |
CN109901820B CN109901820B (zh) | 2022-03-04 |
Family
ID=66943870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910042119.8A Active CN109901820B (zh) | 2019-01-17 | 2019-01-17 | 一种符合do-178b/c的机载软件敏捷开发过程的优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109901820B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111813453A (zh) * | 2020-04-30 | 2020-10-23 | 中科院计算所西部高等技术研究院 | 具有ooda多处理器的计算板卡 |
CN111858073A (zh) * | 2020-04-30 | 2020-10-30 | 中科院计算所西部高等技术研究院 | 具有ooda多分区可替换机制的处理器 |
CN113469639A (zh) * | 2021-05-31 | 2021-10-01 | 国电南京自动化股份有限公司 | 一种兼容传统管理模型和敏捷模型的混合项目管理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620535A (zh) * | 2009-07-29 | 2010-01-06 | 北京航空航天大学 | 一种机载计算机软件通用框架设计方法 |
US20140137085A1 (en) * | 2012-11-14 | 2014-05-15 | Thales | Electronic system, onboard modular execution platform and method ensuring partitioning of configurable decision-making rules |
CN104978275A (zh) * | 2015-07-16 | 2015-10-14 | 北京航空航天大学 | 一种面向do-178c软件测试过程的目标验证及证据模型提取方法 |
-
2019
- 2019-01-17 CN CN201910042119.8A patent/CN109901820B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620535A (zh) * | 2009-07-29 | 2010-01-06 | 北京航空航天大学 | 一种机载计算机软件通用框架设计方法 |
US20140137085A1 (en) * | 2012-11-14 | 2014-05-15 | Thales | Electronic system, onboard modular execution platform and method ensuring partitioning of configurable decision-making rules |
CN104978275A (zh) * | 2015-07-16 | 2015-10-14 | 北京航空航天大学 | 一种面向do-178c软件测试过程的目标验证及证据模型提取方法 |
Non-Patent Citations (3)
Title |
---|
STEVEN H. VANDERLEEST: "《ESCAPE THE WATERFALL: AGILE FOR AEROSPACE 》", 《 2009 IEEE/AIAA 28TH DIGITAL AVIONICS SYSTEMS CONFERENCE》 * |
张鑫: "《敏捷开发在某型飞机机载软件研制中的应用》", 《航空科学技术》 * |
陈鑫: "《满足DO-178B要求的软件需求开发方法》", 《计算机工程与设计》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111813453A (zh) * | 2020-04-30 | 2020-10-23 | 中科院计算所西部高等技术研究院 | 具有ooda多处理器的计算板卡 |
CN111858073A (zh) * | 2020-04-30 | 2020-10-30 | 中科院计算所西部高等技术研究院 | 具有ooda多分区可替换机制的处理器 |
CN113469639A (zh) * | 2021-05-31 | 2021-10-01 | 国电南京自动化股份有限公司 | 一种兼容传统管理模型和敏捷模型的混合项目管理方法 |
CN113469639B (zh) * | 2021-05-31 | 2024-01-23 | 国电南京自动化股份有限公司 | 一种兼容传统管理模型和敏捷模型的混合项目管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109901820B (zh) | 2022-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chirkin et al. | Execution time estimation for workflow scheduling | |
US20220027744A1 (en) | Resource data modeling, forecasting and simulation | |
CN109901820A (zh) | 一种符合do-178b/c的机载软件敏捷开发过程的优化方法 | |
Nissen et al. | Agent-based modeling of knowledge dynamics | |
Tuli et al. | GOSH: Task scheduling using deep surrogate models in fog computing environments | |
Abdel-Hamid | A multiproject perspective of single-project dynamics | |
CN111563703B (zh) | 项目管理系统、方法、计算机设备和计算机可读存储介质 | |
CN111950929A (zh) | 一种项目型任务的工作量均衡分配方法和设备 | |
Nawrocki et al. | Data-driven adaptive prediction of cloud resource usage | |
Gladka et al. | Qualification and appointment of staff for project work in implementing IT systems under conditions of uncertainty | |
Franke et al. | Ontime–network-wide analysis of timetable stability | |
Tan et al. | Role-oriented process-driven enterprise cooperative work using the combined rule scheduling strategies | |
Bosenko et al. | Development of an automated system to improve the efficiency of the oil pipeline construction management | |
CN114611401A (zh) | 多层级复杂业务智能仿真方法与系统 | |
Rohovyi et al. | Roject team management model under risk conditions | |
Vanhoucke et al. | The pert/cpm technique | |
Adigun et al. | An Excutable Model for Student Registration System using Timed coloured Petrinets | |
Druzhinin et al. | Analysis of Project Implementation Methods and Models Throughout Risk Management | |
Halim et al. | Integrating Time Study and Discrete Event Simulation to Evaluate Manpower Planning | |
Kaczmarek et al. | Decision support by model based analysis of supply chains | |
Mehrez et al. | The meta-model of OR/MS | |
Zahra et al. | A Review of Comparison among Software Estimation Techniques | |
Guo et al. | Real-time Estimation Approach to Scrum Projects Effort: Task Point and Individual Reliability (S). | |
Teslia et al. | Development of a Reflective Intelligent Project Planning System. | |
Rebrin et al. | Architectural modeling of a software product for evaluation of labor inputs using practices of system engineering |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |