프로그램 아키텍쳐/소프트웨어공학

소프트웨어의 개요 - 소프트웨어의 정의

본클라쓰 2010. 6. 18. 11:14

 

소프트웨어란 넓은 의미로 컴퓨터 하드웨어를 가장 효율적으로 사용하기 위한 모든 기술로써 컴퓨터 프로그래밍과 프로그램을 이용하기 위한 여러 가지 절차, 이에 관계되는 모든 문서들, 그리고 전산화된 데이터와 정보 등을 의미한다. 그러나 협의로 소프트웨어는 사용 중인 프로그램의 집단을 의미하기도 한다.

 

컴퓨터에서 쓸모 있는 지식이란 다루고 싶은 일 즉, 급여 계산과 같은 데이터처리, 복잡한 과학 기술 계산, 제품 공장의 제품 공정 제어와 같이 복잡한 일들을 컴퓨터가 어떤 순서에 따라 처리할 것인가를 알아듣게 만들어 놓은 일련의 명령 순서, 즉 프로그램이라고 부르는 것들을 의미한다. 이와 같이 프로그램을 작성하여 미리 기억장치 속에 넣어 주기만 하면 그 후에는 제어 장치가 이것들을 하나씩 꺼내어 해독하면서 사람의 개입 없이 컴퓨터가 자동적으로 모든 일을 수행하게 된다. 따라서 자동차와 같은 기계는 물건이나 사람을 운반하는데 쓰이는 특수 목적용이지만 컴퓨터는 기억장치에 어떤 프로그램을 넣어 주느냐에 따라 다른 기계와 달리 그 이용이 무한하다고 할 수 있다.

 

이처럼 효과적으로 컴퓨터를 운용하기 위하여 개발된 모든 프로그램의 집합체를 보통 '소프트웨어'라고 한다. 또한 소프트웨어 산업이란 복잡한 업무를 전산화하기 위해서 효과적이고 효율적인 프로그램을 작성하기 위한 기술 산업을 의미한다.

 

그런데 컴퓨터는 지시한 명령어 순서대로 신속 정확하게 수행하는 기계로써 컴퓨터 사용자가 잘못 지시했을 경우에도 그대로 수행한다. 따라서 우리가 컴퓨터를 이용하고자 하면 컴퓨터가 이해할 수 있는 언어에 의하여 유효적절한 지시를 필요로 하는데, 이와 같은 명령어 집합(Instruction Sets)을 소프트웨어 또는 프로그램이라고 하고 프로그램을 작성하는 것을 프로그래밍이라고 한다.

 

프로그램을 작성하고자 할 때는 우선 처리하고자 하는 문제를 분석하고 처리 순서와 데이터 입출력 방법을 결정한 후, 프로그램 순서도를 작성한다. 그리고 이 순서도에 따라서 컴퓨터에 필요한 언어를 선택, 기술하게 되는데 이를 코딩이라고 한다. 또한, 이와 같은 일을 담당하는 사람을 프로그래머라고 하며, 프로그래머에 의해서 작성된 프로그램을 사용자 프로그램 또는 응용 프로그램(Application Program)이라고 한다.

 

 

 

소프트웨어의 분류

 

소프트웨어는 인간의 자율 신경계와 비슷한 시스템 소프트웨어(System Software)와 이 시스템 소프트웨어의 감시와 보조로 어떤 특정한 요구에 맞추어서 문제를 해결해 주는 응용 소프트웨어(Application Software)로 분류할 수 있다.

 

 

 

시스템 소프트웨어의 종류

 

시스템 소프트웨어는 컴퓨터를 처음 켰을 때의 모든 작업들을 제어하고 사용자가 소프트웨어를 사용할 경우, 사용자의 작업 지시를 컴퓨터에 전달해 주는 역할을 수행한다. 따라서 시스템 소프트웨어를 운영체제라고 한다.

 

