본문 바로가기

정보관리기술사/소프트웨어공학

디자인 패턴(Design Patten)

반응형

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