Tài liệu Khóa luận Nghiên cứu một giải pháp bảo trì phần mềm tự động kết hợp với hệ thống quản lý cấu hình: ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Bùi Chí Tài
NGHIÊN CỨU MỘT GIẢI PHÁP BẢO TRÌ PHẦN
MỀM TỰ ĐỘNG KẾT HỢP VỚI HỆ THỐNG
QUẢN LÝ CẤU HÌNH
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
HÀ NỘI - 2009
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Bùi Chí Tài
NGHIÊN CỨU MỘT GIẢI PHÁP BẢO TRÌ PHẦN
MỀM TỰ ĐỘNG KẾT HỢP VỚI HỆ THỐNG
QUẢN LÝ CẤU HÌNH
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hướng dẫn: ThS. Đào Kiến Quốc
HÀ NỘI – 2009
TÓM TẮT NỘI DUNG
Trong khóa luận tốt nghiệp này, chúng tôi tìm hiểu và nghiên cứu về hệ thống quản
lý cấu hình phần mềm, mà nhiệm vụ quan trọng nhất là quản lý phiên bản. Hầu hết
công cụ quản lý phiên bản hiện thời chỉ chú trọng hỗ trợ cho những nhà phát triển
trong khi phát triển phần mềm nhằm kiểm soát mọi sự thay đổi của phần mềm do nhà
phát triển tạo ra, mà chưa hỗ trợ việc nâng cấp phần mềm tự động về phía khách hàng,
rộng hơn là bảo trì ...
65 trang |
Chia sẻ: haohao | Lượt xem: 1037 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Khóa luận Nghiên cứu một giải pháp bảo trì phần mềm tự động kết hợp với hệ thống quản lý cấu hình, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Bùi Chí Tài
NGHIÊN CỨU MỘT GIẢI PHÁP BẢO TRÌ PHẦN
MỀM TỰ ĐỘNG KẾT HỢP VỚI HỆ THỐNG
QUẢN LÝ CẤU HÌNH
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
HÀ NỘI - 2009
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Bùi Chí Tài
NGHIÊN CỨU MỘT GIẢI PHÁP BẢO TRÌ PHẦN
MỀM TỰ ĐỘNG KẾT HỢP VỚI HỆ THỐNG
QUẢN LÝ CẤU HÌNH
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hướng dẫn: ThS. Đào Kiến Quốc
HÀ NỘI – 2009
TÓM TẮT NỘI DUNG
Trong khóa luận tốt nghiệp này, chúng tôi tìm hiểu và nghiên cứu về hệ thống quản
lý cấu hình phần mềm, mà nhiệm vụ quan trọng nhất là quản lý phiên bản. Hầu hết
công cụ quản lý phiên bản hiện thời chỉ chú trọng hỗ trợ cho những nhà phát triển
trong khi phát triển phần mềm nhằm kiểm soát mọi sự thay đổi của phần mềm do nhà
phát triển tạo ra, mà chưa hỗ trợ việc nâng cấp phần mềm tự động về phía khách hàng,
rộng hơn là bảo trì phần mềm tự động. Vì vậy trong khóa luận này, chúng tôi sẽ đề
xuất một giải pháp kết hợp việc nâng cấp tự động với hệ thống quản lý phiên bản.
Dựa trên ý tưởng đó, chúng tôi đã tiến hành phân tích, thiết kế và cài đặt thử
nghiệm chương trình mô phỏng kết hợp nâng cấp phần mềm với hệ thống quản lý
phiên bản.
i
MỤC LỤC
CHƯƠNG 1 MỞ ĐẦU........................................................................................ - 1 -
1.1. Khái niệm bảo trì phần mềm ..........................................................................- 1 -
1.2. Khái niệm quản lý cấu hình phần mềm ..........................................................- 1 -
1.3. Vai trò của quản lý cấu hình phần mềm.........................................................- 1 -
1.4. Hoạt động quản lý cấu hình ............................................................................- 3 -
1.4.1. Các khái niệm cơ bản trong quản lý cấu hình ............................................ - 3 -
1.4.2. Các hoạt động chính trong quản lý cấu hình ...............................................- 3 -
CHƯƠNG 2 THỰC TRẠNG VÀ GIẢI PHÁP................................................ - 12 -
2.1. Thực trạng .....................................................................................................- 12 -
2.2. Đề xuất giải pháp ...........................................................................................- 13 -
CHƯƠNG 3 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 ............................. - 14 -
3.1. Mục tiêu hệ thống ...............................................................................................- 14 -
3.2. Các chức năng hệ thống .....................................................................................- 14 -
3.3. Mô hình khái niệm .............................................................................................- 14 -
3.3.1. Các khái niệm................................................................................................- 15 -
3.4. Xác định các tác nhân, ca sử dụng và mô tả ca sử dụng ...................................- 15 -
3.4.1. Xác định các tác nhân ....................................................................................- 15 -
3.4.2. Xác định các ca sử dụng (Use Case) ..............................................................- 16 -
3.5. Biểu đồ sử dụng theo gói và mô tả ca sử dụng của hệ thống.............................- 17 -
3.5.1. Gói quản lý phiên bản ....................................................................................- 17 -
3.5.2. Gói quản lý mã nguồn....................................................................................- 21 -
3.5.3. Gói quản lý nâng cấp phiên bản .....................................................................- 23 -
3.6. Biểu đồ tuần tự hệ thống ....................................................................................- 25 -
3.6.1. Gói quản lý phiên bản ....................................................................................- 25 -
3.6.2. Gói quản lý mã nguồn....................................................................................- 28 -
3.6.3. Gói quản lý nâng cấp phiên bản .....................................................................- 30 -
3.7. Hợp đồng cho các thao tác hệ thống ..................................................................- 31 -
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 ......................................................... - 37 -
4.1. Biểu đồ tuần tự đối tượng ..................................................................................- 37 -
4.1.1. Gói quản lý phiên bản ....................................................................................- 37 -
4.1.2. Gói quản lý mã nguồn....................................................................................- 42 -
4.1.3. Gói quản lý nâng cấp phiên bản .....................................................................- 45 -
4.2. Biểu đồ lớp ..........................................................................................................- 47 -
CHƯƠNG 5 CÀI ĐẶT THỬ NGHIỆM .......................................................... - 48 -
ii
5.1. Môi trường triển khai.........................................................................................- 48 -
5.2. Phương pháp triển khai .....................................................................................- 48 -
5.3. Kết quả triển khai ..............................................................................................- 49 -
CHƯƠNG 6 KẾT LUẬN.................................................................................. - 58 -
TÀI LIỆU THAM KHẢO ................................................................................. - 59 -
Mở đầu
- 1 -
CHƯƠNG 1
MỞ ĐẦU
Chương này nhằm giới thiệu những khái niệm và hoạt động chung của việc “bảo trì
phần mềm” và “hệ thống quản lý cấu hình”.
1.1. Khái niệm bảo trì phần mềm
Bảo trì phần mềm (Software Maintenance) là việc chỉnh sửa một sản phẩm phần
mềm sau khi đã chuyển giao để sửa lỗi, để cải tiến hiệu năng (performance) hoặc các
thuộc tính khác, hoặc làm thích ứng sản phẩm trên một môi trường bị thay đổi.[7]
Trong bảo trì phần mềm chúng ta xem xét hoạt động nâng cấp phần mềm
Nâng cấp phần mềm: Là việc sử dụng hay triển khai (deploying) một phiên
bản phần mềm mới để thay thế cho một phiên bản phần mềm khác (cũ hơn).
Ví dụ: Nâng cấp phiên bản trình duyệt Firefox 3.0.4 lên Firefox 3.0.7
1.2. Khái niệm quản lý cấu hình phần mềm
Quản lý cấu hình phần mềm (Software Configuration Management – SCM) là sự
phát triển và áp dụng các chuẩn và các thủ tục để quản lý sự phát triển của hệ thống
sản phẩm. Quản lý cấu hình là hoạt động bao trùm trong suốt tiến trình phần mềm. Bởi
vì những thay đổi có thể xảy ra vào bất cứ lúc nào, hoạt động quản lý cấu hình được
phát triển để xác định thay đổi, kiểm soát thay đổi, đảm bảo rằng những thay đổi đó
được thi hành một cách đúng đắn, và báo cáo những thay đổi đó cho những người liên
quan.[2]
Theo chuẩn CMM và ISO 15504: Mục đích của Quản Lý Cấu Hình là để thiết lập
và bảo đảm tính toàn vẹn của các sản phẩm trung gian cũng như sản phẩm sau cùng
của một dự án phần mềm, xuyên suốt chu kỳ sống của dự án phần mềm đó.
1.3. Vai trò của quản lý cấu hình phần mềm
Tại sao lại phải quản lý cấu hình ?[3]
Thực tiễn phát triển phần mềm chúng ta thường gặp những sự cố như:
Một lỗi nào đó của phần mềm đang xây dựng đã tốn công sửa chữa, bỗng
nhiên xuất hiện trở lại.
Mở đầu
- 2 -
Một chức năng nào đó của phần mềm đã được phát triển và kiểm tra cẩn
thận bỗng thất lạc hoặc biến mất một cách khó hiểu.
Một chương trình đã được kiểm tra cẩn thận bỗng nhiễn không chạy được
nữa.
Một chương trình gồm nhiều đơn thể (module), mỗi đơn thể gồm nhiều chức
năng, các chức năng được chia ra cho nhiều lập trình viên, mỗi chức năng
bao gồm nhiều tập tin mã nguồn, với nhiều phiên bản khác nhau. Khi tích
hợp hệ thống và biên dịch, trong hàng chục tập tin mã nguồn với hàng trăm
phiên bản, tập tin nào, phiên bản nào là đúng và cần lấy để tiến hành tích
hợp.
Quản lý cấu hình tốt sẽ giải quyết được nhiều vấn đề có thể xảy ra:
Cập nhật đồng thời: Khi 2 hoặc 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ể phá vỡ kết quả làm việc của người khác. Ví dụ: Sản phẩm
anh A làm ra sử dụng kết quả công việc của anh B, sản phẩm của anh B thay
đổi dẫn đến sản phẩm của anh A không chạy được.
Chia sẻ mã nguồn: 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 phải được biết. Không quản lý mã nguồn
tốt thì không có cách nào đảm bảo tất cả những người liên quan đều được
thông báo những thay đổi đó.
Vấn đề phiên bản phần mềm (release): Hầu hết các chương trình hoặc hệ
thống lớn được phát triển với nhiều phiên bản từ thấp đến cao. Trong trường
hợp một phiên bản khách đang dùng, phiên bản khác đang được kiểm tra
(test), và một phiên bản khác nữa đang trong quá trình phát triển, khi có một
lỗi xảy ra, việc sửa lỗi phải đồng bộ giữa ba phiên bản này, nếu quản lý mã
Mở đầu
- 3 -
nguồn không tốt, vấn đề đồng bộ rất khó thực hiên được. Nếu lỗi do khách
hàng phát hiện ra, lỗi đó phải được sửa trong tất cả các phiên bản về sau.
Quản lý cấu hình được thực hiện xuyên suốt chu kỳ sống của dự án, từ lúc bắt
đầu đến lúc kết thúc, thậm chí vẫn còn trong giai đoạn bảo trì sản phẩm sau dự án.
1.4. Hoạt động quản lý cấu hình
1.4.1. Các khái niệm cơ bản trong quản lý cấu hình
Hạng mục cấu hình (Configuration Item - CI): Là tên gọi của các sản phẩm, sản
phẩm trung gian, một file hoặc một nhóm file, tài liệu hoặc một nhóm tài liệu
trong dự án mà ta cần phải quản lý và kiểm soát.
Ví dụ: một file mã nguồn, tài liệu về yêu cầu sản phẩm, bản thiết kế,…
Ranh giới (Baseline): Là một mốc trong quá trình phát triển phần mềm mà sau
điểm mốc này thì mọi thay đổi phải được thông báo tới tất cả những người có
liên quan.
Ví dụ: Các thành phần của đặc tả thiết kế phải được viết thành tài liệu và
được xem xét lại, các lỗi phải được tìm ra và sửa cho đúng. Một khi mà tất cả
các phần của việc đặc tả đã được xem xét, sửa cho đúng và sau đó được phê
chuẩn thì bản đặc tả thiết kế trở thành một baseline.
1.4.2. Các hoạt động chính trong quản lý cấu hình
Mở đầu
- 4 -
a. Lập kế hoạch quản lý cấu hình
Thông thường việc lập kế hoạch quản lý cấu hình được thể hiện trong một tài liệu
có tên là kế hoạch quản lý cấu hình (Configuration Management Plan – CMP). Bản
kế hoạch này bao gồm các khoản sau:
Ý nghĩa, mục đích và phạm vi áp dụng của bản kế hoạch.
Vai trò và trách nhiệm của các nhóm, cá nhân trong dự án thực hiện các
hoạt động khác nhau liên quan đến quản lý cấu hình. Định nghĩa rõ ràng
ai thực hiện, ai tham gia xem xét (review), ai phê duyệt (approve) trên
các hạng mục cấu hình (CI) của dự án, cũng như vai trò của khách hàng,
người sử dụng đầu cuối. Ví dụ minh họa:
Role
Project
Manager
CM
Responsible
CM
Librarian
Tool
Responsible
Subsystem
CCB
Full
System
CCB
Task 1 R S I
Task 2 I R I C
Task 3 I R A C
R: Responsible;A:Approval;S:Support;I:Inform;C:Consult
Mở đầu
- 5 -
Công cụ, môi trường và cơ sở hạ tầng. Phần này mô tả các công cụ phần
mềm hoặc quy trình thủ tục được sử dụng để hỗ trợ trong việc quản lý
cấu hình, chẳng hạn công cụ quản lý phiên bản sản phẩm (version
control). Mô tả vị trí các máy chủ, máy trạm, cấu hình hệ thống client-
server,…
Phương pháp nhận diện (identification) và thiết lập các baseline trên các
CI
Quy ước đặt tên trong dự án, kể cả tên file.
Quy trình kiểm soát thay đổi (change control process).
Chỉ định thành viên nhóm kiểm soát cấu hình (Configuration Control
Board –CCB).
Thông tin nơi lưu trữ các CI.
Kiểm kê và báo cáo cấu hình (configuration accounting and reporting)
Quy trình thủ tục lưu trữ và chép dự phòng (backup and archive)
b. Định danh/đánh số các hạng mục cấu hình (Identification of Configuration
Items)
Định danh là một trong những hoạt động nền tảng của quản lý cấu hình.
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ệ giữ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 cho một CI, giúp nhận biết và phân biệt CI này với CI khác hay thành phần khác.
Trong sản xuất phần mềm, một CI có thể bao gồm một hay nhiều file, ví dụ: một
module ExpMod có thể coi là một CI, nó chứa 2 file khác nhau ExpMod.h và
ExpMod.c
Mỗi CI phải có một số định danh duy nhất, dạng thường thấy là:
__
Ví dụ: PRJ0001_REQB_1.0.4_draft_B
cho biết:
Số ID của dự án: PRJ0001
Số ID của Item: REQB
Mở đầu
- 6 -
Số phiên bản: 1.0.4_draft_B
Trong một dự án, thường số lượng file mã nguồn rất nhiều, do vậy quy tắc
cơ bản cho các file mã nguồn (source code) là: các file cùng tạo nên một khối chức
năng thì nên gom chung thành một CI.
c. Kiểm soát phiên bản (Version Control)
Kiểm soát phiên bản là sự kiểm soát các phiên bản khác nhau của một CI (bao
gồm việc định danh và lưu trữ của CI đó).
Một phiên bản nói dễ hiểu là một thực thể mới của một CI sau khi đã qua một
hoặc nhiều lần xem xét và thay đổi.
Phiên bản của một CI khác với phiên bản của các file thành phần bên trong đó.
Ví dụ phiên bản của CI module “ExpMod” khác với phiên bản của file thành phần
“ExpMod.h” và “ExpMod.c”
Hình 04. Ví dụ phiên bản
Các phiên bản quan trọng của CI có thể được đánh nhãn (label) để đánh dấu và
biểu thị:
Một “mốc” quan trọng trong tiến trình phát triển CI đó, ví dụ: một phiên
bản được nâng cấp sau một thay đổi lớn.
Phiên bản mà CI được phê duyệt
Phiên bản được baseline
d. Quản lý baseline
Các loại baseline thường gặp bao gồm: Chức năng
Kế hoạch
Yêu cầu khách hàng (Requirements)
Mở đầu
- 7 -
Sản phẩm (Product)
Bản phân phối (Release)
Kiểm thử (Test)
Môi trường hoạt động (Environment)
Quản lý baseline bao gồm:
Chọn các CI cho mỗi loại baseline
Tiến hành “ghim chết” baseline tại thời điểm sau khi các thay đổi đã
được chấp thuận và phê duyệt
Thông thường baseline được tiến hành tại điểm kết thúc của mỗi pha (phase) hay
các “mốc” quan trọng trong dự án.
Hình 05. Mô tả baseline
Đồng thời, trong quản lý baseline, vai trò và nhiệm vụ của những người thiết lập
và phê chuẩn baseline cũng phải được xác định.
e. Kiểm soát thay đổi (Change Control)
Yêu cầu thay đổi là điều không thể tránh khỏi trong quá trình phát triển hay bảo
trì phần mềm.
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 phần mềm. Đôi lúc chỉ vài thay đổi trong yêu cầu của khách
hàng dẫn đến tất cả các giai đoạn phát triển phần mềm (thiết kế, code, kiểm thử) đều
phải thay đổi theo.
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.
Hình sau mô tả một quy trình kiểm soát thay đổi cơ bản:
Mở đầu
- 8 -
Hình 06. Quy trình kiểm soát thay đổi
Các bước cơ bản trong kiểm soát thay đổi gồm:
Nghiên cứu, phân tích
Phê chuẩn hoặc không phê chuẩn
Thực hiện việc thay đổi
Kiểm tra việc thay đổi
Xác lập baseline mới
Khái niệm CCB (Change Control Board) là nhóm kiểm soát thay đổi, nhóm này
được thành lập trong từng dự án.
CCB thông thường bao gồm những người sau trong dự án:
Người quản lý cấu hình
Trưởng dự án
Trưởng nhóm kĩ thuật (Technical lead)
Trưởng nhóm kiểm thử (Test lead)
Kỹ sư chất lượng (Quality Engineer)
Và những ai bị ảnh hưởng bởi các thay đổi
Nhiệm vụ của CCB thường là:
Bảo đảm tất cả các thay đổi được các bộ phận liên quan nhận biết và
tham gia
Mở đầu
- 9 -
Xem xét, phê chuẩn hoặc phủ quyết các thay đổi trên các baseline
Kiểm tra, xác nhận các thay đổi
Phê chuẩn các bản phân phối sản phẩm đến khách hàng
f. 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ư
các yêu cầu thay đổi, tập hợp các số liệu thống kê về các CI góp phần tạo nên sản
phẩm. Nó trả lời các câu hỏi như: có bao nhiêu files bị ảnh hưởng khi sửa chữa một lỗi
phần mềm (bug) nào đó ?
Kết quả của công việc này được ghi lại trong báo cáo Configuration Status
Accounting Report (CSAR). Báo cáo chỉ rõ các điểm:
Liệt kê tất cả các baseline và các CI thành phần có liên quan
Làm nổi bật các CI đang được phát triển hoặc vừa bị thay đổi
Liệt kê các thay đổi đang còn dang dở hay đang hoàn thành, và các
baseline bị ảnh hưởng bởi các thay đổi đó
Báo cáo này được làm thường xuyên và định kỳ, xuyên suốt dự án.
g. Kiểm định (Auditing)
Có 3 loại kiểm định thường được thực hiện:
CSAR Audit
Kiểm định này thường được làm sau mỗi lần một CSAR được tạo ra, bao
gồm:
Bảo đảm rằng các baseline mới nhất được liệt kê trong CSAR
Bảo đảm rằng tất cả các CI tạo nên một baseline được liệt kê
Kiểm tra các CI đã bị thay đổi từ lần baseline trước đó, so sánh chúng
với các yêu cầu thay đổi để khẳng định sự thay đổi trên các CI là hợp lý
Physical configuration audit (PCA)
Kiểm định này nhằm mục đích khẳng định xem những gì khách hàng yêu
cầu có được hiện thực trong thực tế hay không, cụ thể bao gồm 2 việc:
Kiểm tra vết để phản ánh tính 2 chiều giữa yêu cầu khách hàng và việc
hiện thực viết code trong dự án: requirements code
Mở đầu
- 10 -
Xác định những gì sẽ được phân phối cho khách hàng (các file chạy, mã
nguồn, tài liệu đi kèm,v..v..) có đáp ứng với yêu cầu khách hàng không
Functional configuration audit (FCA)
Kiểm định này nhằm mục đích khẳng định xem những gì khách hàng yêu
cầu có được kiểm tra chặt chẽ trên sản phẩm tạo ra trước khi giao cho khách
hàng hay không, cụ thể là kiểm tra vết để phản ánh tính 2 chiều giữa yêu cầu
khách hàng và việc kiểm tra sản phẩm: requirements test
h. Quản lý sản phẩm chuyển giao (release management)
Khái niệm “build” và “release”:
Quá trình phát triển sản phẩ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” được hình thành, trong rất nhiều bản “build” đó, một số
bản đáp ứng 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 sẽ được gọi
là “release”, và công việc tạo ra và phân phối các bản release sẽ được gọi là công việc
“release”. Sản phẩm sau cùng cũng là một bản release, đôi khi còn gọi là “final
release”.
Quản lý release bao gồm nhóm các công việc để bảo đảm rằng tất cả các bản
release gửi cho khách hàng là:
Hoàn thành, và
Có thể được tái tạo bởi khách hàng, ví dụ: Khách hàng có thể tạo ra file
chạy (executable) từ các file mã nguồn được gửi tới
Trong quá trình chuyển giao (release), việc quản lý đòi hỏi phải thực hiện các
công việc sau:
Tiến hành “ghim chết” baseline môi trường phát triển sản phẩm và các
file, tài liệu (sẽ chuyển giao)
Thực hiện báo cáo CSAR
Thực hiện các kiểm nghiệm (audit) PCA và FCA
Đóng gói các file và tài liệu sẽ chuyển giao
Xác nhận đã nhận bản release từ khách hàng
i. Lưu trữ và chép dự phòng (Backup and Archive)
Mở đầu
- 11 -
Lưu trữ và chép dự phòng là một hoạt động của quản lý cấu hình, đồng thời là
một trong những hoạt động quan trọng 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, do virus, hoặc do sự cố phần
cứng, phần mềm. Ngoài ra, công việc này còn hỗ trợ cho hoạt động kiểm soát phiên
bản trong trường hợp muốn sử dụng các phiên bản 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.
Khi dự án kết thúc, cần thực hiện các công việc sau:
Lưu trữ toàn bộ dữ liệu dự án, tuân thủ quy trình lưu trữ đã được thiết
lập (định nghĩa bởi dự án hoặc quy định ở cấp công ty)
Lưu trữ hoặc hủy bỏ các tài liệu ở dạng giấy
Dọn sạch dữ liệu hoặc thông tin của dự án vừa kết thúc, sau khi đã chép
lưu trữ
Thực trạng và Giải pháp
- 12 -
CHƯƠNG 2
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ình vẽ sau minh họa mô hình hệ thống kiểm soát phiên bản client-server điển
hình:
Hình 07. Mô hình hệ thống kiểm soát phiên bản[4]
Trong đó:
Repository (Kho dữ liệu – đặt tại server): là nơi chứa toàn bộ dữ liệu liên
quan đến phần mềm (ví dụ: file mã nguồn, tài liệu, file exe, ….)
Client: sẽ chứa bản copy (working copy) của kho dữ liệu, là nơi làm việc
của mỗi nhà phát triển phần mềm.
Do vậy sẽ có nhiều nhà phát triển phần mềm làm việc song song với nhau.
Thực trạng và Giải pháp
- 13 -
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 ?
Vì vậy chúng tôi sẽ trình bày một giải pháp nâng cấp phần mềm tự động kết hợp
với hệ thống kiểm soát phiên bản.
2.2. Đề xuất giải pháp
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.
Chương 3,4 sẽ trình bày phần phân tích và thiết kế hệ thống trên, chương 5 sẽ là
cài đặt 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
- 14 -
CHƯƠNG 3
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
3.1. Mục tiêu hệ thống
Mục tiêu của hệ thống là mô phỏng hoạt động nâng cấp phần mềm kết hợp với
một hệ thống quản lý phiên bản đơn giản.
3.2. Các chức năng hệ thống
R.1. Gói quản lý phiên bản
R.1.1. Tạo phiên bản
R.1.2. Thiết lập quan hệ giữa các phiên bản
R.1.3. Gán mã nguồn cho phiên bản
R.1.4. Sửa thông tin phiên bản
R.1.5. Xem thông tin phiên bản
R.1.6. Xóa phiên bản
R.2. Gói quản lý mã nguồn
R.2.1. Tạo mã nguồn
R.2.2. Sửa thông tin mã nguồn
R.2.3. Xem thông tin mã nguồn
R.2.4. Xóa mã nguồn
R.3. Gói quản lý nâng cấp phiên bản
R.3.1. Lựa chọn phiên bản hiện dùng
R.3.2. Kiểm tra update
3.3. Mô hình khái niệm
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
- 15 -
Hình 08. Mô hình khái niệm hệ thống
3.3.1. Các khái niệm
Khái niệm Mô tả
Phienban Phiên bản của phần mềm
Manguon Mã nguồn của phần mềm (file mã
nguồn, file tài liệu,…)
Phienban_Manguon Phiên bản phần mềm và mã nguồn phụ
thuộc
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 đó)
QuanhePhienban Quan hệ giữa hai phiên bản kế tiếp nhau
3.4. Xác định các tác nhân, ca sử dụng và mô tả ca sử dụng
3.4.1. Xác định các tác nhân
Hệ thống mô phỏng chỉ gồm 1 tác nhân: Người 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
- 16 -
Tác nhân Các ca sử dụng nghiệp
vụ
Kết quả đem lại
Tạo phiên bản Tạo phiên bản, lưu vào cơ sở dữ liệu
Thiết lập quan hệ giữa
các phiên bản
Tạo mối quan hệ giữa các phiên bản,
lưu vào cơ sở dữ liệu
Gán mã nguồn cho phiên
bản
Xác định các file mã nguồn của
phiên bản, lưu vào cơ sở dữ liệu
Sửa thông tin phiên bản Sửa các thông tin của phiên bản và
lưu lại
Xem thông tin phiên bản Hiển thị thông tin về phiên bản được
chọn
Xóa phiên bản Xóa phiên bản trong cơ sở dữ liệu
Tạo mã nguồn Tạo mã nguồn mới, lưu vào cơ sở dữ
liệu
Sửa thông tin mã nguồn Sửa thông tin của mã nguồn và lưu
lại
Xem thông tin mã nguồn Hiển thị thông tin mã nguồn
Xóa mã nguồn Xóa mã nguồn trong cơ sở dữ liệu
Lựa chọn phiên bản hiện
dùng
Chọn một phiên bản làm phiên bản
hiện thời để thực hiện chức năng mô
phỏng nâng cấp
Người sử dụng
Kiểm tra update Kiểm tra xem có phiên bản mới hơn
phiên bản hiện dùng hay không để
nâng cấp
3.4.2. Xác định các ca sử dụng (Use Case)
1. Gói quản lý phiên bản
Uc1. Tạo phiên bản
Uc2. Thiết lập quan hệ giữa các phiên bả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
- 17 -
Uc3. Gán mã nguồn cho phiên bản
Uc4. Sửa thông tin phiên bản
Uc5. Xem thông tin phiên bản
Uc6. Xóa phiên bản
2. Gói quản lý mã nguồn
Uc7. Tạo mã nguồn
Uc8. Sửa thông tin mã nguồn
Uc9. Xem thông tin mã nguồn
Uc10. Xóa mã nguồn
3. Gói quản lý nâng cấp phiên bản
Uc11. Lựa chọn phiên bản hiện dùng
Uc12. Kiểm tra update
3.5. Biểu đồ sử dụng theo gói và mô tả ca sử dụng của hệ thống
3.5.1. Gói quản lý phiên bản
Hình 09. Biểu đồ Use Case gói quản lý phiên bả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
- 18 -
Mô tả Use Case trong gói quản lý phiên bản
Uc1. Tạo phiên bản
- Tên ca sử dụng: Tạo phiên bản
- Tác nhân: Người dùng (User)
- Mục đích: Khởi tạo phiên bản phần mềm mới, lưu vào cơ sở dữ
liệu
- Mô tả khái quát: Người dùng nhấn nút yêu cầu tạo phiên bản mới, rồi
thực hiện các chỉ dẫn tạo phiên bản
- Tham chiếu: R.1.1
- Mô tả diễn biến:
Hành động của tác nhân Hồi đáp của hệ thống
1. Chọn mục tạo phiên bản 2. Hiển thị form tạo phiên bản
3. Người dùng nhập thông tin cần thiết
vào form, rồi nhấn nút “Create”
4. Lưu thông tin phiên bản mới tạo
vào cơ sở dữ liệu
- Ngoại lệ: - Đã tồn tại phiên bản giống vậy trong cơ sở dữ liệu
- Người dùng nhập không đầy đủ hoặc sai thông tin,
yêu cầu nhập lại
Uc2. Thiết lập quan hệ giữa các phiên bản
- Tên ca sử dụng: Thiết lập quan hệ giữa các phiên bản
- Tác nhân: Người dùng (User)
- Mục đích: Xác định mối quan hệ giữa các phiên bản với nhau và
lưu lại trong cơ sở dữ liệu
- Mô tả khái quát: Người dùng chọn phiên bản cần thiết lập quan hệ, rồi
chọn chức năng thiết lập quan hệ phiên bản.
- Tham chiếu: R.1.2
- Mô tả diễn biế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
- 19 -
Hành động của tác nhân Hồi đáp của hệ thống
1. Chọn phiên bản cần thiết lập quan
hệ, rồi chọn nút thiết lập quan hệ
2. Hiển thị form thiết lập quan hệ
phiên bản
3. Lựa chọn phiên bản bị tác động, rồi
nhấn “Ok”
4. Lưu lại quan hệ giữa các phiên bản
vào cơ sở dữ liệu
- Ngoại lệ:
Uc3. Gán mã nguồn cho phiên bản
- Tên ca sử dụng: Gán mã nguồn cho phiên bản
- Tác nhân: Người dùng (User)
- Mục đích: Xác định phiên bản gồm những mã nguồn nào
- Mô tả khái quát: Người dùng chọn phiên bản, sau đó chọn chức năng
“gán mã nguồn cho phiên bản” để thực hiện
- Tham chiếu: R.1.3
- Mô tả diễn biến:
Hành động của tác nhân Hồi đáp của hệ thống
1. Chọn phiên bản cần gán mã nguồn,
rồi chọn nút “add/remove source”
2. Hiển thị form gán mã nguồn cho
phiên bản
3. Chọn những mã nguồn muốn gán,
rồi nhấn “Ok”
4. Lưu lại thông tin về chỉ định mã
nguồn cho phiên bản vào cơ sở dữ liệu
- Ngoại lệ:
Uc4. Sửa thông tin phiên bản
- Tên ca sử dụng: Sửa thông tin phiên bản
- Tác nhân: Người dùng (User)
- Mục đích: Sửa thông tin của một phiên bản nào đó
- Mô tả khái quát: Người dùng chọn phiên bản cần sửa và nhấn nút sửa
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
- 20 -
- Tham chiếu: R.1.4
- Mô tả diễn biến:
Hành động của tác nhân Hồi đáp của hệ thống
1. Chọn phiên bản cần sửa, rồi nhấn
nút sửa
2. Hiển thị form sửa thông tin phiên
bản
3. Người dùng nhập thông tin cần sửa
vào form, rồi nhấn “Save”
4. Lưu lại thông tin phiên bản mới sửa
đổi vào cơ sở dữ liệu
- Ngoại lệ: - Người dùng nhập không đầy đủ hoặc sai thông tin,
yêu cầu nhập lại
Uc5. Xem thông tin phiên bản
- Tên ca sử dụng: Xem thông tin phiên bản
- Tác nhân: Người dùng (User)
- Mục đích: Xem thông tin chi tiết của một phiên bản nào đó
- Mô tả khái quát: Người dùng chọn phiên bản, và nhấn nút xem thông
tin phiên bản
- Tham chiếu: R.1.5
- Mô tả diễn biến:
Hành động của tác nhân Hồi đáp của hệ thống
1. Chọn phiên bản rồi chọn nút View 2. Hiển thị thông tin về phiên bản
3. Chọn Cancel để thoát 4. Thoát form
- Ngoại lệ:
Uc6. Xóa phiên bản
- Tên ca sử dụng: Xóa phiên bản
- Tác nhân: Người dùng (User)
- Mục đích: Xóa phiên bản khỏi cơ sở dữ liệu
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
- 21 -
- Mô tả khái quát: Người dùng chọn phiên bản, và nhấn nút xóa
- Tham chiếu: R.1.6
- Mô tả diễn biến:
Hành động của tác nhân Hồi đáp của hệ thống
1. Chọn phiên bản rồi chọn nút Delete 2. Hiển thị thông điệp xác nhận muốn
xóa
3. Chọn “Ok” để xóa 4. Xóa phiên bản khỏi cơ sở dữ liệu
- Ngoại lệ: Không được phép xóa, nếu có phiên bản khác được
phát triển từ nó
3.5.2. Gói quản lý mã nguồn
Hình 10. Biểu đồ Use Case gói quản lý mã nguồn
Mô tả Use Case trong gói quản lý mã nguồn
Uc7. Tạo mã nguồn
- Tên ca sử dụng: Tạo mã nguồn
- Tác nhân: Người dùng (User)
- Mục đích: Khởi tạo mã nguồn với các thông tin cần thiết
- Mô tả khái quát: Người dùng chọn chức năng tạo mã nguồn rồi nhập
các thông tin cần thiết về 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
- 22 -
- Tham chiếu: R.2.1
- Mô tả diễn biến:
Hành động của tác nhân Hồi đáp của hệ thống
1. Chọn chức năng tạo mã nguồn 2. Hiển thị form tạo mã nguồn
3. Người dùng nhập các thông tin về
mã nguồn đang tạo vào form, rồi nhấn
“Ok”
4. Lưu thông tin mã nguồn vào cơ sở
dữ liệu
- Ngoại lệ: - Người dùng nhập không đầy đủ hoặc sai thông tin,
yêu cầu nhập lại
- Mã nguồn đã tồn tại, yêu cầu nhập lại
Uc8. Sửa thông tin mã nguồn
- Tên ca sử dụng: Sửa thông tin mã nguồn
- Tác nhân: Người dùng (User)
- Mục đích: Sửa thông tin về mã nguồn nào đó
- Mô tả khái quát: Người dùng chọn mã nguồn, rồi nhấn nút sửa
- Tham chiếu: R.2.2
- Mô tả diễn biến:
Hành động của tác nhân Hồi đáp của hệ thống
1. Chọn mã nguồn cần sửa và nhấn nút
sửa (Change)
2. Hiển thị form thông tin về mã nguồn
cho phép sửa đổi
3. Người dùng nhập thông tin cần sửa
vào form, rồi nhấn “Save
4. Lưu thông tin mã nguồn mới sửa
vào cơ sở dữ liệu
- Ngoại lệ: - Người dùng nhập không đầy đủ hoặc sai thông tin,
yêu cầu nhập lại
Uc9. Xem thông tin 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
- 23 -
- Tên ca sử dụng: Xem thông tin mã nguồn
- Tác nhân: Người dùng (User)
- Mục đích: Xem thông tin về mã nguồn nào đó
- Mô tả khái quát: Người dùng chọn mã nguồn và nhấn nút View để xem
thông tin
- Tham chiếu: R.2.3
- Mô tả diễn biến:
Hành động của tác nhân Hồi đáp của hệ thống
1. Chọn mã nguồn rồi nhấn nút View 2. Hiển thị form thông tin về mã nguồn
3. Chọn Cancel để thoát 4. Thoát form
- Ngoại lệ:
Uc10. Xóa mã nguồn
- Tên ca sử dụng: Xóa mã nguồn
- Tác nhân: Người dùng (User)
- Mục đích: Xóa thông tin về mã nguồn ra khỏi cơ sở dữ liệu
- Mô tả khái quát: Người dùng chọn mã nguồn và chọn xóa
- Tham chiếu: R.2.4
- Mô tả diễn biến:
Hành động của tác nhân Hồi đáp của hệ thống
1. Chọn mã nguồn cần xóa, rồi nhấn
nút “Delete”
2. Hiển thị thông điệp xác nhận muốn
xóa
3. Người dùng nhấn “Ok” để xóa 4. Xóa mã nguồn trong cơ sở dữ liệu
- Ngoại lệ: - Mã nguồn không thể bị xóa, thông báo lại cho người
dùng
3.5.3. Gói quản lý nâng cấp phiên bả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
- 24 -
Hình 11. Biểu đồ Use Case gói quản lý nâng cấp phiên bản
Mô tả Use Case trong gói quản lý nâng cấp phiên bản
Uc11. Lựa chọn phiên bản hiện dùng
- Tên ca sử dụng: Lựa chọn phiên bản hiện dùng
- Tác nhân: Người dùng (User)
- Mục đích: Lựa chọn một phiên bản làm phiên bản hiện dùng để
mô phỏng nâng cấp
- Mô tả khái quát: Người dùng nhấn nút chọn chức năng lựa chọn phiên
bản hiện dùng
- Tham chiếu: R.3.1
- Mô tả diễn biến:
Hành động của tác nhân Hồi đáp của hệ thống
1. Chọn chức năng lựa chọn phiên bản
hiện dùng
2. Hiển thị danh sách các phiên bản để
người dùng chọn
3. Chọn phiên bản, rồi nhấn “Ok” 4. Lưu phiên bản lựa chọn
- Ngoại lệ:
Uc12. Kiểm tra update
- Tên ca sử dụng: Kiểm tra update
- Tác nhân: Người dùng (User)
- 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
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
- 25 -
- 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
- Tham chiếu: R.3.2
- Mô tả diễn biến:
Hành động của tác nhân Hồi đáp của hệ thống
1. Nhấn nút “Check update” 2. Hiển thị thông tin các phiên bản mới
nếu có
3. Chọn phiên bản, rồi nhấn “Ok” 4. Hiển thị tiến trình nâng cấp
- Ngoại lệ: - Không có phiên bản mới, thông báo cho người dùng
3.6. Biểu đồ tuần tự hệ thống
3.6.1. Gói quản lý phiên bản
Luồng sự kiện “Tạo phiên bản”
Hình 12. Biểu đồ tuần tự luồng sự kiện “Tạo phiên bả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
- 26 -
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”
Luồng sự kiện “Gán mã nguồn cho phiên bản”
Hình 14. Biểu đồ tuần tự luồng sự kiện “Gán mã nguồn cho phiên bả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
- 27 -
Luồng sự kiện “Sửa thông tin phiên bản”
Hình 15. Biểu đồ tuần tự luồng sự kiện “Sửa thông tin phiên bản”
Luồng sự kiện “Xem thông tin phiên bản”
Hình 16. Biểu đồ tuần tự luồng sự kiện “Xem thông tin phiên bả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
- 28 -
Luồng sự kiện “Xóa phiên bản”
Hình 17. Biểu đồ tuần tự luồng sự kiện “Xóa phiên bản”
3.6.2. Gói quản lý mã nguồn
Luồng sự kiện “Tạo mã nguồn”
Hình 18. Biểu đồ tuần tự luồng sự kiệ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
- 29 -
Luồng sự kiện “Sửa thông tin mã nguồn”
Hình 19. Biểu đồ tuần tự luồng sự kiện “Sửa thông tin mã nguồn”
Luồng sự kiện “Xem thông tin mã nguồn”
Hình 20. Biểu đồ tuần tự luồng sự kiện “Xem thông tin 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
- 30 -
Luồng sự kiện “Xóa mã nguồn”
Hình 21. Biểu đồ tuần tự luồng sự kiện “Xóa mã nguồn”
3.6.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 22. Biểu đồ tuần tự 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
- 31 -
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
- 32 -
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
Đầu ra Thông báo thông tin phiên bản đã được thay đổi
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
- 33 -
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
Trách nhiệm Tạo mã nguồn và lưu thông tin của 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
- 34 -
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
- 35 -
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
Tham chiếu Uc12
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
- 36 -
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
- 37 -
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
Luồng sự kiện “Tạo phiên bản”
Hình 24. Biểu đồ tuần tự đối tượng 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
- 38 -
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”
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
- 39 -
Luồng sự kiện “Gán mã nguồn cho phiên bản”
Hình 26. 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
- 40 -
Luồng sự kiện “Sửa thông tin phiên bản”
Hình 27. Biểu đồ tuần tự đối tượng 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
- 41 -
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”
Luồng sự kiện “Xóa 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
- 42 -
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”
Hình 30. Biểu đồ tuần tự đối tượng 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
- 43 -
Luồng sự kiện “Sửa thông tin mã nguồn”
Hình 31. Biểu đồ tuần tự đối tượng 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
- 44 -
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”
Luồng sự kiện “Xóa mã nguồn”
Hình 33. Biểu đồ tuần tự đối tượng luồng sự kiện “Xóa 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
- 45 -
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
- 46 -
Luồng sự kiện “Kiểm tra update”
Hình 35. Biểu đồ tuần tự đối tượng 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
- 47 -
4.2. Biểu đồ lớp
Hình 36. Biểu đồ lớp
Cài đặt thử nghiệm
- 48 -
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
- 49 -
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
Ver2.1
Cài đặt thử nghiệm
- 50 -
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
- 51 -
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
- 52 -
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
- 53 -
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”
Hình 43. Giao diện “Xem thông tin phiên bản”
Cài đặt thử nghiệm
- 54 -
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
- 55 -
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”
Hình 46. Giao diện “Xem thông tin mã nguồn”
Cài đặt thử nghiệm
- 56 -
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
- 57 -
Hình 48. Giao diện “Kiểm tra update”
- 58 -
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.
- 59 -
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.
[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.
- 65 -
Các file đính kèm theo tài liệu này:
- LUẬN VĂN-NGHIÊN CỨU MỘT GIẢI PHÁP BẢO TRÌ PHẦN MỀM TỰ ĐỘNG KẾT HỢP VỚI HỆ THỐNG QUẢN LÝ CẤU HÌNH.pdf