과학은 지식을 관찰, 공학은 관찰된 지식 또는 문제를 해결하는 방법 |
I. 과학적 지식을 소프트웨어 설계와 개발에 응용, 소프트웨어 공학의 개요
가. 소프트웨어 공학(Software Engineering)의 정의
- 소프트웨어 개발, 운용, 유지보수에 대해 체계적이고 한정적인 접근 방법으로 소프트웨어 위기 극복을 위해 소프트웨어에 공학을 적용한 접근 방법
나. 소프트웨어 공학의 필요성
- 무형성, 진화성, 복잡성등의 특징과 제조가 아닌 개발 과정이므로 일반 제조공정보다 측정과 관리 어려움
- 잦은 요구사항 변경, 사람의존 개발 특성으로 개발 규모에 따라 인력, 비용, 의사소통, 복잡도 등이 기하급수적으로 증가
- 요구사항 변경, 주변환경 변화에 따라 수정되고 진화 필요
- 최종 산출물이 개발 과정에서 확인되지 않아, 오류 발견 시기가 늦어져 프로젝트 지연 및 실패 가능
다. 소프트웨어 공학의 목적
- 고품질 소프트웨어의 생산, 소프트웨어 생산 프로세스 개선
- 사용자 만족도의 극대화, 적정비용, 기간, 자원으로 소프트웨어 생산
II. 소프트웨어 공학의 구성요소
구성요소 |
내용 |
사례 |
방법 (Method) |
목표로 하는 결과를 얻기 위해 적용하는 기법과 절차 |
구조적 분석/설계 방법 |
도구 (Tool) |
효율적이고 생산성과 품질을 높이며 작업 용이성을 극대화 하기 위한 기구 및 자동화된 시스템 |
설계 도구, 테스트 도구 |
프로세스 (Process) |
기법과 도구를 이용하여 효율적으로 진행 할 수 있는 순서 |
RUP, XP |
패러다임 (Paradigm) |
스타일과 유사하며 접근 방향과 철학을 의미 |
구조적 방법론 |
III. 소프트웨어 공학의 프로세스
단계 |
관점 |
설명 |
정의단계 |
무엇 (What) |
- 처리되는 정보, 성능과 기능, 인터페이스, 설계 제약 조건, 검증 기준 등을 기술하는 단계 |
개발단계 |
어떻게 (How) |
- 데이터 구조화, 소프트웨어 기능 및 설계, 개발, 테스트에 대해 기술하는 단계 |
지원단계 |
변화 (Change) |
- 오류수정, 소프트웨어 사용환경 변화에 따른 변화, 사용자 요구에 따른 변경 수행 |
'IT기술노트 > 소프트웨어공학' 카테고리의 다른 글
RAD(Rapid Applicatoin Development) (0) | 2021.01.25 |
---|---|
반복적 개발 모델(Iteration Model) (0) | 2021.01.25 |
나선형 모델(Spiral Model) (0) | 2021.01.25 |
프로토타이핑 모델 (0) | 2021.01.25 |
V 모델 (0) | 2021.01.25 |
폭포수 모델(Waterfall Model) (0) | 2021.01.25 |
SWEBOK(Software Engineering Body of Knowledge) (0) | 2021.01.25 |
소프트웨어(Software) (0) | 2021.01.25 |
댓글