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

1,184 바이트 추가됨 ,  2023년 7월 29일 (토)
5번째 줄: 5번째 줄:


== 소프트웨어공학의 필요성 ==
== 소프트웨어공학의 필요성 ==
잘못된 방법론 적용으로 인한 소프트웨어 개발의 실패를 막기 위해서 연구할 필요가 있다. 소프트웨어 개발 방법에 대한 연구는 건축공학이나 기계공학 등의 다른 공학 분야의 제품 개발에 대한 방법론들과 달리 그 역사가 몇십 년 수준인데다 현재의 개발 방법론이 30년 전과 크게 다르지 않으며, 이에 따라 소프트웨어 생산성이 사용자들의 서비스에 대한 요구를 따라가지 못하거나, 품질 향상 및 유지보수 난이도가 과도하게 높아지거나, 프로젝트 마일스톤(개발 일정 및 소요 비용 예측)이 부정확한 상황이 자주 발생하는 등 산출물의 품질 제어(Quality Control, QC)가 상대적으로 엉망이다. 이에 따라 소프트웨어 위기(Software Crisis)라는 말까지 등장하여 제대로 된 IT 서비스를 제공하기 위한 방법에 대한 연구가 시급하다.
잘못된 방법론 적용으로 인한 소프트웨어 개발의 실패를 막기 위해서 연구할 필요가 있다.
 
소프트웨어 개발 프로젝트는 특정한 IT 소프트웨어 제품/서비스의 결과물을 효과적으로 얻기 위한 모든 사업이다. 프로젝트를 제안하는 서류를 작성하고 제출하여 자금 지원들을 받아 프로젝트에 돌입하면 제품을 기획하고 실행하며, 적절한 감시 및 관리를 받아가며 검증하여 프로젝트를 완료하여야 한다. 그런데 이것이 종종 좌초하거나 결과물이 버그투성이로 엉망인 경우가 상당히 많다.
 
건축공학이나 기계공학 다른 분야의 공학을 활용하는 제조업계의 제품 개발 이론과 비교했을 때 소프트웨어 개발 방법에 대한 연구는 그 역사가 몇십 년 수준인데다 현재의 개발 방법론이 30년 전과 크게 다르지 않으며, 이에 따라 소프트웨어 생산성이 사용자들의 서비스에 대한 요구를 따라가지 못하거나, 품질 향상 및 유지보수 난이도가 과도하게 높아지거나, 프로젝트 마일스톤(개발 일정 및 소요 비용 예측)이 부정확한 상황이 자주 발생하는 등 산출물의 품질 제어(Quality Control, QC)가 상대적으로 엉망이다.
 
이에 따라 소프트웨어 위기(Software Crisis)라는 말까지 등장하여 제대로 된 IT 서비스를 제공하기 위한 방법에 대한 연구가 시급하다. Plan -> Do ->Check ->Action 개념을 반복하는 방법론을 제정하는 PMI의 PMBOK 같은 가이드라인들이 개발된 것도 그런 이유에 따른다.
 
종종 건축업계와 소프트웨어업계가 비교되곤 하는데 시공사와 감리사를 나누는 건축업계처럼 '제품 개발 프로세스'뿐만 아니라 '프로젝트 관리 프로세스'를 담당하는 기업의 필요성이 높아졌다. 그러나 현재 대한민국에서는 아직 건축업계의 감리 담당 기업 같은 개념이 덜 잡혀서 그런지 종종 발적화라고 욕먹는 저열한 품질의 소프트웨어가 자주 나온다.


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