สวัสดีครับ นี้เป็นการเขียนบล็อกที่สองของผม วันนี้ผมจะมาแนะนำ การทำ Software หรือ Project ให้มีคุณภาพ ตามหลัก Software Engineeringในเรื่องของ Quality of Software Product พร้อมกันหรือยังครับ วันนี้ผมจะมาเล่าสิ่งหลักๆ ที่ควรมีในการสร้างงานให้มีคุณภาพ Quality หรือมาตรฐานทั้งหมด 16 ตัว
โดยผมจะมีเทคนิคการดูและการแบ่งแยกตามนี้
กลุ่มแรก (บางคนเรียกว่าสามทหารเสือ)
1.Correctness (ความถูกต้อง) คือ การทำให้ Software หรืองานของเราถูกต้องตามความต้องการของลูกค้า ตรงตาม Requirements Specifications โดยความเคร่งครัดในเรื่องของ Functional จะขึ้นอยู่กับ User
2.Reliability (ความน่าเชื่อถือ) ถ้าเราวางแผนที่ดี ทำ Software ให้ correctness ก็จะแสดงให้เห็นได้ว่า งานของเราก็จะมี ความน่าเชื่อถือตามมา
3.Robustness (ความแข็งแกร่งทนทาน) หมายความว่าที่เราพัฒนา Software ของเราจะต้องทำงาน (Process) ได้ตลอดเวลา ไม่ใช่ว่าทำได้บ้างไม่ได้บ้าง สรุปทั้ง 3 อันนี้มีความเกี่ยวข้องกัน คือ ความถูกต้องจะอยู่ ในความน่าเชื่อถือ และถ้าเราทำให้มีความถูกต้อง ก็จะทำให้ มีความแข็งแกร่ง
4.Performance (ความเร็ว) ทำให้ Software ของเรามีความเร็ว ไม่ทำให้ Software ตัวใหญ่ อุ้ยอ้าย ทำงานได้ช้า
5.User Friendliness (ใช้งานง่าย) สามารถให้ User เข้ามาแล้วรู้ว่าควรจะใช้อะไร เรียนรู้การใช้งานได้เอง ไม่ต้องยืนยันอะไรมากมาย ออกแบบให้เป็นหลักสากล (easy to user)ไม่ออกแบบให้ ซับซ้อนเข้าถึงยาก ออกแบบให้ใช้ เมาส์เยอะๆกว่าการใช้คีย์บอร์ด เพราะ User ที่ใช้งานเป็นใหม่ๆจะใช้เมาส์ได้ดีกว่าการใช้ คีย์บอร์ด Correctness and Performance alo affect user friendliness
6.Verifiability (ตรวจสอบได้) Software system should be verified easily สามารถตรวจสอบได้ว่า Function ตัวไหนเรียกตัวไหน
7.Maintainablity(บำรุงรักษาได้) “We can user the word Software evolution” การบำรุงรักษา
จะแบ่งออกเป็น 3 แบบ
- Corrective การเอา error ออก
- Adaptive ปรับเปลี่ยนให้ทันสมัยอยู่เสมอ
- Perfective ทำให้สมบูรณ์แบบ
8.Repairability (ซ่อมแซม) ความสามารถที่จะใช้ได้อยู่ตลอดเวลา ทำให้ Software พร้อมใช้บริการได้อยู่เสมอ
9.Evolvability (พัฒนาต่อ) ความสามารถในการพัฒนาต่อไปเรื่อยๆ เพื่อให้รองรับ platfrom ใหม่ๆ และต้องทำเอกสารบอกเสมอว่าเราแก้ไขอะไรไปบ้าง เพื่อจะทำให้แก้ไขในอนาคตได้งาย
10.Reusability (นำกลับมาใช้ใหม่) เป็นการ reuse มาบางส่วนเพื่อ ลด Cost ใช้จ่ายในการพัฒนาต่อ reuse บางส่วนโดยใช้ requirement เดิมได้แล้วก็เพิ่มอะไรที่เป็นตัวใหม่เข้ามา
11.Portability (พกพาได้) Software ตัวเล็ก สามารถใช้ได้หลาย platfrom
12.Understandabilitty( เข้าใจง่าย) The design that is easy to understand. ออกแบบให้ใช้งานง่าย ถ้าออกแบบให้ใช้งานยาก User ก็จะไม่เข้ามาใช้งานอีก
13.Interoperability (ทำงานข้ามระบบ) สามาถที่จะทำงานข้ามระบบได้ เช่นเข้า login บน Windows ใน Software เดียวกัน ต้องสามารถเข้า Software ตัวนี้ ใน ระบบปฏิบัติการ อื่นๆได้ด้วย
4.Productivity (ผลิตภาพ) Productivity is a performance quality applied to the process ถ้าเครื่องคอมช้าก็จะส่งผลต่อความเร็ว
15.Timeliness (ตรงเวลา) มีการกำหนดงานและวางแผนแล้วทำให้ได้เป็นไปตามแผน และถูกต้อง แสดงให้เห็นถึงคุณภาพของทีมงาน เพราะ Product บางตัวต้องแข่งขันทางการตลาด ถ้าเราส่งไม่ตรงเวลาก็จะทำให้ Product แข่งขันกับคู่แข่งไม่ทัน
16.Visibility (มองเห็นได้) โครงสร้างชัดเจนส่งผลให้เข้าใจง่าย รู้การทำงานทั้งหมดทำให้ Design หน้าจอได้ชัดเจนและทำให้ User ใช้งานได้ง่าย และต้องทำเอกสารที่ทุกคนในทีมต้องเข้าถึงได้