구조적 분석론-DFD, DD, mini spec
요구사항 분석 기법에서 크게 두가지로 나뉘는데
하나는 구조적 분석, 다른하나는 객체지향적 분석 이다.
이 글에서는 이것 중 구조적 분석에 대해서 서술하겠다.
※ 구조적 분석 : 도형 중심의 분석용 도구
⇒ 자료흐름도 (DFD : data flow diagram)
자료사전 (DD : data dictionary
소단위명세서 (mini spec.)
및 체계적인 분석 절차를 이용하여 사용자의 요구사항을
파악하고 문서화 하는 기법이다
4.4 구조적 설계 도구
· 중요한 특징은 제기된 문제에 대하여 시각적이나 회화적인 점을 강조한다는 사실. 시스템을 모듈이라고 부르는 요소로 나누어 나간다.
· 모듈은 시스템의 구성요소의 하나.
· 결국 구조적 설게 도구들은 물리적인 조작보다는 논리적인 정보의 흐름을 강조
※ 구조적 분석단계
① 자료흐름도 : 시스템의 전체적인 자료흐름을 강조
② 자료사전 : 자료의 속성을 찾음
③ 소단위명세서 : 절차나 논리적 활동을 기술하는 도구로
구조적 언어나 의사결정표의 형태로 구성
※ 구조적 분석의 특징
· 매우 간결 (concise)
· 이해하기 쉬움 (understand ability)
· 검증 가능 (verifiable)
· 체계적 (organiged)
4.4.1 자료 흐름도
(DFD : data flow diagram = 바블차트, 데이터 흐름 그래프)
: 유효성으로 인하여 시스템 모델링 도구로서 널리 사용
※ 자료흐름도
: 구조적 분석 기법 도구
: 1970년 중반부터, 자료의 이동을 나타내는 것
Yourdon, Constanine, Gane, Demarco…
: 처리 기능별로 분리된 시스템 구성요소들을 자료흐름선으로 연결한 망(Network)
자료흐름도의 구성요소
- 자료 흐름선 (Data flow)
- 처리기 (process)
- 자료저장소 (Data store)
- 단말자(Terminater)
1. 자료 흐름도의 구성 요소
(1) 단말
Source (발생지) : 자료가 발생되는 시스템의 외부 지점을 의미.
즉, 시스템에서 필요한 자료가 들어오는 곳
Sink (종착지) : 자료를 받아들이는 시스템의 외부 지점.
즉, 이는 시스템에 의해 처리된 내용을 이용하는 곳을 의미.
(2) 처리
(3) 자료 흐름 (파이프 혹은 벡터)
: 단말, 처리, 자료저장소를 연결.
· 자료흐름은 화살표로 어느 한 방향으로 자료흐름을 표현할 경우에는
『단방향 화살표』
· 양방향으로 서로 자료흐름이 있는 경우 『양방향 화살표』로 표기.
◎ 자료흐름의 사용상의 유의 사항을 요약
① 자료 흐름 이름은 자료 흐름과 나란히 기입
② 단순하게 파일(자료저장소)에 연결되는 자료흐름에는 그 이름을 붙이지 않음
③ 자료흐름은 각각에 대하여 정확하게 의미있는 이름이 부여
④ 자료흐름에는 제어흐름이나 제어항목은 나타내지 않음
* 자료 흐름에서 제외되어야 할 내용이 음영 표시로 나타내어짐
⑤ 자료 흐름은 필요한 경우에는 한 선에서 두 선으로 분기(발산)할 수도 있으며,
필요한 경우에는 두 개의 선이 하나로 합쳐도(수렴)무방하다
⑥ 대화식 자료 흐름으로서 『자극/반응』의 관계를 가지는 경우는
한 개의 선을 이용하여 양방향 화살표로 나타냄
⑦ 처리(process)가 수정만을 하기 위해서
파일(자료저장소)에 저장된 자료를 읽는 경우와 같이 단일 목적 자료흐름일 경우
⑧ 파일(자료저장소) 에서 읽은 자료가 변형된 형태로 다른 곳으로 출력된 경우에
자료 흐름은 파일과 처리 사이를 양방향 화살표로 표시
⑨ 파일(자료저장소) 내에 있는 자료요소의 일부분만을 입출력하는 경우는
자료흐름에 해당 자료만을 표기
⑩ 자료흐름을 표현하는테 오류 복구를 위하여
별도의 처리가 필요치 않은 사소한 오류흐름은 그 처리 내용이 분명하기 때문에
거부선(trivial reject)으로만 표시하고, 사소하지 않은 오류흐름의 처리는
그 처리 내용에 대한 설명이 필요. 그때의 처리과정을 표시해 주어야함
(4) 자료저장소
: 정보가 영구적 혹은 일시적으로 저장되어 있는 곳을 의미
대상 - 자기 디스크, 자기 테이프, 서류철 등에 기억된 파일
※ 계층화된 자료흐름도의 요소 (Laveled DFF)
시스템 순서도 → 최상위 계층 : 배경도 = 부모도
: 분석 대상의 범위를 설정해 주는 역할을 함
: 시스템이 무엇을 하는 것인가를 알아보게 해 주는 계층
: 분석하고자 하는 시스템과 외부관련자들과의 관계를 나타냄
· 프로그램 순서도 → 중간 계층 : 자녀도
· 상세 순서도 → 최하위 계층
: 더 이상 위의 자료 흐름도로 분할 할 수 없는 처리기들만 구성된 자료흐름도
※ 더 이상 분할 할 수 없는 처리기를 기능 단위 처리기
워드프로세서
(functional primitive)라 한다
◎ 사용상의 의미 요약
자료저장소에 기록된 자료가 갱신되는 경우
- 자료저장소를 향하여 하나의 선으로 나타냄
2. 자료흐름도의 작성법과 유의 사항
* 자료흐름도의 가지지침
① 하나의 자료흐름도에 항목의 수준(level)을 섞어서 나타내지 않음
그 대신 항목의 수준별로 여러 개의 자료흐름도를 작성하도록 함
② 어느 한가지를 선택
③ 일정한 크기와 모양의 기호로 그릴 수 있도록 Template를 사용
④ 자료흐름으로 기호들을 연결
⑤ 모든 기호와 연결자에는 이름을 붙임
* 작성시에 유의할 중요한 사항들 요약
① 자료흐름도에 사용되는 모든 이름은 정확히 표현되어야 함
② 입력된 자료흐름이 처리를 거쳐서 출력된 자료흐름으로 변환되었을 경우
새로운 자료흐름의 이름을 붙여야 함
③ 자료흐름의 처리나 자료저장소에는 블랙홀과 화이트홀이 존재하면 안됨
블랙홀 - 오직 입력만 처리, 자료저장소에 되는 경우를 의미
화이트 홀 - 입력없이 오로지 출력만 되는 처리, 자료저장소
예) 지도보고, 지도 계획보고 - 블랙홀
지도대상 명부, 지도누락경고 - 화이트 홀
④ 처리에서 출력자료를 만들어 내기 위해 필요한 기본적인 자료는
반드시 입력되어야 함. 즉, 자료보존 법칙이 지켜야하는 것
⑤ 자료흐름은 필요한 경우에 분할 및 통합이 되어도 논리적으로 모순이 없다면 무방
⑥ 배경도로 부터 자료흐름도를 단계화해 나갈 때
2개 이상의 처리가 파일을 공유하는 최상위의 단계에 자료저장소를 나타냄
그 하위단계의 자료흐름도에서는 그 자료저장소가 사용될 경우에만 나타냄.
자료저장소의 표현 규칙 - 자료저장소 균형법칙
3. 자료흐름도의 단계화 - 배경도 (최상위도), 중위도, 최하위도
* 단계화된 자료흐름도 사이에 관련성의 중요한 사항 요약
① 핵심적인 차이점은 표현 내용의 상세한 정도의 차이
② 상위의 자료흐름도가 하위 자료흐름도를 이해하는데 도움이 되도록 작성
③ 각 단계에서 작성되는 자료흐름도는 부모도, 자식도, 부자관계가 성립.
④ 최하위도의 자료흐름도는 완전무결하게 작성
* 단계화된 자료흐름도를 작성하는 과정의 중요사항
하위의 자료흐름도는 상위처리의 이름을 상속받아야함
4.4.2 자료사전(DD : data dictionary)
: 자료흐름도에 표기되어 있는 모든 자료흐름 및 자료저장소에 대해서
첫째로 이들을 구성하고 있는 자료항목,
둘째로 자료의 의미.
셋째로 자료원소의 단위 및 값을 정의해 주는 도구
※ 자료 사전(DD) : 자료의 구성 내용 기술
: 자료 흐름에 나타나는 자료흐름선 file 자료요소들과 같은 자료 항목을
특별한 기호로 사용하여 그 내용을 쉽게 알아 볼 수 있도록 정의하여 놓은 집합체
1. 자료사전의 표현
· 자료사전을 하나로 작성하기에는 너무 복잡한 경우에는 관련 항목을
그룹으로 분류한 다음에 자료사전을 단계화하는 것이 사용 및 이해에 효과적
◎ 일반적으로 자료사전을 작성하는데 복합적인 형태로 구성된 자료는 기본적으로
순차구조, 선택구조, 반복구조 등이 혼합된 경우
① 순차구조 : 학번 = 입학년도 + 학과번호 + 일련번호
② 반복구조 : 학적부 = {학번 + 성명 + 생년월일 + ….}
③ 선택구조 : 요일 = [월요일|화요일|…|일요일]
◎ 자료사전을 정의할 때는 사용의 편리성 및 이해의 용이성 제고 등
몇가지 사항의 유의
① 자료사전 이름 중복되면 안됨
② 자료사전 이름으로 쉽게 정의 찾을 수 있어야 함
③ 갱신의 용이성이 배려
④ 자료 정의시 모호성을 없애기 위해
세부 구성내역을 명세하는 원칙이 명확
2. 자료사전의 정의내용
① 자료흐름을 정의
② 자료요소를 정의
③ 자료저장소를 정의
④ 주석과 동의어를 정의
4.4.3 미니스팩(미니명세서, 소단위명세서 : mini spec)
※ 미니명세서 (module명세서)
: 자료의 변환을 나타내는 처리기의 내용을 명료하게 설명해 놓은 것
: 최초 단위 처리기에 대한 명세서를 작성함
즉, 설명의 중복을 피하기 위하여 최하위 게층의 처리기만 작성
★ · 구조적 언어 : 순차, 판단, 반복
· 의사 결정 나무
· 의사 결정표
· 그래프