47
SW코딩의 기초 1. 소프트웨어 기본 개념 8. 리스트의 이해 2. 컴퓨팅 시스템의 이해 9. 반복문의 이해 3. 프로그래밍의 이해 10. 연산의 이해 4. 교육용 프로그래밍 언어 11. 함수의 이해 5. 소프트웨어와 만나기 12. 입출력의 이해 6. 조건문과 이벤트 이해 13. SW코딩을 통한 학습설계 7. 코딩교육 - 01 -

SW코딩의기초 - kocw-n.xcache.kinxcdn.com

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

SW코딩의 기초

1. 소프트웨어 기본 개념 8. 리스트의 이해

2. 컴퓨팅 시스템의 이해 9. 반복문의 이해

3. 프로그래밍의 이해 10. 연산의 이해

4. 교육용 프로그래밍 언어 11. 함수의 이해

5. 소프트웨어와 만나기 12. 입출력의 이해

6. 조건문과 이벤트 이해 13. SW코딩을 통한 학습설계

7. 코딩교육

- 01 -

Page 2: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

프로그래밍의 이해3강

프로그래밍의 이해

프로그래밍 기초 원리1 차시

프로그래밍 방법론

프로그래밍 제작 과정

2 차시

3 차시

- 02 -

Page 3: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

프로그래밍기초 원리

1차시

프로그래밍 언어의 특징과 종류를알아보고 컴파일의 의미를학습할 수 있다.

변수와 함수의 정의를 알아보고프로그램 내에서의 역할을이해할 수 있다.

학습목표

01

02

- 03 -

Page 4: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

함수와 변수

컴파일과 컴파일러

프로그램의 기능기계어

11 프로그램의 기초 원리1

1) 소프트웨어의 구성

§ 컴퓨터에 동작을 요청하는 것은 소프트웨어 단위

§ 하나의 완성된 소프트웨어는 프로그램과 프로그램이 필요로 하는 데이터,

미리 만들어 놓은 프로그램에 해당하는 라이브러리의 집합체

라이브러리라이브러리라이브러리

프로그램

데이터

소프트웨어

- 04 -

Page 5: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

11 프로그램의 기초 원리1

2) 프로그램과 프로그래밍

§ 프로그램은 프로그래밍 언어에 의해서 작성

• 프로그래밍 언어

• 마크업 언어

• 특정 목적의 언어

컴퓨터가 사용하는 언어

11 프로그램의 기초 원리1

§ 프로그래밍 언어: 일반적인 프로그래밍이

가능한 언어

2) 프로그램과 프로그래밍

§ 프로그램은 프로그래밍 언어에 의해서 작성

• 프로그래밍 언어

• 마크업 언어

• 특정 목적의 언어

컴퓨터가 사용하는 언어

예 C, C++, Java, 파이썬

- 05 -

Page 6: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

11 프로그램의 기초 원리1

2) 프로그램과 프로그래밍

§ 프로그램은 프로그래밍 언어에 의해서 작성

• 프로그래밍 언어

• 마크업 언어

• 특정 목적의 언어

컴퓨터가 사용하는 언어 § 특정 목적의 언어: 특정 프로그램 제어를목적으로 만들어진 언어

예 SQL(데이터베이스 질의어)

11 프로그램의 기초 원리1

2) 프로그램과 프로그래밍

§ 프로그램은 프로그래밍 언어에 의해서 작성

• 프로그래밍 언어

• 마크업 언어

• 특정 목적의 언어

컴퓨터가 사용하는 언어 § 마크업 언어: 태그를 이용해서 출력형태를제어하는 언어

예 HTML, SGML

- 06 -

Page 7: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

11 프로그램의 기초 원리1

서버HTML

파일

브라우저 모니터

2) 프로그램과 프로그래밍

§ 프로그램은 프로그래밍 언어에 의해서 작성

11 프로그램의 기초 원리1

