Configuration Management là gì
Nhóm 6 :Nguyễn Văn HảiNguyễn Thành LuânIntroductionChắc hẳn trong chúng ta đã ít nhất một lần gặp những tình huống như :
Các vấn đề trên sẽ không xảy ra nếu như trong dự án việc Quản lý cấu hình (QLCH) được thực hiện nghiêm túc và kiểm soát chặt chẽ. Nói cách khác,QLCH bao gồm các công việc về nhận dạng,tổ chức và quản lý các thay đổi đối với những sản phẩm đang được xây dựng bởi một nhóm lập trình viên,từ các sản phẩm trung gian đến các sản phẩm sau cùng. QLCH tốt sẽ giải quyết được hàng loạt những khó khăn trong các dự án,đặc biệt là các dự án lớn : Cập nhật đồng thời : khi 2 hay nhiều lập trình viên làm việc cách biệt nhau nhưng trên cùng một chương trình hoặc dự án,những thay đổi mà người này thực hiện có thể sẽ phá vỡ kết quả làm việc của người khác. Ví dụ: Sản phẩm anh A sử dụng kết quả của anh B,khi sản phẩm của anh B thay đổi có thể làm cho sản phẩm của anh A chạy lỗi hoặc không chạy được.Chia sẻ source code : Trong các hệ thống lớn,khi các chức năng chung bị thay đổi tất cả những người liên quan cần được biết về sự thay đổi đó. Phiên bản phần mềm(release) : Hầu hết các phiên chương trinhg hoặc hệ thống lớn được phát triển với nhiều phiên bản release tiến hoá từ thấp đến cao. Có 2 khái niệm rất cơ bản trong QLCH:
Định danh là một trong những hoạt động nền tảng của QLCH. Mục đích của định danh là để xác định tính duy nhất của một CI, cũng như mối quan hệ của nó với các CI khác. Nó bao gồm việc mô tả tên, đánh số, đánh dấu đặc trưng, giúp nhận biết và phân biệt một CI với các CI hay thành phần khác. Bạn có thể nhận thấy hình thức định danh tương tự trong đời sống thực tế. Ví dụ, người ta đánh số bàn trong nhà hàng nhằm giúp người phục vụ mang đúng thức ăn cho khách. Mỗi CI phải có một số định danh duy nhất, dạng thức thường thấy là: Ví dụ : PRJ001_REQB_1.0.4_draft_B Số ID của dự án: PRJ001 Số ID của Item : REQB Phiên bản: 1.0.4_draft_BTrong một dự án, thường có rất nhiều file source code, quy tắc cơ bản là: các file cùng tạo nên một khối chức năng được gom chung thành một CI. Kiểm soát phiên bản (Version Control)Version control là sự kiểm soát các phiên bản (version) khác nhau của một CI (bao gồm việc định danh và sự lưu trữ CI đó). Hiện có nhiều công cụ trên thị trường hỗ trợ cho việc kiểm soát phiên bản, một số công cụ thông dụng là: Visual Source Safe của Microsoft, ClearCase của Rational, CVS (nguồn mở). Mỗi phiên phản sẽ có một số ID đầy đủ, và được tăng dần cho mỗi phiên bản mới. Quản lý baseline (Baseline Management)Cũng như Version Control, baseline có nhiều cách hiểu khác nhau,Trong thực tế thường gặp các loại baseline sau:
Quản lý baseline bao gồm:
Thông thường, baseline được tiến hành tại điểm kết thúc của mỗi giai đoạn hay tại các mốc quan trọng trong dự án. Kiểm soát thay đổi (Change control)Khi phát triển hoặc bảo trì một sản phẩm phần mềm, việc thay đổi yêu cầu là không thể tránh khỏi.Mục đích của change control là để kiểm soát đầy đủ tất cả các thay đổi ảnh hưởng đến việc phát triển một sản phẩm. Đôi lúc chỉ một vài yêu cầu thay đổi nhỏ của khách hàng, tất cả các chặng của quy trình phát triển phần mềm từ thiết kế, đến viết code, đến kiểm tra sản phẩm đều phải thay đổi theo. Nếu các thay đổi này không được kiếm soát chặt chẽ sẽ dẫn đến rất nhiều sai sót. Ví dụ: 5 lập trình viên cùng làm trong một dự án, nhưng chỉ có 3 được thông báo về việc thay đổi thiết kế. Kết quả là khi tích hợp, hệ thống sẽ không vận hành được.Yêu cầu trong kiểm soát thay đổi là mọi sự thay đổi phải được thông báo đến tất cả những người hoặc nhóm làm việc có liên quan. Các bước cơ bản của kiểm soát thay đổi bao gồm:
Trong kiểm soát thay đổi, ta cũng thường gặp khái niệm nhóm kiểm soát thay đổi gọi tắt là CCB (Change Control Board), nhóm này được thành lập trong từng dự án. CCB thông thường bao gồm:
Nhiệm vụ của CCB thường là:
Báo cáo tình trạng cấu hình (Configuration Status Accounting)Công việc này bao gồm việc ghi nhận và báo cáo tình trạng của các CI cũng như yêu cầu thay đổi, tập hợp số liệu thống kê về CI, đặc biệt là các CI góp phần tạo nên sản phẩm. Kết quả của công việc này được ghi nhận trong một báo cáo mang tên Configuration Status Accounting Report (CSAR). Báo cáo này thường làm rõ những điểm sau:
Báo cáo này được làm thường xuyên và định kỳ, xuyên suốt dự án. AuditingCó 3 loại audit thường được thực hiện :
Quản lý release (Release management)Trong thực tế, có nhiếu định nghĩa khác nhau về khái niệm Release. Về cơ bản, chúng ta có thể hiểu: Quá trình phát triển một phần mềm thường qua nhiều lần tích hợp, kết quả của mỗi lần tích hợp là một bản Build, trong rất nhiều bản Build đó, một số bản đáp ứng một số yêu cầu đã định hoặc lập kế hoạch trước (theo yêu cầu khách hàng), sẽ được gởi cho khách hàng để kiểm tra hoặc đánh giá. Các bản build này được gọi là Release.Công việc tạo ra và phân phối các bản release được gọi là Công việc Release. Theo cách hiểu này, sản phẩm sau cùng cũng là một bản release, đôi khi được gọi là Final release. Trong quá trình release, việc quản lý đòi hỏi phải thực hiện các công việc sau:
Lưu trữ và chép dự phòng (Backup & archive)Lưu trữ và chép dự phòng là một hoạt động của QLCH và là một trong những hoạt động quan trọng phải có của sản xuất phần mềm. Nó giúp khắc phục các trường hợp rủi ro bị mất mát dữ liệu do thao tác sai, virus, hoặc sự cố phần cứng/ phần mềm. Ở khía cạnh khác, nó hỗ trợ cho hoạt động version control (đã nói ở trên) trong trường hợp ta muốn sử dụng những version khác nhau. Lưu trữ và chép dự phòng đòi hỏi toàn bộ sản phẩm và sản phẩm trung gian của dự án phải được định kỳ chép dự phòng trên những thiết bị hoặc những nơi khác một cách an toàn. Và khi dự án kết thúc, các hoạt động sau cần phải thực hiện:
|