Structured Analysis

Download Report

Transcript Structured Analysis

Structured Analysis
Modeling(1)
Modeling이란?
 A model is a miniature representation of
something for imitation or emulation
 Modeling: 어떤 것을 만들기 전에 그것을 이해하
기 위한 목적으로 추상화하는 작업
 복잡한 Real World를 이해하는데 필요
 대상 시스템을 용도에 따라 여러 가지 model로 표현
 하나의 모델이 시스템의 모든 관점을 표현할 수 없음
 세부적인 것은 생략하고, 필수적이고 다루기 쉬운 것
만을 표현
 Simple, Understandable, Unambiguous
 과다한 기호 사용 --> 표현력 증가, 이해하기 어려움
Modeling(2)
Model의 활용
 도표를 사용하여 시스템을 논리적으로 분할
 프로젝트의 초기 단계에서 필요한 요구사항을
추출하는데 효과적
 모델링의 결과
 요구분석 명세서의 핵심 부분
 프로젝트의 다음 단계로 옮겨 가는데 필요한 정보
를 제공
 사용자와 개발자 사이의 대화 도구로 사용
 개발 단계에 필요한 시스템의 윤곽 및 골격 제공
소프트웨어 시스템의 세 관점
정보(객체) 모델링
(Information Modeling)
정보(객체) 관점
기능 관점
동적 관점
소프트웨어
시스템
기능 모델링
(Function Modeling)
동적 모델링
(Dynamic Modeling)
Functional Modeling
Functional Model
 기능 관점(Function space)에서 시스템을 표현
 입력을 출력으로 변환시키는 계산과 제약조건을 기술
 계산의 순서, 자료의 생성 및 도착 순서는 생략
구조적 분석 기법
 Functional Modeling에 사용하는 대표적인 분석기법으
로 요구분석 도구로 가장 많이 이용
 자료의 흐름 및 변환을 나타내는 자료흐름도, 자료사전,
소단위명세서로 시스템을 표현
 자료흐름도는 자료에 대한 계산에 근거하여 시스템을
분할
Dynamic Modeling(1)
Dynamic Model
 시간의 변화에 따른 시스템의 동작에 초점
 시스템의 상태(state)와 상태를 변하게 하는 원인
(event)을 묘사
 외부와의 상호작용이 많은 실시간 시스템을 기술하는
데 적합
대표적인 동적 모델링 도구




상태변화도(State Transition Diagram), 사건추적도
State Chart
SDL (Specification and Description Language)
Petri net
Dynamic Modeling(2)
물 추가
물 끓이기
차 추가
설탕 추가
우유 추가
사람
차 준비
차 만드는
시스템
Information Modeling (1)
Information Model
 시스템에서 사용하는 정보 객체 및 시스템의 정적인 정보
구조(객체의 특성, 객체 사이의 관계)를 포착
 객체는 자주 변하지 않아 시스템 개발에 튼튼한 기초제공
 다른 관점보다 실세계를 정확히 묘사할 수 있는 장점
 시스템의 데이터베이스를 설계하는데 효과적
 시스템의 기능보다 정보와 데이터에 초점을 맞추는 추세
에 따라 정보 모델링의 중요성 증가
대표적인 정보 모델링 도구
 ER 모델, EER 모델
 객체지향 모델
Information Modeling (2)
차
설탕
물
찻잎
우유
사람
3가지 관점의 통합
통합의 필요성
 3가지 모델은 시스템의 서로 다른 측면을 표현
--> 시스템 전체를 완벽하게 설명하지 못함
 3가지 관점을 통합(integration)하여야 시스템의 요구
사항을 완벽하게 표현할 수 있음
통합이 불필요한 경우
 하나의 관점으로 시스템을 거의 설명할 수 있을 때
 다른 관점은 간략하게 묘사하거나 생략할 수 있음
 예
 컴파일러 시스템: 기능 모델링
 데이터베이스 시스템: 정보 모델링
 통신 시스템: 동적 관점 + 기능 관점
Structured Analysis(1)
기본 개념
 System = Processes + Data flows between
Processes
 System Model = Data Flow Diagrams + Data
