• 검색 결과가 없습니다.

소프트웨어 재사용 효과에 영향을 미치는 요인에 관한 연구

N/A
N/A
Protected

Academic year: 2021

Share "소프트웨어 재사용 효과에 영향을 미치는 요인에 관한 연구"

Copied!
101
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

석사학위 논문

소프트웨어 재사용 효과에 영향을 미치는 요인에 관한 연구

- 비 기술적인 요인을 중심으로 -

국민대학교 대학원

정보관리학과

민 광 식

2002

(2)

소프트웨어 재사용 효과에 영향을 미치는 요인에 관한 연구

- 비 기술적인 요인을 중심으로 -

지 도 교 수 김 승 렬

이 논문을 석사학위 청구 논문으로 제출함

2003년 1월 5일

국민대학교 대학원 정보관리 학과

민 광 식

2002

(3)
(4)

閔 光植의

碩士學位 청구논문을 認准함.

2003년 1월 15일

심사 위원장 김 현 수 印 심 사 위 원 김 승 렬 印 심 사 위 원 김 은 홍 印

국민대학교 대학원

(5)

<제 목 차 례>

제 1 장 서 론 ··· 1

제 1 절 연구 배경 및 목적 ··· 1

1. 연구의 배경 ··· 1

2. 연구의 목적 ··· 2

제 2 절 연구방법 및 구성 ··· 3

1. 연구의 방법 ··· 3

2. 연구의 구성 ··· 4

제 2 장 이론적 고찰 ··· 5

제 1 절 소프트웨어 재사용 ··· 5

1. 소프트웨어 재사용의 등장배경과 개요 ··· 5

2. 소프트웨어 재사용의 정의 ··· 6

2.1 소프트웨어 재사용의 유형에 따른 정의 ··· 7

2.2 소프트웨어 재사용의 대상 ··· 7

2.3 소프트웨어 재사용의 장점 ··· 8

3. 소프트웨어 재사용 프로세스 ··· 8

제 2 절 소프트웨어 재사용에 영향을 미치는 요인에 대한 선행연구 ··· 10

제 3 절 소프트웨어 생산성에 영향을 주는 요인에 대한 선행연구 ··· 30

제 3 장 연구모형 및 가설설정 ··· 35

제 1 절 연구모형 ··· 35

1. 연구모형 ··· 35

2. 가설 설정 ··· 41

2.1 개인적 요인 ··· 41

2.2 조직 및 관리적 요인 ··· 42

2.3 환경적 요인 ··· 42

2.4 재사용 비율과 재사용 효과와의 관계 ··· 44

제 2 절 변수의 조작적 정의와 설문의 구성 ··· 45

1. 변수의 조작적 정의 ··· 45

(6)

1.1 개인적 요인 ··· 46

1.2 조직 및 관리적 요인 ··· 46

1.3 환경적 요인 ··· 48

2. 설문의 구성 ··· 49

제 3 절 자료수집 및 표본특성 ··· 50

1. 자료수집 방법 ··· 50

2. 표본특성 ··· 50

제 4 장 결과분석 및 가설검증 ··· 53

제 1 절 신뢰성 및 타당성 분석 ··· 53

1. 신뢰성 분석 ··· 54

2. 타당성 분석 ··· 55

제 2 절 연구변수의 기술통계량 및 상관관계 분석 ··· 58

1. 기술통계량 ··· 58

2. 상관관계 분석 ··· 60

제 3 절 가설의 검증 ··· 61

1. 개인적 요인과 소프트웨어 재사용 비율과의 영향 관계분석 ··· 61

2 조직 및 관리적 요인과 소프트웨어 재사용 비율과의 영향 관계분석 ··· 64

3. 환경적 요인과 소프트웨어 재사용 비율과의 영향 관계분석 ··· 67

4. 소프트웨어 재사용 비율과 재사용 효과와의 영향 관계분석 ··· 68

4.1 소프트웨어 재사용 비율과 시간단축과의 영향 관계분석 ··· 68

4.2 소프트웨어 재사용 비율과 비용절감과의 영향 관계분석 ··· 69

4.3 소프트웨어 재사용 비율과 품질개선과의 영향 관계분석 ··· 70

5. 개별 요인들과 소프트웨어 재사용 비율과의 영향 관계분석 ··· 71

제 5 장 요약 및 결론 ··· 74

1. 요 약 ··· 74

2. 연구결과의 시사점 ··· 75

3. 연구의 한계점 치 향후 연구방향 ··· 76

3.1 연구의 한계 ··· 76

(7)

3.2 향후 연구방향 ··· 77

<참 고 문 헌> ··· 78

Abstract ··· 83

[부록 1] 설문지 ··· 85

(8)

<표 차 례>

[표 1] 재사용 자산의 다양한 분류기준 ··· 7

[표 2] 재사용의 장점 ··· 8

[표 3] 소프트웨어 재사용 프로세스 ··· 9

[표 4] 소프트웨어 재사용 방해요인 ··· 11

[표 5] Frakes and Isoda [1994]의 소프트웨어 재사용 성공요인 ··· 14

[표 6] Card and Comer [1994]의 재사용에 대한 장애물과 요인 ··· 15

[표 7] 재사용 보상 금액 ··· 16

[표 8] Frakes and Fox [1995]의 16가지 질문과 조사결과 ··· 17

[표 9] Frakes and Fox [1996]의 재사용 요인과 설명 ··· 19

[표 10] Frakes and Fox [1996]의 7가지 실패 유형 ··· 20

[표 11] Lynex and Layzel [1997]l의 재사용 도입 방해요인, 증상과 행동 ··· 22

[표 12] Lee and Litecky [1997]의 소프트웨어 재사용 기준 ··· 24

[표 13] Kim and Stohr [1998]의 소프트웨어 재사용을 위한 프레임워크 ··· 24

[표 14] Kunda and Brooks [2000]의 사례별 조직적 문제에 대한 비교 ··· 27

[표 15] 소프트웨어 재사용에 미치는 요인에 대한 요약 정리 ··· 28

[표 16] 기술채택에 영향을 미치는 변수들에 대한 요인별 정리 ··· 30

[표 17] 높은 생산성을 보인 소프트웨어 프로젝트의 속성 ··· 31

[표 18] Yu, Smith and Huang[1990]의 생산성의 요인과 미치는 영향의 수준··· 33

[표 19] Gowda and Chand [1993]의 연구변수 정리 ··· 34

[표 20] 소프트웨어 재사용 비율에 영향을 미치는 개인적 요인정리 ··· 36

[표 21] 소프트웨어 재사용 비율에 영향을 미치는 조직 및 관리적 요인정리 · 38 [표 20] 소프트웨어 재사용 비율에 영향을 미치는 환경적 요인정리 ··· 38

[표 23] 연구변수 요약정리 ··· 40

[표 24] 각 요인별 가설 정리 ··· 45

[표 25] 각 변수에 대한 조작적 정의 요약 정리 ··· 48

[표 26] 설문지 구성요약 ··· 49

[표 27] 응답자의 직무 분포 ··· 50

[표 28] 응답자의 소프트웨어 개발 경력 ··· 51

[표 29] 응답자의 객체지향 및 컴포넌트 개발 경력 ··· 51

[표 30] 응답자가 받은 년 평균 교육횟수 ··· 51

[표 31] 응답자가 받은 교육 종류 ··· 52

[표 32] 신뢰성 분석 결과 ··· 54

(9)

[표 33] 개인적 변수에 대한 요인분석 결과 ··· 56

[표 34] 조직 및 관리적 변수에 대한 요인분석 결과 ··· 56

[표 35] 환경적 변수에 대한 요인분석 결과 ··· 57

[표 36] 각 변수의 기술통계량 ··· 58

[표 37] 개인적 요인의 기술통계량 ··· 59

[표 38] 조직 및 관리적 요인 기술통계량 ··· 59

[표 39] 환경적 요인 기술통계량 ··· 60

[표 40] 변수간의 상관계수 ··· 61

[표 41] 경험 및 지식과 재사용율과의 분산분석 ··· 62

[표 42] 경험 및 지식과 재사용율과의 회귀계수 ··· 62

[표 43] 교육 및 훈련과 재사용율과의 분산분석 ··· 63

