dslab.konkuk.ac.krdslab.konkuk.ac.kr/class/2011/11sma/team project/4/2조... · web view2010....

39
2010. Revise Plan 2020. Synchronize Artifacts 2030. Analyze -2031. Define Essential Use Cases -2032. Refine Use Case Diagrams -2033. Define Domain Model -2034. Refine Glossary -2035. Define System Sequence Diagrams -2036. Define Operation Contracts 2040. Design -2041. Design Real Use Cases -2042. Define Reports, UI, and Storyboards -2043. Refine System Architecture -2044. Define Interaction Diagrams -2045. Define Design Class Diagrams -2046. Define Database Schema -Code Generate 2010. Revise Plan 1. 커커커커커 커커 커커커 커커 2. 커커커 커 커커커커 커커 커커커 커커커 커커 3. 커커커 커커커커커 커커커커커커 커커커커커커커커 커커커커 커커

Upload: others

Post on 28-Feb-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

2010. Revise Plan

2020. Synchronize Artifacts

2030. Analyze

-2031. Define Essential Use Cases

-2032. Refine Use Case Diagrams

-2033. Define Domain Model

-2034. Refine Glossary

-2035. Define System Sequence Diagrams

-2036. Define Operation Contracts

2040. Design

-2041. Design Real Use Cases

-2042. Define Reports, UI, and Storyboards

-2043. Refine System Architecture

-2044. Define Interaction Diagrams

-2045. Define Design Class Diagrams

-2046. Define Database Schema

-Code Generate

2010. Revise Plan

1. 커피제작을 하는 함수를 추가

2. 스마트 폰 클래스와 그에 연관된 클래스 생성

3. 스마트 폰의메인과 커피메이커의 메인으로만데이터 송수신이 가능

4. 유스케이스 수정

2020. Synchronize Artifacts

Page 2: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

- 2.1 버전 업데이트 -

1. 커피제작을 하는 함수를 추가

→ 물 끓이기(시스템 초기에 가동), 물 붓기, 원두 갈기, 필터에 원두가루 적재, 설탕 조절, 프림 조절, 생크림 생성(스팀 세기 조절 삭제), 생크림 조절

2. 스마트폰 클래스와 그에 연관된 클래스 생성

→ App Manager 클래스를 생성, 각 시스템의 Main 클래스 생성

3. 스마트 폰의메인과 커피메이커의 메인으로만 데이터 송수신이 가능

4. 유스케이스 수정

Ref. #

Function Use Case Number & Name Category

R1.1 일반 커피주문 1. 커피주문 PrimaryR1.2 커스터마이즈 커피 주문 2. 커피 커스터마이즈 주문 PrimaryR1.3 최근 주문한 커피 보기 3. 최근 주문한 커피 보기 SecondaryR2.1 판매자료 보기 4. 판매자료 보기 PrimaryR3.1 사용자 정보 삭제 5. 사용자 정보 삭제 PrimaryR4.1 커피 추천 6. 커피 추천 PrimaryR5.1 재료부족 경고등 7. 재료부족 경고등 PrimaryR5.2 찌꺼기함경고등 8. 찌거기함경고등 PrimaryR6.1 보온 온도 조절 9. 보온 온도 조절 PrimaryR7.1 주문 실패 알림 10. 주문 실패 알림 Primary

2030. Analyze

-2031. Define Essential Use Cases

Use case 1. 일반 커피 주문Actors 고객Purpose As in the business use caseOverview As in the business use caseType Primary and EssentialCross References System Functions: R1.3,R7.1

최근 주문한 커피 보기, 주문 실패 알림Pre-Requisites 최근 주문한 커피 보기를 통해 커피를 주문할 경우 최근 주문한

커피가 먼저 선행되어야 한다.Typical Courses of Events (A): Actor, (s): System

1. (A) 고객이 커피 주문을 위하여 스마트 폰의 App 을 실행한다.2. (S) 일반 커피 주문을 통해 주문한 고객의 정보가 DB 에 있는지를 검색한다.3. (S) 처음 접속한 고객이면 DB 에 사용자의 코드번호를 저장한다.4. (A) 고객이 컵 사이즈, 크림 유무, 핫/아이스 등의 일반적

Page 3: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

옵션을 설정하고 다음으로 넘어간다.5. (A) 고객이 즉시 주문을 할지 예약 주문을 할지를 선택한다.6. (S) 주문리스트에 주문을 추가한다. 예약주문일 경우 주문시간에 맞춰 주문리스트에 삽입한다. 7. (S) 처리할 주문을 선택한다.8. (S) 처리할 주문 데이터(판매자료)를 커피메이커 내에 저장한다.9. (S) 고객이 주문한 커피 정보를 사용자 코드 번호와 연결해 DB에 저장한다.10. (S) 주문에 맞춰 설탕과 프림의 양을 조절하여 컵에 투여한다.11. (S) 이미 볶아진 원두를 갈아서 필터에 적재한다.12. (S) 주문에 맞는 온도의 물을 필터에 부어서 원두커피를 생성한다.(끓인 물, 시원한 물)13. (S) 주문데이터에 생크림이 추가되어 있으면 생크림을 생성해서 커피에 생크림을 올린다.14. (S) 커피가 완성되면 주문한 고객의 스마트폰으로 완성신호를 전송한다. 또한 커피메이커에서 알림음을 울려 관리자에게 알려준다.

Alternative Courses of Events

없음

Exceptional Courses of Events

Line 1. 고객이 주문한 커피의 재료가 없을 경우 ‘주문 실패 알림’이 고객의 스마트 폰에 뜬다.Line 2. 고객이 주문한 시간이 영업종료 시간일 경우 ‘주문 실패 알림’이 고객의 스마트 폰에 뜬다.

Use case 2. 커피 커스터마이즈 주문Actors 고객Purpose As in the business use caseOverview As in the business use caseType Primary and EssentialCross References System Functions: R7.1

주문 실패 알림Pre-Requisites 없음Typical Courses of Events (A): Actor, (s): System

1. (A) 고객이 스마트 폰으로 메뉴에 있는 커피를 주문한다.2. (S) 커스터마이즈 주문을 통해 주문한 고객의 정보가 DB 에 있는지를 검색한다.3. (S) 처음 접속한 고객이면 DB 에 사용자의 코드번호를 저장한다.4. (A) 고객이 컵 사이즈, 크림 유무, 핫/아이스, 프림양, 설탕양, 원두가루양 등을 취향에 맞게 설정한다.5. (S) 고객이 설정하는 프림양, 설탕양, 원두가루양에 맞춰 칼로리를 계산해내서 주문 화면에 표시한다.6. (A) 고객이 즉시 주문을 할지 예약 주문을 할지를 선택한다.7. (S) 주문리스트에 주문을 추가한다. 예약주문일 경우 주문시간에 맞춰 주문리스트에 삽입한다. 8. (S) 처리할 주문을 선택한다.9. (S) 처리할 주문 데이터(판매자료)를 커피메이커 내에 저장한다.

Page 4: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

10. (S) 고객이 주문한 커피 정보를 사용자 코드 번호와 연결해 DB 에 저장한다.11. (S) 주문에 맞춰 설탕과 프림의 양을 조절하여 컵에 투여한다.12. (S) 이미 볶아진 원두를 갈아서 필터에 적재한다.13. (S) 주문에 맞는 온도의 물을 필터에 부어서 원두커피를 생성한다.(끓인 물, 시원한 물)14. (S) 주문데이터에 생크림이 추가되어 있으면 생크림을 생성해서 커피에 생크림을 올린다.15. (S) 커피가 완성되면 주문한 고객의 스마트폰으로 완성신호를 전송한다. 또한 커피메이커에서 알림음을 울려 관리자에게 알려준다..

Alternative Courses of Events

없음

Exceptional Courses of Events

Line 2. 고객이 주문한 커피의 재료가 없을 경우 ‘주문 실패 알림’이 고객의 스마트 폰에 뜬다.Line 4. 고객이 주문한 시간이 영업종료 시간일 경우 ‘주문 실패 알림’이 고객의 스마트 폰에 뜬다.

Use case 3. 최근 주문한 커피 보기Actors 고객Purpose As in the business use caseOverview As in the business use caseType Primary and EssentialCross References System Functions: R1.1

