Presentation is loading. Please wait.

Presentation is loading. Please wait.

소프트웨어 공학 (Software Engineering) 요구 분석 (Requirement Analysis)

Similar presentations


Presentation on theme: "소프트웨어 공학 (Software Engineering) 요구 분석 (Requirement Analysis)"— Presentation transcript:

1 소프트웨어 공학 (Software Engineering) 요구 분석 (Requirement Analysis)
문양세 강원대학교 IT대학 컴퓨터과학전공

2 In this chapter … (1/2) 무엇을 개발할 것인가를 정확하고 완전하게 결정하는 단계이다.
요구 분석 (Requirement Analysis) 무엇을 개발할 것인가를 정확하고 완전하게 결정하는 단계이다. 정확성  Correctness 완전성  Completeness 다른 단계(설계, 구현, 테스트)에 비하여 잘못되었을 때 다시 개발해야 하는 비용이 가장 크다. 요구 분석 단계의 작업은 “어떻게(how)”보다는 “무엇을(what)”에 초점을 맞추어 진행한다.

3 In this chapter … (2/2) 요구의 결정 과정 We will cover … 요구란? 요구 추출과 분석
요구 분석 (Requirement Analysis) 요구의 결정 과정 We will cover … 요구란? 요구 추출과 분석 구조적 분석 객체지향 분석 요구 분석 명세서

4 We are now … 요구(Requirements) 요구 추출과 분석 구조적 분석 객체지향 분석 요구 분석 명세서
요구 분석 (Requirement Analysis) 요구(Requirements) 요구 추출과 분석 구조적 분석 객체지향 분석 요구 분석 명세서

5 요구(Requirements)란? (1/2)
요구 분석 (Requirement Analysis) 요구란 시스템이 가져야 할 기능이나 시스템이 만족하여야 할 조건 시스템이 제공하여야 할 서비스나 제약 조건을 포괄적으로 기술한 것부터 수학 기호로 자세히 표현한 것까지 다양함 요구 분석의 목적 소프트웨어가 무엇을 위하여 필요한지 정확히 이해 (understanding) 이해한 것을 다른 개발자에게 정확히 전달 (communicating) 시스템이 명세에 맞도록 제품 개발을 콘트롤 (control) 현금 인출기의 예 외형적 기능: 현금 인출, 잔액 조회, 계좌 이체, 현금 서비스, … 기능 및 성능: 시간당 처리 능력, 반응 시간, 제약 조건 (습도, 온도 등), …

6 요구(Requirements)란? (2/2)
요구 분석 (Requirement Analysis) 요구의 두 가지 사용 형태 프로젝트 수주를 위한 제안의 기초  제안서에 포함되며, 어떠 어떠한 기능을 제공하겠다…  일단 제안이 목적이므로 서로 다른 해석이 가능하다 (同床異夢) 프로젝트 계약의 기초  상세히 기술되어야 함 (정확성, 완전성)  특히, 외국과 일할 시에는 매우 신중하게 작성해야 함  일하고 벌금 물고하는 …

7 요구의 실제 예제 (1/2) 요구 분석 (Requirement Analysis) 성능 관련

8 요구의 실제 예제 (2/2) 요구 분석 (Requirement Analysis) 기능 관련

9 요구의 종류 사용자 요구: 시스템이 제공할 서비스와 수행될 때의 제약 조건을 그림이나 글로 표현한 것  사용자를 위하여 작성
요구 분석 (Requirement Analysis) 사용자 요구: 시스템이 제공할 서비스와 수행될 때의 제약 조건을 그림이나 글로 표현한 것  사용자를 위하여 작성 시스템 요구: 시스템이 제공하여야 할 서비스를 체계적으로 자세히 적은 것  계약자(계약사)와 개발자(개발사) 사이의 계약 소프트웨어 명세(specification): 개발될 소프트웨어에 대하여 기술한 것으로 설계와 구현에 기초가 됨  개발자를 위하여 작성 (규격은 어떻고, 언어는 어떻고, …)

10 요구 분석 요구 분석: 무엇을 개발할 것인가를 결정하는 단계 시스템 요구 잘못 되었을 때 바로 잡기 위한 비용이 큼
요구 분석 (Requirement Analysis) 요구 분석: 무엇을 개발할 것인가를 결정하는 단계 잘못 되었을 때 바로 잡기 위한 비용이 큼 Requirements Engineering (요구 분석가: Requirement Analyzer) 시스템 요구 기능적 요구 (functional requirements) 소프트웨어의 종류, 사용자, 소프트웨어가 수행되는 시스템에 따라 다름 시스템이 사용자를 위하여 무엇을 하는가를 거시적으로 기술 비기능적 요구 (non-functional requirements) 성능: 응답 시간, 처리량, 신뢰도, 보안성, 운용 제약 개발 비용: 투자한계

11 기능적 요구 (1/2) 기능 자체와 관련된 질문 자료와 관련된 질문 시스템이 무엇을 하는가? 시스템이 언제 그 일을 하는가?
요구 분석 (Requirement Analysis) 기능 자체와 관련된 질문 시스템이 무엇을 하는가? 시스템이 언제 그 일을 하는가? 시스템 운용될 때 여러 가지 다른 모드가 있는가? 자료와 관련된 질문 입력, 출력이 무엇이며 어떤 형태를 갖는가? 얼마나 자주 자료를 받고 내보내는가? 시스템에 유입되는 자료의 양은 얼마나 되는가? 데이터는 어느 기간 동안 보관해야 하는가?

12 기능적 요구 (2/2) 인터페이스와 관련된 질문 사용자와 관련된 질문 다른 시스템에서 유입, 유출되는 입력은 무엇인가?
요구 분석 (Requirement Analysis) 인터페이스와 관련된 질문 다른 시스템에서 유입, 유출되는 입력은 무엇인가? 다른 시스템과 인터페이스하는 프로토콜의 종류는 무엇인가? 자료 전달에 사용되는 특정 미디어 형식이 있는가? 사용자와 관련된 질문 누가 시스템을 사용할 것인가? 사용자가 여러 그룹인가?  일반 사용자, 운영자, 관리자 등 각 사용자 그룹의 컴퓨터 사용 경험은? 각 사용자 그룹에 따라 필요한 교육은?

