180 likes | 588 Views
Software Quality Management. Software Development and Management. Outline. Software Quality and Software Quality Management Quality Assurance Quality Planning Quality Control Software Measurement Techniques used for Quality Management. Quality. คุณภาพ
E N D
Software Quality Management Software Development and Management
Outline • Software Quality and Software Quality Management • Quality Assurance • Quality Planning • Quality Control • Software Measurement • Techniques used for Quality Management
Quality • คุณภาพ • หมายถึง คุณสมบัติทุกประการของสินค้าและบริการที่สามารถตอบสนองต่อความต้องการของลูกค้าได้ทั้งทางตรงและทางอ้อม(ISO8402, 1994) • หมายถึง ระดับที่คุณลักษณะบางอย่างของผลิตภัณฑ์ที่ผลิตขึ้นมา สามารถเติมเต็มหรือตอบสนองความต้องการและความคาดหวังของผู้ใช้ได้ (ISO9001, 2000)
Software Quality Management • การจัดการคุณภาพของซอฟต์แวร์ • หมายถึง วิธีการที่จะทำให้มั่นใจได้ว่าผลิตภัณฑ์ซอฟต์แวร์ที่ได้นั้นมีคุณภาพในระดับที่พอใจ (Sommerville, 2007) • หมายถึง กิจกรรมด้านการจัดการทั้งหมด ได้แก่ กำหนดนโยบายคุณภาพ วัตถุประสงค์ และความรับผิดชอบด้านคุณภาพ แล้วนำไปปฏิบัติด้วยวิธีการต่างๆ เช่น การวางแผนคุณภาพ การประกันคุณภาพ การควบคุมคุณภาพ และการพัฒนาคุณภาพ (ISO8402,1994)
Software Quality Management • ประกอบด้วย 3 กิจกรรมหลัก • Quality Assurance • Quality Planning • Quality Control
ปัจจัยที่ควรพิจารณาในการจัดการคุณภาพซอฟต์แวร์ปัจจัยที่ควรพิจารณาในการจัดการคุณภาพซอฟต์แวร์ • สร้างวัฒนธรรมและทัศนคติที่ดีต่อคุณภาพ • ต้นทุนของคุณภาพ • ต้นทุนการป้องการ • ต้นทุนในการประเมิน • ต้นทุนของความผิดพลาดภายใน • ต้นทุนของความผิดพลาดภายนอก • คุณลักษณะของซอฟต์แวร์ที่มีคุณภาพ
ปัจจัยที่ควรพิจารณาในการจัดการคุณภาพซอฟต์แวร์ปัจจัยที่ควรพิจารณาในการจัดการคุณภาพซอฟต์แวร์ • คุณลักษณะของซอฟต์แวร์ที่มีคุณภาพ (ต่อ) • Maintainability • Dependability • Efficiency • Usability • (Functionality) • (Portability) ตามมาตรฐาน ISO/IEC9126
ปัจจัยที่ควรพิจารณาในการจัดการคุณภาพซอฟต์แวร์ปัจจัยที่ควรพิจารณาในการจัดการคุณภาพซอฟต์แวร์ • คุณภาพของกระบวนการผลิตและผลิตภัณฑ์ • การบวนการผลิตเป็นปัจจัยสำคัญที่มีผลต่อคุณภาพของผลิตภัณฑ์ • กระบวนการผลิตมีคุณภาพ -> ซอฟต์แวร์มีคุณภาพ • สามารถใช้แบบจำลอง CMM หรือ CMMI มาใช้ในการปรับปรุงคุณภาพของกระบวนการได้ Capability Maturity Model + Capability Maturity ModelIntegration
Quality Assurance • การประกันคุณภาพ หมายถึง ระบบของนโยบาย วิธีการปฏิบัติ และเครื่องชี้นำที่ผู้บริหารใช้รับรองเพื่อให้สินค้าและการบริการเป็นไปตามมาตรฐานเฉพาะเจาะจง สอดคล้องกับคุณภาพผลิตภัณฑ์ตามที่กำหนดไว้ (Bovee, 1993) • เป็นกระบวนการที่รับประกันว่าผลิตภัณฑ์ซอฟต์แวร์และกระบวนการผลิตตลอดช่วงชีวิตของโครงการ เป็นไปตามความต้องการที่กำหนด ด้วยการวางแผน การประกาศใช้นโยบาย และการดำเนินกิจกรรมต่าง ๆ เพื่อทำให้มั่นใจว่าซอฟต์แวร์ที่ผลิตจะมีคุณภาพสูงสุด (IEEE, 2004)
Quality Assurance • ต้องเป็นไปตามมาตรฐาน หรือได้ตามมาตรฐานที่กำหนด • มีสองอย่างที่ต้องได้มาตรฐานคือ • Product Standard เป็นมาตรฐานที่นำมาใช้วัดผลิตถัณฑ์ซอฟต์แวร์ • Process Standard เป็นมาตรฐานที่ใช้วัดกระบวนการในการผลิต • มาตรฐานของ ISO (International Standard Organization) • ISO 9001 • ISO 9002 • ISO 9003
Quality Assurance • Document Standard • Documentation Process Standard: มาตรฐานของการบวนการจัดทำเอกสาร ดูขั้นตอนการผลิต format กระดาษ ซอฟต์แวร์ทีใช้สร้าง เป็นต้น • Document Standard: มาตรฐานของตัวเอกสารเอง โดยดูโครงสร้าง และรูปแบบต้องได้มาตรฐานสอดคล้อง • Document Interchange Standard: มาตรฐานในการแลกเปลี่ยนเอกสาร สามารถใช้ได้กับทุกสถาพแวดล้อม
Quality Planning • คือ กระบวนการในการจัดทำแผนงานคุณภาพสำหรับโครงการ • ซึ่งภายในแผนงาน ประกอบด้วย • การกำหนดนิยามของคุณลักษณะของซอฟต์แวร์ที่มีคุณภาพ • วิธีการประมินคุณภาพดังกล่าว • โครงสร้างของเอกสารแผนคุณภาพประกอบด้วย • Product Introduction • Product Plan • Process Description • Quality Goal • Risk and Risk Management
Quality Control (QC) • คือ กระบวนการดูแลและควบคุมให้กระบวนการผลิตซอฟต์แวร์ ดำเนินไปตามแผนงานการประกันคุณภาพและมาตรฐานต่างๆ อย่างครบถ้วน (Ian Sommerville, 2007)
Quality Control (QC) • วิธีการความคุมคุณภาพประกอบด้วย • Quality Review: การทบทวนคุณภาพ • Design and Program Inspection คือ การตรวจทานโปรแกรมหรือการออกแบบ เพื่อค้นหาข้อผิดพลาดหรือข้อบกพร่องในการออกแบบและการโปรแกรม • Progress Review คือ การทบทวนความคืบหน้าของโครงการ ตรวจกระบวนการตรวจทานงาน งบประมาณที่ใช้ไป เป็นไปตามตารางแผนดำเนินงานหรือเปล่า • Automated Software Assessment การประเมิณซอฟต์แวร์แบบอัตโนมัติ
Software Measurement • การวัดซอฟต์แวร์ คือ กระบวนการวัด (measure)เพื่อให้ได้ค่าที่เป็นตัวเลขของคุณลักษณะบางอย่างของซอฟต์แวร์ (Software Attributes) หรือกระบวนการผลิตซอฟต์แวร์ (Software Development Process) • วัดไปเพื่ออะไร • เพื่อประเมินคุณภาพ • เพื่อประมาณการต้นทุน • บางอย่างวัดได้โดยตรง บางอย่างวัดออกมาเป็นตัวเลขลำบาก • อาศัย Metric มาเป็นดัชนีชี้วัดค่าต่างๆ (ตารางหน้า 307)