Introduction to UML © copyright 2001 SNU OOPSLA Lab.

Slides:



Advertisements
Similar presentations
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 프로그래밍 언어론 2nd edition Tucker and Noonan 1 장 소 개 A good programming language is a.
Advertisements

StarUML UOS, SELab. Jinhan Kim.. University of Seoul, Software Engineering Laboratory 1. StarUML 특징  StarUML™ 은 UML(Unified Modeling Language)
Product Lifecycle Management © 2003 IBM Corporation PLM Definition Product Lifecycle Management.
소프트웨어 프로세스. 1 내용  소프트웨어 프로세스  생명주기의 의미  생명주기 모델 –Waterfall Model –prototyping model –Spiral Model –Iteration Model.
제 2 장 UML. 2 Contents  UML 이란 ?  UML 역사와 역할  UML 구성요소 Things Relationships Diagrams  UML 확장  Summary.
학습목표 UML 소개 2010 학년도 2 학기. 학습목표 2 이번 시간의 학습목표 이번 시간을 정상적으로 이수하면 우리들은 … UML(Unified Modeling Language) 의 개념을 설명할 수 있다. UML 의 구성요소를 설명할 수 있다.
Master Thesis Progress
Chapter 2 정보시스템 아키텍처 (IS Architecture)
Mar OSEK/VDK Woo Dong Kyun.
Introduction to Django
OSGi 번들 서비스 의존성 해결을 위한 Residential Gateway 소프트웨어 구조 설계
IT Application Development Dept. Financial Team May 24, 2005
강좌 개요 2009년 1학기 컴퓨터의 개념 및 실습.
Operating Systems Overview
Dept. of Computer Engineering, Hannam Univ. Won Goo Lee
팀 명: Con Spirito 팀 원: 경주리 김다정 김소담 최은미
Introduction to Web Service Computing
Information Technology
제 3 장 엔티티-관계(ER) 모델을 사용한 데이타 모델링
프로그래밍 언어론 2004년 가을학기 창 병 모 숙명여대 컴퓨터과학과.
Internet Computing KUT Youn-Hee Han
12. 데이터베이스 설계.
[멀티미디어 문서구조화특론 ] Workflow
소프트웨어공학 UML 학기.
InstallShield Professional Services ( Services Pack / Education / Consulting ) ㈜소프트뱅크 커머스.
2장. UML 기본 개념.
Open Access 정보자원의 장기보존 전략
화면(UI) 기반 도메인모델 작성 2014년 8월.
가상플랫폼을 사용한 임베디드SW 개발 (CoWare CoWare Virtual Platform Designer 사용)
Data Modeling Database 활용을 위한 기초 이론 Database의 개요 Data Modeling
ER-Win 사용 방법.
ISO 9001:2000 프로세스 접근방법의 이해와 적용 베스트경영컨설팅(BMC).
Program Management - Program and Project Definition -
소프트웨어설계 UML 학기.
제 2 장 데이터베이스 시스템 개념과 아키텍처 Fundamentals of Database Systems
윤 홍 란 4 장 클래스 작성 윤 홍 란
WAA: J2EE 설계 및 UML 2008.봄학기 E-비즈니스학과 이영곤.
Rhapsody + MFC 개발 가이드.
정보처리기사 8조 신원철 양진원 유민호 이기목 김다연 윤현경 임수빈 조현진.
활동 다이어그램(Activity Diagram)
소프트웨어 공학 (Software Engineering)
ERP 시스템의 구축 ERP 시스템의 구축 기업이 ERP 시스템의 도입을 검토하는 단계에서부터 실제 업무에 적용하고 사후관리에 들어가는 단계에 이르기까지 시스템을 효과적으로 사용하기 위해 필요한 모든 활동.
10. 소프트웨어 아키텍처 뷰 설계 명지대학교 융합소프트웨어학부 김정호 교수.
Introduction to Programming Language
The Practice of KM operations
3.1 요구 모델링 Date : Create by kim wan yi
myfood.com 상명대 맛집 홈페이지 구축 제안서
시스템 분석 및 설계 글로컬 IT 학과 김정기.
XML-II (eXtensible Markup Language) DTD/DOM
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
소프트웨어 형상관리: 목차 변경 및 형상관리의 기초 개념 형상항목 확인 및 버전관리 변경관리 감사 및 감사보고 99_11
성공적인 웹사이트 구축 (2) 변화 발전하는 Site의 미래를 예측 반영해야 함.
Signature, Strong Typing
Signature, Strong Typing
2장 시스템 분석/설계 개요 한빛미디어(주).
UML과 객체지향 모델링 UML의 개요 객체지향 모델링.
Chapter 13 – 객체 지향 프로그래밍 Outline 13.1 소프트웨어의 재사용과 독립성
이산수학(Discrete Mathematics)
Signature, Strong Typing
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
Chapter 1 개요.
창 병 모 숙명여대 전산학과 자바 언어를 위한 CFA 창 병 모 숙명여대 전산학과
1. 관계 데이터 모델 (1) 관계 데이터 모델 정의 ① 논리적인 데이터 모델에서 데이터간의 관계를 기본키(primary key) 와 이를 참조하는 외래키(foreign key)로 표현하는 데이터 모델 ② 개체 집합에 대한 속성 관계를 표현하기 위해 개체를 테이블(table)
소프트웨어 종합설계 (Software Capstone Design)
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
1. 데이터베이스 환경.
Introduction to Computer System Spring, 2019
Personal Brand Management
Deployment Diagram (배치 다이어그램)
Presentation transcript:

