Nghiên cứu giải pháp bảo trì phần mềm tự động dựa trên hệ thống quản lý cấu hình

MỤC LỤC

THỰC TRẠNG VÀ GIẢI PHÁP 2.1. Thực trạng

Một trong những nhiệm vụ chính của hệ thống quản lý cấu hình là kiểm soát phiên bản phần mềm (control version), hiện nay có rất nhiều công cụ kiểm soát phiên bản phần mềm, chẳng hạn như: SubVersion, CVS (phần mềm mã nguồn mở), IBM Rational ClearCase, Visual SourceSafe (của Microsoft),.v.v. Mục đớch của hệ thống kiểm soỏt phiờn bản là theo dừi, kiểm soỏt mọi sự thay đổi đã và đang diễn ra đối với phần mềm trong suốt quá trình phát triển, bao gồm sự thay đổi của các file mã nguồn, tài liệu, các file mới được bổ sung, sửa đổi hay loại bỏ,…Và do vậy kiểm soát được nhiều phiên bản phần mềm khác nhau. Hệ thống kiểm soát phiên bản có cơ chế để đảm bảo việc chia sẻ dữ liệu giữa các nhà phát triển xảy ra tin cậy, và mọi sự thay đổi diễn ra trong kho dữ liệu đều được kiểm soát.

Hầu hết các công cụ quản lý cấu hình hiện thời mới chỉ kiểm soát phiên bản mã nguồn phục vụ trong quá trình phát triển phần mềm, mà chưa hỗ trợ kiểm soát phiên bản theo hướng “nâng cấp phần mềm” từ phía người sử dụng. Chẳng hạn: khách hàng đang dùng phần mềm, họ muốn thực hiện nâng cấp lên một phiên bản khác (mới hơn), điều gì sẽ xảy ra, và phải quản lý thế nào ?. Giải pháp đưa ra là xây dựng một công cụ vừa cho phép quản lý phiên bản phần mềm, vừa hỗ trợ xử lý hoạt động nâng cấp phần mềm tự động theo yêu cầu của người sử dụng.

Công cụ này cần phải lưu các phiên bản đã có, cũng như mối quan hệ giữa các phiên bản, các hoạt động diễn ra khi nâng cấp từ một phiên bản này tới một phiên bản khác. Do thời gian nghiên cứu về lĩnh vực này không nhiều và kinh nghiệm còn hạn chế, nên chúng tôi mới chỉ xây dựng hệ thống mô phỏng hoạt động nâng cấp tự động kết hợp với quản lý phiên bản với các chức năng đã nêu mà bỏ qua nhiều chức năng khác của hệ thống quản lý phiên bản, và chưa xây dựng được một hệ thống client – server hoàn chỉnh.

PHÂN TÍCH HỆ THỐNG MÔ PHỎNG HOẠT ĐỘNG NÂNG CẤP TỰ ĐỘNG KẾT HỢP VỚI QUẢN LÝ PHIÊN BẢN

Mục tiêu hệ thống

Phân tích hệ thống mô phỏng hoạt động nâng cấp tự động kết hợp với quản lý phiên bản.

Mô hình khái niệm

HanhdongChuyendoi Các hành động được thực hiện khi nâng cấp phiên bản (giữ nguyên, xóa, thêm, sửa một mã nguồn nào đó).