[표 44] 교육 및 훈련과 재사용율과의 회귀계수 ··· 63

[표 45] 개인적 요인에 대한 가설 검증 결과 ··· 64

[표 46] 경영진의 지원과 재사용율과의 분산분석 ··· 64

[표 47] 경영진의 지원과 재사용율과의 회귀계수 ··· 64

[표 48] 인센티브 제도와 재사용율과의 분산분석 ··· 65

[표 49] 인센티브 제도와 재사용율과의 회귀계수 ··· 65

[표 50] 조직문화와 재사용율과의 분산분석 ··· 66

[표 51] 조직문화와 재사용율과의 회귀계수 ··· 66

[표 52] 조직 및 관리적 요인에 대한 가설 검증 결과 ··· 67

[표 53] 법 및 계약과 재사용율과의 분산분석 ··· 67

[표 54] 법 및 계약과 재사용율과의 회귀계수 ··· 68

[표 55] 환경적 요인에 대한 가설 검증 결과 ··· 68

[표 56] 재사용율과 시간단축과의 분산분석 ··· 69

[표 57] 재사용율과 시간단축과의 회귀계수 ··· 69

[표 58] 재사용율과 비용감소와의 분산분석 ··· 70

[표 59] 재사용율과 비용감소와의 회귀계수 ··· 70

[표 60] 재사용율과 품질개선과의 분산분석 ··· 70

[표 61] 재사용율과 품질개선과의 회귀계수 ··· 71

[표 62] 각 요인들과 재사용율과의 분산분석 ··· 72

[표 63] 각 요인들과 재사용율과의 회귀계수 ··· 73

[표 64] 회귀분석을 통한 가설검정 결과 ··· 73

(10)

<그림 차례>

[그림 1] 재사용 기반 개발 프로세스 모델 ··· 9

[그림 2] 재사용 요인 ··· 13

[그림 3] Card and Comer [1994]의 생산자-소비자 재사용 모델 ··· 15

