본문 바로가기

CS 정리

탑싯_1_소프트웨어 개발_2_소프트웨어 재사용

1. 소프트웨어 재사용

 기존의 소프트웨어/소프트웨어 지식을 활용해 새로운 소프트웨어 구축

 

목적: 신뢰성, 생산성, 확장성

대상: 일반적인 지식, 설계 정보, 데이터 정보, 프로그램 코드

원칙

 - 범용성: 일반적으로 사용할 수 있어야한다.

 - 모듈성: 최소한의 결합도 및 최대한의 응집력을 가져야 한다.(결국 연관된 것이 적어야 범용성이 높아지기 때문)

 - 하드웨어, 소프트웨어 독립성

 - 일반성, 신뢰성

 

효과: 생산 단가 절감, 높은 품질의 소프트웨어를 공유할 수 있다

 

 

2. 역공학

 이미 만들어진 시스템을 역으로 추적해 문서나 설계 기법 등의 자료를 얻는다

쉽게 설명해서 구현된 코드 등을 바탕으로 추상화된 설계를 만드는 것이다.

Input: 원시코드, 목적 코드 등의 입출력 자료나 문서로 Output: 구조도, 제어 흐름 그래프를 만드는 것

 

필요한 이유: 유지보수를 함에 있어서 유용하다, 데이터베이스를 재구축하기 위해서

 

종류

 - 논리역공학 : 원시코드로부터 정보를 추출해 물리적 설계 저장소에 저장

 = 자료역공학: 기존 데이터베이스를 수정하거나 새로운 데이터베이스 관리시스템으로 전이하는 역할