프로그래밍웹 교과서
이 페이지의 목차
3단원 · 9차시

3단원 마무리

단원 정리자기 점검

학습 목표

  • 3단원의 핵심 개념을 정리한다.
  • 성취기준별로 자신의 이해 정도를 점검한다.

관련 성취기준

  • 프그03-01

    프로그램을 기획하는 다양한 방법과 절차를 이해하고, 구현하고자 하는 프로그램에 적합한 방법을 선택하여 요구 사항을 도출하고 분석할 수 있으며, 디지털 도구를 이용하여 프로그램을 기획할 수 있다.

  • 프그03-02

    산업 현장에서 필요로 하는 프로그램의 구조를 설계하여 기본 개발 설계서를 작성한 후, 설계된 프로그램의 알고리즘을 작성할 수 있다.

  • 프그03-03

    작성된 설계 프로그램을 프로그래밍 언어를 사용하여 구현할 수 있다.

  • 프그03-04

    구현된 프로그램을 대상으로 단위 테스트, 통합 테스트, 시스템 테스트를 할 수 있다.

3단원을 한 문장으로

프로그램을 만드는 일은 코드를 쓰는 일이 아니라, 문서를 하나씩 넘겨 가며 판단을 확정해 가는 일이다.

이 단원에서 만든 문서는 넷이다. 그리고 앞 문서가 뒤 문서의 입력이었다.

기획1차시 · 네 가지 질문요구 사항 명세서2차시 · F1F4, N1N4기본 개발 설계서3차시 · 부품과 겉모습알고리즘4차시 · 의사 코드코드5·6차시 · 구현과 통합테스트7·8차시 · 단위·통합·시스템명세서의 「확인 방법」과4차시 책상 검사가테스트 사례가 된다결함을 찾으면 되돌아간다각 단계의 산출물이 다음 단계의 입력이다. 앞을 대충 하면 뒤가 전부 흔들린다.
여덟 차시 동안 만든 문서와, 그것이 다음 단계로 넘어간 흐름.자체 제작

정리 ① 기획과 요구 사항 (프그03-01)

되돌아갈 곳: 1차시 무엇을 만들지 정하기 — 기획과 요구 사항 도출 · 2차시 요구 사항을 문서로 정리하기

정리 ② 구조 설계와 알고리즘 (프그03-02)

되돌아갈 곳: 3차시 프로그램 구조를 설계하다 · 4차시 설계한 프로그램의 알고리즘 작성

정리 ③ 구현과 통합 (프그03-03)

되돌아갈 곳: 5차시 설계를 코드로 옮기다 · 6차시 나눠 만든 것을 합치다

정리 ④ 테스트와 고쳐 내기 (프그03-04)

되돌아갈 곳: 7차시 단위 테스트와 통합 테스트 · 8차시 시스템 테스트와 고쳐 내기

1단원에서 배운 것이 여기서 어떻게 쓰였나

3단원은 1단원의 개념을 실제로 한 번 돌려 본 단원이다.

1단원의 개념이 3단원에서 쓰인 자리
1단원에서 배운 것3단원에서 쓰인 곳
개발 절차 다섯 단계 (4차시)이 단원 전체가 그 다섯 단계를 한 바퀴 돈 것이다
애매한 말을 숫자로 (5차시)2차시 — 판정할 수 있는 요구 사항으로 고쳐 쓰기
한 모듈에 한 가지 일 (5차시)3차시 — 부품으로 쪼개는 기준
단위·통합·시스템 테스트 (5차시)7·8차시 — 실제로 사례를 만들어 돌려 봄
경계값을 넣어 본다 (5차시)7차시 — 0점이 걸러지던 잘못을 잡아낸 값
알고리즘의 유한성 (6차시)4차시 — 0으로 나눌 길을 막는 출구
최댓값을 0으로 두면 틀린다 (7차시 활동)4차시 — 첫 값을 기준으로 잡는 이유
의사 코드와 들여쓰기 (7차시)4차시 — 부품마다 알고리즘 적기
디버거와 중단점 (8차시)6차시 — 어긋난 곳을 좁히는 3단계
버전 관리와 충돌 (9차시)6차시 — 모둠원 코드 합치기
개인정보를 넣지 않는다 (9차시)1차시 제약 조건, 2차시 N3, 8차시 시스템 테스트

스스로 점검하기

