[정보처리기사 실기-2] 이것만 보면 합격-객체지향디자인(UML, 디자인패턴), SW아키텍처, 4+1뷰
<2회>
※ 객체지향관계특성 : 연집분일특
- 연관성(Association) : is-member-of 관계
- 집단화(Aggregation) : is-part-of 관계
- 분류화(Classification) : is-instance-of 관계
- 일반화(Generalization) : is-a 상속관계 (오버라이딩)
- 특수화(Specialization) : is-a 재정의관계 (오버로딩)
※ 객체지향디자인
- UML : (그림으로 보여줘) SW 설계시 산출물을 명세화, 시각화, 문서화할 때 사용되는 표준화된 범용 모델링 언어
- 정적 : 클객컴배복패
- 클래스 : 정적구조
- 클래스 다이어그램 구성요소 : 클속메접
- 클래스(패키지) = 속성(특성) + 메서드(연산) + 접근제어자(접근제어)
- 객체 : 객체(인스턴스)
- 컴포넌트 : 컴포넌트
- 배치 : 컴포넌트간 종속성
- 복합체구조 : 복합구조
- 패키지 : 패키지
- 동적 : 시스콜액
- 시퀀스 : (시간의 흐름에 따라) 객체들간의 메시지 흐름 시각화
- 시퀀스 다이어그램 구성요소 : 객생실메
- 객체, 생명선, 실행, 메시지
- 스테이트 : (") 객체/클래스의 상태변화 시각화
- 콜라보레이션 (=커뮤니케이션) : (") 객체들간 상호작용 과정 시각화
- 액티비티 : (") 기능 처리 흐름 시각화
- 기능적 : 유스케이스 (외부 자극에 시스템 반응 시각화)
- 디자인패턴 : (글로 보여줘) SW 설계시 공통적으로 발생하는 문제에 대한 해결법을 정리한 패턴
- 생성패턴 : 추빌팩프싱
- 추상팩토리 : 구체적인 클래스 의존하지 않고 API로 I/F 제공
- 빌더 : 복잡한 인스턴스를 조립하여 구조 생성
- 팩토리메쏘드 : 책임위임패턴으로, 상위 클래스는 I/F 정의 & 하위 클래스는 인스턴스 생성
- 프로토타입 : 기존 객체를 복사하여 필요한 부분만 수정하여 사용
- 싱글톤 : 전역변수 사용 대신 1클래스 1객체로 제한하여 어디서든 참조할 수 있도록 사용
- 구조패턴 : 데브프플어퍼컴
- 데코레이터 : 객체간 결합하여 기능 확장
- 브릿지 : 기능 클래스 계층 <-> 구현 클래스 계층 연결
- 프록시 : 객체 접근 제어 (정보은닉 역할 수행)
- 플라이웨이트 : 클래스 공유화로 클래스의 경량화
- 어댑터 : 기존에 생성된 클래스를 재사용하기 위한 I/F 생성
- 퍼사드 : Facade, 복잡한 시스템에 단순한 통합 I/F 제공
- 컴포짓 : 객체간 관계를 트리구조로 구성하여 단일객체/복합객체를 동일하게 취급
- 행위패턴 : 템커옵스스
- 템플릿메쏘드 : 소스 일부분을 서브 클래스로 캡슐화
- 커맨드 : 실행될 기능을 객체로 캡슐화
- 옵저버 : 객체들을 연동하여 한 객체가 상태 변화시 다른 객체도 영향 끼침
- 스테이트 : 객체 상태를 캡슐화하여 상태 변화시 행위 내용 변경
- 스트레티지 : 행위를 클래스로 캡슐화
※ 아래 다이어그램은?
→ 패키지 다이어그램 (각 패키지끼리 의존관계 표현)
※ UML 구성요소 3요소 : 사관다
- 사물(Things), 관계(Relationships), 다이어그램(Diagram)
※ UML 관계
일반화관계
실체화관계
연관관계
의존관계
복합관계
집합관계
※ UML 스테레오 타입
<<include>> : 유스케이스 포함관계 (A 유스케이스가 반드시 B 유스케이스를 실행시킴)
<<extend>> : 유스케이스 확장관계 (A 유스케이스가 B 유스케이스를 실행시킬수도, 아닐수도 있음)
※ SW아키텍처 : SW를 구성하는 구성요소 간의 관계를 표현하는 시스템 구조 또는 구조체
- SW아키텍처 프레임워크 : SW 아키텍처가 표현하는 내용 및 아키텍처간 상관관계를 제공하는 아키텍처 기술표준
- SW아키텍처 패턴 : 계클파브엠
- SW아키텍처 패턴 정의 : SW 설계시 참조할 수 있는 전형적인 해결방식
- 계층화패턴 : 계층화된 시스템에서 사용
- 클라이언트-서버패턴 : 서버-클라이언트 시스템에서 사용
- 파이프-필터패턴 : 데이터 스트림 생성 및 처리하는 시스템에서 사용
- 브로커패턴 : 분리된 컴포넌트 시스템에서 사용
- MVC패턴 : 모델-뷰-컨트롤러로 구성된 시스템에서 사용
※ 4+1뷰 : 유논프구배
- 유스케이스뷰 : 다른 뷰 검증용 뷰
- 논리뷰 : 시스템 요구사항 설명해주는 뷰
- 프로세스뷰 : 자원의 효율적 사용을 위한 뷰
- 구현뷰 : 정적 sw 모듈 구성을 보여주는 뷰
- 배포뷰 : 컴포넌트 배치를 보여주는 뷰