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

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

아이티신비 2024. 1. 4. 10:00

26. 요구사항 검증 과정 동안, 요구사항 문서에 작성된 요구사항들에 대해서 다양한 유형의 점검을 수행해야 한다. 다음 중 요구사항 점검 유형과 그 설명이 가장 적절하게 짝지어진 것은?

 

① 완전성 점검 : 문서상의 요구사항은 서로 상충 되지 않아야 한다.

② 일관성 점검 : 요구사항 문서는 시스템 사용자가 의도한 모든 기능과 제약을 정의하는 요구사항을 포함해야 한다.

③ 유효성 점검 : 요구사항이 시스템 사용자의 실제 요구를 반영하는지를 점검한다.

④ 실현성 점검 : 고객과 계약자 사이의 분쟁 가능성을 줄이기 위해, 시스템 요구사항은 문서로 작성해서 구현이 가능한지를 점검해야 한다.

 

27. 다음은 웹 기반 시스템에서 상호 작용 관리를 위해 MVC 패턴이 사용될 때 런타임 시스템 아키텍처를 그림으로 나타내고 있다. (가) ~ (다)에 가장 적절한 구성요소는?

 

① (가) 뷰, (나) 제어기, (다) 모델

② (가) 모델, (나) 제어기, (다) 뷰

③ (가) 제어기, (나) 모델, (다) 뷰

④ (가) 제어기, (나) 뷰, (다) 모델

 

28. 다음 설명에 가장 적절한 디자인 패턴은?

이 패턴의 특징은 ‘기능의 클래스 계층’과 ‘구현의 클래스 계층’을 분리하는 것이다. 이 두 개의 클래스 계층을 분리해 두면 각각의 클래스 계층을 독립적으로 확장할 수 있다. 기능을 추가하고 싶으면 기능의 클래스 계층에 클래스를 추가한다. 이때 구현의 클래스 계층은 전혀 수정할 필요가 없다.

① memento 패턴 ② flyweight 패턴

③ adapter 패턴 ④ bridge 패턴

 

29. 다음 표는 3개의 입력 인자가 가질 수 있는 값을 나타내고 있다.

이 때 페어와이즈 테스트(pairwise test) 조합으로 생성된 테스트 케이스는 다음 표와 같다. (가)~ (라)에 가장 적절한 값은?

① (가) C1, (나) C1, (다) C2, (라) C2

② (가) C1, (나) C2, (다) C2, (라) C1

③ (가) C1, (나) C1, (다) C1, (라) C1

④ (가) C2, (나) C2, (다) C2, (라) C2

 

30. 애자일 프로젝트에서 다음과 같이 시간의 경과에 따라 완료된 작업량을 그래프로 표시하기 위해 가장 적절한 것은?

대표

① 번다운 차트 ② 번업 차트

③ PERT/CPM 차트 ④ 백로그 진척률 차트

 

31. 다음 설명에 해당하는 것으로 가장 적절한 것은?

· 통제된 프로젝트 환경에서 점증적 프로토타이핑을 통해 빠듯한 시간 제약조건 내에 시스템을 개발하고 유지보수하기 위한 프레임워크를 제공하는 애자일 소프트웨어 개발 방식이다.
· 각각의 반복 단계가 파레토 법칙(80% 규칙)을 따르는 반복적인 소프트웨어 프로세스이다.
· 생명주기는 기본적인 비즈니스 요구사항과 제약 조건을 설정하는 타당성 조사로부터 시작해서, 기능성 그리고 정보 요구사항을 도출하는 비즈니스 연구를 수행한다. 이후 기능적 모델 반복, 설계와 구축 반복, 시행이라는 세 가지 다른 반복주기가 정의된다.

① 스크럼(scrum)

② 애자일 모델링(agile modeling)

③ 동적 시스템 개발 방법(DSDM)

④ 애자일 통합 프로세스(AUP)

 

32. 다음 코드에 대한 순환복잡도(cyclomatic complexity)로 가장 적절한 것은?(단, 코드 실행상의 문제가없다고 가정함)

void Scoreboard::drawscore(int n) {
if (n > 0) {
score[numdigits]->erase();
}
numdigits = 0;
if (n == 0) {
delete score[numdigits];
score[numdigits] = new Displayable(digits[0]);
score[numdigits]->move(Point((700-numdigits*18),40));
score[numdigits]->draw();
numdigits++;
}
while (n) {
int rem = n % 10;
delete score[numdigits];
score[numdigits] = new Displayable(digits[rem]);
score[numdigits]->move(Point((700-numdigits*18),40));
score[numdigits]->draw();
n /= 10;
numdigits++;
}
}

