검토


프로그램을 만들어 실행시켰을 때 다른 결과가 나올 경우가 있기때문에 이런 경우를 방지하기 위해서 검토해야 한다. 



방법


1. 기억장소를 그린다.


2. 작성된 순서도에서 사용하는 기억장소를 종이에 그린다. 표 형식으로 정리하고, 그것을 검토표라고 한다. 또한 초기값이 있는 경우 초기값을 적는다.


3. 입력이 있으면 입력 자료를 가정한다.


4. 외부로부터 입력을 받아서 처리하는 경우 문제의 의도에 맞는 입력자료를 가정하여 종이에 표기한다.


5. 제어흐름은 3번이상 따라간다.


작성한 제어논리는 반복구조가 보통 사용된다. 따라서 이와 같은 반복구조가 우리가 원하는 만큼 제대로 반복을 수행하는지 파악해 보아야 한다.


6. 반복 탈출 조건은 반드시 검사해 본다.

'매일코딩 > 알고리즘' 카테고리의 다른 글

8.알고리즘 - 검토  (0) 2016.11.06
7.알고리즘 - 설계  (0) 2016.11.06
6.알고리즘 - 분석  (0) 2016.11.06
5.알고리즘 - 소프트웨어 생명주기  (0) 2016.11.06
4.알고리즘 - 식과문장&제어문  (0) 2016.11.03
3.알고리즘 - 기억저장소  (0) 2016.11.03



설계


자료명세서에 정리된 데이터들, 상수 혹은 변수들을 시작기호 바로 밑에 준비기호를 작도하고, 내용으로 쉼표로 구분하여 적어야한다.

자료명세서에 정리된 대로 기호상수, 출력, 입력, 처리, 추가자료 순서대로 적는다.


예) 기호상수는 기호상수명칭= 상수값 형식으로 기술 하면된다. SUBJECTCOUNT = 2.0 


변수의 초기화 표현도 변수명칭= 초기값 형식으로 기술해야 한다. 초기값은 반드시 상수이어야 한다.

number 는 누적에 사용되므로 반드시 초기화 해야한다.

그러나 바로 number의 초기값을 설정하는 것 보다 제어논리를 작성하고, 검토하면서 초기값을 설정하는 것이 더욱더 쉽게 초기값을 설정할 수 있다.

그러나 이번에는 number가 1부터 시작되어야 하므로 바로 0으로 설정할 수 있다.


'매일코딩 > 알고리즘' 카테고리의 다른 글

8.알고리즘 - 검토  (0) 2016.11.06
7.알고리즘 - 설계  (0) 2016.11.06
6.알고리즘 - 분석  (0) 2016.11.06
5.알고리즘 - 소프트웨어 생명주기  (0) 2016.11.06
4.알고리즘 - 식과문장&제어문  (0) 2016.11.03
3.알고리즘 - 기억저장소  (0) 2016.11.03





분석


-문제이해


반드시 입력받아야 하는 값이 있는가?


정해진 상수가 있는가?


결과를 도출할 수 있는 공식이나 절차가 있는가?


(문제이해 단계는 문제에서 요구하는 결과와 주어진 조건을 파악한 후 컴퓨터 기본기능과 3가지 기본 제어구조를 적용하여 수작업으로 문제를 풀어보는 단계)




-자료명세서


자료를 찾아내는 단계에 따른 구분


출력자료: 외부로 출력되는 자료를 저장하는 기억장소

입력자료: 외부로부터 입력되는 자료를 저장하는 기억장소

준비자료: 문제 이해단계에서 입력과 출력이 아닌 자료를 저장하는 기억장소

기호상수: 상수에 대한 명칭정의

처리자료: 처리과정에서 발견되는 자료를 저장하는 기억장소

추가자료: 설계를 진행하면서 필요한 자료를 저장하는 기억장소




-처리과정


구체적인 방법보다는 무슨일을 할 것인가 만을 기술합니다.

입력, 치환, 산술, 관계, 논리, 출력의 기본 기능 단위로 한 번에 한가지 일만 기술합니다.

반드시 목적어 + 동사 형식으로 기술합니다.



'매일코딩 > 알고리즘' 카테고리의 다른 글

8.알고리즘 - 검토  (0) 2016.11.06
7.알고리즘 - 설계  (0) 2016.11.06
6.알고리즘 - 분석  (0) 2016.11.06
5.알고리즘 - 소프트웨어 생명주기  (0) 2016.11.06
4.알고리즘 - 식과문장&제어문  (0) 2016.11.03
3.알고리즘 - 기억저장소  (0) 2016.11.03




