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

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

by wonee1 2025. 4. 8.
728x90

 

1장 연습문제  풀이 

 

 

01 . UML의 특징이 아닌 것은?

 

1. 가시화 언어다.

2. 명시화 언어다.

3. 구축 언어다.

4. 기능 중심 언어다. 

 

답: 4번 

 

💠UML의 특징

  • UML은 기능이 아닌 객체 중심의 설계 언어이다 -> 객체지향 설계 도구 
  • 가시화, 명시화, 구축, 문서화를 위한 표준 모델링 언어 

 

 

02. 객체 지향 기법에서 캡슐화에 대한 설명으로 틀린 것은?

 

1.캡슐화를 하면 객체 간의 결합도가 높아진다

2.캡슐화된 객체들은 재사용이 용이하다

3.프로그램 변경에 대한 오류의 파급 효과가 적다

4.인터페이스가 단순해진다 

 

 

답: 1번 

 

 

💠캡슐화란? 

  • 데이터와 메서드를 하나로 묶고 외부에서 직접 접근하지 못하도록 감추는 기법 
  • 캡슐화의 목적은 정보 은닉을 통해 객체 간 결합도를 낮추는 것! 
  • 결합도가 낮아야 시스템 유지보수와 확장이 쉽다 

 

 

03. 객체모델, 동적 모델, 기능 모델의 3개 모델로 구성되는 객체 지향 분석 기법은?

 

1. Rambaugh method 

2. Wrifs-Brock 

3. Jacobson method

4. Coad & Yourdon method

 

 

답: 1번 

 

 

 

💠객체 지향 분석 기법 

 

Rambaugh method (람보 방법)

 

3개의 주요 모델로 구성됨:

  1. 객체 모델 (Object Model)
    → 객체와 클래스 간의 관계 (정적 구조)
  2. 동적 모델 (Dynamic Model)
    → 상태 변화, 이벤트 흐름 등 (상태도, 시퀀스 등)
  3. 기능 모델 (Functional Model)
    → 데이터 흐름, 연산 수행 절차 등 (DFD 기반)

 

Wirfs-Brock

책임 기반 설계 방식. 객체 역할, 협력 관계 중시 (CRC 카드 활용)

 

Jacobson method

유스케이스 기반 객체지향 분석 기법 (Use Case 중심)

 

Coad & Yourdon

도메인 중심 분석, 클래스-속성-연관 중심 설계 방식

 

 

04. 객체지향 시스템에서 자료부분과 연산 부분 등 정보 처리에 필요한 기능을 한 테두리로 묶는 것을 의미하는 용어는? 

1. 정보 은닉

2. 클래스 

3. 캡슐화

4. 통합 

 

 

답: 3번 

 

 

 

05. 객체지향 기법에서 메시지의 전달은 어덯게 이루어지는가?

 

1. 속성에서 속성으로

2. 객체에서 속성으로

3. 객체에서 객체로

4. 클래스에서 데이터로

 

 

답: 3번 

 

 

💠메세지란? 

  • 객체 지향에서 메세지는 한 객체가 다른 객체에게 어떤 행동(메서드)를 요청하는 것 
  • 메세지를 받은 객체는 그에 대응하는 메서드를 실행한다 

 

 

 

06. 객체지향 기법에서 상속의 결과로 얻을 수 있는 가장 중요한 이점은?

 

1. 모듈 라이브러리를 재이용한다

2. 객체 지향 데이터베이스를 사용할 수 있다

3. 클래스와 오브젝트들을 재사용할 수 있다

4. 프로젝트들을 보다 효과적으로 관리할 수 있다

 

 

답: 3번 

 

 

💠상속이란?

  • 기존의 클래스의 속성과 메서드를 새로운 클래스가 물려받는 것 
  • 중복 코드를 줄이고 공통 기능을 효율적으로 재사용할 수 있게 함 

 

 

 

07. 객체지향 기법에서 하나 이상의 유사한 객체들을 묶어 하나의 공통된 특성을 표현한 것은? 

 

1. 클래스

2. 함수

3. 메서드

4. 메시지

 

 

답: 1번

 

 

08. 객체에게 어떠한 행위를 하도록 지시하는 명령은?

 

1. 클래스 

2. 인스턴스

3. 오브젝트

4. 메시지

 

답: 4번 

 

 

09. 객체지향 개념에 관한 설명 중 잘못된 것은?

 

