카테고리 없음

3강. [필기 요약] - 모델링, CASE도구, HIPO, 비용 산정

공대키메라 2021. 9. 7. 23:12

모델링

 

모델링

 

1. 일반적인 시스템 개발 절차

 

 

일반적으로 시스템 개발은 데이터 관점과 프로세스 관점의 두 가지로 진행되는데, 개념 모델링을 통해 개발 범위를 파악하고, 업무 중심의 분석(논리 데이터 모델링, 분석 모델링) 단계를 거쳐 개발하고자 하는 환경을 고려한 설계(물리 데이터 모델링, 설게 모델링) 단게로 구체화되어 개발(데이터베이스 구축, 애플리케이션 개발)단계로 진행된다. 

 

2. 모델링의 정의

복잡한 현실세계의 현상을 특정한 목적에 맞추어 일정한 형식으로 이해하기 쉽게 표현하는 일을 의미한다. 

 

3. 모델링의 특징

 

  1. 추상화는 현실 세계를 일정한 형식에 맞추어 표현을 한다는 의미로 정리할 수 있다. 즉, 다양한 현상을 일정한 양식인 표기법에 의해 표현한다는 것이다. 
  2. 단순화는 복잡한 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현하여 쉽게 이해할 수 있도록 하는 개념을 의미한다. 
  3. 명확하는 누구나 이해하기 쉽게 하기 위해 대상에 대한 애매모호함을 제거하고 정확하게 현상을 기술하는 것을 의미한다. 

=> 모델링이란 현실세계를 추상화, 단순화, 명확화하기 위해 일정한 표기법에 의해 표현하는 기법!

 

정보시스템 구축에서는 모델링을 계획/분석/설계할 때 업무를 분석하고 설계하는데 이용하고 이후 구축/운영 단계에서는 변경과 관리의 목적으로 이용하게 된다. 

 

*CASE(Computer Aided Software Engineering)도구

소프트웨어 개발과정 일부 또는 전체를 자동화히기 위한 도구. 즉, 계획 수립에서부터 요구분석, 설계, 개발, 유지보수에 이르는 소프트웨어 생명 주기 전 과정을 자동화할 수 있도록 지원하는 자동화 도구를 의미

 

1. CASE 도구의 필요성

: 대규모 개발 프로젝트에서는 다양한 이해관계자들이 요구 사항 명세서를 검토해야 하고, 요구 사항 명세서에 대해 형상 관리를 수행해야 해서 요구 사항 관리 툴을 이용한다. 이러한 도구를 사용하면 요구사항 변경 사항을 추적하고 분석 및 관리할 수 있으며, 표준 준수 여부를 확인할 수 있다. 또 분산된 환경에서 다양한 이해관계자가 공동 작업할 수 있으며, 테스트 연계 및 결함 관리 등의 기능을 제공하기 때문에 시스템 구축 업무를 효율적으로 수행할 수 있다. 

 

* 형상 관리 : 소프트웨어의 생산물을 확인하고 소프트웨어 통제, 변경 상태를 기록하고 보관하는 일련의 작업

 

 * HIPO(Hierarchy Input Process Output) 하이포, 히포

1. 특징 

- 분석, 설계, 문서화에 사용되는 도구. 기본시스템 모델은 입력, 처리, 출력으로 구성됨

- 하향식 소프트웨어 개발을 위한 문서화 도구로서 이해하기 쉬움

- 변경, 유지보수 용이

 

2. HIPO 종류

  1. 가시적 도표 : 시스템 전체적인 기능과 흐름을 보여주는 계측 구조도
  2. 총체적 다이어그램 : 개요 도표 집합 - 입력, 처리, 출력에 대한 전반적인 정보를 제공하는 도표
  3. 세부적 다이어그램 : 상세 도표 집합 - 총체적 다이어그램을 상세 기술하는 도표

 

 

* 비용 산정

소프트웨어 개발에 필요한 기능과 규모를 기반으로 소요되는 인원, 기간, 자원 등으로 확인하여 필요한 비용을 예측하는 활동

 

1. 비용 결정 요소

1) 프로젝트 요소 : 재발 제품의 복잡도, 시스템 크기, 신뢰도

2) 자원 요소 : 인적 자원(개발자들), 개발에 필요한 하드웨어/소프트웨어 자원

3) 생산성 요소 : 개발자의 능력, 개발 기간

 

 

* 비용 산정 기법

1. 하향식 산정 기법

 프로그램의 규모를 예측하고 과거 경험을 바탕으로 예측한 규모에 대한 소요 인력과 기간을 추정하는 기법

 

  1. 전문가 판단기법 : 조직 내에 경험이 많은 두 명 이상의 전문가에게 비용 산정을 의뢰하는 기법
  2. 델파이 기법 : 전문가 판단기법의 주관적인 편견을 보완하기 위해 많은 전문가 의견을 종합하여 산정하는 기법

2. 상향식 산정 기법

소요기간을 구하고 여기에 투입되어야 할 입력과 투입 인력의 참여도를 곱하여 최종 인건 비용 계산하는 기법

 

1) LOC(Line of Code, 원시코드 라인수)  기법

 

예측치를 이용해서 노력, 개발 기간, 개발 비용, 생산성 등 산정하는 기법으로 측정 용이하고 이해가 쉬워서 가장 많이 사용된다. 

 

LOC 산정 공식 

  노력(인월) : 개발 기간 X 투입 인원, LOC / 1인당 월평균 생산 코드 라인 수 

  개발 기간 : 인월 / 투입 인원

  개발 비용 : 인월 X 단위 비용(1인당 월평균 인건비)

  생산성 : LOC / 인원

 