2) 프로그램과 프로그래밍

§ 프로그램은 프로그래밍 언어에 의해서 작성

- 07 -

Page 8: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

11 프로그램의 기초 원리1

3) 프로그래밍 언어

§ 대부분 프로그래밍 언어는 영어를 기본

§ 언어마다 고유한 문법(syntax)구조가 있음

어휘를 정의하는 문법 : 변수, 함수명, 숫자를 표시하는 방법의 정의

구문을 정의하는 문법 : 조건문, 반복문 등을 구성하는 방법의 정의

11 프로그램의 기초 원리1

3) 프로그래밍 언어

§ 문법적인 정의를 이용해서 프로그램을 작성

• 이 작성도 결국 사람에게 편한 대로 만들어진 것

à 컴퓨터가 읽을 수 없음 à (통역) 컴파일 필요

§ 컴파일러가 필요 없는 언어를 인터프리터 언어라고 함

- 08 -

Page 9: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

11 프로그램의 기초 원리1

출처:https://ko.wikipedia.org /wiki

소스프로그램

기계어컴파일러

11 프로그램의 기능2

입력 : 키보드, 터치스크린, 마우스, 파일 등으로부터입력 데이터를 받음

1

출력 : 스크린, 파일, 종이 등으로 데이터를 출력하는 기능2

1) 프로그램의 기능

연산 : 더하기, 빼기, 곱하기, 나누기, 논리연산 등의 연산 수행3

: 입력, 출력, 연산, 선택-조건부 수행, 반복으로 나눔

- 09 -

Page 10: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

11 프로그램의 기능2

선택-조건부 수행 : 조건을 판단하여 특정작업을 수행(if, else)

4

반복 : 동일한 작업을 2회 이상 수행5

: 입력, 출력, 연산, 선택-조건부 수행, 반복으로 나눔

1) 프로그램의 기능

11 프로그램의 기능2

기 능 파이썬 Java C++ pascal Fortran

입 력 input read cin read, get Read

출 력 print print coutwrite, put,

printwrite

연 산 = + - * = + - * = + - * = + - * = + - *

선택-조건부수행

If else if else if elseif then

elseif then

else

반복 for, while for, while, do while

for, while, do while

for dowhile dorepeat

until

do

1) 프로그램의 기능

- 10 -

Page 11: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

112

ü 프로그램을 구성하는 가장 최소 단위

ü 언어마다 다르지만 변수는 영문 알파벳으로 구성됨

ü 사용자가 생성하며 특정 값을 넣기 위해 만드는 빈 상자

프로그램의 기능

a

1a=1

변수 이름 / 배정연산자 / 변수 값

2) 변수

112 프로그램의 기능

a

1

a=1

a

2

a=2

ü 변수는 하나의 값만 담을 수 있음

2) 변수

- 11 -

Page 12: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

112

만일 a의 값과 b의 값을 교환하고 싶다면?

프로그램의 기능

c=a : a의 값을 c에 넣음

a=b : b의 값을 a에 넣음

b=c : c의 값을 a에 넣음

ü 변수는 하나의 값만 담을 수 있음

ü 두 변수의 값을 교환하고 싶으면 임시로 변수를 하나 더 만들어야 함

2) 변수

a

b c

11

소프트웨어 대소동. 변수와 리스트 활용하기(https://youtu.be/wRtqyxiKqG4)

2 프로그램의 기능

- 12 -

Page 13: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

112 프로그램의 기능

: 동일한 작업을 수행하기 위해 자주 사용하는 기능을미리 만들어 놓고, 반복적으로 사용할 수 있도록 만든 명령문

3) 함수

현재 현금이 200원 있다.은행에 예금했을 때 연이자율이 10%일 때의 이자와연이자율이 20%일 때의 이자는?

함 수

변 수

• 이자를 구하는 작업 200원*0.1 = 20원• 현금 * 이자율 = 이자

