프로그래밍 코드 작성

프로그래밍 코드 작성프로그래밍 코드 작성법에 대해 서술한다.

코드 검수의 필요성편집

소프트웨어 개발 종료후에 오류를 수정하는 것은 요구단계 분석과 설계 단계에서 소요되는 노력과 비용의 수십배가 더 소요되며 대개의 경우 전체 오류의 80% 는 소수의 중요한 소프트웨어 오류로부터 발생하게 될 것이다.

이러한 필요성과 중요성에 비해

  • 개발자가 정해진 시간에 출시하는 데 일정이 촉박하여 코드를 천천히 검토할 여유가 없음
  • 검수과정에 대한 사내의 정식적인 규정이 없음
  • 코드 검수에 개인적으로 많은 시간이 소요되나 이를 통해 개발자에게 돌아오는 보상이 없음

의미와 종류편집

소프트웨어 오류를 검출하는 역할을 그 동안 해왔던 것처럼 개발자 개인의 노력과 인내의 항목으로 치부하는 것은 소프트웨어 개발과 개발 능력향상에 아무런 도움이 되지 않는다. 이러한 오류방지와 검출을 회사내 프로세스의 중요한 단계로 설정하고 이를 개발 단계에서 기계적으로 적용하게 되어야 내장형 소프트웨어에서 오류가 획기적으로 감소 될 수 있을 것이다. 개발자가 개발과 동시에 회사에서, 혹은 개발실에서 설정한 수십 개~ 수백 개의 코딩을 적용하여 본인이 작성한 소프트웨어내에 오류를 유발할 수 있는 부분이 포함되어 있는지 확인할 수 있도록 설정되는 것이 바로 코딩 룰이다.

이러한 코딩 룰의 대표적인 예는 다음과 같다.

  • 변수를 초기화 하지 않고 사용할 경우
  • 0을 사용하여 수식을 나누는 오류의 경우
  • 배열의 범위를 벗어나 사용할 경우
  • 메모리 프리를 하지 않을 경우
  • if와 else가 쌍을 를 이루지 않는 경우
  • if ~ else의 괄호를 빼먹는 경우
  • 구조체의 선언이 상이한 경우
  • 변수의 Type이 다르게 사용되는 경우

위 언급된 여러 경우의 상황을 룰로 만들어 상용화된 코딩 룰 검출 소프트웨어에 설정한 후 실행하면 짧은 시간내에 위반된 사항을 보고 해주어 개발자가 자신의 코드에서 위반된 개수와 고쳐야 될 위치를 정확히 알게 해 줄 수 있다. 이러한 코딩 룰을 개발자가 개인적으로 정리할 수도 있으나 이미 상용 솔루션이 있어 국제적으로 검증된 코딩 룰을 포함하여 시장에 출시되어 있으므로 각 회사나 개발단위에서 이러한 상용 솔루션을 사용하여 적용하면 개발 초기단계에서 검수 단계까지 광범위하게 적용할 수 있을 것이다. C 의 경우 약 1,300개의 룰 이 상용화 솔루션 에 정의되어 있으며 C++의 경우는 약 850개 정도가 포함되어 있다. 또한 각 산업 영역 별로 별도로 자신들의 중요한 룰을 따로 정의하여 사용하고 있다.

  • 자동차 산업: MISRA 코딩 룰 141개로 구성된 자동차 소프트웨어를 위한 룰
  • 국방, 항공: JSF 코딩 룰

기대 효과편집

  • 개발자에게는 기술적 투명성과 자신이 작성한 소프트웨어에대한 신뢰성 확보
  • 테스트 엔지니어에겐 손쉬운 테스트를 가능하게 함
  • 코드의 가독성이 현저히 개선되어 개발자간의 코드 공유가 가능
  • 코드 이식성이 대폭 상되어 다양한 하드웨어에 코드를 손 쉽게 이식 할 수 있게 됨
  • 코드가 최초 요구사항에 얼마나 적합하게 작성되었는지 점검

같이 보기편집

참고 문헌편집

  1. IEEE Transaction on Software engineering Vol. SE-12 No. 7 July 1986
  2. IBM systems Journal Vol 15 No.3 1999
  3. 2001 The Gassle group "A guide to code inspection"