ScholarGate
ผู้ช่วย

การจัดการการปรับตั้งค่าซอฟต์แวร์

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

ค้นหาหัวข้อด้วย PaperMindเร็ว ๆ นี้Find papers & topics
Tools & resources
ดาวน์โหลดสไลด์
Learn & explore
วิดีโอเร็ว ๆ นี้

Definition

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

Scope

หัวข้อนี้ครอบคลุมการระบุการปรับตั้งค่าและเส้นฐาน; ระบบควบคุมเวอร์ชันและแบบจำลองการแตกแขนงและการรวม; การควบคุมการเปลี่ยนแปลงและบทบาทของคณะกรรมการควบคุมการเปลี่ยนแปลง; การจัดการการสร้างและการเผยแพร่; การบัญชีสถานะการปรับตั้งค่าและการตรวจสอบ; และมาตรฐานต่างๆ เช่น ISO/IEC/IEEE 828 ที่กำหนดกระบวนการ SCM

Core questions

  • รายการการปรับตั้งค่าถูกระบุและกำหนดเส้นฐานอย่างไร?
  • การควบคุมเวอร์ชันและแบบจำลองการแตกแขนงจัดการการเปลี่ยนแปลงพร้อมกันอย่างไร?
  • การเปลี่ยนแปลงถูกเสนอ, ตรวจสอบ, และอนุมัติอย่างไร?
  • สถานะและความสมบูรณ์ของการปรับตั้งค่าถูกบันทึกและตรวจสอบอย่างไร?

Key theories

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

Clinical relevance

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

Evidence & guidelines

ISO/IEC/IEEE 828 ระบุถึงกระบวนการจัดการการปรับตั้งค่า และพื้นที่ความรู้การจัดการการปรับตั้งค่าซอฟต์แวร์ของ SWEBOK ให้ข้อมูลอ้างอิงที่เป็นที่ยอมรับสำหรับกิจกรรม SCM

History

การควบคุมเวอร์ชันพัฒนาจากเครื่องมือยุคแรกๆ เช่น SCCS และ RCS ในทศวรรษ 1970 และ 1980 ผ่านระบบรวมศูนย์ เช่น CVS และ Subversion ไปจนถึงระบบกระจายศูนย์ เช่น Git ในทศวรรษ 2000; การปฏิบัติการจัดการการปรับตั้งค่าอย่างเป็นทางการได้ย้ายจากมาตรฐานฮาร์ดแวร์และการป้องกันประเทศมาสู่การเป็นวิศวกรรมซอฟต์แวร์กระแสหลัก

Debates

กลยุทธ์การแตกแขนง
ทีมงานถกเถียงกันเรื่องเวิร์กโฟลว์ เช่น การพัฒนาแบบ trunk-based เทียบกับการแตกแขนงคุณสมบัติที่มีอายุยาวนานและ Git-flow; การพัฒนาแบบ trunk-based ที่มีการรวมบ่อยครั้งสนับสนุนการส่งมอบอย่างต่อเนื่อง ในขณะที่การแตกแขนงที่ซับซ้อนกว่าอาจแยกงานออกไปโดยมีค่าใช้จ่ายในการรวมที่ยุ่งยาก

Key figures

  • Walter Tichy
  • Linus Torvalds
  • Marc Rochkind

Related topics

Seminal works

  • ieee828
  • chacon2014
  • swebok2014

Frequently asked questions

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

Methods for this concept

Related concepts