PDF下载
论软件组织资产的意义

邱李辉

武汉滨湖电子有限责任公司

摘要: 为实现企业的目标,除了必要的生产资料,还需要很多参考资料,例如:程序代码、文档样例或模板、操作指南、历史数据、经验教训、培训材料等。企业应该将有价值的参考资料进行收集和管理,供大家使用。因此,设计和提供一个合适的资产库,会有助于对过程资产的查阅、使用和更新。CMMI中提出了“组织过程资产库”的概念,并将组织过程资产的收集、维护和管理作为衡量软件过程能力的一个关键实践。本文就软件资产库中比较重要的程序库、测试用例库、缺陷库对组织资产库的作用进行阐述
关键词: 软件组织资产;程序库;测试用例;缺陷
DOI:10.12721/ccn.2023.157103
基金资助:
文章地址:

技术是第一生产力,技术在企业的发展中的重要性不言而喻,对于软件企业,技术更是决定性的。但是技术是以什么形式存在企业中呢?人才和产品往往是首先想到的。人才是企业最重要的财富,也是技术最重要的载体。为解决人才流动、流失问题,为将人才的的技能技术有形化,建立软件的组织资产库是必要的。通常的配置管理库和档案管理等是常用的组织资产管理方式,但是他们更加工整,必须是经过了验证的正式资料。软件组织资产库则不同。组织资产库的资产可以是正式的,也可以是非正式的。可以是严肃的,也可以是活泼的,可以是完整的,也可以是不完整的。一切的目的都是为了技术知识的保存和交流。Internet上面很多的技术论坛、技术博客其实都是资产库的很好形式。

对于软件来说,程序库是组织资产中最重要的资产库,它用于存放软件代码、资源等程序。很多代码函数是经常使用到的,比如读取文件、可视化及一些算法的实现等代码。写代码应该是一个积累的过程,在将来如果需要,可以随时拿来用,而不是重新造轮子。所以不论对于个人、专业室和公司,建立一个程序库十分有必要,可以大大提高学习和开发效率。

程序库中的形式是多样的,代码方面可以是一个函数,一个类这样的软件单元,也可以是多个单元组成的模块,还可以仅仅是一段代码,另外还可以包括开发用到的如图标图片等素材、系统脚本、配置文件等。开发人员在设计的时候,提取软件中合适的资源,上升到组织级资产,供后来的项目使用。这里合适的资源可以是一些通用的方法,比如某个通讯API的封装,可以轻易的移植到其他程序中进行应用。也可以是实现某个经典的处理过程,或者程序框架等等。代码库应包含代码以及详细的注释,代码的功能、接口和使用说明文件。对于大模块的代码,还应该包括代码对应的需求、设计、测试等。代码库的积累是一个长期的过程,在建立初期可能起不到太大作用,但是随着库中的内容不断丰富,必将对软件的开发起到不容忽视的作用。此外,程序库能帮助新人学习,往往刚毕业进入公司的员工并不能立即上手写出优秀的代码,那么公司的程序库能帮助新人进行学习,既可以学习良好的编码习惯,也能通过代码的学习了解公司的业务。

需要注意的是,软件行业目前已经非常成熟,在internet本就上有非常丰富的资源,软件开发者在很多论坛、博客例如MSDN上面能找到很多可用的代码,但是这并不意味着公司自己的代码库没有意义。首选组织程序库中的代码与我们的业务更相近,公司的产品相对固定,甚至很多产品软件都已经实现系列化,那么进入组织资产库的程序会更有针对性,另外还有很多专业上的算法的实现,并不容易在internet上找到现成的代码。其次,进入组织资产库的代码一定是经过严格审查和测试的,正确性更能够得到保障。

测试用例是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。简单地认为,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求软件测试管理是软件开发项目中一个很重要的环节,近些年随着可用的测试工具越来越多,测试系统本身越来越复杂,管理测试活动的各个方面已经成为一个越来越大的挑战。

软件测试的重要性毋庸置疑。影响软件测试的因素很多,例如软件本身的复杂程度、开发人员(包括需求分析、设计、编程和测试的人员)的素质、测试方法和技术的运用等。因为有些因素是客观存在,无法避免的;有些因素则是波动的、不稳定的。例如开发队伍是流动的,有经验的开发人员走了,新人不断补充进来;每个开发人员的能力也参差不齐等等。有了测试用例库,无论是谁来测试,从测试用例库中选择经过评审和验证的测试用例,参照测试用例实施,能保障测试的质量,从而把人为因素小。即便最初的测试用例考虑不周全,随着测试的进行和测试用例库的更新和维护,也将日趋完善。

