-
7. DO-178 가이드라인 소개 (Section 1.0)잡談/DO-178 기본 2019. 1. 6. 11:37
DO-178에 대해서 구글링을 해 보면 DO-178에 대한 설명은 상대적으로 쉽게 찾아볼 수 있지만 DO-178 가이드라인 자체에 대한 소개는 찾기가 힘들다. 물론 DO-178을 이해하는 것이 가이드라인을 이해하는 것이기는 하지만 실제로 가이드라인에 어떤 내용이 설명되어 있는지를 확인하는 것도 DO-178을 제대로 이해하는 데에 충분한 가치가 있을 것이라고 생각된다.
이번 절은 개별적인 상세한 설명에 들어가기에 앞서 DO-178 가이드라인이 무엇인지를 이해해 보는 기회가 될 것이다. 사실 이를 필자가 지금까지 알게 된 내용으로 설명할 수도 있지만 가이드라인 내에 관련된 소개를 별도로 정리한 부분이 있기 때문에 그 부분에 대한 설명을 중심으로 진행할 예정이다.
DO-178 가이드라인의 소개에서는 아래와 같은 부분을 이야기하고 있다..
- DO-178 가이드라인의 목적
- DO-178 가이드라인이 다루는 범위
- 다른 인증 관련 문서들과의 관계
- DO-178 가이드라인을 사용하는 방법
사실 위의 내용을 제대로 이해할 수 있다면 DO-178과 DO-178 가이드라인을 전체적으로 이해하는 것으로 볼 수 있다. 나머지는 각각에 대한 세부적인 내용으로 이런 것들은 지금 당장이 아니더라도 필요할 때마다 해당하는 내용을 찾아서 참고할 수 있다. 관건은 어디를 찾아야 하고 찾은 후에는 그것을 제대로 해석할 수 있느냐에 있다.
우선 소개에서 말하는 위의 네 가지를 살펴보자. 참고로 이곳 소개부분을 포함해서 앞으로 나오는 설명은 최대한 가이드라인을 인용할 예정이다. 가이드라인이 말하고자 하는 것을 최대한 원문의 의도 그대로 보여주기 위함이다.
(1) DO-178 가이드라인의 목적
우선 DO-178 가이드라인의 목적에 대해서는 아래와 같이 함축적으로 정리해서 설명하고 있다.
중간 중간 사용된 단어들이 담고있는 의미를 이해하는 것이 중요한데 예를 들어 ‘provide guidance for the production of software for airborne systems and equipment’라는 문장은 DO-178 인증이 항공기에 탑재되는 소프트웨어를 대상으로 한다는 것을 말하고 있다. 또한 제목에서도 보았듯이 DO-178이 ‘specification’, 즉 ‘스펙’이 아니라 ‘guidance’ 즉, ‘지침’이라는 점도 이 문장에서 다시 한 번 확인할 수 있다. 그리고 ‘with a level of confidence in safety’는 안전성을 기준으로 구분하는 소프트웨어 레벨(A ~ D)을 설명내는 부분이다. DO-178 인증은 이러한 레벨에 따라서 구분되며 그 차이점을 이해하고 각각의 레벨에 맞게 적용할 수 있어야 한다.
이상의 설명을 기준으로 전체적으로 해석을 하면 다음과 같다.
이 문서의 목적은 안전성에서 신뢰할 수 있는 레벨로 의도된 기능을 수행하는 항공 시스템과 장비를 위한 소프트웨어의 생산을 위한 지침을 제공하는 것이다.
사실 이러한 영어 원문을 해석하는 것은 누구나 할 수 있다. 하지만 그 문장에 담고있는 의미와 단어 하나가 정확하게 무엇을 지시하고 있는지를 명확하게 인식할 수 있어야 DO-178 인증의 적용에 오해가 생기지 않을 수 있다.
참고) 사실 150페이지 분량으로 모든 항공기의 모든 소프트웨어에 대한 인증을 가이드할 수 있도록 하기 위해서는 위와 같이 설명 하나에 많은 부분을 포괄적으로 담을 수 있어야 한다. 그렇지 않으면 부연 설명이 추가되어야 하고 그 만큼 분량 자체가 늘어날 수 밖에 없기 때문이다. 문장 하나, 단어 하나로 뭐 이렇게 일일이 설명하느냐라고 할 수도 있지만 DO-178 가이드라인을 이해하고 실전에 적용하기 위해서는 이런 형태의 이해가 필수이다. 필자의 생각에는 DO-178의 진정한 어려움이 바로 여기에 있는게 아닌가 싶다.
(2) DO-178 가이드라인이 다루는 범위
DO-178 가이드라인이므로 당연히 DO-178에 대한 모든 것을 다루고 있지만 그 범위를 구체적으로 설명하고 이와 함께 이 가이드라인이 다루지 않는 범위에 대해서도 설명하고 있다. 앞서 문서의 목적을 설명함으로써 이 문서의 성격이 정의되기는 했지만 실제로 어떤 내용이 포함되는지에 대해서는 이곳에서의 설명을 통해서 좀 더 분명하게 파악할 수 있다. 또한 DO-178인증과 관련된 부분이 워낙 광범위하다 보니 가이드라인이 이야기하지 않는 항목들에 대해서도 분명하게 언급하는 것이 오히려 이 문서의 목적을 더 분명하게 나타낼 수 있게 된다. 그럼 DO-178 가이드라인이 다루는 범위와 다루지 않는 범위를 어떻게 설명하고 있는지 살펴보자.
① 가이드라인이 다루는 범위
먼저 DO-178 가이드라인이 다루는 범위에 대해서 알아보자. 문서의 목적에서 나온 것처럼 DO-178 가이드라인은 아래와 같이 항공기에 탑재되는 ‘소프트웨어’의 인증에 대해서 다루고 있다는 점을 가장 먼저 밝히고 있다.
해석을 보자.
이 문서는 항공기, 엔진, 프로펠러, 그리고 지역적으로는 보조 전원 유닛에 사용되는 항공 시스템과 장비를 위한 소프트웨어 생산과 관련되는 인증 특성들을 논의한다.
일단 항공기에 포함되는 부분이라면 그것이 엔진이든, 프로펠러이든 전원장치든 관계없이 소프트웨어가 적용되는 경우 DO-178 가이드라인이 그 소프트웨어에 대한 인증을 다루게 된다는 것을 말하고 있다. 그런데 실제로는 소프트웨어로만 한정할 수 없는 부분이 있다.
해석을 보자.
이들 특성을 논의하면서 인증 프로세스의 이해를 돕기 위해 시스템 라이프 사이클과 소프트웨어 라이프 사이클과의 관계가 설명된다. 시스템 안전성 평가와 확인 프로세스를 포함하는 시스템 라이프 사이클 프로세스와 인증 프로세스의 완전한 기술은 의도하지 않는다.
소프트웨어의 상위 레벨이라고 할 수 있는 시스템 라이프 사이클은 기본적으로 DO-178 가이드라인의 범위가 아니다. 하지만 소프트웨어 인증에 대한 설명을 돕기 위해서 시스템 라이프 사이클에 대한 설명이 일부 포함된다고 말하고 있다. 물론 이는 소프트웨어와 관련된 일부 내용으로 제한된다. 이에 대해서는 관련된 절에서 좀 더 자세하게 설명된다.
② 가이드라인이 다루지 않는 범위
소프트웨어 인증과 관련된다고 해서 DO-178 가이드라인에서 모든 것을 설명하는 것은 아니다. 다음과 같은 것들은 DO-178 가이드라인에서 다루지 않는 내용들이라고 명시적으로 밝히고 있다.
1) 인증당국의 관여 정도
인증당국(Certification Authority)이라면 FAA를 생각할 수 있다. 하지만 여기서 인증당국은 FAA를 특정하는 것은 아니다. 실제로 국가에 따라서, 민간 항공기인지 군용 항공기인지에 따라서, 때로는 항공기 자체의 구분에 따라서도 인증당국은 달라질 수 있다. 이런 인증당국의 관여 정도에 대해서 DO-178에서 설명하는 부분이다.
해석을 보자.
이 문서에 포함된 지침은 인증 프로세스에서 인증당국이 관여하는 레벨을 정의하거나 암시하지 않는다.
앞서 설명한 부분 이외에도 소프트웨어의 특성에 따라서 인증당국이 관여하는 정도가 다를 수 있다. 그 중 하나가 소프트웨어 레벨(Software Level)이라는 것인데 소프트웨어 레벨에 따라서 인증당국이 관여하는 엄격함의 정도에 차이가 있을 수 있다. DO-178 가이드라인에서는 그런 것에 대해서 설명하는 부분은 없다.
참고로 인증당국의 관여에 대한 설명은 아래와 같은 별도의 문서(Order 811.49)를 참고해야 한다.
그림 14 Order 8110.49 문서
※ 출처: Software Approval Guidelines / FAA
표지에서 볼 수 있듯 FAA에서 발행한 문서인데 인증당국인 FAA 관점에서 소프트웨어 인증에 대한 보다 상위레벨 관점에서의 지침을 설명하고 있다. 일종의 참고문서라고 보면 된다. 이 문서에는 아래와 같은 제목으로 인증당국의 관여 정도와 그와 관련된 설명이 포함되어 있다.
참고로 FAA에서는 이와 같은 다양한 문서들이 발행되고 있으며 항공기 인증과 관련해서 각각의 목적에 따라서 유용하게 참고할 수 있다.
2) 소프트웨어 운영에 대한 부분
다음으로는 소프트웨어 운영과 관련된 부분이다.
해석을 보자.
소프트웨어 라이프 사이클에 관련된 인증 이슈들만 논의되기 때문에 결과 소프트웨어의 운영 특성은 논의되지 않는다. 예를 들면, 사용자 수정가능 데이터의 인증 특성은 이 문서의 범위를 벗어난다.
말이 좀 어렵지만 정리하면 DO-178 가이드라인은 소프트웨어 개발 과정에서의 인증 이슈들만 다루게 되고 소프트웨어 운영과 관련된 부분들에 대해서는 설명하지 않는다는 뜻이다. 그 예로써 사용자 수정가능 데이터(user-modifiable data)를 들고 있는데 그것에 대한 개발에 대해서는 당연히 DO-178 가이드라인에서 다루게 되지만 그것이 실제로 사용자에 의해서 수정되면서 사용되는 부분에 대해서는 다루지 않는다는 점을 설명하고 있다.
3) 펌웨어(Firmware)에 대한 부분
다음은 우리가 펌웨어(Firmware)라고 부르는 부분이다.
해석을 보자.
이 문서는 펌웨어를 정의하려고 하지는 않는다. 펌웨어는 하드웨어 혹은 소프트웨어로 구분되어야 하고 적용가능한 프로세스에 의해서 언급되어야 한다. 이 문서는 시스템 정의중에 기능들이 소프트웨어 혹은 하드웨어로 할당된다고 가정한다. 하드웨어에 구현되도록 할당되는 기능들에 대해서는 개발 보증을 위한 지침이 제공되는 다른 문서들이 존재한다. 이 문서는 소프트웨어에 할당되는 기능들에 대한 지침을 제공한다.
아마도 펌웨어라는 말은 많이들 들어 봤을 것이다. 사실 필자는 펌웨어라고 하면 당연히 소프트웨어로 인식하고 있다. 하지만 위의 설명에 따르면 무조건 그렇게 보는 것이 아니라 때로는 하드웨어로 구분될 수도 있다고 말하고 있다. 그리고 시스템의 기능을 소프트웨어나 하드웨어 어느 쪽으로든 할당하면서 펌웨어를 둘 중 하나로 인식한다는 것이다. 만약 어떤 기능을 펌웨어로 구현하기로 하고 그 펌웨어를 하드웨어로 인식한다면 그때는 펌웨어를 하드웨어로 구분해서 DO-178이 아닌 DO-254 인증을 받게 된다. 물론 펌웨어가 소프트웨어로 인식된다면 지금 설명하고 있는 DO-178 인증을 받게 된다.
지금까지 설명한 것들 이외에 여러가지가 있는데 나머지에 대해서는 일일이 설명하고 있지는 않다. 정리하면 다음과 같다.
1) 인증당국이 관여하는 레벨에 대한 설명
2) 소프트웨어 운영과 관련된 설명
3) 펌웨어(Firmware)에 대한 설명
4) 지원자(회사)의 조직 구조에 대한 설명
5) 지원자와 납품업체 간의 상업적인 관계
6) 인력과 관련된 인증 기준에 대한 설명
(3) 다른 인증 관련 문서들과의 관계
항공기에 탑재되는 소프트웨어에 대해서 DO-178 인증을 받더라도 경우에 따라서 다른 문서 혹은 지침들을 참고해야 할 수도 있다. 실제로 그런 경우가 많고 그 모든 경우의 수를 하나하나 구분해서 설명하는 것은 불가능하다. 그에 대한 설명이다.
해석을 보자.
감항 요구사항에 더해서 소프트웨어에 대한 다양한 국가적 그리고 국제적 표준이 이용 가능하다. 일부 단체에서는 이러한 표준의 준수가 필요할 수 있다. 그러나 특정한 국가 혹은 국제 표준을 거론하거나 이들 표준들이 대안으로 혹은 이 문서에 추가해서 사용되는 방법을 제안하는 것은 이 문서의 범위를 벗어난다.
참고로 필자의 지금까지 경험으로 보자면 DO-178에 대해서 제대로 이해하게 되면 일종의 응용의 개념으로 다른 기준들과의 조합을 만들어 낼 수 있다. 그것이 부분적인 대체 방법이 될 수도 있고 상호 보완재가 될 수도 있다. 결국 DO-178을 제대로 이해하는 것이 중요하다.
(4) DO-178 가이드라인을 사용하는 방법
DO-178 가이드라인을 사용하면서 유의해야 할 사항을 16가지로 정리해서 제시하고 있다. 원문은 생략하고 해석을 기준으로 정리해 보자.
1) 이 가이드라인은 국제적인 항공단체들에 의해서 사용되는 것을 염두에 두고 있다. 따라서 특정 국가에 한정된 용어대신 일반적인 용어가 사용된다.
2) 이 가이드라인은 법적으로 강제되지 않으며 항공 업계의 공통된 의견을 나타낸다. 그런 의미에서 “must”가 아닌 “shall”을 사용한다.
3) 이 문서를 준용하기로 받아들이는 지원자 혹은 공급자는 모든 적용가능한 목표(Objective)를 만족해야 한다. 목표에 대한 내용은 부속물(Annex) A를 소개하는 절에서 자세하게 설명된다.
4) 지원자는 목표를 만족하는 활동들에 대한 계획을 세워야 한다. DO-178에서는 계획이 상당히 중요하며 계획문서에 대한 세부적인 내용은 다른 절에서 자세하게 설명된다.
5) 지원자는 추가로 고려되는 부분을 소프트웨어 계획과 표준에 작성해야 한다. DO-178에서 제시하는 부분들을 포함해서 개발 과정에서 추가로 고려하는 부분이 있다면 계획과 표준 문서에 그 내용이 작성되어야 한다.
6) 지원자는 계획에 따른 활동을 수행하고 목표를 만족한다는 것을 보여주기 위해 Section 11에 나오는 증빙을 제공해야 한다.
7) 독자의 이해를 돕기 위한 설명이 포함되어 있다.
8) Section 11에는 인증과정에서 만들어지는 데이터를 포함하고 있고 문서 전반에 대문자로 시작하는 형태로 사용되고 있다.
9) Section 12는 추가적인 고려사항을 설명하고 있는데 모든 프로젝트에 해당하는 것은 아니다. 추가적인 고려사항에는 이전에 개발된 소프트웨어(Previously Developed Software), 툴인증(Tool Qualification), 대체 방법(Alternative Methods) 등이 있다.
10) 부속물(Annex) A는 목표의 적용에 대해서 상세하게 보여준다. 이에 대해서는 별도의 절에서 자세하게 설명된다.
11) 예시가 사용되는 경우가 있는데 이는 부가 설명일 뿐이며 그 예시가 선호되는 방법이라는 것을 의미하지는 않는다.
12) 항목의 리스트가 모든 것을 포함하는 것은 아니다.
13) 이 문서에 사용된 유의사항(note)은 부가적인 설명을 위한 것이다.
14) 섹션의 구분은 “section X.0”의 형태로 사용된다.
15) 이 가이드라인에 대한 부속서가 존재할 수 있으며 지원자는 부속서의 사용여부, 적용방법에 대해서 인증당국의 승인을 받아야 한다.
16) 모든 계획된 활동의 수행과, 관련된 증빙의 확보에 의해서 모든 적용가능한 목표를 만족하는 것으로 인증을 준수하게 된다.
일반적인 내용들이어서 자세한 설명은 필요 없을 것 같고 한 가지 반드시 기억해야 할 부분은 결국 이 가이드라인을 적용하는 것은 지원자의 선택이자 책임이라는 점이다. 그리고 그 모든 것을 인증당국으로부터 승인받을 수 있어야 한다. 그것을 도와주는 것이 바로 이 가이드라인이다.
(5) 문서 개요
앞서 보았던 문서 전반의 구성에 대한 그림이 마지막으로 제시되고 있다. 여기서는 일단 이런 구성이구나 라는 정도로 구경만 하고 넘어가고 가이드라인 전체를 학습한 이후에 다시 한 번 이 그림을 보면 훨씬 더 쉽게 이해가 될 것이다.
'잡談 > DO-178 기본' 카테고리의 다른 글
9. DO-178과 소프트웨어 라이프 사이클 (Section 3.0) (0) 2019.01.06 8. DO-178과 시스템의 관계 (Section 2.0) (0) 2019.01.06 6. DO-178 가이드라인 (0) 2019.01.06 5. DO-178 준용의 기준 (0) 2019.01.06 4. DO-178 인증과 준용 (0) 2019.01.06 댓글