분석자동화 도구 세트는 CASE(Computer Aided Software Engineering)를 묻는다. CASE가 소프트웨어 개발 과정을 자동화해 생산성·품질·표준화를 높이는 도구라는 점, 그리고 CASE가 하지 않는 일(방법론 창조, 언어 번역, 최종 사용자 교육)을 구분하는 문제가 중심이다.
CASE는 Computer Aided Software Engineering의 약자로, 소프트웨어 개발 과정을 컴퓨터로 자동화하고 지원하는 도구와 환경을 말한다. 소프트웨어·하드웨어·데이터베이스·테스트를 통합해 개발 환경을 조성한다는 뜻으로 출제되기도 한다. 목적은 개발 생산성 증대, 표준화된 방법론 적용, 오류 감소이며, 자동화를 통해 개발 기간을 단축하고 비용을 줄이고 품질을 높인다.
CASE는 개발 단계에 따라 상위 CASE, 하위 CASE, 통합 CASE로 나눈다. 상위 CASE는 요구사항 분석과 설계 단계를, 하위 CASE는 코딩·테스트·문서화 같은 구현 단계를 돕고, 통합 CASE는 위 둘을 모두 포함해 개발 전 주기를 아우른다. 보기 ①이 '상위·중위·하위 CASE'로 분류하면, 일반적인 분류는 상위·하위·통합이므로 ①의 분류 기준이 틀린 설명이 된다. '중위 CASE'라는 표현은 표준적인 용어가 아니다.
CASE의 경계를 묻는 문제도 많다. CASE는 개발 방법론 자체를 만들어 내지 않는다. 방법론은 개발자가 선택하고 적용하는 접근 방식이고, CASE는 그 방법론을 따라 작업을 지원할 뿐이다. 프로그래밍 언어를 다른 언어로 번역하는 일은 컴파일러나 인터프리터의 역할이지 CASE의 기능이 아니다. CASE는 개발자를 돕는 자동화 도구이므로 최종 사용자를 위한 사용 설명서나 교육 패키지를 제공하는 도구도 아니다. 디자인 지식을 보완·증폭하는 도구이므로 지식이 없는 상태에서 쓰면 효과가 떨어진다.
CASE의 장점은 자동화를 통한 품질 향상·기간 단축·비용 절감이고, 약점은 벤더마다 다른 표준과 포맷 때문에 생기는 낮은 호환성이다. '대부분의 CASE 툴이 호환된다'는 서술은 틀린 쪽으로 판정한다. 약어도 함께 구분한다. CAD는 컴퓨터를 이용한 설계, CAM은 제조, CAI는 교육이고, 소프트웨어 개발 환경은 CASE다.
예제
선지 판단은 CASE를 '개발 자동화·생산성 향상 도구'로 읽는지, 재사용성을 높이는 방향인지, 상위·하위·통합 세 분류에 '중위'를 끼워 넣지 않았는지, 방법론 생성이나 언어 번역을 CASE 기능으로 쓰지 않았는지, 벤더 간 호환성을 과장하지 않았는지에서 갈린다. 기존 소프트웨어를 재구성해 유지보수성을 높이는 일은 CASE가 아니라 리엔지니어링이다.
대표 기출 1문항
소프트웨어 자동화도구인 CASE 에 대한 설명으로 부적절한 것은?
차세대 CASE 도구는 통합화, 지능화로 정의될 수 있다.
설계지식이 없을 때 CASE 를 사용하면 효과적이다.
CASE 정보저장소에는 데이터, 프로세스, 다이아그램, 규칙 등에 관한 정보가 저장된다.
CASE 시스템은 다이아그램 도구, 설계분석기, 코드 생성기, 정보저장소, 프로젝트관리 도구, 재공학 도구, 프로토타이핑 도구 등으로 구성된다.
정답과 해설 보기
정답 ② · CASE 도구에 대한 설명 중 부적절한 것을 고르는 문제이다. CASE는 소프트웨어 개발 과정을 자동화하는 도구로 설계 지식과 방법론을 기반으로 전문가의 업무를 보조·증폭시키는 역할을 한다.
CASE 도구는 설계 지식을 보완하거나 증폭시키므로, 지식이 없을 때 사용하면 오히려 효과적이지 않다.