다라다라V
article thumbnail
728x90
반응형

 

본 글은 "최은만"님의 [소프트웨어 공학의 모든 것]의 연습 문제 답을 공유하고자 작성되었으며, 필자가 직접 문제를 풀며 작성한 것이기에 오류가 있을 수 있습니다. 댓글로 알려주시면 반영하도록 하겠습니다.

시리즈 보기
[소프트웨어 공학의 모든 것] 1장 연습 문제 해답 및 풀이 해설
[소프트웨어 공학의 모든 것] 2장 연습 문제 해답 및 풀이 해설
[소프트웨어 공학의 모든 것] 3장 연습 문제 해답 및 풀이 해설
[소프트웨어 공학의 모든 것] 4장 연습 문제 해답 및 풀이 해설
[소프트웨어 공학의 모든 것] 5장 연습 문제 해답 및 풀이 해설
[소프트웨어 공학의 모든 것] 6장 연습 문제 해답 및 풀이 해설
[소프트웨어 공학의 모든 것] 7장 연습 문제 해답 및 풀이 해설
[소프트웨어 공학의 모든 것] 8장 연습 문제 해답 및 풀이 해설
[소프트웨어 공학의 모든 것] 9장 연습 문제 해답 및 풀이 해설
[소프트웨어 공학의 모든 것] 10장 연습 문제 해답 및 풀이 해설
[소프트웨어 공학의 모든 것] 11장 연습 문제 해답 및 풀이 해설
[소프트웨어 공학의 모든 것] 12장 연습 문제 해답 및 풀이 해설

 

💡 

소프트웨어에 대한 올바른 상식은?

 

① 소프트웨어 프로젝트의 요구사항은 지속적으로 변경되지만 소프트웨어는 유연하기 때문에 변경을 반영하는 것이 쉽다.
② 프로그램을 실제 작동해 보기 전까지는 소프트웨어의 품질을 평가하는 것은 불가능하다.
③ 소프트웨어 공학은 별로 필요 없는 많은 문서를 생성하게 하여 개발을 지연시킨다.
④ 지체된 프로젝트에 인력을 뒤늦게 투입하는 것은 오히려 프로젝트의 일정을 더욱 지연시킬 수 있다.

 

[해설]

② (p30) 소프트웨어가 요구와 품질을 만족시키는지 검토하고 확인, 테스팅 하는 작업이 필요합니다. 바람직한 소프트웨어가 가져야할 특징은 유지보수성, 신뢰성, 효율성, 유용성이 있습니다.

③ (p22) 소프트웨어가 작동해야할 기능이나 성능뿐만 아니라 제품의 원가, 위험 및 일정 등 제약 사항도 포함된다. 명세는 소프트웨어 제작 단계 이전의 요구사항을 엄격하게 정리하여 부정확한 채 개발하여 실패하는 것을 방지할 수 있게 한다.

 

💡 

소프트웨어를 시스템적으로 사고하기 위한 방법이 아닌 것은?

 

① 상호 작용하는 서브시스템으로 구성하기 위하여 기능적으로 분할한다.
② 시스템의 경계를 찾기 위하여 컴퓨터 하드웨어와의 입출력을 파악한다.
③ 서브시스템 사이의 관계를 찾아낼 수 있어야 한다.
④ 소프트웨어 이외의 요소,기계,문서,작업절차,교육도 고려하여야 한다.

 

[해설]

(p20) 소프트웨어를 개발하는 일은 시스템 안에 속하는 여러 요소를 파악하고 그들의 관계를 설정하는 작업이 포함된다. 시스템은 네 가지 중요한 성질을 가지고 있다.서브시스템, 기능적 분할, 시스템 경계, 자동화 경계

① 기능적 분할

③ 서브 시스템

④ 시스템 경계

 

💡 

소프트웨어 분야에 공학적 접근의 필요성에 해당되지 않는 것은?

 

① 소프트웨어 비용이 낮아지고 질 높은 소프트웨어가 많아졌다.
② 개발 일정이 계획보다 지연되고 소프트웨어에 결함이 많이 발견되어 신뢰도가 낮다.
③ 생산성이 낮아 여러 가지 방법론과 도구, 관리 기법들이 필요하게 되었다.
④ 소프트웨어를 개발하면서 요구가 계속 추가되고 수정되어 재작업이 필요하게 된다.

 

[해설]

(p24)

