1.1k likes | 1.24k Views
การพัฒนาและบริหารโครงการ (ซอฟต์แวร์). 1. วิศวกรรมระบบ (System Engineering) การบริหารโครงการผลิตซอฟต์แวร์ การประมาณการซอฟต์แวร์ ( Software Estimation ). วิศวกรรมระบบ (System Engineering). 2. วิศวกรรมระบบ ไม่ได้มุ่งเน้นในเรื่องของซอฟต์แวร์อย่างเดียว แต่ให้ความสำคัญกับส่วนประกอบอื่นๆ ด้วย
E N D
การพัฒนาและบริหารโครงการ (ซอฟต์แวร์) 1 วิศวกรรมระบบ (System Engineering) การบริหารโครงการผลิตซอฟต์แวร์ การประมาณการซอฟต์แวร์ (Software Estimation)
วิศวกรรมระบบ (System Engineering) 2 • วิศวกรรมระบบ ไม่ได้มุ่งเน้นในเรื่องของซอฟต์แวร์อย่างเดียว แต่ให้ความสำคัญกับส่วนประกอบอื่นๆ ด้วย • วิศวกรรมระบบ หมายถึง กระบวนการศึกษาและวิเคราะห์ของระบบที่มีความสลับซับซ้อน เพื่อสนับสนุนการทำงานในส่วนของวิศวกรรมซอฟต์แวร์ กิจกรรมของวิศวกรรมระบบ จะถูกดำเนินการไปพร้อมๆ กับกิจกรรมของวิศวกรรมซอฟต์แวร์
วิศวกรรมระบบ (System Engineering) 3 กิจกรรมของวิศวกรรมระบบ มีดังนี้ • กำหนดวัตถุประสงค์ของระบบ • กำหนดขอบเขตของระบบ • แบ่งระบบออกเป็นส่วนๆ ตามฟังก์ชันงานหรือคุณสมบัติระบบ • พิจารณาความสัมพันธ์ของส่วนประกอบต่างๆ ที่เกี่ยวข้องทั้งหมด • กำหนดความสัมพันธ์ของปัจจัยนำเข้า ประมวลผล และผลลัพธ์
วิศวกรรมระบบ (System Engineering) 4 • พิจารณาปัจจัยที่มีส่วนเกี่ยวข้องในระบบ • กำหนดความต้องการในส่วนของการดำเนินการและฟังก์ชันงานทั้งระบบ • สร้างแบบจำลอง เพื่อใช้วิเคราะห์และพัฒนาให้สอดคล้องกับแบบจำลองซอฟต์แวร์ที่สร้างขึ้น • นำเสนอและแลกเปลี่ยนข้อคิดเห็นกับผู้ใช้ระบบ
วิศวกรรมระบบ (System Engineering) 5 กระบวนการวิศวกรรระบบ ประกอบไปด้วยขั้นตอน 7 เฟส ดังนี้ • การกำหนดความต้องการ (Requirement Definition) • การออกแบบระบบ (System Design) • การพัฒนาระบบย่อย (Sub-system Development) • การผนวกรวมระบบ (System Integration) • การติดตั้งระบบ (System Installation) • การเปลี่ยนแปลงระบบ (System Evolution) • การปลดระวางระบบ (System Decommission)
วิศวกรรมระบบ (System Engineering) 7 • การกำหนดความต้องการ (Requirement Definition) • เพื่อกำหนดนิยามความต้องการของระบบให้ชัดเจน กำหนดหน้าที่ว่าระบบควรจะทำอะไรได้บ้าง เป็นเพียงข้อกำหนดเบื้องต้น • การออกแบบระบบ (System Design) • เป็นการกำหนดรายละเอียดของฟังก์ชันในแต่ละส่วนประกอบของระบบ มีดังนี้ • แบ่งส่วนความต้องการ • กำหนดระบบย่อย • กำหนดความต้องการในแต่ละระบบย่อย • กำหนดฟังก์ชันของแต่ละระบบย่อย • กำหนดส่วนประสานของระบบย่อย
วิศวกรรมระบบ (System Engineering) 8 • การออกแบบระบบ (System Design)
วิศวกรรมระบบ (System Engineering) 9 • การพัฒนาระบบย่อย (Sub-system Development) • เป็นการนำเอาระบบย่อยที่ถูกกำหนดรายละเอียดไว้ในระยะออกแบบ มาสร้างด้วยกระบวนการที่เหมาะสม • การผนวกรวมระบบ (System Integration) • ระบบย่อยที่พัฒนาเสร็จแล้ว จะนำมาผนวกรวมเข้าด้วยกันจนเป็นระบบที่สมบูรณ์ หลังจากรวมระบบแล้ว ทีมงานต้องทำการทดสอบการทำงานของระบบอีกครั้ง
วิศวกรรมระบบ (System Engineering) 10 • การติดตั้งระบบ (System Installation) • นำระบบที่พัฒนาเรียบร้อยแล้วมาติดตั้ง เพื่อใช้งาน • การเปลี่ยนแปลงระบบ (System Evolution) • ในช่วงการใช้งานระบบ อาจเกิดการเปลี่ยนแปลงต่างๆ อาจต้องการการแก้ไขข้อผิดพลาดต่างๆ • การปลดระวางระบบ (System Decommission) • หมายถึง การเลิกใช้งานหลังจากพบว่าระบบไม่สามารถใช้ประโยชน์ได้อีกต่อไป
การบริหารโครงการผลิตซอฟต์แวร์การบริหารโครงการผลิตซอฟต์แวร์ 11 • การบริหารโครงการ (Project management) • การประยุกต์ใช้องค์ความรู้ ทักษะ เครื่องมือ และเทคนิค เพื่อดำเนินกิจกรรมตามความต้องการของโครงการให้บรรลุวัตถุประสงค์ที่กำหนดไว้ • วงจรชีวิตของโครงการ โครงการทุกประเภท จะมีทั้งหมด 4 ระยะ ได้แก่ • ระยะเริ่มต้นโครงการ (Project Initiation) • ระยะวางแผนโครงการ (Project Planning) • ระยะดำเนินโครงการ (Project Execution) • ระยะปิดโครงการ (Project Closing)
การบริหารโครงการผลิตซอฟต์แวร์การบริหารโครงการผลิตซอฟต์แวร์ 12 • การจัดตารางงานโครงการ • Gantt Chart • PERT/CPM
Gantt Chart 13
PERT/CPM 14 • มีการแสดงงานในลักษณะของ Node และความเกี่ยวเนื่อง (Dependency) ของงานแต่ละอันที่เกิดขึ้นอย่างชัดเจน • จุดเด่นของ PERT/CRM คือ การคำนวณหาเส้นทางวิกฤติในการดำเนินกิจกรรม ทำให้ผู้บริหารโครงการคำนวณหาเวลาได้
PERT/CPM 15 • PERT = Program Evaluation and Review Technique • CPM = Critical Path Method เป็นเทคนิคการวิเคราะห์เชิงปริมาณสองประเภทที่ได้รับความนิยมอย่างมาก ในการช่วยผู้บริหารการวางแผน จัดทำตารางตรวจสอบ ติดตาม และควบคุมโครงการขนาดใหญ่ และซับซ้อน
16 • PERT ได้รับการพัฒนาขึ้นมาในปีค.ศ.1958 โดยกองทัพเรือสหรัฐอเมริกาเพื่อใช้ในการวางแผนและควบคุมโครงการสร้างขีปนาวุธโปลารีส เพราะโครงการนี้เกี่ยวข้องกับการประสานงานกับผู้รับเหมาตามสัญญาต่างๆจำนวนมาก • CPM ได้รับการพัฒนาขึ้นมาในเวลาใกล้เคียงกัน ประมาณปีค.ศ.1957 โดย J.E. Kelly ของ บริษัท Remington Rand จำกัดและ M.R.Walker ของ บริษัท du Pont จำกัด เพื่อช่วยในการก่อสร้างและงานบำรุงรักษาโรงงานเคมีของ du Pont
โครงสร้างของ PERT & CPM 17 • PERT & CPM ขั้นตอนการสร้างเหมือนกันคือ • ขั้นที่1.กำหนดโครงการ และกิจกรรมหรืองานที่มีระดับนัยสำคัญมากของโครงการนั้น • ขั้นที่2.สร้างความสัมพันธ์ระหว่างกิจกรรมแล้วตัดสินใจว่ากิจกรรมใดต้องทำก่อนและทำต่อจากกิจกรรมอื่น • ขั้นที่3.เขียนข่ายงาน(network)เชื่อมต่อกิจกรรมเหล่านั้นทั้งหมด
โครงสร้างของ PERT & CPM (ต่อ) 18 • ขั้นที่4.กำหนดเวลาและ/หรือประมาณค่าต้นทุน ของแต่ละกิจกรรม • ขั้นที่5.คำนวณหาเส้นทางที่ใช้เวลานานที่สุด ในการผ่านข่ายงานนั้น และเรียกเส้นทางนั้นว่า เส้นทางวิกฤต (Critical Path) • ขั้นที่6.ใช้ข่ายงานช่วยในการวางแผนจัดทำตาราง ติดตามตรวจสอบ และควบคุมโครงการนั้น
19 • การหาเส้นทางวิกฤตเป็นส่วนที่สำคัญมากของการควบคุมโครงการ กิจกรรมบนเส้นทางวิกฤตนั้นเป็นงานที่จะทำช้ากว่ากำหนดไม่ได้ เพราะจะทำให้เวลาโครงการนั้นล่าช้าตามไปด้วย ผู้บริหารจะมีความยืดหยุ่นได้โดยการระบุหากิจกรรมไม่วิกฤตออกมา แล้วทบทวนการวางแผน ทบทวนตาราง และทำการจัดสรรทรัพยากรโครงการใหม่ เช่น ทางการเงินหรือบุคลากร • ถึงแม้ว่า PERT & CPM จะคล้ายกันในวิธีพื้นฐานก็ตาม แต่จะมีความแตกต่างกันในวิธีการประมาณค่าเวลากิจกรรม
20 • สำหรับทุกกิจกรรมของ PERT นั้น จะมีประมาณค่าเวลาสามค่า คือ เวลามองโลกแง่ดี เวลาน่าจะเป็นมากที่สุด และเวลามองโลกแง่ร้าย จากนั้นจึงหาเวลาคาดคะเนของกิจกรรมและความแปรปรวนเวลากิจกรรม ดังนั้น PERT จึงเป็นเทคนิคเชิงความน่าจะเป็นที่(probabilistic approach) จะยอมให้คำนวณหาความน่าจะเป็นที่โครงการจะสำเร็จตามเวลาที่กำหนดไว้ได้
21 • สำหรับ CPM เป็นเทคนิคเชิงการกำหนด(deterministic approach) โดยมีประมาณเวลาสำหรับแต่ละกิจกรรมสองค่าได้แก่ • เวลาปกติ(normal time) คือ เวลาที่จะทำกิจกรรมนั้นให้สำเร็จได้ภายใต้สภาวะปกติ • เวลาเร่งรัด (crash time) คือเวลาสั้นที่สุดที่จะทำให้กิจกรรมนั้นสำเร็จได้โดยการเพิ่มทรัพยากรและเงินทุน
ตัวอย่างการใช้งาน PERT&CPM 22 • การเขียนข่ายงาน(network)ข่ายงานคือหัวใจสำคัญของการศึกษาทั้ง PERT & CPM ข่ายงานใช้ลูกศร แทน กิจกรรมที่ต้องการเวลาและทรัพยากรและใช้ วงกลม O แทนจุดเริ่มต้นและสิ้นสุดของกิจกรรมและบนลูกศรเราจะเขียนชื่อกิจกรรมและเวลากิจกรรมกำกับไว้
23 • ในการเขียนข่ายงานบางครั้งเพื่อให้ข่ายงานเป็นจริงได้เราจะใช้ กิจกรรมดัมมี(dummy activity)ช่วยและกำหนดให้เวลาของกิจกรรมดัมมีเป็นศูนย์ กิจกรรมดัมมีแทนด้วยเส้นประ
24 • ตัวอย่างคำแนะนำการเขียนข่ายงาน กิจกรรม A ใช้เวลา 3 สัปดาห์
25 • กิจกรรม B และ C จะทำได้ก็ต่อเมื่อ A ทำเสร็จแล้ว
26 • กิจกรรม D จะทำได้ ก็ต่อเมื่อ C ทำเสร็จแล้วและ E จะทำได้เมื่อ Dและ B ทำเสร็จแล้ว
27 • กิจกรรม D จะทำได้ ก็ต่อเมื่อ B ทำเสร็จแล้วและ E จะทำได้เมื่อ C และ D ทำเสร็จแล้ว
28 • กิจกรรม D จะทำได้ ก็ต่อเมื่อ B และ C ทำเสร็จแล้ว และ E จะทำได้ก็ต่อเมื่อ C เสร็จแล้วเท่านั้น
29 • กิจกรรม D จะทำได้ ก็ต่อเมื่อ Bทำเสร็จแล้ว สำหรับ E นั้น B และ C เสร็จแล้วเท่านั้น
30 • กิจกรรม D จะทำได้ ก็ต่อเมื่อ B และ C ทำเสร็จ แล้ว • แบบนี้ผิดห้ามเขียน
31 • กิจกรรม D จะทำได้ ก็ต่อเมื่อ B และ C ทำเสร็จแล้ว • เขียนแบบนี้ถูกต้อง
32 • ตัวอย่างที่ 1 โครงการหนึ่งประกอบด้วยกิจกรรม เวลากิจกรรม ดังต่อไปนี้ จงเขียนข่ายงาน
33 • เริ่มที่กิจกรรม A • กิจกรรม B และCทำต่อจาก A
34 • DและE ทำต่อจาก B
35 • F ทำต่อจาก C
36 • G ทำต่อจาก D
37 • ปรับ EและF ให้สิ้นสุดที่จุดเดียวกัน เพื่อเริ่มต้น H
38 • ไม่มีกิจกรรมอีก ให้ปรับ GและHให้สิ้นสุดที่จุดเดียวกัน เพื่อเป็นจุดสิ้นสุดโครงการ
การกำหนดหาเวลาโครงการและเส้นทางวิกฤตการกำหนดหาเวลาโครงการและเส้นทางวิกฤต 39 • ขั้นที่1.บนข่ายงานให้คำนวณหาเวลา ES และ EFของแต่ละกิจกรรม • ES คือ Earliest Start Time (เวลาเริ่มต้นเร็วที่สุด) หมายถึง เวลาเร็วที่สุดที่เราจะ ทำกิจกรรมนั้นได้ เมื่อกิจกรรมทำก่อนทำสำเร็จแล้ว • EF คือ Earliest Finish Time (เวลาเสร็จเร็วที่สุด) หมายถึง เวลาเร็วที่สุดที่กิจกรรมนั้นจะเสร็จเมื่อเริ่มต้นที่เวลา ES และ กิจกรรมนั้นใช้เวลา t
การกำหนดหาเวลาโครงการและเส้นทางวิกฤต (ต่อ) 40 • การคำนวณเวลา ES และ EF นั้นคำนวณจากซ้ายไปขวา เริ่มจากจุดเริ่มต้นข่ายงานไปสิ้นสุดที่จุดสุดท้ายของข่ายงาน โดยที่เวลาตรงหัวลูกศรคือ EF จากนั้นให้บันทึกเวลาที่คำนวณได้ลง ตารางคำนวณในช่อง ES และ EF ตามลำดับ เวลาโครงการคือ เวลา EF ที่จุดปลายโครงการ ถ้ามีเวลา EF หลายค่าให้ใช้ค่าที่มากที่สุด
ตัวอย่างที่ 2 41 • ตัวอย่างที่ 2 จงคำนวณเวลา ESและEFของตัวอย่างที่ 1
42 • ตัวอย่างที่ 2 จงคำนวณเวลา ESและEFของตัวอย่างที่ 1(ต่อ)
48 • ขั้นที่ 2.บนข่ายงานให้คำนวณหาเวลา LS และ LF ของแต่ละกิจกรรม เมื่อ • LS คือ Latest Start Time (เวลาเริ่มต้นช้าที่สุด) หมายถึง เวลาช้าที่สุดที่เราจะ ทำกิจกรรมนั้นได้ โดยไม่ทำให้เวลาโครงการที่ได้จาก (1) ล่าช้าออกไป • LF คือ Latest Finish Time (เวลาเสร็จช้าที่สุด) หมายถึง เวลาช้าที่สุดที่กิจกรรมนั้นจะเสร็จโดยไม่ทำให้โตรงการนั้นล่าช้าออกไปกว่ากำหนด
49 • การคำนวณเวลา LS และ LF นั้นคำนวณจากขวาไปซ้าย เริ่มจากจุดสุดท้ายต้นข่ายงาน ที่เวลาโครงการ แล้วไปสิ้นสุดที่จุดเริ่มต้นของข่ายงาน โดยที่เวลาตรงหัวลูกศรคือ LF จากนั้น ให้บันทึกเวลาที่คำนวณได้ลง ตารางคำนวณในช่อง LSและ LF ตามลำดับ
ตัวอย่างที่ 3 50 • ตัวอย่างที่ 3 จงคำนวณเวลา ESและEFของตัวอย่างที่ 1