UML Report What is UML? How to use UML Tools? On 22 Mar 2013 Team Organization T4 Kim, Sang Yoon 200811411 gdzergling@core-a.org Oh, Na Yun 200814189 brilliantjay@naver.com Lim, Min Woo 200910793 dn3108@gmail.com 1 / 41
Contents 1. Introduction... 4 1.1. What is UML?... 4 1.2. What are UML Components?... 5 1.2.1. 소프트웨어개발방법론... 5 1.2.2. 모델 (Model)... 5 1.2.3. 클래스다이어그램 (Class Diagram)... 5 1.3. What is UML for?... 5 1.4. History of UML... 6 1.5. Example of UML(Unified Modeling Language)... 7 2. Use Case... 12 2.1. What is Use Case?... 12 2.2. What is Use Case Model?... 12 2.3. What is Actor?... 13 2.4. How to find/write Use Case... 14 2.5. What is Use Case for?... 16 2.6. Use Case Diagram With StarUML... 16 2.7. Examples of Use Case Diagram... 28 2.8. 13 tips for Use case... 34 2.8.1. Use Case 만들때, 완벽해하지말고생산적인자세가되어야한다.... 34 2.8.2. Actor 를정의한다.... 34 2.8.3. Primary Use Case 를정의한다... 34 2.8.4. Use Case 의 Reuse( 재사용 ) 될것들을정의한다.... 35 2 / 41
2.8.5. Use Case Index 를만든다.... 36 2.8.6. Use Case 의 Key Components 를정의한다.... 36 2.8.7. Use Case 의설명을작성한다.... 37 2.8.8. Use Case 의기본흐름 (Basic Flow) 을작성한다.... 37 2.8.9. Use Case 의대체흐름 (Alternate Flow) 을작성한다.... 37 2.8.10. Use Case 문서를작성한다.... 37 2.8.11. Use Case Model Diagram 을작성한다.... 37 2.8.12. User Story 가필요하다면작성한다.... 38 2.8.13. Use Case 를바탕으로구현한다.... 38 3. Conclusion... 39 4. References... 40 3 / 41
1. Introduction 1.1. What is UML? - UML(Unified Modeling Language: 통합모델링언어 ) 는소프트웨어공학에서사용되는표준화된범용모델링언어이다. 이표준은 UML을고안한객체관리그룹 (OMG: Object Management Group) 에서관리하고있다. UML은소프트웨어집약시스템의시각적모델을만들기위한도안표기법을포함한다. - UML 은객체지향소프트웨어집약시스템을개발할때산출물을명세화, 시각화, 문서화할 때사용한다. UML 은아래와같은사항을포함하여시스템의구조적청사진을시각화하는 표준안을제공한다. 행위자 (UML) 비즈니스프로세스 ( 논리적 ) 부품 (UML) 행위 (UML) 프로그래밍언어구문 데이터베이스스키마 재사용할수있는소프트웨어부품 - UML은데이터모델링 ( 개체-관계다이어그램 ) 과비즈니스모델링 ( 업무흐름 ), 객체모델링, 부품모델링의최선의기술을조합한다. UML은소프트웨어개발공정뿐만아니라다른구현기술의모든공정에서사용될수있다. UML은 Booch 방법론의객체모델링기법 (OMT) 와객체지향소프트웨어공학 (OOSE) 을광범위하게사용할수있는단일한공통모델링언어로통합한다. UML의목표는동시적분산시스템을모델링하는표준언어다. UML은산업의실질적표준으로서, 객체관리그룹 (OMG) 에의해개선되고있다. 초기에 OMG가엄격한소프트웨어모델링언어를만들기위해객체지향방법론적인통지를요청했고, 많은산업선구자가 UML 표준제작을돕기위해진지하게응답하였다. UML 모델은객체관리그룹이지원하는 QVT와같은변환언어등을이용해다른표현 ( 예를들면자바 ) 으로자동적으로변환된다. UML은확장할수있으며커스터마이제이션을위한메커니즘인프로파일 (UML), 스테레오타입 (UML) 을제공한다. 프로파일을이용한확장의의미는 UML 2.0에서개선되었다. 4 / 41
1.2. What are UML Components? 1.2.1. 소프트웨어개발방법론 - UML 그자체는개발방법이아니지만그당시주도적이었던객체지향소프트웨어개발방법론 ( 예를들면 Booch 방법론, 객체모델링기법, Objectory) 과잘어울리도록설계되었다. UML 발전해감에따라서 UML의장점을취하기위해몇몇다른방법론 ( 예를들면객체모델링기법 ) 이개선되었다. 또 UML을기반으로한새방법론이만들어지기도했는데 IBM 래셔널통합프로세스 (RUP) 가가장유명하다. 이외에도추상방법론 (Abstraction Method), 동적시스템개발방법론등더특수한해결책이나다른목적을달성하기위해설계된 UML 기반의방법론이많이있다. 1.2.2. 모델 (Model) - 모델은이학및공학분야에서상당히유용하게쓰이는개념으로서가장일반적인의미로말하면, " 모델은만들다 " 는것은잘모르고있는것을이해하는데도움이될것으로추측되는어떤것을사용한다는뜻이다. 어떤분야에서는이모델의일련의수식 ( 방정식 ) 의집합으로정의되기도하며, 다른분야에서는컴퓨터시뮬레이션을모델로삼기도한다. UML의여러가지그래픽요소는하나의큰그림, 즉다이어그램을그리는데사용된다. UML 은언어이기때문에, 이들그래픽요소들을맞추는데에는규칙이필요하다. 다이어그램의목적은시스템을여러가지시각에서볼수있는뷰 (View) 를제공하는것이며, 이러한뷰의집합을모델 (Model) 이라고한다. 시스템의 UML 모델은건물을짓는건축가의스케일모델과도비슷하다고말할수있다. UML 모델은시스템자체의 목적행동 을설명하는언어이다. UML 모델은시스템의 구현방법을설명하는수단 이아니다. 1.2.3. 클래스다이어그램 (Class Diagram) - 대부분의사물은자기만의속성과일정한행동수단을지니고있다. 이러한행동을오퍼레이션 (Operation) 의집합으로생각할수있다. UML에서는두단어이상으로이루어진클래스이름은단어사이의공백을없애고, 각단어의처음문자를모두대문자로한다 ( 예 :Wikipedia). 속성과행동의이름또한마찬가지이지만, 가장앞단어의처음문자는소문자로한다 ( 예 :edit()). 1.3. What is UML for? - UML로디자인함에있어서최우선목표는다음과같다. 사용자에게즉시사용가능하고표현력이강한시각적모델링언어를제공함으로써사용자는의미있는모델들을개발하고서로교환할수있다. 핵심적이개념을확장할수있는확장성과특수화방법을제공한다. 특정 5 / 41
개발프로세스와언어에종속되지않는다. 모델링언어를이해하기위한공식적인기초를 제공한다. 객체지향툴시장의성장을장려한다. 콜레버레이션 (Collaboration), 프레임워크 (Framework), 패턴 (Pattern) 과 Component 와같은고수준의개발개념을제공한다. 1.4. History of UML - UML은그래디부치 (Grady Booch), 제임스럼버 (James Rumbaugh), 이바야콥슨 (Ivar Jacobson) 의머리에서태어났다. 최근 쓰리아미고 (Three Amigos-3인방 ) 이라고불리는이세사람은 80년대전반부터 90년대초반까지객체지향분석설계분야에서각자의영역에서방법론을연구해왔었다. 그들이발표한방법론은동일한분야의다른경쟁자들보다항상탁월한위치에있었으며, 세사람은 90년대중반에이르러각자의아이디어를교환하기시작하였고, 결국각자의방법을하나로모아합치기에이른다. 1994년, 럼버는부치가세운래셔널소프트웨어 (Rational Software Corporation) 에영입되었고, 야콥슨은그로부터 1년후에래셔널사에들어가게된다. 나머지는그들이말하듯이, 역사 (History) 라고말할수있다. UML의초안 (draft) 버전은소프트웨어업계를뒤흔들기시작했고, 그결과로돌아온피드백은바로변경점에반영되었다. UML은우리들의전략에딱맞는다 라고인식해가는회사가늘어남에따라그결과로 UML 컨소시엄도발족하게되었다. UML 컨소시엄의멤버로는디지털 (DEC), 휴렛팩커드 (HP), 인텔리캅 (Intellicorp), 마이크로소프트, 오라클, 텍사스인스트루먼트 (Texas Instruments), 래셔널소프트웨어등이있었다. 1997년 UML 컨소시엄은 UML 버전 1.0을만들어내었고, 오브젝트매니지먼트그룹 (OMG:Object Management Group) 이표준모델링언어의제안서를내라는요구에맞추어이것을제출하였다. UML 컨소시엄은계속발전하였으며, OMG에다시상정된 UML 1.1d은 1997년말에표준모델링언어로채택되었다. OMG는 UML의관리기법을받아들여 1998년에새로운수정안을발표하였다. UML은소프트웨어의업계명실상부한표준이되었으며, 계속수정보안되고있다. 버전 1.3과 1.4 그리고 1.5가나와있고, 최근에는버전 2.0이 OMG에의해승인된상태이다. 이전버전들, 즉버전 1.X는현존하는대부분의모델및 UML 모델링책의기본이되어왔다. 6 / 41
1.5. Example of UML(Unified Modeling Language) <Figure1. UML Class Diagram> 7 / 41
<Figure2. UML Use Case Diagram> <Figure3. UML Use Case Diagram> 8 / 41
<Figure4. UML Syntax Reference Poster> 9 / 41
<Figure 5. UML Example> 10 / 41
<Figure 6. UML Example>. 11 / 41
2. Use Case 2.1. What is Use Case? - Use Case는우리말로쓰임새라고한다. Use-Case는말그대로 ' 쓰이는경우 ' 혹은 ' 용도 ' 같은의미로받아들여도큰무리가없다고보여진다. 즉, 어떤일에쓰느냐하는것을의미한다. 시스템이쓰여지는용도를모아서시스템을만들어낸다면다용도시스템이만들어진다. 이처럼 Use-Case들을모아서시스템으로연결시키는것을개발과정의간단한정의로보아도무리가없을만큼 Use-Case는가치있는것이다. Use-Case 사용자시각에맞춘분석이다. - 어떤시스템을만드느냐를사용자입장에서조망하는것이라고할수있다. Use-Case 시스 템보다는그것을사용하는인간, 즉사용자의입장을우선해서시스템이어떠해야하는가 를알아보는것이다. Use-Case 는시스템의행위를결정하는것이다. - 구체적으로는시스템의기능을정의하고, 범위를결정함으로써시스템과외부환경변수를 구분하고, 상호관계를정립하는것이라고볼수있습니다. 2.2. What is Use Case Model? - Use-Case 를나타내는 Use-Case 모델 (Model) 은 Use-Case Diagram 으로표현된다. Use-Case 다이어그램은액터 (Actor, 행위자 ), Use-Case, 그리고관계 (Relationship) 로나타난다. 12 / 41
- 위의 Use-Case 다이어그램은온라인으로수강신청을하는시스템의일부를나타낸것이다. 위다이어그램에서액터는학생과은행시스템이고, Use-Case는수강신청이다. 화살표는액터와 Use-Case간의관계를나타낸것인데, 위의예제에서는단방향으로의관계만나타내고있다. 위의다이어그램은학생이웹에접속해서수강신청을하면, 그정보가은행시스템에입력이되는과정을나타내고있다. - Use Case Model 의기본구성요소 (1) 액터 시스템과교류하는사람이나사물을말한다. (2) 유스케이스 시스템이액터를위해서수행하는가치있는일을말한다. (3) 유스케이스설명 기본흐름 : 사건흐름에서가장중요한부분으로서유스케이스목적을달성하는정상적인방 법을설명한다. 대안흐름 : 기본흐름에더하여다양하고변칙적인, 그리고예외적인경로들을설명한다. 서브흐름 : 원래흐름중에서따로떼어낸것으로서복잡한사건흐름을읽기쉽게만든다. 이는이름을붙인독자적인미니흐름으로서, 원래흐름자리에는서브흐름의이름을참조 할수있도록삽입하는것으로대신한다. 선조건 : 유스케이스를시작할당시시스템과액터의상태를표현 후조건 : 유스케이스를종료할때시스템상태를표현 2.3. What is Actor? - 액터는시스템의일부가아니다. 액터는시스템과상호작용을하는모든것들을나타낸다. 시스템을사용하게될사람은물론이고, 연관된다른시스템도액터이다. 액터는다이어그램상에서막대인간으로표현된다. 대체로액터의행위는정보의입력과출력으로살펴볼수있다. 정보를입력하거나출력하는액터가있고, 입출력을모두행하는액터가있을것 13 / 41
이다. 액터를뽑아내는일은매우중요한일입니다. 모든주요액터를고려해야만모두에게 가치있는시스템이될수있다. 다음과같은질문들이요구사항분석에서액터를뽑아내는 데도움을준다. 특정요구사항에이해관계자는누구인가? 어떠한부서나집단에서시스템을사용하는가? 시스템을사용함으로써이익을얻는이는누구인가? 누가시스템에정보를입력하고사용하고삭제하는가? 누가시스템의유지보수를수행하는가? 시스템이외부자원을사용하는가? 한사람이복수의역할을수행하는가? 여러사람이한가지역할을수행하는가? 시스템이기존시스템 (legacy system) 과상호작용하는가? 2.4. How to find/write Use Case 유스케이스와액터는서로긴밀하게연결되어있다고생각해야한다. 시스템은액터에게가치를 제공하기위하여존재하고, 유스케이스는시스템이그가치를어떻게제공하는지설명한다. (1) 액터의목적을식별하는것부터시작한다. (2) 시스템과사용자의정보요구를고려한다. (3) 같은내용이반복되는현상에신경쓰지않는다 ( 적어도처음에는 ) (4) 유스케이스를 ' 기능 ' 과혼동하지않는다. 14 / 41
(5) 가치에초점을맞춘다. (6) 시스템비전에서유스케이스를찾아낸다. (7) 지원유스케이스와운영유스케이스도잊지않는다. (8) 액터와부속명세서와함께유스케이스집합을진화시킨다. 아래는유스케이스를식별할때물어볼수있는질문들을요약한것이다 - 시스템이식별한각액터에게제공해야할목적은무엇인가? - 액터가시스템에게알려야할갑작스러운외부변화가있는가? - 식별한유스케이스들을가지고모든시스템특징을수행할수있는가? - 어떤유스케이스가시스템을시작, 종료, 조정지원, 유지할수있는가? - 시스템에서수정하거나생성할정보는무엇인가? - 시스템이알아야할사건에는어떤것들이있나? - 시스템이추적해서액터에게알려야할사건에는어떤것들이있나? - 유스케이스모델이모든이해당사자의이해를대변하는가? 15 / 41
2.5. What is Use Case for? - 유스케이스다이어그램은시스템요구사항을유스케이스용어로설명하는모형이다. 유스케이스다이어그램은다음과같은목적을가진다. 시스템의의도된기능및환경모형으로고객과개발자사이의합의및시스템개발전반에걸쳐줄거리를통합하는데도움을준다. 고객또는최종사용자에게시스템행위를전달한다. 결론적으로이해하기쉬워야한다. 사용자및시스템과교류하는타시스템은액터이다. 그들은시스템사용자를대표하기때문에액터는시스템의범위를정하는데도움을주고예정된일에대한명확한상황을제공한다. 유스케이스는액터의요구를기반으로개발된다. 이것은사용자가기대하는시스템이될수있도록한다. 2.6. Use Case Diagram With StarUML - Use-Case 다이어그램에서편집할수있는요소들은다음과같다. Actor UseCase Association Derected Association Generalization Dependency Include Extend System Boundary Package - Actor 의미 : 액터 (Actor) 는일반적으로시스템외부에존재하면서시스템과상호작용하 는개체다. 액터는사람이거나기계혹은소프트웨어등이될수있다. 생성방법 : Actor 를생성하려면, Toolbox>UseCase 의 Actor 버튼을클릭하고 Main 윈도우창에서 Actor 가위치할곳을클릭합니다. Actor 는 Stick Man 형태로 16 / 41
표현되지만, 사각형모양에오른쪽상단에아이콘이포함된 Decoration View 형태로사용되기도합니다. Actor를 Decoration View 형태로보여지도록하기위해서는 [Format] -> [Stereotype Display] -> [Decoration] 메뉴아이템을선택하거나툴바의버튼에서 [] 콤보버튼의 [Decoration] 항목을선택합니다. Actor 가사용하는 UseCase 를한번에여러개생성하는방법 : (1) Actor 를더블클릭해서퀵다이얼로그가나타나면, 퀵다이얼로그에서 "-()" 문 자열다음에생성하려는 UseCase 의이름을입력합니다. 각 UseCase 이름은 "," 문자로구분해서입력합니다. (2) 그리고 [Enter] 키를누르면 Actor 와연관관계를가지는여러개의 UseCase 가 수직으로자동배열되어생성됩니다. 17 / 41
- Use Case Use-Case를생성하는방법 : UseCase를생성하려면, [Toolbox] -> [UseCase] -> [UseCase] 버튼을클릭하고 Main 윈도우창에서 UseCase가위치할곳을클릭합니다. UseCase는 Textual, Decoration, Iconic의 3가지형태로표현가능합니다. [Format] -> [Stereotype Display] 의하부메뉴아이템을선택하거나 [ ] 버튼의아이템을선택하면, UseCase의스타일을변경할수있습니다. Extension 추가하는방법 : 확장점은유스케이스에서확장되어지는하나또는여 러개의위치를참조한다. 18 / 41
UseCase 에 ExtensionPoints 를입력하려면 UseCase 의 [Collection Editor...] 팝업 메뉴를클릭하거나 UseCase 의 ExtensionPoints 컬랙션속성의버튼을클릭해서 [Collection Editor] 에서값을수정합니다. UseCase Specification 속성입력방법 : UseCase 작성시많이사용되는속성들인 BasicFlow, AlternativeFlow 등을입력하기위해서는 [Tagged Values...] 팝업메뉴를 선택하거나 Ctrl+F7 버튼을클릭하여 Tagged Value Editor 의 UseCaseSpecification 을선택하여필요한속성의값을입력합니다. 19 / 41
UseCase 로부터 Actor 생성하는방법 : 현재선택된 UseCase 와연관관계를가지 는 Actor 여러개를한꺼번에만들려면 UseCase 의단축생성구문을사용합니다. (1) UseCase 를더블클릭하거나 UseCase 를선택하고 [Enter] 키를누른다. Quick Dialog 가나타나면, Quick Dialog 에서 "()-" 문자열다음에연관된 Actor 의이 름을입력합니다. 각 Actor 이름은 "," 문자로구분해서입력합니다. (2) 그리고 [Enter] 키를누르면 UseCase 와연관관계를가지는 Actor 들이생성됩 니다. - Association / Derected Association 의미 : 연관 (Association) 은클래스류 (Class, Interface, Enumeration, Signal, Exception, Component, Node, UseCase, Actor) 사이의의미적관계를정의합니다. 20 / 41
Association 생성하는방법 : Association 를생성하려면, [Toolbox] -> [UseCase] -> [Association] 버튼을클릭하고 Main 윈도우창에서연결하려는첫번째요소에서 두번째요소로마우스를누르고드래그하면됩니다. DirectedAssociation 생성하는방법 : Association 생성방법과동일하며, 두요소간 마우스드래그를화살표방향으로합니다. 또는 Association 을생성하고 Actor 쪽 assocation 의끝을클릭하고 Quick Dialog 의 Navigable 의체크를취소하면 DirectedAssociation 으로변합니다. 요소로부터 Association/Directed Associatiopn 관계의요소생성하는방법 : 현재 선택된요소로부터 Assocation/DirectedAssociation 관계를갖는요소를만들려 면요소의단축생성구문을사용합니다. 21 / 41
(1) 요소를더블클릭해서 Quick Dialog가나타나면, Quick Dialog에서 "--" 또는 "->" 문자열다음에 Association/DirectedAssociation 관계를갖는다른요소의이름을입력합니다. 여러개의요소와관계를맺기위해서는각요소이름은 "," 문자로구분해서입력합니다. (2) 그리고 [Enter] 키를누르면선택된요소와 Association/DirectedAssociation 연관관계를가지는여러요소들이생성되고자동배열되어생성됩니다. - Generalization 의미 : 일반화 (Generalization)"> 일반화 (Generalization) 는더일반적인요소와더 구체적인요소를연결하는관계입니다. 22 / 41
Generalization 생성하는방법 : Procedure for creating generalization Generalization를생성하려면, [Toolbox] -> [UseCase] ->[Generalization] 버튼을클릭하고 Main 윈도우창에서연결하려는자식요소에서부모요소로마우스를누르고드래그하면됩니다. Actor 를상속하는여러개의자식 Actor 생성하는방법 : (1) 특정요소를상속하는하위요소가여러개일경우에 Quick Dialog 의단축 생성구문에서다음과같이입력하면현재요소를상속하는여러개의하위 요소를한꺼번에생성합니다. (2) 하위요소들은선택된요소의아래에생성되면서정렬됩니다. 23 / 41
만약상속할상위요소가여러개인경우에는 Quick Dialog 의단축생성구문에 서 "<=" 대신에 "=>" 문자열을사용한다. - Dependency 의미 : 의존관계 (Dependency)"> 의존관계 (Dependency) 는어떤요소의구현이나 기능을위해다른요소의존재가요구되어지는의존적인관계를의미합니다. Dependency 생성방법 : Dependency 를생성하려면, [Toolbox] -> [UseCase] - >[Dependency] 버튼을클릭하고 Main 윈도우창에서요소에서의존하는요소 로마우스를누르고드래그하면됩니다. UseCase 로부터의존하는다른 UseCase 생성하는방법 : 퀵다이어로그의단축생성구문을다음과같이입력하면됩니다. 그러면다음과같이두요소간의 Dependency 가생성됩니다. - Include( 포함 ) 의미 : 포함관계 (Include) 는어떤유스케이스가특정유스케이스의행위를포함한 다는것을정의합니다. 24 / 41
Include 생성방법 : Include 를생성하려면, [Toolbox] -> [UseCase] -> [Include] 버 튼을클릭하고 Main 윈도우창에서요소에서포함할요소로마우스를누르고드 래그하면됩니다. UseCase 로부터 Include 관계의다른 UseCase 생성하는방법 : 퀵다이어로그의단축생성구문을다음과같이입력하면됩니다. - Extend 의미 : 확장관계 (Extend)"> 확장관계 (Extend) 는어떤유스케이스가특정유스케이스 에정의된행위로추가확장될수있다는것을나타냅니다. Extend 생성방법 : Extend 를생성하려면, [Toolbox] -> [UseCase] -> [Extend] 버튼 을클릭하고 Main 윈도우창에서요소에서확장할요소로마우스를누르고드래 그하면됩니다. 25 / 41
UseCase 로부터 Extend 관계의다른 UseCase 생성하는방법 : 퀵다이어로그의단축생성구문을다음과같이입력하면됩니다. - System Boundary 생성하는방법 : System Boundary를생성하려면, [Toolbox] -> [UseCase] -> [System Boundary] 의 System Boundary 버튼을클릭하고 Main 윈도우창에서 System Boundary가삽입될위치에마우스를클릭하고생성될크기만큼을드래그합니다. 26 / 41
- Package 의미 : 패키지 (Package) 는모델요소들을논리적으로그룹화하여관리하기위한 요소입니다. 패키지는요소들을조직화하기위한어떠한용도로사용되어도무 방한매우일반적인요소입니다. 패키지대신모델 (Model), 서브시스템 (Subsystem) 의더욱특수화된요소를사용할수도있습니다. Package 생성하는방법 : Package 를생성하려면, [Toolbox] -> [UseCase] -> [Package] 버튼을클릭하고 Main 윈도우창에서 Package 가위치할곳을클릭합 니다. 27 / 41
2.7. Examples of Use Case Diagram <Figure 7. Use Case Diagram> 28 / 41
<Figure 8. Use Case Diagram> 29 / 41
<Figure 9. Use Case Diagram> 30 / 41
<Figure 10. Use Case Diagram> 31 / 41
<Figure 11. Use Case Diagram> 32 / 41
<Figure 12. Use Case Diagram> 33 / 41
2.8. 13 tips for Use case 2.8.1. Use Case 만들때, 완벽해하지말고생산적인자세가되어야한다. - Be Agile! 실수를두려워하지말고가능한많은, Use Case 작성에주저함이없어야한다. 많은설계자, 혹은제안자들은 Use Case 초기작성단계에서부터너무완벽 (Perfect) 하려고만하는경향이있는데이는 Use Case 작성에비효율적이다. 가능한모든경우를생각하여도안에그려낸후, 실경우에적용하여비교대조한다. 2.8.2. Actor 를정의한다. - Actor 의정의는문서상단에정의해두었으며, Use Case 정의에있어가장중요한부분이 다. 해당소프트웨어혹은시스템을누가이용하는지, 어떤 Actor 에의해연산되고프로세 싱되는지명확히정해져야 Use Case 설계에큰효과를줄수있다. 2.8.3. Primary Use Case 를정의한다. - Use Case 중가장주요한, 혹은주된액션이되는 Use Case 를정의한다. 이를정의하는것 은 Rainy Day 라고도하며이를정의하여큰도안을확보한다. 34 / 41
2.8.4. Use Case 의 Reuse( 재사용 ) 될것들을정의한다. Use Case 는재사용혹은여러번사용되야할경우가많기에이를미리명확히해두어야만 Use Case 작성에큰도움을준다. 35 / 41
2.8.5. Use Case Index 를만든다. 2.8.6. Use Case 의 Key Components 를정의한다. 36 / 41
2.8.7. Use Case 의설명을작성한다. Use Case Number 1 Use Case Name Buyer Places a Bid Description An EBAY buyer has identified an item they wish to buy, so they will place a bid for an item with the intent of winning the auction and paying for the item. 2.8.8. Use Case 의기본흐름 (Basic Flow) 을작성한다. 2.8.9. Use Case 의대체흐름 (Alternate Flow) 을작성한다. 2.8.10. Use Case 문서를작성한다. 2.8.11. Use Case Model Diagram 을작성한다. 37 / 41
2.8.12. User Story 가필요하다면작성한다. - Use Story 란, 간단하게사용자입장에서시스템을이용할때쓰는일종의시나리오 ( 각본 ) 이 다. 도면만보고는사용자가어떤액션 ( 동작 ) 을취해서시스템혹은소프트웨어를이용할지 명확하지않으므로간단한시나리오를작성하는것을의미한다. 2.8.13. Use Case 를바탕으로구현한다. 38 / 41
3. Conclusion - UML(Unified Modeling Language) 는객체지향시스템혹은소프트웨어제작시반드시필요한도식화모델이자도구이다. 본언어로쉽게도식화를시키려면필요한소프트웨어들이많은데 StarUML을추천하는바이다. 본문서 2. Use Case 부분에 With StarUML 항목이존재한다. - 소프트웨어모델링및분석수업에서처음으로 UML 을사용하여소프트웨어를모델링하게되었는데 UML 에대한전반적인개념과이해는본문서에모두포함시켜놓았다. 나아가실무에반드시적용할수있고학문적인발전에있어서도반드시필요한부분이라생각한다. - 소프트웨어를구현개발하는것도아무리강조해도지나치지않을만큼중요하다. 하지만그이전에앞서소프트웨어나시스템을모델링, 즉설계하는부분에있어서는소프트웨어공학개발방법론에의거하여 UML 을사용하여도식화, 혹은설계하는것에초점을둔이번수업에깊은발전의뜻이있길바란다. 39 / 41
4. References - Wikipedia, Unified Modeling Language, http://en.wikipedia.org/wiki/unified_modeling_language - Daum Blog, Objective of UML http://blog.daum.net/nanhjb/2390920 - Wikipedia, Use Case Diagram http://en.wikipedia.org/wiki/use_case_diagram - Wikipedia, Use Case http://en.wikipedia.org/wiki/use_case - UML Image, Oracle http://docs.oracle.com/cd/e21764_01/doc.1111/e15866/img/run_uml3.gif - Wikispace, UML Use Case Diagram http://cct355-f07.wikispaces.com/file/view/uml_use-case-diagram.gif/31642357/uml_usecase-diagram.gif - Pacestar, UML Use Case Diagram http://www.pacestar.com/uml/smp_use.jpg - Claudiodesio, UML Syntax Reference Poster http://www.claudiodesio.com/ooa&d/umlposter/umlposter.jpg - Personal tistory Blog, What is Use Case? http://gisulsa.tistory.com/234 - SoureceForge, Use Case Diagram Modeling http://staruml.sourceforge.net/docs/user-guide(ko)/ch05_1.html - GatherSpace, Tip13 for Use Case http://www.gatherspace.com/static/use_case_example.html#13 - http://www.comscigate.com/tutorial/kjellstyle/omarkhan/chapter%203/uml%20use%20case s.jpg - http://uwe.pst.ifi.lmu.de/examples/hospinfo/diagrams/use_case_diagram Requirements Re 40 / 41
quirements.png - http://coreyleong.files.wordpress.com/2010/01/100105_real_estate_project_mgmt_use_cases_4 70x5881.png?w=632 - http://i.msdn.microsoft.com/dynimg/ic119797.gif - http://www.emeraldinsight.com/content_images/fig/2630270112001.png - http://www.businessanalystfaq.com/blog/wp-content/uploads/2011/02/use-case-diagramexample1.jpg - 41 / 41