1. 소프트웨어 재사용
기존의 소프트웨어/소프트웨어 지식을 활용해 새로운 소프트웨어 구축
목적: 신뢰성, 생산성, 확장성
대상: 일반적인 지식, 설계 정보, 데이터 정보, 프로그램 코드
원칙
- 범용성: 일반적으로 사용할 수 있어야한다.
- 모듈성: 최소한의 결합도 및 최대한의 응집력을 가져야 한다.(결국 연관된 것이 적어야 범용성이 높아지기 때문)
- 하드웨어, 소프트웨어 독립성
- 일반성, 신뢰성
효과: 생산 단가 절감, 높은 품질의 소프트웨어를 공유할 수 있다
2. 역공학
이미 만들어진 시스템을 역으로 추적해 문서나 설계 기법 등의 자료를 얻는다
쉽게 설명해서 구현된 코드 등을 바탕으로 추상화된 설계를 만드는 것이다.
Input: 원시코드, 목적 코드 등의 입출력 자료나 문서로 Output: 구조도, 제어 흐름 그래프를 만드는 것
필요한 이유: 유지보수를 함에 있어서 유용하다, 데이터베이스를 재구축하기 위해서
종류
- 논리역공학 : 원시코드로부터 정보를 추출해 물리적 설계 저장소에 저장
= 자료역공학: 기존 데이터베이스를 수정하거나 새로운 데이터베이스 관리시스템으로 전이하는 역할
'CS 정리' 카테고리의 다른 글
탑싯_1_소프트웨어 개발_3~5 문제 (1) | 2024.01.21 |
---|---|
탑싯_1_소프트웨어 개발_5_소프트웨어 설계 원리와 구조적 설계 (1) | 2024.01.21 |
탑싯_1_소프트웨어 개발_4_알고리즘 (0) | 2024.01.12 |
탑싯_1_소프트웨어 개발_3_자료구조 (0) | 2024.01.12 |
탑싯_1_소프트웨어 개발_1_소프트웨어 공학 개요 (0) | 2024.01.08 |