SPICE로 향하는 소프트웨어 모듈화

임베디드 시스템의 프로세스 개발에 대한 산업 표준과 규격들은 제한적인 조건들을 나타낸다. 오토모티브 산업에서 통합적인 개발 프로세스의 평가를 위해 몇 년 전부터 소위 SPICE(Software Process Improvment and Capability)라 불리는 ISO 규격 15504를 애플리케이션에 적용했다. ISO 규격 15504는 많은 유효한 품질 표준들, 예를 들어 TQM, ISO900x, CMM 그리고 Bootstrap 등이 결합돼 있다(그림 1).소프트웨어 디자인 표준에 대한 실수이러한 표준들은 특정한 소프트웨어 개발 프로세스의 정의와 진화를 돕는 탁월한 기반들이다. 그러나 이 표준들이 아직 디자인과 시스템 모듈화에 의한 도움을 제공하지 못하는 것도 사실이다. 임베디드 시스템 분야에서 UML 방식 기반의 시스템 개발을 위한 강력한 시도가 있었음에도 불구하고 8비트와 16비트 마이크로컨트롤러 분야는 이것과 빠르게 분리되고 있다. ‘패턴’의 이용 가능성은 다양한 시스템 요구의 기반으로 주어진 것이 아니다. 이 컨트롤러군을 위해 단지 적은 수의 C++컴파일러만이 있을 뿐이다.작거나 중간 정도의 시스템에서 C 또는 C++에 대한 소프트웨어의 설치를 위한 핵심 기반은 개발 시기, 간단한 대기 능력 그리고 높은 재사용 가능성에 대한 동시적인 이용에 의한 품질의 향상에 있다. 구조화된 개발에서 이는 모듈화와 기능들의 캡슐화를 통해 논리적인 통합에 도달할 수 있다.‘모듈 블록’은 쉽게 Variantenbildung(변형+그림)이 된다. 추가적으로 미래의 시스템에 대한 개발과 테스트에 대한 경비는 직접화 하는 과정과 표준 모듈을 위한 테스트의 필요성 때문에 낮아질 것이다. 이와 더불어 모듈화는 미래의 시스템을 개발하는데 있어서 개발 비용이 낮아지고 시장 도입시간도 짧아지는 추세이다.우선 모듈의 표준화는 디자인과 설치에 대한 추가 비용이 든다. 더욱이 종종 높은 기능 집적과 많은 인터페이스를 포함한 커다란 모듈의 통합은 재사용에 의해 추가 비용이 들어간다. 기능들을 개발함으로써 절약된 시간은 종종 통합이 이루어지는 동안 요구에 대한 적합성과 확장들을 통해서 다시 소모된다.오토모티브 표준의 선구자미래적인 시스템과 인터페이스를 모듈로 개발하기 위해서 새로운 표준이 지정돼야만 한다. 그 첫 번째 시도는 오토모티브 분야의 ‘AUTOSAR 그룹’에서 시작됐다. 자동차 제조업체와 공급업체의 연합은 자동차 제어 기기의 디자인을 위해 인터페이스를 포함한 통일된 아키텍처를 정의하기 위한 목적으로 조직되었다. 이 시스템을 기반으로 모든 임베디드 시스템에 의해 하드웨어 드라이버, 통신, 애플리케이션 단계에 대한 명확하게 정의된 범주를 만들었다. 모든 시스템에서 가장 중요한 인터페이스는 이용 가능한 전력 관리 시스템에서 애플리케이션에 대한 핸들러 기능(handler function)으로 전환되는 것이다. 시스템 기능들의 모듈화(알고리즘)는 공급업체를 통한 개발 프로젝트의 틀 속에서 뿐만 아니라 제조업체들을 통해서도 성공할 수 있다.모듈의 자유로운 교환과 변경은 모든 개발자들이 모듈을 시장에 출시하거나 인터페이스의 공개가 성공할 때만이 가능해진다. 그러나 마이크로 컨트롤러 기반의 모든 임베디드 시스템에 의해 늘 반복적으로 설치되는 것은 아날로그쪾디지털I/O, PWM, SPI 혹은 I2C와 같은 시스템 기능 위에 위치하는 하드웨어에 인접한 드라이버와 핸들러 층이다. 제어와 데이터 활용 및 확장을 위한 이러한 기능들은 모든 시스템에 들어간다. 추구했던 재사용에도 불구하고 하나의 기능은 대부분 모든 시스템에 대해 초과 작업을 하거나 새롭게 설치된다. 여기에 명확하게 정의되고 구조화된 기반 소프트웨어를 위한 출발점이 있다. 본질적으로 데이터 판독 분야의 대부분에 대해 포트 접근 기능을 바꾸는 모든 마이크로컨트롤러 하드웨어 초기화는 변화된다. 내용적으로 기반 소프트웨어 분야 역시 고유한 인터페이스인 여러 종류의 프로토콜과 드라이버를 바탕으로 실행되는 커뮤니케이션 층이다. 이 시도를 통해 순수 하드웨어 드라이버의 높은 호환성을 버스 인터페이스와 관계없이 유지할 수 있다.더 좋은 소프트웨어의 빠른 개발Helbling Technik의 기반 소프트웨어는 집적되어 있어 빠르게 적합한 소프트웨어 라이브러리에 대한 시스템 요구를 받아들인다(그림 2). 그것은 하드웨어 접근이 용이한 드라이버 층과 등급을 매길 수 있는 데이터 판독이 이루어지는 핸들러 층에 모두 설치된다. 하드웨어 드라이버 층들은 현재 프리스케일 프로세서 제품군 HC08, HC12 그리고 PowerPC에서 이용할 수 있다. Excel 표 또는 Generation 툴의 도움으로 시스템 인터페이스들은 선택되어 등급을 매기는 표에 기록될 수 있다. 표는 모든 인풋, 아웃풋 포트를 명시한다. 아날로그 혹은 디지털 I/O의 선택을 위해 개발자들은 추가적으로 등급화와 데이터 판독을 위한 규정을 핸들러 층에 끼워 넣었다. 포트 표시는 나중에 접근 기능들의 이름을 부여하기 위해 제공된다. 애플리케이션에서 데이터 변환을 위한 기능 표시는 매뉴얼 순응에 따른다. 게다가 PWM과 SPI 라이브러리는 컨피규레이트되고 결합된다. 생산과정이 시작된 이후 시스템 기능들의 라이브러리는 통합을 지향하는 C-Code로 이용할 수 있게 됐다. 문서화되고 모듈로 구조화된 코드는 매뉴얼에 순응하여 빠르게 통합될 수 있으며, HIS(Herstellerintiative Software : 제조 초기 소프트웨어)로 표준화된 인터페이스는 다른 소프트웨어나 플랫폼에서 쉽게 통합되고 재사용된다(그림 3).자동차 제조업체들이 통일된 정의를 세우고자 처음으로 시도했던 이 표준화로 HIS를 지향하는 HAL 인터페이스를 갖춘 미래의 AUTOSAR 아키텍처 모델에 대한 호환성은 확실히 자리 잡게 되었다. 집적된 기반 소프트웨어는 빠른 개발과 프로토타입의 적응을 시리얼 시스템에서의 차용 가능성과 함께 경험했다. 프로세서를 교체하는 경우 하드웨어 드라이버 층에서 그것이 적합한지 여부를 따져야만 했다. 포트 컨피규레이션의 변환은 더 이상 매뉴얼의 변환과 통합 비용에 의해서 이루어지는 것이 아니라 새로이 생산되는 드라이버와 핸들러 층의 툴 기반으로 성공을 거둘 수 있다. 짧은 개발 시간, 낮은 비용 그리고 그렇게 완성된 소프트웨어의 더 좋아진 품질 등을 장점으로 요약할 수 있겠다.
회원가입 후 이용바랍니다.
개의 댓글
0 / 400
댓글 정렬
BEST댓글
BEST 댓글 답글과 추천수를 합산하여 자동으로 노출됩니다.
댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글수정
댓글 수정은 작성 후 1분내에만 가능합니다.
/ 400
내 댓글 모음
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지