• 200원, 10%, 20%, 10%일 때 이자, 20% 일 때 이자

핵심정리

하나의 완성된 소프트웨어는 프로그램

프로그램이 필요로 하는 데이터

미리 만들어 놓은 프로그램에 해당하는

라이브러리로 구성됨

컴퓨터에서 사용되는 언어는 크게

프로그래밍 언어, 특정 목적의 언어,

마크업 언어로 나눔

1.

2.

- 13 -

Page 14: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

핵심정리

사람이 만든 프로그래밍 언어를 기계어로

바꿔주는 것은 컴파일

컴파일 하는 프로그램은 컴파일러

컴파일러가 필요 없는 언어는 인터프리터

변수는 특정 값을 넣기 위해 만드는

빈 상자 같은 것

함수는 동일한 작업을 수행하기 위해

자주 사용하는 기능을 만드는 것

3.

4.

변수와 함수 설명으로 맞는 것은?

2

4

어차피 기계어로 컴파일 하므로 변수를어떤 언어로 표현하든 상관없다

변수를 만들고, 함수의 값을 수시로 바꾸면서반복작업을 하며 프로그램을 구상한다

3 함수는 반복적인 기능을 미리 만들어 두는 것으로프로그램의 최소 단위이다

1 변수는 특정 값을 넣기 위한 빈 상자와 같다ü

- 14 -

Page 15: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

프로그램 언어에 관한 설명으로 맞는 것은?

1

2

마크업언어는 특정 프로그램의 제어를 목적으로 만든 언어

라이브러리는 프로그램이 필요로 하는 데이터의 묶음

3 모든 프로그램은 반드시 기계어로 전환되어야 함

4 프로그래밍 기능 중 반복은 같은 기능을2회 이상 수행하는 것을 지칭함

ü

참고자료

컴퓨팅 사고력. 한치근. 2018. 배움터

소프트웨어 대소동. 변수와 리스트 활용하기https://www.youtube.com/watch?v=wRtqyxiKqG4

브라우저https://ko.wikipedia.org/wiki/파일:Internet_Explorer_10%2B11_logo.svg

기계어https://ko.wikipedia.org/wiki/기계어#/media/File:W65C816S_Machine_Code_Monitor.jpeg

- 15 -

Page 16: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

프로그래밍 방법론2차시

프로그래밍 방법론과 패러다임의

차이를 살펴보고 필요성을

이해할 수 있다.

대표적인 방법론 세 가지를

학습하고 설명할 수 있다.

학습목표

01

02

- 16 -

Page 17: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

방법론과 패러다임

객체지향프로그래밍

절차적, 순차적프로그래밍

비구조적 프로그래밍

11 프로그래밍 방법론의 정의1

§ 프로그래밍을 작성하는 방법

ü 어떻게 작성하는 게 더 편할까?

ü 무엇을 어떻게 볼 것인가?

“무엇이 맞다. 더 좋다는 없습니다.

각자 역할에 따라 좋은 방법이 있을 뿐입니다.

다만 발전의 방향을 보면서

프로그래밍의 역사를 엿볼 수 있습니다”

1) 프로그래밍 방법론

- 17 -

Page 18: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

11 프로그래밍 방법론의 정의1

1) 프로그래밍 방법론

프로그래밍 방법론 프로그래밍 패러다임VS

프로그램을 작성하는 방법이라는 뜻에서는 유사한 단어로 사용됨

방법론이 개발 자체의 방법을 염두에 둔다면패러다임은 개발 시기의 프로그램을 아우르는 이슈를더 중심으로 둠

11 프로그래밍 방법론의 정의1

출처:https://ko.wikipedia.org /wiki

1) 프로그래밍 방법론

방법론(패러다임)의 필요성

• 패러다임은 프로그래밍 언어를 만들 때 제작 방향이 됨

• 사용자에게는 그 언어를 해 보지 않고도

어떤 언어인지 짐작하게 해 줌

