[go: up one dir, main page]

CN101329628B - 用于管理可变点的方法和设备 - Google Patents

用于管理可变点的方法和设备 Download PDF

Info

Publication number
CN101329628B
CN101329628B CN2008100822354A CN200810082235A CN101329628B CN 101329628 B CN101329628 B CN 101329628B CN 2008100822354 A CN2008100822354 A CN 2008100822354A CN 200810082235 A CN200810082235 A CN 200810082235A CN 101329628 B CN101329628 B CN 101329628B
Authority
CN
China
Prior art keywords
running point
assembly
source code
script
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
CN2008100822354A
Other languages
English (en)
Other versions
CN101329628A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN101329628A publication Critical patent/CN101329628A/zh
Application granted granted Critical
Publication of CN101329628B publication Critical patent/CN101329628B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

提供一种用于管理表现软件的组件的可变性的可变点的方法和设备。所述方法包括:将组件的可变点彼此连接,并将组件的至少一个可变点连接到源代码和构建脚本中的至少一个的相应可变点;接收具有预定值的输入,并将所述预定值设置到组件的可变点;将所述预定值的相应值反映到源代码和构建脚本中的至少一个的连接的可变点。

Description

用于管理可变点的方法和设备
本申请要求于2007年6月22日提交到韩国知识产权局的第10-2007-0061844号韩国专利申请的权益,该申请的公开通过引用全部包含于此。
技术领域
本发明涉及一种用于管理表现软件的组件的可变性的可变点(variabilitypoint)的方法和设备。
背景技术
随着软件技术的发展,对于有效地管理变得更大和更复杂的软件的资源的方法的需求也增加了。具体地说,已经主要针对集中在软件的资源的重用的基于构件的软件开发(CBSD)进行了研究。
在基于CBSD的开发过程中,当开发软件产品时,可新生成组件,可重用旧的组件或者可使用经更新的旧的组件。CBSD的目标是通过根据需要组合构件来减小开发周期和/或减少制造成本。
此外,包括软件的所有各种组件的软件平台必须支持通过根据需要组合特定软件资源制造的新的软件产品。通过学习用于满足按照相应软件产品的需求的功能的元素,基本上开始软件资源的组合。
可通过使用当前正在研究的面向特征的领域分析(FODA)或面向特征的复用方法(FORM)来管理所述需求。鉴于作为用于管理和构成用于在软件平台中开发各种产品的软件元素的系统的软件产品线(SPL),考虑软件产品的可变性来分析(approach)所述需求。
同时,当开发用于消费电子(CE)装置的软件时,为了适当地重用被划分为通用单元和可变单元的软件资源,必须鉴于SPL来管理组件和可变点。
通常,在软件开发过程中,统一建模语言(UML)被用于表现软件的架构或描述逻辑操作。通过使用UML,设计者可按照便于识别的方式来表示实现软件所需的元素。
当前,UML协议可能不能充分地表现可变点,并且当仅允许基于类或基于模块的处理时不考虑基于组件的处理。尽管正在研究作为用于构成基于特征的软件的语言的特征描述语言(FDL),但是当表现与特征相应的示例元素时,FDL不详细考虑与组件模型的连接。
如上所述,传统上,当开发软件时,不存在有效并容易地管理组件和可变点的方法。
发明内容
本发明提供一种有效并容易地管理可变点的方法和设备。
根据本发明的一方面,提供一种表现软件的组件的可变性的可变点的方法,所述方法包括:将组件的可变点彼此连接,并将组件的至少一个可变点连接到源代码和构建脚本中的至少一个的相应可变点;接收具有预定值的输入,并将所述预定值设置到组件的可变点;将所述预定值的相应值反映到源代码和构建脚本中的至少一个的连接的可变点。
所述方法还可包括:如果不是基于组件模型构成源代码,则从源代码提取至少一个可变点。
所述提取的步骤可包括:在源代码中搜索包括预处理器和宏中的至少一个的条件语句;在对应于源代码的构建脚本中搜索与包括在源代码的条件语句中的预处理器和宏中的至少一个相关的变量;仅当搜索到的源代码的预处理器和宏中的至少一个对应于搜索到的构建脚本的变量时,提取搜索到的预处理器和宏中的至少一个作为可变点。
所述方法还可包括:输出指示所述预定值的相应值被反映到源代码和构建脚本中的至少一个的至少一个可变点的消息。
所述连接的步骤可包括:将组合组件的可变点连接到组件的可变点中的原始组件的至少一个可变点;将原始组件的至少一个可变点连接到源代码和构建脚本中的至少一个的相应可变点。
所述设置的步骤可包括:将所述预定值设置到组件的可变点中的根组合组件的可变点。
所述反映的步骤可包括:跟踪与组件的可变点相应的源代码和构建脚本中的至少一个的至少一个可变点;根据跟踪结果将所述预定值的相应值反映到源代码和构建脚本中的至少一个的至少一个可变点。
所述跟踪的步骤可包括:基于源代码和构建脚本中的至少一个的至少一个可变点的位置信息,跟踪源代码和构建脚本中的至少一个的可变点。
所述位置信息可包括哈希表,所述哈希表是通过使用与组件的可变点相应的源代码和构建脚本中的至少一个的至少一个可变点的位置产生的。
根据本发明的一方面,提法一种用于管理表现软件的组件的可变性的可变点的设备,所述设备包括:连接单元,将组件的可变点彼此连接,并将组件的至少一个可变点连接到源代码和构建脚本中的至少一个的相应可变点;设置输入单元,接收具有预定值的输入,并将所述预定值设置到组件的可变点;设置反映单元,将所述预定值的相应值反映到源代码和构建脚本中的至少一个的连接的可变点。
所述设备还可包括输出单元,所述输出单元输出指示所述预定值的相应值被反映到源代码和构建脚本中的至少一个的至少一个可变点的消息。
所述设备还可包括语言描述单元,所述语言描述单元通过使用编程语言描述输出单元显示的关系。
所述连接单元可包括:组件连接单元,用于将组合组件的可变点连接到组件的可变点中的原始组件的至少一个可变点;源连接单元,用于将原始组件的至少一个可变点连接到源代码和构建脚本中的至少一个的相应可变点。
附图说明
通过参照附图对本发明的示例性实施例进行的详细描述,本发明的上述和其它特点和优点将会变得更加清楚,其中:
图1是根据本发明实施例的用于管理可变点的设备的框图;
图2是用于描述根据本发明实施例的提取单元的操作的流程图;
图3是根据本发明实施例的用于描述通过使用可变点“option”连接的组件之间的关系的示图;
图4是根据本发明的另一实施例的用于描述通过使用可变点“option”连接的组件之间的关系的示图;
图5是根据本发明实施例的用于描述通过使用可变点“switch”连接的组件之间的关系的示图;
图6是根据本发明实施例的用于描述通过使用可变点“option”和“switch”连接的组件之间的关系的示图;
图7和图8是根据本发明实施例的用于描述组件的可变点之间的关系的示图;
图9是根据本发明实施例的用于描述使用变量的可变点之间的关系的示图;
图10是根据本发明的另一实施例的用于描述使用变量的可变点之间的关系的示图;
图11是根据本发明的另一实施例的用于描述使用变量的可变点之间的关系的示图;
图12是根据本发明的另一实施例的用于描述使用变量的可变点之间的关系的示图;
图13是根据本发明实施例的用于描述可变点之间的关系的示意图;
图14是根据本发明实施例的管理可变点的方法的流程图;
图15是根据本发明实施例的用于描述使用图14的方法的示例的表。
具体实施方式
以下,将通过参照附图解释本发明的实施例来详细描述本发明。
图1是根据本发明实施例的用于管理可变点的设备的框图。
参照图1,所述设备包括:设置输入单元110、连接单元120以及设置反映单元130。
连接单元120将组件的可变点彼此连接,并且还将组件的至少一个可变点连接到源代码和/或构建脚本(build script)的相应可变点。
连接单元120包括组件连接单元122和源连接单元124。
组件连接单元122将组合组件(composite component)的可变点连接到来自组件的可变点中的原始组件(primitive component)的至少一个可变点。
此外,组件连接单元122确定哪些原始组件用于构成组合组件。例如,组件连接单元122可包括用于通过使用原始组件B1和B2构成组合组件B的指令,从而可根据所述指令通过使用原始组件B1和B2来构成组合组件B。
源连接单元124将原始组件的至少一个可变点连接到源代码和/或构建脚本的相应可变点。
这里,可变点表现软件的组件的可变性。在本发明中,“option”或“switch”被提出作为可变点的示例。然而,可变点不限于“option”或“switch”,任何其他点可以是可变点,只要它们表现组件的可变性。
稍后将参照图3至图13描述可变点之间的关系。
设置输入单元110接收具有将被设置到组件的可变点的预定值的输入。更具体地说,当连接单元120将组件的可变点彼此连接并且还将组件的至少一个可变点连接到源代码和/或构建脚本的相应可变点时,设置输入单元110接收预定值,并将该预定值设置到组件的可变点。
优选地,所述预定值被设置到根组合组件(root composite component)的可变点。
设置反映单元130将预定值的相应值反映到连接的源代码和/或构建脚本的可变点。
当预定值被设置到组件的可变点时,确定将被设置到源代码和/或构建脚本的可变点的值。这里,“反映”是指“通过连接组件的可变点与源代码和/或构建脚本的可变点将确定的与预定值相应的值设置到源代码和/或构建脚本的可变点”。
连接单元120仅将组件的至少一个可变点连接到源代码和/或构建脚本的相应可变点,当预定值被设置输入单元110设置到组件的可变点时,设置反映单元130通过连接组件和源代码和/或构建脚本的可变点将预定值的相应值设置到源代码和/或构建脚本的连接的可变点。
这里,设置反映单元130跟踪与组件的可变点相应的源代码和/或构建脚本的至少一个可变点,并根据跟踪结果将预定值的相应值反映到源代码和/或构建脚本的至少一个可变点。
这里,基于源代码和/或构建脚本的至少一个可变点的位置信息来执行源代码和/或构建脚本的可变点的跟踪。
例如,可通过使用源代码的物理目录位置和源代码的可变点的线位置(30秒线)来构成诸如project/mp3/src/avms/video/codec/mp3_decode.cpp(32)的位置信息。
此外,位置信息还可由通过使用与组件的可变点相应的源代码和/或构建脚本的至少一个可变点的位置产生的哈希表来构成。
同时,可以不基于组件模型来构成源代码。在此情况下,必须从源代码分别提取可变点,优选地,根据当前实施例的设备还可包括用于从源代码提取可变点的提取单元(未示出)。
图2是用于描述根据本发明实施例的提取单元的操作的流程图。
参照图2,在操作210,在不是基于组件模型构成的源代码中搜索包括预处理器和/或宏的条件语句。
这里,条件语句由#ifdef、#if defined、#else、#elif、#endif等构成。代码表1是条件语句的示例。
[代码表1]
#ifdef VIDEO_CODEC
#else
#endif
在操作220,在与源代码相应的构建脚本中搜索与包括在源代码的条件语句中的预处理器和/或宏有关的变量。
在操作230,只有当搜索到的源代码的预处理器和/或宏的对应于搜索到的构建脚本的变量时,才提取搜索到的预处理器和/或宏作为可变点。
通过图1所示的源连接单元124连接从源代码提取的可变点和原始组件的对应的可变点,并且图1所示的设置反映单元130将被设置到组件的可变点的预定值的相应值反映到源代码和/或构建脚本的至少一个可变点。
图3是根据本发明实施例的用于描述通过使用可变点“option”连接的组件之间的关系的示图。
参照图3,标号310通过使用结构图表示所述关系,标号320和330通过使用编程语言的语法示出所述关系。
在结构图310中,根组合组件T1包含原始组件A1、A2、C和D以及组合组件B。组合组件B包含原始组件B1和B2。这里,根组合组件是由多个组合组件构成的最高级组件,组合组件是由多个原始组件构成的较高级组件。以下,为了便于说明,根组合组件、组合组件和原始组件都被称为组件。
在图3中,“ipl”是指具有被提供给另一组件的相应组件的函数的接口,“irl”是指相应组件使用另一组件的函数的接口。在结构图310中,“ipl”接口在组件A1、A2和B的每个的一端标记,从而将组件A1、A2和B的函数提供给其他组件。“irl”接口在组件C和D的每个的一端标记,从而组件C和D使用连接到组件C和D的组件A1、A2和B的函数。即,组件C使用组件B1和B2的函数,组件D使用组件A1和A2的函数。
在此情况下,根据特定条件,组件C和D可被或可不被包含在组件T1中。即,组件C和D根据可变点“option”被可变地包含在组件T1中。因此,组件C被选择性地连接到组件B1和B2,组件D被选择性地连接到组件A1和A2。
现在将在描述语法320和330之前来描述用于语法320和330的术语。
“contain”用于指示构成组合组件的组件,“connect”用于指示相互连接的组件,“configuration variables”用于定义特定变量可选择性地具有的值,“provide”用于指示由相应的组件提供的接口。基于上述术语,现在将描述语法320和330。
在语法320中,通过使用“contain”,组件T1包含组件A1、A2、B、C和D。然而,只有当变量VAR1和VAR2分别为ture(真)时,组件C和D才可被包含在组件T1中。通过使用“connect”,组件C被连接到组件B1和B2,以便使用组件B1和B2的函数,组件D被连接到组件A1和A2,以便使用组件A1和A2的函数。通过使用“configuration variables”,变量VAR1和VAR2被定义为具有“true”和“false(假)”中的一个,并使“true”作为默认值。
语法330详细描述组件B。组件B通过使用“contain”而包含组件B1和B2,通过使用“provide”而将组件B1和B2的函数提供给其他组件,通过使用“connect”将组件B1和B2连接到其他组件。
在此情况下,尽管在图3中未示出,但是也通过使用在语法330中示出的形式分别定义组件A1、A2、B1、B2、C和D。例如,可以如代码表2所示来定义组件C。
[代码表2]
component C{
requires{
I_B1 irl_B1;
I_B2 irl_B2;
}
};
代码表2表示组件C使用组件B1和B2的函数。
这样,图1所示的组件连接单元122将组合组件的可变点连接到原始组件的至少一个可变点。
优选地,图1所示的设备还可包括输出单元(未示出),所述输出单元通过使用结构图3 10所示的图形用户界面(GUI)来显示组合组件和原始组件之间的关系。
优选地,所述设备还可包括语言描述单元(未示出),所述语言描述单元通过使用语法320和330所示的编程语言来描述输出单元所显示的关系。
图4是根据本发明的另一实施例的用于描述通过使用可变点“option”连接的组件之间的关系的示图。
参照图4,组件T2与其子组件之间的关系被示出。
在图4中,通过使用可变点“option”,具有“ipl”接口的组件A1和B被选择性地连接到组件T2,而在图3中,通过使用可变点“option”,具有“irl”接口的组件C和D被可变地连接到组件T1。
除了上面所述,图4所示的关系与图3所示的关系相同,因此将省略详细的描述。
图5是根据本发明实施例的用于描述通过使用可变点“switch”连接的组件之间的关系的示图。
参照图5,组件T3与其子组件之间的关系被示出。
在结构图510中,通过使用可变点“switch”,组件A1和A2被连接到组件D。即,根据特定条件,组件D被连接到组件A1和A2中的一个。
在语法520中,根据变量VAR1是“value1”还是“value2”,组件D被连接到组件A1和A2中的一个。
除了上面所述,图5所示的关系与图3所示的关系相同,因此将省略详细的描述。
图6是根据本发明实施例的用于描述通过使用可变点“option”和“switch”连接的组件之间的关系的示图。
参照图6,组件T4与其子组件之间的关系被示出。
在结构图610中,通过使用可变点“option”,组件B被连接到组件C,通过使用可变点“switch”,组件A1和A2被连接到组件D。
在语法620中,如果变量VAR2为“true”,则组件B被包含在组件T4中,即,组件B被连接到组件C。根据变量VAR1是“value1”还是“value2”,组件D被连接到组件A1和A2中的一个。
除了上面所述,图6所示的关系与图3所示的关系相同,因此将省略详细的描述。
图7和图8是根据本发明实施例的用于描述组件的可变点之间的关系的示图。
参照图7,组件T5包含组合组件L和M。这里,组件L和M分别具有可变点“switch”和“option”。
参照图8,示出根组合组件810,(即,组件T5)、组合组件820(即,组件L和M)和原始组件830(即,组件A1、A2、B1、B2和B)。
在根组合组件810中,组件T5通过使用“connect”将组件L连接到组件M,并且组件T5通过使用“configuration variables”分别将组件T5的变量T5_VAR1和T5_VAR 2连接到组件L和M的变量VAR1和VAR2。这样,通过分别将变量T5_VAR1和T5_VAR 2连接到变量VAR1和VAR2,组件T5的可变点以及组件L和M的可变点被彼此连接。
在组合组件820中,根据变量VAR1是“value1”还是“value2”,组件L将组件D连接到组件A1和A2中的一个。仅当变量VAR2为“on”时,组件B被包含在组件M中。
在原始组件830中,组件A1、A2、B1、B2和B将它们的函数提供给连接到它们的其他组件。
除了上面所述,图7和图8所示的关系与图3所示的关系相同,因此将省略详细的描述。
图9是根据本发明实施例的用于描述使用变量的可变点之间的关系的示图。
参照图9,通过使用语法910的“configuration variables”,组件T6的变量T6_VAR1至T6_VAR5被连接到组件A和B的变量A_VAR1、A_VAR2、B_VAR1、B_VAR2和B_VAR3以便一一相应。
更详细地说,变量T6_VAR1和T6_VAR2分别连接到组件A的变量A_VAR1和A_VAR2,变量T6_VAR3、T6_VAR4和T6_VAR5分别连接到组件B的变量B_VAR1、B_VAR2和B_VAR3。这样,通过将变量T6_VAR1至T6_VAR5连接到变量A_VAR1、A_VAR2、B_VAR1、B_VAR2和B_VAR3,变量T6_VAR1至T6_VAR5还可为“on”或“off”。
这里,在语法920中,如果变量A_VAR1和A_VAR2分别为“on”,则组件A1和A2被包括在组件A中。在语法930中,如果变量B_VAR1、B_VAR2和B_VAR3分别为“on”,则组件B1、B2和B3被包括在组件B中。因此,组件A和B的每个具有可变点“option”。
因此,在语法910中,如果组件T6的子组件的相应的变量为“on”,则变量T6_VAR1至T6_VAR5为“on”。另一方面,如果变量T6_VAR1至T6_VAR5为“on”,则组件T6的子组件的相应的变量为“on”。
这样,为了将预定值设置到组件的可变点,通过设置图1所示的设置输入单元110来输入预定值。
图10是根据本发明的另一实施例的用于描述使用变量的可变点之间的关系的示图。
参照图10,组件T7的变量T7_VAR1和T7_VAR2被连接到组件A和B的变量A_VAR1、A_VAR2、B_VAR1、B_VAR2和B_VAR3,以便1个与n个相对应。
更具体地讲,通过使用语法1010的“configuration variables”,变量T7_VAR1被连接到组件A的变量A_VAR1和A_VAR2,变量T7_VAR2被连接到组件B的变量B_VAR1、B_VAR2和B_VAR3。这里,仅当组件T7的相应的子组件的所有变量为“on”时,组件T7的变量T7_VAR1和T7_VAR2才为“on”。
例如,仅当变量A_VAR1和A_VAR2都为“on”时,变量T7_VAR1才为“on”。类似地,如果变量T7_VAR1为“on”,则变量A_VAR1和A_VAR2都为“on”
语法1020和1030与图9所示的语法920和930相同,因此将省略对它们的详细描述。
图11是根据本发明的另一实施例的用于描述使用变量的可变点之间的关系的示图。
参照图11,组件T8的变量T8_VAR1和T8_VAR2被连接到组件A和B的变量A_VAR1、A_VAR2、B_VAR1、B_VAR2和B_VAR3,以便1个与n个相对应。与图10不同,变量A_VAR1、A_VAR2、B_VAR1、B_VAR2和B_VAR3的每个被设置以预定值。
根据当前实施例,变量T8_VAR1和T8_VAR2被设置,并且根据变量T8_VAR1和T8_VAR2,组件T8的子组件的变量被设置。
例如,在语法1110中,如果变量T8_VAR2为“type2”,则变量B_VAR1、B_VAR2和B_VAR3被分别确定为“on”、“off”和“on”。
语法1120和1130与图9所示的语法920和930相同,因此将省略对它们的详细描述。
图12是根据本发明的另一实施例的用于描述使用变量的可变点之间的关系的示图。
参照图12,设置组件T9的变量T9_VAR,并且与图11相同,根据变量T9_VAR来设置组件T9的子组件的变量。然而,与图11不同,诸如组件A和B的子组件的所有变量被连接到变量T9_VAR,以便当预定值被设置到变量T9_VAR时,根据变量T9_VAR确定组件A和B的所有变量。
语法1220和1230与图9所示的语法920和930相同,因此将省略对它们的详细描述。
图13是根据本发明实施例的用于描述可变点之间的关系的示意图。
参照图13,原始组件的可变点VAR1-1 1312和VAR1-2 1314被连接到组合组件的可变点VAR-S1 1310,其他原始组件的可变点VAR2-1 1322、VAR2-21324和VAR2-3 1326被连接到另外的组合组件的可变点VAR-S2 1320,组合组件的可变点VAR-S1 1310和VAR-S2 1320被连接到根组合组件的可变点VAR-TOP1300。
在如上所述将根组合组件、组合组件和原始组件的可变点VAR-TOP1300、VAR-S1 1310、VAR-S2 1320、VAR1-1 1312、VAR1-2 1314、VAR2-1 1322、VAR2-2 1324和VAR2-3 1326彼此连接之后,图1所示的源连接单元124将原始组件的可变点的VAR-1 1312、VAR-2 1314、VAR2-1 1322、VAR2-2 1324和VAR2-3 1326中的至少一个连接到源代码和/或构建脚本的相应的可变点。
然后,通过将预定值设置到可变点VAR-TOP1300,图1所示的设置反映单元130将预定值的相应值反映到可变点VAR1-1 1312、VAR1-2 1314、VAR2-1 1322、VAR2-2 1324和VAR2-3 1326以及可变点VAR-S1 1310和VAR-S2 1320中。最终,预定值的相应值被反映到源代码和/或构建脚本的连接的可变点。
这里,在预定值的相应值通过设置反映单元130被反映到源代码和/或构建脚本的连接的可变点之后,上面提及的输出单元(未示出)可输出指示预定值的相应值被反映到源代码和/或构建脚本的至少一个可变点的消息。
图14是根据本发明实施例的管理可变点的方法的流程图。
参照图14,在操作1410,组件的可变点彼此连接,并且组件的至少一个可变点被连接到源代码和/或构建脚本的相应的可变点。
在操作1420,预定值被设置到组件的可变点。优选地,预定值被设置到根组合组件的可变点。
在操作1430,预定值的相应值被反映到组件的可变点以及源代码和/或构建脚本的连接的可变点。
图15是根据本发明实施例的用于描述使用图14所示的方法的示例的表。
所述表分级地示出将被包括在MPEG-1音频层3(MP3)播放器中的软件平台的可变点。
参照图15,如果根组合组件MP3P的变量DEVICE_TYPE被设置到组件T1至T4中的一个,则相应的值被反映在连接的变量(例如,根组合组件MP3P的组合组件的变量DMB_SUPPORT和DMB_TYPE)中。这样,本发明通过将组件的可变点彼此连接并将组件的至少一个可变点连接到源代码和/或构建脚本的相应的可变点来提供用于有效并容易地管理可变点的方法和设备,从而将根组合组件的设置反映到组件的可变点和源代码和/或构建脚本的连接的可变点。
本发明的实施例可被编写为计算机程序,并且可在使用计算机可读记录介质执行该程序的通用数字计算机上实施。所述计算机可读记录介质的示例包括:磁存储介质(例如,ROM、软盘、硬盘等)、光记录介质(例如,CD-ROM或DVD)以及诸如载波(例如,通过互联网的传输)的存储介质。
如上所述,根据本发明,如果组件的可变点彼此连接并且组件的至少一个可变点还被连接到源代码和/或构建脚本的相应的可变点,则当预定值被设置到组件的可变点时,预定值的相应值可被反映到组件的可变点以及源代码和/或构建脚本的连接的可变点,并且可有效并容易地管理可变点。
尽管已经参照其示例性实施例具体显示和描述了本发明,但是本领域的技术人员应该理解,在不脱离权利要求所限定的本发明的精神和范围的情况下,可以对其进行形式和细节上的各种改变。示例性实施例应仅被认为是描述性的,而不是为了限制的目的。因此,本发明的范围不是由本发明的详细描述限定,而是由权利要求限定,该范围之内的所有不同将被解释为包括在本发明中。