일반 커피 주문Pre-Requisites 없음Typical Courses of Events (A): Actor, (s): System

1. (A) 고객이 최근주문한 커피 목록 보기를 누른다.2. (S) 고객의 스마트폰 App 내에 저장된 최근에 주문했던 커피를 최대 10 개까지 정렬해서 보여준다.

Alternative Courses of Events

없음

Exceptional Courses of Events

Line 1. 최근에 주문한 커피가 없을 경우 빈 화면을 보여준다.

Use case 4. 판매자료 보기Actors 관리자Purpose As in the business use caseOverview As in the business use caseType Primary and EssentialCross References System Functions: N/APre-Requisites 커피메이커내에 판매자료가 저장되어 있어야 한다.Typical Courses of Events (A): Actor, (s): System

1. (A) 관리자가 판매자료 보기를 선택한다.2. (S) 커피 메이커 내에 저장되어 있는 판매자료를 불러들여 온다.3. (S) 가장 많이 팔린 커피 순으로 정렬하여 보여준다.

Alternative Courses of Events

없음

Exceptional Courses of Line 3. 커피커스터마이즈 주문으로 판매된 커피는 기본이된

Page 5: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

Events 베이스 커피로 보여준다.

Use case 5. 사용자 정보 삭제Actors 고객Purpose As in the business use caseOverview As in the business use caseType Primary and EssentialCross References System Functions: N/APre-Requisites 없음Typical Courses of Events (A): Actor, (s): System

1. (A) 고객이 App 메뉴에 있는 사용자 정보 삭제를 요청한다.2. (S) 커피메이커로 정보삭제 요청을 전송한다.3. (S) 커피메이커는 해당 고객의 정보삭제 요청을 DB 서버로 전송한다.4. (S) DB 서버는 해당 고객을 찾아내서 DB 에서 삭제한다.

Alternative Courses of Events

없음

Exceptional Courses of Events

Line 2. 사용자 DB 에 없는 고객일 경우 “사용자 DB 에 정보가 없으십니다.”라는 문구가 화면에 뜨게 한다.

Use case 6. 커피 추천Actors 고객Purpose As in the business use caseOverview As in the business use caseType Primary and EssentialCross References System Functions: N/APre-Requisites 사용자 DB 에 정보가 존재해야 한다.Typical Courses of Events (A): Actor, (s): System

1. (A) 고객이 오늘의 커피 추천 메뉴를 선택한다.2. (S) DB 서버에 접근해서 해당 고객의 최근 커피 주문 정보 중에서 임의의 하나를 선택하여 App 에 전송하여 선택된 주문을 커스터마이즈 주문상태로 넘긴다.4. (S) 프림양, 원두가루양, 설탕양의 수치를 소량의 범위내에서 임의로 조정하여 고객에게 추천한다.

Alternative Courses of Events

없음

Exceptional Courses of Events

Line 2. 사용자 DB 정보가 없는 고객일 경우 임의로 추천한다.

Use case 7. 재료부족 경고등Actors 없음Purpose As in the business use caseOverview As in the business use caseType Primary and EssentialCross References System Functions: N/APre-Requisites 없음Typical Courses of Events (A): Actor, (s): System

1. (S) 시스템이 커피제작이 완료될 때 마다 남은 재료(설탕, 원두가루, 프림, 물)양을 체크한다.2. (S) 남은재료가 전체의 20% 내로 남게 되었을 때 경고등을

Page 6: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

통해 관리자에게 통보한다.Alternative Courses of Events

없음

Exceptional Courses of Events

재료가 모두 떨어졌을 시에는 커피 주문을 받지 않는다.

Use case 8. 찌꺼기함경고등Actors 없음Purpose As in the business use caseOverview As in the business use caseType Primary and EssentialCross References System Functions: N/APre-Requisites 없음Typical Courses of Events (A): Actor, (s): System

1. (S) 시스템이 커피제작이 완료될 때 마다 커피 찌꺼기함의 무게를 측정한다.2. (S) 커피 찌꺼기가 전체의 80%정도 채워졌을 때 경고등을 통해서 관리자에게 통보한다.

Alternative Courses of Events

없음

Exceptional Courses of Events

찌꺼기함이 모두 채워졌을 시에는 커피 주문을 받지 않는다.

Use case 9. 보온 온도 조절Actors 관리자Purpose As in the business use caseOverview As in the business use caseType Primary and EssentialCross References System Functions: N/APre-Requisites 없음Typical Courses of Events (A): Actor, (s): System

1. (A) 관리자가 보온온도 올림,내림 버튼을 통해 보온 온도를 조절한다.2. (S) 커피가 완성되면 설정된 온도로 커피를 보온시킨다.

Alternative Courses of Events

없음

Exceptional Courses of Events

없음

Use case 10.주문 실패 알림Actors 없음Purpose As in the business use caseOverview As in the business use caseType Primary and EssentialCross References System Functions: R1.1, R1.2

일반 커피 주문, 커피 커스터마이즈 주문Pre-Requisites 없음Typical Courses of Events (A): Actor, (s): System

1. (A) 고객이 커피를 주문한다.2. (S) 주문받은 해당 커피의 재료양을 조사하고 현재 시간을 조사한다.

Page 7: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

3. (S) 해당 커피의 재료가 부족하거나 현재 시간이 영업시간에 포함되지 않으면 고객 스마트폰 App 으로 주문실패 메시지를 전송하여 알린다.

Alternative Courses of Events

없음

Exceptional Courses of Events

없음

-2033. Define Domain Model

1. List concepts(domain class) from use-cases

Concept Category Domain Class

물리적또는개체유형 커피, 일반커피, 커스터마이즈커피

제품사양, 디자인, 또는물건에대한설명 제작완료알람, 주문실패알림, 경고등, 찌꺼기함경고등, 재료부족경고등

장소 커피메이커, DB

업무 일반커피주문, 커스터마이즈커피주문, 예약, 커피추천, 판매자료보기, 커피제작

사람의역할 사용자, 관리자

다른것의컨테이너

컨테이너에있는것 DB 메인, 커피메이커 메인

조직

2. Assign class name into a concept

AppMain, AppManager, CoffeeMake, CoffeeMakerMain, Recommend, Reservation, CustomizedCoffee, NormalCoffee, CoffeeMaker, SalesRecord, Coffee, Order, Warning, CoffeeTrashWarn, MaterialLackWarn, DB, DBMain, User

3. Draw a conceptual class diagram

AppManagerAppMain

Page 8: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

ReservationCoffeeMakerMain

CoffeeMaker

CoffeeMake Recommend

Order

CustomizedCoffee

Coffee

NormalCoffee SalesRecord

MaterialLackWarnWarning CoffeeTrashWarn

UserDBMainDB

4. Identify and add associations

– Use ‘Association Category List’

Association Category Associations

A Has B

AppMain - AppManagerAppManager - OrderOrder - ReservationCoffeeMakerMain - CoffeeMakerCoffeeMaker - CoffeeMakeCoffeeMaker - RecommendCoffeeMaker - OrderCoffeeMaker - WarningCoffeeMake - SalesRecordSalesRecord - OrderDBMain - DBDB - UserUser - Order

A Copy-of B Order - Coffee

5. Assign priority into associations

Association Name PriorityAppMain - AppManager HighAppManager - Order HighOrder - Reservation HighCoffeeMakerMain - CoffeeMaker

High

CoffeeMaker - CoffeeMake HighCoffeeMaker - Recommend HighCoffeeMaker - Order HighCoffeeMaker - Warning HighCoffeeMake - SalesRecord HighSalesRecord - Order HighDBMain - DB HighDB - User High

Page 9: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

User - Order HighOrder - Coffee High

6. Assign names into associations

AppMain Has AppManager

AppManager Has Order

Order Has Reservation

Order Copy-of Coffee

CoffeeMakerMain Has CoffeeMaker

CoffeeMaker Has CoffeeMake

CoffeeMaker Has Recommend

CoffeeMaker Has Order

CoffeeMaker Has Warning

CoffeeMake Has SalesRecord

SalesRecord Has Order

DBMain Has DB

DB Has User

User Has Order

7. Add Roles and Multiplicity

Page 10: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

8. Add Attributes

Page 11: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

Coffee

+name: String+calorie: Float+price: Integer+hot: Boolean+isCream: Boolean+cupSize: Integer