영화의 장르예

- 18 -

Page 19: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

11 프로그래밍 방법론의 종류2

1) 비구조적 프로그래밍

: 코드가 구조 없이 하나의 덩어리로 이루고 있는 형태의 프로그래밍

• 컴퓨터가 이해하는 언어인 기계어 자체

당연히 구조적이지 않음

• 어셈블리어(기계어와 유사)나 초기에 등장한

프로그램 언어들은 대체로 비구조적임

11 프로그래밍 방법론의 종류2

1) 비구조적 프로그래밍

어셈블리어 기계어와 일대일 대응이 되는

컴퓨터 프로그램의 저급언어

- 19 -

Page 20: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

11 프로그래밍 방법론의 종류2

1) 비구조적 프로그래밍

• 프로그램 언어에서 쓰는 고급과 저급은얼마나 기계어에 가까운지-아닌지의 구분

• 영어로는low-level programming language

저급언어? 고급언어?

11 프로그래밍 방법론의 종류2

1) 비구조적 프로그래밍

• 하지만 기계어를 인간이 작성하는 것보다는

인간이 편한 방식으로 만들고, 그것을 기계가 알아 듣도록

컴파일 하는 아이디어가 나오면서

구조적인 프로그램의 필요성도 같이 생김

- 20 -

Page 21: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

11 프로그래밍 방법론의 종류2

2) 절차적 프로그래밍=구조적 프로그래밍

§ 폭포수 방식 혹은 하향식 방식

§ 프로그램이 실행될 때

위에서 아래로

절차와 순서에 맞게

실행되는 것

프로그램

기능A 기능B

함수 함수 함수 함수 함수 함수

출처:천재학습백과, ‘구조적 프로그래밍‘http://koc.chunjae.co.kr/Dic/dicDetail.do?idx=43508

11 프로그래밍 방법론의 종류2

2) 절차적 프로그래밍=구조적 프로그래밍

§ 절차적 프로그래밍은 순차-선택-반복의 구조

순차 구문 순서대로 진행

선택 구문 중 하나 실행. if, else, case 등

반복 특정 상태까지 구문을 반복. while, for, do 등

§ 절차적 프로그래밍은 포트란, C, 에이다, 베이직 등이 있음

- 21 -

Page 22: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

11 프로그래밍 방법론의 종류2

2) 절차적 프로그래밍=구조적 프로그래밍

§ C : 자료형 변수, 메모리 관리, 라이브러리, 디버그 등다양한 영향을 준 기반이 된 언어

유닉스로 시작했지만 커널을 사용해모든 플랫폼에서 개발 가능

응용프로그램을 운영체제 프로그램에

연결해 주는 역할을 함

커널

11 프로그래밍 방법론의 종류2

2) 절차적 프로그래밍=구조적 프로그래밍

§ 절차적 프로그래밍이 이후 프로그램에 끼친 영향

순차를 생각하지 않는 복잡한 중첩이나 이동은

이롭지 않다는 점

1

구조를 위해 하위 코드를 짧게 작성하는 것2

- 22 -

Page 23: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

11 프로그래밍 방법론의 종류2

2) 절차적 프로그래밍=구조적 프로그래밍

§ But, 프로그래밍의 범위가 복잡해지고

여러 사람이 같이 프로그래밍을 해야 하는 상황이 발생하자

절차의 불편함이 야기됨

§ 그 후 객체지향 프로그램의 등장 이유가 됨

11 프로그래밍 방법론의 종류2

3) 객체지향 프로그래밍

§ (프로그램 개별의 명령어를 보는 것이 아니라)

기능에 따른 독립적인 단위 즉 객체를 중심으로 프로그래밍

§ 유지보수가 쉽고 배우기 용이함

- 23 -

Page 24: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

11 프로그래밍 방법론의 종류2

3) 객체지향 프로그래밍

§ 객체지향 프로그래밍의 특징

