1차 점검

2025. 4. 21. 11:45문제: 소프트웨어 공학

1. 구현(코딩) 단계에서 포함되지 않는 항목은?
a) 코드 품질 관리
b) 버전 관리
c) 알고리즘 선택
d) 코딩 스타일 가이드

 

2. 소프트웨어 엔지니어에서 중요한 고려요소 5가지를 서술하시오

 

3.시스템 설계 (System Design) 단계에서 수행하는 작업을 서술하시오.

 

4. 소프트웨어 아키텍처 분석 (Software Architecture Analysis) 단계에서 수행하는 작업을 서술하시오

 

5. 시간 복잡도와 공간 복잡도의 개념을 서술하시오.

 

6. 소프트웨어 위기의 주요 원인 3가지를 서술하시오.

 

7. 1970년대 구조적 프로그래밍이 강조한 두 가지 핵심 개념을 쓰시오. 

 

8. 객체지향 프로그래밍(OOP)의 특징으로 올바르지 않은 것은?

A. 캡슐화
B. 정보 은닉
C. 단계적 상세화
D. 상속

E. 다형성

 

9. 소프트웨어 개발이 어려운 이유 중 하나는 현실 세계의 문제를 __ 모델로 변환해야 하기 때문이다.

 

10. 하드웨어 수명주기의 내구성을 평가할 때 사용하는 지표는 무엇인가?

 

11. 지도학습과 비지도학습의 차이점을 서술하시오.

 

12. 소프트웨어 공학이란 무엇이며, 어떤 원리를 적용하는 학문인가요?

 

13. 소프트웨어 개발 생명주기의 단계들을 순서대로 나열하시오.

 

14. 다음 중 ‘관심사의 분할’과 가장 밀접한 관련이 있는 설명은?

A. 개발자의 성향에 따라 개발이 다르다
B. 전체 시스템을 한 번에 개발하지 않고 나눠서 개발
C. 복잡한 문제를 단순화하기 위해 기능을 분리
D. 재사용을 위한 모듈화를 강조함

 

15. 다음 중 유지보수 유형과 설명이 바르게 연결되지 않은 것은?

A. 수정 유지보수 - 오류 수정
B. 적응 유지보수 - 환경 변화 대응
C. 완전 유지보수 - 성능 개선
D. 예방 유지보수 - 리팩토링을 통한 코드 개선

 

16. 다음 중 프로세스 품질의 평가 항목이 아닌 것은?

A. 표준 준수성
B. 도구 적합성
C. 소프트웨어 성능
D. 프로젝트 데이터 관리 수준

 

17.인공지능 소프트웨어에서 전통적 소프트웨어와 비교했을 때 발생하는 대표적인 품질 관련 이슈 두 가지를 설명하시오.

 

18. 아래의 ML 시스템 구성 관점에 관해 서술하시오.

a) 모델 관점 
b) 데이터 관점
c) 시스템 관점

d) 인프라 관점

e) 환경 관점

 

19. 다음  25010 소프트웨어 품질 모델의 하위 요소와 관련있는 상위 요소를 서술하시오.

a) 회복성
b) 모듈성
c) 이식성
d) 확신성

 

20. 25010 품질 모델에 대한 설명으로 틀린 것은?

a) ISO9126을 확장한 모델이다.
b) 운영성과 호환성은 독립적인 품질 요소이다.
c) 기능성과 사용성 등이 포함된다.
d) 보안성, 전환성 등이 포함된다.

 

21. 정량적 품질 측정을 위한 상위 프로세스 단계 5가지를 순서대로 나열하시오.

 

22. 아래 단계에서 실행되는 작업에 서술하시오

a) 준비 단계
b) 척도 조정 단계

c) 측정 단계

d) 평가 단계
e) 관리 단계

 

23. 전통적인 소프트웨어 개발 과정에서 각 단계의 주요 활동을 순서대로 서술하시오.

 

24. 소프트웨어 개발을 체계적으로 관리하고 계획하기 위해, 서로 관련된 활동을 단계로 나눈 것을 __라고 한다.

 

