소프트웨어의 종류
- 소프트웨어( Software ? )
소프트웨어는 하드웨어가 다양한 목적의 작업을 수행할수 있도록 지시하는 일련의 명령어로 구성된 여러가지 프로그램들과 이와 관련된 데이터를 총칭하는 의미의 용어이다.
- 시스템 소프트웨어
시스템 소프트웨어는 컴퓨터 사용자가 손쉽게 컴퓨터를 사용할수 있도록 도와주는 동시에 컴퓨터 시스템을 효율적으로 운영해주는 기능을 갖춘 프로그램의 집단이다. 시스템 소프트웨어의 종류는 아래와 같다
1) 운영체제
하드웨어를 감싸고 제어하면서 사용자와 컴퓨터 시스템간의 매개체 역할을 하는 프로그램.
운영체제 History
+ 1950년 프로그램과 데이터를 함께모아 일괄처리를 수행
+ 1960년 다양한 주변장치 사용가능, 여러개의 작업을 주기억장치에 적재하여 실행하는 다중프로그램 도입, 시분할 시스템 도입으로 다중 사용자를 위한 대화식 시스템 개발
+ 1970년 일괄처리, 시분할처리, 실시간처리를 모두 지원하는 다중모드 시분할 시스템 으로 발전, 네트워크의 중요성이부각되어 LAN , 이더넷이사용되면서 보안유지를 위해 암호화 의 중요성 부각되었다.
+ 1980년 개인용, 워크스테이션의 등장으로 대형컴퓨터의 강력한 기능을 갖는 데스크톱형 소형컴퓨터 구축이 가능
+ 1990년 이후 그래픽 사용자 인터페이스(GUI) 가 보편적으로 활용되기 시작하고 하드웨어 성능향상이 비약적으로 이루어졌다.
* 운영체제 역할
1) 사용자가 컴퓨터와 대화 할수 있도록 인터페이스 관리해준다. (대화식)
2) 컴퓨터에서하드웨어 장치 를 관리한다.
3) 디스크에 있는 파일시스템을 관리하고 보존한다.
4) 프로그램들이 원할하게 실행할수 있도록 관리하고 지원한다.
운영체제 종류
1) Microsoft Windows : 대중에 많이 사용되고 있는 운영체제이다.
2) UNIX : 다른 운영체제에 비해 오래됬고, 1970년대 벨 연구소에서 처음개발되었다. 현재 유닉스는 크게 두가지 계열로 나뉘어진다.
AT&T에서 개발된 System V(1969, Ken Thompson)
버클리 대학에서 개발한 BSD UNIX(1972, Dennis Ritchie)
3) LINUX : GNU 프로젝트의 자유소프트웨어 (Free software)이념이 입각하여 GNU GPL(General Public License , 일반 공중 사용권)에 따라 인터넷을 통해 무료로 배포하고 있다. 리눅스는 프로그램 소스코드가 공개되어 있어 프로그래머가 원하는대로 특정 기능을 추가할수 있는 장점을 가지고 있다.
CentOS , Ubuntu , Devian, Redhat 등 많은 배포판이 존재한다.
4) OS X : 애플의 매킨토시 컴퓨터에 사용되는 운영체제 이다. 맥 OS 의 가장큰 특징은 사용자에게 친숙한 GUI를 제공한 최초의 PC용 운영체제 라는점과 매킨토시 컴퓨터에 한정적인 운영체제란 점이다.
2) 언어번역기
컴퓨터가 실행하는 프로그램은 기본적으로 컴퓨터가 이해하여 실행할수 있는 명령으로 구성된다.
프로그래밍 언어로 작성된 소스코드를 컴파일러나 인터프리터 같은 언어번역기로 컴퓨터가 이해할수 있는 기계어로 번환해준다. 변환된 프로그램을 목적프로그램(Object Program)으로 변환해준다.
언어번역기 종류
(1) 컴파일러 : 소스코드를 한번다 다 해석하는 방식 (C++ , Java PORTAN 등 많은 언어가 컴파일러사용)
(2) 인터프리터: 소스 코드를 한줄한줄씩 해석하는 방식 (스크립트 언어가 인터프리터 를 많이채택했었다. )
3) 유틸리티 프로그램
유틸리티 프로그램은 컴퓨터 시스템 최적화, 관리 목적으로 만들어 사용자가 필요할때마다 사용할수 있도록 제공하는 프로그램이다.
(1) 파일관리 유틸리티
(2) 백업소프트웨어
(3) 데이터 압축 유틸리티
(4) 디버깅 유틸리티
(5) 텍스트 에디터
(6) 디스크 관리 유틸리티
(7) 안티바이러스 유틸리티
(8) 스크린 세이터
- 응용 소프트웨어
응용 소프트웨어는 컴퓨터 사용자들이 특정 분야의 응용을 목적으로 사용할수 있도록개발된 프로그램이다.
- 사용자 프로그램
컴퓨터의 개별 사용자나 조직, 전산실에서 그들의 필요에 따른 응용목적을 달성하기 위해 제작되는 응용프로그램을 의미한다.
- 응용 패키지 프로그램
표준화 되고 특성화 된 프로젝트에대해서 사용자들이 쉽게 환용하도록 소프트웨어 개발회사에서 제작된 프로그램을 말한다. 대표적으로 워드프로세서 , 탁상출판, 스프레드 시트 등이있다.
소프트웨어의 개발
- 프로그래밍 언어
저급언어(Low level Langeuage ) 하드웨어 지향의 기계중심의 언어
+ 기계어 : 1세대 프로그래밍 언어, 사람이 이해하기 힘든 2진수로된 코드
+ 어셈블리어 : 2세대 언어 , 기계어 명령어를 알기쉬운 코드로 표시하여 사용한것, 속도가 빠르고 주기억장치를 매우 효율적으로 사용할수 있지만, 서로다른 기종사이에는 어셈블리어가 일치하지 않아 호환성이 매우 나쁘다.
고급언어(High level Langeuage ) 응용 소프트웨어 지향의 사람친화 중심의 언어
+ 3세대 프로그래밍언어 : 컴파일러나 인터프리터와 같은 번역기가 필요하다.
(1) 절차지향 언어 : 주어진 문제 해결을위해 적절한 순서로 나열하는 작업의 처리흐름 을 설계에 주안점. 순차적흐름, 조건에 따른 선택적흐름, 반복 등 정형화된 처리 절차를 활용하여 전체적인 흐름을 설계하도록 발전.
(2) 객체지향 언어 : 재사용성및 유지보수의 중요성이 커지명서 객체지향(Object -Oriendted) 방식의 프로그래밍 패러다임으로 주목받았다. 객체지향에서 제공하는 개념 , 객체(Object) , 클래스(Class), 상속 (Inheritance) 등이 있다.
잘설계된 클래스는 다른 응용프로그램 개발에도 활용함으로써 소프트 웨어 개발의 생산성을 높이는데 기여할수 있다.
+ 4세대 프로그래밍 언어 : 3세대 프로그래밍 언어는 프로그램의 흐름제어 설계하고 프로그램으로 작성을 컴퓨터 전문가에게 맡겼다면, 4세대 언어는 소프트웨어에 맡기는 언어를 뜻한다.
4세대 언어를 문제해결형 언어, 비절차적 언어라 한다.
SQL, R , SPSS등이 있으며, 단점으론 3세대 언어에 비해 프로그래밍 효율성이 떨어지고, 속도가 느리고 많은 저장공간을 사용하기도 한다.
+ 5세대 프로그래밍 언어 : 5세대 언어는 인공지능 구현이나 전문가 시스템을 위한 언어이다.
5세대 프로그래밍언어는 프로그래머가 설계한 알고리즘에 따라 동작하는 프로그램을 만든다기보다는 주어진 문제에 대해 제공하는 규칙, 제약사항등을 이용하여 문제를 해결하는 방식의 언어로, 함수형 언어, 논리형 언어등의 선언형 언어들을 흔히 제 5세대 언어로 분류한다.
종류로는 Prolog, 매카시 등 이있으나 아직 실용적으로 유용성있는 결과를 만들어내지는 못하고 있다.
- 알고리즘
프로그램을 작성하기 위해서는 주어진 작업을 수행하기 위한 정확한 처리, 절차를 잘 설계해야한다.
유한한 자원및 시간 안에서 주어진 작업을 완료할수 있도록 유한한 처리단계로 구성된 효율적인 처리 절차를 일정한 형식으로 표현한것을 알고리즘(Algorithm) 이라고 한다.
순서도 (flowchart) , 의사코드(pseudocode) , 프로그래밍 언어를 사용하여 알고리즘을 표현한다.
- 순서도 (Flowchart)
예제문제 ) 수를 입력받아 홀수면 홀수를 출력 짝수일경우엔 짝수를출력
순서도로 나타내기.
의사코드 (Psuedocode 의 예)
Function 짝수_홀수검사
input Number;
IF Number mod 2 == 0 THEN
print "짝수";
ELSE
print "홀수";
END;
- 소프트웨어의 개발과정.
전형적인 고전적 소프트웨어 개발 방법록에서는 계획, 요구, 분석, 설계 , 구현 , 시험, 유지보수 라는 개발 단계를 제시하고 있다.
소프트웨어의 사용권
- 소프트웨어 사용권
소프트웨어의 사용권은 소프트웨어의 사용, 배포 수정 등과 관련하여, 허용되는 법적인 권한을 정한것이다.
최종사용자 사용권 동의서 (end-user license agreement, EULA)를 확인하고 동의함으로써 명시돈 사용권한을 갖는다.
- 사유 소프트웨어
사유소프트웨어에 해당되는 소프트웨어의 일종인 셰어웨어(Shareware) ,체험판 , 평가판은 판매를 위해 제작된 소프트웨어 이지만, 사용자게 일정기간 또는 정품에 비해 제한된 기능만을 사용할수 있도록 무료로 제공하는 소프트웨어.
- 프리웨어
프리웨어, 공개판 소프트웨어 라고하며, 사용권에 대한 비용이 없이 사용할수 있도록 허용된 소프트웨어이다.
이러한 사용권은 개인이나 기관/기업에 따라 다르게 적용될수있고, 사용목적에 따라 변경될수도 있다.
Project 'GNU'
소프트웨어의 자유로운 활동을 장려해야한다는 움직임의 취지이다. 사용자가 소프트웨어를 사용하고 공유(복제, 배포) 하며 분석하고 수정할수 있는 자유를 누리게 할것을 주장한다.
GNU GPL은 독점적 의미를 갖는 저작권과 반대되는 카피레프트 (copyleft)사용권이다.
- 기업활동과 정보시스템의 발전
MIS (Management Information Systems) 기업경영을 위해 필요한 전략적 의사결정을 효율적이고 효과적으로 수행하위한 정보관리 시스템
일반적으로 경영활동 유형별로 거래시스템, 경영정보시스템, 의사결정지원 시스템 3개로 나뉘어진다.
컴퓨터의 구성과 동작 (0) | 2019.05.06 |
---|---|
기억장치의 설명 (0) | 2019.05.06 |
디바이스 기술 - SoC/MEMS (0) | 2019.05.03 |
데이터의 입력과 점검 (31) | 2019.04.25 |
보조기억장치와 데이터 저장 (0) | 2019.04.24 |
유비쿼터스 컴퓨팅을 위한 핵심 기술과 전망 (0) | 2019.04.18 |