13 비기능적 요구 (1/2) 자원과 관련된 질문 성능과 관련된 질문 시스템 구축 및 유지보수에 필요한 자원, 인력은 무엇인가?
요구 분석 (Requirement Analysis) 자원과 관련된 질문 시스템 구축 및 유지보수에 필요한 자원, 인력은 무엇인가? 개발자가 갖추어야 할 기본 요구사항이 있는가? 어떤 하드웨어를 사용할 것인가? 시스템이 차지할 수 있는 공간은 어느 정도인가? 동작 환경(전력, 온도, 습도)에 대한 제약은 없는가? 개발된 시스템의 디스크, 메모리 공간의 제약은 없는가? 성능과 관련된 질문 시스템의 속도, 반응 시간, 처리율 (TPS: transactions per second, CPS: calls per second, MIPS, …) 시스템에 의하여 처리되는 자료의 크기

14 비기능적 요구 (2/2) 보안과 관련된 질문 품질과 관련된 질문 자료와 시스템에 대한 접근이 통제되어야 하는가?
요구 분석 (Requirement Analysis) 보안과 관련된 질문 자료와 시스템에 대한 접근이 통제되어야 하는가? 사용자들 사이에 타인에 대한 데이터 및 프로그램 접근 방지 시스템의 백업 기간 및 책임자 화재, 홍수, 도난 등의 재난을 대비한 방지책은? 물리적 보안 대책? ( 세콤?) 품질과 관련된 질문 신뢰성, 가용성, 유지보수성, 보안 등의 품질 특성에 대한 요구 시스템이 가동되는 평균 시간 시스템의 작업이 중단된 후 다시 복구될 때까지 허용되는 시간 설계 변경이 얼마나 용이한가? 얼마나 쉽게 위치나 플랫폼 변경이 가능한가? ( Portability)

15 We are now … 요구(Requirements) 요구 추출과 분석 구조적 분석 객체지향 분석 요구 분석 명세서
요구 분석 (Requirement Analysis) 요구(Requirements) 요구 추출과 분석 구조적 분석 객체지향 분석 요구 분석 명세서

16 요구를 어떻게 모을까? 스웨덴에서 8000개 이상의 프로젝트를 조사한 결과 프로젝트가 성공한 이유 중 가장 중요한 요소는 …
요구 분석 (Requirement Analysis) 스웨덴에서 8000개 이상의 프로젝트를 조사한 결과 프로젝트가 성공한 이유 중 가장 중요한 요소는 … 사용자의 참여(User Involvement) 엔드 유저를 쉽게 만날 수 있는 것이 프로젝트 성공의 중요한 요소 임 (스티브 맥코넬)

17 요구는 어떻게 파악해야 하나? 고객과 함께 일하면 좋은 관계는 개발 속도를 높임 예상되는 개발 속도를 향상시킴
요구 분석 (Requirement Analysis) 고객과 함께 일하면 좋은 관계는 개발 속도를 높임 예상되는 개발 속도를 향상시킴 고객이 원하는 것이 무엇인지 항상 아는 것은 아님 원하는 바를 알지 못하며 시간이 지나면서 요구가 변함

18 요구 분석가의 역할? 요구 분석가는 기자의 취재와 유사한 작업을 수행한다.
요구 분석 (Requirement Analysis) 요구 분석가는 기자의 취재와 유사한 작업을 수행한다. 사용자를 만나 면담을 수행한다. 실제 업무에 참관하거나, 업무를 직접 수행해 보기도 한다. 분석가는 비판적이고 객관적이어야 한다.  기자가 한쪽 편의 이야기만을 들어서는 되지 않는다. 분석가는 기자와 마찬가지로 6하 원칙에 따라서 정보를 수집한다.  다음 페이지 참조 기자가 취재를 종합하여 기사를 쓰듯이, 요구 분석가는 다양한 요구 추출을 통하여 요구 분석서를 작성해야 한다.

19 분석 단계 질문의 5W1H (Who) 분석 대상 업무에 누가 관련되는가? (What?) 현재의 상태는?
요구 분석 (Requirement Analysis) (Who) 분석 대상 업무에 누가 관련되는가? 관계자들의 작업 사용자 수준 (What?) 현재의 상태는? 문제를 일으킨 상태 제안된 시스템의 기능 (When?) 새로운 시스템은 언제 완성되어야 하나? (Where?) 새로운 시스템은 어떤 환경에 놓일 것인가? 새 시스템에서의 조직, 환경 (Why?) 왜 새로운 시스템을 고려하게 되었나? (How?) 새 시스템의 어떻게 작동할 것인가? 제약, 하드웨어 요구, 비용, 사용 언어

20 요구 추출의 어려움 요구 분석 (Requirement Analysis) 기존에 대충이라도 굴러가는 시스템이 있다면,  기능과 프로세스가 존재하기 때문에 요구를 추출하는 작업이 용이함 BUT, 아직 존재하지 않는 문제에 대해 요구를 추출해야 한다면,  사용자와 함께 해법을 찾아야 하므로 요구 추출이 어려움

21 요구의 우선 순위 1) 절대적으로 필요한 요구  전필?
요구 분석 (Requirement Analysis) 1) 절대적으로 필요한 요구  전필? 2) 요망되나 꼭 필요한 것은 아닌 요구  학점 못 채운 경우의 전선? 3) 요구로 볼 수는 있으나 제외될 수 있는 요구  학점 채운 경우의 전선? 신용카드 대금청구서 예제 거래 내역, 총 금액 계산, 납부 기일 명시  1)에 해당 일시불, 할부 등의 구매 형태 표시  2)에 해당 취소된 내역과 승인된 내역을 다른 색으로 표시  3)에 해당

22 요구 추출을 위한 자료의 출처 요구 분석 (Requirement Analysis) 요구 템플릿 재사용 라이브러리

23 요구 추출의 지혜 요구 분석 (Requirement Analysis) 요구 추출에서 가장 어려운 점은 “사용자가 원하는 것을 기록하는 작업이 아니라 사용자가 무엇을 원하는지 알 수 있도록 개발자들이 도움을 주는 것” (스티브 맥코넬) 사용자와 같이 생각하기 위하여 사용자와 같이 (생각/행동)하기 – 시스템이 어떻게 쉽게 사용될 수 있을까에 초점 사용자와 함께 하면서 가장 합리적인 고객의 기대치를 설정

