uml lecture

Document Sample
uml lecture Powered By Docstoc
					        UML
(Unified Modeling Language)




   DPNM Lab., POSTECH
Contents
   Introduction
   Notation of Diagram
   Case Study
   Process of Diagram
   Summary



                          2
Introduction
   What is the UML?
   History of the UML
   Scope of the UML




                         3
    What is the UML?
    Language for specifying, constructing, visualizing,
     and documenting the artifacts of a software-intensive
     system
    The successor to the wave of OOA&D methods that
     appeared in the late ’80s and early ’90s
    Unification of the methods of Booch,
     Rumbaugh(OMT), and Jacobson(OOSE)
    The standard of OMG (Object Management Group)




                                                             4
        History of the UML(1/2)
       UML Motivation
         모든 도메인에 걸쳐 객체지향적 방법으로 시스템을
          설계할 수 있도록 하기 위하여 제안됨
       UML을 설계시의 목표
         사용자들이 의미 있는 모델을 만들고 교환할 수 있도
          록 사용하기 쉽고 표현이 풍부한 시각적 모형화 언어
          를 제공
         특정 프로그래밍 언어나 개발 공정에 종속되지 않음
         모델링 언어를 이해하기 위한 공식적 기준을 제공


                                       5
      History of the UML(2/2)
                                                                        UML 1.3
            OMG Acceptance, Nov 1997
            Final submission to OMG, Sep ´97                       UML 1.1
   public   First submission to OMG, Jan ´97
feedback
            UML partners                                   UML 1.0

             June ´96                           UML 0.9

            OOPSLA ´95                Unified Method 0.8




    Other methods        Booch method                        OMT         OOSE

                                                                                  6
Scope of the UML
   Use Case Diagram
   Class Diagram
   Interaction diagram: Sequence Diagram and
    Collaboration Diagram
   State Diagram
   Activity Diagram
   Component Diagram
   Deployment Diagram

                                                7
    Use Case Diagram
   시스템의 요구사항을 Actor와 Use Case의 관계로 표현
   Use Case Diagram은 사용자와 개발자, 시스템 설계자와의 의사
    소통 도구
   Use Case는 시스템의 사용자 입장에서의 기능적인 요구사항을
    나타냄
   Use Case는 시스템 내에서 혹은 외부 시스템과의 상호작용
    (Interaction)하는 행위들의 집합을 나타냄
   Actor는 Use Case와의 Interaction시에 Use Case를 사용하는
    사용자의 역할들의 집합을 말함
   Actor는 사람뿐만 아니라 하드웨어 디바이스, 다른 외부 시스템
    등이 될 수 있음



                                                 8
        Notation of Use Case Diagram
       Use Case
         Use Case Name을 포함한 타원으로 표시


       Actor
         “Stick Man”으로 표시
         Stereotype이 “actor”인 클래스의 사각형으로도 표시 가능




                                                   9
        Notation of Relationship (1)
       Generalization Relationship
         Generalization은 상속의 의미




       Communicates Relationship
         Actor와 Use Cases사이의 관계를 나타낼 때 Communicates
          Relationship을 사용




                                                   10
        Notation of Relationship (2)
       Extends Relationship
         Extends된 Use Case의 모든
          행위가 Extends한 Use Case의
          행위의 일부로 포함됨


       Uses Relationship
         상속의 개념과 유사한 것으로
          Uses한 Use Case의 모든 행위
          는 uses된 Use Case의 모든
          행위를 상속한다는 의미임



                                       11
Example of Use Case


               보험증권에
               sign하다.




               판매 통계량    보험 판매원
          고객




               고객 통계량




        < 보험처리 프로그램>
                                  12
        Class Diagram
       시스템의 정적인 구조를 나타냄
       시스템을 구성하는 클래스와 이들 클래스들 간의
        관계를 표현
       Package: 관련 있는 여러 클래스들을 묶어
        서 표현
        하나의 클래스는 하나의 package 내에서 유일한 이름을 가져야 함
        다른 클래스를 가리킬 때 만약 package가 다르다면 그 reference의
         이름은 Package-name::class-name으로 표기




                                                 13
           Notation of Class Diagram (1)
   Name: StrereoType + Class Name + Property
 Attribute: Visibility name:type-expression=initial-
value{property-string}
   Operation: Visibility name (parameter-list): return-
type-expressoin=initial-value{property-string}
   Visibility                                          name
         + public
                                                    attributes
         # protected
         - private                                 operations
                                                    (methods)
                                                                 14
  Notation of Class Diagram (2)

                                           Windows
                 Windows
                                     {abstract, author = Joe}

                                   +size: Area=(100,100)
class name       Windows           #visible: Boolean=invisible
                                   +default-size: Rectangle
                                   #maximum-size: Rectangle
attributes   size: Area
                                   -xptr: Xwindow*
             visibility: Boolean
operations   display ( )           +display ( )
             hide ( )              +hide ( )