즉, 운영체제는 사용자와 하드웨어를 연결하는 가장 핵심적인 소프트웨어로써 시스템 소프트웨어는 시스템 운영(System Operation), 시스템 지원(System Support), 시스템 개발(System Development) 프로그램 등으로 구분할 수 있다.

 

시스템 운영 프로그램

 

시스템 운영 프로그램은 사용자의 프로그램의 수행되는 동안 그에 필요한 하드웨어와 소프트웨어를 관리해 주는 프로그램으로써 운영체제, 데이터베이스 관리 시스템, 통신 모니터 등으로 분류할 수 있다.

 

운영체제는 컴퓨터 시스템의 자원을 보다 효율적으로 관리하고 운영하여 시스템의 생산성을 향상시키며, 사용자들에게 컴퓨터 시스템 사용의 편의성(Facility)을 제공하는 프로그램의 집합체이다.

 

데이터베이스 관리시스템은 이용자의 데이터를 디스크 등의 저장장치에 저장하고 유지하여 쉽게 활용할 수 있도록 지원해 주는 소프트웨어이다. 다시 말해서 데이터베이스 관리시스템은 데이터베이스의 구성, 접근 방법, 유지 관리 등에 대한 모든 책임을 지고 있는 소프트웨어이다. 따라서 DBMS는 데이터베이스를 종합적으로 도식하고 접근하며 전체적으로 통제하는 소프트웨어들로 구성되어 있다.

 

통신 모니터는 현대는 컴퓨터와 통신이 함께 병합하여 '컴퓨터 네트워크'를 구성하고 있다. 즉, 컴퓨터와 컴퓨터 사이에 전자 통신 선로를 연결하기도 하고 단절하기도 한다. 이를 통해 데이터를 상호 송수신한다. 이 과정에서 송수신 과정의 오류를 검출하고 수정하는 등의 기능을 수행하는 프로그램 집단이 '통신 모니터'이다. 모니터(Monitor)란 작은 특수 기능을 수행하는 운영 프로그램을 의미한다.

 

 

시스템 지원 프로그램

 

시스템 지원 프로그램은 사용자 프로그램의 처리를 지원해 주고, 컴퓨터 시스템의 보안 등을 관장하는 프로그램으로써 서비스 프로그램, 시스템 측정 모니터, 시스템 보안 모니터 등으로 분류한다.

 

서비스 프로그램(Service Program)이란 컴퓨터 제조회사에서 사용자에게 제공해주는 프로그램으로써 사용자의 프로그램 작성 시간과 노력을 절감시켜 업무처리 능률을 향상시켜 준다. 사용자의 프로그램 작성 시간과 노력을 절감시켜 업무처리 능률을 향상시켜 준다. 서비스 프로그램에는 연결 편집기 프로그램(Linkage Editor Program), 라이브러리언 프로그램(Librarian Program), 유틸리티 프로그램(Utility Program), 그리고 정렬·합병 프로그램 등이 있다.

 

 

 

응용 소프트웨어의 종류와 특성

 

응용 소프트웨어는 시스템 소프트웨어의 지원과 협조를 받아서 사용자들의 문제를 해결해 주는 프로그램으로 대부분 고급 언어로 작성된다.

 

어떤 유용한 목적을 달성하기 위하여 프로그램을 미리 만들어 놓는 경우가 있는데, 이러한 프로그램을 응용 소프트웨어라고 한다. 응용 소프트웨어는 시스템 소프트웨어가 가동된 상태에서 작동하는 것으로 사업용이나 과학 계산용과 같이 사용자의 특별한 목적을 처리하기 위해 만들어진 모든 소프트웨어를 말한다. 예를 들면, 급여 프로그램, 고객 관리 프로그램, 주식 투자 분석 프로그램 등 그 종류도 매우 다양한다.

 

 

출처) 스마트 시대를 위한 컴퓨터 과학의 이해, 휴먼싸이언스, 이윤배 저