25. 다음 중 V모델의 특징으로 옳은 것은?
① 각 단계의 산출물은 테스트 없이 다음 단계로 넘어간다
② 테스트 단계를 설계 및 분석 단계와 연계시켜 오류를 줄인다
③ 사용자 인터페이스는 고려 대상이 아니다
④ 반복 개발보다는 진화적 개발을 지향한다

 

26. 진화적 프로세스 모델과 프로토타입 모델의 개념을 설명하고, 둘의 관계를 기술하시오.

 

27. 다음 중 프로토타입 모델의 단점이 아닌 것은?
① 반복 작업으로 인한 인력과 비용 산정이 어려움
② 개발 범위가 명확함
③ 산출물 관리가 어려움
④ 최종 제품 완성 시점 예측이 어려움

 

28. 나선형 모델은 ( ① )을 중심으로 반복적으로 수행되는 개발 모델로, 초기 ( ② ) 이후 ( ③ ) 분석 단계를 거친 후 ( ④ ) 개발 및 ( ⑤ ) 평가를 반복한다.

 

29. 폭포수 모델의 문제점을 해결하기 위해 나온 반복적 개발 방법론 중 대표적인 프로세스 모델은?

 

30. 통합 프로세스 모델의 4단계에 관해 설명하시오.
a) 도입
b)구체화 

c) 구축
d) 전이

 

31. 통합 프로세스 모델이 폭포수 모델의 단점을 어떻게 보완하는지 설명하시오.

 

32. 애자일 프로세스 모델이 기존의 전통적인 개발 방식과 비교했을 때 가지는 주요한 특징 2가지를 서술하시오.

 

33. 애자일은 ( ) 의 소프트웨어를 빠르고 지속적으로 고객에게 제공함으로써 고객 만족을 추구한다.

 

34. 제품 책임자, 스크럼 마스터, 스크럼 팀의 역할을 간단히 서술하시오.

 

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

a) 소프트웨어 시스템을 시각적으로 표현하기 위한 언어이다.
b) 객체 지향이 아닌 절차 지향적 설계에 주로 사용된다.
c) UML 2.x 버전에서는 14개의 다이어그램이 존재한다.
d) UML은 시스템 구조와 동작을 모두 표현할 수 있다.

 

36. 다음 중 UML의 역할이 아닌 것은?

a) 시각화
b) 문서화
c) 테스트 자동화
d) 코드 생성 및 유지보수

 

37. 다음 중 행위 다이어그램에 해당하지 않는 것은?

a) 유스케이스 다이어그램
b) 상태 머신 다이어그램
c) 시퀀스 다이어그램
d) 활동 다이어그램

 

38. 다음 중 상호작용 다이어그램에 속하는 것은?

a) 타이밍 다이어그램
b) 패키지 다이어그램
c) 클래스 다이어그램
d) 객체 다이어그램

 

39. UML의 개념과 사용 목적에 대해 서술하시오.

 

40. 유스케이스 다이어그램의 목적과 활용 예를 서술하시오.

 

41. 사용자 액터와 시스템 액터의 차이점을 설명하시오.

 

42. 다음 중 시스템 액터의 설명으로 가장 적절한 것은?
a) 유스케이스를 사용하는 사용자의 대표
b) 시스템 외부의 물리적인 사용자
c) 프로젝트 개발 범위 외부의 시스템
d) 단위 테스트를 수행하는 관리자

 

43. 액터와 유스케이스 사이의 연관 관계를 화살표로 표현할 때, 이 화살표가 의미하는 것은 무엇인가요?

 

44. 다음 중 액터 → 유스케이스 관계에 대한 설명으로 옳은 것을 모두 고르세요.
(복수 정답 가능)

a. 화살표는 데이터 흐름을 나타낸다
b. 제어의 흐름을 나타낸다
c. 제어하는 주체가 출발점이다
d. 화살표 방향은 항상 유스케이스에서 액터로 간다

 

45. 일반화 관계란 무엇이며, 액터 사이에서 이를 적용하는 이유는 무엇인가요?

 

46.  수강신청 유스케이스와 성적조회 유스케이스에서 공통으로 필요한 부분이'로그인'유스케이스라고  표현하기 부적절한 이유는 무엇인가?

 

