41
02 การพัฒนาซอฟต์แวร์ส่วน บุคคล สงวนลิขสิทธิ์ 2551 – 2555 สุรเดช จิตประไพกุลศาล

02 intro to psp

Embed Size (px)

DESCRIPTION

Lecture 2 Introduction to Personal Software Process

Citation preview

Page 1: 02 intro to psp

02 การพฒนาซอฟตแวรสวนบคคล

สงวนลขสทธ 2551 – 2555สรเดช จตประไพกลศาล

Page 2: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 2

หวขอ

• ทำาไมจงตองปรบปรงกระบวนการ• กระบวนการพฒนาซอฟตแวรสวนบคคล (PSP)• หลกการของ PSP• แนวทางการเรยนร PSP• องคประกอบของ PSP• ประโยชนของ PSP• ปจจยสความสำาเรจของ PSP• สรป

Page 3: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 3

สงททาทายในการพฒนาซอฟตแวร

• การคาดการณ: ประมาณการวาจะตองใชเวลาทำาเทาไรก อนทจะรวาจะทำาอะไร

• ความไมแน นอน: ขอบเขตของงานเปลยน บคลากรเปลยน สถานการณเปลยน ฯลฯ

• ค ณภาพ: ไมมเวลาพอทจะตรวจทานหรอทดสอบ

Page 4: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 4

อะไรทำาใหคณดกวา

ทำาไมค ณถงด กว าน กศ กษาปร ญญาตร ป 1?

ส งท ค ณทำาได ด ในระด บบ คคลใชได ก บระด บองค กรหร อไม ?

Source: DAAD Project

ทำาไมองค กรบางแหงถ งท ำาได ด

กว าท อ น?

(ส งมอบงานตามก ำาหนด

งานท ส งมอบม ค ณภาพสง

ม ข อบกพรองน อย)

Page 5: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 5

สงททาทายสำาหรบมออาชพ

• ทำาอยางไรเราถงจะผลตซอฟตแวรทม ค ณภาพในกำาหนดการท วางแผน ภายใต งบประมาณไดอยางคงเส นคงวา

• ทำาอยางไรเราจงจะสามารถปร บปร งวธปฏบตของเราในปจจบนได

• ทำาอยางไรเราจงจะเผยแพรวธปฏบตของเราสสงคมโดยรวมได

Page 6: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 6

มออาชพ สามารถทำาตามไดตามสญญา

ผลตงานคณภาพอยางสมำาเสมอ

สญญาในสงทเปนไปได

ใชขอมลในการใหคำาสญญา

ใชขอมลในการจดการคณภาพ

เกบขอมลเกยวกบงานของตน

รวางานคบหนาไปถงไหนแลว

ใชขอมลตดตามความกาวหนา

Page 7: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 7

กอนการใช PSP

ความตองการ พฒนา ซอฟตแวร

คณภาพ

?

คณภาพ

?

คณภาพ

?

ไมเห น

Page 8: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 8

กระบวนการระดบบคคลสำาหรบการพฒนาซอฟตแวร (1)

• กระบวนการระดบบคคลสำาหรบการพฒนาซอฟตแวร (Personal Software Process หรอ PSP) คอร ปแบบของการปร บปร งกระบวนการทออกแบบมาเพอใชในระดบบคคลโดยมพนฐานมาจากวธปฏบตสำาหรบพฒนาซอฟตแวรเชงอตสาหกรรม

• PSP เปนกระบวนการระดบบคคลทมวฒภาวะความสามารถระดบ 5 ตามแบบจำาลองวฒภาวะความสามารถ (Capability Maturity Model; CMM)

Page 9: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 9

กระบวนการระดบบคคลสำาหรบการพฒนาซอฟตแวร (2)

• PSP สามารถใชไดกบเกอบทกงาน เชน– การเขยนโปรแกรม– การจดทำาความตองการ (requirements)

กระบวนการ (process) หรอเอกสาร (document)– การตรวจทาน (review) หรอการทดสอบ (test)– การดแลรกษาระบบ (maintain systems)– การปรบเปลยนระบบซอฟตแวรขนาดใหญ– ฯลฯ

Page 10: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 10

ประโยชนของ PSPกระบวนการ PSP ทเสถยรจะชวยใหเรา• รจกตวเอง (Self-awareness)

