본문 바로가기
정보처리기사

정처기 정리 #1 소프트웨어 분류 및 특성

by 싼쵸 2022. 1. 22.
반응형

1. 소프트 웨어 분류 및 특성

상용 소프트 웨어

1 ) 상용 소프트 웨어 개념

  • 상업적 목적이나 판매를 목적으로 생산
  • 상업용으로 판매되고 유통되는 소프트 웨어
  • 홍보를 위한 무료 소프트웨어 포함
  • 대부분 원시 코드(source code)는 제공하지 않고, 실행코드(기계어로 된 파일)만 제공해 수정이나 추가 불가피

2 ) 상용 소프트웨어의 구분

  •  산업 범용 S/W
    •  시스템 S/W * 미들웨어 * 응용 S/W
  • 산업 특화 S/W
    • 자동차 등 13개

3 ) 상용 소프트웨어 분류

1. 상용 소프트 웨어

  • 산업 범용 소프트웨어 : 시스템 소프트웨어, 미들웨어, 응용소프트 웨어
  • 산업 특화 소프트웨어 : 자동차, 항공, 패션의류, 조선, 건설

2. 산업 범용 소프트웨어

  • 시스템 소프트 웨어: 운영체제, 데이터 관리, 스토리지 소프트 웨어, 가상화 소프트 웨어
  • 미들웨어 : 분산 소프트웨어, IT 자원 관리, 서비스 플랫폼, 네트워크 보안
  • 응용 소프트 웨어: CG/VR, 콘텐츠 배포, 자연언어 처리
  • 시스템 소프트 웨어

시스템 소프트 웨어

1 ) 시스템(System)

1. 정의

  • 하나의 공통적인 목적을 가지고 있는 구성 요소들을 상호 결합해 놓은 유기적인 집합체

2. 기본요소 * 기본 요소가 아닌 것을 찾는 문제 

  • 입력(Input): 처리방법, 제어 조건, 처리할 데이터를 시스템에 투입하는 요소
  • 출력(Output): 처리된 결과를 시스템에서 출력하는 요소
  • 처리(Process): 입력된 자료를 처리 조건에 따라 변환 및 가공하는 요소 
  • 제어(Control): 시스템의 기본 요소들이 각 과정을 올바르게 행하는지 감독하는 요소
  • 피드백(Feedback): 처리된 결과를 측정, 파악하여 목표에 도달되었는 가를 검사, 만일 불충분할 경우 목표 달성을 위해 다시 입력하는 요소

2 ) 시스템 소프트 웨어 개념

  • 응용 프로그램을 실행하기 위한 환경을 제공, 컴퓨터 하드웨어를 동작시키고 관리하는 소프트 웨어
  • CPU 관리, 메모리 관리, 디스크 파일들을 관리하는 소프트웨어
  • 컴퓨터 사용자가 하드웨어의 구조나 특성을 알지 못해도 컴퓨터를 이용할 수 있도록 지원

플랫폼(Platform) * 틀린 설명, 영어단어 숙지 필요

1 ) 플랫폼 개념

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

2 ) 플랫폼 기능

  • 소프트웨어의 개발 및 운영 비용 절약
  • 동일한 플랫폼의 간의 공통 그룹을 형성해 네트워크 효과 최대화
  • 소프트 웨어 개발의 생산성 향상

3 ) 플랫폼 성능 특성 분석 항목 *  특성이 아닌 것을 찾는 문제

  1. 가용성(Availability) : 적절한 방법으로 정보를 요구하는 사용자에게 정보 서비스 제공
  2. 응답 시간(Response Time) : 명령이 주어지고 반응하기까지의 걸린 시간
  3. 정확성(Accuracy) : 플랫폼에서 처리 된 결과가 얼마나 올바른 값 근접했나 측정하는 정도
  4. 사용률(Utilization): 하드웨어 자원, 소프트웨어 자원, 네트워크 자원 등을 일정 시간 사용하는 정도

프레임워크(Framework)

1 ) 정의

  • Frame + work 가 합쳐진 것으로, '일정하게 짜인 틀에서 일한다'라는 의미로 해석
  • 프레임워크는 목적을 달성하기 위해 복잡하게 연결되어 있으며, 문제를 해결하기 위한 구조이자 소프트 웨어 개발에 있어 뼈대 역할

2 ) 소프트웨어 프레임 워크

  • 응용프로그램 개발이나 문제 해결을 수월하게 하기 위해 설계와 구현을 재사용이 가능한 형태로 제공하는 소프트웨어 환경
  • 효율적인 정보시스템 개발을 위한 코드 라이브러리, 애플리케이션 인터페이스 등의 집합으로써 재사용이 가능하도록 소프트 웨어 구성에 필요한 기본 뼈대 제공
  • 다양한 소프트 웨어 개발을 가능하게 하는 여러 형태의 컴포넌트
  • 개발자의 코드나 사용자 데이터가 필요

