NOTE4 - 6장 기능 모델링 (Functional Modeling) 6-1...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: 6장 기능 모델링 (Functional Modeling) 6-1 기능 관점 ■ 소프트웨어 시스템은 받아들인 정보를 새로운 정보로 변환시켜 내보내 주는 것 ■ 시스템을 기능 관점에서 바라보고 시스템에서 요구되는 정보의 흐름과 정보의 변환을 나타내 주는 대표적인 기능 모델이 구조적 분석기법(Structured Analysis) ■ 현재 요구사항 분석에 가장 많이 활용되고 있는 기법 정 보(객체 ) 모 델 링 (Information Modeling) 정 보 (객 체 ) 관 점 기능 관점 소프트웨어 시스템 기능 모델링 (Functional Modeling) 동적 관점 동적 모델링 (Dynamic Modeling) 6-2 6.1 구조적 분석기법 개요 ■ 구조적 분석기법의 뿌리는 구조적 프로그래밍 ■ 그 후 좀 더 안정감 있는 시스템을 만들기 위해서 설계의 원칙들을 필요로 하게 되었다. 이에 맞추어 소개된 것이 구조적 설계기법 ■ 그러나 설계의 원칙만 가지고는 더욱 복잡해지는 시스템의 기능들을 제대로 표시하지 못하였으므로 요구사항 분석의 필요성이 대두: 구조적 분석기법 ■ 자료흐름도를 사용하여 정보의 흐름과 변환 묘사 ■ 하향식으로 높은 차원의 기능을 작은 기능단위로 분할 ■ 구조적 분석기법에서 시스템은 받아들인 정보를 가공처리하는 하나의 큰 프로세스이며, 이 프로세스는 쪼개져 세부기능을 수행하는 작은 프로세스들로 나뉘어진다. 6-3 자료흐름의 상세화 ■ 시스템이 반복적으로 분할되는 것을 자료흐름의 상세화 라 한다. < 그림 6.2 시스템의 분할 > 6-4 계층화(leveling) ■ 일반적으로 큰 시스템을 상세화하면서 계층적인 배열을 두어 서로의 종속관계를 표시하는 것: 계층화 또는 레벨화 ■ 하향식 기법인 구조적 분석기법은 표현의 정도를 구분하고 읽기 쉽게 하기 위해 레벨화 ■ 큰 시스템을 분석하기 위해서 분할의 개념은 필수적이며 이때 요구 되는 개념이 레벨화 ■ 이러한 기능 중심의 분할과 레벨화는 우리의 주변에서도 많이 볼 수 있다. 예: 회사의 구조 ■ 자료흐름도는 하향식 방식으로 시스템을 분할하여 그림을 통해 나타낸다. ■ 말단 프로세스들의 기능을 설명하는 프로세스 명세서 , 자료흐름도에 사용되는 데이터의 정의 등을 기록하여 놓는 자료사전으로 구성 6-5 6.2 자료흐름도(Data Flow Diagram) ■ 자료흐름도는 정보가 입력되어 적용되는 변화와 그 결과(출력)를 그림으로 묘사해주는 도식적 기법 ■ 자료흐름도는 다음의 4가지 기호를 사용하여 표기 외부 객체 : 시스템의 외부에서 시스템과 정보를 주고받는 사용자 등의 외부객체이다. 프로세스 : 시스템 안에서 정보를 처리하고 변환시키는 변환기 이며 버블이라고도 부른다. : 정보의 흐름을 표시하는 자료항목 또는 데이터 단위 데이터 항목 이며 화살표는 데이터의 흐름을 표시한다. 자료 저장소 : 오랫동안 보관되는 데이터를 저장하여 놓는 파일이나 데이터베이스 시스템을 말한다. 6-6 자료흐름도의 예 ■ 정보흐름 a는 외부객체 S로부터 오며 프로세스 X에 의해 정보흐름 b로 변환된다. 계속해서 정보흐름 b는 파일 F의 정보흐름 d와 결합 하여 프로세스 Y에 의해 새로운 정보흐름 c를 만들어 내고 외부객체 T에 제공된다. S a X b Y c T d F < 그림 6.4 간단한 자료흐름도 > 6-7 프로세스의 분할 ■ X1부터 X5까지의 프로세스는 X의 자녀들이며, X41, X42, X 43은 X4의 자녀들이다. b b a X X5 X2 c a e g X4 X1 d f X3 X41 e X42 g h X43 i f < 그림 6.5 프로세스의 분할 > 6-8 자료흐름도 분할 ■ 시스템을 하나의 프로세스로 놓고 외부와의 정보흐름을 표시하는 배경도로 시작하며 더 이상 쪼갤 필요가 없을 때까지 단계별로 분할 ■ 더 이상 쪼개지지 않는 프로세스: 원시 프로세스 ■ 프로세스 X는 그 다음단계의 그림 (X1에서 X5) 으로 대치될 수 있으며 X4는 그 다음 단계의 (X41, X42, X43) 프로세스들로 대치 ■ 배경도나 중간과정의 프로세스들은 모두 쪼개지지 않는 원시 프로세스들로 대치 ■ 자료흐름도를 그리는 목적은 원시 프로세스와 원시 프로세스들 사이의 정보흐름을 규명하는 것 6-9 6.2.1 배경도 (Context Diagram) ■ 최상위의 하나로 된 프로세스를 그린 그림을 배경도라 하며 이는 시스템이 분할되기 이전의 프로세스 ■ 배경도는 우리가 개발하여야 할 시스템의 영역을 기술하고, 시스템과 외부 환경과의 경계를 결정하며, 외부와의 인터페이스를 제시하여 시스템의 입출력 데이터를 보여줌 ■ 배경도는 시스템을 블랙박스로 본 것이며 시스템과 외부 환경과의 인터페이스에 초점을 맞춘다. ■ 배경도가 완성되여 사용자가 무엇을 얻을 것인가를 확립한 후, 이를 실현시키기 위해서 시스템의 내부에 대한 분석이 이루어져야 한다. 6 - 10 자동속도조절장치 배경도 Context Diagram Perform Cruise Control and Monitoring Driver (운전자) Dirve Shaft (변속기) Display Command Shaft_Rotation Perform Cruise Control and Monitoring 0 Throttle_Position Fuel Engine_Running Engine (엔진) Gas Station (휘발유 통) <그림 6.6 자동속도조절장치 배경도> 6 - 11 6.2.2 자료흐름도 프로세스 번호 ■ 각 프로세스와 프로세스를 구체적으로 묘사하는 자료흐름도는 번호 를 가진다. ■ 각 자료흐름도는 상위 레벨의 부모 자료흐름도와 연관된 프로세스 로부터 번호를 부여받는다. ■ 배경도의 프로세스는 최상위 프로세스로 번호 0을 가지고 있다. ■ 배경도의 프로세스는 분할되어 자료흐름도로 표시되며 이 자료 흐름도에도 0이란 번호가 붙는다. ■ 각 프로세스의 번호는 그 프로세스를 분할하여 표시하는 자료흐름도 의 번호와 일치 ■ 배경도의 프로세스 0은 프로세스 1, 2, 3, 4를 자녀 프로세스로 가지며, 프로세스 0은 프로세스 1, 2, 3, 4의 부모 프로세스 6 - 12 레벨 1 자료흐름도 Diagram 0 Perform Cruise Control and Monitoring Shift_ Rotation Determine Speed 1 Speed Measure Mile 2 Shift_ Rotation Pulse_Count Distance Engine_ Running Monitor Automobile 4 Control Speed 3 Throttle_ Position Control Command Monitor_ Command Display Fuel < 그림 6.7 레벨 1 자료흐름도 > 6 - 13 프로세스 4 자료흐름도 Diagram 4 Monitor Automobile Distance Count Mile 4.1 Miles Monitor_Command Fuel Miles Miles Look Up Maintenance Schedule 4.2 Computer Average Speed 4.3 Maintenance_ Display Average_ Speed_ Display < 그림 6.8 레벨 2 자료흐름도 > 6 - 14 6.2.3 원시 프로세스 (Functional Primitive) ■ 프로세스들 중 더 이상 그 아래로 쪼개지지 않는 하위 프로세스: 원시 프로세스 ■ 프로세스를 어디까지 쪼갤 것인가는 분석가의 손에 달려있다. ■ 일반적으로 하나의 프로세스가 하나의 기능을 수행할 정도로 충분히 작게 쪼개는 것이 이상적 ■ 원시 프로세스의 상세한 설명은 미니 명세서에 기록 ■ 미니 명세서는 프로세스 명세서라고도 한다. ■ 미니 명세서의 번호는 그 프로세스의 번호와 같다. ■ 결국 완성된 미니 명세서의 수는 원시 프로세스의 개수와 일치 ■ 일반적으로 미니 명세서의 크기는 한 페이지에 요약될 수 있을 정도가 적당 6 - 15 미니명세서 Name 4.1 TITLE Count Miles /* 마일 계산 */ INPUT/OUTPUT Distance : data_in Miles : data_out BODY /* * 이 프로시져는 매 마 일 마 다 측정하는 마일 수를 * 1 마일 씩 증가시킨다. */ FOR EACH Distance Cummulative_Distance = Cummulative_Distance + Distance IF Cummulative_Distance >= 1 Mile THEN Increment MPG_Mileage Increment Miles_Since_Oil_Change Increment Miles_Since_Air_Filter_Change Increment Miles_Since_Major_Service Increment Trip_Mileage Reset Cummulative_Distance END IF END FOR < 그림 6.9 미니 명세서 > 6 - 16 6.2.4 자료흐름도의 균형 (Balancing) ■ 부모 자료흐름도의 정보 입출력은 자녀 자료흐름도의 입출력과 같아야 하며 이는 정보흐름의 연속성을 유지하기 위하여 필요 ■ 이러한 제약 조건을 자료흐름도의 균형 (balancing)이라 부른다. ■ <그림 6.6>의 배경도 입출력과 그의 자녀 자료흐름도의 입출력은 균형이 이루어져 있는가? ■ <그림 6.6>은 균형이 이루어져 있는 것인가? ■ 상위 레벨에서 많은 데이터를 묶어 하나로 표시하고 하위 레벨로 내려가면서 쪼개어 표시하는 것은 읽기 쉽다는 장점이 있다. ■ 균형에 대한 정보는 자료사전에 정의하여 놓는다. 6 - 17 6.2.5 자료사전 (Data Dictionary) ■ 자료흐름도로 표시되어 있는 시각적인 정보를 체계적이며 조직적으로 모아놓는 것이 필요 ■ 자료사전 은 자료흐름도에 나타난 데이터에 관한 정보를 한 곳에 모아 놓음으로써 개발자나 사용자들이 편리하게 사용할 수 있게 해 준다. ■ 자료사전은 메타데이터 (metadata), 즉 데이터에 대한 데이터를 모아 놓는 저장소이며 데이터 항목, 데이터 흐름 등에 관한 정의가 포함 6 - 18 자료사전 기호 연산자 = + [|] () 예 a=b+c a+b [a|b] 3a5 (a) 의미 a 는 b + c로 구성된다 AND: a와 b의 합성 OR: a와 b 중 하나 선택 a를 3번에서 5번 사이 반복 a는 선택적 (0 a 1과 동일) < 그림 6.10 자료사전 기호 > 자료사전에 들어가는 예: command = control_command + monitor_command Engine_Running = ["ON"|"OFF"] 6 - 19 6.2.6 구조적 분석기법과 기능 분할 ■ 시스템의 중요 요소나 기능을 찾아내어 분할해 나가는 것은 분석가의 임무이며 일반적으로 쉬운 일이 아니다. ■ 시스템을 어떻게 분할해 나갈 것인가는 간단한 문제가 아니며 어떻게 분할하면 좋은지에 대한 완벽한 가이드라인은 없다. ■ 구조적 분석기법[DEM79]은 이들 기능을 분할하는 일반적인 방법을 제시하여 주고 있다. ■ 사건 분할(event partitioning) 방식: 모던 구조적 분석기법 제안 ■ 이 장에서는 Use Case[JAC92]를 적용하여 분석 6 - 20 6.3 문제기술 (Problem Statement) ■ 일반적으로 프로젝트를 계획하거나 계약할 시기에 추상적인 시스템의 목적만을 나열한 문제기술 또는 제안서 로 일이 시작되는 경우가 많다. ■ 문제기술은 고객의 관점에서 고객이 사용하는 용어로 기술되어야 한다. ■ 문제기술에 모든 구체적인 요구사항이 정의되기는 어렵다. ■ 제안요청서 (RFP:request for proposal),제안서 (proposal) 6 - 21 자판기 문제기술 우리가 만들고자 하는 시스템은 24시간 내내 고객에게 음료수를 제공 할 수 있는 간단한 음료수 자판기이다. 이 자판기는 여러 종류의 음료수를 제공할 수 있어야 하며 한번에 오직 한 고객에게 한 종류의 음료수만을 제공한다. 음료수는 서로 다른 가격 을 가질 수 있으며, 자판기는 음료수 가격을 고객에게 보여준다 . 이 자판기는 동전의 무게와 크기를 측정하여 입력된 동전의 금액을 측정한다. 모두 네 가지 종류(10, 50, 100, 500)의 동전이 사용 가능하며 자판기는 삽입된 동전의 총 금액 또는 현재의 잔액을 기억하고 사용자에게 보여줄 수 있어야 한다. 고객이 원하는 음료수를 얻기 위해서는 적어도 그 음료수 값과 동일한 금액만큼의 동전을 삽입해야한다 . 자판기에 충분한 금액의 동전이 입력되었을 때, 고객이 원하는 음료수 버튼을 누름으로서 음료수를 선택 했음이 자판기로 전달되고 선택한 음료수가 제공된다 . 음료수가 제공 된 후, 자판기는 고객이 잔돈 회수 버튼을 누르면 거스름돈을 돌려 준다. 선택된 음료수가 제공된 후, 고객은 잔돈 회수 버튼을 누르지 않고 다른 음료수를 선택 할 수도 있다. 이것은 자판기에 또 다른 음료수를 선택할 수 있을 만큼 돈이 남았거나 또는 고객이 자판기에 동전을 더 집어넣어 모자라는 금액을 보충한 경우이다. 6 - 22 자판기 문제기술(계속) 고객이 선택한 음료수가 남아있지 않은 경우 선택한 음료수는 제공될 수 없다. 이때 고객은 다른 음료수를 선택하거나 잔돈 회수 버튼을 누를 수 있다. 고객이 선택한 음료수의 값이 입력된 금액(또는 잔액) 을 초과하면 음료수는 제공되지 않는다. 고객이 동전을 삽입한 뒤에 마음을 바꿔 동전 회수 버튼을 누르면 동전을 다시 환불받을 수 있다. 자판기에 거스름돈이 없을 경우, 자판기는 고객에게 정확한 금액을 투입할 것을 알린다. 이런 경우 선택할 음료수의 값보다 더 많거나 적은 양의 동전이 삽입되면, 음료수는 제공되지 않는다. 자판기는 관리자에 의해 유지되며 관리자를 위해 두 종류의 기능을 제공한다. 관리자는 음료수의 가격을 바꿀 수 있으며 그날 이루어진 모든 거래는 프린트된 보고서를 통하여 얻을 수 있다. 6 - 23 6.3.3 Use Case를 이용한 구조적 분석기법 ■ 자료흐름도를 그리기 이전 사용자와 개발자의 토의 내용을 정돈하여 사용자에게 필요한 데이터와 사용자가 접하게 될 시스템의 동작을 기술하는 방법에 대하여 생각하여 본다. ■ Use Case[JAC92]를 이용한 접근 방법을 사용 ■ 다른 방법으로는 Yourdon[YOU89]이 제시한 사건 분할 (event partitioning) 기법을 들 수 있다. 6 - 24 ● Use Case의 규명 1. 문제기술 준비 2. 시스템을 사용하는 행위자(actor)가 누구인지 규명한다 (주행위자: Primary actor,부행위자: Secondary actor) 3.각 행위자에 대하여 use case를 찾아내고 목록을 만든다. 정보를 만들거나 사용하는 use case만 고려 4. 각 use case에 대하여 기본적인 활동만 구체적으로 기술 5. 각 use case에 대하여 예외적인 경우와 선택적인 경우를 찾아내어 구체적으로 기술한다. 이 경우 기본적인 활동과 상당히 다른 경우만을 조사 6 - 25 ● 구조적 분석기법에 의한 모델 개발 1. 배경도를 만드는 순서 a) 시스템에 대한 프로세스를 그리고 이름을 정한다. b) 각 행위자에 대하여 한 외부객체를 그린다. c) 각 use case에 대한 기술 내용을 점검하고 시스템과 행위자 사이에 주고 받는 정보와 사건을 규명한다. 즉 행위자와 시스템의 인터페이스를 규명 d) Use Case에 의해 규명된 정보들을 외부객체와 프로세스 사이의 데이터 흐름과 제어 흐름으로 나타낸다. e) 앞의 순서에 의해 많은 데이터 흐름과 제어 흐름이 배경도에 나타나게 되며 이는 바람직하지 않다. 연관된 데이터 흐름과 제어 흐름들을 묶어 통합된 흐름을 배경도에 나타낸다. 같은 유형이며 같은 외부객체에 연관되어 있는 흐름들을 묶는 것이 바람직 6 - 26 ● 구조적 분석기법에 의한 모델 개발 2. 레벨 0 자료흐름도 개발 순서 a) 각 use case에 대하여 레벨 0 자료흐름도에 프로세스를 하나씩 그리고 여러 use case에 존재하는 공통기능이 있으면 이에 대한 프로세스를 그릴 수 있다. b) 각 use case에 대한 구체적인 기술 내용을 살펴보아 데이터 흐름 과 정보흐름을 추가한다. 이 과정은 앞의 d)와 e) 단계와 근본적으로 같다. c) 다음으로 각 use case를 구체적으로 살펴보고 서로 다른 use case를 수하는 동안 기억되어야 할 데이터를 찾아내고 자료저장소를 만들어 자료흐름도에 추가 d) 다음, 필요한 정보에 따라 프로세스들을 자료저장소에 연결 f) 각 행위자에 대한 처리가 비동시적으로 일어나면 일반적으로 프로세스 사이에 직접적인 교류가 일어나지 않으며 자료저장소를 통하여 정보를 교류한다. 이는 모델링 관점에 따라 달라질 수 있다. g) 레벨 0 자료흐름도를 배경도와 비교하여 모순이 없도록 검사 6 - 27 ● 구조적 분석기법에 의한 모델 개발 3. 자료흐름도의 각 프로세스에 대하여 a) 앞의 두 번째 단계에서 한 것처럼 아래 단계의 자료흐름도를 개발 b) 앞의 경우와 달리 각 use case의 기본적인 활동, 각 예외적인 경우와 선택적인 경우에 대하여 프로세스를 만들 수 있다. 필요한 데이터흐름과 자료저장소를 앞 단계 2의 c), d), e)와 같이 진행한다. 이 경우 프로세스 사이의 직접적인 교류가 많이 발생하는 것이 일반적 c) 프로세스가 복잡하면 계속 더 낮은 단계로 확장 d) 모든 원시 프로세스에 대하여 use case 및 응용분야에 대한 전문지식을 활용하여 미니 명세서 작성 6 - 28 6.4 자판기 요구사항 분석 ■ 모델링은 하나의 정답이 있는 과학이 아니며 보는 사람의 관점에 따라 여러 가지 모습으로 나타난다. ■ 자판기도 다른 관점에서 보면 모델링 결과가 다르게 나타나며 이는 프로그래밍 할 때 모듈을 쪼갠 모습이 프로그래머마다 다른 것과 유사 ■ 문제기술로부터 자판기에 필요한 기능을 손쉽게 추출할 수 있는 방법을 살펴보자. 6 - 29 6.4.1 자판기 행위자 규명 ■ 우선 시스템의 기능을 찾아내기 위해서 시스템의 행위자를 생각하여 보자. ■ 문제기술로부터 자판기의 주행위자는 음료수를 뽑기 원하는 고객 이며, 부행위자는 자판기를 관리하는 관리자가 된다는 사실을 쉽게 찾아낼 수 있다. ■ 자판기의 행위자를 찾아낸 후에는 행위자의 입장에서 본 자판기의 기능을 생각해 볼 수 있다. 음료수 자판기 음료수를 뽑는다 거래량을 출력한다 음료수 가격을 바꾼다 고객 관리자 6 - 30 행위자 관점 고객: ● "음료수를 뽑는다 " : 이 기능은 고객이 자판기로부터 음료수를 뽑기 원할 때 시작 관리자: ● "하루 동안의 음료수 거래량을 출력한다 " : 이 기능은 자판기 관리자가 그날 팔린 모든 종류의 음료수 거래량에 관한 정보를 출력하기 원할 때 관리자가 실행 ● "음료수 가격을 바꾼다 " : 이 기능은 관리자가 특정 음료수의 가격을 변화시키려 할 때 사용 6 - 31 6.4.2 시스템과 행위자의 상호작용 기술 ■ 각 행위자 입장에서 자판기의 기능을 추출한 다음, 각 기능에 필요한 입출력을 찾기 위해 각 기능별로 행위자와 자판기의 상호작용을 기술 ● "음료수를 뽑는다 " ● "하루 동안의 음료수 거래량을 출력한다 " ● "음료수 가격을 바꾼다 " 6 - 32 기능별 행위자와 자판기의 상호작용 ● "음료수를 뽑는다 " - 이 기능은 고객이 자판기에 첫 번째 동전을 넣었을 때 시작된다. 자판기는 금액 표시란에 입력된 금액(총액)을 보여준다. - 고객이 자판기에 동전을 더 넣으면, 자판기는 금액을 증가시키고 금액 표시란에 총액을 보여준다. - 표시된 총 금액이 고객이 원하는 음료수의 가격과 같거나 더 많을 때, 고객은 음료수 버튼을 누름으로써 음료수를 선택할 수 있다. - 고객이 원하는 음료수에 대한 버튼을 누를 때, 자판기는 음료수를 제공한다. - 음료수가 제공된 후, 자판기는 현재 총액에서 음료수의 가격을 빼서 수정된 총액을 보여준다. - 고객은 잔돈 회수 버튼을 누고 자판기는 금액 표시란에 보여진 총액과 같은 금액을 되돌려준다. - 마지막으로 자판기는 거래를 기록하고, 고객에게 제공된 음료수의 총 양을 증가시키고, 고객에게 지출된 거스름돈의 양만큼 거스름돈의 총액을 감소시킨다. 6 - 33 기능별 행위자와 자판기의 상호작용 ● "하루 동안의 음료수 거래량을 출력한다" - 이 기능은 관리자가 자판기를 열 때 시작된다. 관리자는 암호를 입력한 후 시스템 모드 스위치를 '관리'로 설정한다. - 관리자는 그날 거래의 출력된 보고서를 얻기 위해 변환 설정 버튼 (Change Setting Button)을 '거래량 출력'으로 놓는다. 그날 고객에게 제공된 음료수의 종류별 숫자와 각 음료수에 대한 매출액 , 그리고 그날 팔린 음료수의 총 금액을 포함한 정보가 출력되어 나온다. - 관리자는 음료수의 숫자와 총 양을 초기화시킨다. - 마지막으로 관리자는 시스템 모드 스위치를 '운영'으로 설정하고 자판기를 잠근다. 6 - 34 기능별 행위자와 자판기의 상호작용 ● "음료수 가격을 바꾼다" - 이 기능은 관리자가 자판기를 열어놓았을 때 시작된다. 관리자는 암호를 입력한 후 시스템 모드 스위치를 '관리'로 설정 한다. - 관리자는 음료수의 가격을 바꾸기 위해 변환 설정 버튼(Change Settings Button)을 '음료수 가격 변환'으로 놓는다. - 관리자는 음료수의 종류와 새로운 가격을 입력한다. - 마지막으로, 관리자는 시스템 모드 스위치를 '운영'으로 설정하고 자판기를 잠근다. 6 - 35 예외적인 상황에 대한 기술 ■ 자판기와 행위자 사이의 상호작용이 각 기능별로 분석된 다음 각 기능의 예외적인 상황에 대한 기술을 한다. 예: "음료수를 뽑는다" ◎ 정상적인 경우 ◉ 예외적인 경우 음료수가 제공된다 금액 부족 취소 음료수 없음 거스름 돈 없음 6 - 36 기능 사이의 관계 금액 부족 취소 예외 음료수 없음 예외 거스름돈 없음 예외 예외 하루 동안의 거 래량을 출력한다 음료수 제공 정상 음료수 가격을 바꾼다 음료수를 뽑는다 사용 사용 관리 모드로 변환 사용 사용 운영 모드로 변환 < 그림 6.14 자판기 문제기술로부터 찾아낸 기능 사이의 관계 > 6 - 37 6.4.3 자판기 배경도 ■ 지금까지는 문제기술로부터 자료흐름도를 구성하는 프로세스와 데이터 흐름을 찾아내기 위한 준비 과정 ■ 가장 먼저 자판기 시스템에 해당하는 프로세스를 하나 만들고 자판기의 행위자인 고객 과 관리자 를 외부 객체로 놓는다. ■ 자판기와 외부 객체들 사이의 정보흐름은 앞에서 기술한 자판기와 외부 객체 사이의 상호작용에서 나타난 입출력 흐름에서 찾아낼 수 있다. ■ 정보흐름은 데이터 흐름 과 제어 흐름 으로 구성 ■ 자판기와 외부 객체들 사이의 정보흐름이 기능별 상호 작용 기술에서 배경도에 빠짐없이 표시하였는지 점검 6 - 38 자판기의 배경도 음료수 요구 고객 자격 동전 반환 자판기 상태 관리모드 보고서 자판기 0 고객 메시지 관리자 메시지 음료수요구결과 관리자 가격변경 < 그림 6.15 자판기의 배경도 > 6 - 39 자판기의 정보흐름 ■ 하나의 정보흐름이 여러 정보흐름의 결합으로 되어 있는 경우 다음과 같이 자료사전에 기록 고객 메시지 = 금액 부족 메시지 + 음료수 없음 메시지 + 잔돈 없음 메시지 가격 변경 = 음료수 종류 + 새 가격 음료수 요구 = 총액 + 음료수 선택 음료수 요구 결과 = (음료수) + (반환 동전) + 잔액 자격 = 암호 + 시스템 모드 자판기 상태 = {음료수 가격 + 음료수 상태} + 잔돈 상태 6 - 40 6.4.4 자판기 자료흐름도 Diagram 0 자판기 동전 반 음료수 요 구 음료수 요구 결과 자판기 상 태 음료수를 뽑는다 1 거래 기록 고 객 메시지 음료수 가 격 음료수 가 격 새 가격 보고서 출 력 거래량을 출력한다 시스템 모 드 가격을 바꾼다 음료수 종 류 3 2 가격 변환 보고서 자격 승 락 메시지 시스템 모드 변환 4 이 전 시스템 모 드 거 부 메시지 < 그림 6.17 > 자판기의 1단계 자료흐름도 > 6 - 41 "음료수를 뽑는다"의 자료흐름도 Diagram 1 음료수를 뽑는다 음료수 요구 음료수 상태 및 가격 거래 기록 음료수 가격 금액 부족 잔액 및 음료수 음료수 제공 동전 반환 취소 잔액 잔돈 상태 1.2 1.1 음료수 없음 금액 부족 표시 음료수 없음 표시 1.3 금액 부족 메시지 반환 동전 1.4 음료수 없음 메시지 < 그림 6.18 '음료수를 뽑는다' 프로세스를 확장한 자료흐름도> 6 - 42 ...
View Full Document

This note was uploaded on 11/15/2011 for the course ECON 101 taught by Professor David during the Spring '11 term at Kwansei Gakuin University.

Ask a homework question - tutors are online