47. 확장 관계에 대한 설명으로 옳지 않은 것은?

a. 예외적인 상황이나 어쩌다 한 번 발생할 경우 사용함

b. <<extend>>라는 스테레오 타입을 사용

c. 특정 조건이 발생하면 확장 유스케이스를 수행하고 다시 기준 유스케이스를 수행
d. 확장 관계는 점선 화살표로 표기하고 방향은 기준 유스케이스 쪽으로 향함

정답

 

1. c) 알고리즘 선택
→ 알고리즘 선택은 설계 단계에 포함되며, 구현 단계에서는 코드화가 중심.

 

2. 소비자의 Needs 파악, System의 Input과 Output 설계, 시스템 분석하기, 시스템 코딩하기, 시스템을 실행하고 에이징 테스트 수행

 

3. 시스템이 처리할 입력과 출력의 구조를 정의함, 데이터 흐름 설계, 인터페이스 설계 ,  알고리즘 설계 

 

4. 시스템을 계층적으로 분석하여 각 모듈의 역할을 정의함

 

5. 시간 복잡도는 연산의 효율성을 측정하는 방법 중 하나이고 공간 복잡도는 연산을 수행하는 데 필요한 저장 공간을 측정하는 방법

 

6.

    (1) 대형 프로젝트의 증가로 인한 관리 복잡성

    (2) 하드웨어 발전 속도에 비해 느린 소프트웨어 개발 속도

    (3) 비효율적인 개발 방법론

 

7. 모듈화, 단계적 상세화 (Top-Down Design)

 

8.  C. 단계적 상세화 (→ 구조적 프로그래밍 개념)

 

9. 수학적/논리적

 

10. MTBF (Mean Time Between Failures)

 

11. 지도학습은 입력과 정답이 있는 데이터를 기반으로 학습하고, 비지도학습은 정답 없이 데이터의 구조나 패턴을 학습함.

 

12. 품질 높은 소프트웨어를 경제적으로 개발하기 위해, 전 과정에서 공학적, 과학적, 수학적 원리를 적용하는 학문

 

13. 계획 → 분석 → 설계 → 구현 → 테스트 → 유지보수

 

14. C. 복잡한 문제를 단순화하기 위해 기능을 분리

 

15. D. 예방 유지보수 - 리팩토링을 통한 코드 개선
(예방 유지보수는 미래 오류 예방 목적, 리팩토링은 완전 유지보수에 더 가까움)

 

16. C. 소프트웨어 성능 (→ 이는 품질 평가 요소이지만 프로세스 품질 항목은 아님)

 

17. 인공지능 소프트웨어는 시변적 특성으로 인해 동일한 입력에서도 결과가 달라질 수 있고, 결과에 대해 명확하게 설명할 수 없는 경우가 많아 설명 가능성(explainability)이 문제된다

 

18. 아래 참고

a) 모델 관점 : 분류나, 차원 축소 같은 작업을 수행하기 위해 데이터에 대한 훈련이 이루어지는 부분

b) 데이터 관점: 모델에 입력되는 실데이터와 관련된 부분
c) 시스템 관점: ML 컴포넌트들을 연결하고, 형상(Configuration)을 정의
d) 인프라 관점: 어떻게 구현되는 가에 초점을 맞추는 부분

e) 환경 관점: 사용자 인터페이스, 사용자의 요구 및 기대, 사용환경(네트워크, 디바이스) 등을 포함하며, 사용자 경험과 관련된 요소

 

19. 아래 참고

a) 회복성: 신뢰성
b) 모듈성: 유지보수성
c) 이식성: 전환성
d) 확신성: 보안성

 

20. c) 기능성과 사용성 등이 포함된다.
→ 기능성과 사용성은 ISO9126품질 모델의 특성

 

21. 준비 단계 → 척도 조정 단계 → 측정 단계 → 평가 단계 → 관리 단계

 

22. 아래 참고

a) 준비 단계 :프로젝트의 공식화 및 팀 구성과 역할 정의하고 적용 표준,지원 도구, 환경 등을 구축

b) 척도 조정 단계:  각 품질 요소를 적용할 단계 및 대상물 정의

