정보시스템감리/소프트웨어 공학

(제 16회) 소프트웨어 공학 / (26)~(50)

아이티신비 2024. 1. 10. 09:10

26. 다음 설명은 개발방법론 중에서 나선형 모델 (spiral model)을 나타내고 있다. 다음 중 나선형 모델의 각 단계별 작업내용을 순서대로 나열한 것으로 가장 적절한 것은?

나선형 모델은 비선형적이며 반복적으로 개발이 진행되므로 소프트웨어 품질 중 강인성을 높일 수 있는 방법이다. 특히 이 방법은 개발자나 사용자가 각 확장 단계에서 발생될 위험에 대한 이해와 대책이 가능하다. 따라서 프로젝트가 실패할 위험을 사전에 최소화할 수 있다.

① 계획수립 – 위험분석 – 개발 - 평가

② 위험분석 – 계획수립 – 개발 - 평가

③ 계획수립 – 개발 – 위험분석 - 평가

④ 계획수립 – 위험분석 – 평가 - 개발

 

27. 다음의 클래스 다이어그램은 Java 언어에서 Invoice 클래스와 Employee 클래스가 Payable 인터페이스를 상속받는 것을 나타내고 있다. Java 인터페이스에 대한 설명으로 가장 적절하지 않은 것은?

① Java 인터페이스는 구현 부분이 없는 추상 메소드로 구성되어 있다.

② 인터페이스를 상속받는 일반 클래스는 인터페이스의 추상 메소드를 재정의해야 한다.

③ Java 언어에서 인터페이스는 다중 상속을 허용하지 않고 단일 상속만 가능하다.

④ Java 인터페이스에는 메소드가 없고 비어있는 태깅(tagging) 인터페이스가 존재한다.

 

28. JUnit 4.0으로 자바 프로그램을 단위 시험하기 위해 테스트 케이스를 다음과 같이 작성하였을 때, 테스트 케이스 메소드들의 수행순서로 가장 적절한 것은?

public class SimpleTest {
@Before
public void setUp() { }
@After
public void tearDown() { }
@Test
public void test1() { }
@Test
public void test2() { }
}

① setUp() --> tearDown() --> test1() --> test2()

② setUp() --> test1() --> test2() --> tearDown()

③ setUp() --> test1() --> tearDown() --> setUp() --> test2() --> tearDown()

④ tearDown() --> test1() --> setUp() --> test2() --> tearDown()

 

29. 다음은 Spring 3.0의 주요 기술에 대해 설명하고 있다. 다음 중 설명에 가장 적합한 것은?

이 기술은 어떤 클래스가 자신의 임무를 수행하기 위해 필요한 값이나 사용할 다른 클래스와의 관계를 외부에서 설정하는 것으로서 Spring에서는 인스턴스 설정이나 사용은 스프링 설정파일인 beans.xml 파일에 기술한다.

① 의존성 주입(dependency injection)

② WSDL(Web Service Description Language)

③ 관점지향 프로그래밍(aspect-oriented programming)

④ UDDI(Universal Description Discovery and Integration)

 

30. 다음 클래스 다이어그램은 GOF(Gang of Four)의 행위 디자인 패턴 중 하나를 나타낸다. 다음 클래스 다이어그램에 부합하는 디자인 패턴으로 가장 적절한 것은?

① Decorator 패턴 ② Composite 패턴

③ Prototype 패턴 ④ State 패턴

 

 

31. 다음은 소프트웨어 개발 시 요구사항 명세서에 대한 설명이다. 요구사항 명세서에 대한 설명으로 가장 부적절한 것은?

① 요구사항 명세서는 그것을 사용하는 사람과 만드는 사람 양쪽 모두에게 명백해야 한다.

② 요구사항 명세서는 완전하여야 한다. 따라서 기능성, 성능, 제약사항과 같이 모든 중요한 것은 문서화되어야 한다.

③ 요구사항 명세서는 명세의 다른 부분들이 서로 충돌되어서는 안 되며, 일관되어야 한다.

④ 요구사항 명세서는 요구사항이 충돌하는지 아닌지를 결정하기 위한 제한된 프로세스가 반드시 있어야 하지만 그것을 증명할 필요는 없다.

 