Dictionary
 Specification = System Model + Mini-specs
특징




Top-down Decomposition
Graphic Language
Model Building
Data structuring techniques
Structured Analysis(2)
장점
 광범위한 보급
 체계적인 방법 제공
 구조적 설계와 연계
 자연스러운 문서 산출 - 분석 작업의 부산물
 자동화 도구의 지원 가능
 이해하기 쉬움
 Walkthrough 가능
 사용자 반응 유도
 관리 자료 제공
 크기 판단 자료 (개발 비용, 개발 기간, 소요 인력, ..)
Structured Analysis(3)
구조적 분석의 세부 작업
1. 배경도(Context Diagram) 작성
 시스템의 추상적인 개관을 표현
2. 상위 자료흐름도 (Level 0 Diagram) 작성
 전체시스템을 구성하는 큰 부분을 기술
3. 하위 자료흐름도 (Level 1, Level 2, ,,) 작성
 시스템의 각 부분에 대한 상세한 묘사
 특정 부분을 zoom in 하여 확대하는 방식 적용
 더 이상 자세히 나타낼 필요가 없으면 종료
4. 자료 사전 (Data Dictionary) 작성
5. 소단위 명세서 (Mini-specs) 작성
Data Flow Diagram(1)
자료흐름도(DFD)의 구성 요소
 Process: 원/둥근 사각형으로 표기, 내부에 이름 기재
 Data Flow: 프로세스 연결, 화살표 위에 자료 이름 기재
 Data Store: 한쪽/양쪽이 열린 직사각형으로 표기, 파일
이름 기재
 Data Source/Sink: 시스템 외부에 있는 자료 출처/도착지
Data Flow
source
/ sink
process
Data Store
Data Flow Diagram(2)
자료흐름도의 예
Inventory
fill
order
scan
order
approved_order
Books
check
credit
Customer
Data Flow Diagram(3)
Leveling
 크고 복잡한 문제를 극복하기 위한 방안
 하향식 분해(top-down decomposition)
 high level : 사용자 관점, 시스템의 개념적인 관점
 low level : 개발자 관점, 시스템의 상세한 관점
 Context Diagram
 최상위 수준의 다이어그램으로 시스템의 경계를 표시
 순수한 I/O 부분만 표시, 주변 환경과의 인터페이스




1st level : Diagram 1, Diagram 2, ...
2nd level : D 1.1, 1.2, 1.3, ...., D 2.1, 2.2, 2.3, ....
3rd level
Functional primitives
 더 이상 분해할 수 없는 원자적 프로세스
 모듈로 구현 가능한 크기의 프로세스
Data Flow Diagram(4)
하향식 분할(Top-down Decomposition)
 같은 level의 문제는 같은 수준의 상세도 유지
 각각의 문제는 독립적인 문제로 분리
 분해된 부분 문제의 해를 모으면 원래 문제를
해결할 수 있어야 함
균형 유지 (Balancing)
 다른 level에 있는 DFD간의 균형 유지
 Data 보존 법칙: Process는 data를 변환할 뿐
창출, 소멸시키지 않는다.
 자료흐름이 분할된 경우 자료사전에 명시
 교재 그림 3.8 참조
Data Flow Diagram(5)
자료흐름도 작성 방법
 시스템 경계의 입출력을 식별하는 작업부터
시작 --> Context Diagram
 자료의 흐름에 초점을 두고, 자료가 어떤 과정
을 거쳐 변형되는가를 파악
 자료 흐름과 프로세스의 Naming은 매우 중요
 한 장에 한 level의 자료흐름도만 포함하고, 프
로세스는 7개 전후로 제한
 최하위 단계의 프로세스는 Mini-spec을 한 장
에 기술할 수 있는 정도의 크기로
 프로세스의 분할할 때 균형을 유지
Data Flow Diagram(6)
자료흐름도 검사
 correctness checking
 completeness checking
 consistency checking
자료흐름도 다듬기를 위한 Heuristics




