Cohe

1장 프로세스와 방법론 연습문제 본문

소프트웨어 공학

1장 프로세스와 방법론 연습문제

코헤0121 2023. 3. 1. 13:25
728x90

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1-9 소프트웨어 프로젝트 관리에 영향을 주는 중요 가지 제약조건 무엇인가?2

  1. 기술. 인력. 비용
  2. 시간. 비용 범위
  3. 비용. 도구. 프로세스
  4. 도구. 방법. 비용

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

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

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

  1. 정확성 - 사용자가 요구한 기능을 정확하게 수행함을 말한다
  2. 신뢰성 - 주어진 기간 동안 소프트웨어가 제대로 작동할 확률
  3. 강인성 - 소프트웨어 성능이 강인하고 탁월함
  4. 유지 보수성 - 소프트웨어의 변경과 기능 개선의 용이성
  • 해설
  • 복잡성, 순응성, 변경성, 비가시성

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

  1. 개발 프로세스 - 품질
  2. 개발 프로세스 - 출시 시간 (time to market)
  3. 품질 보증 - 생산성
  4. 프로젝트 관리 - 비용, 출시 시간( time to market)
  • 해설
    1. 개발 프로세스 - 생산성
    2. 품질 보증 - 품질
    단계별 프로세스 → 생산성
  • 프로젝트 관리 → 비용

1-13 좋은 소프트웨어가 가져야 할 특성에 대한 설명이 잘못된 것은? 2

  1. 안전성 - 소프트웨어의 신뢰성. 보안성. 안정성을 포괄하는 특성을 말한다.
  2. 결함 내성(fauIt tolerance) - 고객의 요구가 변경되라도 요동하지 않는 내성을 의미한다.
  3. 사용 편리성(usability) - 사용자가 편하게 사용할 수 있는 특성을 말한다
  4. 효율성 - 소프트웨어가 메모리. 프로세서 등의 자원을 낭비하지 않고 효과

적으로 사용하는 성질을 의미한다

 

 

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

 

 👉 가. 비용에 관계없이 최대한 품질 좋은 소프트 웨어를 개발한다

나. 계획된 개발 기간 내에 소프트웨어 개발이 이루어질 수 있도록 개발 공정을 관리한다.

다. 유능한 소프트웨어 개발자의 창의력과 독창적인 프로그램 작성 기법을 권장한다.

라. 소프트웨어 개발에 관리 기법을 적용하여 인적, 물적 자원을 효율적으로 관리한다.

 

  1. 가, 나
  2. 나 다 라
  3. 나, 라

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

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

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

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

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

  1. 검토(verification) : 제시된 절차와 방법에 맞게 진행되었는지 check
  2. 확인(validation) : 개발 완료된 결과물이 품질 수준에 맞게 생산되었는지 검사
  3. 리뷰
  4. 형상 관리
  • 테스팅 : 구현된 소프트웨어를 실행하여 예상된 결과를 보이는지 확인하는 작업

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

  1. 개발 프로세스 각 단계를 어떻게 분할하고 자원을 분배한 것인지 결정한다. (계획 자원관리)
  2. 프로젝트의 위험 요소가 무엇인지 인지하고 어떻게 시스템을 전환할 것인지 결정한다(리스크관리)
  3. 개발 프로세스를 모니터링하고 제어한다(수행 모니터링)
  4. 프로젝트 결과가 원하는 결과인지 테스팅하고 확인한다.

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

👉 가 획득 프로세스(aquisition process)

나 공급 프로세스(supply process)

다. 관리 프로세스(management process)

라. 개선 프로세스(improvement process)

마. 교육 프로세스(training process)

바 지원 프로세스(support process)

 

  1. 가. 다 라
  2. 가 라. 마
  3. 나. 다 바
  4. 다 라 마 → 조직 프로세스

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

  1. 소프트웨어 도구와 방법론
  2. 소프트트웨어 경영학
  3. 수학적 기반
  4. 공학적 기반

 

1-21 소프트웨어가 다른 엔지니어링 결과물. 예를 들어 하드웨어나 빌딩. 자동차들과 비교하여 어떤 특징을 갖는가?

비가시성 변경성 순응성(요구, 환경, 데이터 변화에 따라 적절히 변형) 복잡성

 

1-22 소프트웨어 위기 현상이란 무엇이며 소프트웨어 프로젝트에서 미숙한 경험으로 인하여 발생하는 여러 문제점은 무엇인가?

