소프트웨어 공학 - 기출 문제

이보아·2024년 9월 26일

정보처리기사

목록 보기
2/16
post-thumbnail

📖목차

1. 📬소프트웨어 개발 프로세스

  • 애자일
  • 리팩토링 약술형

2. 📝계획 단계

  • LOC 계산

3. 📈요구 사항 분석 단계

  • 패키지 다이어그램
  • 기능/비기능
  • Aggregation/Generalization
  • 클래스
  • 관계/클래스/인터페이스

4. 📐설계 단계

  • 결합도/응집도
  • 팬인 문제
  • Observer
  • 행위
  • 내용 결합도/스탬프 결합도/공통 결합도
  • 절차적 응집도/교환적 응집도/기능적 응집도
  • 행위
  • Function/Dynamic/information
  • Control Coupling
  • Factory Method
  • ISP
  • 팬인 문제
  • Bridge, Observer
  • Proxy
  • Singleton/Visitor
  • 응집도 순서 문제
  • Abstract Factory

5. 🎁소프트웨어 패키징

  • 머릿말
  • 형상관리
  • 형상 통제 약술
  • CVS/SVN/GIT

6. 🎨화면 설계

  • 유효성
  • 직관성 약술
  • UX/UI
  • GUI
  • NUI

7.🌴기타

  • Point to Point/Hub&Spoke
  • EAI

1. 📬소프트웨어 개발 프로세스

20년 2회

시제품을 끈임없이 제작하며 사이클을 반복하는 개발 방법론으로, 워터폴과 대조적이며, 소프트웨어 개발을 넘어 기업 경영 전반에서 사용되고 있다. 고객의 변화하는 요구사항과 환경 변화에 능동적인 이 소프트웨어 개발 방법론을 쓰시오.

정답: 애자일 (agile)

20년 3회

소프트웨어 공학에서 리팩토링을 하는 목적에 대해 간략히 서술하시오.

정답: 프로그램을 쉽게 이해하고 수정하여 빠르게 개발할 수 있도록 하기 위함이다.


2. 📝계획 단계

20년 1회

LOC 기법에 의하여 예측된 총 라인 수가 30,000라인, 개발에 참여할 프로그래머가 5명, 프로그래머들의 평균 생산성이 월간 300라인일 떄 개발에 소요되는 기간을 계산식과 함께 쓰시오.

정답
계산식: (30,000/300)/5=20
답: 20개월


3. 📈요구 사항 분석 단계

20년 4회

3번 UML을 이용한 다이어그램 중 다음 그림에 해당하는 다이어그램을 쓰시오.

정답 : 패키지 다이어그램(Package Diagram)

21년 1회

요구사항 확인에 대한 다음 설명에서 괄호에 들어갈 알맞은 답을 쓰시오.

(가) 요구사항은 시스템이 무엇을 하는지, 어떤 기능을 하는지 등 사용자가 시스템을 통해 제공받기를 원하는 기능이나 시스템이 반드시 수행해야하는 기능을 의미한다.

(나) 요구사항은 품질이나 제약사항과 관련된 요구사항으로 시스템의 장비 구성 성능, 인터페이스, 테스트, 보안 등의 요구사항을 말한다.

(가) : 기능 (나) : 비기능

21년 3회

UML의 관계에 관한 다음 설명에서 각 번호에 들어갈 알맞은 용어를 쓰시오.

관계는 사물과 사물 사이의 연관성을 표현하는 것이다.
1) 하나의 사물이 다른 사물에 포함되어 있는 관계로 전체와 부분으로 구분되어지며 서로 독립적이다
2) 상위 모듈이 하위 모듈보다 더 일반적인 개념을 가지고 있으며 하위 모듈이 상위 모듈보다 더 구체적인 개념을 가진다

정답 : 1) Aggregation(집합 관계) 2) Generalization(일반화)

21년 3회

