[소프트웨어공학]쪽지시험 정리(8장~13장)

류명운

·

2015. 6. 10. 22:16

반응형

(출처: 미리미리)

uml기말쪽지시험-전미리.hwp

Chapter8_상태 다이어그램

 

1. 상태 다이어그램(state diagram)란?

 

시스템에 일어나는 변화 표현 → 사건이나 시간에 따라 시스템 내의 객체들이 자신의 상태를 바꿈

ㆍ시스템의 변화를 잡아냄

ㆍ객체의 상태전이, 상태전이 시퀀스의 시작점과 종료점 표시

ㆍ“단일 객체”의 상태

 

1) 상태 다이어그램을 구성하는 기호

□ (모서리 둥근 사각형) : 상태표시

➜ (화살표머리가 달린 실선) : 상태전이 표시

(화살표머리) : 상태전이가 이루어진 후 결과

● (속을 칠한 원) : 상태전이의 시작점

◉ (까만 원을 둘러싼 원) : 상태전이의 종료점

 

2) 상태 아이콘에 넣는 정보

  - 세 영역 (이름, 속성, 오퍼레이션)

■ 상태의 이름

■ 상태 변수(state variable)

■ 활동(activity)

ㆍEntry – 시스템이 상태로 들어갈 때

ㆍExit – 시스템이 상태에서 빠져 나올 때

ㆍDo – 시스템이 상태 안에 있는 동안

 

3) 상태 전이선에 추가되는 정보

① 사건과 동작 : (/)

■ 촉발 사건(trigger event)

전이가 일어나는 원인을 제공하는 사건

■ 동작(action)

실제로 수행되어 상태 변화를 일으키는 연산

■ 촉발없는 전이(trigger transition)

연관된 동작 없이 전이를 일으킬 수 있으며, 활동을 종료했기 떄문에 일어나는 전이

② 전이 조건 (guard condition) : [ ]


2. 하위 상태 (Substate)

 

작동 중 상태 안에 있는 동안에도 변함(상태변화), 주어진 상태 내부에서 일어나는 것이기 때문 하위상태

■ 순차적 하위 상태 (Sequential Substate)

■ 동시적 하위 상태 (Concurrent Substate)

ㆍ복합 상태(composite state)

집합연관 복합연관처럼 각각의 컴포넌트(부분)가 전체를 구성하는 것과 작동중 상태가 동일 순차적 하위 상태로만 구성된 상태도 복합상태라 함

 

3. 이력 상태 (History State)

 

Ⓗ : 복합 상태로 하여금 주어진 객체가 복합 상태를 벗어날 때 활성중인 하위 상태를 기억해 두도록 함

■ 깊은(deep) 이력 상태

중첩된 모든 하위 상태를 기억 H*

■ 얕은(shallow) 이력 상태

가장 바깥쪽의 하위 상태만 기억

 

4. 연결 포인트 (Connection point) UML 2.0

 

상태에 진입하거나 상태로부터 탈출하는 포인트

■ 진입 포인트 : ○

■ 탈출 포인트 : ⦻

 

 

Chapter9_시퀀스 다이어그램

 

1. 시퀀스다이어그램(Sequence Diagram)란?

 

객체(사각형, 이름에 밑줄), 실선 화살표로 그려지는 메시지, 수직 진행 상황을 나타내는 시간으로 구성

 

1) 객체 (Object)

 

가장 윗부분, 왼쪽에서 오른쪽으로 배열, 다이어그램을 간략하게 하는 방향 기준 배열

■ 생명선(Lifeline)

각 객체로부터 아래로 뻗어가는 쇄선

■ 실행(Activation)

생명선을 따라 나타나는 좁다란 사각형

객체가 수행하는 오퍼레이션이 실행되고 있음

사각형 길이 = 오퍼레이션 실행 요소시간

 

2) 메시지 (Message)

한 객체에서 다른 객체로 전송되는 메시지 = 한 객체의 생명선에서 다른 객체의 생명선으로 이동

➞ 호출, ⇠ 답신, → 비동기

 

■ 호출 메시지 (Call Message)

ㆍ(송신→수신)객체 M, 수신객체 오퍼레이션 실행

ㆍ동기 메시지 (Synchronous Message) : 대게 수신 객체가 오퍼레이션을 수행 할 때까지 송신 객체는 기다림

