성장일기 : 문과생의 개발 여정 (งᐖ)ว ( ᐛ )و

[01 소프트웨어 구축] 01 소프트웨어 공학 본문

Diary/정보처리기사

[01 소프트웨어 구축] 01 소프트웨어 공학

hyemi_flora 2024. 4. 21. 13:21

* 소프트웨어 공학이란 ? 품질 높은 소프트웨어를 효율적으로 개발하기 위한 학문이다.

* 소프트웨어공학의 3R
- 역공학(Reverse Engineering / 소스코드만 있고 산출물(문서)가 없어서 역으로 산출물을 만들어내는것),
  재공학(Re-Engineering / 유지보수의 생산성으로 소프트웨어의 위기를 극복하기 위한 것 /  분석 -> 재구성 -> 역공학 -> 이관),
  재사용(Reuse / 함수,객체, 컴포넌트, 애플리케이션을 모듈의 독립성을 높여서 다른곳에서 재사용 할 수 있게 하는 것)

* 소프트웨어 개발단계
계획(일정, 비용 계획 등 타당성 검사 rfp 문서를 통해 의뢰) - 분석 (요구사항 분석) - 설계(모델링 / 스토리보드) - 구현 (개발) - 테스트(★) - 유지보수

* 소프트웨어 개발 방법론
1) 폭포수 모델 - 선형순차모델, 역으로 돌릴 수 없다
2) 프로토타이핑 모델 - 시제품을 만들어 고객과 소통하며 계속 보수 해 나간다
3) 나선형모델 - 계획,위험분석,공학적개발,평가의 순서를 계속 반복한다
4) RAD모델 - 케이스 도구를 이용해 빨리 만들어나간다.
5) V모형 - 테스트단계에 초점, 폭포수모델을 기본으로 한다. 단위 -> 통합 -> 시스템 -> 인수 테스트 순으로 진행
6) 4세대 기법

* 애자일 방법론 : 예전의 방법론들은 점진적으로 이루어지고 단계들이 명확하고 산출물에 힘을 쏟았는데, 산출물 보다 동작하는 소프트웨어에 힘을 쓰자고 하는 것이 애자일 방법론 이다.

* 애자일 방법론의 종류 
1) XP (의사소통, 용기, 피드백, 존중, 단순성) - 의사 선생님 피존용기에 약 담아주세요~ 
2) 스크럼 (스프린트 단위로 개발, 매일 10~15분 단위 회의진행 / 스프린트 백로그(이번 이소프트웨어에서 가져야할 기능을 담아놓은 것), 제품 백로그가 있다.)