소프트웨어공학/수업

1. 소프트웨어의 이해(1-1)

멜데스 2017. 4. 13. 22:13

소프트웨어의 정의

좁은 의미의 소프트웨어

소프트웨어 = 프로그램


소프트웨어공학에서 보는 소프트웨어

프로그램 개발 및 운영 및 유지보수에 이르기까지 제반 문서와 관련 정보를 포함하는 개념

- 문서와 정보도 소프트웨어 생산행위의 결과물


소프트웨어의 특성

1. 비가시성 - 자동차같은 제품과 달리 소프트웨어는 그 구조가 외관에 나타나지 않고, 코드 속에 숨어있음

2. 적합성 또는 순응성 - 요구나 환경의 변화에 적절히 변화하여 적응

3. 복제 및 변경 - 복제와 변경이 쉽게 가능

4. 복잡성 - 개발과정이 복잡하고, 시스템 자체가 난해함


소프트웨어의 종류

다섯 종류의 소프트웨어

1. 시스템 소프트웨어

- 운영체제, 컴파일러 등

2. 응용 소프트웨어

- 급여, 회계관리, 은행 시스템 등

3. 주문형 소프트웨어

- 프로토타입

4. 패키지 소프트웨어

- 패키지화되어 상업적으로 판매하는 소프트웨어    (Utility - MS-OFFICE, HWP)

5. 임베디드 소프트웨어

- 다른 시스템에 내장된 소프트웨어


소프트웨어 발전의 세대별 특징

세대별 발전 과정

1. 제1세대(1950 ~ 1960년대 중반)

-    일괄처리

-    극히 제한된 분야에 사용

-    특정 목적 전용의 소프트웨어


2. 제2세대(1960년대 중반 ~ 1970년대 초반)

-    다중 사용자 환경

-    실시간 처리

-    데이터베이스

-    소프트웨어의 상품화


3. 제3세대(1970년대 중반 ~ 1980년대 후반)

-    분산 시스템

-    하드웨어의 가격 하락에 따른 보급 확대

-    다양한 응용 분야의 범용 소프트웨어


4. 제4세대(1980년대 후반 ~ 현재)

-    고성능 데스크톱 시스템

-    객체지향 기술의 발전

-    인공지능과 전문가 시스템

-    병렬처리

-    네트워크화

=======================================================================================

소프트웨어의 위기

소프트웨어 수요과 공급의 변천

1960년 이전

- 소프트웨어보다 우수한 하드웨어의 확보와 유지보수


1860년대

- 소프트웨어 공급이 수요를 따라잡지 못하는 현상 발생

- 수요는 100배 이상 증가, 연평균 12% 이상 증가율


소프트웨어 위기(Software Crisis)

수요를 따르지 못하는 생산성에 대한 심각한 인식



1965년 ~ 1985년

1983년도 증가율 

 수요의 증가

100배

12% 

 생산성

2배 

4% 

 개발인력 공급

10배 

4% 

소프트웨어 위기 현상

위기의 구체적인 현상

-    개발기간의 지연 및 하드웨어 비용을 초과하는 개발비용의 증가

-    성능 및 신뢰성 부족

-    유지 보수의 어려움에 따른 엄청난 비용


소프트웨어 위기의 원인

4가지 원인

-    소프트웨어 규모의 거대화와 복잡화

-    소프트웨어 개발에 일반적으로 통용되는 방법이 없음

-    프로그래머 개인의 경험과 역량에 따라 결과가 크게 좌우되어 예측 불가능

-    기술적인 시험체계의 부재에 따른 신뢰성 문제

-    품질 보증에 대한 확실한 개념의 부재


결과 -------------------------------------------------------> 소프트웨어 공학 출현