配置计算机程序的方法

文档序号:6654991阅读:132来源:国知局
专利名称:配置计算机程序的方法
技术领域
本发明涉及一种用于配置包括至少一个功能单元的计算机程序的方法。
本发明还涉及一种用于配置包括至少一个功能单元的计算机程序的软件系统。
现有技术现代计算机程序大多被编程使其可应用在尽可能宽的应用范围内。应用范围一方面通过提供的应该也涵盖尽可能多的用户愿望的功能并且另一方面通过所基于的该计算机程序运行于其上的硬件来确定。所基于的硬件这里代表被用在不同领域内的不同计算机系统,所述的计算机系统由不同的组件(例如处理器或者总线系统)构成,和/或具有不同的外围设备。
不同的功能可以由所基于的硬件的不同情况得出或者由不同的用户愿望得出。所谓的计算机程序配置包括计算机程序与所基于硬件的匹配以及与所特定用户期望的匹配从而对计算机程序进行专门化。
配置例如包括计算机程序的各个功能的激活或者去活、确定的变量的初始值的设置、或者确定的变量类型的预先确定和详细说明。
已知的是,在所谓的头标文件中声明在计算机程序中被使用的变量和功能,并且通过在头标文件中更改各个变量或者操作指示符来执行计算机程序的配置。例如能够根据确定的配置将特定的功能分配给在计算机程序中所使用的并且在头标文件中所声明的操作指示符。
通常,以例如C、C++、Scheme或者JAVA的所谓高级语言来生成计算机程序。通常,以高级语言所生成的计算机程序被称为源代码。为了能够在计算机上执行这种计算机程序,必须根据源代码产生所谓的机器代码,所述机器代码包含可由计算机的处理器执行的指令。机器代码可以通过对源代码的所谓解释或者编译来产生。
计算机程序典型地包括多个功能单元。在此,一个或者多个功能单元的源代码被存储在文件中。头标文件被分配给一个或者多个这种文件。因此,计算机程序典型地由多个文件组成。因此,这种计算机程序的通过各个头标文件中的变化所执行的配置条理不清,并且通常只能由源代码的设置员执行。此外,必须生成所有头标文件的文档,这通常是耗费巨大的,其中该文档自身大多是非常混乱的。
还公知的是为了配置计算机程序,将特定的功能单元分配给该计算机程序,借助于所述功能单元例如通过更改预先确定的参数的值来配置整个计算机程序是可能的。例如可以从运行的计算机程序中调用功能单元,并且为了配置计算机程序而被执行。然而,这种为配置计算机程序所预定的功能单元只允许在预先确定的范围界限内的配置。利用这种功能单元是不可能进行例如为了使计算机程序与新的硬件相匹配或者为了使计算机程序与新的用户愿望相匹配的计算机程序配置。另外,用于配置所使用的功能单元必须专门针对有关的计算机程序来开发,并且不能被用于其他的计算机程序。
因此,本发明的任务是实现以下可能性,即允许尽可能条理清楚而灵活地来配置计算机程序。
该任务通过前述类型的方法来解决,所述方法包括以下步骤-生成至少一个与实施无关的配置文件和/或更改在至少一个与实施无关的配置文件中所保存的信息;-根据在所述至少一个与实施无关的配置文件中所保存的信息自动地建立和/或自动地更新在配置数据容器中所保存的配置数据;-根据在所述配置数据容器中所存储的配置数据自动地产生至少一个与实施有关的配置文件;-根据在至少一个与实施有关的配置文件中所保存的信息,自动地配置所述至少一个功能单元。
发明优点于是,确定配置的数据不依赖于所考虑的具体实施而被存储在一个或者多个与实施无关的配置文件中。该配置文件的实施无关性尤其能够抽象描述所保存的信息。这能够特别好地可读地保存对于配置计算机程序重要的信息,并且从而大大简化配置。利用该配置文件与实施的无关性尤其能够以简单的方式实现计算机程序的配置,使得计算机程序例如能够在新的计算机系统上运行,其中所述计算机系统的正确参数在生成计算机程序时甚至仍是未知的。
配置数据容器能够集中地暂时提供所有对配置重要的数据。借助于在该配置数据容器中所保存的配置数据自动地产生至少一个与实施有关的配置文件。在该与实施有关的配置文件中,根据该与实施无关的配置文件进行单个或者多个参数值的具体化。在这种具体化时,例如相对值通过绝对值来代替。同样,确定的数据类型或者数据结构能够被分配给各个值或者数据范围。因此,与实施有关的配置文件考虑与实施有关的特性(例如在对源代码编程时所使用的一种或者多种编程语言或者硬件的特性,其中计算机程序应该在所述硬件上运行)。
例如可以借助于所谓的脚本来执行利用与实施无关的配置文件中保存的信息来配置数据容器的建立或者更新。在此,脚本表示可以由特定的计算机程序执行的指令的序列。所述特定的计算机程序例如是AWK或者Per1。所述特定的计算机程序也可以被用于从在配置数据容器中所保存的配置数据来产生与实施有关的配置文件。
于是,本发明的重要组成部分是以下认识,即通过在用户(配置员)和计算机程序之间设置对与实施无关的配置文件中待执行的配置的抽象描述可以决定性地改善计算机程序的配置,其中配置基于所述与实施无关的配置文件。根据与实施无关的配置文件自动地生成与实施有关的配置文件,所述与实施有关的配置文件然后被用于配置计算机程序。于是,本发明方法能够抽象地并且从而特别好地可读地说明描述配置的信息。另外,由于每个实施细节的不相关性而获得特别好的灵活性。
在本发明的一种有利的改进方案中,自动地产生至少一个相关性信息,所述相关性信息描述至少两个在配置数据容器中的配置数据的相关性。根据至少一个相关性信息来产生至少一个与实施有关的配置文件。
相关性信息例如可以说明配置参数的更改是否影响其他的配置参数。如果例如专门为一个功能单元预留资源,则在执行功能单元时该资源不可用于其他的功能单元。利用相关性信息可以确定,那些功能单元需要确定的资源,并且从而不能同时运行。因此,相关性信息也可以被用于资源管理。
在所述方法的一种优选的实施形式中,多个与实施无关的配置文件被生成,并且每个与实施无关的配置文件被分配给至少一个功能单元。这能够通过以下方式实现特别简单的配置,即在与实施无关的配置文件中作为信息所保存的配置参数能够特别简单地被找到并且被更改。例如能够根据受确定的配置信息(也即配置参数)影响的功能或者硬件来排列该信息的顺序。另外,由此能够实现与实施无关的配置文件与新的添加的功能单元特别简单的匹配。在最简单的情况下,特定的与实施无关的配置文件被分配给新添加的功能单元。
有利地,多个与实施有关的配置文件被产生,并且与实施有关的配置文件中的每个被分配给至少一个功能单元。与实施有关的配置文件的这种结构化增加了所产生的与实施有关的配置文件的条理清楚性。如果源代码如此被结构化,以致一个或者多个功能单元位于不同的文件中,则可以实现将与实施有关的配置文件分配给源代码的文件中的每个。特别条理清楚的结构化也可以通过以下方式来实现,即每一个与实施有关的配置文件被分配给每个与实施无关的配置文件。
优选地,根据硬件的至少一个特性产生至少一个与实施有关的配置文件,在所述硬件上应该能够安装所配置的计算机程序的至少一部分。这种硬件特性例如可以是可使用的处理器的数量或者连接在硬件上的传感器的类型和数量。如果在产生与实施有关的配置文件时考虑这种硬件特性,则可以实现计算机程序的特别精确的配置。因此例如可能的是,尤其利用相关性信息自动地完成就实施速度而言优化的配置。
在一种优选的实施形式中,根据合理性检查的结果产生至少一个与实施有关的配置文件。合理性检查例如可以包括检查需要功能单元的资源是否确实可用。
优选地,为了执行该合理性检查使用至少一个硬件特性。由此能够特别好地提高自动化程度,并且实现计算机程序的可靠配置。如果存在一个功能单元(例如测量值的检测),则能够检查是否存在适当的传感器,以及该传感器是否可提供所要求的测量精度。在这种情况下,例如可设想的是,自动地执行传感器的配置。
在另一优选的实施形式中,自动地生成文档。该文档说明在至少一个与实施无关的配置文件和/或至少一个与实施有关的配置文件中所保存的信息。这种自动产生的文档一方面提高了计算机程序的可等待性,另一方面能够特别简单地理解所执行的配置。通过自动地产生文档保证了该文档与实际配置一致。如果应该执行计算机程序的配置,则可以根据这种文档特别简单地确定哪个参数值必须被更改。
优选地,以基于XML的格式生成至少一个与实施无关的配置文件。XML(可扩展标识语言)是能够产生结构化语言的标准化元语言。如果至少一个与实施无关的配置文件是以符合XML的结构化语言生成的,则通过以下方式简化配置,即这种与实施无关的配置文件特别好地可读。另外,这种配置文件也是特别好地可机读的。尤其存在多个部分同样是标准化的软件工具,借助于该软件工具改写和处理以基于XML的格式所生成的文件。
在该方法的一种优选的实施形式中,根据配置数据自动地确定计算机程序是否需要由该计算机程序所包括的功能单元,并且如果计算机程序需要该功能单元,则只执行该功能单元的配置。这能够通过以下方式特别快速地执行配置,即只有在执行所配置的计算机程序上确实需要的这种功能单元实际上被配置。另外,通过以下方式来实现,即所配置的计算机程序需要尽可能小的存储空间,因为例如只把确实应该应用的这种功能单元的源代码翻译为机器代码。
该任务也通过前述类型的软件系统来解决。在此,软件系统具有-至少一个与实施无关的配置文件;-包括配置数据的配置数据容器和/或用于根据在所述至少一个与实施无关的配置文件中所保存的信息生成配置数据容器的装置;-用于更改配置数据/或从所述配置数据容器中读出配置数据的装置;-用于根据在所述配置数据容器中所存储的配置数据自动地产生至少一个与配置有关的配置文件的装置;和-用于根据在所述与实施有关的配置文件中所保存的信息自动地配置至少一个功能单元的装置。
优选地,软件系统具有用于执行本发明方法的装置。
这里,以软件系统的形式实现本发明具有特殊的意义。在此,软件系统能够在计算装置上、尤其在微处理器上运行,并且适合于执行本发明方法。于是,在这种情况下,本发明通过软件系统来实现,使得软件系统以与适合于执行软件系统的方法相同的方式来表达本发明。软件系统优选地被存储在存储元件上。存储元件可以被构造为随机存取存储器、只读存储器或者闪速存储器。存储元件也可以被构造为数字通用光盘(DVD)、压缩盘(CD)或者硬盘(Hard Disc)。
附图本发明的其他特征、应用可能性和优点从附图中所示的本发明实施例的以下描述中得出。在此,所有所述的或者所示的特征本身或者以任意组合的方式构成本发明的主题,而不依赖于其在权利要求中的概述或者其反向关系,以及不依赖于其在说明书中或者附图中的表述或表示。


