Cohe

2장 애자일 연습문제 본문

소프트웨어 공학

2장 애자일 연습문제

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

2-1 프로세스를 정의하지 않고 즉흥적인 개발을 할 경우의 발생하는 문제점이 아닌 것은? ③

  1. 시스템을 구현하기 전에 요구를 알아본다든지 설계하는 작업의 중요성을 깨닫지 못하게 된다.
  2. 소프트웨어는 신중하게 잘 설계하지 않으면 그 구조가 나빠진다
  3. 장황한 문서가 없지만 시행착오를 덜 겪게 된다.
  4. 체계적인 테스트 작업이나 품질 보증 차원의 활동에 대한 필요성의 인식이 없다

2-2 다음은 프로세스와 관련된 용어를 설명한 것이다 옳지 않은 것은? ③

  1. 프로세스 명세 - 프로젝트에서 수행하여야 하는 작업과 이들의 수행 순서를 정의한 것
  2. 프로세스 모델 - 일반적인 프로세스를 기술한 것
  3. 실행 프로세스 - 작업을 실행하였을 때 나오는 결과
  4. 프로세스 - 프로세스 명세와 실행 프로세스 두 가지 개념을 편의 상 부르는 용어

2-3 바람직한 소프트웨어 프로세스의 특징에 포함되지 않는 것은?④

  1. 예측 가능성
  2. 시험 및 유지보수 용이성
  3. 변경 용이성
  4. 신속성

2-4 소프트웨어 개발 모델에 대한 설명으로 옮지 않은 것은? 1

  1. 폭포수 모텔은 실제 프로젝트가 순차적이라기보다는 반복화된 성향을 가지므로 개발 모델로 적합하지 않은 경우가 많다.
  2. 폭포수 모델은 초기에 모든 요구 사항을 완전히 파악하도록 요구하므로 개발 프로젝트의 불명확성을 미연에 방지할 수 있다는 장점이 있다
  3. 프로토타이핑 모델에서 개발자는 시제품을 빨리 완성하기 위하여 효율성과 무관한 알고리즘을 사용해도 좋다
  4. 나선형 모델은 폭포수 모델과 프로토타이핑 모텔의 장점을 취하면서 점중적으로 성과를 보이면서 위험 부담을 줄이는 방법이다

2-5 프로세스 V 모델에 대한 설명으로 옳지 않은 것은? ①

  1. Boehm의 나선형 모델을 확장한 모델이다
  2. V 모텔은 분석과 설계에 관련된 단계에 대한 테스트 가이드라인이다
  3. 코딩단계를 중심으로 분석과 셜계단계는 왼편에. 테스팅과 유지보수단계는 오른편에 위치한다
  4. 분석과 설계에 대한 반복적인 검증으로 요구사항에 대한 정확한 이해를 높인다.

2-6 신속한 소프트웨어 개발에 관한 설명이 옳지 않은 것은? 2

  1. 애자일 방법은 개발 오버헤드를 졸임으로써 소프트웨어를 신속히 생산하도록 하는 반복적 개발방법이다.
  2. 실행가능한 쓰고 버리는 타입의 프로토 타입은 사용 방식이 최종적으로 인도되는 시스템의 사용 방식과 일치한다는 장점을 가진다.
  3. RAD 환경은 데이터베이스 프로그래밍 언어 폼생성도구가 비즈니스 애플리케이션용으로 연결되어야 한다.
  4. 익스트림 프로그래밍은 시험 우선 개발, 리팩토링, 고객의 참여 등을 포함한다.

2-7 폭포수 모델에 대한 문제점을 지적한 것으로 옳지 않은 것은?4

  1. 폭포수 모형은 초기에 분석이 충분치 않은 상대에서 비용을 예측하도록 되어 있어 정보가 충분하지 않은 경우 자원을 예측하기가 어렵다
  2. 요구 분석 명세를 정확히 작성하더라도 소프트웨어가 개발된 후에 의도한 대로 완성되었는지 확인하기가 쉽지 않다
  3. 설계가 코딩 및 테스팅을 지연시킬 우려가 있다.
  4. 비선형적이며 반복적으로 개발이 진행되므로 소프트웨어의 품질 중 강인성을 높일 수 있다.

