분할과 정복 방식의 구조적 방법론
- 정보처리기술사/소프트웨어공학
- 2020. 4. 21.
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 수정 후 코드 생성 |
장점 |
- 이해가 용이하고 프로세스 중심의 개발이라 요구사항이 명확한 경우 효율적 |
- 데이터 관점의 정규화 산출물이 단계별로 명확하며 대규모 프로젝트에 적합 |
단점 |
- 비즈니스와 같은 거시적 관점 부족 - 데이터와 프로세스가 별도 - 대규모 시스템 프로젝트에 부적합 |
- 전형적인 아키텍처 고려 어려움 - 웹환경에 적용 어려움 - 분산환경, 컴포넌트 실행 환경 지원 어려움 |
구조적 방법론의 한계
- 기업 전반의 거시관점 부족, 단위 프로젝트 위주의 접근
- 설계와 개발 위주 관점 처리, 데이터 모델링 방법 미흡
- 명확한 방법론적 지침 미흡
- 프로젝트 관리, 조직, 인력에 대한 고려 미흡
참고자료
'정보처리기술사 > 소프트웨어공학' 카테고리의 다른 글
기업내 어플리케이션 통합을 위한, EAI (0) | 2020.04.06 |
---|---|
테스트 주도 개발 방법, TDD(Test-Driven Development) (0) | 2020.01.01 |
설치 테스트(Installation Test) (0) | 2020.01.01 |
고객이 확인하는, 인수 테스트(Acceptance Test) (1) | 2020.01.01 |
요구사항의 통합적인 테스트, 시스템 테스트(System Test) (0) | 2019.12.31 |