2장 연습문제

자료구조

1. 소프트웨어 생명주기와 각 단계를 시스템 예를 들어 설명하시오.(예 제외)

요구분석 >> 시스템 명세 >> 설계 >> 구현 >> 테스트 >> 유지보수

2. 데이터베이스 설계단계의 순서로 알맞은 것은? (2005년 기출문제)

① 물리적 설계	② 구현	③ 개념적 설계

④ 요구 조건 분석	⑤ 논리적 설계

가. ③-⑤-④-①-②	나. ④-①-③-⑤-②

다. ④-③-⑤-①-②	라. ③-⑤-①-④-②

3. 소프트웨어 개발 방법론에서 구현(Implementation)에 대한 설명으로 가장 적절한 것은? (2004년 기출문제)

가. 요구사항 분석 과정 중 모아진 요구사항을 옮기는 것

나. 시스템이 무슨 기능을 수행하는지에 대한 시스템의 목표기술

다. 프로그래밍 또는 코딩이라고 불리며 설계 명세서가 컴퓨터가 알 수 있는 모습으로 변환되는 과정

라. 시스템이나 소프트웨어 요구 사항을 정의하는 과정

▶▶ 구현단계(코딩단계) - 설계 단계에서 논리적으로 결정한 문제 해결 방법을 C, C++, JAVA 등의 프로그래밍 언어를 사용하여 실제로 프로그램을 작성한 단계

4. 소프트웨어 개발을 위한 프로그래밍 언어의 선정기준으로 거리가 먼 것은? (2005년 기출문제)

가. 개발 담당자의 경험과 지식

나. 대상 업무의 성격

다. 과거의 개발 실적

라. 4세대 언어 여부

5. 소프트웨어 개발의 생산성에 영향을 미치는 요소가 아닌 것은? (2004년 기출문제)

가. 프로그래머의 능력

나. 팀 의사 전달

다. 제품의 복잡도

라. 소프트웨어 사용자의 능력

6. 소프트웨어의 재사용으로 얻어지는 이익이 아닌 것은? (2004년 기출문제)

가. 표준화의 원칙을 무시할 수 있다.

나. 프로젝트의 개발 위험을 줄여줄 수 있다.

다. 프로젝트의 개발기간과 비용을 줄일 수 있다.

라. 개발자의 생산성을 향상시킬 수 있다.

7. 소프트웨어의 재사용과 관련된 내용 중 가장 적절한 설명은? (2004년 기출문제)

가. 시스템 명세, 설계, 코드 그리고 다른 팀에 의해 작성된 문서를 공유함으로 소프트웨어 개발을 복잡하게 만든다.

나. 소프트웨어를 재사용함으로써 유지 보수비용이 높아진다.

다. 모든 소프트웨어를 개발할 때는 반드시 소프트웨어를 재사용하여야만 한다.

라. 소프트웨어의 개발 생산성과 품질을 높이려는 주요방법이다.

8. 상향식 통합테스트(Bottom-Up Integration Test)의 과정이 옳게 나열된 것은? (2004년 기출문제)

① 드라이버(Driver)라는 제어프로그램의 작성

② 낮은 수준의 모듈들을 클러스터(Cluster)로 결합

③ 클러스터의 검사

④ 드라이버를 제거하고 클러스터를 상위로 결합

가. ① → ② → ③ → ④

나. ② → ① → ③ → ④

다. ② → ③ → ① → ④

라. ① → ② → ④ → ③

▶▶ 상향식 테스트 : 최하위 단계의 단위 프로그램을 테스트하고 그 상위 단계의 구성요소를 테스트한 후에 다시 그 상위 단계의 구성요소를 테스트하는 식으로 최상위 단계까지 반복 시행하여 테스트를 완료하는 방식이다.

9. 소프트웨어 품질 측정의 항목으로 거리가 먼 것은? (2004년 기출문제)

가. 정확성	나. 무결성

다. 간결성	라. 사용성

10. 소프트웨어 라이프사이클 단계 중 가장 오랜 시간이 걸리며 대부분의 비용을 차지하는 단계는? (2004년 기출문제)

가. 타당성 검토단계

나. 운용 및 유지보수 단계

다. 기본설계 단계

라. 실행단계

11. 좋은 소프트웨어의 조건이라고 할 수 없는 항목은? (2004년 기출문제)

가. 남이 알아보기 쉬워야 한다.

나. 경제적이어야 한다.

다. 문서화가 잘 되어 있어야 한다.

라. 프로그램이 독창적이어야 한다.

12. 시스템 테스팅 단계의 순서가 적절하게 이루어진 것은? (2004년 기출문제)

가. 단위 테스트 - 통합 테스트 - 시스템 테스트 - 수용 테스트

나. 수용 테스트 - 단위 테스트 - 통합 테스트 - 시스템 테스트

다. 단위 테스트 - 통합 테스트 - 수용 테스트 - 시스템 테스트

라. 수용 테스트 - 시스템 테스트 - 단위 테스트 - 통합 테스트

13. 검증시험(Validation Test)을 하는데 있어 Beta Test에 대한 설명으로 옳은 것은? (2005년 기출문제)

가. 사용부서에서 개발담당자가 시험한다.

나. 개발부서와 사용부서가 공동으로 시험한다.

다. 개발부서에서 개발자가 시험을 한다.

라. 실업무를 가지고 사용자가 직접 시험한다.

14. 유지보수의 활동 종류로 볼 수 없는 것은? (2005년 기출문제)

가. 정정(Corrective) 보수

나. 품질(Quality) 보수

다. 적응(Adaptive) 보수

라. 예방(Preventive) 보수

15. 알고리즘의 요건을 설명하시오.

① 외부에서 0개 이상의 입력을 받아들여, 하나 이상의 출력을 생성한다. - 입·출력

② 각 단계가 단순하고 모호하지 않아야 한다. - 정확성, 명확성

③ 한정된 수의 작업 후에는 반드시 끝나야 한다. - 유한성

④ 모든 명령이 수행 가능해야 한다. - 실행성

⑤ 효율적이어야 한다. => 실용적이어야 한다. - 효율성

16. 다음의 알고리즘을 순서도를 사용하여 표현하시오.

for (i←1 ; i<=n ; i←i+1)  do

for (j←1 ; j<=n ; j←j+1)  do

A ← A + B ;

17. 16번 알고리즘의 시간복잡도를 Big-Oh 표기법으로 표현하시오.

(n+1)(n+1+n)

=(n+1)(2n+1)

=2n² + 3n + 1

O(n²)

18. 소프트웨어 유지보수 작업의 목적으로 부적절한 것은? (2006년 3월)

가. 하자보수	나. 환경적응

다. 예방조치	라. 설계수정

19. 소프트웨어 유지보수에 관련된 설명으로 옳지 않은 것은? (2006년 3월)

가. 유지보수는 소프트웨어가 인수, 설치 된 후 발생하는 모든 공학적 작업을 말한다.

나. 유지보수는 원인에 따라 수리보수, 적응보수, 완전화보수, 예방보수 등이 있다.

다. 소프트웨어에 가해지는 변경을 제어 관리하는 것을 형상 관리하고 있다.

라. 소프트웨어 비용 중 유지보수 비용은 개발 비용 보다 적다.