View 란?

시스템을 이루는 SW요소들의 집합 과 SW요소들의 연관 관계를 추상적 으로 표현한 것

 

Module View 무엇인가요?

Module간의 상호 연결 관계

 

Runtime View = Component and Connector View(C&C View)

예를 들어 뭐가 있을까요?
split lower upper merge 등

파이프-필터 스타일(Pipe-and-Filter Style)
공유-데이터 스타일(Shared-Data Style)
게시-구독 스타일(Publish-Subscribe Style)
클라이언트-서버 스타일(Client-Server Style)
피어 투 피어 스타일(Peer-to-Peer Style)

 

Allocation View 무엇인가요?

folder hierarchy

배치 스타일(Deployment Style)
컴포넌트-커넥터 스타일의 요소를 실행 플랫폼에 할당 } 일반적으로 통신 프로세스 스타일(Communicating-Processes Style)요소를 할당

 

4+1 View

Logical View
Process View
Development View
Physical View
+Use Cases/Scenarios


유스케이스 뷰

(Usecase View)
다른 뷰를 검증하는데 사용
사용자, 설계자, 개발자, 테스트 관점
유스케이스 다이어그램

논리 뷰
(Logical View)
시스템 기능 적인 요구사항이 어떻게 제공되는지
클래스나 컴포넌트의 종류와 관계를 설명하고 설계가 실제로 구현 되는지 설명
설계자 관점 (순서도나 UML 그리는 시점)
클래스/시퀀스 다이어그램

프로세스 뷰
(Process View)
시스템의 비기능적인 속성으로 자원의 효율적인 사용, 병행 실행, 비동기, 이벤트 처리 등을 표현한 뷰
성능, 확장성, 효율성 관련
시스템 통합자의 관점
시퀀스/협력 다이어그램

Development 뷰
개발 환경 안에서 정적인 소프트웨어 모듈의 구성을 보여주는 뷰
컴포넌트 구조와 의존성을 보여주고 컴포넌트에 관한 부가적인 정보 정의
실제 구현할 수 있는지 여부를 확인
직접 만드는 개발자의 관점
컴포넌트 다이어그램

Physical 뷰
컴포넌트가 물리적 환경에서 배치 연결 작업이 어떻게 실행 되는지를 매핑해서 보여주는 뷰
배치(배포) 다이어그램

 

Context View 무엇인가요?

시스템과 환경사이의 상호작용과 의존성 관계를 표현한다
시스템과 관련된 사람, 시스템 및 외부 엔터티 포함 상호 작용, 하이레벨로 이해를 위한, 미리 알고있는 관점, 10, 20년된 시스템의 2.0 버젼은 이거 필요 없다 ~= usecase view

 

DFD - Data Flow Diagram 무엇인가요?

특정 기능을 나타냅니다. 레벨 0 DFD에서는 전체 대상 시스템을 나타냅니다
공통 터미널 - .사용자, 외부 시스템,  하드웨어 장치
데이터 저장소
데이터 흐름 정의

 

DFD의 터미널에 유스케이스 액터가 안되는 경우가 있는지

DFD에서 터미널이란 입력 정보를 주는 주체, 인풋 아웃풋
usecase에서 엑터는 특정 기능을 인보크하는 주체 또는 인보크를 당하는 주체
= 터미널에 있었다고 해서 전부 액터로 쓸필요는 없다

 

Functional View 무엇인가요?

시스템의 기능적 요소, 해당 책임, 인터페이스 및 기본 상호 작용. 
시스템의 Functional elements와 elements들의 책임, 컴포넌트 간의 interface, interaction 을 의미한다. 이
해관계자들이 가장 먼저 읽게 되는 첫 부분으로 다른 뷰들의 모습을 이끌어내야 한다.

 

Functional Context

액터 정의, 기능 그룹 정의, 사용 사례 정의, 호출 정의, 관계 정의

 

Functional Viewpoint Steps

1. Refine Use Case Model - 유즈케이스 다이어그램 다시 그리기
2. Define Functional Components - 파란색 묶는거
3. Allocate Functional Components - 배포 뷰에 할당
4. Design Functional Components -  아래

Functional component를 잘 찾았는지 아는 기준은?

