Download presentation
Presentation is loading. Please wait.
1
Chapter 11: 소프트웨어 개발 프로그래밍 및 언어
© The McGraw-Hill Companies, Inc., 1999
2
11.1 프로그래밍 : 5 단계의 절차 프로그램은 무엇인가 ? 데이터를 정보로 처리하기 위하여 컴퓨터가 따라야 하는 명령어
데이터를 정보로 처리하기 위하여 컴퓨터가 따라야 하는 명령어 들의 목록 - 패키지 소프트웨어(packaged software) 판매용으로 개발된 미리 작성된 프로그램 shareware, freeware 이들은 즉시 사용 - 맞춤 소프트웨어(customized software) 특정 고객을 위해 디자인 된 소프트웨어 고객의 요구를 반영
3
11.1 프로그래밍 : 5 단계의 절차(계속) 프로그래밍이란 무엇인가 ? - 소프트웨어공학
- 프로그램을 작성하기위한 다단계 과정 - 단계 1. 문제를 명확히 하라 2. 해법을 디자인 하라 3. 프로그램을 코딩하라 4. 프로그램을 시험하라 5. 프로그램을 문서화하고 유지하라
4
패널 11.1 프로그래밍은 시스템 개발주기에서 어디에 들어가는가?.
패널 프로그래밍은 시스템 개발주기에서 어디에 들어가는가?. © The McGraw-Hill Companies, Inc., 1999
5
11.2 첫 단계 : 프로그래밍 필요를 명확하게 하라 1. 목적과 사용자를 명확히 하라. 2. 기대되는 결과를 명확히 하라.
3. 요구되는 입력을 명확히 하라. 4. 요구되는 처리를 명확히 하라. 5. 프로그램 구현의 가능성을 이중으로 점검하라. 6. 분석을 문서화하라.
6
패널 제 1단계 : 프로그래밍 요구를 명확히 하라 © The McGraw-Hill Companies, Inc., 1999
7
11.3 제 2 단계 : 프로그램을 설계하라 1. 하향식 접근 방식을 사용하여 프로그램 로직을 결정하라.
하향식 프로그램 설계는 프로그램의 최상위 요소 또는 모듈을 구별해 내고, 최하 수준의 상세 사항으로 계층적인 방식에 의해 진행시키는 방식이다. 2. 유사코드/ 순서도 및 가능하면 제어구조를 사용하여 세부 사항을 설계하라. - 유사코드(pseudocode) : 로직과 처리흐름을 보통의 문장을 사용하여 프로그램을 설계하는 방법 - 순서도 : 문제 해결을 위한 알고리즘을 그래프로 제시 한 차트 - 제어구조 : 순차, 선택, 반복 의 세가지 제어 구조 사용 3. 구조적인 검사 방법으로 점검하라.
8
패널 제 2단계 : 프로그램 설계 © The McGraw-Hill Companies, Inc., 1999
9
패널 계층 구조 차트
10
패널 가코드(pseudocode) © The McGraw-Hill Companies, Inc., 1999
11
패널 11.6a 프로그램 순서도의 예들 © The McGraw-Hill Companies, Inc., 1999
12
패널 11.6b 순서도의 기호 설명 © The McGraw-Hill Companies, Inc., 1999
13
패널 11.7a 3종류의 제어구조 © The McGraw-Hill Companies, Inc., 1999
14
Panel 11.7b Variation on selection: the case control structure (more than a single yes-or-no decision) © The McGraw-Hill Companies, Inc., 1999
15
11.4 셋째 단계 : 프로그램을 코딩하라 1. 적합한 프로그래밍 언어를 선택하라
프로그래밍 언어 : 컴퓨터에게 어떤 동작을 수행할 것인지 말해주는 규칙의 집합이다. 예) basic , cobol, c, c++ 2. 구문 규칙에 따라라 프로그래밍 언어의 구문 규칙의 집합에 따라야 한다.
16
패널 셋째 단계 : 프로그램 코딩 © The McGraw-Hill Companies, Inc., 1999
17
11.5 넷째 단계 : 프로그램을 시험하라 1. 책상 위 점검을 수행하라
프그그램을 쭉 읽어나가면서 프로그램에 오류가 없는지 , 논리가 제대로 작동하는지를 확인하는 것.일종의 교정 2. 프로그램을 디버깅하라 컴퓨터 프로그램에서 오류를 발견하고 위치를 확인해서 그것을 제거하는 것 문법적 오류 : 타이핑을 잘못했거나, 프로그래밍언어의 부정확한 사용 논리적 오류 : 제어구조의 부정확한 사용에 의하여 야기 3. 실제 데이터로 수행하라 다양한 시험 데이터를 사용하여 여러 번의 시험 과정을 거친다.
18
패널 11.9 네 번째 단계 : 프로그램 시험 The fourth step is to test the program
패널 네 번째 단계 : 프로그램 시험 The fourth step is to test the program and “debug” it of errors so it will work properly. The word “bug” dates from 1945, when a moth was discovered lodged in the wiring of the Mark I computer. The moth disrupted the execution of the program. © The McGraw-Hill Companies, Inc., 1999
19
11.6 다섯번째 단계 : 프로그램을 문서화하고 유지 보수
11.6 다섯번째 단계 : 프로그램을 문서화하고 유지 보수 1. 사용자 문서를 준비한다. 프로그래머가 아닌 사람들이 프로그램을 사용할 수 있도록 매뉴얼을 준비 2. 오퍼레이터 문서를 준비한다. 대형컴퓨터를 운용하는 오퍼레이터를 위해 프로그램 오동작시 대처를 위한 정보 제공 3. 프로그래머 문서를 준비한다. 신참들의 교육훈련을 도와주고 기존의 시스템을 유지 보수할 수 있도록 프로그램 문서화를 한다. 4. 프로그램을 유지 보수한다. 프로그램을 동작될 수 있는 조건으로 오류가 없도록 최신의 것으로 유지 시키는 활동을 의미한다.
20
패널 11.9 다섯 번째 단계 : 프로그램 문서화 및 유지보수
패널 다섯 번째 단계 : 프로그램 문서화 및 유지보수 The fifth step is really the culmination of activity that has been going on through all the programming steps—documentation. Developing written and electronic descriptions of a program and how to use it needs to be done for different people—users, operators, and programmers. Maintenance is an ongoing process. © The McGraw-Hill Companies, Inc., 1999
21
패널 프로그래밍 다섯 단계의 요약 © The McGraw-Hill Companies, Inc., 1999
22
11.7 프로그래밍 언어의 다섯 세대 - 제 1 세대 (1945년) 기계어 - 제 2 세대 (1950년대 중반) 어셈블리어
- 제 3 세대 ( 1960년대 초) 고급언어, FORTRAN, COBOL, BASIC, C, ADA - 제 4 세대 (1970년대 초) 최고급언어 , SQL, INTELLECT, NOMAD, FOCUS - 제 5 세대 (1980년대 초) 자연 언어
23
패널 프로그래밍 언어 다섯 세대
24
11.7 프로그래밍 언어의 다섯 세대(계속) 제 1 세대 : 기계어 - 컴퓨터의 기본언어로써 데이터를 1 과 0으로 표현
제 1 세대 : 기계어 - 컴퓨터의 기본언어로써 데이터를 1 과 0으로 표현 -기계에 종속(Machine dependent) 제 2 세대 : 어셈블리어 -저급 프로그래밍 언어 -숫자 대신 쉽게 기억되는 단어를 사용해 프로그램 작성 -기계 종속 -어셈블러(assembler) 어셈블리어 프로그램을 기계어로 번역해 주는 번역기
25
11.7 프로그래밍 언어의 다섯 세대(계속) 제 3 세대 : 고급 언어 - 사람들에게 익숙한 표기법
제 3 세대 : 고급 언어 - 사람들에게 익숙한 표기법 - 대부분 기계에 종속되지 않음 - 컴파일러, 인터프리터가 고급언어의 번역 프로그램 컴파일러 : 컴퓨터가 프로그램을 실행하기 전, 고급언어로 된 모든 프로그램 을 기계어로 변환시켜 주는 언어 번역 프로그램 예) COBOL, FORTRAN, PASCAL, C 인터프리터 : 고급언어로 된 명령문을 기계어로 한 줄씩 변환시키면서 즉가 실행시키는 언어 번역 프로그램 예) BASIC
26
패널 11.12 프로그래밍 언어의 세 세대 Machine language is all binary 0s and
패널 프로그래밍 언어의 세 세대 Machine language is all binary 0s and 1s—difficult for people to work with. Assembly language uses abbreviations for major instructions (such as MP for MULTIPLY). This is easier for people to use, but still not easy. COBOL, a third-generation language, uses English words that can be understood by people.
27
패널 11.14 컴파일러 This language translator converts
패널 컴파일러 This language translator converts the high-level language (source code) into machine language (object code) before the computer can execute the program. © The McGraw-Hill Companies, Inc., 1999
28
11.7 프로그래밍 언어의 다섯 세대(계속) 제 4 세대 : 최고급 언어 - 빠른 응용 개발 툴 (RAD)
- 보고서 작성 프로그램 - 질의 언어 - 어플리케이션 생성기 제 5 세대 : 자연언어 - 영어, 스페인어 등과 같이 일상적인 언어 - 사람이 쓰는 언어를 사용하는 프로그래밍 언어 - 인공지능 분야
29
패널 11.15a 프로그래밍 언어의 개발과 포맷팅 툴 연대기
© The McGraw-Hill Companies, Inc., 1999
30
패널 11.15b 프로그래밍 언어의 개발과 포맷팅 툴 연대기
© The McGraw-Hill Companies, Inc., 1999
31
패널 11.16a 비교되는 3세대 언어들: 다섯 예 This and the next slide show how five
languages handle the same statement. The statement specifies that a customer gets a discount of 7% of the invoice amount if the invoice is greater than $500; if the invoice is lower, there is no discount.
32
패널 11.16b 비교되는 3세대 언어들: 다섯 예 This and the previous slide show how five
languages handle the same statement. The statement specifies that a customer gets a discount of 7% of the invoice amount if the invoice is greater than $500; if the invoice is lower, there is no discount.
33
11.8 현재 사용되는 프로그래밍 언어 FORTRAN : 수학의 언어 그리고 최초의 고급언어
- 수학, 과학 및 공학 문제용 언어로 광범위하게 사용 - 대략의 입력/출력 연산 및 파일 처리를 할 수 없기 때문에 전형적인 사무 처리용으로는 사용되지 않음 - 장점 복잡한 수학 및 논리 표현 처리 문장이 비교적 짧고 간단 쉽게 수정 가능 , 이식 가능 - 단점 입력/ 출력 연산을 효과적으로 처리하지 못함 비수치 데이터를 표현하고 처리하는 능력이 제한적 읽기와 이해하기 어려움
34
11.8 현재 사용되는 프로그래밍 언어(계속) COBOL : 사무 처리용 언어 -장점 기계와 독립적
영어와 유사한 문장 , 쉽게 이해 많은 파일, 레코드 및 필드를 처리 입/출력 연산을 쉽게 처리 -단점 읽기가 쉬운 만큼 장황 프로그래머의 생산성이 낮움 수치계산을 처리하지 못함
35
11.8 현재 사용되는 프로그래밍 언어(계속) Pascal : 단순한 언어
basic의 대안으로써 비교적 배우기 쉬운 교육용 언어 차이점은 구조화 프로그래밍을 사용한다는 것 - 장점 배우기 쉽다. 그래픽 프로그래밍을 위한 폭넓은 능력을 갖추고 있음 과학적인 쓰임에 뛰어남 - 단점 제한적인 입/출력 프로그래밍 능력 사무용으로 부적합
36
11.8 현재 사용되는 프로그래밍 언어(계속) C 언어 : 이식성 & 과학적 쓰임에 적합 - 장점 마이크로 컴퓨터에 잘 동작함
이식이 아주 쉬움 빠르고 효율적 주 기억장치에서 개별 비트를 조작 가능 - 단점 배우기 어려움 너무 간결하여 코드를 따라가기 어려울 수 있음 많은 보고서 포맷팅과 데이터 파일 조작 부적합
37
11.8 현재 사용되는 프로그래밍 언어(계속) LISP : 인공지능 프로그램용 - 제 3 세대 언어
- 인공지능 프로그램을 구축하는데 주로 사용 - 전문가 시스템(expert systems) 과 자연언어 프로그램 작성에 사용 PL/1 : FORTRAN 과 COBOL 의 장점만을 추린 것 - 사무 처리 분야 나 과학기술 계산에 사용 - 융통성, 배우기 쉬움 - 너무 많은 옵션 , 유용성이 떨어짐
38
11.8 현재 사용되는 프로그래밍 언어(계속) RPG : 업무용 보고서 작성용의 쉬운 언어 - 구조화된 언어
- 비교적 배우기 쉬운 제 3 세대 언어 - 보고서 작성을 돕는 프로그램 LOGO : 아이들을 가르치기 위해 거북이 사용 - 제 3 세대 언어 - 문제를 해결하고 프로그래밍하는 기술을 가르치기 위해 고안 - 고도의 대화형 언어 - 업무용 그래픽 보고서를 제작하기 위해서도 사용
39
11.8 현재 사용되는 프로그래밍 언어(계속) APL : 수학적 문제를 위한 특수 키보드 사용 - 제 3세대 언어
- IBM 메인 프레임용 으로 고안 - 특수한 부호가 있는 특수 키보드를 사용 - 복잡한 수학 문제 해결 FORTH : 데이터를 신속하게 처리 - 업무용 - 그래픽용 - 실시간 제어 업무용
40
11.8 현재 사용되는 프로그래밍 언어(계속) PROLOG : 인공지능 응용에 사용
- 자연 언어 프로그램 및 전문가 시스템에 적용 Ada : 새 표준의 기능성 - 강력한 구조화 프로그래밍 언어 - 장점 : 모듈설계 실행 전 오류를 점검 - 단점 : 너무 복잡 데이터베이스 프로그래밍 언어 : dbase,Acess, FoxPro, Paradox
41
11.9 객체 지향 및 비주얼 프로그래밍 객체 지향 프로그램 : 블록별로 1 . OOP는 무엇인가
데이터를 처리하기 위해 데이터와 관련 명령을 조합하여 다른 프로그램에서 도 사용될 수 있도록 하는 객체를 생성하는 프로그래밍 방식 2 . 객체는 무엇인가 미리 조합된 프로그래밍 코드로써 데이터 묶음과 처리 명령어들의 캡슐화된 모듈 3 . 객체의 데이터는 언제 처리되는가 메시지가 전송될 때만 일어남 4 . 객체의 데이터는 어떻게 처리되는가 객체에 속하는 처리 명령어의 범위에 속함 데이터에 수행되는 연산에 관한 명령어-메쏘드
42
11.9 객체 지향 및 비주얼 프로그래밍(계속) OOP 의 세가지 중요한 개념 - 캡슐화(Encapsulation) - 상속성
- 다형성 OOP 프로그래밍 언어의 예 - Smalltalk - C++ - Hypertalk 비주얼 프로그래밍 - visual C++ - visual Basic
43
(HTML,XML,VRML, JAVA 그리고 ACTIVEX)
11.10 인터넷 프로그래밍 : (HTML,XML,VRML, JAVA 그리고 ACTIVEX) - HTML 다른 문서와 쉽게 링크될 수 있는 인터넷상 문서를 만드는 언어 - XML 웹개발자가 홈페이지에 더 많은 태그를 추가할 수 있음 - VRML 3차원 웹페이지를 만들기 위한 프로그래밍 언어의 한 형태 - JAVA 객체지향프로그래밍 언어, 어떤 운영체제에서도 동작되는 어플리케이션을 구축 - ACTIVEX 재사용 컴포넌트를 프로그램 혹은 웹페이지 내에 내장될 수 있도록 함
44
Panel 11.17a Conventional versus object-oriented programs
When building conventional programs, programmers write every line of code from scratch. © The McGraw-Hill Companies, Inc., 1999
45
Panel 11.17b Conventional versus object-oriented programs
With object-oriented programs, programmers can use blocks, or “objects,” of preassembled modules containing data and the associated processing instructions. © The McGraw-Hill Companies, Inc., 1999
Similar presentations