3. 소프트웨어 공
학?
• 소프트웨어의 개발 , 운용 , 유지보수 등의 생명
주기 전반을 체계적이고 서술적이며 정량적으로
다루는 학문
• 공학을 소프트웨어에 적용하는 것
• 1968 년 ( 나토 소프트웨어 공학 학회 ) 이후로 하
나의 직업으로서 , 또한 학문의 한 분야로서 꾸준
히 품질 , 비용 , 유지 보수성 , 빌드 속도가 개선
된 소프트웨어를 창조하는데 전념
• 소프트웨어를 단순히 프로그래밍으로만 보는 한
계를 벗어나는 것으로부터 유기적으로 성장한 분
야
• 최근의 흐름으로는 관점 지향 (Aspect), 애자일
(Agile), 모델 주도 (Model-Driven) 등
10/23/12 3
4. 세부 분야
(1/2)
• 소프트웨어 요구사항 : 소프트웨어 요구 사항의
채집 , 분석 , 명세 , 검증 .
• 소프트웨어 설계 : 보통 전산 지원 소프트웨어 공
학 (CASE) 도구로 이루어지고 , UML 과 같은 표
준 형식을 사용 .
• 소프트웨어 개발 : 프로그래밍 언어로 소프트웨어
를 구축 .
• 소프트웨어 시험
• 소프트웨어 유지 보수 : 소프트웨어 시스템은 때
때로 처음 완료된 후 긴 시간이 지난 후에 문제
를 일으켜 향상시켜야 할 필요가 있음 .
10/23/12 4
5. 세부 분야
(2/2)
• 소프트웨어 형상 관리 : 소프트웨어 시스템은 매
우 복잡하므로 , 그 형상 ( 버전과 소스 제어 ) 이
표준화되고 구조적인 방법으로 관리 받아야 함 .
• 소프트웨어 공학 관리 : 프로젝트 관리에 매우 밀
접하나 , 다른 관리 분야와는 다른 , 소프트웨어
고유의 미묘한 뉘앙스가 있음 .
• 소프트웨어 개발 프로세스 : 소프트웨어를 구축하
는 과정에 관하여 실무 종사자들 사이에서는 열
띤 논쟁이 오가고 있으며 주요한 패러다임은 애
자일 과정과 폭포 과정이다 .
• 소프트웨어 공학 도구 , CASE 참조 .
• 소프트웨어 품질
10/23/12 5