NormalCoffee

CustomizedCoffee+coffee: Integer+sugar: Integer+milk: Integer+cream: Integer

Warning+warning: Boolean

CoffeeTrashWarn

+dregs: Integer

MaterialLackWarn+coffee: Integer+sugar: Integer+milk: Integer+cream: Integer

Order

+mac_address: String+isTakeOut: Boolean+order_num: Integer

Reservation+time: Date+mac_address: String

CoffeeMaker+port_num: Integer+port_location: String+heat_temperature: Integer+BusinessHours: Integer

CoffeeMake+isComplete: Boolean

Recommend

+coffee_name: String

User

+mac_address: StringDB

+user_count: Integer

SalesRecord

+sales_count: Integer+sales_account: Integer+order_list: List

AppMain

AppManager

CoffeeMakerMain

-2034. Refine Glossary1. Refine terms

Temr Category

Comments

AppManager Class 앱에서의 모든 기능을 관리하는 클래스AppMain Class 앱 Main & GUI 구현 클래스CoffeeMakerMain Class 커피메이커 Main 구현 클래스CoffeeMaker Class 커피메이커 모든 기능을 관리하는 클래스CoffeeMake Class 커피제작 관련 제어를 하는 클래스Warning Class 경고등과 관련된 제어를 하는 클래스MaterialLackWarn Class 재료부족 경고를 제어하는 클래스CoffeeTrashWarn Class 커피찌꺼기 함의 용량을 확인하고 관리하는 클래스Coffee Class 커피정보를 담은 클래스CustomizedCoffee Class 커스터마이즈 커피 정보를 담은 클래스NormalCoffee Class 일반적인 커피 정보를 담은 클래스SalesRecord Class 판매기록을 저장하고 관리하는 클래스Recommend Class 커피추천 기능을 제공하는 클래스Order Class 주문정보를 담고있는 클래스Reservation Class 예약관련 기능을 관리하는 클래스DBMain Class DB 서버의 Main 구현 클래스DB Class DB 의 자료들을 관리하는 클래스User Class 고객의 정보를 담고있는 클래스CoffeeMaker.port_num Attribute 커피메이커 머신의 식별가능한 고유 번호CoffeeMaker.port_location

Attribute 커피메이커가 설치된 지역 정보

CoffeeMaker.heat_temper Attribute 보온온도 수치

Page 12: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

atureCoffeeMaker.BusinessHours

Attribute 가게의 영업시간

CoffeeMake.isComplete Attribute 커피가 완성되었는지 플래그Warning.warning Attribute 경고등의 활성화 여부Coffee.name Attribute 커피 이름Coffee.calorie Attribute 계산된 칼로리 수치Coffee.price Attribute 커피 가격Coffee.hot Attribute 커피의 핫/아이스 여부Coffee.isCream Attribute 크림포함 여부Coffee.cupSize Attribute 컵사이즈SalesRecord.sales_count Attribute 총 판매수SalesRecord.sales_account

Attribute 총 판매금액

SalesRecord.order_list Attribute 판매된 주문 리스트Recommend.coffee_name Attribute 추천된 커피 이름MaterialWarn.coffee Attribute 현재 적재된 원두가루양MaterialWarn.sugar Attribute 현재 적재된 설탕양MaterialWarn.milk Attribute 현재 적재된 우유양MaterialWarn.cream Attribute 현재 적재된 프림양CoffeeTrashWarn.dregs Attribute 채워진 커피찌꺼기양Order.mac_address Attribute 주문이 들어온 고객 스마트폰의 Mac AddressOrder.isTakeOut Attribute 테이크아웃 여부Order.order_num Attribute 고유 주문 번호CustomizedCoffee.coffee Attribute 커스터마이징한 원두가루양CustomizedCoffee.sugar Attribute 커스터마이징한 설탕량CustomizedCoffee.milk Attribute 커스터마이징한 우유양CustomizedCoffee.cream Attribute 커스터마이징한 프림양Reservation.time Attribute 예약시간Reservation.mac_address Attribute 예약된 주문의 Mac AddressDB.user_count Attribute DB 에 저장된 고객정보 수User.mac_address Attribute 해당 고객 스마트폰의 Mac Address

-2035. Define System Sequence Diagrams

Use Case Name of Actor-Activated Event1. 일반 커피 주문 1: Request Ordering MakeOrder()2. 커스터마이즈 커피 주문 1: Request Ordering MakeOrder()3. 최근 주문한 커피 보기 1: Request Showing CallRecentCoffeeOrder()4. 판매자료 보기 1: Request Showing CallSalesRecord()5. 사용자 정보 삭제 1: Request Ordering DeleteClient()6. 커피 추천 1: Request Recommending

TodayRecommendCoffee()7. 재료부족 경고등 N/A 8. 찌꺼기함 경고등 N/A

Page 13: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

9. 보온 온도 조절 1: Request Controlling ControlTemperature()10. 주문 실패 알림 N/A

Sequence Diagram

: 고객

: AppMain

1 : ExcuteApp()

2 : CommandCoffeeOrder()

USE CASE : 1. 일반 커피 주문1. 고객이 스마트 폰으로 메뉴에 있는 커피를 주문한다.2. 고객이 컵 사이즈, 크림 유무, 핫/아이스 등의 일반적 옵션을 설정하고 다음으로 넘어간다.3. 고객이 즉시 주문을 할지 예약 주문을 할지를 선택한다.

: 고객

: AppMain

1 : ExcuteApp()

2 : CommandCoffeeOrder()3 : InputMaterial(): void

USE CASE : 2. 커스터마이즈 커피 주문1. 고객이 스마트 폰으로 베이스 커피를 선택한다.2. 고객이 컵 사이즈, 크림 유무, 핫/아이스, 프림양, 설탕양, 원두가루양 등을 취향에 맞게 설정한다.3. 고객이 설정한 커피의 칼로리 계산해서 스마트 폰 화면에 보여준다.

Page 14: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

4. 고객이 즉시 주문을 할지 예약 주문을 할지를 선택한다.

: 고객

: AppMain

1 : CallRecentCoffeeOrder()

USE CASE : 3. 최근 주문한 커피 보기1. 고객이 최근주문한 커피 목록 보기를 누른다.2. 고객의 스마트폰 App 내에 저장된 최근에 주문했던 커피를 최대 10 개까지 정렬해서 보여준다.

: CoffeeMakerMain

: 관리자

1 : CallSalesRecord()

USE CASE : 4. 판매자료 보기1. 관리자가 판매자료 보기를 선택한다.2. 커피 메이커 내에 저장되어 있는 판매자료를 불러들여 온다.3. 가장 많이 팔린 커피 순으로 정렬하여 보여준다.

: 고객

: AppMain

1 : DeleteClient()

USE CASE : 5. 사용자 정보 삭제1. 고객이 App 메뉴에 있는 사용자 정보 삭제를 요청한다.

Page 15: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

: 고객

: AppMain

1 : TodayRecommendCoffee()

USE CASE : 6. 커피 추천1. 고객이 오늘의 커피 추천 메뉴를 선택한다.2. 서버 DB 로부터 해당 고객의 최근 주문한 커피목록을 얻어온다.3. 고객이 최근 주문한 커피중에 하나를 임의로 선택하여 커스터마이징 주문상태로 넘어간다.4. 프림양, 원두가루양, 설탕양의 수치를 소량의 범위내에서 임의로 조정하여 고객에게 추천한다.

: CoffeeMakerMain

: 관리자

1 : ControlTemperature()

USE CASE : 7. 보온 온도 조절1. 관리자가 보온온도 올림,내림 버튼을 통해 보온 온도를 조절한다.2. 커피가 완성되면 설정된 온도로 커피를 보온시킨다.

Page 16: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

: 고객

: AppMain

1 : ExcuteApp()

2 : CommandCoffeeOrder()

USE CASE : 8. 주문 실패 알림1. 고객이 커피를 주문한다.2. 주문받은 해당 커피의 재료양을 조사하고 현재 시간을 조사한다.3. 해당 커피의 재료가 부족하거나 현재 시간이 영업시간에 포함되지 않으면 고객 스마트폰 App 으로 주문실패 메시지를 전송하여 알린다.

-2036. Define Operation Contracts

