ICT 융합시대의 컴퓨터과학 연습문제 5장
프로그래밍 언어와 소프트웨어 개발
객관식
1. 소스 프로그램을 미리 번역해 두는 것이 아니라 실행할 때마다 소스 프로그램을 한 문장씩 기계어로 해석하여 바로 실행하는 방법과 가장 관련성이 적은 것은?
(b) 컴파일러
2. 다음 중 절차적 언어가 아닌 것은?
(e) Java
3. 다음 중 객체지향적 언어가 아닌 것은?
(d) ALGOL
4. 다음 중 모든 프로그래밍 언어가 가지는 기본 구성요소에 해당하지 않는 것은?
(c) 메소드
5. 호출하는 프로시저(Procedure)에 메모리 주소를 전달하는 방식은?
(a) 참조에 의한 호출
6. 소스 프로그램의 컴파일 과정으로 올바른 것은?
(a) 렉시컬 분석 → 파싱 → 코드 생성 → 목적 프로그램
7. 1960년대 초반 데이터 처리를 주목적으로 개발된 언어로 회계처리나 상거래 같은 비즈니스 응용에서 많이 이용되는 프로그래밍 언어는?
(b) COBOL
8. 객체지향적 언어와 개념적으로 가장 관련성이 적은 것은?
(b) 모듈화
9. Python 언어의 특징이 아닌 것은?
(d) 프로그램의 모듈화
10. 소프트웨어 라이프사이클에서 요구분석, 프로그램 설계, 프로그램의 구현, 테스팅 및 유지보수 과정을 거치는 소프트웨어 개발 방법론은?
(b) 폭포수 모델
11. 소프트웨어의 모듈화와 가장 관련성이 적은 것은?
(e) 추상화
12. 소프트웨어 개발 과정에서 블랙박스 테스팅에서 외부 사용자들로 하여금 소프트웨어를 검증하는 방법을 무엇이라 하는가?
(b) 베타 테스팅
괄호 채우기
1. ( 고수준 언어 )는 작성하기 쉬울 뿐만 아니라 특정한 CPU로부터 독립적(Machine independent)이기 때문에 어떤 응용을 ( 고수준 언어 )로 작성하면 모든 CPU 상에서 사용할 수 있는 장점이 있다.
2. ( 컴파일러(Compiler) )는 고수준 프로그램 언어로 작성된 소스 프로그램(Source Program)을 기계어로 번역하여 그 결과를 오브젝트 코드(Object Code)라 불리는 실행 가능한 프로그램으로 저장해 둔다.
3. ( 인터프리터(Interpreter) )는 미리 번역을 해두는 것이 아니라 실행할 때마다 소스 프로그램을 한 문장씩 기계어로 해석하여 바로 실행을 하는 방식이다.
4. ( 절차적 언어 )는 명령형 언어(Imperative Language)라고도 불리어지는데 프로그램이 기본적으로 알고리즘을 표현하기 위한 명령어들의 집합으로 구성된다.
5. ( 객체지향 언어 )는 Simula, Smalltalk, C++, C#, Java 둥에서 사용하는 패러다임으로 객체(Object)라 불리는 엔티티에 데이터와 메소드가 내포되어 있다. 메소드는 데이터를
처리하기 위한 절차이다.
6. 크기가 큰 프로그램을 이해할 수 있는 적당한 크기의 여러 개의 프로그램으로 나누어 관리하는 기법을 ( 모듈화 프로그래밍(Modular Programing) )이라 부른다. 이 때 중심 되는 하나의 프로그램을 주프로그램(Maim program)이라 부르고 나머지 프로그램들을 서브프로그랩(subprogram)이라 부른다.
7. 고수준 언어로 작성된 프로그램을 소스 프로그램(Source program)이라 한다. 소스 프로그램은 렉시컬 분석 과정을 거쳐 ( 토큰(Token) )을 생성한다.
8. 절차적 프로그래밍 언어는 컴퓨터가 수행할 작업 순서대로 프로그램을 작성하지만 객체지향(Object Oriented) 언어는 인간이 이해하기 쉬운 사물이나 개념을 객체(Object)로 표현하고 이들 객체 위주로 프로그램을 작성하는 것이다. 객체지향 언어에서는 객체(데이터)의 형식을 의미하는 ( 클래스(Class) )와 그 객체의 처리방법을 한 묶음으로 표현한다. 객체 또는 클래스는 속성(Attribute 또는 Property)과 ( 메소드(Method) )를 가지고 있다.
9. 객체지향 언어는 ( 추상화(Abstraction) ), 캡슐화(Encapsulation), 상속(inheritance) 및 다형성(Polymorphism)의 특성을 가지고 있다.
10. 소프트웨어 라이프사이클을 구체적으로 살펴보면 요구 분석, 프로그램 설계, 프로그램 구현, 테스팅 및 유지보수의 과정으로 나눌 수 있다. 이러한 단계가 마치 폭포수와 같아 보이므로 이것 을 ( 폭포수모델(Waterfall Model) )이라 부른다.
11. ( 블랙박스 테스팅 ) 기법은 소프트웨어를 하나의 블랙박스로 생각한다. 즉 소프트웨어의 내부를 이해하지 못해도 가능한 모든 데이터 세트를 사용하여 소프트웨어의 작동을 검증한다. 이를 위하여 테스트에 사용할 데이터를 경계값 분석(Boundary Value Analysis)을 적용하기도 한다.
12. ( 쉐어웨어(Shareware) )는 판매를 목적으로 개발되었지만 사용자들이 일단 사용해본 후 마음에 들면 구매하는 소프트웨어이다. 대개 일정기간 동안 무료로 사용해보고 계속 사용할 마음이 있으면 정식 사용자로 등록하여 비용을 지불하는 형태로 국내에서는 평가판이라 부르기도 한다.