KR20100062321A - 타겟독립모델을 이용한 임베디드 시스템 설계 장치 및 그 방법 - Google Patents

타겟독립모델을 이용한 임베디드 시스템 설계 장치 및 그 방법 Download PDF

Info

Publication number
KR20100062321A
KR20100062321A KR1020080120892A KR20080120892A KR20100062321A KR 20100062321 A KR20100062321 A KR 20100062321A KR 1020080120892 A KR1020080120892 A KR 1020080120892A KR 20080120892 A KR20080120892 A KR 20080120892A KR 20100062321 A KR20100062321 A KR 20100062321A
Authority
KR
South Korea
Prior art keywords
target
model
language
embedded system
diagram
Prior art date
Application number
KR1020080120892A
Other languages
English (en)
Other versions
KR100995592B1 (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 홍익대학교 산학협력단
Priority to KR1020080120892A priority Critical patent/KR100995592B1/ko
Priority to US12/484,299 priority patent/US20100138808A1/en
Publication of KR20100062321A publication Critical patent/KR20100062321A/ko
Application granted granted Critical
Publication of KR100995592B1 publication Critical patent/KR100995592B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/15Vehicle, aircraft or watercraft design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/18Network design, e.g. design based on topological or interconnect aspects of utility systems, piping, heating ventilation air conditioning [HVAC] or cabling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • 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
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven
    • 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/451Execution arrangements for user interfaces
    • G06F9/454Multi-language systems; Localisation; Internationalisation

Abstract

본 발명은 타겟 독립모델을 이용한 임베디드 시스템 설계 장치 및 그 방법에 관한 것으로서, 본 발명의 목적은 기존재하는 특정 제품으로부터 향상 진보된 다른 또 다른 새로운 제품을 개발할 시, 기존 임베디드 시스템의 재사용을 적극적으로 지원할 수 있는 환경을 제공해 주는 타겟독립모델을 이용한 임베디드 시스템 설계 장치 및 그 방법을 제공하는 것이다.
본 발명에 따른 타겟 독립모델을 이용한 임베디드 시스템 설계 장치 및 그 방법은, 제품의 하드웨어, 미들웨어 및 운영체제(이하, 타겟)에 각각 표현된 구체적인 기능 및 내용을 포괄하는 상위개념을 추출하고 추상화하여 표현한 자원으로서, UML 다이어그램 형식으로 표현되는 타겟독립모델; 상기 타겟독립모델의 변환 및 데이터 저장을 위하여, 상기 타겟독립모델을 언어 형식으로 표현한 타겟독립모델 정의언어; 특정 임베디드 시스템을 실질적으로 제어하기 위한 구체적인 데이터가 저장되어 있는 프로파일; 상기 프로파일의 내용을 상기 타겟독립모델 정의언어에 삽입하여 구성한 중간언어; 상기 중간언어와 같은 언어적 형태로 구성되어, 상기 중간언어에 없는 새로운 데이터를 추가하거나, 특정 내용을 변경하기 위한 변환언어; 상기 중간언어에 상기 변환언어를 적용하여 생성된 타겟종속모델 정의언어; 및 통합모델링언어(UML)를 이용한 다이어그램을 작성하고, 상기 타겟독립모델을 추출 생성하기 위한 자원 항목을 제시해 주는 인터패이스 태그(Interface Tag)를 제공해주며, 상기 타겟독립모델을 생성하여 상기 타겟종속모델로 변환하기까지의 일 련의 처리과정을 수행하는 모델링 도구를 포함하는 것을 특징으로 한다.
임베디드 시스템, 하드웨어, 타겟독립모델, 타겟종속모델

Description

타겟독립모델을 이용한 임베디드 시스템 설계 장치 및 그 방법{Method and Apparatus for Embedded System Design using Target Independent Model}
본 발명은 타겟독립모델을 이용한 임베디드 시스템 설계 장치 및 그 방법에 관한 것으로, 보다 구체적으로는, 특히 새로운 제품의 임베디드 시스템 개발 시 하드웨어, 운영체제 및 미들웨어에 독립적인 모델과 종속적인 모델로 분리 설계 구성함으로써, 특정 하드웨어, 운영체제 및 미들웨어 등에 관계없이 임베디드 시스템을 개발 할 수 있고, 소프트웨어 재사용을 적극적으로 지원하여 개발에 이용할 수 있도록 해주는 타겟독립모델을 이용한 임베디드 시스템 설계 장치 및 그 방법에 관한 것이다.
임베디드 시스템이란, 어떤 제품이나 솔루션에 추가로 탑재되어 그 제품 안에서 특정한 작업을 수행하도록 하는 솔루션을 말한다.
상기 임베디드 시스템의 개발에 있어서, 특정 제품에 내장될 임베디디 시스템을 전면적으로 새로게 개발하는 것보다는 유사 제품군에 속하는 제품 간에 공통 적으로 필요한 요소들은 재활용할 수 있도록 하는 '이종 소프트웨어의 재사용 기술'은 임베디드 시스템 소프트웨어 개발에 혁신을 가져다 줄 수 있다.
그러나, 종래의 일반적인 임베디드 시스템은 특정 하드웨어에 종속되어 있어, 이기종 제품의 임베디드 시스템 개발시, 상술한 공통 요소들의 재활용이 불가능하였을 뿐만 아니라, 특정 하드웨어가 정해져 하드웨어 스펙이 특정돼야만 비로소 그에 맞는 소프트웨어의 개발할 수 있어 임베디드 시스템의 개발 과정이 매우 비효율적으로 진행되고 개발시간이 오래 걸리는 문제점이 있었다.
특히, 로봇 위한 종래 임베디드 시스템 개발 기술은 코드의 재사용의 수준에 머물고 있으며, 또한 소프트웨어의 재사용을 위해서 프로덕트 라인을 많이 사용하는데 이는 한 제품군의 소프트웨어의 재사용을 높일 수는 있지만 이 종의 시스템에 대한 대책이 없어 빠르게 변화되어 가고 있는 하드웨어 제품에 소프트웨어가 적응 하지 못하는 어려움이 있다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은, 특정 하드웨어, 미들웨어 및 운영체제에 종속되지 않는 타겟독립모델을 추출 생성하고, 상기 타겟독립모델을 새로 개발하려는 특정 제품의 구현을 위하여 구체화시킨 타겟종속모델로 변환해주는 본 발명의 타겟독립모델과 타겟종속모델이라는 분리 설계를 통하여, 기존재하는 특정 제품으로부터 향상 진보된 다른 또 다른 새로운 제품을 개발할 시, 기존 임베디드 시스템의 재사용을 적극적으로 지원할 수 있는 환경을 제공해 주는 타겟독립모델을 이용한 임베디드 시스템 설계 장치 및 그 방법을 제공하는 것이다.
상기 목적을 달성하기 위한 본 발명에 따른 임베디드 시스템 설계 장치 및 그 방법은, 제품의 하드웨어, 미들웨어 및 운영체제(이하, 타겟)에 각각 표현된 구체적인 기능 및 내용을 포괄하는 상위개념을 추출하고 추상화하여 표현한 자원으로서, UML 다이어그램 형식으로 표현되는 타겟독립모델; 상기 타겟독립모델의 변환 및 데이터 저장을 위하여, 상기 타겟독립모델을 언어 형식으로 표현한 타겟독립모델 정의언어; 특정 임베디드 시스템을 실질적으로 제어하기 위한 구체적인 데이터가 저장되어 있는 프로파일; 상기 프로파일의 내용을 상기 타겟독립모델 정의언어에 삽입하여 구성한 중간언어; 상기 중간언어와 같은 언어적 형태로 구성되어, 상 기 중간언어에 없는 새로운 데이터를 추가하거나, 특정 내용을 변경하기 위한 변환언어; 상기 중간언어에 상기 변환언어를 적용하여 생성된 타겟종속모델 정의언어; 및 통합모델링언어(UML)를 이용한 다이어그램을 작성하고, 상기 타겟독립모델을 추출 생성하기 위한 자원 항목을 제시해 주는 인터패이스 태그(Interface Tag)를 제공해주며, 상기 타겟독립모델을 생성하여 상기 타겟종속모델로 변환하기까지의 일련의 처리과정을 수행하는 모델링 도구를 포함하는 것을 특징으로 한다.
본 발명에 따른 타겟독립모델을 이용한 임베디드 시스템 설계 장치 및 그 방법에 의하면 다음과 같은 현저한 효과가 있다.
1) 특정 하드웨어, 미들웨어 및 운영체제에 종속되지 않는 타겟독립모델을 추출 생성하고, 상기 타겟독립모델을 새로 개발하려는 특정 제품의 구현을 위하여 구체화시킨 타겟종속모델로 변환해주는 본 발명의 타겟독립모델과 타겟종속모델이라는 분리 설계를 통하여, 기존재하는 특정 제품으로부터 향상 진보된 다른 또 다른 새로운 제품을 개발할 시, 기존 임베디드 시스템의 재사용을 적극적으로 지원할 수 있고, 개발할 제품에 적용될 하드웨어 스펙 및 소프트웨어 플랫폼이 특정되지 않았더라도 임베디드 시스템의 개발을 진행할 수 있어 빠르고 안전하게 임베디드 시스템을 개발할 수 있는 환경을 제공해 주는 현저한 효과가 있다.
2) UML 표기법을 사용하여 모델 설계함에 따라, 기존의 응용 개발자들도 로봇 개발에 참여할 수 있고, 상기 모델 설계만으로도 코드가 자동 생성되어 저수준 의 제어까지 가능한 장점이 있다.
3) UML을 사용하는 모델 설계 방법은, 표준적인 표기법을 제공할 수 있게 되어 소프트웨어의 개발을 협업과 의사소통을 가능하게 함으로써, 프로그램의 오류를 줄여 주고 작업이 분산이 되어 안정적인 개발을 가능하게 해주는 현저한 효과가 있다.
4) 하드웨어,미들웨어 및 운영체제에 종속되지 않는 부분과 종속되는 부분이 분리 설계되어 클라이언트의 수정없이 확장이 가능함에 따라, 특정 타겟의 구현을 위한 구체적인 내용, 즉 타겟종속적 부분을 프로파일화 하여 상기 타겟의 구체적인 구현부를 자동화 과정으로 생성할 수 있게 된다.
따라서, 시스템 설계자의 경험이나 능력에 의존하던 기존 방법의 문제점을 자동화된 방법으로 해결하여 간단한 설계 방법만 익히면 누구나 쉽게 개발할 수 있도록 지원해 줄 수 있고, 또한 이원화된 설계 원칙을 준수하여 구성되기 때문에 유지보수도 쉽게 할 수 있는 현저한 효과가 있다.
5) 도구를 개발할 때 타겟독립모델의 다이어그램을 그리는 모델 엔진과 변환을 담당하는 컴파일러 부분을 분리시킬 수 있어 모듈 단위로 개발이 가능해져 모델 엔진과 모델 컴파일러가 독립적으로 만들어지게 때문에 유지보수 또한 용이한 장점이 있다.
본 발명에 따른 타겟독립모델을 이용한 임베디드 시스템 설계 장치 및 그 방 법은 로봇, 가전제품, 휴대 단말기 등과 같은 현대의 각종 전자기기에 내장되는 임베시드 시스템 개발의 효율 및 편의성을 극대화하기 위한 것이다. 즉, 특정 하드웨어, 미들웨어 및 운영체제에 종속되지 않는 타겟독립모델을 추출하고, 상기 타겟독립모델을 새로 개발하려는 특정 제품을 위하여 구체화시킨 타겟종속모델로 변환해주는 본 발명의 타겟독립모델과 타겟종속모델이라는 분리 설계를 통하여, 기존재하는 특정 제품으로부터 향상 진보된 다른 또 다른 새로운 제품을 개발할 시, 기존 임베디드 시스템의 재사용을 적극적으로 지원할 수 있도록 하는 것을 핵심적 사상으로 한다.
본 발명의 타겟독립모델을 이용한 임베디드 시스템 설계 장치 및 그 방법을 설명하기에 앞서, 이하에서는, 기존재하는 특정 제품의 임베디드 시스템의 구현을 위하여 구체화되어 특정 제품에 적용되어 있는 특정 하드웨어, 미들웨어 및 운영체제를 '타겟'이라 칭하기로 한다.
도 1 은 임베디드 시스템의 개발 및 설계시 특정 타겟에 종속되지 않는 '타겟독립 모델'을 활용하여 특정 제품의 타겟에 종속적인 '타겟종속모델'을 생성하여 특정 제품에 내장되는 임베디드 시스템의 실질적인 작동을 실행할 수 있는 코드를 생성해 주는 일련의 변환과정을 나타낸 블록순서도이다.
본 발명에 따른 타겟독립모델을 이용한 임베디드 시스템 설계 장치 및 그 방법은, 상기 모델링 도구를 이용하여 특정 타겟에 종속되지 않는 부분과 종속되는 부분을 분리 설계한다.
즉, 새로운 제품의 임베디드 시스템을 개발할 경우, 상기 새로운 제품이 속하는 제품군의 다른 제품에 사용된 타겟으로부터 본 발명의 타겟독립모델을 생성 추출한 후, 생성된 상기 타겟독립모델에 상기 새로운 제품을 구현하기 위해 구체화된 부분 즉, 타겟 종속적 부분을 손쉽게 추가하여 본 발명에 따른 타겟종속모델로 변환해 주기만 하면 상기 새로운 제품을 위한 임베디드 시스템을 설계 완성할 수 있다.
이에 따라, 이종 제품의 임베디드 시스템의 개발시에도 상기 타겟독립모델의 재활용이 가능해짐에 따라, 새로운 제품에 내장될 임베디드 시스템을 매우 빠르고 용이하게 개발 설계할 수 있는 현저한 효과가 있다.
이하에서는, 본 발명에 따른 타겟독립모델을 이용한 임베디드 시스템 설계 장치 및 그 방법의 구체적인 설명을 위하여, '로봇'에 내장되는 임베디드 시스템의 설계 방법을 일예로 설명하기로 한다.
도 1 을 참조하면, 본 발명에 따른 '타겟독립모델'을 이용하여 특정 제품에 내장될 임베디드 시스템의 실질적인 작동을 실행하기 위한 구현 코드를 생성하기 까지의 과정을 살펴보면 다음과 같다.
(1) '타겟독립모델' 생성 단계(S100)
먼저, 이하에서 사용하는 용어 '타겟'은 기존재하는 특정 제품의 임베디드 시스템의 구현을 위하여 구체화되어 특정 제품에 적용되어 있는 특정 하드웨어, 미들웨어 및 운영체제를 지칭하고, '모델'은 상기 모델링 도구를 이용하여 본 발명의 타겟독립모델을 UML 다이어그램으로 표현한 형태를 지칭함을 밝혀둔다.
본 발명의 '타겟독립모델'이란, 상기 하드웨어, 미들웨어 및 운영체제에 각각 표현된 구체적인 구현 내용 및 기능을 포괄하는 상위개념을 추출하여 추상화하여 UML 다이어그램 형식으로 표현한 모델이다. 따라서, 상기 타겟독립모델은 하드웨어, 미들웨어 및 운영체제(이하, 타겟)에 종속되지 않고 다양한 타겟에 적용되며 상기 타겟들이 상기 타겟독립모델의 내용을 인지할 수 있게 된다.
즉, 새로운 제품에 탑재될 임베디드 시스템을 개발하려는 설계자는 기존재하는 제품의 타겟으로부터 상기 타겟독립모델을 손쉽가 가져와 생성하고, 생성된 상기 타겟독립모델에 구체적인 구현부(즉, 특정 타겟에 종속되어 상기 특정 타겟의 구현에만 사용되는 데이터)만을 채워넣어 본 발명의 타겟종속모델을 완성함으로써 새로 개발할 제품에 탑재될 임베디드 시스템을 편리하고 효율적으로 설계할 수 있다.
상기 하드웨어, 미들웨어 및 운영체제에 각각 표현된 구체적인 기능을 상위 개념으로 추상화한 일예를 도 2 을 참조하여 보다 구체적으로 설명하도록 한다.
도 2 는 본 발명의 모델링 도구를 나타낸 도면으로서, 도 2 의 도면부호 '204'에 제시된 타겟을 추상화하여 제공된 자원 항목들과 그 자원 항목을 더 세부 적으로 추상화한 세부 항목을 상기 모델링 도구를 사용하여 UML 다이어그램 형식으로 표현한 것이 본 발명의 타겟독립모델에 해당한다.
즉, 기존재하는 로봇제품에 적용된 하드웨어(Hardware)에 표현된 정보를 추상화한 프로세서(Processor), 센서(Sensor), 액추에이터(Actuator) 자원 그리고 상기 프로세서에 사용되는 프로세서를 더 구체적으로 추상화한 P_GPIO, P_ISR, P_Timer, P_Memory, P_UART 및 P_ADConverter 자원.
기존재하는 로봇제품에 적용된 운영체체에 표현된 정보를 추상화한 'OS_Task', 'OS_IPC', 'OS_SYNC', 'OS_Memory', 'OS_Timer' 및 'OS_GUI' 자원.
즉, 동일 제품군이라면 공통적으로 필요하고 사용하게 되는 상기 자원들을 본 발명의 모델링 도구를 사용하여 UML 다이어그램 형식으로 생성한 것이 본 발명의 '타겟독립모델'이 된다.
즉, 특정 타겟에 종속되지 않는다는 것은 특정 하드웨어 등을 실질적으로 제어하기 위하여 특정 하드웨어에 적합하게 구체적으로 표현된 구현 코드는 포함되어 있지 않고, 특정 하드웨어가 정해지면 그에 적합하게 변환될 수 있도록 인터페이스 형태로만 구성되어 있음을 의미한다.
따라서, 상기 타겟독립모델을 작성할 때는 기존에 만든 타겟독립모델 즉, 설계자가 목적하는 제품이 속하는 제품군의 다른 제품으로부터 가져온 기존의 타겟독립모델을 그대로 재사용 하는 방법과 상기 모델링 도구(UML 다이어그램)을 이용하여 만드는 방법이 있다.
(1-1) 기존의 타겟독립모델을 재사용하여 만드는 방법은, 기존에 만든 타겟 독립모델을 저장하였다가 그것을 꺼내 바로 사용하는 방식으로서, 유사 제품군에 속하는 제품들의 임베디드 시스템의 개발시, 상기 기존의 타겟독립모델의 재활용이 가능해짐에 따라, 새로운 제품에 내장될 임베디드 시스템을 매우 빠르고 쉽게 설계할 수 있게 되는 뛰어난 장점을 갖게 된다.
(1-2) 상기 모델링 도구(UML 다이어그램)를 이용하여 만드는 방법은 구체적으로, 프로파일이 지원하는 인터페이스 태그를 사용하여 만드는 방법으로서, 상기 인터페이스 태그를 이용하는 방법은, 기존재하는 프로파일을 사용하는 것이다.
상기 인터페이스 태그를 사용하면 미리 정의된 모듈(즉, 다른 제품에 사용된 모듈)을 가져와 쉽게 재사용할 수 있기 때문에 기존 방법(즉, 코드를 다시 설계하거나 재사용하는 방법)보다 빠르게 개발이 가능하고, 특정 타겟에 종속적인 부분과는 무관하게 인터페이스만으로 구성함에 따라 복잡도를 낮추는 효과가 있다.
도 2 는 본 발명에 따른 모델링 도구 및 모델링 도구에서 제공되는 인터페이스 태그의 사용예이다.
도 2 를 참조하면, 상기 모델링 도구는, 상기 타겟독립모델의 설계를 위한 유스케이스 다이어그램, 클래스 다이어그램, 시퀀스 다이어그램, 상태차트 다이어그램을 다이어그램 별로 각각 제시해주는 다이어그램 도구(203); 및 타겟의 자원 항목을 선택 실행되면 자동으로 그 리스트가 로드되는 인터페이스 태그(Interface Tag; 204)를 포함한다.
기존의 UML 다이어그램은 임베디드 시스템을 위한 것이 아니기 때문에 상기 임베디드 시스템에 적용하였을 때 부분적으로 불필요한 부분이 있었다. 또한 UML 은 다이어그램 수가 많고 복잡하여 사용하기 위해서는 많은 시간 투자가 필요하다. 본 발명에서는 종래 UML 다이어그램의 모든 다이어그램을 사용하는 것이 아니라 클래스 다이어그램, 시퀀스 다이어그램, 상태차트 다이어그램만 사용한다. 이것은 시스템의 설계를 간소화 하여 최적의 다이어그램으로 설계를 끝내고 개발 할 수 있도록 지원하기 위해서다. 상기 4가지 다이어그램으로 타겟에 독립적인 부분과 종속적인 부분을 분리하여 표현할 수 있다.
상기 인터페이스 태그(204)는 상기 타겟독립모델을 보다 쉽고 빠르게 생성하기 위한 수단으로서, 특정 프로파일에 기재되어 있는 프로파일 이름을 지칭하며 상기 모델링 도구가 실행될 때 자동으로 로드된다.
상기 인터페이스 태그(204)는, 설계자가 개발할 임베디드 시스템에 필요한 자원 예컨데, 도 2의 하드웨어(Hardware) 항목의 프로세서(Processor), 센서(Sensor), 액추에이터(Actuator) 항목 그리고 더 세부적으로는 상기 프로세서에 사용되는 프로세서를 추상화한 모델 자원으로서 P_GPIO, P_ISR, P_Timer, P_Memory, P_UART 및 P_ADConverter 항목들을 기존재하는(즉, 다른 제품에 사용된) 프로파일로부터 쉽게 가져와 재사용하기 위한 이름표에 해당하며, 상기 각 인터페이스 태그에 정의된 하드웨어 자원에 각각 대응되는 구체적인 데이터 즉, 새로운 제품의 임베디드 시스템의 실질적인 구현을 위한 구현부 데이터는 상기 새로운 제품을 위해 작성 정의된 프로파일에 저장된다.
설계자는 인터페이스 태그 리스트(204) 중 원하는 특정 인터페이스 태그를 마우스로 드래그 하여 상기 모델링 도구의 작성화면(205)에 추가할 수 있다. 도 2 일예의 작성화면(205)은, 상기 다이어그램 도구(203)의 클래스 다이어그램을 선택하고, 상기 클래스 다이어그램의 선택 실행에 따라 자동 로드된 인터페이스 태그 중 'OS_SYNC' 및 'OS_TASK' 자원을 드래그하여 표현하였다.
또한, 상기 인터페이스 태그는, 후술할 모델 변환 과정을 통하여 본 발명의 타겟종속모델로 최종 변환 할 때, 특정 타겟의 실질적인 구동을 실행하기 위한 구현 클래스를 생성해 주는 역할도 수행한다. 자세한 설명은 이하에서 하기로 한다.
객체 지향 프로그래밍을 이용하면 타겟에 독립적인 부분과 종속적인 부분을 분리시켜 클라이언트의 수정없이 확장이 가능하다. 본 발명에서는 이러한 설계의 이점을 이용하여 특정 타겟에 종속적인 부분은 프로파일화 하여 구현부를 자동화 생성해 줌으로써, 결국 시스템 설계자의 경험이나 능력에 의존하던 기존 방법의 문제점을 자동화된 방법으로 해결하여 간단한 설계 방법만 익히면 누구나 쉽게 개발할 수 있도록 지원해준다. 또한 기본적으로 설계 원칙을 준수하여 구성되기 때문에 유지보수도 쉽게 할 수 있다.
도 3 은 본 발명에 따른 타겟독립모델과 타겟종속모델의 생성시 사용되는 모델링 도구에 포함된 각 다이어그램의 실시예이다.
유스케이스(Usecase) 다이어그램(301)은 사용자 중심으로 시스템과의 관계를 표현하며 시스템이 어떻게 수행 되어야 하는지 명확하게 해준다. 클래스(Class) 다이어그램(302)은 시스템의 정적인 구조를 표현하는 수단으로 가장 많이 사용되는 다이어그램이다. 클래스 다이어그램(302)을 이용하여 시스템의 구조와 기능들을 정의하고 각각의 클래스의 책임과 역할을 나누고 그 들 간의 관계를 정한다. 시퀀 스(sequence) 다이어그램(303)은 클래스 다이어그램(302)으로 만든 클래스의 객체들 간에 주고 받는 메시지를 동적으로 표현하여 객체와 객체간의 상호협력을 표현할 수 있게 한다. 상태차트(StateChart) 다이어그램(304)은 하나의 객체의 상태의 행동을 표현하여 시스템이 동적으로 수행되었을 때 그 행동을 기술한다.
상기 통합모델링언어(UML)를 이용한 상기 4가지 다이어그램(유스케이스, 클래스, 시퀀스 및 상태차트 다이어그램) 작성 방법은 종래의 기술로서 그 자세한 설명은 생략하기로 한다.
도 4 는 로봇에 내장될 임베디드 시스템의 설계를 위하여, 상기 모델링 도구의 클래스 다이어그램을 이용하여 생성한 타겟독립모델의 일예를 나타낸 도면이다.
도 4 를 참조하여 클래스 다이어그램으로 표현된 본 발명의 타겟독립모델을 설명하면, 움직이는 로봇에 내장될 임베디드 시스템을 설계하고자 할 때, 로봇이라는 제품군에 기본적으로 공통되는 기능은 앞으로 가기, 뒤로 가기, 멈추기, 좌우로 가기가 될 것이다.
따라서, 로봇 클래스(402)에 앞으로 가기, 뒤로 가기, 좌우로 가기, 멈추기와 같은 기능이 정의되고, 장애물을 회피하기 위한 초음파센서 클래스(401)와 움직임을 구동하기 위한 서보모터 클래스(403)를 상기 인터페이스 태그(404)로부터 불러와 표현해 준다.
이때, 설계자는 초음파센서나 서보모터의 하드웨어 제어를 위한 구체적인 데이터 내용은 고려할 필요가 없고, 프로파일에 담겨 있는 하드웨어 제어 데이터를 호출할 수 있는 어플리케이션 프로그래밍 인터페이스 (API; Application Programing Interface)만 고려하면 된다.
즉, 본 발명에 따른 타겟독립모델에 의하면, 같은 부류에 속하는 제품이라면 공통적으로 필요한 내용은, 이미 정의되어 존재하는 프로파일에 담겨 있어 설계자는 단지 로봇(402)클래스만 생성하고 상기 인터페이스 태그(404)를 이용하여 초음파센서(401)와 서보모터(403)를 불러오기만 하면 된다.
(2) 생성된 '타겟독립모델'을 '모델정의언어'로 변환단계(S200)
상술한 과정을 통하여, 그림형식(UML 다이어그램)으로 표현된 본 발명의 '타겟독립모델'은 언어적 표현으로 변환된다.
상기 S100 단계를 통하여, 상기 타겟독립모델이 추출 생성되면 상기 모델링 도구가 상기 타겟독립모델을 언어적 형태로 자동 변환하여 상기 모델링 도구 내부에 저장하게 된다.
이는, UML 다이어그램 형태로 표현된 상기 '타겟독립모델'의 정보를 저장하고, 새로 개발할 제품에 종속되는 구체적인 구현부를 삽입하는 변환작업을 수행하기 위하여, 그리고 변환된 모델을 다시 UML 다이어그램 형식으로 표현하기 위함이고, 상기와 같은 목적을 위하여 상기 타겟독립모델을 일정한 형식의 언어로 표현한 것이 '타겟독립모델 정의언어'이다.
타겟독립모델을 타겟독립모델 정의언어로 변환하는 또다른 이유는, 타겟독립모델을 직접 바로 타겟종속모델로 변환하는 것보다 모델정의언어 형식을 거쳐 변환 하는 것이 더 쉽고 정확하기 때문이다.
그리고, 도구를 개발할 때 타겟독립모델의 다이어그램을 그리는 모델 엔진과 변환을 담당하는 컴파일러 부분을 분리시킬 수 있어 모듈 단위로 개발이 가능해져 모델 엔진과 모델 컴파일러가 독립적으로 만들어지게 때문에 유지보수 또한 용이한 장점이 있다.
도 4 의 '로봇'의 일예와 마찬가지로, 이하에서는 '로봇'에 내장되는 임베디드 시스템 설계를 일예로 하여, 상기 '타겟독립모델 정의언어'에서 '타겟종속모델 정의언어'로 변환하는 구체적인 과정을 살펴보면 다음과 같다.
타겟독립모델 정의언어의 내용을 문장 스캐닝 과정(도1; S210)으로 읽고 분석하여 의미 트리로 구성한다. 의미 트리는 작성된 문장의 규칙 및 정의 별로 구분하여 만들어져, 각 항목들이 계층적으로 연결될 수 있도록 데이터를 구성하여 표현해 주는 트리구조로 생성된다.(도2; S220)
상기 트리구조는 미들웨어(Middleware), 운영체제(Operating System), 하드웨어(Hardware)의 항목으로 분류된다.
상기 미들웨어 항목은 다양한 하드웨어, 응용 프로그램 및 운영체제의 차이를 메워주며 이기종 환경에서 응용 프로그램과 운영환경 간에 원만한 통신을 이룰 수 있도록 예약된 부분이다.
상기 운영체제 항목은 운영체제들의 자원이 들어가며 태스크, 태스크간 통신, 동기화, 메모리, 타임, 그래픽 등을 추상화하여 구성하고 각각의 운영체제(OS)를 알맞게 추가하게 된다. 상기 '로봇' 실시예의 운영체체 항목은 'OS_Task', 'OS_IPC', 'OS_SYNC', 'OS_Memory', 'OS_Timer' 및 'OS_GUI'로 구성되어졌다.
상기 하드웨어 항목은 다시 프로세서(Processor), 센서(Sensor), 액추에이터(Actuator) 항목으로 분류된다. 상기 프로세서 항목은 사용되는 프로세서를 추상화한 모델 자원으로로서 'P_GPIO', 'P_ISR', 'P_Timer', 'P_Memory', 'P_UART' 및 'P_ADConverter'로 구성되어 입출력, 인터럽트, 타이머, 메모리, 통신, 아날로그 변환의 기능이 추상화되어 있다. 상기 센서 항목은 사용된 센서들의 추상화 모델 자원으로서 외부의 입출력은 모두 상기 센서에서 담당하고, 상기 액추에이터 항목은 로봇의 움직임을 제어하는 모터 같은 장치와 관련된 정보가 담기게 된다.
상술한 과정을 통하여, 트리 구조가 구성되면 변환되어야 될 자원들을 문장 테이블로 구성(도1; S230)한다.
(3) '중간언어' 생성 단계(S300)
상기 문장 테이블 구성(도1; S230)이 끝나면 다음으로 중간언어를 생성(도1; S300)하게 된다. 상기 중간언어는 프로파일에 저장된 타겟들의 구현부를 불러와 상기 타겟독립모델 정의언어에 삽입하여 생성된 언어를 지칭한다. 즉, 상기 중간언어는 상기 타겟독립모델 정의언어에, 프로파일에 담긴 타겟 구현부의 구체적인 내용으로 채워 완성한 형태이다. 따라서, 상기 중간언어는 타겟독립모델 정의언어와 프로파일의 내용이 결합된 형태로 구성된다.
상기 타겟독립모델 정의언어에 상기 프로파일을 삽입하여 상기 중간언어를 생성하기 위하여는, 먼저 프로파일 테이블을 구성해야 한다. 상기 프로파일 테이블의 구성(도1; S250)은 프로파일을 로드(도1; S240)하여 만들게 된다.
정의된 프로파일을 사용할 수 있도록 메모리에 로드하면, 상기 프로파일에 정의된 이름과 문장 테이블에 있는 인터페이스 태그 이름이 같은 부분을 결합하여 중간언어를 생성(도1; S300)한다.
상기 프로파일이란, 도 5 의 일예에 도시된 바와 같이, 인터페이스 태그(도4의 404)에서 정의한 각 타겟에 대응하는 구현부에 대한 구체적인 데이터가 저장된 파일을 의미하며, 구체적으로 상기 프로파일은, 하드웨어를 위한 정보를 담고 있는 하드웨어 프로파일부; 미들웨어를 위한 정보를 담고 있는 미들웨어 프로파일부; 및 운영체제를 위한 정보를 담고 있는 운영체제 프로파일부로 구성되는 것을 특징으로 한다.
따라서, 인터페이스 태그(404)는, 상기 인터페이스 태그의 각 명칭과 상기 프로파일 테이블에 정의된 이름이 서로 일치되었을 때 변환기가 작동되며 실제 변환이 일어난다. 또한, 하나의 인터페이스 태그는 여러 개의 하드웨어를 포함하도록 구성할 수 있고, 하나의 인터페이스 태그는 여러 개의 프로파일로 구성될 수 있다.
설계자가 특정 타겟(즉, 하드웨어, 미들웨어 또는 운영체제 항목)을 선택하면 상기 선택된 타겟에 대응되는 구체적인 구현부 데이터가 자동화과정으로 생성된다.(즉,인터페이스 태그와 프로파일의 이름이 일치하면 자동생성됨.)
또한, 상기 프로파일에는 타겟 종속적인 코드가 들어 있다. 따라서, 설계자 는 본 발명에 따른 임베디드 시스템의 타겟독립모델 설계 방법의 최종 변환 상태인 타겟종속모델에서 하드웨어 제어 코드를 별도로 수정하지 않아도 하드웨어를 작동시킬 수 있게 된다.
도 6 은 본 발명의 '모델'(즉, UML 다이어그램으로 표현된 형태)과 상기 모델을 언어적으로 표현하여 정의한 '모델정의언어'의 이해를 돕기위하여, 특정 모델과 모델정의언어가 상호간에 변환되는 모습을 나타낸 도식이다.
상기 모델은 본 발명의 '타겟독립모델'과 '타겟종속모델'에서 사용되는 용어 '모델'을 지칭한다. 상기 '모델정의언어'는 본 발명의 '타겟독립모델 정의언어' 와 '타겟종속모델 정의언어'에 사용되는 용어 '모델정의언어'를 지칭한다.
도 6 을 참조하여 설명하면, 'Device' 클래스(601)와 이를 상속한 'Sensor' 클래스(602)는 각각 모델정의언어(603, 604, 605)로 변환 할 수 있고, 변환된 모델 정의언어는 다시 모델(즉, UML 다이어그램)로 변환할 수 있다.
도면부호'603'의 '모델정의언어'는 도면부호'601'의 '모델'(즉, 'Device 클래스)을 XML 형태로 표현한 부분으로서, 그 구성은 'ID', 'StereoType', 'ClassName', 'AttrbuteList', 'FunctionList'로 구성된다. 이것은 '모델' 즉, 클래스 다이어그램의 클래스(도 6에서는 'Device' 클래스)와 일대일 매치되어진다.
'Sensor'클래스(602) 역시 상기 'Device' 클래스(601)과 같은 방식으로 모델 정의 언어(605)로 변환하였다.
또한, 도 6 의 'Device' 클래스와 'Sensor' 클래스의 관계를 나타내는 선 (606)은 도면부호'604'와 같은 모델정의언어(604)로 표현될 수 있다. 상기 두 개 클래스(601,602) 상호 간의 관계를 나타내는 모델 정의언어(604)는 'Type', 'StartID', 'EndID'로 구성된다. 'Type'은 선의 종류로 상속, 의존, 연관, 집합, 복합 등의 관계가 있으며, 'StartID'와 'EndID'는 각 클래스의 아이디로서 어떤 클래스가 상호간에 관계를 가지는지를 표현해준다.
상기의 예시에서 살펴본 바와 같이, 본 발명에 따른 타겟독립모델 및 타겟종속모델은 모델 언어로 변환 및 표현되어짐으로써, 모델 언어와 UML 다이어그램 간의 상호 변환이 용이하게 실행될 수 있도록 구성된다. 즉, 상기와 같은 방법에 의하면, 모델 컴파일러가 단순히 모델 데이터에서 모델 데이터로 변환하기만 하면 됨에 따라 컴파일러의 기능을 간소화하는 장점이 있다.
(4) '타겟종속모델 정의언어' 생성 단계(S500)
상기 과정을 통하여 중간언어의 생성이 완료되면 다음으로, 본 발명에 따른 임베디드 시스템의 타겟독립모델 설계 방법의 최종 변환 형태인 '타겟종속모델'을 생성하기 위한 '타겟종속모델 정의언어' 변환 단계로 진입한다.
본 발명의 '타겟종속모델'이란, 특정 타겟에만 종속되어 적용되는 소프트웨어로서 상기 타겟독립모델과 같이 UML 다이어그램으로 표현된다. 그러나 상기 타겟독립모델과는 다르게 타겟 종속적인 코드가 들어 있으며, 상기 타겟독립모델의 각 인터페이스 부분에 대응되는 구체적인 구현부의 데이터 정보가 포함되어 있어 특정 타겟를 실질적으로 운용할 수 있게 된다.
본 발명의 '타겟종속모델 정의언어'란, 상기 '타겟독립모델'에는 포함되어 있지 않은 타겟 종속 코드와 상기 타겟의 구체적인 운용을 위한 프로파일 내용이 추가된 타겟종속모델의 그림적 형태(즉, UML 다이어그램)를, 상술한 모델정의언어와 같은 언어적 형태로 표현한 것을 지칭한다.
상기 타겟종속모델 정의언어는, 상기 S300 단계를 통하여 생성된 중간언어에 변환언어를 적용하여 생성된다.
본 발명의 '변환언어'란, 상기 타겟독립모델에 프로파일 내용이 채워져 완성된 형태 즉, 상기 중간언어에 새로운 내용을 추가하거나, 기존재하는 타겟독립모델(즉, 기존재하는 제품에 사용된 타겟독립모델)을 재사용할 경우 상기 기존재하는 타겟독립모델의 특정 내용에 변경을 가할 필요가 있을 때 사용되는 언어를 지칭한다.
도 7 은 본 발명의 변환언어를 적용하는 일예를 나타낸 도식이다. 도 7 의 일예를 참조하여 상기 변환언어를 설명하면, 상기 변환언어는 '생성(CREATE)'과 '변경(CHANGE)' 부문으로 구성된다. 도면부호'704'에 표현된 변환언어는 상기 '생성'에 해당하고, 도면부호'705'에 표현된 변환언어는 상기 '변경'에 해당한다.
클래스 다이어그램으로 생성된 'Device' 클래스(701), 'Sensor' 클래스(702)가 존재할 때, 상기 생성(704)에 담긴 변환언어에 의해서 'Ultrasonic' 클래스(703)가 추가 생성된다.
본 발명의 '변환언어'를 이용하면, 상기 타겟독립모델에 프로파일 내용을 채 워 완성한 형태에 해당하는 상기 중간언어에, 상기 프로파일에 미리 정의되어 있지 않은 새로운 클래스 및 내용을 추가하거나, 특정 내용을 변경할 수 있도록 해주고, 프로파일에 표기하기 어려운 부분을 확장하여 사용할 수 있도록 도와준다.
상술한 바와 같이, 상기 S300 단계의 '중간언어'에 새로이 추가하거나 변경을 가할 정보가 담겨 있는 '변환언어'의 정의가 완료 준비되면, 상기 변환언어를 로드(S400)하고 변환 룰 분석으로 변환될 부분을 추출(S410)한 다음 상기 S300 단계에서 생성된 '중간언어'에 적용하여 변환한다.(S420)
상기 단계(S400 내지 S420)의 변환언어 적용 단계를 거쳐 최종 변환된 중간언어가 바로, 본 발명의 최종 변환 형태인 '타겟종속모델 정의언어'이다.(S500)
상기 '타겟종속 모델정의언어'가 완성되면, 상기 타겟종속모델 정의언어를 통합모델링언어(UML) 다이어그램으로 표현된 타겟종속모델로 변환해 주고(S600), 변환된 타겟종속모델은 설계자가 원하는 언어로 다시 변환하여 사용할 수 있다.
도 8 은 로봇에 내장되는 임베디드 시스템의 타겟종속모델을 UML 다이어그램으로 표현한 일예이다.
도 8 의 타겟종속모델은, 도 4 에 표현된 상기 타겟독립모델을, 설계자가 선택한 하드웨어와 상기 하드웨어에 대응되는 프로파일의 삽입 단계(S240,S250) 그리고 상기 변환언어를 통한 새로운 내용의 추가와 특정 내용의 변경 단계(S400,S410)를 거치면서 최종 변환된 형태이다.
도 8 의 센서(501)와 모터(502) 항목은 설계자가 UML 상에서 직접 작성하여 생성한 것이 아니라, 상기 미리 정의된 프로파일을 로드(S240)하여 불러와 상기 타 겟독립모델에 삽입하는 단계(S260)을 통해 자동 생성된 부분이다.
만약, 기존재하는 제품으로부터 새로 개발할 제품에 적용될 임베디드 시스템을 설계하고자 한다면, 설계자는 상기 타겟종속모델의 하위 클래스(도8의 501,502)만 변경하고 상기 타겟독립모델을 구성하는 상위 클래스(도4의 401,402,403)는 재사용함으로써, 기존의 코드를 변경할 필요없이 쉽고 빠르게 다른 제품에 적용될 임베디드 시스템을 설계할 수 있게 된다.
상기 S100 단계로부터 S600 단계를 통하여 최종 생성된 상기 타겟종속모델은 아래와 같은 단계를 거침으로써 특정 제품에 내장되는 임베디드 시스템을 실질적으로 작동할 수 있게 된다.
즉, 상기 타겟종속모델을 상기 타겟종속모델 정의언어로 변환하고 이것을 설계자가 원하는 각 언어(예컨데, C언어, 자바(JAVA) 등)에 맞는 템플릿을 사용하여 텍스트 즉, 특정 프로그램 언어로 변환(S700)해주면 된다. 그리고, 상기 프로그램 언어를 컴파일하여 바이너리 코드를 생성(S800)하고 이것을 임베디드 시스템에 탑재하면 시스템의 실질적인 작동을 구현할 수 있게 된다.
또한, 상기 과정이 완료된 후에, 다시 새로운 내용을 더 추가할 필요가 있을 경우에는 설계자는 본 발명의 상기 타겟종속모델을 활용하여 손쉽게 추가 내용을 삽입한 후, 다시 타겟종속모델 정의언어로 변화하고 상기 타겟종속모델 정의언어로부터 코드를 생성함으로써 매우 편리하게 임베디드 시스템 설계 작업을 진행할 수 있게 된다.
상기에서 본 발명의 바람직한 실시예가 특정 용어들을 사용하여 기술되었지만, 그러한 기술은 오로지 설명을 하기 위한 것이며, 다음의 청구범위의 기술적 사상 및 범위로부터 이탈되지 않고서 여러가지 변경 및 변화가 가해질 수 있는 것은 자명한 일이다. 이와 같이 변형된 실시예들은 본 발명의 사상 및 범위로부터 개별적으로 이해되어져서는 안되며, 본 발명에 첨부된 청구범위 안에 속한다고 해야 할 것이다.
도 1 은 임베디드 시스템의 개발 및 설계시 하드웨어 독립적인 '타겟독립 모델'을 활용하여 하드웨어 의존적인 '타겟종속모델'을 생성함으로써, 특정 제품에 내장되는 임베디드 시스템의 실질적인 작동을 실행할 수 있는 코드를 생성해 주는 일련의 변환과정을 나타낸 블록순서도.
도 2 는 본 발명에 따른 모델링 도구 및 모델링 도구에서 제공되는 인터페이스 태그의 사용예.
도 3 은 본 발명에 따른 타겟독립모델과 타겟종속모델의 생성시 사용되는 모델링 도구에 포함된 각 다이어그램의 실시예.
도 4 는 로봇에 내장될 임베디드 시스템의 설계를 위하여, 상기 모델링 도구의 클래스 다이어그램을 이용하여 생성한 타겟독립모델의 일예를 나타낸 도면.
도 5 의 인터페이스 태그에서 정의한 각 하드웨어에 대응하는 구현부에 대한 구체적인 데이터가 저장된 파일에 해당하는 프로파일의 일예.
도 6 은 본 발명의 '모델'과 상기 모델을 언어적으로 표현하여 정의한 '모델정의언어'의 이해를 돕기위하여, 특정 모델과 모델정의언어가 상호간에 변환되는 모습을 나타낸 도식.
도 7 은 본 발명의 변환언어를 적용하는 일예를 나타낸 도식.
도 8 은 로봇에 내장되는 임베디드 시스템의 타겟종속모델을 UML 다이어그램으로 표현한 일예.

Claims (10)

  1. 타겟독립모델을 이용한 임베디드 시스템 설계 장치로서,
    제품의 하드웨어, 미들웨어 및 운영체제(이하, 타겟)에 각각 표현된 구체적인 기능 및 내용을 포괄하는 상위개념을 추출하고 추상화하여 표현한 자원으로서, UML 다이어그램 형식으로 표현되는 타겟독립모델;
    상기 타겟독립모델의 변환 및 데이터 저장을 위하여, 상기 타겟독립모델을 언어 형식으로 표현한 타겟독립모델 정의언어;
    특정 임베디드 시스템을 실질적으로 제어하기 위한 구체적인 데이터가 저장되어 있는 프로파일;
    상기 프로파일의 내용을 상기 타겟독립모델 정의언어에 삽입하여 구성한 중간언어;
    상기 중간언어와 같은 언어적 형태로 구성되어, 상기 중간언어에 없는 새로운 데이터를 추가하거나, 특정 내용을 변경하기 위한 변환언어;
    상기 중간언어에 상기 변환언어를 적용하여 생성된 타겟종속모델 정의언어;
    상기 타겟종속모델 정의언어를 UML 다이어그램 형식으로 표현한 타겟종속모델; 및
    통합모델링언어(UML)를 이용한 다이어그램을 작성하고, 상기 타겟독립모델을 추출 생성하기 위한 자원 항목을 제시해 주는 인터페이스 태그(Interface Tag)를 제공해주며, 상기 타겟독립모델을 생성하여 상기 타겟종속모델로 변환하기까지의 일련의 처리과정을 수행하는 모델링 도구를 포함하는 것을 특징으로 하는 타겟독립모델을 이용한 임베디드 시스템 설계 장치.
  2. 제 1 항에 있어서,
    상기 프로파일은,
    하드웨어를 위한 정보를 담고 있는 하드웨어 프로파일부;
    미들웨어를 위한 정보를 담고 있는 미들웨어 프로파일부; 및
    운영체제를 위한 정보를 담고 있는 운영체제 프로파일부로 구성되는 것을 특징으로 하는 타겟독립모델을 이용한 임베디드 시스템 설계 장치.
  3. 제 1 항에 있어서,
    상기 모델링 도구를 통하여 작성되는 다이어그램은,
    유스케이스(Usecase)다이어그램, 클래스(Class)다이어그램, 시퀀스 (sequence) 다이어그램 및 상태차트(StateChart)다이어그램을 포함하는 것을 특징으로 하는 타겟독립모델을 이용한 임베디드 시스템 설계 장치.
  4. 제품의 하드웨어, 미들웨어 및 운영체제(이하, 타겟)에 각각 표현된 구체적 인 기능 및 내용을 포괄하는 상위개념을 추출하고 추상화하여 표현한 자원으로서, UML 다이어그램 형식으로 표현되는 타겟독립모델을 이용한 임베디드 시스템 설계 방법으로서,
    통합모델링언어(UML)를 이용한 다이어그램을 작성해 주고, 설계자가 개발할 제품에 탑재되는 임베디드 시스템의 타겟에 필요한 자원 항목들을 나열해 주는 인터페이스 태그(Interface Tag)들로 구성된 모델링 도구를 통하여, 상기 타겟독립모델을 생성하는 제 1 단계;
    상기 생성된 타겟독립모델의 변환 및 데이터 저장을 위하여, 상기 타겟독립모델을 언어적 형태로 구성된 타겟독립모델 정의언어로 변환해 주는 제 2 단계;
    상기 변환된 타겟독립모델 정의언어의 내용을 문장 스캐닝 과정으로 읽고 분석하여 트리 구조를 생성하고, 상기 생성된 트리 구조를 문장 테이블로 구성하는 제 3 단계;
    상기 타겟에 각각 대응하는 구현부에 대한 구체적인 데이터가 저장된 프로파일을 로드하여 프로파일 테이블을 구성하고, 상기 프로파일 테이블을 상기 문장 테이블에 적용하여 중간언어를 생성하는 제 4 단계;
    상기 생성된 중간언어에 새로이 추가하거나 변경을 가할 정보가 담겨 있는 변환언어를 로드하고 변환 룰 분석으로 변환될 부분을 추출한 다음 상기 중간언어에 적용하여 타겟종속모델 정의언어를 생성하는 제 5 단계; 및
    상기 타겟종속모델 정의언어를 통합모델링언어(UML) 다이어그램 형식으로 표현된 타겟종속모델로 변환해 주는 제 6 단계를 포함하는 것을 특징으로 하는 타겟 독립모델을 이용한 임베디드 시스템 설계 방법.
  5. 제 4 항에 있어서,
    상기 타겟종속모델 정의언어는 설계자가 원하는 언어에 맞는 템플릿을 사용하여 특정 프로그램 언어로 변환해주고, 상기 프로그램 언어를 컴파일하여 바이너리 코드를 생성하여 임베디드 시스템에 탑재하면 시스템의 실질적인 작동을 구현할 수 있게 되는 것을 특징으로 하는 타겟독립모델을 이용한 임베디드 시스템 설계 방법.
  6. 제 4 항에 있어서,
    상기 제 1 단계의 타겟독립모델은,
    통합모델링언어(UML)를 이용한 유스케이스(Usecase) 다이어그램, 클래스 (Class) 다이어그램, 시퀀스(sequence) 다이어그램 및 상태차트(StateChart) 다이어그램으로 표현되는 것을 특징으로 하는 타겟독립모델을 이용한 임베디드 시스템 설계 방법.
  7. 제 4 항에 있어서,
    상기 제 1 단계의 타겟독립모델은,
    상기 인터페이스 태그 중 원하는 특정 인터페이스 태그를 마우스로 선택 드래그 하여, 상기 모델링 도구의 작성화면에 추가하는 방법을 통하여 생성되는 것을 특징으로 하는 타겟독립모델을 이용한 임베디드 시스템 설계 방법.
  8. 제 4 항에 있어서,
    제 4 단계의 중간언어는,
    상기 각 인터페이스 태그의 명칭과 상기 프로파일 테이블에 정의된 이름이 일치되었을 때 변환기가 작동되며 실제 변환이 일어남으로써, 설계자가 선택한 특정 타겟에 대응되는 구체적인 구현부 데이터가 자동 생성되는 것을 특징으로 하는 타겟독립모델을 이용한 임베디드 시스템 설계 방법.
  9. 제 4 항에 있어서,
    상기 변환언어는 '생성(CREATE)'과 '변경(CHANGE)' 부문으로 구성되어, 상기 생성 부문은 상기 중간언어에 새로운 내용을 추가시켜주고, 상기 변경 부문은 상기 중간언어의 특정 내용을 변경시켜 주는 것을 특징으로 하는 타겟독립모델을 이용한 임베디드 시스템 설계 방법.
  10. 제 4 항에 있어서,
    상기 타겟독립모델을 언어적 형태로 구성된 타겟독립모델 정의언어로 변환해 주는 제 2 단계는,
    상기 제 1 단계를 통하여, 상기 타겟독립모델이 추출 생성되면 상기 모델링 도구가 상기 타겟독립모델을 언어적 형태로 자동 변환하여 상기 모델링 도구 내부에 저장하는 것을 특징으로 하는 타겟독립모델을 이용한 임베디드 시스템 설계 방법.
KR1020080120892A 2008-12-02 2008-12-02 타겟독립모델을 이용한 임베디드 시스템 설계 장치 및 그 방법 KR100995592B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080120892A KR100995592B1 (ko) 2008-12-02 2008-12-02 타겟독립모델을 이용한 임베디드 시스템 설계 장치 및 그 방법
US12/484,299 US20100138808A1 (en) 2008-12-02 2009-06-15 Embedded system design device and a method thereof using a target independent model

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080120892A KR100995592B1 (ko) 2008-12-02 2008-12-02 타겟독립모델을 이용한 임베디드 시스템 설계 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20100062321A true KR20100062321A (ko) 2010-06-10
KR100995592B1 KR100995592B1 (ko) 2010-11-22

Family

ID=42223930

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080120892A KR100995592B1 (ko) 2008-12-02 2008-12-02 타겟독립모델을 이용한 임베디드 시스템 설계 장치 및 그 방법

Country Status (2)

Country Link
US (1) US20100138808A1 (ko)
KR (1) KR100995592B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101255696B1 (ko) * 2011-11-04 2013-04-16 홍익대학교 산학협력단 Mof기반 hcml을 이용한 하드웨어 정보의 구조화 방법
KR101710305B1 (ko) * 2016-06-01 2017-02-27 구자철 사용자 중심의 기능 가변식 컴파일링 시스템
WO2022191346A1 (ko) * 2021-03-10 2022-09-15 주식회사 아이엠폼 중간 언어를 기반으로 한 콘텐츠 페이지 생성 장치 및 방법

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110088011A1 (en) 2009-10-14 2011-04-14 Vermeg Sarl Automated Enterprise Software Development
US8549468B2 (en) * 2010-02-08 2013-10-01 National Tsing Hua University Method, system and computer readable storage device for generating software transaction-level modeling (TLM) model
US8712947B2 (en) 2011-01-27 2014-04-29 International Business Machines Corporation Collaborative system for capture and reuse of software application knowledge and a method of realizing same
KR101940265B1 (ko) * 2012-05-23 2019-01-18 충남대학교산학협력단 명령어 집합 아키텍처 자동 맵핑 기법
CN102681855A (zh) * 2012-05-25 2012-09-19 南京邮电大学 一种面向无线传感网的模型到代码的转化方法
KR101408870B1 (ko) * 2012-11-06 2014-06-17 대구교육대학교산학협력단 Uml sd로부터 mccfg를 기반으로 하는 다단계 테스트 케이스 생성장치 및 방법
US10048972B2 (en) * 2014-06-17 2018-08-14 Continental Automotive Gmbh Method for model-based generation of startup configurations of embedded systems
CN104216703A (zh) * 2014-06-23 2014-12-17 武汉大学深圳研究院 嵌入式软件系统程序的开发方法
US10514954B2 (en) * 2015-10-28 2019-12-24 Qomplx, Inc. Platform for hierarchy cooperative computing
WO2018004642A1 (en) * 2016-07-01 2018-01-04 Intel Corporation Dynamic user interface in machine-to-machine systems
CN107491049B (zh) * 2017-08-29 2020-08-11 湖南格兰博智能科技有限责任公司 一种多设备协同作业方法和协同作业装置
KR102212352B1 (ko) 2018-10-08 2021-02-04 국방과학연구소 로봇 제어 방법 및 장치
WO2021168634A1 (zh) * 2020-02-24 2021-09-02 深圳中砼物联网科技有限公司 一种图形化无代码编程方法、计算机设备及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050005266A1 (en) * 1997-05-01 2005-01-06 Datig William E. Method of and apparatus for realizing synthetic knowledge processes in devices for useful applications
US6018627A (en) * 1997-09-22 2000-01-25 Unisys Corp. Tool-independent system for application building in an object oriented development environment with data stored in repository in OMG compliant UML representation
US20020091991A1 (en) * 2000-05-11 2002-07-11 Castro Juan Carlos Unified real-time microprocessor computer
US6505342B1 (en) * 2000-05-31 2003-01-07 Siemens Corporate Research, Inc. System and method for functional testing of distributed, component-based software
US6804686B1 (en) * 2002-04-29 2004-10-12 Borland Software Corporation System and methodology for providing fixed UML layout for an object oriented class browser
JP4100630B2 (ja) * 2004-05-14 2008-06-11 インターナショナル・ビジネス・マシーンズ・コーポレーション Uml設計方法
US20080059944A1 (en) * 2006-08-15 2008-03-06 Zeligsoft Inc. Deployment-aware software code generation
GB2457341B (en) * 2008-02-14 2010-07-21 Transitive Ltd Multiprocessor computing system with multi-mode memory consistency protection
US8813024B2 (en) * 2008-09-22 2014-08-19 International Business Machines Corporation System and a method for cross-platform porting of business application and making them contextually-aware on target platforms

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101255696B1 (ko) * 2011-11-04 2013-04-16 홍익대학교 산학협력단 Mof기반 hcml을 이용한 하드웨어 정보의 구조화 방법
KR101710305B1 (ko) * 2016-06-01 2017-02-27 구자철 사용자 중심의 기능 가변식 컴파일링 시스템
WO2017209425A1 (ko) * 2016-06-01 2017-12-07 구자철 사용자 중심의 기능 가변식 컴파일링 시스템
WO2022191346A1 (ko) * 2021-03-10 2022-09-15 주식회사 아이엠폼 중간 언어를 기반으로 한 콘텐츠 페이지 생성 장치 및 방법

Also Published As

Publication number Publication date
US20100138808A1 (en) 2010-06-03
KR100995592B1 (ko) 2010-11-22

Similar Documents

Publication Publication Date Title
KR100995592B1 (ko) 타겟독립모델을 이용한 임베디드 시스템 설계 장치 및 그 방법
Selic et al. Modeling and analysis of real-time and embedded systems with UML and MARTE: Developing cyber-physical systems
CN101777004B (zh) 面向服务环境中基于模板实现bpel子流程复用的方法及系统
Capretz A brief history of the object-oriented approach
CN102426519B (zh) 基于关联数据的bpel模板和服务的复用方法及其系统
Combemale et al. Concern-oriented language development (COLD): Fostering reuse in language engineering
JP2006107474A (ja) 拡張可能ワークフローモデルの宣言的表現
Lytra et al. Supporting consistency between architectural design decisions and component models through reusable architectural knowledge transformations
Ernsting et al. Refining a reference architecture for model-driven business apps
Bucaioni et al. A metamodel for the Rubus component model: extensions for timing and model transformation from EAST-ADL
Bork et al. A Vision for Flexible GLSP-Based Web Modeling Tools
CN113010168A (zh) 一种基于场景树的用户界面生成方法
Bork et al. Language Server Protocol: An Introduction to the Protocol, its Use, and Adoption for Web Modeling Tools
Papajorgji A plug and play approach for developing environmental models
Perisic Model Driven Software Development–State of The Art and Perspectives
Nguyen et al. Domain specific language approach on model-driven development of web services
CN115390846A (zh) 编译构建方法、装置、电子设备和存储介质
CN116107555A (zh) 一种基于能源行业的gui模型驱动的低代码平台及使用方法
CN115510563A (zh) 一种基于模型的产品研制流程设计方法及装置
Polenov et al. Intellectualization of the models translation tools for distributed storage of models
Laborde et al. 15 years of reuse experience in evolutionary prototyping for the defense industry
Guo et al. COMDES development toolset
Vepsäläinen et al. A model-driven tool environment for automation and control application development-transformation assisted, extendable approach
Schröpfer et al. Integrating UML and ALF: An Approach to Overcome the Code Generation Dilemma in Model-Driven Software Engineering
Heidenreich et al. Using graph-rewriting for model weaving in the context of aspect-oriented product line engineering

Legal Events

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

Payment date: 20131108

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151109

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161115

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181115

Year of fee payment: 9