CN102156638A - 客制化软件源码的更新方法 - Google Patents

客制化软件源码的更新方法 Download PDF

Info

Publication number
CN102156638A
CN102156638A CN2010101215708A CN201010121570A CN102156638A CN 102156638 A CN102156638 A CN 102156638A CN 2010101215708 A CN2010101215708 A CN 2010101215708A CN 201010121570 A CN201010121570 A CN 201010121570A CN 102156638 A CN102156638 A CN 102156638A
Authority
CN
China
Prior art keywords
software
source codes
customized
software source
program code
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.)
Pending
Application number
CN2010101215708A
Other languages
English (en)
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.)
WEILIAN TECHNOLOGY CO LTD
Original Assignee
WEILIAN TECHNOLOGY 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 WEILIAN TECHNOLOGY CO LTD filed Critical WEILIAN TECHNOLOGY CO LTD
Priority to CN2010101215708A priority Critical patent/CN102156638A/zh
Publication of CN102156638A publication Critical patent/CN102156638A/zh
Pending legal-status Critical Current

Links

Abstract

本发明是一种客制化软件源码的更新方法,其主要是在旧版的软件源码基础下,当公版核心程序代码作更新时,能将所述旧版软件源码作增益修改,以产生新版的软件源码的方法;所述软件源码至少包括有一个公版核心程序代码及一个客制化程序代码两部分;其中,所述公版核心程序代码为控制硬件的软件程序代码;其中,所述客制化程序代码为配合使用者的需求作功能增减的软件程序代码;当公版核心程序代码作更新时,借助软件更新工具自动地依脚本追踪及了解软件源码版本间的异动及差异,而作增益修改,以产生符合客户需求的最终源码,这样可增加项目生产力及降低工时成本,保持高昂的竞争力。

Description