24 잘못된 요구 분석 (a) 고객이 설명한 요구 (b) 분석가가 이해한 요구 (c) 분석가가 설계한 요구
요구 분석 (Requirement Analysis) (a) 고객이 설명한 요구 (b) 분석가가 이해한 요구 (c) 분석가가 설계한 요구

25 요구 분석 사례: 항공권 예매 시스템 항공편, 탑승객, 예약 입력  기능적 요구(입력)
요구 분석 (Requirement Analysis) 항공편, 탑승객, 예약 입력  기능적 요구(입력) 티켓과 리포트에 어떤 정보가 표시될 것인가  기능적 요구(출력) 요금계산 방법  기능적 요구(컴퓨팅) 여행사와 고객이 데이터베이스에 접근할 때 어떤 정보를 얻을 수 있나?  기능적 요구(저장) 자주 탑승하는 고객의 서비스를 위하여 시스템을 확장할 수 있도록 설계  비기능적 요구(확장성) 시스템은 언제나 사용 가능해야 하며, 일주일에 2시간의 다운만을 허용  비기능적(가용성) 항공편을 출발 시각으로 정렬할 때 Merge Sort 알고리즘을 이용함  요구가 아님

26 요구 추출 방법 요구를 효과적으로 추출하고 분석하는 체계화된 기술 요구추출 방법 작업 방법 특 징 관 찰
요구 분석 (Requirement Analysis) 요구를 효과적으로 추출하고 분석하는 체계화된 기술 요구추출 방법 작업 방법 특 징 관 찰 사용자의 업무를 관찰하며 메모 감추어진 문제를 잘 드러냄 설 문 사용자의 의견을 묻는 질문지 단기간 내에 많은 의견 취합 가능 인터뷰 여러 관련 당사자를 만나 준비된 질문과 대답 정확한 요구추출이 가능하고, 요구에 대한 오해를 줄일 수 있음 브레인스토밍 여러 사람이 모인 그룹에서 아이디어를 쏟아 놓는 방법 효과적이고 다양한 정보 추출 프로토타이핑 시범적으로 시스템을 구현 요구에 대한 빠른 피드백 사용사례 분석 시스템 외부 기능 파악 체계적 요구 구성

27 관찰 문서를 읽고 사용자와 함께 요구에 대하여 논의한다. 잠재적인 사용자들이 수행하는 복잡한 일을 관찰한다.
요구 분석 (Requirement Analysis) 문서를 읽고 사용자와 함께 요구에 대하여 논의한다. 잠재적인 사용자들이 수행하는 복잡한 일을 관찰한다. 사용자가 하는 일을 자세히 설명해 달라고 요구 경우에 따라, 해당 회사에서 함께 근무하며 요구를 파악하기도 함 비디오 촬영 예) 도매상에서 점원이 사려는 고객과 물건을 매매하는 과정 단점: 시간이 많이 소요

28 인터뷰 (1/2) 미리 잘 계획하면, 짧은 시간에 많은 정보를 얻을 수 있음 가능하면 많은 당사자와 인터뷰
요구 분석 (Requirement Analysis) 미리 잘 계획하면, 짧은 시간에 많은 정보를 얻을 수 있음 가능하면 많은 당사자와 인터뷰 관련자 이외의 다름 사람도 인터뷰 예: 경쟁 제품의 사용자, 마케팅 담당자 등 인터뷰 시간은 예상 보다 여유 있게 시간을 할애하여야 함

29 인터뷰 (2/2) 여러 번의 인터뷰를 준비하고, 충분한 질문을 준비함 포함시켜야 할 질문 유형
요구 분석 (Requirement Analysis) 여러 번의 인터뷰를 준비하고, 충분한 질문을 준비함 포함시켜야 할 질문 유형 구체적인 설명 요구 예) 최대, 최소, 예외 규칙, 예상 되는 변동 등 관련자의 시스템에 대한 미래 비전  어떤 융통성을 가져야 하는지 제안될 수도 있음 다른 아이디어가 있는지 질문  구현 대안을 찾을 수도 있음 최소한의 허용 가능한 솔루션이 무엇인지 질문  모든 기능을 아는 것도 중요하지만, 우선 순위를 파악하는 것도 중요함 다른 정보원이 없는지 질의  다른 인터뷰 대상자를 찾을 수도 있음 다이어그램 작성 요구  정보 흐름 등을 파악할 수 있음

30 브레인스토밍 아이디어를 낼 목적으로 여러 명으로부터 정보를 얻기 위한 회의
요구 분석 (Requirement Analysis) 아이디어를 낼 목적으로 여러 명으로부터 정보를 얻기 위한 회의 훈련된 요원이 주재하여 브레인스토밍 과정을 정돈(관리)해야 함 토론보다는 아이디어를 쏟아놓는 회의, 익명성 보장 JAD(Joint Application Development) – 집중 브레인스토밍 세션 개발자가 고객(혹은 사용자)과 격리된 장소에서 사나흘 회의함 하나의 그룹으로 작업하거나, 특정 문제에 대해 여러 개의 작은 그룹으로 작업할 수도 있음 참여자가 다른 업무로 중단 받아서는 안되므로, 학회나 수련회처럼 격리된 장소에서 수행할 필요가 있음

31 브레인스토밍 과정 관련자 모두가 참여하는 회의 소집 (5명 ~ 30명 수준) 경험 많은 사람을 회의 주재자로 선정
요구 분석 (Requirement Analysis) 관련자 모두가 참여하는 회의 소집 (5명 ~ 30명 수준) 경험 많은 사람을 회의 주재자로 선정 테이블에 참석자를 배석시키고 종이 준비 토론을 유도할 질문을 정함 (다음 페이지 참조) 질문에 대하여 답을 종이에 적되 한 장에 하나의 아이디어만 적은 후, 참석자에게 돌려 봄 5번 단계를 5~15분간 반복 (아이디어가 없을 때까지 반복) (원래 아이디어 제안자가 그 내용을) 간단히 설명 모든 아이디어를 칠판에 적은 후 우선순위를 정하기 위하여 투표를 할 수도 있음

