고전컴퓨터/소프트웨어 공학

[SW가시화] 소프트웨어공학의 3R

nineil91 2021. 3. 11. 17:50

소프트웨어 공학의 3R이란?

완성된 소프트웨어를 기반으로 소프트웨어 생산성을 극대화 함. 역공학(Reverse-Enginerring), 재공학(Re-Engineering), 재사용(Re-Use)를 통해서 함.

 

기존 소프트웨어의 비가시성 문제를 해결하기 위해 3R 기술이 반드시 필요함.

 

개발의 생산성 향상, 수명을 늘이고 개발 시간, 비용을 줄일 수 있음. 기존 소프트웨어 개발 방법을 발전시킴.

 

-역공학(Reverse-Enginerring) : 시스템이 만들어졌는데 성능이 저하되었거나 변형이 많이 일어나 프로그램이 어떻게 만들어졌는지 잊혀졌을때 시스템 분석

기존 개발된 시스템의 CASE를 이용해 사양서, 설계서 등의 문서로 추출하는 작업

소스코드를 문서화함.

개발단계를 역으로 올라가 기존 개발 시스템의 코드나 데이터로부터 설계 명세서나 요구 분석서등을 도출하는 작업

코드를 복원하는것은 모두 역공학으로 취급 할 수 있다.

 

-재공학(Re-Engineering) : 잃어버린 정보가 생기거나 버그가 생겼을때, 너무 복잡할때

기존 시스템프로그래밍 표준에 맞추거나 고수준의 언어로 재구성하거나 타 하드웨어에서 사용할 수 있도록 변환하는 작업

기존코드를 폐지하지 않는다. 추가 할 코드가 있다면 추가한다.

유지보수의 생산성 강화

 

-재사용(Re-Use) : 다른 시스템에 적용을 할 필요성을 느꼈을때 호환하도록

이미 개발되어 기능, 성능, 품질을 인정받았던 소프트웨어 전체 또는 일부분을 다시 사용

다른 시스템에 이용되고있는 소프트웨어를 파악하고 재구성하여 새로운 시스템에 적용하기 위한작업

 

프로그래밍 표준에 관한 이야기

m.blog.naver.com/PostView.nhn?blogId=tipsware&logNo=221032917097&proxyReferer=https:%2F%2Fwww.google.com%2F