Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Be Coder

소프트웨어 공학이란 본문

소프트웨어 공학

소프트웨어 공학이란

ForzaCoding 2020. 3. 8. 01:04

- 소프트웨어 개발에 대한 전반적인 흐름

- 소프트웨어 공학을 비롯한 프로젝트 관리

 

 

 

1. 정의 

- 프로그램 : 소스코드

- 소프트웨어 : 소스코드, 산출물(자료구조, db구조, 테스트 결과 등), 메뉴얼

 

 

2. 소프트웨어의 분류

- 정보관리 소프트웨어

> 정보 제공 및 관리 소프트웨어

> DB에 자료 저장한 후 검색을 통해 사용자가 원하는 형태로 정보 제공

> 예) 인터넷 뱅킹, 대학 종합 정보 시스템, 예약 시스템 등

 

- 제어 소프트웨어

> 각종 센서를 이용하거나 기기들의 동작을 제어하는 소프트웨어

> 예) 교통 신호 제어, 의료기기 제어, 공장장비 제어

 

- 임베디드 소프트웨어

> 장비나 기기에 내장된 형태의 소프트웨어

> 가전 제품, 공정제어 시스템 내부의 소프트웨어

 

 

3. 소프트웨어의 특징

- 제조가 아닌 개발

> 제조 : 정해진 틀에 맞춰 일정하게 생산하는 것. 많은 인력이 필요하고, 능력별 결과물 차이가 근소

> 개발 : 개인 능력 별 결과물 차이가 매우 큼

- 소모가 아닌 품질 저하

> 하드웨어 : 오래 사용하면 부품이 닳고, 고장 발생 빈도가 올라가고, 기능 저하.

> 소프트웨어 : 하드웨어와 반대.

 

 

4. 소프트웨어 개발의 문제점

> 소프트웨어 개발의 느린 발전 속도

> 새로운 소프트웨어에 대한 사용자 요구의 증가

> 소프트웨어 개발에도 관리가 필요 : 비용관리 / 일정 관리 / 개발자 관리

   -> PMBOK을 활용한 적극적인 프로젝트 관리 필요

> 개발과정이 복잡해지고 있음

> 참여 인력이 늘어나고 있음

> 개발기간이 길어지고 있음

 

 

5. 소프트웨어 공학의 정의

> 품질 좋은 소프트웨어를 경제적으로 개발하기 위해, 

  1. 계획을 세우고

  2. 개발하며

  3. 유지 및 관리하는

전 과정에서 공학, 과학 및 수학적 원리와 방법을 적용하여 필요한 이론과 기술 및 도구들에 관해 연구하는 학문.

 

 

6. 소프트웨어 공학의 목표

> 개발 과정에서의 생산성 향상

> 고품질의 소프트웨어 생산 -> 사용자 만족

 

7. 소트프웨어 공학의 특성

-> 공학의 특성

> 제약 사항 : 정해진 기간, 주어진 비용.

   -> 과학적 지식을 활용하여 문제를 해결하는데 한정된 기간과 비용의 제약을 받음.

- 소프트웨어 공학

: 소프트웨어 + 공학

: 소프트웨어 개발 과정에 공학적인 원리를 적용하여 소프트웨어를 개발

: 소프트웨어 개발의 어려움 해결

: 효율적 개발을 통한 생산성 향상

: 고품질 소프트웨어 제품 생산

 

8. 소프트웨어 개발 생명주기(SDLC : Software Development Life Cycle)

- 계획 단계에서 유지보수 단계에 이르기까지 일어나는 일련의 과정