SlideShare a Scribd company logo
1 of 48
03 การใช้งาน PSP0
สงวนลิขสิทธิ์ 2551, 2552, 2553
โดยสุรเดช จิตประไพกุลศาล
Revision 2.1 03 PSP0การใช้งาน 2
หัวข้อ
• การใช้กระบวนการ
• กระบวนการ PSP0
• การบันทึกข้อมูล
• ตัวอย่างข้อมูล
• ข้อควรระวังในการบันทึกข้อมูล
• สรุป
Revision 2.1 03 PSP0การใช้งาน 3
การปฏิบัติตามกระบวนการ
• ตรวจเกณฑ์การเริ่มต้นก่อนเริ่มต้นเฟส
• บันทึกเวลาเริ่มต้น
• ดำาเนินกิจกรรมและบันทึกข้อบกพร่องที่พบและแก้ไข
• ตรวจเกณฑ์การสิ้นสุดก่อนจะจบเฟส
• บันทึกเวลาสิ้นสุด
บันทึกเวลา
เริ่มต้น
ดำาเนินภารกิจ
บันทึกข้อ
บกพร่อง
บันทึกเวลา
สิ้นสุด
ตรวจ
เกณฑ์การ
เริ่มต้น
ตรวจ
เกณฑ์การ
สิ้นสุด
Revision 2.1 03 PSP0การใช้งาน 4
กระบวนการ PSP
• PSP ไม่ใช่กระบวนการสำาหรับการเขียนโปรแกรม แต่
เป็นกระบวนการสำาหรับเรียนรู้เรื่องกระบวนการ
• PSP เป็นตัวอย่างของกระบวนการ ซึ่งบางคนอาจนำา
ไปใช้ในงานของตนได้เลย ในขณะที่บางคนต้องปรับ
PSP ให้เหมาะสมกับสภาพการทำางานของตน
• หลังศึกษา PSP แล้วเราควรที่จะ
– สำารวจตรวจสอบข้อมูล PSP ของเราเอง
– ทบทวนสิ่งที่เรียนรู้แล้วนำามาปรับใช้กับตนเอง
– ปรับ PSP ให้สอดคล้องกับความต้องการของเรา
Revision 2.1 03 PSP0การใช้งาน 5
กระบวนการ PSP0
• PSP0 เป็นกระบวนการอย่างง่ายๆ ประกอบด้วย
– วางแผน
– พัฒนาโปรแกรมด้วยวิธีการที่ใช้ในปัจจุบัน
– รวบรวมข้อมูลเกี่ยวกับเวลาและข้อบกพร่องจากงาน
– จัดทำารายงานสรุป
Revision 2.1 03 PSP0การใช้งาน 6
วัตถุประสงค์ของ PSP0
• เพื่อแสดงให้เห็นถึงการใช้กระบวนการที่
กำาหนดในการเขียนโปรแกรมขนาดเล็ก
• เพื่อสอดแทรกการวัดขั้นพื้นฐานเข้าสู่
กระบวนการพัฒนาซอฟต์แวร์
• เพื่อให้มีการเปลี่ยนแปลงวิธีปฏิบัติน้อยที่สุด
• เพื่อรวบรวมข้อมูลสำาหรับใช้อ้างอิง (baseline)
Revision 2.1 03 PSP0การใช้งาน 7
กระบวนการ PSP0
ใน PSP0 เราจะเรียนรู้
• การปฏิบัติตามกระบวนการที่กำาหนดไว้
• การบันทึกเวลา
• การบันทึกข้อบกพร่อง (defect)
• ประสิทธิภาพการทำางานเบื้องต้น (productivity)
• สมรรถนะในการทำางาน (performance)
Revision 2.1 03 PSP0การใช้งาน 8
ขั้นตอนของ PSP0
วางแผน
ออกแบบ
เขียนโปรแกรม
คอมไพล์
ทดสอบ
สรุปจบ
แบบ
ฟอร์ม
ผลสรุป
โครงการ
(ตัววัด
ต่างๆ)
ความต้องการ
ซอฟต์แวร์
คู่มือการ
ปฏิบัติ
งาน
ใช้
เป็น
แนว
ทาง
มาตรฐา
น
ใช้
เป็น
แนว
ทาง
พัฒนา
ดัดแปลงมาจาก Intro ductio n to
PSPand TSP, Software
Revision 2.1 03 PSP0การใช้งาน 9
องค์ประกอบของกระบวนการ PSP0
• คู่มือการปฏิบัติ 4 กระบวนการ
– เพื่อเป็นแนวทางในการปฏิบัติตามกระบวนการ
• แบบฟอร์ม 3 แบบ
– เพื่อช่วยเก็บรวบรวมข้อมูล
• มาตรฐาน 1 มาตรฐาน
– เพื่อเป็นแนวทางในการปฏิบัติงาน
• ตัววัดพื้นฐาน 2 ตัว
– เวลา และ ข้อบกพร่อง
Revision 2.1 03 PSP0การใช้งาน 10
ลำาดับ กิจกรรม รายละเอียด
1 วางแผน จัดทำาหรือจัดหารายการความต้องการ
ประมาณเวลาที่จะใช้ในการพัฒนาแล้วบันทึกในแบบฟอร์มสรุปแผนโครงการ
บันทึกเวลาในแบบฟอร์มบันทึกเวลา
2 พัฒนา ออกแบบโปรแกรม
เขียนโปรแกรม
คอมไพล์โปรแกรม และแก้ไขข้อบกพร่องที่พบ
ทดสอบโปรแกรม และแก้ไขข้อบกพร่องที่พบ
บันทึกเวลาในแบบฟอร์มบันทึกเวลา
3 สรุปจบ บันทึกสรุปข้อมูลเวลาและข้อบกพร่องในแบบฟอร์มสรุปแผนโครงการให้สมบูรณ์
เกณฑ์การสิ้นสุด โปรแกรมผ่านการทดสอบอย่างถี่ถ้วน
แบบฟอร์มสรุปแผนโครงการมีข้อมูลครบถ้วนสมบูรณ์
แบบฟอร์มบันทึกเวลาและแบบฟอร์มบันทึกข้อบกพร่องมีข้อมูลครบถ้วนสมบูรณ์
จุดประสงค์ เพื่อเป็นแนวทางการพัฒนาโปรแกรมระดับโมดูล
เกณฑ์การเริ่ม
ต้น
โจทย์หรือความต้องการ
แบบฟอร์มสรุปแผนโครงการ PSP0
แบบฟอร์มบันทึกเวลาและแบบฟอร์มบันทึกข้อบกพร่อง
มาตรฐานข้อบกพร่อง
นาฬิกาจับเวลา (ถ้าจำาเป็น)
คู่มือการปฏิบัติงาน PSP0
ที่มา: Watts S. Humphrey, PSP: A
Self-Improvement Process for
Engineers, Addison-Wesley 2005
Revision 2.1 03 PSP0การใช้งาน 11
กระบวนการ PSP0
วางแผน
พัฒนา
สรุปจบ
PSP0 Process
Script
รวบรวมความ
ต้องการ
ประมาณ
ทรัพยากร
PSP0 Planning
Script
ออกแบบ
เขียนโค้ด
คอมไพล์
ทดสอบ
PSP0 Development
Script
ตรวจข้อมูลข้อ
บกพร่อง
ตรวจความคงเส้น
คงวาของข้อมูล
ตรวจสอบข้อมูล
เวลา
PSP0 Postmortem
Script
Revision 2.1 03 PSP0การใช้งาน 12
เฟสใน PSP0
• PSP0 ประกอบด้วย 6 เฟส:
– วางแผน
– ออกแบบ
– เขียนโค้ด
– คอมไพล์
– ทดสอบ
– สรุป
ออกแบบ
เขียนโค้ด
คอมไพล์
ทดสอบ
วางแผน
สรุป
Revision 2.1 03 PSP0การใช้งาน 13
เฟสใน PSP0
• วางแผน
– วางแผนสำาหรับการพัฒนาโปรแกรมตามความ
ต้องการ
• ออกแบบ
– จัดทำาแบบตามความต้องการ
• เขียนโปรแกรม
– แปลงแบบให้เป็นชุดคำาสั่ง
Revision 2.1 03 PSP0การใช้งาน 14
เฟสใน PSP0
• คอมไพล์
– แปลงชุดคำาสั่งให้เป็นโปรแกรมพร้อมใช้งาน
• ทดสอบ
– ตรวจดูว่าโปรแกรมทำางานสอดคล้องกับความ
ต้องการหรือไม่
• สรุป
– สรุปและวิเคราะห์ข้อมูล
Revision 2.1 03 PSP0การใช้งาน 15
ลำาดับของเฟส
• สาเหตุที่เฟสมีลำาดับดังนี้เพราะ
– เราไม่สามารถทดสอบโค้ดก่อนคอม
ไพล์
– เราไม่สามารถคอมไพล์ก่อนเขียน
โค้ด
– ออกแบบหลังเขียนโค้ดก็เปล่า
ประโยชน์
Design
Code
Compile
Test
Revision 2.1 03 PSP0การใช้งาน 16
เกณฑ์การเริ่มต้นและสิ้นสุด
เฟส เกณฑ์การเริ่มต้นและสิ้นสุด
วางแผน
เริ่มเมื่อ เริ่มการวางแผน
สิ้นสุดเมื่อ แผนสมบูรณ์
ออกแบบ
เริ่มเมื่อ เริ่มการออกแบบ
สิ้นสุดเมื่อ แบบสมบูรณ์
เขียนโค้ด
เริ่มเมื่อ เริ่มการเขียนโค้ด
สิ้นสุดเมื่อ โค้ดเขียนเสร็จสมบูรณ์
คอมไพล์
เริ่มเมื่อ เริ่มคอมไพล์ครั้งแรก
สิ้นสุดเมื่อ คอมไพล์ผ่าน
ทดสอบ
เริ่มเมื่อ เริ่มทดสอบครั้งแรก
สิ้นสุดเมื่อ ผ่านการทดสอบทั้งหมดโดยไม่มีข้อผิด
พลาด
สรุป
เริ่มเมื่อ เริ่มสรุปการทำางาน
สิ้นสุดเมื่อ การสรุปเสร็จสิ้น จาก Dan Burton, Introduction to the
TSP and the PSP, SEI, 2005
Revision 2.1 03 PSP0การใช้งาน 17
ตัวอย่างที่ 1 ใช้ PSP0 กับการทำางาน
ตามลำาดับ
• สำาหรับโปรแกรมขนาด
เล็กเราก็อาจจะใช้วิธี
ทำางานตามลำาดับจนเสร็จ
(Waterfall)
วางแผน
พัฒนา
สรุป
ออกแบบ
เขียนโค้ด
คอมไพล์
ทดสอบ
Revision 2.1 03 PSP0การใช้งาน 18
ตัวอย่างที่ 2 ใช้ PSP0 กับการเขียน
และคอมไพล์ทีละส่วน
• ถ้าโปรแกรมขนาด
ใหญ่ขึ้น เราอาจจะ
ออกแบบก่อน
• จากนั้นแยกเขียน
โค้ดและคอมไพล์
ทีละโมดูล
• แล้วทดสอบหลัง
จากคอมไพล์ทุก
โมดูล
วางแผน
พัฒนา
สรุป
ออกแบบ
เขียนโค้ด
คอมไพล์
เขียนโค้ด
คอมไพล์
ทดสอบ
Revision 2.1 03 PSP0การใช้งาน 19
ตัวอย่างที่ 3 ใช้ PSP0 กับการเขียน
คอมไพล์และทดสอบทีละส่วน
• หรือ เราอาจจะ
ออกแบบแล้ว
• ค่อยเขียนโค้ด
คอมไพล์ และ
ทดสอบ ทีละโมดูล
จนครบทุกโมดูล
วางแผน
พัฒนา
สรุป
ออกแบบ
เขียนโค้ด
คอมไพล์
เขียนโค้ด
คอมไพล์
ทดสอบทดสอบ
Revision 2.1 03 PSP0การใช้งาน 20
ตัวอย่างที่ 4 ใช้ PSP0 กับการพัฒนา
เป็นรอบๆ (Iterative)
• ถ้าโปรแกรมขนาด
ใหญ่มาก เราอาจ
จะแยกพัฒนาทีละ
โมดูล (Iterative)
โดย ออกแบบ
เขียนโค้ด คอม
ไพล์ และทดสอบ
ทีละโมดูลจนครบ
ทุกโมดูล
วางแผน
พัฒนา
สรุป
ออกแบบ
เขียนโค้ด
คอมไพล์
เขียนโค้ด
คอมไพล์
ทดสอบทดสอบ
ออกแบบ
Revision 2.1 03 PSP0การใช้งาน 21
แบบฟอร์ม PSP0
• ใน PSP0 เราใช้แบบฟอร์มต่อไปนี้ในการ
รวบรวมข้อมูล
– แบบฟอร์มสรุปแผนโครงการ PSP0
• สรุปผลการทำางาน
– แบบฟอร์มบันทึกเวลาการทำางาน
• บันทึกเวลาในการทำางาน
– แบบฟอร์มบันทึกข้อบกพร่อง
• บันทึกรายละเอียดข้อบกพร่องที่เกิดขึ้น
Revision 2.1 03 PSP0การใช้งาน 22
แบบฟอร์มสรุปแผนโครงการ PSP0
Student Date
Program Program #
Instructor Language
Time in Phase (min.) Plan Actual To Date To Date
%
Planning
Design
Code
Compile
Test
Postmortem
Total
Revision 2.1 03 PSP0การใช้งาน 23
แบบฟอร์มสรุปแผนโครงการ PSP0
Defects Injected Actual To Date To Date %
Planning
Design
Code
Compile
Test
Total Development
Revision 2.1 03 PSP0การใช้งาน 24
แบบฟอร์มสรุปแผนโครงการ PSP0
Defects Removed Actual To Date To Date %
Planning
Design
Code
Compile
Test
Total Development
After Development
Revision 2.1 03 PSP0การใช้งาน 25
แบบฟอร์มบันทึกเวลาการทำางาน
Student Date
Program Program #
Instructor Language
Projec
t
Phase
Start
Date
and
Time
Int.
Time
Stop
Date
and
Time
Delt
a
Time
Comments
Revision 2.1 03 PSP0การใช้งาน 26
แบบฟอร์มบันทึกข้อบกพร่อง
Student Date
Program Program #
Instructor Language
  Project Date Numbe
r
Type Inject Remove Fix Time Fix Ref.
 
Description:
  Project Date Numbe
r
Type Inject Remove Fix Time Fix Ref.
 
Description:
Revision 2.1 03 PSP0การใช้งาน 27
มาตรฐานใน PSP0
ใน PSP0 มีเพียงมาตรฐานเดียวคือ
• มาตรฐานชนิดข้อบกพร่อง (Defect Type Standard)
ใช้เพื่อจำาแนกชนิดของข้อบกพร่อง เพื่อสะดวกในการ
ปรับปรุงแก้ไข
Revision 2.1 03 PSP0การใช้งาน 28
รหั
ส
ชนิด สิ่งที่ผิดพลาด
10 Documentation เอกสาร (Document) หมายเหตุ (Comment) ข้อความต่างๆ
(Message) คู่มือ (Manual)
20 Syntax ตัวสะกด (Spelling) เครื่องหมายวรรคตอนเช่น comma หรือ
semicolon พิมพ์ผิด (typos) รูปแบบคำาสั่ง (instruction formats)
30 Build, Package การจัดการความเปลี่ยนแปลง (Change management) ไลบรารี
(library) การควบคุมเวอร์ชั่น (version control) โปรเจคไฟล์ (project
file, make file, etc)
40 Assignment การประกาศตัวแปร (Declaration) การตั้งชื่อ (duplicate name)
ขอบเขต (scope) การกำาหนดค่าเริ่มต้น (initialization) การดำาเนินการ
เมื่อเสร็จสิ้นการใช้งาน (finalization) ช่วงค่า (range)
50 Interface การเรียกใช้ฟังก์ชั่น (Procedure calls) การติดต่อกับ input/output
(I/O) รูปแบบการแสดงผล (User format)
60 Checking ข้อความแสดงความผิดพลาด (Error messages) การตรวจที่ไม่เพียง
พอ (inadequate checks)
70 Data โครงสร้าง (Structure) เนื้อหา (content)
80 Function ตรรกะ (Logic) พ้อยเตอร์ (pointers) การวนรอบ (loops) การเรียกใช้
ตัวเอง (recursion) การคำานวณ (computation) หน้าที่การทำางาน
(function)
90 System ปัญหาของระบบซึ่งอยู่นอกเหนือจากโปรแกรม เช่น Configuration ของ
ระบบปฏิบัติการ ฮาร์ดแวร์ หน่วยความจำา
100 Environment ปัญหาของ compiler, editor, IDE, test tool หรือสิ่งอื่นๆ ที่เกี่ยวข้องกับ
environment ที่ใช้ในการพัฒนาโปรแกรม
Revision 2.1 03 PSP0การใช้งาน 29
ตัววัดใน PSP0
• ข้อมูลปฐมภูมิที่เรารวบรวมใน PSP0 ได้แก่
– เวลาที่ใช้ในแต่ละเฟส
• เริ่มและสิ้นสุดเมื่อไร
• ถูกขัดจังหวะไปเท่าไร
– ข้อบกพร่อง
• ชนิดไหน
• เกิดที่เฟสไหน
• ขจัดในเฟสไหน
• เวลาที่ใช้ในการค้นหาและขจัดข้อบกพร่อง
• รายละเอียดของสาเหตุ
Revision 2.1 03 PSP0การใช้งาน 30
ตัววัดอื่นๆ
• จากข้อมูลพื้นฐานที่เก็บรวบรวมใน PSP0 เราสามารถ
คำานวณตัววัดอื่นๆที่เป็นประโยชน์ได้เช่น
– เปอร์เซ็นของเวลาในแต่ละเฟส (To-Date % Time-in-
phase)
– เปอร์เซ็นของข้อบกพร่องที่เกิด (To-Date % Defect
injected)
– เปอร์เซ็นของข้อบกพร่องที่ขจัด (To-Date % Defect
removed)
– ต้นทุนคุณภาพ (Cost of Quality หรือ COQ)
– อัตราการเกิดข้อบกพร่อง (Defect Injection Rate)
– อัตราการขจัดข้อบกพร่อง (Defect Removal Rate)
– ต้นทุนในการดำาเนินธุรกิจ (Overhead)
Revision 2.1 03 PSP0การใช้งาน 31
ตัววัดที่ได้จากการคำานวณใน PSP0
โดยจะใช้เป็นจุดอ้างอิงในอนาคต
• เปอร์เซ็นของเวลาในแต่ละเฟส (To-Date % Time-in-
phase)
– แสดงถึงสัดส่วนการใช้เวลาในแต่ละเฟส
• เปอร์เซ็นของข้อบกพร่องที่เกิด (To-Date % Defect
injected)
– แสดงถึงสัดส่วนของการเกิดข้อบกพร่องในแต่ละเฟส
• เปอร์เซ็นของข้อบกพร่องที่ขจัด (To-Date % Defect
removed)
– แสดงถึงสัดส่วนของการขจัดข้อบกพร่องในแต่ละเฟส
Revision 2.1 03 PSP0การใช้งาน 32
ตัววัดอื่นๆที่สามารถคำานวณได้ใน
PSP0 แต่ยังไม่ใช้ใน PSP0
• ต้นทุนคุณภาพ (Cost of Quality หรือ COQ)
– สัดส่วนต้นทุนของความผิดพลาด (Percent Failure COQ)
• แสดงถึงค่าใช้จ่ายที่เกิดขึ้นเมื่อมีความบกพร่องเกิดขึ้นทำาให้จะต้อง
เสียเวลา และค่าใช้จ่ายในการแก้ไข
• อัตราการเกิดข้อบกพร่อง (Defect Injection Rate)
– แสดงถึงอัตราการเกิดข้อบกพร่องต่อหน่วยเวลา
• อัตราการขจัดข้อบกพร่อง (Defect Removal Rate)
– แสดงถึงอัตราในการขจัดข้อบกพร่องต่อหน่วยเวลา
• ต้นทุนในการดำาเนินธุรกิจ (Overhead)
– แสดงถึงค่าใช้จ่ายในการวางแผนและสรุปโครงากร
Revision 2.1 03 PSP0การใช้งาน 33
วิธีการบันทึกข้อมูล
• บันทึกข้อมูลขณะทำางาน
• พยายามบันทึกข้อมูลให้เที่ยงตรงแม่นยำา
• บันทึกเฟสที่โปรแกรมอยู่ไม่ใช่กิจกรรมที่ทำา
Revision 2.1 03 PSP0การใช้งาน 34
ความสำาคัญของการบันทึกข้อมูล
• ข้อมูลที่ถูกต้อง เที่ยงตรง แม่นยำา คงเส้นคงวา
และสมบูรณ์จะช่วยให้สามารถใช้ประโยชน์จาก
PSP ได้อย่างเต็มที่
• ถ้าขาดข้อมูลที่ดีเราจะไม่สามารถ
– วิเคราะห์กระบวนการได้อย่างถูกต้อง
– รู้ได้ว่าเราทำางานเป็นอย่างไร
– ปรับปรุงกระบวนการพัฒนาของเราอย่างเหมาะสม
Revision 2.1 03 PSP0การใช้งาน 35
ความแม่นยำากับความเที่ยงตรง
• ความแม่นยำา
– เกี่ยวข้องกับการใช้ตัววัดที่เหมาะสม
– เช่น เราวัดเวลาในการทำางานจากเวลาที่ใช้จริง แต่
ไม่วัดจากระยะเวลาที่ถูกขัดจังหวะ
• ความเที่ยงตรง
– เกี่ยวข้องกับการรวบรวมข้อมูลที่ระดับความละเอียด
ที่เหมาะสม
– เช่น เราจะวัดระยะเวลาในหน่วยนาทีสำาหรับงานที่
คาดว่าจะใช้เวลาไม่เกิน 1 สัปดาห์ แต่จะไม่ใช้
หน่วยนาทีสำาหรับงานที่คาดว่าจะใช้เวลา 1 ปี
Revision 2.1 03 PSP0การใช้งาน 36
ความแม่นยำากับความเที่ยงตรง
แม่นยำา
และเที่ยง
ตรง
ไม่แม่นยำา
แต่เที่ยงตรง
แม่นยำาแต่
ไม่เที่ยง
ตรง
ไม่แม่นยำา
และไม่เที่ยง
ตรง
Revision 2.1 03 PSP0การใช้งาน 37
ตัวอย่างการบันทึกข้อมูล
• มานะ ตั้งใจเรียนเป็นนักศึกษาวิชา SE514 ใช้ PSP0 ในการ
เขียนโปรแกรมเพื่อส่งอาจารย์สะอาด สอนดี
• มานะเริ่มการวางแผนโดยบันทึกเวลาเริ่มต้นในแบบฟอร์มบันทึก
เวลา
• หลังอ่านโจทย์ซึ่งจะให้เขียนโปรแกรมเพื่อคำานวณค่าเฉลี่ย
มานะประมาณว่าจะใช้เวลา 120 นาทีถ้าเขียนด้วยภาษา Java
มานะจึงบันทึก 120 ลงในช่องเวลาทั้งหมดที่วางแผนว่าจะใช้
ของแบบฟอร์มสรุปแผนโครงการ
• ระหว่างที่ทำาการวางแผนอยู่นั้น มาลีได้โทรศัพท์มา มานะได้
สนทนากับมาลีร่วม 2 นาทีแล้วกลับมาทำางานต่อ
• จากนั้นก็บันทึกเวลาสิ้นสุดการวางแผนในแบบฟอร์มบันทึกเวลา
Revision 2.1 03 PSP0การใช้งาน 38
ตัวอย่างการบันทึกข้อมูล
Time Recording Log
Student มานะ ตั้งใจเรียน Date 9 ม.ค. 2553
Program คำานวณค่าเฉลี่ย Program # 1
Instructor อาจารย์สะอาด สอนดี Language Java
Projec
t
Phase
Start
Date
and
Time
Int.
Time
Stop
Date
and
Time
Delt
a
Time
Comments
1 Plan 9 ม.ค. 53
13:00:04
Revision 2.1 03 PSP0การใช้งาน 39
ตัวอย่างการบันทึกข้อมูล
PSP0 Project Plan Summary
Student มานะ ตั้งใจเรียน Date 9 ม.ค. 2553
Program คำานวณค่าเฉลี่ย Program # 1
Instructor อาจารย์สะอาด สอนดี Language Java
Time in Phase (min.) Plan Actual To Date To Date
%
Planning
Design
Code
Compile
Test
Postmortem
Total 120
Revision 2.1 03 PSP0การใช้งาน 40
ตัวอย่างการบันทึกข้อมูล
Time Recording Log
Student มานะ ตั้งใจเรียน Date 9 ม.ค. 2553
Program คำานวณค่าเฉลี่ย Program # 1
Instructor อาจารย์สะอาด สอนดี Language Java
Projec
t
Phase
Start
Date
and
Time
Int.
Time
Stop
Date
and
Time
Delt
a
Time
Comments
1 Plan 9 ม.ค. 53
13:00:04
2 9 ม.ค. 53
13:04:28
2:24 พูดโทรศัพท์กับมาลี
Revision 2.1 03 PSP0การใช้งาน 41
ตัวอย่างการบันทึกข้อบกพร่อง
• หลังจากเขียนโปรแกรมเสร็จแล้ว มานะเริ่มคอมไพล์
โปรแกรม
• คอมไพเลอร์แสดงข้อผิดพลาดว่าไม่พบสัญลักษณ์
Systemout
• สาเหตุก็คือ ตก . ระหว่าง System กับ out
• มานะแก้ไข แล้วคอมไพล์อีกครั้ง คราวนี้แสดงข้อผิด
พลาดว่าไม่มี package Syste
• สาเหตุก็คือ ระหว่างการแก้ไขข้อบกพร่องที่ 1 มานะได้
ทำาสร้างข้อบกพร่องที่ 2 คือ พิมพ์ . ทับไปที่ตัวอักษร m
Revision 2.1 03 PSP0การใช้งาน 42
ตัวอย่างการบันทึกข้อมูล
Defect Recording Log
Student มานะ ตั้งใจเรียน Date 9 ม.ค. 2553
Program คำานวณค่าเฉลี่ย Program # 1
Instructor อาจารย์สะอาด สอนดี Language Java
  Project Date Numbe
r
Type Inject Remove Fix Time Fix Ref.
  1 9 ม.ค. 53 1 20 Code Compile 1
Description: ตก . ระหว่าง System และ out บรรทัดที่ 10.
  Project Date Number Type Inject Remove Fix Time Fix Ref.
  1 9 ม.ค. 53 2 20 Compile Compile 1 1
Description: พิมพ์ . ทับตัวอักษร m ระหว่างแก้ไข Systemout บรรทัดที่ 10.
Revision 2.1 03 PSP0การใช้งาน 43
ความผิดพลาดที่พบบ่อย
• ไม่ได้บันทึกเวลาทันที
• ข้ามเฟสหรือสลับลำาดับเฟสการทำางาน
• ไม่ได้บันทึกข้อบกพร่อง
• เข้าใจผิดเรื่องเวลาในการแก้ไขข้อบกพร่อง
• สับสนระหว่างเฟสกับกิจกรรม
• บันทึกเฟสผิดเมื่อพัฒนาแบบทำาจนเสร็จทีละส่วน
Revision 2.1 03 PSP0การใช้งาน 44
เวลาในการแก้ไขข้อผิดพลาด
• เวลาในการแก้ไขข้อผิดพลาด = เวลาที่ใช้ในการ
ค้นหาและแก้ไขข้อบกพร่อง
• ตัวอย่าง
10:00 พบข้อบกพร่องระหว่างคอมไพล์โปรแกรม
10:20 เปิดโปรแกรมมาแก้ไข
10:30 แก้ไขข้อผิดพลาด
10:31 คอมไพล์ผ่าน
คำาถาม: เวลาในการแก้ไขข้อผิดพลาดเป็นเท่าไร?
คำาตอบ: 11 นาที
Revision 2.1 03 PSP0การใช้งาน 45
เฟส และ กิจกรรม
ตัวอย่าง:
ระหว่างคอมไพล์โปรแกรม ปรีชาพบว่าเขาต้อง
ออกแบบและเขียนโปรแกรมบางส่วนใหม่
คำาถาม: ปรีชาทำากิจกรรมใด?
คำาตอบ: แก้ไขข้อบกพร่อง ออกแบบและเขียนโปรแกรม
คำาถาม: โปรแกรมของปรีชาอยู่ในเฟสไหน?
คำาตอบ: คอมไพล์
Revision 2.1 03 PSP0การใช้งาน 46
การบันทึกเมื่อพัฒนาโปรแกรม
แบบทำาทีละส่วน
• ปิติแบ่งการพัฒนาโปรแกรม
เป็น 2 ส่วนคือ โมดูล A และ
B
• ปิติเขียน คอมไพล์ และ
ทดสอบโมดูลจนผ่าน
• ต่อมาขณะกำาลังเขียนโค้ด
ของโมดูล B ปิติพบและ
แก้ไขข้อบกพร่องในโมดูล A
คำาถาม: ข้อบกพร่องถูกขจัดใน
เฟสไหน
คำาตอบ: Test (ของโมดูล A)
ออกแบบ
เขียนโค้ด
คอมไพล์
ทดสอบ
เขียนโค้ด
คอมไพล์
ทดสอบ
โมดูล A โมดูล B
Revision 2.1 03 PSP0การใช้งาน 47
การบันทึกข้อบกพร่องที่เกิดจากการ
แก้ไขข้อบกพร่องก่อนหน้า
• ระหว่างการทดสอบโปรแกรม กนกพบว่าเขาเขียนตรรกะบาง
ส่วนของโปรแกรมไม่ถูกต้อง เขาจึงออกแบบ และเขียน
โปรแกรมส่วนดังกล่าวใหม่
• ระหว่างการคอมไพล์โปรแกรมที่แก้ไขใหม่ คอมไพเลอร์แสดง
ข้อผิดพลาด ซึ่งเขาก็แก้ไขแล้วคอมไพล์ใหม่อีกครั้ง ปรากฏว่า
คอมไพล์ผ่าน
คำาถาม: ข้อผิดพลาดใหม่นี้เกิดในเฟสไหน
คำาตอบ: ทดสอบ (เนื่องจากเกิดขณะที่โปรแกรมอยู่ในเฟสทดสอบ)
คำาถาม: ข้อผิดพลาดใหม่นี้ขจัดในเฟสไหน
คำาตอบ: ทดสอบ (เนื่องจากขจัดขณะที่โปรแกรมอยู่ในเฟสทดสอบ)
Revision 2.1 03 PSP0การใช้งาน 48
สรุป
• เราเรียนรู้สิ่งต่อไปนี้ใน PSP0
– หลักการของกระบวนการ
– การวัดขั้นพื้นฐาน
– การเก็บข้อมูลการทำางาน
– เก็บข้อมูลเพื่อใช้อ้างอิงในอนาคต
• ข้อมูลมีคุณค่าก็ต่อเมื่อข้อมูลนั้นถูกต้อง แม่นยำา
คงเส้นคงวา และครบถ้วนสมบูรณ์

More Related Content

Viewers also liked

Software archiecture lecture04
Software archiecture   lecture04Software archiecture   lecture04
Software archiecture lecture04
Luktalja
 
Software archiecture lecture02
Software archiecture   lecture02Software archiecture   lecture02
Software archiecture lecture02
Luktalja
 
Software archiecture lecture05
Software archiecture   lecture05Software archiecture   lecture05
Software archiecture lecture05
Luktalja
 
Software archiecture lecture06
Software archiecture   lecture06Software archiecture   lecture06
Software archiecture lecture06
Luktalja
 
Software archiecture lecture07
Software archiecture   lecture07Software archiecture   lecture07
Software archiecture lecture07
Luktalja
 

Viewers also liked (6)

Software archiecture lecture04
Software archiecture   lecture04Software archiecture   lecture04
Software archiecture lecture04
 
Software archiecture lecture02
Software archiecture   lecture02Software archiecture   lecture02
Software archiecture lecture02
 
Software archiecture lecture05
Software archiecture   lecture05Software archiecture   lecture05
Software archiecture lecture05
 
Software archiecture lecture06
Software archiecture   lecture06Software archiecture   lecture06
Software archiecture lecture06
 
Software archiecture lecture07
Software archiecture   lecture07Software archiecture   lecture07
Software archiecture lecture07
 
ATAM
ATAMATAM
ATAM
 

Similar to 03 using psp0

ใบความรู้ที่2 การวิเคราะห์ขั้นตอนวิธีการแก้ปัญหา
ใบความรู้ที่2 การวิเคราะห์ขั้นตอนวิธีการแก้ปัญหาใบความรู้ที่2 การวิเคราะห์ขั้นตอนวิธีการแก้ปัญหา
ใบความรู้ที่2 การวิเคราะห์ขั้นตอนวิธีการแก้ปัญหา
คีตะบลู รักคำภีร์
 
C:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้น
C:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้นC:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้น
C:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้น
-
 
รูปแบบของรอบไบลเออร์และฮอลล์(แก้ไขแล้ว)
รูปแบบของรอบไบลเออร์และฮอลล์(แก้ไขแล้ว)รูปแบบของรอบไบลเออร์และฮอลล์(แก้ไขแล้ว)
รูปแบบของรอบไบลเออร์และฮอลล์(แก้ไขแล้ว)
ณัฐวุฒิ โคตรพัฒน์
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอม
nuknook
 
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศการแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
Meaw Sukee
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอม
Passawan' Koohar
 
Present training
Present trainingPresent training
Present training
Meaw Sukee
 
Present training
Present trainingPresent training
Present training
Meaw Sukee
 
การพัฒนาโปรแกรม วิชญา
การพัฒนาโปรแกรม วิชญาการพัฒนาโปรแกรม วิชญา
การพัฒนาโปรแกรม วิชญา
winewic199
 

Similar to 03 using psp0 (20)

Q1
Q1Q1
Q1
 
หลักการเขียนโปรแกรม
หลักการเขียนโปรแกรมหลักการเขียนโปรแกรม
หลักการเขียนโปรแกรม
 
ใบความรู้ การเขียนโปรแกรม
ใบความรู้ การเขียนโปรแกรมใบความรู้ การเขียนโปรแกรม
ใบความรู้ การเขียนโปรแกรม
 
ใบความรู้ที่2 การวิเคราะห์ขั้นตอนวิธีการแก้ปัญหา
ใบความรู้ที่2 การวิเคราะห์ขั้นตอนวิธีการแก้ปัญหาใบความรู้ที่2 การวิเคราะห์ขั้นตอนวิธีการแก้ปัญหา
ใบความรู้ที่2 การวิเคราะห์ขั้นตอนวิธีการแก้ปัญหา
 
C:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้น
C:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้นC:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้น
C:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้น
 
1
11
1
 
รูปแบบของรอบไบลเออร์และฮอลล์(แก้ไขแล้ว)
รูปแบบของรอบไบลเออร์และฮอลล์(แก้ไขแล้ว)รูปแบบของรอบไบลเออร์และฮอลล์(แก้ไขแล้ว)
รูปแบบของรอบไบลเออร์และฮอลล์(แก้ไขแล้ว)
 
บทที่ 1
บทที่ 1บทที่ 1
บทที่ 1
 
Chepter3
Chepter3Chepter3
Chepter3
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอม
 
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศการแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอม
 
DP-Developer
DP-DeveloperDP-Developer
DP-Developer
 
Setup project (csharp)
Setup project (csharp)Setup project (csharp)
Setup project (csharp)
 
บทที่ 1
บทที่ 1บทที่ 1
บทที่ 1
 
Present training
Present trainingPresent training
Present training
 
Present training
Present trainingPresent training
Present training
 
กระบวนการเทคโนโลยีสารสนเทศ
กระบวนการเทคโนโลยีสารสนเทศกระบวนการเทคโนโลยีสารสนเทศ
กระบวนการเทคโนโลยีสารสนเทศ
 
11
1111
11
 
การพัฒนาโปรแกรม วิชญา
การพัฒนาโปรแกรม วิชญาการพัฒนาโปรแกรม วิชญา
การพัฒนาโปรแกรม วิชญา
 

03 using psp0

  • 1. 03 การใช้งาน PSP0 สงวนลิขสิทธิ์ 2551, 2552, 2553 โดยสุรเดช จิตประไพกุลศาล
  • 2. Revision 2.1 03 PSP0การใช้งาน 2 หัวข้อ • การใช้กระบวนการ • กระบวนการ PSP0 • การบันทึกข้อมูล • ตัวอย่างข้อมูล • ข้อควรระวังในการบันทึกข้อมูล • สรุป
  • 3. Revision 2.1 03 PSP0การใช้งาน 3 การปฏิบัติตามกระบวนการ • ตรวจเกณฑ์การเริ่มต้นก่อนเริ่มต้นเฟส • บันทึกเวลาเริ่มต้น • ดำาเนินกิจกรรมและบันทึกข้อบกพร่องที่พบและแก้ไข • ตรวจเกณฑ์การสิ้นสุดก่อนจะจบเฟส • บันทึกเวลาสิ้นสุด บันทึกเวลา เริ่มต้น ดำาเนินภารกิจ บันทึกข้อ บกพร่อง บันทึกเวลา สิ้นสุด ตรวจ เกณฑ์การ เริ่มต้น ตรวจ เกณฑ์การ สิ้นสุด
  • 4. Revision 2.1 03 PSP0การใช้งาน 4 กระบวนการ PSP • PSP ไม่ใช่กระบวนการสำาหรับการเขียนโปรแกรม แต่ เป็นกระบวนการสำาหรับเรียนรู้เรื่องกระบวนการ • PSP เป็นตัวอย่างของกระบวนการ ซึ่งบางคนอาจนำา ไปใช้ในงานของตนได้เลย ในขณะที่บางคนต้องปรับ PSP ให้เหมาะสมกับสภาพการทำางานของตน • หลังศึกษา PSP แล้วเราควรที่จะ – สำารวจตรวจสอบข้อมูล PSP ของเราเอง – ทบทวนสิ่งที่เรียนรู้แล้วนำามาปรับใช้กับตนเอง – ปรับ PSP ให้สอดคล้องกับความต้องการของเรา
  • 5. Revision 2.1 03 PSP0การใช้งาน 5 กระบวนการ PSP0 • PSP0 เป็นกระบวนการอย่างง่ายๆ ประกอบด้วย – วางแผน – พัฒนาโปรแกรมด้วยวิธีการที่ใช้ในปัจจุบัน – รวบรวมข้อมูลเกี่ยวกับเวลาและข้อบกพร่องจากงาน – จัดทำารายงานสรุป
  • 6. Revision 2.1 03 PSP0การใช้งาน 6 วัตถุประสงค์ของ PSP0 • เพื่อแสดงให้เห็นถึงการใช้กระบวนการที่ กำาหนดในการเขียนโปรแกรมขนาดเล็ก • เพื่อสอดแทรกการวัดขั้นพื้นฐานเข้าสู่ กระบวนการพัฒนาซอฟต์แวร์ • เพื่อให้มีการเปลี่ยนแปลงวิธีปฏิบัติน้อยที่สุด • เพื่อรวบรวมข้อมูลสำาหรับใช้อ้างอิง (baseline)
  • 7. Revision 2.1 03 PSP0การใช้งาน 7 กระบวนการ PSP0 ใน PSP0 เราจะเรียนรู้ • การปฏิบัติตามกระบวนการที่กำาหนดไว้ • การบันทึกเวลา • การบันทึกข้อบกพร่อง (defect) • ประสิทธิภาพการทำางานเบื้องต้น (productivity) • สมรรถนะในการทำางาน (performance)
  • 8. Revision 2.1 03 PSP0การใช้งาน 8 ขั้นตอนของ PSP0 วางแผน ออกแบบ เขียนโปรแกรม คอมไพล์ ทดสอบ สรุปจบ แบบ ฟอร์ม ผลสรุป โครงการ (ตัววัด ต่างๆ) ความต้องการ ซอฟต์แวร์ คู่มือการ ปฏิบัติ งาน ใช้ เป็น แนว ทาง มาตรฐา น ใช้ เป็น แนว ทาง พัฒนา ดัดแปลงมาจาก Intro ductio n to PSPand TSP, Software
  • 9. Revision 2.1 03 PSP0การใช้งาน 9 องค์ประกอบของกระบวนการ PSP0 • คู่มือการปฏิบัติ 4 กระบวนการ – เพื่อเป็นแนวทางในการปฏิบัติตามกระบวนการ • แบบฟอร์ม 3 แบบ – เพื่อช่วยเก็บรวบรวมข้อมูล • มาตรฐาน 1 มาตรฐาน – เพื่อเป็นแนวทางในการปฏิบัติงาน • ตัววัดพื้นฐาน 2 ตัว – เวลา และ ข้อบกพร่อง
  • 10. Revision 2.1 03 PSP0การใช้งาน 10 ลำาดับ กิจกรรม รายละเอียด 1 วางแผน จัดทำาหรือจัดหารายการความต้องการ ประมาณเวลาที่จะใช้ในการพัฒนาแล้วบันทึกในแบบฟอร์มสรุปแผนโครงการ บันทึกเวลาในแบบฟอร์มบันทึกเวลา 2 พัฒนา ออกแบบโปรแกรม เขียนโปรแกรม คอมไพล์โปรแกรม และแก้ไขข้อบกพร่องที่พบ ทดสอบโปรแกรม และแก้ไขข้อบกพร่องที่พบ บันทึกเวลาในแบบฟอร์มบันทึกเวลา 3 สรุปจบ บันทึกสรุปข้อมูลเวลาและข้อบกพร่องในแบบฟอร์มสรุปแผนโครงการให้สมบูรณ์ เกณฑ์การสิ้นสุด โปรแกรมผ่านการทดสอบอย่างถี่ถ้วน แบบฟอร์มสรุปแผนโครงการมีข้อมูลครบถ้วนสมบูรณ์ แบบฟอร์มบันทึกเวลาและแบบฟอร์มบันทึกข้อบกพร่องมีข้อมูลครบถ้วนสมบูรณ์ จุดประสงค์ เพื่อเป็นแนวทางการพัฒนาโปรแกรมระดับโมดูล เกณฑ์การเริ่ม ต้น โจทย์หรือความต้องการ แบบฟอร์มสรุปแผนโครงการ PSP0 แบบฟอร์มบันทึกเวลาและแบบฟอร์มบันทึกข้อบกพร่อง มาตรฐานข้อบกพร่อง นาฬิกาจับเวลา (ถ้าจำาเป็น) คู่มือการปฏิบัติงาน PSP0 ที่มา: Watts S. Humphrey, PSP: A Self-Improvement Process for Engineers, Addison-Wesley 2005
  • 11. Revision 2.1 03 PSP0การใช้งาน 11 กระบวนการ PSP0 วางแผน พัฒนา สรุปจบ PSP0 Process Script รวบรวมความ ต้องการ ประมาณ ทรัพยากร PSP0 Planning Script ออกแบบ เขียนโค้ด คอมไพล์ ทดสอบ PSP0 Development Script ตรวจข้อมูลข้อ บกพร่อง ตรวจความคงเส้น คงวาของข้อมูล ตรวจสอบข้อมูล เวลา PSP0 Postmortem Script
  • 12. Revision 2.1 03 PSP0การใช้งาน 12 เฟสใน PSP0 • PSP0 ประกอบด้วย 6 เฟส: – วางแผน – ออกแบบ – เขียนโค้ด – คอมไพล์ – ทดสอบ – สรุป ออกแบบ เขียนโค้ด คอมไพล์ ทดสอบ วางแผน สรุป
  • 13. Revision 2.1 03 PSP0การใช้งาน 13 เฟสใน PSP0 • วางแผน – วางแผนสำาหรับการพัฒนาโปรแกรมตามความ ต้องการ • ออกแบบ – จัดทำาแบบตามความต้องการ • เขียนโปรแกรม – แปลงแบบให้เป็นชุดคำาสั่ง
  • 14. Revision 2.1 03 PSP0การใช้งาน 14 เฟสใน PSP0 • คอมไพล์ – แปลงชุดคำาสั่งให้เป็นโปรแกรมพร้อมใช้งาน • ทดสอบ – ตรวจดูว่าโปรแกรมทำางานสอดคล้องกับความ ต้องการหรือไม่ • สรุป – สรุปและวิเคราะห์ข้อมูล
  • 15. Revision 2.1 03 PSP0การใช้งาน 15 ลำาดับของเฟส • สาเหตุที่เฟสมีลำาดับดังนี้เพราะ – เราไม่สามารถทดสอบโค้ดก่อนคอม ไพล์ – เราไม่สามารถคอมไพล์ก่อนเขียน โค้ด – ออกแบบหลังเขียนโค้ดก็เปล่า ประโยชน์ Design Code Compile Test
  • 16. Revision 2.1 03 PSP0การใช้งาน 16 เกณฑ์การเริ่มต้นและสิ้นสุด เฟส เกณฑ์การเริ่มต้นและสิ้นสุด วางแผน เริ่มเมื่อ เริ่มการวางแผน สิ้นสุดเมื่อ แผนสมบูรณ์ ออกแบบ เริ่มเมื่อ เริ่มการออกแบบ สิ้นสุดเมื่อ แบบสมบูรณ์ เขียนโค้ด เริ่มเมื่อ เริ่มการเขียนโค้ด สิ้นสุดเมื่อ โค้ดเขียนเสร็จสมบูรณ์ คอมไพล์ เริ่มเมื่อ เริ่มคอมไพล์ครั้งแรก สิ้นสุดเมื่อ คอมไพล์ผ่าน ทดสอบ เริ่มเมื่อ เริ่มทดสอบครั้งแรก สิ้นสุดเมื่อ ผ่านการทดสอบทั้งหมดโดยไม่มีข้อผิด พลาด สรุป เริ่มเมื่อ เริ่มสรุปการทำางาน สิ้นสุดเมื่อ การสรุปเสร็จสิ้น จาก Dan Burton, Introduction to the TSP and the PSP, SEI, 2005
  • 17. Revision 2.1 03 PSP0การใช้งาน 17 ตัวอย่างที่ 1 ใช้ PSP0 กับการทำางาน ตามลำาดับ • สำาหรับโปรแกรมขนาด เล็กเราก็อาจจะใช้วิธี ทำางานตามลำาดับจนเสร็จ (Waterfall) วางแผน พัฒนา สรุป ออกแบบ เขียนโค้ด คอมไพล์ ทดสอบ
  • 18. Revision 2.1 03 PSP0การใช้งาน 18 ตัวอย่างที่ 2 ใช้ PSP0 กับการเขียน และคอมไพล์ทีละส่วน • ถ้าโปรแกรมขนาด ใหญ่ขึ้น เราอาจจะ ออกแบบก่อน • จากนั้นแยกเขียน โค้ดและคอมไพล์ ทีละโมดูล • แล้วทดสอบหลัง จากคอมไพล์ทุก โมดูล วางแผน พัฒนา สรุป ออกแบบ เขียนโค้ด คอมไพล์ เขียนโค้ด คอมไพล์ ทดสอบ
  • 19. Revision 2.1 03 PSP0การใช้งาน 19 ตัวอย่างที่ 3 ใช้ PSP0 กับการเขียน คอมไพล์และทดสอบทีละส่วน • หรือ เราอาจจะ ออกแบบแล้ว • ค่อยเขียนโค้ด คอมไพล์ และ ทดสอบ ทีละโมดูล จนครบทุกโมดูล วางแผน พัฒนา สรุป ออกแบบ เขียนโค้ด คอมไพล์ เขียนโค้ด คอมไพล์ ทดสอบทดสอบ
  • 20. Revision 2.1 03 PSP0การใช้งาน 20 ตัวอย่างที่ 4 ใช้ PSP0 กับการพัฒนา เป็นรอบๆ (Iterative) • ถ้าโปรแกรมขนาด ใหญ่มาก เราอาจ จะแยกพัฒนาทีละ โมดูล (Iterative) โดย ออกแบบ เขียนโค้ด คอม ไพล์ และทดสอบ ทีละโมดูลจนครบ ทุกโมดูล วางแผน พัฒนา สรุป ออกแบบ เขียนโค้ด คอมไพล์ เขียนโค้ด คอมไพล์ ทดสอบทดสอบ ออกแบบ
  • 21. Revision 2.1 03 PSP0การใช้งาน 21 แบบฟอร์ม PSP0 • ใน PSP0 เราใช้แบบฟอร์มต่อไปนี้ในการ รวบรวมข้อมูล – แบบฟอร์มสรุปแผนโครงการ PSP0 • สรุปผลการทำางาน – แบบฟอร์มบันทึกเวลาการทำางาน • บันทึกเวลาในการทำางาน – แบบฟอร์มบันทึกข้อบกพร่อง • บันทึกรายละเอียดข้อบกพร่องที่เกิดขึ้น
  • 22. Revision 2.1 03 PSP0การใช้งาน 22 แบบฟอร์มสรุปแผนโครงการ PSP0 Student Date Program Program # Instructor Language Time in Phase (min.) Plan Actual To Date To Date % Planning Design Code Compile Test Postmortem Total
  • 23. Revision 2.1 03 PSP0การใช้งาน 23 แบบฟอร์มสรุปแผนโครงการ PSP0 Defects Injected Actual To Date To Date % Planning Design Code Compile Test Total Development
  • 24. Revision 2.1 03 PSP0การใช้งาน 24 แบบฟอร์มสรุปแผนโครงการ PSP0 Defects Removed Actual To Date To Date % Planning Design Code Compile Test Total Development After Development
  • 25. Revision 2.1 03 PSP0การใช้งาน 25 แบบฟอร์มบันทึกเวลาการทำางาน Student Date Program Program # Instructor Language Projec t Phase Start Date and Time Int. Time Stop Date and Time Delt a Time Comments
  • 26. Revision 2.1 03 PSP0การใช้งาน 26 แบบฟอร์มบันทึกข้อบกพร่อง Student Date Program Program # Instructor Language   Project Date Numbe r Type Inject Remove Fix Time Fix Ref.   Description:   Project Date Numbe r Type Inject Remove Fix Time Fix Ref.   Description:
  • 27. Revision 2.1 03 PSP0การใช้งาน 27 มาตรฐานใน PSP0 ใน PSP0 มีเพียงมาตรฐานเดียวคือ • มาตรฐานชนิดข้อบกพร่อง (Defect Type Standard) ใช้เพื่อจำาแนกชนิดของข้อบกพร่อง เพื่อสะดวกในการ ปรับปรุงแก้ไข
  • 28. Revision 2.1 03 PSP0การใช้งาน 28 รหั ส ชนิด สิ่งที่ผิดพลาด 10 Documentation เอกสาร (Document) หมายเหตุ (Comment) ข้อความต่างๆ (Message) คู่มือ (Manual) 20 Syntax ตัวสะกด (Spelling) เครื่องหมายวรรคตอนเช่น comma หรือ semicolon พิมพ์ผิด (typos) รูปแบบคำาสั่ง (instruction formats) 30 Build, Package การจัดการความเปลี่ยนแปลง (Change management) ไลบรารี (library) การควบคุมเวอร์ชั่น (version control) โปรเจคไฟล์ (project file, make file, etc) 40 Assignment การประกาศตัวแปร (Declaration) การตั้งชื่อ (duplicate name) ขอบเขต (scope) การกำาหนดค่าเริ่มต้น (initialization) การดำาเนินการ เมื่อเสร็จสิ้นการใช้งาน (finalization) ช่วงค่า (range) 50 Interface การเรียกใช้ฟังก์ชั่น (Procedure calls) การติดต่อกับ input/output (I/O) รูปแบบการแสดงผล (User format) 60 Checking ข้อความแสดงความผิดพลาด (Error messages) การตรวจที่ไม่เพียง พอ (inadequate checks) 70 Data โครงสร้าง (Structure) เนื้อหา (content) 80 Function ตรรกะ (Logic) พ้อยเตอร์ (pointers) การวนรอบ (loops) การเรียกใช้ ตัวเอง (recursion) การคำานวณ (computation) หน้าที่การทำางาน (function) 90 System ปัญหาของระบบซึ่งอยู่นอกเหนือจากโปรแกรม เช่น Configuration ของ ระบบปฏิบัติการ ฮาร์ดแวร์ หน่วยความจำา 100 Environment ปัญหาของ compiler, editor, IDE, test tool หรือสิ่งอื่นๆ ที่เกี่ยวข้องกับ environment ที่ใช้ในการพัฒนาโปรแกรม
  • 29. Revision 2.1 03 PSP0การใช้งาน 29 ตัววัดใน PSP0 • ข้อมูลปฐมภูมิที่เรารวบรวมใน PSP0 ได้แก่ – เวลาที่ใช้ในแต่ละเฟส • เริ่มและสิ้นสุดเมื่อไร • ถูกขัดจังหวะไปเท่าไร – ข้อบกพร่อง • ชนิดไหน • เกิดที่เฟสไหน • ขจัดในเฟสไหน • เวลาที่ใช้ในการค้นหาและขจัดข้อบกพร่อง • รายละเอียดของสาเหตุ
  • 30. Revision 2.1 03 PSP0การใช้งาน 30 ตัววัดอื่นๆ • จากข้อมูลพื้นฐานที่เก็บรวบรวมใน PSP0 เราสามารถ คำานวณตัววัดอื่นๆที่เป็นประโยชน์ได้เช่น – เปอร์เซ็นของเวลาในแต่ละเฟส (To-Date % Time-in- phase) – เปอร์เซ็นของข้อบกพร่องที่เกิด (To-Date % Defect injected) – เปอร์เซ็นของข้อบกพร่องที่ขจัด (To-Date % Defect removed) – ต้นทุนคุณภาพ (Cost of Quality หรือ COQ) – อัตราการเกิดข้อบกพร่อง (Defect Injection Rate) – อัตราการขจัดข้อบกพร่อง (Defect Removal Rate) – ต้นทุนในการดำาเนินธุรกิจ (Overhead)
  • 31. Revision 2.1 03 PSP0การใช้งาน 31 ตัววัดที่ได้จากการคำานวณใน PSP0 โดยจะใช้เป็นจุดอ้างอิงในอนาคต • เปอร์เซ็นของเวลาในแต่ละเฟส (To-Date % Time-in- phase) – แสดงถึงสัดส่วนการใช้เวลาในแต่ละเฟส • เปอร์เซ็นของข้อบกพร่องที่เกิด (To-Date % Defect injected) – แสดงถึงสัดส่วนของการเกิดข้อบกพร่องในแต่ละเฟส • เปอร์เซ็นของข้อบกพร่องที่ขจัด (To-Date % Defect removed) – แสดงถึงสัดส่วนของการขจัดข้อบกพร่องในแต่ละเฟส
  • 32. Revision 2.1 03 PSP0การใช้งาน 32 ตัววัดอื่นๆที่สามารถคำานวณได้ใน PSP0 แต่ยังไม่ใช้ใน PSP0 • ต้นทุนคุณภาพ (Cost of Quality หรือ COQ) – สัดส่วนต้นทุนของความผิดพลาด (Percent Failure COQ) • แสดงถึงค่าใช้จ่ายที่เกิดขึ้นเมื่อมีความบกพร่องเกิดขึ้นทำาให้จะต้อง เสียเวลา และค่าใช้จ่ายในการแก้ไข • อัตราการเกิดข้อบกพร่อง (Defect Injection Rate) – แสดงถึงอัตราการเกิดข้อบกพร่องต่อหน่วยเวลา • อัตราการขจัดข้อบกพร่อง (Defect Removal Rate) – แสดงถึงอัตราในการขจัดข้อบกพร่องต่อหน่วยเวลา • ต้นทุนในการดำาเนินธุรกิจ (Overhead) – แสดงถึงค่าใช้จ่ายในการวางแผนและสรุปโครงากร
  • 33. Revision 2.1 03 PSP0การใช้งาน 33 วิธีการบันทึกข้อมูล • บันทึกข้อมูลขณะทำางาน • พยายามบันทึกข้อมูลให้เที่ยงตรงแม่นยำา • บันทึกเฟสที่โปรแกรมอยู่ไม่ใช่กิจกรรมที่ทำา
  • 34. Revision 2.1 03 PSP0การใช้งาน 34 ความสำาคัญของการบันทึกข้อมูล • ข้อมูลที่ถูกต้อง เที่ยงตรง แม่นยำา คงเส้นคงวา และสมบูรณ์จะช่วยให้สามารถใช้ประโยชน์จาก PSP ได้อย่างเต็มที่ • ถ้าขาดข้อมูลที่ดีเราจะไม่สามารถ – วิเคราะห์กระบวนการได้อย่างถูกต้อง – รู้ได้ว่าเราทำางานเป็นอย่างไร – ปรับปรุงกระบวนการพัฒนาของเราอย่างเหมาะสม
  • 35. Revision 2.1 03 PSP0การใช้งาน 35 ความแม่นยำากับความเที่ยงตรง • ความแม่นยำา – เกี่ยวข้องกับการใช้ตัววัดที่เหมาะสม – เช่น เราวัดเวลาในการทำางานจากเวลาที่ใช้จริง แต่ ไม่วัดจากระยะเวลาที่ถูกขัดจังหวะ • ความเที่ยงตรง – เกี่ยวข้องกับการรวบรวมข้อมูลที่ระดับความละเอียด ที่เหมาะสม – เช่น เราจะวัดระยะเวลาในหน่วยนาทีสำาหรับงานที่ คาดว่าจะใช้เวลาไม่เกิน 1 สัปดาห์ แต่จะไม่ใช้ หน่วยนาทีสำาหรับงานที่คาดว่าจะใช้เวลา 1 ปี
  • 36. Revision 2.1 03 PSP0การใช้งาน 36 ความแม่นยำากับความเที่ยงตรง แม่นยำา และเที่ยง ตรง ไม่แม่นยำา แต่เที่ยงตรง แม่นยำาแต่ ไม่เที่ยง ตรง ไม่แม่นยำา และไม่เที่ยง ตรง
  • 37. Revision 2.1 03 PSP0การใช้งาน 37 ตัวอย่างการบันทึกข้อมูล • มานะ ตั้งใจเรียนเป็นนักศึกษาวิชา SE514 ใช้ PSP0 ในการ เขียนโปรแกรมเพื่อส่งอาจารย์สะอาด สอนดี • มานะเริ่มการวางแผนโดยบันทึกเวลาเริ่มต้นในแบบฟอร์มบันทึก เวลา • หลังอ่านโจทย์ซึ่งจะให้เขียนโปรแกรมเพื่อคำานวณค่าเฉลี่ย มานะประมาณว่าจะใช้เวลา 120 นาทีถ้าเขียนด้วยภาษา Java มานะจึงบันทึก 120 ลงในช่องเวลาทั้งหมดที่วางแผนว่าจะใช้ ของแบบฟอร์มสรุปแผนโครงการ • ระหว่างที่ทำาการวางแผนอยู่นั้น มาลีได้โทรศัพท์มา มานะได้ สนทนากับมาลีร่วม 2 นาทีแล้วกลับมาทำางานต่อ • จากนั้นก็บันทึกเวลาสิ้นสุดการวางแผนในแบบฟอร์มบันทึกเวลา
  • 38. Revision 2.1 03 PSP0การใช้งาน 38 ตัวอย่างการบันทึกข้อมูล Time Recording Log Student มานะ ตั้งใจเรียน Date 9 ม.ค. 2553 Program คำานวณค่าเฉลี่ย Program # 1 Instructor อาจารย์สะอาด สอนดี Language Java Projec t Phase Start Date and Time Int. Time Stop Date and Time Delt a Time Comments 1 Plan 9 ม.ค. 53 13:00:04
  • 39. Revision 2.1 03 PSP0การใช้งาน 39 ตัวอย่างการบันทึกข้อมูล PSP0 Project Plan Summary Student มานะ ตั้งใจเรียน Date 9 ม.ค. 2553 Program คำานวณค่าเฉลี่ย Program # 1 Instructor อาจารย์สะอาด สอนดี Language Java Time in Phase (min.) Plan Actual To Date To Date % Planning Design Code Compile Test Postmortem Total 120
  • 40. Revision 2.1 03 PSP0การใช้งาน 40 ตัวอย่างการบันทึกข้อมูล Time Recording Log Student มานะ ตั้งใจเรียน Date 9 ม.ค. 2553 Program คำานวณค่าเฉลี่ย Program # 1 Instructor อาจารย์สะอาด สอนดี Language Java Projec t Phase Start Date and Time Int. Time Stop Date and Time Delt a Time Comments 1 Plan 9 ม.ค. 53 13:00:04 2 9 ม.ค. 53 13:04:28 2:24 พูดโทรศัพท์กับมาลี
  • 41. Revision 2.1 03 PSP0การใช้งาน 41 ตัวอย่างการบันทึกข้อบกพร่อง • หลังจากเขียนโปรแกรมเสร็จแล้ว มานะเริ่มคอมไพล์ โปรแกรม • คอมไพเลอร์แสดงข้อผิดพลาดว่าไม่พบสัญลักษณ์ Systemout • สาเหตุก็คือ ตก . ระหว่าง System กับ out • มานะแก้ไข แล้วคอมไพล์อีกครั้ง คราวนี้แสดงข้อผิด พลาดว่าไม่มี package Syste • สาเหตุก็คือ ระหว่างการแก้ไขข้อบกพร่องที่ 1 มานะได้ ทำาสร้างข้อบกพร่องที่ 2 คือ พิมพ์ . ทับไปที่ตัวอักษร m
  • 42. Revision 2.1 03 PSP0การใช้งาน 42 ตัวอย่างการบันทึกข้อมูล Defect Recording Log Student มานะ ตั้งใจเรียน Date 9 ม.ค. 2553 Program คำานวณค่าเฉลี่ย Program # 1 Instructor อาจารย์สะอาด สอนดี Language Java   Project Date Numbe r Type Inject Remove Fix Time Fix Ref.   1 9 ม.ค. 53 1 20 Code Compile 1 Description: ตก . ระหว่าง System และ out บรรทัดที่ 10.   Project Date Number Type Inject Remove Fix Time Fix Ref.   1 9 ม.ค. 53 2 20 Compile Compile 1 1 Description: พิมพ์ . ทับตัวอักษร m ระหว่างแก้ไข Systemout บรรทัดที่ 10.
  • 43. Revision 2.1 03 PSP0การใช้งาน 43 ความผิดพลาดที่พบบ่อย • ไม่ได้บันทึกเวลาทันที • ข้ามเฟสหรือสลับลำาดับเฟสการทำางาน • ไม่ได้บันทึกข้อบกพร่อง • เข้าใจผิดเรื่องเวลาในการแก้ไขข้อบกพร่อง • สับสนระหว่างเฟสกับกิจกรรม • บันทึกเฟสผิดเมื่อพัฒนาแบบทำาจนเสร็จทีละส่วน
  • 44. Revision 2.1 03 PSP0การใช้งาน 44 เวลาในการแก้ไขข้อผิดพลาด • เวลาในการแก้ไขข้อผิดพลาด = เวลาที่ใช้ในการ ค้นหาและแก้ไขข้อบกพร่อง • ตัวอย่าง 10:00 พบข้อบกพร่องระหว่างคอมไพล์โปรแกรม 10:20 เปิดโปรแกรมมาแก้ไข 10:30 แก้ไขข้อผิดพลาด 10:31 คอมไพล์ผ่าน คำาถาม: เวลาในการแก้ไขข้อผิดพลาดเป็นเท่าไร? คำาตอบ: 11 นาที
  • 45. Revision 2.1 03 PSP0การใช้งาน 45 เฟส และ กิจกรรม ตัวอย่าง: ระหว่างคอมไพล์โปรแกรม ปรีชาพบว่าเขาต้อง ออกแบบและเขียนโปรแกรมบางส่วนใหม่ คำาถาม: ปรีชาทำากิจกรรมใด? คำาตอบ: แก้ไขข้อบกพร่อง ออกแบบและเขียนโปรแกรม คำาถาม: โปรแกรมของปรีชาอยู่ในเฟสไหน? คำาตอบ: คอมไพล์
  • 46. Revision 2.1 03 PSP0การใช้งาน 46 การบันทึกเมื่อพัฒนาโปรแกรม แบบทำาทีละส่วน • ปิติแบ่งการพัฒนาโปรแกรม เป็น 2 ส่วนคือ โมดูล A และ B • ปิติเขียน คอมไพล์ และ ทดสอบโมดูลจนผ่าน • ต่อมาขณะกำาลังเขียนโค้ด ของโมดูล B ปิติพบและ แก้ไขข้อบกพร่องในโมดูล A คำาถาม: ข้อบกพร่องถูกขจัดใน เฟสไหน คำาตอบ: Test (ของโมดูล A) ออกแบบ เขียนโค้ด คอมไพล์ ทดสอบ เขียนโค้ด คอมไพล์ ทดสอบ โมดูล A โมดูล B
  • 47. Revision 2.1 03 PSP0การใช้งาน 47 การบันทึกข้อบกพร่องที่เกิดจากการ แก้ไขข้อบกพร่องก่อนหน้า • ระหว่างการทดสอบโปรแกรม กนกพบว่าเขาเขียนตรรกะบาง ส่วนของโปรแกรมไม่ถูกต้อง เขาจึงออกแบบ และเขียน โปรแกรมส่วนดังกล่าวใหม่ • ระหว่างการคอมไพล์โปรแกรมที่แก้ไขใหม่ คอมไพเลอร์แสดง ข้อผิดพลาด ซึ่งเขาก็แก้ไขแล้วคอมไพล์ใหม่อีกครั้ง ปรากฏว่า คอมไพล์ผ่าน คำาถาม: ข้อผิดพลาดใหม่นี้เกิดในเฟสไหน คำาตอบ: ทดสอบ (เนื่องจากเกิดขณะที่โปรแกรมอยู่ในเฟสทดสอบ) คำาถาม: ข้อผิดพลาดใหม่นี้ขจัดในเฟสไหน คำาตอบ: ทดสอบ (เนื่องจากขจัดขณะที่โปรแกรมอยู่ในเฟสทดสอบ)
  • 48. Revision 2.1 03 PSP0การใช้งาน 48 สรุป • เราเรียนรู้สิ่งต่อไปนี้ใน PSP0 – หลักการของกระบวนการ – การวัดขั้นพื้นฐาน – การเก็บข้อมูลการทำางาน – เก็บข้อมูลเพื่อใช้อ้างอิงในอนาคต • ข้อมูลมีคุณค่าก็ต่อเมื่อข้อมูลนั้นถูกต้อง แม่นยำา คงเส้นคงวา และครบถ้วนสมบูรณ์

Editor's Notes

  1. Revision History ------------------- Revision 1.0 (2006-12-15) Initial Version Revision 1.1 (2007-12-22) Update to reflect recent data Revision 2.0 (2008-12-17) Major update Revision 2.1 (2010-01-08) Minor update, add some slides
  2. A precise measure is one that specifies a value to a suitable level of precision, as with a specific number of digits after the decimal point. An accurate measure is one that correctly measures the property being measured. Measures can be precise and accurate, precise but inaccurate, imprecise but accurate, or both imprecise and inaccurate. For process management purposes, measures should be as precise and accurate as possible.
  3. A precise measure is one that specifies a value to a suitable level of precision, as with a specific number of digits after the decimal point. An accurate measure is one that correctly measures the property being measured. Measures can be precise and accurate, precise but inaccurate, imprecise but accurate, or both imprecise and inaccurate. For process management purposes, measures should be as precise and accurate as possible.