1. 객체들 간의 상호작용은 메시지를 통해 이루어진다.

2. 클래스는 인스턴스들이 갖는 변수와 인스턴스들이 사용할 메서드를 갖는다.

3. 다중 상속은 2개 이상의 클래스가 한 클래스로부터 상속받는 것을 의미한다.

4. 객체가 갖는 데이터를 처리하는 알고리즘을 연산 또는 메서드라 한다.

 

 

답: 3번 

 

 

💠 다중상속이란? 

 

  • 한 클래스가 2개 이상의 클래스로부터 상속을 받는 것을 의미

 

 

 

10. 객체지향 설계에 대한 설명으로 옳지 않은 것은? 

 

1. 객체지향 설계에서 가장 중요한 문제는 시스템을 구성하는 개체와 속성, 연산을 인식하는 것이다.

2. 시스템 기술서의 동사는 객체를, 명사는 연산이나 객체 서비스를 나타낸다.

3. 객체 지향 설계를 문서화 할 때 객체와 그들의 부객체의 계층적 구조를 보여주는 계층 차트를 그리면 유용하다.

4. 객체는 순차적으로 또는 동사적으로 구현될 수 있다.

 

 

답: 2번 

 

 

💠 시스템 기술서에서 동사는 연산이나 객체 서비스를 명사는 객체를 의미한다 

 

 

 

11. UML에 대한 설명으로 옳지 않은 것은? 

 

1. 소프트웨어 시스템의 인공물들을 명세하고 가시화하며 구성하기 위한 언어다.

2. 산업 표준이 될 것으로 기대되는 객체 지향 모델링 언어를 정의한 전문가들이 노력한 결과다.

3. 시스템 요구사항을 명세하고 설계 의사 결정을 파악하는 데 도움이 된다.

4. UML 표기법은 객체 지향 분석과 설계 모델을 그래프로 표현할 수 없다는 단점이 있다.

 

 

답: 4번 

 

 

💠UML 이란?

  • 소프트웨어 시스템의 요구사항, 설계, 구조, 행위 등을 시각화하고 문서화, 명세화, 구축할 수 있도록 돕는 표준 모델링 언어
  • 객체 지향 분석 및 설계 (OOAD)에 매우 적합 
  • UML 다이어그램 대부분은 그래프 형태(노드 + 연결선)으로 구성됨 

 

 

12. 객체지향 기술에 대한 설명으로 옳지 않은 것은?

 

 

1. 객체란 필요한 자료 구조와 이에 수행되는 함수들을 가진 하나의 소프트웨어 모듈이다.

2. 클래스란 객체타입을 말하며 객체들이 갖는 속성과 적용 연산을 정의하고 있는 틀이다.

3.  상속은 상위클래스가 갖는 속성과 연산을 그대로 물려받는 것을 의미한다.

4. 분석과 설계, 구현 작업이 폭포수 모형과 같이 뚜렷하게 구별된다.

 

 

답: 4번

 

💠객체지향 기술 

 

  • 객체지향 소프트웨어 개발은 일반적으로 반복적이고 점진적인 특성을 가진다
  • 분석 -> 설계 -> 구현이 유기적을 연결되어 있고 필요에 따라 다시 분석하거나 설계를 보완한다 

 

💠 폭포수 모형

각 단계가 완전히 끝나야 다음 단계로 넘어가는 고전적인 순차적 방법론 

 

 

 

13. 객체 지향 기법에서 메서드는 어느 시점에 시작되는가? 

 

1. 사용자 명령어가 입력될 때   -> 이벤트 발생 시점일 수는 있지만, 직접적으로 메서드의 시작 조건은 아니다 

2. 운영체제에 의하여 인터럽트가 감지될 때  -> 이는 시스템 프로그래밍/ 하드웨어 수전에서의 동작 

3. 특별한 데이터 값을 만날 때  -> 값의 조건은 흐름에 영향을 줄 수 있지만 메서드 시작 조건은 아니다 

4. 오브젝트로부터 메시지를 받을 때

 

답: 4번 

 

 

💠 객체지향 기법에서 메서드는 객체가 메세지를 수신할 때 시작된다

 

 

 

14. 객체에 대한 설명으로 가장 옳지 않은 것은?  

 

1.객체는 실세계 또는 개념적으로 존재하는 세계의 사물들이다.

2. 객체는 공통 특징을 갖는 클래스들을 모아둔 것이다.

