소프트웨어공학 () i 요구분석 (Requirement Analysis) 문양세강원대학교 IT 대학컴퓨터과학전공
In this chapter (1/2) 무엇을개발할것인가를정확하고완전하게결정하는단계이다. 정확성 Correctness 완전성 Completeness 다른단계 ( 설계, 구현, 테스트 ) 에비하여잘못되었을때다시개발해야하는비용이가장크다. 요구분석단계의작업은 어떻게 (how) 보다는 무엇을 (what) 에초점을맞추어진행한다. Page 2
In this chapter (2/2) 요구의결정과정 We will cover 요구란? 요구추출과분석 구조적분석 요구분석명세서 Page 3
We are now 요구 (Requirements) 요구추출과분석 구조적분석 요구분석명세서 Page 4
요구 (Requirements) 란? 요구란 시스템이가져야할기능이나시스템이만족하여야할조건 시스템이제공하여야할서비스나제약조건을포괄적으로기술한것부터수학기호로자세히표현한것까지다양함 현금인출기의예 외형적기능 : 현금인출, 잔액조회, 계좌이체, 현금서비스, 기능및성능 : 시간당처리능력, 반응시간, 제약조건 ( 습도, 온도등 ), 요구의두가지사용형태 프로젝트수주를위한제안의기초 제안서에포함되며, 어떠어떠한기능을제공하겠다 일단제안이목적이므로서로다른해석이가능하다 ( 同床異夢 ) 프로젝트계약의기초 상세히기술되어야함 ( 정확성, 완전성 ) 특히, 외국과일할시에는매우신중하게작성해야함 일하고벌금물고하는 Page 5
요구의실제예제 (1/2) 성능관련 Page 6
요구의실제예제 (2/2) 기능관련 Page 7
요구의종류 사용자요구 : 시스템이제공할서비스와수행될때의제약조건을그림이나글로표현한것 사용자를위하여작성 시스템요구 : 시스템이제공하여야할서비스를체계적으로자세히적은것 계약자 ( 계약사 ) 와개발자 ( 개발사 ) 사이의계약 소프트웨어명세 (specification): i 개발될소프트웨어에대하여기술한것으로설계와구현에기초가됨 개발자를위하여작성 ( 규격은어떻고, 언어는어떻고, ) Page 8
요구분석 요구분석 : 무엇을개발할것인가를결정하는단계 잘못되었을때바로잡기위한비용이큼 Requirements Engineering ( 요구분석가 : Requirement Analyzer) 시스템요구 기능적요구 (functional requirements) 소프트웨어의종류, 사용자, 소프트웨어가수행되는시스템에따라다름 시스템이사용자를위하여무엇을하는가를거시적으로기술 비기능적요구 (non-functional requirements) 성능 : 응답시간, 처리량, 신뢰도, 보안성, 운용제약 개발비용 : 투자한계 Page 9
기능적요구 (1/2) 기능자체와관련된질문 시스템이무엇을하는가? 시스템이언제그일을하는가? 시스템운용될때여러가지다른모드가있는가? 자료와관련된질문 입력, 출력이무엇이며어떤형태를갖는가? 얼마나자주자료를받고내보내는가? 시스템에유입되는자료의양은얼마나되는가? 데이터는어느기간동안보관해야하는가? Page 10
기능적요구 (2/2) 인터페이스와관련된질문 다른시스템에서유입, 유출되는입력은무엇인가? 다른시스템과인터페이스하는프로토콜의종류는무엇인가? 자료전달에사용되는특정미디어형식이있는가? 사용자와관련된질문 누가시스템을사용할것인가? 사용자가여러그룹인가? 일반사용자, 운영자, 관리자등 각사용자그룹의컴퓨터사용경험은? 각사용자그룹에따라필요한교육은? Page 11
비기능적요구 (1/2) 자원과관련된질문 시스템구축및유지보수에필요한자원, 인력은무엇인가? 개발자가갖추어야할기본요구사항이있는가? 어떤하드웨어를사용할것인가? 시스템이차지할수있는공간은어느정도인가? 동작환경 ( 전력, 온도, 습도 ) 에대한제약은없는가? 개발된시스템의디스크, 메모리공간의제약은없는가? 성능과관련된질문 시스템의속도, 반응시간, 처리율 (TPS: transactions per second, CPS: calls per second, MIPS, ) 시스템에의하여처리되는자료의크기 Page 12
비기능적요구 (2/2) 보안과관련된질문 자료와시스템에대한접근이통제되어야하는가? 사용자들사이에타인에대한데이터및프로그램접근방지 시스템의백업기간및책임자 화재, 홍수, 도난등의재난을대비한방지책은? 물리적보안대책? ( 세콤?) 품질과관련된질문 신뢰성, 가용성, 유지보수성, 보안등의품질특성에대한요구 시스템이가동되는평균시간 시스템의작업이중단된후다시복구될때까지허용되는시간 설계변경이얼마나용이한가? 얼마나쉽게위치나플랫폼변경이가능한가? ( Portability) Page 13
We are now 요구 (Requirements) 요구추출과분석 구조적분석 요구분석명세서 Page 14
요구분석단계의작업 현재시스템정의 문서, 파일, 자료요소, 자료의처리과정, 규모와시기, 다른시스템과의인터페이스 현재시스템의평가 현시스템과제안시스템의비교 업무조직이새시스템에맞는지평가 제안시스템을위한비즈니스요구정의 주요기능, 범위, 업무조직, 제안시스템의환경 (H/W, S/W, 언어, DBMS 등 ) 검토 처리요구정의 DFD, 자료사전, 소단위명세서작성 제약 ( 시간, 메모리, 병렬성등 ), 성능, 입출력, 보고서 교육및시스템인수조건정의 Page 15
요구분석가의역할? 요구분석가는기자의취재와유사한작업을수행한다. 사용자를만나면담을수행한다. 실제업무에참관하거나, 업무를직접수행해보기도한다. 분석가는비판적이고객관적이어야한다. 기자가한쪽편의이야기만을들어서는되지않는다. 분석가는기자와마찬가지로 6 하원칙에따라서정보를수집한다. 다음페이지참조 기자가취재를종합하여기사를쓰듯이, 요구분석가는다양한요구추 출을통하여요구분석서를작성해야한다. Page 16
분석단계질문의 5W1H (Who) 분석대상업무에누가관련되는가? 관계자들의작업 사용자수준 (What?) 현재의상태는? 문제를일으킨상태 제안된시스템의기능 (When?) 새로운시스템은언제완성되어야하나? (Where?) 새로운시스템은어떤환경에놓일것인가? 새시스템에서의조직, 환경 (Why?) 왜새로운시스템을고려하게되었나? (How?) 새시스템의어떻게작동할것인가? 제약, 하드웨어요구, 비용, 사용언어 Page 17
요구추출의어려움 기존에대충이라도굴러가는시스템이있다면, 기능과프로세스가존재하기때문에요구를추출하는작업이용이함 BUT, 아직존재하지않는문제에대해요구를추출해야한다면, 사용자와함께해법을찾아야하므로요구추출이어려움 Page 18
요구의우선순위 1) 절대적으로필요한요구 전필? 2) 요망되나꼭필요한것은아닌요구 학점못채운경우의전선? 3) 요구로볼수는있으나제외될수있는요구 학점채운경우의전선? 신용카드대금청구서예제 거래내역, 총금액계산, 납부기일명시 1) 에해당 일시불, 할부등의구매형태표시 2) 에해당 취소된내역과승인된내역을다른색으로표시 3) 에해당 Page 19
요구추출을위한자료의출처 요구템플릿 재사용라이브러리 Page 20
요구의명세화 요구분석서가갖추어야할사항 사용자와개발자가모두쉽게이해 기술된조건은쌍방이모두동의한것 제안된시스템에서수행될모든기능을정확히기술 모든제약조건명시 ( 반응시간, 목표하드웨어, 비용한계, 사용자특성, 언어 ) 시스템인수를위한테스트기준 시스템의품질, 품질측정방법 요구분석의문제점 사용자의부정확한요구표명 잦은요구변경 대화의장애 시스템의복잡도 Page 21
요구분석의접근방법 요구분석의원리 정보영역설정의원리 입력, 출력, 처리, 정보의유통, 내용, 조직체계 분할체계확립의원리 작은문제로분할 세분화 시스템의논리적, 물리적표현 문제 요구 기능적 비기능적 요구분석상의문제 의사소통 그림 복잡 단계적분할 변경 CASE 도구 명세화 도구 Page 22
분석방법의종류 분석방법프로그램에대한뷰분석시강조점 구조적분석 자료 + 함수 (structured programming) 자료보다는함수에중점 프로세스 ( 함수 ) 를먼저정하고, 프로세스 ( 함수 ) 에대한입출력을나중에정함 객체지향분석 객체 + 객체 + (OO programming) 객체자체와객체사이의관계파악이중요 객체가가지는자료와오퍼레이션의정의 정보공학적분석 자료 + 프로세스 자료및자료들사이의관계를우선적으로파악 자료에대한오퍼레이션패턴으로프로세스를 Grouping 자료의구체화 DB 설계 ER Diagram 본강의에서는구조적분석에초점을맞추어진행함 Page 23
ER Diagram의실제예제 Page 24
We are now 요구 (Requirements) 요구추출과분석 구조적분석 요구분석명세서 Page 25
구조적분석 개요 (1/2) 정의 : 사용자의요구분석사항을파악하기위하여자료의흐름과가공 절차를그림으로표현하는방법 처리 - 중심 (process-oriented) 의분석기법 구조적분석은전체시스템이만들어지기전에해당시스템의모형을만 드는절차로볼수있다. 세부작업순서 배경도작성 학교전체를사진에담는다. 상위자료흐름도작성 개별단과대학을사진에담는다. 하위자료흐름도작성 개별강의실 / 연구실을사진에담는다. 자료사전작성 각건물, 방의이름을기술한다. 소단위명세서작성 건물, 방으로의접근방법을기술한다. 참고 : 자료흐름도는 DFD(Data Flow Diagram) 을번역한용어이다. Page 26
구조적분석 개요 (2/2) 특징 그림 ( 그래프 ) 중심으로표현 글로표현하는것보다이해하기쉬움 하향식 (top-down partitioning) 원리를적용 사용자의업무요구사항을쉽게문서화할수있음 사용자, 분석자간의의사소통을위한공용어역할을함 실체의모형 ( 추상적표현 ) 을추출 건물의경우, 모형을만들어좀더자세한요구사항분석이가능하다. 유사한개념으로, 소프트웨어도구조적분석을통한모형을만들어좀더자세한 요구분석을수행할수있다. Page 27
자료흐름도의구성요소 (1/2) 프로세스 (process): 대부분원이나둥근사각형으로표기한다. 프로세스 의이름을내부에기재한다. 프로세스 이름 프로세스 이름 자료흐름 (data flow): 두프로세스사이의자료경로는화살표로표시한 다. 화살표위에전달되는자료의이름을기재한다. 자료이름 Page 28
자료흐름도의구성요소 (2/2) 파일혹은자료저장소 (data store): 한쪽이열려진사각형, 혹은한쌍의 평행선으로표시한다. 저장소의이름을안에기재할수있다. 저장소이름 저장소이름 자료의출처 (data source) 와도착지 (data sink): 직사각형으로표시하며, 내부에이름을기재한다. 자료출처의이름 Page 29
식빵공장의 DFD (1/2) 최상위흐름도 재료포장된식빵 ( 재료 ) 공급자식빵공장배급자 옥수수 1 1 차구체화 밀가루계란우유 식빵만들기 식빵 2 식빵포장 박스에넣은식빵 3 빵을배달 포장된식빵 Page 30
식빵공장의 DFD (2/2) 옥수수 1 밀가루계란우유 박스에넣은식빵 식빵만들기 3 빵을배달 식빵 2 식빵포장포장된식빵 2 차구체화 옥수수 1.2 1.1 옥수수씻고고르기 반죽 깨끗한옥수수 1.3 버터와버무림 밀가루계란 반죽을만듦 준비된반죽 우유 1.4 구워낸식빵 식빵을구워냄 Page 31
자동색인시스템 (1/2) 자동색인? 주어진텍스트파일에서단어들을추출하여, 단어들을정렬하고, 해당단어들이어디에서나오는지, 몇번나오는지를기록한다. 쉽게생각하면 텍스트파일을한줄씩읽어서, 새로운단어이면색인에새롭게넣고, 각단어에대해서는위치 ( 예 : 페이지, 줄번호 ) 를리스트로달아두면된다. Page 32
자동색인시스템 (2/2) 자동색인시스템의 DFD Page 33
프로세스 (Process, 처리 ) 입력자료흐름을출력자료흐름으로변환 원으로표현하고그안에처리의이름을적는다 처리의이름은 처리가하는일또는 처리를수행하는행위자로기술한다 고유번호가주어짐 차후소단위명세의대상 ( 무엇을해야하는지결정해야하는대상 ) 1.1 임대비용계산 3.4.5 고객별명세서작성 3 간호사 Page 34
자료의흐름 (Data Flow) 자료흐름은변형되어이동중인자료군을나타냄 이동방향을표시한화살표로나타냄 화살표위에자료군의이름을붙임 자료저장소에연결된자료의흐름은저장소에자료군을운반하여저장 함을뜻함 초기환자자료 불충분메시지 치료계획철 1 초기치료계획 2 환자상태환자상태기록감염정도환자상태환자철 환자상태자료 Page 35
자료저장소 (Data Store) 머물고있는자료군의집합 파일, 데이터베이스, 서류철등 자료저장소는한쪽이열려진사각형혹은한쌍의평행선으로표현 신용카드사용전표 신용카드사용내역철 1 신용카드사용내역기록 2 고객별명세서작성 사용내역서 고객철 Page 36
단말 (Terminal), 자료출처 / 도착지 대상시스템밖에서의사전달하는사람, 부서, 또는다른자동화시스템 단말은사각형으로표현하고그명칭을부여 명칭은한개인, 부서를기술하기보다는그역할을기술 분석실 분석기록 조회 병원행정 의료기록시스템 의료비자료 의사 증상, 처방 Page 37
자료흐름도작성 (1/3) 계층적분할에의하여단계적으로표현 배경도 (context diagram) 작성 개발하려는시스템과외부세계와의인터페이스를식별 시스템분석의범위를설정 시스템전체를나타내는하나의처리와관련된단말들로표시 재료포장된식빵 ( 재료 ) 공급자식빵공장배급자 Page 38
자료흐름도작성 (2/3) 중간단계의자료흐름도 자료흐름도내의하나이상의처리가하위자료흐름도로분할되는자료흐름도 옥수수 1 밀가루계란우유 식빵만들기 식빵 2 식빵포장 박스에넣은식빵 3 빵을배달 포장된식빵 Page 39
자료흐름도작성 (3/3) 최하위단계의자료흐름도 자료흐름도내의모든처리가더이상분할되지않는자료흐름도 모든처리들이 ( 궁극적으로는 ) 소단위명세서로설명됨 밀가루 계란 우유 옥수수 1.1 옥수수씻고고르기 깨끗한옥수수 1.3 버터와 12 1.2 반죽 버무림 반죽을만듦 구워낸식빵 1.4 식빵을구워냄 준비된반죽 Page 40
자료흐름도작성원칙 (1/5) 추상화와단계적분해 추상화 : 복잡하고자세한사실들을간결한개념으로표현하는과정 예 ) 건축의평면도 : 건축물을간결하고정확하며완전하게표현함 추상화는과학 / 공학의기본연구방향이기도함 단계적분해 : 하향식분할을사용하여복잡한문제 / 과정을간결하고독립적인문제 / 과정 으로분해하는과정 알고리즘의 Divide-and-conquer 가이에해당한다고볼수있음 (merge sort) 추상화및단계적분해의원칙 같은계층의각문제는같은수준의상세함을가져야한다. 각문제는독립적인문제로분리되어야한다. 부분문제들의해가모여서원래문제를해결할수있어야한다. Page 41
자료흐름도작성원칙 (2/5) 명명 (naming) 원칙 처리의이름은동사형명사와단일직접목적어를사용하되, 간결하게나타내라. 예 ) 더함 (O), 개와고양이에게먹이를줌 (X, 두개의목적어 ) 어떤경우에도다적용될수있는포괄적인명칭은피하라. 부적절한예 입력자료 새로운신용카드 적절한예 가격을책정하고상품목록을기록 출력자료 고객관리 고객상태 변환된자료흐름의명칭 자료흐름은처리를거쳐변환될때마다새로운이름을부여 사과닦은사과껍질을씨를자른사과닦다껍질을속을벗긴사과자르다벗기다파내다빼낸사과 Page 42
자료흐름도작성원칙 (3/5) 자료흐름의균형 처리를중심으로입력과출력자료의흐름은어디서나일치되어야함 프로세스 1 이분할된예제 A 1 B 2 D A 1.2 1.1 B C 3 13 1.3 E C B 1.1 F 1 G C 1.2 1.3 G 자료사전 : F = B C Page 43
자료흐름도작성원칙 (4/5) 자료흐름의분할및통합 자료흐름은 ( 구체화의정도에따라 ) 분할또는통합이가능 자료흐름분할의예 의사진단자료 초기자료 치료계획수립 환자병력자료 환자병력자료기록 프로세스와자료저장소간의자료흐름 프로세스 자료저장소 ( 자료수정, 삽입, 삭제 ) 프로세스 자료저장소 ( 자료검색 ) Page 44
자료흐름도작성원칙 (5/5) 블랙홀 (black hole) 과화이트홀 (white hole) 은없어져야함 블랙홀 : 자료의입력만있는자료저장소 화이트홀 : 자료의출력만있는자료저장소 White hole 환자철 치료보고 치료계획보고 실자료철 Black hole 모든프로세스를한장에그리는것보다는단계적으로나누어그리는것이전체적으로이해하기에좋음 ( 원칙적으로 ) 한장의분석서에한계층의자료흐름도만그린다. 한장에 7 2개의처리가적당하다. Page 45
자료흐름도다듬기 (1/9) 과다하게세분화된프로세스의통합예제 Page 46
자료흐름도다듬기 (2/9) If-then-else 논리표현의간략화예제 Page 47
자료흐름도다듬기 (3/9) 경험및규칙 1) 자료흐름이하나만나와서다음프로세스의입력이되는프로세스는과 다하게세분적으로분할된가능성이높음 통합혹은정확성검사 통합하는예 외부개체 Missing 의예 수정전 수정후 수정전 수정후 Px P.x.1 Px P.x.1~2 P.x.1 외부개체 P.x.1 P.x.2 P.x.2 P.x.2 Page 48
자료흐름도다듬기 (4/9) 경험및규칙 2) 여러프로세스가동일한외부개체와상호작용하고프로세스하나는상 호작용이없는경우 자료흐름과변환과정이다른지검토 수정전 수정후 외부개체 P.x.1 외부개체 P.x.1~3 P.x.2 P.y.1 P.y.1 P.x.3 P.x.1~3 가외부개체와상호작용을도맡아하고, P.y.1 은 P.x.1~3 에서입력을받도록수정한다. Page 49
자료흐름도다듬기 (5/9) 경험및규칙 3) 여러프로세스가동일파일에접근하는경우 파일에서읽는자료흐름을비교하여반복이있으면통합 Px P.x.3 의읽는기능 ( 읽고처리하는기능 ) 은 Px P.x.11 에, 쓰는기능 ( 쓰고처리하는기능 ) 은 Px P.x.12 에주고, 자신은없어진형태이다. Page 50
자료흐름도다듬기 (6/9) 경험및규칙 4) 여러프로세스가동일파일에여러번자료를저장하는경우 같은자료를쓰는지검사하고필요하면재구성및통합 수정전 수정후 외부개체 P.x.1 외부개체 P.x.11 P.x.2 P.x.12 Px P.x.3 P.x.3의외부개체 I/F은 P.x.12에, P.x.2 및 P.x.3의쓰는기능 ( 쓰고처리하는기능 ) 은 P.x.11에주고, P.x.3는없어진형태이다. 다음슬라이드를보면, 다른형태로간략화된예를볼수있다. ( 正道는없음에유의 ) Page 51
자료흐름도다듬기 (7/9) 경험및규칙 5) 단순하고과다하게세분화된프로세스의경우 이웃프로세스와통합 수정전수정후 (1) 수정후 (2) 외부개체 P.x.1 외부개체 P.x.1 외부개체 P.x.11 P.x.2 P.x.2 P.x.12 Px P.x.3 Px P.x.3 Page 52
자료흐름도다듬기 (8/9) 경험및규칙 6) 물리적개체 ( 예 : 현금출납기, 바코드입력기 ) 의이름을가급적피한다. 기능적이름을사용하는것이바람직하다 ( 예 : 인출기능 ). Page 53
자료흐름도다듬기 (9/9) 경험및규칙 7) 자료흐름의이름이정보의내용을충분히반영하는지확인한다. 가능한구체적으로명명한다. ( 고객정보 고객번호 ) Page 54
자료사전 (Data Dictionary) (1/2) 자료흐름도에나타나는자료 ( 용어 ) 에대한정의를모은사전 형식 자료항목이름 = 자료항목의구성을나타내는수식 자료항목구성표기법 ( 정규표현법과유사 ) + 자료요소가다른요소와연결되어있음 'or' 의의미, 즉택일을의미 문자형상수를의미 [ ] Zero or more를의미하는선택형요소를나타낼때사용 {} 중괄호안의요소가반복되는것을나타냄 { } x 중괄호안의요소가적어도 x번이상반복됨 { } y { } y x 중괄호안의요소가많아야 y번반복됨중괄호안의요소가 x 번이상 y 번이하반복됨 Page 55
자료사전 (Data Dictionary) (2/2) 자료사전의예 구독자 _ 전화번호 = [ 지역번호 ] + 국번 + '-' + 가입자 _ 번호 지역번호 = '(' + '0' + 첫자리 + { 십진수 } 1 0 + ')' 국번 = { 십진수 } 4 3 가입자 _ 번호 = { 십진수 } 4 4 첫자리 = 2 3 4 5 6 십진수 = 0 1 2 3 4 5 6 7 8 9 신규구독자명단의자료요소 : 교재 p. 141 참조 자료흐름도에서쓰인자료항목들이 가나다 순으로사전처럼정리되어 야함 Page 56
소단위명세서 소단위명세서 (mini-spec) 의정의 : 자료흐름도의최하위프로세스 (primitive process) 가어떤기능을하는 지기술한명세 소단위명세서는프로세스명세서 (process specification) 또는소작업명 세서 (activity specification) 라부르기도함 소단위명세서의작성방법 구조적영어 (structured English) 알고리즘기술방법과유사 의사결정표 (decision table) 진리값테이블과유사 흐름도 Nassi-Shneiderman 도표 전후조건, Page 57
구조적영어 (Structured English) (1/2) 영어에서쓰는단어중에서 연산 (compute, add, get, put, find, move, replace, set, sort, ) 이나 제어구조 (if then else, case, repeat until, while, ) 를표현하는단어를 제한적으로도입하여기술하는방법 순차적구조 Refer to p. 142 선택적구조 Refer to pp. 143-144144 반복적구조 Refer to pp. 144-145 Page 58
구조적영어 (Structured English) (2/2) 구조적영어의사용예제 IF 청구액 > 50 만원 ELSE IF 납입지체일 > 60 일 THEN 사고해결부서에통고 ELSE ( 신용도가이직은좋음 ) 재청구서발송 IF 납입지체일 > 60 일 THEN 재청구서발송 ELSE 재청구서발송 신용평가서에기록 Page 59
의사결정표 (Decision Table) 여러다른조건에대하여각기다른처리를해야할경우에적합 의사결정에영향을주는변수, 변수가가질수있는값, 각경우에적용 될처리등을체계적으로 ( 한눈에알아볼수있도록 ) 나타낼수있음 고지서발급시스템을위한의사결정표 ( 진리표로도나타낼수있음 ) 대금지급 미지급잔고 지급 O O 미지급 O O 있음 O O 없음 O O 영수증발급 O O 청구서발급 O O 안내장발생 O O 좀더복잡한예제 p. 147 의표 3.3, 의사결정도 p. 147 의그림 3.20 Page 60
구조적사례분석 (1/6) 비디오대여점소프트웨어 : 범위는비디어대여, 고객관리, 매장에있는 비디오의관리 + 하루가마감되면매상을계산하여보고 배경도 배경도의확장 p. 149 의그림 3.23 참조 Page 61
구조적사례분석 (2/6) 배경도를위한자료사전 1. 자료흐름새고객 = 이름 + 주소 + 전화번호 + 신용카드번호 + 신용카드유효기간대여 = 전화번호 + { 비디오번호 } m 1 + 대여비디오개수 대여영수증 = 전화번호 + 고객이름 + 고객주소 + { 비디오번호 + 비디오제목 + 대여료 + 반납일 } m 1 + 총대여금 + 총지불액 + 외상액고객이서명하여야하며영수증은안받아갈수도있다. 새비디오 = 비디오번호 + 비디오제목 + 날짜 + 대여료새비디오에관한정보 일일매상보고 = 대여된비디오 + 매상 + 반납된비디오 + 정시반납 + 연체반납 + 총연체일 + 징수된연체료총액 Page 62
구조적사례분석 (3/6) Level 0 DFD Page 63
구조적사례분석 (4/6) Level 0 를위한자료사전 1. 자료저장소고객파일 = 전화번호 + 고객이름 + 고객주소 + 고객군구 + 고객시도 + 우편번호 + 신용카드종류 + 신용카드번호 + 신용카드만료일전화번호 = [ 지역번호 ] + 국번 + 가입자번호대여파일 = 고객전화번호 + 고객이름 + 대여일 + 비디오번호 + 비디오제목 + 반납예정일 + 반납일 + 대여료 + 연체료 2. 자료흐름새고객 = 이름 + 주소 + 전화번호 + 신용카드번호 + 신용카드유효기간대여 = [ 전화번호 고객이름 ] + { 비디오번호 비디오제목 } 지불액 = 화폐단위반납 = 비디오번호 + 고객전화번호연체료 = 화폐단위 Page 64
구조적사례분석 (5/6) Level 1 DFD ( 3.0 대여작성 의구체화 ) Page 65
구조적사례분석 (6/6) 소단위명세서 프로세스번호 : 1.0 프로세스번호 : 2.0 프로세스이름 : 고객등록프로세스이름 : 마감보고서작성설명 : 설명 : 고객입력화면출력 ; Read 대여파일 ; While(ans == 'n') { count 당일대여횟수 ; 고객전화번호, 동호수, 대여금총액계산 ; 취향등입력화면의각필드를입력받음 ; Read 현금출납기 ; print 확인메시지 ; count 당일반납 ; 고객파일에저장 ; count 당일연체반납 ; print 더이상의고객입력을원하는가?; 당일연체료총액계산 ; ans = read(); count 당일대여횟수 ; } 대여금총액계산 ; Format, print 마감보고서 자세한내용 p. 152 의그림 3.27 참조 Page 66
We are now 요구 (Requirements) 요구추출과분석 구조적분석 요구분석명세서 Page 67
요구분석명세서작성의유의사항 사용자와개발자모두가쉽게이해할수있도록작성해야한다. 무릇모든문서 / 발표는독자 / 청중의수준에맞추어야한다. 기술된조건은개발자와사용자모두가동의한것이어야한다. 자기의이익을앞세운조건이들어가면계약이될수없다. 제안된시스템에의하여수행될모든기능을정확히기술하여야한다. 어떤방법으로제공하는가보다는무슨기능을제공하는가에초점 제안된시스템에영향을주는모든제약조건을기술하여야한다. 목표하드웨어, 하드웨어용량, 동작환경등 시스템의인수를위한테스트기준을제공하여야한다. 성능 (1000 TPS), 용량 (100 만가입자 ), 시스템의품질과상대적인중요도및품질측정방법이기술되어야한다. 기능 / 성능보다안전성 ( 우주선 ), 편리성보다정확성 ( 현금지급기 ), Page 68
LMSC 문서예제 소프트웨어프로세스구조 연동서브시스템집합 메시지송수신 페이징처리 단말정보처리 AAAIF JUICEIF MSIF LMEIF SMSCIF IPLSIF SANTAIF 데이터베이스메시지파일 제어및호처리 LMSSVC MSGMNG MSGSCH 과금처리 INBHIF WISEIF CDRMNG 기타연동 NMSIF WINGSIF 데이터관리 운용및유지보수 DBMGR SVCSTAT SYSMON ALMD COND MMCD Page 69
LMSC 문서예제 주요프로세스설명 주요프로세스 MSIF LMEIF SMSCIF, IPLSIF AAAIF, JUICEIF INBHIF, WISEIF, CDRMNG LMSSVC MSGSCH MSGMNG 프로세스기능 단말연동 HTTP POST/GET 메시지분석및처리 발신단말로부터의수신메시지저장, 착신단말에전송할송신메시지인출 LME 연동 Submit, Delivery, Delivery_Report 등의메시지분석및처리 LME 로부터수신메시지저장, LME 로전송할송신메시지인출 SMSC 방식혹은 SMOI 방식을사용하여단말과의단문메시지전송 장문메시지처리과정에서필요한단말및가입자관련정보취득 지능망가입자실시간차감, 과금 CDR 구성및 WISE 로의 CDR 전송 LMSC 서비스제어 메시지식별자 (Message ID) 할당및관리 메시지관리테이블 (MSG_MGT_TBL) MGT TBL) 관리 메시지상태관리및상태에따른호처리수행 비실시간메시지처리 메시지재전송, 예약전송처리 메시지강제착신처리 데이터관리 DB내메시지레코드삭제 메시지파일삭제 Page 70
LMSC 문서예제 주요호처리절차 P2P: 단말 LME LME P2P: LME 단말 LME 4 1 7 AAA 2 LMSC 3 JUICE AAA 3 LMSC 2 JUICE 1 6 5 4 MS MS SMSC P2W: 단말 LME W2P: LME 단말 LME LME 4 5 1 7 AAA 2 LMSC 3 JUICE AAA 3 LMSC 2 JUICE 1 6 5 4 MS MS SMSC Page 71
LMSC 문서예제 메시지처리흐름도 Ready 단말 GET 성공 Delivery.REQ 수신 착신가입자인증 착신가입자, 착신단말인증실패 수신메시지인출성공 수신메시지인출실패 Delivery.REQ 수신 NOTI 성공 착신단말인증 인증성공 메시지수신처리성공 Status-Report 미수신 착신알림전송성공 SMSC 연동성공 Status-Report 수신 착신알림전송실패 W2P 인경우, 메시지레코드삽입및메시지파일생성을수행한다. P2P인경우, 기삽입된메시지레코드를변경하고, 메시지파일을생성한다. Page 72
LMSC 문서예제 과금처리과정기술 1. LME 로부터발신과금, 착신과금, 무과금에대한과금방식취득 2. W2P(MSG_ID 가없는경우 ) 인경우, JUICE 연동으로가입자정보수신 3. 착신이지능망가입자이고잔액소진이면임시충전을수행 착신가입자가메시지를인출한후에다시소진 4. 과금생성시점에서, 텍스트와멀티미디어에대한과금정보 (CDR) 생성 5. 발 / 착신여부, 지능망가입자여부에따라지능망과금을수행 차감종류 ( 건당, 패킷당 ) 와지능망서비스유형, 사용구간에따라요율코드결정 INBH 로부터수신한차감금액을과금정보에수록 6. 과금개수, 주기에따라과금정보를파일로생성 7. 생성한과금파일을 WISE 로전송 Page 73
요구분석의자동화 요구분석도구의기능 여러가지방법론에의한 diagramming 기능 모델의정확성, 일관성을확인하기위한오류검증기능 Prototyping 을지원하는도구 설계사전 여러가지다른모델사이에모순이있는지검사 도구의구조 프로토타이핑및명세화도구 그래픽기능 자료저장소 일관성및모순검사 Page 74
요구분석도구 < 상품명 > < 공급회사 > 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 Page 75
요구분석서의목차 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 기능시험및성능시험 참고자료및용어해설 Page 76
요구분석의평가 < 정수에대한사칙연산의예제 > 무결성 (correctness) 완벽성 (completeness) 일관성 (consistency) 명확성 (unambiguous) 기능성 (functionality) 검증가능성 (verifiability) 추적가능성 (traceability) 변경용이성 (modifiability) + 에대한정의가바르게되어야네가지연산을모두정의하여야모두정수에대해정의하여야 등으로한꺼번에나타내지않아야 레지스터가어쩌고 가아니어야연산이바른지확인할수있어야연산이어디에사용되었는지 연산의변경이가능해야 Page 77
요구검증방법 요구검토 : 요구를눈으로검사하되체계적인방법으로검토 프로토타이핑 : 요구를검토하기위하여실행될수있는시스템모형을제작 테스트사례작성 : 기능을검토하기위하여요구를시험하기위한계획작성 일관성자동적분석 : 요구분석도구를이용하여모순이없는지분석 Page 78
요구분석이어려운경우 발주자가무엇을원하는지전혀모를경우 발주자가자신의용어로만요구를표현할경우 발주자들이서로상충되는요구를제시한경우 조직의정치적인요소가시스템의요구에영향을미칠수있는경우 요구가계속변경되는경우. 또는새로운발주자가나타나비즈니스환 경이달라진경우 Page 79