Use Case Name of Actor-Activated Event System Operations1. 일반 커피 주문 1: Request Ordering MakeOrder() 1: MakeOrder()2. 커스터마이즈 커피 주문 1: Request Ordering MakeOrder() 2: MakeOrder()3. 최근 주문한 커피 보기 1: Request Showing

CallRecentCoffeeOrder()3: CallRecentCoffeeOrder()

4. 판매 자료 보기 1: Request Showing CallSalesRecord() 4: CallSalesRecord()5. 사용자 정보 삭제 1: Request Ordering DeleteClient() 5: DeleteClient()6. 커피 추천 1: Request Recommending

TodayRecommendCoffee()6: TodayRecommendCoffee()

7. 재료부족 경고등 N/A N/A8. 찌꺼기함 경고등 N/A N/A9. 보온 온도 조절 1: Request Controlling ControlTemperature() 9: ControlTemperature()10. 주문 실패 알림 N/A N/A

Name MakeOrder()<일반커피 주문시>Responsibilities 일반커피 주문의 정보를 가지고 주문정보를 생성한다.Type SystemCross References System Functions: NotesEception 1. 고객이 주문한 커피의 재료가 없을 경우 ‘주문 실패 알림’이 뜬다.

2. 고객이 주문한 시간이 영업종료 시간일 경우 ‘주문 실패 알림’이 뜬다.Output 주문 성공 여부Pre-conditions 없음

Page 17: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

Post-conditions 고객이 주문한 일반 커피의 정보를 바탕으로 커피메이커에 주문 요청한다.예외처리 상황이 아닐경우 커피메이커는 즉시/예약 주문에 따라 처리한다.

Name MakeOrder()<커스터마이즈 커피 주문시>Responsibilities 고객이 설정한 성분양에 맞춘 커스터마이즈커피 주문의 정보를 가지고

주문정보를 생성한다.Type SystemCross References System Functions: NotesEception 1. 고객이 주문한 커피의 재료가 없을 경우 ‘주문 실패 알림’이 뜬다.

2. 고객이 주문한 시간이 영업종료 시간일 경우 ‘주문 실패 알림’이 뜬다.Output 주문 성공 여부Pre-conditions 없음Post-conditions 고객이 주문한 일반 커피의 정보를 바탕으로 커피메이커에 주문

요청한다.예외처리 상황이 아닐경우 커피메이커는 즉시/예약 주문에 따라 처리한다.

Name CallRecentCoffeeOrderResponsibilities 고객이 최근 주문한 커피 정보를 열람한다. 최근한 주문했던 정보들을

시간순으로 정렬하여 보여준다.Type SystemCross References System Functions: R1.4, R1.1NotesEception 없음Output 최근 주문한 커피 보기 메뉴Pre-conditions 기존에 주문한 기록이 있어야한다.Post-conditions 최근 주문했던 주문목록 보기를 요청한다.

앱에 저장된 최근 주문했던 정보를 시간순으로 정렬하여 보여준다.

Name CallSalesRecord()Responsibilities 커피 메이커 내에 저장되어 있는 판매자료를 불러들어 가장 많이 팔린

커피 순으로 정렬하여 보여준다.Type SystemCross References System Functions: System Functions: R2.3, R2.2NotesEception 1. 사용자 커스터마이즈 주문으로 판매된 커피는 기본이된 베이스

커피로 보여준다Output 가장 많이 팔린 커피 순으로 정렬하여 화면에 출력Pre-conditions 판매자료 저장이 먼저 선행되어야 한다.Post-conditions 커피 메이커 내에 저장되어 있는 판매자료를 불러들여 온다.

가장 많이 팔린 커피 순으로 정렬하여 화면에 출력한다.

Page 18: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

Name DeleteUserResponsibilities 고객의 정보를 DB 서버에서 삭제하는 일을 하기 위한 AppManager

내의 메소드Type SystemCross References System Functions: R2.1.5, R2.1.1, R3.2NotesEception 1. 사용자 DB 에 없는 고객일 경우 “사용자 DB 에 정보가 없으십니다.”

라는 문구가 화면에 뜨게 한다.Output DB 서버에서 고객의 정보를 삭제Pre-conditions 고객의 정보가 DB 서버에 등록되어 있어야한다.Post-conditions 고객의 자신의 DB 정보삭제를 요청한다.

요청을 받은 커피메이커에서 해당 고객의 정보를 DB 서버에 삭제요청한다.

Name TodayRecommendCoffee()Responsibilities 고객의 취향에 따른 커피를 추천Type SystemCross References System Functions: R3.2, R1.3, R2.1.5, R3.1NotesEception 1. 사용자 DB 정보가 없는 고객일 경우 임의로 추천한다.Output 칼로리 계산 결과값Pre-conditions 사용자 DB 가 존재해야 한다.Post-conditions 고객이 최근 주문한 커피 중 하나를 선택한다.

소량의 범위 내로 커피 성분을 조절한다.고객에게 해당 커피를 추천한다.

Name ControlTemperature()Responsibilities 완성될 커피의 온도를 조절하여 유지한다.Type SystemCross References System Functions: R5.1, R1.3NotesEception 없음Output 온도Pre-conditions 없음Post-conditions 관리자가 조절한 보온온도를 저장한다.

완성된 커피를 해당 온도로 유지시킨다.

2040. Design

-2041. Design Real Use Cases

Page 19: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

Use case 1. 일반 커피 주문Actors 고객Purpose 일반 메뉴 커피를 주문하기 위함Overview As in the business use caseType Primary and EssentialCross References System Functions: R1.3,R7.1Pre-Requisites 최근 주문한 커피 보기를 통해 커피를 주문할 경우 최근 주문한

커피 보기가 먼저 선행되어야 한다.Typical Courses of Events (A): Actor, (S1): App, (S2):CoffeeMaker, (S3):DB

1. (A) 고객이 커피 주문을 위하여 스마트 폰의 App 을 실행한다.2. (S1) 고객 스마트폰의 Mac Address 를 GetMacAddress

함수를 통해 AppManager 에서 알아내어 CoffeeMaker 로 전송한다.

3. (S2) CoffeeManager 에서 받은 고객의 Mac Address 를 다시 DB 서버로 전송하여 처음 접속한 고객이면 User 인스턴스를 생성하여 AddClient 함수를 통해 유저리스트에 추가한다.4. (A) 고객이 커피의 name, cupSize, isCream, isHot 등의 일반적 옵션을 설정하고 다음으로 넘어간다.5. (A) 고객이 즉시 주문을 할지 예약 주문을 할지를 선택한다.6. (S1) 주문의 옵션이 완료되면 해당 속성들을 바탕으로 AppManager 클래스의 MakeCoffee 함수를 호출하여 Order 인스턴스를 생성한다.7. (S1) 생성한 Order 인스턴스의 정보를 SendOrderInfo 함수를 통해 CoffeeMaker 로 전송하여 주문처리 요청한다.8. (S2) CoffeeMaker 에서 AddOrderList 함수를 통해 받은 Order 정보를 주문리스트에 추가한다.9. (S2) CoffeeManager 에서 SelectOrder 함수를 통해 주문리스트에서 처리할 주문을 선택한다.10. (S2) 선택된 Order 정보를 인자로 CoffeeMake 쪽의 MakeCoffee 함수를 호출하여 커피제작을 요청한다.11. (S2) MaterialLackWarn 클래스의 MaterialLackCheck 함수를 호출하여 MaterialMachine 에 재료가 부족한지 체크한다.12. (S2) 재료가 충분할경우 CoffeeMake 클래스에서 CupSettingMachine, CoffeeGrindMachine, CoffeePuttingMachine, sugarPuttingMachine 등의 하드웨어에 커피제작의 순서에 맞춰 하드웨어적 처리를 요청한다.(컵세팅하고, 커피를 갈고, 원두가루를 적재하고, 설탕, 프림을 넣은뒤 옵션에 따른 온도의 물을 붓는다.)13. (S2) 커피가 완성되면 SendAlarm 함수를 호출하여 고객의 스마트폰으로 완성알림 메시지를 전송한다.14. (S2) RingAlarm 함수를 호출하여 알람음울림을 AlarmMachine 에 요청한다.15. (S2) 주문이 처리되어 판매된 정보를 SalesRecord 의 SalesCoffeeRecord 함수를 호출하여 커피메이커 내에 저장한다.16. (S2) 판매된 정보를 저장한 후에 SaveCoffeeOrder(macAddr:string,Order:Class) 함수를 호출하여 메인을 통하여 SendCoffeeOrder(macAddr:string,Order:Class)로 주문의

