SlideShare a Scribd company logo
1 of 48
03 การใช้งาน PSP0

สงวนลิขสิทธิ์ 2551 – 2555
โดยสุรเดช จิตประไพกุลศาล
หัวข้อ
•   การใช้กระบวนการ
•   กระบวนการ PSP0
•   การบันทึกข้อมูล
•   ตัวอย่างข้อมูล
•   ข้อควรระวังในการบันทึกข้อมูล
•   สรุป


Revision 2.2        03 การใช้งาน PSP0   2
การปฏิบัติตามกระบวนการ
                                                    ตรวจ
                                   ทำางาน         เกณฑ์การ
                                                    สิ้นสุด
                 บันทึกเวลา                                   บันทึกเวลา
                   เริ่มต้น                                      สิ้นสุด
       ตรวจ                       บันทึกข้อ
    เกณฑ์การ                      บกพร่อง
      เริ่มต้น

•    ตรวจเกณฑ์การเริ่มต้นก่อนเริ่มต้นเฟส
•    บันทึกเวลาเริ่มต้น
•    ทำางานและบันทึกข้อบกพร่องทีพบและแก้ไข
                                  ่
•    ตรวจเกณฑ์การสิ้นสุดก่อนจะจบเฟส
•    บันทึกเวลาสินสุด
                 ้
Revision 2.2                  03 การใช้งาน PSP0                            3
กระบวนการ PSP
• PSP ไม่ ใ ช่ กระบวนการสำาหรับการเขียน
  โปรแกรม แต่เป็นกระบวนการสำาหรับเรี ย นรู ้
  เรื ่ อ งกระบวนการ
• PSP เป็นเพียงตัวอย่างของกระบวนการ
• หลังศึกษา PSP แล้วเราควรที่จะ
     – สำารวจตรวจสอบข้อมูล PSP ของเราเอง
     – ทบทวนสิ่งทีเรียนรู้แล้วนำามาปรับใช้กับตนเอง
                  ่
     – สร้างกระบวนการให้สอดคล้องกับบริบทของตนเอง
Revision 2.2          03 การใช้งาน PSP0              4
กระบวนการ PSP0
• PSP0 เป็นกระบวนการอย่างง่ายๆ ประกอบด้วย
     –   วางแผน
     –   พัฒนาโปรแกรมด้วยวิธีการทีใช้ในปัจจุบัน
                                  ่
     –   รวบรวมข้อมูลเกียวกับเวลาและข้อบกพร่องจากงาน
                        ่
     –   จัดทำารายงานสรุป




Revision 2.2            03 การใช้งาน PSP0              5
วัตถุประสงค์ของ PSP0
• แสดงให้เห็นถึงการใช้กระบวนการในการเขียน
  โปรแกรมขนาดเล็ก
• เก็บข้อมูลเกี่ยวกับกระบวนการพัฒนาซอฟต์แวร์
  ของเราสำาหรับใช้อ้างอิง (baseline)
• เปลี่ยนแปลงวิธีปฏิบัติน้อยที่สด (แค่เพิ่มการเก็บ
                                ุ
  ข้อมูล)



Revision 2.2          03 การใช้งาน PSP0          6
กระบวนการ PSP0
ใน PSP0 เราจะเรียนรู้
• การปฏิบัติตามกระบวนการ
• การบันทึกเวลา
• การบันทึกข้อบกพร่อง (defect)
• ประสิทธิภาพการทำางานเบืองต้น (productivity)
                         ้
• สมรรถนะในการทำางาน (performance)


Revision 2.2       03 การใช้งาน PSP0        7
ขั้นตอนของ PSP0
                           ความต้องการ

                             วางแผน
 คู่มือการ      ใช้เป็น
ปฏิบัติงาน     แนวทาง          ออกแบบ
                              เขียนโค้ด
                          พัฒนา
                           กระบวนการ                          แบบฟอร์ม
                               คอมไพล์
                ใช้เป็น
มาตรฐาน
               แนวทาง          ทดสอบ
                             สรุปจบ                                               สรุป
                                                                                โครงการ
                                                                              (ตัววัดต่างๆ)
                              ซอฟต์แวร์
                                                      ดัดแปลงมาจาก Introduction to PSP
Revision 2.2                      03 การใช้งาน PSP0                                      8
                                                      and TSP, Software Engineering
                                                      Institute, 2006
องค์ประกอบของกระบวนการ PSP0
• คูมือการปฏิบติ (4 กระบวนการ)
    ่         ั
     – เพือเป็นแนวทางในการปฏิบัติตามกระบวนการ
          ่
• แบบฟอร์ม (3 แบบฟอร์ม)
     – เพือช่วยเก็บรวบรวมข้อมูล
          ่
• มาตรฐาน (1 มาตรฐาน)
     – เพือเป็นแนวทางในการปฏิบัติงาน
          ่
• ตัววัดพื้นฐาน (2 ตัว)
     – เวลา และ ข้อบกพร่อง
Revision 2.2           03 การใช้งาน PSP0        9
คูมือการปฏิบัตงาน PSP0
                      ่           ิ
จุ ด ประสงค์          เพื่อเป็นแนวทางการพัฒนาโปรแกรมระดับโมดูล
เกณฑ์ ก ารเริ ่ ม     โจทย์หรือความต้องการ
ต้ น                  แบบฟอร์มสรุปแผนโครงการ PSP0
                      แบบฟอร์มบันทึกเวลาและแบบฟอร์มบันทึกข้อบกพร่อง
                      มาตรฐานข้อบกพร่อง
                      นาฬิกาจับเวลา (ถ้าจำาเป็น)
ลำ า ดั   กิ จ กรรม   รายละเอี ย ด
1
บ         วางแผน      จัดทำาหรือจัดหารายการความต้องการ
                      ประมาณเวลาทีจะใช้ในการพัฒนาแล้วบันทึกในแบบฟอร์มสรุปแผนโครงการ
                                     ่
                      บันทึกเวลาในแบบฟอร์มบันทึกเวลา
2      พัฒนา          ออกแบบโปรแกรม
                      เขียนโปรแกรม
                      คอมไพล์โปรแกรม และแก้ไขข้อบกพร่องทีพบ่
                      ทดสอบโปรแกรม และแก้ไขข้อบกพร่องที่พบ
                      บันทึกเวลาในแบบฟอร์มบันทึกเวลา
3      สรุปจบ         บันทึกสรุปข้อมูลเวลาและข้อบกพร่องในแบบฟอร์มสรุปแผนโครงการให้สมบูรณ์
เกณฑ์ ก ารสิ ้ น สุ ด โปรแกรมผ่านการทดสอบอย่างถี่ถ้วน
                      แบบฟอร์มสรุปแผนโครงการมีขอมูลครบถ้วนสมบูรณ์
                                                  ้
                      แบบฟอร์มบันทึกเวลาและแบบฟอร์มบันทึกข้อบกพร่องมีขอมูลครบถ้วนสมบูรณ์
                                                                       ้
Revision 2.2                         03 การใช้งาน PSP0     ที่มา: Watts S. Humphrey, PSP: A 10
                                                           Self-Improvement Process for
                                                           Engineers , Addison-Wesley 2005
กระบวนการ PSP0
   PSP0 Planning
       Script
    รวบรวมความ
                      PSP0 Process
         ต้องการ
                         Script            PSP0 Development
       ประมาณ           วางแผน                  Script
       ทรัพยากร                               ออกแบบ
 PSP0 Postmortem
      Script
  ตรวจข้อมูลข้อ           พัฒนา               เขียนโค้ด
       บกพร่อง

 ตรวจความคงเส้น                               คอมไพล์
  คงวาของข้อมูล          สรุปจบ

  ตรวจสอบข้อมูล                                ทดสอบ
      เวลา
Revision 2.2           03 การใช้งาน PSP0                      11
เฟสใน PSP0
                                           วางแผน
• PSP0 ประกอบด้วย 6 เฟส:
     –   วางแผน                            ออกแบบ
     –   ออกแบบ
     –   เขียนโค้ด                         เขียนโค้ด
     –   คอมไพล์                           คอมไพล์
     –   ทดสอบ
     –   สรุป                               ทดสอบ

                                             สรุป