Claims (19)

1.一种管理表现软件的组件的可变性的可变点的方法,所述方法包括:
将组件的可变点彼此连接,并将组件的至少一个可变点连接到源代码和构建脚本中的至少一个的相应可变点;
接收具有预定值的输入,并将所述预定值设置到组件的可变点;
将所述预定值的相应值反映到与组件的至少一个可变点连接的源代码和构建脚本中的至少一个的可变点,
其中,所述连接的步骤包括:将组合组件的可变点连接到组件的可变点中的原始组件的至少一个可变点;将原始组件的至少一个可变点连接到源代码和构建脚本中的至少一个的相应可变点。
2.如权利要求1所述的方法,还包括:如果不是基于组件模型构成源代码,则从源代码提取至少一个可变点。
3.如权利要求2所述的方法,其中,所述提取的步骤包括:
在源代码中搜索包括预处理器和宏中的至少一个的条件语句;
在对应于源代码的构建脚本中搜索与包括在源代码的条件语句中的预处理器和宏中的至少一个相关的变量;
仅当搜索到的源代码的预处理器和宏中的至少一个对应于搜索到的构建脚本的变量时,提取搜索到的预处理器和宏中的至少一个作为可变点。
4.如权利要求1所述的方法,还包括:输出指示所述预定值的相应值被反映到源代码和构建脚本中的至少一个的至少一个可变点的消息。
5.如权利要求1所述的方法,其中,所述设置的步骤包括:将所述预定值设置到组件的可变点中的根组合组件的可变点。
6.如权利要求1所述的方法,其中,所述反映的步骤包括:
跟踪与组件的可变点相应的源代码和构建脚本中的至少一个的至少一个可变点;
根据跟踪结果将所述预定值的相应值反映到源代码和构建脚本中的至少一个的至少一个可变点。
7.如权利要求6所述的方法,其中,所述跟踪的步骤包括:基于源代码和构建脚本中的至少一个的至少一个可变点的位置信息,跟踪源代码和构建脚本中的至少一个的可变点。
8.如权利要求7所述的方法,其中,所述位置信息包括哈希表,所述哈希表是通过使用与组件的可变点相应的源代码和构建脚本中的至少一个的至少一个可变点的位置产生的。
9.一种用于管理表现软件的组件的可变性的可变点的设备,所述设备包括:
连接单元,将组件的可变点彼此连接,并将组件的至少一个可变点连接到源代码和构建脚本中的至少一个的相应可变点;
设置输入单元,接收具有预定值的输入,并将所述预定值设置到组件的可变点;
设置反映单元,将所述预定值的相应值反映到与组件的至少一个可变点连接的源代码和构建脚本中的至少一个的可变点,
其中,所述连接单元包括:组件连接单元,将组合组件的可变点连接到组件的可变点中的原始组件的至少一个可变点;源连接单元,将原始组件的至少一个可变点连接到源代码和构建脚本中的至少一个的相应可变点。
10.如权利要求9所述的设备,还包括提取单元,如果不是基于组件模型构成源代码,则所述提取单元从源代码提取至少一个可变点。
11.如权利要求10所述的设备,其中,所述提取单元在源代码中搜索包括预处理器和宏中的至少一个的条件语句,在对应于源代码的构建脚本中搜索与包括在源代码的条件语句中的预处理器和宏中的至少一个相关的变量,并且仅当搜索到的源代码的预处理器和宏中的至少一个对应于搜索到的构建脚本的变量时,提取搜索到的预处理器和宏中的至少一个作为可变点。
12.如权利要求9所述的设备,还包括输出单元,所述输出单元输出指示所述预定值的相应值被反映到源代码和构建脚本中的至少一个的至少一个可变点的消息。
13.如权利要求12所述的设备,其中,所述输出单元通过使用图形用户界面显示组合组件和原始组件之间的关系。
14.如权利要求13所述的设备,还包括语言描述单元,所述语言描述单元通过使用编程语言描述输出单元显示的关系。
15.如权利要求9所述的设备,其中,组件连接单元管理组合组件和原始组件之间的关系。
16.如权利要求9所述的设备,其中,设置输入单元将所述预定值设置到组件的可变点中的根组合组件的可变点。
17.如权利要求9所述的设备,其中,设置反映单元跟踪与组件的可变点相应的源代码和构建脚本中的至少一个的至少一个可变点,并根据跟踪结果将所述预定值的相应值反映到源代码和构建脚本中的至少一个的至少一个可变点。
18.如权利要求17所述的设备,其中,设置反映单元基于源代码和构建脚本中的至少一个的至少一个可变点的位置信息,跟踪源代码和构建脚本中的至少一个的可变点。
19.如权利要求18所述的设备,其中,所述位置信息包括哈希表,所述哈希表是通过使用与组件的可变点相应的源代码和构建脚本中的至少一个的至少一个可变点的位置产生的。
CN2008100822354A 2007-06-22 2008-02-26 用于管理可变点的方法和设备 Active CN101329628B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020070061844A KR100911324B1 (ko) 2007-06-22 2007-06-22 가변성 요소 관리 방법 및 그 장치
KR10-2007-0061844 2007-06-22
KR1020070061844 2007-06-22

