소프트웨어 공학 응용 및 실습
DESCRIPTION
소프트웨어 공학 응용 및 실습. 제 2 장 : 계획 이 형 원 강릉대학교 컴퓨터공학과. 학습 내용. 문제의 정의 타당성 조사 일정 계획 예산 계획 조직 계획 위험 분석 계획서 작성. 계획 : 작업들. 계획의 부재 일정 지연 , 경비 초과 , 품질 저하 , 유지보수 비용 증가 프로젝트의 실패 작업 1) 문제를 이해하고 정의 2) 타당성 조사 3) 필요한 소작업을 정의하고 순서를 결정 4) 일정 예측 5) 비용 예측 6) 위험 분석 7) 계획서 작성. - PowerPoint PPT PresentationTRANSCRIPT
11
소프트웨어 공학 응용 및 실습소프트웨어 공학 응용 및 실습
제 2 장 : 계획
이 형 원강릉대학교 컴퓨터공학과
학습 내용학습 내용
문제의 정의타당성 조사일정 계획예산 계획조직 계획위험 분석계획서 작성
계획 : 작업들 계획 : 작업들
계획의 부재 일정 지연 , 경비 초과 , 품질 저하 , 유지보수 비용 증가 프로젝트의 실패
작업 1) 문제를 이해하고 정의2) 타당성 조사3) 필요한 소작업을 정의하고 순서를 결정 4) 일정 예측5) 비용 예측6) 위험 분석7) 계획서 작성
계획 : 주의할 점계획 : 주의할 점계획은 변경되기 마련 : 계획 관리가 필요
• 중간 단계 (milestones) 에서 개발 과정과 중간 산출물 점검• 계획과 차이가 나는 부분을 식별• 차이의 원인 분석 및 조치
계획 및 계획 관리 시 기술적인 측면 고려 • 예 . 코드 재사용의 생산성 , 일정과 품질사이의 상관 관계
복잡한 득실 관계 고려 • 소프트웨어 구입시의 생산성 향상 정도• 최신형 기기 사용시의 개발 기간 단축 정도• 외주 개발 / 구입 / 자체 개발의 득실
문제의 정의문제의 정의
문제의 이해• 현 업무 / 시스템을 이해 : 사용자 면담 , 현장 관찰 , 실제 업무 수행
• 문제점 파악• 목표 설정 : 개발 과정 / 산출물 , 정량적 / 정성적
대책 수립• 제약 조건 파악 : 사용자 요구 / 개발 여건 / 기술적 능력 고려• 기능 및 우선순위 : 시스템의 규모 조정 가능성• 개발 모형 선택
문제의 정의 : 문제 정의서 문제의 정의 : 문제 정의서
문제의 기술시스템의 필요성시스템의 목표제약 조건시스템의 제공 기능 및 우선 순위사용자의 특징개발 , 운용 , 유지보수 환경개발 모형
타당성 조사타당성 조사
경제적 타당성• 투자 효율성• 시장성
기술적 타당성 ( 요구되는 기능 / 성능의 제공 가능성 )• 사례 및 실패 사례 연구• 모의 실험• 프로토타이핑
법적 타당성• 사용 도구들의 법적 권한• 시장 , 관행들에 대한 조사
일정 계획 : 작업 순서일정 계획 : 작업 순서
개발 프로세스를 이루는 소작업 (activity)들을 파악하고 그 순서와 일정을 정하는 작업1. 작업분해 : Work Breakdown Structure 작성2. 작업간의 상호 의존 관계 : CPM 네트워크 작성 3. CPM 네트워크의 각 작업 소요 시간을 정함4. CPM 네트워크로부터 최소 소요 기간을 구함5. 소요 MM, 기간 산정 : SW 규모 추정 방법 이용 6. CPM 네트워크와 비교 후 수정7. 확정된 일정을 간트 차트 (Gantt Chart) 로 그림8. 일정 예측 자료 저장
일정 계획 : 작업 분해일정 계획 : 작업 분해
Work Breakdown Structure(WBS)• 프로젝트 완성에 필요한 모든 일을 계층적 구조로 표현• 단말 노드들은 전체 프로젝트의 자원 예측의 기초 자료
컴파일러개발 프로젝트
분석 * 설계 테스트 사용자 지침서 작성
스캐너 파서 코드 생성기
* R1: 목표정의 R2: 제약사항 정의 R3: 사용자 면담 R4: 요구정리 R5:DFD 작성
일정 계획 : CPM 네트워크일정 계획 : CPM 네트워크
CPM 소작업 리스트
소작업 선행 작업 소요기간ABCDEFGHIJKL
--A-
B, DA, B
AD
C, FC, G
IJ
810151010520251515710
일정 계획 : CPM 네트워크 (계속 )일정 계획 : CPM 네트워크 (계속 )
임계 경로 (critical path)S-A-M1-C-M4-I-M6-K-M8-L-X 소요기간 55
S
M1
A
B
D
M3
M2
M5
C
F
G
E
M4
M7
H
I
J
M6
K
M8
L
X
8
15
10
15
5
20
10
25
15
15
7
10
일정 계획 : CPM 네트워크 (계속 )일정 계획 : CPM 네트워크 (계속 )장점
• 관리자의 일정 계획 수립에 도움• 작업 사이의 관계 및 최장 경로 파악• 병행 작업 계획 및 자원 할당• 다른 일정 계획안을 시뮬레이션• 프로젝트 일정 점검 , 관리
기술적 개발 작업 + 관리 작업작업 시간을 정확히 예측할 필요대규모 프로젝트의 경우 소프트웨어 도구 이용
• MS-Works, Mac Project II, ...
일정 계획 : 프로젝트 일정표일정 계획 : 프로젝트 일정표
간트 차트• CPM 네트워크로부터 생성• 소작업 별로 작업의 시작과 끝을 나타낸 그래프
작업 : 막대작업 할당 시간 : 막대의 길이
• 새 작업 발견 or 작업 시간 변경 : WBS CPM Gantt• 변형
예비 시간 (slack time) 표시 – 다음 작업에 영향을 주지 않고 연장 가능한 시간– 임계 경로 상의 작업들은 예비 시간이 없음
계획 대비 진척도를 표시개인별 일정표
예산 계획예산 계획소프트웨어 개발 비용 예측
• 정확한 비용 예측은 매우 어려움알려지지 않은 요소가 산재비용 예측의 변수
– 일반 엔지니어링 작업 : 원자재의 사용량– 소프트웨어 개발 : 소프트웨어 엔지니어의 수와 개발 기간
• 과거의 프로젝트 데이타가 필요예산
• 인건비 : MM( 인원 / 월 ) 을 기초• 간접비 : 여비 , 재료비 , 회의비 , 공공요금 , overhead• 기자재 비
예산 계획 : 영향을 주는 요소예산 계획 : 영향을 주는 요소
제품의 크기• 제품의 크기가 커짐에 따라 기하급수로 늘어남
제품의 복잡도• 응용 : 개발지원 : 시스템 = 1 : 3 : 9
프로그래머의 자질요구되는 신뢰도 수준기술 수준 ( 장비 , 도구 , 조직능력 , 관리 , 방법론 숙달 )남은 시간
• Putnam “ 프로젝트 비용은 남은 개발 기간의 4 제곱에 반비례”
예산 계획 : 기법예산 계획 : 기법
Parkinson’s law: 쓸 돈이 있으면 다 쓰게 됨• 장점 : 충분한 여유 비용과 시간이 있는 경우• 단점 : 무리한 진행 , 비용 낭비 , 나쁜 습관
Price-to-Win: 고객이 지불한 비용 그대로 적용• 장점 : 비용 예측 기법이 없거나 신뢰성이 없는 경우• 단점 : 권위적
유추 산정 : 유사 프로젝트의 실제 비용을 기반• 장점 : 실제 경험을 이용• 단점 : 유사성의 판단 기준
예산 계획 : 기법 ( 계속 )예산 계획 : 기법 ( 계속 )
상향식 산정 : 각 요소의 비용을 산정한 후 합산• 장점 : 책임자가 직접 예측 ( 책임감 , 구체정보 ), 오차가 적음 ( 다수 )
• 단점 : WBS 의 효율성에 영향을 받음알고리즘 / 실험적 모델링 : 과거 정보를 바탕으로 특정 SW 척도 ( 주로 규모 ) 와 비용간 관계에 대한 공식을 제공• 장점 : 신뢰성• 단점 : 모델이 개발된 환경과 상이한 환경
예산 계획 : COCOMO예산 계획 : COCOMO
절차 (intermediate model 기준 )1. 규모 산정 (LOC, FP)2. MM(PM) 산출 Organic 유형 MM = 3.2*(KDSI)**1.05 TDEV=2.5*(PM)**0.38 Se
midetached 유형 MM = 3.0*(KDSI)**1.12 TDEV=2.5*(PM)**0.35 Embedded 유형 MM = 2.8*(KDSI)**1.20 TDEV=2.5*(PM)**0.32
3. MM 를 노력 승수로 보정 : MM = MM * 15 cost driver4. 총인건비 = MM * 한 사람당 평균 인건비5. 총 개발 기간 산출 : 시스템 성격에 관계없이 비슷
난이도가 높을수록 신중한 계획 및 실천6. 평균 투입 인원 : MM/TDEV7. 단계별 MM 와 TDEV 산출 : 비율에 대한 표 제공
예산 계획 : COCOMO( 계속 )예산 계획 : COCOMO( 계속 )
예• CAD 시스템 예상 규모 : 33360 LOC
PM = 3.0*(KDSI)**1.12 = 3.0*(3.33)**1.12 = 152MM
TDEV = 2.5*(PM)**0.35 = 2.5*(152)**0.35 = 14.5 M
• 보정주의
• macro estimation• 많은 가정과 제약 조건• 독립 변수는 오직 원시 코드의 규모
예산 계획 : 기능점수 방법예산 계획 : 기능점수 방법
기능 점수 (function points)• 정확한 LOC 는 예측 불가능• 논리적 규모를 측정
입력 , 출력 , 질의 , 화일 , 인터페이스의 개수초기 예측 신뢰성이 높음
• 비즈니스 자료 처리 분야절차
1. 복합 가중 값을 이용한 FP 산출 ( 표 2.5)2. FP = FP*[0.65+0.01*14 complexity adjustment values]3. LOC = FP * 원하는 언어의 FP 1 점 당 LOC
어셈블리 언어 (324), C(150), Pascal(91), Ada(71), Smalltalk(21)
4. 개발 노력 (MM) = LOC / 생산성 (LOC/MM)
조직 계획조직 계획
조직의 구성• 소프트웨어 개발 생산성에 큰 영향 : 역할 분담 및 협력• 팀 구성에 영향을 주는 요소
프로젝트의 기간 : 장기 프로젝트일수록 개개인의 만족도가 중요
작업의 복잡도 및 규모에 팀 인원을 맞춤소프트웨어의 특성 : 모듈들의 결합도가 높으면 적은 팀원
• 개발 조직 구조프로젝트별 조직 : 프로젝트 시작에서 개발 완료까지 전담 팀기능별 조직 : 분석팀 , 설계 구현 팀 , 테스트 및 유지보수 팀매트릭스 조직
– 요원들은 고유 관리 팀과 기능 조직에 동시에 관련– 필요에 따라 요원을 차출 팀을 구성하고 끝나면 원래의 소속으로 복귀
조직 계획 : 중앙 집중식 팀 구성조직 계획 : 중앙 집중식 팀 구성의사 결정권이 리더에게 집중되는 계층적 팀 구조책임 프로그래머 팀 (chief programmer team)
• 외과 수술 팀 구성에서 유래• 책임 프로그래머 : 제품 설계 , 주요 부분 코딩 , 중요한 기술적 결정 , 작업의 지시
• 프로그램 사서 : 프로그램 리스트나 설계 문서 등 관리• 보조 프로그래머 : 기술적 문제에 대하여 상의 , 사용자 /품질 보증 담당자와 접촉 , 부분적 분석 / 설계 / 구현을 담당
• 프로그래머 : 책임 프로그래머의 지시로 프로그래밍
조직 계획 : 중앙집중식 팀구성 (계속 )조직 계획 : 중앙집중식 팀구성 (계속 )
특징• 의사 결정이 집중되고 빠름• 소규모 프로젝트에 적합• 경험 많은 한 프로그래머와 여러 초보 프로그래머• 초보 프로그래머를 훈련시키는 기회로 적합
단점• 한 사람의 능력과 경험이 프로젝트의 성패 좌우
책임프로그래머
프로그램 사서 프로그래머 보조 프로그래머
백업
조직 계획 : 분산형 팀 구성조직 계획 : 분산형 팀 구성민주주의식 의사결정
• 서로 협동하여 수행하는 비이기적인 팀 (Egoless team)• 자신이 있는 일을 알아서 수행• 구성원이 동등한 책임과 권한
특징• 작업 만족도가 높음• 의사교류 활성화 : 장기 프로젝트에 적합
단점• 의사 교환 경로 수가 많음• 책임이 명확하지 않은 일이 발생• 대규모에 적합하지 않음 ( 의사 소통 비용 및 의사 결정 지연 )
조직 계획 : 혼합형 팀 구성조직 계획 : 혼합형 팀 구성
특징• 집중형 , 분산형의 단점을 보완• 초보자와 경험자를 분리• 지휘권한 : 프로젝트 관리자와 고급 프로그래머• 의사교환 : 초보 엔지니어나 중간 관리층으로 분산• 소프트웨어 구조가 계층적으로잘 나누어지는 경우 적합
단점• 기술인력이 관리를 담당• 의사 전달 경로가 김
프로젝트 리더
고급 프로그래머
초보 프로그래머
위험 분석위험 분석
위험 요소를 인식하고 그 영향을 분석하여 관리위험 요소의 예와 해결 방안
• 요구 분석의 잦은 변경 프로토타이핑 , 점증적 개발 방법 , 최대 변경 상한선• 인력 부족 또는 부적절한 인원 배치 인력의 적극적 유치 , 교차 교육 • 일정 지연의 위험 작업간 의존도를 낮춤
CPM 네트워크에서 outgoing arcs 가 많은 노드를 세분화 CPM 네트워크에서 incoming arcs 가 많은 노드를
세분화
계획서 작성계획서 작성
1 개 요1.1 프로젝트 개요1.2 프로젝트의 산출물1.3 정의 , 약어
2 자원 및 일정 예측2.1 자원
가 . 인력나 . 비용
2.2 일정3 조직 구성 및 인력 배치
3.1 조직 구성3.2 직무 기술
4 WBS5 기술관리 방법
5.1 변경 관리
5.2 위험 관리5.3 비용 및 진도 관리5.4 문제점 해결 방안
6 표준 및 개발 절차7 검토 회의
7.1 검토회 일정7.2 검토회 진행 방법7.3 검토회 후속 조치
8 개발 환경9 성능 시험 방법10 문서화11 유지보수12 설치 , 인수13 참고문헌 및 부록