客制化软件源码的更新方法
技术领域
本发明是有关于一种更新客制化(customize)软件源码的方法,尤指当公版的核心程序代码作局部修改时,能快速且精确地针对新旧版本间的异动及差异,而作增益修改,以产生符合客户需求的最终软件源码。
背景技术
在软件公司的营运模式里,通常有超过50%以上的项目性质是在既有开发厂商提供的软件源码(Source Code)(即所谓公版)基础下作客制化修改;当然,愈少的人工介入修改,其所花成本及工作时间也会相对减少,这样就能创造更多的利润。
以高阶应用软件为例,软件开发厂商会在既有的Windows API函数、驱动程序(Driver)、自订基底函式库及Third-Party组件(Component)的基础下,依功能作模块化切割,当客户不需要某些功能模块时,必须以人工依功能需求修改相对应的逻辑程序代码。而且,随着底层引用的基础共享函式库或Third-Party组件的版本更迭,呼叫程序代码也得随的修改。
再以硬件芯片轫体为例,多数计算机统厂商会有自己的计算机平台(platform)规划,为自己的产品添加特色,或者要市场上做功能区隔,例如:增加不同的零组件(如EC芯片、Super I/O芯片、南桥芯片、SCSI控制器芯片、IDE/RAID控制芯片或100/1000Mbps Etherent等等),以及加入不同控制程序、除错程序等。因此不见得都与芯片厂商提供的公版设计相同,此时,为配合计算机厂商的不同需求,硬件芯片厂商所提供的标准软件源码模块(如EC,BIOS)就得有所变动。
由于,在软件源码的架构都具有核心共享部分,这样可贯彻软件开发工程的reuse精神,所述核心共享部分我们称为核心基底源码(KernelCodebase,以下简称KC)。所述核心基底源码有时候是向外购买而来,例如芯片厂商会提供其控制硬件的核心软件程序代码;再通过软件开发厂商在其核心基底源码基础上作整合性的客制化功能增减,以达到计算机厂商的需求。
然而,所述软件源码随着时间不断演进及更新,增加所述软件源码版本上控制的复杂度,因此作好版本控制是很重要的,然而,即使不同版本的软件源码独立成一份,每次要配合使用者作客制化修改时,软件开发厂商必须追踪及了解每版本间的软件源码异动及差异,即使用比对软件来列出差异处,仍然得用人工方式对新版源码作修正。
因此,本发明人有鉴于现有更新客制化软件源码功能应用上的不足现状,本案发明人即着手研发其解决方案,希望能开发出一种更具效果性及经济性的更新软件源码的方法,以服务社会大众及促进此业的发展,遂经多时的构思而有本发明的产生。
发明内容
本发明的一个目的,在提供一种客制化软件源码的更新方法,其主要方法是当组件开发厂商所提供的核心基底源码(KC)作局部修改时,软件开发厂商能追踪及了解新旧版本间的异动及差异,能及时且快速地整合新版的核心基底源码,及配合使用者需求而所开发的功能客制化程序代码作增益修改,以符合使用者需求。
本发明的再一个目的,在提供一种客制化软件源码的更新方法,借助批次软件工具自动地依脚本(Script)追踪及了解软件源码版本间的异动及差异,而作增益修改,以产生符合客户需求的最终软件源码,这样可增加项目生产力及降低工时成本时间,保持高昂的竞争力。
为达上述目的,本发明一种客制化软件源码的更新方法,应用于各种源码的软件/轫体客制化修改(如UI Code,Base Library,API/Driver,BIOS,Chipset Firmware)的软件更新,该方法,所采用的技术手段包括:
(1)将配合使用者需求的软件源码区分为两部分,一个为公版核心程序代码及另一个为功能客制化程序代码;其中,所述公版核心程序代码为控制硬件的软件程序代码;其中,所述功能客制化程序代码为配合使用者的需求所作的功能增减的软件程序代码;
(2)将新版的公版核心程序代码写在软件更新工具(Porting Script)里,并借助所述软件更新工具分析所述公版核心程序代码的指令及数据,其指令内容有逻辑判断、开文件、搜寻指令、加行、减行等指令;
(3)同时,选择前版的公版核心程序代码及功能客制化程序代码的脚本(Script),借助软件更新工具分析其指令及数据;
(4)承上述(2),判断功能客制化程序代码的脚本逻辑条件,并依序执行修改指令;
(5)产生新版的软件源码。
其中,指令内容有逻辑判断、开文件、搜寻指令、加行、减行等指令。
其中,逻辑指令为判定区块内指令是否执行,包括:条件定义(IFDEF),或取消条件定义(IFNDF),或结束条件执行(ENDIF)。
其中,定义指令为定义区块卷标,包括:定义/字符串置换(DEF),或取消DEF定义(NDEF)。
其中,开启文件指令为开启(OPEN)档案。
其中,操作指令如:搜寻、加行、减行或如批注字符、修改范围自订mark等指令。
其中,所述软件更新工具提供软件源码的还原(Restore)及记录(Log)等功能。
其中,所述软件更新工具处理的软件源码对象为Assembly,C/C++,C#,Java等各种程序语言。
其中,软件更新工具具有开文件字符串编码支持,且是使用二进制(Binary)方式读文件且作字符串操作。
其中,软件更新工具在程序代码的脚本加载时,进行多次的语意筛选及精简过滤,达到智能与效能的双效俱进。
其中,软件更新工具具有模糊字符串搜寻比对。
其中,软件更新工具具有档案多层路径处理,可以读取多层子目录的档案,最后输出时也依多层目录方式建立。
其中,软件更新工具具有内存处理操作,其是使用链接串行(LinkingList)达接技术来实作字符串的插入及移除。
本发明的有益效果:
当公版核心程序代码作更新时,借助批次软件工具自动地依脚本(Script)追踪及了解软件源码版本间的异动及差异,而作增益修改,以产生符合客户需求的最终源码,这样可增加项目生产力及降低工时成本,保持高昂的竞争力。
附图说明
图1为本发明作用流程示意图。
组件的图号说明:
S01将配合使用者需求的软件源码区分为1.公版核心码2.功能客制化程序代码;
S02将新版的公版核心程序代码写在软件更新工具(Porting Script);
S03选择前版的公版核心程序代码及功能客制化程序代码的脚本,借助软件更新工具分析其指令及数据;
S04判断功能客制化程序代码的脚本逻辑条件,并依序执行修改指令;
S05产生新版的软件源码。
具体实施方式
为对本发明能具更深入的认识与了解,兹举实施例配合图式,详细说明如下:
本发明是一种客制化软件源码的更新方法,可以应用在各种源码的软件/轫体客制化修改(如UI Code,Base Library,API/Driver,BIOS,ChipsetFirmware),并不局限特定领域或程序语言。下列应用于嵌入式控制(Embedded Controller)的轫体更新为例,请参照图1所示,所述方法包括有:
步骤S01:将配合使用者需求的软件源码区分为两部分,一个为公版核心程序代码及另一个为功能客制化程序代码;其中,所述公版核心程序代码为控制硬件的软件程序代码;其中,所述功能客制化程序代码为配合使用者的需求所作功能增减的软件程序代码;
步骤S02:将新版的公版核心程序代码写在软件更新工具(PortingScript)里,并借助所述软件更新工具分析所述公版核心程序代码的指令及数据,其指令内容有逻辑判断、开文件、搜寻指令、加行、减行等指令,其指令内容进一步包含有:
逻辑指令:其是判定区块内指令是否执行:包括条件定义(IFDEF),或取消条件定义(IFNDF),或结束条件执行(ENDIF);
定义指令:其是定义区块卷标,包括定义/字符串置换(DEF),或取消DEF定义(NDEF);
开文件指令:其是开启(OPEN)档案;
操作指令,如:搜寻、加行、减行;或批注字符、修改范围自订mark等指令;
并且所述软件更新工具也提供软件源码的还原(Restore)及记录(Log)等功能,方便软件人员测试比对。
步骤S03:同时,选择前版的公版核心程序代码(KC Codebase)及前版的功能客制化程序代码的脚本,并借助软件更新工具分析其指令及数据;
步骤S04:承上述步骤S02,判断功能客制化程序代码的脚本逻辑条件,并依序执行修改指令;
步骤S05:产生新的软件源码。
同时,本发明的软件更新工具批处理的软件源码对象不限程序语言,可用在Assembly,C/C++,C#,Java等各种程序语言;其技术重点如下:
1.开文件字符串编码支持:
本软件更新工具使用二进制(Binary)方式读文件且作字符串操作,以克服开档源码的问题;由于核心基底源码的写作风格或档案特性都不同,有些芯片厂商会在核心基底源码内放入不可视的特殊隐藏字符,假如只以ASCII方式开启源码作处理,会发生问题。
2.软件更新工具分析编译:
要正确执行程序代码的脚本(Script)内的指令,必须对程序代码的脚本具有良好的分析及解读能力,所述软件更新工具在程序代码的脚本加载时,进行多次的语意筛选及精简过滤,达到智能与效能的双效俱进。
3.模糊字符串搜寻比对:
在一个文字源码文件内,要在适当的位置插入或移入自订字符串,必须先使用搜寻指令以达到定位效果。然而,搜寻的字符串若使用精确比对(意即一模一样)方式,往往所述核心基底源码被芯片厂商异动就搜寻失败(例如多加上一些空白或作排版,甚至加上批注文字)。本软件更新工具在搜寻字符串时,除了非采精确比对的方式外,还使用模糊比对,即将欲比对的文字经过重新整理过滤,即使双方字符串字数不同,但只要语意上是相同的,也可被搜寻到。
4.档案多层路径处理:
所述核心基底源码目录下档案,往往以许多子目录存放,本软件更新工具可以读取多层子目录的档案,最后输出时也依多层目录方式建立。
5.内存处理操作:
本软件使用链接串行(Linking List)达接技术来实作字符串的插入及移除,以快速的内存为操作空间,最后处理完才写入档案,比起频繁使用子档案作处理的方式,效能上快上数倍。
以上所述,仅为本发明的较佳实施例而已,当不能限定本发明实施的范围,故凡是类似的变更或置换,或依本发明权利要求所作的均等变化与修饰,皆应仍属本发明专利涵盖的范畴。

