소프트웨어 공학 응용 및 실습 제 2 장 : 계획 이 형 원 강릉대학교 컴퓨터공학과.

Slides:



Advertisements
Similar presentations
CI(Continuous Integration) 이학성. C ontinuous I ntegration? 2 지속적으로 품질관리 를 적용하는 과정 개발자가 기존 코드의 수정 작업 을 시작할 때, 코드 베이스의복사본을 받아서 작업을 시작하면서 코드의 변경.
Advertisements

불특정 공격에 무너진 H 사 업무 시스템 서서히 저하 내부에서 원인 불명으로 네트워크의 속도가 서서히 저하 되는 현상이 발생 공격의 발생 핵심 장 비 서비스가 되다 되지 않는 현상이 심해지고 결국 핵심 장 비는 장애가 발생하게 됨 장비 장애 발생 핵심 장비 장애 전체.
컴퓨터 종합설계 2012 년 2 학기 Syllabus 개요 (1/2) 목표  실 세계의 문제를 제시하고, 이에 대한 해결책을 컴퓨터 공학적인 방법으로 해결하기 위하여 팀을 주축으로 소프트웨어 개발 프로젝트 수행  프로젝트 계획에서부터 구현까지.
2008 년 11 월 29 일 BSC 시뮬레이션 결과 보고서 박종국, 박철우, 서경석, 서승찬.
Software Project 개발 계획.
KPC 자격 강원지역센터 사업계획서 OO. OO. 제안사 명칭.
컴퓨터와 인터넷.
학 과 : 토목공학과 담당교수 : 김 수 용 분반,조 : 301분반,4조 조 이 름 : 다 크 호 스
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
강의 블로그 Mobilecom.tistory.com
일반 요구 사항 비즈니스 요구사항 고객/정보/위치/상태 탐색방법 제품/서비스 홍보 및 광고 방법
Power Java 제3장 이클립스 사용하기.
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
최윤정 Java 프로그래밍 클래스 상속 최윤정
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
소프트웨어 공학 (Software Engineering)
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
MOS 자격증 Word-Expert 2003.
시스템 설계와 산업디자인 개발.
FTP 프로그램 채계화 박재은 박수민.
현장실습(Co-Operation) 소감 발표
ARP Project 조 충 호 교수님 김 세 진 조교님 조 진 형 변 익 수
프로젝트 계획 (Project Planning) - Software Engineering -
Chatpter 03 계획 01 계획의 이해 02 문제의 정의 03 타당성 분석 04 개발 비용 산정
초음파를 이용한 거리 측정과 음성구현 1 조 한 형 래 김 요 섭 안 정 민.
네트워크프로그래밍프로젝트 < 관리 tool >
제9장 네트워크 성능 및 품질 평가 과 목 : 네트워크 설계 및 실험 조 명 : 1 조
1장. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
2011년도 문제해결과 의사결정 BMC 한국경영인력연구원 Tel: (02) , HP:
제3절 인터넷 비즈니스 창업성공전략과 고려사항
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
27장. 모듈화 프로그래밍.
제 10 장 의사결정이란 의사결정은 선택이다.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
컴퓨터소프트웨어설계및실험 년 1학기 실험계획 -.
ERP의 구축방법과 장·단점 1조 김두환 김수철 가민경 김정원.
Mobile braille system for the blind
USN(Ubiquitous Sensor Network)
Pallet System (사례) 1차 개선 2차 개선 설명
부서 QI 및 지표 담당자 모임 2012년 8월 2차 QI 활동 방법 지표 관리 회의록 작성법
AUTODESK AUTOCAD ELECTRICAL 전기제어 2D 설계 소프트웨어 표준기반 설계 생산성 도구 구조도 설계
04. DBMS 개요 명지대학교 ICT 융합대학 김정호.
BIC 사례 1 연관규칙과 분류모형을 결합한 상품 추천 시스템: G 인터넷 쇼핑몰 사례
LabVIEW WiznTec 주임 박명대 1.
플래시 애니메이션 제작과정 (E-러닝) Lee Sunghoon 1.
Pallet System (사례) 1차 개선 2차 개선 설명
판매 교육 발표자: [이름].
Kangwon National Univ. | Computer Science
1. 인력계획 1) 인력 계획 프로세스 사업계획 인력계획 과부족 비교 인적자원 수요 예측 가용 인적자원 예측 과잉인력 적정인력
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
소프트웨어 중심에 존재하는 복잡성 에 도전장을 내밀다
회로해석 및 논리회로실험 (정승기 교수님, 김신아 조교님)
클러스터 시스템에서 효과적인 미디어 트랜스코딩 부하분산 정책
뇌를 자극하는 Solaris bible.
네트워크 프로그래밍 (모바일 주문 프로그램 )
생산 운영관리의 기초 공 정 설 계 생산능력계획 및 일정계획 재 고 관 리 노동인력관리 품질관리 및 설비보전 생산의 국제화
2D 게임프로그래밍 프로젝트 발 록 런 김대호.
창의적 공학 설계 < 사용자 중심의 공학설계 > : Creative Engineering Design
조직화란 조직의 목표를 최상의 방법으로 실현할 수 있도록 인적자원과 물적자원을 결합하는 과정
사회과 서술형 평가 문항 자료집 -중학교 일반사회 영역 -.
Information Communication Technology
프로젝트 계획 (Project Planning) - COE 306: Software Engineering -
멀티미디어시스템 제 4 장. 멀티미디어 데이터베이스 정보환경 IT응용시스템공학과 김 형 진 교수.
프로그래밍 언어 학습을 위한 가상실습환경 창원대학교 이수현.
제 4 장 Record.
6시그마및품질관리 과제 – Define의 적용.
X-13-ARIMA 프로그램 사용법.
소프트웨어 설계 및 실습 강기준.
생산성 증대 효율성 향상 측정 수행 능력.
Presentation transcript:

