近年来,采用模型驱动(Model-Driven)尤其是形式化模型驱动的安全关键软件设计与开发方法逐渐受到重视,并被工业界认为是切实可行的重要手段.AADL(Architecture Analysis and Design Language)是一种广泛应用于安全关键领域的形式化建模语言标准.在安全关键软件系统开发与维护过程中,部分需求与设计信息往往遗留在源代码中,在对已有软件系统架构进行复用或重构的过程中,如何将这部分需求与设计信息从代码中构造到设计模型是一个重要问题.本文基于模型驱动逆向工程,提出一种从C代码到AADL模型的自动构造方法C2AADL.首先分析了源语言结构、行为和运行时性质,并根据分析结果提出了源代码结构、行为和运行时性质到AADL模型的转换规则,然后根据转换规则设计并实现了原型工具,最后基于雷达信息处理子系统案例验证本文所提方法的有效性.
安全关键软件需求中的相关知识大多需要手工提取,既费时又费力。近年来,人工智能技术逐渐被应用于安全关键软件设计与开发过程中,以减少工程师的手工劳动,缩短软件开发的生命周期。文中提出了一种安全关键软件术语推荐和需求分类方法,为安全关键软件需求规约提供了基础。首先,基于词性规则和依存句法规则对候选术语进行提取,通过术语相似度计算和聚类方法对候选术语进行聚类,将聚类结果推荐给工程师;其次,基于特征提取方法和分类方法将安全关键软件需求自动分为功能、安全性、可靠性等需求;最后,在AADL(Architecture Analysis and Design Language)开源建模环境OSATE中实现了原型工具TRRC4SCSTool,并基于工业界案例需求、安全分析与认证标准等构建实验数据集进行了实验验证,证明了所提方法的有效性。