Ch05. 시스템 모델링

728x90

5주차 필기 내용

Ch05. 시스템 모델링

[시스템 모델링]

-시스템의 추상 모델을 개발하는 프로세스

-각 모델은 시스템의 서로 다르 뷰 or 관점을 나타냄

 

[모델의 용도]

-요구 공학 프로세스 :상세 요구사항 도출 위해

-설계 프로세스 : 시스템 설명 위해

-구현 후 : 시스템 구조, 동작을 문서화하기 위해

 

[시스템 모델은 시스템의 완전한 표현 X]

-이해하기 쉽게 자세한 부분은 모델에서 의도적으로 제외 (생략)

-모델은 시스템의 다른 표현이 아닌 시스템의 추상화임

 

[시스템 관점]

1) 외부(external) 관점

       시스템의 컨텍스트 or 환경을 모델링

2) 상호작용(interaction) 관점

       시스템과 그 환경 사이의 상호작용(시나리오) or 시스템 컴포넌트 간 상호작용을 모델링

3) 구조(structural) 관점

       시스템의 구성이나 시스템에 의해 처리되는 데이터 구조를 모델링

4) 동작(behavioral) 관점

       시스템의 동적인 행동과 시스템이 이벤트에 어떻게 반응하는지 모델링

 

[그래픽 모델 사용 방법]

시스템에 대해 토론, 아이디어 도출 용도 (아이디어 스케치용)

- 모델은 불완전할 수 있으며 표기법을 약식으로 사용 가능

- 주로 애자일 기법에서 사용

기존 시스템 문서화 용도

-모델이 완전할 필요는 X.

-모델이 정확해야 함 O

시스템 구현을 생성하는 모델 기반 프로세스의 입력

-소스 코드 생성하는데 사용. 모델이 완전하고 정확해야 함

[UML 다이어그램 유형] (5가지)

액티비티(activity) 다이어그램 프로세스나 데이터 처리 관련 액티비티 흐름
(행동 단위 순서도)
유스케이스(use case) 다이어그램 시스템과 환경 간 상호작용
시퀀스(sequence) 다이어그램 액터와 시스템 간, 시스템 컴포넌트 간 상호작용
시나리오를 표현
클래스(class) 다이어그램 시스템 객체 클래스들과 클래스들 간의 관계
상태(state) 다이어그램 시스템 내/외부 이벤트에 대한 반응
(상태 단위 순서도)

   5.1 컨텍스트 모델

[컨텍스트 모델]

-시스템 운영 환경 기술

-시스템의 경계와 시스템과 연동되는 외부 시스템을 보여줌

[비즈니스 프로세스 모델]

-전반적인 업무 흐름 보여줌

-컨텍스트 모델과 함께 사용O

-UML 액티비티 다이어그램으로 표현


   5.2 상호 작용 모델

[상호 작용 모델의 용도]

-사용자와 시스템 간 상호작용 모델 : 사용자 요구사항 확인에 도움

-시스템 간 상호작용 모델 : 시스템 간 커뮤니케이션 문제 발생 가능성 해결

-컴포넌트 간 상호작용 모델 :시스템 구조가 성능과 확실성 제공할 수 있는지 이해에 도움

 

[상호 작용 모델 종류]

유스케이스 다이어그램 시스템과 사용자/ 다른 시스템 간 상호작용
시퀀스 다이어그램 시스템 컴포넌트 간 상호작용

 

[1. 유스케이스 모델링]

[유스케이스]

-시스템 제공 기능

-공통적인 사용자 목표와 관련된 시나리오 집합

[액터]

-시스템과 직접 상호작용하는 모든 것

[연관]

-액터가 유스케이스를 수행

[2. 시퀀스 다이어그램]


   5.3 구조 모델

[구조 모델]

-시스템을 구성하는 컴포넌트들과 그들 간의 관계를 보여줌

-시스템 설계 구조를 보여주는 정적 모델

-시스템 실행 시 구성을 보여주는 동적 모델

 

[1. 클래스 다이어그램]

-소프트웨어 시스템 구성 객체 클래스들의 정적 구조 보여줌

[클래스]

-한 종류의 시스템 객체 단위를 일반적으로 정의

-같은 속성, 메소드, 관계, 의미 가지는 객체 집합에 대한 설명

-객체는 클래스의 인스턴스

[연관]

-클래스 객체 간의 관계

-연결은 연관의 인스턴스

[2. 일반화]

[일반화] generalization

-상속(inheritance)

-Javaextends

[3. 집합]

[집합] aggregation

-한 객체(전체)가 다른 객체(부분)으로 구성됨

-복합 관계는 집합 관계의 특수한 경우


   5.4 동작 모델

