본문 바로가기
(Pilot) 탑기공/소프트웨어 개발

[탑기공] 소프트웨어 재사용

by 두음달인 2022. 12. 13.
반응형


소프트웨어 3R - 역공학, 재공학, 재사용


 

소프트웨어 재사용 정의

 

사용 소프트웨어 개발 관련 지식(기능, 모듈, 구성 등)을 표준화하여
개발 생산성을 높이기 위하여 반복적으로 사용하기에 적합하도록 구성하는 방법

기존 개발 기능, 성능 및 품질을 인정받았던 소프트웨어의 전체 또는 일부분을 다시 사용하여
신규 개발되는 소프트웨어의 품질과 생산성 및 신뢰성을 높이고 개발 일정 및 비용을 감소시켜주는 대응 방안

기존 개발 모듈이나 프로그램, 산출물 등을 동일한 응용 분야, 서로 다른 응용업무,
혹은 서로 다른 기업 간에 다시 사용하거나 일부 수정 후 재사용할 수 있는 개념

 

소프트웨어 3R 개념도

 

 

소프트웨어 재사용의 목적

 

신뢰성, 확장성, 생산성, 사용성, 유지보수성, 적응성

 

재사용(Reuse) 활용 기법

 

Copy, Pre-Processing, Library, Package, Object, Generics, 객체지향, Component

 

소프트웨어 재사용의 대상

 

일반적인 지식, 설계 정보, 데이터 정보, 프로그램 코드, 
기타 - 투자 대 효과 분석정보, 사용자 지침서, 프로토타입, 인력 

 

소프트웨어 재사용의 원칙

 

범용성, 모듈성, 하드웨어 독립성, 소프트웨어 독립성, 자기 문서화, 일반성, 신뢰성

 

소프트웨어 재사용 방법

 

구분 설명
합성 중심 전자 칩과 같은 소프트웨어 부품, 즉 블록(모듈)을 만들어서 끼워 맞추어
소프트웨어를 완성시키는 방법으로, 블록 구성 방법이라고도 한다.
생성 중심 추상화 형태로 쓰여진 명세를 구체화하여 프로그램을 만드는 방법으로,
패턴 구성 방법이라고도 한다.

 


기출 문제

 

아래 문제는 SOLID 관련 문제임

(관리 121-2-4)
소프트웨어 재사용성과 유지보수 향상을 위하여 객체지향 설계 5대 원칙을 적용하고 있다.
다음에 대하여 답하시오.

가. 의존성 역전 원칙(Dependency Inversion Principle)을 설명하시오.
나. 의존성 주입(Dependency Injection)을 구현하는 3가지 방식을 설명하고
각 방식별 아래의 조건을 고려하여 구현 예시를 작성하시오.

 

 

(관리 104-3-1)
객체지향 소프트웨어 설계에 많은 도움을 주는 GoF의 디자인 패턴(Design Pattern) 영역을
목적과 범위에 따라 분류하고, 분류별 특성을 설명하시오.
또한, 객체지향 시스템에서 개발된 기능의 재사용을 위해 사용되는 대표적 기법인
화이트박스 재사용(White-box Reuse), 블랙박스 재사용(Black-box Reuse) 및
위임(Delegation)이 패턴과 어떤 관계가 있는지 설명하시오.

 

(응용 111-3-5)
소프트웨어 재사용성을 통해 생산성을 향상하기 위한 방안을 설계, 구현, 유지보수 단계에서
구체적으로 설명하시오.

 

(응용 90-1-5)
소프트웨어 재사용 향상을 위한 MVC(Model, View, Controller)

 

(응용 90-4-5)
객체 지향적 프로그래밍에서 재사용성을 구현하려면 클래스의 추상화(abstraction), 정보은폐(encapsulation) 및 정보의 상속(inheritance)과 같은 개념이 필요하다.
이와 관련하여 클래스의 메소드는 어떤 방법으로 작성되어야 하는지 설명하시오.

 

참고 자료

 

엄청난 양의 데이터가 있는 인터넷에서 필요한 유의미한 자료들을 찾는 것은 정말 어려운 듯합니다. 

틈틈이 관련 자료들을 모아놓고 자신만의 것으로 만드는 게 중요해 보입니다.

 

탑싯 에센스 - 소프트웨어 개발

 

SW 위기극복을 위한 3R : 네이버 블로그 (naver.com)

 

SW 위기극복을 위한 3R

1. 3R 개요 가) 3R(Reverse-Engineering, Re-Engineering, Re-Use) 목적 - 소프트웨어 개발 생산성...

blog.naver.com

 

소프트웨어 재사용 - IT위키 (itwiki.kr)

 

IT위키

IT에 관한 모든 지식. 함께 만들어가는 깨끗한 위키

itwiki.kr

 

소프트웨어 재사용 : 네이버 블로그 (naver.com)

 

소프트웨어 재사용

1. 재사용의 개요소프트웨어 재사용(Software Reuse)은 이미 개발되어 인정받은 소프트웨어의 전체 혹은 ...

blog.naver.com

 

반응형

댓글