新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 谈GJB5000A二级在中小型嵌入式软件研发中的应用

谈GJB5000A二级在中小型嵌入式软件研发中的应用

作者:时间:2012-08-18来源:网络收藏

1.4 项目管理信息化手段的
工欲善其事,必先利其器。工程化管理主要通过文档来反映过程。如果通过传统的人工撰写文档和凡事开会沟通的方式进行项目管理的话,将会大大增加管理人员和设计师人员的工作量,况且这种方式的效率是十分低下的。因此有必要先进的项目管理信息化工具。
目前,关键科技公司推出专门针对工程化产品的解决方案,包括KPFLOW、KRFLOW、KCFLOW和KTFLOW四类工具:
(1)KPFLOW:对软件项目的进度、成本、质量、资源等情况进行集成管理的平台。其主要功能包括:任务分配与跟踪、项目估计、项目周报和个人周报记录、问题与风险管理、项目度量分析。该平台支持系统建模,即意味着可以针对不同项目设计对应的模板和模块。该平台主要体现PP、PMC、MA和PPOA四个过程域的信息化管理;
(2)KRFLOW:需求管理工具,其主要功能包括:需求的获取和编辑、需求跟踪和分析、变更建议系统、基线管理。该软件主要实现REQM过程域的信息化管理工作;
(3)KCFLOW:确保软件项目生存周期内产品的完整性、一致性和可追溯性。其主要功能包括:配置计划管理、变更控制、版本管理、产品依赖关系和一致性管理、软件问题跟踪管理、软件配置状态审计。该软件实现了CM过程域的信息化管理,同时也可以管理REQM和PPQA两个过程域;
(4)KTFLOW:测试过程的管理软件,其主要功能包括:梳理测试需求、制定测试计划、设计测试用例、执行测试过程、输出测试报告。该软件帮助测试人员在短时间内、大批量的完成多个项目的软件测试。
这四类工具有两个特色:一是它们相互之间可以进行数据互联,帮助管理人员从不同角度监督研制过程;二是工具支持文档自动生成,项目组人员只需要按照GJB438B模板,填写部分软件研制过程的信息,即可输出标准化的文档。
尽管具有功能强大的工具,但是在初期实践阶段,由于丁具普及的程度参差不一,我们先使用KCFLOW配置管理工具,先由组织级配置管理员负责使用,然后逐步对项目级配置管理员以及项目相关成员进行推广。在这个过程中,项目组成员需要不断的实践,逐步提高劳动效率。

2 软件可靠性的提高
2.1 软件可靠性
软件工程化的核心是为了实现好的软件,而评价软件好坏的关键标准是软件可靠性。软件可靠性(Software Reliability)指的是在给定时间和特定环境要求下,软件完成规定功能的能力。针对在雷达系统中使用的软件中,可靠性指标一般隶属于分系统或整机的指标,即在初始系统正常的条件下,在规定时间内,软件不引起系统故障的能力。
由于嵌入式软件与硬件结合相当紧密,其可靠性指标具有很大的随机性,如外界环境变化、系统输入出错、使用不当以及软硬件设计的固有缺陷等原因都会导致软件可靠性指标降低,但是不能因为这些困难,使得嵌入式软件可靠性的保证成为空谈。软件可靠性是可以通过软件工程化的实践来提高。
2.2 软件可靠性的提高
严格进行软件工程化管理是提高软件可靠性的必经之路。按照软件工程化要求,需要做好如下五方面工作:
(1)前期项目组针对软件进行充分的论证和分析,争取将软件需求明确体现在软件研制任务书中;
(2)设计过程中,尽量提高软件模块或单元的高内聚性、低耦合性。单元之间的接口尽量明晰,整个系统软件的复杂度不易过高,该拆分的就需要合理拆分为多个组成部分;
(3)加强软件文档的健全性和准确性,按照GJB438B-2009《武器系统软件开发文档》的要求,软件研制过程中的文档不能有缺失、描述不清、前后矛盾等情况出现。这些文档必须经过专业人士的评审认可,并且问题回归后才能进行归档;
(4)逐步建立软件标准化工作,包括文档标准化和代码模块标准化,这样可以有利的缩短研制周期,降低研制风险,提高软件产品的重用率;
(5)切实加强嵌入式软件的测试工作。

3 软件测试
3.1 软件测试的重要性
尽管软件工程化管理工作对软件质量的保证起到至关重要的作用,但是技术人员依然心存质疑,是否好的管理就能够确保高可靠性的软件。答案就在于软件测试。软件测试是将软件可靠性指标具体化的手段。从广义上讲,软件测试是为了尽快尽早地、不断地发现各种软件缺陷而开展的对软件及过程产品的验证和确认活动。从狭义上讲,软件测试包括4类测试:
(1)针对软件源代码的静态测试和代码审查,确保软件源码符合GJB5369《航天型号C语言安全子集》或其他开发语言标准的要求;
(2)针对《软件设计说明》对应的软件模块的单元测试和动态测试,确保软件模块的代码覆盖率达到100%;
(3)针对《需求规格说明》对应的软件功能性能的集成测试,确保软件功能、性能、外部和内部接口等符合要求;
(4)针对《软件研制任务书》对应的软件需求的系统测试或验收测试,确保软硬件各项指标符合用户的验收要求。
在这个测试过程中,测试问题及问题数目、测试问题的归零情况、测试问题中文档问题和软件问题的比例、阶段测试的缺陷率、软件故障等级、软件失效概率等度量数据可以直观地反映出软件的可靠性状况。因此软件测试工作对于软件研制起到关键的保障作用。
3.2 软件测试工具的
软件测试是一项有难度的专业技术工作,除了人工代码走查、问题记录分析工作之外,大部分工作需要专业的软件测试工具完成。
英国LDRA公司的LDRA Testbed测试软件是目前针对嵌入式软件测试最有效的丁具之一。该软件主要可以实现代码评审、质量评审、设计评审、单元测试、测试确认以及整个过程的测试管理功能。代码评审考察了软件源代码对编程规则的适应以及代码结构的合理性;质量评审分析了代码的圈复杂度、循环嵌套和不可达性,反映出代码的清晰性、可维护性和可测试性;设计评审包含接口分析、数据流分析、数据对象分析,确保了代码与《需求规格说明》的一致性;单元测试包含动态测试,主要测试代码的语句覆盖和分支覆盖程度;测试确认采用自动化的方法对于测试产生的问题进行回归和记录,自动输出测试用例集和软件测试报告。
对于该丁具的具体使用上,需要注意两点,一是该软件还不能有针对性的自动生成测试用例,也就意味着我们需要针对前文提到的三类软件进行人工设计和输入测试用例,并将这些测试用例标准化后存入测试库中作为范例;二是该软件主要面对的是软件源码,因此如果遇到需要软硬件结合测试的情况,还需要使用实时在线测试工具,如RTInsight软件或半实物仿真测试平台等。
软件测试工具可以极大的解放开发和编码人员,我们必须建立专业化的测试标准、测试平台、测试队伍,这样才可有效的保证软件产品的质量。

4 结束语
软件工程化的实践在整个软件研制过程中是一个逐步深化,不断提升的过程。因此不能抱有“一劳永逸”的麻痹思想,而是应该加强实践,建立愈加完善的软件项目管理体系,同时切实做好软件测试工作,确保软件的高可靠性。相信只要通过科研工作者和管理者的努力,一定会使我们的软件工程化水平得到很大的提高!

本文引用地址:http://www.eepw.com.cn/article/148572.htm
linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