1. 프로그램의 설계 방법

  프로그램의 설계는 주어진 문제를 분석하여, 이를 표현하는 과정임. 설계는 넓게 입·출력 설계알고리즘 설계로 나누어진다.

           프로그램의 설계 과정 = 개략 설계와 상세 설계로 구분됨

       ※ 알고리즘(Algorithm) : 문제를 해결하는 방법 또는 문제를 해결해 가는 과정을 말함.

    1) 개략 설계 : 하향식(Top-down)으로 프로그램의 논리를 전개해 가는 방법이다.

     이미 설계된 입출력 자료들을 바탕으로 프로그램을 표현하여 상세한 수준이 아닌 프로그램의 개략적인 흐름을 구조적으로 나타낸다.

    2) 상세설계 : 코딩을 하기 위한 청사진을 제시하는 과정

     그래픽, 테이블, 텍스트 등과 같은 프로그램 설계 표현 방법들을 이용하여 프로그램의 세부적인 처리절차를 명세서로 작성

     상세 설계의 중요성

       자연어를 사용하여 세부 절차를 명시하였을 때 예상되는 이해의 모호성을 없애고, 자연어의 비구조적 설명으로 인한 프로그램의 비구조화 가능성을 최소화하는데 있다. 즉 보다 명확하고 구조적인 설명으로 코딩의 오류를 최소화하는데 그 목적이 있다.

   

2. 설계의 표기법

     설계 내용을 표현하기 위한 표기법에는 크게 그림으로 표기하는 그래픽 표기법(Graphic notation), 표의 형태로 표현하는 테이블 표기법(Table notation), 문장으로 표기하는 텍스트 표기법(Textual- notation) 등이 있다.

   1) 그래픽 표기법

      논리적 절차를 약속한 도형이나 기호를 사용하여 순서의 상세한 내용을 표현하는 표기법

      종 류 순서도(Flowchart)기법, 상자 도표(Box Diagam) 기법

      (1) 순서도(Flowchart)

       처리하고자 하는 문제를 분석하고 입·출력 설계를 한 후에, 그 처리 순서와 방법(처리과정 = 프로그램 논리의 흐름)을 결정하여 일정한 기호를 사용하여 일목요연하게 나타낸 그림이다.

      정 의 프로그램 논리의 흐름, 즉 처리과정을 다음 그림과 같은 기호를 사용하여 표현한 것.

      장 점 처리 내용에 따라 정해진 기호를 사용하므로 전체의 내용을 쉽게 파악할 수 있다.

     
         [ 순서도에 사용되는 작성 기호] 

      (2) 순서도에 사용되는 기본 기호

        처리를 표현하기 위한 직사각형, 조건에 따라 처리 내용을 달리 할 때에 사용하는 마름모, 흐름을 나타내는 화살표가 있다.

      (3) 순서도 작성시 흐름의 방향

       ① 위에서 아래로,

       ② 왼쪽에서 오른쪽으로

       ③ 선택형에서 양쪽으로 나누어지는 경우에는 조건이 참(True)인 경우에 오른쪽으로, 거짓(False)인 경우에 왼쪽으로

       ④ 반복형의 경우 조건이 참일 때 반복하는 내용은 오른쪽에, 거짓일 때 반복하는 내용은 왼쪽에 그린다.

   

     (4) 제어구조 3가지 표현

        ① 순차형

        ② 선택형

        ③ 반복형

   
    [ 프로그램의 기본 논리 구조 ]  

   

    2) 상자 도표

      사각형을 이용하여 상자 형태로 표현하는 그래픽 표기법으로, 구조적 프로그래밍에서 편리하게

      사용할 수 있다.  나시(Nassi)와 슈나이더만(Schneiderman)에 의해 개발되어 N-S 차트라고도

      한다.

      특 징 ▶

        (1) 단위 영역이 잘 정의되어 그림으로 쉽게 알아 볼 수 있다.

        (2) 제어를 임의의 곳으로 옮기는 것이 불가능.

     상자 도표는 반드시 구조적 방법에서 요구되는 하나의 입구와 하나의 출구로만 이루어지는 원칙을 제도적으로 보장함.

         
                              논리구조를 상자 도표에 의한 표현

   

3. 설계의 실제

   1) 순서도의 역할

     프로그램의 오류 검색에 있어서 문법적 오류에 대한 검색은 비교적 쉽지만, 논리적 오류를 검색하는 것은 쉽지 않다.

     논리적 오류 처리순서, 계산 순서나 회수의 오류, 비교하는 항목의 오류, 처리 방법의오류, 판단 방법의 오류 등이 있다.

     순서도의 역할

           ① 프로그램 코딩의 직접적인 자료가 된다.           

