ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 24. DO-178과 COTS의 사용 (1)
    잡談/DO-178 응용 2019. 2. 14. 10:11

    COTS Avionics Software Study.pdf


    DO-178 인증을 접한 분들은 물론이고 그렇지 않은 분들도 COTS(Commercial-Off-The-Shelf)에 대해서 들어본 적이 있을 것이다. COTS 소프트웨어라는 것은 간단하게 말하자면 구매해서 사용하는 소프트웨어를 말한다. 예를 들면 운영체제(OS)가 있다.

     

    DO-178에서는 이러한 COTS에 대해서 DO-178 가이드라인의 Section 2.5 (Software Considerations in System Life Cycle Processes), 2.5.3 (Commercial-Off-The-Shelf Software), 11.1 (PSAC) 등에서 언급하는 것을 볼 수 있다. 하지만 사실 DO-178 가이드라인에서 언급하고 있는 COTS에 대한 설명은 상당히 빈약(?)하다. COTS에 대한 언급만 있을 뿐 항공기에 미치는 영향력과 중요성을 충분히 설명하고 있지는 않다.

     

    그런 영향인지는 모르지만 실제 현장에서 보면 DO-178 인증을 준비하는 업체나 담당자들이 공통적으로 COTS에 대한 인식이 상당히 부족한 것을 보게 된다. 사실 DO-178 인증 자체도 익숙하지 않은 상태에서 DO-178 가이드라인의 아주 일부 영역에서 언급되고 있는 COTS를 잘 모르는 혹은 관심을 많이 가지지 않는 것은 어쩌면 자연스러운 결과일 지도 모르겠다.

     

    하지만 COTS DO-178 인증의 대상이 되는 소프트웨어만큼이나 상당히 중요한 부분이다. 거의 동급으로 취급되어야 할 수준이라고 할 수 있다. 하지만 우리나라의 현실적인 여건 상 COTS를 고려한 활동을 제대로 수행할 수 없다 보니 실제 활동에서 우선 순위가 밀리고 제대로 챙기지 않는 경우가 많은 것이 사실이다.

     

    이번 절에서는 DO-178 인증의 관점에서 COTS를 어떻게 이해하고 그 중요성이 어떤 것인지를 설명하게 된다. 이를 위해서 필자가 선택한 자료는 바로 아래의 문서이다.

     


    그림 22 COTS에 대한 연구 논문 (FAA 발행)

     

    이 문서는 COTS에 대한 DO-178B 인증과 관련해서 연구한 결과가 정리된 자료이다. 실제 현장의 전문가들을 통한 설문 조사로 파악된 내용들이 포함되어 있다. 비록 DO-178 인증의 최신버전인 DO-178C가 아닌 DO-178B가 기준이었던 2001년도에 배포된 자료여서 최신 경향을 반영하지 못한다는 아쉬움이 있지만 최신 기술을 빠르게 반영할 수 없는 항공산업의 특성 상 이 문서에서 설명되는 내용은 지금의 상황에서도 충분히 참고할 수 있을 것이다.

     

    참고) DO-178과 관련된 많은 참고자료들은 말 그대로 참고자료로써의 의미를 가진다고 보면 된다. , 그러한 자료들이 절대적인 기준이 되는 것은 아니라는 뜻이다. 이번 절에 소개된 문서 역시 마찬가지다. FAA에서 배포한 문서인 만큼 그 공신력을 의심할 필요는 없겠지만 그것을 절대 기준으로 받아들이는 오해는 없기를 바란다.

     

    이 문서의 성격에 대해서는 원문의 아래 내용을 참고하자.


     

    해석은 다음과 같다.

     

    이 연구는 COTS 영역에서 현재 활동의 작은 단편을 제공한다. COTS 영역 전체에 대한 심도있는 평가는 이 계약의 범위와 리소스를 넘어서는 것이다. 그러나 이 계약에 대한 데이터의 수집과 조사는 항공전자시스템에서 COTS 소프트웨어상의 제약 지침의 개발에서 지원하기 위해 사용할 데이터를 얻는 것에 초점을 맞추었다. 이 보고서는 항공산업 혹은 다른 규제 기관을 위한 지침 항목으로써 해석되지 않는다.

     

    어렵게 설명되어 있지만 결국은 본격적인 설명에 앞서 이 자료가 참고자료 그 이상도 이하도 아니라는 점을 분명하게 하고 있다.

     

    (1)   COTS에 대한 이해

     

    앞서 COTS에 대해서 잠시 설명한 바가 있지만 DO-178 가이드라인에서는 다음과 같은 정의를 확인할 수 있다.


     

    해석을 보자.

     

    Commercial-Off-The-Shelf (COTS) 소프트웨어 공공 카탈로그 리스트를 통해서 판매자에 의해 판매되는 상업적으로 사용가능한 어플리케이션. COTS 소프트웨어는 커스터마이즈되거나 개선될 의도가 있는 것이 아니다. 특정 어플리케이션을 위해 개발되는 계약에 연계된 소프트웨어는 COTS 소프트웨어가 아니다.

     

    참고로 방사청 매뉴얼(무기체계 소프트웨어 개발 및 관리 매뉴얼)에는 COTS에 대해서 다음과 같이 정의하고 있다.


     

    그런데 이 문서에서는 위의 정의만으로는 충분하지 않다고 판단하여 아래와 같은 설명을 덧붙이고 있다.


     

    해석을 보자.

     

    이 연구의 범위에 있어서 COTS는 그 회사를 위한 특정 어플리케이션을 위해 정해진 업체내에서 개발되지 않는 어떤 소프트웨어 제품을 의미한다. 특히 소프트웨어 제품의 개발과 제작에 관한 정보가 알려져 있지 않거나 COTS 제품의 사용자에게 유효하지 않다. 예를 들면, 어떤 제품이 다른 회사로부터의 다른 시스템상에 사용될 수 있도록 개발되었다면 이 연구의 목적에서는 COTS로 고려될 것이다. 하지만 어떤 제품이 동일한 회사에 의해서 그 자신의 많은 수의 내부 프로젝트에 사용된다면 COTS로 고려되지 않을 것이다.

     

    위의 문장의 의미는 결국 COTS의 구분은 사용되는 곳이 많고 적은 것이 문제가 아니라 내부적으로 사용되느냐 범용적으로 사용되느냐에 따른 구분이라는 것을 말하는 것으로 이해된다. 미묘한 차이가 있을지는 모르겠지만 앞서의 정의와 우리가 일반적으로 생각하는 개념과 크게 다른 부분은 없어 보인다.

     

    사실 소프트웨어 개발 혹은 시스템 개발에서 이러한 COTS의 사용과 그 중요성은 누구나 인정할 수 있는 부분이다. 다만 실제 개발 현장에서는 COTS의 사용이 워낙 당연시되다 보니 상대적으로 신경을 많이 쓰지 않는 것이다. 혹은 이전부터 계속 써오던 제품이다보니 내부적으로는 나름대로의 신뢰를 가지고 있는 경우도 많다.

     

    하지만 DO-178 인증의 관점에서는 이제 더 이상 그런 인식은 허용되지 않는다. , 지금까지 당연하다고 생각했던 부분들을 모두 잊어버리고 그야말로 처음부터 다시 생각해야 한다는 뜻이다. 그런 관점에서 앞으로 나오는 내용들은 DO-178 인증과 관련해서 COTS에 대해서 가져야 할 가장 기본적인 부분부터 설명하게 된다.

     

    (2)   DO-178 인증에서 COTS에 대해 가져야 할 배경 지식

     

    먼저 DO-178 인증을 위해 COTS를 평가하는 데 있어서 가지고 있어야 할 기본적인 배경 지식에 대해서 알아보자.

     

    n  기본적으로 항공 소프트웨어 인증 기준은 DO-178

     

    항공기에 탑재하는 소프트웨어를 개발하는 경우 기본적으로 DO-178 가이드라인을 따라야 한다. COTS 역시 소프트웨어이므로 마찬가지로 DO-178 가이드라인을 따라야 한다. 비록 DO-178 가이드라인이 COTS를 사용하는 경우 어떻게 가이드라인을 따라야 하는지를 제대로 설명하지 못하고 있긴 하지만 그렇다고 해서 그것이 DO-178 가이드라인을 고려하지 않아도 된다는 것을 뜻하는 것은 아니다. 가장 기본적이고 당연한 부분이지만 앞서 언급한 것처럼 특히 우리나라에서 DO-178 인증을 준용하는 경우에 이를 인식하지 못하고 진행하는 경우가 많다.

     

    n  COTS에 대한 시스템 레벨에서의 평가가 필요

     

    소프트웨어에 대한 DO-178 인증을 받기 위해서는 기본적으로 시스템 안전성 평가가 전제되어야 한다. DO-178 인증을 받아야 하는 COTS에게도 똑같이 해당하는 부분이다. 하지만 앞서 COTS에 대한 인증 기준을 DO-178로 제대로 인식하지 못하는 경우가 많다고 한 것처럼 이 부분 역시 크게 다르지 않다. 사실 시스템 안전성 평가에 대한 부분은 DO-178 인증의 영역에서도 놓치는 경우가 많다.

     

    n  COTS 승인에 대한 FAA의 고민

     

    COTS를 사용해서 DO-178 인증을 준비하는 쪽에서도 문제이긴 하지만 실제로 인증을 해줘야 하는 인증당국(FAA)의 입장에서도 COTS는 상당히 어려운 문제이다. 예를 들면 인증에 필요한 데이터의 접근에 제약이 있는 경우를 들 수 있다. 만약 인증을 판단하기 위한 데이터를 단 하나라도 볼 수 없다면 COTS에 대해서는 무조건 인증을 주지 않으면 되는 것일까? 그럴 수 없는 현실이기 때문에 이 문서에서는 대체 방법 혹은 간접적인 방법들에 대해서도 설명하고 있다.

     

    앞으로 나오는 내용들을 통해서 인증당국에서 COTS를 어떤 관점으로 바라보는 지에 대한 부분도 확인할 수 있을 것이다.

     

    (3)   COTS 사용시의 주요 이슈

     

    DO-178 인증을 받는 데에 있어서 COTS의 사용에는 여러가지 이슈들이 존재한다. 다음은 대표적으로 이야기할 수 있는 이슈들이다.

     

         COTS 사용에 따라서 판매자(Vendor)와 지원자(Applicant)간에 인증을 위한 특수 관계가 생김

     

    개발하는 소프트웨어가 COTS를 사용하고 DO-178 인증을 받아야 하는 경우 가장 먼저 이슈가 되는 부분이 바로 판매자로부터 인증에 필요한 증빙을 받을 수 있느냐에 대한 부분이다. 단순히 판매자와 구매자의 관계가 아니라 인증의 책임소재와 역할 분담까지 고려해야 하는 특수한 관계가 만들어 지는 것이다. 결국 관건은 누가 어떤 역할을 할 수 있느냐에 있다.

     

         문제점 리포트에 대한 문제

     

    비록 COTS가 범용으로 판매되는 제품이기 때문에 판매자의 입장에서는 충분한 확인을 거쳐서 판매하겠지만 사용 중에 언제든 예상치 못했던 문제가 생길 수 있다. 그런 경우에 그 문제에 대한 문제점 리포트를 어떻게 할 것이냐의 이슈가 생기게 된다. 이는 단순히 내가 사용하면서 발생하는 문제에만 국한되는 것이 아니다. 다른 곳에서 사용하다가 문제가 발생하는 것도 같은 이슈로 봐야 하는 것이다. 전세계 어디서든, 그 누구든 구입할 수 있는 COTS의 특성 때문에 생각지 못했던 부분까지도 고려해야 하는 상황이 되는 것이라고 할 수 있다.

     

    가만 생각해 보면 우리가 지금까지 사용해왔던 COTS 제품 역시 이런 이슈를 안고 있었다는 점에서 사람의 생명이 걸려있는 항공기의 안전을 생각한다면 이것은 상당히 심각한 이슈라고 할 수 있다.

     

         사용하지 않거나 의도되지 않은 기능에 대한 문제

     

    직접 개발하는 소프트웨어가 아니라 범용으로 만들어진 소프트웨어를 구매해서 사용하는 COTS의 특성 상 당연히 내가 원하지 않는 기능들이 포함되어 있을 가능성이 높다. 이는 결국 사용하지 않거나 사용하려는 의도가 없는 기능들이다. 원칙적으로 DO-178에서는 사용하지 않는 혹은 의도되지 않은 기능은 제거를 하고 만약 남아 있어야 한다면 타당한 이유를 제시하도록 하고 있다. COTS 소프트웨어는 원래 가지고 있는 기능에 대한 인증도 중요하지만 이와 같은 부분을 어떻게 커버할 지가 더 큰 이슈가 된다.

     

         COTS의 운영 환경에 대한 문제

     

    앞서 보았던 COTS의 기능이 직접적인 검토대상이지만 사실 그것도 COTS가 동작하는 환경이 기본적으로 갖추어 져 있다는 가정하에서 진행될 수 있는 부분이다. 만약 COTS가 동작할 수 있는 환경 중 하나라도 누락되는 경우에는 COTS100% 정상적으로 동작할 것이라고 장담할 수 없게된다. 이 문서에서는 COTS의 운영환경과 관련해서 파악해야 할 부분으로 다음과 같은 항목들을 예로 들고 있다.

     

    -       입력(Inputs)

    -       출력(Outputs)

    -       성능 요구사항(Performance requirements)

    -       신뢰성 요구사항(Reliability requirements)

     

         COTS의 버전에 대한 문제

     

    우리가 COTS 제품을 구입할 때 일반적으로는 버전에 대한 정보도 얻게 된다. 하지만 그것은 단지 판매자의 일방적인 통보에 지나지 않는다. DO-178 인증의 관점에서 보자면 COTS를 사용하는 당사자가 해당 버전을 전적으로 관리할 수 있어야 한다. 여기에서 관리는 COTS 내부의 컴포넌트 레벨까지도 대상이 될 수 있다. 하지만 현실에서 그것은 거의 불가능하기 때문에 버전에 대한 부분은 이슈가 될 수밖에 없다.

     

         COTS의 신규 버전에 대한 문제

     

    앞서 보았던 COTS의 버전에 대한 문제의 연장선상에서 나올 수 있는 문제이다. 즉 신규버전이 나오는 경우 이를 어떻게 확인할 것이냐의 문제이다. 실제 적용할 지에 대한 선택 역시 결코 간단한 문제가 아니다. 참고로 판매자에 의해서 신규 버전에 대한 지원이 가능한 경우라면 이는 인증에 필요한 정보를 얻을 수 있는 기회가 될 수도 있다.

     

         COTS 제품에 대한 조사를 어떻게 할 것인가?

     

    소프트웨어가 인증을 받기 위해서는 제품의 개발 기록과 운영 기록을 살펴보는 것도 상당히 중요하다. 하지만 COTS에 대해서는 그러한 기록을 얻는 것 자체가 어렵기도 하고 혹시 기록을 얻는다고 하더라도 그것이 어떤 버전의 기록인지, 그 기록이 정말로 유효한 데이터인지 확인하는 것도 쉽지 않은 부분이다.

     

         COTS의 제작 프로세스에 대한 조사를 어떻게 할 것인가?

     

    앞서 나온 내용은 COTS 제품 자체의 평가에 대한 조사의 문제라면 이번에 나오는 내용은 COTS제품을 제작하는 프로세스의 평가에 대한 문제이다. 이 문서에서 예로 드는 프로세스 평가방법으로는 ISOSEI CMM을 들고 있다. 그 외에도 여러가지가 있을 수 있을 것이다. 사실 ISOCMM과 같은 프로세스의 평가에는 DO-178의 목표(Objective)를 준수하는 공통 요소가 제법 있을 수 있다. 하지만 여기에서도 관건은 그렇게 평가할 데이터를 어떻게 얻을 것인가이다. 특히 자신들의 개발 프로세스를 외부에 노출시키는 것은 판매자의 입장에서는 결코 쉽게 받아들일 수 없는 부분이다.

     

    이상으로 제시된 이슈만 해도 8가지나 된다. 실제 진행과정에서 그 외의 여러 가지 다른 이슈들이 나올 수도 있다. 이런 점만 보더라도 COTS에 대한 DO-178 인증을 받는다는 것이 얼마나 어려운 일인지를 짐작할 수 있다.

     

    (4)   COTS 사용에 대한 설문 조사 범위

     

    이 문서는 기본적으로 실제 사용되는 COTS에 대한 설문조사의 내용이 중요한 비중을 차지하고 있다. 그렇다면 조사의 대상이 얼마나 대표성이 있는지, 정확한지가 중요한 문제가 된다. 여기에서는 그것을 확인할 수 있는 내용들이 설명되고 있다.

     

    기본적으로 본 조사에서는 항공분야로 제한하지 않고 안전성과 관련된 소프트웨어를 사용하는 한 다른 분야에 대한 것도 함께 조사되었다. 해당 분야는 다음과 같다.

     

    -       항공전자 분야 (Level A, C, D)

    -       원자력 분야

    -       의료 분야

    -       우주 분야

    -       엘리베이터 산업 분야

     

    개인적으로 엘리베이터가 포함된 것이 이색적으로 보이는데 엘리베이터의 잘못된 동작이 사람의 생명에 직접적인 영향을 미칠 수 있다는 점에서 사실 당연한 결과라고 할 수 있을 것이다. 참고로 조사의 대부분은 각 분야의 대표성을 가진 인사들에 대한 전화 인터뷰로 진행되었다.

     

    조사 결과는 다음과 같은 특징을 보여주고 있다.

     

    -       안전성과 관련해서 가장 자주 사용되는 COTS는 시스템의 기능을 지원하는 역할을 수행

    -       예를 들면 운영체제와 네트워크 소프트웨어

    -       이들은 대부분 향후의 개선을 위한 추가적인 기능 향상의 여지를 보여줌

     

    이러한 배경을 이해하고 각 분야별로 조사한 결과를 하나씩 확인해 보자.

     

         항공전자 분야

     

    n  대규모 기체 제조사 (Large Airframe Manufacturer)

     

    대규모 기체 제조사에 대한 부분에서는 특이하게 COTS를 사용하지 않는다는 내용이 나온다. 특히 레벨 A의 항공기에는 기체를 만들 때 들어가는 소프트웨어를 모두 직접 만들고 DO-178 인증을 받는 것으로 조사되었다. 구체적인 이유를 설명하지는 않았지만 항공기 기체에 대한 완벽한 안전성을 담보하기 위한 어쩔 수 없는 선택이 아닌가 싶다.

     

    대신 일부 레벨 CDLRU 중에는 COTS 제품을 사용하는 경우도 있는 것으로 파악되고 있다. 사실 LRU 범위까지 모두 자체 제작을 하려고 한다면 그 항공기는 고객이 원하는 시점에 항공기 제작을 완료하는 것이 불가능 할 것이기 때문에 어쩔 수 없는 현실적인 선택일 것으로 판단된다. LRU와 관련된 내용은 이어지는 설명을 보자.

     

    n  큰 규모의 기체 LRU 제조사 1 (Large Airframe LRU Manufacturer No. 1)

     

    이 사례에서는 OSE라는 RTOS를 사용하는 레벨 B 인증의 시스템을 예로 들고 있다. 특히 파티션으로 구분된 공간을 기반으로 해서 RTOS 업체와 어플리케이션을 개발하는 항공전자 개발자가 협업하고 있다고 설명하고 있다. 하지만 어쩐 일인지 이후 다른 RTOS로 교체되었다고 하는데 그 내막이 궁금해지는 부분이다.

     

    사실 필자는 OSE라는 RTOS를 처음 들어봤다. 이어지는 예시들에서는 그 외에 다른 COTS OS도 확인할 수 있다. 항공용 OS라면 주로 VxWorks만 알고 있었던 상태에서 생각보다 많은 수의 OS가 항공용으로 사용되어 왔고 지금도 사용되고 있다는 사실을 이번 자료를 통해서 새삼 파악할 수 있었다.

     

    n  큰 규모의 기체 LRU 제조사 2 (Large Airframe LRU Manufacturer No. 2)

     

    그 다음으로 제시된 사례는 RTXC라는 OS를 사용하는 레벨 D 소프트웨어와 관련된 회사이다. 여기에서 특이한 점은 일단 레벨 D라는 점과 오로지 선택된기능만 사용하도록 되어 있다는 점이다. 그 외에 다음과 같은 특징들을 가지고 있다.

     

    -       사용자 매뉴얼을 기반으로 기능을 선정함

    -       사용자 매뉴얼을 기반으로 시험을 수행함

    -       OS 영역내에서의 시험만 수행

    -       스트레스 시험은 수행하지 않음

    -       사용자 매뉴얼과 오브젝트 코드 외의 다른 데이터는 없음

    -       하나의 버전만 사용하며 업그레이드는 없음

    -       의학, 원자력, 1 ~ 2개의 항공전자 어플리케이션에 사용된 이력을 가짐

    -       판매자는 인증에 관여하지 않음

    -       사용자가 기능과 적재가능한 오브젝트 코드를 직접 선택할 수 있도록 제작됨

    -       RTOS가 태스크의 우선순위와 스케쥴링을 제어할 수 있음

     

    레벨 D라는 점에서 인증에 대한 제약이 상당부분 해소될 수 있는 여지가 많기는 하지만 위에서 나열된 내용들 자체는 COTS에 대한 DO-178 인증을 받는 부분에 있어서 상당히 의미있는 내용들이어서 주목할 만한 사례라고 할 수 있다.

     

    n  소규모 기체 제조사로의 공급자 (Supplier to a Small Airframe Manufacturer)

     

    소규모 항공기 영역에서의 제품으로 레벨 D로 인증받은 시스템과 파티션이 적용된 레벨 C 어플리케이션을 들고 있다. 특히 필자와 같은 세대에게는 아주 친숙한 Windows NT를 사용한다고 되어 있는데 아래와 같은 특징을 가지고 있다.

     

    -       레벨 D 제품

    -       Windows NT 서비스팩 4를 사용함

    -       당시에 200개 이상의 판매 실적과 3년 이상의 운영 시스템에 대한 실적 보유

    -       데이터 보호 구조(Data protection scheme) 구현으로 Windows NT 사용 가능하게 됨

    -       더 높은 레벨에 Windows NT를 적용하기 위한 기술 확보 노력 진행 중임

     

    이 글을 보시는 분들 중에 Windows NT에 대해서 친숙한 분들이 얼마나 될 지 모르겠지만 혹시 잘 모르는 상황이라면 그냥 현재의 Windows 10을 항공기에 적용했다고 생각하면 된다. (물론 서버용이라는 특성이 있긴 하지만) 항공기의 안전을 고려한다면 사실상 결코 허용되지 않는 케이스라고 할 수 있다.

     

    그렇다면 이 업체는 어떻게 데스크탑용 OS’를 항공기에 적용할 수 있었을까? , 어떻게 DO-178 인증을 받을 수 있었을까? 이에 대해서 이 문서에서는 이 업체가 전통적인 DO-178 인증방법을 따르지 않았다고 설명한다. , 그들은 마이크로소프트로부터 Windows NT에 대한 요구사항, 설계, 코드 등 DO-178 인증을 위해서 흔히 필요로 데이터를 요구하지 않은 것이다. 물론 마이크로소프트가 특별한 사정이 있지 않는 한 그런 요청에 따를 이유도 없다. 결론적으로 마이크로소프트는 DO-178 인증에 전혀 관여하지 않았다. (다만 위에 정리된 내용 중 마지막에 나오는 더 높은 레벨에 Windows NT를 적용하기 위해서 이 업체에서는 마이크로소프트에 개발과 관련된 데이터를 요청할 계획을 가지고 있다고 한다)

     

    결론적으로 이 업체에서 사용한 방법의 핵심은 Windows NT의 광범위한 사용 이력이었다. 사실Windows NT는 항공기에 사용되는 제품이 아니다. 대신 일반 사용자의 영역에서는 전세계적인 판매 실적과 사용 이력을 보유하고 있다. 그것은 특히 실전에서 검증을 받았다는 것을 간접적으로 증명해주는 나름대로 의미 있는 데이터라고 할 수 있다. 이 업체에서는 이를 배경으로 사용하는 기능을 제한한다거나 데이터 보호 기능을 적용하는 등의 안전성을 고려한 작업을 일부 추가하면서 DO-178 인증을 받았다고 설명하고 있다.

     

    이 사례에서는 COTSDO-178 인증과 관련해서 참고할 만한 내용들이 많이 제시되고 있다. 그런 부분들을 정리하면 다음과 같다.

     

    -       Windows NT는 전세계적으로 엄청난 판매가 된 제품으로 그러한 판매와 운용 과정에서 잠재된 문제점들이 걸려졌고 결과적으로 항공전자 어플리케이션 사용에 적절하다는 것을 간접적으로 증명함

    -       이 업체에서는 현재 자신들이 적용한 제품의 서비스 히스토리 데이터를 수집하고 있음

    -       이 업체는 Windows NT의 전체 기능이 아닌 특정 기능만 사용하도록 적용함

    -       일종의 Wrapper 기능이라고도 할 수 있는 데이터 보호 기능을 적용함

    -       Windows NT의 서비스팩 4 버전만 사용하고 유지해 옴

    -       새로운 버전에 대해서는 변경사항에 대해서 면밀하게 분석함

    -       Windows NT의 적용은 그들의 하드웨어와 소프트웨어 구조 모두에 영향을 주었음

    -       Windows NT를 선택한 이유

    1)     비용(Cost)

    2)     타겟 환경이 풍부함

    3)     훌륭한 개발 및 지원 도구

    4)     풍부한 개발자 풀

     

    참고로 위에서 제시된 부분 중 ‘Windows NT를 선택한 이유에서 ‘4) 풍부한 개발자 풀에 대한 부분은 다소 잘못된 판단일 수도 있다고 이 문서에서는 설명하고 있는데 그 이유는 비록 Windows NT 개발자는 많을지 몰라도 항공전자 분야에 대한 충분한 지식이나 경험을 배경으로 가진 Windows NT에 능숙한 사람을 찾기는 현실적으로 상당히 어렵기 때문에 그렇게 단순하게 판단할 부분이 아니라는 것이다.

     

         원자력 분야

     

    원자력 분야에서는 아직 공식적으로는 COTS를 사용한 경우가 없다고 알려져 있다. 하지만 일부 영역에서 COTS 사용에 대한 검토가 진행되었고 관련 당국에서도 그에 대한 검토가 진행 중인 것으로 보인다. 검토 사항 중 일부를 소개하면 다음과 같다.

     

    -       COTS 제품에 대한 소프트웨어 품질 보증 컴포넌트가 필요

    -       많은 판매와 오랜 기간의 사용 히스토리가 무결성에 대한 키가 될 수 있음

    -       “Safety kernel”이라고 하는 Wrapper 적용의 제안

    -       스트레스 테스트가 충분하지 않은 점, 부적절한 오류 처리에 대한 우려가 있음

     

         의학 분야

     

    이 문서의 내용만으로 보자면 의학 분야는 다른 분야와 비교해서 상대적으로 항공전자 분야와 유사한 부분이 많아 보인다. 예를 들면 다음과 같은 부분이다.

     

    -       FAA(Federal Aviation Administration)와 유사한 성격의 FDA(Federal Drug Administration)가 존재함

    -       DO-178의 위험레벨과 유사하게 High / Moderate / Low로의 위험레벨 구분이 존재함

    -       하드웨어 설계에 대한 고려가 소프트웨어 위험 레벨을 감소시켜줄 수 있음

    -       소프트웨어가 아닌 의료 장비가 인증을 받음

    -       COTS의 사용이 금지되지 않음

     

    현재까지 의학 분야에서의 COTS 사용에 대한 현황을 다음과 같이 소개하고 있다.

     

    -       높은(High) 위험 레벨의 의료 장비에 대해서 현재까지(이 문서의 발표 당시) COTS 사용이 승인된 케이스가 없음

    -       써드파티 COTS를 사용하는 경우 안전 방화벽(Safety firewall)이 있어야 함

    -       스택 오버플로우(Stack overflow)와 동적 할당(Dynamic allocations)에 대한 우려가 있음

    -       Microsoft Windows 3.1WindRiver VxWorks와 같은 운영체제, Database, 사용자 인터페이스 라이브러리, 컴파일러 기반 수학 라이브러리 등이 COTS로 사용되고 있음

    -       많은 판매와 광범위한 사용이 FDA의 평가에 긍정적인 영향을 주고 있음

     

    그 외에 의료 장비에 대한 인증 표준, 실제 COTS가 적용된 장비 사례, FDA에서 COTS의 평가를 위해 해당 제품의 자료에 대한 접근이 용이하다는 등의 추가 설명이 나온다.

     

    한 가지 특이한 점은 의학 분야에서는 COTS의 판매량이 엄청나게 많아서 상당한 수익을 기대할 수 있고 그래서 COTS 판매자들이 FDA에 관련 자료를 제공하는 것에 적극적이라는 설명이 나온다. 시장이 협소하고 수익에 대한 기대치가 낮은 항공분야에서는 반대로 COTS 판매자들이 FAA에 관련 자료를 제공하는 것에 소극적이라는 점과 비교되는 부분이라고 할 수 있다.

     

         우주 분야

     

    우주 분야에서 COTS 사용에 대한 사례는 보고서의 일부 내용이 소개되고 있다. 주요 내용만 보자면 다음과 같다.

     

    -       우주 비행사에게 위험을 미치지 않기 때문에 신뢰도 커버리지를 99.9%에서 97.0%로 감소시킴

    -       이렇게 낮아진 커버리지로 인해서 COTS 사용이 좀 더 용이해짐

    -       이를 통해서 비용을 약 50%가까이 줄이는 효과가 예상됨

     

    간단한 사례이긴 하지만 COTS의 적용에 대한 또 다른 방안으로 인증 기준을 낮춤으로써 적용 가능성을 높이고 비용을 감소시킬 수 있다는 새로운 관점을 보여주고 있다.

     

         엘리베이터 분야

     

    엘리베이터 분야의 사례로 제시되는 것은 파티션으로 구분해서 COTS를 적용했다는 점이다. , 안전과 관련된 컴포넌트를 완전히 파티션으로 구분했다는 것인데 안전성과 관련없는 코드의 수정이 인증에 영향을 미치지 않을 수 있었고 ‘IXXAT CAN’이라는 COTS 네트워크 드라이버를 통해서 사용자가 네트워크로의 접근이 가능하게 만들었다고 설명하고 있다.

     

    설계단계에서 COTS를 안전성과 관련된 컴포넌트와 완전하게 분리함으로써 장비의 인증에 있어서 COTS가 영향을 받지 않도록 한 케이스라고 할 수 있다.

     

    (5)   안전이 중요한 시스템에 사용되고 있는 주요 COTS

     

    이번 절에서는 실제 사용되고 있는 대표적인 COTS 제품을 설명한다. 그 전에 잠시 COTS와 관련해서 흥미로운 사실 두 가지를 살펴보고 가자. 먼저 첫 번째 내용이다.


     

    해석을 보자.

     

    이 연구에서 얻어진 데이터를 통해서 안전이 중요한 영역에서 COTS 사용에 대해서 심각하게 고려되는 것은 COTS 컴포넌트의 단지 작은 셋만 존재하는 것으로 보인다. 이들 대부분은 시스템이 표준과 오픈 아키텍처를 만족하도록 하는 유형에 있다.

     

    간단하게 말하면 COTS는 주로 시스템의 표준, 오픈 아키텍처와 관련된 곳에 사용되고 있으며 항공기와 같은 안전에 민감한 영역에는 아주 일부만 사용되고 있다는 말이다. 사실 COTS의 속성을 생각해 보면 실제로도 COTS의 활용은 그런 곳이 더 적절하다고 판단된다. 그런 의미에서 항공기에 적용하는 경우 물론 쉽지는 않겠지만 이러한 특성을 충분히 고려하고 반영하는 것이 (특히 설계 차원) 더 효과적인 COTS의 활용이 될 것이다.

     

    두 번째 내용을 보자.


     

    이 부분은 DO-178의 본고장이라고 할 수 있는 미국에서도 우리나라와 다를 바 없는 현상이 있다는 사실이 흥미로워서 일부러 전체를 가져와 봤다. 해석을 보자.

     

    계약이 되었고 항공전자 산업에서 사용된 COTS 컴포넌트의 대부분의 판매자들은 DO-178B에 대해서 완전하게 인식하지 못하고 있다. 판매자들은 우리 소프트웨어는 FAA 인증을 받았다거나 우리 소프트웨어는 DO-178B를 준수한다와 같은 부정확한 언급을 많이 만들어 냈다. 판매자들 대부분은 DO-178B에 있는 소프트웨어 항공전자 영역 지침을 제대로 이해하지 않는다. 사실 대부분은 항공전자 소프트웨어의 서로 다른 위험 레벨조차도 완전하게 이해하지 않는다. 판매자들은 그들의 제품이 항공전자 장비에 사용되었기 때문에 비록 단지 레벨 D에 사용되어 왔다고 하더라도 그들의 제품이 DO-178B를 완전히 준수한다고 언급할 것이다.

     

    한 마디로 COTS 판매자들이 DO-178 인증에 대해서 제대로 알지 못하는 경우가 많고 그래서 자신들의 제품이 DO-178 인증을 제대로 준수하지 못한 상황에서도 외부적으로는 DO-178 인증을 준수한다고 잘못 홍보하고 있다는 설명이다.

     

    DO-178 인증의 종주국이라고 할 수 있는 미국에서 설마 이런 말도 안되는 일이 있을까 싶지만 여기서 이렇게 설명하는 것으로 보면 역시 DO-178 인증이라는 것이 어려운 것이라는 점을 새삼 느끼게 된다.

     

    사설이 길었는데 이제 본격적으로 안전과 관련된 분야에서 실제 사용되고 있는 COTS에 대해서 살펴보자.

     

         운영체제

     

    인증된 항공전자 제품에 사용된 운영체제로 다음과 같은 것들을 예로 들고 있다.

     

    -       VRTX

    -       LynxOS

    -       PSOS

    -       VxWorks

    -       OSE

      

    여기서는 Enea사의 OSEWindRiver사의 VxWorks에 대해서 알아보자. 참고로 이 문서에서도 말하고 있지만 위의 사례 중 굳이 OSEVxWorks를 선정한 것은 이 두 제품이 다른 제품들보다 더 낫다거나 인증이 확실하다는 것을 의미하는 것은 아니라는 점을 유의하자. 단지 설명에 더 적합한 사례로 선정된 것뿐이다.

     

    n  Enea사의 OSE

     

    Enea사의 OSE 운영체제는 안전과 관련된 영역에 대해서 직접적인 지원을 해주는 것으로 알려져 있으며 다음과 같은 특징을 가지고 있다.

     

    -       IEC 61508 인증을 받았으며 DO-178B 가이드라인을 따르는 싱글 커널을 확보하려고 하고 있음

    -       현재(이 문서가 나온 당시)는 여러 항공 관련 업체와 함께 작업 중에 있으며 그 중 한 곳은 레벨 A 인증을 받으려고 하고 있음

    -       레벨 B 어플리케이션에 대해서는 거의 인증이 완료되었다고 알려져 있음

    -       인증 프로세스를 지원할 뿐만 아니라 그들의 제품이 안전에 민감한 시스템에 어떻게 사용되어야 하는지를 설명하는 표준 안전 관련실전 매뉴얼을 제공

    -       안전에 대한 문서화를 위해 다음과 같은 DO-178 문서 템플릿을 제공

    l  Safety Plan

    l  Safety Requirements Specification

    l  Safety Test & Validation Plan

    l  Test Specification

    l  Impact Analysis

    l  코드 리뷰 등

     

    지금까지 설명된 그 어떤 사례들보다도 상당히 적극적이고 많은 지원을 하는 것을 볼 수 있다.

     

    n  WindRiver사의 VxWorks

     

    앞서 잠시 언급한 바가 있지만 VxWorks는 필자에게 아주 친숙한 제품이다. 사실 이 글을 정리하기 전까지만 해도 DO-178 인증을 받은 OSVxWorks가 사실상 유일한 것이 아닌가라고 생각하고 있었다. 특히 멀티코어가 등장하면서 탄생한 VxWorks 653이 파티션을 완벽하게 지원하는 DO-178 인증을 받은 OS라는 점이 그러한 믿음을 한층 강화시킨 면이 있지 않나 싶다.

     

    VxWorks에 대해서는 다음과 같은 특징을 설명하고 있다.

     

    -       2000년 말까지 항공전자 인증 개발 패키지(Avionics certification development package)”를 제공하려고 계획 중 (정확한 완료시기는 확인되지 않지만 이미 이 부분은 성공한 상태)

    -       해당 패키지는 API 서브셋과 DO-178 레벨 A 시스템의 인증을 지원하는 문서셋으로 구성됨

     

    대표적인 운영체제 2가지를 확인해 보았다. 이 문서에서는 그 외에도 무려 55개의 RTOS 제품이 있다는 언급도 하고 있다. 물론 이들 중 상당수는 주로 비항공 분야에 사용되는 것들이다. 그리고 대부분이 C/C++과 호환되고 약 50%Java와 호환되는 컴파일러를 지원한다고 설명하고 있다.

     

         컴파일러 라이브러리

     

    사실 컴파일러도 따지고 보면 COTS라고 할 수 있다. 예를 들면 컴파일러에서 지원하는 수학함수의 경우 컴파일러 라이브러리를 사용하게 되기 때문이다. 하지만 현장에서는 이런 부분까지는 신경쓰지 않는 것이 현실이다. 이 문서에서도 이에 대해서는 의료분야에서 상당히 조심스럽게 생각한다는 점 이외에는 특별히 설명하는 부분이 없다.

     

    이어지는 내용은 다음 절에서 설명한다.

     


    댓글

Designed by Tistory.