본문 바로가기

Project

CASE TOOL

소프트웨어 위기 현상을 해결하기 위하여 소프트웨어 생산 자체를 컴퓨터의 도움으로 자동화 시켜보자는 개념으로 탄생한 것이 CASE(Computer Aided Software Engineering)이다. 즉, 수작업으로 프로그래밍하고 문서 산출물을 만드는 대신, CASE를 활용하여 산출물을 작성하고 프로그램 코드를 만들어낸다. 이것은 자동화를 통한 개발 기간의 단축 뿐 아니라 생산하는 소프트웨어의 일관성과 통합성, 완전성을 높임으로서 생산성 향상과 품질의 향상을 가져온다는 개념이다

 
 1980년대에 등장하기 시작한 CASE TOOL은 어려운 개념이 아니라 1970년대부터 등장한 소프트웨어 자동화에
일환으로 등장하기 시작한 자동화 도구를 말한다.
사실 이미 소프트웨어 개발에있어 밀접하게 사용되고 있는데,
소프트웨어 개발의 기본 Iteration (분석-설계-구현-테스트)의 각 단계에 따라 지원하는 자동화 도구가
존재한다.

 예를들면
    분석설계를 지원하는 Rational Rose 같은 UML툴이라든지 Microsoft의 Visio등이 있고,
    DB설계를 지원하는 ER-WIN ,DB-Desiginer ,
    구현을 도와주는 IDE TOOL,Visual C++ ,
    테스트를 자동화하는 xUNIT,cobertura등

이외에도 자주 사용되는 기능들 및 연관된 일련의 작업들을 지원해주는 자동화 도구들이 많이 있다.

 이러한 CASE TOOL을 사용함으로서 얻는 이점으로는
   1. 수작업으로 생길수 있는 오류를 방지
   2. 일정한 품질을 보증
   3. 개발시간을 단축(생산성의향상 . CASE TOOL의 궁극적 목적이 되겠다.)
   4. 자동화된 산출물
   5. 수정및 변경에 자유롭다(수정이 생길경우 역공학을 통해 해당산출물 및 코드가 자동으로 생성된다)
   6. Repository를 통해 각 개발 단계상의 데이터에 일관성 유지
   7. 소프트웨어 모듈의 재사용성

...등등..

 대략 이정도를 뽑을수 있는데 CASE TOOL에 있어 궁국의 목적은 각 개발 단계의 유기적 연결을 통해
소프트웨어 개발 전체를 자동화 시키는데 있다.

 여기서 몇단계 더 나아가면 CBD 개발 방법론을 통해 만들어진 각각의 소프트웨어 컴포넌트를
CASE TOOL을 통해 조립및 자동화 할 수 있게 된다면 필요한 기능의 명세가 정해진다면 필요한 컴포넌트의
조립을 통해 극단적인 생산성 향상을 불어올수 있게된다.