?? ???? ???? CASE Tool?? ?? LogicWorks??? ??? ERwin 29

Document Sample
?? ???? ???? CASE Tool?? ?? LogicWorks??? ??? ERwin 29 Powered By Docstoc
					CASE

  2003 소프트웨어공학
  발표자료 - 11월 25일
     김단비, 심정은

                   1
                          내 용

 CASE의 정의

 CASE의 역사 및 현황
 CASE의 Building Blocks

 CASE Tools의 분류

 CASE Tools의 효과
 CASE의 분류

 Repository

 Repository구현을 위한 표준
 CASE의 한계 및 발전 방향
                                2
           CASE 의 정의(1)
 Computer Aided Software Engineering

 소프트웨어 개발의 자동화

 전체 소프트웨어의 생산성과 신뢰성 문제에
  초점을 둠

 CASE Tool이라는 소프트웨어와 방법론이
  라는 개념의 결합
     CASE Tool : 소프트웨어 라이프사이클의 전체
      단계를 연계시키고, 자동화하고, 통합시키는 도구
      의 집합
                                        3
   CASE 의 정의(2)-Formal Definition of CASE

 "Individual tools to aid the software developer or
  project manager during one or more phases of so
  ftware development (or maintenance)."
     in the Software Engineering Notes of April 1990, Termi
      nology for Software Engineering and Computer-aided
      Software Engineering by B.Terry & D.Logee.

 "A combination of software tools and structured d
  evelopment methodologies. "
     Carma McClure in the magazine, BYTE of April 1989 p2
      35 headed The CASE Experience.

                                                               4
     CASE 의 정의(3)- CASE 의 개념


                전공학
 분석/설계                      프로그래밍
                  역공학
  자동화                        자동화


             Repository

 전공학(Forward Engineering) : 문서 산출물에서
  분석되어 프로그램 코드를 생산
 역공학(Reverse Engineering) : 프로그램 코드에서
  설계 산출물, 설계 산출물에서 분석 산출물을 생산
                                         5
                   CASE 의 역사
연대         CASE                              정보기술
80년대 초     Computer-Aided Documentation     4GL 등장
           Computer-Aided Diagramming       프로토타이핑 개
           Analysis And Design Tools        념
80년대 중반 Automatic Design Analysis And       통합 프로젝트 관
           Checking                          리 환경
           Automatic System Information     정보공학
           Repository
80년대 말     Automatic Code Generation From   객체지향
           Design Spec
           Linking Design Automation And
           Program Automation
90년대       Intelligent Methodology Driver   인터넷 환경
           Habitable User Interface
           Reusable As A Development
           Methodology                                 6
            CASE 의 현황(1)

 국내 사용실태

  국내 실무자들은 정보시스템 구축 시 상당수(81.4%) 가
   CASE Tool을 사용한 경험이 있음.
  2명 중 1명은 CASE Tool을 자주 사용(52.8%)한 것으로 나
   타남.
  자주 활용하는 부문은 Data Modeling(52.7%)과 Process
   Modeling(24.9%) 부문.
  국내 기업들이 사용중인 CASE Tool로는 미국 LogicWorks
   사에서 개발한 ERwin(29.2%)과 Popkin Software &
   System Inc에서 개발한 System Architect(24%)를 가장 많
   이 사용하고 있는 것으로 나타남.

                                              7
