총 시험시간 2시간 30분
NCS기반으로 출제
총 과목은 5과목
- 소프트웨어 설계
- 소프트웨어 개발
- 데이터베이스 구축
- 프로그래밍 언어 활용
- 정보시스템 구축관리
한과목당 20문항이고, 합격조건은 평균 60점, 한과목당 최소 8문항이상 맞춰야한다.
소프트웨어의 수명주기
계획 -> 분석 -> 설계 -> 구현 -> 시험, 디버깅 -> 인수인계 -> 운영, 유지보수 ... 폐기
1. 소프트웨어 공학의 개념
(1) 소프트웨어 공학의 정의
최소의 경비로 품질 높은 소프트웨어 상품의 개발, 유지보수 및 관리를 위한 모든 기법, 도구, 방법론의 총칭으로서, 전산학(기술적요소), 경영학(관리적 요소), 심리학(융합적 요소)을 토대로 한 종합학문
(2) 소프트웨어 공학의 목적
- 소프트웨어 공학은 소프트웨어 위기를 극복하기 위해 개발한 학문으로, 소프트웨어 제품의 품질을 향상시키고, 생산성과 작업 만족도 증대, 신뢰도 높은 소프트웨어의 생산 등을 목적으로 하는 학문
- 소프트웨어를 개발 및 유지보수의 생산성향상과 품질향상
- 유지 보수가 용이하도록 소프트웨어를 개발하여 재사용성을 높일 수 있는 소프트웨어 개발
- 최소의(최적의) 비용과 자원 안에서 품질 좋은 소프트웨어를 기간 내에 생산하는 것이 소프트웨어의 주된 목적
(3) 소프트웨어 공학의 역사
1) 1960년대
- IBM360/OS개발시 소프트웨어 위기 인식 시작
- Dijkstra, GOTO문의 유해성 주장
- 1968년 NATO에서 "소프트웨어 공학" 탄생
소프트웨어 위기
소프트웨어 공학 탄생
2) 1970년대
- 소프트웨어 생명주기와 개발도구의 제안
- 1973년 IEEE, 소프트웨어 신뢰성과 공학기법에 관한 심포지엄
- 구조적 프로그래밍에서 더 나아가 구조적 분석 및 설계의 개념이 소프트웨어 위기의 극복 수단으로 각광 받기 시작
구조적 기법
3) 1980년대
- 소프트웨어 공학의 개념이 정립되고, 소프트웨어 개발 생명 주기와 비용 모형이 제안되었다.
- (전반)구조적 방법, Jackson 방법, Warnier-Orr 방법 등 분석, 설계 방법들의 활용과 시험, 유지보수, 프로젝트 관리, 개발환경 등 소프트웨어 개발 기술의 발전
- (후반)객체지향 분석, 설계, 프로그래밍, 4세대 언어, 소프트웨어 재사용, CASE, 피플웨어, 정보공학, 품질보증, 형상관리, 프로토타이핑 등으로 개발 및 관리
객체지향 기법
4) 1990년대
- 객체지향, 정보공학, CASE 등의 활용 단계
※ CASE (Computer Aided Software Engineering)
- 소프트웨어 공학의 자동화를 의미를 의미하며, 소프트웨어 공학작업 중 하나의 작업을 자동화한 소프트웨어 패키지를 CASE 도구라 한다. 이러한 도구를 한데 모아놓은것을 소프트웨 공학환경(Software Engineering Environment)이라 한다.
- CASE 도구들은 소프트웨어 관리자들과 실무자들이 소프트웨어 프로세스와 관련된 활동을 지원한다. 즉, 프로젝트 관리 활동을 자동화하고, 프로세스에서 생산된 결과물을 관리하며, 엔지니어들의 분석, 설계 및 코딩과 테스트 작업을 도와준다.
- ⭐️ CASE의 주요기능 : 다양한 소프트웨어 개발 모형 지원, 그래픽 지원, 소프트웨어 생명주기 전 단계의 연결