잡談/DO-178 기본

19. SDP(Software Development Plan) (Section 11.2)

sudam 2019. 1. 7. 15:49

소프트웨어 개발 계획으로 번역할 수 있는 SDP 문서는 다음과 같은 내용을 담고 있다.


 

해석을 보자.

 

소프트웨어 개발 계획(SDP)은 소프트웨어 개발 프로세스 목표를 만족하기 위해 사용되는 소프트웨어 개발 절차와 소프트웨어 라이프 사이클의 설명이다. 그것은 PSAC에 포함될 수 있다.

 

기본적으로 소프트웨어 개발 절차와 라이프 사이클에 대한 내용을 작성하게 된다. 이때 작성의 초점은 소프트웨어 개발 프로세스 목표를 따르는 것이다. 앞서 아래와 같이 DO-178 가이드라인의 부속물(Annex) A에 목표(Objective)/활동(Activity)/출력(Output)이 나오는 것을 본 바가 있다.

 

 

위의 설명에서 또 하나 주목할 부분은 ‘PSAC에 포함될 수 있다는 부분이다. 앞에서 PSAC에 대한 설명이 있었지만 PSAC은 인증 과정 전반에 대한 내용을 담고 있다 보니 원칙적으로는 개발 과정에 대한 내용 역시 포함되어야 한다. 하지만 그것을 모두 작성하자면 단순히 PSAC 문서의 전체 분량이 많아지는 것 뿐만 아니라 지금 설명하고 있는 SDP 문서와도 중복되는 결과를 가져오게 된다. 그래서 PSAC에서는 주로 관련 문서를 참조하는 형태로 작성하게 된다. 바로 그 부분을 설명한 내용이다.

 

이제 SDP에 포함되어야 할 내용을 하나하나 살펴보자.

 

a.      표준(Standards)

 

먼저 가이드라인의 설명은 다음과 같다.


 

해석을 보자.

 

a. 표준: 프로젝트에 대한 소프트웨어 요구사항 표준, 소프트웨어 설계 표준, 그리고 소프트웨어 코드 표준의 식별. 또한 그러한 표준들이 다르다면 COTS 소프트웨어를 포함하는 이전에 개발된 소프트웨어에 대한 표준으로의 참조

 

다른 절에서 DO-178 가이드라인에는 아래와 같은 표준이 있다고 설명한 바가 있다.

 

-       Software Requirements Standards (Section 11.6): 소프트웨어 요구사항 표준

-       Software Design Standards (Section 11.7): 소프트웨어 설계 표준

-       Software Code Standards (Section 11.8): 소프트웨어 코드 표준

 

위의 표준이 존재한다는 것은 개발을 하면서 요구사항, 설계, 코드에 대해서 표준을 따르겠다는 것을 의미한다. SDP에는 그것을 공식적으로 선언(?)하는 것이라고 할 수 있다. 여기서 주의할 점은 이때 반드시 실제로 따르게 되는 표준이 언급되어야 한다는 점이다. 보통 DO-178 인증을 준비하면서 위의 표준 문서들을 새롭게 작성하는 경우가 많은데 만약 기존에 유사하게 따르고 있던 규칙이나 규정이 있다면 비록 명칭이 다르더라도 그것을 그대로 사용해도 전혀 문제될 것이 없다. 혹은 조금 변경해서 사용할 수도 있을 것이다.

 

여기서의 핵심은 형식적으로 위의 표준문서들이 갖춰져야 된다는 것이 아니라 실제로 따를 수 있는, 따르고 있는 표준문서들이 갖춰지고 그것이 SDP에서 명확하게 제시되어야 한다는 점이다. 여담이지만 이런 점도 DO-178 인증의 실전적인 면을 엿볼 수 있는 하나의 예시라고 할 수 있다.

 

b.      소프트웨어 라이프 사이클(Software life cycle)

 

SDP에서 소프트웨어 라이프 사이클에 대한 부분은 특히 전이기준(Transition Criteria)’을 주목해야 한다. 가이드라인의 설명이다.


 

해석을 보자.

 

b. 소프트웨어 라이프 사이클: 소프트웨어 개발 프로세스에 대한 전이기준을 포함하는 프로젝트상에 사용될 특정한 소프트웨어 라이프 사이클을 형성하는데 사용되기 위한 소프트웨어 라이프 사이클 프로세스의 설명. 이 설명은 소프트웨어 라이프 사이클 프로세스의 적절한 구현을 보장하기 위해 필요한 세부사항을 제공한다는 점에서 PSAC에서 제공되는 요약과 차이가 있다.

 

전이기준의 정의에 대해서는 다른 절에서 살펴본 바가 있는데 결국은 다음 프로세스로 넘어갈 수 있는지를 판단하는 기준이다. SDP에는 이것이 반드시 작성되어서 개발자, 인증당국을 포함한 인증관련자들이 모두 참조할 수 있어야 한다. PSAC에는 이러한 내용이 포함되지 않는다는 점에서 SDP와의 차이점이 있다는 점도 설명하고 있다.

 

c.      소프트웨어 개발 환경(Software development environment)

 

소프트웨어 개발과 관련된 각종 개발 환경에 대한 내용을 작성하는 것으로 다음과 같은 것들이 포함될 수 있다.

 

1.     요구사항 개발 방법 및 툴

2.     설계 방법 및 툴

3.     코딩 방법, 프로그래밍 언어, 코딩툴, 만약 자동 코드 생성툴이 사용된다면 옵션과 제약사항

4.     컴파일러, 링커 편집기, 로더

5.     툴이 사용되는 하드웨어 플랫폼 정보

 

참고로 여기서 나오는 툴에 대해서는 툴인증(Tool Qualification)에 대한 부분도 고려되어야 한다는 점을 기억하자. 툴인증과 관련된 내용은 별도의 절에서 설명한다.

 

이상이 SDP에 작성되어야 할 내용으로 DO-178 가이드라인에서 제시하는 내용이다 PSAC이 인증에 초점을 맞추어서 작성하는 문서라면 SDP는 개발에 초점을 맞추어서 작성하는 문서로써 개발자가 개발과정에서 언제든 SDP를 참조할 수 있도록 실질적인 내용으로 작성되어야 한다.