자료흐름의 변형이 없는 프로세스
Control flow를 외부로 표현하는 것은 회피
과도하게 세분된 프로세스는 하나로 통합
같은 외부 개체/파일과 상호 작용하는 프로세스
는 가능한 한 하나로 통합
Data Dictionary (1)
자료사전?
 자료흐름도의 자료 항목에 대한 정의들의 집합
 자료 정의 형태: 자료 요소의 이름 = 수식
 수식: 자료 요소와 연산자로 구성
연산자의 종류 및 의미






+ and
| or
‘string’ string constant
[ ] optional
{ } iterations of
* * comment
Data Dictionary (2)
예
 Resume = Personal data + {Education} +
{Experience} + {Family} + ....
 Course = {Course_No + Title + Description
+ Credit + {Prerequisite} + [{Text_title +
Text_author}]}
Mini-specs (1)
소단위명세서?
 Functional primitives의 기능에 대하여 기술
 기술 방법
 Structured English
 Decision tables
 Decision trees
 Nassi-Shneiderman chart
Structured English
 pseudo code의 형태로 제한된 어휘 사용
 제한적인 구조: 순차, 선택, 반복
Mini-specs (2)
의사결정표(Decision Tables)
 프로세스가 여러 가지의 조건에 따라 각각 다른
처리를 하는 경우에 적합
 가능한 cases에 대한 조건(conditions) 및 처리
내용(processes)을 기술
의사결정도(Decision Trees)
 자료 항목의 값에 따른 처리 내용을 트리 구조
로 표현
 의사결정표와 동일한 표현력
Mini-specs (3)
예: Invoice 처리 (Structured English)
If the amount of the invoice exceeds $500
If the amount has an invoice more than 60 days overdue
hold the confirmation pending resolution of the debt
Else (account is in good standing)
issue confirmation and invoice
Else (invoice $500 or less)
If the account has any invoice more than 60 days overdue
issue the confirmation, invoice and write message on the credit
action report
Else (account is in good standing)
issue confirmation and invoice
구조적 분석기법을 적용한 모델링 (1)
1. Context diagram을 작성
1.1 시스템의 이름을 제작
1.2 시스템과 관련된 외부 객체를 정의
1.3 시스템과 외부 객체 사이의 인터페이스
(정보, 사건)를 파악
1.4 파악한 인터페이스를 시스템과 외부 객체
사이의 자료 흐름으로 표현
1.5 자료흐름을 자료사전에 등록
구조적 분석기법을 적용한 모델링 (2)
2. 레벨 1 자료흐름도 작성
2.1 시스템의 use cases를 파악하여 프로세스로
설정
2.2 각각의 use case를 분석하여 자료 흐름을 추
가
2.3 다른 use case를 수행하는 동안 기억해야 할
데이터는 자료저장소로 표현
2.4 필요한 정보에 따라 프로세스와 자료저장소
를 연결
2.5 Context diagram과 비교하여 모순이 없는지
확인
구조적 분석기법을 적용한 모델링 (3)
3. 자료흐름도의 각 프로세스에 대하여
3.1 레벨 1 자료흐름도 작성 방법과 동일한 방
법으로 아래 단계의 자료흐름도를 개발
3.2 각각의 use case의 기본적인 활동, 예외적
인 경우, 선택적인 경우에 대하여 프로세스
생성 가능
3.3 프로세스가 복잡하면 계속 더 낮은 단계로
확장
3.4 모든 Functional primitives에 대하여
mini-spec 작성
4. 요구분석명세서 작성
구조적 분석기법을 적용한 모델링 (4)
요구분석명세서 양식 (예시)
1. 개요
1.1 시스템의 개요
1.2 목표
2. 기능적 요구
2.1 자료흐름도
2.2 자료 사전
2.3 소단위명세서
2.4 기능 면에서의 시스템의 특징
3. 기타 요구 및 제약 사항 (비기능적 요구)
3.1 성능 요구 (반응시간, 처리소요시간, 처리율)
3.2 H/W 요구 (기억장치 규모, 통신 수용도)
3.3 예외 조건 및 처리
3.4 사용자 인터페이스
3.5 자원, 인력에 대한 제약 조건
4. 인수 조건
4.1 기능 시험 및 성능 시험
5. 참고 자료 및 용어 해설