3. 객체는 데이터를 가지며 이 데이터의 값을 변경하는 함수를 가지고 있는 경우도 있다.

4. 객체들 사이에 통신할 때는 메시지를 전송한다.

 

 

답: 2번 

 

 

💠 클래스는 객체들의 공통된 특성과 행위를 정의한 틀이고 객체는 클래스의 인스턴스이다 

💠 클래스는 객체를 만들기 위한 설계도고 객체는 그 설계도로 만들어진 실체이다 

 

 

 

 

15. UML이란 무엇인지 설명하시오.

 

UML은 통합 모델링 언어로의 약자로 소프트웨어 시스템을 시각적으로 모델링하기 위해 표준화된 그래픽 언어입니다. 

주요 특징은 객체지향을 기반으로 한 모델링 언어라는 점과 시스템의 요구사항, 구조, 행위등을 다이어그램을 시각화한다는 것입니다.  따라서 설계, 분석, 구현, 문서화 과정에서 사용되며 표준화된 표기법으로 개발자 간의 의사소통 도구 역할을 합니다. 

 

 

16. UML의 탄생 과정을 설명하시오 

 

 

  • 1990년대 초, 다양한 객체지향 분석·설계 방법론(Rumbaugh의 OMT, Booch 방법, Jacobson의 OOSE 등)이 혼재됨.
  • 이들을 통합한 표준 모델링 언어의 필요성 대두
  • 1997년, Grady Booch, James Rumbaugh, Ivar Jacobson이 협력하여 UML 1.0 제안 (→ "삼총사 3 amigos")
  • 현재는 OMG(Object Management Group)에서 관리하는 국제 표준

 

 

17. 다형성에 대하여 예를 들어서 설명하시오

다형성이란 동일한 메시지(함수 호출)에 대해 객체가 다르게 반응하는 성질을 말한다 

 

예시 

 

class Animal {
    void sound() { System.out.println("동물이 소리를 낸다"); }
}

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

class Cat extends Animal {
    void sound() { System.out.println("야옹"); }
}

 

Animal 타입으로 sound()를 호출해도 실제 객체에 따라 결과가 다름
→ 이것이 다형성   

 

 

18. 객체 지향의 의미를 설명하시오 

  • 객체(Object) 중심으로 시스템을 모델링하고 구현하는 방법론
  • 데이터와 행동을 하나로 묶어 현실 세계를 반영
  • 핵심 개념: 캡슐화, 상속, 다형성, 추상화   

 

19. 구조적 프로그래밍과 객체 지향 프로그래밍을 설명하시오 

 

항목 구조적 프로그래밍 객체지향 프로그래밍 
중심 함수와 절차 중심  객체와 클래스 중심 
데이터 데이터와 함수 분리 데이터와 메서드 결합 
재사용 낮음 상속, 캡슐화로 재사용성 높음
예시 C, Pascal  Java, C++, Python 등

 

 

 

 

 

20. 클래스와 객체의 차이점을 예를 들어 설명하시오 

 

  • 클래스: 설계도
  • 객체: 설계도로 만들어진 실체

예시:

  • Car라는 클래스는 자동차의 구조를 정의
  • myCar = new Car("현대", "검정")는 객체로, 현실에서 움직일 수 있는 자동차

 

21. 메세지에 대해 예를 들어서 설명하시오

 

dog.bark();

 

 

  • 여기서 "bark"는 dog 객체에 전달된 메시지
  • 메시지를 받은 객체는 해당 메서드를 실행함

 

 

22. 인터페이스와 추상화의 차이점을 예를 들어 설명하시오 

 

 

항목 추상 클래스 인터페이스
목적  공통 기능 정의 및 일부 구현  기능 명세만 제공
다중 구현 제한적(단일 상속)  가능(다중 구현) 

 

 

abstract class Animal {
    abstract void move();
}
interface Flyable {
    void fly();
}

 

  • Bird는 Animal을 상속받고 Flyable을 구현할 수 있음

 

23. OMT 방법론의 객체 모델, 동적 모델, 기능모델을 설명하시오 

모델 설명 
객체 모델 클래스, 객체, 관계 등 정적 구조를 표현 (클래스 다이어그램)
동적 모델  상태 변화, 이벤트 반응 등의 행위 흐름 표현 (상태도, 시퀀스 등)
기능 모델  데이터 흐름, 처리 과정 표현 (DFD 기반, 연산 흐름 중심)

 

 

728x90