I. 소프트웨어 엔지니어의 경험, 디자인 패턴(Design Patten)의 개요
가. 디자인 패턴(Design Patten)의 정의
- 프로그래머들이 유용하다고 생각되는 객체들의 일반적인 상호 작용 방법들을 모은 목록
- 여러 번 반복하여 사용할 수 있는 문제에 대한 솔루션을 기술한 것[Gamma]
- 소프트웨어 엔지니어의 경험으로 실제 프로젝트에서 문제 해결을 위해 반복적으로 사용되는 해결책의 핵심 사항을 정리한 목록
나. 디자인 패턴의 이점
- 개념화와 다이어그램으로 표현이 쉽고 해결법을 재사용 가능
- 분석과 설계에 대한 추상적인 관점을 제공
다. 디자인 패턴의 목적
- 전문가들의 설계 노하우를 다른 개발자가 이해하고 적용 할 수 있는 형태로 제공
- 확장성, 재사용성, 유지보수성이 좋은 소프트웨어를 설계/구현
- 안정적인 소프트웨어 개발을 위한 기법
라. 디자인 패턴의 주요 특징 및 유형, 장단점
- 구현(Implementation) 클래스가 아니라, 인터페이스(Interface)를 활용
- 다형성 강화, 내부 변화에 영향을 받지 않음
- 상속(Inheritance)가 아니라 위임(Delegation)을 사용
- Loosely Coupling 최소화 (낮은 결합도 추구)
II. GoF(Gang of Four)의 디자인 패턴(Design Patten) 형식과 종류
가. 디자인 패턴(Design Patten)의 형식
구분 |
내용 |
패턴명 |
패턴 자체의 내용을 효과적으로 전달할 수 있는 이름 |
유형(Classification) |
여러 개의 패턴을 체계적으로 분류 - 생성(Creational): 객체들의 생성과 관련된 패턴 - 구조(Structure): 클래스, 객체의 정적인 구조와 관련된 패턴 - 행위(Behavioral): 클래스와 객체의 반응과 책임 할당 |
목적 |
이 패턴이 무엇을 하며 어떤 의도로 작성되었는지 무엇을 해결하는지를 설명하여 기술 |
별칭 |
위의 공식적인 이름 외에 잘 알려진 다른 명칭 |
구조 (Structure) |
패턴 안에서 문제를 해결하기 위해 사용되는 클래스와 객체의 구조를 UML 다이어그램으로 표현 |
구성요소 |
구조항목에 포함된 각종 클래스, 객체의 의미와 그 책임을 설명 |
협력과정 |
각 클래스와 객체가 자신에게 맡겨진 책임을 수행하기 위해 서로 메시지를 주고 받는 과정을 묘사 |
구현 |
패턴을 구현할 때 고려사항과 힌트, 함정, 방법, 프로그래밍 언어별 주의할 점등을 기술함 |
샘플코드 |
특정 언어로 패턴을 구현한 예제, 실제로 사용되는 시스템에서 발견되는 패턴의 예제 |
솔루션 |
패턴이 목적을 달성하기 위해 어떤 면을 해결하는지 설명하고 패턴을 적용한 때 발생할 수 있는 문제점과 패턴 적용시 효과 등을 기술 |
관련 패턴 |
본 패턴과 유사하거나 밀접하게 관련된 다른 패턴 |
'정보관리기술사 > 소프트웨어공학' 카테고리의 다른 글
소프트웨어 품질관리 (0) | 2014.06.22 |
---|---|
5-Force (0) | 2014.03.17 |
UML(Unified Modeling Language) (0) | 2014.03.14 |
SW 분할발주 (0) | 2014.03.09 |
제안서(Proposal) (0) | 2014.03.08 |