32 브레인스토밍의 유도 질문 참석자가 Yes, No 식의 대답이 아닌 짧은 문장의 대답이 나와야 함
요구 분석 (Requirement Analysis) 참석자가 Yes, No 식의 대답이 아닌 짧은 문장의 대답이 나와야 함 유도 질문은 회의 소집자, 주재자, 간단한 토론 등을 통해 결정함 유도 질문의 예 어떤 기능이 이 시스템에서 중요한가? 미래에 어떤 자료의 출처가 예상되는가? 시스템에서 어떤 출력이 생성되어야 하는가? 도메인 모델에서 어떤 클래스가 필요한가? 인터뷰 질문에서 무엇을 물을 것인가? 고려하지 않을 이슈는 무엇인가? 이 프로젝트의 리스크는 무엇인가?

33 프로토타이핑 (1/4) 프로토타입이란? 최종 시스템의 예상 기능 중 일부를 빠르게 구현한 프로그램
요구 분석 (Requirement Analysis) 프로토타입이란? 최종 시스템의 예상 기능 중 일부를 빠르게 구현한 프로그램 가장 단순한 형태: paper prototype 시스템이 수행될 때 무엇이 일어날지 설명한 그림을 순서대로 그린 것 다수 개발자가 다른 버전을 병행 제작하여, 가장 좋은 것을 선택함

34 프로토타이핑 (2/4) 요구 분석 (Requirement Analysis)

35 프로토타이핑 (3/4) 가장 흔한 형태: 모의 사용자 인터페이스
요구 분석 (Requirement Analysis) 가장 흔한 형태: 모의 사용자 인터페이스 프로토타이핑 전용 언어(rapid prototyping language)로 작성 컴퓨팅, 데이터베이스 접근, 다른 시스템과의 상호작용은 불가능

36 프로토타이핑 (4/4) 요구 분석 (Requirement Analysis)

37 We are now … 요구(Requirements) 요구 추출과 분석 구조적 분석 객체지향 분석 요구 분석 명세서
요구 분석 (Requirement Analysis) 요구(Requirements) 요구 추출과 분석 구조적 분석 객체지향 분석 요구 분석 명세서

38 구조적 분석 – 개요 (1/2) 요구 분석 (Requirement Analysis) 정의: 사용자의 요구분석 사항을 파악하기 위하여 자료의 흐름과 가공 절차를 그림으로 표현하는 방법  처리-중심(process-oriented)의 분석 기법 구조적 분석은 전체 시스템이 만들어지기 전에 해당 시스템의 모형을 만드는 절차로 볼 수 있다. 세부 작업 순서 배경도 작성  학교 전체를 사진에 담는다. 상위 자료 흐름도 작성  개별 단과대학을 사진에 담는다. 하위 자료 흐름도 작성  개별 강의실/연구실을 사진에 담는다. 자료 사전 작성  각 건물, 방의 이름을 기술한다. 소단위 명세서 작성  건물, 방으로의 접근 방법을 기술한다.  참고: 자료 흐름도는 DFD(Data Flow Diagram)을 번역한 용어이다.

39 구조적 분석 – 개요 (2/2) 특징 그림(그래프) 중심으로 표현  글로 표현하는 것보다 이해하기 쉬움
요구 분석 (Requirement Analysis) 특징 그림(그래프) 중심으로 표현  글로 표현하는 것보다 이해하기 쉬움 하향식(top-down partitioning) 원리를 적용 사용자의 업무 요구 사항을 쉽게 문서화할 수 있음 사용자, 분석자 간의 의사소통을 위한 공용어 역할을 함 실체의 모형(추상적 표현)을 추출  건물의 경우, 모형을 만들어 좀 더 자세한 요구사항 분석이 가능하다.  유사한 개념으로, 소프트웨어도 구조적 분석을 통한 모형을 만들어 좀 더 자세한 요구 분석을 수행할 수 있다.

40 자료 흐름도의 구성 요소 (1/2) 요구 분석 (Requirement Analysis) 프로세스(process): 대부분 원이나 둥근 사각형으로 표기한다. 프로세스의 이름을 내부에 기재한다. 프로세스 이름 프로세스 이름 자료 흐름(data flow): 두 프로세스 사이의 자료 경로는 화살표로 표시한다. 화살표 위에 전달되는 자료의 이름을 기재한다. 자료 이름

41 자료 흐름도의 구성 요소 (2/2) 요구 분석 (Requirement Analysis) 파일 혹은 자료 저장소(data store): 한쪽이 열려진 사각형, 혹은 한 쌍의 평행선으로 표시한다. 저장소의 이름을 안에 기재할 수 있다. 저장소 이름 저장소 이름 자료의 출처(data source)와 도착지(data sink): 직사각형으로 표시하며, 내부에 이름을 기재한다. 자료 출처의 이름

42 식빵 공장의 DFD (1/2) 최상위 흐름도 1차 구체화 1 2 3 (재료) 공급자 재료 식빵 공장 포장된 식빵 배급자 식빵
요구 분석 (Requirement Analysis) 최상위 흐름도 (재료) 공급자 재료 식빵 공장 포장된 식빵 배급자 1 식빵 만들기 2 포장 3 빵을 배달 옥수수 밀가루 계란 우유 포장된 박스에 넣은 식빵 1차 구체화

43 식빵 공장의 DFD (2/2) 2차 구체화 1 2 1.1 3 1.3 1.2 1.4 식빵 만들기 포장 옥수수 씻고 고르기 빵을
요구 분석 (Requirement Analysis) 1 식빵 만들기 2 포장 3 빵을 배달 옥수수 밀가루 계란 우유 포장된 박스에 넣은 식빵 2차 구체화 1.1 옥수수 씻고 고르기 1.3 버터와 버무림 1.4 식빵을 구워냄 1.2 반죽을 만듦 깨끗한 옥수수 반죽 밀가루 계란 우유 준비된 구워낸 식빵

44 자동 색인 시스템 (1/2) 자동 색인? 쉽게 생각하면 주어진 텍스트 파일에서 단어들을 추출하여, 단어들을 정렬하고,
요구 분석 (Requirement Analysis) 자동 색인? 주어진 텍스트 파일에서 단어들을 추출하여, 단어들을 정렬하고, 해당 단어들이 어디에서 나오는지, 몇 번 나오는지를 기록한다. 쉽게 생각하면 텍스트 파일을 한 줄씩 읽어서, 새로운 단어이면 색인에 새롭게 넣고, 각 단어에 대해서는 위치(예: 페이지, 줄번호)를 리스트로 달아두면 된다.

