13 Planning and Estimation (PERT-CPM) · Gantt Chart PERT/CPM 3 Gantt Chart 4. PERT/CPM...

Post on 29-Sep-2018

269 views 2 download

Transcript of 13 Planning and Estimation (PERT-CPM) · Gantt Chart PERT/CPM 3 Gantt Chart 4. PERT/CPM...

การพฒนาและบรหารโครงการซอฟตแวร1

การบรหารโครงการผลตซอฟตแวร� การบรหารโครงการ (Project management)

� การประยกตใชองคความร ทกษะ เคร/องมอ และเทคนค เพ/อดาเนนกจกรรมตามความตองการของโครงการใหบรรลวตถประสงคท/กาหนดไว

� วงจรชวตของโครงการโครงการทกประเภท จะมท ;งหมด 4 ระยะ ไดแก� ระยะเร/มตนโครงการ (Project Initiation)� ระยะวางแผนโครงการ (Project Planning)� ระยะดาเนนโครงการ (Project Execution)� ระยะปดโครงการ (Project Closing)

2

การบรหารโครงการผลตซอฟตแวร

� การจดตารางงานโครงการ

�Gantt Chart�PERT/CPM

3

Gantt Chart4

PERT/CPM

� มการแสดงงานในลกษณะของ Node และความเก�ยวเน�อง (Dependency) ของงานแตละอนท�เกดข*นอยางชดเจน

� จดเดนของ PERT/CRM คอ การคานวณหาเสนทางวกฤตในการดาเนนกจกรรม ทาใหผบรหารโครงการคานวณหาเวลาได

5

PERT/CPM

� PERT = Program Evaluation and Review

Technique

� CPM = Critical Path Method

เปนเทคนคการวเคราะหเชงปรมาณสองประเภทท�ไดรบความนยมอยางมาก ในการชวยผบรหารการวางแผน จดทาตารางตรวจสอบ ตดตาม และควบคมโครงการขนาดใหญ และซบซอน

6

� PERT ไดรบการพฒนาข0 นมาในปค.ศ.1958 โดยกองทพเรอสหรฐอเมรกาเพ�อใชในการวางแผนและควบคมโครงการสรางขปนาวธโปลารส เพราะโครงการน0 เก�ยวของกบการประสานงานกบผรบเหมาตามสญญาตางๆจานวนมาก

� CPM ไดรบการพฒนาข0 นมาในเวลาใกลเคยงกน ประมาณปค.ศ.1957 โดย J.E. Kelly ของ บรษท Remington Rand

จากดและ M.R.Walker ของ บรษท du Pont จากด เพ�อชวยในการกอสรางและงานบารงรกษาโรงงานเคมของ du Pont

7

โครงสรางของ PERT & CPM

� PERT & CPM ข0นตอนการสรางเหมอนกนคอ � ข0นท�1.กาหนดโครงการ และกจกรรมหรองานท�มระดบนยสาคญมากของ

โครงการน0น

� ข0นท�2.สรางความสมพนธระหวางกจกรรมแลวตดสนใจวากจกรรมใดตองทากอนและทาตอจากกจกรรมอ�น

� ข0นท�3.เขยนขายงาน(network)เช�อมตอกจกรรมเหลาน0นท0งหมด

8

โครงสรางของ PERT & CPM (ตอ)

� ข0นท�4.กาหนดเวลาและ/หรอประมาณคาตนทน ของแตละกจกรรม

� ข0นท�5.คานวณหาเสนทางท�ใชเวลานานท�สด ในการผานขายงานน0น และเรยกเสนทางน0นวา เสนทางวกฤต (Critical Path)

� ข0นท�6.ใชขายงานชวยในการวางแผนจดทาตาราง ตดตามตรวจสอบ และควบคมโครงการน0น

9

� การหาเสนทางวกฤตเปนสวนท�สาคญมากของการควบคมโครงการ กจกรรมบนเสนทางวกฤตน0นเปนงานท�จะทาชากวากาหนดไมได เพราะจะทาใหเวลาโครงการน0นลาชาตามไปดวย ผบรหารจะมความยดหยนไดโดยการระบหากจกรรมไมวกฤตออกมา แลวทบทวนการวางแผน ทบทวนตาราง และทาการจดสรรทรพยากรโครงการใหม เชน ทางการเงนหรอบคลากร

