2주차 온라인 강의 요약
소프트웨어를 개발, 운영 및 유지보수
소프트웨어 위기의 원인
- 규모 및 복잡도 증가
- 유지보수 어려움
- 예측의 어려움
- 요구사항 변경
소프트웨어 개발 프로세스
이미 개발된 프로젝트, 더 좋은 품질의 소프트웨어를 만들기위해 기록된 문서를 통해 지식을 습득
프로세스
어떤 일을 하기 위한 특별한 방법프로세스 단계
분석 - 설계 - 구현 - 테스팅실현 가능성 분석을 위해 고려할 측면
1. 경제적 측면
2. 기술적 측면
3. 스케줄 측면
4. 운영적 측면code-and-fix 문제점
프로세스가 없는 개발법
소프트웨어 프로세스의 필요성
소프트웨어 개발과정을 체계적으로 계획/관리하기 위함
수정 및 적응
수정 유지보수
오류가 발견되었을 떄 이를 수정하는 작업적응 유지보수
운영체제나 인프라 환경 등이 변화되었을 때
수용할 수 있도록 함완전 유지보수
기능이나 성능을 개선하거나 새로운 기능을 추가하기 위해서 프로그램을 수정하는 작업예방 유지보수
오류가 발생되기 전에 미연에 방지될 수 있도록 대비하는 작업
1. 폭포수 모델
- 전통모델, 순차적인 단계를 따름
- 한번 수행되면 되돌릴 수 없음
장점
- 초보자 쉽게 가능
- 중간 산출물이 명확
단점
- 융통성 부족
- 이전 단계의 오류가 다음 단계의 영향을 줄 수 있음
- 프로세스 진행과정에 변경요청이 있더라도 이를 반영할 수 없음
오류는 주로 요구사항 분석 및 설계 단계에서 발생
발생시점이 늦어질수록 수정 비용이 증가하게 됨
폭포수모델 => 순차적으로 진행, 요구사항 변경 어려움, 문서화가 단계적으로 잘 나옴, 유지보수는 항상 있음, 개발속도는 따로 언급안함
1970- 폭포수 모델
2000 - 에자일 방법
2010 - 클라우드 시스템
품질 보증하는 방법 => 다시 공부하기
유지보수 유형들에 관련된 문제들
즉흥적인 개발이 초래할 수 있는 문제
=> 유지보수 어려움
오류분포와 발견시점 수정비용이 많이드는 단계
=> 릴리즈 단계
요구사항,분석 단계에서 가장 많이 오류가 발생
인공지능 소프트웨어 위기와 관련된 것
=> 학습 모델 활용 문제
폭포수모델 적절한 경우
=> 요구사항이 명확할 떄
소프트웨어 프로세스 필요이유
=> 개발팀 협력
폭포수 모델의 장점
=> 단계별로 문서화가 잘되어있음
소프트웨어 위기의 원인이 아닌 것
=> 개발인력 부족
원인: 유지보수의 어려움, 요구사항 변경, 소프트웨어 복잡도 증가
소프트웨어 공학
=> 소프트웨어 위기 해결하기 위해