Download presentation
Presentation is loading. Please wait.
1
FP와 소프트웨어 유지보수 비용산정
2
문헌연구 및 해외선진사례 분석 유지보수 비용은 전체 생명주기 비용의 50% ~ 80%
유지보수 프로세스와 비용에 영향을 주는 요인들의 연구 미흡 문헌 연구 및 해외선진사례 COCOMO 81 COCOMO II IFPUG Dreger’s FPA Nesma (M_Paper4.pdf) Perfective Maintenance Estimation based on FP (복사물) SMPEEM based on FP (M_Paper5.doc) Estimation based on COSMIC-FFP (M_Paper2.pdf) Maintainability Index (M_Paper1.pdf) Estimation by Analogy (M_Paper3.pdf)
3
COCOMO 81 50% 이상 새로운 코드를 작성하는 재설계와 재개발 배제
corrective, adaptive, perfective maintenance에 드는 노력 포함 유지보수 비용과 개발 비용의 cost driver는 동일하다고 가정 (MM)AM = (1.0)(ACT)(MM)DEV ACT: 소스 코드가 일년동안 추가나 수정을 통해 변경되는 비율 Intermediate COCOMO와 Detailed COCOMO 유지보수에서 RELY, MODP cost driver의 등급 차이 (RELY)M: 1.35(VL) 1.15(L) 1.00(N) 0.98(H) 1.10(VH) (DELY)D: 0.75(VL) 0.88(L) 1.00(N) 1.15(H) 1.40(VH) (MM)AM = (1.0)(ACT)(MM)NOM(EAF)M SCED cost driver는 유지보수 동안 사용되지 않으므로 1.00으로 가정: 유지보수 사이클은 고정된 기간 특징: 개발과 유지보수의 cost driver가 동일하고, 특정 노력 승수만 차이
4
COCOMO II 소프트웨어 유지보수의 범위는 COCOMO 81의 지침을 따름 수정된 코드 규모에 스케일 인자를 적용
유지보수 규모 (Size)M = [(Base Code Size) × MCF] × MAF 규모는 KSLOC, 기능 점수, 객체 점수 MCF는 1년 이상의 유지보수 기간 동안 추가나 수정을 통해 변경되는 비율 MAF = 1 + (SU/100) × UNFM 유지보수 비용 산정식은 SCED, RUSE를 제외하고 Post-Architecture 모델과 동일 (MM)M = A × (Size)ME × (EMi)M 스케일링 지수 E를 전체 레거시 시스템이 아닌 변경(추가, 수정)된 KSLOC에 적용 유지보수에서 RELY cost driver의 등급 차이 (RELY)M: 1.23(VL) 1.10(L) 1.00(N) 0.99(H) 1.07(VH) (DELY)D: 0.82(VL) 0.92(L) 1.00(N) 1.10(H) 1.26(VH) 특징: 개발과 유지보수의 cost driver가 동일하고, 특정 노력 승수만 차이
5
IFPUG 유지보수되는 소프트웨어 규모 특징: 개발과 유지보수의 GSC가 동일하고 유지보수 전후의 VAF가 상이하다고 가정
EFP = (ADD + CHG + CFP) × VAFa + (DEL × VAFb) 특징: 개발과 유지보수의 GSC가 동일하고 유지보수 전후의 VAF가 상이하다고 가정 UFP로 규모산정을 할 경우, 유지보수되는 소프트웨어 규모만 고려하면 됨 유지보수되는 소프트웨어 규모와 비용간의 관계 유도 필요
6
Dreger’s FPA 유지보수되는 전체 소프트웨어 규모 Net modification size
(DEL × VAFb) + (ADD + CHGa) × VAFa Net modification size (DEL × CHGb) × VAFb + (ADD + CHGa ) × VAFa 특징: 개발과 유지보수의 GSC가 동일하고 유지보수 전후의 VAF가 상이하다고 가정 UFP로 규모산정을 할 경우, 유지보수되는 소프트웨어 규모만 고려하면 됨 유지보수되는 소프트웨어 규모와 비용간의 관계는 MM = a(FP)b으로 계산
7
Nesma (1) 식별된 각 기능(데이터, 트랜잭션)의 변경 정도를 반영하는 impact factor (I) 를 UFP에 적용
방법론 1. 유지보수 프로젝트의 범위 내에서 트랜잭션 기능과 데이터 기능을 식별 2. 추가될 트랜잭션 기능과 데이터 기능의 유지보수 규모를 결정 UEFPADDED = UFPADDED 3. 삭제될 트랜잭션 기능과 데이터 기능의 유지보수 규모를 결정 UEFPDELETED = UFPDELETED × 0.4 4. 변경될 데이터 기능의 유지보수 규모를 결정 UEFPCHANGED = UFPCHANGED × ICHANGED Impact factor는 DET 변경(추가, 변경, 삭제) 비율에 의해 결정 33% 이하 (0.25), 67% 이하 (0.50), 100% 이하 (0.75), 100% 초과 (1.00)
8
Nesma (2) 방법론 (계속) 5. 변경될 트랜잭션 기능의 유지보수 규모 결정
1) 트랜잭션이 이용하는 DET와 FTR 식별 2) 유지보수 결과로 인한 DET와 FTR 변경 비율 결정 3) DET와 FTR 변경 비율을 이용한 impact factor 결정 DET 변경 비율 FTR 변경 비율 %이하 %이하 %초과 33%이하 67%이하 100%이하 100%초과 4) 트랜잭션의 유지보수 기능 점수 계산 UEFPCHANGED = UFPCHANGED × ICHANGED 6. 유지보수 프로젝트의 규모 계산 UEFPPROJECT = UEFPADDED + UEFPCHANGED + UEFPDELETED
9
Nesma (3) 방법론 (계속) UEFPCHANGED × VAFAFTER +
EFPPROJECT = UEFPADDED × VAFAFTER + UEFPCHANGED × VAFAFTER + UEFPDELETED × VAFBEFORE 8. 유지보수 이후의 시스템 규모를 계산 UFPAFTER = UFPBEFORE + ( UFPADDED + UFPAFTER CHANGE) - ( UFPBEFORE CHANGE + UFPDELETED ) FPAFTER = UFPAFTER × VAFAFTER 특징: 개발과 유지보수의 GSC가 동일하고 유지보수 전후의 VAF가 상이하다고 가정
10
Perfective Maintenance Estimation
Vianney Cote and Denis St-Pieerre E = ( MFPi × MAINi × KNOWi) × TCF × EF × SCP MFPi = UFPi × wi (i가 add이면 1.00, mod 0.80, sup 0.33, unt 0.06) 가중치는 전문가들의 DELPHI 기법으로 결정 MAIN은 maintainability factor Max. favorable: 0.76, 0.76, 0.84, 0.88 Max. unfavorable: 1.54, 1.58, 1.40, 1.27 KNOW는 분석가와 프로그래머의 knowledge level factor KNOWi = A_KNOWi × P_KNOWi 최근 3(2, 1, 0)년간 12(6, 3, 0)개월 이상의 경험 A1: 0.73, 0.69, 0.71, 0.72, A2:…, …, P1:…, …, P5:… EF는 개발과 유지보수에 공통적인 생산성 요인 SCP는 Standard Cost per FP 특징: 개발과 유지보수의 TCF가 동일 단위 FP 당 비용을 유지보수 FP에 적용하여 유지보수 비용을 구함
11
SMPEEM based on FP 가장 최근의 유지보수 비용산정 모델 (Journal of Software Maintenance에 게재 예정) (조작된 데이터 가능성) 새로운 VAF를 유도하여 UFP에 적용한 후 FP 계산 Engineers’s skill Knowledge of application domain Familiarity with programming language Experience with system software Technical characteristics Structuredness of software modules Independence between software modules Changeability/readability of programming language Reusability of legacy software modules Maintenance environment Up-to-dateness of documentation Conformity with software engineering standard Testability VAF = [(scores×wf/100)×(wg/100)] FP = FC × { (0.008 × VAF)} 유지보수 비용 E = a(FP)b = (FP)1.353
12
COSMIC-FFP Estimation based-on COSMIC-FFP
Alain Abran, Ilionar Silvar and Laura Primera 동일한 특성의 프로젝트를 대상 15 maintenance projects on an internet-based software program for linguistic applications 19 maintenance projects on a single real-time embedded software program in the defense industry 인력의 경험과 프로젝트의 난이도를 각각 반영하는 인자(3-level ratings) 적용 평균단위비용모델과 회귀모형(단순회귀모형과 다중회귀모형) 제시 다른 유형의 대규모 프로젝트에 적용하는 추가 연구 필요
13
Maintainability Index
Maintainability index based on COCOMO Juan Carlos, Granja-Alvares and Manuel Jose Barranco-Garcia 단계 1) Maintainability 척도 설정 2) 설정된 척도와 maintainability index와의 관계를 가지는 maintainability 함수 유도 MMMAIN = MMU + MMM + MMT = ACT × MMDEV × (IU + IM + IT) Maintainability index의 적용 IU = FU(XU) : XU는 understandability metric IM = FM(XM) : XM은 modifiability metric IT = FT(XT) : XT는 testability metric 이전 프로젝트의 이력 데이터로부터 유도 실제 데이터로 입증이 어려운 이론적인 연구
14
Estimation by Analogy Hareton K. N. Leung 배경
다양한 기계학습 기법이 소프트웨어 비용산정에 적용됨 인공신경망, 사례기반추론, rule induction AVN(Analogy with Virtual Neighbor) 기법: CBR의 개선된 형식 cost drivers: #input, #output, #inquiry, #update, #int-itf, #ext-itf Simple: 1~9 objects Medium: 10~39 objects Complex: 40 objects cost drivers와 비용간의 관계를 회귀 분석으로 직접 유도 Skills와 expertise 요인은 포함시키지 않음 낮은 이직률을 가지는 개발팀이 그대로 유지보수 개발 비용산정에 적용된 기법을 유지보수 비용산정에 그대로 적용하는 것을 전제로 함 개발과 유지보수는 동일한 생산성 요인을 가짐
Similar presentations