밍경송의 E.B

<2> Project Planning of Software Engineering 1 본문

CSE/소프트웨어공학

<2> Project Planning of Software Engineering 1

m_gyxxmi 2023. 10. 16. 02:07

이 글은 시험이 약 11시간 남은 학부생이 중간고사 암기를 위해 적은 글입니다...........내용은 지현박 교수님의 강의자료를 참고하였음을 밝힙니다.

 

 

⭐ Cost estimation 

 

 

✔️ Estimation Technique (2가지)

 

1) 경험 기반 기법 : 미래의 노력 요구 사항에 대한 추정은 관리자의 과거 프로젝트 경험과 어플리케이션 도메인을 근거로 함. (미래에 어떻게 될 것인가? 판단)

  • 프로젝트에서 생성되는 산출물과 개발될 여러 SW 컴포넌트들을 식별
  • 식별된 결과물을 문서화, 개별적 추정 과정을 거침
  • 추정치는 프로젝트 예산을 정하는데 데에 사용 + 수치 실현을 위해 제품 조정됨

*but 기술의 변화 -> 이전 추정 경험이 도움이 되지 않도록 함

 

 

 

2) 알고리즘 비용 모델 : 제품 속성의 추정치, 프로젝트 특성, 참여한 직원들의 경험을 근거로하는 공식적 접근법 (정확한 예측은 불가하나 객관적으로 보일 수 있음)

 

 

*Size는 다양한 요소로 정의가 가능하나 보통은 코드의 크기 이용. 

 

✔️Size related measures

: 코드라인(LOC) = 시스템의 크기와 문서의 양사이에 선형관계가 있다고 가정. - 동일한 기능 구현 -> 저급 언어에서 더 많은 코드 필요 - 코드 라인을 기반으로 측정하면 장황한 코드 작성이 더 생산적으로 여겨지는 문제가 있음

 

: 기능 점수(Function-points) = SW 기능으로 산정하자

- 프로그램 특성의 조합 기반

  • 외부 입출력
  • 사용자와 상호작용
  • 외부 인터페이스
  • 시스템에서 사용한느 파일

=> 각각 연관된 가중치 존재. 

 

*예시

: UFP(미보정 기능 점수) = 3*7 + 5*8 + 3*45 + 10*12 + 19*10 = 506

 

=> 기능 점수(FP) 도출은?

FP = UFP *TCF(기술 복잡도)

 

✔️ TCF : 14개의 factor들에 대해 0-5까지 가중치 값을 부여한 후 더함 

TCF = 0.65 +0.01 * DI(영향도)

 

 

DI가 50일 때,

TCF= 0.65*0.01*50 =1.15    => FP = 506 * 1.15

 

*코드 크기 = AVC *FPAVC(평균코드 줄 수)  : 어셈블리언어의 경우 200-300 LOC / SQL의 경우 2-40

 


✔️Algorithmic cost modelling : The COCOMO model

: 프로젝트 경험에 기반한 실증적 모델 / 문서화가 잘 되어 있는 독립적 모델

 

✔️ COCOMO model 2 

: 현대적 접근법들에 근거하여 더 자세한 추정치를 생성하는 여러 서브 모델 포함

  • 어플리케이션 결함 모델 : 기존 컴포넌트를 이용하여 SW 구성할 때
  • 초기 설계 모델 : 요.사가 도출된 후 초기단계동안
  • 재사용 모델 : 재사용 가능한 구성요소 통합의 노력 계산
  • 포스트 아키텍처 모델 : 시스템 아키텍처 설계 후 추가 정보 제공시

 

 

✔️COCOMO 81의 Nominal effort 예시 --> (⭐A와 B 값의 변화)

 ex) moderate mode로 size는 10KDSI인 프로젝트의 effort는?

: 3.0 * (10)^1.12 = 39.54

만약 M이 1.35라면 총 effort는 39.54 * 1.35 = 53

 


 

 

✔️ Estimation accuracy

- SW 최종 크기에 영향을 미치는 요소

  • COTS(산업적 SW) 와 컴포넌트 사용
  • 프로그래밍 언어 (assembly인지 아닌지.._)

- 개발 프로세스가 진행됨에 따라 추정치가 더욱 정확해짐 / but M과 M에 기여하는 요인들의 추정치는 주관적.

 

 

 

 

'CSE > 소프트웨어공학' 카테고리의 다른 글

<5> Architecture design  (0) 2023.10.16
<4> Requirements Engineering  (0) 2023.10.16
<3> Software Processes  (0) 2023.10.16
<2> Project Planning of Software Engineering 1  (0) 2023.10.16
<1> Introduction of Software Engineering  (0) 2023.10.16