45 자동 색인 시스템 (2/2) 요구 분석 (Requirement Analysis) 자동 색인 시스템의 DFD

46 프로세스 (Process, 처리) 입력 자료 흐름을 출력 자료 흐름으로 변환 원으로 표현하고 그 안에 처리의 이름을 적는다
요구 분석 (Requirement Analysis) 입력 자료 흐름을 출력 자료 흐름으로 변환 원으로 표현하고 그 안에 처리의 이름을 적는다 처리의 이름은 처리가 하는 일 또는 처리를 수행하는 행위자로 기술한다 고유번호가 주어짐 차후 소단위 명세의 대상 (무엇을 해야 하는지 결정해야 하는 대상) 1.1 임대비용 계산 3.4.5 고객별 명세서 작성 3 간호사

47 자료의 흐름 (Data Flow) 자료흐름은 변형되어 이동중인 자료군을 나타냄 이동 방향을 표시한 화살표로 나타냄
요구 분석 (Requirement Analysis) 자료흐름은 변형되어 이동중인 자료군을 나타냄 이동 방향을 표시한 화살표로 나타냄 화살표 위에 자료군의 이름을 붙임 자료 저장소에 연결된 자료의 흐름은 저장소에 자료군을 운반하여 저장함을 뜻함 초기환자자료 치료계획철 1 초기치료 계획 환자상태 자료 2 환자상태 기록 환자상태 불충분 메시지 감염정도 환자상태 환자철

48 자료 저장소 (Data Store) 머물고 있는 자료군의 집합  파일, 데이터베이스, 서류철 등
요구 분석 (Requirement Analysis) 머물고 있는 자료군의 집합  파일, 데이터베이스, 서류철 등 자료 저장소는 한쪽이 열려진 사각형 혹은 한 쌍의 평행선으로 표현 신용카드 사용전표 신용카드 사용내역철 1 신용카드 사용내역 기록 2 고객별 명세서 작성 사용내역서 고객철

49 단말(Terminal), 자료 출처/도착지
요구 분석 (Requirement Analysis) 대상 시스템 밖에서 의사 전달하는 사람, 부서, 또는 다른 자동화 시스템 단말은 사각형으로 표현하고 그 명칭을 부여 명칭은 한 개인, 부서를 기술하기 보다는 그 역할을 기술 분석실 병원 행정 분석기록 조회 의료비 자료 의료 기록 시스템 증상, 처방 의 사

50 자료 흐름도 작성 (1/3) 계층적 분할에 의하여 단계적으로 표현 배경도(context diagram) 작성
요구 분석 (Requirement Analysis) 계층적 분할에 의하여 단계적으로 표현 배경도(context diagram) 작성 개발하려는 시스템과 외부세계와의 인터페이스를 식별 시스템 분석의 범위를 설정 시스템 전체를 나타내는 하나의 처리와 관련된 단말들로 표시 (재료) 공급자 재료 식빵 공장 포장된 식빵 배급자

51 자료 흐름도 작성 (2/3) 중간 단계의 자료 흐름도
요구 분석 (Requirement Analysis) 중간 단계의 자료 흐름도 자료 흐름도 내의 하나 이상의 처리가 하위 자료 흐름도로 분할되는 자료흐름도 1 식빵 만들기 2 포장 3 빵을 배달 옥수수 밀가루 계란 우유 포장된 박스에 넣은 식빵

52 자료 흐름도 작성 (3/3) 최하위 단계의 자료 흐름도 자료흐름도 내의 모든 처리가 더 이상 분할되지 않는 자료흐름도
요구 분석 (Requirement Analysis) 최하위 단계의 자료 흐름도 자료흐름도 내의 모든 처리가 더 이상 분할되지 않는 자료흐름도 모든 처리들이 (궁극적으로는) 소단위 명세서로 설명됨 1.1 옥수수 씻고 고르기 1.3 버터와 버무림 1.4 식빵을 구워냄 1.2 반죽을 만듦 깨끗한 옥수수 반죽 밀가루 계란 우유 준비된 구워낸 식빵

53 자료 흐름도 작성 원칙 (1/5) 추상화와 단계적 분해 추상화 및 단계적 분해의 원칙
요구 분석 (Requirement Analysis) 추상화와 단계적 분해 추상화: 복잡하고 자세한 사실들을 간결한 개념으로 표현하는 과정 예) 건축의 평면도: 건축물을 간결하고 정확하며 완전하게 표현함  추상화는 과학/공학의 기본 연구 방향이기도 함 단계적 분해: 하향식 분할을 사용하여 복잡한 문제/과정을 간결하고 독립적인 문제/과정으로 분해하는 과정  알고리즘의 divide-and-conquer가 이에 해당한다고 볼 수 있음 (merge sort) 추상화 및 단계적 분해의 원칙 같은 계층의 각 문제는 같은 수준의 상세함을 가져야 한다. 각 문제는 독립적인 문제로 분리되어야 한다. 부분 문제들의 해가 모여서 원래 문제를 해결할 수 있어야 한다.

54 자료 흐름도 작성 원칙 (2/5) 명명(naming) 원칙 변환된 자료 흐름의 명칭
요구 분석 (Requirement Analysis) 명명(naming) 원칙 처리의 이름은 동사형 명사와 단일 직접 목적어를 사용하되, 간결하게 나타내라. 예) 더함(O), 개와 고양이에게 먹이를 줌(X, 두 개의 목적어) 어떤 경우에도 다 적용될 수 있는 포괄적인 명칭은 피하라. 새로운 신용카드 부적절한 예 입력자료 적절한 예 가격을 책정하고 상품목록을 기록 고객 관리 출력자료 고객상태 변환된 자료 흐름의 명칭 자료흐름은 처리를 거쳐 변환될 때마다 새로운 이름을 부여 사과 닦은사과 껍질을 벗긴사과 껍질을 벗기다 속을 파내다 씨를 빼낸 사과 자른 사과 닦다 자르다

