Ch06. 유스케이스 Professor Seung-Hoon Choi
유스케이스는 요구사항을발견하고기록하기위해널리사용되는 텍스트로작성된스토리이다. 주로 FURPS+ 모델에서 F 를표현한다. 유스케이스다이어그램은 한응용프로그램의전체기능을보여주는데유용하다. 유스케이스는객체지향과는아무런관련이없다. 2
Business Modeling date... Sale Sample UP Artifact Relationships Domain Model 1 1..* Sales LineItem... quantity... Fig 6.1 Use Cases within the UP ( 출처 : UML 과패턴의적용, Craig Larman 저, Pearson Education) Requirements Cashier Process Sale Use Case Diagram Operation: enteritem( ) Post-conditions: -... Operation Contracts Use-Case Model use case names system operations : Cashier objects, attributes, associations Process Sale 1. Customer arrives... 2. Cashier makes new sale. 3.... Use Case Text system events make NewSale() enteritem (id, quantity) : System System Sequence Diagrams scope, goals, actors, features terms, attributes, validation non-functional reqs, quality attributes Vision Glossary Supplementary Specification requirements : Register Design Model : ProductCatalog : Sale Design enteritem (itemid, quantity) spec = getproductspec( itemid ) addlineitem( spec, quantity ) 3
간단히말하면, 유스케이스는 목적을달성하기위해액터가시스템을사용하는텍스트형식의스토리이다. 약식으로표현된간단한예제 : Process Sale( 판매처리하기 ) 고객이구입할상품들을가지고계산대에온다. 출납원은구매된각품목을기록하기위해 POS 시스템을사용한다. 시스템은구매된품목들의총액과각품목의세부내역을보여준다. 고객은시스템이검증하고기록할지불정보를입력한다. 시스템은재고를갱신한다. 고객은시스템으로부터영수증을받은후구매한상품들을가지고나간다. 유스케이스는 요구사항분석시의사소통도구로유용하게사용된다. 4
Actor 사람, 컴퓨터시스템, 조직과같이행위를갖는어떤것 예 : 출납원, 게임플레이어 Scenario ( 또는유스케이스인스턴스 ) 액터와시스템사이의활동및상호작용에대한명확한순서 시스템을사용하는데있어서하나의특정스토리 유스케이스내를흘러가는하나의경로 Use case 액터가목적을달성하기위해시스템을사용할때발생가능한성공 시나리오들과실패시나리오들의집합 5
유스케이스모델 유스케이스들 유스케이스다이어그램 6
유스케이스는요구사항을표현한다. 주로기능적또는행위적요구사항을표현함 FURPS+ 모델에서 F에중점을둔다. 그러나, 다른유형의요구사항도포함할수있다. 7
액터 (Actor) 주요액터 (Primary actor) SuD(System under Discussion) 을사용하여사용자의목적을수행한다. 예 : 출납원 지원액터 (Supporting actor) SuD에 ( 정보와같은 ) 서비스를지원한다. 예 : 지불인증시스템 숨겨진액터 (Offstage actor) 주요액터나지원액터가아니면서, 유스케이스행위에서이해관계를갖는다. 예 : 세무서 8
유스케이스형식들 약식 (brief) 일반적으로주요성공시나리오를표현하는간결한하나의문단 자유형 (casual) 비공식적인문단형식 여러가지시나리오를다루는여러개의문단으로구성됨 완전명세 (fully dressed) 모든단계와변형이상세하게작성됨 사전조건, 성공보장등의여러가지항목들로구성됨 9
Template( 양식 ) Use Case Section 유스케이스이름 범위 동사로시작 설계중인시스템 Comment 수준 사용자 - 목적 또는 세부기능 주요액터 관련자및관심사항 사전조건 (Preconditions) 성공보증 (Success Guarantee) 서비스를위해시스템을호출 누가이유스케이스를중요하게생각하고원하는것은무엇인가? 유스케이스가시작할때만족해야하는조건은무엇인가? 유스케이스가성공적으로끝났을때만족해야하는조건은무엇인가? 10
Template( 양식 ) ( 계속 ) Use Case Section 주요성공시나리오 (Main Success Scenario) 확장 (Extensions) 특수요구사항 기술및데이터변동리스트 발생빈도 기타 Comment 전형적인성공시나리오또다른경로의성공또는실패시나리오관련된비기능적요구사항다양한입출력방법및데이터형식조사, 테스트및구현시점에영향을줌해결되지않은문제등 11
예제유스케이스 UC1: Process Sale 교재 98~103 페이지참조 학사인트라넷첨부자료참조 (06_01_Use_Case_Process_Sale.doc) 12
범위 (Scope) 개발하는시스템의경계 수준 (Level) 사용자-목적수준 (user-goal level) 유스케이스 주요액터가어떤목적을수행하기위한시나리오를설명하는일반적인유스케이스 세부기능수준 (subfunction-level) 유스게이스 사용자의목적을지원하는데필요한세부단계를기술하는유스케이스 13
주요액터 (Primary Actor) 목적을수행하기위해시스템의서비스를호출하는주된액터 관련자및관심사항리스트 (Stakeholders and Interests List) 응용프로그램과모든관련자들사이의약정중기능적인부분들을 상세하게기술함 현재유스케이스에서관련자들이무엇을원하는지에초점을둔다. 14
사전조건 (Preconditions) 유스케이스내의시나리오가시작되기전에항상참이어야하는조건 성공보증 (Success Guarantees) 또는사후조건 (Postconditions) 유스케이스내의주요성공시나리오나다른대안경로의성공적인완료 후에참이어야하는조건 15
주요성공시나리오 (Main Success Scenario) 또는기본흐름 (Basic Flow) 관련자의관심사항을충족시키는일반적인성공경로 16
확장 (Extensions) 또는대안흐름 (Alternate Flows) : 유스케이스의대부분을차지하는중요한부분임 주요성공시나리오이외의모든시나리오를나타냄 ( 성공또는실패 ) 주요성공시나리오로부터의분기를나타냄 숫자매기기 예를들어, 주요성공시나리오의 Step 3에서, 입력이잘못되었거나시스템에미리등록이안된경우유효하지않은물건 ID가발생될수있다. 3a: 첫번째유효하지않는물건 ID 발생조건 + 대응활동 3b: 두번째유효하지않는물건 ID 발생조건 + 대응활동 3-6a: step 3에서 6 사이에서일어날수있는조건에대해기술할때 *a, *b: 시스템사용중언제든지일어날수있는조건에대해기술할때 17
특수요구사항 (Special Requirements) 주로비기능적요구사항 (non-functional requirements) 을기술함 현재유스케이스에서, 성능, 신뢰성, 사용성과같은품질에관련된요구사항을기술함 예 게임서버와의연결은최대 5초안에이루어져야한다. 카드인증의 90% 는 30초이내에응답되어야한다. 18
기술및데이터변동리스트 (Technology and Data Variations List) 기술적인변화나데이터구조의변동등을기술함 일반적인예 입출력시의기술적제약사항 POS 시스템은카드입력기나키보드를이용하여신용카드계정정보의입력을지원해야한다. 데이터구조의변동 바코드로기호화된품목식별자로서 UPC나 EAN, JAN을지원해야한다. 19
유스케이스를액터와시스템사이의대화로표현함 Main Success Scenario: Actor Action (or Intention) 1. Customer arrives at a POS checkout with goods and/or services to purchase. 2. Cashier starts a new sale 3. Cashier enters item identifier. Cashier repeats steps 3-4 until indicates done. 6.Cashier tells Customer the total, and asks for payment. 7.Customer pays. System Responsibility 4. Records each sale line item,presents item description and running total. 5.Presents total with taxes calculated. 8.Handles payment. 9 20
이단계에서 UI 관련한상세한부분들은언급하지않는것이 중요하다. A UI-free 유스케이스 간단하고짧다. 액터의목적에더집중할수있다. 짧지만완벽한유스케이스를작성하도록노력하라! 21
유스케이스는시스템의책임을상세히기술해야한다. what the system should do 를기술한다. how the system will implement the solution 의기술은피해야한다. the system records the sale 과같이작성하도록한다. 다음과같은구현관련부분은피한다. 시스템은데이터베이스에판매를기록한다 (bad) 시스템은판매에대한 INSERT SQL 문을생성한다 (worse) 22
유스케이스다이어그램 (use case diagram) 유스케이스과액터의이름및그들간의관계를표현함 시스템컨텍스트를제공함 시스템의경계가어디인지 시스템외부에무엇이있는지보여줌 시스템과액터들의행동을요약해서보여줌으로써좋은의사소통도구가된다. 23
system boundary NextGen POS communication Customer Process Sale Handle Returns Payment Authorization Service alternate notation for a computer system actor actor Cashier <<actor>> 첺 ctor? Tax Calculator Manager Cash In <<actor>> 첺 ctor? Accounting System <<actor>> 첺 ctor? Sales Activity System Analyze Activity <<actor>> 첺 ctor? HR System Manage Security System Administrator Manage Users... use case Figure 6.3: Partial Use Case Context Diagram ( 출처 : UML 과패턴의적용, Craig Larman 저, Pearson Education) 24
유스케이스사이의관계를이용하여유스케이스들을구조화할수있다. 유스케이스사이의관계 일반화 (generalization) 클래스상속과비슷한개념 자식유스케이스는부모유스케이스의행동과의미를상속받음 부모가나오는곳마다자식으로대체할수있음 포함 (include) 다른유스케이스를자신의일부분으로포함하는관계 포함되는유스케이스는독자적인인스턴스를만들지못함 ( 다른유스케이스의부분으로만존재함 ) 확장 (extend) 다른유스케이스를만드는데있어서기본구조를제공하는관계 25
ValidateUser CheckPassword RetinalScan ( 홍채인식 ) <<include>> Transfer 일반화관계 -> 사용자인증은비밀번호검사또는홍채인식중하나로대체가능하다. <<extend>> 포함관계 -> 이체하기는항상사용자검증단계를포함한다. TransferBetween DifferentBanks 확장관계 -> 당행이체유스케이스를확장하여타행이체유스케이스를구현한다 26