技术领域
[0001] 本案是有关于一种电子方法及系统,且特别是有关于一种程序内部与程序之间的连结方法及系统。
相关背景技术
[0002] 在软件开发过程中,会利用函数功能使得程序在撰写的过程中,可以加快开发速度以及保持程序逻辑的一致性。但有时会遇到多支相似度很高的程序,其零碎的程序片段无法用函数功能表达,这种零碎的程序片段通常会采用两种做法,一种是将程序复制后直接针对逻辑不同的程序片段调整,但是如果遇到多支程序都共用的程序片段时,只能分别各自调整,十分的麻烦。另一种是在不同的程序片段中利用判断式分别标注在不同情况下,该使用的程序片段,此方法的好处是只需要调整一次就可以适应各种情况,坏处是程序的可读性会变差,而且调整的程序段落若有问题,则会影响全部相关程序(例如调整三种不同逻辑的程序片段所共用的程序片段,则会影响到该三种不同逻辑的程序片段)。因此,针对多支相似度很高的程序,如何让零碎的程序片段能够只须改一次就可以让其他共用此程序片段的程序也能立即使用,同时保持多支程序的独立性,使得程序容易维护,为本领域待改进的问题之一。
具体实施方式
[0020] 以下揭示提供许多不同实施例或例证用以实施本发明的不同特征。特殊例证中的元件及配置在以下讨论中被用来简化本揭示。所讨论的任何例证只用来作解说的用途,并不会以任何方式限制本发明或其例证的范围和意义。此外,本揭示在不同例证中可能重复引用数字符号且/或字母,这些重复皆为了简化及阐述,其本身并未指定以下讨论中不同实施例且/或配置之间的关系。
[0021] 在全篇说明书与申请专利范围所使用的用词(terms),除有特别注明外,通常具有每个用词使用在此领域中、在此揭露的内容中与特殊内容中的平常意义。某些用以描述本揭露的用词将于下或在此说明书的别处讨论,以提供本领域技术人员在有关本揭露的描述上额外的引导。
[0022] 关于本文中所使用的“耦接”或“连接”,均可指二或多个元件相互直接作实体或电性接触,或是相互间接作实体或电性接触,而“耦接”或“连接”还可指二或多个元件相互操作或动作。
[0023] 在本文中,使用第一、第二与第三等等的词汇,是用于描述各种元件、组件、区域、层与/或区块是可以被理解的。但是这些元件、组件、区域、层与/或区块不应该被这些术语所限制。这些词汇只限于用来辨别单一元件、组件、区域、层与/或区块。因此,在下文中的一第一元件、组件、区域、层与/或区块也可被称为第二元件、组件、区域、层与/或区块,而不脱离本发明的本意。如本文所用,词汇“与/或”包含了列出的关联项目中的一个或多个的任何组合。本案文件中提到的“及/或”是指表列元件的任一者、全部或至少一者的任意组合。
[0024] 请参阅图1。图1是根据本案的一些实施例所绘示的一种程序连结系统100的示意图。如图1所绘示,程序连结系统100包含处理器110以及储存装置120。处理器110包含程序断开单元111以及程序融合单元112。储存装置120用以储存程序内容数据库,程序内容数据库中储存有多个通用程序片段内容以及多个程序组成表。处理器110与储存装置120电性耦接,建立用以产生第一程序的第一程序组成表,第一程序具有多个第一程序片段,以及建立用以产生第二程序的第二程序组成表,第二程序具有多个第二程序片段,第二程序组成表记录第二程序片段是否连结到第一程序组成表的第一程序片段。
[0025] 于一实施例中 ,处理器110可以 实施为集成电路如微控制单元(microcontroller)、微处理器(microprocessor)、数字信号处理器(digital signal processor)、特殊应用集成电路(application specific integrated circuit,ASIC)、逻辑电路或其他类似元件或上述元件的组合(实际上亦不需硬件处理)。储存装置120可以包括可携式计算机可读取记录媒体,例如记忆体、硬盘、随身盘、记忆卡等。某些实施例中,计算机程序及数据可以储存于可携式计算机可读取记录媒体上,并且可以经由I/O接口加载至储存装置102上。I/O接口也可以连接至显示器。
[0026] 请一并参阅图1及图2。图2是根据本案的一些实施例所绘示的一种程序连结方法200的流程图。如图2所示,程序连结方法200包含以下步骤:
[0027] 步骤S210:取得程序内容数据库储存的多个通用程序片段内容;
[0028] 步骤S220:建立用以产生第一程序的第一程序组成表;以及
[0029] 步骤S230:建立用以产生第二程序的第二程序组成表,第二程序组成表记录第二程序片段是否连结到第一程序组成表的第一程序片段。
[0030] 为使本案第一实施例的程序连结方法200易于理解,以A程序及B程序两支程序为例,并请一并参阅图1~图4。
[0031] 于步骤S210中,取得程序内容数据库储存的多个通用程序片段内容。通用程序片段内容指的是A程序的程序片段内容,A程序的程序片段内容会储存于程序内容数据库中,等到A程序需要时再从程序内容数据库中存取。
[0032] 于步骤S220中,建立用以产生第一程序的第一程序组成表。举例而言,第一程序在此处即为A程序,需建立A程序的程序组成表,如表一所示A程序总共有4个片段(Piece_a1~Piece_a4),每个片段都分别对应自己的版本,例如Piece_a1对应的是第2版本,因为A程序是没有引用其他的程序,因此也没有片段来源内容的版本信息。A程序各个程序片段的片段版本都会储存于程序内容数据库中,A程序的程序组成表是记录A程序的信息作为日后程序修改时的依据。
[0033] 表一:A程序的程序组成表
[0034]程序代号 程序版本 程序片段 片段版本 是否引用 片段来源内容版本
A程序 1 Piece_a1 2 否 无
A程序 1 Piece_a2 1 否 无
A程序 1 Piece_a3 3 否 无
A程序 1 Piece_a4 2 否 无
[0035] 于步骤S230中,建立用以产生第二程序的第二程序组成表,第二程序组成表记录第二程序片段是否连结到第一程序组成表的第一程序片段。举例而言,第二程序在此处即为B程序,需建立B程序的程序组程表,如表二所示B程序总共有4个片段(Piece_b1~Piece_b4),每个片段都分别对应自己的版本,例如Piece_b1对应的是第1版本,而B程序的第1版本是完全引用A程序,因此B程序的片段来源内容版本就是参照A程序的程序片段版本。
[0036] 表二:B程序的程序组成表
[0037]
[0038]
[0039] 请参阅图3,图3是根据本案的一些实施例所绘示的步骤S230的流程图。如图3所示,步骤S230包含以下步骤:
[0040] 步骤S231:判断第二程序片段是否连结到第一程序组成表的第一程序片段;
[0041] 步骤S232:第二程序组成表记录第二程序片段分别使用区域程序内容的其中之一;以及
[0042] 步骤S233:第二程序片段参照第一程序组成表的第一程序片段。
[0043] 于步骤S231中,会判断第二程序片段是否连结到第一程序组成表的第一程序片段。在表二中B程序都有引用A程序的程序片段,因此在判断为“是”后,会进入步骤S233,第二程序片段参照第一程序组成表的第一程序片段,举例而言,B程序的片段Piece_b1是引用A程序的片段Piece_a1的第2版本。
[0044] 接续前述,如果在步骤S231中判断为“否”,意思即为第二程序片段不参照第一程序组成表的第一程序片段,会接着执行步骤S232,第二程序组成表记录第二程序片段分别使用区域程序内容的其中之一,请参考表三所示的范例,在表三中,B程序的片段Piece_b2及片段Piece_b4都不引用A程序的程序片段,因此B程序的片段Piece_b2及片段Piece_b4的程序内容,会使用储存在程序内容数据库中的区域程序内容,区域程序内容指的是B程序的程序片段内容。步骤S231及步骤S232的操作即为程序断开单元111,当程序断开后B程序不会再引用A程序的程序片段,可以自行调整属于B程序的内容,不会因为A程序的修改而变动到B程序。
[0045] 表三:B程序的程序组成表-断开调整
[0046]
[0047]
[0048] 在另一实施例中,请参阅图4,图4是根据本案的一些实施例所绘示的一种程序连结方法400的流程图。如图4所示,程序连结方法400包含以下步骤:
[0049] 步骤S410:取得程序内容数据库储存的多个通用程序片段内容;
[0050] 步骤S420:建立用以产生第一程序的第一程序组成表;
[0051] 步骤S430:如果第一程序片段的其中之一更新通用程序片段内容的其中之一;
[0052] 步骤S440:产生新的对应于通用程序片段内容的其中之一的片段版本编号;
[0053] 步骤S450:判断第二程序片段是否连结到第一程序组成表的第一程序片段;
[0054] 步骤S460:第二程序组成表记录这些第二程序片段分别使用这些区域程序内容的其中之一;以及
[0055] 步骤S470:更新第二程序片段的片段版本编号。
[0056] 于步骤S410及步骤S420中,取得程序内容数据库储存的多个通用程序片段内容,及建立用以产生第一程序的第一程序组成表的方法请分别参考步骤S210及步骤S220,由于方法相同,产生的第一程序组成表可参考表一,因此在此不再赘述。
[0057] 于步骤S430及步骤S440中,如果第一程序片段的其中之一更新通用程序片段内容的其中之一,以及产生新的对应于通用程序片段内容的其中之一的片段版本编号。举例而言,请一并参考表四,如表四所示A程序新增加片段Piece_a5,并且片段Piece_a3由第3版本调整为第4版本,更新片段版本栏位的编号,因此A程序更新为第2版本。
[0058] 表四:A程序的程序组成表-版本调整
[0059]
[0060]
[0061] 于步骤S450中,会判断第二程序片段是否连结到第一程序组成表的第一程序片段。举例而言,请一并参考表五,如表五所示B程序参照A程序更新版本,由版本1更新至版本2,也新增加片段Piece_b5,而片段Piece_b3及片段Piece_b5都是引用A程序的第2版本的程序内容,片段Piece_b3及片段Piece_b5的片段来源内容版本栏位都是引用A程序的片段Piece_a3及片段Piece_a5的第4版本。
[0062] 表五:B程序的程序组成表-版本调整
[0063]程序代号 程序版本 程序片段 片段版本 是否引用 片段来源内容版本
B程序 2 Piece_b1 1 是 2
B程序 2 Piece_b2 1 否 无
B程序 2 Piece_b3 2 是 4
B程序 2 Piece_b4 1 否 无
B程序 2 Piece_b5 2 是 4
[0064] 接续前述,如果在步骤S450中判断为“否”,意思即为第二程序片段不参照第一程序组成表的第一程序片段,会接着执行步骤S460,第二程序组成表记录第二程序片段分别使用区域程序内容的其中之一,在表五中,B程序的片段Piece_b2及片段Piece_b4都不引用A程序的程序片段,因此B程序的片段Piece_b2及片段Piece_b4的程序内容,会引用储存在程序内容数据库中的区域程序内容,此步骤与S232相同。
[0065] 接续前述,如果在步骤S450中判断为“是”,会进入步骤S470,更新第二程序片段的片段版本编号,在表5中,B程序的片段Piece_b3及片段Piece_b5都会随着A程序的片段Piece_a3及片段Piece_a5更新为第4板本而更新至第2版本。
[0066] 接续前述,步骤S430及步骤S440的操作即为程序融合单元112。B程序可以随着A程序的版本更新而一起更新,因此可以只修改A程序的内容,只要有参照A程序的其他程序都可以同步更新,不用再逐一更新程序。步骤S450及步骤S460的操作即为程序断开单元111,功能同步骤S231及步骤S232。因此在程序连结方法400中,结合了程序断开单元111以及程序融合单元112,因此程序A可以利用程序融合单元112将程序B有引用的程序片段都融合进入程序B中,在利用程序断开单元111切断B程序与A程序间的引用关系,让B程是可以独立调整属于自己的程序内容。
[0067] 由上述本案的实施方式可知,主要是改进以往针对零碎的程序片段的做法,利用程序融合单元让程序片段能够只须改一次就可以让其他引用此程序片段的程序也能共同使用,也利用程序断开单元达到保持多支程序的独立性功效,透过本发明的操作可以将不同版本的程序片段都储存在储存装置中,可以控制程序的不同版本让程是在运行中如果有需要还可以还原回前一次的版本,达到程序的开发灵活度提升并且程序容易维护的功效。
[0068] 另外,上述例示包含依序的示范步骤,但这些步骤不必依所显示的顺序被执行。以不同顺序执行这些步骤皆在本揭示内容的考量范围内。在本揭示内容的实施例的精神与范围内,可视情况增加、取代、变更顺序及/或省略这些步骤。
[0069] 虽然本案已以实施方式揭示如上,然其并非用以限定本案,任何熟悉此技艺者,在不脱离本案的精神和范围内,当可作各种的更动与润饰,因此本案的保护范围当视所附的权利要求书所界定的范围为准。