55 자료 흐름도 작성 원칙 (3/5) 자료 흐름의 균형 처리를 중심으로 입력과 출력 자료의 흐름은 어디서나 일치되어야 함
요구 분석 (Requirement Analysis) 자료 흐름의 균형 처리를 중심으로 입력과 출력 자료의 흐름은 어디서나 일치되어야 함 프로세스 1이 분할된 예제 D B B 2 1.1 A A 1 1.2 C 3 1.3 E C B 1.1 F G 1.3 G 1 C 1.2 자료 사전: F = B | C

56 자료 흐름도 작성 원칙 (4/5) 자료 흐름의 분할 및 통합 프로세스와 자료 저장소 간의 자료 흐름
요구 분석 (Requirement Analysis) 자료 흐름의 분할 및 통합 자료 흐름은 (구체화의 정도에 따라) 분할 또는 통합이 가능 자료 흐름 분할의 예 치료 계획 수립 초기 자료 의사진단자료 환자 병력 자료 환자병력자료기록 프로세스와 자료 저장소 간의 자료 흐름 프로세스  자료 저장소 (자료 수정, 삽입, 삭제) 프로세스  자료 저장소 (자료 검색)

57 자료 흐름도 작성 원칙 (5/5) 블랙 홀(black hole)과 화이트 홀(white hole)은 없어져야 함
요구 분석 (Requirement Analysis) 블랙 홀(black hole)과 화이트 홀(white hole)은 없어져야 함 블랙 홀: 자료의 입력만 있는 자료 저장소 화이트 홀: 자료의 출력만 있는 자료 저장소 White hole 환자철 치료계획 보고 치료 보고 Black hole 실자료철 모든 프로세스를 한 장에 그리는 것 보다는 단계적으로 나누어 그리는 것이 전체적으로 이해하기에 좋음 (원칙적으로) 한 장의 분석서에 한 계층의 자료 흐름도만 그린다. 한 장에 72개의 처리가 적당하다.

58 자료 사전(Data Dictionary) (1/2)
요구 분석 (Requirement Analysis) 자료 흐름도에 나타나는 자료(용어)에 대한 정의를 모은 사전 형식 자료 항목 이름 = 자료 항목의 구성을 나타내는 수식 자료 항목 구성 표기법 ( 정규 표현법과 유사) + 자료요소가 다른 요소와 연결되어 있음 | 'or'의 의미, 즉 택일을 의미 ‘ ’ 문자형 상수를 의미 [ ] Zero or more를 의미하는 선택형 요소를 나타낼 때 사용 { } 중괄호 안의 요소가 반복되는 것을 나타냄 { }x 중괄호 안의 요소가 적어도 x번 이상 반복됨 { }y 중괄호 안의 요소가 많아야 y번 반복됨 { }yx 중괄호 안의 요소가 x번 이상 y번 이하 반복됨

59 자료 사전(Data Dictionary) (2/2)
요구 분석 (Requirement Analysis) 자료 사전의 예 구독자_전화번호 = [지역번호] + 국번 + '-' + 가입자_번호 지역번호 = '(' + '0' + 첫자리 + {십진수}10 + ')' 국번 = {십진수}43 가입자_번호 = {십진수}44 첫자리 = 2|3|4|5|6 십진수 = 0|1|2|3|4|5|6|7|8|9 신규 구독자 명단의 자료 요소: 교재 p. 180 참조 자료흐름도에서 쓰인 자료 항목들이 ‘가나다’ 순으로 사전처럼 정리되어야 함

60 소단위 명세서 요구 분석 (Requirement Analysis) 소단위 명세서(mini-spec)의 정의: 자료 흐름도의 최하위 프로세스(primitive process)가 어떤 기능을 하는지 기술한 명세 소단위 명세서는 프로세스 명세서(process specification) 또는 소작업 명세서(activity specification)라 부르기도 함 소단위 명세서의 작성 방법 구조적 영어 (structured English)  알고리즘 기술 방법과 유사 의사 결정표 (decision table)  진리값 테이블과 유사 흐름도 Nassi-Shneiderman 도표 전후 조건, …

61 구조적 영어 (Structured English) (1/2)
요구 분석 (Requirement Analysis) 영어에서 쓰는 단어 중에서 연산(compute, add, get, put, find, move, replace, set, sort, …)이나 제어 구조(if then else, case, repeat until, while, …)를 표현하는 단어를 제한적으로 도입하여 기술하는 방법 순차적 구조 선택적 구조: IF, SWITCH(혹은 CASE) 등이 이에 해당 반복적 구조: FOR, WHILE 등이 이에 해당

62 구조적 영어 (Structured English) (2/2)
요구 분석 (Requirement Analysis) 구조적 영어의 사용 예제 IF 청구액 > 50만원 IF 납입지체일 > 60일 THEN 사고해결부서에 통고 ELSE (신용도가 이직은 좋음) 재청구서 발송 ELSE THEN 재청구서 발송 신용평가서에 기록 ELSE 재청구서 발송

63 의사 결정표 (Decision Table) (1/2)
요구 분석 (Requirement Analysis) 여러 다른 조건에 대하여 각기 다른 처리를 해야 할 경우에 적합 의사 결정에 영향을 주는 변수, 변수가 가질 수 있는 값, 각 경우에 적용될 처리 등을 체계적으로 (한 눈에 알아볼 수 있도록) 나타낼 수 있음 고지서 발급 시스템을 위한 의사 결정표 ( 진리표로도 나타낼 수 있음) 대금 지급 지급 X 미지급 미지급 잔고 있음 없음 영수증 발급 O 청구서 발급 안내장 발생

64 의사 결정표 (Decision Table) (2/2)
요구 분석 (Requirement Analysis) 조금 더 복잡한 예제: 회원 등급 판별을 위한 의사결정 표

65 구조적 사례 분석 (1/6) 요구 분석 (Requirement Analysis) 비디오 대여점 소프트웨어: 범위는 비디어 대여, 고객 관리, 매장에 있는 비디오의 관리 + 하루가 마감되면 매상을 계산하여 보고 배경도 배경도의 확장  p. 188의 그림 4.15 참조

