250 likes | 648 Views
Concurrent Version System (CVS). Concurrent Version System (CVS). ระบบควบคุมการพัฒนาเวอร์ชั่นของงานด้านซอฟต์แวร์และเป็นแนวทางในการพัฒนาเพื่อให้ได้มาตรฐานของ Software Configuration Management (SCM)
E N D
Concurrent Version System (CVS) • ระบบควบคุมการพัฒนาเวอร์ชั่นของงานด้านซอฟต์แวร์และเป็นแนวทางในการพัฒนาเพื่อให้ได้มาตรฐานของ Software Configuration Management (SCM) • CVS คือระบบการควบคุม version ของ source code ใน project ของเราให้มีระเบียบแบบแผน ซึ่งจะเหมาะกับการพัฒนาที่เป็นทีมมากหรือว่ามีคนพัฒนาเพียงแค่คนเดียวก็ดี ทำให้เราไม่ต้องกังวลว่า code เราจะหายไปไหน หรือแม้แต่การ rollback กลับมาใช้ใน version ก่อนหน้าก็ยังสามารถทำได้
หลักการของCVS • Repository เป็นศูนย์กลางในการเก็บข้อมูลต่างๆของ file เช่น วันที่ทำงาน ชื่อ file version number ของ file โดยที่จะเก็บเฉพาะสิ่งที่แตกต่างกัน ในการพัฒนาของแต่ละคนเท่านั้นเพื่อเป็นการประหยัดพื้นที่ในการจัดเก็บ และจะจัดเก็บเฉพาะงานที่ทำภายใต้ version control เท่านั้น
หลักการของCVS • Branches เป็นส่วนหนึ่งของการทำงานของ repository branches เป็นการ เปรียบเทียบการพัฒนา code ในลักษณะของ tree คือ code เริ่มต้นเป็นลำต้น( trunk )ของ tree และเมื่อเรานำ code มาพัฒนาต่อ code ที่นำมาพัฒนาต่อจะเป็นกิ่งก้านสาขา( branches )ของ tree ทิศทางการพัฒนาจะขยายออกจากลำต้น( trunk ) ของ tree ซึ่ง branches เป็นเทคนิคที่นิยมใช้ในการพัฒนา Software ที่มีขนาดใหญ่
หลักการของCVS • Branches (cont.) วิธี branches นี้สามารถใช้เพื่อการทดสอบ code และเพิ่มเติม code เมื่อเราต้องการที่จะขยาย program เพิ่มเติม เมื่อทำการพัฒนาส่วนที่เป็น branches เสร็จแล้ว เราสามารถที่จะรวม (merge) code ที่เป็น branches เข้าด้วยกัน หรือ เราจะรวม ( merge ) กับ code หลักที่ถือเป็นลำต้น (trunk) ของ tree ก็ได้
หลักการของCVS • Workspace เป็นพื้นที่ที่ใช้สำหรับการทำงานกับ code ที่เราต้องการแก้ไขซึ่งเรานำ code นี้มาจาก repository • Check out การ copy code ที่เราต้องการนำมาทำงาน จาก repository ซึ่งเราสามารถ check out ได้หลายๆครั้ง และหลายๆ program
หลักการของCVS • Commit เป็นการนำงานที่เราแก้ไขเปลี่ยนแปลงเรียบร้อยแล้วเก็บลงสู่ repository เราจะทำการ commit เมื่อต้องการให้ file นั้นเป็น backup ของงานที่เราทำ
หลักการของCVS • Annotation หมายเหตุหรือคำอธิบายประกอบเป็นอีกรูปแบบหนึ่งที่ version control สนับสนุน ใน 1 บรรทัดของหมายเหตุหรือคำอธิบายจะบอกถึงประวัติการทำงานของ file นั้นว่ามีการเปลี่ยนแปลงแก้ไขเมื่อไหร่ กระทำโดยใคร หมายเหตุนี้มีประโยชน์ในการค้นหา bug ที่เกิดขึ้น
หลักการของCVS • Rollbackคือ การที่เราสามารถย้อนกลับมาที่ version เก่าของ code ได้ เมื่อต้องการทำ "the old fashion way" ทำให้ระบบมั่นใจว่าประวัติการทำงานของ file นั้นยังคงอยู่
Function การทำงานของ check out / commit • 1. Code และรายละเอียดต่างๆ ทุกอย่างจะถูกเก็บอยู่ที่ repository • 2. นำงานที่เราต้องการแก้ไขออกมาโดยการ check out • 3. ทำการแก้ไขเปลี่ยนแปลงภายใน workspace • 4. ทำการเก็บงานที่เราแก้ไขเปลี่ยนแปลงไว้ที่ repository โดยการ commit
ความสามารถของ CVS • เก็บประวัติการทำงานของ file เพื่อช่วยแก้ปัญหาในการค้นหาความ แตกต่างของ code พื้นฐานกับ code ที่ทำการแก้ไขจากเดิม นักพัฒนาสามารถที่จะทำการเปลี่ยนแปลง code แก้ไข bug และทำการรวม (merge) งานที่ทำกับ code ล่าสุดที่ทำได้ ถ้าทำ branches ก็สามารถแก้ไขและเพิ่มเติมส่วนที่เป็น branches ได้
ความสามารถของ CVS • มีศูนย์กลางเก็บข้อมูล (central repository) จะมีรูปแบบการ ทำงานแบบ 1 repository แต่หลายๆ workspace ซึ่งภายใต้รูปแบบนี้นักพัฒนาแต่ละ คนสามารถนำ code มาพัฒนาเพียงงานเดียวหรือหลายๆงานก็ได้ เมื่อแก้ไขเรียบร้อยแล้วก็ทำการรวม (merge) งานที่ทำเข้าด้วยกัน
ความสามารถของ CVS • การเก็บประวัติการทำงานของ file ที่ สามารถช่วยให้เราค้นหาได้ว่า bug เกิดขึ้นที่ไหนและทำโดยใคร • สนับสนุนการทำงานแบบ binary file
Development Cycle ของ CVS • นำงานที่ต้องการทำออกมาจาก repository (Check out ) โดยนำมาทำงานในส่วนของ workspace • ทำการเปลี่ยนแปลงแก้ไขหรือพัฒนาโปรแกรม • ทดสอบ code ที่แก้ไข • มีการ merge งานที่ทำกับนักพัฒนาคนอื่นๆ (ถ้ามีการแบ่งงานกันทำ) • ทดสอบ code (ในกรณีที่มีการ merge งานเข้าด้วยกัน)
Development Cycle ของ CVS • นำงานเก็บลงสู่ repository โดยการ Commit • ทำการพัฒนาโปรแกรมในขั้นที่ 2 อีกครั้ง จนกว่าจะได้ version ที่เราต้องการ • ระบุชื่อให้กับชิ้นงานที่ทำเสร็จ • มีการระบุชื่อของแต่ละ module ที่ประกอบในชิ้นงาน เพื่อนำมาใช้ส่วนของการบูรณาการ และนำมาพัฒนาในส่วนของชิ้นงานต่อไป
Summary • Concurrent Version System ( CVS ) คือ ระบบควบคุมเวอร์ชั่นการพัฒนาของงานด้านซอฟต์แวร์ ซึ่ง CVS นั้นก็เป็นเครื่องมือที่ช่วยให้บรรลุถึงมาตรฐานของ SCM (Software Configuration Management) SCM คือ ข้อกำหนดเพื่อสร้างมาตรฐานในการจัดการและควบคุมการเปลี่ยนแปลงในส่วนของวิวัฒนาการของการพัฒนางานด้านซอฟต์แวร์ ซึ่ง SCM นี้เป็น 1 ใน 6 KPA (Key Process Area) หรือกลุ่มกระบวนการหลัก ในระดับที่ 2 ของมาตรฐาน CMM (Capability Maturity Model) ซึ่งเป็นเป็นมาตรฐานระดับโลก ในเรื่องของซอฟต์แวร์สำหรับบริษัทพัฒนาซอฟต์แวร์ (Software House)
CVS Tools (เครื่องมือสำหรับ CVS) • เครื่องมือที่ใช้ในการควบคุมการพัฒนาเวอร์ชันซอฟต์แวร์เพื่อนำไปสู่มาตรฐานตามหลัก การของ SCM ได้ถูกผลิตขึ้นมากมาย จากหลายๆบริษัท เนื่องจาก องค์กรที่เขียนโปรแกรมตามที่ลูกค้าต้องการ เห็นถึงความสำคัญของการควบคุมคุณภาพของงานที่จะส่งให้ลูกค้ามากขึ้น ดังนั้น ภาษาที่ใช้เขียนโปรแกรมต้องให้ความสำคัญด้านการป้องกัน และ ควบคุมความผิดพลาดที่อาจเกิดขึ้นในขั้นการพัฒนาโปรแกรม
CVS Tools (เครื่องมือสำหรับ CVS) • บริษัทหลายๆบริษัทที่ผลิตซอฟต์แวร์จึงได้แข่งขันกันจัดทำซอฟต์แวร์ที่สามารถควบคุม ความผิดพลาด เพื่อสนับสนุนการใช้งานภาษาโปรแกรมต่างๆทั้งนี้ก็เพื่อสนองตอบความต้องการขององค์กรที่ผลิตงานแก่ลูกค้าให้ได้ตามมาตรฐาน และเพิ่มความน่าเชื่อถือมากยิ่งขึ้น
CVS Tools (เครื่องมือสำหรับ CVS) • ยกตัวอย่าง เครื่องมือสำหรับควบคุมมาตรฐาน Software ในแต่ละบริษัท • VSS (Visual SourceSafe) : Microsoft Corp. • MKS : Mortice Kern Systems, Inc • Perforce : Perforce Software, Inc. • Rational ClearCase : Rational Software Corp. • PVCS : Synergex International Corp., ซึ่งได้รับสิทธิบัตรจาก Merant Internation, Inc. • และอื่นๆ
Software สำหรับ CVS • 1. CVS Server คือ CVS NT สามารถ download ได้ที่ http://www.cvsnt.org • 2. CVS client หรือตัวจัดการ CVS ซึ่งจะมีหน้าตาเป็น UI หรือ web ก็มี โดยทั่วไปแล้วเราจะใช้ WINCVS สำหรับ run บน windows platform ซึ่งสามารถ download ได้ที่ http://www.cvshome.org
CVS & Visual SourceSafe Comparison • CVS เป็น optimistic version controlคืออนุญาตให้หลายๆคนสามารถ check out ซอร์สไฟล์เดียวกันได้ แต่เวลาเซฟกลับมันจะเช็คเรื่อง conflict และเตือนให้คน merge กลับให้ถูกต้อง ในขณะที่ถ้าเป็น Visual SourceSafe ใช้ pessimistic version controlถ้ามีใคร check out ไฟล์ไหนไปแล้ว คนอื่นจะดึงไปแก้ไม่ได้ จนกว่าคนแรกจะ check in กลับให้เรียบร้อย ต่างแบบต่างมีข้อดีข้อเสียต่างกัน