CN101223506A - 用于配置模块化系统的方法和软件系统 - Google Patents

用于配置模块化系统的方法和软件系统 Download PDF

Info

Publication number
CN101223506A
CN101223506A CNA2006800254942A CN200680025494A CN101223506A CN 101223506 A CN101223506 A CN 101223506A CN A2006800254942 A CNA2006800254942 A CN A2006800254942A CN 200680025494 A CN200680025494 A CN 200680025494A CN 101223506 A CN101223506 A CN 101223506A
Authority
CN
China
Prior art keywords
configuration
file
configuration data
automatically
rule
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
CNA2006800254942A
Other languages
English (en)
Inventor
B·维彻尔
F·纽卡姆
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of CN101223506A publication Critical patent/CN101223506A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

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

Abstract

为了尤其简单而灵活地配置包含至少一个模块的系统,提供具有以下步骤的方法:生成至少一个与实施无关的配置文件(1),和/或改变在所述至少一个与实施无关的配置文件(1)中所存储的信息;根据在所述至少一个与实施无关的配置文件(1)中所存储的信息来自动构建和/或自动修改在一个配置数据集(3)中所存储的配置数据;根据在所述配置数据集(3)中所存储的配置数据来自动配置所述至少一个模块;应用配置规则。

Description

用于配置模块化系统的方法和软件系统
本发明涉及用于配置包含至少一个模块的系统(模块化系统)的方法以及软件系统。
现有技术
包含至少一个模块的系统(模块化系统),尤其可以理解为以下所述种类的微处理器程序。在这种情况下模块可以与函数单元相等同看待。但该方法并不局限于微处理器程序,而是通常可以用于配置模块化系统,在所述模块化系统中单个模块被配置并被结合。
当前微处理器应用于所有重要的技术领域。其应用在此并不局限于通常的个人计算机(PC),而是此外还扩展到许多不同的电子设备,比如测量设备、控制设备等,尤其在汽车制造上。
现代微处理器程序或计算机程序几乎都如此来编程,使它们可以胜任尽可能宽广的应用领域。一方面通过所提供的、而又应当涵盖尽可能多的用户期望的功能性,另一方面通过其上应执行所述微处理器程序的基础硬件,来确定所述应用领域。所述基础硬件在此表示不同的(计算机)系统,其中所述系统应用于不同的领域,由不同的部件(比如处理器或总线系统)来构造,和/或配有不同的外围设备。
不同的功能性可能源于基础硬件的不同构造或者源于不同的用户期望。微处理器程序的所谓配置包括微处理器程序与基础硬件以及与特定用户期望的一种匹配以及一种专用化。
所述配置比如包括激活或关闭微处理器程序的几个函数、特定变量的起始值的设置或者特定变量类型的给定和说明。
已知的是,在微处理器程序中所使用的变量和函数在一个所谓的头文件中被说明,并实施微处理器程序的配置,其方式是在头文件中改变几个变量或函数名称。比如可以根据某一配置来把一个特殊的函数分配给在该微处理器程序中所使用的以及在该头文件中所说明的函数名称。
通常微处理器程序用所谓的高级语言,比如C、C++、Scheme或JAVA编写。通常将一个以高级语言编写的微处理器程序称为源代码。为了能够在微处理器上执行这种微处理器程序,必须将所述源代码转换成所谓的机器码,其中该机器码包含可由处理器执行的指令。机器码可以通过对源代码的解释或编译来生成。
一个微处理器程序典型地包含多个函数单元。一个或多个函数单元的源代码在此被存储在一个文件中。一个或多个这种文件被划归为一个头文件。从而一个微处理器程序典型地由多个文件组成。通过改变内部几个头文件来实施的这种微处理器程序的配置从而是非常错综复杂的,并且通常仅仅可以由源代码的编写者来实施。此外还必须生成所有头文件的使用说明书,这是非常耗费的,其中该使用说明书本身大多都是非常错综复杂的。
还已知的是,为了配置微处理器程序而为其分配一个特殊的函数单元,借助该函数单元比如可以通过改变给定参数的值来配置整个微处理器程序。该函数单元比如可以由执行中的微处理器程序调用,并被执行以配置该微处理器程序。这种为配置微处理器程序而设置的函数单元然而只允许在给定的范围内进行配置。利用这种函数单元不能实现比如用于把微处理器程序与一个新的硬件相匹配的或者用于把微处理器程序与新的用户期望相匹配的配置。此外,用于配置的所述函数单元必须专门针对所涉及的微处理器程序来开发,并且不能用于其它的微处理器程序。
在优先权期限内的、未事先公开的102004005730.3中,申请人描述了用于克服这种问题的一个第一方案。在所描述的方法中,改善了微处理器程序的配置,并实现了优化资源的实施,其方式是,在一个与实施无关的配置文件中规定了在用户(配置者)与微处理器程序之间的所要实施配置的一个抽象描述,其中所述与实施无关的配置文件是配置的基础。借助所述的与实施无关的配置文件自动地生成一个与实施有关的配置文件,然后所述与实施有关的配置文件被用于配置该微处理器程序。为了保证配置过程无误,并最终为了保证微处理器程序无误,在生成所述与实施有关的配置文件时实施了多次验证过程。所述验证过程的生成和连接是困难的和耗费的,尤其因为这些验证过程是以程序代码来生成以及编程的。
从而本发明的技术问题在于,进一步简化并尽可能清晰和灵活地进行微处理器程序的配置。该技术问题通过根据权利要求1所述的一种方法、和根据权利要求13所述的一种系统以及一种相应的软件系统产品和一种相应的计算机单元而得到解决。
本发明的优点
确定一个配置的数据与一个打算具体实施无关地被存储在一个或多个与实施无关的配置文件中。所述配置文件的与实施无关性尤其实现了对所存储信息的抽象描述。这使对于配置微处理器程序重要的信息能够尤其良好可读地被存储,并从而大大简化所述配置。由于所述配置文件与实施无关,尤其能够以简单的方式来实现微处理器程序的配置,如此使得该微处理器程序比如可以在一个新的计算机系统中执行,其中该计算机系统的确切参数在生成该微处理器程序时还是完全未知的。
通过配置数据集可以集中预备所有对于配置重要的数据。
借助在所述配置数据集中存储的配置数据自动地对至少一个模块进行配置。
按照根据本发明的方法的一种实施,规定,借助在所述配置数据集中存储的配置数据自动地生成至少一个与实施有关的配置文件,其中根据在至少一个与配置有关的配置文件中存储的信息来实施所述至少一个模块的自动配置。
在该步骤的每个实施方案中都根据所述与实施无关的配置文件使单个或多个参数值具体化。在这样一种具体化中比如把相对值替换为绝对值。同样也可以给几个值或数据区域分配特定的数据类型或数据结构。
所述与实施有关的配置文件考虑了与实施有关的特性,比如在源代码编写时所使用的一种或多种编程语言或者应执行该微处理器程序的硬件的特性。
比如可以借助所谓的脚本来实施借助在所述与实施无关的配置文件中存储的信息配置数据集的构建或更新。在此,一个脚本表示可由一个特殊的微处理器程序来执行的一个指令序列。这种特殊的微处理器程序比如是AWK或Perl。这些特殊的微处理器程序也可以用于根据在配置数据集中存储的配置数据来生成与实施有关的配置文件或模块的配置。
另外在本发明的方法中还应用了配置规则。在此典型地给每个配置参数都配备了一个或多个配置规则。在所述配置规则中比如可以规定,哪些数据源或数据源组对于某一配置参数是有效的、必要的或禁止的。在把该方法用于复杂软件系统时,数据源尤其理解为该软件系统的诸如配置数据的组件。在汽车领域中配置数据的可能的数据源是诸如拉姆达控制、驾驶踏板处理、诊断系统等的软件组件。在说明有效数据源时可以规定诸如“所有源无区别”或“包括所有子组件的组件X”的群特征。在所述配置规则中尤其明文规定了在形式和内容上如何来构成所述单个配置参数。总之本发明的措施能够以尤其简单的方式避免耗费的和分散的验证过程,反之能够集中地和一次性地(并从而是连贯一致地)实施。
同样可以借助合适的脚本来实施配置参数与配置规则的比较。使用集中配置完全能够对所述特性进行形式上的定义并对配置参数进行限定。从而大量和详细的验证被集中地实现并被计划。在当前所描述的解决方案中验证过程必须在相应的脚本中分立地被实施和编程,与当前所描述的解决方案相反,现在一个处理器或脚本可以集中地实施规则验证、结构验证和/或交叉关系验证。通过本发明的措施实施了从程序代码到规则的一种变换。通过把配置规则作为组件接口(interface)的组成部分来处理,实现了进一步的接口验证以及可视性限定。从而能够提早识别并避免在更换单个组件时的冲突。
本发明的重点从而是以下的认识:可以大大改善一个模块化系统的、尤其微处理器程序的配置,其方式是在用户(配置者)和系统之间在与实施无关的配置文件中规定所要实施的配置的一个抽象描述,其中所述与实施无关的配置文件是配置的基础。通过应用配置规则可以在一个提早的处理时间点对配置参数进行验证,这有利地降低了为此必要的耗费。
借助所述与实施无关的配置文件可以自动地生成一个与实施有关的配置文件,其中所述的与实施有关的配置文件然后用于配置该系统。但是在物理上没有形成这种文件的情况下,也同样可以配置该系统。因为所述配置参数服从给定的配置规则,所以可以实现与给定的外部参数的简单而灵活的匹配。本发明的方法从而能够抽象地并从而尤其良好可读地提供对配置进行描述的信息。通过使每个实施细节相独立,另外还达到了尤其高的灵活性,其中这种灵活性通过所述配置规则是可概观的和可掌握的。
仍然具有分散配置的优点。比如一个多通道测量系统的特性不仅可以在分配给该系统的一个配置文件中集中地存储,而且可以在分配给相应传感器/通道的多个与实施无关的配置文件中集中地存储。然后这些信息被聚集到一个集合中,并可以由脚本来集中分析。
此外,比如在一个分工的过程中,所述配置规则文件带来所述与实施无关的配置文件的安全使用。在一个与实施无关的配置文件中尤其可以包含具有不同配置规则文件的配置单元,由此不同模块的配置要求可以成批地处理。
在本发明方法的一个尤其优选的扩展中,在自动构建和/或在自动更新在配置数据集中存储的配置数据时,和/或在根据在该配置数据集中存储的配置数据来自动配置至少一个模块时,和/或在根据在该配置数据集中存储的配置数据来自动生成一个与实施有关的配置文件时,所述配置规则被应用。同样可以规定在生成所述的与实施无关的配置文件时就已经应用所述配置规则,这在下文中以配置文件编辑器的例子来描述。在所述的各点中,可以尤其简单地来实施配置规则的连接。从而在此达到一个尤其有利的性价比。
适用的是,如果把配置规则存储在至少一个配置规则文件中了。在此就出现了规定多个配置规则文件的情况,比如为每个函数单元规定一个配置规则文件,或者为每个配置文件规定一个配置规则文件。在一个此种的配置规则文件中存储被分配给函数单元的配置参数的规则。由此能够达到较高的概观性。所述单个规则文件在配置进行期间适用地被聚集到一个集中的规则文件中。当然也可以为所有要处理的配置参数仅仅规定一个配置规则文件。
在所述方法的一个优选扩展中,给一个配置参数分配了至少一个配置规则,其中该配置规则描述了用于处理该配置参数的权限、形式特性、决定存在的特性或确定其值的特性。作为本发明方法的另一有利扩展,在下文中进一步描述通过关联信息来规定一个配置。适用的是,如果在此规定了涉及配置规则的一种(处理)权限。从而可以以简单的方式在配置参数中确定一种分级体系,其中所述分级体系描述一种相互之间的可改变性。尤其可以控制哪个配置参数可以或允许由哪个另外的配置参数来描述或改变。在此出现了通过配置规则来描述配置参数的其它特征,比如
-一个标准值(缺省值),如果没有为一个参数提供值,那么所述的标准值就被用作替代值;从而使所有对配置数据进行处理的后接过程可以信赖一个配置值的存在;
-有效参照目标的一个说明,如果所属的配置参数是通过代码来区分的配置调节集合的一个列表;
-一个允许的值范围(比如最小/最大值、增量[比如仅值0、0.1、0.2等]、在文字参数中的最小/最大文字长度、确定的文本类型(比如ISO数据)、满足一个确定的文本格式的文本、或与多个给定文本之一相一致的文本);
-用于自动把一个值转换为另一形式的一个规定;
-由一个值的抽象的/物理的表示到一个内部表示的和/或反转的一个换算公式;
-比如应当怎样在显示器上显示一个配置值的一个说明(比如在printf-格式中的格式串);
-至另一系统特性的一个连接,比如在软件系统或微处理器程序中的一个变量、或者一个硬件特性或资源;
-配置值的一个单元;
-对文本信息中空字符和换页的一种处理。
在此可以为每个配置参数规定所述规则中的单个、多个或全部以及此外的规则。通过这种措施能够尤其有利地提高自动化程度,并能够实现微处理器程序的可靠配置。如果一个模块或一个函数单元比如预计要用来收集测量值,那么就可以在所述相应的规则中描述,哪些传感器由硬件来提供以及具有哪种精确度。所述参数仅仅可以在这些规则种被设置。
在本方法的一个有利的改进中,自动生成至少一个关联信息,其中该关联信息描述在配置数据集中所具有的至少两个配置数据的关联。根据所述的至少一个关联信息来生成所述的至少一个与实施有关的配置文件。关联信息比如可以描述一个配置参数的变化是否影响到另一配置参数。如果比如一个资源仅仅预留给一个模块,那么在实施该模块/函数单元期间该资源就不提供给其它的函数单元。利用关联信息可以获知哪些函数单元需要某一资源并从而不能同时执行。从而关联信息也可以用于资源管理。所述关联信息被用于配置信息的续传(前向)。在前向续传中,分配给某一组件的一个配置处理级根据向它提供的配置要求或配置微调通过一个可自由选择的算法来导出其它组件的配置,并将如此获得的调节续传到所述的其它组件。所述的有利的措施尤其可以用于自动配置子组件。此外还产生了把前向续传的意图存储在配置规则中的机会,以使在真正进行配置的时间点之前能够验证,通过配置数据的这种续传是否可能产生自循环(参数A配置参数B,参数B又配置参数A)。通过存储在配置规则中,继续对几个组件之间的关联进行形式描述,并从而提供给其它进一步的处理过程。所述前向续传除了可以规定所述的被动的处理方法之外,还可以规定主动的处理方法。在主动的前向续传中,不仅根据一个不变的数据,而且有利地根据一个(可能是复杂的和/或有条件的)表述来对某一配置参数的调节进行详细说明,其中所述的表述包含关于调节其它参数的参考。此外还有利地规定,将一个配置参数的详细说明作为整体(也即所述详细说明的存在)再次与其它配置参数的调节-或者由这些调节组成的可能任意复杂的表述-相关联。通过应用配置规则,可以对前向顺序进行自动确定,由此在接口验证的时间点就可以识别可能的自循环。
在本方法的一个优选实施方案中,生成多个与实施无关的配置文件,并且所述的与实施无关的配置文件中的每一个都被分配给至少一个模块或一个函数单元。通过作为信息而被存储在所述与实施无关的配置文件中的配置参数可以尤其简单地被找到并被改变,这实现了尤其简单的配置。比如可以把确定一个配置的信息、也即配置参数按照受其影响的功能或硬件来排序。另外,由此还实现了所述与实施无关的配置文件与新添加的函数单元之间的尤其简单的匹配。在最简单的情况下,给一个新添加的函数单元分配一个特殊的与实施无关的配置文件以及比如一个配置规则文件。有利地生成多个与实施有关的配置文件,并且所述与实施有关的配置文件中的每一个都被分配给至少一个函数单元。所述的与实施有关的配置文件的这种结构使所产生的与实施有关的配置文件更加清晰明确。如果源代码具有同样的结构,即一个或多个函数单元位于不同的文件中,那么就可以做到给每个源代码文件都分配一个与实施有关的配置文件。一个尤其清晰明确的结构也可以通过给每个与实施无关的配置文件分别分配一个与实施有关的配置文件来实现。
优选地根据硬件的至少一个特性来生成所述至少一个与实施有关的配置文件,其中在所述硬件上应当能够将已配置的模块化系统的至少一部分作为微处理器程序来安装。这种硬件特性比如可以是所提供的处理器的数量或者是连接在该硬件上的传感器的类型和数量。如果在生成所述与实施有关的配置文件时考虑这类硬件特性,那么就可以对该微处理器程序进行一个尤其精密的配置。从而比如可以尤其利用关联信息自动地形成一个针对执行速度和资源消耗优化的配置。
在另一优选的实施方案中,自动生成一个说明书。该说明书描述了在所述至少一个与实施无关的配置文件中、和/或在至少一个与实施有关的配置文件和/或配置规则中、和/或在至少一个配置规则文件中所存储的信息。这种自动生成的说明书一方面提供了微处理器程序的可维护性,另一方面能够尤其简单地以简单的方式来计划和准备一个配置,并回忆理解已执行过的配置。通过自动生成所述的说明书,保证了它与实际的配置或配置规则相一致。如果应当对该模块化系统实施新的配置,那么就可以借助这种说明书尤其简单地来确定,哪些参数值必须或允许改变以及它们遵循哪些规则。
适用的是,如果在根据本发明的方法中为了生成和/或改变所述至少一个与实施无关的配置文件而使用一个微处理器程序,使得配置规则得以考虑。这种计算机程序或微处理器程序比如可以称为配置文件编辑器,这为专业人员进行了充分的功能描述。通过在生成所述配置文件时就已经应用配置规则,从一开始就能够保证配置参数与配置规则的一致性。可以避免事后的修改。
优选地以基于XML的格式生成所述至少一个与实施无关的配置文件和/或至少一个配置规则文件。XML(Extensible MarkupLanguage,可扩展标记语言)是一种标准化的元语言,其中该语言能够生成结构化的语言。如果所述至少一个与实施无关的配置文件和/或至少一个配置规则文件是用一种与XML兼容的、结构化语言来生成的,那么由于这种文件是良好可读的,从而使一个配置变得轻松。另外这种文件还尤其是机器良好可读的。尤其存在多种局部的但同样是标准化的软件装置(Tools),借助这些软件装置可以对基于XML格式生成的文件进行处理和加工。
在本方法的一个优选实施方案中,根据所述配置数据来自动获知,一个该模块化系统所包括的模块是否是该模块化系统所需要的,并且只在该模块是该模块化系统所需要的情况下,才实施对该模块的一个配置。通过仅对在被配置系统的执行中实际所需要的模块/函数单元才实际进行配置,能够尤其快速地实施配置。此外,如果涉及一个微处理器程序,那么就做到了使被配置的系统尽可能少占用存储器空间,因为比如仅仅对应当实际被使用的这种函数单元实施从源代码到机器代码的转换。
本发明的方法有利地用于配置一个微处理器程序。但原则上可以用于配置由模块(比如文本、信息、机械元件等)组成的每种系统。
该命题还通过开头所述种类的一种软件系统而得到解决。在此该软件系统、尤其一种计算机程序或微处理器程序具有:
-至少一个配置规则文件;
-至少一个与实施无关的配置文件;
-具有一个配置文件的配置数据集和/或用于根据在所述至少一个与实施无关的配置文件中所存储的信息来生成一个配置数据集的装置;
-用于改变和/或从该配置数据集中读出配置数据的装置;
-用于根据在所述配置数据集中所存储的配置数据来自动配置所述至少一个模块的装置。
在一个优选的扩展中,用于根据在所述配置数据集中所存储的配置数据来自动配置所述至少一个模块的所述装置具有:
-用于根据在所述配置数据集中所存储的配置数据来自动生成一个与实施有关的配置文件的装置;以及
-用于根据在所述与实施有关的配置文件中所存储的信息来自动配置所述至少一个函数单元的装置。
如果所述软件系统在一个计算机、一个微处理器或一个相应的计算机单元、尤其根据本发明的计算机单元上执行,那么所述软件系统优选地具有用于实施本发明方法的装置。
本发明以一种软件系统的形式来实现在此是尤其有意义的。在此该软件系统可以在一个计算设备、尤其在一个微处理器上运行,并适于实施本发明的方法。在这种情况下,本发明从而通过所述软件系统来实现,如此使得该软件系统如同该方法一样以同样的方式来体现本发明,其中该软件系统适于实施该方法。
根据本发明的另一软件系统或计算机程序具有程序编码装置,以在考虑配置规则的情况下来生成或改变与实施无关的配置文件(配置文件编辑器)。
该软件系统可优选地存储在一个存储器单元(存储器介质、数据载体)上。该存储器单元可以构造为随机存储器、只读存储器或闪存。该存储器单元还可以构造为数字化视频光盘(DVD)、光盘(CD)或硬盘(Hard Disc)。根据本发明的一种软件系统产品、尤其一种计算机或微处理器程序产品包含有程序编码装置,其中该程序编码装置存储于一个存储器单元、尤其一个机器可读的或计算机可读的数据载体上。合适的数据载体尤其是软盘、硬盘、闪存、EEPROM、CD-ROM、DVD、RAM、ROM等。也可以通过计算机网络(因特网、内联网)来下载程序。
根据本发明的一种计算机单元、尤其控制设备,具有一个微处理器,并被编程用于实施根据本发明的方法。
在汽车制造领域中使用一种根据本发明的方法、一个根据本发明的软件系统、一个根据本发明的软件系统产品或一个根据本发明的计算机单元是符合目的的。当然,所述应用并不局限于此。
本发明的其它优点和扩展由说明和附图得出。
当然,之前所述的以及之后还要解释的特征不仅可以以相应给出的组合、而且可以以其它组合或以单独的形式来使用,而不脱离本发明的范畴。
本发明借助一个实施例在附图中概略地示出,并在下文中结合附图详细解释。
附图说明
图1示出了用于实施本发明方法的一种软件系统的一个实施方案;以及
图2示出了本发明方法的一个实施方案的概略流程图。
在图1中示出了用于实施本发明方法的一种软件系统。该软件系统具有多个与实施无关的配置文件1。给每个配置文件1都分配了一个文件名。在图1中所示的与实施无关的配置文件比如文件名为conf_1.xml、conf_2.xml、conf_3.xml至conf_n.xml。该软件系统同样具有多个配置规则文件1b。给每个配置规则文件1b都分配了一个文件名。在图1中所示的配置规则文件比如文件名为rule_1.xml、rule_2.xml、rule_3.xml至rule_n.xml。文件后缀xml表示所述与实施无关的配置文件1和配置规则文件1b以一个基于XML的格式存在。一个基于XML格式而存在的文本文件能够按照可给定的规则来组织所述文本文件的结构。这样构造过的文本文件可以尤其良好地由人工或机器来读和处理。
所述与实施无关的配置文件1和配置规则文件1b被输入给一个脚本2。该脚本2比如被构造为所谓的Perl脚本。Perl是一种解释语言,其语法基于编程语言C并且使用由相应的操作系统提供的辅助程序。
借助该脚本2,读出所述与实施无关的配置文件1,以及提取其中所存储的信息并将其存储在一个配置数据集3中。在考虑配置规则文件1b中的配置规则的情况下来提取配置信息或配置参数。如果配置参数与配置规则相矛盾,那么这能在配置的早期就已经被识别并被指出。为此比如可以在配置规则文件中或在脚本2中加入相应的提示文字或错误文字,其中这些文字在违反相应的规则时或违反一个规则类型时被输出。同时还确定并存储可能存在的与另外的配置脚本4的关联(前向)。配置规则文件1b在该软件系统中的位置可以作为示例来看待。在所述软件系统的另一实施方案中所述配置规则文件1b比如可能分配给脚本4。
所述的另外的配置脚本4同样比如是Perl脚本。同样也可以考虑的是,所述另外的配置脚本4中的一个或多个是可执行的微处理器程序(机器码),或者以另一脚本语言、比如AWK来存在。
用参考符号5表示与实施有关的配置文件。所述与实施有关的配置文件5比如以编程语言来编码,其中需要配置的源代码也用该编程语言编写。这种与实施有关的配置文件可以由一个编译器来进行处理。
用参考符号7表示一个微处理器程序,它具有多个函数单元8。借助在图2中所示的流程图来描述根据本发明的软件系统的作用原理。
在图2中所示的根据本发明的一个方法用于配置微处理器程序的流程图开始于步骤100。在一个步骤101中生成或改变与实施无关的配置文件1。所述与实施无关的配置文件1特征尤其在于,它能够借助那里所存储的信息来抽象地描述具体的配置值或配置参数。具体的配置值比如可以确定用于测量电压的一个传感器模块的测量范围。比如可以将一个测量范围抽象地说明为具有值3-5伏。如同要配置的功能单元8所期待的一样,需要由此生成的、与实施有关的值却可能比如位于10.000和20.000之间。该微处理器程序中控制该传感器的模块的一个函数单元8比如在这种情况下就必须借助具体的配置值10.000和20.000来进行配置,以实现在3-5伏的一个测量范围内的测量。
另外还给本方法提供了配置规则文件1b(在图1中的rule_1.xml至rule_x.xml)。通常并不是在该方法的每次实施中都生成或改变所述配置规则文件1b。所述配置规则文件1b描述所述配置参数的形式和内容特性。
在步骤101中所生成的或被改变的与实施无关的配置文件1和配置规则文件1b比如是以一个基于XML的格式生成的。这种格式能够尤其有利地实现所述与实施无关的配置文件1和配置规则文件1b的一种清晰明确的结构化。这提高了所述与实施无关的配置文件1和配置规则文件1b的可读性,并且比如由于可以迅速找到要修改的配置数据,从而简化对所述与实施无关的配置文件1的修改。对于一个尤其大的微处理器程序,其中对于它的配置需要大量的配置数据,也可以仅仅规定一个与配置无关的配置文件或配置规则文件。在此可以通过合适的XML结构来实现对所述与实施无关的配置文件1中所存储的信息以及对所述配置规则文件1b中所存储的配置规则的结构化。然而尤其有利的是规定多个与实施无关的配置文件和配置规则文件。这些与配置无关的配置文件1和配置规则文件1b中的每一个都比如可以分配给一个或多个函数单元8。由此能够尤其清晰明确地实施对所述与实施无关的配置文件和配置规则文件的生成或改变。此外由此还提高了单个与实施无关的配置文件和配置规则文件的可重复利用性。这对于还将要重复使用源代码中单个函数单元8的项目尤其有利。
在一个步骤102中完成在脚本2中所列出的指令。该脚本2致使所述无关的配置文件1和配置规则文件1b被读入。如果所述与实施无关的配置文件1和/或配置规则文件1b是基于一种结构化格式,比如一种基于XML的格式,那么就可以借助该脚本2尤其有利地对所述与实施无关的配置文件1和/或配置规则文件1b的内容实施语法和语意分析。从而比如可以识别在配置数据说明中的(文件)错误(缺少字符、过多字符、错误字符等)。所述与实施无关的配置文件1和配置规则文件1b的基于XML的格式优选地具有一种分级结构,这种分级结构有利地依从函数单元8的自身结构、其关系和/或其近似主题。借助脚本2在构建这种分级结构时,并从而还在构建源代码时就可以识别错误。
该步骤102有利地具有对所找到的错误进行处理的措施。这比如可以通过输出关于错误的信息来实现。同样可以想象采用随机的方法来消除错误。
在该步骤102中还借助配置规则来对配置参数进行验证。在此尤其验证配置参数在形式上和内容上是否与所属的配置规则相对应。如果不是这种情况,那么就分支返回到步骤101,在该步骤101中为了消除错误而实施对所述与实施无关的配置文件1的修改。如果在步骤102中没有识别到错误,那么就分支到步骤103中,在步骤103中构建或更新配置数据集3。
该脚本2在步骤103中提取在所述与实施无关的配置文件1中已有的配置数据,并将其存储到该配置数据集3中。该配置数据集3在此比如可以构造成数据库。同样可以想象,在本发明的软件系统中将所述的配置数据集3作为在一个存储器区域中预留的数据结构来实现,其中保证了该脚本2对配置数据集3中所存储的配置数据的读写访问。
在一个步骤104中获得关联。这种关联比如可以描述该微处理器程序的哪些函数单元8在当前的配置中必须实际被处理。借助这些关联可以决定在以后步骤之一中究竟是否必须为某一函数单元8生成一个与实施有关的配置文件。所述关联此外还描述,哪些具体的配置数据与哪些抽象的配置数据有关。从而可以想象,在一个与实施无关的配置文件中一个抽象配置数据的改变造成多个具体配置数据的改变。
如果所述另外的脚本4在其一侧改变所述的配置数据集3,那么也可能产生关联。从而必须获得并存储该脚本4的正确的调用顺序(激活顺序)。关联还可以描述一个或多个硬件组件与几个配置数据之间的关系。这比如能够识别一个规定的配置是否实际可以在某一硬件上执行。
在一个步骤105中生成与实施有关的配置文件5。为此,借助一个脚本4或多个脚本4首先调用在配置数据集3中所存储的配置数据。在本实施例中,该脚本4构造为Perl脚本。借助该脚本4尤其把在配置数据集3中所存储的抽象配置数据转变为具体的配置数据,其中所述的具体的配置数据然后被存储在与实施有关的配置文件5中。在此还优选地使用在步骤104中所获得的关联。
在步骤105中生成的与实施有关的配置文件5比如可以是头文件(在图1中的file_1.h、file_2.h、file_3.h)。所生成的与实施有关的配置文件5同样也可以包含源代码(在图1中的file_2.c、file_k.c)。由脚本4根据抽象的配置数据所生成的具体配置数据典型地通过变量和/或函数参数的赋值以及作为一个编程语言中的指令来实现。在此所述的编程语言对应于微处理器程序7的函数单元8所采用的编程语言。如果比如微处理器程序7的函数单元8是用编程语言C++编写的,那么具体的配置数据比如可以通过所谓的Define-指令或通过定义常数变量来实现。借助该脚本4还可以根据在配置数据集3中所存储的配置数据来生成函数,其中所述函数承担复杂的任务-比如硬件组件的初始化或者对单个软件组件或硬件组件的存在进行验证-并本身作为源代码以高级编程语言来实现。该源代码然后可以被存储在一个或多个与实施有关的配置文件中(在图1中的file_2.c、file_k.c)。为此脚本4比如可以包含一个所谓的模板,该模板比如由C++指令组成,这些指令根据在配置数据集3中所存储的配置数据而被更新并被存储在一个与实施有关的配置文件5中。
在一个步骤106中该微处理器程序7的函数单元8被更新。这比如可以通过自动调用一个编译器6来实现,其中该编译器把以源代码存在的函数单元8翻译成机器码。为此该编译器6读入所述的与实施有关的配置文件5,并根据在所述与实施有关的配置文件5中所存储的具体配置数据来控制生成机器码。也可以想象的是,一个或多个函数单元8已经以机器码的形式存在。在这种情况下,该编译器比如可以在考虑头文件(file_1.h、file_2.h、file_3.h)的情况下把由脚本4所生成的源代码(在图1中的file_2.c、file_k.c)翻译成机器码,并把如此翻译的机器码借助分配给该编译器6的一个所谓连接器与代表函数单元8的机器码相连接。
在一个步骤107中该方法结束。在该步骤中如此配置该微处理器程序7,使得在所述与实施无关的配置文件中所存储的具体配置数据在所生成的机器码中得以考虑。
该脚本2和/或该脚本4可以以另一脚本语言来编写,或者作为可执行的程序来构造。同样也可以在启用脚本4时才使用配置规则。
当然,在图2中所示的实施步骤可以变化,并且处理顺序可以部分地改变。该方法尤其还可以从一个或多个与实施无关的配置文件出发,具有一个或多个串连执行的脚本2,具有分别生成一个或多个与实施有关的配置文件5的一个或多个脚本4,并且该微处理器程序7同样可以具有一个或多个函数单元8。利用本发明的方法尤其能够识别,一个或多个函数单元8是否在由所述与实施无关的配置文件所给定的配置中被实际使用。如果不是这种情况,那么这可以通过分配给该配置数据集3的、未示出的软件装置来识别。这能够使这样一个函数单元8不被配置,并借助所述与实施有关的配置文件5致使该编译器6不把所述函数单元8加入要生成的机器码中。由此本发明的方法可以尤其快速地实施。由借助本发明方法配置的一个微处理器程序所生成的机器码在此可以是尤其紧凑的,并从而可以节省存储器空间。
该脚本2本身就可以促使一个或多个与实施有关的配置文件5生成。由此本发明的方法可以尤其快速地实施。这比如对于抽象的配置数据可能是有利的,其中所述的抽象的配置数据不具有关联,并且与具体的配置数据不同。

