Software Modeling & Analysis 소프트웨어모델링및분석 보고서 #1 Team. T1 201111388 조연호 201211374 이창오 201211379 장종훈 201314196 양동혁
목차 1. 개요... 3 2. 소개... 3 A. 배경... 3 B. 목적... 3 C. 특징... 4 D. 용도... 4 3. 구성요소... 6 A. 사물 (Element)... 6 B. 관계 (Relationship)...10 C. 다이어그램 (Diagram)...12 4. 발전... 17 A. UML 1.0 의한계...17 B. UML 2.0 으로의발전...18 C. UML 2.0 의특징... 20 D. UML 2.0 의효과적활용방안...23 5. UML 툴... 23 A. StarUML...23 B. AmaterasUML... 25 C. MS Visio... 27 D. Umbrello... 29 6. 레퍼런스... 30-2 -
1. 개요 UML(Unified Modeling Language) 은시스템디자인을시각화하는표준화된방법을제공하기위한소프트웨어공학분야의모델링언어이다. 객체관련표준화기구인 OMG에서 1997년 11월객체모델링기술 (OMT; Object Modeling Technique), OOSE 방법론등을연합하여만든통합모델링언어로객체지향적분석 설계방법론의표준지정을목표로하고있다. 요구분석, 시스템설계, 시스템구현등의과정에서생길수있는개발자간의의사소통의불일치를해소할수있다. 모델링에대한표현력이강하고비교적모순이적은논리적인표기법 (Notation) 을가진언어라는장점이있다. 따라서개발자간의의사소통이쉬워지며생략되거나불일치하는모델링구조에대한지적도용이하고, 개발하려는시스템규모에상관없이모두적용가능하다. 유스케이스다이어그램 (Use Case Diagram), 클래스다이어그램 (Class Diagram) 등 8개의다이어그램을기반으로객체지향소프트웨어를개발하기위한풍부한분석및설계장치를제공하고있어향후상당기간동안산업계의표준으로활용될것이라예상된다. UML을가장잘적용할수있는소프트웨어개발프로세스는 1998년 11월미국래셔널 (Rational) 사에서개발한통합프로세스 (Unified Process) 5.0이다. 이프로세스는웹애플리케이션 (Web Application) 개발에효율적이고개발팀의생산성을극대화하며 UML의장점을최대한살릴수있도록고안된실무형개발프로세스이다. 2. 소개 A. 배경 UML은 Grady Booch의방법론과 James Rumbaugh의 OMT(Object-Modeling Technique), Ivar Jacobson의 OOSE(Object-Oriented Software Engineering) 의표기법에기초하였으며후에하나의언어로통합되었다. 1994년 Booch가세운 Rational Software Corporation에 Rumbaugh가합류하고, 1년후 Jacobson이합류하면서이들의연구는하나로결집되어 UML 드래프트버전이탄생하였다. 이들은 UML을 OMG(Object Management Group) 에표준화제정을위해 HP, DEC, IBM, Microsoft 등유수의멤버로결성된 UML 컨소시엄을발족하였다. 1997년 UML 컨소시엄은 UML 버전 1.0을만들어내고이를 OMG에제출하여그해말에 OMG는이를수정한 UML 1.1을표준모델링언어로채택하게된다. B. 목적기존의객체지향방법론과함께제안되어모델링언어표기법의표준화를하기위함이다. - 3 -
C. 특징 i. 가시화언어 UML은각심볼 (Symbol) 에명확한저의가존재하여개념모델작성에있어서오류없이전달이가능하다. 또한개발자들사이원활한의사소통이가능한그래픽언어이다. ii. 명세화언어 명세화란정확하고명백하며완전한모델을만드는것을의미한다. UML 은소 프트웨어개발과정인분석, 설계, 구현단계의각과정에서필요한모델을명세 화할수있는언어이다. iii. 구축언어 UML 로명세화된설계모델은 JAVA, C++, VB 등다양한언어의소스코드로변 환하여구축할수있다. 반대로구축되어있는소스코드를 UML 로변환하여분석 하는역공학도가능하다. iv. 문서화언어 UML 은시스템아키텍처 (Architecture) 와이에대한모든상세내역에대한문 서화를다루며, 요구사항을표현하고시스템을테스트하는언어도제공한다. D. 용도실제시스템개발의현장에서는 UML 을주로 3 가지의용도로쓰이는경우가많다. i. 모델링 무엇을만들까? 를의식해유저의요건을묻기위해서모델링이라고하는기법을사용해시스템의전체상을그리는작업을하는일이있다. 이작업을실시하는사람을 모델러 라고부르고모델링에의해서작성하는그림을 개념모델 이라고부른다. 개념모델자체는어떠한표현을해도상관없지만, 일반적으로는 UML 의클래스다이어그램을사용하는경우가많다. 그이유중하나는설계자가이해하기쉽기때문이다. 또클래스다이어그램의읽는법이몇가지는결정되어있긴하지만, 기억할것은많지않다. 직감적으로판단할수있기때문에 UML 에익숙하지않은유저도이해하기쉬어서개념모델 (Class Diagram) 에대한평가는대체로높다. 전체상을시각적으로이해할수있어유저자신이깨닫지못했던과제도발견할수있다는장점이있다. - 4 -
ii. 설계 요건정의국면에 UML 을사용해작성한그림은설계에서보다구체화된다. 예를들면, 개념모델 (Class Diagram) 이나 State Machine Diagram 으로부터데이터베이스의논리설계를행하거나실제이미지에접근하기위해서클래스의상세화를한다. 설계에서 Class Diagram 을사용하는가장큰장점은클래스간인터페이스를빠른단계에서명확하게할수있는점이다. 설계에서쓰는 Class Diagram 에는클래스의속성이나관계뿐만아니라조작도나타내게되어있다. 덧붙여설계시에 Class Diagram 이나순서도등을만드는것은필수가아니고, 비교적소규모의시스템으로개발멤버사이에미리설계방법이공유되어있는경우에는, 필요에따라서코딩제의프로그램으로부터역공학하여 Class Diagram 등을작성해, 설계서를나중에작성하기도한다. 역공학기능은, 이후설명하는툴로지원되고있다. iii. 프로그래밍 실행환경에의존하지않는 UML 모델로부터툴을사용해실제로움직이는프로그램으로변환하는기술을 MDA(Model Driven Architecture) 라고부른다. MDA 에준거하면, 모델링 설계 프로그래밍으로의변환을모두 UML 만으로할수있게된다. 그러나실제현장에서는 MDA 는거의보급되어있지않고, 변함없이프로그래머가설계서를보면서손으로코딩을하는스타일이여전히계속되고있다. 현시점에서는툴자체가지원하고있는기술이미성숙하기때문에실제현장에서 MDA 가적극적으로사용되지않고있다. - 5 -
3. 구성요소 A. 사물 (Element) 사물 (Element) 은추상적개념으로모형구성의기본요소이다. i. 구성요소 1. 구조사물 (Structural Element) 구조사물 (Structural Element) 은모형의명사형으로정적인부분이다. 개념적이거나물리적요소를표현한다. - 6 -
Class Class 는같은종류의객체집합으로, 그특성을표현한다. Interface Interface 는클래스나컴포넌트의서비스를명세하기위한것으로, Operation 의집합이다. Communication Communication 은교류를정의하며, 서로다른요소와역할들의집합 이다. Use Case 다. Use Case 는시스템이수행하는활동들을순차적으로기술하여표현한 - 7 -
Component Component 는시스템의물리적이고대체가능한부분이다. 서로다른 논리요소를물리적으로패키지화한것이다. Active Class Active Class는동작상태와활동상태로두가지가존재한다. 동작상태는더이상분할되지않지만, 활동상태는다른제어흐름을가지는활동또는동작상태로분해가가능하다. Node Node는실행할때에존재하는물리적요소이다. 2. 행위사물 (Behavioral Element) 행위사물 (Behavioral Element) 은모델의동사형으로동적인부분을뜻한다. 시간과공간에따른행동요소를표현한다. Interaction Interaction 은어떠한목적을위해객체들간주고받은메시지로구성 된다. - 8 -
State Machine State Machine은상태의순서를지정하는행동이다. 3. 그룹사물 (Grouping Element) 그룹사물 (Grouping Element) 은 UML 모형을조직하는부분으로, 모델을분해하여재구성화할수있는단위상자이다. Package Package는요소를그룹으로묶는역할을한다. 4. 주해사물 (Annotation Element) 주해사물 (Annotation Element) 은 UML 모형을설명하는부분이다. Comment로모형요소를설명하고표현하는도구이다. Note Note 는제약과주석을나타내기위해사용된다. - 9 -
B. 관계 (Relationship) 관계 (Relationship) 은구성요소간의의미있는연결이다. i. 구성요소 1. 의존관계 (Dependency) 의존관계 (Dependency) 는두사물간의의미적인관계로, 한쪽사물의변화가다른사물에영향을주는관계를뜻한다. 2. 연관관계 (Association) 연관관계 (Association) 는객체간연결의집합이다. 집단연관관계를표현한다. 이름 역할 이름은관계의의미를설명하기위해사용된다. 역할은클래스가연관에참여하면그것이수행해야하는특별한역할 을의미한다. - 10 -
다중성 다중성은한연관에참여하는하나의객체에몇개의객체가연결되 었는지일컫는다. 집합연관 집합연관은전체 - 부분관계로, 전체는부분을참조한다. 이들은서로 독립적으로생성및소멸된다. 복합연관 복합연관은전체 - 부분관계로, 전체는부분을포함한다. 부분은생성 및소멸을전체와함께한다. 3. 일반화관계 (Generalization) 일반화관계 (Generalization) 는일반화된사물과특수화된사물사이의관 계 (is-a-kind-of 관계 ) 이다. - 11 -
4. 실체화관계 (Realization) 실체화관계 (Realization) 는객체들사이의의미적관계로, 한객체가다른 객체의계약을지정한다. 실체화의간단한표현은아래의그림과같다. C. 다이어그램 (Diagram) 다이어그램 (Diagram) 은구성요소들의그래픽표현이다. i. 구성요소 1. 정적다이어그램 (Structure Diagram) Class Diagram Class Diagram 은클래스와인터페이스, 통신그리고이들의관계를나 타낸다. 또한시스템의정적설계 View 를다룬다. - 12 -
Component Diagram Component Diagram 은컴포넌트사이의구성과의존을나타낸다. Object Diagram Object Diagram 은객체와객체들사이의관계를나타낸다. 또한특정 시점의객체들의구조적상태를표현한다. 표기법은아래의그림과같다. - 13 -
Deployment Diagram Deployment Diagram 은시스템을구성하는노드와그노드에있는 컴포넌트를구성한다. Composite Structure Diagram Composite Structure Diagram 은컴포넌트의내부구조를표현한다. - 14 -
Package Diagram Package Diagram은다이어그램의요소를조직화하여패키지형태로나타낸다. 2. 동적다이어그램 (Behavior Diagram) Activity Diagram Activity Diagram 은시스템내부에있는활동의흐름을표현한다. - 15 -
Use Case Diagram 다. Use Case Diagram 은 Use Case 와행위자의관계를구조적으로나타낸 State Machine Diagram State Machine Diagram 은오브젝트의상태변화를표현한다. Interaction Diagram - 16 -
3. 교류다이어그램 (Interaction Diagram) Sequence Diagram Sequence Diagram은시스템외부이벤트를처리하기위하여시스템내부객체간주고받는동적메시지를시간흐름에따라표현한다. Communication Diagram Communication Diagram은 Sequence Diagram과동일한내용을객체상호관계의관점에서표현한다. Interaction Overview Diagram Interaction Overview Diagram은객체사이에시간의흐름을갖는메시지가존재한다면몇몇 Sequence Diagram과 Communication Diagram 으로바꿔야하는것을나타낸다. Timing Diagram Timing Diagram은객체, 컴포넌트간의상태변화, 메시지에대한정확한시간정보를표현한다. 4. 발전 A. UML 1.0의한계객체지향모델링과더불어널리사용하게된모델링언어인 UML 1.0은사용범위가넓어지면서여러가지한계를드러냈다. 문제로지적된것은크기가지나치게크고, 복잡하며, 의미 (Semantics) 가명확하지않고, 구현과관련된부분이부족하여커스터마이징 (Customizing) 이제한되어있다는것등이다. 뿐만아니라컴포넌트기반의개발방법을제대로지원하기어렵고, 모델다이어그램을교환할방법이없다는것도또다른문제점으로지적되고있다. i. 복잡성 UML 1.0이지나치게크고복잡하다는것은이미오래전부터언급되던것이다. 크고복잡하면배우기어렵고, 적용이나구현에있어서접근성에영향을미치기때문에이를간소화하는것은매우중요한이슈가된다. ii. 낮은이해성 UML 규격의의미 (Semantics) 나표기법 (Notation) 의상세내용에대해이를정확하게이해하기어렵다는것도중요한문제이다. 의외로많은 UML 사용자가 UML의의미 (Semantics) 를제대로이해하지못하고있으며, 여기에따른문제로어려움을겪는다. - 17 -
iii. 낮은간결성 UML의크기를줄이는가장좋은시작점은언어자체를정확하고간결하게정의하는것이다. 이렇게함으로써 UML은쉽게배울수있고, 구현하기도쉬워질것이다. 그리고벤더나사용자에의해언어를쉽게커스터마이징 (Customization) 할수있게함으로써서로다른도메인 ( 예를들어금융서비스, 보건의료, 통신등 ) 과서로다른플랫폼 (J2EE,.NET, CORBA) 에효과적으로대처할수있도록변형될수있다. 간결하고명확한언어는 UML 구현이규격에부합되도록하는데도일조할것이다. 사실 UML 1.1이 1997년에채택되었지만, UML 언어의전체규격을아직도완벽하게구현하지못하고있다. iv. 컴포넌트개념미지원 컴포넌트기반개발을지원하는컴포넌트의개념이지원되지않는다. 현재의개발프로세스의변화추이에따라이를위한컴포넌트패러다임의지원이필요하다. v. 모델교환미지원지금까지는 Vendor들사이의모델교환이이루어지지않았다. 때문에실질적으로서로다른모델링도구들사이의모델을효과적으로공유하는것은사실상불가능하다. vi. 아키텍처 (Architecture) 설계미지원 아키텍처 (Architecture) 설계를위한다이어그램이제공되지않는다. 때문에 Package Diagram 이나 Class Diagram 을변형해서사용할수밖에없다. vii. 모델 - 코드간불일치성 실질적으로모델의 Behavior 부분을기술할수없었기때문에모델과코드가일치하지않는경우가많으며, 이를해결하기위해 Round-Trip Engineering은잘적용되지않고있다. B. UML 2.0으로의발전 i. Composite Structures를통한 Component-based Development4 지원 Structured Classifiers(Classes, Components) 는 Parts, Ports, Connectors를통해서계층적으로분해되고결합될수있다. 이는 SDL(Specification & Description Language) 의 Block Diagram과유사한방법으로작성된다. - 18 -
ii. Structure 와 Behavior 의계층적분해지원 Structural Constructs 인 Classes 와 Components 뿐만아니라 Interactions, State Machines, Activities 와같은주요 Behavioral Constructs 의계층적분해도지원한 다. iii. Structure 와 Behavior 의 Cross4 integration Class 의내부구조를보여주기위하여 Composite Structure Diagram 에서사용 된동일한 Parts 는내부 Structures 가서로 Communicate 하는방법을보여주기 위해 Sequence Diagram 에서사용될수있다. iv. Interaction 의향상된표현 기존의 MSC(Message Sequence Chart) 의개념을받아들여 Sequence Diagram 에매우향상된 Semantics을제공한다. v. State Diagram의향상된표현기존의 State Diagram에 Inheritance 기능등여러요소의추가뿐만아니라 SDL의 Syntax를가져와서 Transition-Oriented State Machine Diagram을제공한다. vi. Behavioral Constructs 를갖는 Action Semantics 의통합 UML Actions 은 Simulation 과 Code Generation 을위한실행가능한모델을정 의할수있도록 Programming Language 의 Actions 처럼상세히정의될수있다. vii. 점증적구현과 Compliance Testing 을편리하게하기위한 Layered Architecture UML 2.0 Packages 는 Vendor 들이표준을보다효과적으로보다편리하게구현 할수있도록하기위해 3 개의 Layers(Basic, Intermediate, Complete) 로구성된다. viii. Fully Design Systems UML 2.0은전체시스템을디자인하는것을가능하게한다. UML 2.0을사용해서 Architecture, Data, Interaction, Behavior를기술할수있다. 이것은시스템모델로부터완전한코드를생성해낼수있게해준다. UML 2.0을사용하여요구사항을기술하는것도가능하다. - 19 -
C. UML 2.0 의특징 i. 관계표현 1. Association 클래스간에표현되는개념적관계로객체간연결을나타내는구조적관계를표현한다. 각각클래스마다 Role Name 및 Association Name 표시가가능하다. Association 중 Whole/Part 관계를표현하는것으로 Aggregation 과 Composition 이있다. 2. Aggregation Whole 클래스가하나이상의 Part 클래스로구성되는경우 Whole 과 Part 간의생명주기관계가없다. - 20 -
3. Composition Whole 클래스의객체가없어질때, Part 클래스의객체도함께없어진다. (Whole과 Part의생명주기가같다 ) Part 단독으로존재하는것은의미가없으며, Part 클래스의 Instance는다른 Whole 클래스에공유될수없다. ii. 표준의구성 4개의 UML 명세는메타모델로작성되어있고개념이까다롭기때문에제대로파악하는일은매우어렵다. UML로작성된산출물을이해하거나 UML을이용하여산출물을작성하기위해서는상부구조의각종다이어그램의요소를파악하고다이어그램을이해하는정도로충분하다. Part 설명상부구조 (Superstructure) 13개의다이어그램과그다이어그램에등장하는요소들에대한명세 ( 행위형다이어그램 ) 하부구조 (Infrastructure) 상부구조에대한기본이정의 ( 메타모델 ) Object Constraint Language 객체제약언어 Diagram Exchange UML 도구들이다이어그램을교환하기위해필요한명세 - 21 -
iii. 4 계층구조 계층 M3 M2 M1 M0 설명 MOF(Meta Object Facility) 는 M2 수준에속한메타모델을정의하는메타메타모델 UML 기반의설계를가능케하는 Attribute, Class, Instance 등과같은모델요소를정의하는메타모델 UML 2.0의하부구조는 4계층메타모델관점에서 M2 수준의 UML 메타모델시스템분석가나설계자들이일반적인모델링케이스도구를통해특정도메인시스템을설계한다고했을때의메타모델수준사용자모델을도식하게되는수준모델이만들어낸코드실행수준의단계 - 22 -
D. UML 2.0의효과적활용방안 i. 비즈니스도메인의철저한분석선행 UML 2.0을효과적으로활용하기위해서는설계하고자하는해당도메인에대한철저한분석이선행되어야한다. 철저한분석없이는일정한추상화수준을유지하기어렵기때문에유기적인모델을만들어낼수없다는사실을기억해야한다. ii. 모델의추상화수준확립 모델을추상화하는과정에서다이어그램의핵심표기들간추상화수준이일 관된원칙 (Principle) 에따라정립될수있도록설계작업을수행하여야 UML 2.0 을효과적으로활용할수있다. iii. 모델자체의높은완성도추구 UML 2.0의강력한표현력 (Semantic Expressiveness) 과섬세함 (Elements Precision), 다이어그램간의유기적연결성지원 (Support for Diagram Interchange) 기능으로모델결과물자체에대한완성도검증 (Self Verification) 이가능하므로모델자체의높은완성도를추구하여 UML 2.0을최대한활용할수있어야한다. 5. UML 툴 A. StarUML - 23 -
StarUML은국내소프트웨어업체 Plastic Software에서개발된가장대중적으로사용되고있는무료 UML 툴이다. UML 1.4에기반을두고있으며, UML 2.0 표기법을적극적으로지원하고있다. 심플한인터페이스로학습및사용이용이하여개발효율을높일수있다. i. 특징 1. 정확한 UML 표준모델 StarUML은 OMG에서제정한 UML의표준명세에따라소프트웨어모델을작성할수있도록도와준다. 특히 UML 1.4 표준구문과의미의준수를극대화하고, 견고한메타모델의기반에서 UML 2.0의표기법을적극적으로수용하여설계한정보의지속성을넓혔다. 2. 개방적소프트웨어모델포맷독자적인포맷으로작성하는외국산 UML 툴과는달리 StarUML은세계표준인 XML 포맷으로구성된다. 표준이에따라사용자들이쉽게식별할수있으며, 누구든지 XML 파서를이용하여포맷을원하는형태로변환하여사용할수있다. 3. MDA 지원 StarUML은 UML 프로파일을완벽하게지원하여 UML의확장성을극대화시켰다. 따라서어떠한영역의어플리케이션과도모델링이가능하며, 각종문서나실제실행가능한코드 (Executable Code) 를자동으로생성할수있다. - 24 -
4. 방법론및플랫폼의적응성 StarUML은접근법 (Approach) 이라는개념을도입하여어떠한방법론또는프로세스에도적응할수있는환경을만들수있다. 5. 뛰어난확장성 StarUML 도구의모든기능이 Microsoft의 COM 자동화가되어있어 Visual Basic Script 또는 Java Script, VB, Delphi, C++, C#, VB.NET, Python 등과같은 COM 지원언어에서도 StarUML을제어하고통합된추가모듈을개발할수있다. 6. 소프트웨어모델검증기능사용자가소프트웨어모델링을수행하는동안범하게되는실수를방지할수있도록 StarUML은사용자가개발한소프트웨어모델을자동으로검증 (Verification) 하여사전에오류발생을발견하게만들어준다. 따라서사용자는더욱견고하고완벽한소프트웨어설계를수행할수있다. 7. 유용한 Add-In 제공 StarUML은모델링한정보의재사용성, 생산성, 가용성, 상호운용성을높일수있는유용한 Add-In을빌트인 (Build-In) 으로제공한다. 제공하는 Add- In으로는프로그래밍언어의소스코드를생성하거나소스코드를모델로변환하는기능을제공하는다수의언어 Add-In들과 Rational Rose 파일읽기, XMI를통한도구간모델링정보교환, 그리고디자인패턴지원등이있다. B. AmaterasUML - 25 -
AmaterasUML는일본에서만들어진오픈소스 UML 툴로 Eclipse의 Plug-In으로연결하여사용한다. 설치가용이하여무료로사용할수있어특히 JAVA 환경의개발자들이많이사용하고있다. AmaterasUML을사용하기위해서는 EMF나 GEF, UML, EMTF 등이 Eclipse에설치되어있어야한다. i. 특징 1. Eclipse 연동기능 AmaterasUML의가장큰장점은 Eclipse와직접연동되어 UML을그린후해당 UML을실제실행가능한코드로자동생성해준다는점이다. 이러한기능은개발자에게편리함을제공해주며디자인한대로코드를작성할수있도록도와주는역할을한다. 2. 낮은안정성 AmaterasUML은저장시문제가발생하면어떠한경고문구없이지금까지작업한 Diagram이사라지는낮은안정성을보이고있다. 특히 Diagram 수정시하나를고치면다른변수의이름이나자료형이마음대로바뀌는버그도종종발견된다. - 26 -
C. MS Visio MS Visio는 Microsoft의유료 UML 툴로, 복잡한정보를단순화하여전달하는원스톱 (One-Stop) 다이어그램작성솔루션이다. MS Visio는도형을이용하여문자나숫자만으로곤란한표현을명확하고간결하게표시해주고, 효율적인커뮤니케이션이가능하도록도와준다. - 27 -
i. 특징 1. 빠른다이어그램작성 MS Visio는재빨리다이어그램집합을활용할수있도록엄선된다이어그램집합을사전에제공하고있다. 사전제작되어있는다이어그램집합은 UML 2.4와 BPMN 2.0, IEEE 규정준수를비롯하여업계표준을충족하기때문에믿고사용할수있다. 또한상황에맞는팁과요령을사용하게끔도와주어사용자가다이어그램을쉽고빠르게작성할수있도록도와준다. 특히스마트셰이프를사용하여생산성을높이고, 새로운테마와효과를활용하여전문적인다이어그램을빠르게완성할수있다. 2. 데이터연결기능 MS Visio를사용하면조직구조또는 IT 네트워크, 제조설비, 복잡한비즈니스프로세스의시각화에데이터를연결하여성능을한눈에알수있다. 사용자는 Microsoft Excel과같은데이터원본에 MS Visio 셰이프를연결하여아이콘과색, 텍스트등의데이터그래픽을사용할수있기때문에복잡한정보를간소하게시각화할수있다. 3. 쉬운공유브라우저를통해 Office 365 또는 SharePoint의 Visio Services를사용하여회사전체에순서도나일정, 프로세스맵, 조직구조, IT 아키텍처, 평면도를전달하고공유할수있다. 만약기본데이터가업데이트되면브라우저의다이어그램도업데이트된다. - 28 -
D. Umbrello Umbrello 는 Unix 계열플랫폼에서뿐만아니라 Microsoft Windows 에서기본적으로 사용가능한무료 UML 툴이다. 여러데스크톱및프로그래밍환경에서잘작동하는 특징을가지고있다. - 29 -
i. 특징 1. 다양한언어지원 Umbrello는모든표준 UML 다이어그램의종류를처리한다. 이것은 C++ 이나 JAVA, IDL, Pascal, Delphi, Python 등으로작성된코드를리버스엔지니어링을할수있을뿐만아니라 PHP나펄코드등외부도구로생성된 XMI 파일을불러오고다양한프로그래밍언어로내보낼수있는기능을지원한다. 2. 공동개발능력극대화 Umbrello는 DocBook과 XHTML 형식으로내보내게함으로써모델컨텐츠의전달을가능하게한다. 이것은팀구성원들이 Umbrello에직접액세스할수없거나모델컨텐츠가웹사이트에게재되어야할경우공동개발을도와주는큰장점을가지고있다. 3. 적응력이빠른오픈소스모델링도구오픈소스프로젝트의공통적인특성이지만, Umbrello 또한사용자가곧개발자이기때문에사용시필요로하는기능들이빠르게추가된다는사실을알수있다. 필요에의해추가된기능들은전세계에있는사용자들로부터사용되고, 쉽게적응할수있다는특징이있다. 6. 레퍼런스 A. 도서 i. UML ROSE RUP : 객체지향분석설계그리고소설같은실천프로젝트이야기서윤준저 가남사 2004. 8. 15 ii. iii. LOG ON UML : 쉽게배우는 UML과객체지향설계 Jason T. Roff 저 이기오역 사이텍미디어 2003. 7. 3 UML 모델링의본직 Kiminobu Kodama 저 김성훈역 성안당 2005. 6. 1 B. 웹사이트 i. OMG(Object Management Group http://www.omg.org/ ii. iii. StarUML http://staruml.io/ AmaterasUML http://amateras.osdn.jp/cgi-bin/fswiki_en/wiki.cgi?page=amaterasuml - 30 -
iv. MS Visio https://products.office.com/ko-kr/visio/flowchart-software v. Umbrello https://umbrello.kde.org/ - 31 -