소프트웨어공학: 두 판 사이의 차이

큰숲백과, 나무를 보지 말고 큰 숲을 보라.
(일단 간단하게 생성)
 
5번째 줄: 5번째 줄:


== 소프트웨어공학의 필요성 ==
== 소프트웨어공학의 필요성 ==
잘못된 방법론 적용으로 인한 소프트웨어 개발의 실패를 막기 위해서 연구할 필요가 있다.
잘못된 방법론 적용으로 인한 소프트웨어 개발의 실패를 막기 위해서 연구할 필요가 있다. 소프트웨어 개발 방법에 대한 연구는 건축공학이나 기계공학 등의 다른 공학 분야와 달리 그 역사가 몇십 년 수준인데다 현재의 개발 방법론이 30년 전과 크게 다르지 않으며, 이에 따라 소프트웨어 생산성이 사용자들의 서비스에 대한 요구를 따라가지 못하거나, 품질 향상 및 유지보수 난이도가 과도하게 높아지거나, 프로젝트 마일스톤(개발 일정 및 소요 비용 예측)이 부정확한 상황이 자주 발생하는 등 산출물의 품질 제어(Quality Control, QC)가 상대적으로 엉망이다. 이에 따라 소프트웨어 위기(Software Crisis)라는 말까지 등장하여 제대로 된 IT 서비스를 제공하기 위한 방법에 대한 연구가 시급하다.


== 중요 개념 ==
== 중요 개념 ==

2023년 7월 28일 (금) 15:33 판


소프트웨어공학(Software Engineering)은 집적 회로 기반 제품 등의 제어를 목적으로 제작하는 모든 종류의 소프트웨어(Software)를 개발하는 방법론을 다루는 학문이다. 컴퓨터공학의 하위 학문으로 분류된다.

소프트웨어공학의 필요성

잘못된 방법론 적용으로 인한 소프트웨어 개발의 실패를 막기 위해서 연구할 필요가 있다. 소프트웨어 개발 방법에 대한 연구는 건축공학이나 기계공학 등의 다른 공학 분야와 달리 그 역사가 몇십 년 수준인데다 현재의 개발 방법론이 30년 전과 크게 다르지 않으며, 이에 따라 소프트웨어 생산성이 사용자들의 서비스에 대한 요구를 따라가지 못하거나, 품질 향상 및 유지보수 난이도가 과도하게 높아지거나, 프로젝트 마일스톤(개발 일정 및 소요 비용 예측)이 부정확한 상황이 자주 발생하는 등 산출물의 품질 제어(Quality Control, QC)가 상대적으로 엉망이다. 이에 따라 소프트웨어 위기(Software Crisis)라는 말까지 등장하여 제대로 된 IT 서비스를 제공하기 위한 방법에 대한 연구가 시급하다.

중요 개념

소프트웨어 개발 프로세스

전통적인 공정은 다음과 같다.

  • 프로젝트 계획(Project Planning)
  • 요구사항 분석(Requirement Analysis)
  • 설계(Design)
  • 구현(Implementation)
  • 시험(Test)
  • 유지보수(Maintenance)