Claims (13)

1.一种客制化软件源码的更新方法,应用于各种源码的软件/轫体客制化修改的软件更新,其特征在于,该方法包括如下:
(1)将软件源码区分为两部分,一个为公版核心程序代码,其是控制硬件的软件程序代码;一个功能客制化程序代码,其是针对个别需求控制硬件的软件程序代码;
(2)将新版的公版核心程序代码写在软件更新工具里,并借助所述软件更新工具分析所述公版核心程序代码的指令及数据;
(3)同时,选择前版的公版核心程序代码及前版的功能客制化程序代码的脚本,并借助软件更新工具分析其指令及数据;
(4)承上述(2),判断所述功能客制化程序代码的脚本逻辑条件,并依序执行修改指令;
(5)产生新的软件源码。
2.如权利要求1所述的客制化软件源码的更新方法,其特征在于,其指令内容有逻辑判断、开文件、搜寻指令、加行、减行指令。
3.如权利要求2所述的客制化软件源码的更新方法,其特征在于,其逻辑指令为判定区块内指令是否执行,该逻辑指令包括为:条件定义(IFDEF),或取消条件定义(IFNDF),或结束条件执行(ENDIF)。
4.如权利要求2所述的客制化软件源码的更新方法,其特征在于,其定义指令为定义区块卷标,该定义指令包括为:定义/字符串置换(DEF),或取消DEF定义(NDEF)。
5.如权利要求2所述的客制化软件源码的更新方法,其特征在于,其开文件指令为开启(OPEN)档案。
6.如权利要求2所述的客制化软件源码的更新方法,其特征在于,其操作指令为搜寻、加行、减行或批注字符、修改范围自订mark指令。
7.如权利要求1所述的客制化软件源码的更新方法,其特征在于,所述软件更新工具提供软件源码的还原及记录功能。
8.如权利要求1所述的客制化软件源码的更新方法,其特征在于,所述软件更新工具处理的软件源码对象为Assembly,C/C++,C#,Java各种程序语言。
9.如权利要求8所述的客制化软件源码的更新方法,其特征在于,其软件更新工具具有开文件字符串编码支持,且是使用二进制方式读文件且作字符串操作。
10.如权利要求8所述的客制化软件源码的更新方法,其特征在于,其软件更新工具在程序代码的脚本加载时,进行多次的语意筛选及精简过滤,达到智能与效能的双效俱进。
11.如权利要求8所述的客制化软件源码的更新方法,其特征在于,其软件更新工具具有模糊字符串搜寻比对。
12.如权利要求8所述的客制化软件源码的更新方法,其特征在于,其软件更新工具具有档案多层路径处理,可以读取多层子目录的档案,最后输出时也依多层目录方式建立。
13.如权利要求8所述的客制化软件源码的更新方法,其特征在于,其软件更新工具具有内存处理操作,其是使用链接串行(Linking List)达接技术来实作字符串的插入及移除。
CN2010101215708A 2010-02-11 2010-02-11 客制化软件源码的更新方法 Pending CN102156638A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010101215708A CN102156638A (zh) 2010-02-11 2010-02-11 客制化软件源码的更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010101215708A CN102156638A (zh) 2010-02-11 2010-02-11 客制化软件源码的更新方法