Introduction to UML © copyright 2001 SNU OOPSLA Lab.

Contents - All Introduction to UML Use Case Diagram Class & Object Diagram Interaction Diagrams State & Activity Diagram Implementation Diagrams

Contents – Introduction to UML What is modeling Object-Oriented Modeling Introduction to UML History of UML Elements of UML UML Diagrams UML Conceptual Model

Phases of System Development Requirements Analysis Analysis Design Programming Test

What is modeling Why model ? Whenever something is built, drawings are made that describe the look and behavior of that “ thing ” The drawings are models of some thing A model is a description of some thing

What is modeling Modeling 모델을 만드는 일 ( 추상화 ) 로써 품질이 좋은 소프트웨어를 개발 및 배치할 수 있게 하는 모든 활동의 중심 모델 구축을 통해 개발 대상 시스템에 대한 이해의 증진 Model 현실을 단순화 / 가시화 시키는 것 System 의 Blueprint 를 제공 개발 고려 시스템의 총체적인 계획 및 상세 계획 표현 중요 영향 요소의 파악, 불 필요 요소의 생략 및 시스템 구축 제 약 조건 표현

What is modeling Goal 시스템을 현재 또는 원하는 모습으로 가시화 시스템의 구조와 행동을 명세화 시스템을 구축하는 기본 형태를 제공 시스템 분석 / 설계의 문서화

How to modeling 모델링의 원리 생성할 모델의 신중한 선택 : 선택 모델에 따라 문제를 공략하는 방법 과 해결책을 실현하는 방법에 많은 영향이 있음 모든 모델을 다양한 수준의 정밀도로 표현 현실을 반영한 모델 작성 상호 독립적인 모델들 몇 가지를 선택하여 모델링에 착수

Contents – Introduction to UML What is modeling Object-Oriented Modeling Introduction to UML History of UML Elements of UML UML Diagrams UML Conceptual Model

Object-Oriented Modeling 소프트웨어의 모델링 관점 알고리즘 관점 : S/W 의 주요 구성 요소인 Procedure 와 Function 을 제어 관 점에서 분할하여 시스템을 모형화 요구사항 변화에 적응력이 없음 대규모 시스템에서는 유지보수를 포함한 관리의 어려움 객체 지향 관점 : S/W 시스템의 기본 요소를 객체 또는 클래스로 파악하여 문 제 영역과 해결 영역을 모형화 객체 (Object) : 사물 (Thing) 을 말하며 고유성과 상태, 행동을 갖음 클래스 (Class) : 공통적인 객체들의 집합 UML(Unified Modeling Language) 의 목적 객체 지향 시스템을 가시화, 명세화, 문서화 하는 것