� ถงแมวา PERT & CPM จะคลายกนในวธพ0 นฐานกตาม แตจะมความแตกตางกนในวธการประมาณคาเวลากจกรรม

10

� สาหรบทกกจกรรมของ PERT น0น จะมประมาณคาเวลาสามคา คอ เวลามองโลกแงด เวลานาจะเปนมากท�สด และเวลามองโลกแงราย จากน0นจงหาเวลาคาดคะเนของกจกรรมและความแปรปรวนเวลากจกรรม ดงน0น PERT จงเปนเทคนคเชงความนาจะเปนท�(probabilistic approach) จะยอมใหคานวณหาความนาจะเปนท�โครงการจะสาเรจตามเวลาท�กาหนดไวได

11

� สาหรบ CPM เปนเทคนคเชงการกาหนด(deterministic

approach) โดยมประมาณเวลาสาหรบแตละกจกรรมสองคาไดแก� เวลาปกต(normal time) คอ เวลาท�จะทากจกรรมน0นใหสาเรจไดภายใต

สภาวะปกต

� เวลาเรงรด (crash time) คอเวลาส0นท�สดท�จะทาใหกจกรรมน0นสาเรจไดโดยการเพ�มทรพยากรและเงนทน

12

ตวอยางการใชงาน PERT&CPM

� การเขยนขายงาน(network)

ขายงานคอหวใจสาคญของการศกษาท0ง PERT & CPM ขายงานใชลกศร แทน กจกรรมท�ตองการเวลาและทรพยากรและใช วงกลม O แทนจดเร�มตนและส0 นสดของกจกรรมและบนลกศรเราจะเขยนช�อกจกรรมและเวลากจกรรมกากบไว

13

� ในการเขยนขายงานบางคร0งเพ�อใหขายงานเปนจรงไดเราจะใช กจกรรมดมม(dummy activity)ชวยและกาหนดใหเวลาของกจกรรมดมมเปนศนย กจกรรมดมมแทนดวยเสนประ

14

� ตวอยางคาแนะนาการเขยนขายงาน กจกรรม A ใชเวลา 3 สปดาห15

� กจกรรม B และ C จะทาไดกตอเม�อ A ทาเสรจแลว16

� กจกรรม D จะทาได กตอเม�อ C ทาเสรจแลวและ E จะทาไดเม�อ Dและ C ทาเสรจแลว

17

� กจกรรม D จะทาได กตอเม�อ B ทาเสรจแลวและ E จะทาไดเม�อ C

และ D ทาเสรจแลว

18

� กจกรรม D จะทาได กตอเม�อ B และ C ทาเสรจแลว สาหรบ E น0น C

เสรจแลวเทาน0น

19

� กจกรรม D จะทาได กตอเม�อ Bทาเสรจแลว สาหรบ E น0น B และ C

เสรจแลวเทาน0น

20

� กจกรรม D จะทาได กตอเม�อ B และ C ทาเสรจ แลว� แบบน0 ผดหามเขยน

21

� กจกรรม D จะทาได กตอเม�อ B และ C ทาเสรจแลว� เขยนแบบน0 ถกตอง

22

� ตวอยางท� 1 โครงการหน�งประกอบดวยกจกรรม เวลากจกรรม ดงตอไปน� จงเขยนขายงาน

23

� เร�มท�กจกรรม A

� กจกรรม B และCทาตอจาก A

24

� DและE ทาตอจาก B25

� F ทาตอจาก C26

� G ทาตอจาก D27

� ปรบ EและF ใหส0 นสดท�จดเดยวกน เพ�อเร�มตน H28

� ไมมกจกรรมอก ใหปรบ GและHใหส0 นสดท�จดเดยวกน เพ�อเปนจดส0 นสดโครงการ

29

การกาหนดหาเวลาโครงการและเสนทางวกฤต

� ข0นท�1.บนขายงานใหคานวณหาเวลา ES และ EFของแตละกจกรรม� ES คอ Earliest Start Time (เวลาเร�มตนเรวท�สด) หมายถง เวลาเรว

ท�สดท�เราจะ ทากจกรรมน0นได เม�อกจกรรมทากอนทาสาเรจแลว

� EF คอ Earliest Finish Time (เวลาเสรจเรวท�สด) หมายถง เวลาเรวท�สดท�กจกรรมน0นจะเสรจเม�อเร�มตนท�เวลา ES และ กจกรรมน0นใชเวลา t

30

การกาหนดหาเวลาโครงการและเสนทางวกฤต (ตอ)

� การคานวณเวลา ES และ EF น0นคานวณจากซายไปขวา เร�มจากจดเร�มตนขายงานไปส0 นสดท�จดสดทายของขายงาน โดยท�เวลาตรงหวลกศรคอ EF จากน0นใหบนทกเวลาท�คานวณไดลง ตารางคานวณในชอง ES และ EF ตามลาดบ เวลาโครงการคอ เวลา EF ท�จดปลายโครงการ ถามเวลา EF หลายคาใหใชคาท�มากท�สด

31

ตวอยางท� 2

� ตวอยางท� 2 จงคานวณเวลา ESและEFของตวอยางท� 132

� ตวอยางท� 2 จงคานวณเวลา ESและEFของตวอยางท� 1(ตอ)33 34

35 36

37 38

� ข0นท� 2.บนขายงานใหคานวณหาเวลา LS และ LF ของแตละกจกรรม เม�อ� LS คอ Latest Start Time (เวลาเร�มตนชาท�สด) หมายถง เวลาชาท�สด

ท�เราจะ ทากจกรรมน0นได โดยไมทาใหเวลาโครงการท�ไดจาก (1) ลาชาออกไป

� LF คอ Latest Finish Time (เวลาเสรจชาท�สด) หมายถง เวลาชาท�สดท�กจกรรมน0นจะเสรจโดยไมทาใหโตรงการน0นลาชาออกไปกวากาหนด

39

� การคานวณเวลา LS และ LF น0นคานวณจากขวาไปซาย เร�มจากจดสดทายตนขายงาน ท�เวลาโครงการ แลวไปส0 นสดท�จดเร�มตนของขายงาน โดยท�เวลาตรงหวลกศรคอ LF จากน0น ใหบนทกเวลาท�คานวณไดลง ตารางคานวณในชอง LSและ LF ตามลาดบ

40

ตวอยางท� 3

� ตวอยางท� 3 จงคานวณเวลา ESและEFของตวอยางท� 141

� ตวอยางท� 3 จงคานวณเวลา LSและLFของตวอยางท� 142

43 44

45 46

� ข0นท�3.คานวณเวลา slack หมายถงเวลาวางท�กจกรรมน0นลาชาไดโดยจะไมทาใหโครงการน0นลาชากวากาหนดกจกรรมท�มเวลา slack เปนศนยหมายถง กจกรรมวกฤต (critical path)

47

� จากน0นใหระบกจกรรมวกฤตท0งหมดออกมาจะทาใหไดเสนทางวกฤตของโครงการ เวลาของเสนทางวกฤตจะเปนเวลาท�ยาวท�สดเม�อเทยบกบเสนทางอ�นบนโครงการน0น� เวลาเสนทางวกฤตเทากบเวลาโครงการ ถากจกรรมใดบนเสนทางวกฤตทา

ไมเสรจตามท�ระบไว จะมผลทาใหโครงการน0นลาชาออกไป

� slack = LS – ES หรอ slack = LF - EF

48

49 50

51

การกาหนดหาเวลาคาดคะเนและความนาจะเปนท�โครงการจะสาเรจของ PERT� เวลาแตละกจกรรมของ PERT น0นมสามคา คอ

� เวลามองโลกแงด(Optimistic time, a) คอ เวลานอยสดท�จะทากจกรรมน0นสาเสรจได เม�อทกส�งทกอยางไมมปญหาโอกาสท�จะเกดเวลาน0 ได มคานอยมาก ประมาณ 1/100

