자격증/정보처리기사

정보처리기사-소프트웨어의 분류와 특성

비뀨_ 2022. 3. 18. 01:36

소프트웨어란?

컴퓨터 소프트웨어는 컴퓨터에게 동작 방법을 지시하는 명령어 집합의 모임이다.

프로그램 소프트웨어는 컴퓨터 하드웨어에 직접 명령어를 주거나 다른 소프트웨어에 입력을 제공함으로써, 명령어의 기능을 수행한다.

-위키백과

 

공통점을 살펴봐서 요약을 해보자면 소프트웨어는 명령을 내리는 프로그램이라고 할 수 있다.

정보처리기사에서는 흔히 쓰는 상용 소프트웨어에 대한 부분을 언급하기 때문에 상용 소프트웨어로 눈을 돌려보자.

 

1. 상용 소프트웨어

상용 소프트웨어의 개념

  • 상업적 용도(판매 등)로 생산되는 소프트웨어.
  • 대부분은 Source Code를 제공하지 않고, 기계어로 제작 된 파일만 제공해 수정 삭제 추가 등이 불가함.
    • Source Code - Java, C 언어 등 프로그래밍 언어로 작성된 프로그램

 

상용 소프트웨어의 구분

상용 소프트웨어는 사용되는 용도에 따라 구분한다. 소프트웨어를 앞으로 SW로 표기할 것임.

  • 산업 범용 SW :, 미들웨어, 응용 SW
    • 시스템 SW : 운영체제, 데이터 관리, 스토리지 SW, SW 공학 도구, 가상화 SW, 시스템 보안 등
    • 미들웨어 : 분산 소프트웨어, IT 자원관리, 서비스 플랫폼, 네트워크 보안 등 조정 중개 역할
    • 응용 SW : 영상 처리, 음성 처리 등  운영 체제에서 실행되는 모든 소프트웨어
  • 산업 특화 SW : 자동차, 항공, 패션, 공공, 교육, 물류 등등 

 

2.시스템 소프트웨어

시스템의 정의

시스템이란 하나의 공통적인 목적을 가지고 있는 구성 요소들을 상호 결합해 놓은 집합체이다.

 

 

시스템 소프트웨어의 개념

시스템 SW는 응용 프로그램을 실행하기 위한 환경을 제공하고, 하드웨어를 동작 & 관리하는 소프트웨어이다.

CPU, 메모리, 파일들을 관리하는 소프트웨어다.

컴퓨터 사용자가 하드웨어의 구조와 특성을 몰라도 컴퓨터를 이용할 수 있도록 돕는 게 목적이다.

 

시스템은 기본적으로 입력, 출력, 제어, 처리, 피드백으로 구성이 되어있다.

  • 입력 : 시스템에 투입하는 것.
  • 출력 : 처리된 결과를 시스템에서 출력.
  • 제어 : 각 요소들이 과정을 올바르게 수행하는지 감독.
  • 처리 : 입력된 것을 처리 조건에 따라 변환or 가공
  • 피드백 : 처리된 결과를 측정하고 파악해 목표 도달했는가 검사. 불충분했을 때 다시 입력

흐름

 

3.플랫폼

플랫폼의 개념

일반적으로 플랫폼 하면 생각나는 것이 유튜브, 트위치, 넷플릭스 등이다.

이 플랫폼들은 사용자가 원하는 기능을 쉽고 편리하게 사용하도록 도와주는 환경이라고 생각할 수 있다.

 

다시 말하자면 플랫폼은 다음과 같은 개념이라고 생각하자.

  • 많은 응용 프로그램을 쉽고 편리하게 사용할 수 있도록 지원해주는 하드웨어나 SW 환경.
  • 응용 프로그램을 실행하기 위해 사용하는 하드웨어와 소프트웨어의 결합이다.
  • 플랫폼은 SW 개발과 운영을 편안하게 할 수 있도록 지원해 준다.
  • 동일한 플랫폼에서 개발된 SW는 언제 어디서나 쉽게 실행할 수 있다.

플랫폼의 성능 특성 분석 요소

플랫폼의 성능 특성을 분석할 때는 다음과 같은 항목들로 체크한다.

  • 가용성 : 요구하는 사용자에게 서비스를 제공할 수 있어야 한다.
  • 응답 시간 : 명령이 주어지고 반응하는 데 걸리는 시간.
  • 정확성 : 플랫폼에서 처리된 결과가 얼마나 올바른 값에 근접했는가
  • 사용률 : 하드웨어, SW, 네트워크의 자원을 얼마나 사용했는가

 

4.프레임워크 (FrameWork)

프레임워크의 정의