– เขาใจทกษะ ความสามารถ และสมรรถนะของตนเอง– สามารถปรบปรงการทำางานของเราใหดขน

• ตดสนใจจากขอเทจจรง (Fact-based Decision Making)– ใชขอมลในการประมาณการ วางแผน ปรบปรง ฯลฯ– สามารถรบมอกบการเปลยนแปลงไดดขน

• เปนนายของงาน (Ownership & Accountability)– ดแลเอาใจใสแผนททำาขนมาเอง– มนใจวาจะดำาเนนการใหบรรลขอตกลงหรอพนธสญญาตางๆ ได

Page 11: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 11

จดประสงคของ PSP

• เพอพฒนาทกษะทจำาเปนสำาหรบ– การวางแผนการทำางาน– การตดตามการดำาเนนงานตามแผน– การควบคมคณภาพของการทำางาน– การวด วเคราะห และปรบปรงประสทธภาพในการ

ทำางาน

Page 12: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 12

กระบวนการทางวศวกรรมเปาหมาย

ขอจำากด

กระบวนการความตองการ

ผลตภณฑบรการ

ทรพยากร

ควบคม

ปรบปรง ตววด

ทมา James W. Moore, The Road Map to Software Engineering: A Standard-Based Guide, IEEE Computer Society Press, 2006

Page 13: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 13

หลกการของ PSP

คณภาพของ

ซอฟตแวร

ค ณภาพของ

แตละช นส วน

ผ พ ฒนา ซอฟตแวร

กระบวนการพฒนา

ซอฟตแวร

Page 14: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 14

หลกการของ PSP

• เราตองรบผดชอบตอกระบวนการพฒนาซอฟตแวรของตนเอง

• เราควรทจะวด ตดตาม และวเคราะหการทำางานของเรา

• เราควรทจะเรยนรวาสมรรถนะของเราเปนอยางไร ตางจากทควรจะเปนอยางไร

• เราควรทจะนำาสงทเรยนรมาปรบปรงวธการทำางานของเรา

Page 15: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 15

แนวทางการเรยนร PSP• เรมจากการสำารวจกระบวนการทำางานของเราใน

ปจจบน• คอยๆ ปรบปรงกระบวนการโดยการเพมทกษะและวธ

การครงละไมมาก• ฝกฝนกระบวนการและวธการเหลาน 2 – 3 ครงเพอให

เกดความคนเคย• รวบรวมและวเคราะหขอมลทเกยวของกบกระบวนการ• นำาผลทไดมาปรบปรงสมรรถนะและกระบวนการทำางาน

Page 16: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 16

รปแบบการเรยน PSP

• แบบคอยเปนคอยไป– PSP for Engineers I & II– เหมาะกบนสตนกศกษา

• แบบพรอมทำางาน– PSP Fundamentals & PSP Advanced– เหมาะกบผทำางานแลว– พรอมทจะเรม TSP ไดหลง PSP Fundamentals

แตจะไดประโยชนสงสดหลงเรยนร PSP Advanced แลว

Page 17: 02 intro to psp

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

Page 18: 02 intro to psp

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

การจดการคณภาพและการตดตามโครงการ

Page 19: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 19

องคประกอบของ PSP

• คมอการปฏบตงาน (Process Script)– คำาบรรยายการใชกระบวนการ

• ตววด (Measure)– ขอมลเชงปรมาณทชวยใหรความเปนไปของงาน

และกระบวนการ• แบบฟอรม (Form)

– เครองมอสำาหรบรวบรวมและเกบรกษาขอมล• มาตรฐาน (Standard)

– แนวทางในการทำางาน

Page 20: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 20

องคประกอบของ PSP

วางแผน

ออกแบบ

เขยนโปรแกรม

คอมไพล

ทดสอบ

สรปจบ

แบบฟอรม

สรปโครงการ(ตววดตางๆ)

ความตองการ

ซอฟตแวร

คมอการปฏบตงาน

ใชเปนแนวทาง

ดดแปลงมาจาก Introduction to PSP and TSP, Software Engineering Institute, 2006

มาตรฐานใชเปน

แนวทาง

กระบวนการ

Page 21: 02 intro to psp

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)

Page 22: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 22

ลำาด บ