32. 모듈 사이의 결합은 강한 정도(가장 바람직하지 못한 경우)에서부터 약한 정도(가장 바람직한 경우)에 이르기까지 나열할 수 있다. 다음 보기 중 강한 정도에서 약한 정도 순으로 가장 적절하게 나열된 것은?

① 내용결합도 - 공통결합도 - 제어결합도 - 스템프 결합도 - 자료결합도

② 내용결합도 - 제어결합도 - 공통결합도 - 스템프 결합도 - 자료결합도

③ 내용결합도 - 공통결합도 - 스템프결합도 - 제어 결합도 - 자료결합도

④ 내용결합도 - 제어결합도 - 스템프결합도 - 공통 결합도 - 자료결합도

 

33. 다음은 특정 형상 관리 활동에 대한 설명이다. 설명에 대한 활동으로 가장 적절한 것은?

⦁ 형상 항목에 대한 변경이 정확하게 이루어 졌는지를 평가한다.
⦁ 형상 항목에 대한 기능 및 성능 요구사항이 만족되었음을 확인한다.
⦁ 다른 형상 항목들과 일관성 있게 변경이 이루어졌는지 확인한다.
⦁ 소프트웨어 이해도가 높은 감리사에 의해 수행된다.

① 형상 통제

② 형상 감사

③ 형상 항목 식별

④ 형상 상태 기록 및 보고

 

34. 개발 예정인 소프트웨어의 소스코드 라인 수는 500,000 SLOC(Source Line of Code)로 추정되었다. 이 소프트웨어를 다음 표의 조건에서 8명의 개발자가 개발하려 할 때, 소프트웨어 개발이 완료되기까지 최소 몇 개월이 소요될 것으로 추정되는가?

개발언어
C++
C++언어 라인수 / FP
50 SLOC/FP
개발자 1인당 월평균 생산성
50FP/month

① 18개월

② 20개월

③ 23개월

④ 25개월

 

35. 다음은 유지보수 단계에서 진행되는 유지보수 활동의 분포에 대한 일반적인 통계 그래프이다. (가) 영역에서 수행하는 작업에 해당하는 것은?

① 운영 중인 소프트웨어에서 발견된 기능 오류를 수정

② 비디오 대여 관리 시스템에 장르별 대여 통계 기능 추가

③ 아키텍처 문서와 소스 코드 간의 일치하지 않는 내용을 수정

④ MS-Windows 환경에서 개발된 소프트웨어를 Linux 환경으로 이식

 

36. 어느 회사의 업무 시스템의 아키텍처가 다음 그림과 같은 형태로 구성되어 있다. 여기서 EIS Tier의 영역에 위치할 수 없는 컴포넌트(또는 서브시스템)는 무엇인가?

① DBMS

② session bean

③ legacy system

④ CRM (Customer Relationship Management)

 

37. 어떤 시스템은 다음과 같은 구성과 동작 방식으로 운영된다. 이 시스템을 통해 만족할 수 있는 품질 속성(quality attribute)은 무엇인가?

시스템은 사용자에게 서비스를 제공하기 위해 동일한 기능을 수행하는 컴포넌트 A와 B, 이 외에 여러 컴포넌트로 구성된다. 컴포넌트 A가 동작 중에 실패가 발생하여 대기 중이던 컴포넌트 B가 A를 대신하여 계속 서비스를
제공한다.

① 가용성 (availability)

② 상호운용성 (interoperability)

③ 성능 (performance)

④ 적응성 (adaptability)

 

38. 다음과 같은 Java 코드를 클래스 다이어그램으로 표현하고자 한다. 생성된 클래스 다이어그램에 표현되는 객체 사이의 관계와 가장 거리가 것은?

public TempServiceImpl extends TempService {
private TempDao tempDao;
public void addTemp(Temp tmp) {
tempDao.add(tmp);
}
}

① 연관 (association) 관계

② 의존 (dependency) 관계

③ 집합 (composition) 관계

④ 상속 (inheritance) 관계

 