FrameWork는 Frame(틀,뼈대) + Work(일) 로 '짜여진 틀에서 일한다'라는 의미이다.

 

소프트웨어 프레임워크의 개념

  • 응용 프로그램 개발이나 문제 해결을 원활하게 하기 위해 설계 구현을 재사용이 가능한 형태제공하는 환경.
  • 효율적인 개발을 위한 라이브러리, 인터페이스, 설정 정보 등의 집합으로 재사용 가능하도록 뼈대 제공

소프트웨어 프레임워크의 특징

  • 모듈화 : 소프트웨어 설계에서 기능 단위로 분해하고 추상화 되어 재사용 공유 가능한 수준으로 만들어진 단위.
  • 재사용성 : 전체나 일부가 다른 목적으로 재사용 될 수 있는 정도
  • 확장성 : 추가 설계 없이 확장이 얼마나 쉽고 가능한가.
  • 제어의 역 흐름 (Ioc) : 프레임워크가 처리 흐름을 제어해, 개발자가 작성한 코드가 프레임워크의 제어를 받는 것.

프레임워크 사용 장점

  • 개발 용이 : 필요 기능들을 미리 제공 받아 빠른 시간에 개발 가능.
  • 품질 보증 : 뼈대를 이미 제공하기 때문에 품질 보증.
  • 변경 용이 : 새로운 기능을 추가/변경하는데 좋다.
  • 유지보수 용이 : 변경 용이와 비슷.
  • 재사용성 향상 : 컴포넌트들을 다른 곳에서도 쉽게 사용 가능하다.
  • 표준화율 향상 : 설계, 개발 등 시스템 전반에 걸친 표준 제시 가능.
  • 상호 운용성 향상 : 전자 정부 표준 프레임워크 기반으로 개발된 시스템 간에 연계 용이.

5.기업용 소프트웨어

오피스웨어 (OfficeWare)

  • 회사나 단체에서 사용되는 소프트웨어
  • 워드프로세서, 프레젠테이션, 스프레드시트 등 업무용 오피스SW와 그룹웨어를 포함하는 기업용 SW
  • 조직의 업무 활동을 지원

ERP (Enterprise Resource Planning : 전사적 자원 관리)

  • 기업의 의사 결정을 위한 소프트웨어
  • 경영 활동 프로세스들을 통합적으로 연계해 관리
  • 기업에서 발생하는 정보들을 서로 공유, 새로운 정보의 생성신속한 의사 결정을 도와줌으로써 회사 전체 차원 ( 전사적)으로 자원을 관리한다. 

SCM ( Supply Chain Management : 공급망 관리)

  • 부품 공급자 지원하는 소프트웨어
  • 물류의 흐름을 하나의 가치 사슬 관점에서 파악, 필요한 정보가 원활히 흐르도록 지원하는 기술

BI ( Business Intelligence )

  • 기업에서 데이터를 수집, 정리,분석하고 활용해 의사결정을 지원하는 소프트웨어

CRM (Customer RelationShip Management)

  • 고객 특성에 기초한 마케팅 활동을 돕는 소프트웨어

6.컴포넌트 (Component)

컴포넌트는 독립적인 기능을 수행하는 소프트웨어 모듈이다.

  • 부품화 된 프로그램을 모듈.
  • 모듈의 집합을 라이브러리
  • 라이브러리의 집합을 컴포넌트라고 한다.

컴포넌트는 라이브러리를 기능별로 분류하여 지원하며 독립적으로 사용될 수 있다.

 

CBD ( Component Based Development : 컴포넌트 기반 개발)

  • 재사용이 가능한 개발 방법론이다.
  • 개발 기간 단축으로 생산성과 품질 높일 수 있다.
  • 유지보수 비용 줄일 수 있다.
  • 시스템을 신속하게 구축, 개로운 기능 추가 및 확장 용이하게 한다.

7.소프트웨어 공학 (Software Engineering :SE)

소프트웨어 공학의 개념

1. 최소의 비용으로으로 높은 품질의 소프트웨어를 개발하기 위한 모든 도구 및 방법론.

2. 품질과 생산성 향상을 목적으로 연구하는 학문.

 

소프트웨어 공학의 기본 원칙

  • 현대적인 프로그래밍 기술 적용
  • 지속적인 검증
  • 결과에 관한 명확한 기록 유지
  • 품질 높은 소프트웨어 상품을 개발

 

소프트웨어 공학의 등장 배경

  • 시간과 비용 예측력이 부족해서
  • 개발된 것의 품질이 부족해서
  • 소프트웨어의 비용이커서
  • 유지보수 역할이 증대되어서
  • 기술의 급속한 발전을 따라가기 위해서
  • 소프트웨어에 대한 수요가 증가