Introduction to UML Introduction Language is important. Conventional languages are used to communicate everyday ideas. Programming languages are used to communicate with machines. Professionals such as architects and doctors often have their own language that enable more precise and efficient communication between others working in the same domain

Introduction to UML Introduction software designers have a language for discussing the design of software systems (especially object oriented software systems). It's called the Unified Modeling Language (UML). You can't write an executable program in UML You can use it to capture and communicate the design elements of a program. The UML is an Object Management Group (OMG) standard and fast becoming a de facto standard

Introduction to UML Object Management Group(OMG) An international not-for-profit organization with over 800 members The OMG was established to promote object technologies OMG publishes guidelines and specifications that provide a common framework for application development

Introduction to UML The most often quoted definition of the UML is: The Unified Modeling Language (UML) is a language for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling and other non-software systems. UML is a language with its own syntax and semantics visual language the syntax for expressing a class in UML

Introduction to UML The UML is unified When it was introduced it brought together the most popular object oriented design notations UML can be used across all phases the the software life-cycle During analysis it can be used to document business processes During implementation it can be used to document the methods and attributes of a class During deployment it can be used to document the hardware components of a system

Introduction to UML The UML is a modeling language, not a method A model is an abstract representation of something that is too complex to work with in its entirety An architect cannot build or make changes to a building without a blueprint a software engineer cannot develop or maintain a complex software system without a model Method : Modeling Language + Process

Contents – Introduction to UML What is modeling Object-Oriented Modeling Introduction to UML History of UML Elements of UML UML Diagrams UML Conceptual Model

History of UML In 1994 there were more than 50 object oriented design methodologies. Three of the most popular design methodologies were: Grady Booch's methodology (the Booch method) James Rumbaugh's Object-Modeling Technique (OMT) Ivar Jacobson's Object-Oriented Software Engineering (OOSE) In 1994 Grady Booch and James Rumbaugh started working together at Rational to unify their separate methodologies In 1995 Ivar Jacobson joined Rational and the three began working on unifying all three

History of UML

UML is derived from and unifies the notations of three object-oriented design and analysis methodologies UML is a modeling language; not a method Co-submitted to the OMG Digital Equipment Corp., HP, i-Logix, IntelliCorp, IBM, ICON Computing, MCI Systemhouse, Microsoft, Oracle, Rational Software, TI, and Unisys UML version Unified Method 0.8, at OOPSLA ’ 95 UML 0.9(June ’ 96), UML 0.91(Oct ’ 96) UML 1.0(Dec ’ 96), UML 1.1(July ’ 97) Version 1.3 became available in Version 2.x is expected in 200x

Contents – Introduction to UML What is modeling Object-Oriented Modeling Introduction to UML History of UML Elements of UML UML Diagrams UML Conceptual Model

The Views in UML Use-Case View Component View Deployment View Logical View Concurrency View

The Views in UML Use-Case View Functionality of the system as perceived by external actors Logical View System ’ s static structure and dynamic behavior Component View Organization of the code components

Essential Elements of the UML UML Diagrams "You can model 80 percent of most problems by using about 20 percent of the UML."-- Grady Booch The UML defines 8 different diagram types: Use Case Diagram Class Diagram Implementation Diagrams Component Diagram Deployment Diagram

Essential Elements of the UML UML Diagrams Behavior Diagrams Statechart Diagram Activity Diagram Interaction Diagrams Sequence Diagram Collaboration Diagram

Essential Elements of the UML UML Components

Things : 추상적 개념으로 모형 구성의 기본 요소 Structural Thing : UML 모형의 명사형으로써 모형의 정적인 부분이며 개념적이거나 물리적인 요소들을 표현 Class : 동일한 속성 (Attribute), Operation, Relation, 그리고 의미를 공유하는 객체를 표현 Interface : Class 또는 Component 의 Service 를 명세화 하는 Operation 들의 집합 외부적으로 가시화 할 수 있는 요소의 행동을 설명 특정 Class 나 Component 의 전체 또는 일부분 만의 행동을 표현 Window origin size open ( ) close ( ) move ( ) display ( ) Essential Elements of the UML

