Airac Family Seal QnA on Airac5
for innovative managers

Airac5 는 무엇인가?
C 소프트웨어의 메모리 접근 오류(buffer overrun)가 일어날 수 있는 소스의 위치를 미리 모두 자동으로 찾아주는 소프트웨어 시스템이다.

C 프로그램에서 메모리 접근은 항상 할당된 메모리의 내부에 국한되야 한다. Airac5는 주어진 C 프로그램의 모든 실행 상황을 분석해서, 할당된 메모리를 벗어나서 접근하는 경우(buffer overrun)들을 미리 모두 찾아준다.

누구를 위한 시스템인가?
무결점 C 프로그램을 최대한 빨리 개발해야 하는 개발자, 혹은 C 프로그램 오류를 최대한 이른 시간에 찾아내고 싶은 소프트웨어 품질 검증 팀.

특히, 기존의 C 프로그램의 치명적인 오류들이 너무 늦게(테스트 중에) 발견되는 고비용을 개선하고 싶은 경우, 혹은 무결점 C 프로그램들을 짧은 시간안에 자주 개발해내야 하는 경우에 유용한 시스템이다.

테스트와 어떻게 다른가?
테스트의 문제점들을 보완해 준다. 테스트는 프로그램을 실행시켜야 한다는 것과, 찾고자 하는 오류를 모두 찾을 수 없다는 문제가 있다. Airac5는 대상 프로그램을 실행시키지 않으면서 찾고자 하는 오류들은 모두 찾아준다. 프로그램의 소스만 있으면 된다.

프로그램을 실행시킬 수 있는 환경이 준비될 때 까지 오류 검출이 늦춰지는 것은 바람직하지 않다. 테스트는 또 유한개의 입력에 대해서만 제대로 작동된다는 것을 확인할 수 있을 뿐이다. 가능한 입력이 무수히 많다면 테스트는 모든 상황을 커버할 수 없다.

핵심 기술이 무엇인가?
정적 프로그램 분석 (static program analysis) 기술이다. 이 기술은 주어진 프로그램의 모든 실행상황을 실행하기 전에 미리 엄밀하게 확인하는 기술이다.

특히, 그 확인 과정이 또 다른 소프트웨어(프로그램 분석기)를 통해서 완전히 자동으로 이루어진다. 분석기 소프트웨어에 입력으로 들어가는 것은, 검증할 소프트웨어 소스이다.

이 기술은 지난 30년 동안 연구가 무르익어 이제 실제 오류검증에 적용되기 시작하였다. 우리는 지난 10년 이상 이 분야 연구를 수행해왔고, 지난해 부터 상용을 목표로 개발해 온 시스템이 Airac5이다.

제한점이나 숨은 비용은?
대상 오류들이 있으면 모두 찾아주지만, 실제 오류가 아닌데도 오류라고 판단하는 경우(false alarm)가 있다. 예를들어, 실제 오류가 10군데라면 그 장소들을 포함해서 15군데를 찾아주는 격이다.

이러한 허위경보를 0개로 줄이는 것은 불가능하다. 오류라고 판정된 지점마다 허위경보인지 아닌지를 사람이 확인하는 과정은 필요하다.

Valgrind나 Rational PurifyPlus와는 어떻게 다른가?
ValgrindPurifyPlus는 실행시키면서 오류를 찾아주는 도구들이다. 테스트를 통해 오류를 찾는 것과 같다. "runtime program analysis"라고 한다. 테스트의 문제점들을 고스란히 가진다.

Airac5는 실행시키지 않고 모든 오류들을 소스를 분석해서 찾아준다. "static program analysis"기술의 특징이다.

그 기술에 기반한 경쟁 제품들과 비교하면?
정적 프로그램 분석기술에 기반해서 오류 자동검증기에 특화된 회사들은 대표적으로 두개가 있다. 프랑스 Ecole Polytechnique 출신의 Polyspace와 미국 스탠포드대 출신의 Coverity이다.

Coverity의 제품은 목표한 오류(buffer overrun)를 모두 찾아주지도 못하고 허위경보도 있다. Polyspace의 제품은 분석비용이 크고 허위경보가 많다. Airac5는 Coverity가 찾아내는 오류를 포함해서 Coverity가 놓치는 것까지 모두 찾아주고, Polyspace보다는 분석비용과 허위경보가 적다.

시험적으로 사용 가능한가?
Airac5홈에서 실행화일을 내려받아 사용해 볼 수 있다. 온라인 데모도 그곳에서 제공된다. 공개된 버젼은 실제 버젼보다 제한점이 있다.
완전한 버젼을 사용하려면?
다양한 라이센스 계약을 통해 구매할 수 있다. Airac5 자체뿐 아니라 장기적인 "whole product service"를 구매할 수 있다. 연락처.

© Copyright 2005, 2006 RopasWork Inc., Programming Research Lab., Seoul National University