② 문서화의 역할을 한다.

           ③ 프로그램의 정확성 여부를 확인하는 자료가 된다.      

④ 프로그램의 인수, 인계가 용이하다.

           ⑤ 논리적인 체계 및 처리 내용을 쉽게 파악할 수 있다.  

           ⑥ 오류 발생시 그 원인을 찾아내는데 용이하다.

    2) 순서도의 종류

      순서도는 크게 개략 순서도(general flowchart, block flowchart) 와 상세 순서도(detail flowchart)로 나누어 진다.

      (1) 개략 순서도(general flowchart, block flowchart)

        프로그램의 전체적인 처리 방법과 순서를 한 눈에 파악할 수 있도록 프로그램을 큰 부분으로 나누어 개략적으로 나타낸 순서도

      (2) 상세 순서도(detail flowchart)

       개략 순서도의 처리 단계마다 모든 조작과 자료의 이동 순서를 하나도 빠짐없이 표시함으로써, 이것을 코딩만 하면 곧 프로그램이 작성될 수 있도록 세밀하게 그려진 순서도.

       개인별 예금의 원리합계 계산의 개략순서도와 상세순서도는 아래의 그림과 같다.

      

[개략순서도와 상세순서도]

   

   3) 순서도의 작성 요령

     ① 약속된 기호를 사용하여 누구나 이해하기 쉽도록 작성한다.

     ② 기호의 내부에 처리 내용을 한글, 영문, 또는 수식의 형태로 기술하며, 필요하면 기호의 외부에 주석을 붙여 그 내용을 명확히 한다

     ③ 처리 순서에 따라 그 흐름이 위에서 아래로, 왼쪽에서 오른쪽으로 이루어지도록 작성하여, 그렇지 않은   흐름은 화살표로 표시한다

     ④ 한 페이지에 작성할 수 없거나, 또는 어떤 조건에 의해 분기가 이루어질 때에는 연결 기호를 사용하여 표시한다.

     ⑤ 처음과 끝, 또는 처리의 블록, 즉, 부 프로그램에는 터미널 기호를 이용하여 표시하고 반복 처리의 내용을 명확히 한다.

   4) 순서도의 기본형

    순서도는 문제해결을 위하여 직선형, 분기형, 반복형 중의 세 가지 기본 형태가 조합되어 전체적인  프로그램 순서도로 작성된다.

     ① 직선형 순서도

       조건에 의해서 분기되거나 또는 일정한 내용을 반복 처리함 없이, 위에서 아래로 하나의 명령문씩 단계적으로 실행하여 실행 정지 명령에 도달되는 형태

    ② 분기형 순서도

       주어진 조건의 만족 여부에 따라 실행 내용이나 순서를 서로 달리하고자 할 때 작성되는 순서도

    ③ 반복형 순서도

       특정 조건이 만족되는 동안 어느 부분의 처리 내용을 반복 실행하도록 그려진 형태.

       반복되는 조건을 종료하는 조치가 없으면 무한 반복을 하게된다.

   5) 순서도 작성 연습

    예제 1

    이름, 몸무게를 입력하여 60Kg 이상이면 "비만", 아니면 "정상이라고 인쇄하는 프로그램의 순서도를 작성하라.

    
[판정 프로그램 순서도]

   예제 2

     n개의 수치가 배열 A 에 기억되어 있다고 가정하고, 이들 숫자 중에서 가장 큰 값을 골라 인쇄하는 프로그램의 순서도를 작성하라.

  
[최대값 찾기 순서도]

   예제 3

     n명의 신장이 배열 S에 기억되어 있다고 가정하고, 이를 오름차순으로 정렬(sorting)하는 프로그램의 순서도를 작성하라.

     i=1일 때 j는 2부터 n까지 증가하고, i=2일 때 j는 3부터 n까지 증가하기를 계속하며, i=n-1일 때j=n이 되어 마지막 처리를 한다.

    

[정렬 프로그램의 순서도]

   

    예제 4

      하나의 레코드에 상품명, 구입원가, 판매가가 수록된 레코드들을 읽어, 판매이익과 이익률을 계산하여 인쇄하는 프로그램의 순서도를 작성하라. (단, 명세서의 끝에는 전체의 합계도 인쇄한다)

  

[판매 일람표 프로그램 순서도]

+ Recent posts