Structural Thing Collaboration 교류 (Interaction) 를 정의하며 서로 다른 요소와 역할들의 집합을 표현 시스템을 구성하는 Pattern 을 표현 - Class 의 행동적이고 구조적인 중요성을 도식 Use Case 시스템이 수행하는 순차적 활동들을 기술하며 행위자 (Actor) 에게 결과치를 제공 행동 사물을 구조화하기 위하여 사용하며 협력으로 실현 Chain of responsibility use Essential Elements of the UML

Structural Thing Component 시스템의 물리적이고 대체 가능한 부분으로 Interface 를 준수하여 구현 Class, Interface, Collaboration 등 서로 다른 논리 요소를 물리적으로 Package 화 Component 종류 : Application, Document, File, Library, Page, Table, ….. Node 실행 시에 존재하는 물리적 요소이며 Computer 자원을 나타내고 약간의 Memory 와 처리 능력을 포함 orderform.java Essential Elements of the UML

Behavioral Thing : UML 모형의 동사형으로써 모형의 동적인 부분이며 시간과 공간에 따른 행동 요소들을 표현 Interaction 행위이며 지정된 목적을 완성하기 위하여 특정 문맥에 속한 객체들 사이에 주고 밭는 Message 들로 구성 State Machine state 의 순서를 지정하는 행동 하나의 객체 혹은 교류에 발생하는 사건 (Event) 에 대한 대기 및 응답의 표현 Display Waiting Essential Elements of the UML

Grouping Thing : UML 모형을 조직하는 부분이며 모델을 분해하여 재 구성화 할 수 있는 단위 상자 Package 요소들을 Group 으로 묶는 다목적 Mechanism Component 와는 다르며 개발 시에만 존재하는 개념적인 모형 종류 : Frame Work, Sub System 표현 Business Rules Essential Elements of the UML

Annotation Thing : UML 모형을 설명하는 부분이며 Comment 로써 모형 요소를 설명하고, 명확히 하는 표현 도구 노트 (Note) 하나의 요소 또는 요소들로 구성된 공동체에 첨부되는 제약과 주석을 표현하는 기호 Return copy of self Essential Elements of the UML

Relationships : 구성 요소 간의 의미 있는 연결 의존 관계 (Dependency Relationship) 두 사물간의 의미적인 관계로써 한쪽 ( 독립 ) 사물의 변화가 다른 ( 종속 ) 사물에 영향을 주는 관계 연관 관계 (Association Relationship) 구조적 관계로써 Link( 객체 간의 연결 ) 의 집합을 나타냄 집합 (Aggregation) 연관 관계는 특별한 연관 관계로써 전체 (Whole) 와 부분 (Part) 간의 구조적 관계를 표현 EmployerEmployee 0.. 1* Essential Elements of the UML

Generalization Relationship Specialization / Generalization Relationship : 일반화 된 요소 (Parent) 의 객체를 특수화된 요소 (Child) 의 객체로 치환할 수 있는 관계 (Child 는 Parent 의 구조와 행동을 공유 ) Realization Relationship 분류자 (Classifier) 간의 의미적 관계 한 쪽 분류자는 다른 쪽 분류자가 수행하기로 되어 있는 계약 (Contract) 을 명세화 Essential Elements of the UML

Contents – Introduction to UML What is modeling Object-Oriented Modeling Introduction to UML History of UML Elements of UML UML Diagrams UML Conceptual Model

Diagramming : 구성 요소 들의 Graphic 표현 Class Diagram Class, Interface, Collaboration 간의 관계를 나타내며 객체 지향 시스템 모형화에서 가장 공통적으로 많이 쓰이는 Diagram Class Diagram : 시스템의 정적 (Static) 설계 View Active Class Diagram : 시스템의 정적 Process View Object Diagram 객체들 사이의 관계를 표현 Class Diagram 에 있는 사물들의 Instance 에 대한 정적 Snapshot 을 표현 실제 사례나 Prototype 사례의 시각에서 도해 UML Diagrams