Claims (19)

1.用于配置包含至少一个模块的系统(模块化系统)尤其是一种微处理器程序的方法,
其特征在于,
具有以下的步骤:
-生成至少一个与实施无关的配置文件(1),和/或改变在所述至少一个与实施无关的配置文件(1)中所存储的信息;
-根据在所述至少一个与配置无关的配置文件(1)中所存储的信息来自动构建和/或自动更新在一个配置数据集(3)中所存储的配置数据;
-根据在所述配置数据集(3)中所存储的配置数据来自动配置所述至少一个模块;
-应用配置规则。
2.根据权利要求1所述的方法,
其特征在于,
具有以下步骤:
-根据在所述配置数据集(3)中所存储的配置数据来自动配置所述至少一个模块;
-以后的步骤包括:
-根据在所述配置数据集(3)中所存储的配置数据来自动生成至少一个与实施有关的配置文件(5);
-根据在所述至少一个与实施有关的配置文件中所存储的信息来自动配置所述至少一个模块。
3.根据前述权利要求之一所述的方法,
其特征在于,
在自动构建和/或在自动更新在一个配置数据集(3)中所存储的配置数据时,和/或在根据在所述配置数据集(3)中所存储的配置数据来自动配置所述至少一个模块时,和/或在根据在所述配置数据集(3)中所存储的配置数据来自动生成至少一个与实施有关的配置文件(5)时,应用所述配置规则。
4.根据前述权利要求之一所述的方法,
其特征在于,
所述配置规则已经存储在至少一个配置规则文件(1b)中。
5.根据前述权利要求之一所述的方法,
其特征在于,
配置参数分配有至少一个配置规则,其中所述配置规则描述用于处理所述配置参数的权限、形式特性、决定配置参数的存在的特性或者决定配置参数值的特性。
6.根据前述权利要求之一所述的方法,
其特征在于,
自动生成至少一个关联信息,该关联信息描述在所述配置数据集中存在的至少两个配置数据的关联,根据所述至少一个关联信息来生成所述至少一个与实施有关的配置文件。
7.根据前述权利要求之一所述的方法,其中
所述模块化系统包含多个模块,其特征在于,生成多个与实施无关的配置文件,并且所述与实施无关的配置文件中的每一个都被分配给至少一个模块。
8.根据前述权利要求之一所述的方法,
其特征在于,
所述至少一个与实施有关的配置文件根据一个硬件的至少一个特性而被生成,其中应该能够在所述硬件上将所述已配置的模块化系统的至少一部分作为微处理器程序来安装。
9.根据前述权利要求之一所述的方法,
其特征在于,
自动生成一个说明书,并且所述说明书描述在所述至少一个与实施无关的配置文件中、和/或在所述至少一个与实施有关的配置文件中、和/或在所述配置规则中、和/或在所述至少一个配置规则文件中所存储的信息。
10.根据前述权利要求之一所述的方法,
其特征在于,
为了生成和/或改变所述至少一个与实施无关的配置文件而使用微处理器程序,使所述配置规则得以考虑。
11.根据前述权利要求之一所述的方法,
其特征在于,
所述至少一个与实施无关的配置文件和/或所述至少一个配置规则文件以基于XML的格式来生成。
12.根据前述权利要求之一所述的方法,
其特征在于,
根据所述配置数据来自动地获知,所述模块化系统所包括的模块是否是该模块化系统所需要的,并且只在该模块是该模块化系统所需要的情况下,才对该模块实施配置。
13.根据前述权利要求之一所述的、用于配置微处理器程序的方法的应用。
14.用于配置包含至少一个模块的系统(模块化系统)的软件系统,
其特征在于,
所述软件系统包括:
-至少一个配置规则文件;
-至少一个与实施无关的配置文件;
-具有配置数据的配置数据集,和/或用于根据在所述至少一个与实施无关的配置文件中所存储的信息来生成配置数据集的装置;
-用于改变和/或从所述配置数据集中读出配置数据的装置;以及
-用于根据在所述配置数据集中所存储的配置数据来自动配置所述至少一个模块的装置;
-根据权利要求13所述的软件系统,其中用于根据在所述配置数据集中所存储的配置数据来自动配置所述至少一个函数单元的装置包含有:
-用于根据在所述配置数据集中所存储的配置数据来自动生成至少一个与实施有关的配置文件的装置;以及
-用于根据在所述与实施有关的配置文件中所存储的信息来自动配置所述至少一个模块的装置。
15.根据权利要求13或者所述的软件系统,
其特征在于,
所述软件系统包含有用于实施根据权利要求1至12之一所述方法的装置。
16.具有程序编码装置的软件系统,以在考虑配置规则的情况下来生成或改变与实施无关的配置文件。
17.软件系统产品,
其特征在于,
根据权利要求13至15之一所述软件系统被存储在存储器单元上。
18.计算机单元、尤其具有一个微处理器的控制设备,
其特征在于,
所述计算机单元被编程以实施根据权利要求1至12之一所述方法。
19.根据前述权利要求之一所述方法、软件系统、软件系统产品或计算机单元在汽车制造领域中的应用。
CNA2006800254942A 2005-07-14 2006-06-30 用于配置模块化系统的方法和软件系统 Pending CN101223506A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102005032944.6 2005-07-14
DE102005032944A DE102005032944A1 (de) 2005-07-14 2005-07-14 Verfahren und Softwaresystem zur Konfiguration eines modularen Systems