(methods)
                                   +create ( )
                                   -attachXWindow(xwin:Xwin*)



                                                                 15
    Notation of Relationships (1)
                                     Works-for  1..*
   Association   Company        *
                                employer     employee
                                                          Person



                                    1
   Aggregation   Company                          *    Department




   Composition    Window
                                    1              *      Frame


                         FilmClip
   Dependency    name
                  playOn(c:channel)                      Channel
                  start()
                  stop()
                  reset()
                                                                   16
    Notation of Relationships (2)
                                        Shape
    Generalization                   origin
                                      move()
                                      resize()
                                      display()



                         Circle        Rectangle       Polygon
                      radius: Float   corner: Point   points: List
                                                      display()
    Notes

          Comments                                      Square



                                                                     17
Example of Class Diagram
                                           1                 1
                                                Company



           *         1..*                                            1..*

    0..1       Department              *        Loc ation>       *      Offic e


           *                   *

                   {Subset}                                           Headquarters
               <- - - - - - - - - -
      1..*       member 1             manager

                         Person
           name: Name
                                                             Contac tInformantion
           employeeID: integer
           title: String                                     address: String
           getPhoto(p: Photo)
           getSoundBite()
           getContac tInformation()                               PersonnelRec ord
           getPersonRec ords()
                                                                 textID
                                                                 employmentHistory
                                                                 salary

                                                                                     18
        Interaction Diagram
       시스템의 동적인 면을 표현하는 다이어그램
       역할(Role)들간의 상호작용(Interaction)을 표현하는 다이
        어그램
       Collaboration Diagram
         Role들간의 관계(Relationship)에 중심을 두고 다이어
          그램을 표현.
       Sequence Diagram
         상호작용(Interaction)의 시간적인 순서에 중심을 두고
          다이어그램을 표현.
         시간의 진행은 수직선상에서 위에서 아래로

                                             19
        Notation of Sequence Diagram (1)
       객체 & Life line &
        Activation




       Flat flow of control
        메시지
         일반적인 메시지
          의 호출
          (asynchronous 메
          시지를 나타냄)
                                     20
        Notation of Sequence Diagram (2)
       Nested flow of control
        메시지
         일반적으로 procedure
          호출 (Synchronous 메
          시지를 나타냄)
       Asynchronous flow of
        control 메시지
         명시적으로
          Asynchronous 메시지
          를 나타냄
                                     21
Example of Sequence Diagram
      오브젝트


                 주문 등록           주문          주문 라인            재고물품
                 Window

                          준비()
                                       * 준비 ()
                                                                           조건
                                                     점검()
                          메세지                    [점검결과 재고가 있다]
      오브젝트                                       재고를 없앤다.
                                      반복
  시   Lifeline
  간                                                               재주문이 필요한가?()
  의
  경
  과
                                                                         Self-Delegation

                                                                  [재주문이 필요하다.]
                                                                   new
                                                                       물품
                                                                       재주문
                                                     Return
                                                                  생성
                                                                                배달 물품
                                                 [점검결과 물품이 있다.]
                                                    배달물품 생성




                                                                                           22
        Notation of Collaboration Dig. (1)
       링크 (Link): Association 관계
         링크로 연결된 객체들 사이에서 interaction 발생
         message: (ex) 1: [초기화되지 않았다] 준비




       Creation/Destruction Marker
         객체나 링크는 상호작용 중에 생성 & 소멸될 수 있음
         { new } : 생성, {transient} : 일시적,{destroyed} : 소멸


                                                        23
Example of Collaboration Dig.

           :주문등록 Window            객체


                 1 : 준비()          메시지



                :주문                             순서 번호

                            3 : 점검()
                2* :준비()                        5 : 재주문 필요()    Self-Delegation
                            4 : [점검해서 재고가 있다]
                            재고물품을 사용한다()

           전자제품 라인:주문라인                   전자제품 재고:재고물품



                7 : [점검해서 물풍이 존재한다.]            6 : 재주문 물품 생성
                    배달 물품 생성

               :배달 물품                       :물품의 재주문




                                                                                  24
        State Diagram
       객체들의 상태의 전이를 나타냄
       시스템의 동작 상태를 표현하기 위한 것임
       객체의 state 변화를 start 시점부터 표현한 것임
        event에 따른 상태 변화를 그림
        한 클래스의 객체의 lifetime 동안의 행동을 그림




                                          25
    Notation of State Diagram
       Start & Stop

       Transition
                                             dial digit(n)[valid]/connect
         transition : event[guard(logical
          condition)]/action


       State:                                        State
         State Name                            entry/
                                                do/
         Activity: entry, do, exit             exit/



                                                                            26