Page 20: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

정보를 DB 에 보낸다.17. (S3) 받은 주문 정보를 SaveCoffeeOrder()함수를 호출하여 DB 내에 저장한다.

Alternative Courses of Events

없음

Exceptional Courses of Events

Line 1. 고객이 주문한 커피의 재료가 없을 경우 ‘주문 실패 알림’이 고객의 스마트 폰에 뜬다.Line 2. 고객이 주문한 시간이 영업종료 시간일 경우 ‘주문 실패 알림’이 고객의 스마트 폰에 뜬다.

Use case 2. 커스터마이즈 커피 주문Actors 고객Purpose 고객의 설정한 커스터마이즈 커피를 주문하기 위함Overview As in the business use caseType Primary and EssentialCross References System Functions: R7.1Pre-Requisites 최근 주문한 커피 보기를 통해 커피를 주문할 경우 최근 주문한

커피 보기가 먼저 선행되어야 한다.Typical Courses of Events (A): Actor, (S1): App, (S2):CoffeeMaker, (S3):DB

1. (A) 고객이 커피 주문을 위하여 스마트 폰의 App 을 실행한다.2. (S1) 고객 스마트폰의 Mac Address 를 GetMacAddress

함수를 통해 AppManager 에서 알아내어 CoffeeMaker 로 전송한다.

3. (S2) CoffeeManager 에서 받은 고객의 Mac Address 를 다시 DB 서버로 전송하여 처음 접속한 고객이면 User 인스턴스를 생성하여 AddClient 함수를 통해 유저리스트에 추가한다.4. (A) 고객이 커피의 name, cupSize, isCream, isHot 등의 일반적 옵션과 coffee, sugar, milk, cream 등의 상세한 커피재료의 양을 조절한다.5. (S1) 고객이 설정하는 커피재료 양에 따라서 AppManager 클래스의 CallCalculateCalorie 함수를 호출하여 실시간으로 칼로리를 계산하여 화면에 표시한다.6. (A) 고객이 즉시 주문을 할지 예약 주문을 할지를 선택한다.7. (S1) 주문의 옵션이 완료되면 해당 속성들을 바탕으로 AppManager 클래스의 MakeCoffee 함수를 호출하여 Order 인스턴스를 생성한다.8. (S1) 생성한 Order 인스턴스의 정보를 SendOrderInfo 함수를 통해 CoffeeMaker 로 전송하여 주문처리 요청한다.9. (S2) CoffeeMaker 에서 AddOrderList 함수를 통해 받은 Order 정보를 주문리스트에 추가한다.10. (S2) CoffeeManager 에서 SelectOrder 함수를 통해 주문리스트에서 처리할 주문을 선택한다.11. (S2) 선택된 Order 정보를 인자로 CoffeeMake 쪽의 MakeCoffee 함수를 호출하여 커피제작을 요청한다.12. (S2) MaterialLackWarn 클래스의 MaterialLackCheck 함수를 호출하여 MaterialMachine 에 재료가 부족한지 체크한다.

Page 21: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

13. (S2) 재료가 충분할경우 CoffeeMake 클래스에서 CupSettingMachine, CoffeeGrindMachine, CoffeePuttingMachine, sugarPuttingMachine 등의 하드웨어에 커피제작의 순서에 맞춰 하드웨어적 처리를 요청한다.(컵세팅하고, 커피를 갈고, 원두가루를 적재하고, 설탕, 프림을 넣은뒤 옵션에 따른 온도의 물을 붓는다.)14. (S2) 커피가 완성되면 SendAlarm 함수를 호출하여 고객의 스마트폰으로 완성알림 메시지를 전송한다.15. (S2) RingAlarm 함수를 호출하여 알람음울림을 AlarmMachine 에 요청한다.16. (S2) 주문이 처리되어 판매된 정보를 SalesRecord 의 SalesCoffeeRecord 함수를 호출하여 커피메이커 내에 저장한다.17. (S2) 판매된 정보를 저장한 후에 SaveCoffeeOrder(macAddr:string,Order:Class) 함수를 호출하여 메인을 통하여 SendCoffeeOrder(macAddr:string,Order:Class)로 주문의 정보를 DB 에 보낸다.18. (S3) 받은 주문 정보를 SaveCoffeeOrder()함수를 호출하여 DB 내에 저장한다.

Alternative Courses of Events

없음

Exceptional Courses of Events

Line 1. 고객이 주문한 커피의 재료가 없을 경우 ‘주문 실패 알림’이 고객의 스마트 폰에 뜬다.Line 2. 고객이 주문한 시간이 영업종료 시간일 경우 ‘주문 실패 알림’이 고객의 스마트 폰에 뜬다.

Use case 3. 최근 주문한 커피 보기Actors 고객Purpose 고객이 최근 주문했던 주문 정보를 보기 위함.Overview As in the business use caseType Primary and EssentialCross References System Functions: R1.1Pre-Requisites 없음Typical Courses of Events (A): Actor, (S): App

1. (A) 고객이 스마트폰에서 최근주문한 커피 목록 보기를 누른다.2. (S) AppManager 의 RecentCoffeeSort 함수를 호출하여 최근에 저장했던 주문들을 시간순으로 정렬한다.3. (S) AppMain 쪽의 ShowCoffeeList 함수를 호출하여 정렬된 최근의 주문들을 보여준다.

Alternative Courses of Events

없음

Exceptional Courses of Events

Line 1. 최근에 주문한 커피가 없을 경우 빈 화면을 보여준다.

Use case 4. 판매자료 보기Actors 관리자Purpose As in the business use caseOverview As in the business use case

Page 22: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

Type Primary and EssentialCross References System Functions: N/APre-Requisites 커피메이커내에 판매자료가 저장되어 있어야 한다.Typical Courses of Events (A): Actor, (S): Coffee Maker

1. (A) 관리자가 판매자료 보기를 선택한다.2. (S) CoffeeMakerMain 을 통해 CoffeeMaker 클래스의 CallSalesRecord 함수를 호출한다.3. (S) SalesRecord 클래스의 SortOrderList 함수를 호출하여 커피메이커 내에 저장된 판매자료를 판매량을 기준으로 정렬한다.4. (S) CoffeeMakerMain 쪽의 ShowRecordSales 함수를 호출하여 정렬된 판매자료를 표시한다.

Alternative Courses of Events

없음

Exceptional Courses of Events

Line 3. 커피커스터마이즈 주문으로 판매된 커피는 기본이된 베이스 커피로 보여준다.

Use case 5. 사용자 정보 삭제Actors 고객Purpose As in the business use caseOverview As in the business use caseType Primary and EssentialCross References System Functions: N/APre-Requisites 없음Typical Courses of Events (A): Actor, (S1): App, (S2):CoffeeMaker, (S3):DB Server

1. (A) 고객이 App 메뉴에 있는 사용자 정보 삭제를 요청한다.2. (S1) AppMain 에서 AppManager 쪽으로 DeleteUser 함수를 호출하여 삭제요청을 알린다.3. (S1) AppManager 에서 SendDeleteUser 함수를 호출하여 커피메이커로 지워질 고객의 MacAddress 를 전송한다.4. (S2) CoffeeMaker 에서 SendDeleteUnit 함수를 호출하여 받은 MacAddress 를 그대로 DB 서버로 전송한다.5. (S3) DBMain 에서 데이터를 받은후 DB 클래스의

DeleteClient 함수를 호출하여 해당 고객의 정보를 삭제한다Alternative Courses of Events

없음

Exceptional Courses of Events

Line 2. 사용자 DB 에 없는 고객일 경우 “사용자 DB 에 정보가 없으십니다.”라는 문구가 화면에 뜨게 한다.

Use case 6. 커피 추천Actors 고객Purpose As in the business use caseOverview As in the business use caseType Primary and EssentialCross References System Functions: N/APre-Requisites 사용자 DB 에 정보가 존재해야 한다.Typical Courses of Events (A): Actor, (S1): App, (S2): CoffeeMaker, (S3) DB Server