위기 현상 : 수요 복잡성 증가 따라 기존 방법이 충분하지 않음. 급격한 컴퓨터 계산 용량과 문제의 복잡성이 급격히 증가함에 따라 발생한 문제

개발 지연과 예산초과, 낮은 품질, 유지보수 곤란, 재작업 등의 문제가 생김

 

1-23 소프트웨어 공학의 궁극적 목표는 무엇이며 소프트웨어 공학이 적용된 프로젝트에서는 어떤 작업이 이루어지나?

궁극적 목표는 다음과 같다. 복잡도를 낮추며 비용을 최소화 하고 개발 기간을 단축하며 대규모 프로젝트를 관리 하면서 고품질 소프트웨어를 제공하고 효율성을 제공한다.

즉, 여러 원리와 방법을 적용하여 품질 좋은 소프트웨어를 최소의 비용으로 계획된 일정에 맞춰 개발하는 것이다.

표준화 작업을 거쳐 생산성을 높인다.

 

1-24 일반적인 소프트웨어 개발 프로세스의 작업을 나열하고 각 작업에 하여야 할 일들을 기술 하라

명세화(제작 단계 이전의 요구 사항을 엄격하게 정리, 부정확한 채 개발 실패 방지)→ 설계 → 구현(코딩, 명세를 주어진 여건에 맞춰 프로그래밍 언어로 변환) → 검증(구현된 sw가 고객의 의도와 일치하는지 확인하는 작업)→유지보수 (시작의 요구 변화에 맞게 소프트웨어를 수정)

 

1-25 다음 결과물은 각각 어느 단계에서 작성되나?

사용자 매뉴얼 최종본, 테스팅
아키텍처 설계, 설계
SQA 계획, 설계
모듈명세서, 설계
원시 코드, 코딩
테스트 계획, 설계
상세 설계, 설계
비용 예측, 요구분석
프로젝트 계획, 요구분석
테스트 보고서 테스팅
사용자 메뉴얼 초고 테스팅

 

 

1-26 프로젝트 관리에서 중요한 프로젝트에 영향을 주는 세가지 제약 조건을 설명하라

품질, 생산성, 비용

 

 

1-27 소프트웨어 공학의 연구 결과인 방법, 도구, 프로세스, 패러다임이 무엇인지 요리에 비유하여 설명하라.

 

방법 익히는 방법 소프트웨어 제작에 사용하는 기법이나 절차 구조적 분석, 설계 방법, 객체지향 분석 설계 방법
도구 요리도구 자동화된 시스템 설계 도구 프로그래밍 도구 테스트 도구
프로세스 조리순서 도구와 기법을 사용하여 작업하는 순서 Unified Process
패러다임 음식 스타일 접근 방법, 스타일 구조적 방법론 객체지향 방법론

 

1-28 소프트웨어는 결함이 많이 있을 수 있고 고장은 매우 심각한 피해를 유발할 수 있다. 따라서 개발 작업과는 별도의 품질을 높이기 위하여 어떤 활동을 하는지 구체적으로 설명하라.

테스팅을 한다. 통합 테스팅 시스템 테스팅 인수 테스팅 시스템의 설치 프로젝트 관리 계획을 한다.

1-29 SWEBOK이란 무엇이며 v3.0에 담겨진 주요 지식 영역은 무엇인가?

Software Engineering Body of Knowledge, 소프트웨어 공학 지식체계를 ISO/IEC에서 표준화하여 제공하는 문서

  • (Computer Engineering, Computer Science, General Management, Mathematics, Project Management, Quality Management, Systems Engineering)

 

1- 30 소프트웨어 공학과 밀접하게 연관된 분야는 무엇이며 차이점은 무엇인가?

컴퓨터 과학, 기술적인 측면만 집중한 것에 반면 소프트웨어 공학은 기술 외적인 측면도 고려해야한다. 경영학적 측면도 필요하다.

 

 

 

 

'소프트웨어 공학' 카테고리의 다른 글

4장 요구분석 연습문제  (0) 2023.03.01
4장 설계 원리  (1) 2023.03.01
3장 프로젝트 관리와 계획 연습문제  (0) 2023.03.01
2장 애자일 연습문제  (1) 2023.03.01
2장 애자일 설명  (2) 2023.03.01