[그림 4] Griss and Wosser [1995의 재사용 비 기술적 문제 ··· 18

[그림 5] 점증적 재사용 프로세스 ··· 19

[그림 6] Frakes and Fox [1996]의 재사용 성공 체인 모델 ··· 20

[그림 7] Sherif and Vinze [1999]의 조직의 재사용 채택 거부 요인 ··· 25

[그림 8] 재사용 채택 장애물 개념적 모델 ··· 26

[그림 9] Kunda and Brooks [2000]의 소프트웨어 시스템에 영향을 미치는 조직적 요인 ··· 27

[그림 10] 소프트웨어 생산성의 3-레벨 관점 ··· 32

[그림 11] 소프트웨어 생산성 연구 프레임워크 ··· 33

[그림 12] 연구모형 ··· 40

(11)

제 1 장 서 론 제 1 절 연구 배경 및 목적

1. 연구의 배경

최근 정보기술의 발전은 놀라울 정도로 빠르게 변하고 있는 가운데 소비자의 요구를 맞추어야 하는 기업들은 신뢰할 수 있는 정보시스템을 구축해야 하는 현실적인 부담에 직면하고 있는 상황이지만 정보시스템을 계획한 시간 내에 완 수하거나 주어진 예산에서 시스템 개발 프로젝트가 완수된 것도 드문 사실이 다. 대부분의 기업들은 미래의 고객 요구사항을 만족시키기 위하여 시스템을 지속적으로 변화시키고 발전시켜야 하지만 그 변화를 따라가기가 힘든 상황을

‘소프트웨어 위기’라고 부르고 있다. 즉, 소프트웨어의 생산성이 기업 환경 변화 속도와 고객의 요구변화 속도를 따라가지 못하고 있는 것이다 [Taylor, 1995].

인터넷의 확산과 컴퓨터의 보급은 한층 더 비즈니스 환경을 빠르게 변화시키 는 촉매제 역할을 하고 있으며 기업은 경쟁적이며 변화하는 환경에 대처함으로 써 생존해 나가고 있으며 동시에 높은 품질과 생산성을 무기로 하여 빠르게 변 화하는 고객의 요구를 만족시키기 위한 정보시스템을 개발해야 하지만 실제 이 것을 반영한 정보시스템을 개발하는 것은 쉽지가 않다. 이러한 환경에 대처하 기 위하여 소프트웨어 재사용 개념을 적용한 새로운 정보시스템 개발방법론이 대두되었는데 그것이 객체지향 (Object-Oriented) 방법론이다. 이것은 앞에서 언급한 소프트웨어 위기를 극복할 수 있는 몇 가지 능력을 제공하고 있는데 그 예로 재사용, 유지보수성, 품질, 개발 생산성 증가, 효율성을 가지고 있으며 현 실세계를 좀 더 정확하게 표현한다는 장점을 가지고 있다. 한편 다른 연구자들 은 개발비용 감소, 소프트웨어 확장성과 응용성 증가 그리고 더 나은 정보구조 를 제공하고 있다고 말하고 있다 [Subramanian, 2001]. 소프트웨어 재사용은 새로운 소프트웨어를 구축하기 위해 현존하는 소프트웨어 지식 혹은 산출물을 이용하는 것이며 또한 품질과 생산성을 증가시키기 위한 소프트웨어 기술이다 [Fafchamps, 1994: Frakes, 1994]. 이미 조직 내에서는 개인수준에서 뿐만 아니 라 소규모 그룹 수준에서 소프트웨어 재사용을 해오고 있다. 소프트웨어 위기 를 극복하기 위하여 지난 몇 년간 객체지향 방법론을 적용하기 위해 노력하고

(12)

있지만 객체지향 기술이 가진 한계점 즉, 재사용의 수준이 코드 수준에서 주로 나타나고 있으며 이러한 재사용을 극대화하기 위하여 조립식으로 소프트웨어를 개발하는 컴포넌트 기반의 개발이 등장하고 있는데 이것은 코드수준에서 한 단 계 더 나아가 실행 가능한 수준까지 재사용이 가능하기 때문에 객체지향 기술 의 발전된 모습으로 여겨진다[Cox, 2001]. 그러나 조직 내에서 시스템적인 재사 용이 성공하기 위해서는 기술적 문제와 함께 비 기술적인 문제를 광범위하게 다루어야 한다. 즉, 객체지향 및 컴포넌트 기반의 기술만으로는 성공적인 재사 용을 보장하는 것은 아니다[Curtis, 1988: Frakes 1994: Griss, 1995: Humprey 1989: Morisio 2002]. 도구를 사용하여 개발하는 것은 사람이기 때문에 상호보 완적으로 비 기술적인 측면도 고려해야만 성공적인 시스템이 될 수 있다. 마찬 가지로 컴포넌트 기반의 개발 또한 기술적 요소보다는 인간적, 사회적 그리고 조직적인 요인들에 초점을 맞추어야 한다[Kunda, 2000].

변화하는 환경에 대처하며 동시에 경쟁적인 우위를 확보하기 위하여 기업들은 정보시스템을 개발 및 운영해왔으며 향후 기술발전에 따라 지속적으로 시스템 을 새로 개발 하거나 개선해 나가야 할 것이다. 이에 컴포넌트를 포함한 소프 트웨어 재사용이 주는 혜택을 인지하여 조직에 소프트웨어 재사용을 도입 할 경우 고려해야 할 장애물과 사용효과에 영향을 미치는 요인을 파악함으로써 성 공적으로 소프트웨어 재사용이 조직에 도입되는데 기여하고자 한다.

2. 연구의 목적

Kunda and Brook [2002]의 연구에서는 사회기술적인(Social-technical) 이론에 근거하여 CBD(Component-Based Development)에 미치는 조직적인 요인을 연 구하였다. 사회기술적인 방법은 통합된 방법으로 사회적 그리고 기술적인 하위 시스템을 개발하는 것에 초점을 맞추고 있다. Frakes and Isoda [1994]의 연구 와 Morisio, Ezran and Tully(2002)의 연구에서는 포괄적으로 기술적인 문제 뿐 아니라 비 기술적인 문제를 다루고 있다.

따라서, 본 연구에서는 소프트웨어 재사용 효과에 영향을 미치는 요인들 중에 서 기술적인 요인들을 배제하고 비 기술적인 요인을 중심으로 다루고자 한다.

본 연구의 목적은 다음과 같다.

(13)

첫째, 소프트웨어 재사용 효과에 영향을 미치는 비 기술적인 변수를 살펴보고 둘째, 현업에서의 소프트웨어 재사용에 대한 인식 및 현황을 확인 하고 소프 트웨어 재사용 확산을 방해하는 장애요인들을 확인하며

셋째, 성공적으로 소프트웨어 재사용이 조직에 도입됨으로써 소프트웨어를 개발 할 경우 재사용 효과를 누릴 수 있는 방안을 살펴보도록 하자.

이를 통하여 소프트웨어 재사용이 우리기업에 도입되어 적절히 활용될 수 있 는 비 기술적인 측면을 제공함으로써 변화하는 환경에서 경쟁우위를 확보할 수 있는 기초를 제공할 수 있을 것이다.

제 2 절 연구방법 및 구성 1. 연구의 방법

본 연구의 목적은 소프트웨어 재사용 효과에 영향을 미치는 비 기술적인 요인 들을 실증적인 방법을 통하여 도출하는 것이다. 이러한 연구 목적을 달성하기 위하여 본 연구는 문헌연구와 실증연구를 병행하여 연구를 수행할 것이며 다음 과 같은 연구 절차로 연구를 진행할 것이다.

우선 본 연구의 이론적 배경으로 소프트웨어 재사용 효과에 영향을 미치는 비 기술적인 요인들에 대한 문헌 연구를 통하여 소프트웨어 재사용 효과에 영향을 미칠 수 있는 비 기술적 요인들을 통하여 본 연구의 모형과 가설을 설정하게 될 것이다.

다음으로 실증연구를 수행하기 위해서 현재 실질적으로 소프트웨어를 개발하 거나 프로젝트를 수행할 때 소프트웨어 재사용을 적용하고 있는 국내 SI 업체 및 소프트웨어 개발 업체의 개발자들을 대상으로 설문조사를 실시하여 자료를 수집한다.

자료는 이메일과 직접방문을 이용하여 수집하고, 수집된 자료를 근거로 하여 설문지의 신뢰성과 타당성을 조사하기 위하여 신뢰성 분석과 요인 분석을 실시 하고 연구가설을 검증하기 위하여 회귀분석을 시행할 것이다.

(14)

2. 연구의 구성

본 연구의 구성과 내용은 다음과 같다. 제 1 장에서는 본 연구의 배경과 목적 을 밝히고, 본 연구를 수행하기 위한 연구방법, 연구범위 및 구성에 관하여 논 의한다.

제 2 장에서는 본 연구의 이해를 돕기 위해 소프트웨어 재사용에 대한 일반적 인 정의 및 종류를 살펴본 후에 이론적 고찰 및 선행 연구를 통하여 소프트웨 어 재사용 효과에 영향을 미칠 수 있는 비 기술적인 요인들을 살펴본다. 이를 위하여 제 1 절에서는 소프트웨어 재사용의 등장배경과 정의와 재사용 프로세 스를 확인하고 제 2 절에서는 소프트웨어 재사용 효과에 영향을 미치는 비 기 술적인 요인에 대한 기존의 문헌을 검토하고 제 3 절에서는 소프트웨어 생산성 에 영향을 주는 요인에 대한 문헌을 검토한다.

제 3 장의 제 1 절에서는 제 2 장에서 논의한 비 기술적인 요인에 관한 선행 연구를 바탕으로 하여 본 연구의 연구모형을 개발하고 가설을 설정한다. 제 2 절에서는 본 연구의 연구 변수들의 조작적 정의와 본 연구에서 사용될 설문 측 정 항목들을 정의하여 설문지를 개발한 후 제 3 절에서는 자료 수집 및 표본 특성에 대한 논의를 한다.

제 4 장에서는 본 연구의 자료수집 방법, 자료 분석 방법, 분석 결과들을 제시 하고, 마지막 제 5 장에서는 본 연구의 결과를 요약하고 연구 결과를 토대로 연구의 시사점과 한계점을 제시한 후 향후 연구방향도 제시하게 될 것이다.

(15)

제 2 장 이론적 고찰 제 1 절 소프트웨어 재사용

1. 소프트웨어 재사용의 등장배경과 개요

소프트웨어 개발 프로젝트가 완성되지 못하고 중단되거나 개발된 후에도 요구 사항에 맞지 않아 개발된 시스템이 폐기되는 등의 개발비용이 점차 상승하는 이러한 소프트웨어 위기현상을 극복하고자 하는 노력의 일환으로 소프트웨어 생산성을 증가시킬 수 있는 잠재력을 가진 “재사용 가능한 소프트웨어”를 제안 하고 있다[Horowitz, 1984]. 한 조사에서는 소프트웨어 전체 코드 중에서 40∼

60%가 하나의 응용프로그램에서 다른 응용프로그램을 개발 할 경우 재사용이 가능하다고 보고하고 있으며 모든 비즈니스 응용프로그램 상에서 설계와 코드 의 60% 그리고 프로그램 기능의 75%가 한 개 이상의 프로그램에서 공통적이 라고 보고하고 있다. 또한 대부분의 프로그램에서 발견된 코드의 15%는 특정 응용프로그램에서만 적용되는 코드라는 것을 밝히고 있다.

이렇듯 소프트웨어 엔지니어링의 생산성을 높일 수 있는 방법의 하나로 소프 트웨어 재사용이 이용될 수 있으며 이것은 생산성뿐만 아니라 다른 장점을 제 공하기도 한다. 첫째, 향후 개발 노력에 들어갈 생산비용을 낮추고 개발 생명주 기를 줄일 수 있으며 둘째, 이미 정확한 것으로 판단된 컴포넌트를 재사용함으 로써 시스템 신뢰도를 높이며 시스템 테스트에 대한 필요성을 줄일 수 있으며.

셋째, 프로그램 변경으로 인한 파급효과를 줄임으로써 생명주기 유지보수 비용 을 줄일 수 있으며 넷째, 새로운 프로그램을 생산할 때 개발조직으로 하여금 현존하는 소프트웨어 시스템에 대한 투자를 회복할 수 있도록 해준다[Zand, 1994].

소프트웨어 재사용이 주는 많은 장점을 제대로 누리기 위해서는 이를 뒷받침 해줄 환경이 필요하다. 단지 소스 코드(Source Code)만을 재사용한다고 하여 그것이 앞에서 언급한 장점을 제공해 주는 것은 아니다. 다양한 수준에서 재사 용을 할 수 있으며 재사용을 할 수 있는 산출물 또한 다양하다는 것이다[Diaz, 1993]. 우선 먼저 재사용을 하기위한 성공적인 환경설정을 하기 위해서는 첫째, 사용자 요구사항에 근거한 프로그램 모듈 혹은 코드에 접근할 수 있어야 하며

(16)

둘째, 프로그램을 수정 할 수 있어야 하며 셋째, 재사용 가능한 컴포넌트를 효 율적으로 저장, 추출하고 통합할 수 있는 설비가 있어야 할 것이다 [Zand, 1994].

물론, 위와 같이 기술적인 문제들을 다루어야 하는 것도 사실이지만 여러 연 구에서 밝히듯이 기술적인 측면뿐만 아니라 비 기술적인 면 즉, 관리적, 경제 적, 사회적 그리고 법적인 문제에 대해서도 관심을 가져야 할 것이다. 그전에 우선 소프트웨어 재사용에 대해서 좀 더 자세히 알아보도록 하자[David, 1997:

Griss, 1993: Isoda, 1992: Rebecca, 1994: Apter, 1990]..

2. 소프트웨어 재사용의 정의

소프트웨어 재사용에 대한 정의는 여러 가지로 나타나고 있다. Davis [1994]는 다른 문제의 해결책 혹은 문제의 다른 버전에 쓰인 자산의 이용이라고 밝히고 있다. Frakes and Fox [1996]는 현존하는 소프트웨어 산출물의 이용 혹은 새로 운 소프트웨어를 만들기 위한 지식의 이용이라고 말하고 있다. Dusink and Katwijk [1995]의 연구에서는 새로운 소프트웨어를 구축하는 프로세스동안 현 존하는 소프트웨어 산출물의 시스템적인 응용 혹은 새로운 소프트웨어 시스템 에서 현존하는 소프트웨어 산출물의 물리적인 혼합이라고 말한다고 정의하고 있으며 Kim and Stohr [1998]는 새로운 응용프로그램에서 소프트웨어 개발 생 명주기의 모든 단계로부터 나온 기존에 개발된 소프트웨어 자원을 프로그래머 와 시스템 분석가와 같은 다양한 사용자에 의해서 이용되는 것으로 정의되어진 다고 나타내고 있다. 물론, 이 뿐만 아니라 다른 연구자들에 의한 제시된 정의 가 있지만 위의 내용을 벗어나지는 못하고 있다.

위의 정의들을 종합하여 보면 다음과 같은 특징이 있음을 알 수 있다.

첫째, 소프트웨어 재사용의 대상은 물리적인 대상과 논리적인 대상으로 구분 할 수 있으며

둘째, 특정 개발 프로세스 단계에 적용되는 것이 아니라 전체 개발 프로세스 에 적용될 수 있음을 알 수 있으며.

셋째, 재사용을 통하여 새로운 소프트웨어를 만드는 것뿐만 아니라 재사용을 위해 소프트웨어 산출물을 만드는 과정 또한 소프트웨어 재사용 프로그램에 포 함될 수 있음을 알 수 있다.

(17)

기본적인 재사용에 대한 정의뿐만 아니라 다음으로는 재사용의 유형에 따른 정의를 분류해 보도록 하겠다.

2.1 소프트웨어 재사용의 유형에 따른 분류

Diaz [1993]은 소프트웨어 재사용의 분류를 [표 1]과 같이 6가지로 분류를 하 였다. 이러한 분류는 문제를 분석하는데 도움을 줄 것이다.

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

소프트웨어 재사용의 대상에는 다음과 같이 소프트웨어 부품은 물론, 자료를 포함한 개발 과정에서 나올 수 있는 산출물이 포함된다. 기본적인 코드만을 재 사용하는 것뿐만 아니라 재사용 가능한 모든 소프트웨어 자산을 포함하고 있 다. [Subramanian, 2001]

어플리케이션 패키지

서브 시스템

데이터 유형 정의서

설계 산출물(예: 물리모델)

업무사양(예: 업무모델)

코드

문서(Documentation)

테스트 케이스 및 테스트 데이터

[표 1] 재사용 자산의 다양한 분류기준

실체에 의해 범위에 의해 모드에 의해 기술에 의해 의도에 의해 제품에 의해 아이디어,

개념산출물, 컴포넌트 절차, 기술

수직적 수평적

계획된, 시스템적인

특별한 목적, 시의에 맞는

조립식

새로 작성

블랙박스, as-is

화이트 박스, 수정된 것.

소스코드 설계 명세서

객체 텍스트 아키텍처

(18)

2.3 소프트웨어 재사용의 장점

소프트웨어 재사용을 통하여 얻을 수 있는 장점 중에는 대표적으로 소프트웨 어 개발 생산성 향상을 통한 개발 시간 감소, 전체적인 소프트웨어 개발비용 절감 및 소프트웨어 품질의 개선이라고 할 수 있을 것이나 이외에도 [표 2]와 같이 여러 가지 가시적인 혜택을 줄 수 있다. [Taylor, 1995]

3. 소프트웨어 재사용 프로세스

개인적으로 프로그래머가 비공식적으로 현존하는 소프트웨어를 재사용 할지라 도 전통적인 소프트웨어 개발 생명주기는 재사용 가능한 자원으로부터 소프트 웨어를 개발하는 것을 지원하지 못한다. 재사용 개발 프로세스는 두 가지로 나 눌 수 있다. 즉, 재사용할 수 있는 소프트웨어 산출물을 만드는 것과 그 산출물 을 이용하여 새로운 소프트웨어를 만드는 것 즉, 생산과 소비라는 측면으로 [표 3]과 같이 분리를 하였다[Kim and Stohr, 1998].

[표 2] 재사용의 장점

가시적 장점 설 명

생산성

기존의 컴포넌트를 재사용함으로써 소프트웨어 시스템을 개발 하는데 있어서 문서와 검수의 양을 줄여주고, 시스템은 쉽게 유 지 보수 되므로 생산성이 높아진다.

신뢰성

신뢰성 있는 소프트웨어를 개발할 때 복잡한 시스템에서는 어 렵다. 특히 큰 시스템에서는 더욱 어렵다. 그러나 증명된 컴포 넌트를 재사용함으로써 신뢰성을 높인다.

일관성

많은 영역에서 같은 컴포넌트를 재사용함을 일반적으로 유용한 컴포넌트 집합을 통한 소프트웨어 재사용은 설계와 특질 적인 것을 정제하기 위한 요구를 줄이는데 도움을 준다.

관리성

잘 이해된 컴포넌트를 이용함으로써 관리가 용이하며 증가된 재사용은 개발비용을 줄이며, 컴포넌트의 행동이 이해되고 이미 개발된 컴포넌트를 제공함으로서 계획일정을 단축시킨다.

표준성 표준이 되는 컴포넌트를 사용함으로써 컴포넌트들은 사용자나 개발자에게 명세서와 구현에 도움을 준다.

(19)

Kim and Stohr [1998]는 [그림 1]과 같이 소프트웨어 재사용 기반의 개발 프 로세스 모델을 제시하였으며 다른 연구자들의 개발 프로세스와 비교를 하였다.

[표 3] 소프트웨어 재사용 프로세스

활동 분류 활 동 다른 연구자에 의해 제시된

유사한 활동들 재사용 가능한 자원 생산 확 인(Identification) 분 해/추 출

추 출/분 석/선 택/일반화 분 류(Classification) 분 류, 목록화/속 성

재사용 가능한 자원 소비

추 출(Retrieval) 선 택 이 해(Understanding) 이 해 수 정(Modification) 특성화/채택

수 정

통 합(Integration) 혼합, 조립, 상호연결

[그림 1] 재사용 기반 개발 프로세스 모델

외부 소프트웨어

자원 2.

재사용 가능한 소프트웨어

자원 분류

7.

새로운 소프트웨어

자원 구축 8.

소프트웨어 자원 통합

1.

재사용 가능한 소프트웨어

자원 확인 3.

요구사항 상술

6.

재사용 가능한 소프트웨어

자원 수정 5.

재사용 가능한 소프트웨어

자원 이해 4.

재사용 가능한 소프트웨어

자원 추출

현재 내부에 존재하는 소프트웨어 자원

소프트웨어 라이브러리

요구사항 명세서

소프트웨어 과업

(20)

제 2 절 소프트웨어 재사용에 영향을 미치는 요인에 대한 선행연구

이번 절에서는 소프트웨어 재사용 효과에 영향을 미치는 요소에 관한 선행연 구와 관련된 요인들을 살펴보고자 한다. 소프트웨어 재사용율에 영향을 미치는 요인 중에는 기술적인 요인들이 포함될 수 있지만 본 연구에서는 기술적인 요 인을 배제하고 비 기술적인 요인들만을 고려할 것이다. 기술적인 요소는 기본 적이며 지속적으로 강조 되어왔지만 기술적인 요인만으로는 조직 내 소프트웨 어 재사용의 정착 및 확산을 통해 기대하는 소프트웨어 생산성과 품질을 개선 할 수 있다는 것을 보장할 수 없기 때문이다. 지금까지 많은 연구자들이 소프 트웨어 재사용에 영향을 미치는 요인에 대해 여러 가지로 설명을 하고 다각적 인 측면으로 요인들을 고려하고 있으며 재사용이 제대로 조직에 정착하기 위해 서는 기술적 요인들과 비 기술적인 요인들을 균형적으로 고려해야 함을 강조하 고 있다.

Apter, Sankar, Thakur and Turner [1990]는 은행에서의 구현 경험을 통하여 소프트웨어 재사용의 방해요인은 재사용 전략의 부재와 재사용을 지원하는 특 정한 최고 경영자의 부재이기 때문임을 밝히고 있으며 이는 곧 프로젝트 관리 자와 프로그래머들의 저항으로 연결될 수 있음을 보여주고 있다. 즉, 프로그래 머들은 최고경영자의 지원 없이 재사용을 할 경우 예산과 인원감소라는 견해를 가지고 있기 때문이며 한편 중간관리자는 단기적인 계획 아래에서 프로젝트 성 능 평가를 받아야 하기 때문에 소프트웨어 재사용에 대하여 저항감을 가질 수 있음을 나타내며 이를 극복하기 이하여 최고경영자는 교육과 세미나를 통하여 재사용 개념을 이들에게 보급해야 함을 강조하고 있다. 한편 금전적 보상 혹은 다른 적절한 인센티브 제도를 제공하여 프로그래머로 하여금 소프트웨어 재사 용 자산의 이용을 증가시킬 필요가 있음을 강조하였다.

Banker and Kauffman [1991]은 20개의 프로젝트와 은행의 신거래 처리 아키 텍처(New Trades Processing Architecture)로부터 데이터를 수집 후, 분석한 결과 소프트웨어 개발 생산성의 향상을 가져왔으며 이러한 결과를 만들어 내는 데 있어서 소프트웨어 재사용이 중요한 역할을 했음을 강조하고 있다. 이러한 소프트웨어 개발 생산성에 증가를 가져왔던 요인으로써 프로젝트 관리 경험,

(21)

개발 직원의 경험, 응용프로그램 유형, 사용된 프로그래밍 언어와 개발 플랫폼 의 안정 등이 중요한 요인으로 조사되었다.

Lewis, Henry, Kafura and Schulman [1992]의 연구에서는 소프트웨어 재사용 에 미칠 수 있는 인간적 요인(Human Factor)에 대한 질문을 통해 답을 구하여 재사용에 영향을 미치는 요인을 파악하였는데 연구결과는 1) 소프트웨어 재사 용은 재사용을 하지 않는 것 보다는 높은 생산성을 촉진시킨다. 2) 적절하고 강력한 권고부터 야기된 재사용은 재사용을 하지 않는 것보다 더 높은 생산성 을 촉진시킨다. 3) 강력한 관리적인 영향은 생산성에 있어서 별 차이를 나타내 지 않는 반면 부적절한 재사용 활동을 촉진시키는 경향이 있다고 밝히고 있으 며 강력한 권고로부터 나온 재사용이 적당한(Moderate)권고로부터 나온 것 보 다는 생산성이 조금 높을 수 있다는 현상이 어느 정도 있다는 것을 보여주었 다.