ก จกรรม รายละเอ ยด1 วางแผน จดทำาหรอจดหารายการความตองการ

ประมาณเวลาทจะใชในการพฒนาแลวปอนลงในแบบฟอรมสรปแผนโครงการ บนทกเวลาลงในแบบฟอรมบนทกเวลา

2 พฒนา ออกแบบโปรแกรมเขยนโปรแกรมคอมไพลโปรแกรม และแกไขขอบกพรองทพบทดสอบโปรแกรม และแกไขขอบกพรองทพบบนทกเวลาลงในแบบฟอรมบนทกเวลา

3 สรปจบ ปอนขอมลเวลา ขอบกพรองลงในแบบฟอรมสรปแผนโครงการใหสมบรณเกณฑการส นส ด โปรแกรมผานการทดสอบอยางถถวน

แบบฟอรมสรปแผนโครงการมขอมลครบถวนสมบรณแบบฟอรมบนทกเวลาและแบบฟอรมบนทกขอบกพรองมขอมลครบถวนสมบรณ

โจทยหรอความตองการแบบฟอรมสรปแผนโครงการ PSP0แบบฟอรมบนทกเวลาและแบบฟอรมบนทกขอบกพรองมาตรฐานขอบกพรองนาฬกาจบเวลา (ถาจำาเปน)

เกณฑการเร มต น

เพอเปนแนวทางการพฒนาโปรแกรมระดบโมดลจ ดประสงค

คมอการปฏบตงานกระบวนการ PSP0

ทมา: Watts S. Humphrey, PSP: A Self-Improvement Process for Engineers, Addison-Wesley 2005

Page 23: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 23

ตววด

• ขอมลเชงปรมาณทชวยใหรความเปนไปของงานและกระบวนการ โดยม 2 ชนดคอ

• ตววดพนฐาน (Base Measures)– ขอมลปฐมภมทเกบรวบรวมโดยตรงจากการทำางาน

เชน เวลาทใช• ตววดจากการวเคราะห (Derived Measures)

– ขอมลทตยภมทไดจาการวเคราะหตววดพนฐานหรอตววดจากการวเคราะหตวอน เชน ความหนาแนนของขอบกพรอง (Defect density)

Page 24: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 24

ตววดพนฐานPSP มตววดพนฐานอย 4 ชนดคอ• แรงงาน (Effort)

– โดยวดจากเวลาทใช• คณภาพ (Quality)

– โดยวดจากจำานวนขอบกพรองทพบและขจด• ขนาด (Size)

– ขนาดของงานททำา• กำาหนดการ (Schedule)

– เวลาทคาดวาบางสงบางอยางจะเกดขน

Page 25: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 25

ตววดจากการวเคราะห

• ตววดสำาหรบการบรหารโครงการ– ใชในการประมาณการ การวางแผน การตดตาม

แผน การวดประสทธภาพในการทำางาน ฯลฯ• ตววดสำาหรบการบรหารคณภาพ

– ใชในการวด ประเมน ควบคม และปรบปรงคณภาพของกระบวนการและผลตภณฑ ฯลฯ

• ตววดสำาหรบการบรหารสมรรถนะ– ใชในการปรบปรงสมรรถนะสวนบคคล

Page 26: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 26

แบบฟอรม

• ชวยในการเกบรวบรวมขอมล• ใน PSP มแบบฟอรม 3 กลมคอ

– แบบฟอรมสำาหรบเกบขอมลพนฐาน– แบบฟอรมสำาหรบประมวลผลขอมล– แบบฟอรมสำาหรบวเคราะหขอมล

Page 27: 02 intro to psp

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)

Page 28: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 28

มาตรฐาน

• ใน PSP กำาหนดมาตรฐานไว 4 อยางดงน– มาตรฐานชนดขอบกพรอง (Defect Type

Standard)– มาตรฐานการเขยนโคด (Coding Standard)– มาตรฐานการวดขนาด (Size Counting Standard)– มาตรฐานการออกแบบ (Design Standard)

Page 29: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 29

หลงจากเรยนร PSP

ความตองการ กระบวนการ ซอฟตแวร

กระบวนการยอย 1

กระบวนการ ยอย 2

กระบวนการยอย n

Page 30: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 30

ใช PSP แลวไดอะไร

• เราไดฝกฝนองคประกอบสำาคญของกระบวนการพฒนาซอฟตแวรเชงอตสาหกรรม (เทยบไดกบ CMM ระดบ 5 สำาหรบบคคล)

• เราเขาใจวธการทดทสดสำาหรบตวเรา• เราทำางานไดดขน• เรามเปาหมายการปรบปรงระยะยาว

Page 31: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 31

รายงานผลการศกษาประโยชนของ PSP

• Alexis Ocampo, PSP Data Study, F Fraunhofer Institute for Experimental Software Engineering, May 2008

• ทำาการตรวจสอบประโยชนของการจดการกระบวนการอยางมวนยโดยใชขอมลของวศวกรจำานวน 3,090 คนทผานการอบรม PSP โดยพจารณาในเรอง– ความแมนยำาของการประมาณขนาด– ความแมนยำาของการประมาณแรงงาน– ความแมนยำาของการประมาณขอบกพรอง– ผลตภาพ (productivity)– ความหนาแนนและอตราการขจดขอบกพรอง

Page 32: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 32

การประมาณขนาด

From Alexis Ocampo, PSP Data Study, F Fraunhofer Institute for Experimental Software Engineering, May 2008

Page 33: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 33

From Alexis Ocampo, PSP Data Study, F Fraunhofer Institute for Experimental Software Engineering, May 2008

ความหนาแนนของขอบกพรอง(Defect Density)

Page 34: 02 intro to psp

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

Page 35: 02 intro to psp

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

Page 36: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 36

ปจจยสความสำาเรจของ PSP

• ความมวนยในตนเอง• ขอมลทถกตองสมบรณ• การปฏบตตามขนตอนทกำาหนดไว• การปรบปรงตวเองอยางไมหยดยง

ปฏบ ต ตามข นตอน รวบรวมขอม ลว เคราะห และปร บปร ง

Page 37: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 37

ขอควรคำานง• ถงแมวาในการเรยน PSP จะมการเขยนโปรแกรม แต

PSP ไมใชวชาการเขยนโปรแกรม• PSP เปนเรองของการปรบปรงกระบวนการ• ถาเราไมปฏบตตามขนตอนทกำาหนดไวเรากจะไมได

เรยนร PSP• ไมควรใชโปรแกรมทตองทำาในงานในการเรยน PSP

เพราะสวนใหญแลวเรามกจะหลกเลยงทจะใชวธการทไมคนเคยเมอเรากำาลงทำางาน

• วธทเรยน PSP ทดทสดคอการปฏบตตามขนตอนทกำาหนด (Learning-by-doing)

Page 38: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 38

ร PSP แลวเราจะทำาอะไรตอ

• บคคล– ประยกต PSP กบงานอน เชน ทำารายงาน ฯลฯ

• ทม– กระบวนการพฒนาซอฟตแวรเปนทม (Team

Software Process หรอ TSP)• องคกร

– แบบจำาลองวฒภาวะความสามารถเชงบรณาการ (Capability Maturity Model Integration หรอ CMMI)

Page 39: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 39

PSP, TSP และ CMMI

CMMI – สรางความ สามารถขององคกร

TSP – สรางผลตภณฑทมคณภาพภายใตงบประมาณและเวลา

PSP - สรางทกษะและวนยสวนบคคล

Page 40: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 40

หลกการของกระบวนการการวดสมรรถนะ

ทกษะการประมาณและการวางแผนทกษะการจดการคณภาพ

ทกษะของสมาชกในทม

การตงเปาหมายการมอบหมายหนาทกระบวนการของทม

แผนงานทสมดล

สร างท ม

PS

P

TS

P

การสอสารการประสานงาน

การตดตามโครงการการจดการความเสยง

บร หารทม

การใหการสนบสนนการดแลรกษาวนย

การดแลความเปนไปของโครงการผ บร หาร

CM

MI

Page 41: 02 intro to psp

Revision 2.3 02 การพฒนาซอฟตแวรสวนบคคล 41

สรป

• PSP เปนกระบวนการทชวยใหเราทำางานไดดขน

• หลงเรยนจบแลว เราจะรวธการประยกต PSP ใหเหมาะกบความตองการของเรา

• เราจะมความรและทกษะเพยงพอทจะเขารวมทม TSP