TOPCIT/M1 소프트웨어 개발

Ⅱ소프트웨어 재사용

코블리_vv 2022. 7. 29. 15:45
728x90
반응형

01 소프트웨어 재사용


🎈 배경

 

◾ 소프트웨어 위기로 인한 품질 및 생산성 저하

◾ 소프트웨어 개발의 자동화 기술 발달로 CASE 도구 사용 확대

◾ 소프트웨어 개발 표준화 준수 및 품질확보 노력

 

 

🎈 정의

 

기존 개발 기능, 성능 및 품질을 인정받았던 소프트웨어의 전체 또는 일부분을 활용해 새로운 소프트웨어 구축함

 

 

🎈 목적

 

◾ 신뢰성 : 기능, 안정, 속도 등의 사전 성능 검증됨

◾ 확장성 : 검증된 기능 기반으로 업그레이드 용이

◾ 생산성 : 비용, 시간 위험 등 전체적 개발 프로세스 향상

 

 

🎈 소프트웨어 재사용의 대상

 

1️⃣ 일반적인 지식

- 환경 정보 : 교육 및 활용을 통해 얻어진 지식

- 외부 지식 : 개발 및 특정분야의 참여를 통해 쌓은 지식

 

2️⃣ 설계 정보

- 기본설계

- 상세설계

3️⃣ 데이터 정보

- 시스템 데이터

- 시험 사례 (Test Cases)

 

4️⃣ 프로그램 코드

- 모듈

- 프로그램

 

️5️⃣ 기타

- 투자 대 효과 분석 정보

- 사용자 지침서

- 타당성 조사방법 및 결과

- 프로토타입

- 인력

 

 

🎈 소프트웨어 재사용의 원칙

 

 범용성(Generality) : 특정 응용분야만이 아닌 일반적으로 활용될 수 있는 정도여야 함

 모듈성(Modularity) : 정보은닉과 추상화의 원칙으로 최소한의 결합도 및 최대한의 응집력을 갖도록 해야 함

 하드웨어 독립성 : 가능한 실행 하드웨어 기종과 무관해야 함

 소프트웨어 독립성 : OS 또는 DBMS와 무관하게 운영해야 함

 자기 문서화(Self Documentation) : 모듈의 정확한 기능, 용법, 인터페이스 기술

 일반성(Commonality) : 많은 개발자들에게 공통적으로 필요하고 사용 가능해야 함

 신뢰성(Reliability) : 품질을 믿고 사용할 수 있어야 함

 

 

🎈 효과

 

- 소프트웨어 생산의 TCO 절감

- 높은 품질의 소프트웨어 생산을 위한 공유 및 활용 효과

- 시스템 개발에 대한 정보 공유 및 타 프로젝트의 산출물 공유

- 시스템 구조와 좋은 시스템 구축 방법에 대한 교육적 효과

 

 


02 역공학


 이미 만들어진 시스템을 역으로 추적하여 처음의 문서나 설계기법 등의 자료를 얻어내는 일

 소프트웨어 유지보수 단계에 수행

 소프트웨어 생명주기의 마지막 단계에서 얻어지는 프로그램 또는 문서 등을 이용하여 생명주기 초기 단계의 산출물에 해당하는 정보 또는 문서를 만들어 내는 일

 

INPUT OUTPUT
원시코드, 목적코드, 작업 절차, 라이브러리 등 입출력 형태의 자료, 문서 구조도, 자료 흐름도, 제어 흐름 그래프, 개체 관계도

 

🎈 필요한 경우

 

기 가동 중인 시스템의 유지보수가 어려운 경우

 변경이 빈번하여 시스템 효율이 저하된 경우

 파일 시스템으로 개발된 업무를 관계형 데이터베이스로 재구축하려는 경우

 기본 메인 프레임을 다운사이징하는 경우

 

 

🎈 장점

 

 상용화되거나 기 개발된 소프트웨어의 분석을 도와줌

 기존 시스템의 자료와 정보를 설계 수준에서 분석할 수 있어 유지 보수성을 향상

 기존 시스템 정보를 Repository에 보관하여 CASE의 사용을 용이하게 함

 

 

🎈 종류

 

논리 역공학 : 원시 코드로부터 정보 추출, 물리적 설계정보를 얻어내는 역할 수행

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

 

728x90
반응형