Example of State Diagram

                          start



      다음 아이템을 가져온다.
      [아이템이 모두 점검되지 않았다]                        [모든 아이템이 점검 되었고,
                                     점검         모든 아이템이 유효하다.]                    처리

                                  행동/ 아이템을                               행동/ 운반 준비를
                                      점검한다.                                  한다.

                                              아이템을 받는다.
                                              [모든 아이템이 유효하다.]
                 [모든 아이템 점검되었고,                                        activity
                 어떤 아이템은 재고품이 없다.]
                                                                                   배달


       Self-transition
                                                          transition


                                     대기                                           배달
       아이템을 받는다.
       [어떤 아이템은 재고품이 없다.]
                                                  State




                                                                                        27
        Activity Diagram
       객체들의 행위의 전이를 나타냄
       state diagram의 한 종류
        각각의 상태는 특정 action을 수행
        상태의 전이는 action이 끝났을 경우 발생
        병렬로 수행되는 asynchronous 이벤트도 표현 가능




                                            28
    Notation of Activity Diagram
   Start & Stop

   Condition              [condition]


   Activity                 Activity



   Decision Activity      Decision Activity


   Synchronization Line
                                               29
Example of Activity Diagram
          사람                  조건
                                   [커피가 없다.]                             [콜라가 없다.]
                      마실 것을
                      찾는다.
     동기화 막대             [커피를 발견한다.]
                                                                    [콜라를 발견한다.]
                                              Decision Activity

         커피를 필터에 물통에 물을         컵을 가진다.                           캔콜라를
         넣는다.    넣는다.                                             가진다.




                                       Activity
         필터를 기계에
         넣는다.




              기계를 켠다.


               커피를
               끓이다.

                                                                            End



                              커피를 컵에                              음료수를
                              붓는다.                                마신다.

                                                                                     30
        Component & Deployment Dig.
       Deployment Diagram
         Runtime system의 구조를 표현한 것임
         시스템을 구성하는 물리적 객체나 장치들의 관계를
          표현하는 다이어그램
         즉, 하드웨어의 구성을 나타냄
       Component Diagram
         물리적인 패키지의 구성을 나타냄
         시스템을 구성하는 실제 소프트웨어 Component 간의
          구성체계를 기술하므로 아키텍처를 표현하기에 좋음

                                       31
    Notation of Component &
    Deployment Diagram
   Component Diagram:
    Component &                       Scheduler             reservations

    Interface



   Deployment Diagram:   AdminServer:HostMachine
                                                      <<database>>
    Processing Element                                 meetingsDB


                                Scheduler           reservations




                                                                   32
Example of Com. & Dep.Diagram

                                                        당뇨병 정보 서비스 Unit Server
                               TCP/IP
                                                                 객체 Database


      Node들의 연결                                             건강 관리 영역




                     생활 건강 정보 서비스 Unit Server

                       객체 Database

                                                    <<connection>>
                       건강 관리 영역

         TCP/IP                                            의학 정보 설정
                       생활 건강 정보 서비스
                       Server application                  사용자 설정

                                     Interface

       Windows PC                                Node         포함된 객체

          건강정보 서비스
          사용자 전면                 Component

           사용자 인터페이스




                                                                                 33
        Case Study: 수강 등록
       요구 명세서 (순차적)
        수강 등록 관리자는 교수들의 정보와 학생들의 정보를 수강등록시스템에 모두 저장
        교수는 개설 강좌에 대한 계획서를 작성하여, 조교에게 제출
        조교는 모아진 개설 과목 계획서를 수강등록관리자에게 넘겨줌
        수강등록관리자는 개설 과목에 대한 정보를 수강등록 시스템에 저장
        종합된 개설 과목에 대한 정보는 종합시간표로 작성되어 학생들에게 배부됨
        학생들은 종합시간표를 보고 수강신청서를 작성
        작성된 수강신청서는 조교에 의해 모아지고, 모아진 수강신청서는 수강등록관리자에게
         넘겨짐
        수강등록관리자는 각각의 작성된 수강신청서에 대한 내용을 기존의 수강 등록을 처리할
         수 있는 정보 시스템을 이용하여 작성
        수강신청 기간이 완료되면, 수강등록 시스템은 수강 내용을 처리하고 수강결과를 프린트
        프린터 된 결과들은 조교를 통해 각각의 학생들에게 전해지고, 재 수강신청 기간동안 학
         생들은 수강신청을 변경
        수강변경기간이 완료되면, 수강등록처리 시스템은 지불시스템에 학생들의 등록내용을 전
         송
        전송을 받은 지불시스템은 해당 학생들에게 수강신청에 대한 등록금 고지서를 보냄
        등록금 고지서를 받은 학생들은 정해진 기간 안에 등록금을 납부해야 함
        납부한 학생에 한하여 등록 처리되어 진다.
        해당 교수의 과목에 등록한 학생들에 대한 출석부가 교수에게 전달되어짐
                                                     34
      Process of Drawing Diagram
                   Requirements Analysis
                     Use Case Diagram
                     Activity Diagram
Recursive          Analysis
                     Class Diagram
                     Sequence or Collaboration Diagram
                     State Diagram
                   Design
                     Component Diagram
                     Deployment Diagram
                                                          35
Summary
       UML is a standard for OOA&D
       Software Development
        Requirement Analysis
        Object-Oriented Analysis
        Object-Oriented Design
        Code
        Test


                                      36

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:9
posted:6/25/2012
language:
pages:36