Publications (1)

Publication Number Publication Date
CN101223506A true CN101223506A (zh) 2008-07-16

Family

ID=36999907

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2006800254942A Pending CN101223506A (zh) 2005-07-14 2006-06-30 用于配置模块化系统的方法和软件系统

Country Status (5)

Country Link
US (1) US20090106546A1 (zh)
EP (1) EP1904923A1 (zh)
CN (1) CN101223506A (zh)
DE (1) DE102005032944A1 (zh)
WO (1) WO2007006671A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102262551A (zh) * 2010-05-27 2011-11-30 空中客车运营简化股份公司 Ima类型模块的增量配置的方法和装置
CN103052922A (zh) * 2010-07-07 2013-04-17 Abb股份公司 用于配置控制设备的方法
CN103116488A (zh) * 2011-08-09 2013-05-22 帝斯贝思数字信号处理和控制工程有限公司 用于在影响装置中处理数据的方法
CN107636606A (zh) * 2017-08-02 2018-01-26 福建联迪商用设备有限公司 一种配置文件分级方法及终端
CN109597661A (zh) * 2018-10-26 2019-04-09 阿里巴巴集团控股有限公司 一种业务功能配置方法及装置

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007004423A1 (de) * 2007-01-23 2008-07-31 Carl Zeiss Industrielle Messtechnik Gmbh Steuerung eines Betriebes eines Koordinatenmessgerätes
US9009358B1 (en) 2008-09-23 2015-04-14 Western Digital Technologies, Inc. Configuring a data storage device with a parameter file interlocked with configuration code
US7984200B1 (en) 2008-09-23 2011-07-19 Western Digital Technologies, Inc. Configuring a data storage device with a configuration data record set in response to a configuration code
US8489841B1 (en) * 2009-12-10 2013-07-16 Western Digital Technologies, Inc. Manufacturing station dynamically configuring a data storage device with a validated configuration data record
US20140330691A1 (en) * 2013-05-01 2014-11-06 Life Dreams, Inc. Devices, methods and systems related to automation that provides financial planning advice
US10185577B2 (en) 2014-12-08 2019-01-22 Oracle International Corporation Run-time adaption of external properties controlling operation of applications
US11954071B1 (en) * 2017-06-11 2024-04-09 Jennifer Shin File naming and management system
CN111552508B (zh) * 2020-04-29 2023-03-14 杭州数梦工场科技有限公司 应用程序版本构建方法、装置、电子设备

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4562535A (en) * 1982-04-05 1985-12-31 Texas Instruments Incorporated Self-configuring digital processor system with global system
US4633392A (en) * 1982-04-05 1986-12-30 Texas Instruments Incorporated Self-configuring digital processor system with logical arbiter
US5872977A (en) * 1997-08-08 1999-02-16 International Business Machines Corporation Object-oriented method and apparatus for creating a makefile
US6636961B1 (en) * 1999-07-09 2003-10-21 International Business Machines Corporation System and method for configuring personal systems
DE10121790B4 (de) * 2000-06-03 2006-11-23 International Business Machines Corp. Softwarekonfigurationsverfahren zur Verwendung in einem Computersystem
US20030033588A1 (en) * 2001-01-29 2003-02-13 John Alexander System, method and article of manufacture for using a library map to create and maintain IP cores effectively
US6865733B2 (en) * 2001-06-21 2005-03-08 International Business Machines Corp. Standardized interface between Java virtual machine classes and a host operating environment
US6789254B2 (en) * 2001-06-21 2004-09-07 International Business Machines Corp. Java classes comprising an application program interface for platform integration derived from a common codebase
DE102004005730A1 (de) * 2004-02-05 2005-08-25 Robert Bosch Gmbh Verfahren zur Konfiguration eines Computerprogramms

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102262551A (zh) * 2010-05-27 2011-11-30 空中客车运营简化股份公司 Ima类型模块的增量配置的方法和装置
CN102262551B (zh) * 2010-05-27 2014-05-07 空中客车运营简化股份公司 Ima类型模块的增量配置的方法和装置
CN103052922A (zh) * 2010-07-07 2013-04-17 Abb股份公司 用于配置控制设备的方法
CN103052922B (zh) * 2010-07-07 2016-01-06 Abb股份公司 用于配置控制设备的方法和装置
CN103116488A (zh) * 2011-08-09 2013-05-22 帝斯贝思数字信号处理和控制工程有限公司 用于在影响装置中处理数据的方法
CN103116488B (zh) * 2011-08-09 2017-03-01 帝斯贝思数字信号处理和控制工程有限公司 用于在影响装置中处理数据的方法
CN107636606A (zh) * 2017-08-02 2018-01-26 福建联迪商用设备有限公司 一种配置文件分级方法及终端
CN107636606B (zh) * 2017-08-02 2020-12-15 福建联迪商用设备有限公司 一种配置文件分级方法及终端
CN109597661A (zh) * 2018-10-26 2019-04-09 阿里巴巴集团控股有限公司 一种业务功能配置方法及装置
CN109597661B (zh) * 2018-10-26 2021-10-22 创新先进技术有限公司 一种业务功能配置方法及装置