“개발자 임의대로 만든 객체를 얼마나 편하게 사용하느냐”

객체지향 프로그래밍은 객체 사용이 편한 쪽으로,

그 효과가 강해지는 쪽으로 진화함

11 프로그래밍 방법론의 종류2

3) 객체지향 프로그래밍

1 자료의 추상화

불필요한 자료는 숨기고 중요한 것만 표현

예 윈도 환경에서 가동될 메모장을 만들 예정입니다.

어차피 상속받아 쓸 건데

마우스 가동 프로그램을

세세히 알 필요가 있을까요?

- 24 -

Page 25: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

11 프로그래밍 방법론의 종류2

3) 객체지향 프로그래밍

객체 단위로 상속받거나상속받은 후 수정해서재사용할 수 있음

2 상속

다중 상속도 가능함

동물

걷기

먹기

강아지

걷기

먹기

고양이

걷기

먹기

오리

날기

먹기

울기

11 프로그래밍 방법론의 종류2

3) 객체지향 프로그래밍

이미 상속받은 것을다시 상속 받을 수 있음

그것을 다시 상속하거나수정할 수 있음

동물

걷기

먹기

강아지

걷기

먹기

고양이

걷기

먹기

오리

날기

먹기

울기

3 다중상속

- 25 -

Page 26: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

11 프로그래밍 방법론의 종류2

3) 객체지향 프로그래밍

같은 이름의 함수 여러 개를

만들 수 있고

기능을 다르게 만들 수 있음

4 다형성

스테이지 1

go()

이동속도 3

스테이지 2

go()

이동속도 4

11 프로그래밍 방법론의 종류2

3) 객체지향 프로그래밍

실행 중간이나 과정 중에

메소드 선택이 변경됨

5 동적바인딩if

현재 캐릭터의 위치는?

(실시간으로 측정)

스테이지 2

go()

이동속도 4

스테이지 1

go()

이동속도 3

- 26 -

Page 27: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

핵심정리

비구조적 프로그래밍은 코드가

한 덩어리로 개발되는 프로그래밍 방법

기계어와 어셈블리어가 해당됨

구조적 프로그래밍은 절차식, 폭포수,

하향식 모델이라고도 하며

프로그램이 순차적으로 진행되는 것을 말함

순차-선택-반복의 구조

1.

2.

핵심정리

3. 객체지향 프로그래밍은

기능에 따른 객체를 중심으로 프로그래밍

자료의 추상화, 상속, 다중상속, 다형성,

동적바인딩의 특징을 갖음

- 27 -

Page 28: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

프로그래밍 방법론에 대한 내용으로 틀린 것은?

1

2

4

저급언어는 기계어와 유사하다는 뜻에서 사용된다

C는 절차지향 방법론을 사용하고 있다

패러다임은 개발 자체의 방법에, 방법론은 시기의이슈를 중심으로 본다

3 Java는 객체지향 방법론을 사용하고 있다

ü

비구조적 프로그래밍의 설명에 맞는 것은?

1

2

4

기계어는 구조적으로 만들어져 있다

어셈블리어는 기계어와 일대일 대응이 되는 언어이다

객체를 이용해서 프로그래밍 할 수 있다

3 폭포수 방식이라고도 불린다

ü

- 28 -

Page 29: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

절차적 프로그래밍의 설명에 맞는 것은?

1

2

4

코드 전부가 단 하나의 파일이나 덩어리로 이루어져 있음

프로그램이 복잡해지고 커지면서 발생했음

정해진 하드웨어나 플랫폼에서만 작동함

3 과한 중첩이나 잦은 이동은 좋은 코드가 아니라는 점을 알려줌ü

객체지향 프로그래밍의 설명에 맞는 것은?

1

2

4

객체의 상속을 통해 코드의 재활용과 편리함을 부각함

폭포수방식, 하향식 방식이라고도 부름

