초보 개발자

소프트웨어공학이란 무엇인가? 본문

컴퓨터공학 전공/소프트웨어공학

소프트웨어공학이란 무엇인가?

mandudu 2022. 10. 12. 23:45

** 본 글은 차성덕 교수님의 소프트웨어공학이야기 책을 정리한 글입니다. **

소프트웨어공학의 정의 

  • 소프트웨어의 설계, 구현, 테스트 및 문서화에 대한 과학 및 기술 지식, 방법 및 경험의 체계적인 적용
  • 소프트웨어의 개발, 운영 및 유지 관리에 대한 체계적이고 규율적이며 정량화 가능한 접근 방식의 적용
  • 소프트웨어 생산의 모든 측면과 관련된 엔지니어링 분야
  • 안정적이고 효율적으로 작동하는 소프트웨어를 경제적으로 얻기 위한
  • Multi-person construction of Multi-version software  - David Parnas (information hiding)
Multi-person: 수백명의 개발자들이 협력해야 하는 크고 복잡한 소프트웨어 (소프트웨어는 점점 복잡해짐)
Multi-version: 지속적으로 유지, 보수, 확장이 필요한 소프트웨어 및 여러 버전으로 출시되는 소프트웨어

 

소프트웨어공학의 세부분야

  • 소프트웨어 프로젝트 관리 기술 - 체계적인 계획 수립 (project management, cost estimation)
  • 요구공학 기법 - 요구사항 분석 및 오류 수정: 개발 후반부에 오류가 발견되면 비용 증가
  • 테스팅 및 품질보증 기법
  • 소프트웨어 개발방법론
모든 domain, 상황에 적합한 전지전능한 소프트웨어공학 기법은 존재하지 않는다.
하지만 다양한 개발환경에서도 공통적으로 적용되는 지식들이 존재하며,
이것이 바로 소프트웨어공학의 핵심 개념이다.