※ 해당 글은
20201년 3월 12일에 최초 작성 하였고
2021년 3월 16일 개정되었음
1. CASE의 정의
Computer Aided Software Engineering
(컴퓨터 지원 소프트웨어 공학)
- 시스템 개발 방법론들의 자동화를 지원하는 소프트웨어 도구를 제공하여
반복 작업을 줄이고 문서 작성과 개발팀 간 협업을 도우며,
PC 기반에서 운영된다.
2. CASE의 개념
-
자동화 도구와 방법론 모두를 지칭한다
- 요구분석, 설계, 개발, 유지보수 전반을 지원한다
- 개발 도구와 방법론이 결합된 것이다
- 통합된 자동화 도구를 제공해주는 기술이다
-
표준화된 개발 환경 구축 및 문서 자동화 기능을 제공한다
- 자동화된 일관성 분석을 제공하는 CASE 도구를 사용할 수 있다
- 모든 단계에 걸쳐 일관된 방법론을 지원한다
-
정형회된 구조 및 방법으로 생산성 향상을 구현하는 공학기법이다
- 작업 과정 및 데이터를 공유해 커뮤니케이션을 증대한다
- 분산된 환경에서 다양한 이해 관계자가 공동 작업을 할 수 있다
- 대규모 시스템 구축 업무를 효율적으로 수행할 수 있다
-
객체 지향 시스템뿐만 아니라 구조적 시스템 구축에도 사용된다
- 테스트 연계 및 결함 관리의 기능을 제공한다
- 요구사항 명세서를 검토하고 형상 관리를 할 수 있다
3. CASE의 구성 요소
-
상위부
-
중위부
- 입력된 결과를 처리하는 부분이다
- 데이터베이스의 통계적 정보를 의뢰한다
-
후위부
-
데이터베이스
- 다양한 정보를 체계적으로 제공하는 데이터베이스 부분이다
4. CASE의 특징
-
소프트웨어 생명주기의 전 단계를 연결한다
-
CASE의 툴(Tool)은 비싸다
하지만 소프트웨어를 개발할 수 있는 기간이나 인력을 줄일수 있어
전체 개발 비용은 감소한다
-
CASE는 스스로 동작하는 것이 아니므로 분석가의 지원이 필요하다
-
CASE의 툴(Tool)간의 호환성이 없다
-
컴파일러나 인터프리터 같은 언어 번역 프로그램은 지원하지 않는다
5. CASE의 주요 기능
- 소프트웨어 생명 주기 전 단계의 연결
- 다양한 소프트웨어 개발 모형 및 그래픽 지원
6. CASE의 분류
상위(Upper) CASE
- 문제를 기술하고 계획하며 요구 분석과 설계 단계를 지원한다
하위(Lower) CASE
- 코드의 작성과 테스트, 문서화 과정을 지원한다
통합(Total) CASE
- 소프트웨어 생명 주기에 포함되는 전체 과정을 지원한다
7. CASE 사용의 이점
-
소프트웨어 개발 기간 단축 및 비용 절감
- 개발자들이 반복적인 업무에서 벗어날 수 있다
- 개발을 신속하게 할 수 있어 개발 기간이 단축된다
- 모든 것이 그림으로 표현 되어 있어 정보 공유가 쉽다
-
생산성 및 재사용성 향상
- 구조적인 것들을 그대로 활용할 수 있다
- 소프트웨어의 점진적 개발이 가능하다
- 프로토타입이나 프로그램의 개발 및 유지 보수가 용이하다
-
개발 주기의 표준화
- 요구 정보를 추출하고 분석하는 것을 도와준다
- 요구사항 변경 사항을 추적하고 분석 및 관리할 수 있다
- 표준 준수 여부를 확인할 수 있다
- 다양한 소프트웨어 개발 모형을 지원한다
-
개발 기법의 상용화
- 그래픽을 지원한다
- 분산된 환경에서 다양한 이해관계자가 공동 작업 할 수 있다
- 시스템 구축 업무를 효율적으로 수행할 수 있다
-
품질 향상 및 유지보수 용이
- 수정이 용이하며 정확화다
- 자동화된 검사를 통해 품질이 향상된다
- 테스트 연계 및 결함 관리 등의 기능을 제공한다
- 프로그램의 유지보수가 간편하다