การจัดการการกำหนดค่าซอฟต์แวร์ในวิศวกรรมซอฟต์แวร์
⚡ สรุปอย่างชาญฉลาด
การจัดการการกำหนดค่าซอฟต์แวร์ (Software Configuration Management หรือ SCM) คือกระบวนการในการจัดการ จัดระเบียบ และควบคุมการเปลี่ยนแปลงเอกสาร โค้ด และรายการอื่นๆ อย่างเป็นระบบตลอดวงจรการพัฒนาซอฟต์แวร์ เป้าหมายหลักคือการเพิ่มประสิทธิภาพการทำงานในขณะที่รักษา...ping ลดข้อผิดพลาดให้น้อยที่สุด

การจัดการการกำหนดค่าซอฟต์แวร์คืออะไร?
ในสาขาวิศวกรรมซอฟต์แวร์ การจัดการการกำหนดค่าซอฟต์แวร์ (SCM) การจัดการการเปลี่ยนแปลงในเอกสาร โค้ด และส่วนประกอบอื่นๆ อย่างเป็นระบบตลอดวงจรการพัฒนาซอฟต์แวร์ เป้าหมายหลักคือการเพิ่มประสิทธิภาพการทำงานโดยมีข้อผิดพลาดน้อยที่สุด การจัดการการเปลี่ยนแปลงในเอกสาร (SCM) เป็นส่วนหนึ่งของสาขาการจัดการการกำหนดค่าแบบสหวิทยาการ และสามารถระบุได้อย่างแม่นยำว่าใครเป็นผู้แก้ไขส่วนใดบ้าง
เหตุใดเราจึงต้องมีการจัดการการกำหนดค่า?
เหตุผลหลักในการนำระบบการจัดการการกำหนดค่าซอฟต์แวร์ทางเทคนิคมาใช้มีดังนี้:
- มีผู้คนหลายคนร่วมกันพัฒนาซอฟต์แวร์ซึ่งมีการอัปเดตอย่างต่อเนื่อง
- อาจเป็นกรณีที่โครงการกำหนดค่าซอฟต์แวร์เกี่ยวข้องกับหลายเวอร์ชัน หลายสาขา และหลายผู้เขียน และทีมงานกระจายอยู่ตามภูมิศาสตร์ต่างๆ และทำงานพร้อมกัน
- จำเป็นต้องปรับเปลี่ยนความต้องการของผู้ใช้ นโยบาย งบประมาณ และตารางเวลาให้สอดคล้องกับการเปลี่ยนแปลงเหล่านั้น
- ซอฟต์แวร์ควรสามารถทำงานได้บนเครื่องคอมพิวเตอร์หลากหลายประเภท และ Operaระบบติ้ง.
- ช่วยส่งเสริมการประสานงานระหว่างผู้มีส่วนได้ส่วนเสีย
- กระบวนการ SCM ยังมีประโยชน์ในการควบคุมต้นทุนที่เกี่ยวข้องกับการเปลี่ยนแปลงระบบอีกด้วย
การเปลี่ยนแปลงใด ๆ ในรายการกำหนดค่าซอฟต์แวร์จะส่งผลต่อผลิตภัณฑ์ขั้นสุดท้าย ดังนั้น การเปลี่ยนแปลงรายการการตั้งค่าคอนฟิกจึงจำเป็นต้องได้รับการควบคุมและจัดการ
งานในกระบวนการ SCM
- การระบุการกำหนดค่า
- พื้นฐาน
- การเปลี่ยนแปลงการควบคุม
- การบัญชีสถานะการกำหนดค่า
- การตรวจสอบการกำหนดค่าและ Revนั่นคือ
การระบุการกำหนดค่า
การระบุการกำหนดค่าเป็นวิธีหนึ่งในการกำหนดขอบเขตของระบบซอฟต์แวร์ ด้วยขั้นตอนนี้ คุณสามารถจัดการหรือควบคุมบางสิ่งได้แม้ว่าคุณจะไม่รู้ว่ามันคืออะไรก็ตาม มันคือคำอธิบายที่ประกอบด้วยประเภท CSCI (Computer Software Configuration Item) ตัวระบุโครงการ และข้อมูลเวอร์ชัน
กิจกรรมระหว่างกระบวนการนี้:
- การระบุรายการการกำหนดค่า เช่น โมดูลซอร์สโค้ด กรณีทดสอบและข้อกำหนดข้อกำหนด
- การระบุ CSCI แต่ละรายการในที่เก็บข้อมูล SCM โดยใช้แนวทางเชิงวัตถุ
- กระบวนการเริ่มต้นด้วยวัตถุพื้นฐานซึ่งจะถูกจัดกลุ่มเป็นวัตถุรวม รายละเอียดเกี่ยวกับการเปลี่ยนแปลงในการทดสอบนั้นประกอบด้วย การเปลี่ยนแปลงอะไร ทำไม เมื่อไหร่ และโดยใคร
- วัตถุทุกชิ้นมีลักษณะเฉพาะของตัวเองที่ใช้ระบุชื่อของมัน ซึ่งเป็นลักษณะเฉพาะที่วัตถุอื่นๆ ทุกชิ้นสามารถจดจำได้
- รายการทรัพยากรที่จำเป็น เช่น เอกสาร ไฟล์ เครื่องมือ เป็นต้น
ตัวอย่าง:
แทนที่จะตั้งชื่อไฟล์ว่า login.php ควรตั้งชื่อไฟล์ว่า login_v1.2.php โดยที่ v1.2 หมายถึงหมายเลขเวอร์ชันของไฟล์
แทนที่จะตั้งชื่อโฟลเดอร์ว่า “Codeควรตั้งชื่อว่า “Code_D” โดยที่ D หมายถึงว่าควรสำรองข้อมูลโค้ดทุกวัน
baseline
พื้นฐานคือเวอร์ชันที่ได้รับการยอมรับอย่างเป็นทางการของรายการการกำหนดค่าซอฟต์แวร์ ถูกกำหนดและแก้ไขในเวลาที่กำหนดขณะดำเนินการกระบวนการ SCM สามารถเปลี่ยนแปลงได้โดยผ่านขั้นตอนการควบคุมการเปลี่ยนแปลงอย่างเป็นทางการเท่านั้น
กิจกรรมระหว่างกระบวนการนี้:
- ช่วยให้การสร้างแอปพลิเคชันเวอร์ชันต่างๆ เป็นไปได้ง่ายขึ้น
- การกำหนดและระบุกลไกในการจัดการเวอร์ชันต่างๆ ของผลงานเหล่านี้
- ฟังก์ชันพื้นฐานสอดคล้องกับข้อกำหนดของระบบที่ได้รับการตรวจสอบแล้ว
- เกณฑ์มาตรฐานที่ใช้กันอย่างแพร่หลาย ได้แก่ เกณฑ์มาตรฐานด้านการทำงาน ด้านการพัฒนา และด้านผลิตภัณฑ์
พูดง่ายๆ ก็คือ baseline แปลว่า พร้อมสำหรับการเปิดตัว
การเปลี่ยนแปลงการควบคุม
การควบคุมการเปลี่ยนแปลงเป็นวิธีการเชิงกระบวนการที่ช่วยให้มั่นใจได้ถึงคุณภาพและความสม่ำเสมอเมื่อมีการเปลี่ยนแปลงเกิดขึ้นกับวัตถุการกำหนดค่า ในขั้นตอนนี้ คำขอเปลี่ยนแปลงจะถูกส่งไปยังผู้จัดการการกำหนดค่าซอฟต์แวร์
กิจกรรมระหว่างกระบวนการนี้:
- ควบคุมการเปลี่ยนแปลงแบบเฉพาะกิจเพื่อสร้างสภาพแวดล้อมการพัฒนาซอฟต์แวร์ที่เสถียร การเปลี่ยนแปลงจะถูกบันทึกไว้ในที่เก็บข้อมูล
- คำขอจะได้รับการตรวจสอบโดยพิจารณาจากคุณค่าทางเทคนิค ผลข้างเคียงที่อาจเกิดขึ้น และผลกระทบโดยรวมต่อวัตถุการกำหนดค่าอื่นๆ
- มันทำหน้าที่จัดการการเปลี่ยนแปลงและทำให้รายการการกำหนดค่าต่างๆ พร้อมใช้งานตลอดวงจรชีวิตของซอฟต์แวร์
การบัญชีสถานะการกำหนดค่า
การบัญชีสถานะการกำหนดค่า tracks ในแต่ละเวอร์ชันระหว่างกระบวนการ SCM ขั้นตอนนี้เกี่ยวข้องกับ tracอธิบายรายละเอียดเกี่ยวกับแต่ละเวอร์ชันและการเปลี่ยนแปลงที่นำไปสู่เวอร์ชันนี้
กิจกรรมระหว่างกระบวนการนี้:
- บันทึกการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นกับค่าพื้นฐานเดิม เพื่อให้ได้ค่าพื้นฐานใหม่
- ระบุรายการทั้งหมดเพื่อกำหนดค่าการตั้งค่าซอฟต์แวร์
- ตรวจสอบสถานะของคำขอเปลี่ยนแปลง
- รายการการเปลี่ยนแปลงทั้งหมดตั้งแต่ข้อมูลพื้นฐานครั้งล่าสุด
- ช่วยให้ tracราชาแห่งความก้าวหน้าสู่ระดับพื้นฐานถัดไป
- อนุญาตให้ใช้งานรุ่น/เวอร์ชันก่อนหน้าได้tracใช้สำหรับการทดสอบ
การตรวจสอบการกำหนดค่าและ Revนั่นคือ
การตรวจสอบการกำหนดค่าซอฟต์แวร์จะตรวจสอบว่าผลิตภัณฑ์ซอฟต์แวร์ทั้งหมดตรงตามความต้องการพื้นฐาน ช่วยให้มั่นใจได้ว่าสิ่งที่สร้างขึ้นคือสิ่งที่ส่งมอบ
กิจกรรมระหว่างกระบวนการนี้:
- การตรวจสอบการกำหนดค่าดำเนินการโดยผู้ตรวจสอบโดยการตรวจสอบว่ามีการปฏิบัติตามกระบวนการที่กำหนดไว้ และทำให้มั่นใจว่าเป็นไปตามเป้าหมาย SCM
- เพื่อตรวจสอบการปฏิบัติตามมาตรฐานการควบคุมการกำหนดค่า ตรวจสอบและรายงานการเปลี่ยนแปลงที่เกิดขึ้น
- การตรวจสอบ SCM ยังช่วยให้มั่นใจได้ว่า tracความสามารถในการใช้งานจะได้รับการรักษาไว้ตลอดกระบวนการ
- ตรวจสอบให้แน่ใจว่าการเปลี่ยนแปลงที่เกิดขึ้นกับฐานข้อมูลเป็นไปตามรายงานสถานะการกำหนดค่า
- การตรวจสอบความครบถ้วนและความสอดคล้อง
ผู้เข้าร่วมกระบวนการ SCM
ต่อไปนี้คือผู้มีส่วนร่วมหลักใน SCM:
1. เครื่องมือจัดการการกำหนดค่า
- ผู้จัดการด้านการกำหนดค่าคือหัวหน้างานที่รับผิดชอบในการระบุรายการการกำหนดค่าต่างๆ
- CM รับประกันว่าทีมจะปฏิบัติตามกระบวนการ SCM
- เขา/เธอต้องอนุมัติหรือปฏิเสธคำขอเปลี่ยนแปลง
2. นักพัฒนา
- นักพัฒนาจำเป็นต้องแก้ไขโค้ดตามกิจกรรมการพัฒนามาตรฐานหรือคำขอเปลี่ยนแปลง เขาเป็นผู้รับผิดชอบในการดูแลรักษาการกำหนดค่าของโค้ด
- นักพัฒนาควรตรวจสอบการเปลี่ยนแปลงและแก้ไขข้อขัดแย้ง
3 ผู้สอบบัญชี
- ผู้ตรวจสอบมีหน้าที่รับผิดชอบในการตรวจสอบและสอบทาน SCM
- จำเป็นต้องตรวจสอบให้แน่ใจว่าการเผยแพร่มีความสม่ำเสมอและครบถ้วนสมบูรณ์
4. ผู้จัดการโครงการ:
- ตรวจสอบให้แน่ใจว่าผลิตภัณฑ์ได้รับการพัฒนาภายในกรอบเวลาที่กำหนด
- ตรวจสอบความคืบหน้าของการพัฒนาและระบุปัญหาในกระบวนการจัดการห่วงโซ่อุปทาน (SCM)
- สร้างรายงานเกี่ยวกับสถานะของระบบซอฟต์แวร์
- ตรวจสอบให้แน่ใจว่าได้ปฏิบัติตามขั้นตอนและนโยบายในการสร้าง แก้ไข และทดสอบแล้ว
5. ผู้ใช้
ผู้ใช้งานควรเข้าใจคำศัพท์สำคัญในระบบบริหารจัดการห่วงโซ่อุปทาน (SCM) เพื่อให้มั่นใจว่าตนเองมีซอฟต์แวร์เวอร์ชันล่าสุด
แผนการจัดการการกำหนดค่าซอฟต์แวร์
กระบวนการ SCMP (Software Configuration Management Planning) เริ่มต้นตั้งแต่ช่วงแรกของการเขียนโค้ดในโครงการ ผลลัพธ์ของขั้นตอนการวางแผนคือแผน SCM ซึ่งอาจมีการปรับเปลี่ยนหรือแก้ไขในระหว่างโครงการ
- SCMP สามารถปฏิบัติตามมาตรฐานสาธารณะ เช่น IEEE 828 หรือมาตรฐานเฉพาะขององค์กรก็ได้
- เป็นการกำหนดประเภทของเอกสารที่จะได้รับการจัดการและหลักเกณฑ์การตั้งชื่อเอกสาร ตัวอย่าง: Test_v1
- SCMP กำหนดบุคคลที่จะรับผิดชอบกระบวนการ SCM ทั้งหมดและการสร้างข้อมูลพื้นฐาน
- แก้ไขนโยบายสำหรับการจัดการเวอร์ชันและการควบคุมการเปลี่ยนแปลง
- กำหนดเครื่องมือที่สามารถนำมาใช้ในกระบวนการ SCM (Supply Chain Management)
- ฐานข้อมูลการจัดการการกำหนดค่าสำหรับการบันทึกข้อมูลการกำหนดค่า
เครื่องมือการจัดการการกำหนดค่าซอฟต์แวร์
ซอฟต์แวร์บริหารจัดการการเปลี่ยนแปลงใดๆ ควรมีคุณสมบัติหลัก 3 ประการดังต่อไปนี้:
การจัดการภาวะพร้อมกัน:
เมื่อมีงานสองอย่างขึ้นไปเกิดขึ้นพร้อมกัน จะเรียกว่า การทำงานพร้อมกัน (Concurrency) ในบริบทของ SCM การทำงานพร้อมกันหมายความว่า ไฟล์เดียวกันกำลังถูกแก้ไขโดยบุคคลหลายคนพร้อมกัน
หากการทำงานพร้อมกันไม่ได้รับการจัดการอย่างถูกต้องด้วยเครื่องมือ SCM ก็อาจสร้างปัญหาเร่งด่วนมากมาย
การควบคุมเวอร์ชัน:
SCM ใช้ระบบการจัดเก็บถาวรหรือบันทึกทุกการเปลี่ยนแปลงที่เกิดขึ้นกับไฟล์ ด้วยความช่วยเหลือของฟีเจอร์การจัดเก็บถาวรหรือการบันทึกนี้ ทำให้สามารถย้อนกลับไปยังเวอร์ชันก่อนหน้าได้ในกรณีที่เกิดปัญหา
Syncลำดับ:
ผู้ใช้สามารถดึงไฟล์ได้มากกว่าหนึ่งไฟล์หรือสำเนาทั้งหมดของที่เก็บข้อมูล จากนั้นผู้ใช้จะทำงานกับไฟล์ที่ต้องการและตรวจสอบการเปลี่ยนแปลงกลับไปยังที่เก็บข้อมูล พวกเขาสามารถซิงโครไนซ์สำเนาในเครื่องของตนเพื่อติดตามการเปลี่ยนแปลงที่เกิดขึ้นจากสมาชิกทีมคนอื่นๆ ได้
เครื่องมือยอดนิยมมีดังต่อไปนี้:
1.กิต: Git เป็นเครื่องมือโอเพ่นซอร์สฟรีที่ช่วยควบคุมเวอร์ชัน ได้รับการออกแบบมาเพื่อรองรับโครงการทุกประเภทด้วยความรวดเร็วและมีประสิทธิภาพ
ดาวน์โหลดลิงค์: https://git-scm.com/
2 ทีม Foundation เซิร์ฟเวอร์: ทีมงานของเรา Foundation คือกลุ่มเครื่องมือและเทคโนโลยีที่ช่วยให้ทีมงานสามารถทำงานร่วมกันและประสานงานเพื่อสร้างผลิตภัณฑ์ได้
ดาวน์โหลดลิงค์: https://azure.microsoft.com/en-us/services/devops/server/
3. Ansible: เป็นเครื่องมือจัดการการกำหนดค่าซอฟต์แวร์แบบโอเพนซอร์ส นอกจากการจัดการการกำหนดค่าแล้ว ยังมีฟังก์ชันการปรับใช้แอปพลิเคชันและการทำงานอัตโนมัติอีกด้วย
ดาวน์โหลดลิงค์: https://www.ansible.com/