Revision 2.2           03 การใช้งาน PSP0               12
เฟสใน PSP0
• วางแผน
     – วางแผนสำาหรับการพัฒนาโปรแกรมตามความ
       ต้องการ
• ออกแบบ
     – จัดทำาแบบตามความต้องการ
• เขียนโปรแกรม
     – แปลงแบบให้เป็นชุดคำาสั่ง


Revision 2.2           03 การใช้งาน PSP0     13
เฟสใน PSP0
• คอมไพล์
     – แปลงชุดคำาสังให้เป็นโปรแกรมพร้อมใช้งาน
                   ่
• ทดสอบ
     – ตรวจดูว่าโปรแกรมทำางานสอดคล้องกับความ
       ต้องการหรือไม่
• สรุป
     – สรุปและวิเคราะห์ข้อมูล


Revision 2.2           03 การใช้งาน PSP0        14
ลำาดับของเฟส
• สาเหตุที่เฟสมีลำาดับดังนีเพราะ
                           ้             Design
     – เราไม่สามารถทดสอบโค้ดก่อนคอม
       ไพล์
                                          Code
     – เราไม่สามารถคอมไพล์ก่อนเขียน
       โค้ด
     – ออกแบบหลังเขียนโค้ดก็เปล่า        Compile
       ประโยชน์

                                          Test
Revision 2.2         03 การใช้งาน PSP0             15
เกณฑ์การเริ่มต้นและสิ้นสุด
เฟส                เกณฑ์ ก ารเริ ่ ม ต้ น และสิ ้ น สุ ด
                   เริ่มเมื่อ เริ ่ ม การวางแผน
วางแผน
                   สิ้นสุดเมื่อ แผนสมบู ร ณ์
                   เริ่มเมื่อ เริ ่ ม การออกแบบ
ออกแบบ
                   สิ้นสุดเมื่อ แบบสมบู ร ณ์
                   เริ่มเมื่อ เริ ่ ม การเขี ย นโค้ ด
เขียนโค้ด
                   สิ้นสุดเมื่อ โค้ ด เขี ย นเสร็ จ สมบู ร ณ์
                   เริ่มเมื่อ เริ ่ ม คอมไพล์ ค รั ้ ง แรก
คอมไพล์
                   สิ้นสุดเมื่อ คอมไพล์ ผ ่ า น
                   เริ่มเมื่อ เริ ่ ม ทดสอบครั ้ ง แรก
ทดสอบ
                   สิ้นสุดเมื่อ ผ่ า นการทดสอบทั ้ ง หมดโดยไม่ ม ี ข ้ อ ผิ ด
                   พลาด เริ ่ ม สรุ ป การทำ า งาน
                   เริ่มเมื่อ
สรุป
                   สิ้นสุดเมื่อ การสรุ ป เสร็ จ สิ ้ น
Revision 2.2                     03 การใช้งาน PSP0    จาก Dan Burton, Introduction to the   16
                                                      TSP and the PSP , SEI, 2005
ตัวอย่างที่ 1 ใช้ PSP0 กับการทำางาน
                  ตามลำาดับ
• สำาหรับโปรแกรมขนาด                   ออกแบบ
  เล็กเราก็อาจจะใช้วิธี  วางแผน
  ทำางานตามลำาดับจนเสร็จ
  (Waterfall)                          เขียนโค้ด
                          พัฒนา

                                       คอมไพล์
                               สรุป

                                        ทดสอบ
Revision 2.2       03 การใช้งาน PSP0            17
ตัวอย่างที่ 2 ใช้ PSP0 กับการเขียน
            และคอมไพล์ทละส่วน
                          ี
• ถ้าโปรแกรมขนาด
                                              ออกแบบ
  ใหญ่ขึ้น เราอาจจะ วางแผน
  ออกแบบก่อน
• จากนันแยกเขียน
        ้                               เขียนโค้ด   เขียนโค้ด
  โค้ดและคอมไพล์     พัฒนา
  ทีละโมดูล                             คอมไพล์     คอมไพล์
• แล้วทดสอบหลัง
  จากคอมไพล์ทุก       สรุป
  โมดูล                                       ทดสอบ

 Revision 2.2       03 การใช้งาน PSP0                     18
ตัวอย่างที่ 3 ใช้ PSP0 กับการเขียน
        คอมไพล์และทดสอบทีละส่วน
• หรือ เราอาจจะ
                    วางแผน                    ออกแบบ
  ออกแบบแล้ว
• ค่อยเขียนโค้ด
  คอมไพล์ และ                           เขียนโค้ด   เขียนโค้ด
  ทดสอบ ทีละโมดูล   พัฒนา
  จนครบทุกโมดูล                         คอมไพล์     คอมไพล์

                     สรุป                ทดสอบ       ทดสอบ


 Revision 2.2       03 การใช้งาน PSP0                     19
ตัวอย่างที่ 4 ใช้ PSP0 กับการพัฒนา
  แบบทยอยเพิ่มทีละส่วน (Incremental)
ถ้าโปรแกรมขนาด
ใหญ่มาก             วางแผน              ออกแบบ      ออกแบบ

เราอาจจะแยกทยอย                         เขียนโค้ด   เขียนโค้ด
พัฒนาทีละโมดูล      พัฒนา
(Incremental) โดย                       คอมไพล์     คอมไพล์
ออกแบบ เขียนโค้ด
คอมไพล์ และทดสอบ
ทีละโมดูลจนครบทุก    สรุป                ทดสอบ       ทดสอบ
โมดูล

 Revision 2.2       03 การใช้งาน PSP0                     20
แบบฟอร์ม PSP0
• ใน PSP0 เราใช้แบบฟอร์มต่อไปนี้ในการ
  รวบรวมข้อมูล
     – แบบฟอร์มสรุปแผนโครงการ PSP0
           • สรุปผลการทำางาน
     – แบบฟอร์มบันทึกเวลาการทำางาน
           • บันทึกเวลาในการทำางาน
     – แบบฟอร์มบันทึกข้อบกพร่อง
           • บันทึกรายละเอียดข้อบกพร่องที่เกิดขึ้น


Revision 2.2                 03 การใช้งาน PSP0       21
แบบฟอร์มสรุปแผนโครงการ 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.2           03 การใช้งาน PSP0                       22
แบบฟอร์มสรุปแผนโครงการ PSP0
Defects Injected                Actual    To Date   To Date %
 Planning
 Design
 Code
 Compile
 Test
  Total Development




Revision 2.2          03 การใช้งาน PSP0                     23
แบบฟอร์มสรุปแผนโครงการ PSP0
Defects Removed                Actual     To Date   To Date %
 Planning
 Design
 Code
 Compile
 Test
  Total Development
 After Development




Revision 2.2          03 การใช้งาน PSP0                     24
แบบฟอร์มบันทึกเวลาการทำางาน
Student                                         Date
Program                                         Program #
Instructor      Start                           Language
                Date                          Delt
Projec          and      Int.     Stop          a
       Phase                                             Comments
  t             Time    Time      Date        Time
                                  and
                                  Time




 Revision 2.2             03 การใช้งาน PSP0                         25
แบบฟอร์มบันทึกข้อบกพร่อง
Student                                             Date
Program                                             Program #
Instructor                                          Language

  Project       Date   Number   Type   Inject   Remove     Fix Time   Fix Ref.

 
Description:



  Project       Date   Number   Type   Inject   Remove     Fix Time   Fix Ref.

 
Description:


 Revision 2.2                   03 การใช้งาน PSP0                          26
มาตรฐานใน PSP0
ใน PSP0 มีเพียงมาตรฐานเดียวคือ
• มาตรฐานชนิดข้อบกพร่อง (Defect Type Standard)
  ใช้เพือจำาแนกชนิดของข้อบกพร่อง เพื่อสะดวกในการ
        ่
  ปรับปรุงแก้ไข




Revision 2.2       03 การใช้งาน PSP0           27
รหั
        ชนิ ด                                   สิ ่ ง ที ่ ผ ิ ด พลาด
 ส
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.2                  03 การใช้งาน PSP0                                  28
ตัววัดใน PSP0
• ข้อมูลปฐมภูมิที่เรารวบรวมใน PSP0 ได้แก่
     – เวลาทีใช้ในแต่ละเฟส
             ่
           • เริ่มและสิ้นสุดเมื่อไร
           • ถูกขัดจังหวะไปเท่าไร
     – ข้อบกพร่อง
           •   ชนิดไหน
           •   เกิดที่เฟสไหน
           •   ขจัดในเฟสไหน
           •   เวลาที่ใช้ในการค้นหาและขจัดข้อบกพร่อง
           •   รายละเอียดของสาเหตุ

Revision 2.2                  03 การใช้งาน PSP0        29
ตัววัดอื่นๆ
• จากข้อมูลพืนฐานทีเก็บรวบรวมใน PSP0 เราสามารถ
             ้      ่
  คำานวณตัววัดอื่นๆทีเป็นประโยชน์ได้เช่น
                      ่
     –   เปอร์เซ็นต์ของเวลาในแต่ละเฟส (% Time-in-phase)
     –   เปอร์เซ็นต์ของข้อบกพร่องที่เกิด (% Defect injected)
     –   เปอร์เซ็นต์ของข้อบกพร่องที่ขจัด (% Defect removed)
     –   ต้นทุนคุณภาพ (Cost of Quality หรือ COQ)
     –   อัตราการเกิดข้อบกพร่อง (Defect Injection Rate)
     –   อัตราการขจัดข้อบกพร่อง (Defect Removal Rate)
     –   ต้นทุนในการดำาเนินธุรกิจ (Overhead)


Revision 2.2               03 การใช้งาน PSP0                   30
ตัววัดที่ได้จากการคำานวณใน PSP0
     โดยจะใช้เป็นจุดอ้างอิงในอนาคต
• เปอร์เซ็นของเวลาในแต่ละเฟส (% Time-in-phase)
     – แสดงถึงสัดส่วนการใช้เวลาในแต่ละเฟส
• เปอร์เซ็นของข้อบกพร่องทีเกิด (% Defect injected)
                          ่
     – แสดงถึงสัดส่วนของการเกิดข้อบกพร่องในแต่ละเฟส
• เปอร์เซ็นของข้อบกพร่องทีขจัด (% Defect removed)
                          ่
     – แสดงถึงสัดส่วนของการขจัดข้อบกพร่องในแต่ละเฟส




Revision 2.2            03 การใช้งาน PSP0             31
ตัวอย่างตัววัดอื่นทีสามารถคำานวณได้
                       ่
      ใน PSP0 แต่ยังไม่ใช้ใน PSP0
• ต้นทุนคุณภาพ (Cost of Quality หรือ COQ)
     – สัดส่วนต้นทุนของความผิดพลาด (Percent Failure COQ)
           • แสดงถึงค่าใช้จ่ายที่เกิดขึ้นเมื่อมีความบกพร่องเกิดขึ้นทำาให้จะต้อง
             เสียเวลา และค่าใช้จ่ายในการแก้ไข
• อัตราการเกิดข้อบกพร่อง (Defect Injection Rate)
     – แสดงถึงอัตราการเกิดข้อบกพร่องต่อหน่วยเวลา
• อัตราการขจัดข้อบกพร่อง (Defect Removal Rate)
     – แสดงถึงอัตราในการขจัดข้อบกพร่องต่อหน่วยเวลา
• ต้นทุนในการดำาเนินธุรกิจ (Overhead)
     – แสดงถึงค่าใช้จ่ายในการวางแผนและสรุปโครงากร
Revision 2.2                      03 การใช้งาน PSP0                               32
ตัวอย่างการบันทึกข้อมูล
• มานะ ตั ้ ง ใจเรี ย นเป็นนักศึกษาวิชา SE514 ใช้ PSP0 ใน
  การเขียนโปรแกรมเพื่อส่งอาจารย์ส ะอาด สอนดี
• มานะเริ่มการวางแผนโดยบันทึกเวลาเริ่มต้นในแบบฟอร์มบันทึก
  เวลา
• หลังอ่านโจทย์ซึ่งจะให้เขียนโปรแกรมเพื่อคำานวณค่าเฉลี่ย
  มานะประมาณว่าจะใช้เวลา 120 นาทีถ้าเขียนด้วยภาษา Java
  มานะจึงบันทึก 120 ลงในช่องเวลาทั้งหมดที่วางแผนว่าจะใช้
  ของแบบฟอร์มสรุปแผนโครงการ
• ระหว่างที่ทำาการวางแผนอยู่นั้น มาลีได้โทรศัพท์มา มานะได้
  สนทนากับมาลีรวม 2 นาทีแล้วกลับมาทำางานต่อ
                  ่
• จากนันก็บันทึกเวลาสิ้นสุดการวางแผนในแบบฟอร์มบันทึกเวลา
        ้


Revision 2.2           03 การใช้งาน PSP0                 33
ตัวอย่างการบันทึกข้อมูล
                 Time Recording Log
Student    มานะ ตั้งใจเรียน                         Date       9 ม.ค. 2553
Program    คำานวณค่าเฉลี่ย                          Program #       1
Instructor        Start
           อาจารย์สะอาด สอนดี                       Language      Java
                  Date                            Delt
Projec             and       Int.     Stop          a
       Phase                                                 Comments
  t               Time      Time      Date        Time
  1     Plan    9 ม.ค. 53             and
                13:00:04              Time




 Revision 2.2                 03 การใช้งาน PSP0                          34
ตัวอย่างการบันทึกข้อมูล
         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.2                   03 การใช้งาน PSP0                         35
ตัวอย่างการบันทึกข้อมูล
                 Time Recording Log
Student    มานะ ตั้งใจเรียน                         Date        9 ม.ค. 2553
Program    คำานวณค่าเฉลี่ย                          Program #         1
Instructor        Start
           อาจารย์สะอาด สอนดี                       Language         Java
                  Date                            Delt
Projec             and       Int.     Stop          a
       Phase                                                 Comments
  t               Time      Time      Date        Time
  1     Plan    9 ม.ค. 53     2       and
                                    9 ม.ค. 53     2:24 พูดโทรศัพท์กบมาลี
                                                                   ั
                13:00:04              Time
                                    13:04:28




 Revision 2.2                 03 การใช้งาน PSP0                           36
ตัวอย่างการบันทึกข้อบกพร่อง
• หลังจากเขียนโปรแกรมเสร็จแล้ว มานะเริ่มคอมไพล์
  โปรแกรม
• คอมไพเลอร์แสดงข้อผิดพลาดว่าไม่พบสัญลักษณ์
  Systemout
• สาเหตุก็คือ ตก . ระหว่าง System กับ out
• มานะแก้ไข แล้วคอมไพล์อีกครั้ง คราวนี้แสดงข้อผิด
  พลาดว่าไม่มี package Syste
• สาเหตุก็คือ ระหว่างการแก้ไขข้อบกพร่องที่ 1 มานะได้
  ทำาสร้างข้อบกพร่องที่ 2 คือ พิมพ์ . ทับไปทีตัวอักษร m
                                             ่
Revision 2.2          03 การใช้งาน PSP0               37
ตัวอย่างการบันทึกข้อมูล
                       Defect Recording Log
  Student           มานะ ตั้งใจเรียน                             Date                9 ม.ค. 2553
  Program           คำานวณค่าเฉลี่ย                              Program #                1
  Instructor        อาจารย์สะอาด สอนดี                           Language               Java

   Project      Date        Number      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.2                           03 การใช้งาน PSP0                                      38
ความสำาคัญของการบันทึกข้อมูล
• ข้อมูลที่ถูกต้อง เที่ยงตรง แม่นยำา คงเส้นคงวา
  และสมบูรณ์จะช่วยให้สามารถใช้ประโยชน์จาก
  PSP ได้อย่างเต็มที่
• ถ้าขาดข้อมูลที่ดีเราจะไม่สามารถ
     – วิเคราะห์กระบวนการได้อย่างถูกต้อง
     – รู้ได้ว่าเราทำางานเป็นอย่างไร
     – ปรับปรุงกระบวนการพัฒนาของเราอย่างเหมาะสม


Revision 2.2         03 การใช้งาน PSP0            39
ความแม่นยำากับความเที่ยงตรง
• ความแม่นยำา
     – เกี่ยวข้องกับการใช้ตัววัดทีเหมาะสม
                                  ่
     – เช่น เราวัดเวลาในการทำางานจากเวลาที่ใช้จริง แต่
       ไม่วัดจากระยะเวลาที่ถูกขัดจังหวะ
• ความเที่ยงตรง
     – เกี่ยวข้องกับการรวบรวมข้อมูลทีระดับความละเอียด
                                     ่
       ทีเหมาะสม
         ่
     – เช่น เราจะวัดระยะเวลาในหน่วยนาทีสำาหรับงานที่
       คาดว่าจะใช้เวลาไม่เกิน 1 สัปดาห์ แต่จะไม่ใช้
       หน่วยนาทีสำาหรับงานทีคาดว่าจะใช้เวลา 1 ปี
                             ่
Revision 2.2           03 การใช้งาน PSP0             40
ความแม่นยำากับความเที่ยงตรง
แม่ น ยำ า
และเที ่ ย ง                            ไม่ แ ม่ น ยำ า
ตรง                                     แต่ เ ที ่ ย งตรง




แม่ น ยำ า แต่                          ไม่ แ ม่ น ยำ า
ไม่ เ ที ่ ย ง                          และไม่ เ ที ่ ย ง
ตรง                                     ตรง




   Revision 2.2     03 การใช้งาน PSP0               41
วิธีการบันทึกข้อมูล
• บันทึกข้อมูลขณะทำางาน
• พยายามบันทึกข้อมูลให้เที่ยงตรงแม่นยำา
• บันทึกเฟสที ่ โ ปรแกรมอยู ่ ไม่ใช่กิจกรรมที่ทำา




Revision 2.2         03 การใช้งาน PSP0          42
เฟส และ กิจกรรม
ตั ว อย่ า ง:
   ระหว่างคอมไพล์โปรแกรม ปรีชาพบว่าเขาต้อง
   ออกแบบและเขียนโปรแกรมบางส่วนใหม่

คำ า ถาม: ปรีชาทำากิจกรรมใด?
คำ า ตอบ: แก้ไขข้อบกพร่อง ออกแบบและเขียนโปรแกรม

คำ า ถาม: โปรแกรมของปรีชาอยู่ในเฟสไหน?
คำ า ตอบ: คอมไพล์

Revision 2.2       03 การใช้งาน PSP0          43
เวลาในการแก้ไขข้อผิดพลาด
• เวลาในการแก้ไขข้อผิดพลาด = เวลาทีใช้ในการ
                                      ่
   ค้นหาและแก้ไขข้อบกพร่อง
• ตัวอย่าง
   10:00 พบข้อบกพร่องระหว่างคอมไพล์โปรแกรม
    …       หยุ ด พั ก
   10:20 เปิดโปรแกรมมาแก้ไข
   10:30 แก้ไขข้อผิดพลาด
   10:31 คอมไพล์ผ่าน
คำ า ถาม: เวลาในการแก้ไขข้อผิดพลาดเป็นเท่าไร?
คำ า ตอบ: 11 นาที (10:31 – 10:20 = 11 นาที)

Revision 2.2       03 การใช้งาน PSP0            44
การบันทึกเมือพัฒนาโปรแกรม
                       ่
                 แบบทำาทีละส่วน
• ปิติแบ่งการพัฒนาโปรแกรม
  เป็น 2 ส่วนคือ โมดูล A และ         ออกแบบ
  B
• ปิติเขียน คอมไพล์ และ      โมดูล A           โมดูล B
  ทดสอบโมดูลจนผ่าน
                               เขียนโค้ด   เขียนโค้ด
• ต่อมาขณะกำาลังเขียนโค้ด
  ของโมดูล B ปิติพบและ
  แก้ไขข้อบกพร่องในโมดูล A
                                    คอมไพล์   คอมไพล์
คำ า ถาม: ข้อบกพร่องถูกขจัดใน
    เฟสไหน
คำ า ตอบ: Test (ของโมดูล A)          ทดสอบ    ทดสอบ
Revision 2.2            03 การใช้งาน PSP0             45
การบันทึกข้อบกพร่องทีเกิดจากการ
                          ่
        แก้ไขข้อบกพร่องก่อนหน้า
• ระหว่างการทดสอบโปรแกรม กนกพบว่าเขาเขียนตรรกะบาง
  ส่วนของโปรแกรมไม่ถูกต้อง เขาจึงออกแบบ และเขียน
  โปรแกรมส่วนดังกล่าวใหม่
• ระหว่างการคอมไพล์โปรแกรมที่แก้ไขใหม่ คอมไพเลอร์แสดง
  ข้อผิดพลาด ซึ่งเขาก็แก้ไขแล้วคอมไพล์ใหม่อกครั้ง ปรากฏว่า
                                           ี
  คอมไพล์ผ่าน

คำ า ถาม: ข้อผิดพลาดใหม่นเ กิ ด (inject) ในเฟสไหน
                         ี้
คำ า ตอบ: ทดสอบ (เนืองจากเกิดขณะที่โปรแกรมอยู่ในเฟสทดสอบ)
                    ่
คำ า ถาม: ข้อผิดพลาดใหม่นข จั ด (remove) ในเฟสไหน
                            ี้
คำ า ตอบ: ทดสอบ (เนืองจากขจัดขณะที่โปรแกรมอยู่ในเฟส
                      ่
    ทดสอบ)
Revision 2.2            03 การใช้งาน PSP0                    46
ความผิดพลาดที่พบบ่อย
•   ไม่ได้บนทึกเวลาทันที
           ั
•   ไม่ได้หยุดเวลาเมื่อถูกขัดจังหวะ
•   ข้ามเฟสหรือสลับลำาดับเฟสการทำางาน
•   ไม่ได้บนทึกข้อบกพร่อง
             ั
•   เข้าใจผิดเรื่องเวลาในการแก้ไขข้อบกพร่อง
•   สับสนระหว่างเฟสกับกิจกรรม
•   บันทึกเฟสผิดเมื่อพัฒนาแบบทำาจนเสร็จทีละส่วน
•   บันทึกข้อบกพร่องไม่ชัดเจน
Revision 2.2          03 การใช้งาน PSP0      47
สรุป
• เราเรียนรู้สิ่งต่อไปนีใน PSP0
                        ้
     – หลักการของกระบวนการ
     – ตัววัดขั้นพืนฐาน: เวลา และ ข้อบกพร่อง
                   ้
     – การเก็บข้อมูลการทำางาน
• ข้อมูลมีคณค่าก็ต่อเมื่อข้อมูลนัน
           ุ                     ้
     –   ถูกต้อง
     –   แม่นยำา
     –   คงเส้นคงวา
     –   ครบถ้วนสมบูรณ์
Revision 2.2              03 การใช้งาน PSP0    48

More Related Content

Similar to 03 using psp0

การแก้ปัญหาการออกแบบและพัฒนาขั้นตอนวิธี
การแก้ปัญหาการออกแบบและพัฒนาขั้นตอนวิธีการแก้ปัญหาการออกแบบและพัฒนาขั้นตอนวิธี
การแก้ปัญหาการออกแบบและพัฒนาขั้นตอนวิธีSaranyu Srisrontong
 
การพัฒนาโปรแกรม วิชญา
การพัฒนาโปรแกรม วิชญาการพัฒนาโปรแกรม วิชญา
การพัฒนาโปรแกรม วิชญาwinewic199
 
โปรแกรมคอมพิวเตอร
โปรแกรมคอมพิวเตอรโปรแกรมคอมพิวเตอร
โปรแกรมคอมพิวเตอรTay Atcharawan
 
ข้อเสนอโครงงานคอมพิวเตอร์
ข้อเสนอโครงงานคอมพิวเตอร์ข้อเสนอโครงงานคอมพิวเตอร์
ข้อเสนอโครงงานคอมพิวเตอร์Janchai Pokmoonphon
 
จุลนิพนธ์ Power Pointครั้งที่ 2
จุลนิพนธ์ Power Pointครั้งที่ 2จุลนิพนธ์ Power Pointครั้งที่ 2
จุลนิพนธ์ Power Pointครั้งที่ 2Ouizz Saebe
 
DP-Developer
DP-DeveloperDP-Developer
DP-DeveloperdiseVru
 