소프트웨어 공학 응용 및 실습 제 2 장 : 계획 이 형 원 강릉대학교 컴퓨터공학과

학습 내용 문제의 정의 타당성 조사 일정 계획 예산 계획 조직 계획 위험 분석 계획서 작성

계획: 작업들 계획의 부재 작업 일정 지연, 경비 초과, 품질 저하, 유지보수 비용 증가 프로젝트의 실패 일정 지연, 경비 초과, 품질 저하, 유지보수 비용 증가 프로젝트의 실패 작업 1) 문제를 이해하고 정의 2) 타당성 조사 3) 필요한 소작업을 정의하고 순서를 결정 4) 일정 예측 5) 비용 예측 6) 위험 분석 7) 계획서 작성

계획: 주의할 점 계획은 변경되기 마련 : 계획 관리가 필요 계획 및 계획 관리 시 기술적인 측면 고려 복잡한 득실 관계 고려 중간 단계(milestones)에서 개발 과정과 중간 산출물 점검 계획과 차이가 나는 부분을 식별 차이의 원인 분석 및 조치 계획 및 계획 관리 시 기술적인 측면 고려 예. 코드 재사용의 생산성, 일정과 품질사이의 상관 관계 복잡한 득실 관계 고려 소프트웨어 구입시의 생산성 향상 정도 최신형 기기 사용시의 개발 기간 단축 정도 외주 개발/구입/ 자체 개발의 득실

문제의 정의 문제의 이해 대책 수립 현 업무/시스템을 이해: 사용자 면담, 현장 관찰, 실제 업무 수행 문제점 파악 목표 설정: 개발 과정/산출물, 정량적/정성적 대책 수립 제약 조건 파악: 사용자 요구/개발 여건/기술적 능력 고려 기능 및 우선순위: 시스템의 규모 조정 가능성 개발 모형 선택

문제의 정의: 문제 정의서 문제의 기술 시스템의 필요성 시스템의 목표 제약 조건 시스템의 제공 기능 및 우선 순위 사용자의 특징 개발, 운용, 유지보수 환경 개발 모형

타당성 조사 경제적 타당성 기술적 타당성(요구되는 기능/성능의 제공 가능성) 법적 타당성 투자 효율성 시장성 사례 및 실패 사례 연구 모의 실험 프로토타이핑 법적 타당성 사용 도구들의 법적 권한 시장, 관행들에 대한 조사

일정 계획: 작업 순서 개발 프로세스를 이루는 소작업(activity)들을 파악하고 그 순서와 일정을 정하는 작업 작업분해: Work Breakdown Structure 작성 작업간의 상호 의존 관계: CPM 네트워크 작성 CPM 네트워크의 각 작업 소요 시간을 정함 CPM 네트워크로부터 최소 소요 기간을 구함 소요 MM, 기간 산정: SW 규모 추정 방법 이용 CPM 네트워크와 비교 후 수정 확정된 일정을 간트 차트(Gantt Chart)로 그림 일정 예측 자료 저장

일정 계획 : 작업 분해 Work Breakdown Structure(WBS) 프로젝트 완성에 필요한 모든 일을 계층적 구조로 표현 단말 노드들은 전체 프로젝트의 자원 예측의 기초 자료 컴파일러 개발 프로젝트 사용자 지침서 작성 분석* 설계 테스트 * R1:목표정의 R2:제약사항 정의 R3:사용자 면담 R4:요구정리 R5:DFD 작성 스캐너 파서 코드 생성기

일정 계획 : CPM 네트워크 CPM 소작업 리스트

일정 계획 : CPM 네트워크(계속) 임계 경로(critical path) 15 15 I C 8 M1 5 A M6 F M4 M3 7 20 15 K G S B M7 M2 10 15 M8 E J 10 25 D 10 H L M5 X 임계 경로(critical path) S-A-M1-C-M4-I-M6-K-M8-L-X 소요기간 55

일정 계획 : 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 절차(intermediate model 기준) 1. 규모 산정(LOC, FP) 2. MM(PM) 산출 Organic 유형 MM = 3.2*(KDSI)**1.05 TDEV=2.5*(PM)**0.38 Semidetached 유형 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 driver 4. 총인건비 = MM * 한 사람당 평균 인건비 5. 총 개발 기간 산출: 시스템 성격에 관계없이 비슷 난이도가 높을수록 신중한 계획 및 실천 6. 평균 투입 인원: MM/TDEV 7. 단계별 MM와 TDEV 산출: 비율에 대한 표 제공

예산 계획 : COCOMO(계속) 예 주의 CAD 시스템 예상 규모: 33360 LOC 보정 macro estimation 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 개 요 2 자원 및 일정 예측 3 조직 구성 및 인력 배치 4 WBS 5 기술관리 방법 6 표준 및 개발 절차 1 개 요 1.1 프로젝트 개요 1.2 프로젝트의 산출물 1.3 정의, 약어 2 자원 및 일정 예측 2.1 자원 가. 인력 나. 비용 2.2 일정 3 조직 구성 및 인력 배치 3.1 조직 구성 3.2 직무 기술 4 WBS 5 기술관리 방법 5.1 변경 관리 5.2 위험 관리 5.3 비용 및 진도 관리 5.4 문제점 해결 방안 6 표준 및 개발 절차 7 검토 회의 7.1 검토회 일정 7.2 검토회 진행 방법 7.3 검토회 후속 조치 8 개발 환경 9 성능 시험 방법 10 문서화 11 유지보수 12 설치, 인수 13 참고문헌 및 부록