2-8 프로토 타입 개발 모델에 대한 설명으로 옳지 않은 것은? 4

  1. 시스템 기능을 사용자에게 확인시킴으로써 개발자와 사용자간의 견헤차이가 해결될 수 있다
  2. 분석가나 개발자는 프로토타입을 이용하여 불완전하거나 일치하지 않는 요구사항을 발견 할 수 있다
  3. 완전하지는 못하지만 작동하는 시스템을 만들어 기능성과 유용성을 관리자에게 보여줄 수 있다.
  4. 고객의 요구사항을 초기에 구체적으로 기술하기 어럽고 중요한 문제점이 프로젝트의 후반부에 가서야 발견된다.

2-9 프로젝트 수행 시 발생하는 위험을 관리하고 최소화하는 것이 주된 목적인 소프트웨어 프로세스 모델은?③

  1. 폭포수 모델(Waterfall Model)
  2. 4세대 기법(4th Generation Techniques)
  3. 나선형 모델(Spiral Model)
  4. 구축 및 수정 모델(Build—Fix Model)

2-10 소프트웨어 통합 프로세스(UP) 모델의 구체화 단계(elaboration phase)에서 하는 주요 활동으로 옳지 않은 것은?①

  1. 사용자 환경에서 인수 테스트 수행
  2. 아키텍처 설계
  3. 요구사항 분석
  4. 중대한 위험 요소 식별 및 해결

2-11 다음 중 점증적 방법이 가지는 장점이 이년 것은?④

  1. 몇 가지 기능이 부족하더라도 초기에 사용 교육을 할 수 있다.
  2. 이전에는 없었던 기능을 가진 소프트웨어에 대한 시장을 빨리 형성시킬 수 있다
  3. 가동 중인 시스템에서 일어나는 예상하지 못했던 문제를 신속하고 꾸준하게 고쳐 나갈 수 있다
  4. 사용자 요구를 빠른 기간 내에 확정하여 고정할 수 있다.

2-12 소프트웨어 개발 모텔과 그 단계를 바르게 정의한 것은 (괄호 안은 반복 단계임) ?④

  1. 폭포수 모델 : 계획 - 요구분석 - 설계 _ 구현 - 인수- 시험
  2. V 모델 : 계획 - [구현 - 시험]* - 요구분석 - 설계 - 인수
  3. 프로토타이핑 모델 : 계획 [요구분석 - 구현]* - 프로토타입 개발 - 인수
  4. 나선형 모델: [계획수립 _ 위험분석 - 개발 - 평가]*

2-13. 소프트웨어 프로세스 모델을 선택할 때 필수적으로 고려일 사항만을 묶어 놓은 것은? ①

  1. 개발 그룹의 전문성. 문제 특성. 사용자의 기대
  2. 언어. 개발 일정. 경쟁사
  3. 시스템 배경. 사용자 그룹, 플랫폼
  4. 조직 구조, 사용자 작업. 성능 평가 기준

 

2-14 다음 중 에자일 프로세스에 해당 되는 것은? 2

 👉 가 스크럼 나 크리스탈 다 특징주도형 개발 라 스파이스 마 xp 바 Unified 프로세스

 

  1. 가. 다. 라
  2. 가. 나 다 마
  3. 가. 다. 라 마
  4. 가. 나. 다. 라. 마

1-15 다음과 같은 소프트웨어 시스템을 개발할 때 적용할 수 있는 적합한 개발모형은? 1

 👉 전자 교환기 소프트웨어 시스템은 지난 수십 년 간 개발되어 사용해 왔으며, 새로운 기능이 추가되기보다는 다양한 하드웨어 플롯폼에 맞도록 최적화 시키는 일이 빈번히 일어났다.

 

  1. 폭포수( waterfall) 모델
  2. 프로토타이핑(prototyping) 모델
  3. 나선형(spiral) 모델
  4. UP(Unified Process) 모델

2-16 익스트림 프로그래밍의 테스팅에 대한 설명으로 옳지 않은 것은?①

  1. 코드를 작성하기 전에 테스트 케이스를 먼저 작성한다.
  2. 각 사용자 스토리에 대해 테스트 케이스를 작성한다
  3. 프로그램을 큰 단위로 나누어 릴리즈 직전 테스트를 수행한다.
  4. 자동화된 테스팅 도구 사용을 권장한다.

2-17. 다음은 어떤 방법론에 대한 장단점을 설명한 것인가? ②

 👉 장점 : 실세계와 밀접한 모델링 유지보수 쉬움 설계 코딩으로 전환이 쉬움 신뢰성과 융통성 코드 재사용성 증가