① 2 ② 3 ③ 4 ④ 5

 

 

33. 다음과 같은 소스 코드가 주어졌다. 이 코드를 경로 (path) 커버리지를 100% 만족하도록 테스트하고자 한다. 이때 경로 커버리지를 측정하고자 코드의 실행 경로 상의 특정 지점에 탐침(probe)을 삽입하려 한다. 각 경로의 실행 여부를 판단하기 위해 필요한 최소 탐침 개수로 가장 적절한 것은?

줄번호
소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int main(void) {0
int x, y, z;
scanf(“%d %d”, &x, &y);
if (x < 0) {
if (y < 0) {
z = x - y;
} else {
z = x + y;
}
z = 5 * z;
} else {
z = 2 * x * -y;
}
if (z >= 0) {
printf(“%d is positive\n”, z);
} else {
printf(“%d is negative\n”, z);
}
return 1;
}

① 4 ② 5 ③ 6 ④ 8

 

34. 소프트웨어 품질 속성 중 테스트 가능성(testability)은 테스트를 통해 소프트웨어 결함을 쉽게 발견할 수 있도록 소프트웨어를 개발하는 것을 말한다. 다음은 여러 종류의 소프트웨어 설계 방법들을 나열한 것이다. 이 중에서 소프트웨어의 테스트 가능성을 높이기 위한 설계 방법만을 가장 적절하게 묶은 것은?

① 가, 나, 다 ② 가, 다, 마

③ 나, 라, 바 ④ 라, 마, 바

 

35. 다음 클린 아키텍처에 대한 설명 중 가장 적절하지 않은 것은?

 

① 엔티티 계층은 전사적인 핵심업무규칙을 캡슐화한다. 엔티티는 메소드를 가지는 객체이거나 일련의 데이터 구조와 함수의 집합일 수 있다.

② 외부인터페이스 계층은 프레임워크나 도구로 구성된다. 다른 계층과 통신하기 위한 집합 코드 외에는 특별히 작성해야 할 코드가 그다지 많지 않다.

③ 인터페이스 어댑터 계층은 일련의 어댑터들로 구성된다. GUI의 MVC(model, view, controller) 는 모두 인터페이스 어댑터 계층에 속한다.

④ 유스케이스는 업무계층에 특화된 업무 규칙을 포함한다. 유스케이스 계층은 데이터베이스, UI 등 과 원활하게 연계되어 있어 이들의 변경에 영향을 받는 것이 일반적이다.

 

36. 스크럼(scrum) 방법론을 따라 소프트웨어를 개발하고자 한다. 다음 표와 같은 사용자 스토리가 있고, 그림과 같은 릴리스 계획을 갖고 있다고 가정하자(릴리스 계획 내의 모든 스토리는 완료 됨을 가정). 전체 스토리 포인트가 180일 경우, 해당 릴리스를 완성하기 위한 프로젝트 일정으로 가장 적절한 것은? (단, 한 스프린트는 2주이고,

한 달은 4주라 가정한다)

① 3개월 ② 4개월 ③ 5개월 ④ 6개월

 

37. 다음은 오픈 소스 라이선스에 관한 설명이다. (가), (나), (다)에 해당하는 오픈 소스 라이선스를 나열한 것으로 가장 적절한 것은?

(가) 이 라이선스 아래에 있는 오픈 소스 소프트웨어를 이용한다면 그 소프트웨어를 오픈 소스로 해야 한다는 상호(reciprocal) 라이선스이다.
(나) 컴포넌트의 소스를 공개할 필요 없이 오픈 소스 코드와 연결된 컴포넌트를 작성할 수 있다. 그러나 라이선스된 컴포넌트를 변경할 경우 그것을 오픈 소스로 공개하여야 한다.
(다) 이것은 비상호(nonreciprocal) 라이선스로서 오픈 소스에 가한 어떤 변경이나 수정을 재공개할 의무가 없다는 것을 의미한다. 오픈 소스 코드를 판매되는 사유(proprietary) 시스템에 포함할 수 있다. 오픈 소스 컴포넌트를 사용한다면 그 코드의 원작자를 알려야 한다.

① (가) GNU General Public License(GPL)

     (나) GNU Lesser General Public License(LGPL)

     (다) Berkely Standard Distribution(BSD) License

② (가) GNU Lesser General Public License(LGPL)

     (나) GNU General Public License(GPL)

     (다) Berkely Standard Distribution(BSD) License

③ (가) Berkely Standard Distribution(BSD) License

    (나) GNU Lesser General Public License(LGPL)

    (다) GNU General Public License(GPL)

