Super Kawaii Cute Cat Kaoani
본문 바로가기
💾 lecture/소프트웨어분석 및 설계

[객체 지향 설계와 분석을 위한 UML 기초와 응용] 2장 연습문제

by wonee1 2025. 4. 11.
728x90

 

 

01. UML 다이어그램 중에서 동적 모델이 아닌 것은?

 

1. 유스케이스 다이어그램

2. 클래스 다이어그램

3. 활동 다이어그램

4. 순서 다이어그램 

 

 

답: 2번 

 

 

💠UML 다이어그램 

 

  • 동적 모델: 유스케이스 다이어그램, 활동 다이어그램, 순서 다이어그램
  • 정적 모델: 클래스 다이어그램, 컴포넌트 다이어그램 

 

 

02. UML 스테레오 타입에 관한 설명이 아닌 것은?

1. UML 요소의 의미를 바꾸거나 명확하게하기 위한 방법이다

2. <<parallel>> 같이 키워드를 << >>로 감싸 표현한다

3. 스테레오타입 대신 특별한 아이콘을 사용하여 표현할 때도 있다

4. 몇 개의 특별한 UML 요소들에만 적용할 수 있다 

 

 

답: 4번 

 

 

💠UML 스테레오타입이란?

 

  • UML에서 기본 제공하는 표기 외에 사용자 정의 의미를 부여하기 위한 방법
  • 요소의 의미를 확장하거나 특수화할 때 사용
  • << >> 기호로 감싼 키워드 형태로 표기
  • 스테레오 타입은 모델 요소 전반에 걸쳐 사용 가능 -> 클래스, 관계, 컴포넌트, 패키지, 액터, 유스케이스 등 다양한 요소에 적용 가능하다 

 

 

 

03. UML 다이어그램은 다이어그램에서 표현하고자 하는 기본 개념의 유형에 따라 정적 다이어그램과 동적 다이어그램으로 분류할 수 있다 이러한 관점에서 볼 때 다음 중 다른 유형의 다이어그램은? 

 

1. 컴포넌트 다이어그램

2. 유스케이스 다이어그램

3. 활동 다이어그램

4. 순차 다이어그램

 

답: 1번 

 

 

04. 요구 사항 모델링에 사용되는 다이어그램은?

 

1. 클래스 다이어그램

2. 유스케이스 다이어그램

3. 컴포넌트 다이어그램

4. 통신 다이어그램 

 

답: 2번 

 

 

💠유스케이스 다이어그램 (Use Case Diagram)

  • 시스템이 사용자(액터)와 어떻게 상호작용하는지를 시각화한 다이어그램
  • 시스템의 기능 요구사항외부 관점에서 표현
  • 요구 사항 분석 단계에서 가장 많이 사용됨

 

 

05. UML 구성 요소에서 {} 기호를 사용하여 이전 규칙을 수정하거나 새롭게 생성하기 위한 것은?

1. 스테레오 타입   ->   << >> 기호로 표현, UML 의미 확장용

2. 꼬리표 값     ->    속성에 대한 메타데이터 표현

3. 제약     

4. 공통 분할       -> 클래스/객체 분류 기준 표현

 

답: 3번 

 

💠제약이란? 

 

  • UML에서 속성, 관계, 동작 등에 대한 제약 조건을 명시할 때 사용
  • 중괄호 {} 안에 작성하며, 다이어그램 요소에 추가적인 의미나 제한 조건을 부여함
  • 보통 OCL (Object Constraint Language) 형식 또는 자연어로 표현

 

 

 

 

06. 스테레오 타입의 올바른 표기법은?

 

1. {sub system}

2. {subsytem = 2.0)

3. <subsystem>

4. <<subsystem>>

 

답: 4번 

 

 

07. {tag=value} 의 기호를 사용해 UML 구성 요소가 갖는 속성을 확장하여 구성 요소의 명세서에 새로운 정보를 생성하는 것 

 

1. 꼬리표 값

2. 제약

3. 스테레오타입

4. 장식

 

답: 1번 

 

 

 

08. 소프트웨어의 물리적 단위 구성과 의존관계를 표현하는 다이어그램은? 

 

1. 유스케이스 다이어그램

2. 배치 다이어그램

3. 컴포넌트 다이어그램 

4. 클래스 다이어그램 

 

 

 

답: 3번 

 

💠 다이어그램 종류 

  • 유스케이스 다이어그램: 시스템의 기능(요구사항)과 사용자 간 상호작용 표현 -> 요구사항 모델링
  • 배치 다이어그램: 소프트웨어가 하드웨어에 배포되는 물리적 구조 표현 -> 배포/실행 환경 모델링
  • 클래스 다이어그램: 클래스 간 정적 관계 표현 (상속, 연관 등) -> 구조 모델링 

 

 

 

09. 정적 모델링에 사용되는 다이어그램이 아닌것은?

1. 클래스 다이어그램

2. 컴포넌트 다이어그램

3. 패키지 다이어그램 

4. 상태 다이어그램 

 

답: 4번 

 

 

 

10. 그룹화와 관련 있는 것은? 

1. 컴포넌트 

2. 패키지

3. 통신

4. 노드 

 

 

답: 2번 

 

 

 

💠패키지란?

 

 

  • UML에서 관련 있는 클래스, 인터페이스, 유스케이스, 컴포넌트 등을 묶는 단위
  • 논리적 그룹화를 통해 복잡한 시스템을 구조화하고 관리하기 쉽게 만듦
  • 코드에서는 자바의 package, 파이썬의 module, C++의 namespace와 유사

 

 

 