Also Published As

Publication number Publication date
WO2007006671A1 (de) 2007-01-18
DE102005032944A1 (de) 2007-01-18
EP1904923A1 (de) 2008-04-02
US20090106546A1 (en) 2009-04-23

Similar Documents

Publication Publication Date Title
CN101223506A (zh) 用于配置模块化系统的方法和软件系统
KR101154730B1 (ko) 컴퓨터 프로그램의 구성 방법
US7032210B2 (en) Method and system for generating program source code of a computer application from an information model
US20020066072A1 (en) Method and computer program for producing a regulator or controller
KR20110023755A (ko) 통합 환경 생성기
CN105607923A (zh) 一种跨平台的航空电子系统配置数据生成与恢复方法
Haslbeck et al. Hoare logics for time bounds: A study in meta theory
Brahmi et al. Formalise to automate: deployment of a safe and cost-efficient process for avionics software
Whalen et al. An approach to automatic code generation for safety-critical systems
US11593076B2 (en) Method for merging architecture data
US8434071B2 (en) Method for translating a graphical workflow in a textual description
Moutinho et al. Ecore representation for extending PNML for Input-Output Place-Transition nets
US8473937B2 (en) Method and array for changing software or source code
US20150363213A1 (en) Method For Model-Based Generation Of Startup Configurations Of Embedded Systems
US5805888A (en) Identifier dictionary-generating device
Preoteasa et al. Mechanically proving determinacy of hierarchical block diagram translations
Reza et al. Mapping AADL to petri net tool-sets using PNML framework
CN115098076A (zh) 一种用于Android系统的代码生成方法
Oliveira et al. A tactic language for refinement of state-rich concurrent specifications
Ferko et al. Automatic Generation of Configuration Files: an Experience Report from the Railway Domain.
Berger et al. Multiple analyses, requirements once: simplifying testing and verification in automotive model-based development
US20180074934A1 (en) Method for checking equivalence of code, non-transitory computer-readable storage medium, computer program product and computer for implementing the method
Bures et al. Using DSL for automatic generation of software connectors
Ruchkin Architectural and Analytic Integration of Cyber-Physical System Models.
Ray Automated translation of matlab Simulink/Stateflow models to an intermediate format in hyvisual

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

Open date: 20080716