* Software 란?

- 하고자 하는 기능이나 성능을 실행하기 위한 명령어(컴퓨터 프로그램)

- 정보를 적합하게 가공하여 프로그램을 구동시키는 자료구조

- 프로그램의 사용과 동작을 설명한 문서들


- System Software

: 하드웨어를 관리하고 응용 소프트웨어를 지원하는 소프트웨어

  예) 운영 체제(Operating System), 네트워크 관리 프로그램 등


- Application
     : 사용자가 원하는 목적에 맞게 개발된 소프트웨어
       예) 워드 프로세서(Word Processor), 스프레드 시트(Spread Sheet), 브라우저(Browser), 회사 업무 지원 프로그램 등


* Software Crisis 란?

- 소프트웨어 수요 증가에 비해 공급 및 개발의 어려움

- 다른 분야에서 사용했던 공학(Engineering) 패러다임을 이용하자는 결론

- 1968년 NATO conference에서 소프트웨어 공학(Software Engineering) 제안됨


* Software Engineering 이란?

- 정의

: 소프트웨어의 개발, 운용, 유지보수 및 폐기에 대한 체계적인 접근 방법

- 특징

: 소프트웨어 개발 전 과정에 걸쳐 필요한 이론, 개념 및 기술을 다룸

: 소프트웨어 개발 과정에서 생성되는 모든 산출물이 그 대상이 됨

- 목표

: 소프트웨어 개발이 체계적, 공학적인 방법으로 이루어져 추정된 비용과 기간에 고객이 원하는 품질 높은 소프트웨어를 개발하는 것


* Computer Science 와의 차이는?

- 컴퓨터 과학은 컴퓨터와 소프트웨어 시스템이 갖고 있는 이론과 방법을 다루지만,

소프트웨어 공학은 소프트웨어를 생산하는 실제적인 문제를 다룬다.


* System Engineering 과의 차이는?

- 시스템 공학은 HW, SW, Process Enginerring을 포함하는 컴퓨터 기반 시스템의 모든 측면들과 관련이 있다

- 소프트웨어 공학은 이 프로세스의 일부이다


*  Software Process 란?

- 소프트웨어 개발과 진화를 목표로 하는 활동의 집합

- 4가지 기본적인 프로세스 활동은 아래와 같다

1. Specification : 고객과 엔지니어가 생산도리 소프트웨어를 정의하고 운영 시의 제약을 정의한다.

2. Development : 소프트웨어를 설계하고 프로그램하는 단계이다.

3. Validation : 소프트웨어가 고객이 요구하는 것인지를 보장하도록 점검한다.

4. Evolution : 고객과 시장의 요구에 맞게 소프트웨어를 변경한다.

+ Recent posts