39. UML 유스케이스 다이어그램은 시스템의 기능을 액터와 유스케이스로 표현한다. 다음은 도서관의 도서 등록, 도서 대출 그리고 도서 반납 기능을 중심으로 작성된 유스케이스 다이어그램을 보여준다. 유스케이스 다이어그램이 표현하고자 하는 내용 측면이 아니라 표기법 측면에서 올바르게 표현된 부분은?

① 사서와 사용자 간의 관계

② 도서등록과 도서검색 간의 관계

③ 도서대출과 도서반납 간의 관계

④ 도서반납과 연체료부과 간의 관계

 

 

40. 다음의 상단 코드는 하단의 코드로 리팩토링하는 것이 권장된다. 상단의 코드를 응집도와 결합도 측면에서 올바르게 설명한 것은?

void setValue(String name, int value)
{
if ( name.equals(“height”) ) {
_height = value ;
}
if ( name.equals(“width”) ) {
_width = value ;
}
}
void setHeight(int arg) {
_height = arg ;
}
void setWidth(int arg) {
_width = arg ;
}

① 응집도: 기능적 응집도, 결합도: 데이터 결합도

② 응집도: 논리적 응집도, 결합도: 데이터 결합도

③ 응집도: 논리적 응집도, 결합도: 제어 결합도

④ 응집도: 기능적 응집도, 결합도: 제어 결합도

 

41. 다음의 요구사항을 바탕으로 가장 거리가 먼 테스트는?

A 사는 효율적인 프로젝트 관리를 위한 프로젝트 관리 시스템을 개발하고자 한다. 프로젝트 관리 시스템은 클라이언트/서버 구조로서 다양한 기술(웹, 모바일)과 다양한 장치(PC, 안드로이드폰, 아이폰, 다양한 태블릿 기종)를 지원해야 한다. 시스템은 동시에 100 명 이상의 사용자가 접속하여도 원활한 동작을 제공해야 한다. 신규 시스템이므로 사용법에 대한 온라인 도움말이 제공되어야 한다.

① 성능 테스트 (performance test)

② 호환성 테스트 (compatability test)

③ 사용성 테스트 (usability test)

④ 가용성 테스트 (availability test)

 

42. CMMI에서 프로젝트 관리는 여러 개의 프로세스 영역(process areas)으로 구성된다. 각 프로세스 영역의 성숙도 레벨(level)을 올바르게 정의하고 있는 것은?

 

① 프로젝트 계획: 레벨 2, 위험 관리: 레벨 2

② 프로젝트 모니터링 및 통제: 레벨 2, 공급자 (supplier) 계약(agreement) 관리: 레벨 3

③ 통합(integrated) 프로젝트 관리: 레벨 3, 정량적 (quantitative) 프로젝트 관리: 레벨 4

④ 정량적 프로젝트 관리: 레벨 5, 위험 관리: 레벨 2

 

43. 모듈의 결합도를 정량적으로 측정할 수 있는 척도로서 팬 출력(fan out)은 자신이 호출하는 모듈의 수가 된다. 팬 출력의 값이 크면, 즉 자신이 호출하는 모듈의 수가 너무 크면 이들에 대한 제어 로직이 복잡해질 수가 있으므로 적절한 팬 출력이 유지될 수 있도록 설계하는 것이 바람직 하다. 다음의 디자인 패턴 중에서 이러한 설계 원리와 가장 관련이 높은 것은?

 

① 커맨드(command) 패턴

② 템플릿 메소드(template method) 패턴

③ 어댑터(adapter) 패턴

④ 퍼사드(facade) 패턴

 

44. 다음은 UML 시퀀스 다이어그램을 보여 준다. 이 시퀀스 다이어그램과 가장 일치하는 클래스 다이어 그램은?

 

                                   :C1                                                :C2

 

45. 데이터 흐름도(DFD)의 실시간 확장 모델은 제어를 처리하는 제어 명세서의 구체적인 활동을 기술하는데 용이하다. 제어 명세서를 기술하는 기법에 대한 설명으로 가장 적절하지 않은 것은?

 

① 프로세스 활성표(process activation table)는 DFD에 나타난 프로세스를 활성화 또는 비활성화 시키기 위해 어떠한 입력 제어흐름 값이 주어져야 하는지를 테이블 형태로 표시한다.

