본문 바로가기
자격증/정보처리기사

1과목 소프트웨어 설계 (5)

by 동욷 2023. 2. 21.

1. 협약(Contact)에 의한 설계

- 컴포넌트를 설계할 때  클래스에 대한 여러 가정을 공유할 수 있도록 명세한 것

- 소프트웨어 컴포넌트에 대한 정확한 인터페이스를 명세

 

1) 선행조건(Precondition) : 오퍼레이션이 호출되기 전에 참이 되어야 할 조건

2) 결과조건(Postcondition) : 오퍼레이션이 수행된 후 만족되어야 할 조건

3) 불변조건(Invariant) : 오퍼레이션이 실행되는 동안 항상 만족되어야 할 조건

 

 

 

2. 파이프-필터 패턴(Pipe-Filter Pattern)

- 데이터 스트림의 절차의 각 단계를 필터(Filter) 컴포넌트로 캡슐화하여 파이프(Pipe)를 통해 데이터를 전송하는 패턴

- 필터 컴포넌트는 재사용성이 좋고, 추가가 쉬워 확장이 용이

- 필터 컴포넌트를 재배치하여 다양한 파이프라인 구축하는 것이 가능

- 주로 데이터 변환, 버퍼링, 동기화에 사용

- UNIX 의 쉘(Shell)

 

Source ---------(pipe1)----------------> Filter1 -------------(pipe2)------------------>Filter2---------------(pipe3)-------------->Sink

 

 

3. 모델-뷰-컨트롤러 패턴(Model-View-Controller Pattern)

- 서브시스템을 3개의 부분으로 구조화하는 패턴

 

Model : 서브시스템의 핵심 기능과 데이터를 보관

View : 사용자에게 정보 표시

Controller : 사용자로부터 입력된 변경 요청을 처리하기 위해 모델에게 명령을 보냄

 

Input ---------------> Controller -----------(갱신)--------------> Model

                                       |                                                     |

                                       | (제어)                                          |  (View->Model : 정보 요청)

                                       |                                                    |  (Model -> View : 변경 알림)

                                      ▼                                                  |

Output <--------------------- View-------------------------------------

 

 

4. 기타 패턴

 

1) 마스터-슬래이브 패턴(Master-Slave Pattern)

2) 브로커 패턴(Broker Pattern)

3) 피어-투-피어 패턴(Peer-To-Peer Pattern)

4) 이벤트-버스 패턴(Event-Bus Pattern)

5) 블랙보드 패턴(BlackBoard Pattern)

6) 인터프리터 패턴(Interpreter Pattern)

 

728x90