메뉴 건너뛰기

미항공우주국이 밝힌 필수안전 코드 개발을 위한 열 가지 원칙


NASA는 지난 수십 년 간 우주탐사를 위한 매우 중대한(mission-critical) SW개발 프로젝트를 수행해 왔는데, 그 간의 개발경험을 기반으로 2015년 1월 신뢰성 있는 소프트웨어 확보를 위한 코드가이드라인을 발표함. 이 가이드라인에서는 코드 품질을 유지하기 위한 엄격한 코딩 규칙과 소프트웨어품질의 균일화 및 인적 오류 최소화를 위한 C 코드 작성규칙을 설명하고 있음. 본 원고에서는 이 코드가이드라인이 명시하는 10가지 원칙과 그 근거를 간략히 제시함.


▶ 서론


2015년 1월, NASA는 신뢰성 있는 소프트웨어 확보를 위한 코드 가이드라인 <The Power of Ten?Rules for Developing Safety Critical Code>을 발표함(NASA/JPN연구소)


▶ 신뢰성 있는 소프트웨어 확보를 위한 10가지 원칙


원칙 1 : 모든 코드가 아주 단순한 제어 흐름(control flow) 구조를 갖도록 제한해야 함. 
원칙 2 : 모든 루프는 한정된 횟수(고정된 상한, fixed upper bound) 이내로 실행되어야 함. 
원칙 3 : 초기화 이후 함수 중간에 동적 메모리 할당(dynamic memory allocation)을 사용하지 말 것. 
원칙 4 : 모든 함수의 길이는 하나의 구문과 하나의 선언(정의)가 각각 한 줄로 표현되는 표준 레퍼런스 형식으로 작성.

원칙 5 : 함수 당 최소 두 개 이상의 assertion 구문이 있어야 함. 
원칙 6 : 데이터 객체는 반드시 가장 작은 수준의 범위(scope)에서 선언되어야 함. 
원칙 7 : 무효가 아닌(non-void) 함수의 반환 값은 각각의 호출 함수에 의해 체크되어야 함.

원칙 8 : 프리프로세서의 사용은 헤더 파일의 추가와 단순한 매크로 정의에만 국한되어야 함.

원칙 9 : 포인터의 사용은 최대한 제한되어야만 함.

원칙 10 : 반드시 모든 코드를, 개발 첫날부터, 컴파일러의 모든 경고 기능을 허용한 가장 민감한 상태에서 컴파일해야 하며, 모든 코드는 이러한 세팅에 기반 해 경고 없이 컴파일되어야만 함.


자세한 내용은 첨부파일 참고하세요.요기

=출처: NIPA 소프트웨어공학센터=

?

 


  1. TOP4 테스트 자동화(Test Automation) 플랫폼

    요즘 소프트웨어는 고객의 요구에 민첩하게 대응하고 고객 니즈를 반영하여 짧은 주기의 배포 사이클을 중요하다. 이러한 배포 주기와 함께 반드시 보장해야할 것이 바로 소프트웨어 품질이다. 소프트웨어 품질 보장을 위해 CI, CD, DevOps의 꽃은 테스트 자동...
    Date2018.07.13 ByTom Reply0 Views2973
    Read More
  2. 소프트웨어 품질 문제 해결을 위한 지속적인 코드 인스펙션

    소개소프트웨어 품질은 모든 기업의 관심사가 되고 있다. 비즈니스 핵심 가치를 실행하는데 소프트웨어의 역할이 점차 확대되고 있기 때문이다. 일반적으로 소프트웨어 품질은 외부 혹은 내부 품질로 구성된다. 외부 품질 즉 기능적 품질은 소프트웨어가 ...
    Date2018.01.30 ByTom Reply0 Views2336
    Read More
  3. No Image

    AWS 기반 웹 및 애플리케이션 서버 부하 테스트: A to Z

    웹 서핑하다가 괜찮은 글이 있어서 링크 공유 합니다. :) https://aws.amazon.com/ko/blogs/korea/how-to-loading-test-based-on-aws/
    Date2017.01.31 ByPSEG Reply0 Views2280
    Read More
  4. No Image

    유용한 오픈 소스 테스트 관리 도구들

    이 문서는 무료로 사용할 수 있는 오픈 소스 테스트 관리를 소개한다. 테스트 관리 도구는 팀에게 아주 중요한 역할을 한다. 이러한 툴들은 팀 내에서 요구사항 수집하고 이 수집된 요구사항을 기반으로 테스트 케이스 설계를 지원하고 요구사항과 테스트 케이...
    Date2016.05.31 ByTom Reply0 Views5299
    Read More
  5. 오픈소스 Java 테스트 프래임웍 7선

    오픈소스 Java 테스트 프래임웍 7선 1. Arquillian Integration, acceptance 테스트 자동화에 적합한 도구이다. 빌드, 테스트 할 때 tun-rime을 관리해주기 때문에 개발자가 run-time을 별도로 관리하지 않도도 된다. 컨테이너, 테스트케이스, 클래스와 ...
    Date2016.04.09 ByPSEG Reply1 Views5989
    Read More
  6. 대시보드를 위한 오픈소스(Open Source) 차트(Chart) 라이브러리

    이 게시물은 무료로 사용할 수 있는 오픈 소스 차트 라이브러리(Open Source Chart Library)에 대해서 소개합니다. 최근 ALM 관련 컨설팅을 하면서, 고객사에서 ALM 관련 데이터 수집과 데이터 표현에 즉 품질 대시보드대에 대한 관심이 많은 편인데, 오...
    Date2015.12.04 ByTom Reply1 Views25848
    Read More
  7. 임베디드 시스템 코드리뷰 체크리스트

    이 문서는 카네기 멜론 대학의 Gautam Khattak, Philip Koopman 문서인 Embedded System Code Review Checklist 버전 1.01을 번역하였습니다. 오역이 있을 수 있으니, 아래 링크를 통해 원문을 확인해 보시기 바랍니다. http://users.ece.cmu.edu/~koopman/ess...
    Date2015.09.01 ByTom Reply0 Views6471
    Read More
  8. RedmineCRM 무료 Theme 5종 비교

    이번 게시글은 RedmineCRM에서 제공하는 무료 Theme 5종을 Preview합니다. 예전에 RedmineCRM의 Theme는 로그인 없이 다운로드 했던것 같은데, 이번에 다운로드를 할려고 하니 회원가입을 했기에, 한번 모든 Theme를 다운로드 받고 실제 Redmine 프로젝트...
    Date2015.08.24 ByTom Reply0 Views6136
    Read More
  9. 미항공우주국이 밝힌 필수안전 코드 개발을 위한 열 가지 원칙

    미항공우주국이 밝힌 필수안전 코드 개발을 위한 열 가지 원칙 NASA는 지난 수십 년 간 우주탐사를 위한 매우 중대한(mission-critical) SW개발 프로젝트를 수행해 왔는데, 그 간의 개발경험을 기반으로 2015년 1월 신뢰성 있는 소프트웨어 확보를 위한 ...
    Date2015.03.17 BySW공학센터 Reply0 Views6045
    Read More
  10. 2014년도 공개소프트웨어 기업 편람

    2014년도 공개소프트웨어 기업 편람이 발간되었습니다. 한국공개소프트웨어활성화포럼에서 발간한 본 편람에는 공개SW의 개념 및 특징과 함께 2014년도 기준, 공개SW 기업들의 기본 정보와 주요 제품 및 서비스, 특기사항 등이 수록되어 있습...
    Date2015.03.11 BySW공학센터 Reply0 Views3571
    Read More
Board Pagination Prev 1 2 3 4 Next
/ 4