본문 바로가기
Blog/미디어

[책] UML DISTILLED

by NAMP 2010. 1. 23.

UML DISTILLED

 


  • 액티비티 다이어그램(Activity Diagram)

    • 액티비티 다이어그램은 순차 로직(procedural logic), 업무 절차(business process), 그리고 워크 플로우(Work Flow)를 기술하는 방법이다.

  • 유즈케이스(Use Cases)

    • 유즈 케이스는 시스템의 기능적인 요구 사항을 잡아내기 위한 기술이다. 유즈 케이스는 시스템과 시스템의 사용자 간의 통상적인 교류를 기술하여 시스템이 어떻게 사용되는지를 표현한다.
  • '상품을 구입한다'라는 시나리오

    고객은 상품 목록을 찾아보고 원하는 상품을 장바구니에 담는다. 고객이 물건 값을 지불하기 위해 배송 정보와 신용카드 정보를 입력하고 구입을 확정한다. 시스템은 신용카드의 승인을 확인하고 판매를 확정하는 동시에 처리 결과 이메일을 발송한다.

  • 유즈케이스에서 사용자를 액터(actor)라 칭한다.
  • 액터는 사용자가 시스템에 대해 가진 역할이다.
  • 액터는 반드시 사람일 필요는 없다. 어떤 시스템이 다른 컴퓨터 시스템을 위한 서비스를 수행한다면, 서비스를 이용하는 시스템이 액터가 된다.

  • 각각의 유즈케이스는 서비스를 받기 위해서 시스템을 호출하는 하나의 주 액터를 가진다.
  • 주 액터란 유즈케이스가 수행하려 하는 목표를 가진 액터로서, 항상 그렇지는 않지만 보통 유즈케이스를 시작하게 하는 액터이다.
  • 유즈케이스를 수행하는 동안 시스템과 통신하는 다른 액터들도 있을 수 있다.
  • 이런 액터들은 보조(secondary) 액터라고 부른다.

  • 유즈 케이스의 각각의  단계는 액터와 시스템 간에 일어나느 교류의  요소 하나에 해당된다.
  • 각각의 단계는 단순한 문장이어야 하며, 누가 그 단계를 수행 하는지 분명하게 보여 주어야 한다.

  • 배치 다이어그램(Deployment Diagrams)은 시스템의 물리적인 구조를 보여 주며, 소프트웨어의 어떤 부분이 하드웨어의 어떤 부분에서 동작하고 있는지를 나타낸다.
  • 노드(node)란 소프트웨어를 실행할 수 있는 무언가를 말한다.
  • 노드는 아티팩트(artifact)를 포함하는데, 아티팩트란 소프트웨어의 물리적인 모습(manifestation)이며, 보통 파일을 말한다.

  • 연관 클래스(association class)는 여러분이 속성, 오퍼레이션 그리고 다른 기능들을 연관에 더할 수 있도록 한다.
  • 한 사람(Person)이 많은 회의(Meeting)에 참석(Attendance)할 수 있는 다이어그램에서 이것을 볼 수 있다.

    • Person (2..*)----------------------------------------------------- (*) Meeting

|

|

