![#2B742E]
POSA
Pattern Oriented Software Architecture
Pattern ?
Patterns are conceptual solutions to recurring design problems that exist in a defined context
- 다양한 Application Software System 을 개발할 때 서로 간에 공통되는 설계 문서가 존재하며, 이를 처리하는 해결책 사이에 공통점이 있다. 이러한 유사점을 패턴이라 한다.
- Pattern은 팀원 사이의 의사 소통을 원할하게 해주는 역할을 한다.
Level of Pattern
- Architectural Pattern
- Design Pattern
- Conding Pattern (Programming idiom)
Architectural Pattern
소프트웨어 아키텍쳐에서 일반적으로 발생하는 문제점들에 대한 일반화되고 재사용 가능한 솔루션이다.
- 간략성 : 이해하고 추론할수 있을 정도의 간결성을 유지
- 추상화 : 시스템의 추상적인 표현을 사용
- 가시성 : 시스템이 포함해야 하는 것들을 가시화
- Architecture Description(AD)
: 아키텍처를 기록하기 위한 산출물을 의미
하나의 AD는 System의 하나 이상의 View로 구성
- 이해관계자
: 소프트웨어 시스템 개발에 관련된 모든 사람과 조직
- 관심사
: 동일 시스템에 대해 서로 다른 이해관계자의 이해
- 관점
: 서로 다른 역할이나 책임으로 시스템이나 산출물에 대한 서로 다른 관점
- View (4+1 View)
: 이해 관계자들과 이들이 가지는 생각이나 견해로부터 전체 시스템 표현
- 종류
- 계층화 패턴 (Layered pattern)
- 클라이언트-서버 패턴 (Client-server pattern)
- 마스터-슬레이브 패턴 (Master-slave pattern)
- 파이프-필터 패턴 (Pipe-filter pattern)
- 브로커 패턴 (Broker pattern)
- 피어 투 피어 패턴 (Peer-to-peer pattern)
- 이벤트-버스 패턴 (Event-bus pattern)
- MVC 패턴 (Model-view-controller pattern)
- 블랙보드 패턴 (Blackboard pattern)
- 인터프리터 패턴 (Interpreter pattern)
Design Pattern
GoF : Gang of Four
A solution to a problem in a context
Coding Patern
프로그래밍 언어로 제작된 간단한 작업이나 알고리즘, 데이터 구조등을 일반적으로 의미한다.
주어진 언어의 기능을 사용하여 구성 요소의 특정 측면 또는 구성 요소 간의 관계를 구현하는 방법이다.
소프트웨어에서 로깅이나 동기화 처리 등 모듈화가 곤란한 기능과 프로그래밍의 상용구 등이 코딩 패턴으로 추출된다.