11 장유스케이스와 UML( 인터넷쇼핑몰예 )
11 장학습목표 1. 행위자 ( 액터 ) 와유스케이스에대한정의.. 2. 유스케이스다이어그램의표기법이해. 3. 유스케이스시나리오작성법이해. 4. 유스케이스시나리오에서사건추적도작성이해 5. 유스케이스시나리오에서시스템의정보추출방법이해 6. 클래스다이어그램의용도및표기법을이해 7. 시퀀스다이어그램의용도및표기법을이해 8. 액티비티다이어그램의용도및표기법을이해 9. 요구사항분석의 3가지관점과각다이어그램의관계를이해 10. UML 모델의 6단계프로세스를이해 1/2 2/55
이해관계자 (stakeholders) 소프트웨어를개발하며고객의요구를만족시키는시스템을만들기위해고객의요구사항을알아내는것은시스템을개발하는관리자와실무자에게중요한일이며가장큰도전이다. 요구사항분석의오류를줄이기위해프로젝트초기인요구사항분석단계에서부터다양한이해관계자를프로젝트개발과정에참여시키는것이중요 이해관계자의활발한참여는잘못된요구사항을밝혀내고중요요구사항누락을방지하는데필수적이다. 이해관계자는프로젝트결과에직간접으로영향을미치는개인이나그룹을의미하며, 프로젝트를발주한고객이나실제사용할사용자, 개발팀등이있다. 1/3 3/55
고객 ( 사용자 ) 고객또는프로젝트의결과물을사용할사용자는프로젝트의이해관계자중가장중요한부류이다. 이들의참여를통해시스템을사용할사람들이누구이고 (user analysis) 어떤역할 (role) 을담당하며, 그역할을위해어떤업무 (task analysis) 를수행하는지이해하게된다, 이는요구사항분석의출발점이자프로젝트를이해하는가장핵심적인사항이다. 고객이나사용자들이자신의역할과임무를효율적으로수행하기위해요구되는소프트웨어의기능이무엇인지파악된다면사용자의개발할시스템에대한목표를파악한것으로볼수있다. 1/4 4/55
11.1 유스케이스기법개요 외부사용자 (external entity) 를찾아낸다. 사용자를역할에따라동질성있는집단으로분류하여이를행위자또는액터 (actor) 라고부른다. 각행위자는시스템에대하여각기다른관점 (view) 과용도를가진다. 각행위자의시스템에대한용도라할수있는유스케이스 (use case) 를식별한다. 각유스케이스에대하여시나리오를작성한다. 시나리오는사건의흐름과과정을나타내며시스템과행위자들이주고받는정보뿐만아니라상호작용이발생하는상황, 환경, 배경등을포함할수있다. 1/5 5/55
유스케이스활용 유스케이스기법은사용자의요구사항을검증하는데활용된다. 시스템의기능적인요구를결정하고기술하여시스템개발자와고객사이의합의를도출할수있도록돕는다. 사용자의관점에서시스템의요구사항을제공하며시스템의범위를나타내주어일정과예산을추정하는데도움을준다. 요구사항을추적할수있어시스템개발후인수시험의기초를제공한다. 유스케이스는하나의공통적인사용자요구와관련된시나리오들의 이것을바탕으로시스템을테스트할수있어야한다. 1/6 6/55
유스케이스 11.2 유스케이스다이어그램 1/7 7/55
유스케이스다이어그램 행위자 1/8 8/55
유스케이스다이어그램 일반화관계 1/9 9/55
포함관계 (include) 유스케이스다이어그램 1/10 10/55
유스케이스다이어그램 확장관계 1/11 11/55
유스케이스시나리오 유스케이스다이어그램을완성한다음식별된유스케이들별로유스케이스시나리오를작성하도록한다. 유스케이스시나리오에대한표준은없으나유스케이스시나리오에는일반적으로유스케이스이름및개요, 유스케이스를수행하는행위자, 선행및후행조건, 유스케이스의이벤트흐름이포함된다. 유스케이스시나리오를작성할때에는시스템이무엇을하는가에대한설명에집중 시나리오를자세하게작성하는것은좋지만고객이이해할수있는수준으로작성하는것이중요 시스템이해당유스케이스를수행하기위한방법과같은구현방법에대해서는설명하지않도록한다. 1/12 12/55
11.3 인터넷쇼핑몰유스케이스모델링 인터넷쇼핑몰문제설명서 (Internet Shopping Mall Problem Statement) 인터넷쇼핑몰시스템은상품의판매나구입을간편하게하기위한시스템이다. 쇼핑몰관리자는인터넷쇼핑몰에상품을등록해서상품의판매를쉽게진행할수있으며, 구매자또한인터넷쇼핑몰에등록된상품들중에서구매하고자하는상품을간편하게구매할수있다. 인터넷쇼핑몰을사용하는사용자는일반고객 ( 비회원 ), 회원, 관리자로나뉜다. 일반고객은상품구매와같은기능을수행하기위해서회원으로가입을할수있다. 관리자는상품관리 ( 등록, 수정, 삭제 ) 나회원관리 ( 조회, 삭제 ), 카테고리관리등과같은활동을수행한다. 상품에대한조회및검색은쇼핑몰에가입한회원뿐만아니라가입하지않은비회원및관리자도수행할수있다. 상품조회는특정카테고리의선택과정을통해이루어지며, 상품검색은특정검색어의입력을통해이루어진다. 관리자는카테고리의분류체계를관리하고, 상품을특정카테고리에포함시켜등록한다. 상품구매는회원만할수있고, 상품을구매하기위해서는먼저원하는상품을장바구니에담고, 장바구니에담긴상품들중에서선택적으로주문할수있다. 상품구매시결제수단은온라인입금과신용카드결제로구분한다. 온라인입금은뱅킹시스템을통해입금여부를확인한후결제처리하며, 신용카드결제는신용카드인증회사로의결제승인서비스를통해즉시처리가가능하도록한다. 1/13 13/55
인터넷쇼핑몰유스케이스다이어그램 1/14 14/55
유스케이스시나리오작성 유스케이스다이어그램이완성되면, 각각의유스케이스에대해유스케이스시나리오를작성한다. 유스케이스시나리오에일반적으로포함되는내용은다음과같다. 유스케이스이름 유스케이스를수행하는행위자 유스케이스내용 선행및후행조건 이벤트흐름 ( 기본흐름, 예외흐름, 대안흐름 ) 1/15 15/55
유스케이스식별자목록 식별자행위자설명식별자행위자설명 UC-A01 관리자, 회원 사용자인증 UC-C01 고객 회원가입 UC-A02 관리자 카테고리등록 UC-C02 고객, 회원 상품목록조회 UC-A03 관리자 카테고리수정 UC-C03 고객, 회원 상품검색 UC-A04 관리자 카테고리삭제 UC-C04 고객, 회원 상품상세조회 UC-A05 UC-A06 UC-A07 UC-A08 UC-A09 UC-A10 관리자관리자관리자관리자관리자관리자 상품등록 UC-A01 관리자, 회원 사용자인증 상품수정 UC-M01 회원 장바구니상품담기 상품삭제 UC-M02 회원 장바구니상품삭제 회원조회 UC-M03 회원 상품주문 회원삭제 UC-M04 회원 주문결제 온라인입금처리 1/16 16/55
카테고리등록유스케이스시나리오 1. 개요상품분류를위한카테고리는여러계층으로구성될수있으며, 카테고리등록시상위카테고리를지정해야한다. 최상위카테고리로등록하고자할때에는상위카테고리를지정하지않는다. 카테고리를등록할때기존에등록된카테고리들의목록을조회할수있어야한다. 카테고리명은시스템을통틀어유일해야한다. 신규등록시카테고리명의중복여부를확인해야한다. 2. Relationships - Initiator: 관리자 - Supporters: - Pre-condition: 관리자는관리권한을가진 ID 로로그인하고, 카테고리등록기능을실행한다. - Post-condition: 등록한카테고리가포함된전체카테고리목록이보여진다. 3. 기본흐름 1) 시스템이최상위카테고리목록 ( 카테고리명 ) 을관리자에게보여준다. 2) 관리자가조회하고자하는카테고리를선택한다. 3) 시스템이선택된카테고리의하위카테고리 ( 카테고리명 ) 목록을보여준다. 4) 등록할카테고리의상위카테고리가나타날때까지상기 2~3 번의흐름을반복한다 5) 상위카테고리로지정하고자하는카테고리를선택한다. 6) 등록하고자하는카테고리명을입력하고저장기능을실행한다. 7) 등록한카테고리가포함된카테고리목록을갱신하여출력한다. 4. 대안흐름 A1. 최상위카테고리를등록하고자하는경우. 1) 상위카테고리를선정하지않고카테고리명을입력한후저장기능을실행한다. 5. 예외흐름 E1. 등록하고자하는카테고리명이이미존재하는경우. 1) 카테고리명은카테고리를구별할수있는정보로서중복되어저장될수없으므로, 시스템은이미동일한이름의카테고리가존재한다는메시지를보여주고, 동일한이름의카테고리가전체카테고리목록에서어느위치에존재하는지보여준다. 1/17 17/55
상품등록유스케이스시나리오 1. 개요관리자는쇼핑몰에서판매할새로운상품의정보를등록할수있다. 상품을등록할카테고리는최하위카테고리로한정된다. 상품은상품명에의해유일하게식별되므로, 상품등록시상품명의중복을허용하지않는다. 2. Relationships - Initiator: 관리자 - Supporters: - Pre-condition: 관리자는관리권한을가진 ID 로로그인하고, 상품관리기능을실행한다. - Post-condition: 관리자가입력한신규상품정보가저장된다. 3. 기본흐름 1) 최상위카테고리목록 ( 카테고리명 ) 이사용자에게보여진다. 2) 조회하고자하는카테고리를선택한다. 3) 선택된카테고리의하위카테고리 ( 카테고리명 ) 들을보여준다. 4) 최하위카테고리를선택할때까지상기 2~3 번의흐름을반복한다. 5) 상품을등록할최하위카테고리를선택한다. 6) 선택된카테고리에속한상품들의목록 ( 상품명, 가격, 등록일자 ) 을보여준다. 7) 등록할상품의정보 ( 상품명, 가격, 상품사진, 상품설명 ) 를입력하고, 상품등록기능을실행한다. 8) 신규상품을등록한뒤, 그결과를보여준다. 4. 대안흐름 A1. 전체카테고리를조회한뒤에상품을등록하고자하는경우 1) 쇼핑몰의전체카테고리를조회한다. 2) 기본흐름 5 번부터수행한다. 5. 예외흐름 E1. 신규상품등록시상품의정보중에누락된값이하나라도존재하는경우. 1) 누락된값이존재한다는메시지를보여주고, 누락된값을입력하도록해당텍스트박스에커서를이동시킨다. E2. 등록하고자하는상품의상품명이이미존재하는경우. 1) 이미동일한상품명이존재한다는메시지를보여주고, 상품명텍스트박스에커서를이동시킨다. 입력된정보는그대로유지한다. 1/18 18/55
상품목록조회유스케이스시나리오 1. 개요인터넷쇼핑몰사용자가특정카테고리를선택하여해당카테고리내의상품목록을조회하는유스케이스다. 상품목록은최하위카테고리를선택하는경우에만조회된다. 2. Relationships - Initiator: 고객, 회원, 관리자 - Supporters: - Pre-condition: 고객은시스템에접속하여상품조회기능을실행한다. - Post-condition: 선택된최하위카테고리에포함된상품들의목록이나타난다. 3. 기본흐름 1) 최상위카테고리목록 ( 카테고리명 ) 이사용자에게보여진다. 2) 조회하고자하는카테고리를선택한다. 3) 선택된카테고리의하위카테고리 ( 카테고리명 ) 들을보여준다. 4) 최하위카테고리를선택할때까지상기 2~3 번의흐름을반복한다. 5) 선택된최하위카테고리에포함된상품들의목록을보여준다. 6) 화면에나타난상품목록들중에서조회하고자하는상품을선택해서상품의상세정보화면으로이동할수있다 (UC-C04 상품상세조회 ). 4. 대안흐름 A1. 전체카테고리구조를조회한후최하위카테고리를선택하는경우 1) 쇼핑몰의전체카테고리구조를조회한다. 2) 조회할최하위카테고리를선택한다. 3) 기본흐름 5 번으로돌아간다. A2. 카테고리선택과정에서상위카테고리목록으로돌아가고자하는경우 1) 카테고리조회중에 위로 버튼을클릭한다. 2) 상위카테고리목록을보여준다. 1/19 19/55
상품상세조회유스케이스시나리오 1. 개요고객이상품목록조회나상품검색중특정상품의상세정보를조회할수있는유스케이스이다. 2. Relationships - Initiator: 고객, 회원, 관리자 - Supporters: - Pre-condition: 상품목록조회또는상품검색유스케이스가수행된상태로서, 상품들의목록이나타나있다. - Post-condition: 3. 기본흐름 1) 상품목록조회나상품검색후, 상세한정보를알고싶은상품 ( 상품명 ) 을선택한다. 2) 선택된상품의상세정보 ( 상품명, 상품사진, 상품설명, 가격, 등록일자 ) 를보여준다. 3) 고객이원하는경우구매요구수량을입력하고, 상품을장바구니에담을수있다. (UC-M01 장바구니상품담기 ) 4. 대안흐름 A1. 상품상세조회중에 목록 기능을요청하는경우 1) 상품상세정보화면에서 목록 버튼을클릭하면, 이전의상품목록을보여준다. (UC-C02 상품목록조회유스케이스 ) 1/20 20/55
장바구니상품담기유스케이스 1. 개요회원은상품의상세정보를조회한후원하는상품을장바구니에담을수있다. 각회원은하나의장바구니를가지며, 원하는상품들을장바구니에담은후구매할수있다. 2. Relationships - Initiator: 회원 - Supporters: - Pre-condition: 회원이상품의상세정보를조회한다. - Post-condition: 선택한상품과구매하고자하는수량정보가장바구니에저장된다. 3. 기본흐름 1) 상품의상세정보조회후, 구매하고자하는수량을입력하고 ( 구매수량은 0 보다커야함 ) 장바구니담기기능을실행한다. 2) 장바구니에담긴상품의목록 ( 이전에이미장바구니에담겨있던상품포함 ) 을보여준다. 장바구니목록에는각상품의상품명, 수량, 가격, 금액 ( 가격 * 수량 ), 총액이나타난다. 3) 장바구니에담긴상품중에서원하는상품을선택하여주문 (UC-M03 상품주문 ) 할수있다. 4. 대안흐름 5. 예외흐름 1/21 21/55
상품주문유스케이스시나리오 1. 개요회원은장바구니에상품을담은후주문한다. 장바구니에담긴상품들의목록중에서주문하고자하는상품을선택한후주문서를작성한다. 2. Relationships - Initiator: 회원 - Supporters: - Pre-condition: 장바구니에담긴상품의목록을조회한다. - Post-condition: 선택한상품에대한주문정보가저장된다. 3. 기본흐름 1) 장바구니에담긴상품목록에서주문하고자하는상품들을선택하고, 주문하기 기능을실행한다. 2) 회원이장바구니에서선택한각상품의목록 ( 상품명, 가격, 수량, 금액 ( 가격 * 수량 )) 과주문총액을보여주고, 주문정보 ( 수령인이름, 배송지주소, 배송지연락처 ) 를입력받기위한화면이나타난다. 3) 주문정보를입력하고 저장 기능을실행한다. 4) 이때주문번호는시스템에의해자동으로생성되며, 주문일자는시스템날짜로저장된다. 5) 주문정보에대한주문결제화면을보여준다. (UC-M04 주문결제 ) 6) 주문이이루어지면주문된상품들은장바구니에서삭제된다. 4. 대안흐름 A1. 주문정보입력시 취소 기능을요청한경우 1) 주문서작성을취소하고장바구니목록화면을출력한다. 5. 예외흐름 E1. 장바구니에서상품을선택하지않고 주문하기 기능을요청한경우 1) 선택한상품이없다는메시지를출력한다. E2. 입력되지않은주문정보 ( 수령인이름, 배송지주소, 배송지연락처 ) 가있는상태로 저장 기능을요청한경우 1) 입력하지않은주문정보가있다는메시지를출력하고해당필드로커서를이동한다. 1/22 22/55
주문결제유스케이스시나리오 1. 개요회원은주문정보가저장된상태에서결제방식 ( 신용카드결제, 온라인입금 ) 을선택한후결제를수행한다. 주문에대한결제는상품주문후바로수행된다. 2. Relationships - Initiator: 회원 - Supporters: 신용카드인증회사 - Pre-condition: 주문서작성이완료된상태여야한다. 주문서작성후결제화면으로이동한상태이다. - Post-condition: 주문에대한결제정보가생성된다. 신용카드결제를선택한경우결제승인이이루어지면결제상태가 입금완료 로저장되며, 온라인입금결제를선택한경우는 입금대기 로저장된다. 3. 기본흐름 1) 결제방식 ( 신용카드결제 와 온라인입금 ) 을선택할수있는화면이나타난다. 2) 결제방식으로 신용카드결제 를선택한다. 3) 신용카드정보 ( 신용카드사, 신용카드번호, 유효기간, 비밀번호, 할부기간 ) 입력화면을보여준다. 4) 신용카드정보를입력하고 결제 기능을실행한다. 5) 신용카드정보를신용카드인증회사에보내결제승인을요청한다. 6) 신용카드인증회사는신용카드정보를확인하고주문총액만큼결제승인처리를수행한다. 7) 성공적으로승인된경우, 결제정보 ( 결제방식, 결제상태, 승인번호, 신용카드사, 신용카드번호, 주문번호, 승인일자 ) 를저장한다. 결제상태는 입금완료 로저장된다. 8) 주문이완료되었음을회원에게알린다. 1/23 23/55
주문결제유스케이스시나리오 4. 대안흐름 A1. 결제방식으로온라인입금을선택한경우. 1) 결제방식 ( 신용카드결제 와 온라인입금 ) 을선택할수있는화면이나타난다. 2) 온라인입금 을선택한다. 3) 거래은행별로하나의입금가능계좌를보여주고고객은입금하고자하는계좌를선택한다. 4) 온라인입금정보 ( 입금자성명, 입금예정일 ) 를입력할수있는화면을보여준다. 5) 온라인입금정보를입력하고결제를신청한다. 6) 결제정보 ( 결제방식, 입금자성명, 입금은행, 입금예정일, 주문번호, 결제상태 ) 를저장한다. 결제상태는 입금대기 로저장된다. 5. 예외흐름 E1. 신용카드번호오류 1) 회원이입력한카드번호에오류가있음을알리고, 신용카드정보재입력을요청한다. E2. 신용카드유효기간오류 1) 회원이입력한유효기간에오류가있음을알리고, 신용카드정보재입력을요청한다. E3. 신용카드비밀번호오류 1) 회원이입력한비밀번호에오류가있음을알리고, 신용카드정보재입력을요청한다. E4. 신용카드이용한도오류 1) 신용카드의이용한도가초과되었음을알리고, 신용카드정보재입력을요청한다. 1/24 24/55
폼형식 UC-A02 카테고리등록유스케이스 유스케이스식별자 / 명 UC-A02 카테고리등록유스케이스상품분류를위한카테고리는여러계층으로구성될수있으며, 카테고리등록시상위카테고리를지정해야한다. 최상위카테고리로등록하고자할때에는상위카테개요고리를지정하지않는다. 카테고리를등록할때기존에등록된카테고리들의목록을조회할수있어야한다. 카테고리명은시스템을통틀어유일해야한다. 신규등록시카테고리명의중복여부를확인해야한다. 주행위자관리자부행위자해당사항없음사전조건관리자는관리권한을가진 ID로로그인하고, 카테고리등록기능을실행한다. 기본흐름행위자시스템 1. 최상위카테고리목록 ( 카테고리명 ) 을출력한다. 2. 조회하고자하는카테고리를선택한다. 3. 선택된카테고리의하위카테고리목록 ( 카테고리명 ) 을출력한다. 4. 등록할카테고리의상위카테고리를찾을때까지 2~3번의흐름을반복한다 5. 등록하고자하는카테고리명을입력하고저장기능을실행한다. 6. 등록한카테고리가포함된카테고리목록을갱신하여출력한다. 대안흐름행위자시스템 [A1. 최상위카테고리를등록하고자하는경우 ] 2. 상위카테고리를선정하지않고카테고리명을입력한후저장기능을실행한다 3. 기본흐름 6을수행한다. 예외상황시나리오행위자시스템 [E1. 등록하고자하는카테고리명이이미존재하는경우 ] 5. 기등록된카테고리명을입력하고저장기능을실행한다. 6. 이미동일한이름의카테고리가존재한다는메시지를출력한다. 7. 카테고리목록에서동일한이름의카테고리가존재하는위치를출력한다. 사후조건해당사항없음 1/25 25/55
유스케이스모델링완료 유스케이스시나리오까지작성되면유스케이스모델링이완료되었다고볼수있다. 유스케이스는사용자가시스템을활용할때나타나는쓰임새혹은시스템이사용자에게제공하는서비스를나타낸것으로써, 행위자가자신의목적을위해서시스템에서제공받는가장단순하고직관적인기능이다. 행위자가시스템에게요구하는기능들이유스케이스로표현되기때문에유스케이스는시스템의최상위요구사항이라고도볼수있다. 유스케이스모델링은시스템을블랙박스로보고사용자의관점에서시스템을분석한것 유스케이스식별부터유스케이스시나리오작성까지의전과정을살펴보면우선유스케이스식별은시스템의최상위기능을찾아내는것으로서초기기능모델링이이루어진것 유스케이스시나리오는행위자와시스템사이에이루어지는유스케이스의진행과정과흐름을나타낸것으로서시스템에대한동적모델링을수행한것 또한유스케이스시나리오에는이벤트흐름과함께행위자와시스템이주고받는정보들이함께나타나게되어, 시스템내부에서저장되고관리되어야하는중요정보들에대한초기정보모델링이이루어진것 1/26 26/55
UML 프로세스 앞에서다룬유스케이스모델링은시스템을블랙박스로보고고객의요구사항을분석한것이다. 앞에서수행한유스케이스모델링의결과를바탕으로시스템을열어 ( 시스템을화이트박스로보고 ) 시스템내부의모습을분석하는과정을조사 우선유스케이스시나리오를통해행위자와시스템이주고받는정보들을활용하여시스템내부에저장되고관리되어야하는정보를밝히는정보모델링을수행하고그결과를클래스다이어그램으로나타낸다. 다음은유스케이스시나리오를확장하여시퀀스다이어그램작성 업무프로세스내의상호작용에대한추가적인이해가필요할경우액티비티다이어그램을작성할수있다. 1/27 27/55
11.4 클래스다이어그램 (Class Diagram) 클래스다이어그램은시스템의정적인정보구조를나타내는정보모델로써, 시스템에필요한클래스들과이들사이의관계를나타내는데사용된다. 각클래스는해당객체의특성을나타내는여러가지속성들과오퍼레이션으로구성된다. 클래스, 클래스의속성, 클래스들간의관계를찾아내기위해서는선행단계에서작성된문서들을활용할수있는데, 문제기술서나유스케이스시나리오가클래스도출에사용될수있다. 1/28 28/55
회원가입유스케이스시나리오 1. 개요인터넷쇼핑몰에회원으로가입할수있는유스케이스시나리오이다. 고객은인터넷쇼핑몰로부터상품구매등의서비스를이용하기위해회원으로가입한다. 2. Relationships - Initiator: 고객 - Supporters: - Pre-condition: 고객 ( 비회원 ) 이회원가입기능을실행한다. - Post-condition: 고객의정보가시스템에저장되고, 쇼핑몰의회원이된다. 3. 기본흐름 1) 고객이회원가입을신청한다. 2) 회원으로가입하기위해필요한정보 ( 주민등록번호, 이름, 주소, 비밀번호, 회원 ID, 메일, 휴대폰번호 ) 를입력한다. 3) 입력된정보들중에주민등록번호와회원 ID 가기존에가입된회원의정보와중복되는지여부를확인한다. 기존의회원정보와중복되지않았다면가입을승인한다. 4. 대안흐름 5. 예외흐름 E1. 주민등록번호가중복된경우 1) 개인의중복가입을방지하기위하여주민등록번호의중복을허용하지않는다. 때문에입력된주민등록번호가이미존재하는경우기존에가입된회원의주민등록번호라는것을알리고회원가입을승인하지않는다. E2. 회원 ID 가중복된경우 1) 회원 ID 는시스템이사용자개개인을구별하기위한정보로서중복이허용되지않기때문에, 시스템은이미동일한회원 ID 가사용되고있다는메시지를보여주고다른사용자 ID 를입력하도록해당필드로커서를이동한다. 1/29 29/55
상품등록유스케이스시나리오 1. 개요관리자는쇼핑몰에서판매할새로운상품의정보를등록할수있다. 상품을등록할카테고리는최하위카테고리로한정된다. 상품은상품명에의해유일하게구별되므로, 상품등록시상품명의중복을허용하지않는다. 2. Relationships - Initiator: 관리자 - Supporters: - Pre-condition: 관리자는관리권한을가진 ID 로로그인하고, 상품관리기능을실행한다. - Post-condition: 관리자가입력한신규상품정보가저장된다. 3. 기본흐름 1) 최상위카테고리목록 ( 카테고리명 ) 이사용자에게보여진다. 2) 조회하고자하는카테고리를선택한다. 3) 선택된카테고리의하위카테고리 ( 카테고리명 ) 들을보여준다. 4) 최하위카테고리를선택할때까지 2~3 번흐름을반복한다. 5) 상품을등록할최하위카테고리를선택한다. 6) 선택된카테고리에속한상품들의목록 ( 상품명, 가격, 등록일자 ) 을보여준다. 7) 등록할상품의정보 ( 상품명, 가격, 상품사진, 상품설명 ) 를입력하고, 상품등록기능을실행한다. 8) 신규상품을등록한뒤, 그결과를보여준다. 4. 대안흐름 A1. 전체카테고리를조회한뒤에상품을등록하고자하는경우 1) 쇼핑몰의전체카테고리를조회한다. 2) 기본흐름 2 번으로 5. 예외흐름 E1. 신규상품등록시상품의정보중에누락된값이하나라도존재하는경우. 1) 누락된값이존재한다는메시지를보여주고, 누락된값을입력하도록해당텍스트박스에커서를이동시킨다. E2. 등록하고자하는상품의상품명이이미존재하는경우. 1) 이미동일한상품명이존재한다는메시지를보여주고, 상품명텍스트박스에커서를이동시킨다. 입력된정보는그대로유지한다. 1/30 30/55
장바구니상품담기유스케이스시나리오 1. 개요회원은상품의상세정보를조회한후원하는상품을장바구니에담을수있다. 각회원은하나의장바구니를가지며, 원하는상품들을장바구니에담은후구매할수있다. 2. Relationships - Initiator: 회원 - Supporters: - Pre-condition: 회원이상품의상세정보를조회한다. - Post-condition: 선택한상품과구매하고자하는수량정보가장바구니에저장된다. 3. 기본흐름 1) 상품의상세정보조회후, 구매하고자하는수량을입력하고 ( 구매수량은 0 보다커야함 ) 장바구니담기기능을실행한다. 2) 장바구니에담긴상품의목록 ( 이전에장바구니에담겨있던상품포함 ) 을보여준다. 장바구니목록에는각상품의상품명, 수량, 가격, 금액 ( 가격 * 수량 ), 총액이나타난다. 3) 장바구니에담긴상품중에서원하는상품을선택하여주문 (UC-M03 상품주문 ) 할수있다. 4. 대안흐름 5. 예외흐름 1/31 31/55
상품주문유스케이스시나리오 1. 개요회원은장바구니에상품을담은후주문한다. 장바구니에담긴상품들의목록중에서주문하고자하는상품을선택한후주문서를작성한다. 2. Relationships - Initiator: 회원 - Supporters: - Pre-condition: 장바구니에담긴상품의목록을조회한다. - Post-condition: 선택한상품에대한주문정보가저장된다. 3. 기본흐름 1) 장바구니에담긴상품목록에서주문하고자하는상품들을선택하고, 주문하기 기능을실행한다. 2) 회원이장바구니에서선택한각상품의목록 ( 상품명, 가격, 수량, 금액 ( 가격 * 수량 )) 과주문총액을보여주고, 주문정보 ( 수령인이름, 배송지주소, 배송지연락처 ) 를입력받기위한화면이나타난다. 3) 주문정보를입력하고 저장 기능을실행한다. 4) 이때주문번호는시스템에의해자동으로생성되며, 주문일자는시스템날짜로저장된다. 5) 주문정보를저장한후, 주문결제화면을보여준다. (UC-M04 주문결제 ) 6) 주문이이루어지면주문된상품들은장바구니에서삭제된다. 4. 대안흐름 A1. 주문정보입력시 취소 기능을요청한경우 1) 주문서작성을취소하고장바구니목록화면을출력한다. 5. 예외흐름 E1. 장바구니에서상품을선택하지않고 주문하기 기능을요청한경우 1) 선택한상품이없다는메시지를출력한다. E2. 입력되지않은주문정보 ( 수령인이름, 배송지주소, 배송지연락처 ) 가있는상태로 저장 기능을요청한경우 1) 입력하지않은주문정보가있다는메시지를출력하고해당필드로커서를이동한다. 1/32 32/55
장바구니주문클래스다이어그램 1/33 33/55
주문내역테이블 회원 ID 상품명수량주문번호 User1 책상 1 254654 User1 의자 2 254654 User1 옷걸이 1 254654 1/34 34/55
장바구니주문클래스다이어그램 2 1/35 35/55
관계형데이터베이스 주문테이블 주문번호 주문일자 수령인이름 배송지주소 배송지연락처주문총액회원 ID 254654 2013.03.20 김 충청남도 010-1234-5678 125,000 User1 주문내역테이블 주문번호상품명수량 254654 책상 1 254654 의자 2 254654 옷걸이 1 1/36 36/55
주문결제유스케이스시나리오 1. 개요회원은주문정보가저장된상태에서결제방식 ( 신용카드결제, 온라인입금 ) 을선택한후결제를수행한다. 주문에대한결제는상품주문후바로수행된다. 2. Relationships - Initiator: 회원 - Supporters: 신용카드인증회사 - Pre-condition: 주문서작성이완료된상태여야한다. 주문서작성후결제화면으로이동한상태이다. - Post-condition: 주문에대한결제정보가생성된다. 신용카드결제를선택한경우결제승인이이루어지면결제상태가 입금완료 로저장되며, 온라인입금결제를선택한경우는 입금대기 로저장된다. 3. 기본흐름 1) 결제방식 ( 신용카드결제 와 온라인입금 ) 을선택할수있는화면이나타난다. 2) 결제방식으로 신용카드결제 를선택한다. 3) 신용카드정보 ( 신용카드사, 신용카드번호, 유효기간, 비밀번호, 할부기간 ) 입력화면을보여준다. 4) 신용카드정보를입력하고 결제 기능을실행한다. 5) 신용카드정보를신용카드인증회사에보내결제승인을요청한다. 6) 신용카드인증회사는신용카드정보를확인하고주문총액만큼결제승인처리를수행한다. 7) 승인이성공된경우, 결제정보 ( 결제방식, 결제상태, 승인번호, 신용카드사, 신용카드번호, 주문번호, 승인일자 ) 를저장한다. 결제상태는 입금완료 로저장된다. 8) 주문이완료되었음을회원에게알린다. 4. 대안흐름 A1. 결제방식으로온라인입금을선택한경우. 1) 결제방식 ( 신용카드결제 와 온라인입금 ) 을선택할수있는화면이나타난다. 2) 온라인입금 을선택한다. 3) 거래은행별로하나의입금가능계좌를보여주고고객은입금하고자하는계좌를선택한다. 4) 온라인입금정보 ( 입금자성명, 입금예정일 ) 를입력할수있는화면을보여준다. 5) 온라인입금정보를입력하고결제를신청한다. 6) 결제정보 ( 결제방식, 입금자성명, 입금은행, 입금예정일, 주문번호, 결제상태 ) 를저장한다. 결제상태는 입금대기 로저장된다. 5. 예외흐름 E1. 신용카드번호오류 1) 회원이입력한카드번호에오류가있음을알리고, 신용카드정보재입력을요청한다. E2. 신용카드유효기간오류 1) 회원이입력한유효기간에오류가있음을알리고, 신용카드정보재입력을요청한다. E3. 신용카드비밀번호오류 1) 회원이입력한비밀번호에오류가있음을알리고, 신용카드정보재입력을요청한다. E4. 신용카드이용한도오류 1) 신용카드의이용한도가초과되었음을알리고, 신용카드정보재입력을요청한다. 1/37 37/55
인터넷쇼핑몰클래스다이어그램 1/38 38/55
11.5 시퀀스다이어그램 (Sequence Diagram) 앞에서유스케이스정적분석방법을사용하여시스템을구성하는클래스를찾아내고각클래스의속성, 클래스들사이의관계를규명하였다. 정적분석의결과를토대로유스케이스동적분석방법을수행하는방법을알아보자. 책임기반의방법은객체들사이의상호작용을통해클래스의오퍼레이션을도출한다. 한객체가다른객체에게어떤기능의수행을요청하는메시지를보내면, 메시지를받는객체는요청된기능을수행할책임이있다. 이때수행할기능이클래스의오퍼레이션이된다. 객체들의상호작용을나타내기위해일반적으로시퀀스다이어그램을사용한다. 1/39 39/55
상품목록조회유스케이스시나리오 1. 최상위카테고리목록 ( 카테고리명 ) 이사용자에게보여진다. 2. 조회하고자하는카테고리를선택한다. 3. 선택된카테고리의하위카테고리 ( 카테고리명 ) 들을보여준다. 4. 최하위카테고리를선택할때까지 2~3 번흐름을반복한다. 5. 선택된최하위카테고리에포함된상품들의목록을보여준다. 6. 화면에나타난상품목록들중에서원하는상품을선택해서상품의상세정보화면으로이동할수있다 (UC-C04 상품상세조회 ). 1/40 40/55
상품목록조회사건추적도 1/41 41/55
상품목록조회시퀀스다이어그램 1/42 42/55
장바구니에상품담기시퀀스다이어그램 1/43 43/55
상품주문시퀀스다이어그램 1/44 44/55
주문결제시퀀스다이어그램 1/45 45/55
온라인입금처리시퀀스다이어그램 1/46 46/55
11.6 액티비티다이어그램 (Activity Diagram) 액티비티다이어그램은클래스내에서이벤트를처리하는논리적인과정을정확히이해하기위해사용되는다이어그램 복잡한프로세스의처리과정을이해하거나클래스의추가적인오퍼레이션을식별하는데사용된다. 각유스케이스에서어떤활동들이일어나고활동들간어떠한의존관계가존재하는지이해하는데도움을줄수있다. 특정객체가가지는오퍼레이션이내부적으로복잡한구조로이루어져있을때액티비티다이어그램을사용하여표현할수있다. 1/47 47/55
장바구니상품담기액티비티다이어그램 1/48 48/55
전체카테고리조회액티비티다이어그램 1/49 49/55
11.7 UML 의 V 프로세스 1/50 50/55
11.8 모델의통합 동적분석에서작성한시퀀스다이어그램을통해얻어진이벤트들은클래스다이어그램에오퍼레이션으로반영된다. 동적분석의결과로도출된오퍼레이션들이정적분석의결과물인클래스다이어그램에반영되면, 비로소완전한분석단계의클래스다이어그램이만들어진다. 아래클래스다이어그램에는여섯개의유스케이스의동적분석의결과뿐만아니라앞에서설명하였던두개의액티비티에나타난활동들을모두별도의오퍼레이션으로구별하여나타내었다. 1/51 51/55
통합된클래스다이어그램 1/52 52/55
속성정의 속성명가시성자료형크기널허용기본값설명 상품명 Private String 200 Not Null N/A 상품의이름이자상품객체의식별자 상품설명 Private String 4000 Not Null N/A 상품에대한상세정보 상품사진 Private Image 5000 Not Null N/A 상품의사진 가격 Private Integer 20 Not Null N/A 상품의가격 등록일 Private Date 8 Not Null N/A 상품을온라인쇼핑몰시스템에등록한날짜 1/53 53/55
오퍼레이션정의 오퍼레이션명가시성매개변수반환값설명 상품내역조회 public 상품명 [1..*] { 상품명, 가격 }[1..*] 상품명에해당하는상품들의정보를조회하는기능 상품등록 Public 상품명, 상품설명, 상품사진, 가격, 등록일 Boolean 상품을온라인쇼핑몰에신규등록하는기능. 등록일은시스템에의해자동생성 카테고리상품목록조회 Public 카테고리명 { 상품명, 가격 }[1..*] 특정카테고리에포함된상품들의목록을조회하는기능 상품상세조회 Public 상품명 상품명, 상품사진, 가격, 상품설명, 등록일 특정상품의상세정보를조회하는기능 1/54 54/55
관계정보 이름유형관련클래스다중성 (multiplicity) 카테고리 양방향연관 상품카테고리등록 상품 (1..*)- 카테고리 (1) 상품이속한카테고리와의관계를나타낸다. 회원 연관클래스 장바구니상품 (1..*)- 회원 (1..*) 회원은여러개의상품을장바구니에담을수있으며, 상품은여러회원에의해장바구니에담길수있다. 주문 연관클래스 주문내역상품 (1..*)- 주문 (1..*) 상품은여러주문에속할수있으며, 주문은여러개의상품을포함할수있다. 1/55 55/55