동적모델 설계 응용 SW 엔지니어링 2

김원종·2023년 7월 21일
0

소프트웨어 아키텍처의 개념

  • 소프트웨어 아키텍처의 개념과 구성요소
    • 소프트웨어 아키텍처의 개념과 국제 표준인 IEEE-1471을 통해 각각의 구성 요소의 관계의 의미를 이해한다.

    • 소프트웨어 아키텍처는 시스템의 구성요소와 구성 요소 간의 상화 관계 구조이며, 이들을 설계하고 전개하기 위한 지침이나 원리라고 정의할 수 있다.

소프트웨어 아키텍쳐 국제 표준 IEEE-1471

  • 2000년에 제정된 IEEE-1471은 소프트웨어 아키택처의 표준이며 아키텍처가 표현해야 하는 내용과 각 구성 요소 간의 관계를 보여 준다.
  • IEEE에서 규정하는 아키텍처를 작성하기 위한 활동은
1. 아키텍처 관련 문서 파악
2. 이해관계자들의 역할 및 아키텍처 상의 관심 사항 파악
3. 뷰 표인트의 선택 및 명세
4. 뷰의 명세
5. 여러 뷰 간에 존재하는 불일치성 파악 및 기록 
6. 선택되어 설계된 아키텍처에 대한 논리적 근거 작성


![](https://velog.velcdn.com/images/mz1693/post/9adec980-1e61-47c3-8fec-38e8d7b0e7f8/image.png)

소프트웨어 아키텍처 뷰, 패턴(스타일)

  • 소프트웨어 아키텍처 뷰

    • 시스템을 하나의 관점에서 바라보고 그 관점에서 불필요한 정보를 표현하지 않는, 즉 한 가지 측면에서 바라본 시스템 요소와 이들이 관련된 관계의 집합이다.
  • 소프트웨어 아키텍처 패턴(스타일)

    • 아키텍처 설계에서 자주 발생하는 문제를 해결하기 위하여 목표 시스템의 주요한 구조적 조직 관계를 나타내는 문서, 산출물이다. 아키텍처 패턴에는 각 요소의 책임과 연관 관계를 조직화하기 위한 가이드라인이 포함된다.


소프트웨어 아키텍처의 품질 속성

  • 품질속성의 개요

    • 적정한 수준의 품질을 유지하고 보장하는 목적을 달성하기 위하여 소프트웨어 아키텍처의 설계 단계에서는 품질속성을 정의하고, 시나리오를 통해 요구사항을 명세한다.
    • 소프트웨어 아키텍처를 구성하는 비가시적인 속성은 기능성,품질속성,제약으로 구분할 수 있다. 그 중 품질속성은 기능성 외에 시스템에 속하는 사항을 말한다.
    • 품질 속성은 다양하게 분류될 수 있으며 일반적으로 시스템 측면, 비즈니스 측면, 아키텍처 측면으로 구분하여 분류한다.
  • 품질속성 시나리오

    • 품질속성 시나리오는 특정 품질에 대한 요구사항을 명세한 것으로서 시스템의 품질속성에 대한 요구사항을 생성하는 데 도움을 준다.
  • 품질속성 유틸리티 트리

    • 시나리오 기반의 아키텍처 평가를 위해 일반적인 문제로부터 해당 시스템의 특정 상황으로 접근해 가며 품질속성의 목표를 파악하고, 속성 간 우선순위를 파악하도록 해 주는 시나리오 도출 기법


분석모델 검증

  • 동료 검토 (Peer-Review)
    • 다양한 분야에서 동료나 전문가들이 산출물을 검토하는 과정
    • 비공식 리뷰
    • 기술적 리뷰
    • 워크 스루
    • 인스펙션
  • 집단 토론 방법
    • 브레인 스토밍
    • 브레인 라이팅
      • 짧은 기간 동안 많은 아이디어를 창출하기 위해 사용하는 팀 접근법으로 침묵 속에 진행하는 기법
        • 브레인스토밍보다 유리한 경우는 1) 깊이 생각해서 나온 아이디어를 얻는 것이 중요할 경우 , 2) 직전의 브레인스토밍 회의가 한두 사람에 의해 독점되었을 경우, 3) 팀이 너무 사교적으로 되는 경향이 있을 때 , 4) 팀 내 심한 갈등이 있거나 주제가 매우 논쟁적일 경우
    • 델파이 기법
      • 전문가들에게 반복적으로 의견을 요청하여 피드백을 받는 형태로 문제를 해결
        • 하향식 의견 도출 방법이며 주로 우편, 전자메일 등의 통신 수단을 통해 의견을 수렴한다.
    • 명목 집단법

동적모델 설계 동적 분석 모델 상세화

동적설계모델 다이어그램

  • 동적 다이어그램
    • 기능 모델링 , 정적 모델링이 끝난 후 동적 모델링 시 사용되는 다이어그램으로 객체 사이의 변화를 표현한다. 주로 제어 흐름,상호 작용, 동작 순서에 따른 변화를 표현하며 이를 위해 상태(State) , 사건(Event) , 동작(Action) 등의 개념이 있다
  • 기능모델

    • 입력 값으로부터 계산을 거쳐 어떤 결과가 나타나는지 기능을 보여주며 구현 방법은 고려하지 않는다.
  • 정적모델

    • 시스템에 요구되는 객체들을 보여줌으로써 정적인 구조로 모델화한 것이며 기능에 초점을 맞추기보다는 시스템의 구성 요소, 객체를 강조하여 표현한다.
  • 동적모델

    • 정적모델이 완료된 후에 설계되며 시간의 흐름에 따른 객체의 변화를 조사한다.객체들 사이의 제어 흐름, 상호 작용, 동작 순서 등이 다르다. 상태(State) , 사건(Event) , 동작(Action) 등의 개념들이 사용된다.
  • 동적 다이어그램의 종류

    • 시퀀스 다이어그램, 커뮤니케이션 다이어그램 , 스테이트 다이어그램 , 인터랙선 오버뷰 다이어그램, 타이밍 다이어그램
  • 시퀀스 다이어그램

    • 시나리오의 흐름을 순차적으로 표현함으로써 객체와 객체 간의 상호 작용을 메시지 흐름으로 표기

    • 유스케이스 별로 작성

  • 커뮤니케이션 다이어그램
    • 객체들 사이의 행위를 나타내며 유스케이스 별로 작성하여 다양한 이벤트 흐름 별로 작성 , 객체간 메시지에 초점을 맞춘다.

  • 스테이트 다이어그램

    • 특정 클래스의 객체가 가질 수 있는 전체 유스케이스에 걸친 상태와 상태 간의 전이를 표현하는 다이어그램
    • 객체가 가질 수 있는 모든 상태를 보여주며 , 특정 개체에 대하여 발생하는 상태 전이 과정을 묘사
  • 기능모델

    • 정보시스템에서의 정보의 흐름과 변화를 나타내는 프로세스를 중심으로 , 프로세스의 추상적 개념부터 점차적으로 세분화하여 사용자의 요구사항을 분석하기 위한 모델
    • 각 개발 방법론에서 기능 모델링을 제각기 구현
    • DFD (Data Flow Diagram)를 사용하는 경우가 많고, 객체지향 방법론에서는 유스케이스 다이어그램 , 액티비티 다이어그램을 주로 사용
  • 정적모델

    • 시스템에서 요구되는 객체들을 보여주는 정적 구조 모델로서 시스템의 기능보다는 구성하고 있는 객체를 강조한 모델
    • 클래스 , 패키지 , 디플로이먼트 , 컴포넌트 다이어그램 등이 UML에서 정적모델로 분류
  • 응용프로그램을 디자인하려면 비즈니스 도메인을 분석하고, 시스템 요구사항을 캡처하고, 시스템 유스 케이스 및 예상되는 사용자 상호작용을 기록하고, 응용프로그램 도메인에 대한 정보를 분석 및 캡처한 후 세부사사항 디자인을 생성해야한다.
  • 이들 활동은 좋은 소프트웨어 개발 사례를 적용하고 UML에서 디자인을 개발하는 경우에 더 쉽다.
  • UML다이어그램은 시스템 측면의 시각적 표시를 하며 ,관계 ,동작,구조 및 기능ㅇ과 같이 시각적으로 설명할 수 있는 시스템의 양 측정이 가능한 측면에 대해 설명한다.

순차 다이어그램

순차 다이어그램의 구성 요소와 표현

  • 순차 다이어그램의 구성 요소

    • 순차 다이어그램 모델링
      - 객체 간의 동적 상호작용을 시간 개념을 중심으로 모델링 하는 것
      - 다이어그램의 수직 방향이 시간의 흐름을 나타냄
      - 객체 사이의 기능, 순서 , 시간을 명확하게 표현
  • 순차 다이어그램의 표현

    • 객체
      • 순차 다이어그램의 맨 위에 위치하며 왼쪽에서 오른쪽으로 배열
    • 객체의 생명선
      • 각 객체에서 아래로 뻗어나가는 점선
    • 활성화 부분
      • 생명선을 따라 드문드문 나타나는 작은 사각형

        • 객체가 수행하는 오퍼레이션이 실행되고 있음을 나타냄
        • 활성화의 길이는 오퍼레이션의 실행 소요 시간을 나타냄 \

  • 메시지
    • 한 객체의 생명선에서 다른 객체의 생명선으로 이동하는 것
    • 화살표로 표현하며 화살표의 머리모양은 메시지의 형태를 나타냄
    • 호출메시지
      • 송신 객체가 수신 객체로 보내는 메시지로 , 수신 객체의 오퍼레이션을 실행
        • 동기 메시지라고도 부름
    • 답신 메시지
      • 호출 메시지와 화살표 머리 모양이 같으며 점선 형태
  • 비동기 메시지
    -
    • 송신 객체가 보냄
    • 수신 객체의 오퍼레이션을 실행시키나 오퍼레이션이 완료될 때까지 송신 객체가 기다리지 않음
    • 화살표 머리 모양이 c 와 같고 실선
  • 시간

    • 순차 다이어그램에서 수직 방향 (위에서 아래)
      • 왼쪽에서 오른쪽 방향 : 객체의 배열

        • 위에서 아래 방향 : 시간의 흐름

  • 요구 사항 정의 단계

