요구 분석

Download Report

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