본문 바로가기
컴퓨터 구조

소프트웨어 - 프로그래밍

by kkong93 2023. 1. 1.
반응형

프로그래밍 개요

컴퓨터 프로그래밍(computer programming) 또는 프로그래밍(programming) 특정한 프로그래밍 언어를 이용해 하나 이상의 문제, 알고리즘, 체계 등을 구체적인 컴퓨터 프로그 램으로 구현하는 기술을 말한다. 수식이나 작업을 컴퓨터에 알맞도록 정리해서 순서를 정하고 컴퓨터 명령어로 고쳐 쓰는 작업을 총칭해서 프로그래밍이라 하고, 컴퓨터의 명령 코드를 작성하는 작업을 코딩(coding)이라고도 한다.

 

하나의 프로그램은 자료 형태와 구조를 설명하는 선언부와 특정한 일을 해결하도록 절차를 설명해 주는 처리부가 존재한다.

선언부에서는 파일명이나 변수명을 선인할 있다. 파일명 선언은 프로그램 에 필요한 자료 파일이 어디 있고, 어떤 이름으로 저장되어 있는지 알려주는 정보이다. 변수명 선언은 프로그램에서 사용하게 데이터가 저장될 공간을 선언하는 것이다.

 

프로그래밍 언어

(1) 기계어

기계어는 컴퓨터 논리회로가 바로 알아들을 있는 언어로 0 1 이루어져 있다. 초장 컴퓨터에서 스위치를 이용하여 0과 1로된 신호를 전달하던 것이 기계어의 일종이다. 기종에 따라 논리회로의 설계가 다르게 되어 있기 때문에 기계어는 컴퓨터의 기종마다 다르다는 문제가 있다.

 

(2) 어셈블리어

어셈블리어는 영문자로 이루어진 언어로 0과 1로 이루어진 기계어와 1 대 1로 대응된다.

어셈블리어는 사람이 읽기 편한 언어로 되어 있기 때문에 기계가 알아들을 있는 언어로 변경하기 위해서는 어셈블러라는 해석기가 필요하다.

 

(3) 고급 언어

고급언어는 인간에 가장 가까운 언어로, 기계어나 어셈블리어에 비해 사용하기 가장 편한 언어이다. 쉽게 배울 있으며, 컴퓨터 기종에 관계없이 한번 만들어진 프로그램은 어느 프로그램에서 설치하여도 사용할 있는 장점이 있다. 그러나 고급언어로 작성된 프로그램을 실행하기 위해서는 컴퓨터 기종에 맞는 기계어로 번역해주는 컴파일러나 인터프리터 등을 이용해야 한다는 단점이 있다.

 

프로그래밍 언어의 종류

(1) 구조적 프로그래밍

구조적 프로그래밍(Sructured Programming) 구조화 프로그래밍으로도 불리며 프로그 래밍 패러다임의 일종인 절차적 프로그래밍의 하위 개념으로 있다.

구조적 프로그램은 조각의 코드를 이해하기 쉬운 크기의 작은 하부 프로그램으로 나누어야 한다. 일반적으로 프로그램은 전역 변수는 거의 사용하지 않아야 하고 대신에 하부 프로그램은 지역 변수를 사용하거나, 값이나 참조에 의한 인자를 받아야 한다. 이런 기법은 전체 프로그램을 번에 이해하지 않고, 분리된 작은 코드 조각을 쉽게 이해하는데 도움을 준.

 

(2) 구조적 프로그래밍의 종류

∙ FORTRAN

∙ COBOL

∙ APL

BASIC

RPG

PL/1

Logo

LISP

C 언어

FORTH

PROLOG

Ada

 

(3) 객체 지향 프로그래밍

객체 지향 프로그래밍(OOP "oop" 발음) 데이터를 처리하기 위해 데이터와 데이터를 조작하는 명령을 조합하여 다른 프로그램에서도 사용될 있도록 하므로 객체(Object) 생성하는 프로그래밍 방식이다.