Isoda [1992]는 NTT(Nippon Telegraph and Telephone) 소프트웨어 연구소에 서 수행한 4년간의 소프트웨어 재사용 프로젝트를 대상으로 하여 소프트웨어 재사용에 관한 문제들을 다루고 있다. 재사용의 범위는 프로그램 코드, 테스트 케이스, 설계, 설계 프로세스 그리고 도메인 지식 등으로 분류를 하였으나 모든 범위를 대상으로 하는 것은 문제를 복잡하게 할 우려가 있어서 프로그램 코드 모듈에만 한정을 두어 분석을 수행하였다. 연구 결과 첫째, 평균 재사용 비율은 매년 증가하였으며 둘째, 재사용된 모듈의 평균 크기 상승. 셋째, 재사용된 모 듈의 원천 즉, 라이브러리에서 추출한 것인가 혹은 다른 프로젝트에서 저장된 모듈을 가져온 것인가 에서도 역시 증가. 넷째, 라이브러리 이용 증가. 다섯째, 액티브 모듈 비율과 매년 사용된 모듈의 비율은 변화하지 않았으며 마지막으로 여섯째, 모듈 라이브러리는 지속적으로 증가하였다. 위와 같은 결론을 얻으면서 4년간의 재사용 프로젝트에서 얻은 경험을 바탕으로 방해요인들을 [표 4]와 같 이 추출하였다.