* 인월(Person Month) : 개발에 소요되는 기간을 1개월로 고정할 경우 필요한 총 인원수

 - ex) 10인월 : 10명이 1개월 동안 작업해야 하는 작업의 양

 

2) 개발 단계별 노력 (Effort Per Task) 기법

LOC기법을 보완하기 위하여 기능을 구현시키는데 필요한 노력을 생명 주기의 각 단계별로 산정하는 기법

 

 

3. 수학적 산정 기법

개발 비용 산정의 자동화를 목표로 하는 상향식 비용 산정기업중 하나로 경험적 추정기법 또는 실험적 추정 기법이라고 한다. 

 

1) COCOMO(Constructive COst MOdel)

보헴이 제안한 것으로 원시 프로그램의 규모인 LOC 에 대한 비용 산정 기법이다. 소프트웨어 규모(LOC)를 예측한 후 소프트웨어 종류에 따라 각 비용 산정 공식에 대입하여 비용을 산정한다. 비용 견적의 강도 분석 및 비용 견적의 유연성이 높아 개발비 견적에 널리 통용되고 있으며, 같은 규모의 프로그램이라도 그 성격에 따라 비용이 다르게 산정된다. 

 

* 보헴(Bohem) 제안

- 폭포수 모델(watarfall Model)

- 나선형 모델(Spiral model)

- COCOMO

 

COCOMO의 소프트웨어 개발 유형

소프트웨어의 복잡도 또는 원시 프로그램의 규모에 따른 분류

- 종류 : 조직형(Organinc Mode), 반분리형(Sem-Detached Mode) , 내장형(Embedded Mode)

 

* 조직형(Organic Mode) 

 -기관 내부에서 개발된 중소규모의 소프트웨어

 -일괄 자료 처리, 과학 기술 계산용, 비즈니스 자료 처리용

 - 5만(50KDSI)라인 이하의 소프트웨어

 - 사무용, 업무용 등 응용 소프트웨어 개발 개발에 적합

 

* 반분리형(Semi-Detached Mode)

- 트랜잭션 처리 시스템, 운영체제, 데이터베이스 관리 시스템

- 30만(= 300KSDI)라인 이하의 소프트웨어

- 컴파일러, 인터프리터와 같은 유틸리티 개발에 적합

 

* 내장형(Embedded Mode)

- 최대형 규모의 트랜잭션 처리 시스템, 운영체제

- 30만 (= 300KDSI)라인 이상의 소프트웨어

- 신호기 제어 시스템, 미사일 유도 시스템, 실시간 처리 시스템 등의 시스템 프로그램 개발에 적합

 

KDSI(Kilo Delivered source instruction)

: 전체 라인 수를 1000라인 단위로 묶으것으로 KLOC(Kilo LOC)와 같은 의미

 

 

COCOMO 모형의 종류

비용 산정 단계 및 적용 변수의 구체화 정도에 따른 분류

- 종류 : 기본형(Basic) COCOMO, 중간형(Intermediate) COCOMO, 발전형(Detailed) COCOMO

 

* 기본형 : 소프트웨어 크기와 개발 유형만을 이용하여 비용을 산정하는 모형

* 중간형 : 기본형 COCOMO를 토대로 사용하거나 4가지 특성의 15가지 요인에 의해 비용을 산정하는 모형

* 발전형 : 중간형 COCOMO를 보완하여 만들어진 방법으로 개발 공정 별로 보다 자세하고 정확하게 노력을 산출하여 비용을 산정하는 모형

 

* 4가지 특성과 15가지 요인

1. 제품 특성 : 요구되는 신뢰도, DB크기, 제품의 복잡도

2. 컴퓨터의 특성 : 수행 시간의 제한, 기억 장소의 제한, 가상 기계의 안정성, Turn Around Time(반환시간)

 - 가상기계 : 실제로 있는 컴퓨터 시스템을 여러 명의 사용자가 동시에 사용할 수 있게 하기 위해서 그 컴퓨터 시스템을 마치 여러 대의 작은 컴퓨터 시스템이 있는 것처럼 분할하여 만든 것 

3. 개발 요원의 특성 : 분석가의 능력, 개발 분야의 결험, 가상 기계의 경험, 프로그래머의 능력, 프로그래밍 언어의 경험

4. 프로젝트 특성 : SW 도구의 이용, 프로젝트 개발 일정, 최신 프로그래밍 기법의 이용

 

2) Putnam 모형

소프트웨어 생명 주기의 전 과정에 사용될 노력의 분포를 가정해 주는 모형으로, Putnam이 제안하였다. 생명 주긱예측 모형이라고도 하며, 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 분포도를 기초로 한다. 대형 프로젝트의 인월(m/m)분포 산정에 이용되는 기법으로, 개발 기간의 늘어날수록 프로젝트 적용 인월(m/m)의 노력이 감소한다. 

 

 

3) 기능 점수법(Function Point)

SW의 기능을 증대시키는 요인 별로 가중치(단순, 보통, 복잡)를 부여하고, 요인 별 가중치를 합산하여 총 기능 점수를 산출하며 총 기능 점수와 영향도를 이용하여 기능 점수(FP)를 구한 후 비용을 산정하는 기법이다. 알브레히트가 제한하엿으며, 최근에는 비용 산정기법 가운데 최선의 평가를 받고 있다.  - 국제 표준 소프트웨어 규모 측정 방법