เราได้กล่าวถึง Low code กันมาหลายตอนแล้วครับ จะเห็นว่าทุกคลิป ทุก แพลตฟอร์มล้วนแล้วแต่จะต้องพูดถึงเรื่องต้นทุน ดังนั้น Software tools และแพลตฟอร์มที่ดีจะต้องถูกพัฒนาด้วย วิศวกรรมซอฟต์แวร์ ที่ถูกต้อง ผู้สร้างเข้าใจถึงจุดสำคัญหลายๆ ประเด็นด้วยกัน

เรามาเริ่มกันเลยครับ โดย โพสต์นี้ ได้เรียบเรียงมาจาก : https://www.javatpoint.com/software-engineering-software-maintenance-cost-factors

ปัจจับสำคัญในการบำรุงรักษา Software

  • ปัจจัยด้านเทคนิค
  • ปัจจัยอื่นๆ ที่ไม่ใช่เรื่องเทคนิค

Non-Technical Factors

Application Domain หรือ การนำแอพพลิเคชั่นนั้นไปใช้งานอย่างไร

  • หากแอปพลิเคชันของโปรแกรมได้รับการกำหนดและเข้าใจเป็นอย่างดี ความต้องการของระบบอาจอยู่ในขั้นสุดท้ายและการบำรุงรักษาเนื่องจากความต้องการที่เปลี่ยนแปลงให้เหลือน้อยที่สุด
  • หากแบบฟอร์มเป็นแบบฟอร์มใหม่ทั้งหมด มีแนวโน้มว่าเงื่อนไขเริ่มต้นจะถูกแก้ไขบ่อยครั้ง เมื่อผู้ใช้ได้รับประสบการณ์กับระบบ

Staff Stability การเข้าๆ ออกๆ ของทีมงาน

  • มันเป็นเรื่องง่ายสำหรับผู้เขียนโปรแกรมต้นฉบับที่จะเข้าใจและเปลี่ยนแปลงแอปพลิเคชัน แทนที่จะต้องเข้าใจบุคคลอื่นที่ต้องเข้าใจโปรแกรมโดยการศึกษารายงานและรายการรหัส
  • หากการนำระบบไปใช้ยังคงรักษาระบบนั้นไว้ ค่าใช้จ่ายในการบำรุงรักษาก็จะลดลง
  • ในทางปฏิบัติ คุณลักษณะของวิชาชีพการเขียนโปรแกรมคือการที่บุคคลเปลี่ยนงานเป็นประจำ เป็นเรื่องปกติที่ผู้ใช้รายหนึ่งจะพัฒนาและบำรุงรักษาแอปพลิเคชันตลอดอายุการใช้งาน

Software Lifetime หรือ อายุการใช้งาน

โปรแกรมจะล้าสมัยเมื่อโปรแกรมล้าสมัยหรือฮาร์ดแวร์เดิมถูกเปลี่ยน และค่าใช้จ่ายในการแปลงเกินกว่าค่าใช้จ่ายในการเขียนใหม่

Dependence on External Environment หรือ การพึ่งพาสภาพแวดล้อมภายนอก

  • หากการใช้งานขึ้นอยู่กับสภาพแวดล้อมภายนอก จะต้องปรับเปลี่ยนตามสภาพอากาศที่เปลี่ยนแปลง
  • ตัวอย่างเช่น:
  • การเปลี่ยนแปลงในระบบภาษีอาจจำเป็นต้องแก้ไขโปรแกรมบัญชีเงินเดือน การบัญชี และการควบคุมสินค้าคงคลัง
  • การเปลี่ยนแปลงด้านภาษีเกิดขึ้นเกือบบ่อยครั้ง และค่าบำรุงรักษาสำหรับโปรแกรมเหล่านี้สัมพันธ์กับความถี่ของการเปลี่ยนแปลงเหล่านี้
  • โปรแกรมที่ใช้ในการประยุกต์ทางคณิตศาสตร์โดยทั่วไปไม่ได้ขึ้นอยู่กับมนุษย์ที่เปลี่ยนแปลงสมมติฐานที่โปรแกรมนั้นใช้เป็นหลัก

