Model-Driven Method for Embedded System

현대 산업 사회에서 제조되고 판매되는 여러 가지의 제품들에 대해서는 다양하고 복잡한 기능들이 요구되고 있다. 이러한 제품들의 다양한 기능들을 구현하기 위해서 대부분의 제품들에는 마이크로프로세서와 같은 프로그램 가능한 디지털 부품들이 사용되고 있다. 마이크로프로세서와 같은 프로그램 가능한 디지털 부품이 내장된 제품 혹은 시스템을 내장형 시스템(embedded system)이라고 부른다.

일반적으로 제품의 개발과 제조의 과정에서 가장 먼저 실행하는 작업은 개발하고자 하는 제품의 규격(specification)을 작성하는 것이며, 이 규격에 따라서 제품을 개발 및 생산하게 된다. 그런데, 작성된 규격의 통상적인 형태는 문장들과 도표 및 그림들로 구성된 문서의 형태를 가지며, 이 규격을 작성하는 과정에 제품 개발에 관련된 여러 사람들이 관여하게 된다. 이에 관련된 사람들은 제품 개발을 직접 담당하게 되는 기술자들 뿐 아니라 제품을 기획하고 판매를 담당할 기술자가 아닌 사람들도 있게 된다. 그리고 이와 같이 여러 분야의 다양한 사람들의 의견 및 생각들은 규격 문서의 형태로 구체화 되고, 이 문서에 따라서 제품의 개발과 생산이 이루어진다. 그런데, 제품의 기능이 복잡해지고 다양해짐에 따라서, 이와 같은 통상적인 문서의 형태로 이루어진 규격들은 작성한 사람, 혹은 읽는 사람에 따라서 조금씩 해석상의 차이를 가지게 된다. 즉, 경우에 따라서 하나의 완성된 규격에 대해서 서로 다른 해석이 가능한 경우가 있게 된다. 이는 문장으로 표현된 규격이 가지는 원천적인 문제이며, 그림이나 도표로 보완을 하여도 이러한 문제는 항상 발생하게 된다.

이와 같은 제품 개발 프로세스의 문제점을 해결하기 위해서 최근 산업계를 중심으로 모델 기반 개발(model-driven development) 기법이 도입되고 있다. 모델 기반 개발의 가장 핵심이 되는 개념은 실행 가능한 모델(executable model)의 개념으로서, 기존의 통상 적인 문서에 의해서 제품의 규격을 나타내는 대신, 모델을 이용하여 규격을 나타내는 것이며, 또한 이 모델은 프로그램과 같이 실행이 가능한 모델인 것이다. 이와 같은 모델을 나타내기 위해서 개발된 기법은 그래픽 개체들을 이용하여 규격을 나타내는 UML(Unified Modeling Language)로서, OMG(Object Management Group, http://www.omg.org)에 의해서 표준화 되고 있는 그래픽 언어이다. UML의 기법은 use case diagram, sequence diagram, state chart 등의 그래픽 기법을 사용하여 직관적으로 이해하기가 용이하며, 제품 개발에 관련된 사람들 간의 의사소통을 원활하게 하여 모호하지 않고 명확한 규격을 만드는 것을 가능하게 한다. 즉, 여러 가지로 해석이 가능한 통상적인 언어를 사용하는 대신 모델을 사용하여 제품의 규격을 나타내어 명확한 제품의 규격을 나타낼 수 있게 되는 것이다. 또한, 이러한 방법을 이용하여 작성된 모델은 컴퓨터에서 실행이 가능하여, 실제 제품을 만들어 보기 이전에 시뮬레이션을 수행할 수 있으며, 이로 인하여 실제 제품에서 발생할 가능성이 있는 문제점들을 사전에 파악할 수 있도록 한다. 이와 같이 컴퓨터상에서 모델을 이용하여 만들어진 것을 가상 프로토 타입(virtual proto-type)이라고 부른다. 통상 적인 제품 개발 과정에서 실제 프로토 타입의 제작은 많은 시간과 비용이 소요되는 작업으로서, 이 작업을 컴퓨터상에서 가상 프로토 타입으로 대체한다면 시간과 비용이 많이 절약되는 효과를 얻을 수 있다.

모델 기반 기법을 이용한 제품 개발 프로세스는 일반적으로 아래 그림과 같은 V 자 형태의 제품 개발 과정을 거치게 된다. 그림에서 왼쪽의 가지는 제품의 요구 사항으로부터 모델을 이용한 규격의 작성과 이에 따른 프로토 타입을 개발하는 과정으로 구성되어 있으며, 오른쪽의 가지는 개발된 제품을 검증하는 과정으로 구성되어 있다. 왼쪽의 가지를 거쳐서 진행되는 과정에서 제품의 신뢰성을 확보하기 위해서 필요한 시험 항목에 대한 데이터가 도출이 되며, 우측의 가지에서는 이 시험 항목을 이용하여 신뢰성 확보를 위한 제품 시험을 실행하게 된다. 이와 같은 V 자 형태의 개발 프로세스는 자동차나 항공기와 같은 고도의 신뢰성이 요구되는 제품에 사용되는 부품의 개발에 많이 적용되고 있다.


모델 기반 기법은 단순히 제품에 내장된 마이크로프로세서의 임베디드 소프트웨어를 작성하기 위한 것만은 아니고, 제품 개발 프로세스 전체와 관련된 기법이다. 그러나, 전체 프로세스에서 가장 중요한 부분이 임베디드 소프트웨어의 개발이고, 모델 기반 기법의 가장 많은 부분을 차지하는 것은 임베디드 소프트웨어의 개발을 위한 부분이다. 특히, 최근에 이와 같은 기법의 적용을 위한 소프트웨어가 많이 개발되었고, 관련 기술에도 많은 진보가 있어서, 작성된 모델로부터 임베디드 소프트웨어의 소스 프로그램까지 자동으로 작성하는 것이 가능하게 되었으며, 이를 자동 코드 생성(auto-code generation)이라고 부른다. 최근, 자동 코드 생성에 의해서 생성된 임베디드 소프트웨어용 소스 프로그램은 전문 임베디드 프로그래머가 작성한 소스 코드와 거의 유사한 효율성과 크기를 가지게 되어, 자동 코드 생성에 의해서 생성된 코드가 제품에 직접 적용되는 사례도 조금씩 증가하는 추세이다.

관련 웹사이트

Object Management Group
www.uml.org
IBM Rational
Teleogic

관련 교과목

임베디드 시스템 설계