객체지향 프로그램에서 데이터를 추상화하는 단위는?
1. 메소드
2. 클래스
3. 상속성
4. 메시지
메소드: 객체가 수행하는 기능으로 객체가 갖는 데이터(속성, 상태)를 처리하는 알고리즘이며, 객체의 상태를 참조하거나 변경하는 수단이 되는 것
상속성: 이미 정의된 상위 클래스(부모 클래스)의 모든 속성과 연산을 하위 클래스가 물려받는 것
메시지: 객체에게 어떤 행위를 하도록 지하는 명령 또는 요구사항
객체지향 분석 방법론 중 E-R 다이어그램을 사용하여 객체의 행위를 모델링하며, 객체 식별, 구조 식별, 주체 정의, 속성 및 관계 정의, 서비스 정의 등의 과정으로 구성되는 것은?
1. Coad와 Yourdon 방법
2. Booch 방법
3. Jacobson 방법
4. Wirfs-Brocks 방법
Booch 방법: 미시적(Micro) 개발 프로세스와 거시적(Marco) 개발 프로세스를 모두 사용하는 분석 방법
Jacobson 방법: Use Case를 갖ㅇ조하여 사용하는 분석 방법
Wirfs-Brock 방법: 분석과 설계 간의 구분이 없고, 고객 명세서를 평가해서 설계 작업까지 연속적으로 수행하는 기법
객체지향 분석 기법의 하나로 객체 모형, 동적 모형, 기능 모형의 3개 모형을 생성하는 방법은?
1. Wirfs-Block Method
2. Rumbaugh Method <- 정답
3. Booch Method
4. Jacobson Method
객체지향 설계 원칙 중 서브타입(상속받은 하위 클래스)은 어디에서나 자신의 기반타입(상위클래스)으로 교체할 수 있어야 함을 의미하는 원칙은?
1. ISP(Interface Segregation Principle)
2. DIP(Dependency Inversion Principle)
3. LSP(Liskoc Substitution Principle)
4. SRP(Single Responsibility Principle)
ISP(Interface Segregation Principle, 인터페이스 분리 원칙): 자신이 사용하지 않는 인터페이스와 의존 관계를 맺거나 영향을 받지 않아야 한다는 원칙
DIP(Dependency Inversion Principle, 의존 역전 원칙):각 객체들 간의 의존 관계가 성립될 때, 추상성이 낮은 클래스보다 추상성이 높은 클래스와 의존 관계를 맺어야 한다는 원칙
SRP(Single Responsibility Principle, 단일 책임 원칙): 객체는 단 하나의 책임만 가져야 한다는 원칙
객체지향 프로그램의 장점으로 거리가 먼 것은?
1. 자연적인 모델링이 가능하다.
2. 실행 속도가 빨라진다.
3. 소프트웨어의 재사용률이 높아진다.
4. 소프트웨어의 유지보수성이 향상된다.
객체지향은 기존의 절차지향 방식에 비해 실행 속도가 느리다는 단점이 있다.
두 모듈이 동일한 자료 구조를 조회하는 경우의 결합성이며 자료 구조의 어떠한 변화, 즉 포맷이나 구조의 변화는 그것을 조회하는 모든 모듈 및 변화되는 필드를 실제로 조회하지 않는 모듈에까지도 영향을 미치게 되는 결합성은?
1. Data Coupling
2. Stamp Coupling <- 정답
3. Control Coupling
4. Content Coupling
결합도(Coupling)에 대한 설명으로 틀린 것은?
1. 데이터 결합도는 두 모듈이 매개변수로 자료를 전달할 때 자료 구조 형태로 전달되어 이용될 때 데이터가 결합되어 있다고 한다.
2. 내용 결합도는 하나의 모듈이 직접적으로 다른 모듈의 내용을 참조할 때 두 모듈은 내용적으로 결합되어 있다고 한다.
3. 공통 결합도는 두 모듈이 동일한 전역 데이터를 접근한다면 공통 결합되어 있다고 한다.
4. 결합도는 두 모듈간의 상호작용, 또는 의존도 정도를 나타내는 것이다.
데이터 결합도는 매개 변수나 인수로 데이터를 전달핼 때의 결합도이며, 자료 구조형태로 전달하는 결합도는 스탬프 결합도이다.
모듈의 응지도에 대한 설명 중 틀린 것은?
1. 모듈의 응집도란 모듈 안의 요소들이 서로 관련되어 있는 정도를 말한다.
2. 기능적 응집도는 한 모듈 내부의 한 기능 요소에 의한 출력 자료가 다음 기능 요소의 입력 자료서 제공되는 형태이다.
3. 교환적 응집도는 동일한 입력과 출력을 사용하는 소작업들이 모인 모듈에서 볼 수 있다.
4. 논리적 응집도는 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들로 하나의 모듈이 형성되는 경우이다.
기능적 응집도는 모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우의 응집도이며, 2번의 내용은 순차적 응집도에 대한 설명이다.
응집도의 종류 중 서로 간에 어떠한 의미 있는 연관관계도 지니지 않은 기능 요소로 구성되는 경우이며, 서로 다른 상위 모듈에 의해 호출되어 처리상의 연관성이 없는 서로 다른 기능을 수행하는 경우의 응집도는?
1. Coincidental Cohesion 우연한 응집도
2. Function Cohesion
3. Sequential Cohesion
4. Logical Cohesion
기능적 응집도(Function Cohesion): 모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우의 응집도
순차적 응집도(Sequential Cohesion): 모듈 내 하나의 활동으로부터 나온 출력 데이터를 그 다음 활동의 입력 데이터로 사용할 경우의 응집도
논리적 응집도(Logical Cohesion): 유사한 성격을 갖거나 특정 형태로 분류된 처리 요소들로 하나의 모듈이 형성되는 경우의 응집도
알고리즘 설계 기법으로 거리가 먼 것은?
1. Divide and Conquer
2. Greedy
3. Static Block
4. Backtracking
분할 정복 / 분할 통치(Divide and Conquer): 큰 문제를 보다 작은 문제로 분할하여 해결하는 전략
탐욕 알고리즘(Greedy Algorithm): 완벽한 해결책 보다는 차선책을 목표로 하며, 상황에 맞는 해결책을 즉석에서 모색하는 방식
동적 계획법(Dynamic Programming): 아래 단계의 간단한 문제부터 해결하면서 점차 상위로 나아가는 상향식 접근 방식
백트래킹(Backtracking): 깊이우선탐색 알고리즘을 이용한 기법으로, 문제 해결을 위한 모든 가능성을 트리로 구축하는 방식
객체지향 분석 기법과 관련한 설명으로 틀린 것은?
1. 동적 모델링 기법이 사용될 수 있다.
2. 기능 중심으로 시스템을 파악하며 순차적인 처리가 중요시되는 하향식 방식으로 볼 수 있다.
3. 데이터와 행위를 하나로 묶어 객체를 정의 내리고 추상화시키는 작업이라 할 수 있다.
4. 코드 재사용에 의한 프로그램 생산성 향상 및 요구에 따른 시스템의 쉬운 변경이 가능하다.
모든 과정이 순차적으로 수행되는 하향식 방식은 절차지향적 분석 기법에 적합한 방식이다.
다음 중 가장 약한 결합도는?
1. Common Coupling
2. Content Coupling
3. External Coupling
4. Stamp Coupling
결합도 순서(약함->강함)
자료 -> 스탬프 -> 제어 -> 외부 -> 공통 -> 내용