การพัฒนาโปรแกรม วิชญา เลขที่ 26.2
การพัฒนาโปรแกรม วิชญา เลขที่ 26.2การพัฒนาโปรแกรม วิชญา เลขที่ 26.2
การพัฒนาโปรแกรม วิชญา เลขที่ 26.2winewic199
 
Com element [compatibility mode]
Com element [compatibility mode]Com element [compatibility mode]
Com element [compatibility mode]twatfangmin
 
System Development Life Cycle
System Development  Life  CycleSystem Development  Life  Cycle
System Development Life Cycleeiszer
 

Similar to 03 using psp0 (20)

04 basic measurement
04 basic measurement04 basic measurement
04 basic measurement
 
5
55
5
 
การแก้ปัญหาการออกแบบและพัฒนาขั้นตอนวิธี
การแก้ปัญหาการออกแบบและพัฒนาขั้นตอนวิธีการแก้ปัญหาการออกแบบและพัฒนาขั้นตอนวิธี
การแก้ปัญหาการออกแบบและพัฒนาขั้นตอนวิธี
 
การพัฒนาโปรแกรม วิชญา
การพัฒนาโปรแกรม วิชญาการพัฒนาโปรแกรม วิชญา
การพัฒนาโปรแกรม วิชญา
 
โปรแกรมคอมพิวเตอร
โปรแกรมคอมพิวเตอรโปรแกรมคอมพิวเตอร
โปรแกรมคอมพิวเตอร
 
บทที่ 1
บทที่ 1บทที่ 1
บทที่ 1
 
E R P7 How
E R P7 HowE R P7 How
E R P7 How
 
บทที่ 1
บทที่ 1บทที่ 1
บทที่ 1
 
Sw evo 2_model
Sw evo 2_modelSw evo 2_model
Sw evo 2_model
 
Q1
Q1Q1
Q1
 
ข้อเสนอโครงงานคอมพิวเตอร์
ข้อเสนอโครงงานคอมพิวเตอร์ข้อเสนอโครงงานคอมพิวเตอร์
ข้อเสนอโครงงานคอมพิวเตอร์
 
จุลนิพนธ์ Power Pointครั้งที่ 2
จุลนิพนธ์ Power Pointครั้งที่ 2จุลนิพนธ์ Power Pointครั้งที่ 2
จุลนิพนธ์ Power Pointครั้งที่ 2
 
คอม
คอมคอม
คอม
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 
689 2
689 2689 2
689 2
 
DP-Developer
DP-DeveloperDP-Developer
DP-Developer
 
Sallai pro
Sallai proSallai pro
Sallai pro
 
การพัฒนาโปรแกรม วิชญา เลขที่ 26.2
การพัฒนาโปรแกรม วิชญา เลขที่ 26.2การพัฒนาโปรแกรม วิชญา เลขที่ 26.2
การพัฒนาโปรแกรม วิชญา เลขที่ 26.2
 
Com element [compatibility mode]
Com element [compatibility mode]Com element [compatibility mode]
Com element [compatibility mode]
 
System Development Life Cycle
System Development  Life  CycleSystem Development  Life  Cycle
System Development Life Cycle
 

