การจัดการการกำหนดค่าซอฟต์แวร์ในวิศวกรรมซอฟต์แวร์
การจัดการการกำหนดค่าซอฟต์แวร์คืออะไร?
ในสาขาวิศวกรรมซอฟต์แวร์ การจัดการการกำหนดค่าซอฟต์แวร์ (SCM) เป็นกระบวนการในการจัดการ จัดระเบียบ และควบคุมการเปลี่ยนแปลงในเอกสาร รหัส และเอนทิตีอื่นๆ อย่างเป็นระบบในระหว่างวงจรการพัฒนาซอฟต์แวร์ เป้าหมายหลักคือการเพิ่มประสิทธิภาพการผลิตโดยมีข้อผิดพลาดน้อยที่สุด SCM เป็นส่วนหนึ่งของสาขาการจัดการการกำหนดค่าแบบสหสาขาวิชาชีพ และสามารถระบุได้อย่างแม่นยำว่าใครเป็นผู้ทำการแก้ไขครั้งใด
เหตุใดเราจึงต้องมีการจัดการการกำหนดค่า?
เหตุผลหลักในการใช้ระบบการจัดการการกำหนดค่าซอฟต์แวร์ทางเทคนิคคือ:
- มีหลายคนที่ทำงานเกี่ยวกับซอฟต์แวร์ซึ่งมีการอัปเดตอย่างต่อเนื่อง
- อาจเป็นกรณีที่มีหลายเวอร์ชัน สาขา ผู้เขียนมีส่วนร่วมในโครงการกำหนดค่าซอฟต์แวร์ และทีมมีการกระจายทางภูมิศาสตร์และทำงานไปพร้อมๆ กัน
- การเปลี่ยนแปลงข้อกำหนดของผู้ใช้ นโยบาย งบประมาณ กำหนดการต้องได้รับการรองรับ
- ซอฟต์แวร์ควรจะสามารถทำงานบนเครื่องต่างๆ และ Operaระบบติ้ง
- ช่วยพัฒนาการประสานงานระหว่างผู้มีส่วนได้ส่วนเสีย
- กระบวนการ SCM ยังเป็นประโยชน์ในการควบคุมต้นทุนที่เกี่ยวข้องกับการเปลี่ยนแปลงระบบ
การเปลี่ยนแปลงใด ๆ ในรายการกำหนดค่าซอฟต์แวร์จะส่งผลต่อผลิตภัณฑ์ขั้นสุดท้าย ดังนั้น การเปลี่ยนแปลงรายการการตั้งค่าคอนฟิกจึงจำเป็นต้องได้รับการควบคุมและจัดการ
งานในกระบวนการ SCM
- การระบุการกำหนดค่า
- พื้นฐาน
- การเปลี่ยนแปลงการควบคุม
- การบัญชีสถานะการกำหนดค่า
- การตรวจสอบการกำหนดค่าและ Revนั่นคือ
การระบุการกำหนดค่า
การระบุการกำหนดค่าเป็นวิธีการกำหนดขอบเขตของระบบซอฟต์แวร์ ด้วยความช่วยเหลือของขั้นตอนนี้ คุณสามารถจัดการหรือควบคุมบางสิ่งได้แม้ว่าคุณจะไม่รู้ว่ามันคืออะไรก็ตาม เป็นคำอธิบายที่มีประเภท CSCI (รายการการกำหนดค่าซอฟต์แวร์คอมพิวเตอร์) ตัวระบุโครงการและข้อมูลเวอร์ชัน
กิจกรรมระหว่างกระบวนการนี้:
- การระบุรายการการกำหนดค่า เช่น โมดูลซอร์สโค้ด กรณีทดสอบและข้อกำหนดข้อกำหนด
- การระบุ CSCI แต่ละรายการในที่เก็บ SCM โดยใช้แนวทางเชิงวัตถุ
- กระบวนการเริ่มต้นด้วยวัตถุพื้นฐานซึ่งถูกจัดกลุ่มเป็นวัตถุรวม รายละเอียดว่ามีการเปลี่ยนแปลงอะไร ทำไม เมื่อไร และใครเป็นผู้ทำการทดสอบ
- ทุกออบเจ็กต์มีคุณสมบัติของตัวเองที่ระบุชื่อที่ชัดเจนสำหรับออบเจ็กต์อื่นทั้งหมด
- รายการทรัพยากรที่จำเป็น เช่น เอกสาร ไฟล์ เครื่องมือ ฯลฯ
ตัวอย่าง:
แทนที่จะตั้งชื่อไฟล์ login.php ควรตั้งชื่อว่า login_v1.2.php โดยที่ v1.2 หมายถึงหมายเลขเวอร์ชันของไฟล์
แทนที่จะตั้งชื่อโฟลเดอร์ว่า "Code" ควรตั้งชื่อว่า "Code_D" โดยที่ D หมายถึงรหัสควรสำรองข้อมูลทุกวัน
baseline
พื้นฐานคือเวอร์ชันที่ได้รับการยอมรับอย่างเป็นทางการของรายการการกำหนดค่าซอฟต์แวร์ ถูกกำหนดและแก้ไขในเวลาที่กำหนดขณะดำเนินการกระบวนการ SCM สามารถเปลี่ยนแปลงได้โดยผ่านขั้นตอนการควบคุมการเปลี่ยนแปลงอย่างเป็นทางการเท่านั้น
กิจกรรมระหว่างกระบวนการนี้:
- อำนวยความสะดวกในการสร้างแอปพลิเคชันเวอร์ชันต่างๆ
- การกำหนดและกำหนดกลไกในการจัดการเวอร์ชันต่างๆ ของผลิตภัณฑ์งานเหล่านี้
- พื้นฐานการทำงานสอดคล้องกับข้อกำหนดของระบบที่ได้รับการตรวจสอบ
- เส้นฐานที่ใช้กันอย่างแพร่หลาย ได้แก่ เส้นฐานด้านการทำงาน การพัฒนา และผลิตภัณฑ์
พูดง่ายๆ ก็คือ baseline แปลว่า พร้อมสำหรับการเปิดตัว
การเปลี่ยนแปลงการควบคุม
การควบคุมการเปลี่ยนแปลงเป็นวิธีขั้นตอนที่ช่วยให้มั่นใจในคุณภาพและความสม่ำเสมอเมื่อมีการเปลี่ยนแปลงในออบเจ็กต์การกำหนดค่า ในขั้นตอนนี้ คำขอเปลี่ยนแปลงจะถูกส่งไปยังตัวจัดการการกำหนดค่าซอฟต์แวร์
กิจกรรมระหว่างกระบวนการนี้:
- ควบคุมการเปลี่ยนแปลงเฉพาะกิจเพื่อสร้างสภาพแวดล้อมการพัฒนาซอฟต์แวร์ที่มีความเสถียร การเปลี่ยนแปลงเกิดขึ้นกับพื้นที่เก็บข้อมูล
- คำขอจะได้รับการตรวจสอบตามข้อดีทางเทคนิค ผลข้างเคียงที่เป็นไปได้ และผลกระทบโดยรวมต่อออบเจ็กต์การกำหนดค่าอื่นๆ
- จัดการการเปลี่ยนแปลงและทำให้รายการการกำหนดค่าพร้อมใช้งานตลอดวงจรการใช้งานซอฟต์แวร์
การบัญชีสถานะการกำหนดค่า
การบัญชีสถานะการกำหนดค่าจะติดตามแต่ละรุ่นในระหว่างกระบวนการ SCM ขั้นตอนนี้เกี่ยวข้องกับการติดตามว่าแต่ละเวอร์ชันมีอะไรบ้างและการเปลี่ยนแปลงที่นำไปสู่เวอร์ชันนี้
กิจกรรมระหว่างกระบวนการนี้:
- เก็บบันทึกการเปลี่ยนแปลงทั้งหมดที่ทำกับเส้นฐานก่อนหน้าเพื่อไปถึงเส้นฐานใหม่
- ระบุรายการทั้งหมดเพื่อกำหนดการกำหนดค่าซอฟต์แวร์
- ตรวจสอบสถานะของคำขอเปลี่ยนแปลง
- รายการการเปลี่ยนแปลงทั้งหมดนับตั้งแต่ข้อมูลพื้นฐานครั้งล่าสุด
- ช่วยให้สามารถติดตามความคืบหน้าไปสู่ระดับพื้นฐานถัดไป
- อนุญาตให้ตรวจสอบรุ่น/เวอร์ชันก่อนหน้าที่จะแตกออกมาเพื่อการทดสอบ
การตรวจสอบการกำหนดค่าและ Revนั่นคือ
การตรวจสอบการกำหนดค่าซอฟต์แวร์จะตรวจสอบว่าผลิตภัณฑ์ซอฟต์แวร์ทั้งหมดตรงตามความต้องการพื้นฐาน ช่วยให้มั่นใจได้ว่าสิ่งที่สร้างขึ้นคือสิ่งที่ส่งมอบ
กิจกรรมระหว่างกระบวนการนี้:
- การตรวจสอบการกำหนดค่าดำเนินการโดยผู้ตรวจสอบโดยการตรวจสอบว่ามีการปฏิบัติตามกระบวนการที่กำหนดไว้ และทำให้มั่นใจว่าเป็นไปตามเป้าหมาย SCM
- เพื่อตรวจสอบการปฏิบัติตามมาตรฐานการควบคุมการกำหนดค่า ตรวจสอบและรายงานการเปลี่ยนแปลงที่เกิดขึ้น
- การตรวจสอบ SCM ยังช่วยให้มั่นใจได้ถึงความสามารถในการตรวจสอบย้อนกลับในระหว่างกระบวนการ
- ตรวจสอบให้แน่ใจว่าการเปลี่ยนแปลงที่เกิดขึ้นกับข้อมูลพื้นฐานเป็นไปตามรายงานสถานะการกำหนดค่า
- การตรวจสอบความสมบูรณ์และความสม่ำเสมอ
ผู้เข้าร่วมกระบวนการ SCM
ต่อไปนี้เป็นผู้เข้าร่วมหลักใน SCM
1. เครื่องมือจัดการการกำหนดค่า
- Configuration Manager เป็นหัวหน้าที่รับผิดชอบในการระบุรายการการกำหนดค่า
- CM รับรองว่าทีมจะปฏิบัติตามกระบวนการ SCM
- เขา/เธอจำเป็นต้องอนุมัติหรือปฏิเสธคำขอเปลี่ยนแปลง
2. นักพัฒนา
- นักพัฒนาจำเป็นต้องเปลี่ยนรหัสตามกิจกรรมการพัฒนามาตรฐานหรือคำขอเปลี่ยนแปลง เขามีหน้าที่รับผิดชอบในการรักษาการกำหนดค่าโค้ด
- นักพัฒนาซอฟต์แวร์ควรตรวจสอบการเปลี่ยนแปลงและแก้ไขข้อขัดแย้ง
3 ผู้สอบบัญชี
- ผู้ตรวจสอบมีหน้าที่รับผิดชอบในการตรวจสอบและสอบทาน SCM
- จำเป็นต้องมั่นใจในความสม่ำเสมอและความสมบูรณ์ของการปล่อย
4. ผู้จัดการโครงการ:
- ตรวจสอบให้แน่ใจว่าผลิตภัณฑ์ได้รับการพัฒนาภายในกรอบเวลาที่กำหนด
- ติดตามความคืบหน้าของการพัฒนาและรับรู้ปัญหาในกระบวนการ SCM
- สร้างรายงานเกี่ยวกับสถานะของระบบซอฟต์แวร์
- ตรวจสอบให้แน่ใจว่าได้ปฏิบัติตามกระบวนการและนโยบายในการสร้าง การเปลี่ยนแปลง และการทดสอบ
5. ผู้ใช้
ผู้ใช้ควรเข้าใจข้อกำหนด SCM ที่สำคัญเพื่อให้แน่ใจว่าเขามีซอฟต์แวร์เวอร์ชันล่าสุด
แผนการจัดการการกำหนดค่าซอฟต์แวร์
การวางแผนกระบวนการ SCMP (การวางแผนการจัดการการกำหนดค่าซอฟต์แวร์) เริ่มต้นที่ขั้นตอนการเขียนโค้ดเบื้องต้นของโครงการ ผลลัพธ์ของขั้นตอนการวางแผนคือแผน SCM ซึ่งอาจขยายหรือแก้ไขในระหว่างโครงการ
- SCMP สามารถเป็นไปตามมาตรฐานสาธารณะ เช่น IEEE 828 หรือมาตรฐานเฉพาะองค์กร
- โดยจะกำหนดประเภทของเอกสารที่จะจัดการและการตั้งชื่อเอกสาร ตัวอย่างการทดสอบ_v1
- SCMP กำหนดบุคคลที่จะรับผิดชอบกระบวนการ SCM ทั้งหมดและการสร้างข้อมูลพื้นฐาน
- แก้ไขนโยบายสำหรับการจัดการเวอร์ชันและการควบคุมการเปลี่ยนแปลง
- กำหนดเครื่องมือที่สามารถใช้ได้ในระหว่างกระบวนการ SCM
- ฐานข้อมูลการจัดการการกำหนดค่าสำหรับการบันทึกข้อมูลการกำหนดค่า
เครื่องมือการจัดการการกำหนดค่าซอฟต์แวร์
ซอฟต์แวร์การจัดการการเปลี่ยนแปลงใดๆ ควรมีคุณสมบัติหลัก 3 ประการดังต่อไปนี้:
การจัดการภาวะพร้อมกัน:
เมื่อมีงานสองงานขึ้นไปเกิดขึ้นในเวลาเดียวกัน เรียกว่าการทำงานพร้อมกัน ในบริบทของ SCM การทำงานพร้อมกันหมายถึงมีบุคคลหลายคนแก้ไขไฟล์เดียวกันในเวลาเดียวกัน
หากการทำงานพร้อมกันไม่ได้รับการจัดการอย่างถูกต้องด้วยเครื่องมือ SCM ก็อาจสร้างปัญหาเร่งด่วนมากมาย
การควบคุมเวอร์ชัน:
SCM ใช้วิธีการเก็บถาวรหรือบันทึกการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นกับไฟล์ ด้วยความช่วยเหลือของคุณลักษณะการเก็บถาวรหรือบันทึก คุณจะสามารถย้อนกลับไปยังเวอร์ชันก่อนหน้าได้ในกรณีที่มีปัญหา
Syncลำดับ:
ผู้ใช้สามารถเช็คเอาต์ไฟล์ได้มากกว่าหนึ่งไฟล์หรือทั้งสำเนาของที่เก็บข้อมูล จากนั้นผู้ใช้จะดำเนินการกับไฟล์ที่ต้องการและตรวจสอบการเปลี่ยนแปลงกลับไปยังที่เก็บข้อมูล ผู้ใช้สามารถซิงโครไนซ์สำเนาในเครื่องของตนเพื่อให้อัปเดตตามการเปลี่ยนแปลงที่ทำโดยสมาชิกในทีมคนอื่นๆ
ต่อไปนี้เป็นเครื่องมือยอดนิยม
1.กิต: Git เป็นเครื่องมือโอเพ่นซอร์สฟรีที่ช่วยควบคุมเวอร์ชัน ได้รับการออกแบบมาเพื่อรองรับโครงการทุกประเภทด้วยความรวดเร็วและมีประสิทธิภาพ
ดาวน์โหลดลิงค์: https://git-scm.com/
2 ทีม Foundation เซิร์ฟเวอร์: ทีมงานของเรา Foundation คือกลุ่มเครื่องมือและเทคโนโลยีที่ช่วยให้ทีมงานสามารถทำงานร่วมกันและประสานงานเพื่อสร้างผลิตภัณฑ์ได้
ดาวน์โหลดลิงค์: https://azure.microsoft.com/en-us/services/devops/server/
3. ตอบได้: เป็นเครื่องมือจัดการการกำหนดค่าซอฟต์แวร์โอเพ่นซอร์ส นอกเหนือจากการจัดการการกำหนดค่าแล้ว ยังนำเสนอการปรับใช้แอปพลิเคชันและระบบอัตโนมัติของงานอีกด้วย
ดาวน์โหลดลิงค์: https://www.ansible.com/
ตรวจสอบเครื่องมือการกำหนดค่า SW เพิ่มเติม: https://www.guru99.com/software-configuration-management-tools.html
สรุป
- แนวทางปฏิบัติที่ดีที่สุดในการจัดการการกำหนดค่าช่วยให้องค์กรจัดการ จัดระเบียบ และควบคุมการเปลี่ยนแปลงในเอกสาร รหัส และเอนทิตีอื่นๆ อย่างเป็นระบบในระหว่าง วงจรชีวิตของการพัฒนาซอฟต์แวร์.
- เป้าหมายหลักของกระบวนการ SCM คือการเพิ่มประสิทธิภาพการผลิตโดยมีข้อผิดพลาดน้อยที่สุด
- เหตุผลหลักเบื้องหลังกระบวนการจัดการการกำหนดค่าคือมีบุคลากรหลายคนที่ทำงานกับซอฟต์แวร์ที่อัปเดตอย่างต่อเนื่อง SCM ช่วยสร้างการทำงานพร้อมกัน การซิงโครไนซ์ และการควบคุมเวอร์ชัน
- พื้นฐานคือเวอร์ชันที่ได้รับการยอมรับอย่างเป็นทางการของรายการการกำหนดค่าซอฟต์แวร์
- การควบคุมการเปลี่ยนแปลงเป็นวิธีขั้นตอนที่ช่วยให้มั่นใจในคุณภาพและความสม่ำเสมอเมื่อมีการเปลี่ยนแปลงในออบเจ็กต์การกำหนดค่า
- การบัญชีสถานะการกำหนดค่าจะติดตามแต่ละรุ่นในระหว่างกระบวนการ SCM
- การตรวจสอบการกำหนดค่าซอฟต์แวร์จะตรวจสอบว่าผลิตภัณฑ์ซอฟต์แวร์ทั้งหมดตรงตามความต้องการพื้นฐาน
- ผู้จัดการโครงการ ผู้จัดการการกำหนดค่า นักพัฒนา ผู้ตรวจสอบ และผู้ใช้คือผู้เข้าร่วมในกระบวนการ SCM
- การวางแผนกระบวนการ SCM เริ่มต้นที่ระยะแรกของโครงการ
- Git, Team foundation Sever และ Ansible เป็นเครื่องมือ SCM ที่ได้รับความนิยมบางส่วน