■ 비동기 메시지 (Asynchronous Message)

ㆍ오퍼레이션이 완료되기를 기다리지 않음

 

3) 시간 (Time)

 

수직 방향, 가장 윗부분에서 아래를 향해 흐르기 시작함

 

4) 종류

 

■ 인스턴스 시퀀스 다이어그램 (instance)

하나의 시퀀스 다이어그램에 하나의 시나리오

■ 일반 시퀀스 다이어그램 (generic)

하나의 시퀀스 다이어그램에 모든 시나리오 다 포함, 여러 조건들을 구분 짓는 방법 필요

ㆍ[] : 전이조건

ㆍ<<transaction over>> : 시나리오 마지막 MS 앞

 

** 활동 + 시퀀스 결합 : 교류 개요 다이어그램 **

 

 2. 시퀀스 내에서 객체 생성하기

 

■ 트랜잭션 기록 (Transaction Record)

ex) 고객과 자동판매기 사이에 교류 신용 카드결제

처음부터 존재하는 객체 X, 생성된 시기의 수평선

■ <<create>>

생성하는 객체에서 생성되는 객체로 M 전달

 ■ X, <<destroy>>

스스로 소멸, 소멸 지시받음

 

 

3. 시퀀스 내에서 객체 생성하기

 

■ 프레임 넣기

■ 조정자 (operator)

프레임 내의 다이어그램 형태 ex) sd

■ 교류발생 (Interation Occurrence)

유스케이스의 시나리오로 일반 시퀀스 다이어그램이 아닌 인스턴스 시퀀스 다이어그램을 생성 경우

ㆍref : 재사용

■ 합쳐진 교류 조각 (Interaction Fragment)

교류 발생은 교류조각의 특별한 케이스

ㆍalt : 특정 조건을 만족하는 한 곳만 처리

ㆍpar : 두 조각, 서로 방해하지 않으면서 동시 발생

 

Chapter10_통신 다이어그램

 

1. 통신 다이어그램(Communication Diagram)란? [클래스,유스케이스,시퀀스 선행]

 객체 다이어그램 확장한 것, 객체 사이의 연관 관계 뿐 아니라 각 객체들이 주고받는 메시지들을 나타냄

■ 객체 – 스크린샷

■ 통신 – 영화

 

ㆍ시퀀스 다이어그램↔통신 다이어그램 : 의미상동등

ㆍ클래스의 인스턴스를 모델링한 객체 다이어그램이 통신다이어그램의 기본 뼈대 + 메시지추가


1) 상태 바꾸기와 중첩 메시지

 

■ <<become>>

■ 증첩 메시지 표현법

중첩될 대상의 메시지 숫자와 똑같은 숫자를 붙여주고 소수점을 붙인 후 중첩되는 메시지의 고유 숫자를 붙여 주면 됨


2) 객체의 생성

■ <<create>>

3) Message의 번호 매기기

 

■ 상호 배타적인 전이 조건 메시지에 번호 매기기

■ 전이 조건이 상호 배타적이기 때문에 오직 하나의 경로만 가능 할 때는 같은 번호를 매김

 

4) 여러 객체로 메시지 전송하기

 

■ 동일한 클래스에서 만들어진 여러 개의 객체에 메시지 보내는 경우

ㆍ객체 사각형 사선 방향으로 쌓음

ㆍ객체로 전송되는 메세지에 *가 붙은 대괄호 조건문

■ 메시지를 보내는 순서가 중요할 떄

ㆍwhile 조건으로 가능


5) 반환된 결과 나타내기

■ 반환되는 결과가 명시된 수식을 가진 통신다이어그램

■ 메시지–시그니처(message-sjgnature) : 수식우변

ㆍ반환되는 값의 이름 := 오퍼레이션

ex) totalPrice := compute(itemPrice, sales Tax)


6) 활성객체 (Avtive Object)

■ 두꺼운 경계선 사각형

■ 객체간의 교류에 있어서 흐름을 제어하는 특정한 객체

■ 활성 객체는 수동 객체(passive object)에게 메시지를 보내며 다른 활성 객체들과 교류

■ 동시성 (Concurrency)

  시스템 내에서 두 개 이상의 객체가 동시 작동

 