[표 4] 소프트웨어 재사용 방해요인 소프트웨어 재사용 방해요인 1. 부적절한 재사용 모듈 라이브러리

2. 모듈 개발자에 대한 직접적인 혜택 부재 3. 개발 프로젝트에서 비협조적인 사람 4. 계약 개발자에 대한 혜택 부재

(22)

방해요인이 총 10가지로 나와 있는데 첫 번째 것은 적절하지 못한 재사용 가 능한 모듈 라이브러리 때문이며 2∼3번째 문제는 고위 경영자의 지원 즉, 소프 트웨어 개발 기간동안 재사용을 충분히 고려할 수 있도록 자원과 재사용의 중 요성을 교육할 필요가 있다. 4∼8번째 문제는 기술적인 문제 같지만 사실상 경 영진의 참여로 해결가능 하지만 9∼10번째는 순수한 기술적인 문제이다. 따라 서 경영상의 문제가 방해요인 중에서 많은 부분을 차지함을 강조하고 있으며 또한 인센티브 제도의 중요성을 나타내고 있는데 이것은 경영진이 재사용에 관 심이 있다는 사실을 보여주고 있기 때문에 중요한 요인으로 간주하고 있다. 그 러나 금전적인 보상을 해주는 만큼 금액 너무 클 경우에는 오히려 반대효과를 보일 수가 있는데 즉, 프로그래머가 의도적으로 코드를 반복하는 등의 도덕적 인 타락을 일으킬 수 있다는 것이다. 한편 도메인 선택과 분석에 중요성을 강 조하고 있는데 부서별로 재사용에 대한 차이가 발생함을 발견하고 소프트웨어 재사용도 도메인별로 적절하게 이용함으로써 비율을 높일 수 있으며 재사용 가 능한 모듈을 개발 할 수 있다는 것임을 밝히며 목표 도메인에 대한 기준을 제 시하고 있다. Isoda의 연구는 NTT 소프트웨어 연구소에서의 경험을 바탕으로 하여 소프트웨어 재사용의 중요한 문제는 기술적인 요인보다는 비 기술적인 장 애요인을 극복함으로써 소프트웨어 재사용을 조직 내부에 정착시킬 수 있으며 모듈뿐만 아니라 테스트 케이스, 설계와 도메인 지식과 같은 재사용 가능한 산 출물에도 적용될 수 있음을 보여 주었다.

Griss [1993]는 소프트웨어 재사용은 소프트웨어 관리자가 소프트웨어 개발 프로세스를 개선하고 비용을 절감하고 제품 품질을 높이기 위해 사용할 수 있 는 비즈니스 전략임을 강조하였다. 이런 시스템적인 소프트웨어 재사용을 위해 서는 사람, 프로세스와 기술에 중점적인 관심을 두어야 함을 강조하고 있으며 이를 [그림 2]와 같이 다양하고 상세한 요인으로 분류를 하여 설명하고 있다.

5. 유지보수 필요에 대한 늦은 반응 6. 신뢰성이 떨어지는 모듈

7. 빈약한 문서

8. 개발 프로세스 표준화 부재 9. 성능 격감

10. 예측할 수 없는 혜택

(23)

한편 시스템적인 소프트웨어 재사용이 성공하는데 방해되는 요인들은 개선된 프로세스와 신중한 관리와 잘 설계된 재사용 가능한 소프트웨어를 통해 극복될 수 있으며 재사용을 가능하게 하는 새로운 방법과 기술 역시 필요함을 강조하 고 있다.

Fafchamps [1994]는 지난 20년 동안 소프트웨어 재사용에 대한 장애물은 기 술적인 해결책을 통해 극복되었으나 재사용 프로그램을 구현하는데 가장 큰 영 향을 미치는 것은 조직적 요인임을 강조하며 그중 가장 중요한 조직적 요인은 재사용 컴포넌트를 서비스의 생산자(Producer)와 소비자(Consumer) 사이의 관 계로 파악을 하였으며 HP(Hwelett-Packard)에서의 경험을 바탕으로 하여 4가 지 모델, 독자적인 생산자(Lone Producer), 내부적 생산자(Nested Producer), 공동 생산자(Pool Producer) 그리고 팀 생산자(Team Producer)를 확인하고 각

[그림 2] 재사용 요인

사 람 훈 련 인센티브 문화 경험 안정성

관 리 변화 시작 비용 컴포넌트 그룹 마감일 장려 프로세스

컴포넌트, 프로 젝트, 프로토타 이핑, 유지보수, 리엔지니어링

