KR101154730B1 - 컴퓨터 프로그램의 구성 방법 - Google Patents

컴퓨터 프로그램의 구성 방법 Download PDF

Info

Publication number
KR101154730B1
KR101154730B1 KR1020067015780A KR20067015780A KR101154730B1 KR 101154730 B1 KR101154730 B1 KR 101154730B1 KR 1020067015780 A KR1020067015780 A KR 1020067015780A KR 20067015780 A KR20067015780 A KR 20067015780A KR 101154730 B1 KR101154730 B1 KR 101154730B1
Authority
KR
South Korea
Prior art keywords
configuration
configuration data
implementation
computer program
configuration file
Prior art date
Application number
KR1020067015780A
Other languages
English (en)
Other versions
KR20060123513A (ko
Inventor
레네 섕크
브외른 보이터
클라우스 슈나이더
베른트 일크
Original Assignee
로베르트 보쉬 게엠베하
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 로베르트 보쉬 게엠베하 filed Critical 로베르트 보쉬 게엠베하
Publication of KR20060123513A publication Critical patent/KR20060123513A/ko
Application granted granted Critical
Publication of KR101154730B1 publication Critical patent/KR101154730B1/ko

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

본 발명은 적어도 하나의 기능 유닛을 포함하는 컴퓨터 프로그램을 매우 용이하고 유연하게 구성하기 위한 방법에 관한 것으로, 상기 방법은 적어도 하나의 구현 독립적 구성 파일(1)을 생성하고, 그리고/또는 적어도 하나의 구현 독립적 구성 파일(1) 내에 저장된 정보들을 변경하는 단계와, 상기 적어도 하나의 구현 독립적 구성 파일(1) 내에 저장된 정보들에 따라 구성 데이터 컨테이너(3) 내에 저장된 구성 데이터를 자동 설정하고, 그리고/또는 자동 업데이트하는 단계와, 상기 구성 데이터 컨테이너(3) 내에 저장된 구성 데이터들에 따라 적어도 하나의 구현 종속적 구성 파일(5)을 자동 생성하는 단계와, 상기 적어도 하나의 구현 종속적 구성 파일 내에 저장된 정보들에 따라 적어도 하나의 기능 유닛을 구성하는 단계를 포함한다.
컴퓨터 프로그램, 데이터 파일, 구성 파일, 기능 유닛

Description

컴퓨터 프로그램의 구성 방법{METHOD FOR CONFIGURING A COMPUTER PROGRAM}
본 발명은 적어도 하나의 기능 유닛을 포함하는 컴퓨터 프로그램을 구성하기 위한 방법에 관한 것이다.
또한, 본 발명은 적어도 하나의 기능 유닛을 포함하는 컴퓨터 프로그램을 구성하기 위한 소프트웨어 시스템에 관한 것이다.
현대의 컴퓨터 프로그램들은 대부분이 가능한 한 폭넓은 애플리케이션 영역에서 사용될 수 있도록 프로그래밍된다. 애플리케이션 영역은 일측에서는 재차 최대한 많은 사용자 요구를 충족하여야 하는 가용 기능성에 의해, 그리고 타측에서는 컴퓨터 프로그램의 실행 기반이 되는 하드웨어에 의해 결정된다. 이때 상기 기반 하드웨어는, 다양한 영역에서 사용되고, 다양한 컴포넌트들(예컨대 프로세서 혹은 버스 시스템)로 구성되고/되거나 다양한 주변 장치들을 사용하는 다양한 컴퓨터 시스템을 의미한다.
다양한 기능성들은 기반 하드웨어의 다양한 조건들로부터, 혹은 다양한 사용자 요구로부터 제공될 수 있다. 기반 하드웨어 및 특정 사용자 요구에 대한 컴퓨터 프로그램의 적응과 그에 따른 특수화에는 컴퓨터 프로그램의 이른바 구성(configuration)이 포함된다.
구성은 예컨대 컴퓨터 프로그램의 각 함수들의 활성화 혹은 비활성화, 특정 변수들에 대한 시작값의 설정, 또는 특정 변수 타입들의 사전 설정 및 지정을 의미한다.
컴퓨터 프로그램에 사용된 변수들 및 함수들을 이른바 헤더 파일 내에 선언하고, 헤드 파일 내의 개별 변수들 혹은 함수 지정자들을 변경하여 컴퓨터 프로그램을 구성하는 것이 공지되어 있다. 예를 들어, 특정 구성에 따라, 컴퓨터 프로그램에서 사용되고 헤더 파일 내에 선언된 함수 지정자에 특수 함수를 할당할 수 있다.
통상적으로 컴퓨터 프로그램들은 이른바 고급 프로그래밍 언어로, 예컨대 C, C++, 스킴(scheme) 혹은 자바(JAVA)로 생성된다. 통상적으로 고급 프로그래밍 언어로 작성된 컴퓨터 프로그램을 소스 코드라 칭한다. 상기와 같은 컴퓨터 프로그램을 컴퓨터상에서 실행시키기 위해, 상기 소스 코드로부터 이른바 기계 코드가 생성되어야 한다. 이러한 기계 코드는 컴퓨터의 프로세서에 의해 실행될 수 있는 명령어를 포함하고 있다. 기계 코드는 이른바 소스 코드의 해석이나 혹은 컴파일링에 의해 생성될 수 있다.
전형적으로 컴퓨터 프로그램은 다수의 기능 유닛을 포함하고 있다. 이와 관련하여 하나 혹은 다수의 기능 유닛의 소스 코드는 하나의 데이터 파일 내에 저장된다. 상기와 같은 하나 혹은 다수의 파일에는 헤더 파일이 할당된다. 그로 인해 컴퓨터 프로그램은 일반적으로 다수의 파일로 구성된다. 그러므로 개별 헤더 파일들 내부에서 변경에 의해 실행되는 상기와 같은 컴퓨터 프로그램의 구성은 이해하기가 매우 어렵고, 오로지 소스 코드의 생성기에 의해서만 실행될 수 있는 일이 많다. 더욱이 모든 헤더 파일들의 문서화가 수행되어야 하고, 이는 매우 복잡하며, 문서 자체도 대개 이해하기가 매우 어렵다.
또한, 컴퓨터 프로그램을 구성하기 위해 상기 컴퓨터 프로그램에 특수 기능 유닛이 할당되는 점도 공지되어 있다. 이와 관련하여 상기 특수 기능 유닛을 이용하여 전체 프로그램의 구성은 예컨대 사전 지정된 파라미터들의 값을 변경함으로써 이루어질 수 있다. 상기 기능 유닛은 예컨대 활성 컴퓨터 프로그램으로부터 호출되어, 컴퓨터 프로그램의 구성을 위해 실행될 수 있다. 그러나 컴퓨터 프로그램의 구성을 위해 제공되는 상기와 같은 기능 유닛은 오로지 사전 지정된 범위 한계 이내에서의 구성만을 허용한다. 예컨대 새로운 하드웨어에 컴퓨터 프로그램을 적응시키거나, 혹은 새로운 사용자 요구에 컴퓨터 프로그램을 적응시키기 위한 컴퓨터 프로그램의 구성은, 상기와 같은 기능 유닛을 이용해서는 이루어질 수 없다. 또한, 구성을 위해 이용되는 기능 유닛은 해당하는 컴퓨터 프로그램 전용으로 개발되어야 하며, 그 외 다른 컴퓨터 프로그램용으로는 사용할 수 없다.
그러므로 본 발명의 목적은, 컴퓨터 프로그램이 최대한 이해하기 쉽고 유연하게 구성될 수 있도록 하는 가능성을 제공하는 것이다.
상기 목적은 하기의 단계들을 포함하는 최초에 언급한 종류의 방법에 의해 달성된다.
적어도 하나의 구현 독립적 구성 파일을 생성하고, 그리고/또는 적어도 하나의 구현 독립적 구성 파일 내에 저장된 정보들을 변경하는 단계,
삭제
상기 적어도 하나의 구현 독립적 구성 파일 내에 저장된 정보들에 따라, 구성 데이터 컨테이너 내에 저장된 구성 데이터를 자동 셋업하고 그리고/또는 자동 업데이트하는 단계,
상기 구성 데이터 컨테이너 내에 저장된 구성 데이터들에 따라, 적어도 하나의 구현 종속적 구성 파일을 자동 생성하는 단계,
상기 적어도 하나의 구현 종속적 구성 파일 내에 저장된 정보들에 따라, 적어도 하나의 기능 유닛을 구성하는 단계.
다시 말해 구성을 결정하는 데이터들은 의도하는 구체적인 구현과는 무관하게 하나 혹은 그 이상의 구현 독립적 구성 파일들 내에 저장된다. 상기 구성 파일의 구현 독립성은 특히 저장된 정보들의 추상적 기술(abstract description)을 가능케 한다. 이는, 컴퓨터 프로그램의 구성과 관련되는 정보들을 매우 용이하게 판독할 수 있게 저장하고, 그에 따라 구성을 현저히 간략화하는 것을 가능케 한다. 상기와 같은 구성 파일이 구현에 종속되지 않음으로써, 특히 간단한 방식으로 컴퓨터 프로그램의 구성을 실현할 수 있으며, 그럼으로써 상기 컴퓨터 프로그램은 예컨대 컴퓨터 프로그램의 생성 시 그 정확한 파라미터들이 전혀 공지되지 않았던 새로운 컴퓨터 시스템상에서 실행될 수 있다.
구성 데이터 컨테이너는 구성과 관련한 모든 데이터를 중앙에서 지속적으로 제공하는 것을 가능케 한다. 상기 구성 데이터 컨테이너 내에 저장된 구성 데이터들을 이용하여, 적어도 하나의 구현 종속적 구성 파일이 자동으로 생성된다. 상기 구현 종속적 구성 파일 내에서는, 구현 독립적 구성 파일과 관련하여 하나 혹은 그 이상의 파라미터 값의 구체화가 개시된다. 상기와 같은 구체화 시에 예컨대 상대값들이 절대값들로 대체된다. 마찬가지로 개별 값들 혹은 데이터 영역들에는 특정 데이터 타입 혹은 데이터 구조들이 할당될 수 있다. 결과적으로 구현 종속적 구성 파일은, 예컨대 소스 코드의 프로그래밍 시에 이용되는 하나 혹은 그 이상의 프로그래밍 언어와 같은 구현 종속적 특성이나, 혹은 컴퓨터 프로그램의 실행 기반이 될 하드웨어의 특성을 고려한다.
구현 독립적 구성 파일들 내에 저장된 정보들을 이용하는 구성 데이터 컨테이너의 셋업 또는 업데이트는 예컨대 이른바 스크립트들을 이용하여 실행될 수 있다. 이와 관련하여 스크립트는 특수 컴퓨터 프로그램에 의해 실행될 수 있는 명령시퀀스를 나타낸다. 상기와 같은 특수 컴퓨터 프로그램은 예컨대 AWK 혹은 Perl이다. 이와 같은 특수 컴퓨터 프로그램은, 구성 데이터 컨테이너 내에 저장된 구성 데이터들로부터 구현 종속적 구성 파일들을 생성하기 위해서도 이용될 수 있다.
다시 말해 본 발명의 핵심은, 사용자(컨피규레이터)와 컴퓨터 프로그램 사이에, 구성 기반이 되는 구현 독립적 구성 파일 내에서 실행될 구성의 추상적 기술(abstract description)이 제공됨으로써 컴퓨터 프로그램의 구성이 결정적으로 개선될 수 있다는 인식이다. 상기 구현 독립적 구성 파일에 기초하여, 자동으로 구현 종속적 구성 파일이 생성되며, 그런 다음 상기 구현 종속적 구성 파일은 컴퓨터 프로그램의 구성을 위해 이용된다. 다시 말해, 본 발명에 따른 구성 방법은 구성을 기술하는 정보들을 판독이 용이하도록 추상적으로 기술하는 것을 가능케 한다. 또한, 모든 구현 세부 내용들의 독립성에 의해, 특히 높은 유연성이 달성된다.
본원의 구성 방법의 바람직한 개선예에 따라, 구성 데이터 컨테이너 내에 존재하는 적어도 2개의 구성 데이터의 종속성을 기술하는 적어도 하나의 종속성 정보가 자동으로 생성된다. 적어도 하나의 종속성 정보에 따라 적어도 하나의 구현 종속적 구성 파일이 생성된다.
종속성 정보들은 예컨대 일측의 구성 파라미터의 변경이 타측의 구성 파라미터에 작용하는지 여부를 기술할 수 있다. 만일 예를 들어 하나의 기능 유닛에 대해 하나의 리소스가 독점적으로 예약되어 있으면, 상기 리소스는 상기 기능 유닛이 실행되는 동안 또 다른 기능 유닛에는 제공되지 않는다. 종속성 정보들을 이용하여, 어떠한 기능 유닛들이 특정 리소스를 필요로 하는지를, 그리고 그렇기 때문에 동시에 실행할 수 없음을 확인할 수 있다. 결과적으로 종속성 정보들은 리소스 관리를 위해서도 사용될 수 있다.
본원의 구성 방법의 바람직한 실시예에 따라, 다수의 구현 독립적 구성 파일이 생성되며, 각각의 구현 독립적 구성 파일은 적어도 하나의 기능 유닛에 할당된다. 이는, 상기 구현 독립적 구성 파일들 내에 정보로서 저장된 구성 파라미터들을 매우 손쉽게 찾아서 변경할 수 있는 매우 간단한 구성을 가능케 한다. 예를 들어, 구성을 결정하는 정보들을, 다시 말해 구성 파라미터들을, 이들 구성 파라미터들에 의해 영향을 받는 기능 혹은 하드웨어에 따라 정리할 수 있다. 또한, 그렇게 함으로써 새로이 추가된 기능 유닛들에 대해 구현 독립적 구성 파일들의 매우 간단한 적응이 가능해진다. 가장 간단한 경우에 따르면, 새로이 추가된 기능 유닛에 특수한 구현 독립적 구성 파일이 할당된다.
더욱 바람직하게는, 다수의 구현 종속적 구성 파일들이 생성되고, 이들 구현 종속적 구성 파일들 각각은 적어도 하나의 기능 유닛에 할당된다. 상기 구현 종속적 구성 파일들의 상기와 같은 구조화는, 생성된 구현 종속적 구성 파일들의 명료성을 증가시킨다. 만일 소스 코드가, 하나 혹은 그 이상의 기능 유닛이 다양한 파일들 내에 위치하는 방식으로 구조화된다면, 소스 코드의 파일들 각각에 구현 종속적 구성 파일이 할당될 수 있다. 또한, 각각의 구현 독립적 구성 파일에 구현 종속적 구성 파일이 각각 할당됨으로써 특히 명료한 구조화가 달성될 수 있다.
바람직하게는 상기 적어도 하나의 구현 종속적 구성 파일은, 구성된 컴퓨터 프로그램의 적어도 일부분이 설치될 수 있는 기반이 되는 하드웨어의 적어도 하나의 특성에 따라 생성된다. 상기와 같은 하드웨어 특성은 예컨대 가용 프로세서의 수이거나 혹은 하드웨어에 연결된 센서의 종류 및 개수일 수 있다. 만일 상기와 같은 하드웨어 특성들이 구현 종속적 구성 파일들의 생성 시에 고려된다면, 컴퓨터 프로그램의 매우 정확한 구성이 이루어질 수 있다. 그러므로 예컨대 특히 종속성 정보들을 이용하여, 실행 속도와 관련하여 최적화된 구성을 자동으로 생성할 수 있다.
바람직한 실시예에 따라, 상기 적어도 하나의 구현 종속적 구성 파일은 개연성 검사(plausibility check)의 결과에 따라 생성된다. 개연성 검사는 예컨대 기능 유닛에 의해 요구되는 리소스가 대체로 가용한지 여부의 검사를 포함할 수 있다.
바람직하게는, 개연성 검사를 실행하기 위해, 상기 적어도 하나의 하드웨어 특성이 이용된다. 그럼으로써, 자동화 등급은 특히 우수하게 증가되고, 컴퓨터 프로그램의 신뢰되는 구성이 달성될 수 있다. 만일 기능 유닛이 예컨대 측정값들의 검출을 제공한다면, 적합한 센서들이 존재하는지의 여부와 이들 센서들이 요구되는 측정 정밀도를 갖는지 여부가 검사될 수 있다. 이러한 경우, 예컨대 센서의 구성이 자동으로 실행되도록 하는 점도 생각해 볼 수 있다.
또 다른 바람직한 실시예에 따라, 문서가 자동으로 생성된다. 문서는 적어도 하나의 구현 독립적 구성 파일 내부 및/또는 적어도 하나의 구현 종속적 구성 파일 내부에 저장된 정보들을 기술한다. 상기와 같이 자동으로 생성된 문서들은 일측에서는 컴퓨터 프로그램의 유지보수성(maintainability)을 증대시키며, 타측에서는 실행된 구성을 매우 쉽게 이해할 수 있게 한다. 문서의 자동 생성을 통해, 상기 문서가 실제 구성과 일치하는 점이 보장된다. 만일 컴퓨터 프로그램의 새로운 구성이 실행되어야 한다고 하면, 상기와 같은 문서를 토대로 어떠한 파라미터 값들이 변경되어야 하는지를 매우 간단하게 확인될 수 있다.
바람직하게는, 상기 적어도 하나의 구현 독립적 구성 파일은 XML 기반 포맷으로 생성된다. XML(eXtentible Markup Language)은 표준화된 메타 언어이며, 이러한 메타 언어는 구조화된 언어의 생성을 가능케 한다. 만일 상기 적어도 하나의 구현 독립적 구성 파일이 XML에 적합한 구조화된 언어로 생성된다면, 상기와 같은 구현 독립적 구성 파일이 매우 쉽게 판독될 수 있으므로, 구성이 용이해진다. 또한, 상기와 같은 구성 파일은 매우 용이한 기계 판독이 가능하다. 특히 부분적으로 역시 표준화된 다수의 소프트웨어 툴이 존재하며, 이들 소프트웨어 도구들을 이용하여 XML 기반 포맷으로 생성된 파일들을 편집하고 처리할 수 있다.
본원의 구성 방법의 바람직한 실시예에 따라, 컴퓨터 프로그램에 의해 포함되는 기능 유닛이 상기 컴퓨터 프로그램에 의해 요구되는지 그리고 상기 기능 유닛의 구성이, 오로지 상기 기능 유닛이 상기 컴퓨터 프로그램에 의해 요구될 경우에만 실행되는지 여부가 구성 데이터에 따라 자동으로 결정된다. 이로써, 구성된 컴퓨터 프로그램의 실행 시에 실제로 요구되는 기능 유닛들만이 실제로 구성됨으로써, 구성이 특히 신속하게 실행될 수 있다. 또한, 그렇게 함으로써, 상기 구성된 컴퓨터 프로그램이 가능한 한 적은 메모리 스페이스만을 요구하는 점이 달성된다. 왜냐하면, 예를 들어 소스 코드로부터 기계 코드로의 변환은 오로지 실제로 적용되어야 하는 기능 유닛들에 대해서만 실행되기 때문이다.
본원의 목적은 또한 도입부에 언급한 유형의 소프트웨어 시스템에 의해서도 달성된다. 이와 관련하여 상기 소프트웨어 시스템은 하기 내용을 포함한다.
적어도 하나의 구현 독립적 구성 파일,
구성 데이터들을 포함하는 구성 데이터 컨테이너 및/또는 상기 적어도 하나의 구현 독립적 구성 파일 내에 저장된 적어도 하나의 정보들에 따라, 구성 데이터 컨테이너를 생성하기 위한 수단,
상기 구성 데이터 컨테이너의 구성 데이터들을 변경하고 그리고/또는 판독하기 위한 수단,
상기 구성 데이터 컨테이너 내에 저장된 구성 데이터들에 따라, 적어도 하나의 구현 종속적 구성 파일을 자동 생성하기 위한 수단,
상기 구현 종속적 구성 파일 내에 저장된 정보들에 따라, 적어도 하나의 기능 유닛을 구성하기 위한 수단.
바람직하게는 상기 소프트웨어 시스템은 본 발명에 따른 구성 방법을 실행하기 위한 수단을 포함한다.
본 발명을 소프트웨어 시스템 형태로 구현하는 점은 매우 중요하다. 이와 관련하여 상기 소프트웨어 시스템은 계산 유닛, 특히 마이크로프로세서에서 실행될 수 있고, 본 발명에 따른 구성 방법을 실행시키기에 적합하다. 다시 말해, 이러한 경우 본 발명은, 상기 소프트웨어 시스템이 상기 소프트웨어 시스템을 이용하여 실행되는 본원의 구성 방법과 동일한 방식으로 본 발명을 구성하도록, 상기 소프트웨어 시스템에 의해 구현된다. 상기 소프트웨어 시스템은 바람직하게는 메모리 소자 상에 저장된다. 상기 메모리 소자는 랜덤 액세스 메모리(RAM), 리드 온리 메모리(ROM) 혹은 플래시 메모리로서 형성될 수 있다. 상기 메모리 소자는 또한 디지털 다기능 디스크(DVD), 콤팩트 디스크(CD) 혹은 하드디스크(HD)로서도 설계될 수 있다.
본 발명의 또 다른 특징들, 적용 가능성들 및 장점들은 도면에 도시된 본 발명의 실시예들에 대해 이하에서 이루어지는 설명으로부터 제시된다. 이와 관련하여 기술되거나 도시된 모든 특징들은, 특허 청구항들 내에 제시된 그들의 요약이나 혹은 종속 관계와 무관하게, 그리고 명세서 및 도면에 각각 제시되는 구성 및 도식과도 무관하게, 자체로 혹은 임의로 조합되어 본 발명의 대상을 형성한다.
도1은 본 발명에 따른 구성 방법을 실행하기 위한 소프트웨어 시스템의 일 실시예를 나타내는 개략도이다.
도2는 본 발명에 따른 구성 방법의 일 실시예를 나타내는 개략적 순서도이다.
도1은 본 발명에 따른 구성 방법을 실행하기 위한 소프트웨어 시스템을 나타내는 개략도이다. 상기 소프트웨어 시스템은 다수의 구현 독립적 구성 파일(1)을 포함한다. 각각의 구성 파일(1)에는 파일명이 할당된다. 도1에 도시된 구현 독립적 구성 파일들은 예컨대 conf_1.xml, conf_2.xml, conf_3.xml에서 conf_n.xml까지의 파일명을 갖는다. 파일명 끝부분의 .xml은, 상기 구현 독립적 구성 파일들(1)이 XML 기반 포맷으로 존재함을 나타낸다. XML 기반 포맷으로 존재하는 텍스트 파일은, 사전 설정 가능한 규칙에 따라 텍스트 파일을 구조화할 수 있게 한다. 상기와 같이 구조화된 텍스트 파일은, 사람이 직접적으로, 그리고 기계에 의해, 매우 용이하게 판독되고 처리될 수 있다.
상기 구현 독립적 구성 파일들(1)은 스크립트(2)에 공급된다. 이 스크립트(2)는 예컨대 이른바 Perl-스크립트로서 형성되어 있다. Perl은 그 구문(syntax)이 프로그래밍 언어 C에 기반하는 번역기 언어이며, 각각의 운영 시스템에 의해 제공되는 유틸리티 프로그램을 사용한다.
상기 스크립트(2)를 이용하여, 상기 구현 독립적 구성 파일들(1)이 판독되며, 상기 구성 파일들(1) 내에 저장된 정보들이 추출되어 구성 파일 컨테이너(3) 내에 저장된다. 동시에, 또 다른 구성 스트립트들(4)에 대해 경우에 따라 존재하는 종속성이 결정되고 저장된다.
도면 부호 4는 또 다른 구성 스크립트들을 나타낸다. 이러한 구성 스크립트들은 마찬가지로 펄 스크립트(Pearl script)로서 형성되어 있다. 마찬가지로, 상기 또 다른 구성 스크립트들(4) 중 하나 혹은 그 이상의 구성 스크립트가 실행 가능한 컴퓨터 프로그램(기계 코드)이거나 혹은 또 다른 스크립트 언어로, 예컨대 AWK로 존재하는 점도 생각해 볼 수 있다.
도면 부호 5는 구현 종속적 구성 파일들을 나타낸다. 상기 구현 종속적 구성 파일들(5)은 예컨대 프로그래밍 언어로 코딩되며, 구성될 소스 코드 역시 상기 프로그래밍 언어로 프로그래밍된다. 상기와 같은 구현 종속적 구성 파일들은 컴파일러(6)에 의해 처리될 수 있다.
도면 부호 7은 다수의 기능 유닛(8)을 포함하는 컴퓨터 프로그램을 나타낸다.
본 발명에 따른 소프트웨어의 작용 방식은 도2에 도시된 순서도에 따라 기술된다.
본 발명에 따라 컴퓨터 프로그램을 구성하기 위한 구성 방법에 대해 도2에 도시된 순서도는 단계(100)에서 시작된다. 단계(101)에서는 구현 독립적 구성 파일들(1)이 생성되거나 변경된다. 상기 구현 독립적 구성 파일들(1)은 특히, 자체에 저장된 정보들을 이용하여 구체적인 구성값들 또는 구성 파라미터들을 추상적으로 기술할 수 있는 점을 특징으로 한다. 구체적인 구성값들은 예컨대 전기 전압을 측정하기 위한 센서 모듈의 측정 범위를 결정할 수 있다. 예를 들어, 측정 범위를 추상적으로 3 내지 5 Volt의 값으로 지시할 수 있다. 그러나 상기 측정 범위에 대해 상기와 같은 결정으로부터 생성될 구현 종속적 값들은, 구성될 기능 유닛(8)이 예상하는 바와 같이, 예컨대 10,000과 20,000 사이일 수 있다. 이와 같은 경우, 컴퓨터 프로그램에서 상기 센서 모듈을 제어하는 기능 유닛(8)은, 3 내지 5볼트의 측정 범위에서 측정을 가능케 하기 위해, 예컨대 10,000과 20,000의 구체적인 구성값들을 이용하여 구성되어야 할 것이다.
상기 단계(101)에서 생성되거나 변경된 구현 독립적 구성 파일들(1)은 예컨대 XML 기반 포맷으로 생성된다. 이와 같은 포맷은 상기 구현 독립적 구성 파일들(1)의 명료한 구조화를 매우 용이하게 달성하는 것을 가능케 한다. 이는 상기 구현 독립적 구성 파일들(1)의 판독성을 증대시키고, 예컨대 변경될 구성 데이터들이 신속하게 찾아질 수 있도록 함으로써 상기 구현 독립적 구성 파일들(1)의 변경을 단순화한다. 또한, 구성을 위해 다량의 구성 데이터들이 요구되는 대형 컴퓨터 프로그램의 경우에도, 오로지 단 하나의 구현 독립적 구성 파일만 제공할 수 있다. 이때, 상기 구현 독립적 구성 파일(1) 내에 저장된 정보들의 구조화는, 적합한 XML 구조들에 의해 달성될 수 있다. 그러나 다수의 구현 독립적 구성 파일들을 제공하는 것이 특히 바람직하다. 상기 구현 독립적 구성 파일들(1) 각각은 예컨대 하나 혹은 그 이상의 기능 유닛(8)에 할당될 수 있다. 그렇게 함으로써, 상기 구현 독립적 구성 파일들의 생성 또는 변경을 특히 명료하게 실행할 수 있다. 또한, 그렇게 함으로써 개별 구현 종속적 구성 파일들의 재이용 가능성이 증대된다. 이는 특히 소스 코드의 개별 기능 유닛들(8)도 재사용되어야 하는 프로젝트에 바람직하다.
단계(102)에서는, 구성 데이터 컨테이너(3)가 셋업되거나 업데이트된다. 이는 스크립트(2) 내에 리스트-업된 명령어들을 실행시킴으로써 이루어진다. 상기 스크립트(2)는 우선적으로, 비종속형 구성 파일들(1)이 임포트(import)되도록 한다. 만일 상기 구현 독립적 구성 파일들(1)이 구조화된 포맷, 예컨대 XML 기반 포맷을 기초로 한다면, 상기 스크립트(2)를 이용하여 상기 구현 독립적 구성 파일들(1)의 내용의 매우 용이한 구문 분석 및/또는 의미 분석이 실행될 수 있다. 그로 인해 예컨대 구성 데이터들의 기재의 에러들이 인식될 수 있다. 바람직하게는 상기 구현 독립적 구성 파일들(1)의 XML 기반 포맷이, 더욱 바람직하게는 기능 유닛들(8) 자체의 구조, 상기 기능 유닛들의 종속성 및/또는 상기 기능 유닛들의 주제 근접성을 지향하는 계층 구조를 포함한다. 상기 스크립트(2)를 이용하여, 상기 계층 구조의 셋업 시 및 그에 따른 소스 코드 자체의 셋업 시에 발생하는 에러들이 인식될 수 있다.
더욱 바람직하게는 상기 단계(102)에서 상기 발견된 에러들이 처리된다. 이는 예컨대 에러 정보들의 출력을 통해 이루어질 수 있다. 마찬가지로, 에러들을 제거하기 위해 확률적 방법이 이용되는 점도 생각해 볼 수 있다.
상기 스크립트(2)는 단계(102)에서 구현 독립적 구성 파일들(1) 내에 존재하는 구성 데이터들을 추출하고, 이들 구성 데이터들을 구성 데이터 컨테이너(3)에 저장한다. 이때 상기 구성 데이터 컨테이너(3)는 예컨대 데이터 뱅크로서 형성될 수 있다. 마찬가지로, 상기 구성 데이터 컨테이너(3)가, 본 발명에 따른 소프트웨어 시스템 내부에서 메모리 영역 내에 공급되는 데이터 구조로서 실현되되, 상기 스크립트(2)는 상기 구성 데이터 컨테이너(3)에 저장된 구성 데이터들에 대한 기록 및 판독 접근성을 갖는 점도 생각해 볼 수 있다.
단계(103)에서는 종속성이 결정된다. 이와 같은 종속성은 예컨대, 본 구성의 경우 컴퓨터 프로그램의 어느 기능 유닛들(8)이 실제로 처리되어야 하는지를 기술할 수 있다. 이와 같은 종속성을 이용하여, 후속 단계들 중 어느 하나의 단계에서 특정 기능 유닛(8)에 대해 대체로 구현 종속적 구성 파일이 생성되어야 하는지 여부가 결정될 수 있다. 또한, 종속성은 어떤 구체적인 구성 데이터들이 어떤 추상적 구성 데이터에 종속되는지를 기술할 수 있다. 그러므로, 구현 독립적 구성 파일 내의 추상적 구성 데이터의 변경이 다수의 구체적 구성 데이터의 변경을 야기한다는 예상이 가능하다.
종속성은 또한, 또 다른 스크립트들(4)이 자체적으로 구성 데이터 컨테이너(3)를 변경할 때에도 제공될 수 있다. 그러므로 상기 스크립트들(4)의 올바른 호출 시퀀스(활성화 시퀀스)가 결정 및 저장되어야 한다. 종속성은 또한 하나 혹은 그 이상의 하드웨어 컴포넌트와 개별 구성 데이터 간의 관계도 기술할 수 있다. 이는 예컨대 제공된 구성이 특정 하드웨어에서 실제로 실행 가능한지 여부를 인지할 수 있게 한다.
단계(104)에서는 개연성 검사가 실행된다. 이와 관련하여, 특히 단계(103)에서 결정된 종속성에 따라서, 구현 독립적 구성 파일들(1)을 이용하여 사전 설정되는 구성이 에러를 포함하는지 여부가 검사된다. 만일 에러를 포함하는 경우라면, 단계(101)로 복귀되어, 이 단계(101)에서 에러 제거를 목적으로 상기 구현 독립적 구성 파일들(1)의 변경이 실행된다. 만일 단계(104)에서 에러가 인식되지 않으면 단계(105)로 진행된다.
단계(105)에서는 구현 종속적 구성 파일들(5)이 생성된다. 그 외에도 1개의 스크립트(4)를 이용하거나, 다수의 스크립트들(4)을 이용하여, 우선적으로 상기 구성 데이터 컨테이너(3) 내에 저장된 구성 데이터들이 호출된다. 본 실시예에서, 상기 스크립트들(4)은 펄 스크립트(pearl script)로서 형성된다. 상기 스크립트들(4)을 이용하여, 특히 상기 구성 데이터 컨테이너(3) 내에 저장된 추상적 구성 데이터들은 구체적 구성 데이터로 변환되며, 그런 다음 상기 구체적 구성 데이터는 상기 구현 종속적 구성 파일들(5) 내에 저장된다. 이때, 바람직하게는 단계(103)에서 결정된 종속성이 이용된다.
상기 단계(105)에서 생성된 구현 종속적 구성 파일들(5)은 예컨대 헤더 파일들(도1에 도시된 file_1.h, file_2.h, file_3h)일 수 있다. 마찬가지로, 생성된 구현 종속적 구성 파일들(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)는 예컨대 구성 데이터 컨테이너(3) 내에 저장된 구성 데이터에 따라 업데이트되어 구현 종속적 구성 파일(5) 내에 저장되는 C++의 명령어들로 구성된 이른바 템플릿(template)을 포함할 수 있다.
단계(106)에서는, 컴퓨터 프로그램(7)의 기능 유닛들(8)이 업데이트 된다. 이는 예컨대 소스 코드 내에 존재하는 기능 유닛들(8)을 기계 코드로 변환하는 컴파일러(6)의 자동 호출에 의해 이루어질 수 있다. 그 외에도, 상기 컴파일러(6)는 상기 구현 종속적 구성 파일들(5)을 임포트하고, 이들 구현 종속적 구성 파일들(5) 내에 저장된 구체적 구성 데이터들에 따라 기계 코드의 생성을 제어한다. 또한, 하나 혹은 그 이상의 기능 유닛들(8)이 이미 기계 코드로 존재하는 점도 생각해 볼 수 있다. 이러한 경우, 컴파일러는, 예컨대, 헤더 파일들(file_1.h, file_2.h, file_3.h)을 고려하여 상기 스크립트들(4)에 의해 생성된 소스 코드(도1에 도시된 file_2c, file_kc)를 기계 코드로 변환할 수 있으며, 그렇게 변환된 기계 코드를 컴파일러(6)에 할당된 이른바 연결기(linker)를 이용하여, 상기 기능 유닛들(8)을 나타내는 기계 코드와 연결시킬 수 있다.
단계(107)에서는 본원의 구성 방법이 종료된다. 이 단계에서는, 상기 구현 독립적 구성 파일들 내에 저장된 구체적 구성 데이터들이 상기 생성된 기계 코드에서 고려되는 방식으로 컴퓨터 프로그램(7)이 구성된다.
물론 상기 스크립트(2) 및/또는 상기 스크립트들(4)은 또 다른 스크립트 언어로 기록되거나 혹은 실행 가능한 프로그램으로 설계될 수 있다.
도2에 도시된 실시예에 따른 단계들은 물론 변경될 수 있으며, 처리의 시퀀스도 부분적으로 변경될 수 있다. 그러므로, 개연성 검사(104)는 하나 혹은 그 이상의 스크립트(4)에 의해 실행되는 점도 생각해 볼 수 있다.
본원의 구성 방법은, 특히 하나 혹은 그 이상의 구현 독립적 구성 파일들로부터 개시될 수 있고, 예컨대 연속해서 실행되는 하나 혹은 그 이상의 스크립트(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항에 있어서, 상기 구성 데이터 컨테이너 내에 존재하는 적어도 2개의 구성 데이터의 종속성을 기술하는 적어도 하나의 종속성 정보가 자동으로 생성되며, 상기 적어도 하나의 종속성 정보에 따라 상기 적어도 하나의 구현 종속적 구성 파일이 생성되는 것을 특징으로 하는, 컴퓨터 프로그램 구성 방법.
  3. 컴퓨터 프로그램이 다수의 기능 유닛을 포함하는, 제1항 또는 제2항에 따르는 구성 방법에 있어서,
    다수의 구현 독립적 구성 파일이 생성되고, 이들 구현 독립적 구성 파일들 각각은 적어도 하나의 기능 유닛에 할당되는 것을 특징으로 하는, 컴퓨터 프로그램 구성 방법.
  4. 컴퓨터 프로그램이 다수의 기능 유닛을 포함하는, 제1항 또는 제2항에 따르는 구성 방법에 있어서,
    다수의 구현 종속적 구성 파일이 생성되고, 이들 구현 종속적 구성 파일들 각각은 적어도 하나의 기능 유닛에 할당되는 것을 특징으로 하는, 컴퓨터 프로그램 구성 방법.
  5. 제1항 또는 제2항에 있어서, 상기 적어도 하나의 구현 종속적 구성 파일은, 구성된 컴퓨터 프로그램의 적어도 일부분이 설치될 수 있는 기반이 되는 하드웨어의 적어도 하나의 특성에 따라 생성되는 것을 특징으로 하는, 컴퓨터 프로그램 구성 방법.
  6. 제1항 또는 제2항에 있어서, 상기 적어도 하나의 구현 종속적 구성 파일은 개연성 검사의 결과에 따라 생성되는 것을 특징으로 하는, 컴퓨터 프로그램 구성 방법.
  7. 제6항에 있어서, 상기 개연성 검사를 실행하기 위해 적어도 하나의 하드웨어 특성이 이용되는 것을 특징으로 하는, 컴퓨터 프로그램 구성 방법.
  8. 제1항 또는 제2항에 있어서, 자동으로 문서가 생성되고, 이 문서는 상기 적어도 하나의 구현 독립적 구성 파일 내부에, 또는 상기 적어도 하나의 구현 종속적 구성 파일 내부에, 또는 이 둘 모두의 내부에 저장되는 정보를 기술하는 것을 특징으로 하는, 컴퓨터 프로그램 구성 방법.
  9. 제1항 또는 제2항에 있어서, 상기 적어도 하나의 구현 독립적 구성 파일은 XML 기반 포맷으로 생성되는 것을 특징으로 하는, 컴퓨터 프로그램 구성 방법.
  10. 제1항 또는 제2항에 있어서, 구성 데이터에 따라서 자동으로, 컴퓨터 프로그램에 의해 포함되는 기능 유닛이 상기 컴퓨터 프로그램에 의해 요구되는지 여부가 결정되고, 상기 기능 유닛이 상기 컴퓨터 프로그램에 의해 요구되는 경우에만 상기 기능 유닛의 구성이 실행되는 것을 특징으로 하는, 컴퓨터 프로그램 구성 방법.
  11. 적어도 하나의 기능 유닛을 포함하는 컴퓨터 프로그램을 구성하기 위한 소프트웨어 시스템에 있어서, 상기 소프트웨어 시스템은,
    구체적 구성 값들을 추상적인 방식으로 기술하는 추상적 정보를 포함하는 적어도 하나의 구현 독립적 구성 파일(1)과,
    구성 데이터 컨테이너(3)와,
    상기 구현 독립적 구성 파일(1)로부터 추상적 구성 데이터를 추출하고, 상기 추출된 구성 데이터를 상기 구성 데이터 컨테이너(3) 내에 저장하기 위한 수단과,
    상기 구성 데이터 컨테이너(3)로부터 구성 데이터를 변경하거나, 판독하거나, 또는 이 둘 모두를 실행하기 위한 수단과,
    상기 구성 데이터 컨테이너 내에 저장된 추상적 구성 데이터에 따라 적어도 하나의 구현 종속적 구성 파일을 자동 생성하기 위한 수단과,
    상기 구현 종속적 구성 파일 내에 저장된 구체적 정보에 따라 적어도 하나의 기능 유닛을 구성하기 위한 수단을 포함하는 것을 특징으로 하는 소프트웨어 시스템.
  12. 제11항에 있어서, 상기 소프트웨어 시스템은 적어도 하나의 기능 유닛을 포함하는 컴퓨터 프로그램을 구성하기 위한 방법을 실행하기 위한 수단을 포함하고,
    상기 적어도 하나의 기능 유닛을 포함하는 컴퓨터 프로그램을 구성하기 위한 방법은,
    적어도 하나의 구현 독립적 구성 파일(1)을 생성하거나, 적어도 하나의 구현 독립적 구성 파일(1) 내에 저장된 정보 - 상기 적어도 하나의 구현 독립적 구성 파일(1) 내에 저장된 정보는 구체적 구성 값들을 추상적인 방식으로 기술함 - 를 변경하거나, 또는 이 둘 모두를 실행하는 단계와,
    상기 적어도 하나의 구현 독립적 구성 파일(1) 내에 저장된 정보에 따라 구성 데이터 컨테이너(3) 내에 저장된 구성 데이터 - 상기 구성 데이터는 상기 구현 독립적 구성 파일(1)로부터 추출되고, 상기 구성 데이터 컨테이너(3) 내에 저장됨 - 를 자동 설정하거나, 자동 업데이트하거나, 또는 이 둘 모두를 실행하는 단계와,
    상기 구성 데이터 컨테이너(3) 내에 저장된 구성 데이터에 따라 적어도 하나의 구현 종속적 구성 파일(5) - 상기 구현 종속적 구성 파일(5) 내에 구체적 구성 데이터가 저장됨 - 을 자동 생성하는 단계와,
    상기 적어도 하나의 구현 종속적 구성 파일(5) 내에 저장된 구체적 정보에 따라, 적어도 하나의 기능 유닛을 구성하는 단계를 포함하며,
    상기 구성 데이터 컨테이너 내에 존재하는 적어도 2개의 구성 데이터의 종속성을 기술하는 적어도 하나의 종속성 정보가 자동으로 생성되고, 상기 적어도 하나의 종속성 정보에 따라 상기 적어도 하나의 구현 종속적 구성 파일이 생성되는 것을 특징으로 하는 소프트웨어 시스템.
  13. 제11항 또는 제12항에 있어서, 상기 소프트웨어 시스템은 저장 매체에 저장되는 것을 특징으로 하는 소프트웨어 시스템.
  14. 제13항에 있어서, 상기 소프트웨어 시스템은 랜덤 액세스 메모리에, 혹은 리드 온리 메모리에, 혹은 플래시 메모리에 저장되는 것을 특징으로 하는 소프트웨어 시스템.
  15. 제13항에 있어서, 상기 소프트웨어 시스템은 디지털 다기능 디스크(DVD)에, 혹은 콤팩트 디스크(CD)에, 혹은 하드디스크(HD)에 저장되는 것을 특징으로 하는 소프트웨어 시스템.
  16. 마이크로 프로세서를 포함하는 컴퓨터 장치에 있어서,
    상기 컴퓨터 장치는 상기 마이크로 프로세서를 사용하여 제1항 또는 제2항에 따른 방법을 실행하는 것을 특징으로 하는 컴퓨터 장치.
KR1020067015780A 2004-02-05 2006-08-04 컴퓨터 프로그램의 구성 방법 KR101154730B1 (ko)

Applications Claiming Priority (3)

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
PCT/EP2005/050289 WO2005076129A1 (de) 2004-02-05 2005-01-24 Verfahren zur konfiguration eines computerprogramms

Publications (2)

Publication Number Publication Date
KR20060123513A KR20060123513A (ko) 2006-12-01
KR101154730B1 true KR101154730B1 (ko) 2012-06-08

Family

ID=34801630

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067015780A KR101154730B1 (ko) 2004-02-05 2006-08-04 컴퓨터 프로그램의 구성 방법

Country Status (9)

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

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
US8914137B2 (en) * 2009-06-19 2014-12-16 Dolby Laboratories Licensing Corporation Upgradeable engine framework for audio and video
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
US9563861B2 (en) 2012-11-06 2017-02-07 Rockwell Automation Technologies, Inc. Integration of workflow and library modules
US8898634B2 (en) 2012-11-06 2014-11-25 Rockwell Automation Technologies, Inc. Customized object design for industrial automation application
US9135000B2 (en) * 2012-11-06 2015-09-15 Rockwell Automation Technologies, Inc. Runtime process diagnostics
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 天蓋パッキン用組成物及び該組成物を用いた天蓋パッキンの製造方法
US6877035B2 (en) * 2001-01-29 2005-04-05 International Business Machines Corporation System for optimal resource allocation and planning for hosting computing services
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
JP2002229783A (ja) * 2001-01-31 2002-08-16 Toshiba Corp ソフトウェア構築支援システム、その方法およびソフトウェア構築支援プログラム
JP2002366352A (ja) * 2001-06-11 2002-12-20 It Forest Corp Webアプリケーション開発支援装置
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
US6865733B2 (en) * 2001-06-21 2005-03-08 International Business Machines Corp. Standardized interface between Java virtual machine classes and a host operating environment
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
JP2007523407A (ja) 2007-08-16
CN1918545A (zh) 2007-02-21
CN100478877C (zh) 2009-04-15
ES2309706T3 (es) 2008-12-16
EP1723513B1 (de) 2008-08-27
US20070261028A1 (en) 2007-11-08
DE502005005190D1 (de) 2008-10-09
ATE406610T1 (de) 2008-09-15
DE102004005730A1 (de) 2005-08-25
EP1723513A1 (de) 2006-11-22
KR20060123513A (ko) 2006-12-01
WO2005076129A1 (de) 2005-08-18
JP5209209B2 (ja) 2013-06-12
US8365163B2 (en) 2013-01-29

Similar Documents

Publication Publication Date Title
KR101154730B1 (ko) 컴퓨터 프로그램의 구성 방법
CN106919434B (zh) 一种代码生成方法及装置
US20090106546A1 (en) Method and Software System for Configuring a Modular System
KR101795844B1 (ko) 런타임 시스템
CN111399853A (zh) 机器学习模型与自定义算子的模板化部署方法
US20060130015A1 (en) Defining expressions in a meta-object model of an application
CN107463421B (zh) 一种静态流程模型的编译执行方法及系统
JP4806158B2 (ja) マークアップ内でサブクラスを宣言的に定義し、使用するためのシステムおよび方法
JP2004348737A (ja) コマンド用サポートファイルの生成方法および生成システム
US11126408B2 (en) Incremental code generation method
US11221828B2 (en) Support device and support program
CN109271237B (zh) 仿真控制方法和装置
Noyrit et al. FacadeMetamodel: masking UML
CN115904384A (zh) 应用程序发布的配置方法、装置、设备及存储介质
CN114721667A (zh) 将ST代码编译为WebAssembly代码的方法及装置
US8832670B2 (en) Programmable controller and programming tool for communication with legacy equipment
Samara A practical approach for detecting logical error in object oriented environment
CN112181398A (zh) 配置文件处理装置、方法及存储介质
Reiser et al. IDLflex: A flexible and generic compiler for CORBA IDL
Ngoumou et al. Dynamic software product lines development platform’s architectures: A feature business components driven approach
Freeman et al. Your First TypeScript Application
JP2008176520A (ja) タグ変換装置
Gunasinghe et al. Refactoring and Code Fixes
Jörges et al. The Genesys Framework
Turas Gradual C Programming for Typed Lua

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150526

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160524

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170530

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180529

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190528

Year of fee payment: 8