블로그 이미지
그냥 닥치고 해;
상Q

Notice

Recent Post

Recent Comment

Recent Trackback

Archive

calendar

1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
  • total
  • today
  • yesterday
2010. 4. 30. 21:20 Computer/Student

CASE의 정의

▶ 소프트웨어 공학에서의 여러 작업들을 자동화하는 작업을 일컬어 CASE라고 한다.

소프트웨어 개발 과정에서 사용되는 요구분석, 설계, 구현, 검사 및 디버깅 과정을 컴퓨터와 전용의 소프트웨어 도구를 사용하여 자동화하는 작업이다.

분석, 설계, 구현, 시험, 적용, 유지보수 단계로 이어지는 소프트웨어 개발은 노력, 비용, 기간이 많이 소요되는 문제점이 있다. 이러한 개발과정의 문제를 해결하기 위하여 개발 작업을 자동으로 처리할 수 있도록 만든 소프트웨어가 CASE이다.

▶ 개발과정이 표준화 되어 있으면 소프트웨어 개발과 유지 보수 활동을 더욱 쉽게 하고, 개발 과정이나 운용 규칙을 세우는 일보다 문제 자체를 해결하는데 주력할 수 있다.

CASE 도구의 정의

▶ 소프트웨어 공학과 관련된 여러 작업 중에서 하나의 작업을 자동화한 소프트웨어 패키지를 CASE 도구라고 부른다.

▶ CASE이 개념을 바탕으로 한 소프트웨어 개발용 툴입니다.

CASE 도구들은 프로젝트 관리활동을 자동화하고, 그 프로세스를 통하여 생산된 모든 성과물을 관리하며 엔지니어들의 분석, 설계, 코딩 및 테스트 작업을 돕습니다.

CASE의 장점

▶ 소프트웨어공학 과정을 자동화하면 소프트웨어의 개발 기간을 단축 할 수 있고, 소프트웨어의 개발 비용을 절약 할 수 있습니다.

▶ 소프트웨어의 생산성, 품질을 향상시킬 수 있습니다. 자동화하면 일관성과 완벽성을 자동적으로 검증할 수 있으므로 사람이 일일이 눈으로 확인 하는 것보다 효율적이며 신뢰도가 높습니다.

▶ 소프트웨어의 생산, 운용, 유지보수 활동을 효과적으로 관리 및 제어함으로써

▶ 소프트웨어의 유지 보수비용을 저하시킬 수 있습니다.

CASE를 위한 빌딩 블록

▶ 빌딩 블록들은 CASE 도구들의 통합을 위한 포괄적인 기초를 나타낸다. 그러나 오늘날 사용되고 있는 대개의 CASE 도구들은 이 빌딩 블록들을 모두 사용해서 구축되지 않는다.

통합 선택 사항

▶ CASE 통합의 상대적인 수준들을 보인 것이다. 통합 스펙트럼의 낮은 쪽 끝에는 개별(포인트 솔루션) 도구가 있다. 개별 도구들이 데이터 교환의 기능을 제공하면 통합 수준이 약간 올라간다.

▶ 단일소스 통합(Single-source integration)은 단일 CASE 도구 거래상 여러 가지 다른 도구들을 통합하여 하나의 패키지로 팔 때 발생한다.

▶ 통합 스펙트럼의 높은 쪽 끝에는 통합 프로젝트 지원환경(integrated project support environment: IPSE)이 자리한다.

CASE 도구 거래상들은 IPSE 표준들을 IPSE와 호환되는 도구들을 만드는데 사용하며 서로 호환이 된다.

CASE의 원천 기술

▶ 그래픽 기능과 처리 성능이 보강되어 시판되기 시작한 1980년대 후반부터 워크스테이션과 결합하여 등장하였다.

▶ 노동 집약적인 수준에 머물러 있던 소프트웨어 개발 방식을 자동화하는 것에 목표

▶ 소프트웨어 도구의 독립적인 활용만으로는 생산성을 기대할 수 없음을 인식하여 개발단계 전체에 걸친 도구의 유기적인 통합, 개발용 컴퓨터의 특성, 개발 방법론과 개발 관리 절차를 모두 고려한 도구들이 개발되었다.

▶ 한마디로 소프트웨어를 위한 CAD/CAM이라 할 수 있다.

▶ CASE의 원천 기술은 구조적 기법, 프로토타이핑 기술, 응용 프로그래밍, 정보저장소, 분산 처리 기술 등이다.

1) 구조적 기법

▶ 구조적 기법에서 사용하는 시스템 모델은 사용자나 개발팀 모두가 쉽게 이해할 수 있고 능률적인 정보 교환 및 공통적 이해에 도달하는 중요한 수단이며 기술이다.