사 람 훈 련 인센티브 문화 경험 안정성

사 람 훈 련 인센티브 문화 경험 안정성

사 람 훈 련 인센티브 문화 경험 안정성

사 람 훈 련 인센티브 문화 경험 안정성

경 제 시스템비용 지원비용 메트릭스 법적문제 컴포넌트 가격

사 람 훈 련 인센티브 문화 경험 안정성

사 람 훈 련 인센티브 문화 경험 안정성

사 람 훈 련 인센티브 문화 경험 안정성

사 람 훈 련 인센티브 문화 경험 안정성

기 술

분류, 검색, 컴포넌트 저장소 어셈블리 도구 코드 작성기 등

사 람 훈 련 인센티브 문화 경험 안정성

사 람 훈 련 인센티브 문화 경험 안정성

사 람 훈 련 인센티브 문화 경험 안정성

사 람 훈 련 인센티브 문화 경험 안정성

표 준 문 서 테스팅 언어 인터페이스, 코딩,명명 도메인

제품 패밀리 도메인 경험 도메인 분석 아키텍처 재사용을 위한 설계

재사용을 이용한 설계

사 람 훈 련 인센티브 문화 경험 안정성

사 람 훈 련 인센티브 문화 경험 안정성

사 람 훈 련 인센티브 문화 경험 안정성

사 람 훈 련 인센티브 문화 경험 안정성

범 위

그룹의 크기 라이브러리 크기 예상된 재사용 비율

(24)

각 조직 구조(Organizational Structures), 이점(Advantage), 불이익 (Disadvantage)을 가지고 각 모델을 평가하였으며 성공적 구현을 가능하게 하 기 위한 경영상의 목표를 확인하였다. 또한 성공적인 소프트웨어 재사용 프로 그램은 조직구조, 조직구조로부터 발생하는 문화 그리고 재사용 프로그램에 가 해질 압력에 대한 신중한 이해를 바탕으로 시작해야 하며 조직의 환경을 이해 하고 관련 있는 인간적 문제들을 다루어야 함을 강조하고 있다.

Frakes and Isoda [1994]는 성공적인 시스템적인 재사용을 구현하는 것은 어 려우며 또한 위험하기까지 한다고 말하고 있다. 소프트웨어 재사용을 시도하는 조직은 광범위한 기술적 그리고 비 기술적인 문제들을 다루어야 한다고 했으며 이를 5가지의 주요인으로 정리를 하였다. 즉, 관리(Management), 측정 (Measurement), 법적문제(Legal), 경제적 문제(Economics) 그리고 재사용을 위 한 설계(Design for Reuse)라고 분류를 하였으며 일본 NTT사의 사례를 통하 여 재사용 프로젝트의 성공요인을 [표 5]와 같이 정리를 하였지만 조직내의 모 든 부서가 재사용을 하는 것은 아니며 일부부서는 성공을 하지만 다른 부서는 다양한 이유로 인하여 소프트웨어 재사용을 적용하는 것을 꺼리는 경향을 보이 고 있다고 밝히고 있다.

Card and Comer [1994]는 조직에서 소프트웨어 재사용을 도입하여 적용하는 데 방해하는 요인은 두 가지 이유라고 밝히고 있다. 첫째, 재사용을 기술전이 (Technology-Transition)이 아닌 기술획득(Technology-Acquisition)으로 인식 을 하고 있다는 것이다. 즉, 단순히 기술을 구입하는 것만으로는 광범위한 재사 용을 할 수 없다는 것과 재사용을 비즈니스 전략으로써 접근해야 함에도 비즈 니스와의 연관성을 다루지 못한다는 것이다. Card와 Comer는 재사용 도입이 실패하는 이유를 위와 같이 밝히고 재사용을 가로막는 가장 중요한 장애물은 경제적(Economical) 요인과 문화적(Cultural) 요인이지 기술적(Technological)

[표 5] Frakes and Isoda [1994]의 소프트웨어 재사용 성공요인 성공요인(Critical Success Factor)

● 고위 경영진의 참여(Senior-management commitment)

● 적절한 목표 도메인의 선택(Selection of appropriate target domains)

● 도메인 분석에 근거한 재사용 가능한 모듈의 시스템적인 개발