1. (A) 고객이 오늘의 커피 추천 메뉴를 선택한다.2. (S1) AppMain 에서 AppManager 의 GetMacAddress 함수를 호출하여 맥어드레스를 구한뒤 SendRecommendCoffee 함수를 호출하여 커피메이커 쪽으로

Page 23: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

추천요청과 함께 맥어드레스를 전송한다.3. (S2) 받은 추천요청을 그대로 DB 서버로 전송한다. 4. (S3) 추천요청을 받은 뒤 SearchClient 함수를 호출하여 해당 고객을 찾아낸다.5. (S3) SelectCoffee 함수를 호출하여 해당고객의 최근 주문정보중 임의의 하나를 선택한다.6. (S3) SendCoffee 함수를 호출하여 추천해야할 커피정보를 커피메이커 쪽으로 전송한다.7. (S2) 추천할 커피정보를 받은 뒤 CustomizingCoffee 함수를 호출하여 재료양에 소량의 변화를 준다.8. (S2) 재료양이 수정된 추천할 커피정보를 SendCoffee 함수를

통하여 고객의 스마트폰으로 전송한다.9. (S1) 추천받을 커피정보를 받은 뒤 ShowCoffee 함수를

호출하여 화면에 추천된 커피를 보여준다.Alternative Courses of Events

없음

Exceptional Courses of Events

Line 2. 사용자 DB 정보가 없는 고객일 경우 임의로 추천한다.

Use case 7. 재료부족 경고등Actors 없음Purpose As in the business use caseOverview As in the business use caseType Primary and EssentialCross References System Functions: N/APre-Requisites 없음Typical Courses of Events (A): Actor, (s): CoffeeMaker

1. (S) CoffeeMakerMain 에서 커피제작이 완료되어 RingAlarm() 함수가 실행 될 때 CoffeeMaker 에서 MaterialLackCheck() 함수를 실행하여 MaterialLackWarn 에 접근한다.2. (S) MaterialLackWarn 에서 MaterialCheck(coffee: Integer, sugar: Integer, milk: Integer, cream: Integer)을 통하여 MaterialMachine 에 접근하여 남은 재료(설탕, 원두가루, 프림, 물)양을 체크한다.3. (S) MaterialCheck(coffee: Integer, sugar: Integer, milk: Integer, cream: Integer) 실행 하여 남은재료가 전체의 20% 내로 남을 경우에 ShowMaterialWarn()을 실행하여 관리자에게 통보한다.

Alternative Courses of Events

없음

Exceptional Courses of Events

재료가 모두 떨어졌을 시에는 커피 주문을 받지 않는다.

Use case 8. 찌꺼기함경고등Actors 없음Purpose As in the business use caseOverview As in the business use caseType Primary and EssentialCross References System Functions: N/APre-Requisites 없음

Page 24: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

Typical Courses of Events (A): Actor, (s): CoffeeMaker1. (S) CoffeeMakerMain 에서 커피제작이 완료되어 RingAlarm() 함수가 실행 될 때 CoffeeMaker 에서 CoffeeTrashCheck()함수를 실행하여 CoffeeTrashWarn 에 접근한다.2. (S) CoffeeTrashWarnd 에서 CoffeeTrashCheck(drags:Integer)를 실행하여 커피 찌꺼기함의 무게를 측정한다.3. (S) CoffeeTrashCheck(drags:Integer) 실행 하여 커피 찌꺼기가 전체의 80%정도 채워졌을 때 ShowTrashWarn()을 통해서 관리자에게 통보한다.

Alternative Courses of Events

없음

Exceptional Courses of Events

찌꺼기함이 모두 채워졌을 시에는 커피 주문을 받지 않는다.

Use case 9. 보온 온도 조절Actors 관리자Purpose As in the business use caseOverview As in the business use caseType Primary and EssentialCross References System Functions: N/APre-Requisites 없음Typical Courses of Events (A): Actor, (s): CoffeeMaker

1. (A) 관리자가 보온온도 올림,내림 버튼을 누르면 CoffeeMakerMain 에서 ControlTemperature()를 실행하여 CoffeeMaker 내에 heat_temperature 에 온도를 저장한다.2. (S) 커피가 완성되어 RingAlarm()이 실행되면 CoffeeMaker에 GetTemperature()를 통하여 temperatureMachine 에 접근하여 설정된 온도로 커피를 보온시킨다.

Alternative Courses of Events

없음

Exceptional Courses of Events

없음

Use case 10.주문 실패 알림Actors 없음Purpose As in the business use caseOverview As in the business use caseType Primary and EssentialCross References System Functions: R1.1, R1.2Pre-Requisites 없음Typical Courses of Events (A): Actor, (s): CoffeeMaker

1. (A) 고객이 AppMain 을 통하여 CommandCoffeeOrder() 함수로 커피를 주문한다.2. (S) CoffeeMake 에서 MakeCoffee(Order:Class) 함수를 실행 후에 BusinessHoursCheck()함수로 현재의 시간을 체크한다.3. (S) 영업 시간이 지났을 경우에 CoffeeMakerMain 에서 SendFailCoffeeOrder()로 AppMain 에 전송하여 AppMain 내 에서 ShowFailOrder()로 주문 실패를 알린다.

Page 25: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

4. (S) MaterialLackWarn 에서 MaterialLackCheck()를 통하여 MaterialMachine 에 접근하여 남은 재료의 정보를 받는다.5. 남의 재료의 양이 부족할 경우에 CoffeeMakerMain 에서 SendFailCoffeeOrder()로 AppMain 에 전송하여 AppMain 내 에서 ShowFailOrder()로 주문 실패를 알린다.

Alternative Courses of Events

없음

Exceptional Courses of Events

없음

-2042. Define Reports, UI, and Storyboards

1. App 의 Main View

2. App 의 일반커피 주문 (3단계)

Page 26: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

3. 커스터마이징 주문(3단계)

4. 오늘의 추천 커피(2단계)

Page 27: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

5. 최근 주문한 커피 보기(3단계)

6. 사용자 DB 삭제

Page 28: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

7. 커피 완성 알람

Page 29: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

-2043. Refine System Architecture

1) Deployment Diagram

Page 30: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

Order System

CoffeeMaker System

DB System

:SmartPhone<<device>>

: DB server<<device>>

:CoffeeMaker<<device>>

Presentation

Application Logic

Storage

<<wireless>>

<<TCP/IP>>

2) Package Diagram

Page 31: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

App Package

AppMain

+ExcuteApp()+CommandCoffeeOrder()+SendMacAddress(macAddress: string)+SendOrderInfo(OrderList: List)+ShowAlarm()+ShowFailOrder()+InputMaterial()+CallRecentCoffeeOrder()+ShowCoffeeList()+DeleteClient()+TodayRecommendCoffee()+ShowCoffee(CustomizeCoffee: Class)+SendDeleteUser(macAddress: string)+SendRecommendCoffee(macAddress: string)

AppManager

+MakeOrder(Name: String, cupSize: Integer, isCream: Boolean, isHot: Boolean)+MakeOrder(Name: String, cupSize: Integer, isCream: Boolean, isHot: Boolean, coffee: Integer, sugar: Integer, milk: Integer, cream: Integer)+CallCalculateCalorie(coffee: Integer, sugar: Integer, milk: Integer, cream: Integer)+RecentCoffeeSort()+GetMacAddress()

Reservation+time: Date+mac_address: String

Order+mac_address: String+isTakeOut: Boolean+order_num: Integer

Coffee+name: String+calorie: Float+price: Integer+hot: Boolean+isCream: Boolean+cupSize: Integer

CustomizedCoffee+coffee: Integer+sugar: Integer+milk: Integer+cream: Integer

NormalCoffee

CoffeeMaker Package

Coffee

+name: String+calorie: Float+price: Integer+hot: Boolean+isCream: Boolean+cupSize: Integer

NormalCoffee

CustomizedCoffee+coffee: Integer+sugar: Integer+milk: Integer+cream: Integer

Warning

+warning: Boolean

CoffeeTrashWarn+dregs: Integer+CoffeeTrashCheck()+RingTrashWarn()

MaterialLackWarn+coffee: Integer+sugar: Integer+milk: Integer+cream: Integer+MaterialLackCheck()+RingMaterialWarn()

Order+mac_address: String+isTakeOut: Boolean+order_num: Integer

Reservation+time: Date+mac_address: String

CoffeeMaker