④ (가) Berkely Standard Distribution(BSD) License

    (나) GNU General Public License(GPL)

    (다) GNU Lesser General Public License(LGPL)

 

38. ITIL v4 에서 ITIL management practices 는 general management practices, service management practices, technical management practices 로 분류된다. 다음 중 나머지 3개와 다른 분류에 해당되는 것은?

 

① service financial management

② change control

③ business analysis

④ service continuity management

 

39. 다음 코드의 출력결과로 가장 적절한 것은?

public class SingletonExam
{
private static int counter = 0;
private static class Singleton
{
private static SingletonExam INSTANCE
= new SingletonExam();
}
public static SingletonExam getInstance()
{
counter++;
return Singleton.INSTANCE;
}
private SingletonExam()
{
counter++;
}
public void increaseCounter()
{
counter++;
}
public int getCounter()
{
return counter;
}
}
public class ExamThreeMain
{
public static void main(String[] args)
{
SingletonExam se = SingletonExam.getInstance();
se.increaseCounter();
se.increaseCounter();
SingletonExam.getInstance().increaseCounter();
SingletonExam.getInstance().increaseCounter();
System.out.println
(SingletonExam.getInstance().getCounter());
}
}

① 8 ② 9 ③ 10 ④ 11

 

40. 지속적 통합(continuous integration)은 통합이 빈번하게 이루어지고 통합 결과를 바로 알 수 있기 때문에 소프트웨어의 품질을 높이고 통합의 위험을 줄이는 대표적인 애자일 방법으로 요즘 널리 사용되고 있다. 이러한 지속적 통합을 효과적으로 지원하기 위해 다양한 오픈 소스 소프트웨어가 활용된다. 다음 중 지속적 통합에 밀접하게 사용될 수 있는 오픈 소스 소프트웨어로 가장 적절하지 않은 것은?

 

① Git ② JUnit

③ Jenkins ④ ProcessMaker

 

41. 다음 그림은 왼쪽 리스트 박스에서 고객 타입을 지정하면 오른쪽의 입력 폼의 형태가 바뀐다. 그림에서 보듯이 왼쪽 리스트 박스와 오른쪽 입력 폼은 서로 의존적이다. 이와 같이 직접적인 의존 관계가 있는 요소들의 의존 관계를 완화하여 객체들이 다른 객체의 존재를 모르는 상태에서도 협력할 수 있도록 소프트웨어 설계를 개선하고자 할 경우에 어떤 설계 패턴을 도입하는 것이 가장 적절한가?

① 상태 패턴 (state pattern)

② 위임 패턴 (delegation pattern)

③ 중재자 패턴 (mediator pattern)

④ 커맨드 패턴 (command pattern)

 

 

42. 전자정부 표준프레임워크는 공공사업에 적용되는 개발 프레임워크의 정립된 표준으로 응용 소프트웨어 표준화, 품질 및 재사용성 향상을 목표로 한다. 다음 중 전자정부 표준프레임워크의 ‘공통기술 서비스’ 그룹에 포함되지 않는 구성 요소로만 묶은 것으로 가장 적절한 것은? (2020 년도 버전(표준프레임워크 v3.9) 기준)

가. 협업
나. 표준 관리
다. 변경 관리
라. 서비스 요청관리
마. 디지털 자산관리
바. 사용자 디렉토리/통합인증

① 가, 다, 마 ② 나, 다, 라

③ 라, 마, 바 ④ 가, 마, 바

 

43. 다음은 AOP(Aspect Oriented Programming)관련 용어에 대한 설명이다. (가), (나)에 적합한 용어를 순서대로 가장 적절하게 나열한 것은?

(가)는 관심(concern)을 구현한 코드이며, (나)는 포인트컷(pointcut)과 (가)로 구성되어 있다.

① (가) 어드바이스(advice) (나) 애스팩트(aspect)

② (가) 애스팩트(aspect) (나) 어드바이스(advice)

③ (가) 애스팩트(aspect) (나) 조인 포인트(join point)

④ (가) 조인 포인트(join point) (나) 애스팩트(aspect)

 

44. 다음 표는 어느 회사에서 개발한 소프트웨어 제품군을 유지보수하는 과정에서 소요되는 노력을 유지보수 유형에 따라 정리한 것이다. 이런 상황을 고려할 때 이 회사가 같은 종류의 소프트웨어 제품을 개발할 경우 비중을 두어야 할 ISO 25010 소프트웨어 품질 속성으로 가장 적절하지 않은 것은?

유지보수 유형
소요 노력
적응(adaptive) 유지보수
65%
완전(perfective) 유지보수
20%
수정(corrective) 유지보수
10%
예방(preventive) 유지보수
5%