Publications (1)

Publication Number Publication Date
CN102156638A true CN102156638A (zh) 2011-08-17

Family

ID=44438146

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010101215708A Pending CN102156638A (zh) 2010-02-11 2010-02-11 客制化软件源码的更新方法

Country Status (1)

Country Link
CN (1) CN102156638A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104462599A (zh) * 2014-12-31 2015-03-25 闻泰通讯股份有限公司 多分支管理模式下客制化文件的维护方法
CN104765593A (zh) * 2014-01-06 2015-07-08 北京深思数盾科技有限公司 固件定制化的方法及可定制固件的硬件设备
CN105138387A (zh) * 2015-08-31 2015-12-09 惠州Tcl移动通信有限公司 一种软件的编译方法、装置及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1374589A (zh) * 2001-03-14 2002-10-16 开碁数位科技股份有限公司 以模块化方式更新执行中应用软件的系统及其方法
CN101384997A (zh) * 2006-03-01 2009-03-11 安讯士有限公司 用于对多个装置进行升级的方法及系统
CN101599047A (zh) * 2008-06-05 2009-12-09 埃森哲环球服务有限公司 软件升级分析系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1374589A (zh) * 2001-03-14 2002-10-16 开碁数位科技股份有限公司 以模块化方式更新执行中应用软件的系统及其方法
CN101384997A (zh) * 2006-03-01 2009-03-11 安讯士有限公司 用于对多个装置进行升级的方法及系统
CN101599047A (zh) * 2008-06-05 2009-12-09 埃森哲环球服务有限公司 软件升级分析系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104765593A (zh) * 2014-01-06 2015-07-08 北京深思数盾科技有限公司 固件定制化的方法及可定制固件的硬件设备
CN104462599A (zh) * 2014-12-31 2015-03-25 闻泰通讯股份有限公司 多分支管理模式下客制化文件的维护方法
CN104462599B (zh) * 2014-12-31 2017-11-28 闻泰通讯股份有限公司 多分支管理模式下客制化文件的维护方法
CN105138387A (zh) * 2015-08-31 2015-12-09 惠州Tcl移动通信有限公司 一种软件的编译方法、装置及系统