� เวลานาจะเปนมากท�สด(Most likely time, m) คอ เวลาท�นาจะเปนไปไดท�กจกรรมน0นจะเสรจ เม�อทากจกรรมแลวพบปญหาบางไมพบบาง

� เวลามองโลกแงราย(Pessimistic time, b) คอ เวลาชาท�สดท�กจกรรมน0นจะสาเรจได เม�อทกส�งทกอยางมปญหาแตมโอกาสเกดนอยมากเชนเดยวกบเวลา a

52

53 54

55

� ตวอยางท� 4

� โครงการตดต0งระบบไฟฟาใหกบอาคารขนาดสง 30 ช0น ประกอบดวยกจกรรมและเวลากจกรรมตอไปน0

56

57 58

59 60

61 62

63

การประมาณการซอฟตแวร (Software Estimation)

� การประมาณการซอฟตแวร เปนสวนท�สาคญในการวางแผนงาน เน�องจากแผนงานน *นจะอยบนพ*นฐานของส�งท�ตองการทาการจดสรางหรอพฒนา โดยในสวนของซอฟตแวรน *นมมมองหลกท�มองถง คอเร�องของขนาด (Size) คาใชจาย (Cost) บคลากรท�ใชในการพฒนา (Effort)

64

Size Estimation

� ส�งแรกท�จะตองทากอนการเร�มตนการประมาณการ คอ การวด แยกลกษณะการวดออกเปน 2 เชง คอ การวดในเชงปรมาณ (Software Quantitative) และการวดเชงคณภาพ (Software Qualitative)

65

Size Estimation

� กรรมวธท�ใชในการวดขนาดของซอฟตแวร ม 2 ลกษณะ คอ

�Line of Code (LOC) Count

�Function Point (FP)

66

Line of Code (LOC) Count

� นบเฉพาะบรรทดท�มการจดสงเปน Source Code ไมนบรวมสวนของการทดสอบ (Test Driver) หรอสวนงานท�รองรบการทางานอ�นๆ

� นบเฉพาะบรรทดท�พฒนาโดยบคลากร ไมนบรวมส�งท�ระบบงานสามารถ Generate ไดอตโนมต

� ถอวาหน�งคาส �ง คอ หน�ง Line of Code <LOC>

� นบสวนของการประกาศคา (Declaration) เปนสวนของ Instruction

� ไมนบสวนของการขยายความ หรอ Comment

67

Function Point (FP)

� ปจจบนการนบขนาดของโปรแกรมดวยการนบบรรทดน *น ไมสามารถใหผลการวดในเชงผลสมฤทธ cของโปรแกรมไดอยางชดเจน การนาวธการนบดวยฟงกช �นพอยตเขามาใชน *น จงไดรบความสนใจ

� การวดดวยฟงกชนพอยต จะมงเนนท�การวดดวยฟงกชน หรอการวดโดยผานมมมองความตองการของซอฟตแวร

� Allan Albrecht [1] John Gaffney, Jr [2] ไดออกแบบ FPs ท�ใชวดฟงกช �นพอยต FPs เปนผลรวมของขนาด ขอมลเขา, ขอมลออก, ขอมลความตองการ, แฟมขอมล และสวนของโปรแกรมท�ใชในการตดตอกบลกคา

68

Function Point (FP)� กระบวนการนบฟงกชนพอยต มลกษณะดงน;

ข ;นท/ 1 นา Requirement ท/เกบรวบรวมไวมาทาการแบงฟงกชนพอยต

ข ;นท/ 2 ประเมนความซบซอนของฟงกชน

ข ;นท/ 3 เปรยบเทยบความซบซอน เพ/อใหไดระดบความซบซอน เพ/อคานวณฟงกชนพอยตท/ยงไมไดปรบคา (Unadjusted Function Point : UFP)

ข ;นท/ 4 คานวณคาตวแปรปรบคา (Value Adjustment Factor) ตามลกษณะของโครงการ

ข ;นท/ 5 คานวณจานวนฟงกชนพอยตท/ผานการปรบคา (Adjusted Function Point : AFP)

ข ;นท/ 6 ฟงกชนพอยตท/ผานการปรบคา สามารถนาไปคานวณเปน LOC ได

69

