การจัดการการกำหนดค่าซอฟต์แวร์ในวิศวกรรมซอฟต์แวร์

⚡ สรุปอย่างชาญฉลาด

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

  • ⚙️ ความหมาย: SCM จัดการและควบคุมการเปลี่ยนแปลงเอกสาร โค้ด และเอนทิตีอย่างเป็นระบบตลอดวงจรการพัฒนา
  • 🎯 ทำไมมันเรื่อง: มันช่วยประสานงานระหว่างนักพัฒนาหลายราย เวอร์ชันต่างๆ และสาขาต่างๆ พร้อมทั้งควบคุมต้นทุนของการเปลี่ยนแปลง
  • 🗂️ ภารกิจหลักห้าประการ: การระบุการกำหนดค่า, เกณฑ์มาตรฐาน, การควบคุมการเปลี่ยนแปลง, การบันทึกสถานะ และการตรวจสอบ
  • 👥 ผู้เข้าร่วมหลัก: ผู้จัดการการกำหนดค่า นักพัฒนา ผู้ตรวจสอบ ผู้จัดการโครงการ และผู้ใช้ปลายทาง
  • 📋 แผนการจัดการห่วงโซ่อุปทาน: การวางแผนเป็นไปตามมาตรฐานต่างๆ เช่น IEEE 828 และกำหนดเครื่องมือ การตั้งชื่อ และความรับผิดชอบ
  • 🛠️ เครื่องมือยอดนิยม: ทีม Git Foundation เซิร์ฟเวอร์และ Ansible รองรับการควบคุมเวอร์ชันและการทำงานอัตโนมัติ

การจัดการการกำหนดค่าซอฟต์แวร์

การจัดการการกำหนดค่าซอฟต์แวร์คืออะไร?

ในสาขาวิศวกรรมซอฟต์แวร์ การจัดการการกำหนดค่าซอฟต์แวร์ (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:

ผู้เข้าร่วมกระบวนการ 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/

คำถามที่พบบ่อย

การควบคุมเวอร์ชัน tracคำสั่ง ks จะตรวจสอบการเปลี่ยนแปลงของไฟล์และอนุญาตให้คุณย้อนกลับไปยังเวอร์ชันก่อนหน้าได้ SCM มีขอบเขตที่กว้างกว่านั้น โดยครอบคลุมถึงการระบุการกำหนดค่า ฐานข้อมูล การควบคุมการเปลี่ยนแปลง การบันทึกสถานะ และการตรวจสอบ การควบคุมเวอร์ชันเป็นส่วนสำคัญส่วนหนึ่งของกระบวนการ SCM ที่กว้างกว่านั้น

SCM มุ่งเน้นไปที่การควบคุมและ tracการเปลี่ยนแปลงที่สำคัญในรายการการกำหนดค่าซอฟต์แวร์ DevOps เป็นวัฒนธรรมและชุดแนวปฏิบัติที่กว้างกว่า ซึ่งรวมการพัฒนาและการดำเนินงานเข้าด้วยกันเพื่อการส่งมอบอย่างต่อเนื่อง เครื่องมือ SCM และเกณฑ์มาตรฐานมักสนับสนุนระบบอัตโนมัติที่ไปป์ไลน์ DevOps อาศัย

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

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

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

สรุปโพสต์นี้ด้วย: