소프트웨어 아키텍처의 개념
- 소프트웨어 아키텍처의 개념과 구성요소
-
소프트웨어 아키텍처의 개념과 국제 표준인 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개 이상의 사각형으로 표시하며 이름을 기술
- 활동 다이어그램의 용도
- 주로 유스케이스 수준 이상의 비즈니스 프로세스를 표현
- 분석 단계에서 유스케이스 내부에 대한 구체적인 흐름을 나타내기 위해 사용
- 순차 다이어그램이나 통신 다이어그램에서는 나타내기 어려운 상활을 표현할 수 있음
- 업무 흐름을 분석하거나 화면 흐름을 표현할 때 유용
- 업무의 흐름을 표현할 때 가장 효과적