단점 광범위한 응용 분야에 효용이 증면되지 못함 충분히 훈련된 프로그래머 부족

 

  1. 구조적 방법론
  2. 객체지향 방법론
  3. 정보공학 방법론
  4. 컴포넌트 방법론

2-18 ISO 12207의 ‘기본 생명주기 프로세스(primary lige cycle process)'에 포함되지 않는 것은?①

  1. 획득 프로세스(acquisition process)
  2. 운영 프로세스(operation process)
  3. 형상관리 프로세스(configuration management process)
  4. 유지보수 프로세스(maintenance process)

2-19 에자일 선언문은 애자일 방법론이 추구하고 있는 가치를 요약하고 있다. 애자일 선언문의 내용으로 옳은 것은? 1

  1. 포괄적인 문서보다는 제대로 동작하는 소프트웨어에 더 가치를 둔다.
  2. 고객과의 협력보다는 계약 협상에 더 가치를 둔다
  3. 변화에 대용하는 것보다는 계획을 따르는 것에 더 가지를 둔다
  4. 개인과 상호작용보다는 도구나 프로세스에 더 가치를 둔다

👉 애자일 선언문

"우리는 소프트웨어를 개발하고 또 다른 사람의 개발을 도와주면서 소프트웨어 개발의 더 나은 방법들을 찾아가고 있다.

이작업을 통해 우리는 다음을 가치있게 여기게 되었다. :

  1. 공정과 도구보다 개인과 상호작용을
  2. 포괄적인 문서보다 작동하는 소프트웨어를
  3. 계약 협상보다 고객과의 협력을
  4. 계획을 따르기 보다 변화에 대응하기를

가치 있게 여긴다. 이 말은 왼쪽에 있는 것들도 가치가 있지만 우리는 오른쪽에 있는 것들에 더 높은 가치를 둔다는 것이다"


 

2-20 스크럼(Scrum)의 제품 백로그(product backlog)에 대한 설명으로 옳지 않은 것은? ③

  1. 제품 백로그에 있는 업무 목록은 프로젝트를 수행하는 동안 수정되고 정제된다
  2. 제품 백로그의 업무 중 높은 우선순위를 갖는 항목부터 개발한다.
  3. 제품 백로그에 있는 업무의 우선순위를 결정한 후에는 변경하지 않는다.
  4. 제품 책임자(product owner)가 제품 백로그를 관리한다.

2-21 프로세스 모델이란 무엇이며 프로세스 인스턴스, 프로세스 명세, 프로세스 모델 사이의 관계를 설명하라.

프로세스 모델 : 프로젝트 작업 공정을 구성하는 일반적인 접근 방법, 작업과 순서를 정하기 위한 전체적인 틀을 제공하는 것 작업 단계를 엄격하게 규정하는 것은 아니다.

프로세스 인스턴스 프로세스 명세 프로세스 모델 사이의 관계 :

수행해야 하는 작업과 수행순서를 정의한 명세를 따라

프로세스를 기술한 모델과 일치하는 지 봄

 

 

2-22 소프트웨어 프로세스를 정의하기 위한 요소는 무엇이며 바람직한 프로세스가 되려면 어떤 특성이 있어야 하나?

프로세스(혹은 프로세스 명세)는 프로세스 모델의 인스턴스(instance)로 이해 가능

소프트웨어 개발에 대한 기술적 관리적 이슈를 다루는 작업을 소프트웨어 프로세스라 부른다. 컴포넌트 프로세스(부프로세스)로 구성된다. 일반적인 프로세스 모델대로 잘 따라 진행되고 있으면 바람직한 프로세스라고 한다.

 

2-23 프로토 타이핑 모델은 폭포수 모텔의 어떤 단점을 보완하기 위한 것인가? 프로토 타입의 두가지 유형은 무엇인가?

 

프로토 타이핑 모델 : 요구 사항에 대한 피드백을 받기 위해 시스템을 실험적으로 만들어 사용자에게 보여주고 평가하게 하는 방법, 사용자와 소통하여 요구를 정확히 파악하고 빠지거나 잘못된 이해를 방지할 수 있다.

두가지 유형 : 쓰고버리는 일회용 / 계속 발전시켜 나가는 진화형

 

2-24 진화적 모델이란 무엇이며 중요한 장점은 무엇인가? 어떤 유형의 프로젝트에 진화적 모델이 적합한가?

 