정적 바인딩을 통해 프로그램을 다양하게 짤 수 있음

3 순차-선택-반복을 통해 순서를 가지고 진행됨

ü

- 29 -

Page 30: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

참고자료 구조적 프로그래밍

http://koc.chunjae.co.kr/Dic/dicDetail.do?idx=43508

프로그래밍 언어https://ko.wikipedia.org/wiki/wiki/C_(프로그래밍_언어)

- 30 -

Page 31: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

프로그램 제작과정

3차시

프로그램 제작과정을 이해하고

각 과정별 특징을 설명할 수 있다.

프로그램 모델 간의 특징과

연관성을 구분할 수 있다.

학습목표

01

02

- 31 -

Page 32: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

요구사항 분석

프로그램 설계

프로그램 구현

테스팅

유지보수

주먹구구식 모델

선형 모델

진화적 모델

나선형모델

11 프로그램 제작 과정1

코 딩

§ 생각을 프로그램으로 작성하는 일 = 초기 알고리즘

프로그래밍

§ 프로그램을 작성하는 일 + Skill + 알고리즘

소프트웨어 개발

§ 프로그램을 작성하는 일 + 그 외 단계 전체

- 32 -

Page 33: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

111

범용적인 프로그램 제작 과정

특정 문제를 해결하기 위한 프로그램의 요구를 인지

프로그램을 기획하고, 도구(하드웨어와 프로그래밍 언어)를 선택

프로그램 언어를 사용하여 프로그램을 제작

테스트 등을 통하여 디버깅 과정을 거침

일반 사용자에게 공개한 후, 지속적인 유지/보수

프로그램 제작 과정

111

범용적인 프로그램 제작 과정

특정 문제를 해결하기 위한 프로그램의 요구를 인지

프로그램을 기획하고, 도구(하드웨어와 프로그래밍 언어)를 선택

프로그램 언어를 사용하여 프로그램을 제작

테스트 등을 통하여 디버깅 과정을 거침

일반 사용자에게 공개한 후, 지속적인 유지/보수

코 딩

프로그램 제작 과정

- 33 -

Page 34: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

111

범용적인 프로그램 제작 과정

특정 문제를 해결하기 위한 프로그램의 요구를 인지

프로그램을 기획하고, 도구(하드웨어와 프로그래밍 언어)를 선택

프로그램 언어를 사용하여 프로그램을 제작

테스트 등을 통하여 디버깅 과정을 거침

일반 사용자에게 공개한 후, 지속적인 유지/보수

프로그래밍

프로그램 제작 과정

111

범용적인 프로그램 제작 과정

특정 문제를 해결하기 위한 프로그램의 요구를 인지

프로그램을 기획하고, 도구(하드웨어와 프로그래밍 언어)를 선택

프로그램 언어를 사용하여 프로그램을 제작

테스트 등을 통하여 디버깅 과정을 거침

일반 사용자에게 공개한 후, 지속적인 유지/보수

소프트웨어 개발

프로그램 제작 과정

- 34 -

Page 35: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

11 프로그램 제작 과정1

범용적인 프로그램 제작 과정

1. 특정 문제를 해결하기 위한 프로그램의 요구를 인지

2. 프로그램을 기획하고, 도구(하드웨어와 프로그래밍 언어)를 선택

3. 프로그램 언어를 사용하여 프로그램을 제작

4. 테스트 등을 통하여 디버깅 과정을 거침

5. 일반 사용자에게 공개한 후, 지속적인 유지/보수

111

1) 프로그램 제작 과정 = 제작 프로세스

§ 프로그램을 구축하기 위하여 수행하는 작업의 단계

§ 프로그램 제작 과정의 각 단계는 잘 정의된 작업을 수행하는 것

§ 넓은 의미에서 제작 프로세스는 개발 과정 뿐만 아니라

지원 과정도 포함하며 관리, 협상 등도 포함함

프로그램 제작 과정이 아닌 것은?