CASE 의 Building Blocks(1)


         CASE Tools

    Integration Framework

     Portability Services

      Operating System

      Hardware Platform

   Environment Architecture

                              8
       CASE 의 Building Blocks(2)

 Integration Framework
     CASE tool들이 다른 CASE tool과 통신 가능하도록 하는
      특별한 프로그램.

 Portability Services
     CASE tool과 그 통합 프레임워크를 큰 수정없이 다른 OS
      와 하드웨어 플랫폼에 이식 가능하도록 하는 것.

 Operating System
     데이터베이스와 객체(Object) 관리 서비스.

 Environment Architecture
     하드웨어와 시스템 지원
                                              9
       CASE Tools 의 분류(1)

 정보 공학 도구
    정보 시스템에 대한 메타 모델을 제공

 프로세스 모델링 및 관리 도구
    프로세스의 주요 구성 요소들을 표현하는 데 사용
    관리도구들은 정의된 프로세스 활동을 지원하는
     다른 도구들과의 연결을 지원

 프로젝트 계획 도구
    프로젝트 노력, 비용에 대한 추정 및 일정을 지원

                               10
        CASE Tools 의 분류(2)

 위험 분석 도구
    관리자가 위험 요소들을 식별하여 감시 및 관리할 수 있도
     록함

 프로젝트 관리 도구
    프로젝트 일정 및 계획의 감시 및 품질 측정

 요구사항 추적 도구
    요구사항을 체계적으로 접근하여 추적

 메트릭스와 관리 도구
    프로세스, 프로젝트 또는 제품의 품질을 측정하기 위한 메
     트릭스들을 지원

                                   11
          CASE Tools 의 분류(3)

 문서화 도구
    소프트웨어 개발 전 과정의 문서화 작업을 지원

 시스템 소프트웨어 도구
    네트워크 통신 기능 및 다양한 시스템 운영을 지원

 소프트웨어 형상 관리 도구
    버전 관리 및 변경 관리 등을 지원

 분석 및 설계 도구
    시스템에 대한 모델들을 생성
        시스템의 데이터, 기능 및 행위들에 대한 표현을 포함
        모델들 간의 일관성을 검사하는 기능 제공
                                         12
        CASE Tools 의 분류(4)

 인터페이스 설계 및 개발 도구
    메뉴, 버튼, 윈도우, 아이콘 등과 같은 프로그램 컴포넌트
     들의 툴킷

 프로그래밍 도구
    컴파일러, 편집기 및 디버거, 4GL, 어플리케이션 생성
     기,…

 프로토타이핑 도구
    스크린의 레이아웃, 데이터 디자인, 보고서 등의 생성을 위
     한 High-level 언어, 유저 인터페이스 생성기 등

                                        13
        CASE Tools 의 분류(5)

 테스팅 도구
   테스트 관리 도구
   클라이언트/서버 테스트 도구


 재공학 도구(Re-engineering tools)
   명세 도구에 대한 역공학 도구
   코드 제생성 및 분석 도구
   온-라인 시스템 재공학 도구


 웹 개발 도구

 데이터베이스 관리 도구
                                 14
       CASE Tools 의 효과(1)

 CASE는 직접적으로 시스템 개발을 지원하고
  디자인을 지원하고, 개발 과정에서 관리 정보와
  문서화 및 프로젝트의 제어를 제공한다.

 CASE tool은 다음 세 가지 C를 보장한다:

  Consistency(일관성)
  Completeness(완전성)
  Conformance to standards(표준화)

                                   15
       CASE Tools 의 효과(2)

 장점

    시스템의 수정, 유지, 보수의 간결성과 용이성 증
     대

    시스템 개발 기간의 단축과 비용의 감소

    자동화된 내부통제기능으로 소프트웨어 품질 향
     상

    설계사양 등의 빈번한 변경 요구에 신속히 대처하
     고 시스템 개발 시 사용자의 참여를 증대시킴
                                16
       CASE Tools 의 효과(3)

 장점(계속)
    구조적 기법들의 실용화로 그림, 표 등의 작성 가
     능

    문서화의 용이성 제공

    소프트웨어 모듈의 재사용성 증대

    조직의 계획과 정보시스템 개발시기에 대한 적절
     한 정보 제공

    업무분석의 신속성과 절차에 의한 개발로 완성된
     시스템의 프로토타이핑 가능
                               17
            CASE의 분류


           프로젝트 계획 수립

             요구 분석      상위(Upper) CASE

             기본 설계