UML에 관한 다음 설명에서 괄호에 공통으로 들어갈 알맞은 답을 쓰시오

(가)다이어그램은 UML 다이어그램 중 객체들을 (가)로 추상화하여 표현하는 다이어그램으로 대표적인 구조적 다이어그램이다. (가)는 각각의 객체들이 갖는 속성과 메소드를 표현한 것으로 3개의 구획으로 나눠 이름, 속성, 메소드를 표기한다

정답: 클래스

22년 3회

UML은 통합 모델링 언어로써, 시스템을 모델로 표현해주는 대표적인 모델링 언어이다.

구성 요소로는 사물, ( 1 ), 다이어그램으로 이루어져 있으며, 구조 다이어그램 중, ( 2 ) 다이어그램은 시스템에서 사용되는 객체 타입을 정의하고, 그들 간의 존재하는 정적인 관계를 다양한 방식으로 표현한 다이어그램이다.
또한 UML 모델링에서 ( 3 )은/는 클래스와 같은 기타 모델 요소 또는 컴포넌트가 구현해야 하는 오퍼레이션 세트를 정의하는 모델 요소이

정답: (1)관계 (2)클래스 (3)인터페이스


4. 📐설계 단계

20년 1회

소프트웨어 패키징이란 모듈별로 생성한 실행 파일들을 묶어 배포용 설치 파일을 만드는 것을 말한다. 소스 코드는 향후 관리를 고려하여 모듈화하여 패키징한다. 모듈화는 모듈 간 (1)의 최소화와 모듈 내 요소들의 (2)를 최대화 하는 것이 목표이다. 알맞은 용어를 쓰시오

정답: (1) 결합도 (2) 응집도

20년 1회

다음은 모듈 관계를 표현한 시스템 구조도를 참고하여 팬인이 2 이상인 모듈을 모두 쓰시오.

정답: F, H

20년 2회

한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에게 연락이 가서 자동으로 내용이 갱신되는 방식으로, 일대다의 의존성을 정의하는 패턴이다. 상호 작용을 하는 객체 사이에서는 가능하면 느슨하게 결합하는 이 패턴을 영문으로 쓰시오.

정답: Observer (옵저버)

20년 4회

소프트웨어 공학의 디자인 패턴에 대한 설명에서 괄호에 들어갈 알맞은 답을 쓰시오.

디자인 패턴은 1995년 GoF라고 불리는 에릭 감마, 리차드 헬름, 랄프 존슨, 존 블리시디스가 처음으로 구체화 및 체계화하였다
디자인 패턴은 총 23가지이며, 생성 구조, ( )의 3가지로 분류한다

정답: 행위

21년 1회

데이터 모델의 구성 요소에 대한 다음 설명에서 괄호에 들어갈 알맞은 답을 보기에서 찾아 기호로 쓰시오.

(1)는 모듈 간의 인터페이스로 데이터, 지역 변수등을 직접 참조하거나 수정할 때의 결합도다
(2)는 모듈 간의 인터페이스로 배열이나 레코드 등의 자료 구조가 전달될 때의 결합도다
(3)은 파라미터가 아닌 모듈 밖에 선언된 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호작용하는 경우의 결합도다

정답: (1)내용 결합도 (2)스탬프 결합도 (3)공통 결합도

21년 2회

11번 모듈에 대한 다음 설명에서 각 지문에 해당하는 응집도를 찾아 쓰시오.

(1)내부의 요소들이 기능적으로 연관성은 없으나 순차적으로 실행될 때의 응집도
(2)서로 다른 기능을 수행하지만 동일한 입력과 출력을 사용할 때의 응집도
(3)하나의 기능에 밀접하게 관련되어 있거나 연관되어 있을 때의 응집도

정답: (1)절차적 응집도(2)교환적 응집도(3)기능적 응집도

21년 2회

디자인 패턴에 관련된 다음 설명에서 괄호에 들어갈 알맞은 답을 쓰시오