소프트웨어는 동일한 인력, 동일한 방법 및 동일한 도구를 사용하고 소프트웨어 예산 문제, 효율성 문제, 품질 문제, 관리 등의 문제가 발생했다. 이를 소프트웨어 위기라 한다.

💡 

다음 중 소프트웨어 공학이 다루는 위기 현상이 아닌 것은?

 

① 소프트웨어를 개발하기 위한 비용이 높고 생산성이 낮다.
② 프로젝트가 지연되고 신뢰도가 낮다.
③ 상세한 요구가 추상적인 프로그램으로 바뀐다.
④ 비효율적인 유지보수와 재작업이 많다.

 

[해설]

(p24)

소프트웨어는 동일한 인력, 동일한 방법 및 동일한 도구를 사용하고 소프트웨어 예산 문제, 효율성 문제, 품질 문제, 관리 등의 문제가 발생했다. 이를 소프트웨어 위기라 한다.

 

💡 

소프트웨어 공학의 도전 과제에 대한 설명 중 옳지 않은 것은?

 

① 품질이 낮은 소프트웨어는 비용을 절감시키더라도 소용이 없다.
② 생산성을 높여 짧은 시간에 완성할 수 있게 하는 것도 하나의 과제다.
③ 높은 품질과 생산성이 항상 유지되고 반복 적용될 수 있어야 한다.
④ 규모가 큰 시스템을 개발하는 일에 작은 시스템을 개발할 때와 같은 방법이 동원되어야 한다.

 

💡 

소프트웨어 공학과 다른 공학, 예를 들면 기계공학, 토목공학, 건축공학과의 차이점을 말한 것 중 틀린 것은?

 

① 소프트웨어 공학은 제품의 비용이 주로 개발하는 데 소요되나 다른 공학은 개발과 생산에 모두 소요된다.
② 소프트웨어는 다른 공학의 결과물과는 달리 생산 후 기능을 변경할 수 있다.
③ 소프트웨어 공학이 다루는 대상은 쉽게 구조가 드러나는 가시성이 있으나 다른 공학은 가시성이 없다.
④ 소프트웨어 제품의 품질은 주로 생산 과정이 아니라 설계 과정에 결정된다.

 

💡 

소프트웨어를 개발할 때 단계적인 프로세스를 따르는 주된 이유는 무엇인가?

 

① 소프트웨어의 문제를 나누어 여러 개발 단계에서 다른 관점을 다루기 때문이다.
② 소프트웨어 문제가 크므로 쪼개어 다루기 위해서
③ 작업 인력이 전문화 되어 있어 역할을 나누어 파이프라인 식으로 작업하기 때문이다.
④ 작업의 양이 많아 중간에 점검하기 위하여 

 

💡 

소프트웨어 개발 과정에 대한 바른 설명이 아닌 것은?

 

① 요구 분석 단계는 사용자가 원하는 기능을 어떻게 제공할 것인지 분석한다.
② 소프트웨어 시스템은 주로 기능,구조,동적 관점에서 모델링하여 명세한다.
③ 테스팅 작업은 오류를 발견하기 위하여 프로그램을 계획적으로 실행시키는 것이다.
④ 유지보수 작업은 사용 중 발생하는 결함을 제거하기 위한 수정만이 아니라 변화에 대비하는 작업이다.

 

 

💡 

소프트웨어 프로젝트 관리에 영향을 주는 중요한 세 가지 제약조건은 무엇인가?

 

① 기술,인력,비용
② 시간 , 비용 , 범위
③ 비용,도구,프로세스
④ 도구,방법,비용

 

 

💡 

소프트웨어 품질에 대한 설명으로 옳지 않은 것은?

 

① 소프트웨어가 가지는 특성 중 무엇보다도 필요한 것은 요구한 기능을 정확히 수행하는 것이다.
② 이상적인 경우 신뢰성은 정확성에 포함된다.
③ 요구 명세에 표시하지 않은 상황에서도 소프트웨어가 제대로 동작할 때 강인성이 있다고 말한다.
④ 사용 용이성은 사용자가 시스템을 얼마나 친근하게 느끼는가를 말한다.

 

 

💡 

소프트웨어는 다른 공산품과는 다른 특성들을 가진다 그 품질 특성을 설명하는 것 중 잘 못 설명된 것은?

 

① 정확성 - 사용자가 요구한 기능을 정확하게 수행함을 말한다.
② 신뢰성 - 주어진 기간 동안 소프트웨어가 제대로 작동할 확률.
③ 강인성 - 소프트웨어 성능이 강인하고 탁월함
④ 유지 보수성 - 소프트웨어의 변경과 기능 개선의 용이성.

 

 