진화적 모델 : 점증적인 방법과 반복적인 방법으로 계속 발전해 나가는 것이다. 요구 명세서에 나타낸 시트템을 기능별로 여러 개의 서브 시스템으로 나누고 일부 기능만을 포함한 서브 시스템을 릴리스 하고 다음에 새로운 기능을 추가해 나가는 형태 새로운 릴리스가 발표됨에 따라 시스템의 기능이 완성되어 간다.

장점 : 초기에 사용 교육이 가능, 사용자 교육 시 개발자들은 부족한 점들 발견 하여 다음 릴리스에 향상 가능 사용자의 요구 빠르게 반영 가능 이전에 없었던 기능을 가진 소프트웨어에 대한 시장을 빨리 형성시킬 수 있다.

어떤 유형의 프로젝트에 적합? 진화적 프로토 타입

 

2-25. 에자일 프로세스의 네 가지 선언은 무엇인가? 스크럼의 프로세스는 무엇인가?

  1. 공정과 도구보다 개인과 상호작용을
  2. 포괄적인 문서보다 작동하는 소프트웨어를
  3. 계약 협상보다 고객과의 협력을
  4. 계획을 따르기 보다 변화에 대응하기를

스크럼의 프로세스 : 제품의 백로그를 정한다 → po가 정한 우선순위에서 작업범위 팀과 조율 → 매이리 일일 스크럼 → 제품 개발 → 스프린트 리뷰 미칭 → 다음 프르린트 제작

 

2-26 어떤 대학에서 학생, 교직원이 모두 사용하는 학사 업무 시스템을 개발하기로 하였다. 점증적 모델을 이용하여 프로세스를 설계하라. 프로젝트의 중요한 목적이 높은 품질, 그 중에서 사용자의 요구만족이다. 프로세스에서 어떤 품질 관리 작업을 하여야 하는가?

 

소프트웨어의 기능들을 점증적으로 완성해 가는 모델입니다. 폭포수 모델과는 달리 이 모델에서는 처음부터 모든 기능들을 정의하지 않습니다. 중요한 기능들이 우선적으로 선별되고 개발 됩니다. 이후 추가할 기능들이 선택되고 개발되는 일들이 반복 됩니다. 점증 모델을 구성하는 프로세스들을 그림으로 표현하면 다음과 같습니다.

1차로 구현된 소프트웨어는 출시되기 전에 고객들에게 보여줄 수 있습니다. 그들의 사용 경험을 바탕으로 2차 이후에는 기존에 계획했던 것보다 더 좋은 기능들을 구현할 수 있습니다. 이것이 폭포수 모델에는 존재하지 않는 점증 모델의 장점입니다.

점증 모델은 유연합니다. 그러나 이 모델은 기능 추가에 초점을 맞추고 있습니다. 시간이 지나면서 사용자들이 더 많은 기능들을 요구하는 것은 맞습니다. 그 뿐만 아니라 오늘날의 소프트웨어는 언제나 변할 수 있는 사용자들의 기대를 만족할 수 있어야 합니다. 이것은 이미 구현된 기능도 언제든 바뀔 수 있어야 함을 뜻합니다. 그러나 점증 모델은 기능의 변경에 대한 과정은 정의하지 않습니다.

 

 

2-27 새로운 프로그래밍 언어를 위한 컴파일러를 개발하려고 한다. 어떤 개발 모형을 채택할 것인가? 채택한 이유를 설명하라. c#과 같은 언어의 컴파일러라면 어떤 모형으로 개발하겠는가?

 

에자일… 중간중간에 리뷰가 가능해서

 

2-28 프로젝트 관리 프로세스 모니터링은 개발 프로세스에 어떤 영향을 주는가?

 

비용, 품질, 기타 목표를 맞추기 위한 계획, 제어 작업을 거쳐 품질 보증 작업들을 윤택하게 함

 

2-29 형상관리 프로세스란 무엇이며 개발 프로세스에 미치는 영향은 무엇인가?

 

개발 중에 발생하는 변경을 체계적으로 컨트롤 하는 것이다. 개발 작업과는 독립적인 작업이다. 프로세스의 결과물만 관리하고 결과물을 생성하는 작업에는 간접적으로 영향을 준다. 어떤 자원 하나라도 빠지지 않고 문서의 정확한 버전을 원시코드와 함께 제공하려는 활동이다.

개발 프로세스에 구현시 도움을 준다.

 

 

2-30. 구조적 방법론. 정보공학 방법론, 객체지향 방법론 각각은 무엇이며 장단점은 무엇인가?

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

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