(Requirements Analysis) 요구 분석 (Requirements Analysis) - COE 306: Software Engineering -
강의 개요 요구(Requirements) 요구 분석 구조적 분석 요구 분석 자동화 도구 요구 분석서 자료 흐름도 자료 사전 COE 306 소프트웨어공학 강의 개요 요구(Requirements) 요구 분석 구조적 분석 자료 흐름도 자료 사전 소단위 명세서(mini-spec) 요구 분석 자동화 도구 요구 분석서 (c) Eun Man Choi, 2001
요구 결정 과정
요구(Requirements) 란? 시스템이 가져야 할 기능이나 시스템이 만족하여야 할 조건 시스템이 제공하여야 할 서비스나 제약 조건을 포괄적으로 기술한 것부터 수학 기호로 자세히 표현한 것까지 다양함
요구의 종류 사용자 요구 시스템 요구 소프트웨어 명세(specification) 시스템이 제공할 서비스와 수행될 때의 제약 조건을 그림이나 글로 표현한 것(사용자를 위하여 작성) 시스템 요구 시스템이 제공하여야 할 서비스를 체계적으로 자세히 적은 것(계약자와 개발자 사이의 계약) 소프트웨어 명세(specification) 개발될 소프트웨어에 대하여 기술한 것으로 설계와 구현에 기초가 됨(개발자를 위하여 작성)
요구 분석 요구 분석 시스템 요구 무엇을 개발할 것인가를 경정하는 단계 잘못 되었을 때 바로 잡기 위한 비용이 큼 COE 306 소프트웨어공학 요구 분석 요구 분석 무엇을 개발할 것인가를 경정하는 단계 잘못 되었을 때 바로 잡기 위한 비용이 큼 Requirements Engineering 시스템 요구 기능적 요구(functional requirements) 기능이나 시스템의 서비스 소프트웨어의 종류, 사용자, 소프트웨어가 수행되는 시스템에 따라 다름 시스템이 사용자를 위하여 무엇을 하는가를 거시적으로 기술 비기능적 요구(non-functional requirements) 성능: 응답 시간, 처리량 신뢰도, 보안성, 운용제약, 개발 비용: 투자한계 (c) Eun Man Choi, 2001
분석 단계의 질문들 분석 대상 업무에 누가 관련되는가? 현재의 상태는? 새로운 시스템은 언제 완성되어야 하나? COE 306 소프트웨어공학 분석 단계의 질문들 분석 대상 업무에 누가 관련되는가? 관계자들의 작업 사용자 수준 현재의 상태는? 문제를 일으킨 상태 제안된 시스템의 기능 새로운 시스템은 언제 완성되어야 하나? 새로운 시스템은 어떤 환경에 놓일 것인가? 새 시스템에서의 조직, 환경 왜 새로운 시스템을 고려하게 되었나? 새 시스템의 어떻게 작동할 것인가? 제약, 하드웨어 요구, 비용, 사용 언어 (c) Eun Man Choi, 2001
요구 추출 우선 순위 절대적으로 필요한 요구 요망되나 꼭 필요한 것은 아닌 요구 요구로 판단될 수 있으나 제외될 수도 있는 요구 요구 템플릿 재사용 라이브러리
명 세 화 요구 분석서가 갖추어야 할 사항 요구 분석의 문제점 사용자 개발자가 모두 쉽게 이해 COE 306 소프트웨어공학 명 세 화 요구 분석서가 갖추어야 할 사항 사용자 개발자가 모두 쉽게 이해 기술된 조건은 쌍방이 모두 동의한 것 제안된 시스템에서 수행될 모든 기능을 정확히 기술 모든 제약 조건 명시(반응 시간, 목표 하드웨어, 비용한계, 사용자 특성, 언어) 시스템 인수를 위한 테스트 기준 시스템의 품질, 품질 측정 방법 요구 분석의 문제점 사용자의 부정확한 요구 표명 잦은 요구 변경 대화의 장애 시스템의 복잡도 (c) Eun Man Choi, 2001
요구분석의 접근 방법 요구분석의 원리 정보 영역 설정의 원리 분할체계 확립의 원리 시스템의 논리적, 물리적 표현 COE 306 소프트웨어공학 요구분석의 접근 방법 요구분석의 원리 정보 영역 설정의 원리 입력, 출력, 처리, 정보의 유통, 내용, 조직체계 분할체계 확립의 원리 작은 문제로 분할 세분화 시스템의 논리적, 물리적 표현 요구 기능적 비기능적 문제 요구분석 상의 문제 의사소통 -> 그림 복 잡 -> 단계적 분할 변 경 -> CASE 도구 명세화 -> 도구 (c) Eun Man Choi, 2001
분석 방법의 비교 구조적 분석 자료 + 함수 자료보다는 함수에 중점 프로그램에 대한 뷰 분석할 때 강조점 사 례 구조적 분석 자료 + 함수 자료보다는 함수에 중점 프로세스를 먼저 정하고 프로세스에 대한 입출력을 나중에 정함 Structured Analysis SREM 객체지향 분석 객체 + 객체 + ... 객체 자체와 객체사이의 관계 파악이 중요 ∙객체가 가지는 자료와 오퍼레이션의 정의 RUP OMT Fusion 정보공학 자료 + 프로세스 ∙자료 및 자료들 사이의 관계를 우선적으로 파악 ∙자료에 대한 오퍼레이션 패턴으로 프로세스를 그룹핑 Information Engineering 정형화 방법 시스템의 상태와 상태 변화 상태에 대한 논리적 표현이 중요 VDM Z Petri Net
COE 306 소프트웨어공학 구조적 분석 정의 사용자의 요구분석 사항을 파악하기 위하여 자료의 흐름과 가공절차를 그림 중심으로 표현하는 방법 처리중심(process-oriented) 분석 기법 세부 작업 순서 배경도 작성 상위 자료 흐름도 작성 하위 자료 흐름도 작성 자료 사전 작성 소단위 명세서 작성 (c) Eun Man Choi, 2001
구조적 분석 특징 표현 방법 그림 중심의 표현 하향식(top-down partitioning) 원리를 적용 COE 306 소프트웨어공학 구조적 분석 특징 그림 중심의 표현 하향식(top-down partitioning) 원리를 적용 사용자의 업무 요구 사항을 쉽게 문서화 사용자 분석자 간의 의사소통을 위한 공용어 실체의 모형(추상적 표현)을 추출 표현 방법 Yourdon과 Demarco의 방법 Gane과 Sarson의 방법 (c) Eun Man Choi, 2001
자료 흐름도 구성요소 예 자료흐름(Data Flow) 처리(Process) 자료 저장소(Data Store) COE 306 소프트웨어공학 자료 흐름도 구성요소 자료흐름(Data Flow) 처리(Process) 자료 저장소(Data Store) 단말(Terminator) 예 자료원 자료도착지 1.0 프로세스 (c) Eun Man Choi, 2001
식빵 공장의 DFD 1.1 1 씻고 식빵 고르기 만들기 2 1.3 포장 버터와 버무림 1.2 반죽을 만듦 3 빵을 배달 1.4 COE 306 소프트웨어공학 식빵 공장의 DFD 1 식빵 만들기 2 포장 3 빵을 배달 옥수수 밀가루 계란 우유 포장된 박스에 넣은 식빵 1.1 씻고 고르기 1.3 버터와 버무림 1.4 식빵을 구워냄 1.2 반죽을 만듦 깨끗한 옥수수 반죽 준비된 (c) Eun Man Choi, 2001
자동 색인 시스템의 자료 흐름도
처 리(Process) 입력 자료흐름을 출력 자료흐름으로 변환 원으로 표현하고 그 안에 처리의 이름을 적는다 처리의 이름은 COE 306 소프트웨어공학 처 리(Process) 입력 자료흐름을 출력 자료흐름으로 변환 원으로 표현하고 그 안에 처리의 이름을 적는다 처리의 이름은 처리가 하는 일 또는 처리를 수행하는 행위자로 기술한다 고유번호가 주어짐 차후 소단위 명세의 대상 1.1 임대비용 계산 3.4.5 고객별 명세서 작성 3 간호사 (c) Eun Man Choi, 2001
자료의 흐름(Data flow) 자료흐름은 변형되어 이동중인 자료군을 나타냄 이동 방향을 표시한 화살표로 나타냄 COE 306 소프트웨어공학 자료의 흐름(Data flow) 자료흐름은 변형되어 이동중인 자료군을 나타냄 이동 방향을 표시한 화살표로 나타냄 화살표 위에 자료군의 이름을 붙임 자료저장소에 연결된 자료의 흐름은 저장소에 자료군을 운반하여 저장함을 뜻함 초기환자자료 치료계획철 1 초기치료 계획 환자상태 자료 2 환자상태 기록 환자상태 불충분 메시지 감염정도 환자상태 환자철 (c) Eun Man Choi, 2001
자료 저장소(Data store) 머물고 있는 자료군의 집합(파일, 데이터베이스, 서류철 등) COE 306 소프트웨어공학 자료 저장소(Data store) 머물고 있는 자료군의 집합(파일, 데이터베이스, 서류철 등) 자료저장소는 한 쌍의 평행선으로 표현 1 신용카드 사용내역 기록 2 고객별 명세서 작성 고객철 사용내역철 사용전표 사용내역서 (c) Eun Man Choi, 2001
단말(Terminal) 대상 시스템 밖에서 의사 전달하는 사람, 부서 또는 다른 자동화 시스템 COE 306 소프트웨어공학 단말(Terminal) 대상 시스템 밖에서 의사 전달하는 사람, 부서 또는 다른 자동화 시스템 단말은 사각형으로 표현하고 그 명칭을 부여 명칭은 한 개인, 부서를 기술하기 보다는 그 역할을 기술 분석실 병원 행정 분석기록 조회 의료비 자료 의료 기록 시스템 증상, 처방 의 사 (c) Eun Man Choi, 2001
자료 흐름도 작성 단계적 분할에 의하여 단계적으로 표현 배경도(context diagram) 작성 중간 단계의 자료흐름도 COE 306 소프트웨어공학 자료 흐름도 작성 단계적 분할에 의하여 단계적으로 표현 배경도(context diagram) 작성 개발하려는 시스템과 외부세계와의 인터페이스를 식별 시스템 분석의 범위를 설정 시스템 전체를 나타내는 하나의 처리와 관련된 단말들로 표시 (그림 3.8) 중간 단계의 자료흐름도 자료흐름도 내의 하나 이상의 처리가 하위 자료흐름도로 분할되는 자료흐름도 (그림 3.9) 최하위 단계의 자료흐름도 자료흐름도 내의 모든 처리가 더 이상 분할되지 않는 자료흐름도 모든 처리들이 소단위 명세서로 설명됨 (그림 3.10) (c) Eun Man Choi, 2001
자료흐름도 작성 원칙 명명 원칙 변환된 자료흐름의 명칭 처리의 이름은 동사형 명사와 단일 직접목적어를 사용하라 COE 306 소프트웨어공학 자료흐름도 작성 원칙 명명 원칙 처리의 이름은 동사형 명사와 단일 직접목적어를 사용하라 어떤 경우에도 다 적용될 수 있는 포괄적인 명칭은 피하라 <부적절한 예> 입력자료 새로운 신용카드 가격을 책정하고 상품목록을 기록 고객 관리 출력자료 고객상태 변환된 자료흐름의 명칭 자료흐름 처리를 거쳐 변환될 때마다 새로운 이름을 부여 <예> 사과 닦은사과 껍질을 벗긴사과 씨를 빼낸 사과 자른사과 껍질을 벗기다 속을 파내다 닦다 자르다 (c) Eun Man Choi, 2001
자료흐름도 작성원칙 자료흐름의 균형 처리 중심으로 입력과 출력 자료의 흐름은 어디서나 일치되어야 함 COE 306 소프트웨어공학 자료흐름도 작성원칙 자료흐름의 균형 처리 중심으로 입력과 출력 자료의 흐름은 어디서나 일치되어야 함 D B B 2 1.1 A A 1 1.2 C 3 1.3 E C D F B 2 1.1 A A 1 1.2 C 3 1.3 E 자료 사전: F = B + C (c) Eun Man Choi, 2001
자료흐름도 작성원칙 자료흐름의 분할 및 통합 처리와 자료저장소 간의 자료흐름 자료흐름은 통합 또는 분할이 가능 COE 306 소프트웨어공학 자료흐름도 작성원칙 자료흐름의 분할 및 통합 자료흐름은 통합 또는 분할이 가능 <예> 치료 계획 수립 초기 자료 의사진단자료 환자 병력 자료 환자병력자료기록 처리와 자료저장소 간의 자료흐름 처리 -> 자료 저장소(자료수정, 삽입, 삭제) 처리 <- 자료 저장소(자료검색) (c) Eun Man Choi, 2001
자료흐름도 작성원칙 입력만 되는 자료저장소(black hole)와 출력만 되는 자료저장소(white hole)는 없어야 함 COE 306 소프트웨어공학 자료흐름도 작성원칙 입력만 되는 자료저장소(black hole)와 출력만 되는 자료저장소(white hole)는 없어야 함 <예> 환자철 치료계획 보고 치료 보고 실자료철 모든 처리를 한 장에 그리는 것보다 단계적으로 나누어 그리는 것이 이해하기 좋음 한 장에 7 ±2개의 처리가 적당 (c) Eun Man Choi, 2001
과도하게 세분화된 프로세스
If-then-else 논리 표현
파일 읽기 중복
물리적 개체가 표현된 잘못된 예
자료 흐름의 이름이 잘못된 예
자료사전 작성 자료사전(data dictionary) 자료 흐름도에 나타나는 자료에 대한 정의를 모은 것 형식 COE 306 소프트웨어공학 자료사전 작성 자료사전(data dictionary) 자료 흐름도에 나타나는 자료에 대한 정의를 모은 것 형식 자료 항목 이름 = 자료 항목의 구성을 나타내는 수식 자료 항목 구성 표기법 + 자료요소가 다른 요소와 연결되어 있음 | 'or'의 의미, 즉 택일을 의미 ' ' 문자형 상수를 의미 [ ] 하나 또는 그 이상의 선택형 요소를 나타낼 때 사용 { } 중괄호 안의 요소가 반복되는 것을 나타냄 { }x 중괄호 안의 요소가 적어도 x번 이상 반복됨 { }y 중괄호 안의 요소가 많아야 y번 반복됨 { }yx 중괄호 안의 요소가 x번 이상 y번 이하 반복됨 (c) Eun Man Choi, 2001
자료사전 작성 자료흐름도에서 쓰인 자료 항목들이 '가나다' 순으로 사전처럼 정리되어야 함 <예> COE 306 소프트웨어공학 자료사전 작성 <예> 구독자_전화번호 = [지역번호] + 국번 + '-' + 가입자_번호 지역번호 = '(' + '0' + 첫자리 + {십진수}20 + ')' 국번 = {십진수}43 가입자_번호 = {십진수}44 첫자리 = 2|3|4|5|6 자료흐름도에서 쓰인 자료 항목들이 '가나다' 순으로 사전처럼 정리되어야 함 (c) Eun Man Choi, 2001
소단위 명세서 작성 소단위 명세서(mini-spec) 기술 방법 자료 흐름도의 최하위 처리가 어떤 기능을 하는가를 기술한 것 COE 306 소프트웨어공학 소단위 명세서 작성 소단위 명세서(mini-spec) 자료 흐름도의 최하위 처리가 어떤 기능을 하는가를 기술한 것 기술 방법 1) 구조적 영어(structured english) 영어에서 쓰이는 단어 중 연산이나 제어구조를 표현하는데 쓰이는 단어(if then else, case, repeat, until, while 등)를 제한해서 사용 <예> IF 청구액 > 50만원 IF 납입지체일 > 60일 THEN 사고해결부서에 통고 ELSE (신용도가 이직은 좋음)재청구서 발송 ELSE THEN 재청구서 발송 신용평가서에 기록 ELSE 재청구서 발송 (c) Eun Man Choi, 2001
소단위 명세서 작성 2) 의사 결정표(decision table) - 여러 가지 다른 조건에 대하여 다른 처리를 해야 할 경우 COE 306 소프트웨어공학 소단위 명세서 작성 2) 의사 결정표(decision table) - 여러 가지 다른 조건에 대하여 다른 처리를 해야 할 경우 (c) Eun Man Choi, 2001
COE 306 소프트웨어공학 사례: 비디오 대여점의 배경도 (c) Eun Man Choi, 2001
배경도를 위한 자료사전 자료 사전(배경도) 1. 자료 흐름 새고객 = 이름 + 주소+전화번호 + 신용 카드 번호 + 신용 카드 유효 기간 대여 = 전화번호 + +대여 비디오 개수 대여 영수증 = 전화번호+고객 이름+고객 주소 + {비디오 번호+비디오 제목+대여료+ +총대여금+총지불액 + 외상액 고객이 서명하여야 하며 영수증은 안 받아갈 수도 있다. 새비디오 = 비디오 번호+비디오 제목+날짜+ 대여료 새비디오에 관한 정보 일일매상 보고 = 대여된 비디오+매상 + 반납된 비디오 + 정시 반납 + 연체 반납 + 총연체일 + 징수된 연체료 총액
COE 306 소프트웨어공학 Level 0 DFD (c) Eun Man Choi, 2001
Level 0를 위한 자료 사전 자료 사전(Level 0) 1. 자료 저장소 COE 306 소프트웨어공학 Level 0를 위한 자료 사전 자료 사전(Level 0) 1. 자료 저장소 고객 화일 = 전화번호 + 고객 이름 + 고객 주소 + 고객 군구 + 고객 시도 + 우편번호 + 신용카드 종류 + 신용카드 번호 + 신용 카드 만료일 전화번호 = [지역번호] + 국번 + 가입자번호 대여 화일 = 고객 전화번호 + 고객 이름 + 대여일 + 비디오 번호 + 비디오 제목 + 반납예정일 + 반납일 + 대여료 +연체료 2. 자료 흐름 새고객 = 이름 + 주소+전화번호 + 신용 카드 번호 + 신용 카드 유효 기간 대여 = [전화번호 | 고객 이름] + {비디오 번호 | 비디오 제목} 지불액 = 화폐 단위 반납 = 비디오 번호+고객 전화 번호 연체료 = 화폐 단위 (c) Eun Man Choi, 2001
COE 306 소프트웨어공학 비디오 대여를 위한 Level 1 DFD (c) Eun Man Choi, 2001
소단위 명세서 프로세스 번호: 1.0 프로세스 이름: 고객 등록 설명: 고객 입력 화면 출력; COE 306 소프트웨어공학 소단위 명세서 프로세스 번호: 1.0 프로세스 이름: 고객 등록 설명: 고객 입력 화면 출력; While(ans == 'n') { 고객 전화번호, 동호수, 취향 등 입력화면의 각 필드를 입력 받음; print 확인 메시지; 고객 파일에 저장; print 더 이상의 고객 입력을 원하는가?; ans = read(); } 프로세스 번호: 2.0 프로세스 이름: 마감보고서 작성 설명: Read 대여 파일; count 당일 대여 횟수; 대여금 총액 계산; Read 현금출납기; count 당일 반납; count 당일 연체 반납; 당일 연체료 총액 계산; Format, print 마감 보고서 (c) Eun Man Choi, 2001
요구 분석의 자동화 요구분석 도구의 기능 도구의 구조 여러가지 방법론에 의한 다이어그래밍 기능 COE 306 소프트웨어공학 요구 분석의 자동화 요구분석 도구의 기능 여러가지 방법론에 의한 다이어그래밍 기능 모델의 정확성, 일관성을 확인하기 위한 오류 검증 기능 프로토타이핑을 지원하는 도구 설계 사전 여러가지 다른 모델 사이에 모순이 있는지 검사 도구의 구조 프로토타이핑 및 명세화 도구 그래픽 기능 자료저장소 일관성 및 모순 검사 (c) Eun Man Choi, 2001
요구 분석 도구 <상품명> <공급회사> Teamwork/SA Cadre Technologies COE 306 소프트웨어공학 요구 분석 도구 <상품명> <공급회사> Teamwork/SA Cadre Technologies PC/Workshop Computer Corp. of America CorVision Cortex Developer Workstation DBMS Excellerator Index Technology The Design Machine Ken Orr & Associate Information Engineering Knowledgeware Workstation Structured Architect Meta Systems MacBubbles StarSys Analyst/Designer Toolkit Yourdon (c) Eun Man Choi, 2001
요구 분석서(목차) 1 개 요 2 기능적 목표 3 기타 요구 및 제약 사항 4 인수 조건 참고 자료 및 용어 해설 COE 306 소프트웨어공학 요구 분석서(목차) 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 기능시험 및 성능시험 참고 자료 및 용어 해설 (c) Eun Man Choi, 2001
요구 분석서의 평가 평가 기준 무결성과 완벽성(completeness) 일관성(consistency) COE 306 소프트웨어공학 요구 분석서의 평가 평가 기준 무결성과 완벽성(completeness) 일관성(consistency) 명확성(correctness) 기능적(functional) 검증 가능성(verifiability) 추적 가능성(traceability) 및 변경 용이성(modifiability) (c) Eun Man Choi, 2001
요구 검증 방법 요구 검토 프로토타이핑 테스트 사례 작성 자동 일관성 분석 요구를 눈으로 검사하되 체계적인 방법으로 검토 요구를 검토하기 위하여 실행될 수 있는 시스템 모형을 제작. 테스트 사례 작성 기능을 검토하기 위하여 요구를 시험하기 위한 계획 작성 자동 일관성 분석 요구 분석 도구를 이용하여 모순이 없는지 분석
요구 분석이 어려운 경우 발주자가 무엇을 원하는지 전혀 모를 경우 발주자가 자신의 용어로만 요구를 표현할 경우 발주자들이 서로 상충되는 요구를 제시한 경우 조직의 정치적인 요소가 시스템의 요구에 영향을 미칠 수 있다. 요구가 계속 변경되는 경우. 또는 새로운 발주자가 나타나 비즈니스 환경이 달라진 경우.
요구 분석 과정