Software Engineering/Week 1

Classification of S/W

잔머리대마왕 2022. 11. 9. 15:36

소프트웨어는 기능, 개발 과정 그리고 하드웨어 환경에 따른 분류로 나뉠 수 있다. 

 

  • 기능적 분류
    • 응용 S/W
    • 시스템 S/W
    • 임베디드 S/W
  • 개발 과정에 따른 분류
    • Prototype
    • Product
    • Package
  • 하드웨어 환경에 따른 분류
    • 분산 시스템 S/W
    • PC & Workstation
    • 모바일 S/W

 

이 분류 외에 소프트웨어의 성격에 따른 분류도 나눌 수 있다. 

  • System Software
  • Business Application Software
  • Engineering/Scientific Software
  • Real-time software
  • Embedded Software
  • Web applications
  • Artificial Intelligent Software
  • Ubiquitos

 

[System Software]

시스템 소프트웨어는 응용 프로그램을 실행하기 위해 기본이 되는 소프트웨어를 의미하며 unix, windows와 mac os 등이 있다. 또한 컴파일러와 에디터 같은 몇몇 시스템 소프트웨어는 복잡한 과정을 독립적으로 수행하기도 하며 컴퓨터의 성능을 좌우하기도 한다. 기본적으로 C/C++ 기반 언어로 작성되어있다.

 

[Business Application Software]

비지니스 응용 소프트웨어는 사업 관계에서 사용하기 유용한 시스템을 의미하며 대학 포털 시스템, 이지바로 등이 있다. 일반적으로 공통 이해관계를 가진 다수의 사용자가 하나의 시스템에 접속하여 활동함으로 대용량 데이터베이스와 연동되어 있는 경우가 많으며 클라이언트-서버 구조를 가져 웹을 통한 접속이 가능하다. 기본적으로 웹 어플리케이션에 최적화 되어있는 Java를 사용하며 C/C++도 큰 비중을 차지한다.

 

[Real-Time Software]

실시간 처리가 가능해야 하는 소프트웨어로 THAAD와 같은 전시 상황에 쓰이는 경우가 많다. 언어 의미 그대로 실시간 처리가 가능해야 함으로 고급 언어 중 가장 빠른 실행 속도를 가지는 C/C++로 작성되어있다. 근대에서는 Real-Time이라는 별도의 소프트웨어보다는 인공지능 분야에 적용하여 자율주행과 같은 시너지를 내기도 한다.

 

[engineering/Scientific Software]

수치 데이터를 다루는 소프트웨어이다. 일반적으로 물리, 통계, 선형대수 등에서 많이 사용된다. 주로 사용되는 언어는 C/C++과 수치해석에 특화 된 R, Matlab과 Fortran을 사용한다. 이 분야 또한 인공지능 분야에 적용하여 시너지를 내기도 한다.

 

[Embedded Software]

read-only 메모리의 컨트롤과 시스템 컨트롤을 수행하는 소프트웨어이다. 제한적이거나 중요한 기능을 수행한다. 우리가 실생활에 사용하는 휴대폰, 차량과 로봇등에 사용된다. 

 

[Artificiatl Intelligent Software]

인공지능 분야의 소프트웨어이다. 4차 산업 혁명의 주 축인 인공지능을 이용하여 회귀, 분류와 군집화 등의 작업을 수행하며 빅데이터 처리 시 높은 수준의 평가 지표를 산출 할 수 있다. 패턴 인식, 자연어 처리, 테이블 데이터 처리 등 다방면에 접목할 수 있다. 주로 사용되는 언어는 Python이고 몇몇 인공지능 모델은 C를 사용하여 추론 시간을 대폭 향상시키기도 한다.