Transcript 요구 분석
소프트웨어 공학 응용 및 실습
제 3 장 : 요구 분석
이형원
강릉대학교 컴퓨터공학과
1
학습 내용
요구 분석
구조적 분석
• 자료 흐름도
• 자료 사전
• 소단위 명세서(mini-spec)
요구 분석서
요구 분석서의 평가
2
요구 분석
요구 분석: 무엇을 개발할 것인가를 결정하는 단계
• 가장 어려운 단계: 잘못된 경우 바로 잡기 위한 비용이 큼
• 단계 (by software analyst)
현재의 상태를 파악하고 문제를 정의 계획 단계의
구현될 시스템의 목표를 명확히 도출 문제 정의를 구체화
명세서 작성: 기능/성능 요구, 제약 사항 시스템 설계 시 사용
사용자 요구
• 기능적 요구
처리 및 절차, 입출력 양식(언어, 색상, 위치), 명령어의 수행 결과
• 비기능적 요구 : 교재 pp.122-123
성능(응답 시간, 처리량), 신뢰도, 보안성, 운용제약
3
분석단계의 질문들
Who
• 분석 대상 업무에 누가 어떤 일을 맡고 있는가?
• 누가 완성된 시스템을 사용할 것인가?
• 사용자는 어떤 수준인가?
What
• 현재의 상태는 무엇인가?
• 제안된 시스템의 기능은 무엇인가?
When
• 새로운 시스템은 언제 완성되어 언제 교체될 것인가?
• 사용자 인수 시험 시기는?
4
분석단계의 질문들(계속)
Where
• 새로운 시스템을 어떤 환경에 놓을 것인가?
• 인력을 새 시스템에 어디에 배치할 것인가?
Why
• 왜 새로운 시스템을 고려하게 되었나?
• 왜 사용자가 새로운 시스템이 필요하게 되었나?
How
• 새 시스템이 어떻게 작동할 것인가?
특정 하드웨어 요구, 시스템의 비용, 사용 언어
5
요구 분석서 작성 시 주의 사항
발주자와 개발자가 모두 쉽게 이해
기술된 조건은 발주자와 개발자가 모두 동의한 것
제안된 시스템에서 수행될 모든 기능을 정확히 기술
모든 제약 조건 명시
시스템 인수를 위한 테스트 기준을 제공
원하는 시스템의 품질(우선 순위 포함)과 품질 측정
방법
6
요구 분석의 접근 방법
요구분석의 원리
입출력, 프로세스, 정보의 흐름 및 내용
작은 문제로 분할
시스템의 논리적, 물리적 표현
요구
• 기능적
• 비기능적
문제
요구분석 상의 문제
의사소통
그림
시스템의 복잡도
단계적 분할
잦은 요구 변경
CASE 도구
명세서 작성
CASE 도구
7
구조적 분석
개요
• 사용자의 요구분석 사항을 파악하기 위하여 자료의 흐름과
가공 절차를 그림 중심으로 표현하는 방법
• 시스템을 구성하는 프로세스들 사이의 데이터 흐름을 파악
• 현 시스템 및 개발될 시스템의 모형(추상적 표현)을 구축
• 명세화 도구 : 자료 흐름도, 자료 사전, 소단위 명세서
• 사용자의 업무 요구 사항을 쉽게 문서화
• 사용자와 분석자 간의 의사 소통을 위한 공용어
• 기본 idea
입력 자료 흐름 시스템 출력 자료 흐름
하향식(top-down partitioning) 원리를 적용
8
구조적 분석(계속)
세부 작업 순서
배경도(Context Diagram) 작성
상위 자료 흐름도(Level 0) 작성
하위 자료 흐름도 작성
자료 사전 작성
소단위 명세서 작성
표현 방법
• Yourdon과 Demarco의 방법
• Gane과 Sarson의 방법
9
DFD(자료흐름도)
구성요소
•
•
•
•
자료 흐름(Data Flow)
프로세스(Process)
자료 저장소(Data Store)
단말(Terminator)
예
포장된
식빵
재료
공급자
식빵 공장
배급자
10
DFD: 프로세스 “식빵 공장”
옥수수
밀가루
계란
옥수수
1
식빵
만들기
우유
식빵
2
식빵
포장
1.1
옥수수
씻고
고르기
1.2
밀가루
박스에
넣은 식빵
3
빵을
배달
포장된
식빵
계란
우유
깨끗한 옥수수
1.3
반죽
반죽을
만듦
버터와
버무림
준비된
반죽
1.4
식빵을
구워냄
11
DFD: 프로세스
입력 자료 흐름을 출력 자료 흐름으로 변환
이름: 하는 일 또는 프로세스를 수행하는 행위자
고유 번호
• 부모 프로세스 번호.1, 부모 프로세스 번호.2, …
• 배경도: -1, level 0 DFD: 1,2,3,…
1.1
임대비용
계산
3.4.5
고객별
명세서
작성
3
간호사
Functional Primitives(leaf processes)는 차후
소단위 명세의 대상
12
DFD: 자료 흐름
변형되어 이동 중인 자료 군 및 통로(pipeline)
화살표(이동 방향) 위에 자료 군의 이름을 붙임
프로세스 <-> (프로세스 or 자료 저장소 or 단말)
자료 저장소로의 자료 흐름은 저장소에 자료
군을 운반하여 저장함을 뜻함
초기환자자료
불충분
메시지
1
치료 계획
치료계획철
초기치료
계획
환자상태
환자상태 자료
2
환자상태
기록
감염정도
환자상태
환자철
13
DFD: 자료 저장소
머물고 있는 자료군의 집합(파일/DB/서류철 등)
자료 저장소는 한 쌍의 평행선으로 표현
신용카드
사용내역
신용카드
사용전표
신용카드
사용내역철
신용카드
사용내역
1
신용카드
사용내역
기록
고객이름
2
고객별
명세서
작성
사용내역서
고객철
14
DFD: 단말
개발 대상 시스템에 대한 외부 접속 객체(의사
전달하는 사람, 부서 또는 다른 자동화 시스템)
분석실
분석기록
조회
병원 행정
의료비 자료
의료 기록
시스템
증상, 처방
의사
15
단계적 분해
완성된 DFD들은 트리 구조
배경도(context diagram) 작성
개발하려는 시스템과 외부 세계와의 인터페이스를 식별
시스템 분석의 범위를 설정
시스템 전체를 나타내는 하나의 프로세스 + 관련된 단말들
중간 단계 DFD
DFD 내의 하나 이상의 프로세스가 하위 DFD로 분할되는 DFD
최하위 단계 DFD
DFD 내의 모든 프로세스가 더 이상 분할되지 않는 DFD
모든 프로세스들이 소단위 명세서로 설명됨
16
DFD 작성 원칙
명명 원칙
• 프로세스의 이름은 동사형 명사와 단일 직접 목적어를
사용하라
• 어떤 경우에도 적용 가능한 포괄적 명칭은 피하라 (ex.
처리,조작,자료,정보)
입력자료
가격을
책정하고
상품목록을 출력자료
기록
새로운
신용카드
고객
관리
고객상태
17
DFD: 작성 원칙(계속)
변환된 자료 흐름의 명칭
• 자료 흐름은 프로세스를 거쳐 변환될 때마다 새로운
이름을 부여
사과
닦다
속을
껍질을
자르다
닦은사과 벗기다 껍질벗긴 파내다 씨를
자른사과
빼낸 사과
사과
18
DFD: 작성 원칙(계속)
자료 흐름의 균형
• 자료의 변환은 프로세스내에서만 발생
• 자료 흐름도의 분할은 프로세스와 자료 흐름의 분할
B
A
2
D
1.1
A
1
C
1.2
3
1.3
E
A
B
2
C
D
1.1
A
1
C
B
1.2
F
자료 사전:
F=B+C
1.3
3
E
19
DFD: 작성 원칙(계속)
자료 흐름의 분할 및 통합
• 자료 흐름은 통합 또는 분할이 가능
의사진단자료
초기
자료
환자
병력
자료
치료
계획
수립
환자
병력자료
기록
프로세스와 자료 저장소 간의 자료 흐름
•
프로세스 자료 저장소 : 자료 수정, 삽입, 삭제
프로세스 자료 저장소 : 자료검색
20
DFD: 작성 원칙(계속)
프로세스의 개수는 한 장에 7 ±2개가 적당
⑦ 기타
1) 자료 보존의 법칙 : 입력 자료 흐름 --> 출력 자료 흐름
2) 최소 자료 입력의 법칙 : 출력 자료 흐름을 산출하는데 필요한
최소 입력 자료 흐름을 표시
3) 영구성의 법칙 : 자료 흐름의 자료는 처리 후 없어지지만 자료
저장소의 자료는 없어지지 않음
4) 자료 변환의 법칙
자료 본질의 변환: 입력 자료흐름에 편집/계산하여 출력 산출
자료 합성의 변환: 둘 이상의 입력 자료 흐름이 출력자료 흐름 생성
자료 관점의 변환: 자료에 대한 실제적 변경은 없음
자료 구성의 변환: 입출력 자료가 동일하지만 구성 형태가 변경
21
시스템의 진화
시스템 전환 과정
•
•
•
•
현 시스템에 대한 물리적 모델 작성
현 시스템에 대한 논리적 모델 도출
새로운 시스템에 대한 논리적 모델 생성
새로운 시스템에 대한 다수의 물리적 모델 생성
(자동화될 범위 결정)
• 하나를 선택
22
DFD의 검사
정확성(무결성, Correctness) 검사
• 사용자의 요구를 정확히 반영하는가
• 자료 흐름도 작성 규칙에 맞는가
완전성(Completeness) 검사
• 필요한 모든 정보가 표현되어 있는가
일관성(Consistency) 검사
• 자료 흐름도들 간의 정보에 일관성이 있는가
23
자료 사전(Data Dictionary)
DFD에 나타나는 자료에 대한 정의를 모은 것
형식
• 자료 항목 이름 = 구성을 나타내는 수식
• 자료 항목 구성 표기법
+
|
' '
[ ]
{ }
{ }x
{ }y
{ }yx
자료 요소가 다른 요소와 연결되어 있음
'or'의 의미, 즉 택일을 의미
문자형 상수를 의미
하나 또는 그 이상의 선택형 요소를 나타낼 때
중괄호 안의 요소가 반복되는 것을 나타냄
중괄호 안의 요소가 적어도 x번 이상 반복됨
중괄호 안의 요소가 많아야 y번 반복됨
중괄호 안의 요소가 x번 이상 y번 이하 반복됨
24
자료 사전(계속)
<예>
구독자_전화번호 = [지역번호] + 국번 + '-' +
가입자_번호
지역번호 = '(' + '0' + 첫자리 + {십진수}20 + ')'
국번 = {십진수}43
가입자_번호 = {십진수}44
첫자리 = 2|3|4|5|6
십진수 = 0|1|2|3|4|5|6|7|8|9
자료 흐름도에서 쓰인 자료 항목들이 '가나다'
순으로 사전처럼 정리되어야 함
25
소단위 명세서(Mini-Spec)
DFD의 최하위 프로세스의 기능을 기술
기술 방법
1) 구조적 영어(structured English)
영어 단어 중 연산이나 제어 구조를 표현하는데 쓰이는 단어
(if then else, case, repeat, until, while 등)를 제한해서 사용
<예>
IF 청구액 30만원
IF 납입 지체일 60일 THEN 사고 해결 부서에 통고
ELSE 재청구서 발송
END-IF
ELSE
IF 납입 지체일 30일 THEN 재청구서 발송
END-IF
END-IF
26
소단위 명세서(계속)
2) 의사 결정표(decision table)
여러 가지 다른 조건에 대하여 다른 처리를 해야 할 경우
대금지급
지급
X
X
미지급
미지급 잔고
있음
X
X
없음
O
청구서 발급
O
안내장 발송
X
X
영수증 발송
X
X
O
O
O
O
27
소단위 명세서(계속)
3) 의사 결정도(decision tree)
자료의 값에 따른 처리를 트리 구조로 나타내는 방법
<예>
지체일 60일 : 사고 해결 부서 통보
금액 30만원
지체일 < 60일 : 재청구서 발송
미납금 처리
지체일 60일 : 재청구서 발송
금액 < 30만원
지체일 < 60일 : 신용도 아직 좋음
28
요구 분석의 자동화
요구 분석 도구의 기능
• 여러 가지 방법론에 의한 다이어그래밍 기능
• 작성된 명세서의 정확성, 완전성, 일관성 등을 검사하기
위한 오류 검증 기능
• 프로토 타이핑
도구의 구조
프로토타이핑 및
명세화 도구
그래픽 기능
정보 저장소
오류 검사
29
요구분석 명세서 작성
1 개요
1.1 시스템 개요
1.2 목표
2 기능적 목표
2.1 자료 흐름도
2.2 자료사전
2.3 소단위 명세서
2.4 기능면에서의 시스템 특성
30
요구분석 명세서 작성(계속)
3 기타 요구 및 제약 사항
3.1 성능 요구(반응 시간, 처리소요 시간, 처리율)
3.2 하드웨어 요구(기억장치 규모, 통신 수용도)
3.3 예외 조건 및 이의처리
3.4 사용자 인터페이스
3.5 자원, 인력에 대한 제약조건
4 인수 조건
4.1 기능시험 및 성능시험
5 참고 자료 및 용어 해설
31
요구분석 명세서의 평가
평가 기준
•
•
•
•
•
무결성과 완벽성 : 사용자 요구를 오류 없이 완벽하게 반영
일관성 : 분석 명세서 내에 서로 모순되는 점이 없어야 함
명확성 : 분석 명세서 내용이 모호하지 않아야 함.
기능적 : how보다는 what에 관점
검증 가능성 : 분석 명세서가 사용자 요구를 만족시키는지,
개발된 시스템이 분석 명세서의 내용과 일치하는지 검증할
수 있어야 함
• 추적 가능성 및 변경 용이성 : 체계적으로 정리되어 추후
다른 문서에 인용하거나 특정 내용을 변경하기 위해 찾기
쉽도록 해야 함.
32