정해진 절차 없이 코딩과 수정을반복하는 행위

프로그램 제작 과정

- 35 -

Page 36: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

111

2) 프로그램 제작 과정이 필요한 이유

프로그램을 개발하는 구성원들과 해당 관리자들에게

어떤 작업을 어떤 순서로 할지 결정하는데 도움을 주기 때문

“무질서한 프로그래밍은

빨라 보이지만 결과적으로는

더 느리게 됩니다”

프로그램 제작 과정

111

2) 프로그램 제작 과정이 필요한 이유

프로그램 제작 과정도 여러 모델이 존재함

모델마다 장단점이 있기 때문에 선택해서 개발 전략을 세울 수 있음

모델이 있다는 것은 앞서 선례가 있다는 것

그 만큼의 실패를 예상할 수 있고

실제 제작에서는 비용 및 기간을 예상해 볼 수 있음

프로그램 제작 과정

- 36 -

Page 37: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

11

1 계획 및 요구사항 분석

프로그램 개발 전 단계

무엇을 만들지 결정하고, 사용자의 요구사항을 파악하는 단계

기능요구와 비기능 요구로 나뉨

보통은 사용자와 대화와 업무 범위 등으로 정보를 얻음

이 단계에서는 개발계획서, 요구명세서가 만들어짐

프로그램 제작 과정 단계2

112

요구 분석 : 일반

계획 및 요구사항 분석 샘플

§ 전용 스마트기기의 기본 기능에 충실한 교육용 어플리케이션

§ 교육 콘텐츠 제공 및 문제를 해결하는 즐거움을 통한 학습 동기 유발

§ 교육용 어플리케이션을 전용 스마트기기 서비스로교육을 선도하는 기업 이미지 확보

자료출처 : 교수자

프로그램 제작 과정 단계

- 37 -

Page 38: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

112계획 및 요구사항 분석 샘플

자료출처 : 교수자

프로그램 제작 과정 단계

112프로그램 설계

자료출처 : 교수자

프로그램 제작 과정 단계

- 38 -

Page 39: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

11

3 프로그래밍 구현

프로그램 개발 단계

설계도에서만 만들어진, 논리단계의 자료들을직접 프로그램 언어로 바꾸는 작업

개발자가 개발을 하는 단계

이 단계에서는 프로그램 파일이 만들어짐

2 프로그램 제작 과정 단계

112프로그램 구현

자료출처 : 교수자

프로그램 제작 과정 단계

- 39 -

Page 40: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

11

4 테스트

프로그램 개발 후 단계

작성된 프로그램을 실제 데이터나 모의 데이터를이용해서 검증하는 단계

내부 테스트와 외부 테스트로 나누어 진행됨

이 단계에서는 테스트 문서가 만들어짐

2 프로그램 제작 과정 단계

112테스트

자료출처 : 교수자

프로그램 제작 과정 단계

- 40 -

Page 41: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

11

5 사용 및 유지보수

프로그램 개발 후 단계

사용자가 사용을 시작하는 단계

수정, 적응, 기능보강, 예방 유지보수

품질에 관련한 이슈가 발생하는 시기

이 단계에서는 유지보수 관련 문서가 만들어짐

2 프로그램 제작 과정 단계

11

즉흥적 프로그램 제작 모델

공식적인 가이드라인이나 프로세스 없이간단한 기능만 정리해서 개발하는 형태,일단 코드부터 작성해 보고 결정

한 명이 단기간에 제작하는 경우에나 가능

문서가 없으니 유지보수 및 관리가 어렵고반복되는 수정 시 프로그램구조가 나빠져 수정이 어려워짐

프로그램 제작 과정 모델3

1) 주먹구구식 모델(build-and fix)

- 41 -

Page 42: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

11 프로그램 제작 과정 모델3

코딩(구현)

제품 문제? 사용

수정예

1) 주먹구구식 모델(build-and fix)