● 몇 년간의 지속적인 노력(Several years' continuous effort)

(25)

요인이 아니라고 강조하였다. 이 문제를 [표 6]으로 분류를 하였다.

또한 아래 [그림 3]의 생산자-소비자 재사용 모델을 제시하며 효율적인 재사 용 프로그램은 시장 지향적이어야 함을 강조하고 하며 소프트웨어 재사용을 채 택하여 적용하는 기업은 미래 사용자들이 원하는 자산에 투자를 해야 함을 강 조하고 있다. 소프트웨어 재사용 도입을 결정한 조직은 [표 6]과 같이 재사용 문화와 경제적인 도전을 맞이하게 될 것이며 재사용을 적용하기 위해서는 성숙 된 시스템적인 개발 방법론을 가지고 있어야 함을 강조하고 있다. 이를 위하여 특히, 강력한 형상관리와 품질보증(CMM상에서의 레벨 2를 요구)은 효율적인 재사용을 위한 선결조건임을 밝히고 있다.

[표 6] Card and Comer [1994]의 재사용에 대한 장애물과 요인

재사용 장애물 요 인

재사용 경제학(Reuse Economics)

● 생산자 소프트웨어의 품질과 재사용

● 소프트웨어에 대한 소비자의 기술과 지식

● 생산자와 소비자의 프로젝트 요구사항 사이의 일치성 정도

재사용 문화(Reuse Culture)

● 훈련(Training)

● 인센티브(Incentive)

● 측정(Measurement)

● 관리(Management)

[그림 3] Card and Comer [1994]의 생산자-소비자 재사용 모델

정 보 자 산 프로젝트 현재

프로젝트 요구사항

생산자 소비자

미 래 프로젝트 요구사항 전략적 계획

라이브러리 기술 (형상 관리) 인증 기술

(품질 보증)

검색 기술

도메인 지식 어플리케이션 도메인

(26)

Rebecca [1994]의 연구는 모토롤라(Motorola)에서 소프트웨어 재사용으로부터 혜택을 얻고자 하는 노력이 세 단계를 통하여 진행되었으며 이러한 경험을 바 탕으로 하여 재사용에 영향을 주는 활동들을 파악하였다. 각 단계별로 어떤 활 동들은 작용하지만 그렇지 못한 경우도 있음을 밝히고 있다. 첫 번째 단계에서 는 재사용 테스크 포스팀은 소프트웨어 재사용에 대한 교육을 중요하게 여기고 직원들에게 훈련과 교육을 제공하였고 재사용 워킹 그룹은 소프트웨어 재사용 지침을 구현하는 것이었다. 두 번째 단계에서는 중간 관리자의 참여를 뽑았으 며 두 개의 파일럿 프로젝트가 수행되었다. 그 중에서 모토롤라의 이스라엘 연 구소에서 행한 재사용 프로그램에서 비용을 절감을 할 수 있었으며 그에 상응 하는 인센티브를 제공하였으며 절감액에 따라서 [표 7]과 같이 인센티브를 제 공하였으며 프로젝트의 중요한 성공요인으로서 고위 경영진의 지원이었음을 밝 히고 있다. 세 번째 단계에서는 조직이 소프트웨어 재사용 프로세스를 구현하 였다면 소프트웨어 개발을 촉진하기 위한 도구가 필요하다는 것이다. 결국, 위 의 각 단계를 통하여 재사용을 구현하고 하는 조직은 필히 최고 경영진의 지원 과 훈련, 인센티브 제도 그리고 적절한 도구 지원을 얻어야 함을 강조하고 있 다.

Frakes and Fox [1995]는 시스템적인 재사용을 적용하고자 하는 조직이 자주 묻게되는 질문 16가지를 선정하여 미국에 있는 28개 조직과 유럽에 있는 1개 조직에 속한 113명을 대상으로 조사를 실시하였으며 설문에 대한 답을 통해 재 사용에 영향을 미치는 요인을 파악을 하였으며 그 결과는 아래 [표 8]과 같다.

[표 7] 재사용 보상 금액

절약된 금액 보상(절감액의 %) 최대 보상액

250-500 12.0 60.00

501-1,000 10.0 100.00

1,001-2,500 7.5 187.50

2501-50,000 5.0 2500.00

(27)

연구결과 대부분의 소프트웨어 엔지니어들은 “NIH(Not Invented Here) 신드 롬”처럼 새로 만드는 것 보다는 소프트웨어 재사용을 선호하는 것으로 나타났 다. 또한 경제적 타당성(Economical Feasibility)과 재사용 교육(Reuse Education)이 소프트웨어 재사용을 개선하고 향상시키는 요인임을 밝혀냈다. 특 히, Frakes and Isoda [1994]의 연구에서는 측정과 법적인 문제가 중요한 요인 으로 나타났지만 이번 연구에서는 두 요인 모두 재사용을 방해하는 요인으로는 나타나지 않았으며. 한편 산업별로 차이가 있는데 특히, 텔레커뮤니케이션 분야 가 다른 분야보다 재사용 수준이 높은 것으로 나타났다. 이것은 예전의 연구에

[표 8] Frakes and Fox [1995]의 16가지 질문과 조사결과

질 문 대 답 노 트

1. 공통의 자산들이 어떻게 널리 재사용 되는가 ? 다양함

일부(예, Unix 도구)는 널 사용되나 다른것(예, Cosmic)은 아님

2. 프로그래밍 언어가 재사용에 영향을 미치는가 ? 아니다.

3. CASE 도구가 재사용을 촉진시키는가 ? 아니다.

4. 개발자는 처음부터 개발 선호하는가 혹은 재사용을 선호하는가 ?

재사용 선호 5. 인지된 경제적 타당성이 재사용에 영향을 미치는가? 그렇다.

6. 재사용 교육이 재사용에 영향을 미치는가 ? 그렇다. 기업 훈련은 특히 도움이 된다.

7. 소프트웨어 엔지니어링 경험이 재사용에 영향을

미치는가 ? 아니다.

8. 보상이 재사용에 영향을 미치는가 ? 아니다.

9. 공통적인 소프트웨어 프로세스가 재사용을 촉진시키 는가?

가능성 있음.

공통 프로세스가 도움이 될 수 있음.

10. 법적인 문제가 재사용을 방해하는가 ? 아니다. 미래에는 변할 것임.

11. 재사용 저장소를 가진다는 것은 코드 재사용을

증진하는가? 아니다.

12. 특정 산업에서 재사용이 자주 적용되는가 ? 그렇다. 원격통신에서 흔하고 항공산업에서는 덜함 13. 회사, 부서 혹은 프로젝트 크기가 조직적인 재사용에

영향을 미치는가 ? 아니다.

14. 품질 중요성이 재사용을 가로막는가 ? 아니다. 미래에는 변할 것임.

15. 조직이 재사용, 품질과 생산성을 측정하는가 ? 대부분 아님

16. 재사용 측정이 재사용에 영향을 주는가 ? 아니다. 측정이 사용되지 않음.

(28)

서는 밝혀지지 않았던 사실이며 예전의 연구들에 비해서 설문을 통하여 세부적 인 결과를 보여주고 있다.

Griss and Wosser [1995]의 연구에서는 기술적 요인과 비 기술적 요인을 나 열하며 HP(Hwelett-Packard)의 사례를 통하여 비 기술적 요인이 소프트웨어 재사용을 촉진시키는데 있어서 훨씬 중요한 요인이라고 [그림 4]를 통해 강조 하고 있다.

또한 Griss and Wosser는 비 기술적인 요인들 중에서도 특히 경영진의 리더 쉽과 지원(Management Leadership and Support), [그림 5]와 같은 점증적인 재사용 프로세스 채택을 통한 조직 변화(Organization Change) 그리고 재사용 사고방식의 창조(Creation of Reuse Mindset)의 세 가지 요소가 성공적인 재사 용 프로그램의 중요한 요인이라고 밝히고 있다. 즉, 프로세스 도입을 통하여 조 직 구조를 변화하고 조직원들로 하여금 소프트웨어 재사용에 대한 중요성을 인 식시킴으로서 재사용을 확산하고 점증적으로 변화시켜야 함을 강조하고 있다.

[그림 4] Griss and Wosser [1995]의 재사용의 비 기술적 문제

기 술 적 문 제 표 준

O O A , O O D , O O P 도 메 인 분 석

아 키 텍 처 프 레 임 워 크 라 이 브 리 와 브 라 우 저 비 기 술 적 문 제

사 회 적 조 직 관 리 프 로 세 스

교 육 법 적 문 화 안 정 성

(29)

Frakes and Fox [1996]는 이전 연구와는 달리 재사용 프로세스가 실패할 수 있는 유형을 모델로 하여 부품 기반의 재사용 프로세스를 측정하고 개선할 수 있는 접근방법을 제시하고 있으며 재사용 장애물들을 확인하고 시스템적인 재 사용 프로그램을 위한 개선전략을 고안하기 위해 이 모델을 사용하였다.

Frakes and Fox는 시스템적인 재사용을 구현하는 기업이 직면할 수 있는 문제 들을 아래 [표 9]와 같이 네 가지 영역으로 분류할 수 있다고 제시하고 있다.

[표 9] Frakes and Fox [1996]의 재사용 요인과 설명

요 인 설 명

관리적 (Managerial)

어떻게 소프트웨어 엔지니어링 조직은 재사용을 장려하고 보상하는가?

재사용에 미칠 수 있는 관리적인 변수는 재사용 부품을 만들기 위한 경 제적인 보상이 될 수 있을 것이다.

경제적 (Economic)

소프트웨어 재사용은 어떻게 경제적으로 만들어지는가? 경제적인 변수 는 재사용 가능한 컴포넌트의 창조자에 대한 보상일 수 있다.

법적 (Legal)

재사용 가능한 소프트웨어의 창조자와 소비자의 권리는 법적으로 어떻 게 보호될 수 있는가? 법적인 변수는 부품 제공업자 책임을 제한하는 법이 존재하는지의 여부

기술적 (Technical)

두 가지 기본적인 기술적 접근방법이 있는데 부품기반(part-based) 재사 용과 새로 생성하는(generative) 재사용이 있다.

[그림 5] 점증적 재사용 프로세스

혜 택

투 자, 경 험 개발시간

단축

None

Code Leverage

유지보수 비용 감소

적용범위 확대

상호운용성 고수준 재사용

재사용 가능한 비즈니스

Black box code reuse

Managed workproduct

s

Architected reuse

Systematic domain specific reuse

(30)

위의 변수들은 소프트웨어 재사용 프로세스의 품질을 증진하기 위한 실험에서 잠재적인 독립변수가 될 수 있지만 어느 것이 가장 큰 영향을 미치는지를 알 수 없다는 문제점을 가지고 있다고 지적하고 있다. Frakes and Fox는 여기서 소프트웨어 재사용 프로세스가 실패할 수 있는 유형에 대한 분석을 근거로 하 여 소프트웨어 재사용 노력을 평가하고 증진하기 위한 접근법을 제안하고 있 다. 그러면서 아래 [그림 6]과 같은 재사용 성공 체인(Reuse Success Chain) 모델을 제시하였다.

위의 조건들 중에 하나라도 실패를 하면 재사용도 실패할 것이라고 밝히면서 각 조건들과 관련된 실패유형(failure mode)은 7 가지의 재사용 실패 유형에 이 를 것이며 [표 10]과 같이 분류를 하며 동시에 원인 및 해결책을 제시하고 있 다.

[표 10] Frakes and Fox [1996]의 7가지 실패 유형

모 드 문제점 원인 해결책

재사용 시도 안함

경영문제 (Management

Problem)

자원 제약

즉, 재사용에 대한 보상 결여, 시간 제약, 재사용 유틸리티에 대한 명확성 부족, 교육 부족

교육, 자원, 보상이 뒷받침 되어야 한다.

통합될 수 없는 부품

내용과 배경 (Content and

Context)

컴포넌트가 올바른 내용 과 배경을 가지고 있지 못함.

재사용 가능한 컴포넌트를 설계하기 위한 표준과 실 행(practice)을 세우는 것 이해되지 않은

부품

문서화

(Documentation) 부적절한 문서화

컴포넌트 문서화 표준과 공식적인 컴포넌트의 명세 서를 통해서 해결가능 함.

[그림 6] Frakes and Fox [1996]의 재사용 성공 체인 모델

1. 재사용 시도 2. 부품 존재 3. 사용가능한 부품 4. 발견된 부품

5. 이해된 부품 6. 들어맞는 부품 7. 통합가능한 부품

(31)

이 연구를 통해서 근원적인 재사용 실패 모드는 바로 ‘no attempt to reuse’와 자원제약 즉, 재사용을 위해 할당된 예산과 인원이 너무 적음으로서 소프트웨 어 재사용에 대한 시도를 하지 않는 것으로 밝혀졌다. 즉, 재사용 실패 원인이 경영상의 지원 부족의 문제임을 나타내었으며 소프트웨어 재사용을 위해서는 교육, 자원과 보상과 같은 적절한 경영진의 지원(Management Support)이 필요 한 것으로 나타났다.

Rine [1997]의 연구에서는 제품라인 접근방법, 데이터 형식과 인터페이스 표준 화 아키텍처, 공통적인 소프트웨어 아키텍처, 도메인 엔지니어링, 재사용 문제 를 이해하는 경영진, 고위경영진의 소프트웨어 재사용 옹호, 최신의 도구와 방 법, 고수준의 소프트웨어 산출물을 이용하는 우선순위, 컴포넌트에 대한 최종사 용자 요구사항 추적을 갖고 있는 조직이 가장 높은 소프트웨어 재사용 능력을 가지고 있다고 나타났다.

Lynex and Layzell [1997]의 연구에서는 소프트웨어 재사용 기법이 기업에 도 입되는데 있어서 방해요인(Inhibitor)을 확인하고 제거함으로써 기업이 성공할 수 있는 방법을 제시하였다. 이 연구는 5개의 조직을 통해서 방해요인을 추출 하고 있는데 표본크기가 너무 작으므로 통계적인 유의성을 보이지 못하는 한계

모 드 문제점 원인 해결책

들어맞지 않는 부품

품질표준 (Quality standard)

빈약한 조사, 테스팅 그리고 검증

부품 생산자로부터의 빈약한 지원

불충분한 성능

컴포넌트 프로퍼티를 만드 는 것

성능 표준 확립과 소프트 웨어 최적화를 위한 기술 과 도구를 사용하는 것 존재하지 않는

부품 컴포넌트 부재 컴포넌트가 재사용을 위 해 설계되지 않음.

조직이 비즈니스를 하는 도메인을 분석,

적절한 컴포넌트를 개발 발견할 수

없는 부품

컴포넌트 존재 그 러나, 엔지니어가 못찾음

맞지 않는 검색도구 새로운 검색도구를 이용하 여 해결

이용 불가능한 부품

적당한 컴포넌트 존재 그러나 조직 에는 맞지 않음.

저장소 부족 조직적인 재사용 저장소를

만드는 것.

(32)

점을 가지고 있지만 표본기업이 대형 IT기업이고 그러한 요인들이 다른 기업 에서도 공통적으로 일어날 수 있는 가능성이 있기에 5개의 조직을 분석한 방해 요인들은 기업들이 재사용 기술을 증진하는 것이 어려우며 저항을 받는지에 대 한 명확한 징후를 보여줄 것이라고 나타내었다.

5개 기업을 통해서 밝혀진 재사용 도입을 하는데 있어서 방해요인을 다음과 같이 9가지로 나타났으며 그에 따르는 증상과 극복하기 위해 취해야 할 행동에 대해서 [표 11]을 통해 자세히 보여주고 있다.

[표 11] Lynex and Layzell [1997]의 재사용 도입 방해요인, 증상과 행동

장애물 증 상 행 동

조직구조

-비즈니스 단위간의 경쟁

-전략 정보 공유 혹은 협조에 대해 반감 -기업 데이터와 프로세스 모델에 대한 책임 중복

-리스트럭처링

-IT 개발의 중앙 협조체제 소개 -협조 명령

IT구조

-재사용 프로세스내에서 직원들을 위한 역할 정의 결여

-공통된 영역을 찾기 위해 중복되는 프로젝트간의 개발 노력의 협조 없음.

-생산자와 소비자 팀간의 우선순위 갈등

-개발에 대한 중앙 협조가 도움이 된다.

-프로젝트들간의 공통적인 개발물을 소개하기 위해 재조직

-다중의 요구사항을 충족시킬 수 있는 협업적 컴포넌트 개발 방법 소개 -전체적인 프로젝트 목표 및 마감일이 참여한 모두에게 알려지도록 한다.

타성

-현재 개발중인 것이 프로세스 엔지 니어링상에서 가장 우선순위에 있다.

-예전 프로세스 변화는 여전히 구현 되어야 한다.

-개발 프로세스에 대한 정기적인 검토 -프로세스 엔지니어링에 개발 팀 참여 독려

-개발 사이클 내에서 재사용 기회 인식을 하나의 단계로 만들고 그것에 프로젝트 시간을 할당한다.

지식

-재사용 프로세스에 대한 논의는 개인적으로 관심있는 모임에 한정되 어 있음.

-새로운 기술에 대한 연구가 제재된다.

-주요 인력을 교육시키고 정보의 보급을 위한 준비

-회사 뉴스 레터에 기사 소개

참여 -협조 부족

-예전 프로세스에 대한 지속적인 지원

-재사용을 회사 목표로 만든다

-재사용에 참여한 직원에 대한 인센티브 구조를 구현

측정방법

-재사용으로 혜택을 받은 프로젝트 에 할당되지 않는 재사용 비용 -재사용 프로세스로부터의 업무과중

-재사용 기회에 가치를 할당하는 방법을 찾아볼 것.

-개발자가 절감될 수 있는 부분을 측정

수치

[표  2]  재사용의  장점 가시적  장점  설  명 생산성 기존의  컴포넌트를  재사용함으로써  소프트웨어  시스템을  개발하는데  있어서  문서와  검수의  양을  줄여주고,  시스템은  쉽게  유 지  보수  되므로  생산성이  높아진다
[그림  2]  재사용  요인 사 람 훈 련 인센티브 문화 경험  안정성 관 리변화시작 비용 컴포넌트 그룹 마감일 장려프로세스컴포넌트, 프로젝트, 프로토타이핑, 유지보수,리엔지니어링 사 람 훈 련 인센티브 문화 경험  안정성 사 람훈 련인센티브문화경험 안정성사 람훈 련인센티브문화경험 안정성사 람훈 련인센티브문화경험 안정성경 제시스템비용지원비용메트릭스법적문제 컴포넌트 가격 사 람훈 련인센티브문화경험 안정성사 람훈 련인센티브문화경험 안정성사 람훈 련인센티브문
[표  6]  Card  and  Comer  [1994]의  재사용에  대한  장애물과  요인
[표  8]  Frakes  and  Fox  [1995]의  16가지  질문과  조사결과
+7

참조

관련 문서

다음은 상수도서비스에 대해 느꼈던 고객만족에 관한 질문입니다

아동의 사회성 발달에 영향을 미치는 요인에 관한 연구.. 미 간행 석사학위논문,

The following is the analytical study on W. Mazart Concerto No. It takes the form of orthodox classicism, and the 1st movement is taking the tradition structure of sonata form.

귀하의 성실하고 적극적인 답변은 본 연구에서 중요한 연구 자료의 기초가 되오니 한 문항이라도 빠짐없이 응 답하여 주시기 바랍니다... 다음은 귀하의 스포츠

W-T 전략 ☞ • STEAM 선도학교 운영 이해 및 인식 전환을 위환 교사 연수 및 학부모 교육 실시.. STEAM 선도학교 운영.. 창의적 체험활동 연계형[2학년]..

문 다음은 기상예보서비스 전반에 대한 만족도를 묻는 질문입니다 선생님께서는 기상청에서 제공하는... 문 선생님께서는 단기예보 주간예보

중 고등학생들의 진로결정의 시기와 방식 및 영향을 주는 요인에 관한 연구.. ․ 진로결정수준과 진로준비행동

상주대학교 컴퓨터공학과 서강대학교 컴퓨터학과. 한경대학교