[소프트웨어공학] 1.1 소프트웨어

이두팔·2021년 4월 15일
0

소프트웨어공학

목록 보기
1/12

1.1 소프트웨어

1 소프트웨어의 정의

  • 소프트웨어란 컴퓨터 프로그램과 관련 데이터의 묶음으로서, 여기서 프로그램은 데이터를 입력받아 처리함으로써 원하는 출력을 제공하기 위해 사용되는 명령어들의 집합이다.
  • 포괄적 의미에서 소프트웨어란 소스코드는 물론 모든 관련 문서까지 포함한다.

2 소프트웨어의 중요성

  • 역할
    1. 사업체의 의사결정을 지원하는 엔진
    2. 현대적 과학 탐구와 공학적 문제 해결을 지원하는 도구
    3. 교통, 의료, 원거리 통신 등에 사용되는 모든 종류의 컴퓨터 시스템에 내장

3 소프트웨어의 분류

  • 기능에 따른 분류
    1. 시스템 소프트웨어
      • 컴퓨터를 운영하기 위한 목적의 소프트웨어
      • 운영체제, 장치드라이버 및 자원 관리를 위한 유틸리티 프로그램이 속한다. 컴파일러, 링커 및 디버거 등과 같은 소프트웨어 개발 도구나 DB 관리 시스템이 속함
    2. 응용 소프트웨어
      • 사용자의 실제 업무를 수행하는 프로그램 (ex: 워드프로세서, 스프레드시트)
  • 고객에 따른 분류
    1. 일반 소프트웨어
      • 요구사항이 매우 일반적이고 안정적
      • 불특정 다수를 대상으로 설계된 소프트웨어 (= 상용소프트웨어)
    2. 맞춤형 소프트웨어
      • 특별한 고객을 위해 개발되는 맞춤 소프트웨어 (= 주문형 소프트웨어)

4 소프트웨어의 성질

  • 무형의 인공물로 마모되지 않으며, 다른 공학 제품에 비해 변경이 용이하다.
  • 기존 컴포넌트들의 조립을 통해 만들어지지 않음. 요구사항에 맞추어 새롭게 만들어진다.
  • 설계 과정의 품질 보증 활동이 결정적인 요소가 된다.
  • 개발 비용은 대부분 노동력에 투입된다.
  • 상대적으로 변경이 용이하다.
  • 요구사항이나 환경의 변화에 따라 적절히 변경될 수 있는데 이것을 소프트웨어의 유연성 또는 순응성이라고 한다.
  • 소프트웨어는 마모되지 않는다.
  • 소프트웨어 유지보수는 하드웨어와 달리 많은 경우에 설계의 변경이 요구된다.

5 소프트웨어의 응용 분야

  1. 시스템 소프트웨어
    • 다른 소프트웨어를 지원할 목적으로 시스템상에서 실행되는 프로그램
  2. 실시간 소프트웨어
    • 시스템 내/외부에서 이벤트가 발생했을 때, 이벤트 발생과 처리가 실시간으로 이루어지는 시스템
    • ex: 은행 업무 시스템, 좌석 예약 시스템
  3. 내장형 소프트웨어
    • 대형 시스템의 일부로 하드웨어에 내장되어 특정 조건하에서 고유의 기능을 수행하도록 작성된 소프트웨어
    • 자동차, 세탁기, 전자레인지, 주유기, 인공위성 및 많은 자동 제어 시스템에 내장된 소프트웨어는 입력된 데이터를 분석하고 상태를 파악하여 정해진 조치를 취하도록 설계되어 있다.
  4. 비즈니스 소프트웨어
    • 사업 목적의 업무를 처리하기 위해 설계
    • ex: 회계 업무 패키지, 경영 정보 시스템
  5. 개인용 소프트웨어
    • 워드프로세서, 스프레드시트, 그래픽 프로그램
  6. 인공지능 소프트웨어
    • 단순한 수치계산이나 정형적인 프로시쥬어를 사용하지 못하는 복잡한 문제를 해결하기 위한 것
    • ex: 로보틱스, 전문가 시스템, 화상/음성인식
  7. 웹 기반 소프트웨어
    • HTML, Java 등으로 작성되어 웹 브라우저에서 표현되거나 실행되는 소프트웨어
  8. 공학용/과학용 소프트웨어
    • 공학이나 과학 분야의 특정 원리나 공식을 사용하여 해당 분야의 특정 기능을 수행하도록 설계된 소프트웨어
profile
Software Engineer

0개의 댓글