+port_num: Integer+port_location: String+heat_temperature: Integer+BusinessHours: Integer+AddOrderList(OrderList: List)+RecordSales(Order: Class)+SelectOrder()+MaterialLackCheck()+CoffeeTrashCheck()+ControlTemperature(temperature: Integer)+BusinessHoursCheck()+CallSalesRecord()+SetTemperature()+SaveCoffeeOrder(macAddr: string, Order: Class)

CoffeeMake+isComplete: Boolean+MakeCoffee(Order: Class)+CupSetting()

Recommend+coffee_name: String+CustomizingCoffee()

SalesRecord+sales_count: Integer+sales_account: Integer+order_list: List+SortOrderList()+SalesCoffeeRecord(Order: Class)

CoffeeMakerMain

+SendMacAddress(macAddr: string)+SendAlarm()+RingAlarm()+SendFailCoffeeOrder()+CallSalesRecord()+ShowRecordSales(order_list: List, sales_count: Integer, sales_account: Integer)+SendCoffee(CustomizeCoffee: Class)+ControlTemperature()+ShowFailOrder()+SendDeleteUser(macAddress: string)+SendRecommendCoffee(macAddress: string)+SendCoffeeOrder(macAddr: string, Order: Class)

Page 32: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

DB Server PackageDB

+user_count: Integer+SearchClient(mac_address: String)+AddClient(User: Class)+DeleteClient(macAddress: string)+SelectCoffee()+SaveCoffeeOrder()

User

+mac_address: String

Order

+mac_address: String+isTakeOut: Boolean+order_num: Integer

DBMain

+SendCoffee(CustomizeCoffee: Class)

- 2044. Define Interaction Diagrams

1-1. 일반 커피 주문

: 고객

: CoffeeMaker : DB : AppMain : CoffeeMakerMain : AppManager : DBMainCoffeeGrindMachine HotWaterPuttingMachinesugarPuttingMachine MilkPuttingMachine CreamPuttingMachineCupSettingMachine CoffeePuttingMachine CreamCreateMachineIceWaterPuttingMachineMaterialMachine : CoffeeMake : MaterialLackWarn : SalesRecordAlarmMachine

1 : ExcuteApp() 2 : GetMacAddress()3 : SendMacAddress(macAddress:string)

4

5 : SendMacAddress(macAddr:string)

67 : SearchClient(mac_address: String)

8 : AddClient(User: Class)

9 : CommandCoffeeOrder()10 : MakeOrder(Name:String, cupSize:Integer, isCream: Boolean, isHot:Boolean)

11 : SendOrderInfo(OrderList:List) 1213 : AddOrderList(OrderList: List)

14 : SelectOrder()15 : MakeCoffee(Order:Class)

16 : BusinessHoursCheck(): void17

18 : MaterialLackCheck()19 : MaterialLackCheck(coffee: Integer, sugar: Integer, milk: Integer, cream: Integer)

20

21 : CupSetting() 22 : CupSetting(isTakeOut:Boolean, cupSize:Integer)23

24 : CoffeeGrind(coffee:Integer)25

26 : CoffeePutting(coffee:Integer)

2728 : sugarPutting(sugar:Integer)

2930 : HotWaterPutting(water:Integer)

3132 : IceWaterPutting(water:Integer)

3334 : MilkPutting(milk:Integer)

3536 : CreamCreate(cream:Integer)

3738 : CreamPutting(cream:Integer)

3940 : SendAlarm()

4142 : ShowAlarm() 43 : RingAlarm()

44 : SalesCoffeeRecord(Order:Class)

45 : SaveCoffeeOrder(macAddr:string,Order:Class)46 : SendCoffeeOrder(macAddr:string,Order:Class) 47 48 : SaveCoffeeOrder()

1-2. 일반 커피 주문(주문실패시)

Page 33: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

: 고객

: CoffeeMaker : DB : AppMain : CoffeeMakerMain : AppManager : DBMainMaterialMachine : CoffeeMake : MaterialLackWarn

1 : ExcuteApp() 2 : GetMacAddress()

3 : SendMacAddress(macAddress:string)4

5 : SendMacAddress(macAddr:string)

6

7 : SearchClient(mac_address: String)

8 : AddClient(User: Class)

9 : CommandCoffeeOrder()

10 : MakeOrder(Name:String, cupSize:Integer, isCream: Boolean, isHot:Boolean)

11 : SendOrderInfo(OrderList:List)12

13 : AddOrderList(OrderList: List)

14 : SelectOrder()15 : MakeCoffee(Order:Class)

16 : BusinessHoursCheck(): void17 : SendFailCoffeeOrder(): void

1819 : ShowFailOrder(): void

20 : MaterialLackCheck(): void21 : MaterialLackCheck(coffee: Integer, sugar: Integer, milk: Integer, cream: Integer)

2223 : SendFailCoffeeOrder()

2425 : ShowFailOrder()

2-1. 커스터마이즈 주문

: 고객

: CoffeeMaker : DB : AppMain : CoffeeMakerMain : AppManager : DBMainCoffeeGrindMachine HotWaterPuttingMachinesugarPuttingMachine MilkPuttingMachine CreamPuttingMachineCupSettingMachine CoffeePuttingMachine CreamCreateMachineIceWaterPuttingMachineMaterialMachine : CoffeeMake : MaterialLackWarn : SalesRecordAlarmMachine

1 : ExcuteApp() 2 : GetMacAddress()

3 : SendMacAddress(macAddress:string) 4

5 : SendMacAddress(macAddr:string)

67 : SearchClient(mac_address: String)

8 : AddClient(User: Class)

9 : CommandCoffeeOrder()10 : InputMaterial(): void 11 : MakeOrder(Name:String, cupSize:Integer, isCream: Boolean, isHot:Boolean,coffee: Integer, sugar: Integer, milk: Integer, cream: Integer): void

12 : calorie : Integer := CallCalculateCalorie(coffee: Integer, sugar: Integer, milk: Integer, cream: Integer)13 : SendOrderInfo(OrderList:List)

1415 : AddOrderList(OrderList: List)

16 : SelectOrder()

17 : MakeCoffee(Order:Class)

18 : BusinessHoursCheck()19 20 : MaterialLackCheck() 21 : MaterialLackCheck(coffee: Integer, sugar: Integer, milk: Integer, cream: Integer)

22

23 : CupSetting() 24 : CupSetting(isTakeOut:Boolean, cupSize:Integer)25

26 : CoffeeGrind(coffee:Integer)27

28 : CoffeePutting(coffee:Integer)

2930 : sugarPutting(sugar:Integer)

3132 : HotWaterPutting(water:Integer)

3334 : IceWaterPutting(water:Integer)

3536 : MilkPutting(milk:Integer)

3738 : CreamCreate(cream:Integer)

3940 : CreamPutting(cream:Integer)

4142 : SendAlarm()

4344 : ShowAlarm() 45 : RingAlarm()

46 : SalesCoffeeRecord(Order:Class)

47 : SaveCoffeeOrder(macAddr:string,Order:Class): void

48 : SendCoffeeOrder(macAddr:string,Order:Class): void 49 50 : SaveCoffeeOrder(): void

2-2. 커스터마이즈 주문(주문실패시)

Page 34: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

: 고객

: CoffeeMaker : DB : AppMain : CoffeeMakerMain : AppManager : DBMainMaterialMachine : CoffeeMake : MaterialLackWarn

1 : ExcuteApp() 2 : GetMacAddress()

3 : SendMacAddress(macAddress:string)4

5 : SendMacAddress(macAddr:string)

6

7 : SearchClient(mac_address: String)

8 : AddClient(User: Class)

9 : CommandCoffeeOrder()10 : InputMaterial(): void

11 : MakeOrder(Name:String, cupSize:Integer, isCream: Boolean, isHot:Boolean,coffee: Integer, sugar: Integer, milk: Integer, cream: Integer): void

12 : CallCalculateCalorie(coffee: Integer, sugar: Integer, milk: Integer, cream: Integer): void

13 : SendOrderInfo(OrderList:List)14 15 : AddOrderList(OrderList: List)

16 : SelectOrder()17 : MakeCoffee(Order:Class)

18 : BusinessHoursCheck(): void19 : SendFailCoffeeOrder(): void

2021 : ShowFailOrder(): void 22 : MaterialLackCheck(): void