7) 동기화 (Synchronize)

 

■ 다른 몇 개의 메시지를 받은 후에야 메시지를 전송하는 객체가 있을 수 있음

■ 이 객체는 다른 메시지들과 자신의 메시지를 동기화를 해야 함

 ■ 리스트 내 각 항목 (,) 구분, 리스트 끝 (/) 구분

 

Chapter11_활동 다이어그램

■ 오퍼레이션이나 처리 과정이 수행되는 동안 일어나는 일들을 간단하게하기 위해 고안

■ 하나 활동 처리 과정 끝 다음 활동 자동적

1. 활동 다이어그램(Activity Diagram)이란?

 

1) 결정, 결정, 또 결정

① 하나의 행동으로부터 가능한 처리 경로를 전부 직접 그려 주는 것

② flowchart에서 본 듯한 마름모꼴을 사용하여 활동 전이를 나누는 것

 

2) 동시 경로

 

■ 두 개의 처리 경로로 나뉘어 동시에 실행되었다 다시 한 위치로 모이는 경우

 

3) 신호 (Signal)

 

■ 활동이 진행되는 도중에 신호를 보낼 수 있음

■ 신호를 보내면 그 신호를 받는 쪽은 활동 개시

■ 출력사건 (Output Event)

출력의 전송, 뾰족 오각형

■ 입력사건 (Input Event)

신호의 수신, 쐐기 모양의 파인 사각형

 

 2. 구획면 (Swimlane)

■ 역할(role)을 표시하기 수직 구역으로 분할한 면

■ 한 구획면에서 다른 구획면으로 전이 가능

 

3. 혼합 다이어그램 (Hybrid Diagram)

■ 여러 개의 다른 다이어그램을 필요에 따라 조합

 

 4. 새로운 개념

 

1) 활동의 객체

 

■ 객체노드(object node)를 이용해서 활동의 입력 부분과 출력 부분을 저장할 수 있음


2) 예외 처리자(exception handler)

 

■ 예외가 발생하는 활동에서 시작되어 예외가 발생하게 된 이유를 설명

3) 활동 분해하기

 

■ 하나의 활동은 많은 동작(action)으로 구성

■ Pin : 동작에 위치한 객체노드

 

4) 시간 표시하기와 플로우 끝내기

■ 모래시계를 닮은 기호

시간의 흐름

■ 플로우 파이눌 노드(flow final node)

다른 활동에서 종결시키라는 명령이 없어도 특정 활동의 끝을 나타냄

 

Chapter12_컴포넌트 다이어그램

 

1. 컴포넌트(Component) 다이어그램이란?

 

컴포넌트, 인터페이스로 구성 각각의 관계가 설정

 

1) 컴포넌트란?

■ SW 컴포넌트는 시스템을 이루는 물리적 요소(ex: 실행파일, 소스, 바이러니 파일)

■ 컴포넌트는 컴퓨터 내에 있으며 다른 컴포넌트에 인터페이스를 제공(하드웨어x)

■ 인공물(artifact) : 시스템이 사용하고 생성하는 정보의 조각들

 

2) 컴포넌트와 컴포넌트 사이의 관계를 모델링하는 이유

■ 의뢰인이 완성된 시스템의 구조와 완성된 시스템 기능을 볼 수 있게하기 위해

■ 개발자에게 작업할 구조를 구체적으로 알리기 위하여

■ 문서와 도움말 만들을 담당자들이 쉽게 이해하기 위해

컴포넌트를 언제든지 재사용할 수 있게 하기 위해

 

3) 인터페이스

 

■ 캡슐화 혹은 정보은닉

객체는 자신의 행동을 어떻게 수행하는 지를 외부 세계와 다른 객체에게 보이지 않음

 

■ 인터페이스

ㆍ다른 객체들이 자신의 오퍼레이션 수행을 요청할 수 있게 하기 위해 제공하는 얼굴

ㆍ어떤 클래스가 수행하는 행동의 특성을 설정하는 오퍼레이션의 집합

ㆍ속성을 가지고 있지 않고 오퍼레이션만 가지고 있는 클래스

 

서비스를 제공하는 컴포넌트 : 제공되는 인터페이스(provided interface)

서비스를 액세스하는 컴포넌트 : 필수의 인터페이스(required interface)

 

■ 인터페이스 나타내기

ㆍ컴포넌트가 실체화하고 다른 컴포넌트가 의존하고 있는 인터페이스

 

■ 대체와 재사용

ㆍ새로운 컴포넌트가 기존의 컴포넌트와 동일한 인터페이스를 가지고 있고 좀 더 개선된 성능을 가지고 있다면 새 컴포넌트로 대체하여 재사용

Chapter13_배포 다이어그램

 

■ 배포다이어그램(Deployment Diagram)

ㆍ시스템 HW에 인공물이 어떻게 배포되는지 보여줌

ㆍHW가 다른 HW에 어떻게 연결되는지 보여줌

 ■ 노드(node)

ㆍ컴퓨팅 리소스의 일반적인 이름

■ 프로세서(processor)

ㆍ처리할 수 있는 능력을 지닌 것

■ 디바이스(device)

ㆍ처리할 수 있는 능력이 없는 것

ㆍ인공물을 실행하는 노드 

■ 노드에서 인공물의 배포를 모델링하는 세 가지

 

■ 노드사이의 접속을 나타나는 그림

 

■ 배포 명세 및 배포 명세가 매개 변수를 보내는 인공물과의 관계를 나타낸 그림

 

 

Quiz

 

CH8_상태 다이어그램

 

1. 상태 다이어그램이 클래스 다이어그램, 객체 다이어 또는 유스케이스 다이어그램과 비교하여 근본적으로 다른 것은 무엇일까?

➜ 상태 다이어그램은 오직 하나의 객체에 대한 상태를 모델링한다. 클래스 다이어그램, 객체 다이어그램 또는 유스케이스 다이어그램은 시스템이나 (최소한) 시스템의 부분을 모델링 한다.

 

2. 다음의 용어를 정의해 보자 : 전이, 사건, 동작

➜ 전이 : 한 상태에서 다른 상태로 바뀌는 것

사건 : 전이가 일어나도록 하는 일

동작 : 상태를 변화시키는 실행 가능한 단위 연산

 

3. 촉발없는 전이(triggerless transition)란?

➜ 사건에 응답하여 일어난 것이 아닌, 상태 내의 활동(activity)으로 인하여 일어나는 전이

 

4. 순차적 하위상태와 동시적 하위상태의 차이는?

➜ Sequential substate : 하나씩 전이가 진행

Concurrent substate : 동시에 진행

 

CH9_시퀀스 다이어그램

 

1. 동기 메시지와 비동기 메시지를 정의해 보자.

➜ 동기 메시지는 전송 후 응답을 받아야 하는 메시지이며, 비동기 메시지는 전송 후 응답을 기다리지 않는 메시지이다.

 

2. UML 2.0에서 교류 조각(interaction fragment)은 무엇을 의미하는가?

➜ 시퀀스 다이어그램의 한 부분을 의미한다.

 

3. UML 2.0에서 par는 무엇을 의미하는가?

➜ 결합된 교류 조각이 동시에 작동하고 서로 방해하지 않음을 나타낸다.

 

4. 시퀀스 다이어그램에서 객체 생성은 어떻게 나타낼까?

➜ 생명선 상에 객체 사각형을 그려 넣어서 “이 시간에 이것이 생성되었다”라고 알려주면 된다. 생성된 객체를 가리키는 메시지 화살표에 Create() 혹은 <<Create>>를 덧붙인다.

 

CH10_통신 다이어그램

 

1. 통신 다이어그램에서는 메시지를 어떻게 나타냄?

➜ 메시지는 두 객체 사이의 연관선과 가깝게 화살표를 그려주면 된다. 화살표는 메시지를 받는 객체를 향한다.

2. 통신 다이어그램에서는 순차적인 흐름 정보를 어떻게 나타낼까?

➜ 메시지에 번호를 매겨 각 메시지의 처리 순서를 나타낸다. 번호와 메시지 사이는 콜론(:)으로 구분

3. 상태의 변화는 어떻게 나타낼까?

➜ 첫 번째 방법 – 상태를 나타내는 객체의 속성에 현재의 상태 값을 대입한다. 새로운 상태를 나타내는 객체를 하나 더 만들고 서로 연결시킨다. 그 다음 원래의 상태로부터 새로운 상태의 방향으로 <<become>> 스테레오타입이 붙은 메시지를 위치시킨다.