① Integrity ② Portability

③ Reusability ④ Interoperability

 

45. 다음 그림은 MDA(Model Driven Architecture)에서의 계산 독립 모델인 CIM(Computation Independent Model)으로부터 실행 코드까지의 변환 과정을 나타낸 것이다. (가)는 구현을 참조하지 않고 시스템의 동작을 나타낸 모델이며, (나)는 플랫폼에 특화된 세부 사항을 추가한 모델이라면 (가), (나)에 해당하는 모델로 가장 적절한 것은?

① (가) DSM(Dynamic System Model)

    (나) PDM(Platform Description Model)

② (가) PIM(Platform Independent Model)

    (나) PSM(Platform Specific Model)

③ (가) SAM(System Activity Model)

    (나) PDM(Platform Description Model)

④ (가) SAM(System Activity Model)

    (나) PSM(Platform Specific Model)

 

46. 다음은 http 또는 https를 사용하는 RESTful 서비스에서의 기본적인 네 가지 메소드에 대한 설명이다. (가)~(라)에 가장 적절한 메소드는?

(가) 자원 값을 갱신하는 데 쓰인다.
(나) 자원을 삭제하는 데 쓰인다.
(다) 자원을 생성하는 데 사용된다.
(라) 자원 값을 읽어오는 데 사용된다.

① (가) PUT (나) DELETE (다) POST (라) GET

② (가) SET (나) REMOVE (다) CREATE (라) PULL

③ (가) POST (나) REMOVE (다) NEW (라) READ

④ (가) POST (나) DELETE (다) NEW (라) PULL

 

47. 다음 왼쪽에 주어진 코드를 테스트하기 위하여 경로 (path) 커버리지 기반의 테스트 데이터를 오른쪽과 같이 개발하였다. 주어진 4개의 테스트 데이터를 이용하여 왼쪽 코드를 테스트한다고 할 때, 테스트 되지 않는 경로는? (단, 코드 실행상의 문제가 없다고 가정함)

① L01 -> L02 -> L03 -> L04

② L01 -> L02 -> L07 -> L08

③ L01 -> L02 -> L03 -> L11

④ L01 -> L02 -> L07 -> L11

 

48. 다음과 같은 학생정보 관리 시스템에 대한 요구사항이 있다. 이 정보를 바탕으로 내부논리파일 (internal logical file : ILF)의 기능점수를 산출하기 위한 데이터요소유형(data element type : DET)과 레코드요소유형(record element type : RET)의 개수로 가장 적절한 것은?

1. 다음을 포함하는 학생정보를 입력한다.
- 학번
- 학생 이름
- 학생 학과
- 학생 등록일자
2. 정의한 학생정보를 언제든지 재사용하여 필요한 경우 학생정보를 변경한다.
3. 학생정보를 조회하고 출력한다.
4. 학생 이름 또는 학생 등록일자별로 학생 목록을 조회한다.

① DET : 4, RET : 0 ② DET : 4, RET : 1

③ DET : 0, RET : 4 ④ DET : 1, RET : 4

 

49. 소프트웨어 유지보수 및 진화에 대한 Lehman의 법칙에 대한 설명으로 가장 적절하지 않은 것은?

 

① 엔트로피 또는 복잡도 증가의 법칙 : 진화하는 시스템의 유지보수 프로세스는 시스템이 소멸될 때까지 일정한 평균 작업량을 보인다.

② 친근성 유지의 법칙 : 시스템의 평균 성장률은 소멸될 때까지 일정하다. 즉 개발 전 단계에 걸쳐 각 버전의 변화는 거의 일정하다.

③ 품질 저하의 법칙 : 진화하는 시스템의 품질은 운영 환경의 변화에 완전히 적응하지 못하는 한 지속적으로 저하한다.

④ 지속적 변경의 법칙 : 시스템이 릴리즈 된 후에도 변경은 그 시스템이 다른 시스템으로 대체될 때 까지 지속된다.

 

50. 다음은 형상감사 활동에 대한 설명이다. 설명이 의미하는 것으로 가장 적절한 것은?

소프트웨어 제품이 릴리즈되기 전에, 변경사항이 모든 산출물에 반영되었는지, 변경이 반영된 형상 품목들이 통합되었는지, 변경에 대한 형상 정보가 잘 관리되었는지 등을 객관성이 보장된 형상관리 책임자에 의해 수행되는 감사 활동

① 물리 형상 감사(physical configuration audit)

② 기능 형상 감사(functional configuration audit)

③ 베이스라인 형상 감사(baseline configuration audit)

④ 부정합성 기록 및 보고(nonconformity recording and reporting)

 


 

정답)

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