基于fog数据的源代码导入及解析的方法和装置的制造方法

文档序号:10665675阅读:139来源:国知局
基于fog数据的源代码导入及解析的方法和装置的制造方法
【专利摘要】本发明提供一种基于FOG数据的源代码导入及解析的方法及装置,首先配置源代码解析的选项,导入源代码并将源代码转化为FOG数据,与软件需求等软件研制生命周期中产生的其它数据置于同一工具平台下统一维护,然后提取源代码中的数据元素,并以此为基础自动建立源代码与低层需求的追踪关系,以解决现有的源代码维护技术中存在的追踪粒度粗、需纯手动关联、源代码与软件需求的维护分离等缺点。实现了追踪粒度较细、支持自动关联、源代码与软件需求统一维护等技术效果,使得追踪关系更加精确、合理,减少了由人为因素引入错误。
【专利说明】
基于FOG数据的源代码导入及解析的方法和装置
技术领域
[0001]本发明涉及计算机软件程序开发的技术领域,特别涉及一种源代码导入及解析的方法和装置。
【背景技术】
[0002]现有技术中,源代码一般使用汇编语言或高级语言编写,基于软件架构和低层需求编制的代码。在民用机载软件研制领域,权威的安全标准对于安全等级为A/B/C级的机载软件的源代码的指导意见明确指出:源代码应可追踪至低层需求。其目的是确保所有低层需求都已开发成源代码,并且不存在任何非预期的源代码。
[0003]在现有的软件研制环境中,软件需求的开发维护工具不支持(或有限支持)源代码数据的导入,即,软件需求的维护与源代码的维护是分别使用不同工具或方法实现的。
[0004]现有的使用需求开发工具在已建立低层需求数据库的前提下,使用工具导入源代码文件,并记录文件名,而源代码内容只以文本形式存储,并不对其进行解析;用户手动为每个源代码文件与工具数据库内的低层需求之间建立追踪关系。更常见的方法是由用户手动维护一个源代码与低层需求之间的追踪关系矩阵,这种方法由纯人工编写追踪关系矩阵,因此一般不将其视为一种技术。
[0005]现有的源代码维护技术,存在以下缺点:
[0006]I)追踪粒度较粗。现有技术以源代码文件作为与低层需求的基本追踪粒度。这样建立的追踪矩阵由于追踪粒度过粗,追踪关系不明确、可读性较差,使得源代码与低层需求之间的追踪关系流于形式,无法真正达到确保所有低层需求都已开发成源代码,并且不存在任何非预期的源代码的目的。
[0007]2)需纯手动关联。现有技术不解析源代码文件,无法自动识别源代码内容,若需要建立更精确的(如以函数级为追踪粒度)追踪关系,只能依靠开发人员以纯手动形式比对源代码维护工具与需求维护工具的内容,然后将函数、变量等源代码元素与低层需求一一关联。由于源代码与需求的数量庞大,这样的方法效率很低,也非常容易引入错误,为后续的验证工作带来不必要的麻烦。
[0008]3)源代码与软件需求的维护分离。源代码与软件需求等其它软件研制生命周期数据的维护工具是互相独立的。这样的分离可能带来不一致的问题,降低项目对软件生命周期数据的维护能力,影响项目工作质量和效率。

【发明内容】

