SW development reference model


DO 178C/DO 278A에서는 SW의 개발 절차(process)의 기준을 정의해 놓진 않았다. ISO26262도 마찬가지이다.

그런데, 26262의 소프트웨어 개발 참조 모델을 사용하여 소프트웨어 개발 방식을 쉽게 설명할 수 있다.

*주의: SW lifecycle은 customizing(혹은 tailoring이라는 표현을 더 많이 사용하긴 하지만)이 가능하다.

sw reference model

  1. 계획단계

프로젝트 구성원들에게 R&R을 할당하고, 누가 언제 어디서 무엇을 어떻게 할 것인지를 계획한다.

각종 계획서가 계획단계에서 나온다. 계획서의 이름이나 scope는 참조 표준에 따라 다를 수 있다.

  • 개발 계획
  • 검증 계획(시험 계획을 포함한다.)
  • 형상관리 계획
  • 품질보증 계획
  • 각각의 검토보고서
  1. 소프트웨어 요구사항 정의단계

소프트웨어의 제품의 인터페이스를 정의하고, 어떤 기능을 구현할 것인지를 정의한다. 다분히 이론적인 표현이긴 하지만.. What관점에서 기능을 정의한다. 주요 산출물은 아래와 같다.

  • 소프트웨어 요구사항 명세서
  • 소프트웨어 요구사항 검토 보고서
  1. 소프트웨어 설계 단계

요구사항으로부터 어떻게 구현할지에 대한 개략적 설계 및 상세 설계를 how관점에서 구현 방법을 기술한다. 주요 산출물은 아래와 같다. 단위 설계 명세서는 SW의 function(혹은 class)를 implementation 가능할 정도로 상세하게 표현한다.

  • 소프트웨어 아키텍처 설계 명세서
  • 소프트웨어 단위 설계 명세서
  • 각각의 검토 보고서
  1. 구현 단계

설계서를 바탕으로 코드 구현을 수행한다. 계획단계에서 수립한 코딩 규칙에 대한 분석도 수행한다.

  • 소스코드
  • 정적 분석 결과(coding rule 분석 결과)
  • 각각의 검토 보고서
  1. 소프트웨어 단위 시험 단계

unit(C에서는 function, C++에서는 class)에 대해 unit만 따로 떼어서 unit이 구현한 logic에 대해서 시험한다. unit과 관련된 다른 unit은 stub( or fake unit)을 만들어서 시험 대상 unit의 logic을 시험하는데 문제가 되지 않도록 한다.

  • 소프트웨어 단위 시험 명세서
  • 소프트웨어 단위 시험 명세 검토 보고서
  • 소프트웨어 단위 시험 결과서
  • 소프트웨어 단위 시험 결과 검토 보고서
  1. 소프트웨어 통합 시험 단계

단위 시험과 통합시험은 병렬로 진행할 수도 있는데, 반드시 만족해야만 하는 규칙이 있다. 통합 시험의 대상은 단위 시험이 완료된 단위(unit)를 대상으로만 한다. 즉 unit1~unit100이 있다고 가정할 떄, 현재 시점에서 unit 1~20까지만 단위 시험이 완료되었다면 unit 1~20에 대해서만 통합이 가능하다. 단위 시험에서 수행한 일부 stub은 실제 unit을 대체하여 통합된 unit들의 logic을 시험하는 방법이다. 몇개씩 통합해야 하는지에 대한 규정은 없다. 한번에 100개를 통합할 수도 있고, (theoretically !), 1개씩 통합할 수도 있다.

  • 통합 시험 명세서
  • 통합 시험 명세 검토 보고서
  • 통합 시험 결과서
  • 통합 시험 결과 검토 보고서
  1. 소프트웨어 시험 단계

통합이 완료되면 타겟에 로드할 수 있는 이미지가 생성된다. 이미지(혹은 바이너리)를 타겟에 올려서(혹은 바이너리를 host(, or pc)에서 실행시켜서) 기능을 시험한다.

  • 소프트웨어 시험 명세서
  • 소프트웨어 시험 명세 검토 보고서
  • 소프트웨어 시험 결과서
  • 소프트웨어 시험 결과 검토 보고서
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s