통합 CASE
(I-CASE)
             자료 설계      중위(Middle) CASE

             프로그래밍
                        하위(Lower) CASE
              테스트



                                          18
            CASE의 분류(상위 CASE)

 소프트웨어 개발 초기의 일을 지원
 계획, 분석 및 설계 과정의 지원
 지원 기능
   -여러 가지 방법론을 지원하는 다이어그래밍 도구
   -모델의 정확성, 일관성을 확인하기 위한 오류 검증 기능
   -프로토타이핑을 지원하는 도구
   -분석 설계 결과의 오류, 일관성 검증

 사용자 인터페이스 설계 및 개발 도구
   -화면 구성 요소의 레이아웃
   -프로그래밍과의 연결
   -사용자 인터페이스 관리 시스템

 프로토타이핑 도구

 Ex. System Architect, ER-Win
                                     19
            CASE의 분류(상위 CASE)
 장점
  -높은 생산성 향상: 40%
  -분석, 설계 자료의 효율적인 관리 및 재사용
 단점
  -Learning curve
  -적합한 도구의 선택과 교육이 중요
 일관성 검증
  -모든 그림 요소들이 제대로 연결되어 있는가?
  -각 프로세스의 출력이 적어도 하나씩 있는가?
  -자료흐름에 모두 이름이 붙어 있는가? 또한 자료사전에 있는가?
  -프로세스의 이름은 유일한 이름인가?
  -자료 흐름이 상위 프로세스와 균형을 이루고 있는가?
                                        20
        CASE의 분류(중위 CASE)

 다이어그래밍 및 사전 구성 요소로 이뤄짐
 사용자가 정보에 따른 문제점을 분석하고 해결책을 찾도록 보조




                                      21
             CASE의 분류(하위 CASE)

 소프트웨어 생명주기의 나중 단계를 지원
 프로그래밍 지원도구
  -컴파일러, 링커, 로더, 디버거
  -구문 중심 편집기
  -테스트 도구
      -정적 분석기
      -동적 분석기(테스트 기준 분석기, 가설 검증기, 회귀 분석)

 비주얼 프로그래밍 도구
  -Power Builder
  -Visual Basic


                                           22
              CASE의 분류(I-CASE)

 통합 CASE 정의

   -소프트웨어 개발 프로세스의 전체 과정을 지원하는 CASE 도구

 장점

   -도구들 간의 정보 전송이 자연스러움

   -소프트웨어 형상 관리나 품질 보증과 같은 지원 활동들을 수행하는데 소요

   되는 노력을 줄일 수 있음

   -프로젝트 계획이나 제어를 효율적으로 수행할 수 있음

   -프로젝트 팀원들 간의 팀웍을 잘 이루어갈 수 있음

 Ex. COOL, ROSE
                                         23
               CASE의 분류(I-CASE)

[ I-CASE 환경을 구축을 위한 통합 레벨 ]

 플랫폼 통합(Platform integration)

 데이터 통합(Data Integration)
   - 직접 전파(Direct Transfer)

   - 화일 기반 전파(File-based Transfer)

   - 커뮤니케이션 기반 전파(Communication-based Transfer)

   - 정보저장소 기반 전파(Repository-based Transfer)

 제어 통합(Control Integration)

 프레젠테이션 통합(Presentation Integration)

 프로세스 통합(Process Integration)
                                                  24
            CASE의 분류(I-CASE)

[ I-CASE 환경의 기본 특성 ]

1.   계획, 분석, 설계, 구축 각각의 활동이 다중 도구를 가진 소프트웨어

     작업대를 가지는데 이 작업대는 완전히 통합되어서 하나의 작업대가

     다른 것으로부터 정보를 직접적으로 사용한다.

2.   백과사전은 통합된 수단으로 다중 작업대로부터의 지식을 저장한다.

3.   코드 생성자는 설계작업대를 갖고 완전히 통합한다.

4.   생성자는 필수적 운영시스템, 자료사전을 포함한 데이터베이스 관

     리시스템의 생성을 촉진한다.

5.   생성자는 필수적 데이터 베이스문과 작업통제 언어를 생성한다.

                                         25
            CASE의 분류(I-CASE)

[ I-CASE 환경의 기본 특성 ]

6. 생성자의 산출은 최적화하는데 코드와 데이터베이스가 최적의 기계성

  과를 주기 위하여 조정

7. 도구는 통합된 방법에 있는 프로젝트 생명주기의 모든 단계를 지원

8. 통합 CASE의 툴키드는 기업 범위의 계획, 데이터모델링, 처리 모델링

  을 지원 ( 이 툴키드가 정보공학을 위하여 설계되었지 단지 소프트웨

  어공학을 위한 것은 아님)

9. 시스템 설계는 완전히 정규화 된 E-R 모델과 데이터 모델을 채택