디자인 패턴은 모듈 간의 관계 및 인터페이스를 설계할 때 참조할 수 있는 전형적인 해결방식 또는 예제를 의미한다. 그 중 ( )패턴은 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴으로, Interpreter, Observer, Command 등이 그 예에 해당한다

정답: 행위

21년 2회

럼바우 데이터 모델링에 대한 다음 설명에서 각 지문에 해당하는 모델링을 찾아 쓰시오

1) 다수의 프로세스들 간의 자료 흐름을 중심으로 처리 과정을 표현한 모델링
ex) 자료 흐름도
2) 시간의 흐름에 따른 객체 간의 제어 흐름, 상호 작용, 동작 순서 등의 동적인 행위를 표현하는 모델링
ex) 상태 변화도
3) 시스템에서 요구되는 객체를 찾아내어 속성과 연산 식별 및 객체들 간의 관계를 규정하여 표시하는 모델링
ex) ER다이어그램

<보기>
ㄱ. operation
ㄴ. sequence
ㄷ. information
ㄹ. transaction
ㅁ. function
ㅂ. I/O
ㅅ. Dynamic
ㅇ. Cause-Effect

정답: (1) function (2) Dynamic (3) information

21년 3회

결합도의 종류 중 단순 처리 대상인 데이터만 전달되는 것이 아니라 어떻게 처리해야 하는지를 결정하는 제어 요소가 전달되는 경우의 결합도를 영문으로 쓰시오.

정답: Control Coupling ( 제어 결합도)

21년 3회

디자인 패턴에 관한 다음 설명에서 괄호에 들어갈 알맞은 답을 <보기>에서 찾아 쓰시오.

( )패턴은 객체 생성을 서브 클래스에서 처리하도록 분리하여 캡슐화한 패턴으로, 상위 클래스에서 인터페이스만 정의하고 실제 생성은 서브 클래스가 담당한다. 다른 이름으로 가상 생성자 패턴이라고 불린다.

정답: Factory Method (팩토리 메서드)

22년 2회

다음은 SOLID 원칙에 관한 내용이다. 괄호안에 알맞는 단어를 보기에서 고르시오.

( )는 클라이언트가 자신이 이용하지 않는 메서드에 의존하지 않아야 한다는 원칙이다
( )는 큰 덩어리의 인터페이스들을 구체적이고 작은 단위들로 분리시킴으로써 클라이언트들이 꼭 필요한 메서드들만 이용할 수 있게 한다
예를 들어 하나의 복합기에 프린터와 복사기, 팩스 메서드가 있는데 이 세가지 메서드는 같은 파일에 존재하므로 프린터 로직만 바뀌어도 복사기와 팩스도 재컴파일을 해야한다

정답: ISP (인터페이스 분리 원칙) (Interface Segregation Principle)

22년 2회

다음 모듈 F에 대한 팬인과 팬아웃을 작성하시오

정답: 팬인 : 3 팬아웃 : 2

22년 2회

다음은 디자인 패턴에 대한 설명이다. 괄호안에 알맞는 답을 작성하시오.

( 1 )은/는 기능을 처리하는 클래스와 구현을 담당하는 추상 클래스로 구별한다. 구현뿐 아니라 추상화도 독립적 변경이 필요할 때 브리지 패턴을 사용한다. 기존 시스템에 부수적인 새로운 기능들을 지속적으로 추가할 때 사용하면 유용하며, 새로운 인터페이스를 정의하여 기존 프로그램의 변경 없이 기능을 확장할 수 있다.

( 2 )은/는 한 객체의 상태가 변화하면 객체에 상속되어 있는 다른 객체들에게 변화된 상태를 전달해주는 패턴이다.
일대다 관계를 가지며, ​주로 분산된 시스템 간에 이벤트를 생성·발행(Publish)하고, 이를 수신(Subscribe)해야 할 때 이용한다.

