학문적 의미
높은 품질의 소프트웨어를 효율적으로 개발하는 방법을 탐구하는 학문/연구 분야
실천적 의미
소프트웨어를 제품화함에 있어서 적용할 수 있는 품질보증 및 개선 활동을 규정하는 프로세스
•
IEEE Standard Glossary of Software Engineering Terminology
“The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”
•
“Multi-person construction of multi-version software”
소프트웨어 프로세스 성숙 모델
•
소프트웨어 개발 조직의 역량을 평가하는 모델
◦
가능한 한 객관적이고 정량적으로 평가하고자 함
•
CMMI (Capability Maturity Model Integrated)
•
SPICE (Software Process Improvement and Capability dEtermination)
소프트웨어 개발 및 유지관리 프로세스
•
개발 방법론
◦
소프트웨어 개발에 적용할 개발 프로세스 모델 : 구조적, 정보공학적, 객체지향적, 컴포넌트 위주, …
•
소스코드 (를 포함한) 형상관리
◦
구성 요소에 대한 변경관리 대상인 형상항목을 식별하고 변경을 통제, 기록
•
단계별 산출물 관리
◦
프로세스에 따른 필수 산출물의 제작과 검수, 유지관리
•
요구사항 관리
◦
개발될 시스템에 대한 고객의 요구를 이해하고 목표와 제약사항을 확립하며 개발 및 납품 프로세스 관리
•
테스트 및 검증
◦
단위 테스트, 통합 테스트, 인수 테스트 등의 과정과 결과를 정의하고 품질보증을 위한 조직 구성 및 절차를 규정
소프트웨어 개발 (및 품질관리) 의 중요 측면
•
도구, 프로세스의 선택과 절차의 고도화의 중요성보다는,
설계/개발/테스트/배포/운영에 참여하는 조직원들의 마음가짐이 더 중요!!
•
규정된 절차와 지침을 준수
•
점진적 개선을 위한 활동에 적극 참여
•
모범사례 (BP; best practice)로부터 교훈을 얻고, 우리 조직에 가장 맞는 프로세스를 채택, 발전시킴으로써 제품의 신뢰성과 경제성을 확보하려는 노력