11. 관계의 종류에 속하지 않는 것은?

 

1. 의존 관계 

2. 포함 관계 

3. 연관 관계

4. 그룹 관계 

 

 

답: 4번 

 

 

 

💠UML의 주요 관계 종류

  1. 의존 관계 (Dependency)
    • 한 요소가 다른 요소에 의존할 때 (예: 한 클래스가 다른 클래스의 메서드를 호출)
  2. 포함 관계 (Composition / Aggregation)
    • 전체–부분 관계, 생명주기에 따라 합성 관계(●) 또는 집합 관계(◻)로 나뉨
    • 예: 자동차 → 바퀴 포함
  3. 연관 관계 (Association)
    • 두 클래스 간에 지속적인 연결이 존재할 때
    • 예: 학생과 수업, 직원과 부서

 

 

12. 동적 모델링에 사용되는 다이어그램이 아닌 것은? 

 

1. 순차 다이어그램

2. 통신 다이어그램

3. 클래스 다이어그램

4. 상태 다이어그램

 

답: 3번 

 

 

13. 순차 다이어그램과 동일한 내용으로, 객체 사이의 데이터 흐름을 보여주는 다이어그램은? 

1. 클래스 다이어그램

2. 활동 다이어그램

3. 상태 다이어그램

4. 통신 다이어그램 

 

 

 

💠 통신 다이어그램

 

 

  • 객체 간의 메시지 흐름과 상호작용을 표현하는 UML 행위 다이어그램
  • 시퀀스 다이어그램(순차 다이어그램)과 동일한 정보를 표현하지만,
    • 시퀀스 다이어그램은 시간 순서 중심
    • 통신 다이어그램은 객체 간 연결 구조 중심

 

 

 

14. UML의 구성 요소를 설명하시오

UML은 시스템을 시각적으로 모델링하기 위해 다음과 같은 3가지 주요 구성 요소로 이루어져 있다. 

  1. 사물(Things)
    • 모델의 기본 요소 (예: 클래스, 유스케이스, 노트 등)
  2. 관계(Relationships)
    • 사물들 간의 연결
    • 종류: 연관(Association), 의존(Dependency), 일반화(Generalization), 실체화(Realization)
  3. 다이어그램(Diagrams)
    • 사물과 관계를 시각적으로 표현
    • 예: 클래스 다이어그램, 유스케이스 다이어그램, 시퀀스 다이어그램 등

 

15. 인터페이스에 대해 자바 코드를 예로 들어 설명하시오

인터페이스는 클래스가 반드시 구현해야 하는 기능의 집합(설계서 역할)입니다.

 

interface Animal {
    void sound(); // 추상 메서드
}

class Dog implements Animal {
    public void sound() {
        System.out.println("멍멍");
    }
}

 

 

  • Animal은 인터페이스, Dog는 그것을 구현(implements)한 클래스입니다.

 

16. 클래스 다이어그램과 객체 다이어그램을 예를 들어 설명하시오

 

 

 

클래스 다이어그램

Class: Student
+ name: String
+ id: int
+ study(): void

 

 

 

객체 다이어그램 

 

Object: student1:Student
name = "홍길동"
id = 202301

 

 

17. 유스케이스의 구성 요소와 그 역할을 설명하시오 

구성 요소  역할 
액터(Actor) 시스템 외부 사용자 또는 다른 시스템
유스케이스(Use Case) 시스템이 제공하는 기능 단위
시스템 경계(System Boundary) 유스케이스가 포함되는 시스템 범위
관계(Relationships)  액터-유스케이스, 유스케이스 간 포함/확장/일반화 관계 등

 

 

18. 클래스 다이어그램을 표현할 때 클래스 다이어그램에 표현되는 모든 특성을 설명하시오

예) 형식, 스테레오타입, public 등

 

 

  • 형식(Notation): 사각형 박스(클래스 이름 / 속성 / 메서드)
  • 접근 지정자
    • +: public
    • -: private
    • #: protected
  • 스테레오타입
    • <<interface>>, <<entity>> 등 역할 설명
  • 관계
    • 연관, 집합(aggregation), 합성(composition), 상속 등
  • 속성 및 메서드의 타입 명시
    • 예: name: String, study(): void

 

 

 

19. 명세서 작성에 대해 예를 들어 설명하시오 

 

명세서는 유스케이스의 내용을 상세하게 기술한 문서입니다.

 

예시: Place Order

  • Actor: Customer
  • Precondition: 로그인 상태
  • Flow of events:
    1. 고객이 상품을 선택한다
    2. 장바구니에 담는다
    3. 결제를 진행한다
  • Postcondition: 주문 정보가 저장되고 결제 완료됨

→ 개발자, 디자이너, 테스터 간의 공통 이해 문서로 활용됨

 

 

20. 스테레오 타입에 대해 예를 들어 설명하시오 

 

스테레오타입(Stereotype)은 UML 요소의 의미를 확장하거나 특수화할 때 사용합니다.

 

 

형식: <<stereotype>>

 

예시:

<<entity>> Customer <<control>> OrderManager <<boundary>> OrderUI
  • <<entity>>: 데이터 중심 클래스
  • <<control>>: 처리 로직 중심 클래스
  • <<boundary>>: 사용자 인터페이스 클래스

→ 소프트웨어 아키텍처의 역할 구분에 유용

 

 

 

728x90