본문 바로가기
소프트웨어 공학

CASE(Computer Aided Software Engineering)의 개념과 특징 및 향후 발전 방향

by iwuooh 2022. 1. 10.

CASE(Computer Aided Software Engineering)의 개념과 장점

CASE(Computer-Aided Software Engineering)은 컴퓨터 지원 소프트웨어 공학이라는 의미로 개발자가 작업할 때 반복적인 작업을 최소화하고 문서작성과 개발팀원 간의 협업을 위해 자동화를 지원하는 통합 소프트웨어 도구를 제공하는 것이다. PC 기반의 환경에서 소프트웨어의 개발 시작에서부터 요구 분석, 설계, 유지 보수에 이르기까지 소프트웨어 생명주기 전반에 걸쳐서 일관적인 자동화를 지원한다. CASE는 개발 도구만을 지칭하는 것이 아니라 방법론까지도 결합된 것이다. 작업 과정과 데이터를 서로 공유하며 팀원 간의 소통을 증대하고 물리적으로 분산된 환경에서 다양한 이해 관계자들이 같이 협업할 수 있다. 따라서 정형화된 구조와 방법으로 생산성을 향상하여 대규모의 시스템을 구축하는 데 있어 효율적으로 사용될 수 있다. 또한, 요구사항 명세서를 검토하고 형상을 관리하며 테스트와 연계하고 결함을 관리하는 기능까지 제공하여 객체 지향 시스템뿐만 아니라 구조적 시스템의 구축에도 사용될 수 있다.

CASE(Computer Aided Software Engineering)의 효과와 구성요소

CASE의 툴(Tool) 가격은 비싸서 초기 비용이 많이 들지만 이후의 프로그램 개발에 필요한 비용은 절감된다. 또 CASE는 설치한 후 스스로 동작하는 것이 아니기 때문에 명령어나 문법 등을 지원할 수 있는 전문가의 분석이 필요하다. 하지만 수정이 용이하고 정확해서 시스템을 개발함에 있어서 기간을 크게 단축시킬 수 있다. 재사용성이 뛰어나 자연스레 생산성도 좋고 검사를 자동화시킴으로써 품질 향상에도 도움을 준다. CASE는 적용될 수 있는 생명주기의 단계에 따라서 4종류로 분류된다. 상위 CASE는 계획과 분석, 설계 단계를 지원한다. 조직이나 기업체를 분석하고 정리하기 위해 명세서, 다이어그래밍 등을 제공한다. 현재는 하위 CASE가 점차적으로 보강되면서 통합 CASE화 하는 추세이다. 중위 CASE는 다이어그래밍과 사전(Dictionary) 구성요소로 이뤄지는데 이를 통해 사용자가 정보에 따른 문제점을 발견하고 이에 대한 해결책을 제시한다. 하위 CASE는 대부분이 코드를 생성하기 위한 기능이며 시스템 명세서를 작성할 수 있다. 통합 CASE는 소프트웨어 생명주기 전체를 포괄적으로 지원하는 CASE를 의미한다. 대게 CASE라 하면 통합 CASE를 의미한다고 볼 수 있다.

CASE(Computer Aided Software Engineering)의 한계와 발전 방향

CASE를 사용함에 있어서 반드시 장점만 있는 것은 아니다. CASE를 도입하고 소프트웨어 개발 프로젝트가 모두 성공한다고 보장할 수도 없다. 오히려 CASE를 도입한 후에 소프트웨어 개발의 진행에 어려움을 겪는 사례도 많이 발생하고 있다. 특히 우리나라에서는 소프트웨어 개발 환경 때문에 이런 문제가 발생하는데 예산과 일정이 부족한 프로젝트에 고비용의 CASE를 쉽게 도입하기 어렵다는 점과 CASE 자체가 쉽지만은 않은 기술이기 때문에 추가적으로 습득해야 할 기술이 존재한다는 점이 발목을 잡는다. 어떤 경우에는 필요한 기능이 CASE에 없기도 하고 CASE를 이용해서 개발을 하는 경우에 개발이나 유지보수의 측면에서 실제로 효과적인지 측정할 수 있는 방법도 부재한다는 단점이 있다. 그리고 CASE에 관해서 표준화된 방법론이 제대로 정립되지 않았고 도구들 간의 통합성도 약한 것도 CASE의 취약점 중 하나이다. 향후 CASE는 요구분석 단계에서부터 설계, 테스트에 이르기까지 모든 단계에서 보다 확실하게 적용이 되고 완성도 있게 통합되는 방향으로 발전될 것이다. 또한 자연어의 처리나 전문가 시스템 개념이 복합된 지능형 CASE를 기대해도 될 듯하다. 더 나아가 사용하기 편리하고 가볍게 발전하여 CASE의 가격을 낮춤으로써 좀 더 대중화되어 널리 활용될 수 있을 것이다.

댓글