확인할 것 아직 대체로 설명할 수 있다 되돌아갈 차시
기획에서 답해야 할 네 가지 질문을 말할 수 있다 ☐ ☐ ☐ 1차시
요구를 끌어내는 네 가지 방법과 각각의 강점을 구분한다 ☐ ☐ ☐ 1차시
판정할 수 없는 요구 사항을 판정할 수 있게 고쳐 쓸 수 있다 ☐ ☐ ☐ 2차시
기능 요구와 비기능 요구를 나눌 수 있다 ☐ ☐ ☐ 2차시
기능 목록을 부품으로 쪼개고 겉모습을 못 박을 수 있다 ☐ ☐ ☐ 3차시
부품의 「실패하면」을 스스로 채울 수 있다 ☐ ☐ ☐ 3차시
부품의 알고리즘을 의사 코드로 적을 수 있다 ☐ ☐ ☐ 4차시
예외 상황을 찾는 네 가지 물음을 던질 수 있다 ☐ ☐ ☐ 4차시
손으로 따라가며 기대 결과를 미리 낼 수 있다 ☐ ☐ ☐ 4차시
껍데기부터 만들어 하나씩 채우는 순서로 구현한다 ☐ ☐ ☐ 5차시
설계와 달라진 부분을 기록한다 ☐ ☐ ☐ 5차시
합칠 때 어긋나는 네 자리를 말할 수 있다 ☐ ☐ ☐ 6차시
단위·통합·시스템 테스트의 차이를 설명할 수 있다 ☐ ☐ ☐ 7·8차시
경계값을 짝으로 넣는 이유를 설명할 수 있다 ☐ ☐ ☐ 7차시
재현 방법이 들어간 결함 보고서를 쓸 수 있다 ☐ ☐ ☐ 8차시

단원 평가 문제

3단원 평가 문제

보기를 누르면 바로 채점된다. 틀려도 해설을 읽으면 된다.

'학교 생활을 편하게 해 주는 앱을 만들자'는 회의에서 가장 먼저 해야 할 일은?프그03-01

다음 중 판정할 수 있는 요구 사항으로 바르게 고쳐 쓴 것은?프그03-01

비기능 요구가 기능 요구보다 위험한 이유는?프그03-01

점수 범위를 판정하는 일을 별도 부품으로 떼어 내는 기준으로 알맞은 것은?프그03-02

부품의 겉모습에서 '실패하면' 칸을 채우지 않으면 생기는 일은?프그03-02

다음 알고리즘에서 반드시 있어야 할 줄은? '합계를 인원으로 나누어 평균을 낸다'프그03-02

책상 검사에서 손으로 낸 결과를 보관해 두는 이유는?프그03-02

여러 부품을 합칠 때 하나씩 붙이고 붙일 때마다 실행하는 이유는?프그03-03

C에서 정수 합계를 정수 인원으로 나눌 때 (double) 로 바꾸지 않으면 어떤 요구를 못 지키게 되는가?프그03-03

단위 테스트를 통과한 부품들로 통합 테스트를 할 때 얻는 이점은?프그03-04

시스템 테스트에서 반드시 지켜야 할 조건으로 알맞은 것은?프그03-04

결함을 고칠 때 '그 결함을 잡는 테스트 사례를 먼저 추가한다'를 건너뛰면 생기는 일은?프그03-04

이 단원을 마치며

프로그램을 만드는 절차는 프로그램에만 쓰이지 않는다. 무엇을 만들지 정하고, 크기를 줄이고, 나눠 맡고, 확인하고, 고쳐 내는 흐름은 축제를 기획할 때도 실험을 계획할 때도 같다. 이 단원에서 남는 것은 코드가 아니라 그 순서 감각이다.

교과서에서 찾기

교과서해당 위치쪽수
성림출판(Python)프로그램 설계와 구현 › 01 프로그램 개발 과정 > 1 프로그램 기획207쪽
씨마스커뮤니케이션(Python)프로그램 설계와 구현 › 1 프로그램 설계와 절차202쪽
삼양미디어(Python)프로그램의 설계와 구현 › 01 프로그램 개발 과정172쪽
삼양미디어(C)프로그램의 설계와 구현 › 01 프로그램 개발 과정178쪽
씨마스(C)프로그래밍 설계와 구현 › 1 프로그래밍의 설계와 절차188쪽
웅보출판사(C)프로그램 설계와 구현 › Chapter 01 프로그램 기획197쪽