functional component는 modularity가 높아야 함.
cohesion높고(한 component가 one & only 기능만 handle)
coupling 낮아야함(component간에 dependency 최소화)

 

Design Functional Components 무엇을 정의해야 하나요?

Defining Visibility - Black, White Box
Defining Variability - Mediator, Facade
Defining Interfaces - Opened, Closed

 

인터페이스 디자인 원리 말하세요.

노출이 적을수록 좋다
Method가 Field보다 좋다
Factory가 Constructor보다 좋다
한 가지 기능, SRP
구현이 API에 영향 주어서는 안 된다.
접근성 최소화 캡슐화
이름을 잘 지어라
테스트에 염두

 

white box / black box

white box compo와 black box compo는 UML에서 어떻게 표현할까?
package diagram : 안이 다 보임.아예 interface 정의가 없음
class들의 단순한 집합
자바의 패키지는 white box이다. 외부로부터 패키지쓸때 바로 접근
component diagram : black box. interface정의 있음

 

Information View 무엇인가요?

정적 데이터 구조의 높은 수준 보기
영구 데이터를 다룬다. 설계를 저장하고, 다루고, 관리하고, 정보를 분배하는 방법을 묘사한다. 내용, 구조, 지연, 참조, ownership, data migration을 고려한다.

 

Information Context 무엇인가요?

클래스 정의, 관계 정의, 카디널리티 정의, 

 

Information Viewpoint Steps

1. Refine Object Model - 클래스 다이어그램 다시 그리기
2. Define Data Components - 파란색 묶는거
3. Allocate Data Components - 배포 뷰에 할당
4. Design Data Components - 메서드, 어트리뷰트, 인터페이스 정의 등

 

Behavior View 무엇인가요?

시스템의 런타임 구조, 즉 동작을 설명합니다
시스템의 동시성을 묘사한다. 동시에 동작하는 시스템의 부분들을 식별하고 어떻게 중재하고 조절되는지를 표현한다. 과정, 스레드, 상호동작을 고려한다.

 

Behavior Context 무엇인가요?

행동 패턴 관찰, 기능 그룹에 대한 스케치 제어 흐름

 

Behavior Viewpoint Steps

1. Define Overall Control Flow - 재작성
2. Identify Complex Behavior - 하나 골라서 상세히 작성
3. Define Detailed Control Flows

 

Behavior 용어 정의, activity와 action의 차이

action : atomic operation(완료하거나 중지하거나 둘중하나뿐인상태)
fault 발생시 abort 되는 단위
activity : group of action

 

Detail activity 설명할때 diagram쓰는 이유와 장단점

1. common vocabulary. 내 설계를 다른 사람이 볼때 오해없어
2. specific purpose : 내목적에 맞는 diagram
3. limited vocabulary : (장점)precise (단점) 표현력이 떨어짐
표현력 떨어지는걸 보안하기 위해 슈도코드로 표현.

 

Development View 무엇인가요?

소프트웨어 개발 프로세스 를 지원하는 아키텍처를 설명합니다
시스템이 배포될 환경을 기술한다. 하드웨어 환경, 기술적 환경, 런타임 환경을 고려한다.

 

Deployment Views 무엇인가요?

시스템이 적용되는 환경을 설명합니다

 

Deployment Viewpoint Steps

1. Define Nodes
2. Define Network Connectivity
3. Deploy Software Artifacts


Operational View 무엇인가요?
시스템이 프로덕션 환경에서 실행될 때 시스템이 어떻게 작동, 관리 및 지원되는지 설명합니다, 개발 끝나고 운영할 때 이렇게 운영하는 관점, 지침

 

facade, mediator의 차이가 뭔가요? 

내부를 안보여주는것은 똑같다

facade : 외부 component가 직접 들어오지 못하게 블랙박스화 하는 것.
외부에서 온것을 내부에 delegate 하는것.
외부와 내부를 decoupled 시킴(독립적으로 유지보수 된다) 메시지를 받은대로 그냥 넘겨주는것, 흐름을 클라이언트가 결정할 수 있다.
flow가 client마다 다르다면 facade.
mdeiator : 컨트롤 알고리즘 로직 수행등을 한다. 내부적으로 취합할게 있다면, 기능을 수행할 순서가 정해져 있다면. mediator = coordinator
flow가 고정되어 있다면 mediator

728x90

+ Recent posts