Publications (2)

Publication Number Publication Date
CN101329628A CN101329628A (zh) 2008-12-24
CN101329628B true CN101329628B (zh) 2012-08-22

Family

ID=40137828

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100822354A Active CN101329628B (zh) 2007-06-22 2008-02-26 用于管理可变点的方法和设备

Country Status (3)

Country Link
US (1) US8429607B2 (zh)
KR (1) KR100911324B1 (zh)
CN (1) CN101329628B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7543269B2 (en) * 2001-03-26 2009-06-02 Biglever Software, Inc. Software customization system and method
KR101039748B1 (ko) * 2009-03-04 2011-06-08 한국과학기술원 웹 서비스의 기능과 배치 가변성을 이용한 웹 서비스 가변성 결정방법
US8640097B2 (en) * 2009-03-16 2014-01-28 Microsoft Corporation Hosted application platform with extensible media format
CN103593752B (zh) * 2013-11-29 2015-02-18 武汉大学 一种基于情境约束的业务流程适应性配置方法及系统
US9904543B2 (en) * 2015-10-26 2018-02-27 Hewlett-Packard Development Company, L.P. Setting a build indicator to enable or disable a feature
EP3741150A4 (en) * 2018-01-17 2021-10-06 CommScope Technologies LLC COEXISTENCE REPORTING BASED ON MEASUREMENTS ON USER DEVICES

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1357822A (zh) * 2000-10-27 2002-07-10 株式会社东芝 应用软件开发系统及其方法、应用软件开发程序、以及应用软件生成方法
CN1524216A (zh) * 2001-05-30 2004-08-25 Bea系统公司 软件构件插件程序结构的系统和方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09160765A (ja) 1995-12-08 1997-06-20 Hitachi Ltd ソフトウェア部品作成方法
US6745381B1 (en) * 1997-12-12 2004-06-01 International Business Machines Coroporation Method and apparatus for annotating static object models with business rules
US6874105B2 (en) * 1998-10-30 2005-03-29 International Business Machines Corporation Operation graph based event monitoring system
US7017142B1 (en) * 1998-12-03 2006-03-21 International Business Machines Corporation Method and apparatus for applying business rules in an object model driven context
US6341369B1 (en) * 1998-12-03 2002-01-22 International Business Machines Corporation Method and data processing system for specifying and applying rules to classification-based decision points in an application system
US20020104067A1 (en) 1999-12-29 2002-08-01 Green David W. Method and system and article of manufacture for an N-tier software component architecture application
US6799718B2 (en) * 2001-07-10 2004-10-05 Borland Software Corp. Development assistance for mixed-language sources
US20050049843A1 (en) * 2003-08-29 2005-03-03 Lee Hewitt Computerized extension apparatus and methods
US7412687B2 (en) 2003-10-15 2008-08-12 International Business Machines Corporation Creating customized applications using templates having points of variability
US7444314B2 (en) * 2003-12-01 2008-10-28 International Business Machines Corporation Methods and apparatus for business rules authoring and operation employing a customizable vocabulary
US7373635B2 (en) * 2003-12-15 2008-05-13 International Business Machines Corporation System and method for efficient development of configurable software systems in a large software development community
US7496906B2 (en) * 2004-03-31 2009-02-24 International Business Machines Corporation Evaluation of a code segment
JP2006031424A (ja) 2004-07-16 2006-02-02 Hitachi Software Eng Co Ltd ソフトウェア部品の再利用によるソフトウェア開発環境生成システム
US7593980B2 (en) * 2004-11-30 2009-09-22 Cisco Technology, Inc. Application server system and method
KR20060068162A (ko) * 2004-12-16 2006-06-21 한국전자통신연구원 제품계열 기반 소프트웨어 개발 방법
KR100672894B1 (ko) * 2004-12-21 2007-01-22 한국전자통신연구원 제품 계열 아키텍처의 표현 및 검증 장치와 그 방법
US20060271557A1 (en) * 2005-05-25 2006-11-30 Terracotta, Inc. Database Caching and Invalidation Based on Detected Database Updates
US9594548B2 (en) * 2005-12-27 2017-03-14 International Business Machines Corporation Dynamically updating templated applications
US9575735B2 (en) * 2005-12-27 2017-02-21 International Business Machines Corporation Application template creation and management
US8086994B2 (en) * 2005-12-29 2011-12-27 International Business Machines Corporation Use of RAS profile to integrate an application into a templatable solution
US8141038B2 (en) * 2005-12-29 2012-03-20 International Business Machines Corporation Virtual RAS repository
US8122432B2 (en) * 2006-10-04 2012-02-21 International Business Machines Corporation Rule management using a configuration database
KR101371619B1 (ko) 2007-02-14 2014-03-06 삼성전자주식회사 레거시 시스템을 컴포넌트화하는 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1357822A (zh) * 2000-10-27 2002-07-10 株式会社东芝 应用软件开发系统及其方法、应用软件开发程序、以及应用软件生成方法
CN1524216A (zh) * 2001-05-30 2004-08-25 Bea系统公司 软件构件插件程序结构的系统和方法

