Chương 5 trình bày về Quản lý cấu hình. Nội dung cụ thể của chương này gồm có: Tại sao cần Quản lý cấu hình, định nghĩa, các thuật ngữ cơ bản, lập kế hoạch quản lý cấu hình, quản lý baseline/Milestone, quản lý thay đổi, quản lý phiên bản và phát hành, công cụ quản lý cấu hình.
NỘI DUNG CHÍNH Tại cần Quản lý cấu hình? Định nghĩa Các thuật ngữ Lập kế hoạch QLCH Quản lý baseline/Milestone Quản lý thay đổi Quản lý phiên phát hành Công cụ quản lý cấu hình Chương QUẢN LÝ CẤU HÌNH 1 Tại cần Quản lý cấu hình? Tại cần Quản lý cấu hình? Quản lý cấu hình tốt Cập nhật đồng thời Chia sẻ source code: Trong hệ thống lớn, chức chung bị thay đổi, tất người liên quan phải biết Đồng phiên phần mềm (release): Hầu hết chương trình hệ thống lớn phát triển với nhiều release tiến hóa từ thấp đến cao ??? Định nghĩa Các Thuật ngữ Thiết lập bảo đảm tính tồn vẹn sản phẩm trung gian sản phẩm sau dự án phần mềm, xuyên suốt chu kỳ sống dự án Configuration Item - CI: định danh Tổ chức, quản lý thay đổi phần mềm xây dựng nhóm lập trình viên Baseline: điểm “mốc” thỏa thuận QLCH tên gọi sản phẩm, sản phẩm trung gian, tập tin (file) nhóm file, tài liệu nhóm tài liệu dự án mà ta cần phải quản lý kiểm soát người liên quan dự án, cho sau điểm “mốc” này, thay đổi phải thông báo tới tất người có liên quan Lập kế hoạch QLCH Các Thuật ngữ (Configuration Management planning) Repository: Nơi chứa tất tài nguyên (tập tin) quản lý Working copy: Bản (dùng để làm việc) tập tin repository Ý nghĩa, mục đích phạm vi áp dụng kế hoạch Vai trị trách nhiệm nhóm, cá nhân dự án thực hoạt động khác liên quan đến QLCH Công cụ (tool), môi trường (environment) sở hạ tầng (infrastructure) Lập kế hoạch QLCH Lập kế hoạch QLCH (Configuration Management planning) (Configuration Management planning) Ý nghĩa: cấu hình hệ thống chức đặc tính vật lý phần cứng, phần mềm phần mềm kết hợp theo quy trình cụ thể xây dựng để phục vụ mục đích cụ thể Mục đích: thiết lập đảm bảo tính tồn vẹn sản phẩm trung gian sản phẩm sau dự án phần mềm, xuyên suốt chu kỳ sống dự án Giúp cho lập trình viên, quản lý viên, kiểm thử viên dễ dàng quản lý tiếp cận với thay đổi sản phẩm phần mềm Phạm vi: Hệ thống quản lý nhân công ty, quản lý thông tin, lương, thưởng tồn nhân viên cơng ty Vai trị trách nhiệm nhóm, cá nhân dự án thực hoạt động khác liên quan đến QLCH Định nghĩa rõ ràng thực (perform), xem xét (review), phê duyệt (approve) CI dự án, vai trò khách hàng, người sử dụng đầu cuối Công cụ (tool), môi trường (environment) sở hạ tầng (infrastructure) Phần mô tả công cụ phần mềm quy trình thủ tục sử dụng hỗ trợ QLCH, chẳng hạn công cụ quản lý phiên sản phẩm (version control); mơ tả vị trí máy chủ, máy trạm, cấu hình hệ thống client-server, 10 Lập kế hoạch QLCH Lập kế hoạch QLCH (Configuration Management planning) (Configuration Management planning) 11 12 Lập kế hoạch QLCH Lập kế hoạch QLCH (Configuration Management planning) (Configuration Management planning) Định danh thành phần cấu hình (CI) Các thành phần cấu hình: Các đặc tả (đặc tả yêu cầu chức năng, phi chức năng) Các thiết kế (giao diện, liệu, chương trình) Các chương trình Dữ liệu kiểm thử Tài liệu hướng dẫn sử dụng Sơ đồ phân cấp đa mức phương pháp định danh hiệu 13 14 Lập kế hoạch QLCH Lập kế hoạch QLCH (Configuration Management planning) (Configuration Management planning) Mỗi CI phải có số định danh nhất, dạng thức thường thấy là: Ví dụ: PRJ001_REQB_1.0.4_draft_B cho biết: Số ID dự án: PRJ001 Số ID Item : REQB Phiên bản: 1.0.4_draft_B Trong dự án, thường có nhiều file source code, quy tắc là: file tạo nên khối chức gom chung thành CI Kiểm soát phiên (Version Control) Version control kiểm soát phiên (version) khác CI Một phiên thực thể CI sau qua nhiều lần xem xét thay đổi Mỗi phiên phản có số ID đầy đủ, tăng dần cho phiên Các phiên quan trọng CI đánh dấu để nhận biết “mốc” quan trọng tiến trình phát triển CI đó, phiên mà CI phê duyệt hay baseline 15 16 Quản lý baseline/Milestone QUẢN LÝ THAY ĐỔI Baseline tiến hành điểm kết thúc giai đoạn hay “mốc” quan trọng dự án Chọn CI cho loại baseline Tiến hành baseline thời điểm sau thay đổi chấp thuận phê chuẩn Kiểm soát thay đổi Các yêu cầu thay đổi hệ thống phần mềm bắt nguồn từ: Người dùng Nhà phát triển Áp lực thị trường Quản lý thay đổi liên quan tới việc: Theo dõi thay đổi đảm bảo chúng thực theo cách hiệu chi phí Yêu cầu kiểm soát thay đổi thay đổi phải thơng báo đến tất người nhóm làm việc có liên quan 17 18 QUẢN LÝ THAY ĐỔI QUẢN LÝ PHIÊN BẢN VÀ PHÁT HÀNH Kiểm soát thay đổi Trong kiểm soát thay đổi, ta thường gặp khái niệm “nhóm kiểm sốt thay đổi” gọi tắt CCB (Change Control Board), nhóm thành lập dự án CCB thông thường bao gồm: Người QLCH (Configuration Manager) Trưởng dự án (Project Manager) Trưởng nhóm (Technical Lead) Trưởng nhóm kiểm soát chất lượng (Test Lead) Kỹ sư chất lượng (Quality Engineer) Và bị ảnh hưởng thay đổi 19 Phiên / Biến thể / Phát hành Phiên (version) Phiên thể CI sau qua nhiều lần xem xét thay đổi Biến thể (variant) Một thể hệ thống mà giống chức khác phi chức với thể khác hệ thống Phát hành (release) Một thể hệ thống mà phân phối cho người dùng bên ngồi nhóm phát triển 20 QUẢN LÝ PHIÊN BẢN VÀ PHÁT HÀNH Nhận dạng phiên - Đánh số phiên Mỗi phiên phản có số ID đầy đủ, tăng dần cho phiên CƠNG CỤ QUẢN LÝ CẤU HÌNH Bản cài đặt riêng http://www.open.collab.net/downloads/subversion V1, V1.1, V1.2, V2.1, … CollabNet Subversion Server and Client v1.6.1 (for Windows) Hoặc download đây: http://subversion.apache.org/ Lưu ý phiên CI khác với phiên file thành phần CI Tortoise SVN (GNU General Public License) http://tortoisesvn.net/downloads 21 22 CÔNG CỤ QUẢN LÝ CẤU HÌNH CƠNG CỤ QUẢN LÝ CẤU HÌNH Các giải pháp quản lý cấu hình miễn phí mạng Website cung cấp dịch vụ project-hosting Ưu điểm Các giải pháp quản lý cấu hình miễn phí mạng Bỏ qua giới hạn địa lý Tiện dụng Google Code Assembla.com Bounty Source Source Forge Collab.net Bitbucket … Miễn phí Tiết kiệm tài nguyên Nhược điểm Tốc độ chậm Dung lượng lưu trữ hạn chế 23 24 CƠNG CỤ QUẢN LÝ CẤU HÌNH Google Code gì? Google Code Tốt cho dự án vừa nhỏ Thiên quản lý cấu hình FAQ: http://code.google.com/p/support/wiki/FAQ Tạo project: https://code.google.com/hosting/ Assembla Tốt cho dự án nhỏ (miễn phí) Phục vụ nhiều mục đích khác dự án Tốt cho loại dự án: nhỏ, vừa, lớn có tiền Cung cấp dịch vụ project-hosting Miễn phí 100% Nhằm hỗ trợ cho dự án mã nguồn mở 25 Các thành phần: Project Home: giới thiệu dự án, cập nhật gần Downloads: nơi public tài nguyên, source code, sản phẩm cuối (2Gb) Wiki: trang wikimedia thu nhỏ Issues: hệ thống quản lý bug Source: quản lý cấu hình source code Administer: dành riêng cho owner project 26 Source: Dung lượng: 1Gb Sử dụng kèm với tool client: TortoiseSVN, … Cần có tài khoản mật 27 28 Ưu điểm Miễn phí hoàn toàn Dung lượng lưu trữ cao Dễ sử dụng Dễ đăng ký Thuận tiện phát triển dự án vừa nhỏ Nhược điểm Chỉ chấp nhận gmail Khả tùy biến thấp gmail tạo 10 project 29 Do nhóm Andy Singleton phát triển Tạo workspace:http://www.assembla.com B1: B2: B3: B4: B5: B6: Cung cấp dịch vụ project-hosting Miễn phí: public and open source projects Thu phí: private and professional projects 30 Các add-on tools miễn phí 100% đăng ký tài khoản vào start page Chọn create new space Chọn mẫu workspace Chọn plan Tùy biến workspace Add/remove tools không giới hạn Thu phí dung lượng lưu trữ 31 32 Tùy biến workspace Chức cần thiết Xài kèm TortoiseSVN Team: thêm, xóa, phân quyền cho thành viên Admin: tùy biến workspace, backup, upgrade… Chức tùy chọn: 24 chức Source/SVN Message Image Time … Wiki Chat Milestones Subverion&Trac … Scrum File Tickets Mercurial&Trac … 33 34 Ưu điểm Thêm thành viên 04/07/2018 Tên đăng nhập Email đăng ký Từ team khác Phân quyền Miễn phí Dễ sử dụng Khả tùy biến cao Cho phép sử dụng host bên kết hợp với assembla Có nhiều mẫu workspace Khơng giới hạn số workspace Nhược điểm 35 Dung lượng lưu trữ thấp: 200Mb/Workspace 04/07/2018 36 37 10 ... vật lý phần cứng, phần mềm phần mềm kết hợp theo quy trình cụ thể xây dựng để phục vụ mục đích cụ thể Mục đích: thiết lập đảm bảo tính tồn vẹn sản phẩm trung gian sản phẩm sau dự án phần mềm, ... vẹn sản phẩm trung gian sản phẩm sau dự án phần mềm, xuyên suốt chu kỳ sống dự án Configuration Item - CI: định danh Tổ chức, quản lý thay đổi phần mềm xây dựng nhóm lập trình viên Baseline:... người sử dụng đầu cuối Công cụ (tool), môi trường (environment) sở hạ tầng (infrastructure) Phần mô tả cơng cụ phần mềm quy trình thủ tục sử dụng hỗ trợ QLCH, chẳng hạn công cụ quản lý phiên sản