การแบ่งโปรแกรมคืออะไร

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

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

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

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

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