UML(Unified Modeling Language)의 개요
객체지향 모델링 언어이다, OMG에서 표준으로 지정
시스템 구조를 표현하는 6개의 구조 다이어그램과
시스템의 동작을 표현하는 7개의 행위 다이어그램을 작성 가능
UML 구성요소
1. 사물(Things) 다이어그램 안에서 관계가 형성될 수 있는 대상들을 말한다
구조사물 : 물리적 요소 표현, 클래스, 유스케이스, 컴포넌트, 노드 등
행동사물 : 시공간에 따른 요소들의 행위, 상호작용, 상태머신 등
그룹 사물 : 요소들을 그룹으로, 패키지
주해 사물 : 설명, 제약조건, 노트
2. 관계(Relationships)
연관성을 표현한다
- 연관 관계
2개이상의 사물이 서로 관련 사물사이를 실선으로 연결, 방향성은 화살표
양방향은 화살표 생략 – 실선 표시 다중도를 선 위에 표기
- 1 – 1개의 객체와 연관
- n n개의 객체가 연관
- 0..1연관된 객체 없거나 1개
- 0..*또는* 연관된 객체가 없거나 다수
- 1..* 적어도 1개이상 | n..* 적어도 n개이상 연관 | n..m 최소n 최대 m 연관
- 집합 관계(Aggregation)
하나의 사물이 다른 사물에 포함, 서로 독립적, 속이 빈 마름모로 연결
- 포함관계(Composition)
사물의 변화가 포함되는 사물에게 영향을 미치는 관계를 표현, 채워진 마름모로 연결
- 일반화 관계
하나의 사물이 다른 사물에 비해 더 일반적인지(상위), 구체적인지 표현(하위)한다
하위 -> 상위 속이 빈 화살표 연결
- 의존관계
짧은시간동안 연관을 유지하는 관계 소유관계는 아님.
한 클래스가 다른 클래스를 매개변수로 사용하는 경우 나타난다. 이용자 -> 제공자 점선 화살표
- 실체화 관계
그룹화 할 수 있는 관계 사물 -> 기능 빈 점선 화살표
다이어그램(Diagram)***
관계를 도형으로 표현한다
시스템을 가시화한 뷰를 제공, 정적 – 구조적 | 동적 -> 행위 다이어그램 사용
구조적(정적) 다이어그램
- 클래스 : 클래스사이 관계 표현 구조상 문제점 도출
- 객체 : 인스턴스를 관게로 표현, 럼바우 객체지향 분석 기법에서 모델링에 활용
- 컴포넌트 : 모듈인 컴포넌트 간 관계 혹은 인터페이스 표현, 구현단계에서 사용
- 배치(Deployment) : 물리적 요소들의 위치, 노드와 경로, 구현단계
- 복합체 구조(Composite Structure) : 복합구조를 갖는 경우 내부구조 표현
- 패키지 : 그룹화한 패키지 관계 표현
행위(동적) 다이어그램
- 유스케이스 : 사용자 요구 분석, 모델링 작업에 사용. 사용자와 사용사례로 나눠짐
- 시퀀스 : 주고받는 메시지 표현
- 커뮤니케이션 : 메시지뿐만 아니라 객체들간의 연관도 표현
- 상태 : 상호작용에 따라 상태가 어떻게 변화하는지 표현, 럼바우 분석 기법에서 동적 모델링 활용
- 활동 : 처리의 흐름을 순서에 따라 표현
- 상호작용 개요 : 제어 흐름 표현 || 타이밍 : 시간 제약을 명시적으로 표현
*스테레오 타입 : << >> 사이에 표현할 형태를 기술한다
include : 포함
extend : 확장
interface : 인터페이스 정의
exception : 예외 정의
constructor : 생성자 역할 수행
주요 UMI 다이어그램
1. 유스케이스
사용자의 관점에서 표현, 외부요소와 시스템 간의 상호작용 확인 요구사항 분석을 위한 도구로 사용한다
유스케이스 구성요소
시스템 : 시스템 범위
액터 : 상호작용하는 외부요소, 사람 혹은 외부 시스템, 주액터 : 사람 부액터 : 외부시스템
유스케이스 : 사용자의 관점에서 시스템이 액터에게 제공하는 서비스 혹은 기능
관계 : 포함, 확장, 일반화 관계
2. 클래스 다이어그램
- 클래스 사이의 관계, 시스템 구성요소 이해가능 + 문서화, 시스템 모델링
클래스 다이어그램 구성요소
클래스 : 객체들이 갖는 속성과 동작을 표현, 이름, 속성, 오퍼레이션 표기
속성 : 클래스 상태, 정보 오퍼레이션 : 클래스 수행 동작, 함수
제약조건 :수행 전후 지정조건
관계 : 연관성, 연관 집합, 포함, 일반화, 의존관계
3. 시퀀스 다이어그램
객체 상호작용 과정 그림으로 표현
시퀀스 다이어그램 구성요소
액터 : 사람이나 외부 시스템
객체 : 메시지 통신 주체
생명선 : 메모리에 존재하는 기간, 객체 아래에 점선
실행상자 : 구동되고있음을 표현
메시지 : 상호작용을 위해 주고받음
소프트웨어 아키텍쳐 설계과정
목표설정 – 시스템 타입 설정 – 아키텍쳐 패턴 적용 – 서브시스템 구체화 – 검토
상위 설계 : 전체적인 구조 설계
하위설계 : 구조물의 내부구조 설계
아키텍쳐 패턴 : 설계할 때 참조할 수 있는 전형적인 해결 방식 기본적인 윤곽 제시
개발시간 단축, 고품질 sw 생산, 안정적 개발
종류
레이어 패턴 : 시스템을 계층으로 구분하여 구성하는 고전적인 방법 중 하나로,
마주보는 두 계층 사이에만 상호작용을 한다, 변경이 용이하며 예시로는 OSI 참조모델이 있다
클라이언트 – 서버 패턴 : 하나의 서버 컴포넌트, 다수의 클라이언트 컴포넌트로 구성된다
사용자는 클라이언트와 의사소통, 서버는 항상 대기상태 유지
클라이언트와 서버는 요청-응답을 제외하곤 독립적이다
파이프 필터 패턴 : 데이터 스트림 절차의 각 단계를 캡슐화 -> 파이프를 통해 데이터 전송
재사용성, 확장 용이, 다양한 파이프라인 구축 가능하다. 하지만 데이터 이동시 오버헤드가 발생할 수 있다
UNIX shell이 대표적이다
source -> filter1 -> filter2 -> sink
모델 - 뷰 - 컨트롤러 패턴 : 서브시스템을 3개의 부분으로 구조화하는 패턴ㅇ;디
모델 : 핵심기능, 데이터
뷰 : 사용자-정보표시
컨트롤러 : 받은 입력 처리
여러개의 뷰를 제작가능하며, 대화형 어플에 적합한 패턴이다
'CS지식 > 기타' 카테고리의 다른 글
운영체제 명령어 정리(Window&Linux) (0) | 2022.06.20 |
---|---|
TIL 정리_45(ORM이란?) (0) | 2022.04.01 |