CN116244179B - 一种可自我改善的系统固件度量方法 - Google Patents

一种可自我改善的系统固件度量方法 Download PDF

Info

Publication number
CN116244179B
CN116244179B CN202211623357.6A CN202211623357A CN116244179B CN 116244179 B CN116244179 B CN 116244179B CN 202211623357 A CN202211623357 A CN 202211623357A CN 116244179 B CN116244179 B CN 116244179B
Authority
CN
China
Prior art keywords
system firmware
firmware
security
complexity
function point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202211623357.6A
Other languages
English (en)
Other versions
CN116244179A (zh
Inventor
卢炬
谢乾
吴平
高杰
高黎明
曹胜明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu Zhuoyi Information Technology Co ltd
Kunshan Byosoft Electronic Technology Co ltd
Nanjing Zhuoyi Information Technology Co ltd
Shanghai Baizhiao Information Technology Co ltd
Nanjing Byosoft Co ltd
Original Assignee
Jiangsu Zhuoyi Information Technology Co ltd
Kunshan Byosoft Electronic Technology Co ltd
Nanjing Zhuoyi Information Technology Co ltd
Shanghai Baizhiao Information Technology Co ltd
Nanjing Byosoft Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jiangsu Zhuoyi Information Technology Co ltd, Kunshan Byosoft Electronic Technology Co ltd, Nanjing Zhuoyi Information Technology Co ltd, Shanghai Baizhiao Information Technology Co ltd, Nanjing Byosoft Co ltd filed Critical Jiangsu Zhuoyi Information Technology Co ltd
Priority to CN202211623357.6A priority Critical patent/CN116244179B/zh
Publication of CN116244179A publication Critical patent/CN116244179A/zh
Application granted granted Critical
Publication of CN116244179B publication Critical patent/CN116244179B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开一种可自我改善的系统固件度量方法,属于计算机技术领域,确定并采用系统固件通用系统特征和系统固件安全性特征作为影响因子,分别评估系统固件复杂度和系统固件安全性;将计算获得的系统固件复杂度和系统固件安全性分别与类比法获得的粗粒度估算结果进行比对、改进和迭代,建立固件项目度量经验库,实现固件度量数据库的自我完善。本发明通过对复杂度和安全性特征的重新定义,使得系统固件行业可以用成熟的软件功能点计算方法来比较准确、系统地估算系统固件项目的工作量和安全性等重要度量;为计算机生态系统中的芯片、主板、独立BIOS、整机品牌和原始设备设计厂商进行系统固件工程项目的度量提供了一整套技术方案。

Description

一种可自我改善的系统固件度量方法
技术领域
本发明属于计算机技术领域,具体涉及一种可自我改善的系统固件度量方法。
背景技术
计算机系统固件是计算机负责启动、管理系统的软件,通常驻留在只读存储器里,典型如目前的主流可扩展的固件接口UEFI固件等,它是连接计算机芯片和操作系统的桥梁。在新款中央处理器、芯片组、计算机主板和整机的研发过程中都涉及系统固件的开发工程。系统固件技术跨CPU芯片和操作系统,开发时需要软、硬、固件密切配合。目前国产CPU厂商和架构较多,技术发展阶段与成熟度各异,固件开发与平台移植的复杂度很难准确量化,平台移植项目工作量可能因此相差几十倍。以往常用粗粒度类比方法来估计成本(如以人月为单位的工程量),而极少采用软件度量模型进行计划和评估。
系统固件可以被看成一类软件,通常开发工作包含但不限于:开发客户参考板、根据客户参考板进行客制化开发、适配不同处理器和芯片组、外接板卡固件开发等,因此基于纯软件开发环境的通行的软件度量方法并不适用于今天的系统固件项目因而甚少被实际工程使用,勉强使用的结果也和实际运行情况相差甚远。
业界目前并没有专门针对系统固件的度量理论与模型,直接采用现有软件的度量方法则偏差很大因而无使用价值,主因在于固件是一类和硬件密切相关的软件,系统固件项目在规模、功能、质量等度量属性上差别很大,软件的通用度量方法也没有考虑和反映系统固件工程的属性或特征及影响它们的因素。
发明内容
本发明解决的技术问题:提供一种通过对复杂度和安全性特征的重新定义,使得系统固件行业可以用成熟的软件功能点计算方法来比较准确、系统地估算系统固件项目的工作量和安全性等重要度量的可自我改善的系统固件度量方法。
技术方案:为了解决上述技术问题,本发明采用的技术方案如下:
一种可自我改善的系统固件度量方法,确定并采用系统固件通用系统特征和系统固件安全性特征作为影响因子,分别评估系统固件复杂度和系统固件安全性。
作为优选,采用功能点计算法计算系统固件复杂度和系统固件安全性。
作为优选,采用功能点计算法计算系统固件复杂度的方式如下:
FP=总计数×(0.65+0.01×SUM(Fi))(i=1……14)
式中,FP表示系统固件复杂度,总计数表示未经加权因数、影响因子修正过的原始功能点计数,Fi表示系统固件通用系统特征,计算之前将每个系统固件通用系统特征进行分析和取值。
作为优选,系统固件安全性计算方法为:
FSM=总计数×(0.65+0.01×SUM(Si))(i=1……8)
式中,FSM表示系统固件安全性,总计数表示未经加权因数、影响因子修正过的原始功能点计数,Si表示系统固件安全性特征,计算之前将每个系统固件安全性特征进行分析和取值。
作为优选,将计算获得的系统固件复杂度和系统固件安全性分别与类比法获得的粗粒度估算结果进行比对、改进和迭代。
作为优选,根据获得的评估系统固件复杂度和系统固件安全性结果建立固件项目度量经验库,实现固件度量数据库的自我完善。
作为优选,在确定系统固件通用系统特征和系统固件安全性特征之前,根据系统固件的需求,确定重要的度量属性。
作为优选,然后通过类似项目的经验来粗粒度地预估项目的主要度量属性。有益效果:与现有技术相比,本发明具有以下优点:
(1)本发明从实践归纳出系统固件重要特征属性,并改变软件功能点度量的GSC(General System Characters,或称通用系统特征)来使软件功能点计算法适用于系统固件的度量计算,其关键在于解决了固件工程的复杂度的问题,从而准确地评估系统固件项目的工作量、质量、代码复用率等重要指标;同时本发明也提出了影响系统固件安全性的影响因子(特征属性),使之配合现有软件功能点计算方法,量度出系统固件的安全性量化指标。
(2)本发明提出了影响系统固件度量的影响因子,并用于功能点计算法获得较精确的度量结果,然后和类比法获得的粗粒度估算结果进行比对、改进和迭代,提出并完善了一套估算系统固件工程项目较准确的方法,为计算机生态系统中的芯片厂商、主板厂商、独立BIOS厂商、整机品牌厂商和原始设备设计厂商进行系统固件工程项目的度量提供了一整套技术方案。
(3)本发明在度量系统固件项目、如评估复杂度和安全性时,用全新的影响因子和加权因数,正确反映出系统固件工程的复杂度和需要重点追踪的度量属性,使软件功能点计算方法能够更准确地获得和系统固件工程项目实际运行接近的结果;并通过建立和使用系统固件项目度量经验库,达到自我完善、不断提高的效果。
附图说明
图1是可自我改善的系统固件度量方法结构示意图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,实施例在以本发明技术方案为前提下进行实施,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围。
如图1所示,本申请的可自我改善的系统固件度量方法,选用软件功能点度量法,重建复杂性校正属性GSC(General System Characters),使之更适合系统启动固件领域的实际情况,提出并验证了度量复杂度和安全性的加权因数和影响因子(或者称加权因子或者复杂性值),并采用自我完善的系统固件度量方法来不断完善本次和将来工程项目的评估。流程图如图1所示,具体包括以下步骤:
S1:根据系统固件的需求,确定重要的度量属性
在获得系统固件项目的详细需求清单后,先按表1确定该项目交付时需要保证的重要度量属性。具体的度量属性包括低优先级属性、中优先级属性和高优先级属性,其中低优先级属性包括代码行数。中优先级属性包括二进制文本大小,测试覆盖率,注释密度,代码审查比例,复杂度和已知缺陷数目。高优先级属性包括规范符合度(含安全设计),加载、执行、唤醒时间,新芯片组平台点亮时间,缺陷逃逸数量,新平台移植工作量,开发成本,缺陷数量与严重程度,代码付复用率等。
然后,按照以往类似项目的经验用类比法预估项目的主要度量属性,如按照人月衡量工作量(规模)、安全性、质量指标等,即类比法。即使系统启动固件工程都是独特的,但也具有一定的参考价值。如刚开始没有以往的类似项目参考可先跳过这一步。
表1系统固件重要度量属性表
S2:对系统的固件通用系统特征进行分析和取值,然后选择合适的加权因数,采用软件功能点计算法计算系统固件复杂度。
依据表2中所示的系统固件通用系统特征,对表中关注的属性进行功能点计算,配合表3的加权因数选择,采用软件功能点计算法计算系统固件复杂度:
FP=总计数×(0.65+0.01×SUM(Fi))(i=1……14)
式中,总计数表示未经加权因数、影响因子修正过的原始功能点计数。总计数反映复杂度,对各属性都有影响,Fi表示系统固件通用系统特征,本发明中列出的系统固定特性包括F1~F14,系统固件特征的定义以及取值如表2所示。
表2系统固件通用系统特征表(影响因子)
系统固件通用系统特征(影响因子)的取值方式举例:假设被度量的工程项目比较严格地遵循UEFI和ACPI较新规范(但并非最新版),F1和F2均选0;有开源社区和可下载的参考实现,且基础代码版本较新(但并非最新),F3选2;可以实现支持多种异构CPU且在这次工程中无需实现,F4选2;项目跨芯片组支持F5=5;以前做过多种整机厂的同一个平台,F6=0;项目要求既支持Windows11又支持某些Linux发行版,F7=5;操作系统对启动、唤醒较容易实现:F8=0;实现支持在线升级功能F9=5;F10-F12是对本工程组织的自我评估,完全具备,F10、F11、F12均为0;项目要求全部代码测试覆盖F13=5;需要数字签名,F14=5。
使用软件功能点计算法计算功能计数举例:选择加权因数并计算总计数方式如表3所示:确定信息域参数,并对各信息域参数进行计数,根据复杂程度选择加权因数,然后计算每个信息域参数的加权计数,将每个信息域参数的加权计数相加得到总计数。
信息域参数包括用户输入数、用户输出数、用户查询数、文件数、外部接口数等。本实施例中,根据实际情况选择信息域计数、加权因数,计算得出加权计数和总计数。
表3选择加权因数并计算总计数方式表(例)
生产率的计算方法为:
生产率=FP/PM
式中,PM表示工作量,1PM=一个工程师工作一个月;故生产率单位是:单位人月工作量产生的功能点数。
质量的计算方法为:
质量=错误数/FP
式中,错误数表示每个功能点产生的软件缺陷数。
质量的单位为:个/每功能点。
成本计算方法为:
成本=M/FP
式中,M指平均完成每个功能点的相应成本,此处按25万人民币/年估算。成本的单位为:元人民币/每功能点。
文档的计算方法为:
文档=文档页数/FP(页/每功能点)
文档单位为:页/每功能点。
本例中,新项目按照以往的经验,由类比法粗粒度估算的系统固件移植工作量是1人·年=12个人·月;对系统固件信息域的分析如表3所示,假设加权因数=3、4、3、10、7,总计数=604,F1=0,F2=0,F3=2,F4=2,F5=5,F6=0,F7=5,F8=0,F9=5,F10=0,F11=0,F12=0,F13=5,F14=5,错误数=338,每功能点成本M=440,文档页数=500,则计算所得为:
FP=604×(0.65+0.01×(0+0+2+2+5+0+5+0+5+0+0+0+5+5))=567.8,取568;生产率=FP/PM=568/12=47.3(每人月出产的功能点);质量=388/FP=0.595(个缺陷/每功能点);文档=文档页数500/FP=0.88(页/每功能点)。
然后和上面步骤S1的类比法所得结果进行比较,如相差较大(如20%以上偏差),可以返回到前面再做一次估算(调整加权因数和影响因子取值,根据具体项目的实际情况进行判断,思路是越相关(复杂)取值越高,没有或毫不相关取0,参见表2),自我完善直至结果符合度达到预期。当工程项目结束时,检查结果并将此次实际数据加入经验数据库供以后工程项目参考。对经验数据库的管理还可以采用按重要属性加权方法供未来使用。
在初始状态,类比法只能初步估算出大致总工作量,无法提供其他几项度量;但随着采用本发明的方法的项目逐步增加,这些度量就越来越变得有可比性。
S3:对系统固件安全性特征进行分析和取值,然后选择合适的加权因数,采用软件功能点计算法计算系统固件安全性。
与S2相似方法也可以用来对系统启动固件的安全性进行度量。挑选对系统固件安全影响最大的8项特征进行计算,8项特征如表4所示,影响力主要特征仅此8项更加重要突出。系统固件安全性计算方法为:
FSM=总计数×(0.65+0.01×SUM(Si))(i=1……8)
或者采用十分制:FSMd=0.25×SUM(Si)(i=1……8),此时更为直观,易于比较。
式中,总计数表示未经加权因数、影响因子修正过的原始功能点计数,Si表示系统固件安全性特征。
本发明中列出的系统固定特性包括S1~S8,分别为固件安全设计规范,固件安全技术,工程组织身份成熟度/安全资质,工程组织安全设计流程,代码审查机制,使用工具进行漏洞筛查、固件数字签名,固件系统测试和模拟攻击测试。系统固件安全性特征的定义以及取值如表4所示。
表4系统启动固件安全属性表(影响因子)
S1~S8取值范围0~5,按“有”和成熟度,越安全选越大值。
针对同一个项目计算不同属性,总计数的计算方式同表3。
本专利选用软件功能点度量法,重建复杂性校正属性GSC(General SystemCharacters),使之更适合系统启动固件领域的实际情况,提出并验证了度量复杂度和安全性的加权因数和影响因子,并采用自我完善的系统固件度量方法来不断完善本次和将来工程项目的评估。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (1)

1.一种可自我改善的系统固件度量方法,其特征在于:确定并采用系统固件通用系统特征和系统固件安全性特征作为影响因子,分别评估系统固件复杂度和系统固件安全性;
采用功能点计算法计算系统固件复杂度和系统固件安全性,采用功能点计算法计算系统固件复杂度的方式如下:
FP=总计数×( 0.65+0.01×SUM( Fi ) )(i=1……14)
式中,FP表示系统固件复杂度,总计数表示未经加权因数、影响因子修正过的原始功能点计数,Fi表示系统固件通用系统特征,计算之前将每个系统固件通用系统特征进行分析和取值;
系统固件安全性计算方法为:
FSM=总计数×( 0.65+0.01×SUM( Si ) )(i=1……8)
式中,FSM表示系统固件安全性,总计数表示未经加权因数、影响因子修正过的原始功能点计数,Si表示系统固件安全性特征,计算之前将每个系统固件安全性特征进行分析和取值;
将计算获得的系统固件复杂度和系统固件安全性数值分别与类比法获得的粗粒度估算结果进行比对、改进和迭代;根据获得的评估系统固件复杂度和系统固件安全性结果建立固件项目度量经验库,实现固件度量数据库的自我完善;
在确定系统固件通用系统特征和系统固件安全性特征之前,根据相应系统固件的需求,确定优先的度量属性;然后通过类似项目的经验用类比法预估项目的主要度量属性。
CN202211623357.6A 2022-12-16 2022-12-16 一种可自我改善的系统固件度量方法 Active CN116244179B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211623357.6A CN116244179B (zh) 2022-12-16 2022-12-16 一种可自我改善的系统固件度量方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211623357.6A CN116244179B (zh) 2022-12-16 2022-12-16 一种可自我改善的系统固件度量方法

Publications (2)

Publication Number Publication Date
CN116244179A CN116244179A (zh) 2023-06-09
CN116244179B true CN116244179B (zh) 2024-06-04

Family

ID=86635483

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211623357.6A Active CN116244179B (zh) 2022-12-16 2022-12-16 一种可自我改善的系统固件度量方法

Country Status (1)

Country Link
CN (1) CN116244179B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106919373A (zh) * 2015-12-28 2017-07-04 北京计算机技术及应用研究所 一种程序代码质量评估方法
CN109460908A (zh) * 2018-10-29 2019-03-12 成都安美勤信息技术股份有限公司 软件工程的造价评估方法
CN110084439A (zh) * 2019-05-09 2019-08-02 浪潮软件集团有限公司 一种基于nesma功能点估算的软件成本度量方法及云系统
CN111338972A (zh) * 2020-03-30 2020-06-26 北京计算机技术及应用研究所 基于机器学习的软件缺陷与复杂度关联关系分析方法
CN114327587A (zh) * 2022-01-05 2022-04-12 北京京航计算通讯研究所 一种嵌入式军用软件质量评价方法、系统及存储介质
CN114706559A (zh) * 2022-03-29 2022-07-05 山东省计算中心(国家超级计算济南中心) 一种基于需求识别的软件规模度量方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070276712A1 (en) * 2006-05-24 2007-11-29 Kolanchery Renjeev V Project size estimation tool

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106919373A (zh) * 2015-12-28 2017-07-04 北京计算机技术及应用研究所 一种程序代码质量评估方法
CN109460908A (zh) * 2018-10-29 2019-03-12 成都安美勤信息技术股份有限公司 软件工程的造价评估方法
CN110084439A (zh) * 2019-05-09 2019-08-02 浪潮软件集团有限公司 一种基于nesma功能点估算的软件成本度量方法及云系统
CN111338972A (zh) * 2020-03-30 2020-06-26 北京计算机技术及应用研究所 基于机器学习的软件缺陷与复杂度关联关系分析方法
CN114327587A (zh) * 2022-01-05 2022-04-12 北京京航计算通讯研究所 一种嵌入式军用软件质量评价方法、系统及存储介质
CN114706559A (zh) * 2022-03-29 2022-07-05 山东省计算中心(国家超级计算济南中心) 一种基于需求识别的软件规模度量方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
On the Relationship between Software Complexity and Security;Mamdouh Alenezi;International Journal of Software Engineering & Applications;20200131;全文 *
软件评估方法及其运用;孙伟华;中国优秀硕士学位论文全文数据库 (经济与管理科学辑);20131116;J152-1496 *

Also Published As

Publication number Publication date
CN116244179A (zh) 2023-06-09

Similar Documents

Publication Publication Date Title
US8386851B2 (en) Functional coverage using combinatorial test design
US8707268B2 (en) Testing operations of software
US9317401B2 (en) Prioritizing test cases using multiple variables
US9753838B2 (en) System and method to classify automated code inspection services defect output for defect analysis
US9710257B2 (en) System and method to map defect reduction data to organizational maturity profiles for defect projection modeling
US9507695B2 (en) Risk-based test coverage and prioritization
US7031901B2 (en) System and method for improving predictive modeling of an information system
US7035786B1 (en) System and method for multi-phase system development with predictive modeling
Tickoo et al. Testing effort based modeling to determine optimal release and patching time of software
Haque et al. Key issues in software reliability growth models
CN116244179B (zh) 一种可自我改善的系统固件度量方法
CN115543435A (zh) 基于开发贡献值的软件开发质量衡量方法、装置及设备
US20220188221A1 (en) Regression testing method and regression testing apparatus
WO2022061779A1 (zh) 基于变更相关性分析的测试用例选择方法及装置
CN110008098B (zh) 评估业务流程中的节点的运行状况的方法和装置
Bokhari et al. Integration of Testing Effort Function into Delayed S-Shaped Software Reliability Growth Model with Imperfect Debugging—a Proposed Bokhari Model
Samal et al. Fault removal efficiency: A key driver in software reliability growth modeling
US20080256229A1 (en) Detecting Machine Utilization Activity
Becker et al. A Testing Pipeline for Quantum Computing Applications
US20210304070A1 (en) Machine learning model operation management system, operation management method, and computer readable recording medium
Nijhawan et al. Software reliability modeling and assessment integrating time dependent fault reduction factor in random environment
Tripathi Software Reliability Metrics
Witte Metrics for Software Quality
CN115454842A (zh) 可复用软件测试用例方法、装置、设备和存储介质
Robert et al. Convergence monitoring and adaptation for MCMC algorithms

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant