소프트웨어 공학은 신뢰성 있는 고품질의 소프트웨어를 효율적인 비용으로 개발하고 이를 운용·유지보수·폐기하는 전 과정에 적용되는 시스템적 접근 방안을 의미한다.소프트웨어 공학의 영역은 소프트웨어 개발에 관련된 소프트웨어 요구사항, 설계, 개발, 테스트, 유지보수 영역과 개발 지원 및 조직화와 관련된 행상관리, 프로젝트 관리, 소프트웨어 프로세스, 품질 등으로 구성된다.
최근 급변하는 기업 환경에 따라 소프트웨어 개발을 위한 기간이 짧아지고 한정적인 예산으로 다른 시스템과 연계된 대규모 시스템을 안정적으로 구축·지원하기 위한 다양한 방법을 시도하고 있으며 기술적 방법과 관리적 방법으로 이러한 상황에서의 위험을 감소하려는 방안들을 활용하여 더욱 효과적인 소프트웨어를 구축하고 지원하려는 노력을 해야 한다.