Please enable JavaScript.
Coggle requires JavaScript to display documents.
UML (개요 (관점(View)
하나의 시스템을 구현하는데 다양한 참여자들이 관여하기 때문에 각 참여자들의 시각에 알맞은 관점이…
UML
개요
관점(View)
- 하나의 시스템을 구현하는데 다양한 참여자들이 관여하기 때문에 각 참여자들의 시각에 알맞은 관점이 필요함
기능(Use case)
- 외부 액터에 의해 인식되는
- 시스템의 기능 요구사항을 보여줌
- 다른 4가지의 관점을 유도하는 중심적 역할
설계(논리 / Design)
- 기능적/비기능적 요구사항을 달성하기 위한
- 시스템 내부의 설계를 보여줌
프로세스(Process)
- 시스템을 구성하는 프로세스 / 스래드 및 동기화와 관계를 보여줌
구현(Implementation :)
- 시스템을 구성하는 물리적인 컴포넌트 및 그들의 관계를 보여줌
배치(Deployment)
- 시스템을 구성하는 장치간의 통신방법에 초점을 둠
- 시스템의 구성하는 노드와 그들 사이의 관계를 보여줌
정의
모델링(Modeling)
- 모델을 만드는 작업(Abstraction)으로써 품질이 좋은 S/W를 개발 및 배치할 수 있게하는 행동
모델(Model)
- 현실의 단순화 및 가시화를 통해 개발 시스템의 계획/구상을 표현
-
목적
- 시스템을 원하는 모습으로 가시화
- 시스템의 구조와 행동을 명세화
- 시스템을 구축하는 기본 형태
- 시스템 문서화
- 즉, 시스템의 '객체지향적' 개발 과정에서 생성되는 산출물의 명세화, 시각화, 문서화하기 위해 사용되는 모델링 언어
매커니즘
- 산출물을 생성하기 위해 다음과 같은 기능을 제공함
명세(Specification)
- 정확한 구문과 의미를 위해 표준화된 명세법을 제공한다.
장식(Adornment)
- 각 요소는 표현을 위해 고유의 그래픽 표기를 제공한다.
공통분할(Common Division)
- 클래스 - 객체, 인터페이스 - 구현과 같은 공통분할 개념을 제공한다.
확장 메카니즘(Extensibility Mechanism)
- 기존 모델로 표현하기에 부족한 부분을 확장하는 기능
- 기본 요소 이외에 새로운 요소 생성
- 속성을 확장하여 세로운 정보를 추가
- 이전의 규칙을 수정하거나 새롭게 생성
다이어그램의 종류
- 다양한 관점에서 시스템을 가시적으로 표현하기 위해 다이어그램이 사용된다
구조 다이어그램
클래스 다이어그램
- 시스템을 구성하는 클래스구조의 연관 관계를 표현
-
배치 다이어그램
- 노드에 존재하는 컴포넌트의 물리적 구성을 표현
컴포넌트 다이어그램
- S/W의 물리적 단위의 구성과 의존 관계 표현
행위 다이어그램
순차 다이어그램
- 시스템 내부 객체간의 메시지를 흐름에 따라 표현
-
유스케이스 다이어그램
- 엑터와 시스템을 사용하는 유스케이스의 관계를 구조적으로 표현
-
공학 단계에 따른 분류
분석
작업 활동
분석 클래스 모델 작성
- 추상화를 통해 유스케이스를 클래스로 작성한다.
- 클래스의 속성, 기능을 정의하지 않는다.
- 유스케이스 명세서를 기반으로 클래스가 수행해야 하는 수준으로 내용이 작성된다.
- 논리적인 흐름을 모델링하는 것을 목적으로 함
분석 클래스 모델 상세화
- 각각의 유스케이스에 따른 순차모델을 작성한다.
- 시나리오에 와 추상화 된 객체간의 상호작용을 분석한다.
분석 클래스 모델 조직화
- 유사한 성격을 가진 클래스를 패키지로 묶어 조직화한다.
- 패키지는 적절한 수의 클래스를 포함한다
- 패키지 내부의 클래스들은 밀접한 관련이 있다
- 패키지간의 클래스는 독립적이다
정의
- 정의된 요구사항을 낮은 레벨에서 '최소한의 시스템적 내용'을 밭탕으로 정의하는 작업이다
- 분석된 요구사항을 추상화 하여 '어떻게' 구현할 것인가를 결정하기 위해 작성함
MVC(Model-View-Controller) 패턴
- 객체지향 패러다임의 가장 기본적 아키텍쳐
- Boundary, Control, Entity영역으로 시스템 아키텍쳐를 정의함
- 이 3영역에 알맞게 유스케이스를 클래스로 나누어 정의함
설계
정의
- 분석된 내용이 쉽게 구현 될 수 있도록 구현 내용을 미리 살펴보기 위한 보델을 작성함.
작업 활동
시스템 아키텍쳐 설계
- 구체적인 시스템 환경을 선정하고 요구사항을 반영, 시스템 용량 검토, 시스템 구성(장애대응, 파일 시스템 설계) 등을 검토함
- 비기능적 요구사항을 충족 할 수 있는지 검토함
응용 아키텍쳐 설계
- 기능적 요구사항을 실질적으로 제공하는 S/W요소들을 확인함
- 분석 단계에서 도출된 분석 클래스 모델을 이용해 컴포넌트를 생성하고
- 이를 토대로 실현 모델을 생성함
- 그리고 생상된 실현 모델을 시스템 환경에 어떻게 배치할지 검토함
컴포넌트 설계
- 플래폼을 연계하여 상세화를 진행함
- 구체적인 속성, 기능명이 정해짐
요구사항 정의
기능 / 비기능 요구사항
기능적 요구사항 정의
- 프로그램이 수행해야 하는 행위를 구체화 한것
- 기능과 서비스에 관련있음
- ex) 통화 버튼을 누르면, 선택된 항목과 통화를 시도한다.
비기능적 요구사항 정의
- 행위와 관련된 제약사항, 시스템이 가져야하는 기능 이외의 요구사항을 정의함
- 성능과 신뢰성 및 보안과 연관있음
- ex) 통화버튼을 누르면 N초 이내에 통화 연결이 되어야한다.
정의
- 사용자가 필요로 하는 기능/성능 등 시스템이 만족해야할 조건을 기술하는 것
작업 활동
유스케이스 모델 작성
- 사용자의 기능적 요구사항을 반영해 작성한다.
- 시스템의 유스케이스와 유스케이스, 유스케이스와 엑터의 상호작용을 보여주는것에 초점
유스케이스 상세화
- 정의된 유스케이스 내부에는 유스케이스가 엑터에게 입력을 받아서, 제공하는 과정들이 포함되어 있다. 그 시나리오를 유스케이스 명세서로 작성한다.
유스케이스 모델의 구조화
- 적절한 크기의 유스케이스가 되도록 구조화한다.
- 지나치게 작은 유스케이스는 통합 or 삭제
- 지나치게 큰 유스케이스는 쪼갠다.
- extend, include는 명확한 경우에만 사용하여 정리한다.
유스케이스 모델의 조직화
- 비슷한 유스케이스를 Package로 묶어 조직화한다.
다이어그램
행위 다이어그램
순차 다이어그램
개요
- 객체간의 시간-순서 이번트를 표현하는것을 목적으로 함
- 객체간의 메시지 교환 순서를 시간의 흐름에 따라 보여주는 다이어그램
-
상태 다이어그램
개요
- 객체 내부의 상태나 단계 표현을 목적으로 함
- 이벤트에 따라 객체의 상태전이를 보여주는 다이어그램
구성
- 상 태 : 객체가 존재하는 조건 중 하나
- 전 이 : 객체의 상태가 다른 상태로 가는것
- 이벤트 :전이를 유발하는것
유스케이스 다이어그램
용도
- 시스템에 대한 요구사항을 정의할때 사용함
- 시스템이 제공해야하는 기능을 표현함으로써 기능적 범위를 결정함
- 비기능적 요구사항은 반영하지 않음
구성
엑터(Actor)
- 개발될 시스템 외부에 존재하는 대상임
- 시스템과 상호작용을 하는 모든 것
- ex) 외부 사용자, 다른 시스템
유스케이스(Use-case)
- 시스템이 제공하는 단위 기능
- 엑터의 관점에서 엑터에게 의미가 있는 결과를 제공하는 기능의 단위
- 모든 유스케이스를 합하면 시스템이 제공하는 전체 기은이 됨
개요
- 시스템의 외부 요소와 기능적 요구사항을 엑터와 유스케이스로 표현한 다이어그램
- 시스템의 유스케이스와 유스케이스, 유스케이스와 엑터의 상호작용을 보여주는것에 초점
개요
- 시스템 내부의 제어 흐름을 보여주는 것을 목적으로 함
- 단일 시스템 내부에서 발생하는 행동을 보여주는 다이어그램
구성
- 활동 : 단계별로 행해지는 동작
- 조건 : 특정한 조건에 따른 분기
- 구획면 : 활동의 주체를 나눔
- 동시경로 : 동시에 길이 실행되었다 모이는 경우
구조 다이어그램
클래스 다이어그램
개요
- 시스템의 구조 기술을 목적으로 함
- 시스템을 구성하는 클래스의 관계를 기술하는 다이어그램
- 전반적으로 폭넓게 사용됨
-
배치 다이어그램
개요
- 하드웨어에 소프트웨어의 물리적 요소를 매핑하는것을 목적으로 함
- 시스템을 구성하는 노드와 통신 경로, 물리적 컴포넌트를 기술한 다이어그램
구성
- 노드 : S/W컴포넌트가 탑제될 H/W자원을 의미
- 컴포넌트
- 연결
컴포넌트 다이어그램
개요
- 컴포넌트의 구조화를 목적으로 함
- 컴포넌트의 의존관계를 보여주는 다이어그램
구성
- 컴포넌트 : 전체 시스템을 구성하는 하나의 구성요소
- 인터페이스 : 컴포넌트가 외부에 공개하고 있는 모습(규약, 명세)