KR20070058954A - 임베디드 시스템 프로토타입 개발 지원 장치 및 방법 - Google Patents
임베디드 시스템 프로토타입 개발 지원 장치 및 방법 Download PDFInfo
- Publication number
- KR20070058954A KR20070058954A KR1020060064259A KR20060064259A KR20070058954A KR 20070058954 A KR20070058954 A KR 20070058954A KR 1020060064259 A KR1020060064259 A KR 1020060064259A KR 20060064259 A KR20060064259 A KR 20060064259A KR 20070058954 A KR20070058954 A KR 20070058954A
- Authority
- KR
- South Korea
- Prior art keywords
- use case
- unit
- information
- analysis table
- hardware
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/28—Error detection; Error correction; Monitoring by checking the correct order of processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명은 사용자로부터 입력된 임베디드 시스템의 요구 사항 정보 및 유스케이스 정보를 분석하여 유스케이스 분석표를 생성하는 요구 명세 분석부, 상기 사용자로부터 입력된 상기 시스템의 소프트웨어 및/또는 하드웨어 구조와 각 구조에 대한 구성 요소를 분석하여 시스템 구조 그래프를 생성하고, 상기 생성한 시스템 구조 그래프를 상기 요구 명세 분석부에서 생성한 유스케이스 분석표에 반영하여 상기 유스케이스 분석표를 업데이트시키는 아키텍처 설계부, 상기 아키텍처 설계부에서 정의된 상기 구성 요소 간의 수행 흐름과 호출 관계를 포함하는 행위 정보를 정의하는 아키텍처 행위 정의부, 상기 아키텍처 설계부에서 정의된 구성 요소가 상기 아키텍처 행위 정의부에서 정의된 상기 행위 정보에 따라 동작되도록 코드를 생성하고, 상기 구성 요소의 기능 수행 여부를 확인해 나가며 상기 시스템을 구현하는 통합 구현부 및 상기 구현된 시스템의 기능과 성능을 테스트하는 테스트부로 구성된 것으로서, 하드웨어와 소프트웨어 혼합설계 기반의 시스템 개발로 개발 프로세스 과정 중에 발생할 수 있는 구현 변경 및 수정에 대한 비용을 개발 초기 단계의 상위 레벨로 분리하여 핵심적으로 시스템을 구성할 수 있다.
임베디드 시스템, 프로토타입, 개발 지원, 요구사항, 유스케이스
Description
도 1은 본 발명에 따른 임베디드 시스템 프로토타입 개발 지원 장치의 구성을 개략적으로 나타낸 블럭도.
도 2는 본 발명에 따른 임베디드 시스템 프로토타입 개발 지원 방법을 나타낸 흐름도.
도 3은 본 발명에 따른 호스트에서 임베디드 시스템 프로토타입 개발 지원 방법을 나타낸 흐름도.
도 4a 내지 도 4k는 도 3을 설명하기 위한 화면 구성도.
도 5는 본 발명에 따른 아키텍처 행위 설계에 대한 수행 흐름 예시도.
<도면의 주요 부분에 대한 부호의 설명>
100 : 요구 명세 분석부 102 : 요구 분석표 생성부
104 : 유스케이스 분석표 생성부 110 : 아키텍처 설계부
112 : 시스템 구조 개념 그래프 생성부 114 : 시스템 구조 그래프 생성부
120 : 아키텍처 행위 정의부 122 : 활동도 편집부
124 : 순차도 편집부 130 : 통합 구현부
132 : 코딩부 134 : 컴파일러부
136 : 디버거 140 : 테스트부
142 : 테스트 케이스 정의부 144 : 테스트 케이스 생성부
146 : 테스트 계획/결과 편집부 150 : 저장부
본 발명은 하드웨어와 소프트웨어가 함께 설계되고 검증될 수 있도록 타깃(target) 시스템의 하드웨어 정보를 소프트웨어 설계와 통합하는 임베디드 시스템 프로토타입 개발 지원 장치 및 방법에 관한 것이다.
일반적으로 임베디드 시스템은 전용 컴퓨터나 마이크로프로세서를 구동하여 특정 목적의 작업이나 특정 기능을 수행하도록 설계한 하드웨어와 소프트웨어를 갖는 제어 시스템을 의미한다. 임베디드 시스템 개발에서 소프트웨어는 하드웨어가 제공할 수 없는 사용자 요구 사항에 대한 차별화된 서비스를 제공하기 위해 개발된다. 임베디드 소프트웨어를 탑재한 제품은 통신, 가전, 의료, 항공, 군사 등의 전 산업으로 확대되고 있어 임베디드 소프트웨어의 가치는 다양한 기능을 제공하기 위해 더욱 증가할 것으로 예상된다.
임베디드 시스템 개발 주기는 타 일반적인 시스템보다 개발 주기가 상당히 짧고 사용자의 요구 사항이 반영된 새 제품을 요구하는 주기 또한 짧다. 종래의 임베디드 시스템 설계는 하드웨어의 사양이 결정된 후 시스템 전문가의 경험에 의존하여 개발 초기 단계에서 하드웨어와 소프트웨어로 분할되고, 각 부분은 서로 다른 설계자에 의하여 설계되어 최종적으로 각 부분이 통합되는 과정을 거치게 된다.
즉, 임베디드 소프트웨어는 호스트 시스템에서 개발되고 타깃 시스템에서 기능을 수행하는 크로스(cross) 개발 환경이여 왔다. 그러나 임베디드 시스템을 개발하기 위한 실질적인 개발 주기는 하드웨어와 소프트웨어의 동시 개발이 이뤄지고 있지 못하다. 결과적으로 하드웨어의 개발이 완료되는 시점에 소프트웨어의 개발이 시작될 수 있어 임베디드 소프트웨어의 개발에 필요한 시간은 한정되고 하드웨어의 개발에 종속적으로 수행되어 왔다.
그러나 상기와 같은 종래의 설계 방식에서 소프트웨어의 개발은 하드웨어 프로토타입이 완성된 이후에야 가능하게 되어 설계 기간이 길어지게 되고, 이러한 경우 소프트웨어를 개발하는 과정에서 하드웨어 설계의 부적합한 점이 발견되더라도 하드웨어를 수정하기에 상당히 어려워지는 단점이 있다.
또한, 하드웨어와 소프트웨어를 통합하여 불일치하는 부분이 발생하는지에 대한 여부는 통합 이전에 알 수 없고, 통합 이후에 기능 검토를 통해 알 수 있으므로, 통합된 시스템의 기능 수정은 변경이 용이한 소프트웨어가 담당하는데, 이는 소프트웨어에 대한 요구 사항의 변경 및 수정을 가져오고 소프트웨어 개발 일정을 늦추는 단점이 있다.
따라서, 본 발명의 목적은 하드웨어와 소프트웨어가 함께 설계되고 검증될 수 있도록 타깃 시스템의 하드웨어 정보를 소프트웨어 설계와 통합하는 임베디드 시스템 프로토타입 개발 지원 장치 및 방법을 제공하는데 있다.
본 발명의 다른 목적은 시스템의 구조와 동작을 시스템의 아키텍처 수준에서 기술하고, 하드웨어와 소프트웨어 담당 부분으로 나누어 개발한 후, 각 요소를 통합하여 시스템의 동작을 검증하는 임베디드 시스템 프로토타입 개발 지원 장치 및 방법을 제공하는데 있다.
본 발명의 또 다른 목적은 임베디드 소프트웨어와 하드웨어에 대한 요구사항을 분석하여 도출하고 시스템을 설계함으로써 시스템의 프로토타입을 시뮬레이션하도록 지원하는 임베디드 시스템 프로토타입 개발 지원 장치 및 방법을 제공하는데 있다.
본 발명의 또 다른 목적은 시스템 구성에 필요한 요구 사항을 분석하고 설계함으로써 소프트웨어와 하드웨어의 기능이 향후 변경될 수 있는 가능성을 미연에 방지하는 것을 지원하는 임베디드 시스템 프로토타입 개발 지원 장치 및 방법을 제공하는데 있다.
상기 목적들을 달성하기 위하여 본 발명의 일 측면에 따르면, 사용자로부터 입력된 임베디드 시스템의 요구 사항 정보 및 유스케이스 정보를 분석하여 유스케 이스 분석표를 생성하는 요구 명세 분석부, 상기 사용자로부터 입력된 상기 시스템의 소프트웨어 및/또는 하드웨어 구조와 각 구조에 대한 구성 요소를 분석하여 시스템 구조 그래프를 생성하고, 상기 생성한 시스템 구조 그래프를 상기 요구 명세 분석부에서 생성한 유스케이스 분석표에 반영하여 상기 유스케이스 분석표를 업데이트시키는 아키텍처 설계부, 상기 아키텍처 설계부에서 정의된 상기 구성 요소 간의 수행 흐름과 호출 관계를 포함하는 행위 정보를 정의하는 아키텍처 행위 정의부, 상기 아키텍처 설계부에서 정의된 구성 요소가 상기 아키텍처 행위 정의부에서 정의된 상기 행위 정보에 따라 동작되도록 코드를 생성하고, 상기 구성 요소의 기능 수행 여부를 확인해 나가며 상기 시스템을 구현하는 통합 구현부 및 상기 구현된 시스템의 기능과 성능을 테스트하는 테스트부를 포함하는 것을 특징으로 하는 임베디드 시스템 프로토타입 개발 지원 장치가 제공된다.
본 발명의 다른 측면에 따르면, 사용자로부터 입력된 요구 사항 정보를 이용하여 요구 분석표를 생성하고, 상기 생성된 요구 분석표와 상기 사용자로부터 입력된 유스케이스 정보를 이용하여 유스케이스 분석표를 생성하고, 상기 사용자로부터 입력된 소프트웨어 및/또는 하드웨어 구조와 각 구조에 대한 구성 요소를 분석하여 소프트웨어와 하드웨어 각각의 아키텍처 구조를 설계하고, 상기 설계된 아키텍처 구조를 상기 생성된 유스케이스 분석표에 반영하여 상기 유스케이스 분석표를 업데이트시키고, 상기 설계된 각 아키텍처 구조 내 구성 요소 간의 행위를 설계하고, 상기 설계된 아키텍처 구조와 행위가 설계된 대로 시스템에서 수행되도록 코드를 구현하고, 상기 설계된 하드웨어와 소프트웨어가 설계된 수행 범위 내에서 정상 동 작 가능한지의 여부를 테스트하는 것을 특징으로 하는 임베디드 시스템 프로토타입 개발 지원 방법이 제공된다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
도 1은 본 발명에 따른 임베디드 시스템 프로토타입 개발 지원 장치의 구성을 개략적으로 나타낸 블럭도이다.
도 1을 참조하면, 임베디스 시스템 프로토타입 개발 지원 장치는 요구 명세 분석부(100), 아키텍처 설계부(110), 아키텍처 행위 정의부(120), 통합 구현부(130), 테스트부(140), 저장부(150)를 포함한다.
상기 요구 명세 분석부(100)는 시스템이 제공할 서비스에 대한 요구 사항을 사용자로부터 입력 받아 요구 분석표로 표현하고, 텍스트 및/또는 다이어그램 형태로 유스케이스를 입력 받아 유스케이스 분석표를 생성한다.
즉, 상기 요구 명세 분석부(100)는 요구 분석표가 생성된 후, 상기 사용자에 의해 유스케이스가 입력되면, 상기 생성된 요구 분석표를 이용하여 시스템이 동작하는데 필요한 단위 기능과 품질 속성을 분석하여 유스케이스 분석표를 생성한다.
상기와 같은 역할을 수행하는 요구 명세 분석부(100)는 요구 분석표 생성부(102), 유스케이스 분석표 생성부(104)를 포함한다.
상기 요구 분석표 생성부(102)는 사용자에 의해 요구 사항이 입력되면, 그 입력된 요구 사항을 분석하여 요구 사항의 목록으로 나열된 요구 분석표를 생성한 다. 상기 요구 사항은 텍스트 형태로 입력된다.
상기 유스케이스 분석표 생성부(104)는 사용자에 의해 유스케이스가 입력되면, 그 입력된 유스케이스의 수행환경, 입/출력 정보, 속성, 수행 시나리오에 대해 분석하여 유스케이스 분석표를 생성한다. 상기 유스케이스는 텍스트와 다이어그램 형태로 입력된다.
즉, 상기 유스케이스 분석표 생성부(104)는 상기 분석된 유스케이스 시나리오와 상기 요구 분석표 생성부(102)에서 생성된 요구 분석표를 이용하여 시스템에서 수행된 단위 유스케이스를 분리하고 단위 기능으로 정리하여 유스케이스 분석표를 생성한다.
상기 아키텍처 설계부(110)는 시스템을 구성하는 소프트웨어와 하드웨어의 구조를 각각 설계하고, 상기 설계된 각 구조에 대한 구성 요소를 정의하여 아키텍처를 설계하는 역할을 수행한다. 즉, 상기 아키텍처 설계부(110)는 소프트웨어 시스템 구조와 하드웨어 시스템 구조를 각각 설계한다.
상기와 같은 역할을 수행하는 아키텍처 설계부(110)는 시스템 구조 개념 그래프 생성부(112), 시스템 구조 그래프 생성부(114)를 포함한다.
상기 시스템 구조 개념 그래프 생성부(112)는 시스템 구조를 소프트웨어와 하드웨어로 나누어 소프트웨어의 구성 요소와 하드웨어의 구성 요소를 계층 구조를 갖는 구조 개념 그래프로 각각 표현한다. 상기 소프트웨어 구성 요소와 상기 하드웨어 구성 요소는 사용자에 의해 입력 또는 선택된 정보이다.
예를 들어, 소프트웨어의 경우 서브시스템, 어셈블리, 어셈블리를 구성하는 재사용 가능한 단위인 컴포넌트, 컴포넌트의 속성을 부품으로 정의할 수 있다. 여기서, 상기 부품은 인터페이스, 함수, 데이터 타입 등을 예로 들 수 있다.
상기 하드웨어 구성 요소는 프로세서, 인터페이스, 타깃 시스템의 입력 신호, 전력, 디스플레이 장치, 시리얼 장치, 데이터 형식, 레지스터, 명령어 등을 포함한다.
상기 생성된 시스템 구조 개념 그래프는 기능과 관련된 타깃 플랫폼의 정보가 메타 구조로 표현된 형태이다.
상기 시스템 구조 그래프 생성부(114)는 상기 시스템 구조 개념 그래프 생성부(112)에서 생성된 시스템 구조 개념 그래프로 표기된 구성 요소에 따라 시스템의 구조적인 특성을 분석하여 시스템 구조 그래프를 생성한다. 상기 생성되는 시스템 구조 그래프는 소프트웨어 구조 그래프와 하드웨어 구조 그래프를 포함한다.
즉, 상기 시스템 구조 그래프 생성부(114)는 상기 시스템 구조 개념 그래프에서 표현된 계층대로 상위 레벨에서 시작하여 하위레벨로 점차 확대해 나가며 시스템을 구성하는 구성 요소, 구성 요소가 하드웨어가 담당하는지 또는 소프트웨어가 담당하는지에 관한 구분, 상호 연동되도록 종속적인 관계를 갖는 관련 구성 요소, 구조 개념 상하위에 포함되는 구성 요소, 관련 구성 요소와 데이터나 제어 정보를 주고 받기 위한 인터페이스 등을 분석하여 시스템 구조 그래프를 생성한다.
또한, 상기 시스템 구조 그래프 생성부(114)는 상기 시스템 구조 그래프로 식별되어 구성된 요소를 상기 유스케이스 분석표 생성부(104)에서 생성된 유스케이스 분석표에 반영하여 시스템의 기능으로 생성되어야 할 속성 정보를 갱신한다.
즉, 상기 시스템 구조 그래프로 분석된 정보는 상기 유스케이스 분석표에 반영되고, 유스케이스 분석표의 변경으로 시스템 구조에 대한 분석된 정보가 정제되면, 반복적으로 시스템 구조 그래프의 분석 정보에 반영된다.
상기 아키텍처 행위 정의부(120)는 상기 아키텍처 설계부(110)로부터 설계된 아키텍처 구성 요소 상호간의 기능 수행 흐름과 호출 관계를 정의하여 품질 속성에 대한 제약 사항을 수행 흐름과 함께 설계되게 정의하는 역할을 수행한다.
상기와 같은 역할을 수행하는 아키텍처 행위 정의부(120)는 활동도 편집부(122)와 순차도 편집부(124)로 구성된다.
상기 활동도 편집부(122)는 상기 시스템 구조 그래프에서 정의된 종속 구성 요소 중 함수 정보를 이용하여 시스템의 기능을 수행하기 위한 수행 로직을 형성한다. 즉, 상기 활동도 편집부(122)는 상기 사용자에 의해 선택된 종속 구성 요소 간의 수행 로직을 형성하는 역할을 수행한다.
또한, 상기 활동도 편집부(122)는 활동도로 표현된 수행 흐름에 상기 시스템 구조 그래프에서 분석된 상위 구성 요소로 영역을 구분하여 상위 구성 요소에서 수행될 기능이 다른 요소와 상호 통신할 때 필요한 인터페이스로 충분한지 검증하는 기능을 수행한다.
상기 순차도 편집부(124)는 상기 활동도 편집부(122)를 통해 표현된 활동도의 수행 흐름을 순차 흐름으로 표현한다.
즉, 상기 순차도 편집부(124)는 상기 활동도의 수행 흐름을 순차 흐름의 동작을 시작하는 구성 요소와 이 구성 요소에서 호출되는 함수, 도달 가능한 다른 구 성 요소로 수행 로직을 분석하는 역할을 수행한다. 여기서, 상기 수행 로직은 호출함수, 전달되는 함수 파라미터의 타입과 실제 값, 시간 제약 사항, 완료된 하드웨어 구성 요소의 이전 상태 정보, 하드웨어의 명령어로의 매핑(mapping) 정보와 함께 정의된다.
상기 통합 구현부(130)는 상기 아키텍처 설계부(110)에서 설계된 아키텍처 구조 설계 정보와 상기 아키텍처 행위 정의부(120)에서 설계된 행위 설계 정보를 이용하여 호스트 시스템에서 수행될 수 있는 구현 코드를 개발한다.
또한, 상기 통합 구현부(130)는 상기 개발된 구현 코드를 컴파일 하여 설계된 대로 기능이 수행되는지를 판단하고, 결함이 있는 경우, 그 결함 원인을 찾을 수 있도록 한다.
상기와 같은 역할을 수행하는 통합 구현부(130)는 코딩부(132), 컴파일러부(134), 디버거(136)를 포함한다.
상기 코딩부(132)는 아키텍처 구조 설계 정보와 행위 설계 정보를 이용하여 호스트 환경에서 수행될 수 있는 코드를 생성한다.
상기 컴파일러부(134)는 상기 코딩부(132)에서 생성된 코드를 호스트 환경에서 수행될 수 있는 실행 파일로 변환한다.
상기 디버거(136)는 상기 컴파일러부(134)에 의해 변환된 코드에 대해 예측하지 못한 기능이나 잘못된 동작이 발생했을 때 원인이 되는 부분을 찾을 수 있도록 지원한다.
상기 테스트부(140)는 테스트 프로그램을 생성하여 사용자에 의해 입력된 테 스트 시나리오대로 동작하는지를 평가하는 역할을 수행한다. 즉, 상기 사용자가 하드웨어와 소프트웨어 정보가 설계된 수행 범위 내에서 정상 동작하는지를 평가하기 위해 테스트 케이스를 정의하면, 상기 테스트부(140)는 상기 정의된 테스트 케이스에 대한 테스트 계획서를 생성한 후, 테스트 프로그램을 생성한다.
그런 다음 상기 테스트부(140)는 상기 생성한 테스트 프로그램을 이용하여 상기 구현된 시스템의 기능과 성능을 테스트한 후, 그 결과를 문서화한다.
상기와 같은 역할을 수행하는 테스트부(140)는 테스트 케이스 정의부(142), 테스트 케이스 생성부(144), 테스트 계획/결과 편집부(146)를 포함한다.
상기 테스트 케이스 정의부(142)는 임베디드 시스템을 구성하는 하드웨어와 소프트웨어 정보가 설계된 수행 범위 내에서 정상 동작하는지를 평가하기 위해 사용자로부터 테스트 케이스를 입력 받는다. 상기 테스트 케이스는 테스트 시나리오에 표현된 테스트할 함수 호출 범위와 대상 모듈에 대한 호출 함수, 입력 데이터, 예측 결과값 등을 포함한다.
상기 테스트 케이스 생성부(144)는 상기 테스트 케이스 정의부(142)에서 입력된 테스트 케이스에 따라 수행 흐름과 점검할 결과값을 설계한다. 상기 테스트 케이스 설계 정보는 상기 통합 구현부(130)에 입력되어 호스트 시스템에서 수행 가능한 프로그램으로 변환된다. 테스트에 필요한 스텁(stub)과 드라이버를 프로그램으로 개발하는 것을 포함한다.
상기 테스트 계획/결과서 편집부(146)는 상기 테스트 케이스 정의부(142)에서 분석된 테스트 시나리오를 편집하고 테스트 데이터를 설계하여 문서로 작성하 고, 테스트 수행을 통해 생성된 로그 파일의 분석정보를 문서화하는 역할을 수행한다.
상기 저장부(150)는 요구 분석표, 시스템 구조 개념 그래프, 시스템 구조 그래프, 유스케이스 분석표, 활동도, 순차도, 구현 코드, 테스트 계획서, 테스트 케이스, 테스트 결과서 등을 저장한다. 상기 저장된 정보는 같은 기능의 반복적인 검토, 구조나 행위 정보를 수동으로 변경하여 유사한 기능을 검증해야 할 때 재사용된다.
상기와 같이 구성된 프로토타입 개발 지원 장치는 PC와 같은 호스트에 존재할 수 있다.
도 2는 본 발명에 따른 임베디드 시스템 프로토타입 개발 지원 방법을 나타낸 흐름도이다.
도 2를 참조하면, 호스트는 사용자에 의해 입력된 요구 사항 정보를 이용하여 요구 분석표를 생성한다(S200). 상기 사용자가 텍스트 형태로 요구 사항을 입력하면, 상기 호스트는 입력된 요구 사항을 분석하여 요구 분석표를 생성한다.
단계 200의 수행 후, 상기 호스트는 상기 사용자에 의해 입력된 유스케이스 정보를 이용하여 유스케이스 분석표를 생성한다(S202).
즉, 상기 사용자는 시스템에서 수행되는 기능에 대해 다이어그램과 텍스트 형태로 유스케이스를 입력한다. 그러면, 상기 호스트는 상기 입력된 유스케이스를 분석하여 상위 수준의 시스템 구성 환경과 기능을 상세화한다.
상기 상세화 단계에서 상기 호스트는 유스케이스 시나리오를 구성하는 단위 시나리오로 분할하고, 수행을 담당할 객체, 기능에 대한 품질 속성, 관련 있는 유스케이스 다이어그램을 식별하여 시스템의 기능으로 제공된 기능 요소와 성능 요소를 유스케이스 분석표로 분석한다.
단계 202의 수행 후, 상기 호스트는 상기 사용자에 의해 입력된 아키텍처 구조 설계 정보를 이용하여 아키텍처 구조를 설계한다(S204).
즉, 상기 사용자가 시스템의 구조를 소프트웨어와 하드웨어로 나누어 소프트웨어의 구성 요소와 하드웨어의 구성 요소를 선택 또는 입력하면, 상기 호스트는 하드웨어와 소프트웨어 각각에 대하여 각 구성 요소가 계층 구조를 갖는 시스템 구조 개념 그래프를 생성한다.
상기 시스템 구조 개념 그래프는 임베디드 시스템을 혼합 설계할 때 필요한 설계 대상을 소프트웨어와 하드웨어로 분리하고 두 구성 요소를 결합하는 인터페이스를 기술한 것이다.
상기와 같이 시스템 구조 개념 그래프가 생성되면, 상기 호스트는 상기 생성된 시스템 구조 개념 그래프에 표기된 구성 요소에 따라 시스템의 구조적인 특성을 분석하여 시스템 구조 그래프를 생성한다.
상기와 같이 시스템 구조 그래프가 생성되면, 상기 호스트는 시스템의 동작에 필요한 객체(object) 요소를 시스템 구조 개념 그래프에서 정의한 계층대로 상위 레벨에서 시작하여 하위 레벨로 점차 확대해 나가며 시스템의 구조를 결정하는 구성 요소를 식별한다.
상기 식별된 각 구성 요소는 하드웨어로 처리되어야 할 대상인지 또는 소프 트웨어로 처리되어야 할 대상인지 결정하여 표기한다. 식별된 요소에 대해 종속성을 갖는 관련 요소를 찾아 함께 표현하고, 종속성을 갖는 경우 두 구성 요소를 연결하기 위해 필요한 구성 요소가 무엇인지 시스템 구조 개념 그래프에 명시된 대상 가운데 선택하여, 시스템 구조 그래프에 함께 정의한다.
단계 204의 수행 후, 상기 호스트는 상기 생성된 시스템 구조 그래프를 상기 유스케이스 분석표에 역으로 반영하여 시스템의 기능으로 생성되어야 할 속성 정보를 갱신한다(S206).
즉, 유스케이스 분석표의 기능을 첨가되는 속성으로 표현할 때 기능의 크기가 상위 수준이거나 세분화될 수 있을 정도로 커서 속성 정보의 반영이 어려울 때에 기능을 상세화된 기능들로 세분화하여 표현한다. 상기 기능의 세분화는 유스케이스 시나리오로 기술된 상위 레벨의 기능에서 점차 구현에 필요한 기능을 분석해 나갈 수 있는 방법을 제공한다. 상기 유스케이스 분석표의 기능을 세분화하여 분석하고 그 기능들이 관련 시스템 구조 그래프에서 어떤 요소와 관련이 있는지 함께 분석하여 표현한다.
단계 206의 수행 후, 상기 호스트는 상기 설계된 아키텍처 구성 요소 간의 행위를 설계한다(S208).
즉, 상기 사용자는 상기 설계된 아키텍처 각각의 구성 요소에 종속되거나 관련 있는 요소와 데이터나 제어 정보를 주고 받기 위해 수행 흐름을 정의한다. 상기 수행 흐름을 함수가 호출되는 로직(logic)으로 정의하고, 함수가 포함되는 시스템 구성 요소별로 함수들을 묶어 인터페이스로 정의한다.
상기 시스템 구조 그래프에서 정의된 종속 구성 요소에 따라 인터페이스와 함수들이 호출되는 관계를 함수 시그너처(signature)로 표현한다. 상기 함수 시그너처는 리턴 값, 파라미터 타입, 시간 제약 사항, 이전 상태 정보, 하드웨어 명령어(instruction)가 함께 정의된다. 상기 인터페이스는 함수 시그너처 형태의 함수들의 집합으로 표현한다.
단계 208의 수행 후, 상기 호스트는 상기 설계된 아키텍처 구조와 행위가 설계된 대로 시스템에서 수행될 수 있도록 코드를 구현한다(S210).
단계 210의 수행 후, 상기 호스트는 상기 하드웨어와 소프트웨어 정보가 설계된 수행 범위 내에서 정상적인 동작이 가능한지 확인하기 위하여 테스트 프로그램을 생성하여 구현된 시스템의 기능과 성능에 대해 테스트를 수행한다(S212).
단계 212에서의 테스트 수행결과는 저장된다.
도 3은 본 발명에 따른 호스트에서 임베디드 시스템 프로토타입 개발 지원 방법을 나타낸 흐름도, 도 4a 내지 도 4k는 도 3을 설명하기 위한 화면 구성도, 도 5는 본 발명에 따른 아키텍처 행위 설계에 대한 수행 흐름 예시도이다.
도 3을 참조하면, 호스트는 사용자에 의해 요구사항 정보가 입력되면(S300), 상기 입력된 요구 사항 정보를 이용하여 요구 분석표를 생성한다(S302). 즉, 사용자는 임베디스 시스템 프로토타입 개발을 위하여 도 4a와 같이 호스트에서 임베디드 시스템 프로토타입 개발 메뉴를 선택한다.
그러면, 상기 호스트는 도 4b와 같은 프로토타입 개발을 위한 서브 메뉴 제공 화면을 디스플레이한다. 도 4b를 참조하면, 상기 프로토타입 개발 서브 메뉴 제 공 화면에는 요구사항 입력 명령, 유스케이스 입력 명령, 아키텍처 구조 설계 명령, 구현 명령, 테스트 명령 등이 포함되어 있다.
상기 사용자는 먼저 요구 사항을 입력하기 위하여 요구 사항 입력 명령을 선택한다.
그러면, 상기 호스트는 도 4c와 같은 요구 사항 입력 화면을 디스플레이한다. 상기 사용자는 상기 디스플레이된 요구 사항 입력 화면(410)의 요구 사항 입력 영역(412)에서 원하는 요구사항을 입력한다. 상기 입력되는 요구 사항은 텍스트 형태일 수 있다.
상기 사용자가 요구 사항의 입력을 완료하면, 상기 호스트는 상기 입력된 요구 사항을 이용하여 도 4d와 같은 요구 분석표(422)를 생성하여 디스플레이한다.
상기 요구 분석표(422)는 사용자에 의해 입력된 요구 사항 기술과 요구 사항 번호로 구성되어 있다. 예를 들어, 상기 사용자가 요구 사항 입력 화면에서 '파워 버튼의 동작 확인'과 '리셋 버튼의 동작 확인'을 입력하였다면, 상기 호스트는 요구 사항 기술란에 '파워버튼의 동작 확인'과 '리셋 버튼의 동작 확인'이 표시된 요구 분석표(422)를 생성한다.
상기 사용자는 상기 디스플레이된 요구 분석표(422)를 보고, 자신이 원하는 대로 입력되었다면, 확인 명령(424)을 선택한다. 그러면, 상기 호스트는 상기 생성된 요구 분석표(422)를 저장부에 저장한다.
만약, 상기 사용자가 상기 디스플레이된 요구 분석표(422)의 수정을 원하여 수정 명령(426)을 선택하면, 상기 호스트는 요구 사항 입력 화면(410)을 디스플레 이한다. 그러면, 상기 사용자는 상기 디스플레이된 요구 사항 입력 화면(410)을 이용하여 요구 사항을 수정할 수 있다.
또한, 상기 사용자가 요구 사항 수정 명령(426)을 선택하면, 상기 호스트는 상기 디스플레이된 요구 분석표(422)에서 바로 수정이 가능하도록 상기 요구 분석표(422)내에 커서를 활성화시킨다. 그러면, 상기 사용자는 상기 커서를 이용하여 요구 사항을 바로 수정할 수 있다.
상기와 같이 요구 사항이 입력되어 요구 분석표가 생성되고 나면, 상기 호스트는 상기 사용자로부터 유스케이스 정보를 입력 받는다(S304). 상기 사용자는 텍스트와 다이어그램 형태로 유스케이스를 입력한다.
단계 304가 수행되면, 상기 호스트는 상기 입력된 유스케이스 정보와 상기 생성된 요구 분석표를 이용하여 유스케이스 분석표를 생성한다(S306).
즉, 상기 사용자가 도 4b와 같은 프로토타입 개발을 위한 서브 메뉴 제공 화면에서 유스케이스 입력 명령을 선택하면, 상기 호스트는 도 4e와 같은 유스케이스 입력 화면(430)을 디스플레이한다.
상기 유스케이스 입력 화면(430)에는 텍스트 형태 입력 영역(432)과 다이어그램 형태 입력 영역(434)이 존재한다. 상기 사용자는 상기 텍스트 형태 입력 영역(432)에서 '파워 on', '파워 off', '리셋'과 같이 유스케이스를 텍스트 형태로 입력하고, 상기 다이어그램 형태 입력 영역(434)에서 상기 텍스트 형태로 입력된 유스케이스에 대하여 다이어그램으로 표현한다.
그러면, 상기 호스트는 상기 입력된 유스케이스에 대해 수행 환경, 입/출력 정보, 속성, 수행 시나리오에 대해 분석한다. 그런 다음 상기 호스트는 상기 분석된 유스케이스 시나리오와 요구 분석표를 이용하여 시스템에서 수행된 단위 유스케이스를 분리하고 기능으로 정리하여 유스케이스 분석표를 생성하고, 도 4f와 같은 유스케이스 분석표 제공 화면(440)을 디스플레이한다.
상기 유스케이스 분석표(442)는 기능번호, 단위 유스케이스 명, 요구사항 관련번호, 수행자, 중요 품질 속성, 관련 유스케이스 다이어그램, 관련 시스템 구조 그래프 요소 명 등으로 구성되어 있다.
여기서, 상기 수행자는 기능을 담당할 대상으로 상위 개념의 하드웨어와 소프트웨어의 구성 요소로 역할이 결정된다. 상기 중요 품질 속성은 해당 시스템의 요구 사항을 만족시키기 위해 필요한 요소로 분석하여 나열하고, 어느 정도 만족되어야 하는지가 표시된다. 상기 관련 유스케이스 다이어그램은 상기 사용자가 입력한 유스케이스 다이어그램 중에서 관련된 다이어그램을 나타낸다. 상기 관련 시스템 구조 그래프 요소 명은 추후, 시스템 구조 그래프가 형성되면 추가되는 것이다.
상기 디스플레이된 유스케이스 분석표(442)가 상기 사용자가 원하는 것으로 생성되었으면, 상기 사용자는 확인 명령(444)을 선택한다. 그러면, 상기 호스트는 상기 생성된 유스케이스 분석표(442)를 저장부에 저장한다.
만약, 상기 사용자가 상기 생성된 유스케이스 분석표(442)의 수정을 원하면, 수정 명령(446)을 선택한다. 그러면, 상기 호스트는 도 4e와 같은 유스케이스 입력화면(430) 또는 유스케이스 분석표(442)에서 바로 수정할 수 있도록 커서를 이동시킨다. 그러면, 상기 사용자는 유스케이스 분석표(442)에서 바로 수정할 수 있다.
단계 306의 수행 후, 상기 호스트는 상기 사용자에 의해 입력된 시스템 구성 요소 정보를 이용하여 시스템 구조 개념 그래프를 생성한다(S308).
즉, 상기 사용자가 아키텍처 구조 설계 명령을 선택하면, 상기 호스트는 도 4g와 같은 아키텍처 구조 설계 화면(450)을 디스플레이한다. 상기 아키텍처 구조 설계 화면(450)에는 아키텍처를 구성하는 하드웨어의 구성 요소를 설정하기 위한 하드웨어 명령(452), 소프트웨어의 구성 요소를 설정하기 위한 소프트웨어 명령(454)이 포함되어 있다.
상기 사용자가 하드웨어 명령(452)을 선택하면, 상기 호스트는 하드웨어 구성 요소 선택 화면을 디스플레이한다. 상기 하드웨어 구성 요소 선택 화면은 도 4h와 같이 미리 저장되어 있는 하드웨어 구성 요소 정보가 출력되는 화면 또는 사용자가 하드웨어 구성 요소를 직접 입력할 수 있도록 하드웨어 구성 요소 입력 영역이 존재하는 화면일 수 있다. 상기 사용자는 상기 디스플레이된 하드웨어 구성 요소 선택 화면에서 원하는 구성 요소를 선택 또는 직접 입력할 수 있다.
그러면, 상기 호스트는 도 4h와 같은 하드웨어 구조 개념 그래프를 디스플레이한다. 상기 하드웨어 구조 개념 그래프는 시스템, 프로세서, 인터페이스, 프로세서의 속성 부품, 인터페이스 속성 부품 등을 포함한다. 하드웨어 시뮬레이터는 타깃 시스템의 입력 신호, 전력, 디스플레이 장치, 시리얼 장치, 데이터 형식, 레지스터, 명령어 등을 포함할 수 있다.
상기 사용자가 상기 아키텍처 구조 설계 화면(450)에서 소프트웨어 명령(454)을 선택하면, 상기 호스트는 소프트웨어 구성 요소 선택 화면을 디스플레이 한다. 상기 소프트웨어 구성 요소 선택 화면은 도 4i와 같이 미리 저장되어 있는 소프트웨어 구성 요소 정보가 출력되는 화면 또는 사용자가 소프트웨어 구성 요소를 직접 입력할 수 있도록 소프트웨어 구성 요소 입력 영역이 존재하는 화면일 수 있다. 상기 사용자는 상기 디스플레이된 소프트웨어 구성 요소 선택 화면에서 원하는 구성 요소를 선택 또는 직접 입력할 수 있다.
그러면, 상기 호스트는 도 4i와 같은 소프트웨어 구조 개념 그래프를 디스플레이한다. 상기 소프트웨어 구조 개념 그래프는 서브시스템, 어셈블리, 어셈블리를 구성하는 재사용 가능한 단위인 컴포넌트, 상기 컴포넌트의 속성을 부품으로 정의할 수 있다.
상기 시스템 구조 개념 그래프에서 '(1)'은 각 구성 요소별로 가질 수 있는 요소 개수가 최소 한 개인 경우를 말하고, '(1...n)'는 각 구성 요소별로 가질 수 있는 개수가 한 개 이상 n개 미만인 경우를 말한다.
단계 308을 통해 시스템 구조 개념 구조 그래프가 생성되면, 상기 호스트는 상기 생성된 시스템 구조 개념 그래프에 표시된 구성 요소에 따라 시스템의 구조적인 특성을 분석하여 시스템 구조 그래프를 생성한다(S310).
즉, 상기 호스트는 시스템을 구성하는 구성 요소, 구성 요소가 하드웨어가 담당하는지 또는 소프트웨어가 담당하는지에 관한 구분, 상호 연동되도록 종속적인 관계를 갖는 관련 구성 요소, 구조 개념 상하위에 포함되는 구성 요소, 관련 구성 요소와 데이터나 제어 정보를 주고 받기 위한 인터페이스를 분석하여 도 4j와 같은 시스템 구조 그래프를 생성한다.
상기 시스템 구조 그래프는 구성 요소 명, 구분, 종속 서브시스템/관련요소, 하위 구성 요소, 종속 구성 요소 등을 포함한다.
도 4j에 표시된 'SS'는◎서브시스템, 'HW'는 하드웨어, 'SW'는 소프트웨어, 'AS'는 어셈블리, 'C'는 컴포넌트, 'I'는 인터페이스, 'F'는 함수를 말한다.
단계 310이 수행되면, 상기 호스트는 상기 생성된 시스템 구조 그래프를 상기 유스케이스 분석표에 반영하여 아키텍처 속성을 상세 설계한다(S312).
즉, 상기 시스템 구조 그래프로 분석된 정보는 유스케이스 분석표에 반영되고, 유스케이스 분석표의 변경으로 시스템 구조에 대해 분석된 정보가 정제되면 반복적으로 시스템 구조 그래프의 분석 정보에 반영된다. 상기 시스템 구조 그래프가 상기 유스케이스 분석표에 반영되면, 상기 유스케이스 분석표에는 관련 시스템 구조 그래프의 요소 명이 포함된다.
상기 시스템 구조 그래프를 상기 유스케이스 분석표에 반영하면, 아키텍처 구조에 따른 기능 보완이 수행되고, 유스케이스 분석표에 대한 반영 정보가 아키텍처 구성 요소에 미치는 영향을 수정 보완한다.
단계 312의 수행 후, 상기 호스트는 상기 설계된 아키텍처 구조를 구성하는 함수와 인터페이스의 파라미터로 사용될 데이터와 제어 정보에 대해 정의하여 데이터 구조를 결정한다(S314). 상기 정의된 함수, 데이터, 제어 정보는 추후 구현 코드를 생성할 때 참조 정보로 제공된다.
단계 314의 수행 후, 상기 호스트는 아키텍처 구성 요소인 인터페이스와 함수로 시스템에서 수행되는 행위를 구성 요소 간의 기능 수행 흐름으로 표현하여 아 키텍처 행위를 설계한다(S316). 즉, 상기 사용자가 아키텍처 행위 설계 명령을 선택하면, 상기 호스트는 도 4k와 같은 아키텍처 행위 설계 화면(460)을 디스플레이한다. 상기 아키텍처 행위 설계 화면(460)에는 활동도 설계 명령(462)과 순차도 설계 명령(464)이 존재한다.
상기 사용자는 상기 활동도 설계 명령(462)을 선택하여 아키텍처 구성 요소인 인터페이스와 함수로 시스템에서 수행되는 행위를 구성 요소 간의 기능 수행 흐름으로 표현한다. 그런 다음 상기 사용자는 상기 순차도 설계 명령(464)을 선택하여 상기 설계된 활동도에서 선택한 아키텍처 구성 요소 간의 기능 수행 흐름과 호출 관계를 정의하여 아키텍처 행위를 상세 설계한다.
상기 아키텍처 행위 설계에 대한 수행 흐름에 대하여 도 5를 참조하여 설명하기로 한다.
도 5를 참조하면, 수행 흐름에 대한 표기를 활동도로 표기하고 'F'와 'C'는 시스템 구조 그래프에서 분석된 함수와 컴포넌트를 의미한다. 수행 흐름에서 'SS1:HW'는 하드웨어로 구분된 서브시스템 'SS1'을 나타내고, 'C1:HW'는 하드웨어로 구분된 컴포넌트 'C1'을 의미한다.
수행 흐름의 속성으로 표현된 '{상태, s=10}:SEND(event1)'은 이전에 종료된 상태 's'가◎'10'인 값을 가지고 있을 경우 'event1'을◎파라미터로 하는 하드웨어 시뮬레이터의 명령어인 'send'가 호출됨을 의미한다.
'C1:HW'에서 'SS1:HW'로 보이는 'ACK(data_type data)'는 'SS1:HW'로◎호출되는 'C1:HW'의 함수가 함수 시그너처로 'ACK(data type data)'이고 실제 매핑된 파라미터 값은 'data'임을 나타낸다.
따라서 'SEND (event1)함수는 상태 정보 's'가 '10'일때 호출되고, 호출되었음을 알리는 함수 'ACK(data_type data)'가◎호출된 후 '10ms'의 시간 안에 'WRITE(FALG, data_type data)의 함수가 호출되는 수행 흐름을 보인다.
단계 316의 수행 후, 상기 호스트는 상기 설계된 아키텍처 행위에 대해 설계 품질의 속성 정보를 입력 받아 상기 아키텍처 행위에 대한 설계 품질을 보완한다(S318). 즉, 상기 사용자는 상기 아키텍처 행위를 수행하기 위하여 수행 로직에 시간 제약 사항, 하드웨어 시뮬레이터의 명령어 호출, 이전 상태 정보 확인 등의 행위 수행에 필요한 정보를 함께 표현한다.
단계 318이 수행되면, 상기 호스트는 상기 설계된 아키텍처를 검토한다(S320). 즉, 상기 호스트는 상기 아키텍처 행위 설계, 아키텍처 행위 상세 설계, 품질 속성 보완을 수행하며 아키텍처 설계에 일관성이 유지되는지, 시스템의 기능이 정상적으로 동작하는지, 동작이 수행된 후 완료되는지, 누락된 구성 요소나 프로세스가 존재하지 않는지를 점검한다.
단계 320의 수행 후 상기 호스트는 상기 설계된 구조와 행위대로 시스템에서 수행될 수 있도록 코드를 구현한다(S322).
단계 322의 수행 후, 상기 호스트는 상기 구현된 코드에 대해 테스트를 수행한다(S324). 즉, 상기 호스트는 구현된 코드에 대해 테스트 프로그램을 생성하여 테스트 시나리오대로 동작하는지 평가한다.
상기 평가된 결과는 저장부에 저장된다. 상기 호스트는 단계 322에서 구현된 코드를 이용하여 아키텍처 설계 구조의 상위 개념으로 합쳐진 코드를 생성하고, 상기 통합된 코드에 대해 테스트 프로그램을 생성하여 테스트 시나리오대로 동작하는지를 평가한다.
예를들면, 상기 호스트는 컴포넌트 부품 테스트를 수행한 후, 컴포넌트를 통합하고, 어셈블리를 테스트한 후, 어셈블리와 서브시스템을 통합하여 테스트한다. 그런 다음 상기 호스트는 시스템을 통합한다. 그러면, 상기 테스트 결과는 저장부에 저장된다.
상기와 같이 호스트는 임베디드 시스템의 기능 개발을 하드웨어와 소프트웨어 모두를 고려한 상위 수준의 시스템 아키텍처로 설계하고, 설계에 기반하여 하드웨어와 소프트웨어에 대한 기능을 상세 설계한다.
상세 설계 과정에서 하드웨어가 개발을 담당할 부분과 소프트웨어가 개발을 담당할 부분을 분리하고 독립적으로 개발하여 설계된 아키텍처 정보에 기반하여 통합한다. 상위 수준의 설계를 공유함으로써 분석된 요구 사항대로 호스트 환경에서 수행될 수 있는 설계 기반의 프로토타입 시스템을 개발할 수 있다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
본 발명은 상기 실시예에 한정되지 않으며, 많은 변형이 본 발명의 사상 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 가능함은 물론이다.
상술한 바와 같이 본 발명에 따르면, 타깃 시스템의 하드웨어와 소프트웨어 설계를 동시에 진행하여 시스템에 대한 구조와 기능을 검증해 볼 수 있는 임베디드 시스템 프로토타입 개발 지원 장치 및 방법을 제공할 수 있다.
또한, 본 발명에 따르면, 하드웨어와 소프트웨어 혼합 설계 기반의 시스템 개발로 개발 프로세스 과정 중에 발생할 수 있는 구현 변경 및 수정에 대한 비용을 개발 초기 단계의 상위 레벨로 분리하여, 핵심적으로 시스템을 구성할 수 있는 임베디드 시스템 프로토타입 개발 지원 장치 및 방법을 제공할 수 있다.
Claims (23)
- 사용자로부터 입력된 임베디드 시스템의 요구 사항 정보 및 유스케이스 정보를 분석하여 유스케이스 분석표를 생성하는 요구 명세 분석부;상기 사용자로부터 입력된 상기 시스템의 소프트웨어 및/또는 하드웨어 구조와 각 구조에 대한 구성 요소를 분석하여 시스템 구조 그래프를 생성하고, 상기 생성한 시스템 구조 그래프를 상기 요구 명세 분석부에서 생성한 유스케이스 분석표에 반영하여 상기 유스케이스 분석표를 업데이트시키는 아키텍처 설계부;상기 아키텍처 설계부에서 정의된 상기 구성 요소 간의 수행 흐름과 호출 관계를 포함하는 행위 정보를 정의하는 아키텍처 행위 정의부;상기 아키텍처 설계부에서 정의된 구성 요소가 상기 아키텍처 행위 정의부에서 정의된 상기 행위 정보에 따라 동작되도록 코드를 생성하고, 상기 구성 요소의 기능 수행 여부를 확인해 나가며 상기 시스템을 구현하는 통합 구현부;및상기 구현된 시스템의 기능과 성능을 테스트하는 테스트부를 포함하는 것을 특징으로 하는 임베디드 시스템 프로토타입 개발 지원 장치.
- 제1항에 있어서,상기 요구 명세 분석부, 상기 아키텍처 설계부, 상기 통합 구현부 및 상기 테스부에 의해 생성된 정보 중에서 재사용될 수 있는 정보를 저장하는 저장부를 더 포함하는 것을 특징으로 하는 임베디드 시스템 프로토타입 개발 지원 장치.
- 제1항에 있어서, 상기 요구 명세 분석부는,상기 사용자로부터 입력된 임베디스 시스템의 요구 사항 정보를 분석하여 요구 분석표를 생성하는 요구 분석표 생성부;상기 사용자로부터 입력된 유스케이스 정보와 상기 요구 분석표 생성부에서 생성한 요구 분석표를 분석하여 유스케이스 분석표를 생성하는 유스케이스 분석표 생성부를 포함하는 것을 특징으로 하는 임베디드 시스템 프로토타입 개발 지원 장치.
- 제3항에 있어서,상기 요구 분석표는 상기 사용자에 의해 입력된 요구 사항 정보와 요구 사항 식별 번호로 구성된 것을 특징으로 하는 임베디드 시스템 프로토타입 개발 지원 방법.
- 제1항에 있어서,상기 유스케이스 분석표는 기능번호, 단위 유스케이스 명, 요구사항 관련번호, 수행자, 중요 품질 속성, 관련 유스케이스 다이어그램, 관련 시스템 구조 그래프 요소 명 중 적어도 하나를 포함하는 것을 특징으로 하는 임베디드 시스템 프로토타입 개발 지원 방법.
- 제1항에 있어서, 상기 아키텍처 설계부는,상기 사용자로부터 입력된 상기 시스템의 소프트웨어 및/또는 하드웨어의 각 구성 요소를 분석하여 계층 구조를 갖는 시스템 구조 개념 그래프를 생성하는 시스템 구조 개념 그래프 생성부;상기 시스템 구조 개념 그래프 생성부에서 생성한 시스템 구조 개념 그래프에 표시된 구성 요소에 따라 상기 시스템의 구조적인 특성을 분석하여 시스템 구조 그래프를 생성하고, 상기 생성한 시스템 구조 그래프를 상기 요구명세 분석부에서 생성한 유스케이스 분석표에 반영하여 상기 유스케이스 분석표를 업데이트시키는 시스템 구조 그래프 생성부를 포함하는 것을 특징으로 임베디드 시스템 프로토타입 개발 지원 장치.
- 제1항에 있어서,상기 시스템 구조 그래프는 시스템을 구성하는 구성 요소, 구성 요소가 하드웨어가 담당하는지 또는 소프트웨어가 담당하는지에 관한 구분, 상호 연동되도록 종속적인 관계를 갖는 관련 구성 요소, 구조 개념 상하위에 포함되는 구성 요소, 관련 구성 요소와 데이터나 제어 정보를 주고 받기 위한 인터페이스를 포함하는 것을 특징으로 하는 임베디드 시스템 프로토타입 개발 지원 방법.
- 제1항 또는 제7항에 있어서, 상기 아키텍처 행위 정의부는,상기 시스템 구조 그래프 생성부에서 생성한 시스템 구조 그래프에 정의된 종속 구성 요소 중 함수 정보를 이용하여 상기 시스템의 기능을 수행하기 위한 수행 흐름을 정의하는 활동도 편집부;상기 활동도 편집부에서 정의된 수행 흐름의 동작을 시작하는 구성 요소와 그 구성 요소에서 호출되는 함수, 도달 가능한 다른 구성 요소로의 수행 로직을 정의하는 순차도 편집부를 포함하는 것을 특징으로 하는 임베디드 시스템 프로토타입 개발 지원 장치.
- 제1항에 있어서, 상기 통합 구현부는,상기 아키텍처 설계부에서 정의된 구성 요소가 상기 아키텍처 행위 정의부에서 정의된 행위 정보에 따라 동작되도록 코드를 생성하는 코딩부;상기 코딩부에서 생성된 코드를 호스트 환경에서 수행될 수 있는 실행 파일로 변환하는 컴파일러;상기 컴파일러에 의해 변환된 코드에 대해 디버깅을 수행하는 디버거를 포함하는 것을 특징으로 하는 임베디드 시스템 프로토타입 개발 지원 장치.
- 제1항에 있어서, 상기 테스트부는,상기 시스템을 구성하는 하드웨어와 소프트웨어 정보가 설계된 수행 범위 내에서 정상 동작하는지를 평가하기 위하여 테스트 케이스를 입력 받는 테스트 케이스 정의부;상기 테스트 케이스 정의부에서 입력된 테스트 케이스에 따라 수행 흐름과 점검할 결과값을 설계하는 테스트 케이스 생성부;상기 테스트 케이스 정의부에서 분석된 테스트 케이스를 편집하여 테스트 데이터를 설계하고, 테스트 수행을 통해 생성된 로그 파일의 분석 정보를 문서화하는 테스트 계획/결과서 편집부를 포함하는 것을 특징으로 하는 임베디드 시스템 프로토타입 개발 지원 장치.
- 사용자로부터 입력된 요구 사항 정보를 이용하여 요구 분석표를 생성하는 단계;상기 생성된 요구 분석표와 상기 사용자로부터 입력된 유스케이스 정보를 이용하여 유스케이스 분석표를 생성하는 단계;상기 사용자로부터 입력된 소프트웨어 및/또는 하드웨어 구조와 각 구조에 대한 구성 요소를 분석하여 소프트웨어와 하드웨어 각각의 아키텍처 구조를 설계하고, 상기 설계된 아키텍처 구조를 상기 생성된 유스케이스 분석표에 반영하여 상기 유스케이스 분석표를 업데이트시키는 단계;상기 설계된 각 아키텍처 구조 내 구성 요소 간의 행위를 설계하는 단계;상기 설계된 아키텍처 구조와 행위가 설계된 대로 시스템에서 수행되도록 코드를 구현하는 단계;및상기 설계된 하드웨어와 소프트웨어가 설계된 수행 범위 내에서 정상 동작 가능한지의 여부를 테스트하는 단계를 포함하는 것을 특징으로 하는 임베디드 시스템 프로토타입 개발 지원 방법.
- 제11항에 있어서,상기 요구 사항 정보는 텍스트 형태로 입력되는 것을 특징으로 하는 임베디드 시스템 프로토타입 개발 지원 방법.
- 제11항에 있어서,상기 요구 분석표는 상기 사용자에 의해 입력된 요구 사항 정보와 요구 사항 번호로 구성된 것을 특징으로 하는 임베디드 시스템 프로토타입 개발 지원 방법.
- 제11항에 있어서,상기 유스케이스 정보는 텍스트 및/또는 다이어그램 형태로 입력되는 것을 특징으로 하는 임베디드 시스템 프로토타입 개발 지원 방법.
- 제11항에 있어서,상기 유스케이스 분석표는 기능번호, 단위 유스케이스 명, 요구사항 관련번호, 수행자, 중요 품질 속성, 관련 유스케이스 다이어그램, 관련 시스템 구조 그래프 요소 명 중 적어도 하나를 포함하는 것을 특징으로 하는 임베디드 시스템 프로토타입 개발 지원 방법.
- 제11항에 있어서,상기 사용자로부터 입력된 소프트웨어 및/또는 하드웨어 구조와 각 구조에 대한 구성 요소를 분석하여 소프트웨어와 하드웨어 각각의 아키텍처 구조를 설계하고, 상기 설계된 아키텍처 구조를 상기 생성된 유스케이스 분석표에 반영하여 상기 유스케이스 분석표를 업데이트시키는 단계는,상기 사용자에 의해 입력된 소프트웨어 및/또는 하드웨어 구조와 각 구조에 대한 구성 요소를 이용하여 시스템 구조 개념 그래프를 생성하는 단계;상기 생성된 시스템 구조 개념 그래프에 표시된 구성 요소에 따라 시스템의 구조적인 특성을 분석하여 시스템 구조 그래프를 생성하는 단계;상기 생성된 시스템 구조 그래프를 상기 유스케이스 분석표에 반영하여 상기 유스케이스 분석표를 업데이트시키는 단계를 포함하는 것을 특징으로 하는 임베디드 시스템 프로토타입 개발 지원 방법.
- 제16항에 있어서,상기 시스템 구조 개념 그래프는 메타 구조인 것을 특징으로 하는 임베디드 시스템 프로토타입 개발 지원 방법.
- 제16항에 있어서,상기 시스템 구조 개념 그래프는 하드웨어 구조 개념 그래프와 소프트웨어 구조 개념 그래프를 포함하는 것을 특징으로 하는 임베디드 시스템 프로토타입 개발 지원 방법.
- 제16항에 있어서,상기 시스템 구조 그래프는 시스템을 구성하는 구성 요소, 구성 요소가 하드웨어가 담당하는지 또는 소프트웨어가 담당하는지에 관한 구분, 상호 연동되도록 종속적인 관계를 갖는 관련 구성 요소, 구조 개념 상하위에 포함되는 구성 요소, 관련 구성 요소와 데이터나 제어 정보를 주고 받기 위한 인터페이스 중 적어도 하나를 포함하는 것을 특징으로 하는 임베디드 시스템 프로토타입 개발 지원 방법.
- 제11항 또는 제19항에 있어서,상기 설계된 각 아키텍처 구조 내 구성 요소 간의 행위를 설계하는 단계는,상기 시스템 구조 그래프에서 정의된 종속 구성 요소 중 함수 정보를 이용하여 시스템의 기능을 수행하기 위한 수행 로직을 정의하는 단계;상기 정의된 수행 로직의 동작을 시작하는 구성 요소와 그 구성 요소에서 호출되는 함수, 도달 가능한 다른 구성 요소로의 수행 로직을 설계하는 단계를 특징으로 하는 임베디드 시스템 프로토타입 개발 지원 방법.
- 제20항에 있어서,상기 수행 로직은 호출 함수, 전달되는 함수 파라미터의 타입과 실제 값, 시 간 제약 사항, 완료된 하드웨어 구성 요소의 이전 상태 정보, 하드웨어의 명령어(instruction)로의 매핑 정보와 함께 정의되는 것을 특징으로 하는 임베디드 시스템 프로토타입 개발 지원 방법.
- 제11항에 있어서,상기 설계된 아키텍처 구조와 행위가 설계된 대로 시스템에서 수행되도록 코드를 구현하는 단계는,상기 구현된 코드를 컴파일하여 분석하는 단계;상기 아키텍처 구조와 행위가 설계된 대로 기능을 수행하는지를 판단하고, 결함이 있는 경우, 결함 원인을 찾는 단계를 더 포함하는 것을 특징으로 하는 임베디드 시스템 프로토타입 개발 지원 방법.
- 제11항에 있어서,상기 설계된 하드웨어와 소프트웨어가 설계된 수행 범위 내에서 정상 동작 가능한지의 여부를 테스트하는 단계는,상기 하드웨어와 소프트웨어가 설계된 수행 범위 내에서 정상 동작하는 지를 평가하기 위한 테스트 케이스를 정의하는 단계;상기 테스트 케이스에 표현된 테스트할 함수 호출 범위와 대상 모듈에 대한 호출 함수, 입력 데이터, 예측 결과값을 이용하여 테스트 프로그램으로 변환하는 단계;상기 변환된 테스트 프로그램의 테스트 수행을 통해 생성된 로그 파일의 분석 정보를 테스트 결과로 출력하는 단계를 포함하는 것을 특징으로 하는 임베디드 시스템 프로토타입 개발 지원 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060064259A KR100808257B1 (ko) | 2005-12-05 | 2006-07-10 | 임베디드 시스템 프로토타입 개발 지원 장치 및 방법 |
US11/633,274 US20070129931A1 (en) | 2005-12-05 | 2006-12-04 | Apparatus and method for supporting prototype development of embedded system |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20050117697 | 2005-12-05 | ||
KR1020050117697 | 2005-12-05 | ||
KR1020060064259A KR100808257B1 (ko) | 2005-12-05 | 2006-07-10 | 임베디드 시스템 프로토타입 개발 지원 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070058954A true KR20070058954A (ko) | 2007-06-11 |
KR100808257B1 KR100808257B1 (ko) | 2008-02-29 |
Family
ID=38119858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060064259A KR100808257B1 (ko) | 2005-12-05 | 2006-07-10 | 임베디드 시스템 프로토타입 개발 지원 장치 및 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20070129931A1 (ko) |
KR (1) | KR100808257B1 (ko) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101219535B1 (ko) * | 2011-04-28 | 2013-01-10 | 슈어소프트테크주식회사 | 코드 컨버팅 장치, 방법 및 컴퓨터 판독 가능한 기록 매체 |
KR101274977B1 (ko) * | 2011-10-24 | 2013-06-17 | 서강대학교산학협력단 | 임베디드 시스템 내 유스케이스에 대한 가치연산방법 |
WO2014059207A1 (en) * | 2012-10-12 | 2014-04-17 | Baker Hughes Incorporated | Method and system to automatically generate use case sequence diagrams and class diagrams |
KR20160044305A (ko) * | 2014-10-15 | 2016-04-25 | 삼성에스디에스 주식회사 | 코드의 단위 테스트를 위한 장치 및 방법 |
KR20160112755A (ko) * | 2015-03-20 | 2016-09-28 | 한국전자통신연구원 | 임베디드 소프트웨어의 자가 적응형 설계 방법 |
WO2017209425A1 (ko) * | 2016-06-01 | 2017-12-07 | 구자철 | 사용자 중심의 기능 가변식 컴파일링 시스템 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8484629B2 (en) | 2007-05-24 | 2013-07-09 | Microsoft Corporation | Programming model for modular development |
US20140279839A1 (en) * | 2013-03-14 | 2014-09-18 | Sap Ag | Integration of transactional and analytical capabilities of a database management system |
CN110096261A (zh) * | 2019-04-29 | 2019-08-06 | 杭州杉石科技有限公司 | 嵌入式***架构设计方法、装置和设备 |
CN111309368B (zh) * | 2020-03-12 | 2023-05-16 | 超越科技股份有限公司 | 一种基于b/s框架开发信息管理方法,***,设备及可读存储介质 |
CN112699031B (zh) * | 2020-12-29 | 2023-07-21 | 中国航空工业集团公司西安飞机设计研究所 | 一种分区软件架构的测试方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870588A (en) * | 1995-10-23 | 1999-02-09 | Interuniversitair Micro-Elektronica Centrum(Imec Vzw) | Design environment and a design method for hardware/software co-design |
US6810373B1 (en) * | 1999-08-13 | 2004-10-26 | Synopsis, Inc. | Method and apparatus for modeling using a hardware-software co-verification environment |
US6230114B1 (en) * | 1999-10-29 | 2001-05-08 | Vast Systems Technology Corporation | Hardware and software co-simulation including executing an analyzed user program |
JP2001318812A (ja) * | 2000-05-11 | 2001-11-16 | Nec Corp | 性能評価モデル生成装置および性能評価モデル生成方法 |
KR100426312B1 (ko) * | 2001-12-28 | 2004-04-08 | 한국전자통신연구원 | 컴포넌트 기반 소프트웨어 개발 시스템의 컴포넌트식별장치 및 그 방법과 이에 관련된 프로그램의 기록매체 |
US20030135842A1 (en) * | 2002-01-16 | 2003-07-17 | Jan-Erik Frey | Software development tool for embedded computer systems |
WO2004019239A2 (en) * | 2002-08-21 | 2004-03-04 | Windmill Microsystems Holding Bv | Object-oriented design method for the time-effective and cost-effective development of production-grade embedded systems based on a standardized system architecture |
KR20040022066A (ko) * | 2002-09-06 | 2004-03-11 | 엘지전자 주식회사 | 임베디드 시스템용 프로토타이핑 장치 |
US20050144529A1 (en) * | 2003-10-01 | 2005-06-30 | Helmut Gotz | Method for defined derivation of software tests from use cases |
JP4100630B2 (ja) * | 2004-05-14 | 2008-06-11 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Uml設計方法 |
JP4012559B2 (ja) * | 2004-12-01 | 2007-11-21 | 松下電器産業株式会社 | 記録媒体、再生装置、プログラム、再生方法、集積回路 |
-
2006
- 2006-07-10 KR KR1020060064259A patent/KR100808257B1/ko active IP Right Grant
- 2006-12-04 US US11/633,274 patent/US20070129931A1/en not_active Abandoned
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101219535B1 (ko) * | 2011-04-28 | 2013-01-10 | 슈어소프트테크주식회사 | 코드 컨버팅 장치, 방법 및 컴퓨터 판독 가능한 기록 매체 |
KR101274977B1 (ko) * | 2011-10-24 | 2013-06-17 | 서강대학교산학협력단 | 임베디드 시스템 내 유스케이스에 대한 가치연산방법 |
WO2014059207A1 (en) * | 2012-10-12 | 2014-04-17 | Baker Hughes Incorporated | Method and system to automatically generate use case sequence diagrams and class diagrams |
KR20160044305A (ko) * | 2014-10-15 | 2016-04-25 | 삼성에스디에스 주식회사 | 코드의 단위 테스트를 위한 장치 및 방법 |
CN105528287A (zh) * | 2014-10-15 | 2016-04-27 | 三星Sds株式会社 | 用于代码的单元测试的装置及方法 |
KR20160112755A (ko) * | 2015-03-20 | 2016-09-28 | 한국전자통신연구원 | 임베디드 소프트웨어의 자가 적응형 설계 방법 |
WO2017209425A1 (ko) * | 2016-06-01 | 2017-12-07 | 구자철 | 사용자 중심의 기능 가변식 컴파일링 시스템 |
Also Published As
Publication number | Publication date |
---|---|
KR100808257B1 (ko) | 2008-02-29 |
US20070129931A1 (en) | 2007-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100808257B1 (ko) | 임베디드 시스템 프로토타입 개발 지원 장치 및 방법 | |
US9754059B2 (en) | Graphical design verification environment generator | |
US5926638A (en) | Program debugging system for debugging a program having graphical user interface | |
US7895575B2 (en) | Apparatus and method for generating test driver | |
KR100915762B1 (ko) | 통합 개발 환경에서의 의사 번역 | |
EP2850529A2 (en) | System and methods for generating and managing a virtual device | |
WO2007001108A1 (en) | System for providing feature-oriented software product line engineering environment | |
EP3842975B1 (en) | Syntactical change-resistant code generation | |
US20080276221A1 (en) | Method and apparatus for relations planning and validation | |
KR101029332B1 (ko) | 모바일 소프트웨어 테스트 장치 및 방법 | |
US8527254B2 (en) | Simulator engine development system and simulator engine development method | |
US20140214396A1 (en) | Specification properties creation for a visual model of a system | |
CN112416318A (zh) | 微服务开发方法、装置、存储介质及电子设备 | |
KR20080055913A (ko) | 집적회로 디자인 시뮬레이션을 위한 어써션의 개발 방법 및시스템과 장치 | |
WO2020039900A1 (ja) | 情報処理装置およびプログラム | |
US9280627B1 (en) | GUI based verification at multiple abstraction levels | |
CN111143228B (zh) | 基于决策表法的测试代码生成方法及装置 | |
KR20070058943A (ko) | 소프트웨어 아키텍처 평가 장치 및 방법 | |
KR20090099977A (ko) | 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법 및장치 | |
JP5056493B2 (ja) | 仮想ソフトウェア生成装置 | |
JP5319643B2 (ja) | ソフトウェアプロダクトライン開発支援装置およびその方法 | |
WO2016001982A1 (ja) | テストデータ生成支援装置、及びテストデータ生成支援方法 | |
JP2011510392A (ja) | マルチチャネルおよびマルチプラットフォームを支援する使用者インタフェースモデル生成システム | |
JP2016126700A (ja) | プログラム検証装置、プログラム検証方法及びプログラム検証プログラム | |
KR100621576B1 (ko) | 내장 시스템 소프트웨어를 테스트하기 위한 시스템 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
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: 20110131 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20111208 Year of fee payment: 20 |