03 using psp0

  • 1. 03 การใช้งาน PSP0 สงวนลิขสิทธิ์ 2551 – 2555 โดยสุรเดช จิตประไพกุลศาล
  • 2. หัวข้อ • การใช้กระบวนการ • กระบวนการ PSP0 • การบันทึกข้อมูล • ตัวอย่างข้อมูล • ข้อควรระวังในการบันทึกข้อมูล • สรุป Revision 2.2 03 การใช้งาน PSP0 2
  • 3. การปฏิบัติตามกระบวนการ ตรวจ ทำางาน เกณฑ์การ สิ้นสุด บันทึกเวลา บันทึกเวลา เริ่มต้น สิ้นสุด ตรวจ บันทึกข้อ เกณฑ์การ บกพร่อง เริ่มต้น • ตรวจเกณฑ์การเริ่มต้นก่อนเริ่มต้นเฟส • บันทึกเวลาเริ่มต้น • ทำางานและบันทึกข้อบกพร่องทีพบและแก้ไข ่ • ตรวจเกณฑ์การสิ้นสุดก่อนจะจบเฟส • บันทึกเวลาสินสุด ้ Revision 2.2 03 การใช้งาน PSP0 3
  • 4. กระบวนการ PSP • PSP ไม่ ใ ช่ กระบวนการสำาหรับการเขียน โปรแกรม แต่เป็นกระบวนการสำาหรับเรี ย นรู ้ เรื ่ อ งกระบวนการ • PSP เป็นเพียงตัวอย่างของกระบวนการ • หลังศึกษา PSP แล้วเราควรที่จะ – สำารวจตรวจสอบข้อมูล PSP ของเราเอง – ทบทวนสิ่งทีเรียนรู้แล้วนำามาปรับใช้กับตนเอง ่ – สร้างกระบวนการให้สอดคล้องกับบริบทของตนเอง Revision 2.2 03 การใช้งาน PSP0 4
  • 5. กระบวนการ PSP0 • PSP0 เป็นกระบวนการอย่างง่ายๆ ประกอบด้วย – วางแผน – พัฒนาโปรแกรมด้วยวิธีการทีใช้ในปัจจุบัน ่ – รวบรวมข้อมูลเกียวกับเวลาและข้อบกพร่องจากงาน ่ – จัดทำารายงานสรุป Revision 2.2 03 การใช้งาน PSP0 5
  • 6. วัตถุประสงค์ของ PSP0 • แสดงให้เห็นถึงการใช้กระบวนการในการเขียน โปรแกรมขนาดเล็ก • เก็บข้อมูลเกี่ยวกับกระบวนการพัฒนาซอฟต์แวร์ ของเราสำาหรับใช้อ้างอิง (baseline) • เปลี่ยนแปลงวิธีปฏิบัติน้อยที่สด (แค่เพิ่มการเก็บ ุ ข้อมูล) Revision 2.2 03 การใช้งาน PSP0 6
  • 7. กระบวนการ PSP0 ใน PSP0 เราจะเรียนรู้ • การปฏิบัติตามกระบวนการ • การบันทึกเวลา • การบันทึกข้อบกพร่อง (defect) • ประสิทธิภาพการทำางานเบืองต้น (productivity) ้ • สมรรถนะในการทำางาน (performance) Revision 2.2 03 การใช้งาน PSP0 7
  • 8. ขั้นตอนของ PSP0 ความต้องการ วางแผน คู่มือการ ใช้เป็น ปฏิบัติงาน แนวทาง ออกแบบ เขียนโค้ด พัฒนา กระบวนการ แบบฟอร์ม คอมไพล์ ใช้เป็น มาตรฐาน แนวทาง ทดสอบ สรุปจบ สรุป โครงการ (ตัววัดต่างๆ) ซอฟต์แวร์ ดัดแปลงมาจาก Introduction to PSP Revision 2.2 03 การใช้งาน PSP0 8 and TSP, Software Engineering Institute, 2006
  • 9. องค์ประกอบของกระบวนการ PSP0 • คูมือการปฏิบติ (4 กระบวนการ) ่ ั – เพือเป็นแนวทางในการปฏิบัติตามกระบวนการ ่ • แบบฟอร์ม (3 แบบฟอร์ม) – เพือช่วยเก็บรวบรวมข้อมูล ่ • มาตรฐาน (1 มาตรฐาน) – เพือเป็นแนวทางในการปฏิบัติงาน ่ • ตัววัดพื้นฐาน (2 ตัว) – เวลา และ ข้อบกพร่อง Revision 2.2 03 การใช้งาน PSP0 9
  • 10. คูมือการปฏิบัตงาน PSP0 ่ ิ จุ ด ประสงค์ เพื่อเป็นแนวทางการพัฒนาโปรแกรมระดับโมดูล เกณฑ์ ก ารเริ ่ ม โจทย์หรือความต้องการ ต้ น แบบฟอร์มสรุปแผนโครงการ PSP0 แบบฟอร์มบันทึกเวลาและแบบฟอร์มบันทึกข้อบกพร่อง มาตรฐานข้อบกพร่อง นาฬิกาจับเวลา (ถ้าจำาเป็น) ลำ า ดั กิ จ กรรม รายละเอี ย ด 1 บ วางแผน จัดทำาหรือจัดหารายการความต้องการ ประมาณเวลาทีจะใช้ในการพัฒนาแล้วบันทึกในแบบฟอร์มสรุปแผนโครงการ ่ บันทึกเวลาในแบบฟอร์มบันทึกเวลา 2 พัฒนา ออกแบบโปรแกรม เขียนโปรแกรม คอมไพล์โปรแกรม และแก้ไขข้อบกพร่องทีพบ่ ทดสอบโปรแกรม และแก้ไขข้อบกพร่องที่พบ บันทึกเวลาในแบบฟอร์มบันทึกเวลา 3 สรุปจบ บันทึกสรุปข้อมูลเวลาและข้อบกพร่องในแบบฟอร์มสรุปแผนโครงการให้สมบูรณ์ เกณฑ์ ก ารสิ ้ น สุ ด โปรแกรมผ่านการทดสอบอย่างถี่ถ้วน แบบฟอร์มสรุปแผนโครงการมีขอมูลครบถ้วนสมบูรณ์ ้ แบบฟอร์มบันทึกเวลาและแบบฟอร์มบันทึกข้อบกพร่องมีขอมูลครบถ้วนสมบูรณ์ ้ Revision 2.2 03 การใช้งาน PSP0 ที่มา: Watts S. Humphrey, PSP: A 10 Self-Improvement Process for Engineers , Addison-Wesley 2005
  • 11. กระบวนการ PSP0 PSP0 Planning Script รวบรวมความ PSP0 Process ต้องการ Script PSP0 Development ประมาณ วางแผน Script ทรัพยากร ออกแบบ PSP0 Postmortem Script ตรวจข้อมูลข้อ พัฒนา เขียนโค้ด บกพร่อง ตรวจความคงเส้น คอมไพล์ คงวาของข้อมูล สรุปจบ ตรวจสอบข้อมูล ทดสอบ เวลา Revision 2.2 03 การใช้งาน PSP0 11
  • 12. เฟสใน PSP0 วางแผน • PSP0 ประกอบด้วย 6 เฟส: – วางแผน ออกแบบ – ออกแบบ – เขียนโค้ด เขียนโค้ด – คอมไพล์ คอมไพล์ – ทดสอบ – สรุป ทดสอบ สรุป Revision 2.2 03 การใช้งาน PSP0 12
  • 13. เฟสใน PSP0 • วางแผน – วางแผนสำาหรับการพัฒนาโปรแกรมตามความ ต้องการ • ออกแบบ – จัดทำาแบบตามความต้องการ • เขียนโปรแกรม – แปลงแบบให้เป็นชุดคำาสั่ง Revision 2.2 03 การใช้งาน PSP0 13
  • 14. เฟสใน PSP0 • คอมไพล์ – แปลงชุดคำาสังให้เป็นโปรแกรมพร้อมใช้งาน ่ • ทดสอบ – ตรวจดูว่าโปรแกรมทำางานสอดคล้องกับความ ต้องการหรือไม่ • สรุป – สรุปและวิเคราะห์ข้อมูล Revision 2.2 03 การใช้งาน PSP0 14
  • 15. ลำาดับของเฟส • สาเหตุที่เฟสมีลำาดับดังนีเพราะ ้ Design – เราไม่สามารถทดสอบโค้ดก่อนคอม ไพล์ Code – เราไม่สามารถคอมไพล์ก่อนเขียน โค้ด – ออกแบบหลังเขียนโค้ดก็เปล่า Compile ประโยชน์ Test Revision 2.2 03 การใช้งาน PSP0 15
  • 16. เกณฑ์การเริ่มต้นและสิ้นสุด เฟส เกณฑ์ ก ารเริ ่ ม ต้ น และสิ ้ น สุ ด เริ่มเมื่อ เริ ่ ม การวางแผน วางแผน สิ้นสุดเมื่อ แผนสมบู ร ณ์ เริ่มเมื่อ เริ ่ ม การออกแบบ ออกแบบ สิ้นสุดเมื่อ แบบสมบู ร ณ์ เริ่มเมื่อ เริ ่ ม การเขี ย นโค้ ด เขียนโค้ด สิ้นสุดเมื่อ โค้ ด เขี ย นเสร็ จ สมบู ร ณ์ เริ่มเมื่อ เริ ่ ม คอมไพล์ ค รั ้ ง แรก คอมไพล์ สิ้นสุดเมื่อ คอมไพล์ ผ ่ า น เริ่มเมื่อ เริ ่ ม ทดสอบครั ้ ง แรก ทดสอบ สิ้นสุดเมื่อ ผ่ า นการทดสอบทั ้ ง หมดโดยไม่ ม ี ข ้ อ ผิ ด พลาด เริ ่ ม สรุ ป การทำ า งาน เริ่มเมื่อ สรุป สิ้นสุดเมื่อ การสรุ ป เสร็ จ สิ ้ น Revision 2.2 03 การใช้งาน PSP0 จาก Dan Burton, Introduction to the 16 TSP and the PSP , SEI, 2005
  • 17. ตัวอย่างที่ 1 ใช้ PSP0 กับการทำางาน ตามลำาดับ • สำาหรับโปรแกรมขนาด ออกแบบ เล็กเราก็อาจจะใช้วิธี วางแผน ทำางานตามลำาดับจนเสร็จ (Waterfall) เขียนโค้ด พัฒนา คอมไพล์ สรุป ทดสอบ Revision 2.2 03 การใช้งาน PSP0 17
  • 18. ตัวอย่างที่ 2 ใช้ PSP0 กับการเขียน และคอมไพล์ทละส่วน ี • ถ้าโปรแกรมขนาด ออกแบบ ใหญ่ขึ้น เราอาจจะ วางแผน ออกแบบก่อน • จากนันแยกเขียน ้ เขียนโค้ด เขียนโค้ด โค้ดและคอมไพล์ พัฒนา ทีละโมดูล คอมไพล์ คอมไพล์ • แล้วทดสอบหลัง จากคอมไพล์ทุก สรุป โมดูล ทดสอบ Revision 2.2 03 การใช้งาน PSP0 18
  • 19. ตัวอย่างที่ 3 ใช้ PSP0 กับการเขียน คอมไพล์และทดสอบทีละส่วน • หรือ เราอาจจะ วางแผน ออกแบบ ออกแบบแล้ว • ค่อยเขียนโค้ด คอมไพล์ และ เขียนโค้ด เขียนโค้ด ทดสอบ ทีละโมดูล พัฒนา จนครบทุกโมดูล คอมไพล์ คอมไพล์ สรุป ทดสอบ ทดสอบ Revision 2.2 03 การใช้งาน PSP0 19
  • 20. ตัวอย่างที่ 4 ใช้ PSP0 กับการพัฒนา แบบทยอยเพิ่มทีละส่วน (Incremental) ถ้าโปรแกรมขนาด ใหญ่มาก วางแผน ออกแบบ ออกแบบ เราอาจจะแยกทยอย เขียนโค้ด เขียนโค้ด พัฒนาทีละโมดูล พัฒนา (Incremental) โดย คอมไพล์ คอมไพล์ ออกแบบ เขียนโค้ด คอมไพล์ และทดสอบ ทีละโมดูลจนครบทุก สรุป ทดสอบ ทดสอบ โมดูล Revision 2.2 03 การใช้งาน PSP0 20
  • 21. แบบฟอร์ม PSP0 • ใน PSP0 เราใช้แบบฟอร์มต่อไปนี้ในการ รวบรวมข้อมูล – แบบฟอร์มสรุปแผนโครงการ PSP0 • สรุปผลการทำางาน – แบบฟอร์มบันทึกเวลาการทำางาน • บันทึกเวลาในการทำางาน – แบบฟอร์มบันทึกข้อบกพร่อง • บันทึกรายละเอียดข้อบกพร่องที่เกิดขึ้น Revision 2.2 03 การใช้งาน PSP0 21
  • 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.2 03 การใช้งาน PSP0 22
  • 23. แบบฟอร์มสรุปแผนโครงการ PSP0 Defects Injected Actual To Date To Date % Planning Design Code Compile Test Total Development Revision 2.2 03 การใช้งาน PSP0 23
  • 24. แบบฟอร์มสรุปแผนโครงการ PSP0 Defects Removed Actual To Date To Date % Planning Design Code Compile Test Total Development After Development Revision 2.2 03 การใช้งาน PSP0 24
  • 25. แบบฟอร์มบันทึกเวลาการทำางาน Student Date Program Program # Instructor Start Language Date Delt Projec and Int. Stop a Phase Comments t Time Time Date Time and Time Revision 2.2 03 การใช้งาน PSP0 25
  • 26. แบบฟอร์มบันทึกข้อบกพร่อง Student Date Program Program # Instructor Language   Project Date Number Type Inject Remove Fix Time Fix Ref.   Description:   Project Date Number Type Inject Remove Fix Time Fix Ref.   Description: Revision 2.2 03 การใช้งาน PSP0 26
  • 27. มาตรฐานใน PSP0 ใน PSP0 มีเพียงมาตรฐานเดียวคือ • มาตรฐานชนิดข้อบกพร่อง (Defect Type Standard) ใช้เพือจำาแนกชนิดของข้อบกพร่อง เพื่อสะดวกในการ ่ ปรับปรุงแก้ไข Revision 2.2 03 การใช้งาน PSP0 27
  • 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.2 03 การใช้งาน PSP0 28
  • 29. ตัววัดใน PSP0 • ข้อมูลปฐมภูมิที่เรารวบรวมใน PSP0 ได้แก่ – เวลาทีใช้ในแต่ละเฟส ่ • เริ่มและสิ้นสุดเมื่อไร • ถูกขัดจังหวะไปเท่าไร – ข้อบกพร่อง • ชนิดไหน • เกิดที่เฟสไหน • ขจัดในเฟสไหน • เวลาที่ใช้ในการค้นหาและขจัดข้อบกพร่อง • รายละเอียดของสาเหตุ Revision 2.2 03 การใช้งาน PSP0 29
  • 30. ตัววัดอื่นๆ • จากข้อมูลพืนฐานทีเก็บรวบรวมใน PSP0 เราสามารถ ้ ่ คำานวณตัววัดอื่นๆทีเป็นประโยชน์ได้เช่น ่ – เปอร์เซ็นต์ของเวลาในแต่ละเฟส (% Time-in-phase) – เปอร์เซ็นต์ของข้อบกพร่องที่เกิด (% Defect injected) – เปอร์เซ็นต์ของข้อบกพร่องที่ขจัด (% Defect removed) – ต้นทุนคุณภาพ (Cost of Quality หรือ COQ) – อัตราการเกิดข้อบกพร่อง (Defect Injection Rate) – อัตราการขจัดข้อบกพร่อง (Defect Removal Rate) – ต้นทุนในการดำาเนินธุรกิจ (Overhead) Revision 2.2 03 การใช้งาน PSP0 30
  • 31. ตัววัดที่ได้จากการคำานวณใน PSP0 โดยจะใช้เป็นจุดอ้างอิงในอนาคต • เปอร์เซ็นของเวลาในแต่ละเฟส (% Time-in-phase) – แสดงถึงสัดส่วนการใช้เวลาในแต่ละเฟส • เปอร์เซ็นของข้อบกพร่องทีเกิด (% Defect injected) ่ – แสดงถึงสัดส่วนของการเกิดข้อบกพร่องในแต่ละเฟส • เปอร์เซ็นของข้อบกพร่องทีขจัด (% Defect removed) ่ – แสดงถึงสัดส่วนของการขจัดข้อบกพร่องในแต่ละเฟส Revision 2.2 03 การใช้งาน PSP0 31
  • 32. ตัวอย่างตัววัดอื่นทีสามารถคำานวณได้ ่ ใน PSP0 แต่ยังไม่ใช้ใน PSP0 • ต้นทุนคุณภาพ (Cost of Quality หรือ COQ) – สัดส่วนต้นทุนของความผิดพลาด (Percent Failure COQ) • แสดงถึงค่าใช้จ่ายที่เกิดขึ้นเมื่อมีความบกพร่องเกิดขึ้นทำาให้จะต้อง เสียเวลา และค่าใช้จ่ายในการแก้ไข • อัตราการเกิดข้อบกพร่อง (Defect Injection Rate) – แสดงถึงอัตราการเกิดข้อบกพร่องต่อหน่วยเวลา • อัตราการขจัดข้อบกพร่อง (Defect Removal Rate) – แสดงถึงอัตราในการขจัดข้อบกพร่องต่อหน่วยเวลา • ต้นทุนในการดำาเนินธุรกิจ (Overhead) – แสดงถึงค่าใช้จ่ายในการวางแผนและสรุปโครงากร Revision 2.2 03 การใช้งาน PSP0 32
  • 33. ตัวอย่างการบันทึกข้อมูล • มานะ ตั ้ ง ใจเรี ย นเป็นนักศึกษาวิชา SE514 ใช้ PSP0 ใน การเขียนโปรแกรมเพื่อส่งอาจารย์ส ะอาด สอนดี • มานะเริ่มการวางแผนโดยบันทึกเวลาเริ่มต้นในแบบฟอร์มบันทึก เวลา • หลังอ่านโจทย์ซึ่งจะให้เขียนโปรแกรมเพื่อคำานวณค่าเฉลี่ย มานะประมาณว่าจะใช้เวลา 120 นาทีถ้าเขียนด้วยภาษา Java มานะจึงบันทึก 120 ลงในช่องเวลาทั้งหมดที่วางแผนว่าจะใช้ ของแบบฟอร์มสรุปแผนโครงการ • ระหว่างที่ทำาการวางแผนอยู่นั้น มาลีได้โทรศัพท์มา มานะได้ สนทนากับมาลีรวม 2 นาทีแล้วกลับมาทำางานต่อ ่ • จากนันก็บันทึกเวลาสิ้นสุดการวางแผนในแบบฟอร์มบันทึกเวลา ้ Revision 2.2 03 การใช้งาน PSP0 33
  • 34. ตัวอย่างการบันทึกข้อมูล Time Recording Log Student มานะ ตั้งใจเรียน Date 9 ม.ค. 2553 Program คำานวณค่าเฉลี่ย Program # 1 Instructor Start อาจารย์สะอาด สอนดี Language Java Date Delt Projec and Int. Stop a Phase Comments t Time Time Date Time 1 Plan 9 ม.ค. 53 and 13:00:04 Time Revision 2.2 03 การใช้งาน PSP0 34
  • 35. ตัวอย่างการบันทึกข้อมูล 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.2 03 การใช้งาน PSP0 35
  • 36. ตัวอย่างการบันทึกข้อมูล Time Recording Log Student มานะ ตั้งใจเรียน Date 9 ม.ค. 2553 Program คำานวณค่าเฉลี่ย Program # 1 Instructor Start อาจารย์สะอาด สอนดี Language Java Date Delt Projec and Int. Stop a Phase Comments t Time Time Date Time 1 Plan 9 ม.ค. 53 2 and 9 ม.ค. 53 2:24 พูดโทรศัพท์กบมาลี ั 13:00:04 Time 13:04:28 Revision 2.2 03 การใช้งาน PSP0 36
  • 37. ตัวอย่างการบันทึกข้อบกพร่อง • หลังจากเขียนโปรแกรมเสร็จแล้ว มานะเริ่มคอมไพล์ โปรแกรม • คอมไพเลอร์แสดงข้อผิดพลาดว่าไม่พบสัญลักษณ์ Systemout • สาเหตุก็คือ ตก . ระหว่าง System กับ out • มานะแก้ไข แล้วคอมไพล์อีกครั้ง คราวนี้แสดงข้อผิด พลาดว่าไม่มี package Syste • สาเหตุก็คือ ระหว่างการแก้ไขข้อบกพร่องที่ 1 มานะได้ ทำาสร้างข้อบกพร่องที่ 2 คือ พิมพ์ . ทับไปทีตัวอักษร m ่ Revision 2.2 03 การใช้งาน PSP0 37
  • 38. ตัวอย่างการบันทึกข้อมูล Defect Recording Log Student มานะ ตั้งใจเรียน Date 9 ม.ค. 2553 Program คำานวณค่าเฉลี่ย Program # 1 Instructor อาจารย์สะอาด สอนดี Language Java   Project Date Number 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.2 03 การใช้งาน PSP0 38
  • 39. ความสำาคัญของการบันทึกข้อมูล • ข้อมูลที่ถูกต้อง เที่ยงตรง แม่นยำา คงเส้นคงวา และสมบูรณ์จะช่วยให้สามารถใช้ประโยชน์จาก PSP ได้อย่างเต็มที่ • ถ้าขาดข้อมูลที่ดีเราจะไม่สามารถ – วิเคราะห์กระบวนการได้อย่างถูกต้อง – รู้ได้ว่าเราทำางานเป็นอย่างไร – ปรับปรุงกระบวนการพัฒนาของเราอย่างเหมาะสม Revision 2.2 03 การใช้งาน PSP0 39
  • 40. ความแม่นยำากับความเที่ยงตรง • ความแม่นยำา – เกี่ยวข้องกับการใช้ตัววัดทีเหมาะสม ่ – เช่น เราวัดเวลาในการทำางานจากเวลาที่ใช้จริง แต่ ไม่วัดจากระยะเวลาที่ถูกขัดจังหวะ • ความเที่ยงตรง – เกี่ยวข้องกับการรวบรวมข้อมูลทีระดับความละเอียด ่ ทีเหมาะสม ่ – เช่น เราจะวัดระยะเวลาในหน่วยนาทีสำาหรับงานที่ คาดว่าจะใช้เวลาไม่เกิน 1 สัปดาห์ แต่จะไม่ใช้ หน่วยนาทีสำาหรับงานทีคาดว่าจะใช้เวลา 1 ปี ่ Revision 2.2 03 การใช้งาน PSP0 40
  • 41. ความแม่นยำากับความเที่ยงตรง แม่ น ยำ า และเที ่ ย ง ไม่ แ ม่ น ยำ า ตรง แต่ เ ที ่ ย งตรง แม่ น ยำ า แต่ ไม่ แ ม่ น ยำ า ไม่ เ ที ่ ย ง และไม่ เ ที ่ ย ง ตรง ตรง Revision 2.2 03 การใช้งาน PSP0 41
  • 42. วิธีการบันทึกข้อมูล • บันทึกข้อมูลขณะทำางาน • พยายามบันทึกข้อมูลให้เที่ยงตรงแม่นยำา • บันทึกเฟสที ่ โ ปรแกรมอยู ่ ไม่ใช่กิจกรรมที่ทำา Revision 2.2 03 การใช้งาน PSP0 42
  • 43. เฟส และ กิจกรรม ตั ว อย่ า ง: ระหว่างคอมไพล์โปรแกรม ปรีชาพบว่าเขาต้อง ออกแบบและเขียนโปรแกรมบางส่วนใหม่ คำ า ถาม: ปรีชาทำากิจกรรมใด? คำ า ตอบ: แก้ไขข้อบกพร่อง ออกแบบและเขียนโปรแกรม คำ า ถาม: โปรแกรมของปรีชาอยู่ในเฟสไหน? คำ า ตอบ: คอมไพล์ Revision 2.2 03 การใช้งาน PSP0 43
  • 44. เวลาในการแก้ไขข้อผิดพลาด • เวลาในการแก้ไขข้อผิดพลาด = เวลาทีใช้ในการ ่ ค้นหาและแก้ไขข้อบกพร่อง • ตัวอย่าง 10:00 พบข้อบกพร่องระหว่างคอมไพล์โปรแกรม … หยุ ด พั ก 10:20 เปิดโปรแกรมมาแก้ไข 10:30 แก้ไขข้อผิดพลาด 10:31 คอมไพล์ผ่าน คำ า ถาม: เวลาในการแก้ไขข้อผิดพลาดเป็นเท่าไร? คำ า ตอบ: 11 นาที (10:31 – 10:20 = 11 นาที) Revision 2.2 03 การใช้งาน PSP0 44
  • 45. การบันทึกเมือพัฒนาโปรแกรม ่ แบบทำาทีละส่วน • ปิติแบ่งการพัฒนาโปรแกรม เป็น 2 ส่วนคือ โมดูล A และ ออกแบบ B • ปิติเขียน คอมไพล์ และ โมดูล A โมดูล B ทดสอบโมดูลจนผ่าน เขียนโค้ด เขียนโค้ด • ต่อมาขณะกำาลังเขียนโค้ด ของโมดูล B ปิติพบและ แก้ไขข้อบกพร่องในโมดูล A คอมไพล์ คอมไพล์ คำ า ถาม: ข้อบกพร่องถูกขจัดใน เฟสไหน คำ า ตอบ: Test (ของโมดูล A) ทดสอบ ทดสอบ Revision 2.2 03 การใช้งาน PSP0 45
  • 46. การบันทึกข้อบกพร่องทีเกิดจากการ ่ แก้ไขข้อบกพร่องก่อนหน้า • ระหว่างการทดสอบโปรแกรม กนกพบว่าเขาเขียนตรรกะบาง ส่วนของโปรแกรมไม่ถูกต้อง เขาจึงออกแบบ และเขียน โปรแกรมส่วนดังกล่าวใหม่ • ระหว่างการคอมไพล์โปรแกรมที่แก้ไขใหม่ คอมไพเลอร์แสดง ข้อผิดพลาด ซึ่งเขาก็แก้ไขแล้วคอมไพล์ใหม่อกครั้ง ปรากฏว่า ี คอมไพล์ผ่าน คำ า ถาม: ข้อผิดพลาดใหม่นเ กิ ด (inject) ในเฟสไหน ี้ คำ า ตอบ: ทดสอบ (เนืองจากเกิดขณะที่โปรแกรมอยู่ในเฟสทดสอบ) ่ คำ า ถาม: ข้อผิดพลาดใหม่นข จั ด (remove) ในเฟสไหน ี้ คำ า ตอบ: ทดสอบ (เนืองจากขจัดขณะที่โปรแกรมอยู่ในเฟส ่ ทดสอบ) Revision 2.2 03 การใช้งาน PSP0 46
  • 47. ความผิดพลาดที่พบบ่อย • ไม่ได้บนทึกเวลาทันที ั • ไม่ได้หยุดเวลาเมื่อถูกขัดจังหวะ • ข้ามเฟสหรือสลับลำาดับเฟสการทำางาน • ไม่ได้บนทึกข้อบกพร่อง ั • เข้าใจผิดเรื่องเวลาในการแก้ไขข้อบกพร่อง • สับสนระหว่างเฟสกับกิจกรรม • บันทึกเฟสผิดเมื่อพัฒนาแบบทำาจนเสร็จทีละส่วน • บันทึกข้อบกพร่องไม่ชัดเจน Revision 2.2 03 การใช้งาน PSP0 47
  • 48. สรุป • เราเรียนรู้สิ่งต่อไปนีใน PSP0 ้ – หลักการของกระบวนการ – ตัววัดขั้นพืนฐาน: เวลา และ ข้อบกพร่อง ้ – การเก็บข้อมูลการทำางาน • ข้อมูลมีคณค่าก็ต่อเมื่อข้อมูลนัน ุ ้ – ถูกต้อง – แม่นยำา – คงเส้นคงวา – ครบถ้วนสมบูรณ์ Revision 2.2 03 การใช้งาน PSP0 48

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 Revision 2.2 (2012-05-16) Revise the explanation
  2. Revision 2.2 Rearrange topics to match the new slide sequence
  3. Revision 2.2 Update steps
  4. Revision 2.2 Revise some explanation
  5. Revision 2.2 Revise explanation
  6. Revision 2.2 Update contents and add animation
  7. Revision 2.2 Add parentheses to make the context clearer.
  8. Revision 2.2 Change from iterative to incremental
  9. Revision 2.2 Remove To-Date from all percentage measures
  10. Revision 2.2 Remove To-Date from all percentage measures
  11. 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.
  12. 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.
  13. Revision 2.2 Reorder slides and highlight Q&A
  14. Revision 2.2 Add how 11 minutes is calculated, highlight Q&A and reorder slide
  15. Revision 2.2 Highlight Q&A and reorder slide
  16. Revision 2.2 Revise explanation, highlight Q&A and reorder slide
  17. Revision 2.2 Add more frequent mistakes and revise explanation
  18. Revision 2.2 Revise the explanation