백성현 정보통신산업진흥원 SW공학센터 공학기술팀 팀장


▲ 백성현 정보통신산업진흥원 SW공학센터 공학기술팀 팀장





개발자들의 세계, SW개발과정

SW 개발은 개발자들의 개인역량에 의해 크게 좌우된다. 때문에 외부에서 이를 측정, 관리하기란 여간 어렵지 않다. 프로그래밍이라는 전문 영역에 대한 진입 장벽이 높을 뿐만 아니라, 제조업이나 건설업과는 달리 매번 다른 요구사항의 다른 제품을 개발해야 되기 때문에 반복할 수 있는 동일한 공정을 수립하거나 적용하기가 쉽지 않다.
이는 결과적으로 현재 진행 상황에 대한 정확한 측정이나 검증을 불가능하게 만든다. 결국 SW의 개발과 관리는 철저하게 개발자들의 손에 의해서만 이루어지게 되며, 그 진행 과정은 밖에서는 보이지 않는 블랙박스가 된다. 그리고 이는 SW 비주얼라이제이션이 해결해야 할 과제이다.
이번 호에서는 SW 비주얼라이제이션이 실무에 적용될 경우 이를 개발자 측면에서 바라보았을 때 어떤 활동이 이루어지게 되며, 어떤 효과를 가지게 되는가를 살펴보도록 한다.


SW 개발 관리의 실제 현황

SW 비주얼라이제이션에서 제시하는 SW 공학 프로세스(본지 1회에서 소개)는 요구사항 관리, 구현, 테스트, 형상관리의 4단계로 구성되어 있다. 하지만 도메인, 개발 언어, 플랫폼 환경에 따라 방법론이 달라지는 실제 업무와 그대로 대응되지는 않는다. 특히 우리나라의 중소기업 SW개발자들은 개발 일정을 중시한 나머지 SW의 품질이나 SW공학 프로세스에 대해서 단계적으로 관리하지 못하고 있는 실정이다.

이런 현실에서 SW 비주얼라이제이션의 적용은 단순한 방법론이나 시스템의 도입이 아니라 여러 가지 SW공학적 요소들과 부수적인 효과를 동반하게 된다. 그 중에는 개발 일정의 차질과 같은 부작용도 있지만 그와 동시에 오랜 경험을 통해서만 알 수 있는 개발 노하우를 습득하게 되거나 고질적인 문제의 해결의 실마리를 발견하는 되는 경우도 있다.


▲ SW개발 단계의 블랙박스 : 구현






SW공학 지표와 가시화

이처럼 개발자들만이 내부적으로 관리해왔던 SW개발 프로세스를 밀착 관리하고 검증하기 위해서는 이를 체계적으로 수치로 측정할 수 있는 SW공학지표의 도입과 가시화가 필수적이다. SW공학지표 중 코드 커버리지(Code Coverage)의 예제를 통해 SW 비주얼라이제이션의 실무 적용에 대해 알아보도록 하겠다. 코드 커버리지(Code Coverage)란 전체 소스 코드 중에서 실제로 실행된 코드 라인 수를 비율(%)로 측정하는 지표로, 소스 코드를 얼마나 효율적으로 작성했는지를 판단할 수 있는 기준으로 사용된다. 만약 코드 커버리지가 낮으면 실행되지 않는 코드(dead code)가 많다는 것으로, 가독성이 낮고 코드 수정에 대한 부작용을 예측하기 힘들며 유지보수가 어렵다는 것을 의미한다.

일반적으로 개발자들은 자발적인 코드 리뷰나 소스 코드의 최적화 수정을 통하여 이를 개선해 나가지만 매번 코드 커버리지를 계산하거나 기록해두는 체계적인 관리 활동은 하지 않는 편이다. 개발자들 스스로는 코드 커버리지의 중요성은 파악하고 있으나 이를 측정하는 방법이나, 측정하게 해주는 도구의 사용법을 모르는 경우가 많으며, 그런 활동들을 추진하기 위한 투자가 부족한 상태이다.

SW 비주얼라이제이션 시스템에서는 코드 커버리지를 측정하기 위한 도구로써 EMMA와 gcov를 각각 JAVA와 C언어에 대응하여 구성하였으며, 그 중 gcc와 함께 제공되는 공개 도구인 gcov의 적용 과정에 대해서 살펴보도록 한다.



<이하 상세 내용은 컴퓨터월드 6월 호 참조>

저작권자 © 아이티데일리 무단전재 및 재배포 금지