[1] 소프트웨어 공학 개념
1. 소프트웨어 공학
소프트웨어 공학의 3R
- 역공학 (Reverse Engineering)
개발 단계를 역으로 올라가서 기존에 개발된 시스템의 설계 명세서나 요구 분석서 등을 도출하는 작업
- 재공학 (Re-Engineering)
생산성이 아닌, 예방 유지보수(Preventive Maintenance) 측면에서 소프트웨어 위기를 해결하려는 방법
- 분석 (Analysis)
- 재구성 (Restructuring)
- 역공학 (Reverse Engineering)
- 이관 (Migration)
- 재사용 (Reuse)
이미 개발되어 있는 소프트웨어의 전체 또는 일부분을 다시 사용하는 방법
- 재사용 방법
- 합성 중심 (Composition Based, 블록 구성) : 블록(모듈)을 만들어서 끼워 맞추어 완성시키는 방법
- 생성 중심 (Generation Based, 패턴 구성) : 추상화 형태로 쓰여진 명세를 구체화하여 만드는 방법
소프트웨어 개발 단계
계분설구테유
- 계획
- 요구사항 분석
- 설계
- 구현
- 테스트
- 유지보수
2. 소프트웨어 개발 방법론