Hardware Stability หรือ ความมั่นคง ความเสถียรของฮาร์ดแวร์

  • หากแอปพลิเคชันได้รับการออกแบบให้ทำงานบนการกำหนดค่าฮาร์ดแวร์เฉพาะ และการกำหนดค่านั้นไม่มีการเปลี่ยนแปลงในระหว่างอายุการใช้งานของโปรแกรม จะไม่มีค่าใช้จ่ายในการบำรุงรักษาเนื่องจากการเปลี่ยนแปลงฮาร์ดแวร์
  • การพัฒนาฮาร์ดแวร์เพิ่มขึ้นมากจนเกิดสถานการณ์เช่นนี้ได้ยาก
  • จะต้องเปลี่ยนแอปพลิเคชันให้ใช้ฮาร์ดแวร์ใหม่ทดแทนอุปกรณ์ที่ล้าสมัย

Techinical factors ปัจจัยทางด้านเทคนิค

Module Independence ความเป็นอิสระของโมดูล

  • ควรเป็นไปได้ที่จะเปลี่ยนหนึ่งหน่วยโปรแกรมของระบบโดยไม่ส่งผลกระทบต่อหน่วยอื่น

Programming Language หรือ ภาษาโปรแกรมที่ใช้

  • โดยทั่วไปโปรแกรมที่เขียนด้วยภาษาการเขียนโปรแกรมระดับสูงมักจะเข้าใจได้ง่ายกว่าโปรแกรมที่เขียนด้วยภาษาระดับต่ำ

Programming Style หรือ สไตล์การเขียนโปรแกรม

  • วิธีการเขียนโปรแกรมมีส่วนทำให้โปรแกรมมีความเข้าใจและสามารถแก้ไขได้ง่าย

Program Validation and Testing หรือ การตรวจสอบและทดสอบโปรแกรม

  • โดยทั่วไปแล้ว เวลาและความพยายามถูกใช้ไปกับการตรวจสอบการออกแบบและการทดสอบโปรแกรมมากขึ้น จุดบกพร่องในโปรแกรมก็น้อยลง และส่งผลให้ค่าบำรุงรักษาที่เกิดจากการแก้ไขจุดบกพร่องก็ลดลง
  • ค่าบำรุงรักษาเนื่องจากการแก้ไขจุดบกพร่องจะเป็นไปตามประเภทของข้อผิดพลาดที่จะซ่อมแซม
  • โดยทั่วไปข้อผิดพลาดในการเขียนโค้ดมักจะถูกในการแก้ไข ข้อผิดพลาดในการออกแบบมีราคาแพงกว่า เนื่องจากอาจรวมถึงการเขียนหน่วยโปรแกรมหนึ่งหน่วยขึ้นไปใหม่ด้วย
  • ข้อบกพร่องในข้อกำหนดของซอฟต์แวร์มักจะมีราคาแพงที่สุดในการแก้ไขเนื่องจากมีการออกแบบที่รุนแรงซึ่งโดยทั่วไปเกี่ยวข้อง

Documentation หรือ เอกสารประกอบ

  • หากโปรแกรมได้รับการสนับสนุนด้วยเอกสารที่ชัดเจน สมบูรณ์แต่กระชับ ฟังก์ชันในการทำความเข้าใจแอปพลิเคชันก็สามารถเชื่อมโยงได้อย่างตรงไปตรงมา
  • ค่าใช้จ่ายในการบำรุงรักษาโปรแกรมมีแนวโน้มที่จะน้อยกว่าสำหรับระบบที่ได้รับรายงานอย่างดี มากกว่าสำหรับระบบที่มาพร้อมกับเอกสารที่ไม่เพียงพอหรือไม่สมบูรณ์

Configuration Management Techniques หรือ เทคนิคการจัดการ การตั้งค่าต่างๆ

  • ต้นทุนสำคัญประการหนึ่งของการบำรุงรักษาคือการติดตามเอกสารของระบบทั้งหมดและรับรองว่าเอกสารเหล่านี้จะถูกเก็บไว้อย่างสม่ำเสมอ
  • การจัดการการกำหนดค่าที่มีประสิทธิภาพสามารถช่วยควบคุมต้นทุนเหล่านี้ได้

Views: 69