Luồng sự kiện “Lựa chọn phiên bản hiện dù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
Luồng sự kiện “Kiểm tra update”
Hình 23. Biểu đồ tuần tự luồng sự kiện “Kiểm tra update” 3.7. Hợp đồng cho các thao tác hệ thống
Op1. Tạo phiên bản
Tên Tạo phiên bản
Trách nhiệm Tạo một phiên bản mới của phần mềm
Tham chiếu Uc1
Ngoại lệ Trùng với phiên bản đã có, hoặc người dùng nhập sai thông tin
Đầu ra Thông báo phiên bản có được tạo hay không Tiền điều kiện
Hậu điều kiện Phiên bản mới phải có ngày release sau ngày các phiên bản trước
Op2. Thiết lập quan hệ phiên bản
Tên Thiết lập quan hệ phiên bản
Trách nhiệm Thiết lập quan hệ giữa các phiên bản được chọn với nhau, phiên bản nào phát triển từ phiên bản nào
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
Tham chiếu Uc2
Ngoại lệ
Đầu ra Thông báo mối quan hệ được thiết lập hay không
Tiền điều kiện
Hậu điều kiện Phiên bản được phát triển từ phiên bản khác phải là phiên bản được tạo muộn hơn
Op3. Gán mã nguồn cho phiên bản
Tên Gán mã nguồn cho phiên bản
Trách nhiệm Bổ sung hoặc loại bỏ các mã nguồn có trong 1 phiên bản cụ thể
Tham chiếu Uc3
Ngoại lệ
Đầu ra Thông báo các mã nguồn đã được gán tới phiên bản
Tiền điều kiện
Hậu điều kiện Mã nguồn được tạo ra sau, không được phép gán tới phiên bản trước đó
Op4. Sửa thông tin phiên bản
Tên Sửa thông tin phiên bản
Trách nhiệm Sửa đổi thông tin của phiên bản và cập nhật vào cơ sở dữ liệu
Tham chiếu Uc4
Ngoại lệ Người dùng nhập không đầy đủ hoặc sai thông tin
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
Tiền điều kiện
Hậu điều kiện Ngày release không được sớm hơn ngày tạo các mã nguồn của nó, và phải thỏa mãn trong mối quan hệ với các phiên bản khác
Op5. Xem thông tin phiên bản
Tên Xem thông tin phiên bản
Trách nhiệm Xem thông tin chi tiết của một phiên bản
Tham chiếu Uc5
Ngoại lệ
Đầu ra Hiển thị thông tin phiên bản Tiền điều kiện
Hậu điều kiện
Op6. Xóa phiên bản
Tên Xóa phiên bản
Trách nhiệm Xóa phiên bản khỏi hệ thống và cơ sở dữ liệu
Tham chiếu Uc6
Ngoại lệ Không được phép xóa, nếu có phiên bản được phát triển từ phiên bản này
Đầu ra Thông báo phiên bản có được xóa hay không Tiền điều kiện
Hậu điều kiện
Op7. Tạo mã nguồn
Tên Tạo mã nguồn
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
Tham chiếu Uc7
Ngoại lệ Người dùng nhập không đầy đủ hoặc sai thông tin, hoặc là trùng tên mã nguồn khác có trong cơ sở dữ liệu
Đầu ra Thông báo mã nguồn có được tạo hay không Tiền điều kiện
Hậu điều kiện
Op8. Sửa thông tin mã nguồn
Tên Sửa thông tin mã nguồn
Trách nhiệm Sửa thông tin của mã nguồn và lưu lại vào cơ sở dữ liệu
Tham chiếu Uc8
Ngoại lệ Người dùng nhập không đầy đủ hoặc sai thông tin
Đầu ra Thông báo thông tin mã nguồn đã được thay đổi Tiền điều kiện
Hậu điều kiện Ngày tạo mã nguồn không được muộn hơn ngày release của các phiên bản mà mã nguồn phụ thuộc
Op9. Xem thông tin mã nguồn
Tên Xem thông tin mã nguồn
Trách nhiệm Xem thông tin chi tiết về mã nguồn
Tham chiếu Uc9
Ngoại lệ
Đầu ra Hiển thị thông tin mã nguồn Tiền điều kiện
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
Hậu điều kiện
Op10. Xóa mã nguồn
Tên Xóa mã nguồn
Trách nhiệm Xóa mã nguồn khỏi cơ sở dữ liệu
Tham chiếu Uc10
Ngoại lệ Mã nguồn không thể bị xóa, do nó đang có trong một phiên bản nào đó
Đầu ra Thông báo mã nguồn có được xóa hay không Tiền điều kiện
Hậu điều kiện
Op11. Lựa chọn phiên bản hiện dùng
Tên Lựa chọn phiên bản hiện dùng
Trách nhiệm Chọn một trong số các phiên bản làm phiên bản hiện tại của hệ thống
Tham chiếu Uc11
Ngoại lệ
Đầu ra Thông báo phiên bản hiện dùng Tiền điều kiện
Hậu điều kiện
Op12. Kiểm tra update
Tên Kiểm tra update
Trách nhiệm Kiểm tra xem có phiên bản mới không để nâng cấp
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
Ngoại lệ Không có phiên bản mới Đầu ra Hiển thị tiến trình nâng cấp Tiền điều kiện
Hậu điều kiện Thay đổi phiên bản hiện dùng thành phiên bản vừa nâng cấp
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
CHƯƠNG 4
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
4.1. Biểu đồ tuần tự đối tượng 4.1.1. Gói quản lý phiên bản 4.1.1. Gói quản lý phiên bản
Luồng sự kiện “Tạo 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”
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”
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”
Hình 28. Biểu đồ tuần tự đối tượng 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
Hình 29. Biểu đồ tuần tự đối tượng luồng sự kiện “Xóa phiên bản” 4.1.2. Gói quản lý mã nguồn
Luồng sự kiện “Tạo 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 “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”
Hình 32. Biểu đồ tuần tự đối tượng 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
4.1.3. Gói quản lý nâng cấp phiên bản
Luồng sự kiện “Lựa chọn phiên bản hiện dùng”
Hình 34. 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. Biểu đồ lớp
Cài đặt thử nghiệm
CHƯƠNG 5
CÀI ĐẶT THỬ NGHIỆM
5.1. Môi trường triển khai
Môi trường triển khai: Netbeans 6.0.1, sử dụng JDK1.5.0_15 ( bộ công cụ phát
triển Java)
Ngôn ngữ sử dụng: Java
Hệ quản trị cơ sở dữ liệu: MySQL
Lý do lựa chọn:
Ngôn ngữ Java hiện nay được sử dụng ngày càng nhiều bởi đây là một ngôn ngữ hướng đối tượng, linh hoạt, rất mạnh.
Netbeans là một công cụ hỗ trợ rất nhiều cho người phát triển Java đặc biệt là khả năng kéo thả, và ngoài ra đây là phần mềm hoàn toàn miễn phí
MySQL là hệ quản trị cơ sở dữ liệu dễ sử dụng, lưu trữ nhanh, hỗ trợ tiếng Việt khi được kết nối từ ứng dụng Java, và miễn phí.
5.2. Phương pháp triển khai
Hệ thống được xây dựng dựa vào một tiến trình tiến hóa phiên bản phần mềm giả định sẵn:
Hệ thống quản lý phòng khám có các phiên bản khác nhau, xuất phát từ phiên bản 1.0, trình tự phiên bản được mô tả như hình vẽ, mỗi phiên bản có nhiều mã nguồn, giữa các phiên bản có quan hệ với nhau có các hoạt động xảy ra được thực hiện trong khi nâng cấp phần mềm:
Cài đặt thử nghiệm
Hình 37. Sơ đồ tiến hóa của phiên bản phần mềm
5.3. Kết quả triển khai
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,…
Dưới đây là một số giao diện của hệ thống:
1. Giao diện chính
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ả)
Ver1.0 Ver1.0.1
Ver1.1
Ver2.0
Ver1.1.1 Ver1.1.2 Ver1.1.3
Ver2.0.1 Ver2.0.2
Ver2.2
Ver1.0.2
Cài đặt thử nghiệm
Hình 38. Giao diện chính
2. Giao diện “Tạo 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 phiên bản” trong mục Phiên Bản trên menu chính.
Cài đặt thử nghiệm
Hình 39. Giao diện “Tạo phiên bản”
3. Giao diện “Thiết lập quan hệ phiên bản”
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. Nhằm xác định phiên bản nào được phát triển từ phiên bản nào.
Cài đặt thử nghiệm
Hình 40. Giao diện “Thiết lập quan hệ phiên bản”
4. Giao diện “Gán mã nguồn cho phiên bản”
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.
Hình 41. Giao diện “Gán mã nguồn cho phiên bản”
5. Giao diện “Sửa thông tin phiên bản”
Người dùng chọn phiên bản cần sửa, rồi chọn chức năng “sửa thông tin phiên bản” trong mục Phiên Bản trên menu chính
Cài đặt thử nghiệm
Hình 42. Giao diện “Sửa thông tin phiên bản”
6. Giao diện “Xem thông tin phiên bản”
Người dùng chọn phiên bản trong cây thư mục và chọn chức năng “xem thông tin phiên bản”
Cài đặt thử nghiệm
7. Giao diện “Tạo mã nguồ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.
Hình 44. Giao diện “Tạo mã nguồn”
8. Giao diện “Sửa mã nguồn”
Người dùng chọn mã nguồn cần sửa, rồi chọn chức năng “sửa thông tin mã nguồn” trong mục Mã Nguồn trên menu chính
Cài đặt thử nghiệm
Hình 45. Giao diện “Sửa mã nguồn”
9. Giao diện “Xem thông tin mã nguồn”
Người dùng chọn mã nguồn trong cây thư mục và chọn chức năng “xem thông tin mã nguồn”
Cài đặt thử nghiệm
10.Giao diện “Lựa chọn phiên bản hiện dùng”
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ình 47. Giao diện “Lựa chọn phiên bản hiện dùng”
11.Giao diện “Kiểm tra update”
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. Sau khi người dùng nhấn nút nâng cấp, tiến trình nâng cấp sẽ hiện ra.
Cài đặt thử nghiệm
CHƯƠNG 6 KẾT LUẬN
Sau khi làm và hoàn thành luận văn, chúng tôi đã đạt được những kết quả sau: 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.
Vì thời gian hạn chế và thiếu kinh nghiệm nên khóa luận không tránh khỏi sai sót, chúng tôi rất mong nhận được sự góp ý của thầy cô và các bạn.
TÀI LIỆU THAM KHẢO
[1] Nguyễn Thị Hoa. Hệ thống quản lý phiên bản phần mềm. Luận văn tốt nghiệp ngành công nghệ thông tin – Đại học Công Nghệ, 2008
[2] ThS Đào Kiến Quốc. Bài giảng Quản lý cấu hình. Khoa Công nghệ Thông tin – Đại Học Công Nghệ.
[3] Ngô Văn Toàn. Giới thiệu về quản lý cấu hình phần mềm.
http://www.fpt.edu.vn/chitiet.php?id=129
[4] Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilat. Version Control with Subversion
[5] Marcin Solarski. Dynamic Upgrade of Distributed Software Components, January – 2004, tr. 19-31
[6] Mika Karlstedt. Dynamic upgrade of software [7] Wikipedia.
http://en.wikipedia.org/wiki/Software_maintenance http://en.wikipedia.org/wiki/Revision_control