두 번째 방법 – 객체의 사각형 안에 객체의 이름 다음에 대괄호로 묶인 상태를 적어 준다. 변화되는 상태를 나타내는 객체를 하나 더 만든다. 두 객체를 화살표 머리의 쇄선으로 연결시킨다. 물론 화살표의 방향은 원래의 상태에서 변화되는 상태를 향하고 <<become>> 스테레오타입을 붙혀 준다.

 

4. 시퀀스 다이어그램과 통신 다이어그램 “의미상 동등성(semantic equivalence)”은 무슨 의미?

➜ 동일한 정보를 나타내고 있으며, 서로 바꾸어 그릴 수 있다.

 

CH11_활동 다이어그램

 

1. 결정 위치(decision point)를 나타내는 두 가지 방법은 무엇일까?

➜ 첫 번째 방법은 하나의 행동으로부터 가능한 처리 경로를 전부 직접 그려 주는 것이고, 둘째 방법은 플로우차트에서 본 듯한 마름모꼴을 사용하여 활동 전이를 나누는 것이다. 두 경우 모두 대괄호로 감싼 조건문을 써준다.

 

2. 구획면(swimlane)이란?

➜ 활동 다이어그램에 나타나는 것으로, 특정한 역할이 수행하는 활동을 나타내는 수직 구역

 

3. 신호 전송과 신호 수신은 어떻게 나타낼까?

➜ 신호의 전송은 뾰족한 오각형(convex pentagon)으로 나타내며, 신호의 수신은 쐐기 모양으로 파인 다각형으로 나타낸다.

 

4. 동작(action)은 무엇인가?

➜ 활동의 컴포넌트

 

5. 객체 노드(object node)란 무엇인가?

➜ 활동으로 입력되고 활동으로부터 출력되는 정보의 조각. UML 2.0의 활동 다이어그램에서 일반적으로 활동의 시퀀스를 통한 객체의 흐름을 나타낸다.

 

6. 핀(pin)이란 무엇인가?

➜ 동작(action)의 객체 노드

 

CH12_컴포넌트 다이어그램

 

1. 컴포넌트와 인공물 사이의 차이점은 무엇인가?

➜ 컴포넌트는 시스템의 부분을 대신할 수 있는 모듈러이고, 시스템의 기능을 정의한다. 인공물은 시스템이 사용하고 생성하는 정보의 조각이다.

 

2. 컴포넌트와 인터페이스 사이의 관계를 나타내는 방법 두 가지는?

➜ 첫째 방법은 인터페이스를 나타낼 때 그 인터페이스와 관련된 정보를 가진 사각형으로 그리는 것이다. 이 사각형은 컴포넌트와 속이 빈 화살표 머리를 가진 쇄선으로 연결한다. 둘째 방법은 컴포넌트와 연결된 인터페이스를 작은 원으로 그리는 것이다. 여기서는 작은 원과 컴포넌트를 연결하는 실선이 실체화 관계를 나타낸다.

 

3. 제공되는 인터페이스란? 그리고 필수의 인터페이스란?

➜ 제공되는 인터페이스(provided interface)란, 다른 컴포넌트가 자신의 서비스를 사용할 수 있도록 노출시킨 인터페이스를 뜻하며, 이 서비스를 다른 컴포넌트가 액세스할 때 이 인터페이스는 필수의 인터페이스(required interface)가 된다.

 

CH13_배포 다이어그램

 

1. 배포 다이어그램에서 노드는 어떻게 나타낼까?

➜ 육면체(cube)

 

2. 노드에는 어떤 정보를 넣을 수 있을까?

➜ 노드 이름, 패키지 이름, 노드에 배포된 컴포넌트

 

3. 토큰-링 네트워크는 어떻게 구동될까?

➜ 모든 컴퓨터는 중앙 다중 스테이션 액세스 유닛MultiStation Access Unit : MSAU)에 네트워크 인터페이스 카드를 통해 연결되어 있다. MSAU는 링을 통하여 토큰이라고 불리는 신호를 전송하고, 해당 시점에서 정보를 보낼 컴퓨터가 무엇인지의 결정은 토큰의 위치로 결정된다.

 

 

반응형