디자인 패턴 / 인터페이스 요구사항 검증

2023. 2. 14. 20:02정처기 필기/1과목 - 소프트웨어 설계

디자인 패턴

* 아키텍처 패턴 > 디자인 패턴

* 서브시스템에 속하는 컴포넌트들과 그 관계를 설계하기 위한 참조 모델

  아키텍처는 전체 시스템의 구조를 설계하기 위한 참조 모델

 

1. 생성 패턴 

- 추상 팩토리 : 서로 연관되고 의존 관계가 있는 객체들을 그룹으로 생성하여 추상적으로 표현

- 빌더(생성자) : 객체의 생성 과정과 표현 방법 분리 -> 동일한 객체를 생성해도 서로 다른 결과

- 팩토리 메소드 : 객체를 생성하기 위한 인터페이스를 정의하여, 어떤 클래스가 인스턴스화 될 것인지를  

서브클래스가 결정하도록 하는것

- 프로토타입 : 원본 객체를 복제하는 방법

- 싱글톤 : 하나의 객체를 여러 프로세스가 동시에 참조할 수 없음

 

2. 구조 패턴

- 어댑터 : 호환성이 없는 클래스 인터페이스를 이용할 수 있도록 변환해주는 패턴

- 브리지 : 구현부에서 추상층을 분리하여, 독립적으로 확장 및 다향성을 가지는 패턴

- 컴포지트 : 여러 객체를 가진 복합, 단일 객체를 구분 없이 다룰때 사용하는 패턴

- 퍼싸드 : 서브 클래스의 기능을 간편하게 사용할 수 있도록 하는 패턴

- 플라이웨이트 : 공유해서 사용함으로써 메모리를 절약하는 패턴

- 프록시 : 접근이 어려운 객체를 연결해주는 인터페이스 역할을 수행하는 패턴

 

3. 행위 패턴

- 책임 연쇄 : 한 객체가 처리하지 못하면 다음 객체로 넘어가는 패턴

- 커맨드 : 요청에 사용되는 각종 명령어들을 추상, 구체 클래스로 분리하여 단순화함

- 인터프리터 : 언어에 문법 표현을 정의하는 패턴

- 반복자 : 동일한 인터페이스를 사용하도록 하는 패턴

- 중재자 : 서로의 존재를 모르는 상태에서도 협력할 수 있게 하는 패턴

- 메멘토 : 요청에 따라 객체를 해당 시점의 상태로 돌릴 수 있는 기능을 제공하는 패턴

- 옵서버 : 관찰대상의 변화를 탐지하는 패턴

- 상태 : 객체의 상태에 따라 동일한 동작을 다르게 처리해야 할 때 사용하는 패턴

- 전략 : 클라이언트에 영향을 받지 않는 독립적인 알고리즘을 선택하는 패턴

- 템플릿 메소드 : 유사한 서브 클래스를 묶어 공통된 내용을 상위 클래스에 정의하는 패턴

- 방문자 : 필요할 때마다 해당 클래스에 방문해서 처리하는 패턴

 

* 생성 / 구조 외에는 행위

 


인터페이스 요구사항 검증

 

1. 요구사항 검증

- 인터페이스 요구사항 검토 계획 수립 -> 검토 및 오류 수정 -> 베이스라인 설정

 

2. 요구사항 검증 방법

- 동료 검토

: 요구사항 명세서 작성자가 내용을 직접 설명하고 동료들이 들으면서 결함을 발견하는 검토법

 

- 워크 스루

: 검토회의 전에 요구사항 명세서를 미리 배포하여 사전 검토한 후, 짧은 검토 회의를 통해 결함을 발견하는 검토법

 

- 인스펙션

: 요구사항 명세서 작성자를 제외한 다른 검토 전문가들이 확인하면서 결함을 발견하는 검토법

 

3. 인터페이스 요구사항 검증 주요 항목

  1. 기능성
  2. 완전성
  3. 일관성
  4. 명확성
  5. 검증 가능성
  6. 추적 가능성
  7. 변경 용이성