[정보처리기사_필기] 소프트웨어 공학 <1>
- Life Logs/Study Notes
- 2014. 3. 20. 22:22
■ 소프트웨어와 시스템
✔ 소프트웨어 : 문서까지 포함
✔ 소프트웨어 특성
- 독창적이 아니라 대중적이여야 한다.
- 무조건 간결한게 좋은건 아니다, 최소한의 기능은 갖춰야 함
✔ 소프트웨어를 문서화 했을때 얻는 이득
- 시스템 개발의 분석과 설계가 용이
- 프로그램 유지보수 용이
- 프로그램의 확장성
- 인수 인계가 용이
✔ 시스템
- H/W + S/W + 절차
✔ 시스템의 구성 요소
|------제어------|
- 입력 -> 처리 -> 출력
↑←← 피드백 ←←↓
■ 소프트웨어 공학
✔ 공학의 의미
- 경제성
- 적시성
- 보편 타당성(독창적 x)
✔ 등장 배경(소프트웨어 위기론)
- 소프트웨어 비용 증가
- 소프트웨어의 발전이 느리다
- 개발자 부족
- 소프트웨어 유지보수비용이 개발비를 능가
■ 소프트웨어 생명 주기(SDLC)
✔ 개념
- 소프트웨어 개발을 위해 정의, 운용, 유지보수
- 비용산정과 개발계획 수립이 가능
✔ 생명주기
- 정의단계(What) : 타당성 검토 -> 계획 -> 요구사항 분석
- 개발단계(How): 설계 -> 구현 -> 테스트
- 유지보수 단계 : 가장 많은 시간과 비용
✔ 소프트웨어 생명 주기 모형
- 폭포수 모형(Waterfall)
➤ 앞 단계가 확실히 끝나야 다음 단계로 넘어간다 -> 이상적,원론적
➤ 타당성 검토 -> 계획 (비용,시간 ,인력) -> 요구분석 -> 설계 -> 구현 -> 테스트 -> 유지보수(오류수정, 기능향상)
➤ 단점 : 새로운 요구 반영이 어렵다
- 프로토타입 모형(Prototype)
➤ 사용자 요구 반영이 용이
➤ 요구수집 -> 빠른 설계 -> 프로토타입(모델하우스)구축 -> 고객평가 -> 조정 -> 구현
- 나선형 모형(Spiral)
➤ Boehm이 제안한 작업
➤ 대규모 프로젝트에 사용
➤ Planning -> Risk Analysis -> Engineering -> Customer Evaluation -> Planning -> ............반복적 수행
➤ 오류률 : 소프트웨어 변경시 일시적 급증