c) 측정 단계: 품질 측정 계획서를 바탕으로 데이터 수집 후 분석

d) 평가 단계: 유사 프로젝트의 품질 요소 수준과 상대적인 비교 후 수집된 데이터를 조직 차원의 DB에 저장
e) 관리 단계: 조직 차원의 품질 관리 활동을 관리,지원

 

23. 실현 가능성 분석 → 요구사항 도출 및 분석 → 설계 → 코딩 및 단위 시험 → 통합 및 시스템 시험 → 배포, 설치 및 운영

 

24. 소프트웨어 프로세스

 

25. ② 테스트 단계를 설계 및 분석 단계와 연계시켜 오류를 줄인다

 

26.  진화적 모델은 반복적으로 점진적 개선을 수행하며 사용자 요구사항을 반영하는 개발 방식이다. 프로토타입 모델은 진화적 모델의 한 방식으로, 빠르게 시제품을 만들어 피드백을 받아 개선한다. 

 

27. ② 개발 범위가 명확함

- >  프로토타입 모델은 반복과 변경으로 인해 개발 범위가 불명확해질 수 있음.

 

28.  ① 위험 ② 요구분석 ③ 위험 ④ 프로토타입 ⑤ 사용자

 

29. RUP (Rational Unified Process)

 

30.  아래 참고

a) 도입: 비즈니스 모델링과 요구사항 정의 관련 작업이 가장 많이 이루어진다

b)구체화 : 비즈니스 모델링과 요구사항 정의 작업은 점차 줄고, 대신 분석 및 설계 작업이 크게 이루어짐

c) 구축: 구현 작업이 가장 많이 이루어짐

d) 전이:  이행 단계라고도 하며 사용자를 위한 제품을 완성하는 단계

 

31. 반복 주기마다 실행 가능한 결과물을 만들며, 사용자 요구 변경에 유연하게 대응. 위험 요소를 조기에 제거 가능.

 

32. 아래 참고

  • 사용자와의 상호작용 및 소통을 중요시
  • 문서보다는 실행 가능한 소프트웨어를 중시

33. 동작 가능한

-> 애자일은 동작 가능한 소프트웨어를 자주 제공함으로써 고객 만족을 추구한다.

 

34. 아래 참고

  • 제품 책임자: 요구사항을 제품 기능 목록으로 정리하고 우선순위를 매김
  • 스크럼 마스터: 팀의 장애 요소를 제거하고 프로세스를 지원함
  • 스크럼 팀: 실제 개발을 수행하고 결과물을 구현함

35. b

 

36. c

 

37. c

 

38. a

 

39. 소프트웨어 시스템을 설계하고 이해하는 데 사용되는 표준화된 시각적 언어로 복잡한 시스템을 명확하게 이해하고 의사소통할 수 있도록 돕는다.

 

40.  시스템이 사용자 또는 외부 시스템과 어떻게 상호작용하는지를 시각적으로 보여주며, 요구사항 분석, 시스템 설계, 팀 간 소통에 사용된다.

 

41.  사용자 액터는 시스템을 사용하는 실제 사람이며, 시스템에 데이터를 입력하거나 요청한다. 시스템 액터는 시스템 외부의 또 다른 시스템으로 데이터 연동이 이루어진다.

 

42.  c

 

43.   제어의 흐름을 나타냄

 -> 화살표는 제어가 전달되는 방향, 즉 명령을 내리는 쪽에서 받는 쪽으로 향한다.

 

44. b, c

-> 데이터 흐름이 아니라 제어 흐름이며, 제어 주체에서 제어 대상으로 연결된다.

45. 일반화 관계는 여러 액터가 공통적으로 가지는 속성이나 행동을 상위 액터로 추출하여 표현하는 관계입니다. 액터 간의 일반화 관계를 통해 다이어그램을 간결하게 만들고 이해도를 높이며, 새로운 액터를 간단하게 추가 가능하다

 

46. 로그인은 선행 조건이지 포함 관계에 적절하지 않습니다.

 

47. 예외적인 상황이나 어쩌다 한 번 발생하는 것을 확장 관계로 표현하는 것은 적절하지 않음

 

 

반응형