분할과 정복 방식의 구조적 방법론

    Divide & Conquer를 이용한 하향식, 구조적 방법론의 개요


    구조적 방법론(Structured Development Methodology) 개념

    - 전체 시스템을 기능에 따라 분할하여 개발하고, 이를 통합하는 분할과 정복(Divide & Conquer) 방식의 방법론, 프로세스 중심의 하향식 방법론(Top-Down)

    - 정형화된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화하는 체계적인 방법으로 비즈니스 프로세스 자동화를 목표로 하고 있으며, 프로세스 중심의 개발 방법





    특징

    • 데이터 흐름 지향으로 프로세스 위주의 분석과 설계 방식
    • 모듈의 분할과 정복에 의한 하향식(Top-Down) 설계 방식
    • 다른 프로세스로 순차적 진행하는 폭포수 모델이 기본
    • 소프트웨어의 개발이 목표인 프로세스와 산출물의 구성
    • 연속(Sequence), 조건(If-then-else), 반복(Repetittion) 구조로 모든 로직 처리


    기본원리


    추상화(Abstraction)

    - 문제를 이해하기 쉽고 간단한 형태 또는 일반적인 형태로 표현

    - 특정 대상에 대한 실체로부터 분리된 개념(Concept) 또는 관점(View) “어떻게” 아닌 “무엇”


    모듈화(Modulization)

    - 하나의 시스템을 서브시스템, 프로그램, 모듈 등으로 구분으로 정의하고 개별적 설계

    - Divide & Conquer


    구조화(Structuring)

    - 기능을 계층적으로 분류

    - 수평분리 (Horizontal Partitioning) : ex) 입력/자료변환/출력

    - 수직분리 (vertical Partitioning) : ex) 계획/분석/설계/구축


    단계적 상세화(Stepwise Refinement)

    - 하향식으로 진행 (엔터프라이즈 영역 -> 업무영역 -> 설계영역 -> 실행시스템)

    - 점진적 내용 구체화



    구조적 방법론의 구성


    - 다이어그램을 활용하여 분석 및 설계작업 수행


    구성요소




    구조적분석

    - 분할과 정복(Divide & Conquer), 정형화(Normalization),  구조적 조직화, 하향식 기능분해(top-down)

    - Tool 및 산출물

      : 자료 흐름도(Data Flow Diagram, DFD)

      : 개체 관계도(Entitiy Relationship Diagram, ERD)

      : 상태전이도(State Transition Diagram, STD)

      : 소단위 명세서(Multi-Spec)

      : 자료사전(Data Dictionary, DD)



    구조적 설계

    - 데이터 흐름중심, 모듈의 응집도와 결합도 재활용성

    - Tool 및 산출물

     : Structure Chart => N-S Chart

     : 프로그램 명세서(절차 명세서)

     : Application 구조도 => 시스템을 서브시스템, 모듈, program으로 구조화

     : Multi Level DFD

     : Database Table 기술서


    프로그래밍

    - 연속(Sequence), 조건(if-then-else), 반복(Repetition) 3개의 논리구조로 프로그래밍



    구조적 방법론과 정보공학 방법론의 비교

    단계

    구조적

    정보공학

    ISP

    X

    - 정보체계, 데이터모델, 업무 기능모델, 통합시스템 지향, 전략적 활동 모색

    업무분석

    - 기능분할, Data Flow 분석

    - 프로세스 중심의 프로세스 명세화

    - 데이터모델, 기능분할, Dependency 분석 프로세스 명세화 (데이터중심)

    시스템설계

    - 프로세스 모델, 사용자 모델, 인터페이스  설계, 데이터베이스 설계, 모듈 설계

    - 이벤트설계, 패키징 대화설계, 기술 설계, 데이터베이스 설계, 데이터 구조 설계

    구축

    - 절차적 프로그래밍, 코드 작성

    - 코드 생성, Case Tool의 활용

    유지보수

    - 코드 작성 후 Diagram 수정

    - Diagram 수정 후 코드 생성

    장점

    - 이해가 용이하고 프로세스 중심의 개발이라 요구사항이 명확한 경우 효율적

    - 데이터 관점의 정규화 산출물이 단계별로 명확하며 대규모 프로젝트에 적합

    단점

    - 비즈니스와 같은 거시적 관점 부족

    - 데이터와 프로세스가 별도

    - 대규모 시스템 프로젝트에 부적합

    - 전형적인 아키텍처 고려 어려움

    - 웹환경에 적용 어려움

    - 분산환경, 컴포넌트 실행 환경 지원 어려움

    -  정보공학은 구조적 방법론의 거시적 관점 부재로 인해서 등장



    구조적 방법론의 한계

    • 기업 전반의 거시관점 부족, 단위 프로젝트 위주의 접근
    • 설계와 개발 위주 관점 처리, 데이터 모델링 방법 미흡
    • 명확한 방법론적 지침 미흡
    • 프로젝트 관리, 조직, 인력에 대한 고려 미흡



    참고자료


    댓글

    Designed by JB FACTORY