💡 

소프트웨어 공학의 각 작업과 작업의 주된 목표를 올바르게 짝지은 것은?

 

① 개발 프로세스 - 품질
② 개발 프로세스 - 출시 시간(time to market)
③ 품질 보증 - 생산성
④ 프로젝트 관리 - 비용,출시 시간(time to market)

 

 

💡 

좋은 소프트웨어가 가져야 할 특성에 대한 설명이 잘못된 것은? [7급 국가직 공무원 시험, 2010]

 

① 안전성(dependability) - 소프트웨어의 신뢰성,보안성,안정성을 포괄하는 특성을 말한다.
② 결함 내성(fault tolerance) - 고객의 요구가 변경되더라도 요동하지 않는 내성을 의미 한다.

③ 사용편리성(usability) - 사용자가 편하게 사용할 수 있는 특성을 말한다.
④ 효율성(efficiency) - 소프트웨어가 메모리, 프로세서 등의 자원을 낭비하지 않고 효과적으로 사용하는 성질을 의미한다.

 

 

💡 

좋은 소프트웨어 공학이 추구하는 목표에 대한 설명으로 짝지어진 것은?

가. 비용에 관계없이 최대한 품질 좋은 소프트웨어를 개발한다.
나. 계획된 개발 기간 내에 소프트웨어 개발이 이루어질 수 있도록 개발 공정을 관리한다.
다. 유능한 소프트웨어 개발자의 창의력과 독창적인 프로그램 작성기법을 권장한다.
라. 소프트웨어 개발에 관리 기법을 적용하여 인적,물적 자원을 효율적으로 관리한다.

 

[정답] ④ 나, 라

 

💡 

소프트웨어 개발 각 단계의 설명과 산출물이 잘못 기술된 것은?

 

① 계획 - 개발 초기에 프로젝트의 일정과 예산, 조직을 결정하며 프로젝트 계획서를 작성한다.
② 요구 분석 - 사용자 요구를 찾아 소프트웨어 요구 명세서를 작성한다.
③ 설계 - 요구를 기반으로 소프트웨어의 구조와 데이터를 설계하여 설계 명세서를 작성한다.
④ 구현 - 계획서를 바탕으로 구현 계획을 수립하고 간트차트를 작성한다.

 

 

💡 

소프트웨어 공학의 작업에 대한 설명이 옳지 않은 것은?

 

① 문제를 분석하여 시스템의 기능,범위, 제약사항 등을 도출하는 일을 계획이라 한다.
② 요구 사항으로부터 소프트웨어 시스템의 개괄적인 구조와 입출력, 인터페이스를 결정하는 작업은 설계라고 한다.
③ 프로그램을 시험하고 통합하는 일은 테스팅이다.
④ 설치되어 운용되는 소프트웨어 시스템의 결함을 수정하고 복구하는 일은 유지보수라한다.

 

💡 

개발하고 있는 소프트웨어가 목표로 하는 품질 수준을 만족시킬 것이라는 것을 보장하는 작업에 해당되지 않는 것은?

 

① 검토(verification) 
② 확인(validation)
③ 리뷰
④ 형상 관리

 

 

💡 

프로젝트 관리 작업에 대한 설명으로 옳지 않은 것은?

 

① 개발 프로세스 각 단계를 어떻게 분할하고 자원을 분배할 것인지 결정한다.
② 프로젝트의 위험 요소가 무엇인지 인지하고 어떻게 시스템을 전환할 것인지 결정한다.
③ 개발 프로세스를 모니터링하고 제어한다.
④ 프로젝트의 결과가 원하는 결과인지 테스팅하고 확인한다.

 

 

💡 

ISO 12207에서 다루는 소프트웨어 프로세스 생명주기 중 조직 생명주기 프로세스에 속하는 것만 모은 것은?

가. 획득 프로세스 (aquistion process)
나. 공급 프로세스 (supply process)
다. 관리 프로세스 (management process)
라. 개선 프로세스 (improvement process)
마. 교육 프로세스 (training process)
바. 지원 프로세스 (support process)

 

[정답] ④ 다, 라, 마

 

💡 

SWEBOK v3.0에서 정의하는 소프트웨어 공학 지식 영역이 아닌 것은?

 

① 소프트웨어 도구와 방법론
② 소프트웨어 경영학
③ 수학적 기반
④ 공학적 기반

 

반응형
profile

다라다라V

@DaraDaraV

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!