▶ 하향식, 기능식 분할 방법을 이용하여 시스템의 요구를 정의하는 모델링 기법이다.

2) 프로토타이핑 기술

▶ 시제품 형태의 소프트웨어를 단기간에 제작하여 사용자에게 제시함으로써 요구사항을 확정하고 개발을 진행하여 완성한 소프트웨어에 대한 사용자의 만족도를 높임으로써 비용을 절감할 수 있다.

▶ CASE도구에도 포로토타입 제작을 위하여 프로토타입용 프로그래밍 언어, 스크린 레이아웃 제작도구, 보고서 설계를 위한 도구가 포함되어 있다.

3) 자동 프로그래밍 기술

▶ 설계한 내용을 기초로 프로그램을 자동 생성하는 것으로 사용자 프로그래밍에 도움을 주는 도구이다.

▶ 4세대 언어 사용

▶ 데이터베이스의 자료 선언문이나 질의어, 조작어, 데이터, 처리 및 보고서 작성 기능을 포함하고 있다.

4) 정보 저장소 기술

▶ 소프트웨어를 개발하는 동안에 모아진 시스템에 관련된 정보를 보관하여 관리하는 곳이다.

▶ 유지 보수를 용이

▶ 정보 저장소에 저장하는 정보는 소프트웨어 요구 분석 및 설계서 등이 포함된다.

5) 분산처리 기술

▶ CASE 도구가 클라이언트/서버 환경에서 제공되어 다수의 사용자가 CASE 도구와 개발 정보를 공동 사용하게 하기 위하여 분산처리 기술도 필요하다.

소프트웨어 개발 환경

▶ 소프트웨어 생명 주기 전체에 걸쳐 프로그래밍 지원 능력을 제공하는 도구의 통합된 집합이며 하나의 명령어로 접근하도록 되어 있다.

▶ 소프트웨어 개발 환경은 일반적으로 설계, 편집, 컴파일, 로드, 테스트, 형상관리, 프로젝트 관리를 위한 도구를 포함한다.

▶ 소프트웨어 개발 환경은 크게 언어중심 환경, 구문중심 환경, 툴킷 환경, 방법중심 환경으로 나눈다.

1) 언어중심 환경

▶ 언어 중심 환경은 주로 프로그래밍 단계 지원을 위한 것이다.

▶ Lisp언어를 위한 Smalltalk의 인터프리터 중심 개발 환경(코딩, 수행, 디버깅, 환경)

▶ 설계나 프로젝트 관리를 위한 기능은 매우 부족하다. 따라서 대규모 프로젝트를 위한 도구로서 부적합 하다.

2) 구문 중심 환경

▶ 구문 중심 환경은 구문 중심 편집기를 기반으로 한 것으로

▶ Cornell Program Synthesizer, Granada/Aloe, Mentor, Pecan등이 여기에 속한다. 구문중심 편집기는 프로그래밍 언어 구문의 형틀을 제공한다.

▶ 구문중심 환경은 프로그램에 관한 모든 정보를 추상 구문 트리로 보관하여 프로그램에 관한 자세한 정보를 다양한 형태로 볼 수 있다.

▶ 구문 중심 환경은 언어중심 환경과 마찬가지로 구현 단계나 테스트 단계만을 지원하며 대규모의 프로그래밍에는 적합하지 않다.

3) 툴킷 환경

▶ 툴킷환경은 코딩 도구(컴파일러, 편집기, 링커, 디버거)와 버전 제어 및 형상 관리를 위한 도구를 모아놓은 것으로

▶ Unix 프로그래밍 환경이 대표적인 예이다.

▶ 도구의 확장이 용이

▶ 툴킷 환경의 단점은 공통의 사용자 인터페이스가 없다는 점이다. 또한 요구 분석이나 설계 단계, 품질 보증, 프로젝트 관리를 위한 지원이 부족하다.

4) 방법 중심 환경

▶ 방법중심 환경은 분석이나 설계 단계의 특정 방법을 지원하기 위한 환경으로 구축된 것이다.

▶ 예로 Teamwork, System Architect, Accelerator등이 있다.

▶ Diagramming 기능, 자료 사전 정의, 일관성 검증 기능이 있다.

단점

▶ 방법 중심 환경은 그 기능이 특정 방법에 고정되어 있어 융통성이 없다는 단점이 있다.

▶ 또한 대규모 프로젝트 관리를 위한 기능이 지원되지 않는다.

'Computer > Student' 카테고리의 다른 글

CASE 도구들의 분류  (0) 2010.04.30
솔라리스  (0) 2010.04.30
세마포어를 이용한 동기화 프로그램 작성해보기  (0) 2010.04.30
쓰레드(Threads)  (0) 2010.04.30
Loader  (0) 2010.04.30
posted by 상Q