图1示出用于执行本发明的方法的软件系统的实施形式;和图2示出本发明方法的实施形式的示意性流程图。
具体实施例方式
在图1中示出了用于执行本发明方法的软件系统。该软件系统具有多个与实施无关的配置文件1。给每个配置文件1各分配一个文件名。在图1中所示的与实施无关的配置文件例如具有文件名配置_1.xml、配置_2.xml、配置_3.xml、至配置_n.xml。文件尾缀.xml指明与实施无关的配置文件1是基于XML的格式。采用基于XML格式的文本文件能够根据可预定的规则使该文本文件结构化。能够特别好地以人工方式或者机器方式读取或者处理这种结构化文本文件。
与实施无关的配置文件1被供应给脚本2。该脚本2例如被构造为所谓的Per1脚本。Per1是一种解释语言,其语法基于编程语言C,并且使用由相应的操作系统所提供的服务程序。
借助于脚本2来读取与实施无关的配置文件1,提取其中所保存的信息,并且保存在配置数据容器3中。同时确定并且保存对其他的配置脚本4的现有相关性。
用附图标记4示出其他的配置脚本。所述其他的配置脚本同样也被构造为Pear1脚本。也可以设想的是,其他的配置脚本4的一个或者多个是可执行的计算机程序(机器代码)或者以另一脚本语言(例如AWK)的形式存在。
用附图标记5表示与实施有关的配置文件。例如以也对待配置的源代码编程的编程语言来对与实施有关的配置文件5编码。这种与实施有关的配置文件能够由编译器6处理。
用附图标记7示出具有多个功能单元8的计算机程序。
本发明的软件系统的功能方式根据在图2中所示的流程图来描述。
用于配置计算机程序的本发明方法的在图2中所示的流程图从步骤100开始。在步骤101中,与实施无关的配置文件1被生成或者被更改。与实施无关的配置文件1尤其通过以下方式来表征,即能够借助于在那里所保存的信息来抽象地描述具体的配置值或者配置参数。具体的配置值例如可以确定用于测量电压的传感器模块的测量范围。例如能够抽象地利用值3-5伏特说明测量范围。但是,如将要配置的功能单元8所期望的测量范围的由此所得出的与实施有关的值例如可以处于10.000和20.000之间。在这种情况下,计算机程序的控制传感器模块的功能单元8例如必须借助于具体的配置值10.000和20.000被配置,以便能够在3-5伏特的测量范围中进行测量。
例如以基于XML的格式生成在步骤101中所生成的或者所更改的与实施无关的配置文件1。这种格式能够特别好地获得与实施无关的配置文件1的条理清楚的结构化。这提高了与实施无关的配置文件1的可读性,并且简化了对与实施无关的配置文件1的更改,所述更改例如通过能够快速找到待更改的配置数据来实现。对于特别大的计算机程序也能够只预先确定唯一的与实施无关的配置文件,其中对于所述特别大的计算机程序的配置需要大量的配置数据。在与实施无关的配置文件1中所保存的信息的结构化在此可以通过适当的XML结构来实现。但是,特别有利的是,预先确定多个与实施无关的配置文件。所述与实施无关地配置文件1中的每个都例如可以被分配给一个或者多个功能单元8。由此能够特别条理清楚地进行对与实施无关的配置文件的生成或更改。另外,由此提高了各个与实施无关的配置文件的可再利用性。这对于也应该再利用源代码的各个功能单元8的方案是尤其有利。
在步骤102中,可以建立或者更新配置数据容器3。这通过执行在脚本2中所罗列的指令来实现。脚本2首先引发读入无关的配置文件1。如果与实施无关的配置文件1以结构化格式或者基于XML的格式为基础,则可以借助于脚本2特别好地对与实施无关的配置文件1的内容进行句法和/或语义分析。因此,在说明配置数据时能够识别错误。与实施无关的配置文件1的基于XML的格式优选地具有分等级的结构,所述分等级的结构有利地按照功能单元8的结构自身、其相关性和/或其主题近似。借助于脚本2能够在建立这种分等级的结构时并且从而也在建立源代码自身时识别错误。
有利地,步骤102包括处理所找到的错误。这例如可以通过输出错误信息来实现。同样可设想的是,使用随机方法来消除错误。
在步骤102中,脚本2提取在与实施无关的配置文件1中所具有的配置数据,并且将其存储在配置数据容器3中。在此,该配置数据容器3例如可以被构造为数据库。同样可设想的是,配置数据容器3在本发明的软件系统之内作为在存储范围中维持的数据结构,其中保证脚本2具有对在配置数据容器3中所保存的配置数据的的写和读访问。
在步骤103中,确定相关性。这种相关性例如可以说明在该配置时实际上必须处理计算机程序的哪个功能单元8。借助于该相关性可以决定在随后的步骤之一中是否必须确实为所确定的功能单元8产生与实施无关的配置文件。此外,相关性还可以说明哪个具体的配置数据依赖于哪个抽象的配置数据。因此可设想的是,与实施无关的配置文件中的抽象的配置数据的更改导致多个具体的配置数据的更改。
如果其他的脚本4在其侧更改配置容器3,则也可以得出相关性。因此,脚本4的正确的调用顺序(激活顺序)必须被确定和保存。相关性也可以说明一个或者多个硬件组件和单个配置数据之间的关系。这例如能够识别预先确定的配置是否确实依赖于所确定的硬件。
在步骤104中执行合理性检查。在此,尤其根据在步骤103中所确定的相关性来检查,借助于与实施有关的配置文件1所预先确定的配置是否有错误。如果这是这种情况,则被分支返回步骤101,在所述步骤101中带着消除错误的目的来更改与实施无关的配置文件1。如果在步骤104中未识别出错误,则被分支至步骤105。
在步骤105中产生与实施有关的配置文件5。对此,首先借助于一个脚本4或者多个脚本4来调用在配置数据容器3中所保存的配置数据。在该实施例中,脚本4被构造为Pear1脚本。借助于脚本4,尤其在配置数据容器3中所保存的抽象的配置数据被转换为具体的配置数据,所述具体的配置数据然后被保存在与实施有关的配置文件5中。在此,优选地使用在步骤103中所确定的相关性。
在步骤105中所产生的与实施有关的配置文件5例如可以是偷文件(图1中的文件_.h,文件_2.h,文件_3.h)。同样,所产生的与实施有关的配置文件5也可以包含源代码(图1中的文件_2.c,文件_k.c)。典型地,通过为变量和/或功能参数分配值以及作为编程语言形式的指令来实现由脚本4从抽象的配置数据中所产生的具体的配置数据。在此,编程语言对应于对计算机程序7的功能单元8编码的编程语言。如果例如以编程语言C++对计算机程序7的功能单元8编程,则具体的配置数据例如可以通过所谓的#定义指令或者通过恒定变量的定义来实现。借助于脚本4也能够根据在配置数据容器3中所存储的配置数据来产生功能,所述功能承担复杂的任务(例如硬件组件的初始化或者对各个软件组件或者硬件组件的存在性的检查)并且自动地作为源代码以更高级的编程语言来实现。然后,该源代码可以被保存在一个或者多个与实施有关的配置文件(图1中的文件_2.c,文件_k.c)。对此,脚本4例如可以包含例如由C++中的指令所组成的所谓模板,所述指令根据在配置数据容器3中所存储的配置数据被更新,并且被保存在与实施有关的配置文件5中。
在步骤107中,计算机程序7的功能单元8被更新。这例如可以通过自动地调用编译器6来实现,所述编译器将以源代码形式存在的功能单元8翻译为机器代码。对此,编译器6读入与实施有关的配置文件5,并且根据在与实施有关的配置文件5中所保存的具体的配置数据来控制机器代码的产生。也可设想的是,一个或者多个功能单元已经以机器代码的形式存在。在这种情况下,编译器例如可以在考虑头标文件(文件_.h,文件_2.h,文件_3.h)的情况下将由脚本4所产生的源代码(图1中的文件_2.c,文件_k.c)翻译为机器代码,并且借助于被分配给该编译器的连接程序将如此所翻译的机器代码与表示功能单元8的机器代码相连接。
在步骤108中,该方法结束。在该步骤中,计算机程序7如此被配置,使得在所产生的机器代码中考虑在与实施无关的配置文件中所存储的具体的配置数据。
当然可能的是,脚本2和/或脚本4以其他的脚本语言被编写,或者被组织为可执行的程序。
在图2中所示的执行步骤当然可以被更改,并且执行的顺序可以被部分更改。因此,可设想的是,通过脚本4中的一个或者多个来执行合理性检查104。
该方法尤其能够以一个或者多个与实施无关的配置文件为出发点,具有一个或者多个例如依次被执行的脚本2,具有一个或者多个分别产生一个或者多个与实施有关的配置文件5的脚本4,当然计算机程序7能够具有一个或者多个功能单元8。利用本发明方法尤其能够识别在通过与实施无关的配置文件所预先确定的配置时是否确实应用功能单元8中的一个或者多个。如果这不是这种情况,则这可以通过被分配给配置数据容器3的未示出的软件工具来识别。这使得不配置这种功能单元8,并且借助于与实施有关的配置文件5引发编译器6不一起以待产生的机器代码的形式接管功能单元8。由此可以特别快速地执行本发明方法。在此,由借助于本发明方法所配置的计算机程序所产生的机器代码特别紧凑,并且因此节省了存储空间。
可能的是,脚本2本身已经引发产生一个或者多个与实施有关的配置文件5。由此能够非常快速地执行本发明方法。这例如可能对于不具有相关性并且区别于具体的配置数据的抽象的配置数据是有利的。
权利要求
1.用于配置包括至少一个功能单元的计算机程序的方法,其特征在于具有以下步骤-生成至少一个与实施无关的配置文件(1)和/或更改在至少一个与实施无关的配置文件(1)中所保存的信息;-根据在所述至少一个与实施无关的配置文件(1)中所保存的信息,自动建立和/或自动更新在一配置数据容器(3)中所保存的配置数据;-根据在所述配置数据容器(3)中所存储的配置数据,自动地产生至少一个与实施有关的配置文件(5);-根据在至少一个与实施有关的配置文件中所保存的信息,自动地配置至少一个功能单元。
2.按照权利要求1所述的方法,其特征在于,自动产生至少一个相关性信息,所述相关性信息说明至少两个在所述配置数据容器中存在的配置数据的相关性,并且所述至少一个与实施有关的配置文件根据所述至少一个相关性信息被产生。
3.按照前述权利要求之一所述的方法,其中所述计算机程序具有多个功能单元,其特征在于,多个与实施无关的配置文件被生成,并且与实施无关的配置文件中的每个被分配给至少一个功能单元。
4.按照前述权利要求之一所述的方法,其中所述计算机程序具有多个功能单元,其特征在于,多个与实施有关的配置文件被产生,并且与实施有关的配置文件中的每个被分配给至少一个功能单元。
5.按照前述权利要求之一所述的方法,其特征在于,所述至少一个与实施有关的配置文件根据硬件的至少一个特性来产生,在所述硬件上应该能够安装所配置的计算机程序的至少一部分。
6.按照前述权利要求之一所述的方法,其特征在于,所述至少一个与实施有关的配置文件根据合理性检查的结果来产生。
7.按照权利要求5和6所述的方法,其特征在于,为了执行所述合理性检查使用至少一个硬件特性。
8.按照前述权利要求之一所述的方法,其特征在于,自动生成文档,并且所述文档说明在所述至少一个与实施无关的配置文件和/或所述至少一个与实施有关的配置文件内所保存的信息。
9.按照前述权利要求之一所述的方法,其特征在于,所述至少一个与实施无关的配置文件以基于XML的格式被生成。
10.按照前述权利要求之一所述的方法,其特征在于,根据所述配置数据自动地确定所述计算机程序是否需要由所述计算机程序所包括的功能单元,并且如果所述计算机程序需要该功能单元,则是否只执行该功能单元的配置。
11.用于配置包括至少一个功能单元的计算机程序的软件系统,其特征在于,所述软件系统具有-至少一个与实施无关的配置文件;-包括配置数据的配置数据容器和/或用于根据在所述至少一个与实施无关的配置文件中所保存的信息来生成配置数据容器的装置;-用于更改配置数据/或从所述配置数据容器中读出配置数据的装置;-用于根据在所述配置数据容器中所存储的配置数据自动地产生至少一个与配置有关的配置文件的装置;和-用于根据在所述与实施有关的配置文件中所保存的信息自动地配置至少一个功能单元的装置。
12.按照权利要求11所述的软件系统,其特征在于,所述软件系统具有用于执行按照权利要求2至11之一所述的方法的装置。
13.按照权利要求11或12所述的软件系统,其特征在于,所述软件系统被存储在存储介质上。
14.按照权利要求13所述的软件系统,其特征在于,所述软件系统被存储在随机存取存储器、只读存储器或者闪速存储器上。
15.按照权利要求13所述的软件系统,其特征在于,所述软件系统被存储在数字通用光盘(DVD)、压缩盘(CD)或者硬盘(Hard Disc)上。
16.具有微处理器的计算装置、尤其是控制装置,其特征在于,所述计算装置被编程以实施按照权利要求1至10之一所述的方法。
全文摘要
为了特别简单和灵活地配置包括至少一个功能单元的计算机程序,建议了一种方法,所述方法包括以下步骤生成至少一个与实施无关的配置文件和/或更改在至少一个与实施无关的配置文件中所保存的信息;根据在所述至少一个与实施无关的配置文件中所保存的信息自动地建立和/或自动地更新在配置数据容器中所保存的配置数据;根据在所述配置数据容器中所存储的配置数据自动地产生至少一个与实施有关的配置文件;根据在至少一个与实施有关的配置文件中所保存的信息自动地配置至少一个功能单元。
文档编号G06F9/44GK1918545SQ200580004153
公开日2007年2月21日 申请日期2005年1月24日 优先权日2004年2月5日
发明者R·申克, B·博伊特尔, K·施奈德, B·伊尔格 申请人:罗伯特·博世有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1