1. 서 론
최근 자동차 산업을 비롯하여 항공, 철도, 원자력, 의료, 로봇 등의 산업 전반에 적용할 임베디드 소프트웨어는 기능 안전성에 대한 이슈가 중요한 화두로 떠오르고 있다. 기능 안전성이란 시스템이 인명, 경제적 피해를 주지 않도록 안전하게 설계, 구현, 운 용됨을 나타내는 성질이다. 이러한 안전요구 시스템은 그 기능이 복잡해짐과 비용의 절감을 위하여 과거 하드웨어 중심의 발전 에서 소프트웨어 중심의 발전으로 변화 되어감에 따라 소프트웨어 중요성이 급격하게 증대되었다.
4차 산업혁명 시대를 맞아 IOT 장비들과 융합이 필수 요소이며 AI와 같은 미래 혁신기술은 경영자들에게 전혀 새로운 경영 환경에 도전하기를 요구하고 있으므로, 이러한 불확실성을 슬기롭게 헤쳐나가기 위한 돌파구로 신사업을 개발하고 신규 벤처를
Research Article,
pISSN : 2287-8920
https://doi.org/10.22716/sckt.2020.8.2.013
임베디드 소프트웨어 개발 방법에 관한 연구
신현정1, 송진희2*
1신한대학교 교수, 2신한대학교 교수
A Study on Embedded Software Development Method
(TBESDM : Two-Block Embedded Software Development Method)
Hyun Jeong Shin1 and Jin Hee Song2
1Professor, School of IT Convergence Engineering, Shinhan Universty
2Professor, School of IT Convergence Engineering, Shinhan Universty
2
Corresponding author: [email protected]
Received June 18, 2020; Revised June 18, 2020; Accepted June 21, 2020
ABSTRACT
기존의 소프트웨어 공학 기법들은 하드웨어 구조와 운영체제 같은 물리적 제약 사항에 대한 기술 부분이 상세하지 않다. 따라서 기존 의 소프트웨어 공학 기법에 의한 임베디드 시스템 개발에 어려움이 존재한다. 본 논문에서는 임베디드 소프트웨어 개발 방법에서 하 드웨어 블록과 소프트웨어 블록을 구분한 개발 방법(TBESDM)을 제시하였으며, 임베디드 소프트웨어 개발 단계별 생성할 하드웨어 블록 분석 산출물과 소프트웨어 산출물들을 제시하였다. 또한 본 논문에서 제안한 방법을 캡스톤 디자인에 직접 적용하여 사례 연구 를 수행하였으며, 사례 연구에서는 단위 테스트 및 통합 테스트에 3-V 모델을 적용하였다. 논문에서 제시한 3-V 모델은 하드웨어 구 현, 소프트웨어, 통합 시스의 3단계 테스트를 위한 모델이다.
General software engineering techniques are not detailed in the description of physical constraints for hardware architecture and operating system. Therefore, it is difficult to develop an embedded system using general software engineering techniques. In this paper, we proposed a development method(TBESDM) that seprates hardware blocks and software blocks in embedded software development methods. We presente analysis outputs of hardware block and software outputs to be generated in each stage of embedded software development. In addition, a case study was conducted by applying the method proposed in this paper to the capstone design.
We applied the 3-V test model to the capstone design. The 3-V model presented in this paper is a model for three stages of hardware implementation, software, and integrated test.
Keywords: Embedded software development method, Hardware block, Software block, 3-V model, Software development method
Ⓒ 2020 by The Society of Convergence Knowledge. This is an Open Access article distributed under the terms of the Creative Commons Attribution
Non-Commercial License (http://creativecommons.org/licenses/by-nc/4.0/) which permits unrestricted non-commercial use, distribution, and reproduction in
any medium, provided the original work is properly cited.
창업할 기업가(Entrepreneur) 양성이 필요하다. 정부 또한 저성장 기조와 청년실업 문제를 타개하기 위해서는 4차 산업혁명 시 대에 맞는 신생 벤처를 육성해야 한다는 입장이다. 또한 일자리를 창출할 수 있는 스타트업 기업의 역할을 중요하게 보고, 혁신 성장 중점 추진 사항으로 창업 인재 양성에 주력하고 있다.
이러한 창업과 경영은 모두 주된 기술은 컴퓨터와 융합에 의해서 시작되며 융합을 위해서는 컴퓨터 기술과 IOT 장비들과 융 합하는 것에 있다. 여기에는 소자본으로 신생 벤처창업과 스타트 기업들에게는 임베디드 소프트웨어가 필요하게 되며 이들을 위한 효율적인 소프트웨어 개발 방법(Embedded Software Development Method)이 필요하다.
논문의 구성은 2장에서 임베디스 소프트웨어 연구 동향을 살펴보고, 3장에서 기존의 소프트웨어 개발 프로세스와 새롭게 제 시한 임베디드 소프트웨어 개발 프로세스와 단계별 출력물들을 제시하며, 4장에서는 제시한 개발 방법(TBESDM)을 캡스톤 디 자인에 적용하였다.
2. 관련연구
2.1 임베디드 소프트웨어 연구 동향
임베디드 소프트웨어란 임베디드 시스템의 목적과 기능이 발휘될 수 있도록 구현된 소프트웨어로 운영체제와 특정 목적에 관 련된 응용 프로그램으로 나눌 수 있다. 현재 사용하고 있는 임베디드 운영체제들은 대부분 실시간 운영체제들이며, WindowsCE, Embedded Linux, RT-Linux, Embedded Java와 같이 실시간적인 요소를 그다지 충족하지 않는 운영체제들도 존재한다[1].
2.1.1 미국의 개발 동향
Yamacraw는 광대역 전기 통신 산업에서의 획기적인 기술 발전 발전을 도모하기 위해 Gerorgia University Institute를 중심 으로 1999년부터 시도된 전략적 사업으로 현대의 선진 소프트웨어 공학 기술들을 임베디드 소프트웨어 개발 영역으로 도입하 기 위한 효율적인 통합 환경을 구축하였다. 즉, 기존 자산들의 재사용 접근과 컴포넌트 기반 개발 방법을 적용함으로써 지속적인 향상 변환이 가능하며, 갱신이 예상 가능한 높은 품질의 임베디드 소프트웨어 제품 생산을 가능하도록 하였다. 이를 위해 다중제 품의 생산 비용이 개별적으로 단일 제품을 개발하는 비용의 합보다 적을 경우, 스코프의 경제성을 실현시킬 수 있는 다중 제품들 의 생산을 위한 임베디드 제품 계열 체제를 개발하였다. 또 다른 미국의 임베디드 소프트웨어 연구 동향은 MoBIES (Model Based Integration of Embedded Software)이다. 이는 임베디드 시스템을 위한 프로세스 기반 소프트웨어 컴포넌트 설계를 위해 DARPA (Defense Advanced Research Projects Agency)가 지원하는 분산 실시간 임베디드(DRE : Distributed Real-time and Embedded) R&D의 일환으로 응용 도메인마다 가지는 특정한 요구에 따라서 시스템 컴포넌트들을 조립하거나 맞추는 차세대 시스템 소프트웨어 설계 기술 개발을 목적으로 한다. 임베디드 시스템 개발은 2개의 작업 영역으로 구성되는데, 첫 번째는 기계 및 전자공학, 자동 제어 등에서 광범위하게 적용될 수 있는 기술들을 실현하기 위한 설계 도구 개발을 목표로 임베디드 시스템을 위한 프로세스 기반의 소프트웨어 컴포넌트 개발을 위한 작업이다. 두 번째는 임의의 도구를 통합하기 위한 Open Tool Integration Framework를 개발하는 작업으로 제품의 전문성을 부각할 수 있는 임베디드 소프트웨어 개발을 위해 시스템 요구를 물리적 모델과 통합할 수 있는 특별한 도구 생성을 위한 것이다. 이것은 임베디드 시스템을 위해 이용할 수 있는 개별 기능 및 이 를 담당하는 도구들의 통합 환경을 구축한다.
2.1.2 유럽의 기술 개발 동향
MOOSE 프로젝트는 유럽의 3개국(스페인, 네덜란드, 핀란드)의 13개 기관이 임베디드 시스템의 체계적인 개발과 관리를 위
한 방법론을 만들 목적으로 진행 중인 프로젝트로 일반적인 임베디드 시스템 개발 프레임워크를 만들고 이 프레임워크를 다양 한 임베디드 소프트웨어 프로젝트에 적용해 검증하는 것이 최종 목표이다. 시스템 및 소프트웨어 공학, 요건 공학, 제품 품질 및 소프트웨어 프로세스 개선 방법론을 임베디드 도메인을 위한 프레임워크 및 개선 도구에 통합하며, 이 프레임워크가 임베디드 소프트웨어 프로젝트의 구조화, 관리 및 평가에 유용하게 활용될 수 있도록 한다. 또한 산업적인 임베디드 소프트웨어에 적용해 봄으로써 프레임워크 운영상의 장점을 검증한다. 또 다른 기술 개발 동향으로 KOALA 프로젝트가 있다. 이프로젝트는 네덜란 드의 필립사에서 짧은 개발 기간 안에 큰 다양성을 실현하는 가전 소비 제품 생산을 위해서 수행한 프로젝트로서 기존 제품 기능 들의 “예상치 못한” 결함으로 새로운 제품을 생산할 수 있도록 각 제품들을 구성하기 위한 컴포넌트 모델 개발이 필요하였다. 따 라서 급격히 변하는 사용자 요구의 다양성을 지원하고 MOOSE의 규칙을 따르는 임베디드 시스템의 시장 직시성을 충족시킬 수 있는 방안으로 임베디드 시스템의 신뢰성, 융통성, 재사용성을 보장하는 KOALA 컴포넌트 모델을 개발하게 되었다.
2.1.3 국내의 연구 동향
국내에서도 차세대 IT 산업을 이끌어 나갈 주요 핵심 분야로서 임베디드 기술에 대한 중요성을 크게 인식하고 있다. 이를 위해 정부 및 국책 연구 기관을 중심으로 통신 정보기술과 인프라 기술을 더욱 성장시킬 수 있는 신산업 동력으로 연구 자원의 투자가 크게 증가하고 있는 추세이며. 산업체에서도 정부 연구 기관과의 협력을 체결하여 홈 서버 및 모바일 제품 생산의 핵심 기술로 임베디드 기술 상품화에 대한 노력이 활발히 진행되고 있으며, 실시간 시스템과 운영체제 시스템 개발에서 진행해 온 세부 기술 들을 임베디드 소프트웨어 개발을 확장 적용하기 위한 연구가 진행되고 있다. 이와 같이 통신, 전자, 금융, 항공, 국방, 의료 등 임 베디드 소프트웨어 제품의 활용 범위가 급격히 증가됨에 따라 소프트웨어 공학 기반의 임베디드 소프트웨어 기술 적용에 대한 요구가 점차 확산되고 있다.
2.2 소프트웨어 개발 생명주기
소프트웨어 프로세스는 소프트웨어 제품을 생산하기 위한 행위들과 이들의 결가물들의 집합이다. 소프트웨어 공 CASE (Computer-Aided Software Engineering) 도구들은 아래의 4가지 행위(action)들을 수행하는데 사용되는 보조 도구이다. 모든 소프트웨어 프로세스들에는 다음과 같은 4가지 공통 행위들로 구분된다[1-3].
(1) 소프트웨어 명세 - 소프트웨어 기능과 소프트웨어의 운영상의 제약조건을 정의한다.
(2) 소프트웨어 개발 - 명세를 만족하는 소프트웨어를 개발해야 한다.
(3) 소프트웨어 검증 - 사용자가 원하는 소프트웨어인지를 확인해야 한다.
(4) 소프트웨어 진화 - 사용자의 요구사항 변화를 만족하게 소프트웨어는 변경되어야 한다.
2.3 임베디드 시스템 개발 프로세스
임베디드 시스템 개발 프로세스는 6단계로 구분 할 수 있으며 각 단계에서 대응하는 검증 절차들을 거친다. 특히 임베디드 시 스템은 설계 단계에서 하드웨어 설계, 소프트웨어 설계 그리고 필요에 따라 인터페이스 영역설계 단계가 하드웨어‧소프트웨어 동시 설계 개념으로 병행하여 수행되어야 한다.
다음 그림은 임베디드 시스템 개발 프로세스를 보여주고 있다[1,2]. 임베디드 시스템 설계에는 기본적으로 하드웨어 요소와 소 프트웨어 요소가 동시에 포함되므로 개발자들은 어떤 기능을 하드웨어 분야에서 해결해야 하고, 어떤 부분을 소프트웨어 분야 에서 해결해야 할 것인지 가장 먼저 결정해야 한다. 특히 최근 들어 하드웨어의 소프트웨어화와 소프트웨어의 하드웨어화를 위
한 기술이 발전하면서, 이러한 하드웨어 기능과 소프트웨어 기능의 명쾌한 분리가 쉽지 않은 경우도 종종 발생한다. 따라서 이러 한 하드웨어와 소프트웨어의 기능 분리 문제는 정확한 해법이 있는 것이 아니고 단지 최적의 문제이며, 많은 임베디드 시스템들 이 다음과 같은 공통적인 문제점을 내포하고 있다[4].
•개발 단가의 민감성
•최고의 기술력 혹은 가능성
•비표준화
•시장에서 유사 제품 경쟁
•독점적 기술
이러한 상충된 요구들은 최적으로 설계해야 하는 임베디드 시스템 제품 개발의 저해 요소로 작용하기도 한다. 특히 개발하려 는 임베디드 시스템을 위한 CPU의 선택은 하드웨어/소프트웨어 기능 분리 문제 또는 개발 도구 선정 문제 등에 직접적으로 영 향을 둔다. 일단 하드웨어 및 소프트웨어 기능 분리에 설계가 완료되면, 그 다음 단계는 Fig. 1에서와 같이 분리 개발된 두 요소 기능을 통합하는 과정이며, 매우 고난도의 개발 방법론과 개발 도구를 요구한다[5,6].
Fig. 1. Embedded system development process
3. 2블록 임베디드 시스템 개발 방법
제안한 임베디드 시스템의 개발 방법 TBESDM은 하드웨어 개발 블록과 와 소프트웨어 개발 블록을 분리하여 진행할 것을 제 안한다. Fig. 2는 TBESDM의 블록 구조를 보여주고 있다. 이러한 단계별로 분리 진행 함으로써 임베디드 시스템에 특성에서 나 타나는 다양한 플랫폼에 적용되는 임베디드 소프트웨어 개발을 단순하게 진행할 수 있는 장점과 향후 테스트 과정도 단순화 할 수 있다는 장점이 있다.
Fig. 2. TBESDM : Two-block embedded software development method
3.1 하드웨어 블록
임베디드 소프트웨어는 그 특성상 어떤 플랫폼에 종속되어 실행되는 소프트웨어를 말한며 개발된 소프트웨어가 실행되기 위 해서는 하드웨어의 특성을 고려하지 않고 소프트웨어 개발에는 한계가 있다. 따라서 소프트웨어 요구분석은 하드웨어 요구분석 을 고려하여 진행되어야 한다는 것을 의미한다. 소프트웨어 요구분석에 앞서 하드웨어 요구분석이 선행되어야 하며 하드웨어 설계가 선행되어야 한다. 하드웨어 개발 블록에서 수행해야 할 일들은 H/W 요구분석, H/W Architecture 선정, 제약조건 정의가 필요하다. Tables 1, 2는 각 블록에서 생산되는 산출물을 나타내고 있다.
∙ 하드웨어 개발 블록의 산출물
Table 1. Output of software development blocks
단계 산출물
H/W 요구분석 - H/W 요구 분석서
H/W 선정 - 운영체제(OS) 선정서
제약조건 - 당위 모듈 설계 명세서 - H/W 제약조건 기술서
H/W 테스팅 - H/W 테스트 설계서
3.2 소프트웨어 블록
개발할 임베디드 소프트웨어는 UML의 각종 다이어그램을 사용하며, 요구사항을 표현에는 Use Case 다이어그램, Activity 다이어그램, 소프트웨어의 정적 구조를 표현하기 위한 Class 다이어그램, 그리고 시스템의 동적 구조를 표현하기 위한 Sequence 다이어그램과 State 다이어그램을 사용한다.
∙ 소프트웨어 개발 블록의 산출물
Table 2. Output of software development blocks
단계 산출물
S/W 방법론 선정 - UML 방법론
S/W 요구분석 - Use Case 다이어그램
S/W 설계 - Activity 다이어그램 - Class 다이어그램
- Sequence 다이어그램 - State 다이어그램
S/W 구현 - java, c 언어
S/W 테스팅 - SW 테스트 설계서 - 테스트 CASE 기술서
- 테스트 코드
3.3 단위 테스트 및 통합 테스트(Integration Testing)
단위 테스트는 임베디드 시스템의 단위 모듈들이 설계 명세서의 요건에 만족하는 지 확인하는 것이다. 따라서 각각의 단위 모 듈이 정의되고, 각각의 단위 모듈들이 제품을 구동하기 위한 최소 기능 수행 여부에 대한 정확성과 적합성을 검증해야 한다. 일 반적으로 단위 테스트는 개발자의 개발 환경에서 수행하게 되며, 개별적인 단위 모듈 구동 문제에 대한 결함을 제거하는 행위이 다. 단위 테스트의 대상인 단위별 기준은 산업 도메인 특성을 고려한 조직 및 대상 프로젝트에 따라 다를 수 있으며, 일반적으로 는 모듈(module), 함수(fuction), 프로그램(program), 컴포넌트(component), 오브젝트(object), 클래스(class) 등의 항목을 정의 할 수 있다.
단위 테스트 대상 항목을 독립적으로 실행시키기 위하여 테스트 스텁(test stub) 및 테스트 드라이버(test driver)를 구성하여 모의 호출 관계를 검증한다. 프로젝트 테스트 계획서, 단위 테스트 계획서, 요구 사항 명세서, 테스트 대상 코드 단위 명세서, 상 세 설계서, 프로그램 라이브러리 등을 이용하여 단위 테스트 케이스를 설계하여 개발 초기 단계에서 결함(defect)을 가능한 많이 발견하도록 한다. 이렇게 하면 Table 3에서 나타내고 있는 바와 같이 개발 기간 중 디버깅 시간을 단축할 수 있으며, 명확히 식별 가능한 형태의 결함을 발견 및 제거할 수 있다.
Table 3. Output of software development blocks
결함 식별 가능한 형태
1 잘못된 논리 연산자 및 잘못된 순서에 따른 계산결과
2 서로 다른 형태의 데이터 타입
3 잘못된 변수(명) 선언
4 수행 완료 후 계속 수행되는 반복 조건문
5 불일치 또는 부적절한 코드
6 불일치한 데이터 타입
7 초기화 오류
8 비기능 품질 특성 검증
9 소스코드 구조, 제어 흐름 검증
단위 테스트 수행은 수작업(manual) 방식과 자동화(automatic) 방식으로 구분할 수 있으며, 현재 임베디드 소프트웨어 산업 계의 품질 안정성에 대한 Code Coverage를 만족시키기 위해서는 소프트웨어 테스트 자동화 방식이 필요하다. 임베디드 시스템 은 소프트웨어 실행 코드 외에 제품의 완성도가 점차적으로 확인될 수 있는 순서로 개발되어야 한다. 이를 위해 본 논문에서는
임베디드 시스템 개발 테스트를 위한 3-V 모델을 제안한다. 제안 모델은 하드웨어 블록 테스트, 소프트웨어 블록 테스트를 수행 한 후, 최종적으로 하드웨어와 소프트웨어의 통합 테스트를 수행한다.
먼저, 시스템 모델을 PC상에서 개발하고 요구 사항에 정의된 수행이 정확한지 시뮬레이션을 수행한다. 수행 모델이 정확하면 해당 모델에 대한 소스 코드를 생성하고 시제품에 적용시킨다. 이를 실제 타깃 장비나 하드웨어에 탑재시켜 실제 제품으로 점진 적으로 완성해 나간다. 이는 최종 완성된 제품을 다시 수정 또는 변경하는 것보다 시제품 완성 이전의 단위 모델들을 변경하는 것이 시간과 비용 절감 효과를 볼 수 있기 때문이다.
결론적으로 임베디드 컴포넌트나 시스템을 위해 V 형태의 하드웨어 블록 테스트, 소프트웨어 블록 테스트, 시스템 통합 테스 트 단계로 구분하고, 각 단계별 분석-설계-구현-시험 과정을 거치도록 하는 것이 본 논문에서 제안한 Fig.3의 3-V 모델이다.
Fig. 3. 3-V
모델시스템 통합 테스트 단계는 개발된 단위 모듈들을 결합해서 하나의 완성된 프로그램과 통합 기능을 수행하는 시스템으로 완성 하기 위한 과정으로 모듈 간 인터페이스와 관련된 결함들을 발견하고 제거하면서 개발 모듈들을 통합시키는 테스트 활동이다[6].
(1) 시스템 통합은 하드웨어와 소프트웨어를 모두 포함한다.
(2) 하드웨어와 하드웨어, 소프트웨어와 소프트웨어, 하드웨어와 소프트웨어 종속적 관계를 식별하고 통합 영역의 가용성, 시스템의 규모, 기존 시스템 및 신규 시스템 개발구조를 식별한다.
(3) 상향식 통합 방식, 하향식 통합 방식, 빅뱅 통합 방식에 따라 시스템 통합을 수행할 수 있다.
4. 임베디드 시스템 개발 방법의 적용 사례
본 연구에서는 아두이노를 이용한 자율/수동 로봇청소기 시스템을 개발하였다. 사용자 편의성을 고려하여 Bluetooth 모듈 기 반의 앱 통신으로 간편하게 조작할 수 있도록 했다. 버튼으로 신호를 송수신해 조작할 수 있도록 설계를 하였고, 자율수행 모드 의 청소로 지정한 시간동안 장애물을 피하며 청소할 수 있다. 또한 WiFi 통신을 이용한 카메라 모니터링과 이를 보조하는 LED 기능 등 수동조작 모드의 편의성을 돕는 부가기능도 탑재한다.
4.1 시스템 설계
Fig. 4는 본 시스템의 전체 구성도로, Bluetooth 통신과 WiFi 통신으로 모바일로 아두이노를 조작해 어떤 기능들을 수행하는 지 나타내고 있다.
Fig. 4. System configuration
앱을 켜고 Bluetooth와 Wifi를 연결하면 자율주행, 수동조작 2가지 모드를 수행할 수 있으며 수동조작 모드는 버튼을 통한 이 동과 방향 회전, 팬 작동을 제공하며, 자율수행 모드는 시작 시 팬을 작동 시키고 초음파 센서의 이용 거리 계산해 장애물을 감지 및 회피하며 사용자가 설정한 시간동안 청소를 수행한 뒤 종료한다. 편의 시스템으로 수동조작 모드를 돕기 위해 WiFi 통신이 가능한 상태에서 작동하는 카메라 모니터링의 영상 정보 제공과 LED 조명 작동 제공하며, 자율수행 모드 시간을 설정하는 타이 머 설정 기능을 제공한다.
4.2 하드웨어 및 소프트웨어 요구사항 분석
임베디드 개발 방법론으로 하드웨어 블록과 소프트웨어 개발 블록을 분리하여 진행한다. Fig. 3에서와 같이 단계별 분리 진행 에 따라 임베디드 시스템 특성에서 나타나는 다양한 플랫폼에 적용되는 임베디드 소프트웨어 개발을 단순하게 진행할 수 있는 장점과 테스팅 과정에서 하드웨어와 소프트웨어를 분리 수행할 수 있는 장점이 있다.
Table 4. Hardware requirements & Software requirements
하드웨어 요구사항 소프트웨어 요구사항
구분 세부사항 용도 구분 세부사항 용도
OS Window 10(64bit) 운영체제 개발 Bluetooth와 WiFi연결 네트워크 연결
개발 Arduino 컴파일러 개발 주행모드 설정 자율주행, 수동조작
개발 Android Studio 컴파일러
개발 자율주행 모드 팬 작동, 거리계산, 장애물 감지
및 회피, 사용시간 설정 개발 C/C++(Arduino) Arduino 개발 언어
개발 Java(Android) Mobile 개발 언어
개발 수동조작모드 WiFi 통신 기능, 모니터링 영상
정보 제공, LED 조명작동 기능, Server IEEE 802.11ac, IEEE 802.11n
기반 네트워크 환경 Mobile 통신
5. 결 론
임베디드 시스템은 일반적인 소프트웨어와 다르게 하드웨어, 소프트웨어, 운영 체제들로 구성된다. 기존의 소프트웨어 공학 적인 기법은 임베디드 시스템의 하드웨어와 운영체제에 관한 물리적 제약사항을 완벽하게 기술하고 있다. 따라서 임베디드 시 스템 상에서 실행되는 임베디드 소프트웨어는 기존의 소프트웨어 공학의 기법으로는 개발하기 어렵다.
본 논문에서는 임베디드 개발 방법은 하드웨어 블록과 와 소프트웨어 개발 블록을 분리 진행하는 TBESDM 개발 방법을 제안 하였다. 하드웨어와 소프트웨어를 단계별로 분리 진행하여 임베디드 시스템 개발 특성인 다양한 플랫폼에 적용과 테스트를 독 립적으로 수행할 수 있으며, 3-V 모델 테스트 방법을 적용하여 하드웨어와 소프트웨어 테스트를 분리 및 병행 실행할 수 있다.
또한 TBESDM을 활용한 캡스톤 디자인에 적용 과정을 보이고, 개발 단계별 산출물 목록들을 제시하였다.
향후 과제는 좀더 정형화된 블록별 작업 절차에 대한 정의와 각 블록별 산출물들에 대한 작성 방법에 관한 정의가 필요하며, 임베디드 소프트웨어 개발 툴, 단위 테스팅과 통합 테스트에 관한 연구가 필요하다.
Acknowledgement
※ 이 논문은 2018학년도 신한대학교 교수연구년연수제도에 의하여 연구된 논문.
References
1. 김행곤, 임베디드 소프트웨어 공학, 도서출판 그린, 2012.10.
2. 전상옥 외, “ESUML:UML 기반 임베디드 소프웨어 모델링 방법론” 한국정보처리학회, 제32회 추계학술 발표 논문집, 제 32권 제4호.
3. 이진호 외, “임베디드 소프트웨어 설계 명세서 개발”, 한국정보과학회, 학술발표 논문집, 제6호, pp. 212-215, 2011.
4. 이정림, 박사천, 권기현, “모델기반 임베디드 소프트웨어의 개발 경험”, 한국한국정보과학회 학술 발표 논문집, 31(1B), pp.
400-402, 2004.4.
5. 소프트웨어공학센터 경영지원팀, 임베디드 SW 개발방법론 Part 1: 임베디드 SW 개발 프로세스, 2012.7[16호].
6. https://jeongchul.tistory.com/138, 임베디드 시스템 개발 환경의 특징.