일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- bootstrap4 패키지
- flask
- openweathermap
- #undef
- #ifndef
- DB 데이터 저장
- Django
- PyQt5
- 환경변수 설정
- jinja2
- 실시간 시계
- 콘솔 가상환경 # 콘솔 #가상환경
- #ifdef
- OpenCV
- VS Code
- #if
- DB 데이터
- 성능지표
- heroku
- 명령어
- javascript
- 튜토리얼
- #endif
- OpenCV + Flask
- href
- Action
- 사이트 도메인
- MySQL 세팅
- bootstrap
- #else
- Today
- Total
PROGRAMMING
UML Diagram 본문
1. 정의
: Unified Modeling Language의 약자로 모형 생성을 위한 표준 언어임.
- 그래픽 표기법의 집합
- 단일 메타모델 기반
- 객체지향 방식
2. 용도
: 모델의 복잡성이 증가할수록 코드로 구현하는 방식보다 UML을 사용해 표현하는 방식의 생산성이 더 높음.
- 의사소통/논의
- S/W 시스템 표현/설계 도움
- 전체 시스템 파악 및 유지보수
3. 종류
: 크게 Structure Diagram, Behavior Diagram으로 구분됨.
- 주로 사용하는 다이어그램은 Class, Use case, Sequence diagram임.
4. 다이어그램 표기
1) 가시성
2) Class
3) Object
4) Static field, Static method
5) Package, Module, Interface
6) Relationship
7) Example
5. 추상 클래스(abstract Class), 상속(Inheritance), 인터페이스(Interface)
1) 추상화
- 정의: 자료, 모듈, 시스템 등에서 필요한 것만 남기고 나머지는 버리는 것.
- 의도: 단순화 ( ※ 일반화의 의도: 공통점 도출 )
→ 추상화(주관적)/일반화(객관적) 모두 클래스의 상속 개념으로 표현이 가능함.
2) 추상 클래스
- 추상 메서드를 하나 이상 가지고 있는 클래스. 추상 클래스의 메서드는 이름만 존재하고 내부 내용이 없음.
→ 인스턴스화 불가
3) 상속
- 기반 클래스의 속성(property)과 기능(method)를 파생 클래스에서 사용할 수 있음.
- 파생 클래스에서 기반 클래스의 속성이나 기능을 새로운 방식으로 활용할 수 있음(override).
- 파생 클래스 객체 생성 시 기반 클래스 생성자가 실행된 후 파생 클래스 생성자가 실행됨.
4) 인터페이스
- 속성(property)이 없고 모든 메서드가 추상 메서드의 형태를 가짐.
6. Relationship
1) 연관 관계(Association)
- 참조하는 클래스는 해당 타입의 필드를 사용
- 숫자 또는 와일드카드(*)를 사용하여 참조 수를 표기 가능
2) 집합 관계(Aggregation)
- 약한 결합 관계. 세트를 구성하기 위한 골재(aggragate) 또는 원소로 사용은 되나 필수 요소는 아님.
3) 합성 관계(Composition)
- 강한 결합 관계. 세트를 구성하기 위해 합성되어야 하는 관계로 필수 요소임. (생성 및 삭제 시 생/사 여부를 함께함)
4) 실제 관계(Realization)
- 인터페이스(interface)와 같이 객체화가 불가한 기능을 실제가능한 클래스로 표기할 때 사용함.
5) 일반화 관계(Generalization)
- 상속된 파생 클래스의 (기반 클래스와의) 일반화 관계를 표기할 때 사용함.
6) 의존 관계(Dependency)
- 다른 클래스 간 의미적 관계. 한 쪽 변화가 다른 쪽에 영향을 끼칠 수 있음.
- (ex) 한쪽 객체의 실행 도중 다른 쪽의 실행 요청
- Class ↔ Class, Package ↔ Package, Component ↔ Component (다른 종류끼리도 의존 관계 성립 가능)
7. 종류별 Diagram 예시
[URL - ⓐ] https://www.youtube.com/watch?v=WnMQ8HlmeXc&t=2765s&ab_channel=freeCodeCamp.org
8. Other component
1) 스테레오타입(Stereotype)
- 사용할 개체의 특징을 더욱 구체적으로 표현하기 위해 사용함.
- The angel bracket(<< >>)을 활용하여 표시함.
2) 제약(Constraint)
- 조건이나 제약사항을 natural language or machine-readable language로 표현하는데 사용함.
3) Sequence diagram component
A. Actor
- actor는 subject와의 상호작용을 수행함.
- actor는 사용자, 외부 도구, 다른 actor가 수행할 일을 표시
B. LifeLine
- 개개의 구성요소(participant)의 상호작용 및 시간 여정을 표시
C. Activation
- Lifeline에서 얇은 사각형으로 표시되며 각종 작업을 수행하는 시간을 의미함.
D. Call Message
- 스트림 패킷, 데이터(메세지), 실행명령, 제어흐름 등을 요청하는 메세지.
- (ex) TCP-IP와 같은 IP 통신체계에서는 패킷 발신/수신을 여부를 파악하기 위해 사용됨.
- 화살표(실선)을 사용함.
E. Create Message
- 요청받은 메세지 내용을 처리한 결과 등을 반환하는 데 활용
- 화살표(점선)을 사용함.
F. Destroy Message
- 'X' 도형을 사용하여 해당 메세지를 파기함을 표기함.
'프로그래밍 언어 공통 > OOP' 카테고리의 다른 글
OOP 설계 원칙 SOLID (0) | 2022.05.29 |
---|---|
Class (0) | 2022.05.23 |
Data structure (0) | 2022.05.23 |