객체란 미리 조립된 프로그래밍 모듈로 데이더 묶음과 이 데이터에서 실행되어야 하는 처리 명령어를 함께 포함하는 것을 의미한다. 이것을 캡슐화라고 한다. 객체는 프로그램의 일부분이 되어 수행될 수도 있고 그렇지 않을 수도 있다. 이는 메시지가 전송되는 등의 행위가 일어날 때 수행될 수 있다. 객체의 데이터는 객체에 속하는 처리 명령어의 범위에 속한다. 객체 내에 있는 데이터에서 수행되는 연산에 관한 명령어들을 메쏘드(Method)라 부른다.

객체 지향 프로그램에는 가지 특징인 캡슐화, 상속성, 다형성 있다. 캡슐화는 객체가 데이터와 데이터에 대한 처 명령 모두를 포함한다는 것을 의미한다. 객체가 일단 생성되면 이는 다른 프로그램에서 재사용 될 있다. 객체의 용도는 또한 클래스와 상속성의 개념을 통해서 확대될 있다.

 

(4) 객체 지향 프로그래밍의 종류

Smalltalk

C++

Hypertalk

Delphi

Power Builder

Java

Visual Basic

C#

 

소프트웨어 개발

(1) 프로그램 요구 인지 단계

현실에서 우리는 문제를 인지하고 목적을 세워 해결하는 과정을 반복한다. 프로그래밍도 이와 같이 문제를 인식하고 목적을 세워 해결하는 과정이 반복된다. 즉, 프로그래밍 제작의 이유를 명확히 한 후, 해당 프로그랩의 목적을 세워 해결해야 한다. 이때, 프로그래머는 입력을 명시하기 전에 결과물(시스템 설계자가 시스템에서 얻으려고 하는 것)을 이해해야 하며, 결과물과 그 안에 담겨야 할 정보를 명확히 해야 한다.

프로그래머는 요구되는 입력을 사용자와의 회의를 통해 명확하게 정해야 하며, 입력이 처리되는 과정과 출력물을 명확히 해야 한다.

마지막으로, 프로그래머는 사용자의 요구가 프로그램 구현이 가능한지를 점검해야 하며, 모든 과정을 문서화해야 한다.

 

(2) 프로그램 설계 단계

프로그램 설계 단계는 요구사항 분서 단계에서 산출된 요구사항 분석 명세서의 기능을 실현하기 위한 알고리즘과 자료 구조를 문서화하는 단계이며, 가지 작은 단계로 설계된다. 첫째, 계층 차트를 사용하여 하향식 접근과 모듈화를 통하여 프로그램 논리를 결정한다. 둘째. 유사코드를 사용하여 서술체나 순서도를 이용한 그래프나 또는 다를 사용하여 상세 설계를 한다. 마지막으로 구조적인 검사 방법으로 설계를 시험한다.

 

(3) 프로그램 제작 단계

프로그램을 작성하는 것을 코딩이라 부른다. 프로그래밍 언어는 컴퓨터에게 어떠한 동작을 수행할 것인지 말해주는 규칙의 집합이다. 프로그래머는 개발하고자 하는 프로그램에 최적화된 인어를 선택하여 프로그램 제작을 수행한다.

 

(4) 프로그램 테스트 단계

프로그램 테스트는 오류 제거, 실제 데이터의 운용 등을 포함한다. 또한, 디버깅을 수행하여 컴퓨터 프로그램에서 모든 오류를 발견하고 위치를 확인하여 그것을 제거한다.

오류에는 문법적인 오류와 논리적인 오류가 있다. 문법적인 오류는 타이핑의 오타나 프로그래밍 언어의 부정확한 사용에 의해 발생할 수 있으며, 논리적인 오류는 제어 구조의 부 정확한 사용에 의해 발생한다. 검사를 하고 디버깅을 수행한 , 베타 시험이라고 불리는 실제 데이터 실사용자로 시험하는 것이 필요하다. 

 

(5) 유지보수 단계

유지보수는 프로그램을 동작될 있는 조건으로, 오류가 없고 최신의 프로그램으로 유지하는 활동을 의미한다. 

반응형

'컴퓨터 구조' 카테고리의 다른 글

데이터베이스의 특징  (0) 2023.01.01
데이터 베이스  (0) 2023.01.01
소프트웨어 - CPU 스케줄링  (0) 2023.01.01
소프트웨어 - 운영체제의 목적  (0) 2023.01.01
소프트웨어  (0) 2023.01.01

댓글