Author name : String age : Integer Computer name : String memory : Integer * uses Bob:Author name : “Bob J” age : 32 Bob’s Job PC: Computer name : “Dell 466” memory : 64 Bob’s Home PC: Computer name : “IBM 466” memory : 128 Class Diagram Object Diagram

UML Diagrams Diagramming : 구성 요소 들의 Graphic 표현 Use Case Diagram Use Case, Actor 간의 관계를 표현 시스템 행동을 조직화하고 Modeling 시스템의 정적 Use Case View

UML Diagrams Diagramming Sequence Diagram, Collaboration Diagram Interaction Diagram 의 한 종류로 객체와 객체 간의 관계, 그리고 객체 간에 보낼 수 있는 Message 들로 구성 Sequence Diagram 과 Collaboration Diagram 은 동일 구조로써 상호 변형가능하며 Sequence Diagram 은 Message 의 시간적 순서를 강조하 고 Collaboration Diagram 은 객체의 구조적 구성을 강조 시스템의 동적 Dynamic View State Diagram 상태 (State), 전이 (Transition), 사건 (Event), 활동 (Activity) 로 구성 사건에 따라 순차적으로 발생하는 객체 행동에 중점을 두고 작성 시스템의 동적 View

Diagramming Activity Diagram 특별한 종류의 상태도로써 시스템 내부에 있는 활동간의 흐름을 표현 시스템의 기능을 모형화하고 객체간의 제어 흐름 표현에 유용 시스템의 동적 View Component Diagram Component 간의 구성과 의존 관계를 표현 시스템의 정적 구현 View Deployment Diagram 실행 시 처리하는 Node 와 그 Node 에 존재하는 Component 들의 구성을 표현 Architecture 의 정적 배치 View UML Diagrams

UML Rules UML 규칙은 자체 일관성이 있으며 관련 Model 들과 조화를 이룸 잘못된 모형 이름 (Name) 사물, 관계, 도해의 호칭 범위 (Scope) 이름에 특정한 의미를 부여하는 문맥 (Context) 가시성 (Visibility) 이름을 참조하고 사용할 수 있는 방법 무결성 (Integrity) 사물 상호간에 올바르고 일관성 있는 관계를 유지시키는 방법 실행 (Execution) 동적 Model 을 실행하거나 모의 실험 하는 것 생략 (Elided) View 를 단순화 하려고 특정 요소를 감춤 불완전 (Incomplete) 특정 요소를 빼고 작성 불일치 (Inconsistent) 모델의 무결성이 보장되지 않음 UML Conceptual Model

UML Common Mechanism 명세서 (Specification) UML 의 Graphic 표현에 구문법과 구성 요소의 의미를 포함하여 점진적으로 모델을 구성 표기 (Adornment) UML 요소의 고유하고 직접적인 Graphic 표기 등 요소의 가장 중요한 관점을 가시적으로 표현 Transaction + execute ( ) + rollback ( ) # priority ( ) - timestamp ( ) UML Conceptual Model

UML Common Mechanism Common Division Class 와 Object 의 분할 객체 지향 모델링은 다시 몇 가지로 나누어 표현 가능 Interface 와 구현의 분리 Customer name address phone Jan : Customer : Customer Elyse spellingwizard.dll IUnknown ISpelling UML Conceptual Model

UML Extensibility Mechanism UML 의 목적인 분석 / 설계 정보를 보다 정확하게 전달하기 위한 표준 언어를 제공 하나의 언어로 불가능한 모형은 통제된 방법으로 언어를 확장 스테레오 타입 (Stereotypes) UML 어휘를 확장하여 새로운 종류의 구성 요소를 생성 기존 구성에서 파생되므로 문제 영역은 기존 구성 요소의 고유한 것 UML Conceptual Model