업로드중..

  • 분석과 설계 단계
    • 이미 정의된 클래스 모델을 기준으로 객체를 나열하고 상호작용 모델 제작

    • 의미 있는 모델보다 구조적 모델에 크게 의존


모델링연습

  • 객체
    • 고객(Customer), 종업원(Server), 요리사(Chef)


통신 다이어그램

통신 다이어그램의 구성 요소와 변환

  • 통신 다이어그램의 구성 요소와 표현

    • 객체

      • 메시지를 주고받는 주체

        • 클래스 다이어그램에 표기된 클래스명과매핑이 가능하도록 객체명을 표기

        	- 링크 
      • 통신 다이어그램에서 객체 사이를 연결

        • 객체와 객체 간의 양방향 연관 관계를 의미
        • 화살표가 없는 실선으로 표현
        • 이름을 붙일 수 있음

        	- 메시지 
      • 링크를 통해서 다른 객체에 전하는 설명 , 링크 위에 표시

        • 상대 객체별로 여러 정의가 가능
        • 링크 하나를 통해 여러 개의 메시지가 전달
        • 통신 다이어그램에서는 메시지에 번호를 부여, 그 번호 순서에 따라 메시지를 해석

  • 통신 다이어그램과 순차 다이어그램 간의 변환
    • 통신 다이어그램은 순차 다이어그램을 자동 변환해 표현가능
      • 순차 다이어그램
        - 메시지의 상하 배치 순서가 메시지의 전송 순서를 정의
        - 객체 간 메시지의 순서를 파악할 때 매우 효과적
        - 객체 간의 관계 (의존,연관)는 파악할 수 없음
        • 통신 다이어그램
          - 객체 간의 관계가 링크로 표현
          • 메시지를 전달하고 수신하는 객체 간의 관계를 쉽게 파악

          • 메시지의 위치에 따른 전송 순서를 가정할 수 없음


활동 다이어그램

  • 활동 다이어그램의 표현

    • 활동 및 전이
      • 시작점 , 활동 , 종료점 ,전이로 구성

      • 활동 하나가 처리되면 그 다음 활동으로 자동으로 옮겨감

      • 활동 상태의 시작과 종료는 항상 존재해야 함


      • 시작점

        • 활동의 시작을 의미 , 검은색 원
      • 활동 상태

        • 어떤 일들의 처리와 실행을 의미, 모서리가 둥근 사각형
      • 종료점
        - 처리의 종료를 의미, 이중 원
        - 전이
        - 화살표


      • 분기
        - 활동 1개에서 여러 활동으로 흐름이 니뉠 때 사용
        - 조건에 따라 처리 경로가 결정
        - 마름모 옆에 '<< >>' 를 이용해 조건문 기입

      • 동기화 막대
        - 여러 활동을 병행하는 경우 사용
        -동시 처리의 시작과 끝을 나타냄

      • 신호
        - 활동이 진행되는 동안 제어 신호를 보내는 방식으로 이루어짐
        - 할동 사이에 이루어지는 거래



      • 구획면
        - 활동 다이어그램에서 가로 혹은 세로 방향으로 그려지는 영역

        -각 활동 상태의 주체를 나타냄

        -2개 이상의 사각형으로 표시하며 이름을 기술

  • 활동 다이어그램의 용도
    • 주로 유스케이스 수준 이상의 비즈니스 프로세스를 표현
    • 분석 단계에서 유스케이스 내부에 대한 구체적인 흐름을 나타내기 위해 사용
    • 순차 다이어그램이나 통신 다이어그램에서는 나타내기 어려운 상활을 표현할 수 있음
    • 업무 흐름을 분석하거나 화면 흐름을 표현할 때 유용
    • 업무의 흐름을 표현할 때 가장 효과적
profile
개린이

0개의 댓글