发明内容
基于此,有必要针对上述技术问题,提供一种能够提升软件需求抽取的准确性、提升无人机飞行控制系统软件的质量的软件需求抽取方法、装置、计算机设备和可读存储介质。
第一方面,本申请实施例提供了一种软件需求抽取方法,软件需求抽取方法包括:
确定待开发的无人机飞行控制系统软件对应的功能需求信息;
根据所述功能需求信息,获取与所述功能需求信息对应的非功能需求信息;所述非功能需求信息包括历史缺陷先验数据;
基于所述历史缺陷先验数据构建应用需求模型;所述应用需求模型用于所述待开发的无人机飞行控制系统软件的需求抽取;所述应用需求模型包括功能逻辑用例,所述功能逻辑用例用于表示所述功能需求信息对应功能的实现逻辑。
在其中一个实施例中,所述基于所述历史缺陷先验数据构建应用需求模型,包括:
基于知识辅助设计系统KADS,采用本体工具构建无人机飞行控制系统需求知识本体;所述无人机飞行控制系统需求知识本体包括无人机飞行控制系统泛化本体、任务本体、领域本体和应用本体;所述无人机飞行控制系统泛化本体、所述任务本体、所述领域本体和所述应用本体均包括对应的概念以及各概念之间的关联关系;
根据所述无人机飞行控制系统需求知识本体和所述历史缺陷先验数据构建所述应用需求模型。
在其中一个实施例中,所述基于知识辅助设计系统KADS,采用本体工具构建无人机飞行控制系统需求知识本体,包括:
基于所述KADS,采用所述本体工具,对无人机飞行控制系统的多个泛化概念以及各泛化概念之间的关联关系建立本体表示,得到所述无人机飞行控制系统泛化本体;
根据所述无人机飞行控制系统泛化本体,按照预设的概念映射关系,采用所述本体工具,对所述无人机飞行控制系统软件对应的需求抽取任务构建所述任务本体;所述任务本体用于表征执行所述需求抽取任务的执行过程;
根据所述任务本体对应的领域,采用所述本体工具,对所述领域的多个领域概念以及各领域概念之间的关联关系建立本体表示,得到所述领域本体;所述领域本体用于表征所述任务本体对应的所述领域的知识特征;
根据所述无人机飞行控制系统泛化本体、所述任务本体和所述领域本体,采用所述本体工具构建所述应用本体。
在其中一个实施例中,所述根据所述无人机飞行控制系统需求知识本体和所述历史缺陷先验数据构建所述应用需求模型,包括:
根据所述领域本体和所述任务本体构建领域需求模型;
根据所述领域需求模型、所述应用本体和所述历史缺陷先验数据,构建所述应用需求模型。
在其中一个实施例中,所述历史缺陷先验数据包括至少一组软件需求历史缺陷数据,每组软件需求历史缺陷数据至少包括缺陷场景信息和缺陷解决方案信息;所述根据所述领域需求模型、所述应用本体和所述历史缺陷先验数据,构建所述应用需求模型,包括:
根据所述至少一组软件需求历史缺陷数据包括的缺陷场景信息和缺陷解决方案信息,生成至少一个横切用例;所述横切用例包括用于表示所述非功能需求信息对应的非功能需求的实现逻辑;所述非功能需求包括所述无人机飞行控制系统软件对应的安全性需求;
根据所述领域需求模型、所述应用本体和所述横切用例,生成所述功能需求信息对应的所述功能逻辑用例,得到所述应用需求模型。
在其中一个实施例中,所述方法还包括:
获取多组软件需求历史缺陷数据;
根据所述多组软件需求历史缺陷数据,生成软件需求缺陷模式本体;
对应地,所述根据所述功能需求信息,获取与所述功能需求信息对应的非功能需求信息,包括:
根据所述功能需求信息的应用场景,确定所述应用场景对应的非功能需求信息,并从所述软件需求缺陷模式本体中获取与所述非功能需求信息对应的至少一组软件需求历史缺陷数据作为所述历史缺陷先验数据。
在其中一个实施例中,所述根据所述功能需求信息的应用场景,确定所述应用场景对应的非功能需求信息,并从所述软件需求缺陷模式本体中获取与所述非功能需求信息对应的至少一组软件需求历史缺陷数据作为所述历史缺陷先验数据,包括:
确定所述功能需求信息的应用场景;
确定与所述应用场景匹配的非功能需求信息,并从所述软件需求缺陷模式本体中获取与所述非功能需求信息对应的至少一组软件需求历史缺陷数据作为所述历史缺陷先验数据。
第二方面,本申请实施例提供一种软件需求抽取装置,装置包括:
确定模块,用于确定待开发的无人机飞行控制系统软件对应的功能需求信息;
第一获取模块,用于根据所述功能需求信息,获取与所述功能需求信息对应的非功能需求信息;所述非功能需求信息包括历史缺陷先验数据;
构建模块,用于基于所述历史缺陷先验数据构建应用需求模型;所述应用需求模型用于所述待开发的无人机飞行控制系统软件的需求抽取;所述应用需求模型包括功能逻辑用例,所述功能逻辑用例用于表示所述功能需求信息对应功能的实现逻辑。
第三方面,本申请实施例提供一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上述第一方面的方法的步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述第一方面的方法的步骤。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过确定待开发的无人机飞行控制系统软件对应的功能需求信息;根据所述功能需求信息,获取与所述功能需求信息对应的非功能需求信息;所述非功能需求信息包括历史缺陷先验数据;基于所述历史缺陷先验数据构建应用需求模型;所述应用需求模型用于所述待开发的无人机飞行控制系统软件的需求抽取;所述应用需求模型包括功能逻辑用例,所述功能逻辑用例用于表示所述功能需求信息对应功能的实现逻辑;由此,通过将历史缺陷先验数据融入至应用需求模型,增强了应用需求模型的先验信息,使得应用需求模型的知识更加完备;再基于该应用需求模型进行待开发的无人机飞行控制系统软件的需求抽取,可以在需求抽取过程中充分发挥历史缺陷先验数据的避错作用,对提升开发出的无人机飞行控制系统软件的质量和可靠性起到积极作用。本申请提升了软件需求抽取的准确性,从而提升了开发的无人机飞行控制系统软件的质量。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的软件需求抽取方法、装置、计算机设备和可读存储介质,旨在解决传统技术中,在软件开发过程中,由于待开发的无人机飞行控制系统软件的软件需求抽取的准确性较差,导致开发的无人机飞行控制系统软件的质量较差的技术问题。下面将通过实施例并结合附图具体地对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体地实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
需要说明的是,本申请实施例提供的软件需求抽取方法,其执行主体可以是软件需求抽取装置,该软件需求抽取装置可以通过软件、硬件或者软硬件结合的方式实现成为计算机设备的部分或者全部。下述方法实施例中,均以执行主体是计算机设备为例来进行说明,计算机设备可以是无人机飞行控制器。
请参考图1,其示出了本申请实施例提供的一种软件需求抽取方法的流程示意图。本实施例涉及的是基于历史缺陷先验数据构建应用需求模型,以用于待开发的无人机飞行控制系统软件的需求抽取的具体实现过程。如图1所示,本实施例软件需求抽取方法可以包括以下步骤:
步骤S100,确定待开发的无人机飞行控制系统软件对应的功能需求信息。
无人机飞行控制系统软件是无人机飞行控制系统的核心部分。无人机飞行控制系统用于实现对无人机从滑跑、起飞、空中飞行直至进场着陆的整个飞行过程的控制,具体地,可以通过无人机飞行控制系统中的无人机飞行控制器实现。无人机飞行控制系统软件可以部署在该无人机飞行控制器中。本实施例中,功能需求信息可以是需求方提出的开发出的无人机飞行控制系统软件所需实现的功能。
步骤S200,根据功能需求信息,获取与功能需求信息对应的非功能需求信息。
其中,非功能需求信息包括历史缺陷先验数据。
软件需求抽取作为需求工程的基础性工作,是获得高质量软件的关键一环,其关系到整个软件开发项目的成败。以无人机飞行控制系统软件的开发为例,由于无人机飞行控制系统软件高安全性要求的特点,若在软件需求抽取过程中获取的知识不完备,将会导致严重的安全问题。
本实施例中,计算机设备根据功能需求信息,获取与功能需求信息对应的非功能需求信息,非功能需求信息如无人机飞行控制系统软件对应的安全性需求,该非功能需求信息包括历史缺陷先验数据。作为一种实施方式,计算机设备中可以设置SREP(Softwarerequirements error pattern,软件需求缺陷模式)库,SREP库用于存储历史缺陷先验数据,历史缺陷先验数据可以是历史应用场景中采集的经验数据,或者在软件测试中得到的经验数据。
例如,历史应用场景为无人机在遥控状态下完成“预毁”动作,所采集到的先验数据为“预毁之前,确保飞行安全保护开关已被触发”,计算机设备则将该先验数据作为该历史应用场景下非功能需求信息包括的历史缺陷先验数据存储。本实施例中,若计算机设备确定待开发的无人机飞行控制系统软件对应的功能需求信息为实现无人机在遥控状态下完成“预毁”动作,计算机设备则获取与需求场景对应的非功能需求信息包括的历史缺陷先验数据“预毁之前,确保飞行安全保护开关已被触发”,需求场景即无人机在遥控状态下完成“预毁”动作的场景。
步骤S300,基于历史缺陷先验数据构建应用需求模型。
应用需求模型用于待开发的无人机飞行控制系统软件的需求抽取;应用需求模型包括功能逻辑用例,功能逻辑用例用于表示功能需求信息对应功能的实现逻辑。作为一种实施方式,应用需求模型还可以包括非功能逻辑用例。
计算机设备基于该历史缺陷先验数据构建应用需求模型,应用需求模型包括功能逻辑用例,功能逻辑用例用于表示功能需求信息对应功能的实现逻辑。
作为一种实施方式,继续上述举例,功能需求信息为无人机在遥控状态下完成“预毁”动作,历史缺陷先验数据为“预毁之前,确保飞行安全保护开关已被触发”,对应的包括历史缺陷先验数据的用例则为:
也即,将历史缺陷先验数据融合进功能需求信息对应的功能逻辑用例中。基于该应用需求模型进行待开发的无人机飞行控制系统软件的需求抽取,具体可以是将应用需求模型中的功能逻辑用例,生成自然语言的应用软件需求规格说明文档,供开发人员在软件开发时参考。本实施例通过将历史缺陷先验数据融合至应用需求模型中,提升了应用需求模型的知识完备性。可以理解的是,在其它实施例中,功能逻辑用例的表达形式并不局限于上述举例的方式,还可以存在其它的表达形式,在此不做具体限制。
本实施例通过确定待开发的无人机飞行控制系统软件对应的功能需求信息;根据功能需求信息,获取与功能需求信息对应的非功能需求信息,该非功能需求信息包括历史缺陷先验数据;基于历史缺陷先验数据构建应用需求模型;应用需求模型用于待开发的无人机飞行控制系统软件的需求抽取;应用需求模型包括功能逻辑用例,功能逻辑用例用于表示功能需求信息对应功能的实现逻辑;由此,通过将历史缺陷先验数据融入至应用需求模型,增强了应用需求模型的先验信息,使得应用需求模型的知识更加完备;再基于该应用需求模型进行待开发的无人机飞行控制系统软件的需求抽取,可以在需求抽取过程中充分发挥历史缺陷先验数据的避错作用,对提升开发出的无人机飞行控制系统软件的质量和可靠性起到积极作用。本实施例提升了软件需求抽取的准确性,从而提升了开发的无人机飞行控制系统软件的质量。
图2为一个实施例提供的软件需求抽取方法的流程示意图。在上述图1所示实施例的基础上,如图2所示,本实施例软件需求抽取方法中,步骤S300具体包括步骤S310和步骤S320,具体地:
步骤S310,基于知识辅助设计系统KADS,采用本体工具构建无人机飞行控制系统需求知识本体。
无人机飞行控制系统需求知识本体包括无人机飞行控制系统泛化本体、任务本体、领域本体和应用本体;无人机飞行控制系统泛化本体、任务本体、领域本体和应用本体均包括对应的概念以及各概念之间的关联关系。
本实施例中,作为一种实施方式,使用本体工具protégé建立需求知识多本体框架(Requirements Knowledge Multi-Ontology Framework,RKMOF),即无人机飞行控制系统需求知识本体,得到RKMOF的四元组表示:RKMOF=<UAV FCS GO,DO,TO,AO>。其中,UAV FCSGO(Unmanned Aerial Vehicle Flight Control System Generalized Ontology)为无人机飞行控制系统泛化本体、DO(Domain Ontology)为领域本体、TO(Task Ontology)为任务本体、AO(Application Ontology)为应用本体。
作为一种实施方式,计算机设备首先检测是否存在已被构建且可以复用的无人机飞行控制系统泛化本体,若无已被构建且可以复用的无人机飞行控制系统泛化本体,则首先建立无人机飞行控制系统泛化本体;若已有无人机飞行控制系统泛化本体,则复用已有的无人机飞行控制系统泛化本体。进一步地,计算机设备还可以对无人机飞行控制系统泛化本体进行剪裁和扩展,例如,去重、删减、新增等等。计算机设备建立无人机飞行控制系统泛化本体后,检测是否存在已被构建且可以复用的任务本体,若无已被构建且可以复用的任务本体,则建立任务本体;若已有任务本体,则复用已有的任务本体。建立任务本体后,检测是否存在已被构建且可以复用的领域本体,若无已被构建且可以复用的领域本体,则建立领域本体;若已有领域本体,则复用已有的领域本体。进一步地,建立领域本体后,检测是否存在已被构建且可以复用的任务本体,若无已被构建且可以复用的任务本体,则建立任务本体;若已有任务本体,则复用该已有的任务本体。进一步地,计算机设备还可以对任务本体、领域本体、任务本体进行剪裁和扩展,例如,去重、删减、新增等等。由此,通过检测是否存在可以复用的本体,对已有的本体进行复用,实现本体资源的共享。
需要说明的是,上述本体构建过程,计算机设备均可以采用本体工具protégé实现,可以对概念层次、概念的属性,以及规则和约束的定义,提供图形化用户界面,供用户对本体进行检查、浏览、编码与修改。具体地,计算机设备采用本体工具protégé软件对本体进行构建、推理和检索,可以基于OWL-DL(WebOntology Language-Description Logic,网络本体描述语言)对本体概念、关系、属性等进行表示和组织;本体构建过程中主要使用“类(Classes)”、“实例(Individuals)”、“对象属性(Object properties)”、“数据属性(Dataproperties)”这四个概念,将本体文件存储为.owl格式;通过protégé软件的推理机插件pellet、Hermit等,可以对本体文件进行推理,并提供用户界面供用户查询,等等。无人机飞行控制系统泛化本体包括无人机飞行控制系统的多个泛化概念以及各泛化概念之间的关联关系,任务本体包括无人机飞行控制系统的多个任务概念以及各任务概念之间的关联关系,领域本体包括多个领域概念以及各领域概念之间的关联关系,应用本体包括多个应用概念以及各应用概念之间的关联关系。
步骤S320,根据无人机飞行控制系统需求知识本体和历史缺陷先验数据构建应用需求模型。
本实施例中,计算机设备中可以设置SREP库。具体地,由测试人员和领域专家根据开发和测试经验,参考测试记录和问题报告单收集总结领域内的SREP类型后,计算机设备获取该在历史应用场景中采集的经验数据,或者在软件测试中得到的经验数据,形成存储历史缺陷先验数据的SREP库,并将历史缺陷先验数据表示为本体形式。计算机设备根据无人机飞行控制系统需求知识本体和历史缺陷先验数据构建应用需求模型,应用需求模型包括功能逻辑用例,功能逻辑用例用于表示功能需求信息对应功能的实现逻辑,也即,将历史缺陷先验数据融合进功能需求信息对应的功能逻辑用例中。基于该应用需求模型进行待开发的无人机飞行控制系统软件的需求抽取。
由此,本实施例中,以KADS作为无人机飞行控制系统需求知识本体的建模框架基础,避免了无人机飞行控制系统需求知识本体中各层(UAV FCS GO、DO、TO、AO)知识间缺乏强有力的纽带,领域本体包含的知识不够完备等缺点,使得构建的无人机飞行控制系统需求知识本体能够将相对独立的知识层集成在一起以形成一个知识系统,并在知识共享和重用中起到积极作用。
在上述图2所示实施例的基础上,参见图3,图3为另一个实施例提供的软件需求抽取方法中步骤S310的细化步骤示意图。如图3所示,本实施例软件需求抽取方法中,步骤S310具体包括步骤S311、步骤S312、步骤S313和步骤S314,具体地:
步骤S311,基于KADS,采用本体工具,对无人机飞行控制系统的多个泛化概念以及各泛化概念之间的关联关系建立本体表示,得到无人机飞行控制系统泛化本体。
本实施例中,计算机设备基于KADS,采用本体工具protégé首先建立无人机飞行控制系统需求知识本体中的无人机飞行控制系统泛化本体。具体地,计算机设备获取无人机飞行控制系统的多个泛化概念以及各泛化概念之间的关联关系,该多个泛化概念以及各泛化概念之间的关联关系可以是根据领域专家的理解和经验以及需求方的诸多需求确定的。接着,计算机设备采用本体工具protégé对泛化概念术语及属性、层次结构和关联关系进行描述,即对无人机飞行控制系统的多个泛化概念以及各泛化概念之间的关联关系进行规范化表示,得到无人机飞行控制系统泛化本体。作为一种实施方式,对于建立的无人机飞行控制系统泛化本体,可以提供图形化用户界面,供用户对无人机飞行控制系统泛化本体进行检查、浏览或修改。
步骤S312,根据无人机飞行控制系统泛化本体,按照预设的概念映射关系,采用本体工具,对无人机飞行控制系统软件对应的需求抽取任务构建任务本体。
其中,任务本体用于表征执行需求抽取任务的执行过程。
建立无人机飞行控制系统泛化本体后,计算机设备建立无人机飞行控制系统需求知识本体中的任务本体。本实施例中,具体地,需求抽取任务可以采用多个任务概念以及各任务概念之间的关联关系描述,刻画执行该需求抽取任务的问题解决过程,多个任务概念以及各任务概念之间的关联关系可以是按照需求方的需求项,由领域专家识别其中的任务概念和关联关系,并参考已有文档、行业标准和已有软件系统对任务概念和关联关系进行补充和优化后得到的。
然后,计算机设备获取该补充和优化后的无人机飞行控制系统的多个任务概念以及各任务概念之间的关联关系。进一步地,计算机设备根据无人机飞行控制系统泛化本体,按照预设的概念映射关系,将无人机飞行控制系统泛化本体作为顶层知识本体,根据PSM(Problem-Solving Methods,问题解决方法)要实现的目标及输入/输出,使用本体编辑protégé对多个任务概念以及各任务概念之间的关联关系进行描述,以实现任务目标所需推理步骤,得到任务本体。任务本体反映的是任务流程,例如,无人机爬高、盘旋、返降等各个动作可以是任务概念,而各个动作之间的前后关系则可以是各任务概念之间的关联关系。
步骤S313,根据任务本体对应的领域,采用本体工具,对领域的多个领域概念以及各领域概念之间的关联关系建立本体表示,得到领域本体。
其中,领域本体用于表征任务本体对应的领域的知识特征。
计算机设备根据任务本体对应的任务领域,采用本体工具protégé,对多个领域概念以及各领域概念之间的关联关系建立本体表示,得到领域本体。
具体地,计算机设备根据完成任务本体中的任务所需的领域知识构建领域本体,通过本体工具protégé,对获取的任务本体对应的领域中多个领域概念以及各领域概念之间的关联关系进行规范化描述,得到领域本体。任务本体对应的领域如无人机飞行控制领域。
步骤S314,根据无人机飞行控制系统泛化本体、任务本体和领域本体,采用本体工具构建应用本体。
计算机设备根据无人机飞行控制系统泛化本体、任务本体和领域本体,采用本体工具构建应用本体。具体地,计算机设备获取应用域相关概念及关联,按照概念的映射关系,通过本体工具protégé对应用概念术语及属性、层次结构和关联关系进行规范化描述,得到应用本体。
由此,通过将本体概念引入无人机飞行控制系统软件的需求抽取过程中,采用无人机飞行控制系统泛化本体、任务本体、领域本体和应用本体对相关概念及关联关系进行概念化的规范描述,增加了软件需求中知识的完备性,有利于提高开发的无人机飞行控制系统软件的质量。
图4为一个实施例提供的软件需求抽取方法的流程示意图。在上述图2所示实施例的基础上,如图4所示,本实施例软件需求抽取方法中,步骤S320包括步骤S321和步骤S322,具体地:
步骤S321,根据领域本体和任务本体构建领域需求模型。
步骤S322,根据领域需求模型、应用本体和历史缺陷先验数据,构建应用需求模型。
本实施例中,计算机设备根据领域本体和任务本体,具体是将领域本体和任务本体的内容进行结合,得到知识更加丰富的领域需求模型。
本实施例中,历史缺陷先验数据包括至少一组软件需求历史缺陷数据,每组软件需求历史缺陷数据至少包括缺陷场景信息和缺陷解决方案信息,作为一种实施方式,软件需求历史缺陷数据还可以包括缺陷表现信息,在此不做具体限制。
作为一种实施方式,参见图5,图5为本实施例中步骤S322的细化步骤示意图。如图5所示,本实施例步骤S322包括步骤S322a和步骤S322b:
步骤S322a,根据至少一组软件需求历史缺陷数据包括的缺陷场景信息和缺陷解决方案信息,生成至少一个横切用例。
横切用例包括用于表示非功能需求信息对应的非功能需求的实现逻辑;非功能需求包括无人机飞行控制系统软件对应的安全性需求。
本实施例中,将无人机飞行控制系统软件的软件需求对应的关注点划分为一般关注点和横切关注点,其中,一般关注点对应功能需求,横切关注点对应非功能需求中的安全性需求。
计算机设备获取待开发的无人机飞行控制系统软件对应的功能需求信息后,确定无人机飞行控制系统软件需求的各个一般关注点对应的横切关注点,即各功能需求对应的非功能需求中的安全性需求。
例如,功能需求信息包括无人机在遥控状态下完成“预毁”动作、无人机在遥控状态下完成“即毁”动作,即功能需求信息包括的功能需求1(无人机在遥控状态下完成“预毁”动作)的一般关注点为“预毁”、包括的功能需求2(无人机在遥控状态下完成“即毁”动作)的一般关注点为“即毁”。计算机设备查找预置的与“预毁”和“即毁”分别对应的横切关注点,得到两组软件需求历史缺陷数据,其中一组软件需求历史缺陷数据包括缺陷场景信息“预毁”和缺陷解决方案信息“预毁之前,确保飞行安全保护开关已被触发”,另一组软件需求历史缺陷数据包括缺陷场景信息“即毁”和缺陷解决方案信息“即毁之前,确保飞行安全保护开关已被触发”,即得到“预毁”和“即毁”对应的横切关注点均为“预毁/即毁之前,确保飞行安全保护开关已被触发”。
本实施例中,计算机设备通过UML(Unified Modeling Language,统一建模语言)建模工具Rational Rose的应用场景描述用例,用例包括前置条件、后置条件、领域条件限制和步骤。具体地,计算机设备以软件需求历史缺陷数据为依据,使用Rational Rose构建横切场景,得到横切用例。用例描述完成任务所必须的活动,包括各种变化,也即是各种场景,因此,横切用例描述完成任务所必须的安全性需求,即预毁/即毁之前,确保飞行安全保护开关已被触发。可以理解的是,若各个一般关注点对应的横切关注点为多个,则得到多个横切用例,形成横切用例集。
步骤S322b,根据领域需求模型、应用本体和横切用例,生成功能需求信息对应的功能逻辑用例,得到应用需求模型。
计算机设备根据领域需求模型、应用本体和横切用例,生成功能需求信息对应的功能逻辑用例,得到应用需求模型。领域需求模型和应用本体用于提供生成功能需求对应的功能用例的概念以及关联关系,横切用例用于补充功能需求对应的非功能需求的实现逻辑。计算机设备将各个一般关注点所对应的横切关注点的横切用例,融入功能需求信息的用例开发,得到最终的功能逻辑用例,从而得到应用需求模型。
继续以功能需求信息包括无人机在遥控状态下完成“预毁”动作、无人机在遥控状态下完成“即毁”动作,即功能需求信息包括的功能需求1(无人机在遥控状态下完成“预毁”动作)的一般关注点为“预毁”、包括的功能需求2(无人机在遥控状态下完成“即毁”动作)的一般关注点为“即毁”,且一般关注点“预毁”和“即毁”对应的横切关注点均为“预毁/即毁之前,确保飞行安全保护开关已被触发”为例,参见图6,图6为计算机设备生成功能需求信息对应的功能逻辑用例的流程图。如图6所示,功能需求信息包括无人机在遥控状态下完成“预毁”动作、无人机在遥控状态下完成“即毁”动作,计算机设备结合非功能需求信息,具体是安全性需求,生成功能需求信息对应的功能逻辑用例:
由此,针对无人机飞行控制系统软件的需求抽取中的知识不完备性的问题,通过将历史缺陷先验数据作为横切用例融入至功能需求信息的用例开发过程中,增强了应用需求模型的先验信息,使得知识更加完备。基于该应用需求模型,进一步进行无人机飞行控制系统软件的软件需求抽取活动,充分发挥了历史缺陷先验数据的避错作用,对提升无人机飞行控制系统软件的质量和可靠性起到积极作用。
图7为一个实施例提供的软件需求抽取方法的流程示意图。在上述图1所示实施例的基础上,如图7所示,本实施例软件需求抽取方法还包括步骤S410和步骤S420,具体地:
步骤S410,获取多组软件需求历史缺陷数据。
本实施例中,计算机设备中设置有SREP(Software requirements errorpattern,软件需求缺陷模式)库,SREP库用于存储历史缺陷先验数据,历史缺陷先验数据可以包括多组软件需求历史缺陷数据。其中,每组软件需求历史缺陷数据均包括对应的缺陷场景信息、缺陷表现信息和缺陷解决方案信息。
无人机飞行控制系统软件绝大部分为实时嵌入式软件,具有如下一些特点:1)具有极强的专用外部设备处理要求,和硬件联系紧密;2)通常要求强实时性;3)通常运行于特定或具有特殊条件的环境中,与交互环境相关;4)安全性要求高。
基于上述特点,对SREP库中的历史缺陷先验数据进行分类,参见图8,图8为历史缺陷先验数据的分类示意图。
如图8所示,第一类即:由不可预见的操作条件变化直接作用于硬件最终导致无人机飞行控制系统失效。不可预见的操作条件变化直接作用于无人机飞行控制系统的硬件部件,随着时间累积,逐步渗透至部件内部单元,进而影响元器件或线路特性,产生的异常电信号将作为软件输入通过软-硬件接口作用于无人机飞行控制系统软件,从而导致无人机飞行控制系统软件运行异常,再反作用于部件或无人机飞行控制系统,进而造成无人机飞行控制系统的全局或局部故障。
第一类历史缺陷先验数据可以表示为:
需求不完备场景:
场景1:
领域约束k∈领域约束集;
缺陷表现:安全性问题;
解决方案:给出完备的预定义操作条件集及领域约束集,以构建完备的领域本体。
如图8所示,第二类即:由不可预见的环境变化直接作用于硬件最终导致无人机飞行控制系统失效。上述变化直接作用于无人机飞行控制系统的硬件部件,随着时间累积,逐步渗透至部件内部单元,进而影响元器件或线路特性,产生的异常电信号将作为软件输入通过软-硬件接口作用于无人机飞行控制系统软件,从而导致无人机飞行控制系统软件运行异常,再反作用于部件或无人机飞行控制系统,进而造成无人机飞行控制系统的全局或局部故障。
第二类历史缺陷先验数据可以表示为:
需求不完备场景:
场景2:
领域约束k∈领域约束集;
子场景2-1:
子场景2-2:
子场景2-3:
子场景2-4:
子场景2-5:
子场景2-6:
子场景2-7:
子场景2-8:
缺陷表现:安全性问题;
解决方案:给出完备的预定义环境集及领域约束集,以构建完备的领域本体。
如图8所示,第三类即:由不可预见的操作条件变化及环境变化直接作用于硬件最终导致无人机飞行控制系统失效。上述变化直接作用于无人机飞行控制系统的硬件部件,随着时间累积,逐步渗透至部件内部单元,进而影响元器件或线路特性,产生的异常电信号将作为软件输入通过软-硬件接口作用于无人机飞行控制系统软件,从而导致无人机飞行控制系统软件运行异常,再反作用于部件或无人机飞行控制系统,进而造成无人机飞行控制系统的全局或局部故障。
第三类历史缺陷先验数据可以表示为:
需求不完备场景:
场景3:
领域约束k∈领域约束集,
子场景3-1:
子场景3-2:
子场景3-3:
子场景3-4:
子场景3-5:
子场景3-6:
子场景3-7:
子场景3-8:
缺陷表现:安全性问题;
解决方案:给出完备的预定义环境集、操作条件集及领域约束集,以构建完备的领域本体。
如图8所示,第四类即:由不可预见的操作条件变化直接作用于无人机飞行控制系统软件最终导致无人机飞行控制系统失效。这种无人机飞行控制系统软件运行异常通过软硬件接口产生异常电信号,异常电信号直接作用于无人机飞行控制系统硬件部件内部单元,进一步作用于无人机飞行控制系统硬件部件,最终造成无人机飞行控制系统的全局或局部故障。
第四类历史缺陷先验数据可以表示为:
需求不完备场景:
场景4:
领域约束k∈领域约束集,
缺陷表现:安全性问题。
解决方案:给出完备的预定义操作条件集及领域约束集,以构建完备的领域本体。
由此,计算机设备获取按照上述类别分类后的多组软件需求历史缺陷数据。可以理解的是,每类历史缺陷先验数据可以包括多组软件需求历史缺陷数据,每组软件需求历史缺陷数据可以包括该类别下的一种缺陷场景信息、缺陷表现信息和缺陷解决方案信息。
步骤S420,根据多组软件需求历史缺陷数据,生成软件需求缺陷模式本体。
计算机设备根据多组软件需求历史缺陷数据,通过本体工具protégé生成软件需求缺陷模式本体。
对应地,步骤S200包括步骤S210:
步骤S210,根据功能需求信息的应用场景,确定应用场景对应的非功能需求信息,并从软件需求缺陷模式本体中获取与非功能需求信息对应的至少一组软件需求历史缺陷数据作为历史缺陷先验数据。
本实施例中,计算机设备确定待开发的无人机飞行控制系统软件对应的功能需求信息后,根据功能需求信息的应用场景,确定应用场景对应的非功能需求信息,从软件需求缺陷模式本体中获取与非功能需求信息对应的至少一组软件需求历史缺陷数据作为历史缺陷先验数据。
作为一种实施方式,参见图9,图9为一个实施例中步骤S210的细化步骤示意图。如图9所示,步骤S210具体包括步骤S211和步骤S212:
步骤S211,确定功能需求信息的应用场景。
功能需求信息的应用场景,可以是开发的无人机飞行控制系统软件的应用场景。
步骤S212,确定与应用场景匹配的非功能需求信息,并从软件需求缺陷模式本体中获取与非功能需求信息对应的至少一组软件需求历史缺陷数据作为历史缺陷先验数据。
计算机设备确定与应用场景匹配的非功能需求信息,并从软件需求缺陷模式本体中获取与该非功能需求信息对应的一组或者多组软件需求历史缺陷数据作为历史缺陷先验数据。本实施例中,非功能需求信息可以是应用场景下的安全性需求,在其它实施例中,非功能需求信息还可以是其它的非功能性的需求。
本实施例通过对不同应用场景选取确定匹配的非功能需求信息,非功能需求信息如安全性需求,将安全性需求对应的历史缺陷先验数据融入至应用需求模型,增强了应用需求模型的先验信息,使得应用需求模型的知识更加完备;再基于该应用需求模型进行待开发的无人机飞行控制系统软件的需求抽取,可以在需求抽取过程中充分发挥历史缺陷先验数据的避错作用,对提升开发出的无人机飞行控制系统软件的质量和可靠性起到积极作用。本实施例提升了软件需求抽取的准确性,从而提升了开发的无人机飞行控制系统软件的质量。
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图10所示,提供了一种软件需求抽取装置,包括:
确定模块10,用于确定待开发的无人机飞行控制系统软件对应的功能需求信息;
第一获取模块20,用于根据所述功能需求信息,获取与所述功能需求信息对应的非功能需求信息;所述非功能需求信息包括历史缺陷先验数据;
构建模块30,用于基于所述历史缺陷先验数据构建应用需求模型;所述应用需求模型用于所述待开发的无人机飞行控制系统软件的需求抽取;所述应用需求模型包括功能逻辑用例,所述功能逻辑用例用于表示所述功能需求信息对应功能的实现逻辑。
可选地,所述构建模块30包括:
无人机飞行控制系统需求知识本体构建子模块,用于基于知识辅助设计系统KADS,采用本体工具构建无人机飞行控制系统需求知识本体;所述无人机飞行控制系统需求知识本体包括无人机飞行控制系统泛化本体、任务本体、领域本体和应用本体;所述无人机飞行控制系统泛化本体、所述任务本体、所述领域本体和所述应用本体均包括对应的概念以及各概念之间的关联关系;
应用需求模型构建子模块,用于根据所述无人机飞行控制系统需求知识本体和所述历史缺陷先验数据构建所述应用需求模型。
可选地,无人机飞行控制系统需求知识本体构建子模块,包括:
第一构建单元,用于基于所述KADS,采用所述本体工具,对无人机飞行控制系统的多个泛化概念以及各泛化概念之间的关联关系建立本体表示,得到所述无人机飞行控制系统泛化本体;
第二构建单元,用于根据所述无人机飞行控制系统泛化本体,按照预设的概念映射关系,采用所述本体工具,对所述无人机飞行控制系统软件对应的需求抽取任务构建所述任务本体;所述任务本体用于表征执行所述需求抽取任务的执行过程;
第三构建单元,用于根据所述任务本体对应的领域,采用所述本体工具,对所述领域的多个领域概念以及各领域概念之间的关联关系建立本体表示,得到所述领域本体;所述领域本体用于表征所述任务本体对应的所述领域的知识特征;
第四构建单元,用于根据所述无人机飞行控制系统泛化本体、所述任务本体和所述领域本体,采用所述本体工具构建所述应用本体。
可选地,所述应用需求模型构建子模块,包括:
第五构建单元,用于根据所述领域本体和所述任务本体构建领域需求模型;
第六构建单元,用于根据所述领域需求模型、所述应用本体和所述历史缺陷先验数据,构建所述应用需求模型。
可选地,所述历史缺陷先验数据包括至少一组软件需求历史缺陷数据,每组软件需求历史缺陷数据至少包括缺陷场景信息和缺陷解决方案信息;所述第六构建单元,包括:
第一生成子单元,用于根据所述至少一组软件需求历史缺陷数据包括的缺陷场景信息和缺陷解决方案信息,生成至少一个横切用例;所述横切用例包括用于表示所述非功能需求信息对应的非功能需求的实现逻辑;所述非功能需求包括所述无人机飞行控制系统软件对应的安全性需求;
第二生成子单元,用于根据所述领域需求模型、所述应用本体和所述横切用例,生成所述功能需求信息对应的所述功能逻辑用例,得到所述应用需求模型。
可选地,所述装置还包括:
第二获取模块,用于获取多组软件需求历史缺陷数据;
生成模块,用于根据所述多组软件需求历史缺陷数据,生成软件需求缺陷模式本体;
对应地,所述第一获取模块,包括:
获取子模块,用于根据所述功能需求信息的应用场景,确定所述应用场景对应的非功能需求信息,并从所述软件需求缺陷模式本体中获取与所述非功能需求信息对应的至少一组软件需求历史缺陷数据作为所述历史缺陷先验数据。
可选地,所述获取子模块,包括:
确定单元,用于确定所述功能需求信息的应用场景;
获取单元,用于确定与所述应用场景匹配的非功能需求信息,并从所述软件需求缺陷模式本体中获取与所述非功能需求信息对应的至少一组软件需求历史缺陷数据作为所述历史缺陷先验数据。
本实施例提供的软件需求抽取装置,可以执行上述软件需求抽取方法实施例,其实现原理和技术效果类似,在此不再赘述。关于软件需求抽取装置的具体限定可以参见上文中对于软件需求抽取方法的限定,在此不再赘述。上述软件需求抽取装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,还提供了一种如图11所示的计算机设备,该计算机设备可以是无人机飞行控制器。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储软件需求抽取数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种软件需求抽取方法。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体地计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
确定待开发的无人机飞行控制系统软件对应的功能需求信息;
根据所述功能需求信息,获取与所述功能需求信息对应的非功能需求信息;所述非功能需求信息包括历史缺陷先验数据;
基于所述历史缺陷先验数据构建应用需求模型;所述应用需求模型用于所述待开发的无人机飞行控制系统软件的需求抽取;所述应用需求模型包括功能逻辑用例,所述功能逻辑用例用于表示所述功能需求信息对应功能的实现逻辑。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Ramb微秒)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
确定待开发的无人机飞行控制系统软件对应的功能需求信息;
根据所述功能需求信息,获取与所述功能需求信息对应的非功能需求信息;所述非功能需求信息包括历史缺陷先验数据;
基于所述历史缺陷先验数据构建应用需求模型;所述应用需求模型用于所述待开发的无人机飞行控制系统软件的需求抽取;所述应用需求模型包括功能逻辑用例,所述功能逻辑用例用于表示所述功能需求信息对应功能的实现逻辑。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。