② 결정표(decision table)는 입력 제어 조건들의 순서가 반드시 고려되어야 하는 조합 논리를 나타내는데 적합하며, 출력 값을 갖기 위해 요구되는 입력 값을 테이블 형태로 나타낸다.

③ 상태 변화도(state transition diagram)는 시스템의 상태와 상태를 변하게 하는 사건들을 묘사하고, 사건에 의해 나타나는 동작 등 시스템의 행위를 표현한다.

④ 상태 사건표(state event matrix)는 상태 변화도에 표현되어 있는 정보를 테이블 형태로 표현한 것이며, 열(column)은 사건 들을 표시하고 행(row)은 상태를 나타낸다.

 

46. 10만 라인에 해당하는 인터넷 쇼핑몰 개발 프로젝트(A), 새로운 언어의 컴파일러 개발 프로젝트(B), 미사일 유도시스템 개발 프로젝트(C), 데이터베이스 관리시스템(DBMS) 개발 프로젝트 (D)가 있다고 가정할 때, 보엠(Boehm)의 연산 방식을 이용한 비용 추정방식(COCOMO)에 의거 각각의 개발노력(PM)의 계산식으로 가장 적절한 것은?

 

① PM(A) = 2.4 × 1001.05

② PM(B) = 2.4 × 1001.12

③ PM(C) = 3.0 × 1001.12

④ PM(B) = 3.0 × 1001.20

 

47. 다음 그림은 MVC(Model-View-Controller) 아키텍처 스타일을 나타낸 것이며, 세 가지 요소가 별도의 컴포넌트 또는 스레드로 구성된다. (A), (B), (C)에 해당되는 요소를 바르게 나열한 것은?

① 모델 – 제어 - 뷰

② 뷰 – 모델 - 제어

③ 뷰 – 제어 - 모델

④ 모델 – 뷰 - 제어

 

48. 소프트웨어 아키텍처를 설계할 때 따라야 할 프로세스를 가장 적절하게 나열한 것은?

가. 서브시스템 사이의 인터페이스를 정의하고 서브시스템 사이의 상호작용을 위한 동작을 작성한다.
나. 전체 시스템에 대한 설계 목표를 파악하고 결정한다. 즉, 전체 시스템의 목표를 요구에서 발견하고 추출한다.
다. 설계 목표와 시스템의 타입을 고려하여 아키텍처 스타일을 선택한다.
라. 설계한 아키텍처가 요구, 설계 목표,설계 원리를 만족시켰는지를 검토한다.
마. 적용할 수 있는 아키텍처 스타일이 있다면 이를 적용하여 시스템의 표준 아키텍처를 설계하고, 없다면 맞춤형 아키텍처를 설계한다.

① 가 → 나 → 다 → 라 → 마

② 나 → 다 → 마 → 가 → 라

③ 나 → 다 → 가 → 라 → 마

④ 가 → 나 → 마 → 다 → 라

 

49. 객체지향 소프트웨어의 품질 메트릭 중 다음의 Chidamber와 Kemerer의 메트릭에 대한 설명 중 가장 옳은 것은?

가. WMC(Weighted Method per Class)가 클수록 테스트 경로가 많아져 유지보수가 어렵다.
나. DIT(Depth of Inheritance Tree)가 클수록 클래스의 동작에 대한 예측이 용이하다.
다. NOC(Number of Children)가 클수록 변경의 영향을 많이 받는다.
라. CBO(Coupling Between Object Classes)가 클수록 모듈화가 잘 된 것이다.
마. RFC(Response for a Class)가 클수록 테스트 하고 디버깅하기가 어렵다.

① 가, 나, 다

② 나, 라, 마

③ 가, 다, 마

④ 다, 라, 마

 

50. 소프트웨어 아키텍처 스타일과 응용분야가 가장 적절하지 않게 연결된 것은?

① 클라이언트/서버 아키텍처 - 웹 기반의 수강 신청 시스템

② N-tier 아키텍처 - 운영체제

③ 계층형 아키텍처 – 마이크로웨이브 오븐 제어 소프트웨어

④ MVC 아키텍처 – 모바일 애플리케이션

 


정답)

26
27
28
29
30
①,②③,④
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50

30번 정답 재확인 필요