Biểu đồ tuần tự hệ thống 1. Gói quản lý phiên bản

    - Mục đích: Kiểm tra xem có các phiên bản mới hơn phiên bản hiện dùng không để nâng cấp. - Mô tả khái quát: Người dùng nhấn nút check update, nếu có update, thông tin về các phiên bản mới sẽ hiện ra, người dùng lựa chọn phiên bản để nâng cấp.

    Hình 13. Biểu đồ tuần tự luồng sự kiện “Thiết lập quan hệ phiên bản”
    Hình 13. Biểu đồ tuần tự luồng sự kiện “Thiết lập quan hệ phiên bản”

    THIẾT KẾ HỆ THỐNG MÔ PHỎNG HOẠT ĐỘNG NÂNG CẤP KẾT HỢP VỚI QUẢN LÝ PHIÊN BẢN

    Biểu đồ tuần tự đối tượng 1. Gói quản lý phiên bản

      Thiết kế hệ thống mô phỏng hoạt động nâng cấp tự động kết hợp với quản lý phiên bản. Thiết kế hệ thống mô phỏng hoạt động nâng cấp tự động kết hợp với quản lý phiên bản Luồng sự kiện “Thiết lập quan hệ phiên bản”. Biểu đồ tuần tự đối tượng luồng sự kiện “Thiết lập quan hệ phiên bản”.

      Thiết kế hệ thống mô phỏng hoạt động nâng cấp tự động kết hợp với quản lý phiên bản Luồng sự kiện “Gán mã nguồn cho phiên bản”. Biểu đồ tuần tự đối tượng luồng sự kiện “Gán mã nguồn cho phiên bản”. Thiết kế hệ thống mô phỏng hoạt động nâng cấp tự động kết hợp với quản lý phiên bản Luồng sự kiện “Sửa thông tin phiên bản”.

      Thiết kế hệ thống mô phỏng hoạt động nâng cấp tự động kết hợp với quản lý phiên bản Luồng sự kiện “Xem thông tin phiên bản”. Thiết kế hệ thống mô phỏng hoạt động nâng cấp tự động kết hợp với quản lý phiên bản. Thiết kế hệ thống mô phỏng hoạt động nâng cấp tự động kết hợp với quản lý phiên bản Luồng sự kiện “Sửa thông tin mã nguồn”.

      Thiết kế hệ thống mô phỏng hoạt động nâng cấp tự động kết hợp với quản lý phiên bản Luồng sự kiện “Xem thông tin mã nguồn”. Thiết kế hệ thống mô phỏng hoạt động nâng cấp tự động kết hợp với quản lý phiên bản. Biểu đồ tuần tự đối tượng luồng sự kiện “Lựa chọn phiên bản hiện dùng”.

      Thiết kế hệ thống mô phỏng hoạt động nâng cấp tự động kết hợp với quản lý phiên bản Luồng sự kiện “Kiểm tra update”. Thiết kế hệ thống mô phỏng hoạt động nâng cấp tự động kết hợp với quản lý phiên bản 4.2.

      Hình 25. Biểu đồ tuần tự đối tượng luồng sự kiện “Thiết lập quan hệ phiên bản”
      Hình 25. Biểu đồ tuần tự đối tượng luồng sự kiện “Thiết lập quan hệ phiên bản”

      CÀI ĐẶT THỬ NGHIỆM

        Hệ thống mô phỏng tiến trình nâng cấp phần mềm, cho phép quản lý các phiên bản (tạo mới, sửa, xem, xóa), quản lý các mã nguồn, gán mã nguồn cho phiên bản, thiết lập quan hệ giữa các phiên bản, mô phỏng tiến trình nâng cấp phiên bản,…. Giao diện chính chương trình là một Frame có Menu chính gồm các chức năng, và một cây thư mục liệt kê các phiên bản và mã nguồn có trong hệ thống. Menu chức năng gồm có các mục: quản lý phiên bản, quản lý mã nguồn, quản lý nâng cấp, và mục Trợ giúp (đơn giản chỉ giới thiệu về tác giả).

        Giao diện này hiện ra khi người dùng chọn chức năng “Tạo phiên bản” trong mục Phiên Bản trên menu chính. Giao diện này hiện ra khi người dùng chọn chức năng “Thiết lập quan hệ phiên bản” trong mục Phiên Bản trên menu chính. Người dùng chọn phiên bản từ cây thư mục, sau đó chọn chức năng “Gán mã nguồn cho phiên bản”, hộp thoại sau sẽ hiện ra cho phép người dùng gán hoặc loại bỏ mã nguồn khỏi phiên bản.

        Giao diện này hiện ra khi người dùng chọn chức năng “Tạo mã nguồn” trong mục Mã Nguồn trên menu chính. Chức năng này cho phép người dùng chọn trong 1 trong các phiên bản sẵn có làm phiên bản hiện tại của phần mềm để thực hiện mô phỏng nâng cấp phiên bản. Hệ thống sẽ kiểm tra những phiên bản mới hơn phiên bản hiện tại, cho phép người dùng lựa chọn để tiến hành nâng cấp.

        Chúng tôi đã tìm hiểu và nghiên cứu về quản lý cấu hình phần mềm, trong đó có nhiệm vụ quan trọng là quản lý phiên bản, xem xét khả năng hỗ trợ của các công cụ quản lý phiên bản hiện tại (như Subversion, CVS), các công cụ này chỉ hỗ trợ quản lý phiên bản phần mềm trong quá trình phát triển phần mềm cho phép nhiều nhà phát triển có thể làm việc với nhau tại một thời điểm, mà chưa kiểm soát quá trình nâng cấp phần mềm từ phía khách hàng, từ đó chúng tôi nảy ra ý tưởng kết hợp nâng cấp phần mềm tự động với hệ thống quản lý phiên bản. Chúng tôi tiến hành phân tích và thiết kế bài toán dựa trên ý tưởng đó, và viết được chương trình mô phỏng việc kết hợp nâng cấp phần mềm với quản lý phiên bản. Chương trình có các chức năng chính: quản lý phiên bản, quản lý mã nguồn, quản lý nâng cấp.

        Tuy vậy, do thời gian hạn chế và thiếu kinh nghiệm nên chúng tôi mới chỉ mô phỏng hệ thống một cách đơn giản, còn thiếu nhiều chức năng của một hệ thống quản lý phiên bản đầy đủ như là: quản lý hạng mục cấu hình, quản lý thành viên, quản lý lịch sử thay đổi,…. Và chúng tôi cũng chưa xây dựng được một hệ thống client – server hoàn chỉnh, sau này khi có điều kiện chúng tôi sẽ tiếp tục nghiên cứu và phát triển để giải pháp chúng tôi đã đề ra khả thi trong thực tế. Cuối cùng chúng tôi xin chân thành cảm ơn quý thầy cô trong trường Đại Học Công Nghệ đã tạo điều kiện cho chúng tôi hoàn thành khóa luận, và đặc biệt là giảng viên Thạc sĩ Đào Kiến Quốc, người đã nhiệt tình hướng dẫn và góp ý cho chúng tôi, đồng thời xin cảm ơn các bạn đã giúp đỡ chúng tôi rất nhiều trong suốt quá trình làm khóa luận.

        Hình 37. Sơ đồ tiến hóa của phiên bản phần mềm
        Hình 37. Sơ đồ tiến hóa của phiên bản phần mềm