[0009]本发明提供一种基于FOG数据的源代码导入及解析的方法和装置,以解决现有的源代码维护技术中存在的追踪粒度粗、需纯手动关联、源代码与软件需求的维护分离等缺点。
[0010]为解决上述技术问题,本发明提供的基于FOG数据的源代码导入及解析的方法和装置是这样实现的:
[0011]—种基于FOG数据的源代码导入及解析装置,用于源代码与低层需求之间建立追踪关系,包括:
[0012]源代码导入模块,将导入的源代码转化为FOG数据;
[0013]解析选项配置模块,用于配置源代码解析的选项;
[0014]源代码解析模块,提取源代码中的解析元素;
[0015]自动关联低层需求模块,通过识别的低层需求标识符自动建立解析元素与低层需求的追踪关系。
[0016]还包括:静态分析模块,对导入的所述源代码进行静态分析,并为解析元素提供静态分析报告。
[0017]还包括:源代码版本管理模块,用于为导入成功的源代码文件进行版本设置。
[0018]解析选项配置模块中所述源代码解析选项内容包括自定义库文件路径、设置条件编译参数、规定作者标识符和低层需求标识符。
[0019]—种基于FOG数据的源代码导入及解析方法,用于源代码与低层需求之间建立追踪关系,包括:
[0020]源代码导入步骤,将导入的源代码转化为FOG数据;
[0021]解析选项配置步骤,用于配置源代码解析的选项;
[0022]源代码解析步骤,提取源代码中的解析元素;
[0023]自动关联低层需求步骤,通过识别的低层需求标识符自动建立解析元素与低层需求的追踪关系;
[0024]静态分析步骤,对导入的源代码进行静态分析,并为解析元素提供静态分析报告。
[0025]还包括:静态分析步骤,对导入的所述源代码进行静态分析,并为所述解析元素提供静态分析报告。
[0026]还包括:源代码版本管理步骤,用于为导入成功的源代码文件进行版本设置。
[0027]解析选项配置步骤中源代码解析选项内容包括自定义库文件路径、设置条件编译参数、规定作者标识符和低层需求标识符。
[0028]解析元素包括函数、变量和类型,解析元素和低层需求均以FOG数据为单位。
[0029]本发明的积极效果在于:
[0030]I)追踪粒度较细。本发明以从源代码提取的解析元素(函数、变量、类型)为与低层需求建立追踪关系的基本粒度,使得追踪关系更加精确、合理。
[0031]2)支持自动关联。使用预定义的低层需求标识符,只需在编写源代码时依照规则在注释中添加相关的低层需求信息,该装置就可以在解析完成后自动将解析元素关联至低层需求。这样就等同于在编写源代码的同时自动建立追踪关系,无需再额外耗费人力维护追踪矩阵,减少由人为因素引入错误的可能。
[0032]3)源代码与软件需求统一管理。源代码经导入、解析后,提取的解析元素被该装置视为FOG数据,与其它同为FOG数据的软件生命周期数据基于相同的管理粒度,实现了所有数据一致、统一的版本控制和配置处理。
【附图说明】
[0033]图1为基于FOG数据的源代码导入及解析的装置框图;
[0034]图2为基于FOG数据的源代码导入及解析的方法流程图。
具体实施例
[0035]本发明所称FOG数据是指具有独立语义的最小数据单位。本发明提供一种源代码导入及解析的方法和装置,将源代码数据与软件需求等软件研制生命周期中产生的其它数据都视为FOG数据,并置于同一工具平台下统一维护,提取源代码中的数据元素,并以此为基础建立源代码与低层需求的追踪关系。
[0036]为了使本技术领域的人员更好地理解本发明方案,下面结合附图和实施方式(以C语言源代码为例)对本发明作进一步的详细说明。
[0037]如图1,源代码导入模块11中,源代码导入支持zip,rar等格式的压缩包,压缩包支持多层文件夹结构,例如可包含使用C语言编写的.c代码文件和.h头文件。压缩包内包含的其它无关文件(非.c或.h文件)在导入时将被自动忽略。
[0038]解析选项配置模块12在导入源代码之前,支持用户配置源代码解析的选项,内容包括:
[0039]I)头文件库路径。如果源代码的编译环境包含一些非标准库头文件,并且这些头文件不包含在导入的源代码包中,可设置这些头文件的所在目录路径,以便在解析时也将这些库文件包含进来;
[0040]2)程序条件编译宏定义。如果源代码中包含一些条件编译的宏定义,并且在解析时需要使得条件编译通过,可在此设置。具体地,例如,源代码中包含:
[0041]Sifdef WIN32
[0042]#include “abc.h”
[0043]#endif
[0044]可以添加参数“WIN32”,使#include “abc.h” 生效;
[0045]3)低层需求标识符。可设置约定字符串,用于在源代码注释中标识低层需求信息。具体地,如定义“LLR: ”为低层需求标识符,若函数注释中出现“LLR:XXX_LLR_001”,则“XXX_LLR_001”将被自动识别为该函数应关联的低层需求,该设置仅对“函数”有效。
[0046]4)作者标识符。可设置约定字符串,用于在源代码注释中标识作者信息。具体地,如定义“Author: ”为作者标识符,则函数注释中出现“Author:XYZ”,则“ΧΥΖ”将被自动识别为该函数的作者;该设置仅对“函数”有效。
[0047]源代码解析模块13中解析的目的是提取源代码中的解析元素,每个解析元素都将被装置作为FOG数据。其原理是识别源代码文件中的所有函数定义、全局变量声明和类型定义相关代码及信息,解析元素包括三种:
[0048]I)函数。包含函数前首行注释开始至函数体结束行为止的所有代码,识别为该函数的相关代码;
[0049]2)变量。包含全局变量声明所在行,识别为该变量的相关代码;
[0050]3)类型。包含自定义类型(typedef)前首行注释开始至类型定义结束行为止的所有代码,识别为该自定义类型的相关代码。
[0051]若注释中存在与作者标识符及低层需求标识符匹配的内容,这些信息也会被识别为该解析元素的相关信息。解析成功后,所有被识别的解析元素按其所在源代码文件分组:用户可查看每个文件内所包含的解析元素的信息,包括:名称、相关代码、作者、关联的低层需求和解析元素类型。若解析不成功,则给出错误信息,辅助用户进行修改源代码后重新导入。
[0052]自动关联低层需求模块14有两种关联内容:
[0053]I)满足以下条件的解析元素,在解析完成后自动关联低层需求:
[0054]解析过程中,采集到了该元素追踪到的低层需求信息;并且,采集到的低层需求名称与该装置数据库中某条低层需求(F0G数据)完全匹配。解析元素追踪到的低层需求可能存在多条,则每条符合以上规则的低层需求都将被自动关联。所有不符合以上规则的解析元素,不自动关联任何低层需求。
[0055]2)满足以下条件的解析元素,在解析完成后自动关联作者:
[0056]解析过程中,采集到了该元素的作者信息;并且,采集到的作者名称与该装置数据库中某位用户名称完全匹配。所有不符合以上规则的解析元素,则其作者自动设定为导入源代码的用户名。
[0057]手动关联低层需求模块15支持用户为所有解析元素即FOG数据手动关联低层需求,建立源代码与低层需求之间的追踪关系。
[0058]静态分析模块I6支持用户对所有解析成功的源代码文件进行静态分析。该装置通过静态分析可检测的问题包括:
[0059]未使用的变量声明;类型不一致;定义前使用;不可达代码;被忽略的返回值;无法返回的执行路径;可能存在的无限循环;可能的空指针;违反信息隐藏;内存泄露;缓存溢出。
[0060]静态分析完成后,该装置以图标形式标识出每个存在以上问题的解析元素。选择某个解析元素后,将显示与其相关的所有问题,即静态分析报告。
[0061]源代码版本管理模块17为已导入的每个源代码文件(.c文件和.h文件)都分别维护一个版本号。支持从上传的源代码包(zip或rar文件)中自动识别过去已导入的源代码文件,并对再次导入的文件进行内容比对,根据比对结果可自动进行以下操作:
[0062]a)新建。若导入的源代码文件为首次导入,则设置文件版本号为1.0 (也可为其它值,支持用户自定义),并将该版本的操作状态置为“新建”;
[0063]b)无改变。若新导入的源代码文件与已导入文件完全匹配,即无任何修改,则不做任何处理;
[0064]c)升版本。若新导入的源代码文件与已导入文件存在差异,则使用新导入内容覆盖原有内容,文件版本号升级,并将该版本的操作状态置为“修改”。
[0065]如图2所示,zip,rar等格式的源代码压缩包通过源代码导入步骤21导入本发明装置,压缩包支持多层文件夹结构,例如可包含使用C语言编写的.c代码文件和.h头文件,并将导入的源代码转化为FOG数据。
[0066]在导入源代码之前,解析选项配置步骤22可以用来配置源代码解析的选项,包括自定义库文件路径、设置条件编译参数、规定作者标识符和低层需求标识符。
[0067]源代码解析步骤23提取源代码中的解析元素,每个解析元素都将被装置作为FOG数据管理。识别源代码文件中的所有函数定义、全局变量声明和类型定义相关代码及信息。
[0068]自动关联低层需求步骤24通过识别的低层需求标识符自动建立解析元素与低层需求的追踪关系。
[0069]此外本发明还支持通过手动关联低层需求步骤25手动建立源代码与低层需求之间的追踪关系。源代码与低层需求之间建立追踪关系后可选择对所有解析成功的源代码文件进行静态分析步骤26,选择某个解析元素后,将显示与其相关的所有问题,即静态分析报生口 ο
[0070]源代码版本管理步骤27为已导入的每个源代码文件(.c文件和.h文件)都分别维护一个版本号。
[0071]本发明不仅仅针对“C语言源代码”,也支持其他高级编程语言或汇编语言的源代码导入及解析。源代码解析选项配置内容、解析元素类型以及静态分析内容将根据源代码语言的不同而作相应改变。
[0072]由以上实施例可见,本发明将源代码转化为FOG数据,与软件需求等软件研制生命周期中产生的其它数据置于同一工具平台下统一维护,然后提取源代码中的数据元素,并以此为基础建立源代码与低层需求的追踪关系,以解决现有的源代码维护技术中存在的追踪粒度粗、需纯手动关联、源代码与软件需求的维护分离等缺点。
[0073]虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明并不局限于上述特定的实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
【主权项】
1.一种基于FOG数据的源代码导入及解析的装置,用于源代码与低层需求之间建立追踪关系,其特征在于,包括: 源代码导入模块,将导入的源代码转化为FOG数据; 解析选项配置模块,用于配置所述源代码解析的选项; 源代码解析模块,提取所述源代码中的解析元素; 自动关联低层需求模块,通过识别的低层需求标识符自动建立所述解析元素与所述低层需求的追踪关系。2.根据权利要求1所述的基于FOG数据的源代码导入及解析的装置,其特征在于,还包括:静态分析模块,对导入的所述源代码进行静态分析,并为所述解析元素提供静态分析报生口 ο3.根据权利要求1所述的基于FOG数据的源代码导入及解析的装置,其特征在于,还包括:源代码版本管理模块,用于为导入成功的所述源代码文件进行版本设置。4.根据权利要求1所述的基于FOG数据的源代码导入及解析的装置,其特征在于:所述解析选项配置模块中所述源代码解析选项内容包括自定义库文件路径、设置条件编译参数、规定作者标识符和低层需求标识符。5.根据权利要求1所述的基于FOG数据的源代码导入及解析的装置,其特征在于:所述解析元素包括函数、变量和类型,所述解析元素和所述低层需求均以FOG数据为单位。6.一种基于FOG数据的源代码导入及解析的方法,用于源代码与低层需求之间建立追踪关系,其特征在于,包括: 源代码导入步骤,将导入的源代码转化为FOG数据; 解析选项配置步骤,用于配置所述源代码解析的选项; 源代码解析步骤,提取所述源代码中的解析元素; 自动关联低层需求步骤,通过识别的低层需求标识符自动建立所述解析元素与所述低层需求的追踪关系; 静态分析步骤,对导入的所述源代码进行静态分析,并为所述解析元素提供静态分析?艮胃。7.根据权利要求5所述的基于FOG数据的源代码导入及解析的方法,其特征在于,还包括:静态分析步骤,对导入的所述源代码进行静态分析,并为所述解析元素提供静态分析报生口 ο8.根据权利要求5所述的基于FOG数据的源代码导入及解析的方法,其特征在于,还包括:源代码版本管理步骤,用于为导入成功的所述源代码文件进行版本设置。9.根据权利要求5所述的基于FOG数据的源代码导入及解析的方法,其特征在于:所述解析选项配置步骤中所述源代码解析选项内容包括自定义库文件路径、设置条件编译参数、规定作者标识符和低层需求标识符。10.根据权利要求5所述的基于FOG数据的源代码导入及解析的方法,其特征在于:所述解析元素包括函数、变量和类型,所述解析元素和所述低层需求均以FOG数据为单位。
【文档编号】G06F9/44GK106033338SQ201510111701
【公开日】2016年10月19日
【申请日】2015年3月13日
【发明人】王云明
【申请人】上海爱韦讯信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1