Software quality Software quality
- คำว่า “คุณภาพ” โดยปกติหมายความว่าผลิตภัณฑ์ควรเป็นไปตามข้อกำหนด
- ปัญหาสำหรับคุณภาพของระบบซอฟต์แวร์
- มีความตึงเครียดระหว่างข้อกำหนดด้านคุณภาพของลูกค้า (ประสิทธิภาพ ความน่าเชื่อถือ ฯลฯ ) และความต้องการด้านคุณภาพของนักพัฒนา (ความสามารถในการบำรุงรักษา การนำมาใช้ใหม่ เป็นต้น)
- ข้อกำหนดด้านคุณภาพบางเรื่องนั้นอาจจะระบุอย่างชัดเจนได้ยาก
- ข้อกำหนดของซอฟต์แวร์มักไม่สมบูรณ์และมักจะไม่สอดคล้องกัน
- ถ้าจำเป็นต้องเลือก ให้เลือกวิธีการที่พัฒนาซอฟต์แวร์ได้อย่าง “ตรงตามความต้องการ" มากกว่า “สอดคล้องกับข้อกำหนด” Software fitness for purpose
- ซอฟต์แวร์ได้รับการทดสอบอย่างถูกต้องหรือไม่?
- ซอฟต์แวร์มีความน่าเชื่อถือเพียงพอที่จะนำไปใช้หรือไม่?
- ประสิทธิภาพของซอฟต์แวร์เป็นที่ยอมรับสำหรับการใช้งานตามปกติหรือไม่?
- ซอฟต์แวร์สามารถใช้งานได้หรือไม่?
- ซอฟต์แวร์มีโครงสร้างที่ดีและทำความเข้าใจได้ง่ายหรือไม่?
- ในกระบวนการพัฒนามีมาตรฐานการเขียนโปรแกรมและจัดการจัดทำเอกสารหรือไม่? Non-functional characteristics
- คุณภาพของระบบซอฟต์แวร์ส่วนใหญ่ มักจะอยู่ในความสามารถที่เป็น non-functional
- ลักษณะดังกล่าวสะท้อนถึงประสบการณ์ของผู้ใช้
- ถ้าการทำงานของซอฟต์แวร์ไม่เป็นไปตามผู้ใช้ที่คาดหวัง เขามักจะหาวิธีการอะไรสักอย่างเพื่อให้สามารถในการทำสิ่งที่ต้องการจนได้ (เช่น การใช้คีย์ลัด เป็นต้น) Software quality attributes Quality conflicts
- ไม่สามารถปรับแต่งระบบใด ๆ ให้เหมาะกับคุณลักษณะเหล่านี้ทั้งหมดเช่นการปรับปรุงความแข็งแกร่งอาจทำให้ประสิทธิภาพการทำงานลดลง
- แผนคุณภาพจึงควรกำหนดคุณลักษณะคุณภาพที่สำคัญที่สุดสำหรับซอฟต์แวร์ที่กำลังพัฒนาขึ้น
- แผนควรรวมถึงคำนิยามของกระบวนการประเมินคุณภาพซึ่งเป็นวิธีที่ตกลงกันในการประเมินว่ามีคุณภาพบางอย่างเช่นความสามารถในการบำรุงรักษาหรือความทนทานอยู่ในผลิตภัณฑ์ Process and product quality
- คุณภาพของผลิตภัณฑ์มักจะได้รับผลกระทบจากคุณภาพของกระบวนการผลิต
- นี่เป็นสิ่งสำคัญในการพัฒนาซอฟต์แวร์ เนื่องจากคุณลักษณะบางอย่างของคุณภาพของผลิตภัณฑ์นั้นยากที่จะประเมินได้
- มีความสัมพันธ์ที่ซับซ้อนและเข้าใจได้ยาก ระหว่าง software process และ product quality
- การใช้ทักษะและประสบการณ์ของแต่ละบุคคลมีความสำคัญเป็นพิเศษในการพัฒนาซอฟต์แวร์
- ปัจจัยภายนอก เช่น ความแปลกใหม่ของ application หรือความจำเป็นในการกระชับตารางเวลาในการพัฒนา อาจส่งผลต่อคุณภาพของผลิตภัณฑ์ Quality culture
- ผู้จัดการคุณภาพ (Quality managers) ควรมุ่งมั่นที่จะพัฒนา 'วัฒนธรรมคุณภาพ’ (quality culture) ซึ่งทุกคนรับผิดชอบด้านการพัฒนาซอฟต์แวร์มุ่งมั่นที่จะบรรลุถึงคุณภาพของผลิตภัณฑ์ในระดับสูง
- ควรส่งเสริมให้ทุกคนในทีม มีความรับผิดชอบต่อคุณภาพของงานและพัฒนาแนวทางใหม่ในการปรับปรุงคุณภาพอย่างสม่ำเสมอ