정답: (1) Bridge (브리지) (2) Observer (옵저버)

23년 1회

대리자, 대변인의 의미를 갖고 있으며 어떤 객체를 사용하고자 할때, 객체를 직접적으로 참조하는 것이 아닌 해당 객체를 대항하는 객체를 통해 대상 객체에 접근하는 방식을 사용하면 해당 객체가 메모리에 존재하지 않아도 기본적인 정보를 참조하거나 설정할 수 있고, 실제 객체의 기능이 필요한 시점까지 객체의 생성을 미룰 수 있다.

정답: proxy

24년 1회

다음은 응집도와 관련해서 보기에서 응집도가 높은 순으로 나열하시오.

ㄱ. 기능 ㄴ. 교환 ㄷ. 우연 ㄹ. 시간

정답: ㄱ, ㄴ, ㄹ, ㄷ

24년 1회

다음 아래의 내용을 보고 알맞는 용어를 작성하시오.

구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴이다.
연관성이 있는 객체 군이 여러개 있을 경우 이들을 묶어 추상화하고, 어떤 구체적인 상황이 주어지면 팩토리 객체에서 집합으로 묶은 객체 군을 구현화 하는 생성 패턴이다
관련성 있는 여러 종류의 객체를 일관된 방식으로 생성하는 경우에 유용하다.
kit라고도 불린다.

정답: Abstract Factory (추상 팩토리)

24년 2회

실행 순서가 밀접한 관계를 갖는 기능을 모아 모듈로 구성한다.
한 모듈 내부의 한 기능 요소에 의한 출력 자료가 다음 기능 원소의 입력 자료로서 제공되는 형태이다.

ㄱ. 기능적(functional) ㄴ. 우연적(Coincidental) ㄷ. 통신적(Communication) ㄹ. 절차적(Procedural) ㅁ. 시간적(Temporal) ㅂ. 순차적(sequential) ㅅ. 논리적(Logical)

정답: ㅂ. 순차적

응집도 종류정의예시
절차적 (Procedural)모듈이 특정 절차를 수행하기 위해 서로 관련된 기능을 모아 놓은 것. 기능 간의 관계가 중요하지만, 입력과 출력이 직접적으로 연결되어 있지 않을 수 있음.데이터 처리 절차를 수행하는 함수들
시간적 (Temporal)모듈이 특정 시간에 수행되는 기능을 모아 놓은 것. 시간에 따라 실행되는 기능들이 모여 있음.초기화 작업을 수행하는 모듈
순차적 (Sequential)한 모듈 내부의 한 기능 요소의 출력 결과가 다음 기능 요소의 입력 자료로 직접 연결되는 형태. 실행 순서가 밀접하게 관련되어 있음.파일을 읽고 처리한 후 저장하는 과정

24년 2회

아래는 디자인 패턴에 관한 설명이다. 아래 설명을 읽고 보기에서 알맞는 용어를 작성하시오.

  • 컬렉션 객체의 내부 구조를 노출하지 않고 순차적으로 접근할 수 있게 하는 패턴이다.
  • 이 패턴은 객체의 내부 표현 방식에 독립적으로 요소에 접근할 수 있도록 해준다
  • 반복 프로세스를 캡슐화하여 클라이언트 코드에서는 컬렉션의 구체적인 구현에 종속되지 않도록 한다

정답: Iterator (이터레이터)

24년 2회

아래는 소프트웨어 설계에 대한 내용이다. 내용을 읽고 답을 쓰시오

  • 어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해, 제어를 통신하거나 제어 요소를 전달하는 결합도이다.
  • 한 모듈이 다른 모듈의 상세한 처리 절차를 알고 있어 이를 통제하는 경우나 처리 기능이 두 모듈에 분리되어 설계된 경우에 발생한다.

정답: 제어 결합도


5. 🎁소프트웨어 패키징

20년 1회

