완성된 소프트웨어를 기반으로 3R을 통해 소프트웨어의 생산성을 극대화 하는 기법
1. 역공학(Reverse Engineering)
- 이미 개발된 시스템을 CASE 도구의 도움을 받아서 사양서, 설계서 등의 문서로 추출하는 작업
- 역공학 하는 이유는 이미 운영되고 있는 시스템이 오래되서 문서가 없을 경우, 시스템을 버리기 보다 소스코드를 분석하면서 어떤 설계서가 있었겠고, 어떤 요구사항이 있었겠다 등 문서를 추출한다.
- 즉, 유지 운영을 위해서 사용한다.
- ex. 은행 시스템
- 상용화되거나 이미 개발된 소프트웨어의 분석을 도와준다.
* 차세대?
-> 기존에 있는 시스템을 재개발(새롭게 만든다.)하면서 기존에 있던 것을 재사용 한다.
-> 재개발 + 재사용
* 고도화?
-> 기존에 있는 시스템에 살을 붙여서 다듬는다.
-> 재공학
2. 재공학(Re-engineering)
- "낡은 부분만 리모델링해서 다시 사용하자"는 개념.
- 현 시스템(레거시)의 유지보수성을 향상시켜서 소프트웨어의 생산성을 높이는 기법
3. 재사용(Reuse)
- 예전에 잘 개발된 것을 다음 프로젝트에서 다시 사용하자.
- 기능, 성능, 품질을 인정받았던 이미 개발된 소프트웨어의 전체 또는 일부분을 다시 사용한다.
- 비용을 절감할 수 있다.
- ex. 게시판 만들기 모듈 재사용
- 함수, 객체 재사용 < 컴포넌트 재사용 < 애플리케이션 재사용
- 기존 모듈 사용하면서 새로운 요구사항에 맞춰 커스터마이징한다.
[재사용 방법]
1) 합성 중심(Composition Based)
- 부품을 끼워맞추듯이, 모듈을 부품화 시켜 놓음으로써, 모듈을 조립하면서 소프트웨어를 완성하는 방법
2) 생성중심(Generation Based)
- 추상화된 명세를 구체화해서 프로그램을 만든다.
- 추상화 해놓은 것을 하위 클래스에서 구현해서 사용한다.
'Study > Concepts' 카테고리의 다른 글
DAY 76. DB - 물리적 모델링 (0) | 2021.11.02 |
---|---|
DAY 75. DB - 논리적 모델링 (0) | 2021.11.01 |
DAY 74. DB - 개념적 모델링 (0) | 2021.10.31 |
DAY 72. DB - DB 모델링 (0) | 2021.10.29 |
DAY 71. UML - 시퀀스 다이어그램 (0) | 2021.10.28 |