여기서 시험문제 많이 나올거래요
바용 산정 문제의 배점이 크게 나올 예정
계획
- 소프트웨어 개발의 성패는 비용, 기간, 인력과 같은 자원을 토대로 초기에 얼마나 계획을 잘 세우느냐에 달려있음
문제 정의
- 문제를 정의하려면 개발하고자 하는 영역의 배경 지식이 필요
- 유사한 프로젝트를 개발한 경험이 있는 분석가가 참여하는 것이 도움이 됨
- 문제를 파악하기 위해 현재 운영 중인 시스템을 사용해 보고
- 실무 담당자와 면담해 자료를 수집한 후 면밀히 분석해보는 것이 필요
타당성 분석
경제적 타당성
- 경영자 입장에서 의사결정을 하는 데 매우 중요한 요소
- 시장 분석을 통해 시장성을 확인
- 경제적 타당성 분석으로 투자 효율성과 시장성을 검증한 후 개발 여부를 판단
기술적 타당성
- 사용자가 요구하는 프로젝트가 최신 기술이 필요하다면 기술적 타당성을 먼저 검토
- 요구하는 기술을 회사가 가지고 있는지 확인
- 부족하다면 필요한 기술을 갖고 있는 소프트웨어 개발자를 채용하거나 외주 개발로 해결
법적 타당성
- 오픈소스는 소프트웨어 분쟁 발생 소지가 높음
- 법적인 문제가 발생하지 않으려면 오픈소스를 사용할 때 어디까지 무료로 사용할 수 있는지 확인해야 함
개발 비용 산정 : 하향식
전문가 판단 기법 (계산식에 관련된 문제 출제 예정)
- 경험이 많은 여러 전문가가 프로젝트를 수행하는 데 비용이 어느 정도 들어가는지 평가한 금액을 개발 비용으로 산정
- 경험이 많은 전문가가 판단을 내린 만큼 신뢰성이 있고 편리하다는 장점
- 짧은 시간에 개발비를 산정하거나 입찰에 응해야 하는 경우 많이 사용
- 수학적 계산에 의해 산정하지 않고 경험에만 의존할 경우 부정확할 수 있음
델파이 기법
- 전문가의 경험을 중요시해 비용을 산정하는 것은 같으나 전문가들의 편견이나 분위기에 영향을 받지 않도록 조정자를둠
- 여러 전문가가 모여 각자의 의견대로 비용을 산정 후 결과를 공유하고 의견을 조율하여 개발 비용을 산정
- 조정자는 전문가가 모여 비용 산정을 하는 회의에서 간사 역할을 수행
- 던문가는 비용을 산정할 수 있는 자료를 충분히 검토하고, 필요하다면 의견을 나눌 수 있음
- 전문가 각자가 비용을 산정한다. 이떼 계산된 결과를 조정자에게 익명으로 제출
- 조정자는 각 전문가가 제출한 자료를 요약 정이
- 조정자는 각 전무가가 제출한 자료에서 산정 내용에 차이가 크면 이 문제를 해결하기 위해 회의를 소집
- 전문가는 다시 익명으로 비용 산정 작업을 실시
개발 비용 산정 : 상향식
원시 코드 라인 수 기법 - LOC 기법
- 소프트웨어 각 기능의 원시 코드 라인 수 (LOC)의 비관치, 낙관치, 중간치를 측정하여 예측치를 구하고 이를 이용해 노력, 개발 비용, 개발 기간. 생산성 등의 비용을 산정하는 기법
- 한 모듈에 대해 라인 수 (LOC)를 추정할 때 낙관적으로 볼 때 300LOC, 비관적으로 볼 때 900LOC, 중간이라고 볼 때 600LOC로 생각했다면, 추정 LOC는 얼마인가?
- (300 + (4 * 600) + 900) / 6 = 600LOC
- 소프트웨어 개발 기간은 1년(12개월)이다. 5명의 개발자가 12개월 동안, 7명의 개발자가 5개월 동안 참여한다면 이 소프트웨어 개발의 노력M/M는 얼마인가?
- (5명 * 12개월) + (7명 * 5개월) = 60M/M + 35M/M = 95M/M
- LOC 기법에 의해 예측한 총 라인이 50,000라인이고, 개발자가 10명 참여한다. 그리고 개발자들이 월 평균 500라인 을 코딩 한다면 개발 기간은 얼마나 되는가?
- 노력(M/M) = 원시 코드 라인 수 / 1인당 월 평균 생산 코드 라인 수 = 50,000 라인/500라인 = 100M/M
개발 기간 = M/M / 참여 인원 = 100M/M / 10명 = 10개월
개발 단계별 노력(M/M) 기법
- LOC 기법은 개발하려는 소프트웨어의 총 코드 라인 수를 예측하여 구현 단계에 대한 M/M를 산정
- 하지만, 실제 소프트웨어를 개발하디 위해서는 코딩 뿐만 아니라 요구 분석, 설계 등의 단계에서도 인력과 자원이 많이 필요
- M/M을 소프트웨어 개발 생명주기의 각 단계에 적용하여 단계별로 산정 -> LOC기법 보완
- 코딩만 대상으로 산정하는 LOC 기법보다 더 정확
비용 산정 기법 : 수학적 산정 기법
COCOMO 방법
- 프로그램 유형에 따른 가중치를 두어야 함
- 개발아려는 소프트웨어를 제품, 컴퓨터, 개발자, 프로젝트 4가지 특성에 따라 총 15가지로 분류한 후 인건비를 더 보정
가중치 반영하기
- 단순형 프로젝트 : 50KDSI 이하
- 중간형 프로젝트 : 300KDSI 이하
- 내장형 프로젝트 : 300KDSI 이상
보정 계수 반영하기
- 노력 조정 수치(EAF) : 보정에 사용하는 값, 필요한 각 항목별 승수 값을 모두 곱한 값
노력 조정 수치가 반영된 노력 (P/M)
- 노력 조정 수치가 반영된 노력(PM) : 프로젝트 유형에 노력 조정 수치를 곱한 것
기능 점수 산정 방법
간이 기능 점수법
- 프로젝트 초기 단계에서 각 기능의 요소를 모르는 경우에 평균 복잡도 가중치를 사용해 소프트웨어 기능의 크기를 측정
- 평균 복잡도 가중치
- 데이터 기능 점수 계산
- 이번 프로젝트에서 생성해 관리하는 데이터는 내부 논리 파일(ILF)
- 이번 프로젝트에서 만들지 않고 다른 프로젝트에서 생성했으나 이번 프로젝트에서 참조하는 데이터는 외부 연계 파일(EIF)
- 데이터 기능 점수는 내부 논리 파일의 개수와 외부 연계 파일의 개수에 각각의 평균 복잡도(가중치)를 곱해 계산
- 트랜잭션 기능 점수 계산
- 기능 점수에서 트랜잭션 기능의 복잡도는 입력, 출력, 조회의 개수로 결정
- 외부 입력 (EI) : 데이터베이스에 데이터를 등록하거나 수정.삭제하는 것
- 외부 출력 (EO) : 계산하는 로직을 거쳐 데이터나 제어 정보를 사용자에게 보여주는 기눙
- 외부 조회 (EQ) : 로직이 필요 없고 데이터베이스에 존재하는 데이터를 찾아 그대로 표시만 해주는 기능
일정 계획
일정 계획 기법 1 : 네트워크 차트 (PERT/CPM)
CPM 작업 과정
- CPM으로 네트워크를 그리려면 학사관리 애플리케이션을 수행하는 데 필요한 작업, 선행 작업, 작업의 소요 기간이 필요
'소프트웨어 공학 공부' 카테고리의 다른 글
소공 시험 (0) | 2025.04.15 |
---|---|
소프트웨어 공학 6장 (아키텍처 설계와 클래스 설계) (0) | 2025.04.15 |
소프트웨어 공학 6주차 (설계) (0) | 2025.04.08 |
소프트웨어 공학 5주차 - 요구분석 (0) | 2025.04.01 |
소프트웨어 공학 1차시 (0) | 2025.03.11 |