Function Point (FP)

� ประเภทของฟงกชนพอยต สามารถแบงได 5 ลกษณะหลก คอ

�External Input (EI)

�External Output (EO)

�External Inquiry (EQ)

� Internal Logical Files (ILF)

�External Interface Files (EIF)

70

Function Point (FP)71

Function Point (FP)

� แตละฟงกชนพอยตน *น มองคประกอบตางๆ ในฟงกชนแตละประเภทซ�งจะแตกตางกนได เชน �การเก�ยวของกบองคประกอบขอมล (Data Element : DET)

� เปนขอมล เปรยบเสมอนฟลดขอมลท�สนใจในแตละฟลด� เรคคอรคขอมล (Record Element : RET)

�กลมของขอมล หรอกลมยอยของ DET หรอการนบประเภทของเรคคอรดขอมลท�เก�ยวของสมพนธกบฟงกชนท�สนใจ

�ประเภทไฟล (File Type of Record : FTR)

72

คานวณ Function Point (FP)

จานวนของฟงกชน หาไดจาก FP ท�ยงไมไดถกปรบแตง (Unadjusted Function Point : UFP) คณกบคาปจจยคณลกษณะของระบบ (Value Adjustment Factor : VAF)

FP = UFP x VAF

VAF = 0.65 + [0.01 x Total DI]

DI : Degree of Influence

73

UAF

� จะเหนวาการกาหนดฟงกชนโดยแยกออกเปน 5 ประเภทหลก ตามลกษณะของการทางานน *น จะชวยทาใหการประเมนลกษณะความตองการของซอฟตแวร การพจารณาองคประกอบท�เก�ยวของกบประเภทของแตละฟงกชนพอยตน *น จะทาใหสามารถพจารณาความซบซอนของฟงกชนพอยตไดอยางเปนรปธรรมมากข*น โดยพจารณาจากตาราง

74

UAF75

UAF

� จากตารางขางบน จะไดระดบความซบซอนของการทางาน จากน *นนาคาความซบซอนท�เปนคาเฉล�ยมาทาการคานวณคา Complexity weight ตามตารางน*

76

VAF

การประเมน VAF น *นจะประเมนคาของ 14 ปจจย ดงน*

1. การตดตอส�อสารขอมล (Data Communication)

2. การประมวลผลขอมลแบบกระจาย (Distributed Data Processing)

3. ประสทธภาพของระบบ (Performance)

4. การแกไขคาของระบบ (Configuration)

5. ปรมาณรายการขอมล (Transaction)

6. การปอนขอมลเขาสระบบแบบออนไลน (Online Data Entry)

77

VAF

7. ประสทธภาพการใชงานของผใช (End user Efficiency)

8. การปรบปรงขอมลแบบออนไลน (Online Update)

9. ความซบซอนของการประมวลผล (Complex Processing)

10. การนาไปใชซ*าได (Reusability)

11. ความงายในการตดต *ง (Installation Ease)

12. ความงายในการดาเนนงาน (Operational Ease)

13. การใชงานไดหลายไซต (Multiple Sites)

78

VAF

14. รองรบการเปล�ยนแปลงความตองการของผใช (Change Requirement)โดยการประเมนน *น แบงออกเปน 5 ระดบตาม Degree of Influence (DI)0 Not Present ไมมผลเก�ยวของกบตวแปรน *นๆ1 Incidental Influence มความเก�ยวของกบตวแปรน *นๆ โดยมเกดข*นใน

ระบบงาน ไมกระทบตอการทางาน

2 Moderate Influence มความเก�ยวของกบตวแปรน *นๆ โดยมเกดข*นในระบบงาน กระทบตอการทางาน โดยทาใหการทางานซบซอนข*นบางเลกนอย

79

VAF

3 Average Influence มความเก/ยวของกบตวแปรน;นๆ โดยมเกดข;นในระบบงาน กระทบตอการทางาน โดยทาใหการทางานซบซอนข;น

4 Significant Influence มความเก/ยวของกบตวแปรน;นๆ โดยมเกดข;นในระบบงาน กระทบตอการทางาน โดยทาใหการทางานซบซอนคอนขางมาก