[동작 모델]

-시스템이 실행될 때의 동적 행동을 보여줌

-자극(stimulus)에 대한 시스템 반응을 모델링

[2가지 종류의 자극]

-데이터 : 데이터가 오면 시스템에 의해 처리

-이벤트 : 이벤트 발생하면 이에 대해 반응

[데이터 흐름도]

-데이터가 처리되는 과정을 보여줌

-액티비티 다이어그램을 이용

[상태 다이어그램]

-내부/외부 이벤트에 대한 시스템 반응을 보여줌

 

[1. 데이터 주도 모델링]

[데이터 주도 모델] : 입력 -> 처리 -> 출력

[데이터 흐름도] : DFD ( Data Flow Diagram )

-자료흐름(객체)와 처리(액티비티)로 구성

 

[2. 이벤트 주도 모델링]

[이벤트 주도 모델] : 시스템이 외/내부 이벤트(자극)에 반응하는 방식

 

[이벤트 주도 모델의 구성]

-시스템은 유한 개의 상태(state) 가짐

-이벤트에 의해 시스템 상태 전이됨

[상태 다이어그램]

- 각 상태 별 설명 존재해야함

[컨텍스트 모델]

-시스템 운영 환경 기술

-시스템의 경계와 시스템과 연동되는 외부 시스템을 보여줌

[비즈니스 프로세스 모델]

-전반적인 업무 흐름 보여줌

-컨텍스트 모델과 함께 사용O

-UML 액티비티 다이어그램으로 표현


   5.2 상호 작용 모델

[상호 작용 모델의 용도]

-사용자와 시스템 간 상호작용 모델 : 사용자 요구사항 확인에 도움

-시스템 간 상호작용 모델 : 시스템 간 커뮤니케이션 문제 발생 가능성 해결

-컴포넌트 간 상호작용 모델 :시스템 구조가 성능과 확실성 제공할 수 있는지 이해에 도움

 

[상호 작용 모델 종류]

유스케이스 다이어그램 시스템과 사용자/ 다른 시스템 간 상호작용
시퀀스 다이어그램 시스템 컴포넌트 간 상호작용

 

[1. 유스케이스 모델링]

[유스케이스]

-시스템 제공 기능

-공통적인 사용자 목표와 관련된 시나리오 집합

[액터]

-시스템과 직접 상호작용하는 모든 것

[연관]

-액터가 유스케이스를 수행

[2. 시퀀스 다이어그램]


   5.3 구조 모델

[구조 모델]

-시스템을 구성하는 컴포넌트들과 그들 간의 관계를 보여줌

-시스템 설계 구조를 보여주는 정적 모델

-시스템 실행 시 구성을 보여주는 동적 모델

 

[1. 클래스 다이어그램]

-소프트웨어 시스템 구성 객체 클래스들의 정적 구조 보여줌

[클래스]

-한 종류의 시스템 객체 단위를 일반적으로 정의

-같은 속성, 메소드, 관계, 의미 가지는 객체 집합에 대한 설명

-객체는 클래스의 인스턴스

[연관]

-클래스 객체 간의 관계

-연결은 연관의 인스턴스

[2. 일반화]

[일반화] generalization

-상속(inheritance)

-Javaextends

[3. 집합]

[집합] aggregation

-한 객체(전체)가 다른 객체(부분)으로 구성됨

-복합 관계는 집합 관계의 특수한 경우


   5.4 동작 모델

[동작 모델]

-시스템이 실행될 때의 동적 행동을 보여줌

-자극(stimulus)에 대한 시스템 반응을 모델링

[2가지 종류의 자극]

-데이터 : 데이터가 오면 시스템에 의해 처리

-이벤트 : 이벤트 발생하면 이에 대해 반응

[데이터 흐름도]

-데이터가 처리되는 과정을 보여줌

-액티비티 다이어그램을 이용

[상태 다이어그램]

-내부/외부 이벤트에 대한 시스템 반응을 보여줌

 

[1. 데이터 주도 모델링]

[데이터 주도 모델] : 입력 -> 처리 -> 출력

 

[데이터 흐름도] : DFD ( Data Flow Diagram )

-자료흐름(객체)와 처리(액티비티)로 구성

 

[2. 이벤트 주도 모델링]

[이벤트 주도 모델] : 시스템이 외/내부 이벤트(자극)에 반응하는 방식

 

[이벤트 주도 모델의 구성]

-시스템은 유한 개의 상태(state) 가짐

-이벤트에 의해 시스템 상태 전이됨

[상태 다이어그램]

- 각 상태 별 설명 존재해야함

[소프트웨어 공학]  한티 미디어 10판 교재 

728x90