66 구조적 사례 분석 (2/6) 배경도를 위한 자료 사전 1. 자료 흐름
요구 분석 (Requirement Analysis) 배경도를 위한 자료 사전 1. 자료 흐름 새 고객 = 이름 + 주소 + 전화번호 + 신용 카드 번호 + 신용 카드 유효 기간 대여  = 전화번호 + {비디오 번호}m1 + 대여 비디오 개수 대여 영수증 = 전화번호 + 고객 이름 + 고객 주소 + {비디오 번호 + 비디오 제목 + 대여료 + 반납일}m1 + 총대여금+총지불액 + 외상액         고객이 서명하여야 하며 영수증은 안 받아갈 수도 있다. 새 비디오 = 비디오 번호+비디오 제목+날짜+ 대여료          새 비디오에 관한 정보 일일매상 보고 = 대여된 비디오+매상 + 반납된 비디오 + 정시 반납 + 연체 반납 + 총연체일 + 징수된 연체료 총액

67 구조적 사례 분석 (3/6) 요구 분석 (Requirement Analysis) Level 0 DFD

68 구조적 사례 분석 (4/6) Level 0를 위한 자료 사전 1. 자료 저장소
요구 분석 (Requirement Analysis) Level 0를 위한 자료 사전 1. 자료 저장소 고객 파일 = 전화번호 + 고객 이름 + 고객 주소 + 고객 군구 + 고객 시도              우편번호 + 신용카드 종류 + 신용카드 번호 + 신용 카드 만료일 전화번호 = [지역번호] + 국번 + 가입자번호 대여 파일 = 고객 전화번호 + 고객 이름 + 대여일 + 비디오 번호 + 비디오 제목               반납예정일 + 반납일 + 대여료 +연체료 2. 자료 흐름 새 고객 = 이름 + 주소+전화번호 + 신용 카드 번호 + 신용 카드 유효 기간 대여  = [전화번호 | 고객 이름] + {비디오 번호 | 비디오 제목} 지불액 = 화폐 단위 반납 = 비디오 번호+고객 전화 번호 연체료 = 화폐 단위

69 구조적 사례 분석 (5/6) Level 1 DFD (‘3.0 대여 작성’의 구체화)
요구 분석 (Requirement Analysis) Level 1 DFD (‘3.0 대여 작성’의 구체화)

70 구조적 사례 분석 (6/6) 소단위 명세서 자세한 내용  p. 190의 그림 4.19 참조 프로세스 번호: 1.0
요구 분석 (Requirement Analysis) 소단위 명세서 프로세스 번호:  1.0 프로세스 이름:  고객 등록 설명: 고객 입력 화면 출력; While(ans == 'n') { 고객 전화번호, 동호수, 취향 등 입력화면의 각 필드를 입력 받음; print 확인 메시지; 고객 파일에 저장; print 더 이상의 고객 입력을 원하는가?; ans = read(); } 프로세스 번호:  2.0 프로세스 이름:  마감보고서 작성 설명: Read 대여 파일; count 당일 대여 횟수; 대여금 총액 계산; Read 현금출납기; count 당일 반납; count 당일 연체 반납; 당일 연체료 총액 계산; Format, print 마감 보고서 자세한 내용  p. 190의 그림 4.19 참조

71 We are now … 요구(Requirements) 요구 추출과 분석 구조적 분석 객체지향 분석 요구 분석 명세서
요구 분석 (Requirement Analysis) 요구(Requirements) 요구 추출과 분석 구조적 분석 객체지향 분석 요구 분석 명세서

72 객체지향 요구분석 필요성 객체지향 시스템의 주요 장점 객체지향 요구분석 개발 과정에 객체지향 접근 방법이 많이 사용되고 있음
요구 분석 (Requirement Analysis) 필요성 개발 과정에 객체지향 접근 방법이 많이 사용되고 있음 프로그래밍 언어로도 객체지향 언어가 널리 사용되고 있음 객체지향 시스템의 주요 장점 도메인을 쉽게 설계할 수 있고 쉽게 이해할 수 있음 실세계 개념과 객체가 밀접한 연관이 있고, 상속 개념으로 재사용이 용이함 객체지향 요구분석 가장 먼저 할 일은 요구를 추출하고 이를 “사용 사례”로 표현하는 것 객체지향 분석을 “사용 사례 분석”이라고도 칭함 사용 사례 분석: 개발한 소프트웨어를 가지고 사용자가 무엇을 할 수 있는지를 분석하는 체계적 방법

73 사용 사례 분석 분석 과정 현금자동 인출기의 예 사용 사례 작성 작업의 과정
요구 분석 (Requirement Analysis) 분석 과정 우선, 시스템을 사용할 수 있는 사용자 부류인 액터(actor)를 결정함 액터가 시스템을 사용할 필요가 있는 작업(혹은 이벤트)인 사용 사례를 분석함 사용 사례란 “시스템이 수행할 것으로 기대되는 기능”을 의미함 현금자동 인출기의 예 현금자동 인출기와 고객은 액터에 해당함 인출과정에서 시스템과 고객이 주고 받는 이벤트의 기록이 사용 사례임 사용 사례 작성 작업의 과정 액터 찾기 사용 사례 찾기 사용 사례 사이의 관계 찾기 자세한 내용은 생략함 (교재 – 참조)

74 We are now … 요구(Requirements) 요구 추출과 분석 구조적 분석 객체지향 분석 요구 분석 명세서
요구 분석 (Requirement Analysis) 요구(Requirements) 요구 추출과 분석 구조적 분석 객체지향 분석 요구 분석 명세서

75 요구 분석 명세서 작성의 유의사항 요구 분석 (Requirement Analysis) 사용자와 개발자 모두가 쉽게 이해할 수 있도록 작성해야 한다.  무릇 모든 문서/발표는 독자/청중의 수준에 맞추어야 한다. 기술된 조건은 개발자와 사용자 모두가 동의한 것이어야 한다.  자기의 이익을 앞세운 조건이 들어가면 계약이 될 수 없다. 제안된 시스템에 의하여 수행될 모든 기능을 정확히 기술하여야 한다.  어떤 방법으로 제공하는가 보다는 무슨 기능을 제공하는가에 초점 제안된 시스템에 영향을 주는 모든 제약 조건을 기술하여야 한다.  목표 하드웨어, 하드웨어 용량, 동작 환경 등 시스템의 인수를 위한 테스트 기준을 제공하여야 한다.  성능(1000 TPS), 용량(100만 가입자), … 시스템의 품질과 상대적인 중요도 및 품질 측정 방법이 기술되어야 한다.  기능/성능보다 안전성(우주선), 편리성보다 정확성(현금 지급기), …