소프트웨어 생명주기


폭포수 모형


개발 전 단계(타당성 조사,예측,계획) - 요구사항수집- 분석- 설계- 구현-테스트-운영/평가- 유지보수



상세설계


1.문제이해단계 : 소프트웨어 개발자가 문제를 수작업으로 해결할 능력이 있어야 개발 할 수 있다.





2.자료명세서와 처리과정 작성단계 : 소프트웨어가 무엇을 할 것인가 정리하는 단계.

 

어떤 값을 구할 것인가? 수집된 요구사항을 바탕으로 파악한 데이터를 이용하여 어떤 처리를 어떤 순서에 의하여 할 것인가를 정리하는 단계


문제에서 처리해야 하는 데이터들을 찾고, 그 데이터들을 구하는 처리들을 결정하고, 처리들을 어떤 순서로 나열할 것인지정리하는 단계



3.순서도 작도 단계


4.구현


5.테스트


6.컴토 및 평가







'매일코딩 > 알고리즘' 카테고리의 다른 글

7.알고리즘 - 설계  (0) 2016.11.06
6.알고리즘 - 분석  (0) 2016.11.06
5.알고리즘 - 소프트웨어 생명주기  (0) 2016.11.06
4.알고리즘 - 식과문장&제어문  (0) 2016.11.03
3.알고리즘 - 기억저장소  (0) 2016.11.03
2.알고리즘 - 순서도  (0) 2016.11.02




식: 프로그래밍언어에서 어떤 값을 구하기 위해 데이터들과 연산자에 의해 조합된 표현 단위

예) 산술식, 관계식, 논리식, 치환식


참고: 컴퓨터는 정수형 데이터에 대해서는 나누기 연산을 사용할 수 없다.

관계연산중 등가연산(=)은 반드시 정수 값에 대해서만 사용한다!





제어구조: 특별한 기능을 수행하기 위해 단일 연산식이나 수행순서를 기술해야 하는데 이것을 제어 논리라고 한다.

이러한 제어 논리를 작성하는데 순차구조, 선택구조(TRUE or FALSE), 반복구조(EOF) 세가지 제어구조만으로 작성할 수 있다.




기억저장소:어떤 처리를 하는데 필요한 모든 명령어와 관련된 데이터는 주기억장치에 두고 , 중앙처리장치에서 하나씩 

꺼내어 쓴다. 



컴퓨터의 정보처리 단위: bit, byte , word


8개의 비트를 조합하면 0 ~ 9 까지 A 에서 z 까지 그리고 영문자 특수기호를 표현 할 수 있다.


8개의 비트가 묶어진 정보처리 단위를 byte 라고 한다.


byte는 컴퓨터와 사람간 정보를 교환하는 단위로 컴퓨터가 처리하는 최소한의 입출력단위이다.


word는 데이터들이 주기억장치에서 중앙처리장치로 복사될때 한번에 읽어져 복사되는 비트의 그룹단위이다.



컴퓨터에서는 바이트 단위로 주소를 부여한다.(절대주소). 하지만 절대주소를 사용해서 데이터를 저장한다면

불편하다. 그래서 데이터 저장 주소 사용을 쉽게 하기 위해서 변수와 상수를 이용한다.


자료유형: 기억저장소에 저장되는 값에 따라 기억장소의 크기가 결정되어야 한다.

그래서 기억장소의 크기에 대한 정보를 표현하기위해 자료유형을 사용한다.

(종류-실수 문자 문자열 논리 날짜 통화)


기억장치 관리방식 - 할당과 해제


응용소프트웨어를 사용할때 필요한 기억저장소 만큼 운영체제에 사용허가를 받아야한다. 

운영체제에 기억장소를 요청하고, 사용할 수 있는 권한을 받는 작업을 기억장소 할당이라고 한다.

그리고 사용하지 않을 때는 다시 운영체제에게 사용 허가 권한을 반납해 주어야 한다.

이런 작업을 기억장소 할당 해제라고 한다.그래야 다른 소프트웨어들에 의해서 반납된 기억장소들을

사용할 수 있다.



선언과 정의 - 데이터를 저장할 기억장소에 대해 할당과 할당 해제를 프로그래밍에서는 변수 선언과 정의

라고 한다.정의는 실제로 기억장소의 크기를 저장하는 표현방법이다.



할당된 기억장소에 값을 저장하는 방법들로는 초기화, 입력 그리고 치환이 있다.



초기화: 기억장소의 할당과 동시에 할당된 기억장소에 최초로 원하는 값을 저장해서 쓰레기를 치우는 작업.

