产品概况
在嵌入式系统中很多软件采用 C 或者 C++ 语言编写, C 和 C++ 语言并不是安全的编程语言,在它们的标准中存在没有定义的行为和一些不安全的用法,对于没定义的行为不同的编译器做出不同的解释,编译出的目标代码所表现的行为很可能不一样,目前避免 C/C++ 语言中的不安全隐患的普遍做法就是遵照编程标准或者安全子集编写程序,例如 MISRA C 和 MISRA C++ 是欧洲汽车工业针对嵌入式 C 和 C++ 的使用所编写的安全子集, GJB5359-2005 《航天型号软件 C 语言安全子集》是航天领域嵌入式 C 语言的编程标准。
QAC/QAC++ 是英国编程研究公司( Programming Research Ltd )的专业进行 C 和 C++ 语言规则检查工具,在过去的十几年里, QAC/QAC++ 产品一直处于静态编程规则检查领域的领先地位, PRL 公司也有多名专家参与 MISRA 和其它标准的起草和编写工作,长期以来 PRL 公司积累了深厚的经验,其对编程语言的理解非常精深, QAC 系列产品由旋极公司引进中国的以来, PRL 公司在航天、航空、国防等领域拥有大量的用户,和航天软件评测中心等多家编程标准起草单位广泛合作和交流, QAC/QAC++ 产品以其全面准确的发现软件中存在的潜在问题的能力得到客户的认可和赞赏。
功能特性
代码规则检查工具 QAC/QAC++ 对 C/++ 代码进行自动检查,报告所违反编程标准和准则。通过使用 QAC/QAC++ 可以减少代码审查所需的时间,使软件设计师在开发阶段的就可以避免代码中的问题,提高代码的质量,后期动态测试的周期将会缩短。
QAC/QAC++ 产品界面简洁直观,软件设计师不需花很多时间学习操作和使用,建立工程之后直接加入代码就可以分析,能够发现 1200 多种 C 语言问题、 800 多种 C++ 的问题,可以支持所有编译器的扩展、配置简单灵活,分析的速度非常快,分析报告和结果具有 excel 、 word 、 pdf 、图表等多种形式,在线帮助相关联,可以及时得到问题的解释和示例。
QAC/QAC++ 融合了国际上权威的多种编程标准 (ISO , MISRA C, JVF , EC++ 等 ) ,也能够支持国军标 GJB5369-2005 航天型号软件 C 语言安全子集和其它行业编程规则。由于提供了编程规则的二次开发接口,可以允许使用单位在其基础上自行添加其它自定义规则。
QAC/QAC++ 能够提供以上两种静态分析的能力,即:软件结构分析和质量度量。
软件结构分析包括: 函数控制结构图、函数调用树、数据引用关系图,文件包含关系。
质量度量方面:提供 60 多种 C 语言度量和 20 多种 C++ 度量。
功能列表:
能发现 C 代码超过 1300 种 C 语言使用中容易出现的潜在问题, C++ 代码 400 多种潜在问题,从而发现危险的结构,发现维护和移植中发生的问题。
成功解析许多流行的 C/C++ 语言编译器中的语言扩展和非标准的结构。
简单操作就可以轻松定制警告信息和报告。
提供几十种工业认可的 C/C++ 复杂度度量,包括圈复杂度、静态路径统计和 Myer's interval 等,还可以扩展公司特定的复杂度度量。
提供开发接口,可扩展执行特定的分析检查。可以扩展检测规则。
提供多种多样的可视化输出,包括函数结构图、函数调用树、外部参考、文件包含关系和统计的度量分析。
可用于 Windows 和 Unix 平台,有方便易用的 GUI 图形界面。可以和流行的开 发环境集成

突出优势
QAC 在代码规则检查方面深入透彻,集成了多种权威的编程标准,超过 1200 多条警告提示可以给设计师很好的提醒,可以作为贯彻实施 GJB 编程标准和企业编程准则以及各单位编程准则的推广国内工具,通过评估和采用例程测试,发现 QAC 可以很准确的发现代码中潜在的问题,不存在漏报,误报和错报的情况,对于 C 语言 QAC 利用强大的分析器进行预处理和后分析,不允许代码缺失或者遗漏头文件, QAC 以其严谨而准确的分析,更能提供可信的检测结果。 QAC 能支持各行业编程标准和 GJB5369 标准,可以独立检查进行报告。
QAC 的界面简单和使用很容易,在大量的规则中选择特定的规则非常简单,只需要鼠标双击(选中或者取消),也可以在规则级上右键(选中这一级或者关闭这一级),结果可以在 viewer 中查看,采用超链接的形式,点击警告就可以看到在线的解释和示例,改变了所选的规则之后,无需重分析,直接打开报告就可以看到更新过的报告。
QAC 和 QAC++ 允许用户在其提供的分析接口上定制新的规则,用户可以基于规则定制的功能把行业标准或者单位内部规则加入 QAC/QAC++ 。
QAC 可以集成到各种 IDE 中,不脱离熟悉的环境就可以进行规则检查,比如: MS VC++, MS .NET, Tornado, Source Insight, Keil C, 也可以支持 Turbo C, C++ Builder , Labwindows CVI 等各种开发环境。
平台
目前支持的语言有 C, C++, Java , Fortran
目前可支持的平台有 Microsoft Windows 、 Sun Solaris 、 HP-UX 、 Redhat Linux 、 Slackware Linux
客户案例
典型案例 : “ QAC 协助开发欧洲战斗机雷达系统”
爱丁堡的 GEC Marconi 航空雷达系统分部最近购买了 QAC 来协助开发欧洲战斗机雷达系统的软件,这个系统的型号是 ECR90 ,由 GEC ,马可尼航空,德国宇航局欧洲雷达协会,西班牙 ENOSA 和意大利的 FIAR 领导开发。
ECR90 雷达是第三代多模式雷达,具有强大的功能和试用性, ECR90 提供一系列的能力包括道行,地名特征检测,目标识别和武器输送,设计可用于各种天气环境,软件是用 C 语言开发,嵌入式多处理器系统, QAC 将用来信号系统处理方面,这将涉及广泛的傅立叶信号分析,整个软件将包括 80000 行关键代码。
典型案例:飞利浦( Philips )公司全球实施 QAC
飞利浦公司在技术研发和产品质量控制上严格按照 CMM 和相关技术标准来控制。为了在研发阶段就发现编程过程中的隐含问题。飞利浦公司自 1997 年开始使用 QAC 产品。通过近 10 年的产品使用,目前整个飞利浦公司以 QAC 工具为代码规则检查工具,强制要求飞利浦公司软件开发人员使用 QAC ,并每年投入一笔专门的费用用于 QAC 和规则的培训。目前飞利浦公司全球有超过 300 个用户授权。
旋极公司长期以来在国内推广 QAC/QAC++ ,主要用户分布在航天、航空、兵器、船舶、军队等领域,这些用户通过使用 QAC/QAC++ ,取得了很好的效果,主要用户有:
航天软件评测中心、航天一院 12 所、航天四院 17 所、航天 809 院、航天五院、兵器系统所、兵器计算所、船舶可靠性评测中心,赛宝软件评测中心等等。
|