DevGang

[SE-02] 소프트웨어 공학 본문

정보처리/SE

[SE-02] 소프트웨어 공학

별천랑 2021. 2. 8. 16:33

1. 소프트웨어 공학(SE, Software Engineering)의 정의

  • 가장 경제적으로 신뢰도 높은 소프트웨어를 만들기 위한 방법, 도구와 절차들의 체계 

- 소프트웨어 공학에 대한 여러 형태의 정의

  • 소프트웨어의 개발, 운용, 유지보수, 폐기 처분에 대한 체계적인 접근 방안
  • 지정된 비용과 기간 내에 소프트웨어를 체계적으로 생산하고 유지 보수하는 데 관련된 기술적이고 관리적인 원리
  • 과학적인 지식을 소프트웨어 설계와 제작에 응용하는 것이며, 이를 개발, 운용, 유지 보수하는 데 필요한 문서 작성 과정

- 소프트웨어 공학의 공학(Engineering)이 가지는 의미

  • 경제성
  • 적시성
  • 보편타당성

- 소프트웨어 공학이 나타나게 된 배경

  • 소프트웨어(S/W) 비용의 증가
  • 소프트웨어(S/W) 품질과 생산성의 제고
  • 특정 개인에 의존한 시스템 개발

2. 소프트웨어의 위기(Crisis) 

  • 컴퓨터의 발달 과정에서 소프트웨어의 개발 속도가 하드웨어의 개발 속도를 따라가지 못해 사용자들의 요구사항을 감당할 수 없는 문제가 발생함을 의미

- 소프트웨어 위기의 원인

  • 소프트웨어의 특징에 대한 이해 부족
  • 소프트웨어의 관리 부재
  • 프로그래밍에만 치중

- 소프트웨어 위기의 현상

  • 개발 인력의 부족과 그로 인한 인건비 상승
  • 개발 기간의 지연
  • 하드웨어 비용을 초과하는 개발 비용 증가
  • 성능 및 신뢰성의 부족
  • 유지 보수의 어려움에 따른 엄청난 비용 

3. 소프트웨어 공학의 기본 원칙

  • 현대적인 프로그래밍 기술 적용
  • 지속적인 검증 시행
  • 결과에 대한 명확한 기록 유지

4. 소프트웨어 공학의 발전을 위한 소프트웨어 사용자(Software User)로서의 자세

  • 프로그래밍 언어와 알고리즘의 최근 동향을 주기적으로 파악
  • 컴퓨터의 이용 효율이나 워크스테이션에 관한 정보들을 체계적으로 데이터베이스 화함
  • 바이러스에 대한 예방에 만전을 기하여 시스템의 안전을 확보함

'정보처리 > SE' 카테고리의 다른 글

[SE-06] 프로젝트 비용 산정  (0) 2021.02.08
[SE-05] 프로젝트 계획 및 예측  (0) 2021.02.08
[SE-04] 프로젝트 관리  (0) 2021.02.08
[SE-03] 소프트웨어 생명 주기  (0) 2021.02.08
[SE-01] 소프트웨어  (0) 2021.02.08
Comments