ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 5. DO-178과 커버리지 분석 – Data / Control Coupling (1)
    잡談/DO-178 응용 2019. 2. 13. 13:53

    cast-19.pdf



    이번 절에서는 DC/CC에 대해서 FAA에서 제공한 자료를 확인해 보도록 하자.

     

    참고) 앞으로의 설명에서는 Data CouplingControl CouplingDC/CC와 같이 약어로 표시한다.

     

    DO-178 FAA를 통해서 인증을 받는다는 것은 다들 알고 있을 것이다. 그런 FAA에서는 인증을 받는데 도움을 주기 위한 다양한 활동을 하고 있는데 그 중 하나가 지원자(Applicant)를 포함한 관계자들이 참고할 수 있는 문서를 제공하는 것이다. 항공 관련 인증 대상과 인증 기준 모두 상상할 수 없을 정도로 방대하기 때문에 FAA에서는 이와 같은 참고 자료들을 많이 공유하고 있다. 그 중에 다음과 같은 DC/CC와 관련된 문서가 있다.


     

    그림 11 CAST-19

     

    참고로 위의 문서는 FAA 사이트의 아래 링크에서 바로 접근 가능하다.

     

    https://www.faa.gov/aircraft/air_cert/design_approvals/air_software/cast/cast_papers/media/cast-19.pdf

     

    제목이 ‘Clarification of Structural Coverage Analyses of Data Coupling and Control Coupling’으로 번역을 하면 ‘Data Coupling Control Coupling의 구조적 커버리지 분석에 대한 설명이다. 문서 분량이 많다고는 할 수 없지만 복잡한 설명이 포함되어 있고 더구나 영어로 되어 있어서 이해하기가 쉽지 않다. 그래서 전체 내용을 모두 번역해서 설명하는 것 보다는 중요한 부분을 추려서 설명하려고 한다. 혹시 이런 설명이 오히려 더 어렵다고 생각되면 차라리 원서를 영문 그대로 보는 것이 더 확실한 방법이 될 수도 있다. 그 부분은 각자의 판단에 맡긴다.

     

    (1)    DC/CC의 정의 – DO-178 가이드라인

     

    앞서 DC/CC에 대해서 많은 설명이 있었지만 막상 DO-178 가이드라인에서 무엇으로 정의하는 지는 아직 보지 못했다. 아래와 같이 정의되어 있다.


     

    각각의 해석은 나중에 하기로 하고 위의 붉은색으로 밑줄 친 것처럼 둘 다 소프트웨어 컴포넌트(Software Component)’가 포함되어 있다는 점에 주목하자. 이번에는 (소프트웨어) 컴포넌트에 대한 정의이다.


     

    해석을 보자.

     

    컴포넌트 시스템의 별개의 기능을 수행하는 독립된 파트, 파트의 조합, 하위부품, 혹은 유닛.

     

    정의라고는 하지만 뭔가 비슷한 용어들을 모두 모아둔 것처럼 보인다. 사실 소프트웨어 컴포넌트에 대해서는 명확하게 규정된 정의가 있는 것은 아니다. 하지만 그 개념에 있어서는 대체로 통용되는 부분이 있어서 일반적으로는 소프트웨어(시스템)를 구성하는 독자적인 하나의 모듈이라는 식으로 컴포넌트를 정의하는 경우가 많다. DO-178에서 정의한 위의 설명도 그와 같은 내용을 담고 있다. 그렇다면 DC/CC의 정의는 아래와 같이 번역할 수 있다.

     

    -       Data Coupling: 소프트웨어 컴포넌트의 배타적인 컨트롤하에 있지 않은 데이터에 대한 소프트웨어 컴포넌트의 의존성

    -       Control Coupling: 하나의 소프트웨어 컴포넌트가 다른 소프트웨어 컴포넌트의 실행에 영향을 주는 방식 혹은 정도

     

    처음 보는 사람에게는 정의 자체도 여전히 쉽지 않다. 어쩌면 그렇기 때문에 CAST-19와 같은 문서가 나온 건지도 모르겠다. 그럼 이제 CAST-19를 통해서 DC/CC에 대해서 좀 더 알아보자.

     

    (2)   CAST-19 문서의 성격

     

    시작하기에 앞서 CAST-19 문서가 어떤 의도로 만들어 졌는지를 살펴보자. 언뜻 FAA에서 배포했다고 하니까 이것이 일종의 바이블처럼 받아들여질 수 있는데 그런 것을 염려해서인지 문서의 맨 앞장에 아래와 같이 유의사항을 알려주고 있다.

     

     

    중간에 밑줄 친 부분이 핵심인데 이 문서가 공식적인 정책이나 가이드가 아니다라고 분명히 말하고 있다. 그리고 그 다음 줄에는 교육적인 그리고 정보전달을 위해서 제공된다라고 말한다. 이런 종류의 문서에는 모두 이 문구가 포함되어 있는데 앞으로 이런 자료들을 참고할 때는 말 그대로 참고자료로만 받아들여야지 이것을 하나의 기준이나 원칙으로 삼아서는 안 된다. 이 점을 꼭 기억하자.

     

    (3)   DC/CC의 수행 목적

     

    DC/CC를 수행하는 목적이 무엇일까? 막상 이 질문에 바로 답을 하기는 쉽지 않을 것이다. DO-178 인증을 받기 위해서 해야 한다고 해서 하는 것이긴 한데 간단하게 정리하는 것이 쉽지는 않다. CAST-19의 시작은 바로 그 목적을 설명하는 것에서 나온다. DC/CC를 수행하는 목적을 이해하는 것이 DC/CC가 무엇을 의미하는지를 보다 명확하게 이해할 수 있는 또 다른 방법이 될 수 있을 것이다. 아래 문장을 보자.


     

    해석을 보자.

     

    Data coupling Control coupling의 구조적 커버리지 분석의 의도는 이들 모듈/컴포넌트들의 상호작용과 의존성의 정확도를 측정하고 보장하는 것을 제공하는 것이다. , 그 의도는 소프트웨어 모듈/컴포넌트들이 소프트웨어 설계자가 의도한 그런 방식으로 서로 영향을 미치고 의도되지 않은, 그래서 계획되지 않은, 비정상적인 혹은 잘못된 동작을 만드는 방식으로는 서로 영향을 미치지 않는다는 것을 보이는 것이다.

     

    앞서 DC/CC는 컴포넌트가 그 대상임을 확인했었다. 결국 우리에게 필요한 것은 그 컴포넌트들이 설계자의 의도 대로 구현되고 동작하는 것을 확인하는 것이다. 그리고 CAST-19에서는 그 방법으로 DC/CC의 구조적 커버리지 분석이 사용될 수 있다는 점을 설명하고 있는 것이다. 그것을 통해서 컴포넌트들 간의 상호작용과 의존성에 대한 체크 결과를 얻게 된다.

     

    DC/CC에 대한 추가적인 설명은 다음 절에서 이어서 설명한다.

     


    댓글

Designed by Tistory.