UML Extensibility Mechanism 꼬리표 값 (Tagged Values) UML 의 구성 요소가 갖는 Property 를 확장 구성 요소의 명세서에 새로운 정보를 추가 생성 가능하도록 한다 제약 (Constraints) UML 구성 요소가 갖는 의미를 확장하여 새로운 규칙의 추가 및 기존 규칙 변경 EventQueue {version = 3.2 author = YL} add ( ) remove ( ) flush ( ) “exception” Overflow {ordered} Tagged Value Constraint Stereotype

UML Architecture How to decide system ’ s architecture S/W System 의 구성 System 구성 요소들과 요소들 간의 Interface 선택 요소들 간의 협력으로 명세화 되는 행동을 결정 점진적으로 큰 시스템으로의 구조 요소와 행동 요소를 결합 아키텍쳐 양식 ( 정적 / 동적 ) 들과 이들의 Interface, 협력, 결합을 표현 구조와 행동 용도, 기능성, 성능, 탄력성, 재 사용성, 경제성 기술적 제약 및 방법 미학적 표현

S/W Centric System ’ s Architecture Modeling Design ViewImplementation View Process ViewDeployment View Use Case View 시스템 조립 형상관리 시스템 구성 형태 분산, 인도, 설치 어휘 기능성 성능 확장성 처리량 UML Architecture

아키텍쳐 종류내 용내 용정적 도해동적 도해 Use Case View 시스템 행동을 설명 최종사용자, 분석가, 설계자, 테스트 담당자에게 제공 되는 뷰 시스템 아키텍쳐를 구체화하는 요인들을 명세화 Use Case Diagram Interaction D. State D. Activity D. Design View 시스템이 최종사용자에게 제공해야 할 서비스를 표현 문제 영역과 해법의 어휘를 형성하고 있는 Class, Interface, Collaboration 으로 구성 Class Diagram Object Diagram Interaction D. State D. Activity D Process View 시스템의 성능, 신축성, 처리 능력을 표현 시스템의 동시성과 동기화 메커니즘을 형설하고 있는 Thread 와 Process 로 구성 Class Diagram Object Diagram Active Class D. Interaction D. State D. Activity D Implementation View 시스템 배포의 형상관리 표현 물리적인 시스템을 조립하고 배포하는데 사용되는 Component 와 File 들로 구성 Component Diagram Interaction D. State D. Activity D Deployment View 시스템을 구성하는 물리적 부분의 분산, 인도, 설치 표현 H/W 형태를 형성하는 Node 로 구성 Deployment Diagram Interaction D. State D. Activity D UML Architecture

UML Development Life-cycle Development Process 고려 사항 UML 은 개발 Process 에 독립적이다 프로세스설 명설 명 Use Case 중심 System 에 요구되는 행동을 파악 System Architecture 검증, 확인 및 Test Project 관련자의 의사소통 (Use Case 관련 주요 산출물 활용 ) 아키텍쳐 중심 개발중인 System 의 개념화, 구축, 관리 진화 ( 변화 ) 내용을 파악하고 수행 (System Architecture 관련 주요 산출물 활용 ) 반복 / 점진적 프로세스 중심 반복 프로세스는 실행 배포판을 관리 점진적 프로세스는 System Architecture 를 지속적으로 통합하고 개정 배포판을 작성

S/W 개발 생명 주기 단계 각 단계는 반복적으로 수행되며 반복은 별개 활동으로써 대내외적으로 배포판을 만드는 기준 계획과 평가 기준을 갖음 단계설 명설 명 도입 (Inception) 개발의 시작점으로써 대상 요소들을 정의 정련 단계로 진입할 수 있는 충분한 근거 파악 정련 (Elaboration) 제품 Vision 과 Architecture 를 정의 System 의 요구 사항의 명료화, 우선 순위 결정, 기준선 설정 및 Test 기준 설정 요구 사항의 기능적 행동과 비 기능적 행동을 명세화 구축 (Construction) S/W 의 작성 및 실행 Architecture 기준선으로부터 전이의 준비 단계 Project 에 대한 요구 사항과 평가 기준의 재 검사 위험 요소들을 제거하기위한 자원의 할당 전이 (Transition) S/W 의 사용자 전달 System 의 지속적인 개선, 결함 제거 배포판에 새로운 특성 추가 UML Development Life-cycle