02 intro to psp
DESCRIPTION
Lecture 2 Introduction to Personal Software ProcessTRANSCRIPT
02 การพฒนาซอฟตแวรสวนบคคล
สงวนลขสทธ 2551 – 2555สรเดช จตประไพกลศาล
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 2
หวขอ
• ทำาไมจงตองปรบปรงกระบวนการ• กระบวนการพฒนาซอฟตแวรสวนบคคล (PSP)• หลกการของ PSP• แนวทางการเรยนร PSP• องคประกอบของ PSP• ประโยชนของ PSP• ปจจยสความสำาเรจของ PSP• สรป
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 3
สงททาทายในการพฒนาซอฟตแวร
• การคาดการณ: ประมาณการวาจะตองใชเวลาทำาเทาไรก อนทจะรวาจะทำาอะไร
• ความไมแน นอน: ขอบเขตของงานเปลยน บคลากรเปลยน สถานการณเปลยน ฯลฯ
• ค ณภาพ: ไมมเวลาพอทจะตรวจทานหรอทดสอบ
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 4
อะไรทำาใหคณดกวา
ทำาไมค ณถงด กว าน กศ กษาปร ญญาตร ป 1?
ส งท ค ณทำาได ด ในระด บบ คคลใชได ก บระด บองค กรหร อไม ?
Source: DAAD Project
ทำาไมองค กรบางแหงถ งท ำาได ด
กว าท อ น?
(ส งมอบงานตามก ำาหนด
งานท ส งมอบม ค ณภาพสง
ม ข อบกพรองน อย)
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 5
สงททาทายสำาหรบมออาชพ
• ทำาอยางไรเราถงจะผลตซอฟตแวรทม ค ณภาพในกำาหนดการท วางแผน ภายใต งบประมาณไดอยางคงเส นคงวา
• ทำาอยางไรเราจงจะสามารถปร บปร งวธปฏบตของเราในปจจบนได
• ทำาอยางไรเราจงจะเผยแพรวธปฏบตของเราสสงคมโดยรวมได
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 6
มออาชพ สามารถทำาตามไดตามสญญา
ผลตงานคณภาพอยางสมำาเสมอ
สญญาในสงทเปนไปได
ใชขอมลในการใหคำาสญญา
ใชขอมลในการจดการคณภาพ
เกบขอมลเกยวกบงานของตน
รวางานคบหนาไปถงไหนแลว
ใชขอมลตดตามความกาวหนา
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 7
กอนการใช PSP
ความตองการ พฒนา ซอฟตแวร
คณภาพ
?
คณภาพ
?
คณภาพ
?
ไมเห น
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 8
กระบวนการระดบบคคลสำาหรบการพฒนาซอฟตแวร (1)
• กระบวนการระดบบคคลสำาหรบการพฒนาซอฟตแวร (Personal Software Process หรอ PSP) คอร ปแบบของการปร บปร งกระบวนการทออกแบบมาเพอใชในระดบบคคลโดยมพนฐานมาจากวธปฏบตสำาหรบพฒนาซอฟตแวรเชงอตสาหกรรม
• PSP เปนกระบวนการระดบบคคลทมวฒภาวะความสามารถระดบ 5 ตามแบบจำาลองวฒภาวะความสามารถ (Capability Maturity Model; CMM)
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 9
กระบวนการระดบบคคลสำาหรบการพฒนาซอฟตแวร (2)
• PSP สามารถใชไดกบเกอบทกงาน เชน– การเขยนโปรแกรม– การจดทำาความตองการ (requirements)
กระบวนการ (process) หรอเอกสาร (document)– การตรวจทาน (review) หรอการทดสอบ (test)– การดแลรกษาระบบ (maintain systems)– การปรบเปลยนระบบซอฟตแวรขนาดใหญ– ฯลฯ
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 10
ประโยชนของ PSPกระบวนการ PSP ทเสถยรจะชวยใหเรา• รจกตวเอง (Self-awareness)
– เขาใจทกษะ ความสามารถ และสมรรถนะของตนเอง– สามารถปรบปรงการทำางานของเราใหดขน
• ตดสนใจจากขอเทจจรง (Fact-based Decision Making)– ใชขอมลในการประมาณการ วางแผน ปรบปรง ฯลฯ– สามารถรบมอกบการเปลยนแปลงไดดขน
• เปนนายของงาน (Ownership & Accountability)– ดแลเอาใจใสแผนททำาขนมาเอง– มนใจวาจะดำาเนนการใหบรรลขอตกลงหรอพนธสญญาตางๆ ได
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 11
จดประสงคของ PSP
• เพอพฒนาทกษะทจำาเปนสำาหรบ– การวางแผนการทำางาน– การตดตามการดำาเนนงานตามแผน– การควบคมคณภาพของการทำางาน– การวด วเคราะห และปรบปรงประสทธภาพในการ
ทำางาน
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 12
กระบวนการทางวศวกรรมเปาหมาย
ขอจำากด
กระบวนการความตองการ
ผลตภณฑบรการ
ทรพยากร
ควบคม
ปรบปรง ตววด
ทมา James W. Moore, The Road Map to Software Engineering: A Standard-Based Guide, IEEE Computer Society Press, 2006
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 13
หลกการของ PSP
คณภาพของ
ซอฟตแวร
ค ณภาพของ
แตละช นส วน
ผ พ ฒนา ซอฟตแวร
กระบวนการพฒนา
ซอฟตแวร
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 14
หลกการของ PSP
• เราตองรบผดชอบตอกระบวนการพฒนาซอฟตแวรของตนเอง
• เราควรทจะวด ตดตาม และวเคราะหการทำางานของเรา
• เราควรทจะเรยนรวาสมรรถนะของเราเปนอยางไร ตางจากทควรจะเปนอยางไร
• เราควรทจะนำาสงทเรยนรมาปรบปรงวธการทำางานของเรา
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 15
แนวทางการเรยนร PSP• เรมจากการสำารวจกระบวนการทำางานของเราใน
ปจจบน• คอยๆ ปรบปรงกระบวนการโดยการเพมทกษะและวธ
การครงละไมมาก• ฝกฝนกระบวนการและวธการเหลาน 2 – 3 ครงเพอให
เกดความคนเคย• รวบรวมและวเคราะหขอมลทเกยวของกบกระบวนการ• นำาผลทไดมาปรบปรงสมรรถนะและกระบวนการทำางาน
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 16
รปแบบการเรยน PSP
• แบบคอยเปนคอยไป– PSP for Engineers I & II– เหมาะกบนสตนกศกษา
• แบบพรอมทำางาน– PSP Fundamentals & PSP Advanced– เหมาะกบผทำางานแลว– พรอมทจะเรม TSP ไดหลง PSP Fundamentals
แตจะไดประโยชนสงสดหลงเรยนร PSP Advanced แลว
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 17
แบบคอยเปนคอยไป
PSP 0กระบวนการในปจจบนตวชวดเบองตน
PSP 0.1มาตรฐานการเขยนโปรแกรมขอเสนอการปรบปรงกระบวนการการวดขนาด
PSP 1การประมาณขนาดรายงานการทดสอบ
PSP 1.1การวางแผนภารกจการวางกำาหนดการ
PSP 2การทบทวน Designการทบทวน Code
PSP 2.1แผนแบบการออกแบบ
PSP 3การใชเปนวฏจกร
TSP (Team Software Process)การสรางทมการจดการทม
ดดแปลงมาจาก SEI
เกบขอมลอางองระดบบคคล
การวางแผนระดบบคคล
การจดการคณภาพระดบบคคล
การพฒนาระบบขนาดใหญ
การทำางานเปนทม
PSP for Engineers I
PSP for Engineers II
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 18
แบบพรอมทำางาน
PSP 0กระบวนการในปจจบนตวชวดเบองตน
PSP 1การวดขนาด มาตรฐานของโคดการประมาณขนาด ขอเสนอการปรบปรงรายงานการทดสอบ กระบวนการ
เกบขอมลอางองระดบบคคล
การประมาณ การวางแผน และการปรบปรงเชงคณภาพ
Adapted from SEI
PSP 2ทบทวน Code วางแผนภารกจและกำาหนดการ
PSP 2.1 + Statist icPROBE A & B
TSP (Team Software Process)การสรางทมการจดการทม
PSP 3การใชเปนวฏจกร
เครองมอทางสถตและการจดการสมรรถนะ
การทำางานเปนทมการพฒนาระบบ
ขนาดใหญ
PSP 2.1แผนแบบการออกแบบการทบทวน Design
PSP Fundamentals
PSP Advanced
การจดการคณภาพและการตดตามโครงการ
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 19
องคประกอบของ PSP
• คมอการปฏบตงาน (Process Script)– คำาบรรยายการใชกระบวนการ
• ตววด (Measure)– ขอมลเชงปรมาณทชวยใหรความเปนไปของงาน
และกระบวนการ• แบบฟอรม (Form)
– เครองมอสำาหรบรวบรวมและเกบรกษาขอมล• มาตรฐาน (Standard)
– แนวทางในการทำางาน
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 20
องคประกอบของ PSP
วางแผน
ออกแบบ
เขยนโปรแกรม
คอมไพล
ทดสอบ
สรปจบ
แบบฟอรม
สรปโครงการ(ตววดตางๆ)
ความตองการ
ซอฟตแวร
คมอการปฏบตงาน
ใชเปนแนวทาง
ดดแปลงมาจาก Introduction to PSP and TSP, Software Engineering Institute, 2006
มาตรฐานใชเปน
แนวทาง
กระบวนการ
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 21
คมอการปฏบตงาน• ระบขนตอนตางๆในกระบวนการ ตลอดจนแบบฟอรม
มาตรฐาน และตววดทเกยวของ• โดยปกตแลวในคมอการปฏบตงานจะม
– จดประสงค (purpose)– เกณฑการเรมงาน (entry criteria)– คำาแนะนำาการใชงาน (general guidelines, usage
considerations, or constraints)– เฟสหรอขนตอนการปฏบต (phases or steps to be
performed)– ตววดและเกณฑคณภาพ (measures and quality criteria)– เกณฑการสนสดงาน (exit criteria)
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 22
ลำาด บ
ก จกรรม รายละเอ ยด1 วางแผน จดทำาหรอจดหารายการความตองการ
ประมาณเวลาทจะใชในการพฒนาแลวปอนลงในแบบฟอรมสรปแผนโครงการ บนทกเวลาลงในแบบฟอรมบนทกเวลา
2 พฒนา ออกแบบโปรแกรมเขยนโปรแกรมคอมไพลโปรแกรม และแกไขขอบกพรองทพบทดสอบโปรแกรม และแกไขขอบกพรองทพบบนทกเวลาลงในแบบฟอรมบนทกเวลา
3 สรปจบ ปอนขอมลเวลา ขอบกพรองลงในแบบฟอรมสรปแผนโครงการใหสมบรณเกณฑการส นส ด โปรแกรมผานการทดสอบอยางถถวน
แบบฟอรมสรปแผนโครงการมขอมลครบถวนสมบรณแบบฟอรมบนทกเวลาและแบบฟอรมบนทกขอบกพรองมขอมลครบถวนสมบรณ
โจทยหรอความตองการแบบฟอรมสรปแผนโครงการ PSP0แบบฟอรมบนทกเวลาและแบบฟอรมบนทกขอบกพรองมาตรฐานขอบกพรองนาฬกาจบเวลา (ถาจำาเปน)
เกณฑการเร มต น
เพอเปนแนวทางการพฒนาโปรแกรมระดบโมดลจ ดประสงค
คมอการปฏบตงานกระบวนการ PSP0
ทมา: Watts S. Humphrey, PSP: A Self-Improvement Process for Engineers, Addison-Wesley 2005
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 23
ตววด
• ขอมลเชงปรมาณทชวยใหรความเปนไปของงานและกระบวนการ โดยม 2 ชนดคอ
• ตววดพนฐาน (Base Measures)– ขอมลปฐมภมทเกบรวบรวมโดยตรงจากการทำางาน
เชน เวลาทใช• ตววดจากการวเคราะห (Derived Measures)
– ขอมลทตยภมทไดจาการวเคราะหตววดพนฐานหรอตววดจากการวเคราะหตวอน เชน ความหนาแนนของขอบกพรอง (Defect density)
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 24
ตววดพนฐานPSP มตววดพนฐานอย 4 ชนดคอ• แรงงาน (Effort)
– โดยวดจากเวลาทใช• คณภาพ (Quality)
– โดยวดจากจำานวนขอบกพรองทพบและขจด• ขนาด (Size)
– ขนาดของงานททำา• กำาหนดการ (Schedule)
– เวลาทคาดวาบางสงบางอยางจะเกดขน
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 25
ตววดจากการวเคราะห
• ตววดสำาหรบการบรหารโครงการ– ใชในการประมาณการ การวางแผน การตดตาม
แผน การวดประสทธภาพในการทำางาน ฯลฯ• ตววดสำาหรบการบรหารคณภาพ
– ใชในการวด ประเมน ควบคม และปรบปรงคณภาพของกระบวนการและผลตภณฑ ฯลฯ
• ตววดสำาหรบการบรหารสมรรถนะ– ใชในการปรบปรงสมรรถนะสวนบคคล
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 26
แบบฟอรม
• ชวยในการเกบรวบรวมขอมล• ใน PSP มแบบฟอรม 3 กลมคอ
– แบบฟอรมสำาหรบเกบขอมลพนฐาน– แบบฟอรมสำาหรบประมวลผลขอมล– แบบฟอรมสำาหรบวเคราะหขอมล
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 27
แบบฟอรม• แบบฟอรมสรปโครงการ (Project Plan Summary)• แบบฟอรมบนทกเวลาการทำางาน (Time Log)• แบบฟอรมบนทกขอบกพรอง (Defect Log)• แบบฟอรมขอเสนอการปรบปรงกระบวนการ (Process
Improvement Proposal หรอ PIP)• แบบฟอรมประมาณการขนาด (Size Estimating Template)• แบบฟอรมรายงานผลการทดสอบ (Test Report Template)• แบบฟอรมวางแผนภาระกจ (Task Planning Template)• แบบฟอรมวางแผนกำาหนดการ (Scheduling Planning
Template)• รายการตรวจทานแบบ (Design Review Checklist)• รายการตรวจทานโคด (Code Review Checklist)
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 28
มาตรฐาน
• ใน PSP กำาหนดมาตรฐานไว 4 อยางดงน– มาตรฐานชนดขอบกพรอง (Defect Type
Standard)– มาตรฐานการเขยนโคด (Coding Standard)– มาตรฐานการวดขนาด (Size Counting Standard)– มาตรฐานการออกแบบ (Design Standard)
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 29
หลงจากเรยนร PSP
ความตองการ กระบวนการ ซอฟตแวร
กระบวนการยอย 1
กระบวนการ ยอย 2
กระบวนการยอย n
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 30
ใช PSP แลวไดอะไร
• เราไดฝกฝนองคประกอบสำาคญของกระบวนการพฒนาซอฟตแวรเชงอตสาหกรรม (เทยบไดกบ CMM ระดบ 5 สำาหรบบคคล)
• เราเขาใจวธการทดทสดสำาหรบตวเรา• เราทำางานไดดขน• เรามเปาหมายการปรบปรงระยะยาว
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 31
รายงานผลการศกษาประโยชนของ PSP
• Alexis Ocampo, PSP Data Study, F Fraunhofer Institute for Experimental Software Engineering, May 2008
• ทำาการตรวจสอบประโยชนของการจดการกระบวนการอยางมวนยโดยใชขอมลของวศวกรจำานวน 3,090 คนทผานการอบรม PSP โดยพจารณาในเรอง– ความแมนยำาของการประมาณขนาด– ความแมนยำาของการประมาณแรงงาน– ความแมนยำาของการประมาณขอบกพรอง– ผลตภาพ (productivity)– ความหนาแนนและอตราการขจดขอบกพรอง
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 32
การประมาณขนาด
From Alexis Ocampo, PSP Data Study, F Fraunhofer Institute for Experimental Software Engineering, May 2008
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 33
From Alexis Ocampo, PSP Data Study, F Fraunhofer Institute for Experimental Software Engineering, May 2008
ความหนาแนนของขอบกพรอง(Defect Density)
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 34
ผลตภาพ (Productivity)และ ผลผลต (Yield)
From Alexis Ocampo, PSP Data Study, F Fraunhofer Institute for Experimental Software Engineering, May 2008
Productivity Pre-compile Defect Yield
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 35
ผลตอบแทนการลงทน(วดในหนวยของเวลา)
-600.00
0.00
600.00
1200.00
500
1000
2000
4000
500 -155.09 -35.00 56.50
1000 -211.72 28.67 211.83
2000 -324.89 156.11 524.33
4000 -551.33 411.11 1144.00
PSP0 PSP1 PSP2
From Taek Lee, Dookwon Baik, and Hoh Peter In, Cost Benefit Analysis of Personal Software Process Training Program, IEEE 8th International Conference on Computer and Information Technology Workshops, 2008
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 36
ปจจยสความสำาเรจของ PSP
• ความมวนยในตนเอง• ขอมลทถกตองสมบรณ• การปฏบตตามขนตอนทกำาหนดไว• การปรบปรงตวเองอยางไมหยดยง
ปฏบ ต ตามข นตอน รวบรวมขอม ลว เคราะห และปร บปร ง
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 37
ขอควรคำานง• ถงแมวาในการเรยน PSP จะมการเขยนโปรแกรม แต
PSP ไมใชวชาการเขยนโปรแกรม• PSP เปนเรองของการปรบปรงกระบวนการ• ถาเราไมปฏบตตามขนตอนทกำาหนดไวเรากจะไมได
เรยนร PSP• ไมควรใชโปรแกรมทตองทำาในงานในการเรยน PSP
เพราะสวนใหญแลวเรามกจะหลกเลยงทจะใชวธการทไมคนเคยเมอเรากำาลงทำางาน
• วธทเรยน PSP ทดทสดคอการปฏบตตามขนตอนทกำาหนด (Learning-by-doing)
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 38
ร PSP แลวเราจะทำาอะไรตอ
• บคคล– ประยกต PSP กบงานอน เชน ทำารายงาน ฯลฯ
• ทม– กระบวนการพฒนาซอฟตแวรเปนทม (Team
Software Process หรอ TSP)• องคกร
– แบบจำาลองวฒภาวะความสามารถเชงบรณาการ (Capability Maturity Model Integration หรอ CMMI)
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 39
PSP, TSP และ CMMI
CMMI – สรางความ สามารถขององคกร
TSP – สรางผลตภณฑทมคณภาพภายใตงบประมาณและเวลา
PSP - สรางทกษะและวนยสวนบคคล
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 40
หลกการของกระบวนการการวดสมรรถนะ
ทกษะการประมาณและการวางแผนทกษะการจดการคณภาพ
ทกษะของสมาชกในทม
การตงเปาหมายการมอบหมายหนาทกระบวนการของทม
แผนงานทสมดล
สร างท ม
PS
P
TS
P
การสอสารการประสานงาน
การตดตามโครงการการจดการความเสยง
บร หารทม
การใหการสนบสนนการดแลรกษาวนย
การดแลความเปนไปของโครงการผ บร หาร
CM
MI
Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 41
สรป
• PSP เปนกระบวนการทชวยใหเราทำางานไดดขน
• หลงเรยนจบแลว เราจะรวธการประยกต PSP ใหเหมาะกบความตองการของเรา
• เราจะมความรและทกษะเพยงพอทจะเขารวมทม TSP