此外,企业的产品往往有通用化、系列化的特点,其产品类型基本相近,在进行软件测试时,设计软件测试用例的时候,往往对相同的需求会设计出相似的测试用例。在建立了有效的测试用例库之后,能够收藏相似需求的测试用例。通常测试用例库应包含被测需求、测试的目的、测试输入和输出、测试的规程以及期望的测试结果等元素。经过多个项目的积累,测试用例库会越来越丰富,再进行新产品测试时,能直接从测试用例库中找到合适的、并且经过审查的正确的测试用例,既可以节省测试设计的工作量,更能够确保测试的正确性。所以建立一个完善的测试用例库,能以最少的人力、资源投入,在最短的时间内完成测试,发现软件系统的缺陷,保证软件的优良品质。

缺陷库

缺陷库用于存放历来在软件测试中发现的缺陷。通常有经验的测试人员知道在测试中哪些地方容易发现产品缺陷,会针对这些地方加强测试,但是对于新手来讲可能就会漏掉某些隐蔽的缺陷。在建立软件缺陷库之后,可以将具体项目在软件测试中发现的缺陷进行吸收,上升为组织级资产。缺陷库可以更好的发挥出测试人员的经验优势,利用历史产品缺陷信息就可以快速地启动测试执行,特别适用于产品软件早期版本的快速测试验证,同时因为缺陷库是建立在典型缺陷发生基础上所以对于相似产品中重复出现的软件缺陷具有较高的发现概率。

缺陷库对于开发人员来讲是同样有用的,开发人员通过对相似产品缺陷的阅读,在项目初期就可以预测产品在某些位置可能会出现问题,可以充分吸取缺陷库的经验,也就是历史项目的经验,提前针对软件容易产生缺陷的薄弱环节采取有效的规避措施,在软件开发中,能更好的保证软件开发的质量。如何更好地提高产品软件缺陷推荐的准确性和有效性,需要在后续工作中进行进一步的研究。

以上描述了软件组织库中比较重要的程序库、测试用例库和缺陷库,事实上软件的组织过程库内容还可以非常丰富,公司可以根据自己的特点建立各方面的资产库。例如工具库搜集并保存各类软件工具,能规范工具软件的管理和使用。用于存放软件开发、测试、管理和保障等各类软件工具。还有各个版本的开发环境、中间件、辅助插件、各种操作系统、测试软件、文档编辑软件、图片编辑工具。工具库一般包括工具的安装包、许可、工具名称、版本等信息,还可以包括使用说明,教程等相关资料。文档库用于存放项目的需求、设计、管理类的文档,或者是文档的片段。经验库用于是保存问题的处理经验。其中包括各类问题的发生原因、解决方法、回避方法等,也可以是项目执行的一些心得,可以帮组软件项目管理者处理解决、回避项目中的一些问题,使项目能更顺利的执行。

建立组织库可以从一下几个方面,首先可以在项目初期进行策划时,就对组织资产提出要求,要求项目开发出标准的、通过的模块或程序,在开发完成后进行组织资产库。其次可以从历史项目中进行提取。软件组织管理人员可以对已经结项的项目进行筛查,提取其中可复用的信息,经过整理后纳入组织资产库。还可以从Internet上面筛选合适的资源添加到组织库中。 

综上,组织过程资产作为衡量组织体系成熟度的一个关键指标,是指一个组织在体系运行过程中所积累的各种有形或无形的资产。软件组织资产库的建设是组织过程改进的核心内容之一。软件组织资产库长期积累有价值的数据,是企业长期获益的基础,有助于企业的成长和发展。对于有长远规划的企业,软件组织资产库一定是必不可少的。 

参考文献

(1)电子文档:吕良庆,软件组织过程资产库的设计 , 2013

(2)电子文档:陈佳,基于GJB5000A的组织资产库的管理,2017

(3)电子文档:王勇,软件过程资产库的研究与实现 ,2016

(4)电子文档:程晓莉,企业软件组织过程资产库的建立与管理  2017

(5)电子文档:王硕 ,如何设计软件企业的组织过程资产库  2016