ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • OO Analysis & Design
    IT Fundamental Concept/OOAD 2020. 3. 1. 00:09

    Use Case Diagram

    사용자의 요구를 기능적인 측면에서 명시하며, 시스템이 제공해야하는 서비스의 목록을 얻기 위해 사용 합니다.

    또한 특정 기능이 동작 후에 어떤 기능이 추가로 실행되는지, 또는 어떤 조건 하에 후속 기능이 수행되는지를 검토해보면서 공통 기능을 추출해 있고, 유사 기능 분류를 통해 기능 단위로 Encapsulation수행해 있습니다.

    시스템이 제공하고 있는 기능 및 그와 관련된 외부요소를 사용자의 관점에서 표현하는 다이어그램.

    시스템 외의 요소와 기능적 요구사항을 Actor와 Use case, Relationship으로 표현

    Relationships

    연관(Association): Use Case와 Actor의 관계를 표현(실선)

    확장(Extend): 기본 Use Case 수행 시 특별한 조건을 만족할 때 수행하는 Use Case

    표함(Include): 시스템의 기능이 별도의 기능을 포함(점선)

    일반화(Generalization): 하위 Use Case/Actor가 상위 Use Case/Actor에게 기능/역할을 상속 받음

    그룹화(Grouping): 여러 개의 Use Case를 단순화 하는 방법

    Granularity of Use Cases

    Use Case의 적당한 크기는 Use Case의 정의에 충실하게 되어 있고, 개발과 관리에 용이한가를 만족하면 된다.

    Use Case Description/Scenario

    사용자 중심 접근(Story와 예제 중심의 형식으로 기술)

    사용자가 시나리오를 사용하여 요구사항 분석 지원

     

    Class Diagram

    도출한 Class간의 관계를 정의하고 검증함으로써 Persistence한 Dataset그들의 관계, 속성들을 결정한다.

    Entity type의 class와 그들의 관계 및 cardinality, 그리고 몇개의 key 속성을 보여준다.

    시스템을 구성하는 클래스의 구성(Attribute, Operation)과 클래스 간의 관계를 표현하기위해 사용

    Class Name, Attribute, Operation, Relationship을 가지고 있음

     

    5 Types of Relationships

    Dependency: 보통 한 메소드 내에서만 사용
    Associate: 보통 한 클래스 내에서만 사용

     

     

    Sequence Diagram

    외부 사용자 또는 Actor가 발생시키는 이벤트, 메시지 호출의 순서 등을 이용하여, 기능적인 요소들이 실시간에 어떤 메시지를 주고 받는지를 설계하기 위한 다이어그램이다.

    Workflow related to Use Case Description

    시간의 흐름에 따라 여러 Object 간의 상호작용을 구성 요소 간의 메시지 전달로 표현합니다. Use case대해 어떻게 Sequence적으로 동작하는지 설명해 줍니다.

     

    LifeLine이 연결되지 않은 경우 순서가 관련이 없다.

    구성요소 : Actor, Lifeline, Synchronous message, Asynchronous message, Response message, Fragment

    Fragment : alt, opt , loop , break, seq , strict, par, critical, ignore, consider, assert, neg

     

    State Machine Diagram

    목표 시스템이 State 종속적으로 실행되는 Behavior를 가지고 있을 때, 상태와 상태 간에 전이에 관련된 설계입니다. State Machine이 이벤트에 따라 어떠한 상태변화가 있는지를 모델링하는 다이어그램입니다.

    Transition(전이), Event, Guard, Action

    Event가 발생하면 현재 상태에 따라 상태 Transition이 발생한다. Guard를 만족하지 못하면 이벤트가 발생하지 않는다. State가 변경되면 entry, exit, do에 명시된 Action이 발생한다.

    Final State(동심원)은 실제로 존재할 수 있는 State이지만 Terminated Node(X 모양)은 아예 State Machine이 종료된다.

     

    Timing Diagram

    상호작용 다이어그램의 일종으로서 상호작용에 참여하는 생명선의 상태 변화 및 메시지에 대하여 정확한 시간적 정보를 표현하는데 편리하다.

     

    Activity Diagram

    여러 Action들이 순차 병행 방식 등을 수행하는 상황을 표현합니다.

    복잡한 Workflow병행 처리, 시간 제약이 있는 중요한 알고리즘에 대한 설계입니다.

    Action을 묶어 Activity로 나타낼 수도 있습니다.

    또한 설계단계에서는 클래스나 컴포넌트의 알고리즘을 Activity Diagram을 통해서 표현할 수도 있습니다.

     

    Symbol : Action / Activity, Synchronization(Fork/Join), Decision / Merge, Edge(Control Flow, Object Flow, Event Flow), SwimLane, Event(Send, Receive)

     

    Component Diagram

    클래스 기반 실행 단위인 컴포넌트 단위로 시스템 구조를 표현하는 다이어그램입니다. 복잡하고 시스템에서 내부 의존성과 구조를 나타내는 설계입니다.

     

    Deployment Diagram

    실행시점의 시스템의 구조를 모델링하기 위한 다이어그램으로, 하드웨어 구성과 소프트웨어 배치구성을 표현합니다. 즉, 소프트웨어가 구동되는 컴퓨팅 노드와 노드 간의 연결관계를 나타냅니다.

    • Node: 시스템을 구성하는 소프트웨어 컴포넌트가 배치(Deploy)되어 수행되는 하드웨어 자원을 뜻한다.
    • Artifacts: 물리적인 형태의 모든 정보. (모델 파일, 소스 코드, 산출물, 실행 파일)

     

    UML Constructs for Parallel Processing

    시퀀스 다이어그램의 “par” combined fragment(복합적 부분)를 이용하여 표현 가능

    Activity 다이어그램의 Fork를 이용하여 표현가능

    State 다이어그램의 Fork를 이용하여 표현가능

     

    Consistency (UML간 일관성을 갖춰야 한다)

    Among Use Case Model, Class Diagram & Sequence Diagram

    Sequence Diagram의 화살표가 가리키는 Method가 Class 다이어그램에서 Public method로 정의되어 있어야 한다.

    Use Case 다이어그램에서 명시된 use case는 Sequence 다이어그램에서 Activity나 Action으로 표현되어야 한다.

    Use Case 다이어그램에서 정의된 Actor가 명시되어 있는 특정 Use Case를 달성하기 위해 Class 다이어그램에 정의된 Object와 어떤 Interaction을 가지는지 Sequence 다이어그램을 통해 표현된다.

    Between State Machine Diagram & Class Diagram

    일반적으로 Class 다이어그램은 persistence한 data를 표현한다. Class 하나에 대해서 state machine 다이어그램을 그린다. state machine 다이어그램의 event는 class 다이어그램의 Public method가 되어야 한다.

    Between Activity Diagram & Use Case Diagram

    Use case 다이어그램의 Use case는 Action으로 나타나야 한다.

    'IT Fundamental Concept > OOAD' 카테고리의 다른 글

    OOP Concept  (1) 2020.02.29
    SOLID Principle  (0) 2019.12.03
Designed by Tistory.