Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 스프링 mvc1 - 스프링 mvc
- 스프링 입문(무료)
- 자바의 정석 기초편 ch9
- 자바의 정석 기초편 ch2
- 2024 정보처리기사 수제비 실기
- 스프링 db2 - 데이터 접근 기술
- 자바의 정석 기초편 ch11
- 자바의 정석 기초편 ch8
- 코드로 시작하는 자바 첫걸음
- 타임리프 - 기본기능
- 자바의 정석 기초편 ch12
- 스프링 mvc1 - 서블릿
- @Aspect
- 자바의 정석 기초편 ch7
- 스프링 mvc2 - 로그인 처리
- 자바의 정석 기초편 ch14
- 자바의 정석 기초편 ch1
- 스프링 mvc2 - 검증
- 자바의 정석 기초편 ch13
- 자바의 정석 기초편 ch5
- 스프링 mvc2 - 타임리프
- 스프링 고급 - 스프링 aop
- 자바의 정석 기초편 ch6
- jpa 활용2 - api 개발 고급
- 게시글 목록 api
- 스프링 db1 - 스프링과 문제 해결
- 자바의 정석 기초편 ch3
- 2024 정보처리기사 시나공 필기
- jpa - 객체지향 쿼리 언어
- 자바의 정석 기초편 ch4
Archives
- Today
- Total
나구리의 개발공부기록
1장 - 요구사항 확인 | 섹션 9. UML(Unified Modeling Language), 섹션 10. 주요 UML 다이어그램 본문
2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비)/필기 1강 - 소프트웨어 설계
1장 - 요구사항 확인 | 섹션 9. UML(Unified Modeling Language), 섹션 10. 주요 UML 다이어그램
소소한나구리 2024. 4. 14. 23:042024년도 시나공 필기 책 내용 정리
섹션9. UML(Unified Modeling Language)
1. UML (Unified Modeling Language)의 개요
- 시스템 분석, 설계, 구현 등 시스템 개발 과정에서 시스템 개발자와 고객 또는 개발자 상호간의 의사소통이 원할하게 이루어 지도록 표준화한 대표적인 객체지향 모델링 언어
- Rumbaugh(OMT), Booch, Jacobson 등의 객체지향 방법론의 장점을 통합하였고, 객체 기술에 관한 국제표준화기구인 OMG(Object Management Group)에서 표준으로 지정
- UML을 이용하여 시스템의 구조를 표현하는 6개의 구조 다이어그램과 시스템의 동적을 표현하는 7개의 행위 다이어그램을 작성할 수 있음
- 각각의 다이어그램은 사물과 사물 간의 관계를 용도에 맞게 표현하며 구성 요소에는 사물(Things), 관계(Relationships), 다이어그램(Diagram)등이 있음
2. 사물(Things)
- 모델을 구성하는 가장 중요한 기본 요소, 다이어그램 안에서 관계가 형성될 수 있는 대상들을 말함
사물 | 내용 |
구조 사물(Structural Things) | 시스템의 개념적, 물리적 요소를 표현 클래스(Class), 유스케이스(Usecase), 컴포넌트(Component), 노드(Node)등 |
행동 사물(Behavioral Things) | 시간과 공간에 따른 요소들의 행위를 표현 상호작용(Interaction), 상태 머식(State Machine) 등 |
그룹 사물(Grouping Things) | 요소들을 그룹으로 묶어서 표현 패키지(Package) |
주해 사물(Annotation Things) | 부가적인 설명이나 제약조건 등을 표현 노트(Note) |
3. 관계(Relationships)
- 사물과 사물 사이의 연관성을 표현하는 것, 연관 관계, 집합 관계, 포함 관계, 일반화 관계, 의존 관계, 실체화 관계 등이 있음
연관(Association)관계
- 2개 이상의 사물이 서로 관련되어 있음을 표현
- 사물 사이를 실선으로 연결하여 표현, 방향성은 화살표로 표현
- 서로에게 영향을 주는 양방향 관계의 경우 화살표를 생략하고 실선으로만 연결
- 연관에 참여하는 객체의 개수를 의미하는 다중도(Multiplicity)를 선 위에 표기
다중도 | 의미 |
1 | 1개의 객체가 연관되어 있다 |
n | n개의 객체가 연관되어 있다 |
0..1 | 연관된 객체가 없거나 1개만 존재 한다 |
0..* 또는 * | 연관된 객체가 없거나 다수일 수 있다 |
1..* | 연관된 객체가 적어도 1개 이상이다 |
n..* | 연돤된 객체가 적어도 n개 이상이다 |
n..m | 연관된 객체가 최소 n개에서 최대 m개이다 |
집합(Aggregation)관계
- 하나의 사물이 다른 사물에 포함되어 있는 관계를 표현
- 포함하는 쪽(전체, Whole)과 포함되는 쪽(부분, Part)은 서로 독립적임
- 포함되는 쪽에서 포함하는 쪽으로 속이 빈 마름모를 연결하여 표현
포함(Composition)관계
- 집합 관계의 특수한 형태로 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계를 표현
- 포함하는 쪽(전체, Whole)과 포함되는 쪽(부분, Part)은 서로 독립될 수 없고 생명주기를 함께함
- 포함되는 쪽에서 포함하는 쪽으로 속이 채워진 마름모를 연결하여 표현
일반화(Generalization)관계
- 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지 표현
- 예를 들어 사람은 여자와 남자보다 일반적인 개념이고 반대로 여자와 남자는 사람보다 구체적인 개념이 됨
- 보다 일반적인 개념을 상위(부모), 보다 구체적인 개념을 하위(자식)이라고 부름
- 구체적인 사물(자식)에서 일반적인 사물(부모) 쪽으로 속이 빈 화살표를 연결하여 표현
의존(Dependency)관계
- 연관 관계와 같이 사물 사이에 서로 연관은 있으나 필요에 의해 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계를 표현
- 하나의 사물과 다른 사물이 소유 관계는 아니지만 사물의 변화가 다른 사물에도 영향을 미치는 관계
- 일반적으로 한 클래스가 다른 클래스를 오퍼레이션의 매개 변수로 사용하는 경우에 나타나는 관계
- 영향을 주는 사물(이용자)이 영향을 받는 사물(제공자)쪽으로 점선 화살표를 연결하여 표현
실체화(Realization)관계
- 사물이 할 수 있거나 해야하는 기능(오퍼레이션, 인터페이스)으로 서로를 그룹화 할 수 있는 관계를 표현
- 한 사물이 다른 사물에게 오퍼레이션을 수행하도록 지정하는 의미적 관계
- 사물에서 기능 쪽으로 속이 빈 점선 화살표를 연결하여 표현
4. 다이어그램(Diagram)
- 사물과 관계를 도형으로 표현한 것
- 여러 관점으로 시스템을 가시화한 뷰(view)를 제공함으로써 의사소통에 도움을 줌
- 정적 모델링에서는 주로 구조적 다이어그램을 사용하고 동적 모델링에서는 행위 다이어그램을 사용
구조적 다이어그램(Structural)의 종류
클래스 다이어그램 (Class Diagram) |
클래스와 클래스가 가지는 속성, 클래스 사이의 관계를 표현 시스템의 구조를 파악하고 구조상의 문제점을 도출 할 수 있음 |
객체 다이어그램 (Object Diagram) |
클래스에 속한 사물들 즉 인스턴스(Instance)를 특정 시점의 객체와 객체 사이의 관계로 표현 럼바우(Rumbaugh) 객체지향 분석 기법에서 객체 모델링에 활용됨 |
컴포넌트 다이어그램 (Component Diagram) |
실제 구현 모듈인 컴포넌트 간의 관계나 컴포넌트 간의 인터페이스를 표현 구현 단계에서 사용되는 다이어그램 |
배치 다이어그램 (Deployment Diagram) |
결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현 노드와 의사소통 경로로 표현 구현 단계에서 사용되는 다이어그램 |
복합체 구조 다이어그램 (Composite Structural Diagram) |
클래스나 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를 표현 |
패키지 다이어그램 (Package Diagram) |
유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현 |
행위 다이어그램(Behavioral)의 종류
유스케이스 다이어그램 (Use Case Diagram) |
사용자의 요구를 분석하는 것으로 기능 모델링 작업에 사용 사용자(Actor)와 사용 사례(Use Case)로 구성되며, 사용 사례 간에는 여러 형태의 관계로 이루어짐 |
순차 다이어그램 (Sequence Diagram) |
상호 작용하는 시스템이나 객체들이 주고받는 메세지를 표현 |
커뮤니케이션 다이어그램 (Communication Diagram) |
순차 다이어그램과 같이 동작에 참여하는 객체들이 주고받는 메세지를 표현 메세지뿐만 아니라 객체들 관의 연관까지 표현 |
상태 다이어그램 (State Diagram) |
하나의 객체가 자신이 속한 클래스의 상태변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는지 표현 이벤트에 의한 객체들의 상태변화를 그림으로 표현 럼바우(Rumbaugh)객체지향 분석 기법에서 동적 모델링에 활용 |
활동 다이어그램 (Activity Diagram) |
시스템이 어떤 기능을 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현 오퍼레이션이나 처리 과정이 수행되는 동안 일어나는 일들을 단계적으로 표현 |
상호작용 개요 다이어그램 (Interaction Overview Diagram) |
상호작용 다이어그램간의 제어 흐름을 표현 |
타이밍 다이어그램 (Timing Diagram) |
객체 상태 변화와 시간 제약을 명시적으로 표현 |
스테레오 타입(Stereo type)
- UML에서 표현하는 기본 기능 외에 추가적인 기능을 표현하기 위해 사용
- 길러멧(Guilemet)이라고 부르는 겹화살괄호<< >> 사이에 표현할 형태를 기술
섹션10. 주요 UML 다이어그램
1. 유스 케이스 다이어그램(Use Case)
- 개발될 시스템과 관련된 외부 요소들, 즉 사용자와 다른 외부 시스템들이 개발될 시스템을 이용해 수행할 수 있는 기능을 사용자 관점(View)에서 표현한 것
- 외부 요소와 시스템 간의 상호 작용을 확인할 수 있음
- 사용자의 요구사항을 분석하기 위한 도구로 사용
- 시스템의 범위를 파악할 수 있음
유스케이스 다이어그램의 구성 요소
시스템(System) 시스템 범위(System Scope) |
시스템 내부에서 수행되는 기능들을 외부 시스템과 구분하기 위해 시스템 내부의 유스케이스들을 사각형으로 묶어 시스템의 범위를 표현 |
액터(Actor) | 시스템과 상호작용을 하는 모든 외부 요소로 사람이나 외부 시스템을 의미 주액터 : 시스템을 사용함으로써 이득을 얻는 대상, 주로 사람이 해당 부액터(시스템액터) : 주액터의 목적 달성을 위해 시스템에 서비스를 제공하는 외부 시스템으로 조직이나 기관 등이 될 수 있음 |
유스케이스(Use Case) | 사용자가 보는 관점에서 시스템이 액터에게 제공하는 서비스 또는 기능을 표현 |
관계(Relationship) | 액터와 유스케이스, 유스케이스와 유스케이스 사이에서 나타날 수 있음 연관 관계, 포함 관계, 확장 관계, 일반화 관계를 표현할 수 있음 |
*확장 관계 - 유스케이스가 특정 조건에 부합되어 유스케이스의 기능이 확장 될 때 기존 유스케이스와 확장된 유스케이스와의 관계를 확장 관계라고 함
2. 클래스 다이어그램(Class)
- 시스템을 구성하는 클래스, 클래스의 특성인 속성과 오퍼레이션, 속성과 오퍼레이션에 대한 제약조건, 클래스 사이의 관계를 표현한 것
- 시스템을 구성하는 요소에 대해 이해할 수 있는 구조적 다이어그램이며 시스템의 구성요소를 문서화 하는데 사용됨
- 코딩에 필요한 객체의 속성, 함수 등의 정보를 잘 표현하고 있어 시스템을 모델링 하는데 자주 사용됨
클래스 다이어그램의 구성 요소
클래스(Class) | 클래스는 각각 객체들이 갖는 속성과 오퍼레이션(동작)을 표현 일반적으로 3개의 구획(Compartment)으로 나눠 클래스의 이름, 속성, 오퍼레이션을 표기 속성(Attribute) : 클래스의 상태나 정보를 표현 오퍼레이션(Operation) : 클래스가 수행할 수 있는 동작으로, 함수(메소드, Method)라고도 함 |
제약조건 | 속성에 입력될 값에 대한 제약조건이나 오퍼레이션 수행 전후에 지정해야 할 조건이 있다면 이를 적음 |
관계(Relationship) | 클래스와 클래스 사이의 연관성을 표현 연관 관계, 집합 관계, 포함 관계, 일반화 관계, 의존 관계가 있음 |
*접근제어자 : 속성과 오퍼레이션에 동일하게 적용됨
접근제어자 | 표현법 | 내용 |
public | + | 어떤 클래스에서라도 접근이 가능 |
private | - | 해당 클래스 내부에서만 접근이 가능 |
protected | # | 동일 패키지 내의 클래스 또는 해당 클래스를 상속받은 외부 패키지의 클래스에서 접근이 가능 |
Package | ~ | 동을 패키지 내부에 있는 클래스에서만 접근이 가능 |
3. 순차 다이어그램(Sequence)
- 시스템이나 객체들이 메세지를 주고 받으면 시간의 흐름에 따라 상호 작용하는 과정을 액터, 객체, 메세지 등의 요소를 사용하여 그림으로 표현한 것
- 시스템이나 객체들의 상호 작용 과정에서 주고받는 메세지를 표현
- 각 동적에 참여하는 시스템이나 객체들의 수행 기간을 확인할 수 있음
- 수직 방향은 시간의 흐름을 나타냄
- 클래스 내부에 있는 객체들을 기본 단위로 하여 그들의 상호 작용을 표현
- 주로 기능 모델링에서 작성한 유스케이스 명세서를 하나의 표현 범위로 하지만 하나의 클래스에 포함된 오퍼레이션을 하나의 범위로 표현하기도 함
순차 다이어그램의 구성 요소
액터(Actor) | 시스템으로부터 서비스를 요청하는 외부 요소, 사람이나 외부 시스템을 의미 |
객체(Object) | 메세지를 주고받는 주체 |
생명선(Lifeline) | 객체가 메모리에 존재하는 기간, 객체 아래쪽에 점선을 그어 표현 |
실행 상자(Active Box) | 객체가 메세지를 주고받으며 구동되고 있음을 표현 |
메세지(Message) | 객체가 상호 작용을 위해 주고받는 메세지 |
회귀 메세지(Reply / Return Message) | 객체가 처리한 반환값이 담긴 메세지 |
제어 블록(Loop) | 반복 처리되는 영역을 표시 |
'2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비) > 필기 1강 - 소프트웨어 설계' 카테고리의 다른 글
2장 - 화면설계 | 섹션11. 사용자 인터페이스, 섹션12. UI 설계 도구 (0) | 2024.04.16 |
---|---|
1장 - 요구사항 확인 핵심 요약 (1) | 2024.04.16 |
1장 - 요구사항 확인 | 섹션6. 요구사항 정의, 섹션7. 요구사항 분석, 섹션8. 요구사항 분석 CASE와 HIPO (0) | 2024.04.14 |
1장 - 요구사항 확인 | 섹션4. 현행 시스템 파악, 섹션5. 개발 기술 환경 파악 (0) | 2024.04.07 |
1장 - 요구사항 확인 | 섹션2. 스크럼(Scrum)기법, 섹션3. XP기법(eXtreme Programming) (0) | 2024.04.07 |