3 ) 소프트웨어 프레임 워크 특징 * 특징이 아닌 문제, 영단어 암기 필수

  • 모듈화(Modularity) : 전체 프로그램을 한 번에 설계하지 않고, 단일 기능을 갖출 수 있도록 부분적으로 묶어서 처리하는 기술
  • 재사용성(Reusability): 전체나 일부 소프트웨어가 다른 응용 목적으로 사용될 수 있는 정도
  • 확장성(Extensibility) : 추가적인 설계 없이 확장이 얼마나 쉽고 가능한가에 대한 용이성
  • 제어의 역 흐름(Inversion of Control): 프레임워크 코드가 전체 애플리케이션의 처리 흐름을 제어해 특정한 이벤트가 발생할 때 다형성을 통해 애플리케이션이 확장한 메서드를 호출함으로 써 제어가 소프트 웨어 프레임 워크로부터 애플리케이션으로 거꾸로 흐르게 한다.

4 ) 프레임 워크 적용할 경우 기대효과 * 기대효과 아닌 것 찾는 문제

  • 개발 용이성 : 필요한 기능을 제공받아 빠른 시간에 개발 가능
  • 품질 보증 : 오류 발생 가능성을 최소화해 품질 향상
  • 변경 용이성 : 새로운 기능을 추가하거나 변경하더라도 부담 없이 변경할 수 있게 해 줌
  • 유지보수 용이성: 프레임워크가 적용된 소프트 웨어는 체계적이고 안정적
  • 재사용성 향상: 프레임 워크 기반으로 개발된 컴포넌트들을  타 사업에 쉽게 사용 가능 해 재사용성 극대화
  • 표준화율 향상: 정형화된 개발 기술과 방법을 제공함으로써 설계, 개발 등 시스템 구축 전반에 걸친 표준을 제시
  • 상호 운용성 향상: 전자 정부 표준 프레임워크 기반으로 개발된 시스템 간에 컴포넌트 연계가 용이하여 상호 운용성이 극대화

기업용 소프트 웨어 * 기업용 소프트 웨어가 아닌 것 을 찾는 문제

1  ) 오피스 웨어

  • 회사나 단체에서 업무에서 사용되는 소프트웨어
  • 워드, 엑셀, 한컴

2  ) ERP(Enterprise Resource Planning)

  • 신속한 의사결정을 위한 소프트 웨어
  • 경영활동 프로세스들을 통합적으로 연계하여 관리하는 소프트웨어
  • 회사 전체 자원을 관리

3  ) SCM(Supply Chain Mangement)

  • 부품 공급자를 지원하는 소프트 웨어

4  ) BI(Business Intelligence)

  • 구성원에 적시에 의사 결정을 지원하는 소프트 웨어

5  ) CRM(Customer Relationship Management)

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

컴포넌튼(Component) * 틀린 설명 찾는 문제

1  ) 개념

  • 부품화 된 프로그램을 모듈, 모듈의 집합을 라이브러리, 라이브러리의 집단을 컴포넌트
  • 독립적으로 사용 가능

2  ) 설계

  • 협약에 의한 설계를 따를 경우 아래 조건이 포함되어야 한다
  • 컴포넌트 오퍼레이션 사용 전에 참이 되어야 할 선행 조건
  • 사용 후 만족되어야 할 결과 조건
  • 오퍼레이션이 실행되는 동안 항상 만족되어야 할 불변 조건

3 ) CBD(Component Based Development)

  • CBD는 컴포넌트 제작 기법을 통해 재사용성 향상
  • 개발 기간 단축으로 생산성과 품질 향상
  • 유지보수 비용 최소화
  • 시스템을 신속하게 구축, 새로운 기능 추가 및 확장 용이
  • CBD는 독립적인 컴포넌트의 단위의 관리로 복잡성을 최소화
  1. CBD 산출물 목록
  • 분석: 사용자 요구사항 정의서, 유스 케이스 명세서, 요구사항 추적 표
  • 설계 : 클래스 설계서, 사용자 인터페이스 설계서, 컴포넌트 설계서
  • 구현 : 프로그램 코드, 단위 시험 결과서, 데이터베이스 테이블
  • 시험: 통합 시험 결과서, 시스템 시험 결과서, 사용자 지침서, 운영자 지침서

소프트웨어 공학(SE: Software Engineering) * 틀린 설명

1  ) 개념

  • 최소의 비용으로 높은 품질의 소프트웨어를 개발하기 위한 모든 도구 및 방법론
  • 소프트웨어 위기 극복을 위해 품질과 생산형 향상을 목적으로 연구하는 학문

2  ) 기본원칙

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

3  )  등장 배경

  • 소프트웨어 개발에 필요한 시간과 비용 예측력 부족
  • 개발된 소프트웨어의 품질 수준이 부족
  • 하드웨어에 대한 소프트웨어의 상대적 비용이 커져서
  • 유지보수의 역할이 증대
  • 하드웨어 및 소프트웨어 기술의 급속한 발전
  • 크고 복잡한 소프트웨어에 대한 수용가 증가
  • 특정 개인에 의존한 시스템 개발

 

4  )  소프트웨어 공학의 도입

개발 과정에 공학적인 접근을 시도하여 생산성과 신뢰성을 높이기 위한 기법과 원리를 다루기 위해 도입

방법(method) : 소프트웨어를 구축하기 위한 방법을 제공

절차(Procedure) : 방법과 도구를 결합하여 좀 더 향상된 프로그램을 개발하기 위한 절차

 

 

출처 이기적 정보처리기사
반응형

댓글