76 LMSC 문서 예제 – 소프트웨어 프로세스 구조
요구 분석 (Requirement Analysis) 연동 서브시스템 집합 단말 정보 처리 메시지 송수신 페이징 처리 AAAIF JUICEIF MSIF LMEIF SMSCIF IPLSIF SANTAIF 과금 처리 INBHIF WISEIF 제어 및 호처리 CDRMNG LMSSVC 데이터베이스 메시지 파일 기타 연동 MSGMNG MSGSCH NMSIF WINGSIF 데이터 관리 운용 및 유지보수 DBMGR SVCSTAT SYSMON ALMD COND MMCD

77 LMSC 문서 예제 – 주요 프로세스 설명 주요 프로세스 프로세스 기능 요구 분석 (Requirement Analysis)
MSIF 단말 연동 HTTP POST/GET 메시지 분석 및 처리 발신 단말로부터의 수신 메시지 저장, 착신 단말에 전송할 송신 메시지 인출 LMEIF LME 연동 Submit, Delivery, Delivery_Report 등의 메시지 분석 및 처리 LME로부터 수신 메시지 저장, LME로 전송할 송신 메시지 인출 SMSCIF, IPLSIF SMSC 방식 혹은 SMOI 방식을 사용하여 단말과의 단문 메시지 전송 AAAIF, JUICEIF 장문 메시지 처리 과정에서 필요한 단말 및 가입자 관련 정보 취득 INBHIF, WISEIF, CDRMNG 지능망 가입자 실시간 차감, 과금 CDR 구성 및 WISE로의 CDR 전송 LMSSVC LMSC 서비스 제어 메시지 식별자(Message ID) 할당 및 관리 메시지 관리 테이블(MSG_MGT_TBL) 관리 메시지 상태 관리 및 상태에 따른 호처리 수행 MSGSCH 비실시간 메시지 처리 메시지 재전송, 예약 전송 처리 메시지 강제 착신 처리 MSGMNG 데이터 관리 DB내 메시지 레코드 삭제 메시지 파일 삭제

78 LMSC 문서 예제 – 주요 호처리 절차 P2P: 단말  LME P2P: LME  단말 P2W: 단말  LME
요구 분석 (Requirement Analysis) P2P: 단말  LME P2P: LME  단말 LME LME AAA JUICE AAA JUICE LMSC LMSC MS MS SMSC P2W: 단말  LME W2P: LME  단말 LME LME AAA JUICE AAA JUICE LMSC LMSC MS MS SMSC

79 LMSC 문서 예제 – 메시지 처리 흐름도 요구 분석 (Requirement Analysis) Ready 단말 GET 성공
Delivery.REQ 수신 수신 메시지 인출 실패 착신 가입자 인증 착신 가입자, 착신 단말 인증 실패 수신 메시지 인출 성공 Delivery.REQ 수신 NOTI 성공 인증 성공 메시지 수신 처리 성공 SMSC 연동 성공 Status-Report 미수신 Status-Report 수신 착신 단말 인증 착신알림 전송 성공 착신알림 전송 실패 W2P인 경우, 메시지 레코드 삽입 및 메시지 파일 생성을 수행한다. P2P인 경우, 기 삽입된 메시지 레코드를 변경하고, 메시지 파일을 생성한다.

80 LMSC 문서 예제 – 과금 처리 과정 기술 1. LME로부터 발신 과금, 착신 과금, 무과금에 대한 과금 방식 취득
요구 분석 (Requirement Analysis) 1. LME로부터 발신 과금, 착신 과금, 무과금에 대한 과금 방식 취득 2. W2P(MSG_ID가 없는 경우)인 경우, JUICE 연동으로 가입자 정보 수신 3. 착신이 지능망 가입자이고 잔액소진이면 임시 충전을 수행 착신 가입자가 메시지를 인출한 후에 다시 소진 4. 과금 생성 시점에서, 텍스트와 멀티미디어에 대한 과금 정보(CDR) 생성 5. 발/착신 여부, 지능망 가입자 여부에 따라 지능망 과금을 수행 차감 종류(건당, 패킷당)와 지능망 서비스 유형, 사용 구간에 따라 요율 코드 결정 INBH로부터 수신한 차감 금액을 과금 정보에 수록 6. 과금 개수, 주기에 따라 과금 정보를 파일로 생성 7. 생성한 과금 파일을 WISE로 전송

81 요구 분석서의 목차 (1/2) 1 개 요 2 기능적 목표 3 기타 요구 및 제약 사항 4 인수 조건 참고 자료 및 용어 해설
요구 분석 (Requirement Analysis) 1 개 요 1.1 시스템 개요 1.2 목표 2 기능적 목표 2.1 자료 흐름도 2.2 자료사전 2.3 소단위 명세서 2.4 기능면에서의 시스템 특성 3 기타 요구 및 제약 사항 3.1 성능 요구(반응 시간, 처리소요 시간, 처리율) 3.2 하드웨어 요구(기억장치 규모, 통신 수용도) 3.3 예외 조건 및 이의 처리 3.4 사용자 인터페이스 3.5 자원, 인력에 대한 제약조건 4 인수 조건 4.1 기능시험 및 성능시험 참고 자료 및 용어 해설

82 요구 분석서의 목차 (2/2) 요구 분석 (Requirement Analysis)

83 명세서 검토 - 요구 분석의 평가 무결성(correctness) 완벽성(completeness) 일관성(consistency)
요구 분석 (Requirement Analysis) 무결성(correctness) 완벽성(completeness) 일관성(consistency) 명확성(unambiguous) 기능성(functionality) 검증 가능성(verifiability) 추적 가능성(traceability) 변경 용이성(modifiability) <정수에 대한 사칙연산의 예제> “+”에 대한 정의가 바르게 되어야 네 가지 연산을 모두 정의하여야 모두 정수에 대해 정의하여야… ‘’ 등으로 한꺼번에 나타내지 않아야… 레지스터가 어쩌고…가 아니어야 연산이 바른지 확인할 수 있어야 연산이 어디에 사용되었는지… 연산의 변경이 가능해야…


Download ppt "소프트웨어 공학 (Software Engineering) 요구 분석 (Requirement Analysis)"

Similar presentations


Ads by Google