ฉันสามารถนึกถึงสองวิธีในการดูการบำรุงรักษา (ฉันมั่นใจว่ามีหวังมากกว่าที่คนอื่น ๆ สามารถหาคำจำกัดความที่ดีได้
การดัดแปลงโดยไม่เข้าใจ
เครื่องมือแก้ไขข้อบกพร่องสามารถเข้ามาในรหัสและแก้ไขปัญหาโดยไม่จำเป็นต้องเข้าใจวิธีการทำงานของระบบทั้งหมด
สิ่งนี้สามารถทำได้โดยการให้การทดสอบหน่วยที่ครอบคลุม (การทดสอบการถดถอย) คุณควรจะสามารถตรวจสอบได้ว่าการเปลี่ยนแปลงใด ๆ ในระบบนั้นไม่ได้เปลี่ยนวิธีการทำงานของระบบด้วยอินพุตที่ดีเฉพาะ
ในสถานการณ์นี้ผู้แก้ไขข้อบกพร่องควรสามารถเข้ามาและแก้ไขข้อบกพร่อง (แบบง่าย) โดยมีความรู้เพียงเล็กน้อยเกี่ยวกับระบบ หากการแก้ไขใช้งานไม่ได้การทดสอบการถดถอยจะล้มเหลว หากการทดสอบการถดถอยล้มเหลวคุณต้องย้ายไปยังสเตจ 2
maintainabilty1 = K1 . (Code Coverage)/(Coupling of Code) * (Complexity of API)
ดัดแปลงด้วยความเข้าใจ
หากการแก้ไขข้อบกพร่องกลายเป็นเรื่องไม่สำคัญและคุณต้องเข้าใจระบบ แล้วเอกสารของระบบคืออะไร เราไม่ได้พูดถึงเอกสารของ API ภายนอก (พวกมันค่อนข้างไร้ประโยชน์) สิ่งที่เราต้องเข้าใจคือวิธีการทำงานของระบบที่ใช้เคล็ดลับที่ฉลาด (อ่านแฮ็ก) ในการใช้งาน ฯลฯ
แต่เอกสารไม่เพียงพอรหัสจะต้องชัดเจนและเข้าใจได้ ในการวัดความเข้าใจโค้ดเราสามารถใช้เล่ห์เหลี่ยมเล็กน้อย หลังจากที่ผู้พัฒนาได้เสร็จสิ้นการเข้ารหัสให้เขา / เธอเดือนเพื่อทำงานอย่างอื่น จากนั้นขอให้พวกเขากลับมาและจัดทำเอกสารระบบเท่าที่ท่าเรือสามารถเข้าใจระบบได้ หากรหัสนั้นค่อนข้างง่ายที่จะเข้าใจแล้วควรจะรวดเร็ว หากมีการเขียนไม่ดีพวกเขาจะใช้เวลานานกว่าในการหาสิ่งที่พวกเขาสร้างและเขียนเอกสาร
ดังนั้นบางทีเราสามารถหาข้อวัดนี้ได้:
maintainability2 = K2 . (Size of doc)/(Time to write doc)