특히 누적 처리를 할때는 반드시 초기화를 시켜야 한다.



치환식에서 등호를 기준으로 왼편은 왼쪽 값 , 즉 주기억장치에 저장된 값, 오른쪽편은 오른쪽 값, 즉 

레지스터에 저장된 값이라고 한다.

왼쪽값에는 항상 변수만 사용할 수 있다. 오른쪽 값은 주기억장치에있는 값을 복사해서 중앙처리장치에 있는

레지스터로 저장한 값을 말한다. 






순서도: 컴퓨터로 처리하고자 하는 문제를 이해하여 그 처리 순서를 단계화 하고,

일정한 기호를 사용하여 일처리 순서를 일목요연하게 나타낸그림


*토큰


1.예약어 : AND, EOF, NOT, OR START,STOP 등..


2.식별자: 배열, 변수, 기호상수(바뀌지 않는 값 정수,실수,문자,논리,문자열 상수가 있다)


3. 연산자: = + - / 등...


4. 기호: 단말기호: START, STOP   , 준비기호 : 초기값 , 입출력기호

   처리기호, 비교및 판단 기호, 연결자 기호


소프트웨어 






1.중앙처리장치 : 프로그램의 명령어를 해독하여 그에 따라 실행하는 장치

                   기억, 연산, 제어 담당


2.주 기억장치: 중앙처리장치와 직접 데이터를 교환 할 수 있다.


3.램 : 데이터를 기록하고 판독 할 수 있다.


4.보조 기억 장치 : 주기억 장치(rom ,ram )의 기억 용량이 부족 할때 보조.



- 중앙처리장치는 보조기억장치에 저장된 프로그램으로 부터 명령어를 읽어 들일 수 없고


주기억장치에 있는 프로그램으로부터 명령어를 읽어 들일 수 있다.


따라서 소프트웨어를 설치만 하고는 그 기능을 사용할 수 없고 실행을 해서 주 기억장치인


ram에 올려야한다.


또한 보조기억장치에 있는 프로그램을 주기억장치인 램에 복사하는 작업을 적재 (LOAD)라고 한다.






*소프트웨어 분류


- 소프트웨어는 컴퓨터를 동작시키는 시스템 소프트웨어와 시스템 소프트웨어에 의해 실행되어지고,

사용자가 원하는 일을 수행하기 위해 만들어진 응용소프트웨어가 있다.




*소프트웨어 실행방식


프로그램 명령어와 데이터는 하드디스크 혹은 네트워크상의 어딘가에 저장 된다.

프로그램이 실행될때 중앙처리장치가 읽을 수 있도록 프로그램과 데이터를 주기억장치인 램에

복사하여 저장하게 된다. 그럼 중앙처리장치는 프로그램으로 부터 한번에 하나씩 명령어를 읽어

해석하여 명령어의 지시대로 데이터를 읽고 변경하고, 차후에 필요한 데이터이면 주기억장치인

램에 데이터를 쓰거나 보조기억장치인 하드디스크에 저장한다.



이때 주목할 내용은 명령어나 데이터를 주기억장치에 적재할 때 중앙처리장치에 의해서 읽혀질

명령어와 데이터가 복사된 기억장치의 영역, 즉 기억장소들의 위치들이 결정되어 진다. 

컴퓨터는 기억 장소의 위치를 16진의 정수 값으로 부여하게 되며, 그 값을 주소라고 한다. 



- 주기억장치에 있는 값을 왼쪽 값이라고 하고, 중앙처리장치의 레지스터에 있는 값을 오른쪽 값

이라고 한다. 오른쪽 값 만이 처리에 사용되어 변경되는 것이지, 왼쪽 값은 덮어 쓰기를 하지 

않는 한 절대 변경 되어 지지 않는다.



- 중앙처리 장치에 있는 기억장치인 레지스터에 복사되었다면 산술 및 논리 연산장치에 의해

명령어가 실행된다.



- 처리한 값을 다시 주기억장치에 쓰기를 할때 원래 있던 값이 덮어 쓰기가 된다. 

그러면 주기억장치에 있던 값은 영원히 사라진다. 또한 반영구적으로 보관할려면 보조기억장치에

값을 저장해야 한다.그러면 컴퓨터를 껐다가 다시켜도 다시 프로그램을 사용할 수 있다.




* 컴퓨터의 기본기능

입력, 기억, 연산, 출력, 제어


*프로그램을 만든다는 것은 문제를 해결하는 것



+ Recent posts

티스토리 툴바