릴리즈 노트는 개발 과정에서 정리된 릴리즈 정보를 소프트웨어의 최종 사용자인 고객과 공유하기 위한 문서이다. 릴리즈 노트는 정확하고 완전한 정보를 기반으로 개발팀에서 직접 현재 시제로 작성해야 한다. 릴리즈 노트는 정확하고 완전한 정보를 기반으로 개발팀에서 직접 현재 시제로 작성해야 한다. 릴리즈 노트 작성 시 릴리즈 노트 이름, 소프트웨어 이름, 릴리즈 버전, 릴리즈 날짜, 릴리즈 노트 날짜, 릴리즈 노트 버전 등이 포함된 항목을 쓰시오

정답: 머릿말(Header)

20년 2회

소프트웨어 ( )는 소프트웨어 개발 단계의 각 과정에서 만들어지는 프로그램, 프로그램을 설명하는 문서, 데이터 등을 관리하는 것을 말한다. 소프트웨어 개발 과정에서 만들어지는 여러 버전들의 변경 사항을 관리하는 일련의 활동이며 이를 지원하는 도구로 Git, SVN등이 있다.

정답: 형상관리(SCM)

20년 3회

12번 소프트웨어 개발에서의 작업 중 형상 통제에 대해 간략히 서술하시오.

정답: 식별된 형상 항목에 대한 변경 요구 검토하여 현재의 기준선이 잘 반영될 수 있도록 조종하는 작업이다.

22년 3회

12번 소프트웨어 개발에서의 작업 중 형상 통제에 대해 간략히 서술하시오.

정답: ㄴ, ㅁ, ㅇ (CVS, SVN, GIT)


6. 🎨화면 설계

20년 2회

사용자 인터페이스(UI)의 기본 원칙에 대한 다음 설명에서 괄호에 들어갈 알맞은 원칙을 쓰시오.

정답: 유효성

20년 3회

UI(User Interface)의 설계 원칙 중 직관성에 대해 간략히 서술하시오

정답: 누구나 쉽게 이해하고 사용할 수 있어야 한다는 설계 원칙이다.

21년 2회

2번 다음 (1), (2)에 해당하는 것을 쓰시오

(1) 사용자가 시스템이나 서비스를 이용하면서 느끼고 생각하게 되는 총체적인 감정 및 경험
(2) 사용자와 시스템 간의 상호작용이 원활하게 이루어지도록 도와주는 장치나 소프트웨어(CLI, GUI)

정답: (1) UX(user experience) (2) UI(user interface)

21년 3회

사용자가 그래픽을 통해 컴퓨터와 정보를 교환하는 환경

정답 : GUI

21년 3회

키보드나 마우스와 같은 장치 없이 말이나 행동 그리고 감정과 같은 인간의 자연스러운 표현으로 컴퓨터나 장치를 제어할 수 있는 환경

정답 : NUI


7. 🌴기타

20년 3회

다음은 EAI의 구축 유형에 대한 설명이다. 괄호에 들어갈 알맞은 유형을 쓰시오.

EAI는 기업 내 각종 애플리케이션 및 플랫폼 간의 정보 전달, 연계, 통합 등 상호 연동이 가능하게 해주는 솔루션으로, 구축 유형은 다음과 같다.

정답 : 가 Point to Point 나 Hub & Spoke

21년 1회

시스템 통합에 사용되는 솔루션으로 구축 유형에는 Point to Point, Hub & Spoke , Message Bus가 있다. 기업에서 운연되는 서로 다른 플랫폼 및 애플리케이션 간의 정보를 전달, 연계, 통합이 가능하도록 해주는 솔루션을 무엇이라고 하는지 쓰시오.

EAI(Enterprise Application integration)


참고 사이트 🙇‍♀️

정보처리기사 실기 소프트웨어 공학 파트 기출문제 모음

profile
매일매일 틀깨기

0개의 댓글