CN100478877C - 配置计算机程序的方法 - Google Patents

配置计算机程序的方法 Download PDF

Info

Publication number
CN100478877C
CN100478877C CNB2005800041532A CN200580004153A CN100478877C CN 100478877 C CN100478877 C CN 100478877C CN B2005800041532 A CNB2005800041532 A CN B2005800041532A CN 200580004153 A CN200580004153 A CN 200580004153A CN 100478877 C CN100478877 C CN 100478877C
Authority
CN
China
Prior art keywords
configuration
configuration file
configuration data
computer program
relevant
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
CNB2005800041532A
Other languages
English (en)
Other versions
CN1918545A (zh
Inventor
R·申克
B·博伊特尔
K·施奈德
B·伊尔格
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 CN1918545A publication Critical patent/CN1918545A/zh
Application granted granted Critical
Publication of CN100478877C publication Critical patent/CN100478877C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • G06F1/0307Logarithmic or exponential functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1253Configuration of print job parameters, e.g. using UI at the client
    • G06F3/1254Automatic configuration, e.g. by driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Logic Circuits (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

为了特别简单和灵活地配置包括至少一个功能单元的计算机程序,建议了一种方法,所述方法包括以下步骤:生成至少一个与实施无关的配置文件和/或更改在至少一个与实施无关的配置文件中所保存的信息;根据在所述至少一个与实施元关的配置文件中所保存的信息自动地建立和/或自动地更新在配置数据容器中所保存的配置数据;根据在所述配置数据容器中所存储的配置数据自动地产生至少一个与实施有关的配置文件;根据在至少一个与实施有关的配置文件中所保存的信息自动地配置至少一个功能单元。

Description

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

Claims (16)

1.用于配置包括至少一个功能单元的计算机程序的方法,其特征在于具有以下步骤:
-生成至少一个与实施无关的配置文件(1)和/或更改在至少一个与实施无关的配置文件(1)中所保存的信息,其中,被保存在与实施无关的配置文件(1)中的信息抽象地描述了具体的配置参数;
-根据在所述至少一个与实施无关的配置文件(1)中所保存的信息,自动建立和/或自动更新在一配置数据容器(3)中所保存的配置数据,其中提取被保存在与实施无关的配置文件(1)中的信息并将该信息存储在所述配置数据容器(3)中;
-自动产生至少一个相关性信息,其中所述相关性信息描述了至少一个硬件部件与配置数据容器中存在的抽象配置日期的相关性;
-根据在所述配置数据容器(3)中所存储的配置数据和至少一个相关性信息,自动地产生至少一个与实施有关的配置文件(5),其中所述与实施有关的配置文件(5)包含具体的配置数据;
-根据在至少一个与实施有关的配置文件(5)中所保存的具体配置数据,自动地配置至少一个功能单元。
2.按照权利要求1所述的方法,其特征在于,在自动建立和/或自动更新在配置数据容器(3)中保存的配置数据之后,自动产生至少另一个相关性信息,所述至少另一个相关性信息说明至少两个在所述配置数据容器中存在的配置数据的相关性,并且所述至少一个与实施有关的配置文件根据所述至少另一个相关性信息被产生。
3.按照前述权利要求之一所述的方法,其中所述计算机程序具有多个功能单元,其特征在于,多个与实施无关的配置文件被生成,并且与实施无关的配置文件中的每个被分配给至少一个功能单元。
4.按照权利要求1或者2所述的方法,其中所述计算机程序具有多个功能单元,其特征在于,多个与实施有关的配置文件被产生,并且与实施有关的配置文件中的每个被分配给至少一个功能单元。
5.按照权利要求1或者2所述的方法,其特征在于,所述至少一个与实施有关的配置文件根据硬件的至少一个特性来产生,在所述硬件上能够安装所配置的计算机程序中的至少一部分。
6.按照权利要求1或者2所述的方法,其特征在于,所述至少一个与实施有关的配置文件根据合理性检查的结果来产生。
7.按照权利要求6所述的方法,其特征在于,为了执行所述合理性检查使用至少一个硬件特性。
8.按照权利要求1或者2所述的方法,其特征在于,在生成至少一个与实施无关的配置文件(1)和/或更改在至少一个与实施无关的配置文件(1)中所保存的信息之后并且在自动地产生至少一个与实施有关的配置文件(5)之后,自动生成文档,并且所述自动生成的文档说明在所述至少一个与实施无关的配置文件和/或所述至少一个与实施有关的配置文件内所保存的信息。
9.按照权利要求1或者2所述的方法,其特征在于,所述至少一个与实施无关的配置文件以基于XML的格式被生成。
10.按照权利要求1或者2所述的方法,其特征在于,在自动建立和/或自动更新在配置数据容器(3)中保存的配置数据之后,根据这些所保存的配置数据自动地确定:所述计算机程序是否需要由所述计算机程序所包括的功能单元,并且如果所述计算机程序需要该功能单元,则是否只执行该功能单元的配置。
11.用于配置包括至少一个功能单元的计算机程序的软件系统,其特征在于,所述软件系统具有:
-至少一个与实施无关的配置文件,其中抽象的配置数据被存储在所述与实施无关的配置文件(1)中,该配置数据对具体的配置参数进行说明;
-用于提取被保存在至少一个与实施无关的配置文件(1)中的抽象信息的装置;
-用于将所提取的信息存储在配置数据容器(3)中的装置;
-用于更改配置数据/或从所述配置数据容器(3)中读出配置数据的装置;
-用于自动产生至少一个相关性信息的装置,其中所述相关性信息说明至少一个硬件部件与至少一个存在于配置数据容器(3)中的配置日期的相关性;
-用于根据在所述配置数据容器中所存储的抽象的配置数据和至少一个所述相关性信息自动地产生至少一个与配置有关的配置文件的装置;和
-用于根据在所述与实施有关的配置文件中所保存的具体配置数据自动地配置至少一个功能单元的装置。
12.按照权利要求11所述的软件系统,其特征在于,所述软件系统具有:
-用于根据至少一个特硬件性来产生所述至少一个与实施有关的配置文件的装置,在所述硬件上能够安装所配置的计算机程序的至少一部分;
-用于在使用至少一个硬件特性的情况下实施合理性检查的装置;
-用于根据合理性检查的结果产生所述至少一个与实施有关的配置文件的装置。
13.按照权利要求12所述的软件系统,其特征在于,所述软件系统被存储在存储介质上。
14.按照权利要求12所述的软件系统,其特征在于,所述软件系统被存储在随机存取存储器、只读存储器或者闪速存储器上。
15.按照权利要求12所述的软件系统,其特征在于,所述软件系统被存储在数字通用光盘、压缩盘或者硬盘上。
16.具有微处理器的计算装置,其特征在于,所述计算装置拥有一个软件系统,该软件系统被设计成按照权利要求11或者12所述的软件系统。
CNB2005800041532A 2004-02-05 2005-01-24 配置计算机程序的方法 Active CN100478877C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102004005730A DE102004005730A1 (de) 2004-02-05 2004-02-05 Verfahren zur Konfiguration eines Computerprogramms
DE102004005730.3 2004-02-05

Publications (2)

Publication Number Publication Date
CN1918545A CN1918545A (zh) 2007-02-21
CN100478877C true CN100478877C (zh) 2009-04-15

Family

ID=34801630

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005800041532A Active CN100478877C (zh) 2004-02-05 2005-01-24 配置计算机程序的方法

Country Status (9)

Country Link
US (1) US8365163B2 (zh)
EP (1) EP1723513B1 (zh)
JP (1) JP5209209B2 (zh)
KR (1) KR101154730B1 (zh)
CN (1) CN100478877C (zh)
AT (1) ATE406610T1 (zh)
DE (2) DE102004005730A1 (zh)
ES (1) ES2309706T3 (zh)
WO (1) WO2005076129A1 (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005032944A1 (de) * 2005-07-14 2007-01-18 Robert Bosch Gmbh Verfahren und Softwaresystem zur Konfiguration eines modularen Systems
DE102005060161A1 (de) * 2005-12-14 2007-06-21 Robert Bosch Gmbh Verfahren zur Verarbeitung und Erzeugung von Diagnosedaten in einem Softwareentwicklungsprozess
KR101484680B1 (ko) * 2007-10-04 2015-01-21 삼성전자 주식회사 컴포넌트 기반 소프트웨어 제품 관리 시스템 및 방법
US8627306B2 (en) * 2008-08-06 2014-01-07 Caterpillar Inc. Method and system for updating an information management system configuration
DE102008043374A1 (de) 2008-10-31 2010-05-06 Robert Bosch Gmbh Vorrichtung und Verfahren zur Generierung redundanter, aber unterschiedlicher Maschinencodes aus einem Quellcode zur Verifizierung für ein sicherheitskritisches System
WO2010148244A1 (en) * 2009-06-19 2010-12-23 Dolby Laboratories Licensing Corporation User-specific features for an upgradeable media kernel and engine
US9223617B2 (en) * 2010-05-06 2015-12-29 Nec Laboratories America, Inc. Methods and systems for migrating networked systems across administrative domains
JP5969875B2 (ja) * 2012-09-28 2016-08-17 株式会社Screenホールディングス データ生成システムおよびデータ生成方法
US9355193B2 (en) 2012-11-06 2016-05-31 Rockwell Automation Technologies, Inc. Object design data model
US9031975B2 (en) 2012-11-06 2015-05-12 Rockwell Automation Technologies, Inc. Content management
US9135000B2 (en) * 2012-11-06 2015-09-15 Rockwell Automation Technologies, Inc. Runtime process diagnostics
US8898634B2 (en) 2012-11-06 2014-11-25 Rockwell Automation Technologies, Inc. Customized object design for industrial automation application
US9563861B2 (en) 2012-11-06 2017-02-07 Rockwell Automation Technologies, Inc. Integration of workflow and library modules
US20140330691A1 (en) * 2013-05-01 2014-11-06 Life Dreams, Inc. Devices, methods and systems related to automation that provides financial planning advice
CN104090780A (zh) * 2014-07-31 2014-10-08 广州视源电子科技股份有限公司 自动配置方法以及云编译系统
CN107291532A (zh) * 2016-03-31 2017-10-24 富士施乐实业发展(中国)有限公司 应用程序的自动化执行方法及装置
RU2675188C1 (ru) * 2017-12-27 2018-12-17 Федеральное государственное бюджетное учреждение науки Институт физики прочности и материаловедения Сибирского отделения Российской академии наук (ИФПМ СО РАН) Устройство и способ для получения порошковых материалов на основе нано- и микрочастиц путем электрического взрыва проволоки
RU2699886C1 (ru) * 2018-12-13 2019-09-11 Федеральное государственное бюджетное учреждение науки Институт физики прочности и матероиаловедения Сибирского отделения Российской академии наук (ИФПМ СО РАН) Способ получения металлического порошка и устройство для его осуществления
US20220350587A1 (en) * 2021-04-29 2022-11-03 Salesforce.Com, Inc. Methods and systems for deployment of services

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5005136A (en) * 1988-02-16 1991-04-02 U.S. Philips Corporation Silicon-compiler method and arrangement
JPH0455938A (ja) 1990-06-25 1992-02-24 Fujitsu Ltd プログラム仕様書自動生成方式
JPH06195214A (ja) 1992-12-25 1994-07-15 Toshiba Corp プログラム設計図およびソースプログラムの複写装置
US5872977A (en) * 1997-08-08 1999-02-16 International Business Machines Corporation Object-oriented method and apparatus for creating a makefile
US6295561B1 (en) * 1998-06-30 2001-09-25 At&T Corp System for translating native data structures and specific message structures by using template represented data structures on communication media and host machines
US6370682B1 (en) * 1999-09-15 2002-04-09 Siemens Atkiengesellschaft System and method for developing reusable flexible and platform independent software using components
DE10121790B4 (de) * 2000-06-03 2006-11-23 International Business Machines Corp. Softwarekonfigurationsverfahren zur Verwendung in einem Computersystem
EP1168163A1 (en) * 2000-06-19 2002-01-02 Hewlett-Packard Company, A Delaware Corporation Process for installing a software package in a client computer
US6681391B1 (en) * 2000-06-21 2004-01-20 Microsoft Corporation Method and system for installing software on a computer system
JP2002060727A (ja) 2000-08-21 2002-02-26 Nippon Polyurethane Ind Co Ltd 天蓋パッキン用組成物及び該組成物を用いた天蓋パッキンの製造方法
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
US6877035B2 (en) * 2001-01-29 2005-04-05 International Business Machines Corporation System for optimal resource allocation and planning for hosting computing services
JP2002229783A (ja) 2001-01-31 2002-08-16 Toshiba Corp ソフトウェア構築支援システム、その方法およびソフトウェア構築支援プログラム
JP2002366352A (ja) * 2001-06-11 2002-12-20 It Forest Corp Webアプリケーション開発支援装置
US6865733B2 (en) * 2001-06-21 2005-03-08 International Business Machines Corp. Standardized interface between Java virtual machine classes and a host operating environment
US7003759B2 (en) * 2001-06-21 2006-02-21 Codefast, Inc. Collection makefile generator
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
DE10131944A1 (de) * 2001-07-02 2003-01-16 Siemens Ag Verfahren zur Verarbeitung von Daten
US7774772B2 (en) * 2001-09-28 2010-08-10 Siebel Systems, Inc. Method and apparatus to perform an application software migration
US7266810B2 (en) * 2002-04-09 2007-09-04 Hewlett-Packard Development Company, Lp. Runtime profiling of platform-independent software applications
US7150003B2 (en) * 2002-11-25 2006-12-12 Matsushita Electric Industrial Co., Ltd. Class coalescence for obfuscation of object-oriented software
TWI222576B (en) * 2003-03-19 2004-10-21 Taiwan Semiconductor Mfg System and method for defining interface of manufacture execution system
US7350191B1 (en) * 2003-04-22 2008-03-25 Noetix, Inc. Computer implemented system and method for the generation of data access applications
JP2004015838A (ja) 2003-10-06 2004-01-15 Toshiba Corp 仮想的転送路形成方法

Also Published As

Publication number Publication date
JP5209209B2 (ja) 2013-06-12
US8365163B2 (en) 2013-01-29
KR101154730B1 (ko) 2012-06-08
DE102004005730A1 (de) 2005-08-25
EP1723513B1 (de) 2008-08-27
WO2005076129A1 (de) 2005-08-18
DE502005005190D1 (de) 2008-10-09
US20070261028A1 (en) 2007-11-08
ES2309706T3 (es) 2008-12-16
JP2007523407A (ja) 2007-08-16
KR20060123513A (ko) 2006-12-01
EP1723513A1 (de) 2006-11-22
ATE406610T1 (de) 2008-09-15
CN1918545A (zh) 2007-02-21

Similar Documents

Publication Publication Date Title
CN100478877C (zh) 配置计算机程序的方法
CN106919509B (zh) 一种客户端生成方法、装置及电子设备
CN106919434B (zh) 一种代码生成方法及装置
CN106528165B (zh) 代码生成方法及代码生成系统
EP1652062B1 (en) System and method for using an xml file to control xml to entity/relationship transformation
CN108197027B (zh) 软件性能优化方法、可存储介质、计算机、计算机程序
CN101223506A (zh) 用于配置模块化系统的方法和软件系统
El-Sharkawy et al. Analysing the kconfig semantics and its analysis tools
CN111414377B (zh) 结构化查询语句的处理方法、装置及存储介质
CN108241720B (zh) 数据处理方法、装置和计算机可读存储介质
Pinto et al. Aspect composition for multiple target languages using LARA
CN110673839A (zh) 分布式工具配置化构建生成方法及系统
US20110314043A1 (en) Full-fidelity representation of xml-represented objects
US7120618B2 (en) System and method for defining and using subclasses declaratively within markup
US20160266875A1 (en) Software automatic configuration apparatus, software automatic configuration method, and storage media
CN103559296A (zh) 一种基于xml的scpi命令解析方法
KR101624387B1 (ko) 소프트웨어 버스마크에 기반한 소프트웨어 자산 관리 방법 및 그 장치
Specification Object management group
Mühlberg et al. Learning assertions to verify linked-list programs
CN113254040B (zh) 前端框架更新方法、装置、设备及存储介质
Noyrit et al. FacadeMetamodel: masking UML
Lano et al. Case study: FIXML to Java, C# and C++.
EP2535813B1 (en) Method and device for generating an alert during an analysis of performance of a computer application
CN107577476A (zh) 一种基于模块划分的安卓系统源码差异性分析方法、服务器及介质
CN114398102A (zh) 一种应用程序包生成方法、装置、编译服务器及计算机可读存储介质

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