(연관클래스) Attendance / attentiveness

  • 연관 클래스는 제약 사향을 하나 추가하는데, 그것은 연관에 참여하는 두 개의 객체 사이에 오직 하나의 연관 클래스 인스턴스만이 있을 수 있다는 것이다.  

  • 클래스와 일반화

    • 양치기 개는 콜리이다. (클래스화)
    • 콜리는 개이다. (일반화)
    • 개는 동물이다. (일반화)
    • 콜리는 품종이다. (클래스화)
    • 개는 종(種 )이다. (클래스화)
  • 클래스화 다음에 일반화가 오면 합칠수 있지만 반대의 경우는 아니다.
  • 클래스화는 객체와 객체의 타입 간의 관계를 뜻한다.  

  • 한정 연관(qualified association)은 UML 에서 관계 배열(associative array), 맵(map), 해쉬(hash), 딕셔너리(dictionary)와 같은 프로그래밍 개념과 동등한 의미이다.

  • 집합과 합성

    • UML 에서 가장 빈번하게 혼란을 유발하는 원인이 되는 것 중 하나는 집합(aggregation)과 합성(composition)이다.
    • "공유 불가" 규칙이 합성의 핵심이다. 이 다이어그램에서 암시하는 것은 만약 다각형을 삭제하면 그것이 가지고 있던 점들도 자동으로 제거되어야 하다는 것이다.

      • 클럽 (*) ---------------> (*) 사람                  <집합>
      • 다각형 <>---{ordered}---> (3..*) 점 (1) <---------------<> 원             <합성>

  • CRC 카드

    • CRC(클래스-책임-협력:Class-Responsibility-Collaboration) 다이어그램
      • Order(클래스명)

        • 재고가 있는지 확인(책임)   /   order line(협력)
        • 가격을 결정   /   Customer 

  • 교류 다이어그램(Interaction diagram)은 어떤 행동 안에서 객체 그룹들이 어떻게 협력하는지를 설명한다.
  • UML은 몇 가지 형태의 교류 다이어그램을 정의하고 있으며, 그중 가장 많이 쓰이는 것이 시퀀스 다이어그램이다.
  • 하나의 유즈 케이스 내에서 여러 객체의 행동을 보고 싶을 때 시퀀스 다이어그램을 사용해야 한다.

    • 만약 여러 유즈케이스에 걸친 하나의 객체의 행동을 보고 싶다면, 상태 다이어그램을 사용하라.

  •  의존

    • 두 요소 사이에 의존(dependency)이 존재한다는 것은 어떤 요소(공급자 또는 타켓)의 정의에 대한 변화가 다른 요소(클라이언트 또는 소스)의 변화를 유발한다는 것을 의미한다.
    • 클래스는 여러 가지 이유로 의존이 존재한다.
    • 예를 들어 어떤 클래스가 다른 클래스에 메시지를 보낸다거나, 어떤 클래스가 다른 클래스를 데이터의 일부로 가지고 있거나, 어떤 클래스가 오퍼레이션의 매개 변수로 다른 클래스를 사용하는 경우 등의 이유이다.

  • 의존을 가능한 줄이는 것을 기본적인 규칙으로 삼아야 한다.

  • 클래스 다이어그램은 시스템의 객체의 타입과 그들 간에 존재하는 다양한 정적 관계에 대해서 기술한다.
  • UML 에서는 특징(feature) 이라는 용어를 클래스의 프로퍼티와 오퍼레이션을 포함하는 일반적인 용어로 사용한다.

  • 요구 사항 분석

    • UML 기술들

      • 유즈 케이스 : 사람들이 시스템과 어떻게 상호 작용을 하는지 보여 준다.
      • 개념적인 관점에서 그려진 클래스 다이어그램 : 도메인의 정확한 어휘를 구성하는 좋은 방법이 될 수 있다.
      • 액티비티 다이어그램 : 소프트웨어와 사람의 행동이 어떻게 상호 작용을 하는지를 보임으로써 조직의 워크플로우를 나타낼 수 있다. 유즈 케이스의 관계를 보이며 복잡한 유즈 케이스가 어떻게 동작하는지를 자세히 보여 줄 수 있다.
      • 상태 다이어그램 : 어떤 개념이 다양한 상태와 그 상태를 변경하는 이벤트로 구성되어 흥미로운 생명 주기를 가지고 있을 때 유용하다.

  • 패턴이란 공통적으로 일하는 방법을 말하며 설계에서 같은 주제를 반복해 온 사람들이 모아 놓은 것이다.

    • 패턴은 모델 이상의 것이다.
    • 패턴은 왜 이런 식으로 해결해야 하는지에 대해서도 그 이류도 설명해야 한다.
    • 패턴은 문제를 확실히 나타내야 하며 이 패턴이 어떻게 문제를 해결하는지 그리고 이 패턴이 작동하는 환경과 작동하지 않는 환경은 무엇인지를 반드시 설명해야 한다.

  • UML 을 가지고 어디서부터 시작할 것인가.

    • 처음 시작하는 것이라면, 클래스 다이어그램과 시퀀스 다이어그램의 기본 형태에 집중하도록 권하고 싶다.
    • 이것들에 익숙해지 후에는 더 고급 클래스 다이어그램 표기법을 사용하기 시작하고 다른 다이어그램도 둘러보도록 하라.

     


  • UML 의 공식 다이어그램 형식

 

 다이어그램   용도  