Similar Documents

Publication Publication Date Title
US11789715B2 (en) Systems and methods for transformation of reporting schema
US11620117B2 (en) Systems and methods for code clustering analysis and transformation
US10481884B2 (en) Systems and methods for dynamically replacing code objects for code pushdown
US11726760B2 (en) Systems and methods for entry point-based code analysis and transformation
US11836477B1 (en) Automated backward-compatible function updates
US20240045850A1 (en) Systems and methods for database orientation transformation
US20230244476A1 (en) Systems and methods for code analysis heat map interfaces
US20230244465A1 (en) Systems and methods for automated retrofitting of customized code objects
US8706771B2 (en) Systems and methods for analyzing and transforming an application from a source installation to a target installation
US8589873B2 (en) Software engineering system and method for self-adaptive dynamic software components
US20170351506A1 (en) Automating feature graduation
US20210318865A1 (en) Methods and arrangements to process comments
CN102156638A (zh) 客制化软件源码的更新方法
JP2014123249A (ja) 情報処理装置、プログラム、及び情報処理方法
TW201123010A (en) Updating method of customized-design software source code.
US9383991B2 (en) Automation in IT services and IT enabled services
US10120664B2 (en) Incremental build generation
US20230251958A1 (en) Code linting in dynamic application environments
US20130218875A1 (en) Table-driven enterprise-wide data integration
CN116088924A (zh) 一种用于自动驾驶系统的软件管理方法及系统
CN117687681A (zh) 一种低代码应用的版本管理方法及系统
CN104899012A (zh) 扩展基于脚本的应用程序的装置和方法
CN113297220A (zh) 数据的恢复方法、装置、计算机可读存储介质以及处理器
CN117608536A (zh) 缺口数据在线模版定制补录系统及其方法
JPH03202920A (ja) ユーザ資産の互換性の判定方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20110817