구조적 방법론 소개
1) 데이터 분석 및 모델링
2) 기능 및 데이터흐름 분석 및 모델링
2-1 ) 제어 흐름 분석
3) 제어 및 상태 분석 및 모델링
데이터 흐름 다이어그램 (DFD)
입력 자료 흐름을 출력 자료 흐름으로 변환
이름규칙 : 수행하는 기능 or 행위자로 기술
고유 번호 기술
최종 단계에서 미니 명세서 작성 대상
데이터 흐름: 두 프로세스 사이의 데이터 경로는 화살표로 표시한다. 전달되는 데이터 이름을 기재
데이터 흐름은 변형되어 이동중인 데이터를 나타낸다
화살표 위에 데이터의 이름을 붙인다
데이터 저장소에 연결된 데이터흐름은 저장소에 데이터를 운반하여 저장하는 것이다
파일 혹은 데이터 저장소 : 한쪽이 열린 사각형 or 한 쌍의 평행선으로 표시 . 이름을 안에 기재
저장된 데이터의 집합 - 파일, DB, 서류철 등
데이터 출처와 도착지 : 직사각형으로 표시, 내부에 이름을 기재
대상 시스템밖에서 데이터를 전달하는 사람 or 외부시스템
이름은 역할을 기술
DFD의 특징
배경도: 대상 시스템전체를 프로세스로 두고 외부의 데이터 입출력관계를 표현한 DFD
원시 프로세스: 프로세스중 더 이상 분할되지 않는 프로세스, 원시 프로세스에 대한 미니 명세서로 기술
미니 명세서: 원시 프로세스에 대한 상세한 설명을 기록하며, 프로세스 명세서로도 불린다.
해당 프로세스를 설명하기 위해 Activity Diagram, 순서도, N-S 차트 등을 사용한다.
계층적으로 분할하여 단계적으로 작성
시작은 배경도로 작성
개발하려는 시스템과 외부환경의 인터페이스 식별
시스템 분석의 범위를 설정
시스템 전체를 나타내는 하나의 처리와 관련된 단말들로 표시
중간 단계의 데이터 흐름도 작성
DFD내의 하나 이상의 처리가 하위 데이터 흐름도로 분할되는 흐름도
최하위 단계의 데이터 흐름도 작성
데이터흐름도내의 모든 처리가 더 이상 분할되지 않는 데이터 흐름도
모든 프로세스들은 궁극적으로 미니 명세서로 설명되어야한다.
추상화와 단계적 분해
같은 계층의 문제는 같은 수준의 상세함을 가져야한다.
각 문제는 독립적인 문제로 분리되어야 한다.
부분 문제들의 해가 모여서 원래 문제를 해결할 수 있어야 한다.
명명 원칙
프로세스의 이름은 동사형 명사와 단일 직접 목적어를 사용하여 간결하게 한다.
ex) 개와 고양이에게 먹이를 줌 (X)
어떤 경우에도 다 적용될 수 있는 포괄적인 명칭은 피한다
변환 된 데이터 흐름의 명칭
데이터 흐름은 프로세스를 거쳐 변환 될 때 마다 새로운 이름을 부여한다
데이터 흐름의 균형
프로세스를 중심으로 입력과 출력 데이터의 흐름은 어디서나 일치되어야 한다.
데이터 흐름의 분할 및 통합
데이터 흐름은 (구체화의 정도에 따라) 분할 또는 통합이 가능하다
프로세스와 데이터 저장소 간의 데이터 흐름
프로세스 -> 데이터 저장소 (자료 수정, 삽입, 삭제)
데이터 저장소 -> 프로세스 (자료 검색)
블랙홀과 화이트홀은 없어야한다
블랙홀 : 데이터의 입력만 있는 데이터 저장소
화이트홀 : 데이터의 출력만 있는 데이터 저장소
단계적으로 나누어서 프로세스를 표시한다
(원칙적으로) 한 장의 분석서에 한 계층의 데이터 흐름도만 그린다.
한 장에 7±2 정도가 적당하다.
1) 데이터 흐름이 하나만 나와서 다음 프로세스의 입력이 프로세스는 과다하게 분할 될 가능성이 높음으로 통합 가능성이 높다
2) 여러 프로세스가 동일한 외부 개체와 상호작용하고 프로세스 하나는 상호작용이 없는 경우 -> 데이터 흐름과 변환 과정 검토
3) 여러 프로세스가 동일한 데이터 저장소에 접근하는 경우-> 저장소에서 읽는 데이터 흐름을 비교하여 반복이 있으면 통합
4) 여러 프로세스가 동일 저장소에 여러 번 데이터를 저장하는 경우-> 같은 데이터를 쓰는지 검사하고 필요하면 재구성 및 통합
5) 단순하고 과다하게 세분화 된 프로세스의 경우-> 이웃 프로세스와 통합
구조적 설계의 이해
추상화
단계적 분해
모듈화
효과적인 모듈화
모듈은 응집력은 높고 (모듈내부) 결합도는 낮아야한다 (모듈간)
구조적 설계 (구조 다이어그램)