액티비티 (Activity)   순차 행동과 병렬 행동  
클래스 (Class)   클래스, 특성, 관계  
커뮤니케이션 (Communication)   연결에 중점을 둔 객체 간의 교류  
컴포넌트 (Component)   컴포넌트 구조와 연결  
복합 구조 (Composite structure)   실행 시의 클래스를 분해  
배치 (Deployment)   노드에 대한 아티팩트의 배치  
교류 개요 (Interaction overview)   시퀀스 다이어그램과 액티비티 다이어그램의 혼합  
객체 (Object)   인스턴스 구성의 예  
패키지 (Package)   컴파일 시의 계층적 구조  
시퀀스 (Sequence)   순서에 중점을 둔 객체 간의 교류  
상태 기계 (State machine)   객체가 살아 있는 동안 이벤트에 의해서 어떻게 변화되는가  
타이밍 (Timing)   타이밍에 중점을 둔 객체 간의 교류  
유즈케이스 (Use case)   사용자가 시스템과 어떻게 교류하는가  

 


  • UML2 는 다음의 세 가지 행동 모델링 방법을 제공한다.

    • 교류 다이어그램
    • 상태 다이어그램
    • 액티비티 다이어그램

  • 모든 RUP 프로젝트는 다음의 네 가지 단계를 따라야 한다.

    1. 개념화 단계
    2. 상세화 단계
    3. 구축 단계
    4. 전이 단계

  • 오컴의 면도날(Occam's Razor)

    • 중세의 철학자이자 프란체스코 수도원의 수도사였던 월리엄 오브 오컴(William of Ockham)이 주로 사용하던 말에서 유래된 원리로써, '단순한 설명이 가장 좋은 것이다.' 라는 의미로 사용된다.
  • UML (Unified Modeling Language)

    •  UML 은 그래픽  표기법(Graphical notation)의 집합으로, 단일 메타모델(meta-model)을 기초로 하고 있으며 소프트웨어 시스템 (특히 객체 지향 방식을 사용하여 구축하는 소프트웨어 시스템)을 표현하고 설계하는 것을 도와준다.
  • MDA (Model Driven Architecture)

    • PIM (Platform Independent Model): 플랫폼 독립 모델
    • PSM (Platform Specific Model) : 플랫폼 종속 모델
  • CASE (Computer Aided Software Engineering)
  • RUP (Rational Unified Process)
  • 애자일 소프트웨어 프로세스

    • 경량의 단순한 설계에서 시작해서 리팩토링을 통해서 설계를 보완해 나가는 방법론의 일종. 기민한 프로세스, 민첩한 프로세스라고도 불린다.
    • 인간 지향적인 공정
    • 프로젝트 성공의 가장 중요한 요인은 구성원들의 능력이며, 구성원들이 얼마나 협업하는지에 달려 있다고 가정한다.

2010/01/18 13:28:04 / 출처: UML DISTILLED / http://martinfolwer.com

 

 

 

이 글은 스프링노트에서 작성되었습니다.

'Blog > 미디어' 카테고리의 다른 글

백야행 3  (0) 2012.03.06
백야행1  (0) 2012.02.19
[책] Design Patterns  (0) 2010.01.23
[책] 리팩토링  (0) 2010.01.23
[사이트] 로봇 관련 사이트  (0) 2008.02.28

댓글