sonumb

Architecture Views 본문

개발자 이야기/Software Engineering

Architecture Views

sonumb 2021. 12. 29. 10:09

1. Architecture의 4+1 관점

"+ 1 view"는 사용자의 관점(view)이며, "4 view"는 소프트웨어 개발 입장(구현 및 배포)의 view 이다.

일반적인 소프트웨어 개발 프로세스는 아래와 같다.

  1. 요구사항수집
    1. Scenario View(User View): 요구사항 분석이후, 사용자 관점에서 본 소프트웨어 use case 혹은 use scenario이다.
  2. 설계
    1. 사전설계(개념설계)
      1. Logical view: 요구사항명세서+사용시나리오를 통해 큰 그림과 각 세부 모듈을 선언 및 설계한다.(단, 상세한 내용은 정의 하지 않는다)
      2. Process View: 로지컬 뷰에서 선언된 세부 모듈들이 어떻게 상호작용하는지 설계한다.(유즈케이스 혹은 사용시나리오로가 근거이며, 세세한 정의는 하지 않는다.)
    2. 상세설계
      1. Development View(혹은 implementation view): 큰그림으로부터 세부적인 항목들로 정의하여, 내부동작들을 세세하게 정의한다. 물론 동작의 근거는 요구사항명세서이다.
      2. Physical View(혹은 Deployment view): 구현이 나오고 난 뒤, 시스탬 엔지니어(배포자)의 관점에서 본 뷰이다. 시스템구성/패키징 배포 및 설치/관리에 있어서 가용성/성능/확장성 등이 주요 관점이다.
  3. 구현
    1. 위 4+1 view를 근거로 구현한다.
  4. 테스트
    1. 테스트 케이스, 테스트 시나리오의 설계는 설계 단계에서
    2. 테스트 케이스 구현은 소프트웨어 구현에서 혹은 테스트 단계에서 이루어져야 한다.
  5. 배포
    1. 배포는 위 상세설계 단계에서 설계한 내용을 바탕으로 배포되며
    2. 테스트 또한 테스트의 시나리오를 기반으로 엔드유저와 실행한다.

 

이중 1-2 단계의 view들은 위에서 말안 4+1 view와 대응된다.

그리고 각단계의 절차와 그에 상응하는 책임자는 아래와 같다.

  • 요구사항 수집: 기획자 (요구사항분석)(주), (리뷰 시 모든 관계자 참여)
  • 설계: 아키텍터(주), 프로그래머(설계 내용을 지속적으로 프드백), QA 엔지니어, 시스템 엔지니어
  • 구현: 개발자(주), 아키텍터
  • 테스트: QA 엔지니어(주), 개발자
  • 배포: 시스템 엔지니어(소프트웨어 배포자)
✅ 각 단계를 실시할 때, 책임자는 자신의 단계를 진행하거나 리뷰 시 필요한 책임자들을 involve를 주문할 권한이 있다.
즉, 적절할 판단을 통해 협업할 사람을 정하여 도움을 요청하라는 말이다. 

소프트웨어에 관계된 모든 사람들은 모든 view들에 대해 "입장"을 가지겠지만, 특히 책임질 수 있는 사람을 뜻한다.

또한, QA 엔지니어는 위의 절차 중 1-2단계에 대해 "입장"을 가지며, 테스트 단계를 책임져야 한다.

2. 각 뷰에 대한 결과물

위의 "4+1 관점"에 따라 나와야 할 UML의 결과물의 예시는 아래와 같다.

반응형