소프트웨어공학

[소프트웨어공학] L5 - Architectural Design

leziwn.cs 2023. 11. 5. 01:51
Architectural patterns
4) Pipe and filter architecture

: 이전 단계의 output을 다음 단계의 input으로 처리해야 할 때 이용한다. 

  • 대화식 시스템에는 적합하지 않다.
    대화식 시스템은 사용자의 입력에 따른 반응이 필요한데, pipe and filter architecture에는 중간 대기 시간이 없기 때문에, 사용자의 반응에 따라 구분해서 동작하기는 어렵다.

▷ When used

: 입력이 관련 출력을 생성하기 위해 별도의 단계에서 처리되는 데이터 처리 애플리케이션에서 사용한다.

- 인스타 필터: 카메라 입력 --> 필터 처리 --> output 변경

- 리눅스 커맨드 창에 입력: ls --> grep(탐색 명령어) --> ls 실행 후 나온 결과물을 grep으로 처리한다.

 

예) Pipe and filter architecture

  • 이전 단계에서의 output은 다음 단계에서의 input이 된다.
  • 순차적 진행, 동시 진행 모두 가능하다.

 

▶ 장점:

  • 워크플로 스타일은 많은 비즈니스 프로세스 구조와 일치한다.
  • 순차적 진행, 동시 진행 모두 가능하다.

▶ 단점:

  • 데이터 전송 포맷이 변환을 위한 통신 사이에 합의되어야 한다. (오버헤드)
  • 데이터 전송 포맷이 정해져 있기 때문에 재사용성이 떨어진다.

 

 

5) The Model-View-Controller (MVC) architecture

예) The Model-View-Controller (MVC) architecture

  • 모델 컴포넌트: 시스템 데이터 및 해당 데이터와 관련된 작업을 관리한다.
  • 뷰 컴포넌트: 데이터가 사용자에게 표시되는 방식을 정의하고 관리한다.
  • 컨트롤러 컴포넌트: 사용된 상호작용을 관리하고, 이러한 상호작용을 모델/뷰 컴포넌트에게 전달한다.

▷ When used

: 데이터에 대한 상호작용하는 방법이 여러가지일 때 사용한다. 

- 학교 홈페이지 접속: 웹 브라우저, 이화 앱...

 

▶ 장점:

  • 데이터가 해당 표현과 독립적으로 변경되거나, 그 반대로 변경될 수 있다.
  • 동일한 데이터를 다른 방식으로 표시할 수 있다.

▶ 단점:

  • 데이터 model과 view의 상호작용이 단순한 경우에는 controller는 불필요한 오버헤드이다.

 

 

Control styles

- 프로그램을 어떤식으로 제어, 호출하는가?

 

중앙집중식 제어

: 하나의 서브 시스템이 다른 서브 시스템들을 시작/정지/제어하는 전반적인 책임을 가진다.

콜-리턴 모델

순서!!!

: 제어가 서브루틴 계층의 맨 위에서 시작해서 아래로 이동하는 하향식 서브루틴 모델 (순차 시스템)

 

관리자 모델

: 하나의 시스템 컴포넌트가 다른 시스템 프로세스의 시작, 중지, 조정을 제어한다. (동시 시스템)

  • 예) 자동차 제어 시스템

 

 

이벤트 기반 제어

: 각 서브 시스템들은 다른 서브 시스템이나 시스템의 환경으로부터, 외부에서 생성된 이벤트에 응답할 수 있다.

브로드캐스트 모델

- Event and message handler에 의해 이벤트가 모든 서브 시스템으로 전달되고,

- 해당 이벤트와 일치되는 서비 시스템이 이벤트를 처리한다.

  • 예) 안드로이드 앱: 버튼을 누르면, 전체 프로세스에 알려서, 처리한다.

 

인터럽트 기반 모델

- 인터럽트 벡터는 인터럽트 핸들러에 대한 테이블을 가지고 있고, 인터럽트가 발생하면 적절한 handler를 호출한다.

- 인터럽트가 인터럽트 핸들러에 의해 감지되면, 인터럽트 처리를 위해 process로 전달된다.

  • 예) 운영체제 인터럽트 처리 - 키보드 처리 (실시간 시스템)

 

 

Software architecture evaluation

: sw 아키텍처가 개발될 sw에 요구되는 품질 특성(기능 + 비기능)을 충족시킬 수 있는가를 아키텍처 수준에서 평가한다.

  • sw 아키텍처, 요구사항 명세를 이용한다.

▶ 평가 방법:

  • 시나리오
  • 시뮬레이션
  • 수학적 모델
  • 경험 기반

 

 

 

 

출처: 이화여자대학교 박지현교수님 소프트웨어공학