Download presentation
Presentation is loading. Please wait.
1
소프트웨어 공학 PARSONS/OJA 컴퓨터 프로그래밍 1
2
소프트웨어 공학 배울 주제: 미국방성 표준을 사용한 “규모가 작은” 프로그램과 “규모가 큰” 프로그램의 차이
15.1절 미리 보기 배울 주제: 미국방성 표준을 사용한 “규모가 작은” 프로그램과 “규모가 큰” 프로그램의 차이 문제 기술에 있어서 가정과 알려진 정보의 차이점 알고리즘, 의사코드, 프로그램 코드 사이의 관계 알고리즘을 표현하는데 사용되는 네가지 방법 Page 15-1 4
3
소프트웨어 공학 컴퓨터 프로그래밍 특정 작업을 수행하기 위해서 컴퓨터 명령들을 작성하는 과정 Page 15-1 3
4
소프트웨어 공학 소프트웨어 공학 소프트웨어의 개발, 수행, 유지 보수에 대한 체계적인 접근 방식 Page 15-2 3
5
소프트웨어 공학 소프트웨어 공학자 시스템 분석가 정보시스템의 소프트웨어 구성요소에 초점을 맞춤 전체 정보시스템을 계획
소프트웨어 설계, 프로그래밍, 테스팅 전체 정보시스템을 계획 하드웨어, 소프트웨어, 프로시저, 인원관리, 데이터 소프트웨어 공학자 시스템 분석가 Page 15-2 3
6
소프트웨어 공학 컴퓨터 프로그래밍을 공부하는 목적은? 일생동안 많은 컴퓨터 프로그램을 사용할 것이다.
SECTIONPREVIEW 일생동안 많은 컴퓨터 프로그램을 사용할 것이다. 소프트웨어를 개발하는데 참여하는 기회를 갖게 될 수 있다. 컴퓨터 프로그래밍을 공부하는 목적은? Page 15-2 3
7
미국방성 표준에 의하면 규모가 작은 프로그램은 10만 라인보다 작은 프로그램
컴퓨터 프로그램 컴퓨터 프로그램을 작성하는 것이 어려운가? 규모가 작은 프로그램은 10만 라인보다 작은 프로그램 중간 규모의 프로그램 10만에서 100라인 사이의 프로그램 규모가 큰 프로그램 100만 라인 이상의 프로그램 미국방성 표준에 의하면 Page 15-2
8
컴퓨터는 사람들이 하는 것처럼 모호성을 처리하지 못한다. 컴퓨터 프로그래밍은 알고리즘의 기본인 문제 기술에서부터 시작한다.
컴퓨터 프로그램 컴퓨터 프로그램을 작성하는 것이 어려운가? 컴퓨터는 사람들이 하는 것처럼 모호성을 처리하지 못한다. 컴퓨터 프로그래밍은 알고리즘의 기본인 문제 기술에서부터 시작한다. 알고리즘은 프로그램 명령들의 기본이다. Page 15-2
9
컴퓨터 프로그램 컴퓨터 프로그램을 작성하는 것이 어려운가? 문제 기술 알고리즘 프로그램 명령 Page 15-2
10
의문으로부터 시작해서 해결할 수 있는 문제들 어느 피자 가게가 가장 조건이 좋은가? 문제 기술
피자 프로그램에 적합한 문제 기술은 무엇인가? 의문으로부터 시작해서 해결할 수 있는 문제들 어느 피자 가게가 가장 조건이 좋은가? Page 15-3 Figure 15-1 7
11
어떤 결과나 목적에 도달하기 위하여 필요한 요소들을 정의한다.
문제 기술 피자 프로그램에 적합한 문제 기술은 무엇인가? 문제 기술 어떤 결과나 목적에 도달하기 위하여 필요한 요소들을 정의한다. 문제의 범위를 정의하는 가정들 주어진 정보를 명확히 기술 언제 문제가 해결되는지 Page 15-3 7
12
가정 : 프로그램 설계를 진행하기 위하여 사실이라고 받아들여지는 것들
문제 기술 피자 프로그램에 적합한 문제 기술은 무엇인가? 문제 기술의 구성 요소 가정 : 프로그램 설계를 진행하기 위하여 사실이라고 받아들여지는 것들 주어진 정보 : 문제를 해결하기 위하여 컴퓨터에 제공되는 정보들 결과 : 언제 프로그램이 해결되는지를 어떻게 결정할 것인가? Page 15-3 7
13
컴퓨터로 각 피자의 인치당 가격을 계산한 후, 평방 인치당 가격이 더 낮은지를 알려주는 메시지를 출력한다.
문제 기술 피자 프로그램에 적합한 문제 기술은 무엇인가? 완벽한 문제 기술 비교한 두개의 피자가 있다고 가정할 때, 두개의 피자는 같은 토핑을 가지고 있고, 피자의 모양이 둥글거나 직사각형일 수 있다.; 주어진 가격, 모양, 두개 피자의 크기; 컴퓨터로 각 피자의 인치당 가격을 계산한 후, 평방 인치당 가격이 더 낮은지를 알려주는 메시지를 출력한다. Page 15-3 7
14
이해하기 쉽도록 문제 기술을 형식화 가정 주어진 정보 계산 출력 문제 기술 피자 프로그램에 적합한 문제 기술은 무엇인가?
Page 15-4
15
비교할 두개의 피자 Pizza 1 과 Pizza 2가 있다고 가정 같은 토핑을 갖고 있다.
문제 기술 피자 프로그램에 적합한 문제 기술은 무엇인가? 형식화된 문제 기술: 가정 비교할 두개의 피자 Pizza 1 과 Pizza 2가 있다고 가정 같은 토핑을 갖고 있다. 피자의 모양이 둥글거나 정사각형이다. 두 피자 중 어느 것도 직사각형이지 않다. 인치당 가격이 낮은 피자가 “조건이 좋은 피자”이다. Page 15-3 7
16
형식화된 문제 기술: 주어진 정보 두 피자의 가격은 달러이다. 피자의 모양 (원형 또는 정사각형)
피자 프로그램에 적합한 문제 기술은 무엇인가? 형식화된 문제 기술: 주어진 정보 두 피자의 가격은 달러이다. 피자의 모양 (원형 또는 정사각형) 피자의 사이즈는 인치 단위이다. 계산 각 피자의 평방 인치당 가격 계산 Page 15-3 7
17
Pizza1이 조건이 더 좋다: Pizza 1의 평방 인치당 더 낮은 가격을 가지면
문제 기술 피자 프로그램에 적합한 문제 기술은 무엇인가? 형식화된 문제 기술: 출력 Pizza1이 조건이 더 좋다: Pizza 1의 평방 인치당 더 낮은 가격을 가지면 Pizza2의 조건이 더 좋다 : Pizza 2의 평방 인치당 더 낮은 가격을 가지면 두 피자의 조건이 같다 : 두 피자의 인치당 가격이 같으면 Page 15-3 7
18
알고리즘:문제 기술에 명시된 주어진 정보로부터 출발해서 해답에 도달하기 위해 정보들을 다루는 방법을 설명하는 단계들의 집합
피자 문제에 대해서 알고리즘을 어떻게 조직할 것인가? 알고리즘:문제 기술에 명시된 주어진 정보로부터 출발해서 해답에 도달하기 위해 정보들을 다루는 방법을 설명하는 단계들의 집합 추상화된 생각이다. 기록될 수 있다. 세부사항은 사용되어지는 프로그래밍 언어에 좌우된다. Page 15-5
19
만약 정확하게 형식화된 알고리즘의 제 단계를 따른다면, 알고리즘에 설계된 작업이 정확히 수행되는 것을 보장 받는다.
피자 문제에 대해서 알고리즘을 어떻게 조직할 것인가? 중요 사항 만약 정확하게 형식화된 알고리즘의 제 단계를 따른다면, 알고리즘에 설계된 작업이 정확히 수행되는 것을 보장 받는다. Page 15-5
20
BASIC 프로그램을 위한 알고리즘의 여러 기능들
피자 문제에 대해서 알고리즘을 어떻게 조직할 것인가? BASIC 프로그램을 위한 알고리즘의 여러 기능들 Page 15-5 Figure 15-2
21
평방 인치당 가격을 계산하는 알고리즘 알고리즘 피자 문제에 대해서 알고리즘을 어떻게 조직할 것인가?
정사각형 피자의 면적을 구하기 위해서는 size1*size1의 식을 사용한다. 둥근 피자의 면적을 구하기 위해서는 2 을 사용한다. 피자의 면적을 알고난 후, 평방 인치당 가격을 계산 Page 15-6 Figure 15-3
22
알고리즘 표현 방법: 구조화된 영어 의사코드 흐름도 객체 정의 알고리즘 표현
알고리즘을 표현하기 위해 가장 적합한 방법은 무엇인가? 알고리즘 표현 방법: 구조화된 영어 의사코드 흐름도 객체 정의 Page 15-8
23
알고리즘 표현 피자 문제를 위한 구조화된 영어 표현 알고리즘을 표현하기 위해 가장 적합한 방법은 무엇인가? 초기 정보
첫번재 피자의 평방 인치당 가격 계산 2번째 피자에 대한 초기 정보 두번재 피자의 평방 인치당 가격 계산 결과 Page 15-7 Figure 15-4
24
구조화된 영어 : 처리 작업을 표현할 수 있는 제한된 문장 구조를 가지는 영어의 일부분 의사코드 : 알고리즘의 개념적 표현
알고리즘 표현 알고리즘을 표현하기 위해 가장 적합한 방법은 무엇인가? 구조화된 영어 : 처리 작업을 표현할 수 있는 제한된 문장 구조를 가지는 영어의 일부분 의사코드 : 알고리즘의 개념적 표현 영어와 가장 친숙한 프로그래밍 언어와의 혼합 구조화된 영어보다 덜 정형화됨 Page 15-8
25
알고리즘 표현 피자 프로그램을 위한 의사코드 알고리즘을 표현하기 위해 가장 적합한 방법은 무엇인가? Page 15-8
Figure 15-5
26
흐름도 : 어떤 임무를 수행할 때 하나의 명령으로부터 다른 명령으로 진행하는 단계를 도식화한 표현
알고리즘 표현 알고리즘을 표현하기 위해 가장 적합한 방법은 무엇인가? 흐름도 : 어떤 임무를 수행할 때 하나의 명령으로부터 다른 명령으로 진행하는 단계를 도식화한 표현 Page 15-8
27
Key to flowchart symbols
알고리즘 표현 알고리즘을 표현하기 위해 가장 적합한 방법은 무엇인가? 시작 또는 종료 Key to flowchart symbols 입력 또는 출력 Page 15-9 Figure 15-6
28
Key to flowchart symbols
알고리즘 표현 알고리즘을 표현하기 위해 가장 적합한 방법은 무엇인가? 계산 Key to flowchart symbols 연결자 흐름선 Page 15-9 Figure 15-6
29
피자 프로그램을 위한 흐름도 알고리즘 표현 알고리즘을 표현하기 위해 가장 적합한 방법은 무엇인가? Page 15-9
Animation Page 15-9 Figure 15-6
30
객체 정의 : 각각의 객체를 다루기 위한 알고리즘을 표현하기 위해서, 객체지향 프로그래밍에서 사용되는 방법
알고리즘 표현 알고리즘을 표현하기 위해 가장 적합한 방법은 무엇인가? 객체 정의 : 각각의 객체를 다루기 위한 알고리즘을 표현하기 위해서, 객체지향 프로그래밍에서 사용되는 방법 Page 15-10
31
피자 프로그램을 위한 객체 정의 알고리즘 표현 알고리즘을 표현하기 위해 가장 적합한 방법은 무엇인가? Page 15-10
Figure 15-7
32
15 소프트웨어 공학 퀴즈 Page 15-10 9
33
15 퀴즈 1. 여러분이 만약______의 직업을 가지고 있다면, 정보 시스템의 소프트웨어 구성요소에 관심을 가질 것이다. 9
34
15 여러분이 만약__소프트웨어 공학자__의 직업을 가지고 있다면, 정보 시스템의 소프트웨어 구성요소에 관심을 가질 것이다.
퀴즈 1. 여러분이 만약__소프트웨어 공학자__의 직업을 가지고 있다면, 정보 시스템의 소프트웨어 구성요소에 관심을 가질 것이다. 9
35
15 퀴즈 2. 미국의 국방부에서는 “규모가 큰” 프로그램을 10만라인 정도의 프로그램이라고 정의하였다. (예, 아니오)? 9
36
15 퀴즈 2. 미국의 국방부에서는 “규모가 큰” 프로그램을 10만라인 정도의 프로그램이라고 정의하였다. 아니오 9
37
15 퀴즈 3. 컴퓨터 프로그램을 작성하기 전, _________를(을) 작성하는 것은 특정 결과 또는 목적을 달성하기 위해 다뤄져야 하는 구성요소들을 정의하는 작업이다. 9
38
15 퀴즈 3. 컴퓨터 프로그램을 작성하기 전, __문제 기술__을 작성하는 것은 특정 결과 또는 목적을 달성하기 위해 다뤄져야 하는 구성요소들을 정의하는 작업이다. 9
39
15 퀴즈 4. ____________는(은) 임무를 수행하거나 문제를 해결하기 위한 단계들의 집합을 의미한다. 9
40
15 퀴즈 4. __알고리즘__은 임무를 수행하거나 문제를 해결하기 위한 단계들의 집합을 의미한다. 9
41
15 “영어와 개개인에 친숙한 프로그래밍 언어의 혼합”으로 알고리즘을 기술하는 방식은 ____________이다. 퀴즈 5.
9
42
15 퀴즈 5. “영어와 개개인에 친숙한 프로그래밍 언어의 혼합”으로 알고리즘을 기술하는 방식은 __흐름도 __이다. 9
43
소프트웨어 공학 15.1절 끝 10
44
컴퓨터 프로그램의 코딩 PARSONS/OJA 컴퓨터 프로그래밍 1
45
Coding Computer Programs
15.2절 미리 보기 간단한 BASIC 프로그램을 통한 제어구조의 정의 배울 주제 : Page 15-1 4
46
Coding Computer Programs
SECTIONPREVIEW 프로그램 명세 : 문제 기술을 하는 도큐먼트(document), 프로그램을 위한 청사진을 구성하는 알고리즘(algorithm). 코딩 : 컴퓨터 언어를 이용하여 알고리즘을 표현하는 과정 컴퓨터 프로그래머 : 컴퓨터 프로그램을 코딩하는 사람 Page 15-11 3
47
Coding Computer Programs
주의 사항 BASIC 언어를 이용하여 피자(pizza)알고리즘의 코딩은 일련의 명령어들을 타이핑하는 것이 필요함 Page 15-11 3
48
컴퓨터 프로그램의 코딩 피자 알고리즘에 대한 BASIC 코드는 단계들의 리스트임 데이터는 변수에 저장됨
명령어는 bold체로 보여짐 REM 기술은 각각의 section을 설명함 Page 15-11 Figure 15-8 3
49
순차 실행 : 프로그래머에 의해 기술된 순서대로 각각의 명령어를 수행하는 것으로 일반적인 프로그램 실행 방식
프로그램 순서 명령을 실행하는 순서를 컴퓨터에게 어떻게 전달할 수 있을까? 순차 실행 : 프로그래머에 의해 기술된 순서대로 각각의 명령어를 수행하는 것으로 일반적인 프로그램 실행 방식 LAB Page 15-12 Visual Programming
50
순 차 프 로 그 램 수 행 프로그램 순서 명령을 실행하는 순서를 컴퓨터에게 어떻게 전달할 수 있을까? Page 15-12
순 차 프 로 그 램 수 행 Page 15-12 Figure 15-9
51
순차제어(sequence controls) 선택제어(selection controls)
프로그램 순서 명령을 실행하는 순서를 컴퓨터에게 어떻게 전달할 수 있을까? 순차제어(sequence controls) 선택제어(selection controls) 반복제어(repetition controls) 제어 구조 : 프로그램이 실행되는 순서를 지정하고, 다음을 포함하는 명령어 Page 15-12
52
순차 제어 : 프로그램 내에서 컴퓨터가 프로그램의 다른 곳에 있는 명령어를 수행하도록 함
컵퓨터가 다른 순서를 따르도록 하는 방법이 있을까? 순차 제어 : 프로그램 내에서 컴퓨터가 프로그램의 다른 곳에 있는 명령어를 수행하도록 함 Page 15-12
53
1. GOTO의 실행 2. 3. 4. 순차 제어 GOTO의 결과로서 컴퓨터는 실행순서르 widget로 점프
컴퓨터가 다른 순서를 따르도록 하는 방법이 있을까? 1. GOTO의 실행 GOTO의 결과로서 컴퓨터는 실행순서르 widget로 점프 2. 3. 4. Page 15-13 Figure 15-10
54
가장 간단한 제어임에도 불구하고 숙련된 프로그래머들은 GOTO를 거의 사용하지 않음 이유 : 프로그램을 이해하기 어렵고
순차 제어 컴퓨터가 다른 순서를 따르도록 하는 방법이 있을까? 중요 사항 가장 간단한 제어임에도 불구하고 숙련된 프로그래머들은 GOTO를 거의 사용하지 않음 이유 : 프로그램을 이해하기 어렵고 유지보수하기 어렵게 만든다. Page 15-14
55
프로그램의 일부인 코드의 구역이지만, 메인의 순차적 실행 경로에는 포함되지 않음
순차 제어 컴퓨터가 다른 순서를 따르도록 하는 방법이 있을까? 다른 순차 제어: 서브루틴(subroutines) 프로시저(procedures) 모 듈(modules) 함 수(functions) 프로그램의 일부인 코드의 구역이지만, 메인의 순차적 실행 경로에는 포함되지 않음 Page 15-14
56
GOSUB 명령의 실행 순차 제어 컴퓨터가 다른 순서를 따르도록 하는 방법이 있을까?
계속 명령어 실행 2. GOSUB는 컴퓨터가 “checkinput”의 서브루틴으로 전이 되도록함 4. 컴퓨터는 GOSUB 다음의 명령을 수행 3. RETURN은 다시 메인 프로그램으로 돌아가게 함 Page 15-14 Figure 15-11
57
선택제어(분기) 컴퓨터에게 조건이 참인지 거짓인지에 따라 무엇을 해야 할지를 알려줌
선택 제어 컴퓨터가 프로그램을 실행함으로써 의사결정을 내릴 수 있을까? 선택제어(분기) 컴퓨터에게 조건이 참인지 거짓인지에 따라 무엇을 해야 할지를 알려줌 간단한 예제는 IF...THEN...ELSE 명령어 Page 15-15
58
IF-THEN-ELSE 명령의 실행 1. 2. 3. 4. 5. 선택 제어
컴퓨터가 프로그램을 실행함으로써 의사결정을 내릴 수 있을까? IF-THEN-ELSE 명령의 실행 1. 2. 3. 4. 5. Page 15-15 Figure 15-12
59
반복 제어(루프 또는반복) 특정한 조건을 만날 때까지 명령들을 한 번 이상 반복 수행
컴퓨터가 일련의 명령어들을 한 번 이상 실행할 수 있을까? 반복 제어(루프 또는반복) 특정한 조건을 만날 때까지 명령들을 한 번 이상 반복 수행 간단한 예제는 FOR...NEXT 명령어 Page 15-16
60
루프의 실행 1. 2. 3. 4. 5. 반복 제어 N E W 컴퓨터가 일련의 명령어들을 한 번 이상 실행할 수 있을까?
5. Computer Concepts 3rd Edition N E W PERSPECTIVES S E R I E S Page 15-16 Figure 15-13 Page 15-15 Figure 15-12
61
N FOR...NEXT 명령어의 실행 For N=1 TO 3 Print “There is no place like home.”
반복 제어 컴퓨터가 일련의 명령어들을 한 번 이상 실행할 수 있을까? FOR...NEXT 명령어의 실행 For N=1 TO 3 Print “There is no place like home.” NEXT N END N screen output Computer Concepts 3rd Edition N E W PERSPECTIVES S E R I E S Page 15-16 Figure 15-13 Page 15-17
62
There is no place like home.
반복 제어 컴퓨터가 일련의 명령어들을 한 번 이상 실행할 수 있을까? For N=1 TO 3 Print “There is no place like home.” NEXT N END N=1 There is no place like home. Computer Concepts 3rd Edition N E W PERSPECTIVES S E R I E S Page 15-16 Figure 15-13 Page 15-17
63
There is no place like home.
반복 제어 컴퓨터가 일련의 명령어들을 한 번 이상 실행할 수 있을까? For N=1 TO 3 Print “There is no place like home.” NEXT N END N=2 There is no place like home. Computer Concepts 3rd Edition N E W PERSPECTIVES S E R I E S Page 15-16 Figure 15-13 Page 15-17
64
There is no place like home.
반복 제어 컴퓨터가 일련의 명령어들을 한 번 이상 실행할 수 있을까? For N=1 TO 3 Print “There is no place like home.” NEXT N END N=3 There is no place like home. Computer Concepts 3rd Edition N E W PERSPECTIVES S E R I E S Page 15-16 Figure 15-13 Page 15-17
65
N=4 For N=1 TO 3 Print “There is no place like home.” NEXT N END 반복 제어
컴퓨터가 일련의 명령어들을 한 번 이상 실행할 수 있을까? For N=1 TO 3 Print “There is no place like home.” NEXT N END N=4 Computer Concepts 3rd Edition N E W PERSPECTIVES S E R I E S Page 15-16 Figure 15-13 Page 15-17
66
15 컴퓨터 프로그램의 코딩 퀴즈 Page 15-17 9
67
15 퀴즈 1. _________________ 은 알고리즘을 표현하기 위해 컴퓨터 언어를 사용하는 과정이다. 9
68
15 퀴즈 1. __프로그래밍, 코딩__는(은) 알고리즘을 표현하기 위해 컴퓨터 언어를 사용하는 과정이다. 9
69
15 퀴즈 2. ____________ 제어는 명령어들이 프로그램 실행을 그 프로그램 내의 다른 곳의 명령으로 전환에 의해 실행되는 순서를 변경한다. 9
70
15 퀴즈 2. __순차(sequence) __ 제어는 명령어들이 프로그램 실행을 그 프로그램 내의 다른 곳의 명령으로 전환에 의해 실행되는 순서를 변경한다. 9
71
15 ____________ 구조는 어떠한 조건이 참인지 거짓인지에 의해 컴퓨터가 무엇을 해야 하는지를 알려 준다. 퀴즈 3.
9
72
15 퀴즈 3. __의사결정, 선택제어(decision) __ 구조는 어떠한 조건이 참인지 거짓인지에 의해 컴퓨터가 무엇을 해야 하는지를 알려 준다. 9
73
15 퀴즈 4. _________________ 구조는 특정 조건을 만족할 때까지 명령어들을 한번 이상 반복 수행한다. 9
74
15 __반복(repetition) 제어__ 구조는 특정 조건을 만족할 때까지 명령어들을 한번 이상 반복 수행한다. 퀴즈 4.
9
75
15 퀴즈 5. 가장 간단한 제어임에도 불구하고, 프로그램의 이해와 유지보수를 어렵게 하기 때문에 GOTO는 숙련된 프로그래머들에 의해 거의 사용되지 않는다. (예, 아니오)? 9
76
15 퀴즈 5. 가장 간단한 제어임에도 불구하고, 프로그램의 이해와 유지보수를 어렵게 하기 때문에 GOTO는 숙련된 프로그래머들에 의해 거의 사용되지 않는다. 예 9
77
컴퓨터 프로그램의 코딩 15.2절 끝 10
78
디버깅과 문서화 PARSONS/OJA 컴퓨터 프로그래밍 1
79
디버깅과 문서화 배울 주제: 프로그램 문서화, 주석, 사용자 참조의 목적을 설명할 수 있다.
15.3절 미리 보기 프로그램 문서화, 주석, 사용자 참조의 목적을 설명할 수 있다. 문법 오류와 논리 오류의 차이점을 설명할 수 있다. 배울 주제: Page 15-1 4
80
디버깅과 문서화 프로그램의 디버깅: 코드의 각 부분이 정확히 동작하는지 테스트
SECTIONPREVIEW 프로그램의 디버깅: 코드의 각 부분이 정확히 동작하는지 테스트 프로그램의 문서화: 프로그램이 어떻게 동작하는지 코딩하는 동안 기록을 작성 Page 15-18 3
81
중요한 단계이다. 프로그램의 코딩작업 이후의 테스트 작업은 프로그램이 올바르게 작동한다는 것을 보증한다.
프로그램의 테스트 프로그램이 올바르게 작동하는지를 어떻게 아는가? 프로그램의 코딩작업 이후의 테스트 작업은 중요한 단계이다. 프로그램이 올바르게 작동한다는 것을 보증한다. 올바른 결과를 얻을 수 있다는 것을 검증한다. Page 15-18
82
디버깅, 코딩, 그리고 테스트는 실패할 수도 있다….
프로그램의 테스트 프로그램이 올바르게 작동하는지를 어떻게 아는가? 디버깅, 코딩, 그리고 테스트는 실패할 수도 있다…. Page 15-18 Figure 15-14 Video
83
반드시 테스트 할 것 각 문장은 적어도 한번 테스트 모든 의사결정 지점 테스트 한 개 이상의 값을 이용하여 테스트
프로그램의 테스트 프로그램이 올바르게 작동하는지를 어떻게 아는가? 반드시 테스트 할 것 각 문장은 적어도 한번 테스트 모든 의사결정 지점 테스트 한 개 이상의 값을 이용하여 테스트 Page 15-18
84
발생가능한 오류의 종류: 구문 오류 실행시간 오류 논리 오류 프로그램의 테스트 프로그램이 올바르게 작동하는지를 어떻게 아는가?
Page 15-18
85
구문 오류 : 명령어가 구문 규칙이나 문법에 맞지 않을 때 발생
프로그램의 테스트 프로그램이 올바르게 작동하는지를 어떻게 아는가? 구문 오류 : 명령어가 구문 규칙이나 문법에 맞지 않을 때 발생 Page 15-19
86
구문 오류는 매우 보편적이지만, 이를 발견하고 고치기는 쉽다.
프로그램의 테스트 프로그램이 올바르게 작동하는지를 어떻게 아는가? 주의 사항 구문 오류는 매우 보편적이지만, 이를 발견하고 고치기는 쉽다. Page 15-19
87
보편적인 구문오류는 다음을 포함... 명령어를 쓰지 않거나 철자를 틀리게 쓰거나
프로그램의 테스트 프로그램이 올바르게 작동하는지를 어떻게 아는가? 보편적인 구문오류는 다음을 포함... 명령어를 쓰지 않거나 철자를 틀리게 쓰거나 세미콜론(;)이 쓰여야 할 위치에 콜론(:)을 쓴다던가 하는 예처럼 구두점이 틀릴 때 발생한다. Page 15-19
88
실행시간 오류 : 프로그램을 실행할 때에야 비로소 알 수 있다.
프로그램의 테스트 프로그램이 올바르게 작동하는지를 어떻게 아는가? 실행시간 오류 : 프로그램을 실행할 때에야 비로소 알 수 있다. 올바른 구문을 사용했지만 의도되어진 결과가 나오지 않는 타이핑 오류 때문에 발생 예: a < rather than a > in a program Page 15-19
89
논리 오류 : 프로그램의 논리 또는 설계의 오류이다.
프로그램의 테스트 프로그램이 올바르게 작동하는지를 어떻게 아는가? 논리 오류 : 프로그램의 논리 또는 설계의 오류이다. 잘못된 문제 정의 또는 흐름도나 의사코드에 의해서 해결 방법이 올바르지 않거나 충분하지 않기 때문에 발생한다. 구문 오류보다 확인하는데 시간이 걸릴 뿐 아니라 더 어렵다. Page 15-19
90
프로그램의 문서화 : 프로그램 작동하는 방법과 사용하는 방법을 설명.
프로그램에 문서화가 왜 필요한가? 프로그램의 문서화 : 프로그램 작동하는 방법과 사용하는 방법을 설명. Page 15-19
91
문서를 작성하는 법 프로그램 외부에 문서를 작성 프로그램 문서화의 두 가지 유형
프로그램의 문서화 프로그램에 문서화가 왜 필요한가? 주석 프로그램 코드 안에 삽입 문서를 작성하는 법 프로그램 외부에 문서를 작성 프로그램 문서화의 두 가지 유형 Page 15-19
92
주석 컴퓨터 프로그램 상에서 라인 안에 설명을 삽입...
프로그램의 문서화 프로그램에 문서화가 왜 필요한가? 주석 컴퓨터 프로그램 상에서 라인 안에 설명을 삽입... 프로그램에서 불분명한 곳의 이해를 쉽게 한다 프로그램이 실행되어질 때 컴퓨터에 의해 무시된다 Page 15-19
93
프로그램 관련 문서 프로그램 외부에서 프로그래머나 프로그램을 사용하는 사용자에게 유용한 정보를 포함하며, 다음을 포함:
프로그램의 문서화 프로그램에 문서화가 왜 필요한가? 프로그램 설명서 : 프로그래머에게 유용한 문제 기술과 알고리즘을 포함 참조 설명서 : 사용자가 컴퓨터 프로그램 사용법을 배우는데 유용 프로그램 관련 문서 프로그램 외부에서 프로그래머나 프로그램을 사용하는 사용자에게 유용한 정보를 포함하며, 다음을 포함: Page 15-19
94
프로그램 설명서 참조 설명서 프로그램의 문서화 문제 기술 프로그램의 기능에 대한 기술 프로그램 코드의 출력
프로그램에 문서화가 왜 필요한가? 프로그램 설명서 참조 설명서 문제 기술 프로그램의 기능에 대한 기술 알고리즘은 다음과 같이 표현 구조화된 영어 의사코드 흐름도 프로그램 설치하는 방법에 대한 소개 프로그램을 시작하는 방법에 대한 소개 각 기능들을 사용하는 방법에 대한 기술 스크린과 메뉴의 표시 문제해결을 위한 조언 프로그램 코드의 출력 문제해결을 위한 조언 Page 15-19 Figure 15-15
95
기술적 문서 저작자 : 기술적인 개념과 절차를 설명하고 비 전문적인 사용자를 위해서 복잡한 개념을 간단하게 설명한다.
프로그램의 문서화 프로그램에 문서화가 왜 필요한가? 기술적 문서 저작자 : 기술적인 개념과 절차를 설명하고 비 전문적인 사용자를 위해서 복잡한 개념을 간단하게 설명한다. Page 15-21
96
프로그램의 문서화 프로그램에 문서화가 왜 필요한가? 주의 사항 여러 대학들이 기술 문서 제작을 위한 강좌를 개설하고 기술문서 저작 학위를 수요하기도 한다. 경험이 많은 기술 문서 저작자는 컴퓨터 회사에 계약, 파트타임, 풀타임으로 고용된다. Page 15-21
97
15 디버깅과 문서화 퀴즈 Page 15-21 9
98
15 프로그램이 올바른 결과를 출력하는지를 알기 위해서 알려진 데이터를 입력하는 것은 __________ 과정의 일부분이다.
퀴즈 1. 프로그램이 올바른 결과를 출력하는지를 알기 위해서 알려진 데이터를 입력하는 것은 __________ 과정의 일부분이다. 9
99
15 프로그램이 올바른 결과를 출력하는지를 알기 위해서 알려진 데이터를 입력하는 것은 __ 테스트__ 과정의 일부분이다. 퀴즈
1. 프로그램이 올바른 결과를 출력하는지를 알기 위해서 알려진 데이터를 입력하는 것은 __ 테스트__ 과정의 일부분이다. 9
100
15 퀴즈 2. 프로그래밍 언어의 규칙 또는 문법을 무시한다면, __________ 오류가 발생할 것이다. 9
101
15 퀴즈 2. 프로그래밍 언어의 규칙 또는 문법을 무시한다면, __문법__ 오류가 발생할 것이다. 9
102
15 퀴즈 3. ____________ 오류는 일반적으로 오류를 확인하기 어렵고 시간을 많이 소비한다. 9
103
15 퀴즈 3. __논리__ 오류는 일반적으로 오류를 확인하기 어렵고 시간을 많이 소비한다. 9
104
15 퀴즈 4. _________________ 는 프로그램 작동법과 사용법을 설명한다. 9
105
15 퀴즈 4. _문서화_는 프로그램 작동법과 사용법을 설명한다. 9
106
15 퀴즈 5. ____________ 설명서는 프로그래머를 위하여 사용되는 문서이고, __________ 설명서는 프로그램을 사용하는 사람들을 위하여 디자인 되었다. 9
107
15 퀴즈 5. __ 프로그램 __ 설명서는 프로그래머를 위하여 사용되는 문서이고, __________ 설명서는 프로그램을 사용하는 사람들을 위하여 디자인 되었다. 9
108
15 퀴즈 5. __ 프로그램 __ 설명서는 프로그래머를 위하여 사용되는 문서이고, __참조__ 설명서는 프로그램을 사용하는 사람들을 위하여 디자인 되었다. 9
109
디버깅과 문서화 15.3절 끝 10
110
프로그래밍 언어의 특징들 PARSONS/OJA 컴퓨터 프로그래밍 1
111
프로그래밍 언어의 특징들 15.4절 미리 보기 프로그래밍 언어를 구별하기 위한 주된 특징 배울 주제: Page 15-1 4
112
프로그래밍 언어의 특징들 프로그래밍 언어의 구별:
상업적, 과학적 같은 프로그램의 특정한 형태 를 위한 효율적인 명령어 집합을 제공 한다. 또 다른 것은 프로그래밍 효율성과 에러율의 감소를 위해 만들어졌다. 어떤 것은 교육도구로써 만들어졌다. Page 15-22 3
113
프로그래밍 언어의 특징들 프로그래밍 언어는 어떻게 작동하는지 설명하고, 그 언어에 적당한 컴퓨터 작업들의 유형에 대한 정보들을 제공하는 특징을 가진다. Page 15-22
114
절차적 언어... 문장의 연속으로 이루어진다. 컴퓨터가 특정 작업을 위해 어떤 방식으로 프로세스를 작동하는지를 알려 준다.
피자 프로그램은 절차적 언어를 사용해서 작성되었는가? 문장의 연속으로 이루어진다. 컴퓨터가 특정 작업을 위해 어떤 방식으로 프로세스를 작동하는지를 알려 준다. 단계적 알고리즘에 적합하다. 시작점과 끝점을 가진다. 시작에서 끝까지의 실행은 선형적이다. 절차적 언어... Page 15-22
115
절차적 피자 프로그램은 절차적 언어를 사용해서 작성되었는가? 절차적 언어의 실행 Page 15-22 Figure 15-16
116
프로그래머가 해결해야 할 문제의 조건을 정의하는 규칙과 문장을 명시.
선언적 모든 언어들은 프로그래머에게 해결 방법에 대한 완벽한 절차를 명시하도록 요구하는가? 선언적 언어 프로그래머가 해결해야 할 문제의 조건을 정의하는 규칙과 문장을 명시. 해결방법을 결정하고 규칙을 판단하기 위한 고유한 방법을 가진다. 수보다 개념과 생각을 다루는 프로그램에 유용. 해결방법을 명시하는 것보다 문제를 기술. Page 15-23
117
선언적 모든 언어들은 프로그래머에게 해결 방법에 대한 완벽한 절차를 명시하도록 요구하는가? 여성을 선언 남성을 선언
관계를 기술 여동생임을 결정할 조건 Page 15-23 Figure 15-17
118
주의 사항 BASIC 은 절차적 언어이고, Prolog 는 선언적 언어이다. 선언적
모든 언어들은 프로그래머에게 해결 방법에 대한 완벽한 절차를 명시하도록 요구하는가? 주의 사항 BASIC 은 절차적 언어이고, Prolog 는 선언적 언어이다. Page 15-23
119
스프레드쉬트, 워드 프로세서 같은 많은 응용프로그램을 포함하고 있다. 프로그래밍 언어들보다 사용하는데 더 쉽다.
스크립트 언어 HTML은 언어인가? 스크립트 언어 스크립트 형식으로 작업을 정의 상위 응용프로그램을 요구 독립된 응용프로그램에서는 실행 할 수 없다. 스프레드쉬트, 워드 프로세서 같은 많은 응용프로그램을 포함하고 있다. 프로그래밍 언어들보다 사용하는데 더 쉽다. 적은 기능과 제어 항목을 가진다. 비 프로그래머에게 적합하다. Page 15-23
120
HTML 태그는 어떤 방식으로 상위 응용 프로그램 같은 뭽 브라우저를 사용 해서 웹 페이지를 표시하기 위한 스크립트를 명시한다
절차적언어 HTML은 언어인가? 중요 사항 HTML 태그는 어떤 방식으로 상위 응용 프로그램 같은 뭽 브라우저를 사용 해서 웹 페이지를 표시하기 위한 스크립트를 명시한다 Page 15-23
121
매크로 워드 프로세서, 스프레드쉬트 같은 응용 프로그램에서의 자동화된 루틴 작업을 자동화하기 위해 스크립트 언어에서 사용.
절차적언어 HTML은 언어인가? 워드 프로세서, 스프레드쉬트 같은 응용 프로그램에서의 자동화된 루틴 작업을 자동화하기 위해 스크립트 언어에서 사용. 매크로 Page 15-23
122
저급 언어 : 프로그래머에게 프로세서, 레지스터, 램의 위치를 포함하는 하드웨어의 구성요소를 명시해 주도록 요구한다.
우리의 피자 프로그램은 PRINT와 END같은 명령어를 사용 했다. 컴퓨터는 오직 0 과 1만을 이해하지 않은가? 저급 언어 : 프로그래머에게 프로세서, 레지스터, 램의 위치를 포함하는 하드웨어의 구성요소를 명시해 주도록 요구한다. 컴파일러, 운영체제, 장치 드라이버등의 시스템 소프트웨어를 명시하는데 사용한다. 저급 언어의 명령어들은 프로세서의 단일 명령어와 일치한다. Page 15-24
123
저급 우리의 피자 프로그램은 PRINT와 END같은 명령어를 사용 했다. 컴퓨터는 오직 0 과 1만을 이해하지 않은가?
Page 15-24 Figure 15-16
124
기계 언어 : 컴퓨터가 직접 실행할 수 있는 이진 코드를 사용한 저급언어이다.
우리의 피자 프로그램은 PRINT와 END같은 명령어를 사용 했다. 컴퓨터는 오직 0 과 1만을 이해하지 않은가? 기계 언어 : 컴퓨터가 직접 실행할 수 있는 이진 코드를 사용한 저급언어이다. 이해하고 다루기에 어렵다. 다른 컴퓨터언어가 사용되기 이전 컴퓨터 개발의 초기 단계에 사용되었다. Page 15-24
125
고급 언어 : 프로그래머가 인간의 언어와 유사한 명령어를 사용하도록 한다.
저급 언어의 사용 대체는 무엇인가? 고급 언어 : 프로그래머가 인간의 언어와 유사한 명령어를 사용하도록 한다. 1950년대에 고안 구문과 논리 에러는 제거할 수 없지만 에러의 수는 감소. 프로그램 작성시간이 줄어든다. 컴퓨터가 수행할 수 있는 명령어로 변환해야 한다. 컴파일되거나 인터프리트되어야 한다. Page 15-24
126
컴파일러 : 프로그램이 수행되기 전에 고급언어로 쓰여진 프로그램을 저급 명령어로 바꾸낟.
고급언어는 어떻게 컴퓨터가 수행할 수 있는 명렁어를 생성하는가? 컴파일러 : 프로그램이 수행되기 전에 고급언어로 쓰여진 프로그램을 저급 명령어로 바꾸낟. 소스 코드 : 고급언어로 작성된 명령어 목적 코드 : 소스 코드를 컴파일하여 생성된 저급 명령어 Page 15-25
127
컴파일 언어를 사용할 때, 당신은 수행할 수 있는 프로그램 코드를 생성하기 위해서 당신의 프로그램을 컴파일해야 한다.
고급언어는 어떻게 컴퓨터가 수행할 수 있는 명렁어를 생성하는가? 컴파일 언어를 사용할 때, 당신은 수행할 수 있는 프로그램 코드를 생성하기 위해서 당신의 프로그램을 컴파일해야 한다. Page 15-25
128
언어 컴파일러 컴파일 고급언어는 어떻게 컴퓨터가 수행할 수 있는 명령어를 생성하는가?
1. 소스코드는 컴파일러에 의해서 검사된다. 2. 컴파일러는 명령어들에 대해서 토큰을 생성한다. Page 15-25 Figure 15-19 Animation
129
언어 컴파일러 컴파일 고급언어는 어떻게 컴퓨터가 수행할 수 있는 명령어를 생성하는가? 3. 컴파일러는 토큰을 분석한다.
4. 컴파일러는 기계언어 명령어를 생성하기 위해 정보를 이용한다. Page 15-25 Figure 15-19
130
중요 사항 만약 컴파일된 프로그램에서 버그가 발견 되었다면, 프로그램을 고친 후, 테스트 하기 전에 재 컴파일해야 한다.
고급언어는 어떻게 컴퓨터가 수행할 수 있는 명렁어를 생성하는가? 중요 사항 만약 컴파일된 프로그램에서 버그가 발견 되었다면, 프로그램을 고친 후, 테스트 하기 전에 재 컴파일해야 한다. Page 15-25
131
인터프리터 언어 : 컴퓨터가 실행할 수 있는 코드를 생성하기 위해 컴파일러 대신 인터프리터를 사용한다.
컴파일러와 인터프리터는 어떻게 다른가? 인터프리터 언어 : 컴퓨터가 실행할 수 있는 코드를 생성하기 위해 컴파일러 대신 인터프리터를 사용한다. 인터프리터 : 프로그래밍 언어 환경의 일종인 컴퓨터 프로그램이다. 하나의 명령어를 읽은 후, 컴퓨터가 수행할 수 있는 기계언어 명령어로 바꾼다. Page 15-26
132
언어 인터프리터 인터프리터 컴파일러와 인터프리터는 어떻게 다른가?
1. 인터프리터는 프로그램의 첫 번째 명렁어의 첫 단어를 검사한다. 2. 인터프리터는 유효한 명령어 리스트 에서 명령어를 찾는다. Animation Page 15-26 Figure 15-20
133
언어 인터프리터 인터프리터 컴파일러와 인터프리터는 어떻게 다른가?
3. 명령어가 명령어 리스트 에 있다면, 명령어가 요구한 구문대로 쓰여졌는지 확인 한다. 4. 구문이 정확하다면, 인터프리터는 명령어를 기계언어로 바꾸고 프로세서로 보낸다. Page 15-26 Figure 15-20
134
프로그램이 바뀔 때마다 재 컴파일 할 필요가 없기 때문에 테스트 시간이 짧다.
인터프리터 컴파일러와 인터프리터는 어떻게 다른가? 인터프리터 언어로 작성된 프로그램…. 수행 시간이 오래 걸린다. 프로그램이 바뀔 때마다 재 컴파일 할 필요가 없기 때문에 테스트 시간이 짧다. Page 15-26
135
인터프리터 컴파일러와 인터프리터는 어떻게 다른가? 주의할 점 많은 루프를 가진 프로그램은 적합하지 않다. Page 15-26
136
객체지향 언어 : 객체를 사용하는 프로그래밍에 대한 접근방법에 기초한다.
컴퓨터 프로그래밍에서 객체는 어떻게 나타나는가? 객체지향 언어 : 객체를 사용하는 프로그래밍에 대한 접근방법에 기초한다. 객체 : 프로그램이 다루는 개체 예: 화면 위의 버튼 클래스 : 객체의 특징을 명세한 그룹 예: 윈도우라고 불리우는 객체 클래스 Page 15-27
137
윈도우 클래스안의 두개의 객체 : Save As 와 WordPad 윈도우
객체지향 컴퓨터 프로그래밍에서 객체는 어떻게 나타나는가? 윈도우 클래스안의 두개의 객체 : Save As 와 WordPad 윈도우 Page 15-27 Figure 15-21
138
객체지향 컴퓨터 프로그래밍에서 객체는 어떻게 나타나는가? 상속 : 객체가 클래스의 특징을 취할 때 Page 15-27
139
사건중심 언어 : 프로그래머가 계속 사건에 응답 하고 확인하는는 프로그램을 쉽게 생성하도록 도와준다.
모든 프로그램은 일련의 행동을 따라가는가? 사건중심 언어 : 프로그래머가 계속 사건에 응답 하고 확인하는는 프로그램을 쉽게 생성하도록 도와준다. 프로그램 사건 : 프로그램에 응답하기위한 마우스의 클릭이나 키를 누르는 행동이나 사건. Page 15-28
140
사건중심 모든 프로그램은 일련의 행동을 따라가는가? 중요 사항 GUI를 사용한 대부분의 프로그램은 사건 중심이다. 그들은 메뉴, 스크린 같은 제어기를 표시하고, 사용자가 제어기 중의 하나를 활성화시키면 이러한 행동을 받아들인다. Page 15-28
141
사건중심 모든 프로그램은 일련의 행동을 따라가는가? 버튼을 누르면 사건이 발생한다. Page 15-28 Figure 15-22
142
중요 사항 같은 객체는 많은 다른 프로그램에서 사용되고, 프로그래머의 생산성을 현저하게 향상시켜 준다. 객체지향
컴퓨터 프로그래밍에서 객체는 어떻게 나타나는가? 중요 사항 같은 객체는 많은 다른 프로그램에서 사용되고, 프로그래머의 생산성을 현저하게 향상시켜 준다. Page 15-27
143
구성요소 :프로그래머가 만들어서 프로그램에 추가 한 이미 작성된 객체
나의 프로그램에서 사용할 객체를 누가 만드는가? 구성요소 :프로그래머가 만들어서 프로그램에 추가 한 이미 작성된 객체 Graphing Forms 스프레드쉬트 데이타베이스 관리 온라인 도움말 3-D 그래픽 and much much more... Page 15-29
144
15 프로그래밍 언어의 특징들 퀴즈 Page 15-29 9
145
15 퀴즈 1. __________ 언어는 컴퓨터에게 특정 작업을 위해 프로세스를 수행하는 방법을 알려 주는 일련의 문장으로 구성된 프로그램 을 생성 한다. 9
146
15 퀴즈 1. __절차적 언어__는 컴퓨터에게 특정 작업을 위해 프로세스를 수행하는 방법을 알려 주는 일련의 문장으로 구성된 프로그램 을 생성 한다. 9
147
15 퀴즈 2. __________언어는 프로그래머가 문제 해결을 위한 조건을 정의하는 규칙을 명시함으로써 프로그램을 작성하게 한다. 9
148
15 퀴즈 __선언적__언어는 프로그래머가 문제 해결을 위한 조건을 정의하는 규칙을 명시함으로써 프로그램을 작성하게 한다.
2. __선언적__언어는 프로그래머가 문제 해결을 위한 조건을 정의하는 규칙을 명시함으로써 프로그램을 작성하게 한다. 9
149
15 퀴즈 3. _______ 언어는 프로그래머가 프로세서, 레지스터, 램의 위치 같은 하드웨어의 구성 요소를 명시하기 위한 명령어 작성하도록 요구 한다. 9
150
15 퀴즈 3. __저급__언어는 프로그래머가 프로세서, 레지스터, 램의 위치 같은 하드웨어의 구성 요소를 명시하기 위한 명령어 작성하도록 요구 한다. 9
151
15 퀴즈 4. 컴파일러 언어에서 ______________코드는 컴파일되고, 또는 컴퓨터가 수행할 목적코드로 번역 된다. 9
152
15 퀴즈 4. 컴파일러 언어에서 __소스__ 코드는 컴파일되고, 또는 컴퓨터가 수행할 목적코드로 번역 된다. 9
153
15 퀴즈 5. 몇몇 컴퓨터 프로그래밍 언어는 __________를(을) 사용하여 프로그램이 실행됨과 동시에 명령어 한 라인을 기계어로 번역한다. 9
154
15 퀴즈 5. 몇몇 컴퓨터 프로그래밍 언어는 __인터프리터__를 사용하여 프로그램이 실행됨과 동시에 명령어 한 라인을 기계어로 번역한다. 9
155
프로그래밍 언어의 특징들 15.4절 끝 10
156
프로그래밍 언어의 선택 PARSONS/OJA 컴퓨터 프로그래밍 1
157
프로그래밍 언어의 선택 15.5절 미리 보기 오늘날 가장 유명한 컴퓨터 프로그래밍 언어들 배울 주제: Page 15-1 4
158
프로그래밍 언어의 선택 프로그래밍 언어 선택에 있어서 주의할 점: 프로그래밍 언어의 특징이 이 작업에 적합한가?
현재 다른 응용프로그램에서 사용되고 있는가? 언어를 사용하는데 전문적인 지식이나 기술을 가지고 있는가? Page 15-30 3
159
프로그래밍 언어의 선택 BASIC 초보 프로그래머를 위해서 고안되었음 1964년에 개발 많은 버전들이 존재 사용하기 쉽다
GW-BASIC, QBASIC, Visual Basic(VB) 사용하기 쉽다 대부분의 컴퓨터 시스템에 적합 절차 중심의 고급언어 Page 15-30 3
160
Microsoft Visual BASIC is...
프로그래밍 언어의 선택 Microsoft Visual BASIC is... BASIC의 새로운 버전 포괄적이고 강력한 기능을 가짐 GUI를 포함하는 사건 중심의 응용 프로그램을 만드는데 적합 Page 15-30 3
161
프로그래밍 언어의 선택 COBOL (COmmon Business-Oriented Language)
메인 프레임 컴퓨터 시스템의 트랜재션 처리에 사용 1960년에 개발 고급 언어, 컴파일 언어, 절차 중심의 언어 대규모 작업의 복잡한 프로그램의 개발과 유지 보수에 사용 프로그램의 길이가 길지만 이해와 디버그, 유지 보수가 쉽다 Page 15-30 3
162
FORTRAN (FORmula TRANslator)
프로그래밍 언어의 선택 FORTRAN (FORmula TRANslator) 1954년에 개발 현재에도 사용되고 있는 가장 오래된 고급언어 과학자들에 의해서 고안되었음 메인 프레임이나 미니 컴퓨터에서 과학적, 수학적, 공학적인 프로그램 개발에 사용 Page 15-30 3
163
프로그래밍 언어의 선택 Pascal 1971년에 학생들이 컴퓨터 프로그래밍을 공부하는데 도움을 주기 위해서 개발
고급언어, 컴파일 언어, 절차 중심의 언어 전문적이고 상업적인 응용 프로그램 개발에는 사용되지 않았음 Page 15-30 3
164
프로그래밍 언어의 선택 C 고급 언어와 하드웨어에 접근할 수 있는 저급언어를 제공하는 컴파일 언어
프로그램을 빠르고 효율적으로 만들 수 있는 유연성 있는 언어 이해, 디버깅 그리고 유지 보수가 어려움 Page 15-30 3
165
프로그래밍 언어의 선택 C++ C에 객체 지향 개념을 추가한 버전 프로그래머에게 생산성을 증가 시켜줌
절차 중심의 언어 보다 다양한 지적인 시각을 요구함 Page 15-31 3
166
LISP (LISt Processor)와 Prolog
프로그래밍 언어의 선택 LISP 언어는 1960년에, Prolog는 1971년에 개발 되었음 절차지향 언어에 비해서 널리 사용되지 않았음 LISP (LISt Processor)와 Prolog Page 15-31 3
167
SQL (Structured Query Language)
프로그래밍 언어의 선택 데이터 베이스를 다루고 정의하기 위한 표준 언어를 제공하기 위해서 개발 고급의 선언적 언어 프로그래머와 사용자가 데이터 요소들간의 관계를 표현할 수 있도록 허용 데이터 베이스 기능에 적합 SQL (Structured Query Language) Page 15-31 3
168
프로그래밍 언어의 선택 Java와 J++ 객체 지향 프로그래밍 언어, 고급언어 C++에 기초하고 있음
웹 관련 응용 프로그램을 위해 최적화 웹 페이지 조작을 위한 applets을 만들기 위해서 사용 Java와 J++ Page 15-31 3
169
프로그래밍 언어의 선택 중요 사항 브라우저가 지바나 J++과 관련이 있는 웹 페이지에 연결이 되면 프로그램이 다운로드되어 컴퓨터에서 실행된다. 프로그램은 웹서버에서 실행되는 대신 개인의 컴퓨터에서 실행되기 때문에 입력을 보내고 출력결과를 받기 위해 자료를 주고받는 시간을 절약할 수 있다. Page 15-31 3
170
프로그래밍 언어의 선택 J++ Java 플랫폼 독립적 프로그래머에게 특정윈도의 특징을 지원하는 툴을 제공
윈도 운영체제에 의해서 운영되는 컴퓨터에서만 수행 플랫폼 독립적 매킨토시, UNIX 뿐만 아니라 PC에서 수행 J++ Java Page 15-31
171
프로그래밍 언어의 선택 JavaScript 스크립트 언어 자바 특성 중에 일부만을 제공 HTML 태그처럼 웹 페이지에 포함
웹 페이지를 받았을 때 웹 브라우저에 의해서 번역 대화식 폼을 가진 웹 페이지를 만드는데 사용 Page 15-31 3
172
프로그래밍 언어의 선택 8086 assembly language 저급 언어 연상 코드로 구성되어 컴퓨터가 기계어로 번역
8086 마이크로 프로세서에서만 사용 주로 프로그래머들에 의해서 가능한 짧고 가능한 빠르게 만들 필요가 있을 때 사용 컴퓨터 하드웨어를 제어하는 시스템 소프트웨어에 사용 Page 15-31 3
173
프로그래밍 언어의 선택 15.5절 끝 10
Similar presentations