출처:쉽게 배우는 소프트웨어 공학. 김치수. 2015. 한빛아카데미. p44

11

폭포수 모델이라고도 알려져 있음물 떨어지듯 단계 이동

프로그램 제작과정의 대표적인 모델표준 프로세스를 정해서 순차적으로 개발하는 것

관리가 쉽고, 체계적으로 문서화가 가능

요구사항의 변화가 많으면 재대응이 어렵고앞 단계가 완성되어야 뒷 단계 진행이 가능

프로그램 제작 과정 모델3

2) 선형 순차적 모델

비현실적이며, 중간결과를 볼 수 없음

- 42 -

Page 43: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

11 프로그램 제작 과정 모델3

계획 요구분석 구현설계 테스트 유지보수

이미지 출처:교수자

2) 선형 순차적 모델

11

진화적 프로세스 모델의 대표적 방법은 프로토타입 모델

프로토타입을 만들어서 가상의 결과를 보고요구사항을 추가하며 최종제품을 만듦

사용자와 개발자간의 소통이 쉽고 요구사항 변경이 용이

비용과 인원 산정이 어렵고 개발 범위가 명확하지 않으며목표가 분명치 않아짐 추가 비용이 예상됨

프로그램 제작 과정 모델3

3) 진화적 프로세스 모델

- 43 -

Page 44: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

11 프로그램 제작 과정 모델3

요구분석프로토타입

개발빠른 설계 최종 제품문제?

아니요

수정 요구사항

이미지 출처:쉽게 배우는 소프트웨어 공학. 김치수. 2015. 한빛아카데미. p57

3) 진화적 프로세스 모델

11

프로토타입을 만들면서 최종 완성하는 형태

1차 과정을 겪고 다시 2차, 3차, 4차 등 요구조건을충분히 수용하며 프로토타입을 발전시킴

후반 돌발위험에 대처하기 좋고 사용자 불만이 적음

반복 작업이 많아 프로젝트 기간이 길고 관리가 어려움위험전문가를 따로 구해야 함

프로그램 제작 과정 모델3

4) 나선형 모델

- 44 -

Page 45: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

11 프로그램 제작 과정 모델3

위험분석

개발

계획 및요구 분석

사용자 평가

계획 및초기 요구 분석

1차 위험 분석

1차 사용자 평가1차

프로토타입 개발

4) 나선형 모델출처:쉽게 배우는 소프트웨어 공학. 김치수. 2015. 한빛아카데미. p60

핵심정리

프로그램 개발의 5단계는 요구사항 분석,

프로그램 설계, 프로그래밍 구현, 테스트,

사용 및 유지보수이다.

프로그램 개발 모델로는 주먹구구식 모델,

선형 순차적 모델, 진화적 프로세스 모델,

나선형 모델을 다뤘다.

1.

2.

- 45 -

Page 46: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

프로그램 개발 과정 단계 설명 중 맞는 것은?

1

2

4

프로그래밍 구현 : 논리단계를 언어로 바꿈, 프로그램 파일

요구사항 분석 : 프로그램 전 단계, 시스템설계문서

프로그램 설계 : 시스템설계문서, 모의데이터로 검증함

3 유지보수 : 사용자단계, 테스트 문서제작

ü

프로그램 제작 과정의 모델 설명 중 맞는 것은?

1

2

4

주먹구구식 모델 : 후반 돌발 위험에 대처하기 좋음

폭포수 모델 : 단기간 개발에 유리하고 코드 작성부터 시작

진화적 프로세스 : 표준 프로세스에 맞춰 순차적 진행

3 나선형모델 : 프로토타입을 여러 번 반복적으로 개발하는 방법ü

- 46 -

Page 47: SW코딩의기초 - kocw-n.xcache.kinxcdn.com

참고자료 쉽게 배우는 소프트웨어 공학. 김치수. 2015.

한빛아카데미.

- 47 -