🥞 BE
home

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

학문적 의미
높은 품질의 소프트웨어를 효율적으로 개발하는 방법을 탐구하는 학문/연구 분야
실천적 의미
소프트웨어를 제품화함에 있어서 적용할 수 있는 품질보증 및 개선 활동을 규정하는 프로세스
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)로부터 교훈을 얻고, 우리 조직에 가장 맞는 프로세스를 채택, 발전시킴으로써 제품의 신뢰성과 경제성을 확보하려는 노력