5 Strong Influence มความเก/ยวของกบตวแปรน;นๆ โดยมเกดข;นในระบบงาน กระทบตอการทางาน โดยทาใหการทางานซบซอนมาก

80

ตารางเปรยบเทยบคา FP เพ�อแปลงไปเปน LOC81

ตวอยางการคานวณคาฟงกชนพอยต

� จาก Use case Diagram ดงรป จะทาการแยกประเภทของ use case ตามฟงกชนพอยต

82

ตวอยาง83

ตวอยาง

� ทาการเปรยบเทยบคาของ Value Adjustment Factors : VAF

84

ตวอยาง

VAF = 0.65 + [0.01 x 17] = 0.82

FP = UFP x VAF= 23 x 0.82= 18.86 FP

ถาหากจดทาซอฟตแวรโดยใชภาษาจาวา จะไดคา LOC

= 18.86 x 53 = 999.58 ~1000 LOC

85

การประมาณการบคลากร

� Productivity : ประสทธผลในการผลตงาน

Productivity = Output Size (LOC or Function Point)

Effort (Man-Month)

86

COCOMO

� Boehm B.W. ไดพฒนา COCOMO Model (Constructive Cost Model) เพ�อวด Effort ในการพฒนาซอฟตแวรท�คดเปนหนวย คน-เดอน (person-month) ท�ประมาณจากขนาดของโปรแกรม โดยนบจานวนบรรทดของโปรแกรมตนฉบบเปนหลก

� แบบจาลอง COCOMO ถกพฒนาเปนเวอรช �น 2 คอ COCOMO II แบงแบบจาลองออกเปน 3 ชนด เพ�อใชประมาณการในระยะตางๆ ของกระบวนการพฒนาซอฟตแวร

87

COCOMO II

� Application Composition Model � เหมาะกบการผลตซอฟตแวรดวยแนวทางคอมโพเนนท โดยแตละคอมโพเนนทสามารถอธบาย

แทนดวย Object Point ได ขนาดของซอฟตแวรนบเปน Object Point

� Early Design Model� ใชประมาณการในระยะกอนการออกแบบซอฟตแวร แตหลงจากการกาหนดความความตองการ

แลว ใชคา FP แทนขนาดของซอฟตแวร

� Post-Architecture Model � ใชประมาณการในระยะหลงการออกแบบซอฟตแวร เปนการประมาณการอกคร ;งเพ/อความถกตอง

ของคาประมาณการท/ได

88

COCOMO II

� โมเดลการคานวณของ COCOMO II

PM คอ Effort มหนวยเปน Person-Months (PM)

A คาคงท�ท�ไดจากการรวบรวมขอมลใน 161 โครงการ โดย A = 2.94E คอ Economics of Scale ซ�งเปนผลท�ขนาดของซอฟตแวรสมพนธกบขนาดของโครงการ โดย E = B + 0.01 * ∑ Scale

FactorsB Scaling Base-exponent สาหรบคานวณ EffortEM คอ Effort Multipliers เปนคาท�ไดจากการคานวณ Cost Driver ท�เก�ยวกบโครงการ ท�สงผลตอ Effort ในการพฒนาซอฟตแวรPMauto คาของ Effort ท�ไดจากการแปลงอตโนมต ซ�งจะเกดเม�อมการ Reuse Code โดยคาน *นจะไมมผลตอการพฒนา แต

เน�องจากมผลตอคาใชจาย ถาเปนการพฒนาซอฟตแวรใหม คา PMauto จะเปน 0

PM = A x SizeE x EM + PMauto

89

COCOMO II

� ระยะเวลาท(ใชในการพฒนาซอฟตแวรมสตรดงน�

TDEV = [ C x (PM)F ] x SCED%

100

C คอ Schedule Coefficient ท�ใชมาคานวณ โดย C = 3.67F คอ Scaling Exponent สาหรบระยะเวลา โดย F = [ D + 0.2 (E-B) ]D Scaling Base-exponent สาหรบ ระยะเวลา โดย D = 0.28SCED คอ ความรบเรงของเวลาเม�อเปรยบเทยบกบการพฒนาปกต

90