23 : MaterialLackCheck(coffee: Integer, sugar: Integer, milk: Integer, cream: Integer)

2425 : SendFailCoffeeOrder()

26

27 : ShowFailOrder()

3. 최근 주문한 커피 보기

: 고객

: AppMain : AppManager

1 : CallRecentCoffeeOrder()2 : RecentCoffeeSort()

3 : ShowCoffeeList()

4. 판매자료보기

Page 35: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

: CoffeeMaker : CoffeeMakerMain

: 관리자

: SalesRecord

1 : CallSalesRecord()2 : CallSalesRecord()

3 : SortOrderList()

4 : ShowRecordSales(order_list:List,sales_count:Integer,sales_account:Integer)

5. 사용자 정보 삭제

: 고객

: CoffeeMaker : DB : AppMain : CoffeeMakerMain : AppManager : DBMain

1 : DeleteClient()2 : GetDeleteUser()

3 : SendDeleteUser(macAddress:string)

4

5 : SendDeleteUser(macAddress:string)6

7 : DeleteClient(macAddress:string): void

6. 커피 추천

: 고객

: CoffeeMaker : DB : AppMain : CoffeeMakerMain : AppManager : DBMain : Recommend

1 : TodayRecommendCoffee() 2 : GetMacAddress()

3 : SendRecommendCoffee(macAddress:string)4 5 : SendRecommendCoffee(macAddress:string)

6 7 : SearchClient(mac_address:string)

8 : SelectCoffee()

9 : SendCoffee(CustomizeCoffee:Class)10

11 : CustomizingCoffee()

12 : SendCoffee(CustomizeCoffee:Class)13

14 : ShowCoffee(CustomizeCoffee:Class)

7. 재료 부족 경고등

Page 36: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

: CoffeeMaker : CoffeeMakerMain MaterialMachine

: 관리자

: MaterialLackWarn : CoffeeMake

1 : RingAlarm(): void

2 : MaterialLackCheck()3 : MaterialLackCheck(): void

4 : MaterialCheck(coffee: Integer, sugar: Integer, milk: Integer, cream: Integer)

5

6 : RingMaterialWarn()

8. 찌꺼기함 경고등

: CoffeeMaker : CoffeeMakerMain

: 관리자

TrashMachine : CoffeeTrashWarn : CoffeeMake

1 : RingAlarm(): void

2 : CoffeeTrashCheck()3 : CoffeeTrashCheck()

4 : CoffeeTrashCheck(drags:Integer)

56 : RingTrashWarn()

9. 보온 온도 조절

: CoffeeMaker : CoffeeMakerMain

: 관리자

temperatureMachine : CoffeeMake

1 : ControlTemperature() 2 : ControlTemperature(temperature:Integer)

3 : RingAlarm(): void

4 : SetTemperature()5 : HeatInsulation(temperature:Integer)

Page 37: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

10. 주문 실패 알림

: 고객

: CoffeeMaker : DB : AppMain : CoffeeMakerMain : AppManager : DBMainMaterialMachine : CoffeeMake : MaterialLackWarn

1 : ExcuteApp() 2 : GetMacAddress()

3 : SendMacAddress(macAddress:string)4

5 : SendMacAddress(macAddr:string)

67 : SearchClient(mac_address: String)

8 : AddClient(User: Class)

9 : CommandCoffeeOrder()10 : MakeOrder(Name:String, cupSize:Integer, isCream: Boolean, isHot:Boolean)

11 : SendOrderInfo(OrderList:List) 12 13 : AddOrderList(OrderList: List)

14 : SelectOrder()15 : MakeCoffee(Order:Class)

16 : BusinessHoursCheck()

17 : SendFailCoffeeOrder()18

19 : MaterialLackCheck(): void

20 : ShowFailOrder()21 : MaterialLackCheck(coffee: Integer, sugar: Integer, milk: Integer, cream: Integer)

22

23 : SendFailCoffeeOrder()

2425 : ShowFailOrder()

2045. Define Design Class Diagrams

App Software

AppMain

+ExcuteApp()+CommandCoffeeOrder()+SendMacAddress(macAddress: string)+SendOrderInfo(OrderList: List)+ShowAlarm()+ShowFailOrder()+InputMaterial()+CallRecentCoffeeOrder()+ShowCoffeeList()+DeleteClient()+TodayRecommendCoffee()+ShowCoffee(CustomizeCoffee: Class)+SendDeleteUser(macAddress: string)+SendRecommendCoffee(macAddress: string)

AppManager

+MakeOrder(Name: String, cupSize: Integer, isCream: Boolean, isHot: Boolean)+MakeOrder(Name: String, cupSize: Integer, isCream: Boolean, isHot: Boolean, coffee: Integer, sugar: Integer, milk: Integer, cream: Integer)+CallCalculateCalorie(coffee: Integer, sugar: Integer, milk: Integer, cream: Integer)+RecentCoffeeSort()+GetMacAddress()

Has 1

1

Reservation+time: Date+mac_address: String

Order+mac_address: String+isTakeOut: Boolean+order_num: Integer

Has

0..1

1

Copy-of1..*1

Coffee+name: String+calorie: Float+price: Integer+hot: Boolean+isCream: Boolean+cupSize: Integer

CustomizedCoffee+coffee: Integer+sugar: Integer+milk: Integer+cream: Integer

NormalCoffee

Has

*

1

Page 38: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

Coffee Maker Software

Coffee

+name: String+calorie: Float+price: Integer+hot: Boolean+isCream: Boolean+cupSize: Integer

NormalCoffee

CustomizedCoffee

+coffee: Integer+sugar: Integer+milk: Integer+cream: Integer

Warning

+warning: Boolean

CoffeeTrashWarn

+dregs: Integer+CoffeeTrashCheck()+RingTrashWarn()

MaterialLackWarn

+coffee: Integer+sugar: Integer+milk: Integer+cream: Integer+MaterialLackCheck()+RingMaterialWarn()

Order

+mac_address: String+isTakeOut: Boolean+order_num: Integer

Reservation

+time: Date+mac_address: String

CoffeeMaker

+port_num: Integer+port_location: String+heat_temperature: Integer+BusinessHours: Integer+AddOrderList(OrderList: List)+RecordSales(Order: Class)+SelectOrder()+MaterialLackCheck()+CoffeeTrashCheck()+ControlTemperature(temperature: Integer)+BusinessHoursCheck()+CallSalesRecord()+SetTemperature()+SaveCoffeeOrder(macAddr: string, Order: Class)

CoffeeMake

+isComplete: Boolean+MakeCoffee(Order: Class)+CupSetting()

Recommend

+coffee_name: String+CustomizingCoffee()

Copy-of

1..*1

Has

1

0..*

Has *

1

Has0..1 1

Has

1 1

Has11

SalesRecord

+sales_count: Integer+sales_account: Integer+order_list: List+SortOrderList()+SalesCoffeeRecord(Order: Class)

Has0..*

1

Has1

1

CoffeeMakerMain

+SendMacAddress(macAddr: string)+SendAlarm()+RingAlarm()+SendFailCoffeeOrder()+CallSalesRecord()+ShowRecordSales(order_list: List, sales_count: Integer, sales_account: Integer)+SendCoffee(CustomizeCoffee: Class)+ControlTemperature()+ShowFailOrder()+SendDeleteUser(macAddress: string)+SendRecommendCoffee(macAddress: string)+SendCoffeeOrder(macAddr: string, Order: Class)

Has 11

DB Server

DB+user_count: Integer+SearchClient(mac_address: String)+AddClient(User: Class)+DeleteClient(macAddress: string)+SelectCoffee()+SaveCoffeeOrder()

User+mac_address: String

Has

0..*1

Order+mac_address: String+isTakeOut: Boolean+order_num: Integer

Has1

1..*

DBMain

+SendCoffee(CustomizeCoffee: Class)

Has

1

1

2046. Define Database Schema

Page 39: dslab.konkuk.ac.krdslab.konkuk.ac.kr/Class/2011/11SMA/Team Project/4/2조... · Web view2010. Revise Plan. 2020. Synchronize Artifacts. 2030. Analyze-2031. Define Essential Use Cases-2032

Key name Data type NULL Default value Key infomationUser_ID String X Mac_addressOrderList Order

ClassX 주문 했던 정보