10. 계획, 분석, 설계 작업대는 JRP와 JAD 같은 작업장소의 사용자 지원
                                           26
               CASE의 분류(I-CASE)
 Integration Framework

              User interface layer
                 Interface tool kit
                 Presentation protocol

                 tools mamagememt services
                    CASE
                     tool
                                Tools layer

              Object management layer
                 Integration services
                 Configuration management services

              Shared repository layer
                 CASE database
                 Access control functions


                                                     27
        CASE의 분류(Meta CASE)

 새로운 개발 방법론, 기법 또는 단계를 지원하는 도구를 효과적으로 개
발하기 위한 도구




                                      28
                        Repository
 CASE repository의 기능
   -데이터 통합                      •   데이터   개체(Element)
                                •   데이터   레코드(Records)
   -정보 공유                데이터    •   데이터   저장(Stores)
                                •   데이터   모델 개채(Entities)
   -데이터 툴 통합
                                •   프로세스(Processes)
   -데이터 간 통합                    •   기능(Functions)
                         프로세스   •   외부 개체(External Entities)
   -방법론 강제 시행                   •   모듈(Modules)
   -문서의 표준화
                                •   자료 흐름도(DFD)
                                •   구조도(Structure Charts)
                                •   데이터 모형도(Data Model Diagrams)
                        다이어그램   •   엔티티 관계도
                                •   화면 및 보고서

                                • 기업모형 및 규칙(Rules)
                                • 방법론
                           규칙



                                    [ CASE Repository의 내역 ]        29
             Repository 구현을 위한 표준
 CASE Data Interchange Format(CDIF)
   -   CASE 도구들 간의 정보 공유를 가능하게 하기 위한 언어에 대한 명세

   - 각 단계별로 정보 공유는 가능
   - 단계간의 정보 공유 및 상호 참조 불가능

 Portable Common Tool Environment(PCTE)
   -운영체제와 CASE 도구 사이에 OMS(Object Management System)라는 인터페이스를
   통해 정보 공유
   - OMS에서 embedded SQL을 통한 접근시 커서를 제공하지 않음
   - 각 단계간의 상호참조가 불가능

 IBM Repository Manager/MVS
   - 정보저장소의 정보는 Repository Manager에 의해 표현
   - 국제 표준화된 정보저장소가 아님
   - 각 단계간의 상호참조를 불가능                                    30
             Repository 구현을 위한 표준


 A Tools Integration Standard(ATIS)

    - 객체 지향적 정보저장소 인터페이스

    - ATIS 표준은 정보저장소의 인터페이스를 정의

    - 각 단계별 상호참조 불가능


 Information Resource Dictionary System(IRDS)

    - 정보저장소의 내용, 사용자 인터페이스와 정보저장소간에 정보를 옮기기 위한 인

    터페이스 등을 정의

    - 각 단계간 상호참조가 가능


                                                   31
         CASE의 한계 및 발전방향
 CASE 도입의 실패 요인
  - 각 CASE 상품들이 정말 무엇을 도와주는지 이해 부족
  - 해결 불가능한 영역에서 CASE 이용
  - CASE 를 해결책으로 필요 이상 강조
  - 경영, 관리의 중요성 무시
  - 표준화된 방법론 부재
  - CASE 도구들의 통합 정보 미약
  - 도구 사용법에 관한 문서화와 교욱 훈련 부실
  - CASE의 기능 부족
  - 소프트웨어 문제 정의의 애매모호함
  - CASE를 이용한 개발과 유지봇구의 효과 측정방법 없음
  - 소프트웨어 개발 방법론에 관한 교육부재
  - CASE 기술을 어떻게 이용하고자 하는지 의사결정의 부정확성
  - 기존 개발 및 유지보수 방법의 변화에 대한 거부감
  - CASE를 위험도 높은 신기술로 인식
  - CASE를 어떻게 도입해야 할 것인지에 대한 계획 부재      32
         CASE의 한계 및 발전방향


 CASE의 발전 방향
  - 모든 단계가 보다 자연스럽고 완성도있게 통합

  - 지능형 CASE로의 발전
  - 사용하기 편하고 가벼운 개념의 CASE
  - 값싼 CASE 도구




                               33
- END OF CASE -




                  34

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:22
posted:5/22/2012
language:Korean
pages:34