2022. 11. 27. 04:43ㆍOthers/SE
요구분석 (Requirements Analysis)
소프트웨어 개발의 실질적인 첫 단계
사용자의 요구에 대하여 이해하고 정리하는 작업
세 가지 작업
- 요구 추출
- 요구 분석 및 정의
- 요구 확인
요구의 분류
기능 요구(functional requirements)
- 시스템과 외부 요소들 간의 상호작용
- 시스템이 어떤 상태일 때 외부의 데이터나 명령에 대해 어떤 반응을 하는지 기술
비기능 요구(non-functional requirements)
- 시스템 구축에 대한 성능, 보안, 품질, 안전 등에 대한 요구 사항
- 성능 : 시스템의 처리량, 반응시간, 실시간 처리, 자원 이용률
- 품질 : 신뢰성, 가용성, 사용시 오류 발생률
- 안전 : 의도하지 않은 오퍼레이션으로 인하여 원치 않는 상태에 있는 것을 방지하는 역량
- 보안 : 시스템 자원을 악의적인 공격으로부터 보호할 수 있는 역량
- 사용성 : 인터페이스. 동작, 보고 느끼는 것(look and feel)
요구 추출의 어려움
- 개발 팀이 응용 도메인에 대하여 충분히 알지 못함
- 고객과 사용자가 소프트웨어가 무엇을 하는지 또한 어떻게 요구를 표현할 지 모름
- 공통 배경지식 부족으로 개발 팀과 사용자 사이의 대화 장벽이 생김
- 소프트웨어 요구에 대한 명세와 구현이 분리될 수 없어 정확히 명시하기 어려움
- 요구 추출 작업을 관리자, 사용자, 개발자 모두 과소평가하는 경우가 많음
- 비기능적 요구를 파악하기 힘들며 이해하지 못함
- 요구가 계속해서 변경됨
요구추출
응용에 대한 정보 출처 파악
응용에 대한 정보 취합
요구와 제한 사항의 정의
요구 정보 출처
고객
도메인전문가 – 비즈니스 도메인을 지원하는 시스템을 구축하기 위하여 필요한 사람
이해당사자(stakeholder) – 시스템 운용으로 인하여 영향 받는 사람
사용자 – 시스템을 직접 사용하는 사람
역공학
정보 수집 방법
- 고객의 발표
- 문헌조사
- 업무 절차 및 양식 조사
- 설문 : 관리자나 사용자와 같은 이해 당사자를 대상
- 인터뷰
- 브레인스토밍 : 아이디어를 낼 목적으로 여러 명으로부터 정보를 얻기 위한 회의
- 프로토타이핑
요구 분석
요구 후보를 분석하고 결정하여 요구로 확정
요구 품질
-원자적(atomic)
- 완전성(complete)
- 비모호성(unambiguous)과 통일성(consistent)
- 추적성(traceable)
- 우선순위화(prioritize)
- 테스트 가능성(testable)
도메인 분석
도메인(Domain)은 요구의 배경을 의미함
문제 자체도 중요하나 문제가 어디에 놓여있는가, 즉 배경에 대한 이해 필요
설계 모델링에 필요한 여러 개념과 비즈니스 규칙을 파악
시나리오 기반 분석
다양한 사람들이 참여하여 다양한 용어와 개념을 전달하여 요구를 도출
시나리오 기반(5H1W)
사용자 스토리
< 사용자/역할(who) >는
< 목표/혜택/이익(why) >를 얻기 위하여
< 행위/작업(what) >을 원한다
구조적 분석(Structured Analysis)
사용자의 요구분석 사항을 파악하기 위하여 자료의 흐름과 가공절차를 그림 중심으로 표현하는 방법
처리중심(process-oriented) 분석 기법
그림 중심의 표현
하향식(top-down partitioning) 원리를 적용
자료 흐름도(Data Flow Diagram, DFD)
자료 흐름
- 자료흐름은 변형되어 이동중인 자료군을 나타냄
- 이동 방향을 표시한 화살표로 나타냄
- 화살표 위에 자료군의 이름을 붙임
처 리(Process)
- 입력 자료흐름을 출력 자료흐름으로 변환
- 원으로 표현하고 그 안에 처리의 이름을 적는다
- 처리의 이름은 처리가 하는 일 또는 처리를 수행하는 행위자로 기술한다
자료 저장소(Data Store)
- 머물고 있는 자료군의 집합(파일, 데이터베이스, 서류철 등)
- 자료저장소는 한 쌍의 평행선으로 표현
단말(Terminal)
- 대상 시스템 밖에서 역할을 수행하는 사람, 부서 또는 다른 자동화 시스템
- 단말은 사각형으로 표현하고 그 명칭을 부여
자료 흐름도 작성 순서
1. 배경도(context diagram) 작성
- 개발하려는 시스템과 외부세계와의 인터페이스를 식별
- 시스템 분석의 범위를 설정
- 시스템 전체를 나타내는 하나의 처리와 관련된 단말들로 표시
2. 중간 단계의 자료흐름도
- 자료흐름도 내의 하나 이상의 처리가 하위 자료흐름도로 분할되는 자료흐름도
3. 최하위 단계의 자료흐름도
- 자료흐름도 내의 모든 처리가 더 이상 분할되지 않는 자료흐름도
- 모든 처리들이 소단위 명세서로 설명됨
자료사전(Data Dictionary, DD)
자료 흐름도에 나타나는 자료에 대한 정의를 모은 것
사용기호
= 정의
+ 구성
{ } mn 반복, 아래첨자는 최소 반복 , 윗 첨자는 최대반복, 최소와 최대가
기록하지 않을 때는 최소 0 최대 무한대가 디폴트 임.
[ ] 택일
| 또는
( ) optional, 생략 가능
* * 주석
유스케이스(Use Case)
도메인 분석과 모델링 사이의 관문이 되는 작업
도메인 분석의 결과를 액터, 유스케이스, 관계들로 구성된 시스템 명세로 매핑하는 작업
유스케이스는 “어떻게”가 이니라 “무엇을” 시스템이 하는가를 나타낸다
유스케이스 다이어그램 : 시스템의 기능을 나타내기 위하여 사용자의 요구를 추출하고 분석하는데 사용
액터 : 시스템과 상호작용 하는 외부 엔티티
포함관계(include)
- 유스케이스 사이의 중복을 제거함
- 어떤 유스케이스가 다른 유스케이스를 포함하는 관계
- 공통된 동작을 떼어 낼 수 있음
확장관계(extend)
- 유스케이스가 일정 조건 아래 확장된 동작을 포함한다면 다른 유스케이스를 확장하는 관계에 있음
- 정상적인 이벤트와 예외적인 이벤트를 분리
'Others > SE' 카테고리의 다른 글
6. 설계 원리 (1) | 2022.12.20 |
---|---|
5. 요구 모델링 (0) | 2022.11.27 |
3. 프로젝트 계획과 관리 (1) | 2022.11.27 |
2. 프로세스와 방법론 (0) | 2022.11.27 |
1. SE 소개 (0) | 2022.11.27 |