1 / 21

Concurrent Version System (CVS)

Concurrent Version System (CVS). Concurrent Version System (CVS). ระบบควบคุมการพัฒนาเวอร์ชั่นของงานด้านซอฟต์แวร์และเป็นแนวทางในการพัฒนาเพื่อให้ได้มาตรฐานของ Software Configuration Management (SCM)

kiaria
Download Presentation

Concurrent Version System (CVS)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Concurrent Version System (CVS)

  2. Concurrent Version System (CVS) • ระบบควบคุมการพัฒนาเวอร์ชั่นของงานด้านซอฟต์แวร์และเป็นแนวทางในการพัฒนาเพื่อให้ได้มาตรฐานของ Software Configuration Management (SCM) • CVS คือระบบการควบคุม version ของ source code ใน project ของเราให้มีระเบียบแบบแผน ซึ่งจะเหมาะกับการพัฒนาที่เป็นทีมมากหรือว่ามีคนพัฒนาเพียงแค่คนเดียวก็ดี ทำให้เราไม่ต้องกังวลว่า code เราจะหายไปไหน หรือแม้แต่การ rollback กลับมาใช้ใน version ก่อนหน้าก็ยังสามารถทำได้

  3. หลักการของCVS • Repository เป็นศูนย์กลางในการเก็บข้อมูลต่างๆของ file เช่น วันที่ทำงาน ชื่อ file version number ของ file โดยที่จะเก็บเฉพาะสิ่งที่แตกต่างกัน ในการพัฒนาของแต่ละคนเท่านั้นเพื่อเป็นการประหยัดพื้นที่ในการจัดเก็บ และจะจัดเก็บเฉพาะงานที่ทำภายใต้ version control เท่านั้น

  4. หลักการของCVS • Branches เป็นส่วนหนึ่งของการทำงานของ repository branches เป็นการ เปรียบเทียบการพัฒนา code ในลักษณะของ tree คือ code เริ่มต้นเป็นลำต้น( trunk )ของ tree และเมื่อเรานำ code มาพัฒนาต่อ code ที่นำมาพัฒนาต่อจะเป็นกิ่งก้านสาขา( branches )ของ tree ทิศทางการพัฒนาจะขยายออกจากลำต้น( trunk ) ของ tree ซึ่ง branches เป็นเทคนิคที่นิยมใช้ในการพัฒนา Software ที่มีขนาดใหญ่

  5. หลักการของCVS • Branches (cont.) วิธี branches นี้สามารถใช้เพื่อการทดสอบ code และเพิ่มเติม code เมื่อเราต้องการที่จะขยาย program เพิ่มเติม เมื่อทำการพัฒนาส่วนที่เป็น branches เสร็จแล้ว เราสามารถที่จะรวม (merge) code ที่เป็น branches เข้าด้วยกัน หรือ เราจะรวม ( merge ) กับ code หลักที่ถือเป็นลำต้น (trunk) ของ tree ก็ได้

  6. หลักการของCVS • Workspace เป็นพื้นที่ที่ใช้สำหรับการทำงานกับ code ที่เราต้องการแก้ไขซึ่งเรานำ code นี้มาจาก repository • Check out การ copy code ที่เราต้องการนำมาทำงาน จาก repository ซึ่งเราสามารถ check out ได้หลายๆครั้ง และหลายๆ program

  7. หลักการของCVS • Commit เป็นการนำงานที่เราแก้ไขเปลี่ยนแปลงเรียบร้อยแล้วเก็บลงสู่ repository เราจะทำการ commit เมื่อต้องการให้ file นั้นเป็น backup ของงานที่เราทำ

  8. หลักการของCVS • Annotation หมายเหตุหรือคำอธิบายประกอบเป็นอีกรูปแบบหนึ่งที่ version control สนับสนุน ใน 1 บรรทัดของหมายเหตุหรือคำอธิบายจะบอกถึงประวัติการทำงานของ file นั้นว่ามีการเปลี่ยนแปลงแก้ไขเมื่อไหร่ กระทำโดยใคร หมายเหตุนี้มีประโยชน์ในการค้นหา bug ที่เกิดขึ้น

  9. หลักการของCVS • Rollbackคือ การที่เราสามารถย้อนกลับมาที่ version เก่าของ code ได้ เมื่อต้องการทำ "the old fashion way" ทำให้ระบบมั่นใจว่าประวัติการทำงานของ file นั้นยังคงอยู่

  10. Function การทำงานของ check out / commit • 1. Code และรายละเอียดต่างๆ ทุกอย่างจะถูกเก็บอยู่ที่ repository • 2. นำงานที่เราต้องการแก้ไขออกมาโดยการ check out • 3. ทำการแก้ไขเปลี่ยนแปลงภายใน workspace • 4. ทำการเก็บงานที่เราแก้ไขเปลี่ยนแปลงไว้ที่ repository โดยการ commit

  11. ความสามารถของ CVS • เก็บประวัติการทำงานของ file เพื่อช่วยแก้ปัญหาในการค้นหาความ แตกต่างของ code พื้นฐานกับ code ที่ทำการแก้ไขจากเดิม นักพัฒนาสามารถที่จะทำการเปลี่ยนแปลง code แก้ไข bug และทำการรวม (merge) งานที่ทำกับ code ล่าสุดที่ทำได้ ถ้าทำ branches ก็สามารถแก้ไขและเพิ่มเติมส่วนที่เป็น branches ได้

  12. ความสามารถของ CVS • มีศูนย์กลางเก็บข้อมูล (central repository) จะมีรูปแบบการ ทำงานแบบ 1 repository แต่หลายๆ workspace ซึ่งภายใต้รูปแบบนี้นักพัฒนาแต่ละ คนสามารถนำ code มาพัฒนาเพียงงานเดียวหรือหลายๆงานก็ได้ เมื่อแก้ไขเรียบร้อยแล้วก็ทำการรวม (merge) งานที่ทำเข้าด้วยกัน

  13. ความสามารถของ CVS • การเก็บประวัติการทำงานของ file ที่ สามารถช่วยให้เราค้นหาได้ว่า bug เกิดขึ้นที่ไหนและทำโดยใคร • สนับสนุนการทำงานแบบ binary file

  14. Development Cycle ของ CVS • นำงานที่ต้องการทำออกมาจาก repository (Check out ) โดยนำมาทำงานในส่วนของ workspace • ทำการเปลี่ยนแปลงแก้ไขหรือพัฒนาโปรแกรม • ทดสอบ code ที่แก้ไข • มีการ merge งานที่ทำกับนักพัฒนาคนอื่นๆ (ถ้ามีการแบ่งงานกันทำ) • ทดสอบ code (ในกรณีที่มีการ merge งานเข้าด้วยกัน)

  15. Development Cycle ของ CVS • นำงานเก็บลงสู่ repository โดยการ Commit • ทำการพัฒนาโปรแกรมในขั้นที่ 2 อีกครั้ง จนกว่าจะได้ version ที่เราต้องการ • ระบุชื่อให้กับชิ้นงานที่ทำเสร็จ • มีการระบุชื่อของแต่ละ module ที่ประกอบในชิ้นงาน เพื่อนำมาใช้ส่วนของการบูรณาการ และนำมาพัฒนาในส่วนของชิ้นงานต่อไป

  16. 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)

  17. CVS Tools (เครื่องมือสำหรับ CVS) • เครื่องมือที่ใช้ในการควบคุมการพัฒนาเวอร์ชันซอฟต์แวร์เพื่อนำไปสู่มาตรฐานตามหลัก การของ SCM ได้ถูกผลิตขึ้นมากมาย จากหลายๆบริษัท เนื่องจาก องค์กรที่เขียนโปรแกรมตามที่ลูกค้าต้องการ เห็นถึงความสำคัญของการควบคุมคุณภาพของงานที่จะส่งให้ลูกค้ามากขึ้น ดังนั้น ภาษาที่ใช้เขียนโปรแกรมต้องให้ความสำคัญด้านการป้องกัน และ ควบคุมความผิดพลาดที่อาจเกิดขึ้นในขั้นการพัฒนาโปรแกรม

  18. CVS Tools (เครื่องมือสำหรับ CVS) • บริษัทหลายๆบริษัทที่ผลิตซอฟต์แวร์จึงได้แข่งขันกันจัดทำซอฟต์แวร์ที่สามารถควบคุม ความผิดพลาด เพื่อสนับสนุนการใช้งานภาษาโปรแกรมต่างๆทั้งนี้ก็เพื่อสนองตอบความต้องการขององค์กรที่ผลิตงานแก่ลูกค้าให้ได้ตามมาตรฐาน และเพิ่มความน่าเชื่อถือมากยิ่งขึ้น

  19. 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. • และอื่นๆ

  20. 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

  21. CVS & Visual SourceSafe Comparison • CVS เป็น optimistic version controlคืออนุญาตให้หลายๆคนสามารถ check out ซอร์สไฟล์เดียวกันได้ แต่เวลาเซฟกลับมันจะเช็คเรื่อง conflict และเตือนให้คน merge กลับให้ถูกต้อง ในขณะที่ถ้าเป็น Visual SourceSafe ใช้ pessimistic version controlถ้ามีใคร check out ไฟล์ไหนไปแล้ว คนอื่นจะดึงไปแก้ไม่ได้ จนกว่าคนแรกจะ check in กลับให้เรียบร้อย ต่างแบบต่างมีข้อดีข้อเสียต่างกัน

More Related