Also Published As

Publication number Publication date
US20080320439A1 (en) 2008-12-25
KR100911324B1 (ko) 2009-08-07
CN101329628A (zh) 2008-12-24
KR20080112864A (ko) 2008-12-26
US8429607B2 (en) 2013-04-23

Similar Documents

Publication Publication Date Title
CN101329628B (zh) 用于管理可变点的方法和设备
Morin et al. An aspect-oriented and model-driven approach for managing dynamic variability
CA2967251C (en) Intelligent code differencing using code clone detection
CN103294475B (zh) 基于图形化业务场景和领域模板的业务自动生成系统和方法
US11481200B1 (en) Checking source code validity at time of code update
US20110239198A1 (en) System, Method, and Computer Readable Medium for Universal Software Testing
US20160313874A1 (en) Visual effects system for "big data" analysis workflow editors, distribution platforms, execution engines, and management systems comprising same
CN104778033A (zh) 一种积木式软件的构建方法和装置
Cohen et al. Object-oriented technology and domain analysis
CA2932897A1 (en) Visual effects system for "big data" analysis workflow editors, distribution platforms, execution engines, and management systems comprising same
CN100517222C (zh) 支持转换引擎与映射规则相分离的模型转换装置及其方法
WO2009044971A1 (en) Method and system for determining interface compatibility based on component model
CN101866315A (zh) 软件开发工具的测试方法及系统
Ambler et al. JavaScript Frameworks for Modern Web Dev
CN114647416B (zh) 基于注解的业务流实现方法及装置、存储介质、电子设备
US11983090B2 (en) Setting breakpoints for source code segments enclosed by macros
CN115291841A (zh) 一种面向多源电子证据的组件化取证系统及方法
Pillora Getting Started with Grunt: The JavaScript Task Runner
CN105391810A (zh) 终端设备接口装置
Neto et al. Component models for embedded systems in industrial cyber-physical systems
CN104504111A (zh) 图片物料的推荐方法和装置
Seltveit An approach to information systems modelling based on systematic complexity reduction
CN115390802B (zh) 应用程序的组件化开发方法、系统、设备和存储介质
CN209488621U (zh) 用于数据存储卡设备的数据采集装置及其数据采集系统
Arboleda et al. Software architecture for product lines

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant