TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
HỒ NGUYỄN NGỌC PHƯƠNG – 0012076
TRIỆU NGỌC TOÀN
– 0012105
QUẢN LÝ CẤU HÌNH PHẦN MỀM
TẠI PHÒNG PHÁT TRIỂN PHẦN MỀM
QUANG TRUNG – TRUNG TÂM TIN HỌC
LUẬN VĂN CỬ NHÂN TIN HỌC
GIÁO VIÊN HƯỚNG DẪN
TS. TRẦN ĐAN THƯ
Th.S. NGUYỄN TRỌNG TÀI
TP. HCM, 2004
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
Lời cám ơn
Luận văn của chúng em sẽ rất khó hoàn thành nếu không có sự truyền đạt kiến
thức quí báu và sự hướng dẫn tận tình của Thầy Trần Đan Thư và thầy Nguyễn
Trọng Tài. Chúng em xin chân thành cám ơn sự chỉ bảo của các thầy.
Chúng con xin gửi tất cả lòng biết ơn, sự kính trọng đến ông bà, cha mẹ, cùng
toàn thể gia đình, những người đã nuôi dạy, đã cho chúng con niềm tin và nghị lực
để vượt qua mọi khó khăn.
Chúng em xin trân trọng cám ơn quý Thầy cô trong Khoa Công nghệ thông tin
trường Đại học Khoa học Tự nhiên Tp.Hồ Chí Minh đã tận tình giảng dạy, truyền
đạt những kiến thức quý báu và tạo điều kiện cho chúng em được thực hiện luận
văn này.
Xin chân thành cám ơn sự giúp đỡ, động viên và chỉ bảo rất nhiệt tình của các
anh chị đi trước và tất cả bạn bè. Các anh chị, các bạn luôn có mặt trong những thời
điểm khó khăn nhất, tiếp thêm động lực và ý chí, giúp chúng tôi hoàn thành được
luận văn.
Mặc dù đã cố gắng nỗ lực hết sức mình, song chắc chắn luận văn không khỏi
còn nhiều thiếu sót. Chúng em rất mong nhận được sự thông cảm và chỉ bảo tận tình
của quý Thầy cô và các bạn.
Tp.HCM, 7/2004
Nhóm sinh viên thực hiện
Hồ Nguyễn Ngọc Phương – Triệu Ngọc Toàn
Lời nói đầu
Hiện nay, công nghệ thông tin được xem là một trong những ngành công nghệ
mũi nhọn được nhà nước ta ưu tiên phát triển đặc biệt là lĩnh vực công nghệ phần
mềm. Tuy nhiên, lĩnh vực công nghệ phần mềm của nước ta vẫn còn khá non trẻ so
với nền công nghệ phần mềm của thế giới. Nên trong giai đọan hiện nay, các công
ty phần mềm thường gặp rất nhiều khó khăn liên quan đến qui trình phát triển phần
mềm.
Quản lý cấu hình phần mềm vốn là một vấn đề rất được quan tâm trong qui
trình sản xuất phần mềm. Hiện nay, qui trình quản lý cấu hình phần mềm tại phòng
phát triển phần mềm trực thuộc trung tâm tin học trường Đại Học Khoa Học Tự
Nhiên Tp. Hồ Chí Minh vẫn chưa được hoàn chỉnh. Do đó, việc hoàn thiện một hệ
thống quản lý cấu hình ở đây là cần thiết cho quá trình sản xuất phần mềm hiện tại
được thuận tiện hơn và chuẩn bị cho việc thực các đề án phần mềm lớn sau này đạt
hiệu qủa cao.
Từ nhu cầu nói trên, chúng em đã tiến hành thực hiện đề tài “Quản lý cấu hình
phần mềm tại phòng phát triển phần mềm Quang Trung – Trung tâm tin học”.
Nhằm mục đích cùng với phòng phát triển phần mềm thiết lập một hệ thống quản lý
cấu hình tốt có thể áp dụng vào quá trình sản xuất phần mềm của trung tâm.
Nội dung của luận văn được chia làm 7 chương
Chương 1: Mở đầu
Chương 2: Tổng quan về quản lý cấu hình phần mềm
Chương 3: Quản lý cấu hình phần mềm trong CMM & CMMI
Chương 4: Các vấn đề thường gặp trong quản lý cấu hình phần mềm và giải
pháp
Chương 5: Các công cụ hỗ trợ quản lý cấu hình phần mềm
Chương 6: Ứng dụng Software Version Management
Chương 7: Tổng kết
Mục Lục
Chương 1 Mở đầu ..................................................................................................1
1.1 Quản lý cấu hình phần mềm trên thế giới và ở Việt Nam .............................1
1.2 Các công cụ hỗ trợ quản lý cấu hình hiện tại.................................................2
1.3 Mục tiêu đề tài................................................................................................2
Chương 2 Tổng quan về quản lý cấu hình phần mềm ...........................................4
2.1 Khái niệm.......................................................................................................4
2.2 Nguồn gốc hình thành của quản lý cấu hình..................................................5
2.3 Phạm vi và nhiệm vụ của quản lý cấu hình ...................................................6
2.3.1 Mức độ mong muốn và việc phân tích chi phí và lợi nhuận ................6
2.3.2 Ví dụ......................................................................................................8
2.3.3 Cân nhắc lợi hại ..................................................................................12
2.3.4 Những bẫy kết hợp với phạm vi .........................................................16
2.3.5 Cách xứ lý các thứ khác ở bên ngoài ..................................................16
2.4 Các vai trò trong quản lý cấu hình phần mềm .............................................17
2.4.1 Con người và quản lý cấu hình ...........................................................17
2.4.2 Các vai trò trong quản lý cấu hình ......................................................18
2.4.3 Các vai trò trong tổ chức.....................................................................23
2.4.4 Các vai trò liên quan đến đề án...........................................................28
2.4.5 Các vai trò bên ngoài ..........................................................................35
2.5 Dữ liệu cho quản lý cấu hình .......................................................................36
2.5.1 Cái gì được đưa vào quản lý cấu hình ................................................36
2.5.2 Những điều cần biết về một thành phần cấu hình...............................44
2.6 Hệ thống quản lý cấu hình phần mềm .........................................................53
2.6.1 Khái niệm:...........................................................................................53
2.6.2 Mục tiêu ..............................................................................................54
2.6.3 Lợi ích .................................................................................................54
2.6.4 Các tiến trình con trong quản lý cấu hình phần mềm .........................54
Chương 3 Quản lý cấu hình phần mềm trong CMM & CMMI...........................56
3.1 Mô hình trưởng thành ..................................................................................56
3.2 CMM version 1.1 .........................................................................................56
3.2.1 Mức độ trưởng thành của CMM Version 1.1 .....................................56
3.2.2 Quản lý cấu hình phần mềm trong CMM version 1.1 ........................57
3.3 Quản lý cấu hình trong CMMI.....................................................................59
3.3.1 Các mức trưởng thành của CMMI ......................................................59
3.3.2 Quản lý cấu hình trong CMMI ...........................................................60
Chương 4 Vấn đề định danh, quản lý phiên bản và các giải pháp.......................76
4.1 Đặt tên các đối tượng cấu hình ....................................................................76
4.1.1 Đặt tên phân cấp dựa theo cấu trúc cây. .............................................76
4.1.2 Đặt tên phân cấp dựa theo phương pháp tiền tố và hậu tố..................77
4.1.3 Nhận xét chung ...................................................................................79
4.2 Xác định và định danh phiên bản.................................................................79
4.2.1 Sơ đồ tuyến tính ..................................................................................80
4.2.2 Sơ đồ định danh theo mạng. ...............................................................80
4.2.3 Sơ đồ định danh theo tên.....................................................................81
Chương 5 Các công cụ hỗ trợ quản lý cấu hình...................................................82
5.1 Tóm tắt .........................................................................................................82
5.2 Tính năng chung của Surround SCM và CVS .............................................82
5.3 Surround SCM .............................................................................................82
5.3.1 Mục đích .............................................................................................82
5.3.2 Cấu trúc của chương trình...................................................................83
5.4 CVS và CVSNT ...........................................................................................84
5.4.1 Mục đích .............................................................................................84
5.4.2 Cấu trúc của CVSNT ..........................................................................84
Chương 6 Ứng dụng minh họa “System Version Management” ........................86
6.1 Phân tích hiện trạng phát triển phần mềm tại T3H ......................................86
6.2 Đặc tả yêu cầu của hệ thống mới .................................................................95
6.3 Mô hình UseCase .........................................................................................99
6.4 Đặc tả usecase ..............................................................................................99
6.4.1 Đặc tả UseCase : Đăng Nhập (Login) ................................................99
6.4.2 Đặc tả UseCase : Thêm/xoá kho chứa ..............................................101
6.4.3 Đặc tả UseCase : Thêm/xoá đề án ....................................................102
6.4.4 Đặc tả UseCase : Cập nhật cấu trúc đề án ........................................104
6.4.5 Đặc tả UseCase : Cập nhật cây phân hệ, chức năng .........................106
6.4.6 Đặc tả UseCase : Tạo release............................................................108
6.4.7 Đặc tả UseCase : Gán nhãn cho các thực thể ...................................109
6.4.8 Đặc tả UseCase : Phân quyền ...........................................................110
6.4.9 Đặc tả UseCase : Thiết lập ảnh hưởng giữa các versionfile .............112
6.4.10 Đặc tả UseCase : Xem lịch sử phiên bản của thực thể..................113
6.4.11 Đặc tả UseCase : Thực hiện check in............................................114
6.4.12 Đặc tả UseCase : Thực hiện check out..........................................115
6.4.13 Đặc tả UseCase : Get.....................................................................116
6.5 Thiết kế ......................................................................................................118
6.5.1 Kiến trúc hệ thống.............................................................................118
6.5.2 Giao diện ...........................................................................................118
6.5.3 Mô hình lớp đối tượng ......................................................................123
6.5.4 Mô hình dữ liệu.................................................................................144
6.6 Mô hình thiết kế .........................................................................................157
6.6.1 Đăng nhập .........................................................................................157
6.6.2 Thêm kho chứa..................................................................................158
6.6.3 Thêm đề án........................................................................................158
6.6.4 Xem Cấu trúc của project .................................................................159
6.6.5 Xem kiến trúc của đề án....................................................................159
6.6.6 Check out ..........................................................................................160
6.6.7 Check in ............................................................................................161
6.6.8 Gán nhãn cho Item ............................................................................162
6.6.9 Thiết lập quan hệ giữa hai versionfile...............................................163
6.6.10 Xem lịch sử của Item ....................................................................164
Chương 7 Tổng kết ............................................................................................165
7.1 Tự đánh giá ................................................................................................165
7.2 Hướng phát triển ........................................................................................165
Danh sách hình
Hình 2-1 Cây cấu hình phần mềm ..............................................................................5
Hình 2-2 Tổng chi phí của quản lý cấu hình...............................................................8
Hình 2-3 Nhiều ban quản lý cấu hình .......................................................................20
Hình 2-4 Khách hàng, người ký hợp đồng, các hợp đồng phụ .................................35
Hình 2-5 Sơ đồ phân cấp các thực thể cấu hình........................................................36
Hình 2-6 Đặc tả yêu cầu của một delivery................................................................41
Hình 2-7 Mối quan hệ về phần cứng của delivery....................................................42
Hình 2-8 Tổng quan về siêu dữ liệu..........................................................................45
Hình 2-9 Siêu dữ liệu nhận biết sự duy nhất.............................................................46
Hình 2-10 Siêu dữ liệu cho việc phân trách nhiệm...................................................50
Hình 2-11 Siêu dữ liệu chỉ mối quan hệ đến các thực thể cấu hình khác .................51
Hình 2-12 Ví dụ của việc theo vết ............................................................................52
Hình 2-13 Sơ đồ các tiến trình con trong quản lý cấu hình ......................................55
Hình 3-1 các mức trưởng thành của CMMI..............................................................59
Hình 4-1 Cây phân cấp đặt tên..................................................................................77
Hình 4-2 Sơ đồ định danh theo mạng .......................................................................81
Hình 6-1 Qui trình phát triển phần mềm của T3H....................................................87
Hình 6-2 Sơ đồ phân cấp vai trò của nhân viên trong hệ thống................................92
Hình 6-3 Cây phân cấp theo cấu trúc ........................................................................93
Hình 6-4 Cây phân cấp theo phân hệ / kiến trúc.......................................................93
Hình 6-5 Sơ đồ hoạt động của hệ thống hiện tại.......................................................95
Hình 6-6 Kiến trúc về phần cứng hệ thống .............................................................118
Hình 6-7 Màn hình chính ........................................................................................119
Hình 6-8 Màn hình thiết lập mối quan hệ giữa các tập tin......................................120
Hình 6-9 Màn hình thiết lập kiến trúc từ cấu trúc...................................................121
Hình 6-10 Màn hình xem thông tin của project, kho chứa, thư mục ......................121
Hình 6-11 Màn hình xem thông tin của tập tin và phiên bản của nó.....................122
Trang i
Hình 6-12 Màn hình xem lịch sử của tập tin, thư mục, project .............................122
Hình 6-13 Mô hình lớp đối tượng ...........................................................................123
Hình 6-14 Mô hình dữ liệu của hệ thống ................................................................144
Trang ii
Danh sách bảng
Bảng 2-1 Mô tả những hoạt động với mức độ hình thức thấp ....................................9
Bảng 2-2 Mô tả hoạt động với mức độ hình thức cao ..............................................11
Bảng 2-3 Ví dụ về tiết kiệm khi sử dụng hệ thống Quản lý cấu hình......................15
Bảng 2-4 Thành phần tên và chức năng của nó ........................................................47
Bảng 3-1 Mức độ trưởng thành của CMM ...............................................................57
Bảng 3-2 Các mức trưởng thành và các vùng tiến trình của CMMI........................60
Bảng 3-3 Danh sách các thực tiễn cho cho SG 1 ......................................................64
Bảng 3-4 Danh sách các thực tiễn cho cho SG 2 ......................................................64
Bảng 3-5 Danh sách các thực tiễn cho cho SG 3 ......................................................64
Bảng 4-1 Diễn giải từ viết tắt cho qui tắc đặt tên .....................................................78
Trang iii
Một số khái niệm / thuật ngữ
Thuật ngữ dùng trong CMMI
STT Thuật ngữ Diễn giải
Vùng tiến trình (Process Areas PA): Mỗi PA là một Process Areas nhóm các hoạt động thực tiễn có liên hệ với nhau, 1. (PA) – Vùng nhằm để đạt được một số mục tiêu quan trọng của việc tiến trình cải tiến quy trình phần mềm
Mục tiêu chuyên biệt (Specific Goals - SG): Các
mục tiêu chuyên biệt áp dụng cho một vùng tiến trình
và nhắm vào các đặc trưng riêng biệt mô tả nhữg việc Specific Goals 2. gì cầm triển khai để thoả mãn vùng tiến trình đó. (SG) – Mục tiêu
Những mục tiêu này cũng được dùng trong việc đánh chuyên biệt
giá để xác định xem một tổ chức có triển khai hoàn tất
một vùng tiến trình nào đó hay không
Specific Quy tắc thực tiễn chuyên biệt (Specific Practices –
SP): Một quy tắc thực tiễn chuyên biệt là một hoạt Practices (SP) – 3. động đóng vai trò quan trọng để góp phần đạt được Quy tắc thực
mục tiêu chuyên biệt tương ứng tiễn chuyên biệt
Mục tiêu tổng quát (Generic Goals - GG): Các mục Generic Goals tiêu tổng quát được gọi là “tổng quát” bởi vì cùng một 4. (GG) – Mục khẳng định được xuất hiện trong nhiều vùng tiến trình tiêu tổng quát khác nhau.
Quy tắc thực tiễn tổng quát (Generic Practices -
GP): Các quy tắc thực tiễn tổng quát cung cấp một cơ Generic 5. chế đảm bảo các tiến trình tương ứng với các vùng tiến Practices - GP
trình sẽ hiệu qủa, có thể lặp lại và bền vững
Trang iv
Thuật ngữ về Quản lý cấu hình
STT Thuật ngữ Diễn giải
Kiểm tra (Audit): kiểm tra một thực thể cấu hình
được phát hành sử dụng có đáp ứng đầy đủ các đặc Audit – Kiểm 1. tả yêu cầu. (Áp dụng trong hoạt động quản lý chất tra
lượng)
Cấu hình cơ sở (Baseline): Là một tập hợp các yêu Baseline – Cấu
cầu, thiết kế, mã nguồn, các tập tin định nghĩa tham hình cơ sở 2. số biên dịch hay nối kết, tài liệu người dùng,.. được
nhóm lại và gán cho một tên duy nhất
Check-out :Lấy ra một thực thể cấu hình từ nơi lưu Check-out
3. trữ vào trong một thư viện được kiểm soát để tạo sản
phẩm.
Check-in: Cập nhật lại một thực thể cấu hình từ vào Check in 4. nơi lưu trữ sau khi check out.
Configuration Ban quản lý cấu hình (Configuration Control
Control Board Board), Ban kiểm soát thay đổi cấu hình
(Configuration Change Board) : Một nhóm người (CCB) – Ban
chịu trách nhiệm sở hữu, chấp nhận hoặc từ chối, quản lý cấu
đưa ra đề nghị thay đổi đối với thực thể cấu hình và hình.
5. chịu trách nhiệm về việc thực hiện, phê duyệt các Configuration
thay đổi Change Board
– Ban kiểm
soát thay đổi
cấu hình
Thực thể cấu hình (Configuration item): Một sản Configuration 6. phẩm công việc trung gian, các thành tố (component) item – Thực
Trang v
hoặc sản phẩm được đặt dưới quản lý cấu hình thể cấu hình
Configuration Hệ thống quản lý cấu hình (Configuration
management system): Tất cả các định nghĩa quy management
7. trình, các biểu mẫu, các công cụ thu thập để hỗ trợ system – Hệ
quản lý cấu hình trong một môi trường cụ thể thống quản lý
cấu hình
Sự kiện (Event): Các sự kiện quan trọng xảy ra mà Event – Sự 8. ta cần chú ý, theo dõi. kiện
Thư viện (Library): Kho chứa chứa các thực thể Library – Thư 9. viện
Siêu dữ liệu (Metadata): Thông tin về các thực thể
cấu hình. Ví dụ: một tài liệu đặt dưới quản lý cấu Metadata – 10. hình là một thực thể cấu hình, trong khi tên và số của Siêu dữ liệu
tài liệu là siêu dữ liệu về thực thể tài liệu đó.
Procedure – Quy trình (Procedure): Số lượng các hoạt động
11. theo thứ tự với các thông tin đầu vào và đầu ra cố Quy trình
định
Tiến trình (Process): Mô tả cách sử dụng các thông Process – Tiến
tin đầu vào để tạo ra kết qủa đầu ra như mong muốn. trình
12. Số lượng công việc trong quy trình được mô tả trong
các tài liệu mô tả về tiến trình
Process Mô tả tiến trình (Process description): Mô tả các description – 13. kỹ thuật, phương pháp, các quy ước, các quy trình Mô tả tiến liên hệ với một hoạt động nào đó. trình
Sản phẩm (Product): có thể là sản phẩm sử dụng Product – Sản
nội bộ hay là sản phẩm được phát hành ra bên ngoài 14. phẩm
cho khách hàng
Trang vi
Phiên bản phát hành (Release): Là một thực thể Release - Phiên 15. cấu hình được tạo thành từ các thực thể cấu hình bản phát hành khác. Phiên bản này được phân phối cho khách hàng.
Phiên bản (Version): Là một thể hiện của phần Version -
mềm mà có sự thay đổi so với các thể hiện khác của Phiên bản
phần mềm đó. Sự thay đổi có thể bao gồm: các chức
năng mới, cải tiến hiệu năng (tốc độ, không gian lưu
16. trữ,..), sửa đổi các lỗi của phiên bản cũ. Một số phiên
bản có thể tương đương hoàn toàn về mặt chức năng
nhưng được thiết kế để dùng cho các cấu hình phần
mềm hay phần cứng khác nhau.
Quy trình hỗ trợ (Support process): Quy trình Support
dùng trong tất cả các quy trình khác tại các thời điểm process – Quy
khác nhau trong vòng đời của đế án phần mềm. trình hỗ trợ
Những quy trình hỗ trợ bản thân không có ý nghĩa gì
cả. Nó chỉ có ý nghĩa khi được dùng với một quy 17. trình khác.
Ví dụ: Việc định danh là một quy trình hỗ trợ; việc
định danh chỉ có ý nghĩa nếu có một quy trình khác
tạo ra sản phẩm và đặt tên sản phẩm.
Trang vii
Chương 1 - Mở đầu
Chương 1 Mở đầu
1.1 Quản lý cấu hình phần mềm trên thế giới và ở Việt Nam
Quản lý cấu hình phần mềm - SCM - là một tiến trình trong quá trình phát
triển phần mềm xuất hiện cách đây hơn 20 năm (vào khoảng năm 1980). Tiến trình
này giúp cho các nhà phát triển phần mềm kiểm sóat được những thay đổi và kiến
trúc của hệ thống phần mềm đang phát triển.
Vào giai đọan mới hình thành tiến trình quản lý phần mềm chủ yếu được thực
hiện đơn lẻ bởi những công ty phần mềm. Tuy nhiên, hầu hết các công ty đều nhận
thấy công việc quản lý sự thay đổi của phần mềm là vô cùng phức tạp và tốn kém.
Chính vì vậy, đã xuất hiện các công ty chuyên cung cấp các giải pháp chọn gói về
quản lý cấu hình phần mềm và các công cụ để hỗ trợ cho tiến trình này. Ví dụ:
Rational, Seapine, ...
Hiện nay, Tiến trình quản lý cấu hình phần mềm đã được viện nghiên cứu
công nghệ phần mềm SEI tổ chức và sắp xếp lại các họat động của tiến trình này
trở thành một phần của CMM và CMMI . Đồng thời cung cấp nhiều tài liệu hướng
dẫn việc thực hiện và áp dụng tiến trình này vào quá trình phát triển phần mềm
chung. Từ đó, các công ty phần mềm cảm thấy việc quản lý cấu hình phần mềm trở
nên rõ ràng hơn và các công ty hay tổ chức cá nhân chuyên về giải pháp quản lý cấu
hình phần mềm đã phát triển ra các công cụ riêng lẽ hỗ trợ cho từng bước của tiến
trình CM hay toàn bộ.
Trên thế giới, các công ty phần mềm lớn như Microsoft hoặc IBM, Oracle ...
đã tiến hành xây dựng tiến trình quản lý cấu hình phần mềm riêng của mình nhờ
vào kinh nghiệm phát triển của chính họ và sự tư vấn của các chuyên gia từ các viện
nghiên cứu phần mềm như S.E.I hay S.E.L và phát triển các công cụ riêng phục vụ
cho tiến trình này. Với các công ty nhỏ ít vốn và kinh nghiệm thì mua các công cụ
Trang 1
Chương 1 - Mở đầu
sẵn và áp dụng linh họat các qui trình chuẩn được công bố vào quá trình phát triển
phần mềm.
Ở Việt Nam, nền công nghệ phần mềm vẫn chưa thực sự phát triển mạnh,
phần lớn là các công ty nhỏ chuyên thực hiện các đề án về tin học hóa cho các cơ
quan, xí nghịêp hoặc gia công phần mềm cho nước ngoài và quá trình phát triển
phần mềm chỉ dựa trên kinh nghiệm với những phần mềm nhỏ và việc quản lý,
kiểm sóat tiến trình phát triển phần mềm ít được để ý. Chỉ có một vài công ty phát
triển nổi bật và đã đạt được những chuẩn về phát triển: FTP đạt CMM level 5, PSV
đạt CMM level 2... Thời gian gần đây, các công ty nhỏ đang dần dần tự cải tiến
mình để có thể thực hiện được những đề án phần mềm lớn trong và ngoài nước. Tuy
nhiên, làm cách nào để có thể dụng tốt các công cụ và giải pháp hiện có vào hoàn
cảnh thực tế ở Việt Nam là một điều không dễ dàng chút nào.
1.2 Các công cụ hỗ trợ quản lý cấu hình hiện tại
Hiện tại, các công cụ hỗ trợ cho việc quản lý quy trình sản xuất phần mềm
xuất hiện ngày càng nhiều. Một số công cụ đã xuất hiện từ lâu và được hoàn thiện
dần nên có chất lượng rất tốt. Chẳng hạn như các công cụ quản lý phần mềm
thương mại Clear Case của hãng Rational Rose hỗ trợ cho qui trình phát triển phần
mềm RUP, Surround SCM và Test Track Pro Intergration của hãng Seapine ...
thường có chi phí cao và được áp dụng cho các đề án phần mềm lớn hoặc các công
ty lớn giàu kinh nghiệm, đặc biệt là các phần mềm này được xây dựng và áp dụng
theo một quy trình sản xuất phần mềm chuyên biệt (ví dụ như clear Case áp dụng
theo quy trình RUP).
1.3 Mục tiêu đề tài
Mục tiêu của đề được đặt ra liên quan đến qui trình quản lý cấu hình tại phòng
phát triển phần mềm Quang Trung – Trung tâm tin học.
Các công việc chính mà đề tài cần phải giải quyết:
• Tìm hiểu về các phương pháp quản lý cấu hình và các kỹ thuật cụ thể được
dùng trong quản lý cấu hình
Trang 2
Chương 1 - Mở đầu
• Tìm hiểu một số công cụ hỗ trợ cho việc quản lý cấu hình.
• Tìm hiểu hiện trạng và qui trình sản xuất phần mềm của phòng phát triển
phần mềm trung tâm tin học.
• Xác định các yêu cầu cần phải thực hiện và các thông tin cần phải quản lý
để hỗ trợ cho cho qui trình phát triển mà trung tâm đang mong muốn xây
dựng trên qui trình hiện tại.
• Đưa ra các giải pháp về phần mềm để hỗ trợ qui trình đó và thay thế một số
phần mềm đang đang sử dụng bằng những phần mềm bằng những phần
mềm khác tương đương nhưng có những chức năng hỗ trợ khác hoặc xây
dựng một phần mềm mới phối hợp với các phần mềm hiện có hay thêm
mới.
• Triển khai việc áp dụng hệ thống quản lý cấu hình phần mềm vào qui trình
sản xuất phần mềm của trung tâm. Hệ thống quản lý cấu hình phần mềm
này sẽ không gây cản trở cho việc sản xuất phần mềm hiện tai đang được
thực hiện ổn định như hiện nay.
• Tổng quát hóa hệ thống đã được xây dựng thành một hệ thống quản lý cấu
hình phần mềm chung phù hợp những công ty phát triển phần mềm tương
tự.
Trang 3
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
Chương 2 Tổng quan về quản lý cấu hình phần
mềm
2.1 Khái niệm
Quản lý cấu hình phần mềm là tiến trình kiểm sóat, theo dõi các thay đổi của
một hệ thống phần mềm và quản lý các phiên bản khác nhau của phần mềm đó.
Quản lý cấu hình phần mềm liên quan nhiều đến quá trình phải triển và bảo trì
sản phẩm phần mềm trong qui trình phát triển phần mềm.
Cấu hình của một phần mềm có thể xem như là một tập hợp các thành phần
con được tổ chức và phối hợp với nhau đáp ứng một yêu cầu hoặc một số yêu cầu
cụ thể nào đó.
Lý do tồn tại cấu hình phần mềm khác nhau:
• Phần mềm chạy trên nhiều họ máy tính khác nhau.
• Phần mềm chạy trên nhiều hệ điều hành khác nhau.
• Phần mềm chạy trên nhiều phiên bản khác nhau của các được phối hợp.
• Phần mềm đáp ứng cho những ỵêu cầu cụ thể cho từng khách hàng.
Để quản lý được nhiều cấu hình khác nhau của cùng một phần mềm, các nhà
phát triển thường sử dụng cây cấu hình phần mềm
Trang 4
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
Hình 2-1 Cây cấu hình phần mềm
2.2 Nguồn gốc hình thành của quản lý cấu hình
Trong quá trình phát triển phần mềm, nhất là đối với những phần mềm lớn có
nhiều tính năng, giao diện phức tạp và có sự tham gia của nhiều người thì việc quản
lý những thay đổi của số lượng mã nguồn khổng lồ cùng với những tài liệu liên
quan rất khó khăn và phức tạp. Vì vậy, một đồ án phần mềm sẽ gặp nhiều khó khăn
trong việc báo cáo lại những gì mà nhà phát triển đang xây dựng, các thông tin về
những sản phẩm đã làm gặp khó khăn hoặc không thể báo cáo được nếu không có
sự quản lý chặt chẽ về nhân lực và mã nguồn hợp lý.
Một số câu hỏi thường được khách hàng hoặc chính người quản lý trong công
ty đặt ra cho sản phẩm được phát triển cho một khách hàng:
• Có bao nhiêu sản phẩm đã được giao cho khách hàng?
• Với mỗi sản phẩm được giao thì sản phẩm đó đáp ứng được những yêu cầu
nào của khách hàng?
• Sản phẩm đã giao được tích hợp từ những thành tố nào và những thông tin
liên quan đến thành tố được tích hợp đó?
Trang 5
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
Đối với khách hàng, những thông tin trên sẽ giúp họ xác định được sản phẩm
họ đang hoặc sẽ dùng có đáp ứng đúng nhu cầu của họ đã đặt ra hay không, những
yêu cầu nào còn thiếu cần phát triển thêm hoặc chỉnh sửa những yêu cầu bị sai..
Đối với nhà sản xuất, những thông tin trên giúp họ xác định được đâu là sản
phẩm đã giao cho khách hàng và đâu là sản phẩm đang phát triển trong nội bộ công
ty. Và khi có thông tin phản hồi từ phía khách hàng họ sẽ biết được thông tin đó liên
quan đến sản phẩm nào và phiên bản cụ thể của sản phẩm đó. Điều này giúp ích rất
nhiều cho việc sản xuất phần mềm: đảm bảo chất lượng của phần mềm và rút ngắn
thời gian sản xuất phần mềm.
Kết quả là có rất nhiều giải pháp về quản lý cấu hình phần mềm được ra đời để
giúp cho các nhà phát triển phần mềm giải quyết những khó khăn mà họ gặp phải
liên quan đến cấu hình phần mềm.
2.3 Phạm vi và nhiệm vụ của quản lý cấu hình
2.3.1 Mức độ mong muốn và việc phân tích chi phí và lợi nhuận
2.3.1.1 Mức độ mong muốn = Phạm vi + mức độ mô hình hoá
Lợi ích và chi phí gắn với Quản lý cấu hình có liên quan tới cấp mức độ mong
muốn của ta. Mức độ chia làm hai khía cạnh: phạm vi và hình thức hoá.
Phạm vi: là số đối tượng đặt dưới sự quản lý cấu hình.
Mức độ hình thức hoá: là về điều khiển việc quản lý cấu hình thực hiện như
thế nào.
Ta khó mô tả chính xác được phạm vi hay hình thức nào là tốt nhất vì nó tùy
vào những yêu cầu và tình trạng thực tế
Mức độ hình thức hoá
Nhìn chung, mức độ hình thức trong mỗi đề án và mỗi công ty là khác nhau.
• Mức độ hình thức cao dành cho các hệ thống với tính an toàn cao.
• Những hệ thống khác chỉ cần mức độ hình thức thấp hơn miễn sao đạt
những yêu cầu mong muốn cơ bản.
Trang 6
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
• Đối với những đề án thông thường, người ta thường trộn lẫn các mức độ
hình thức: dùng hình thức thấp trong những hoạt động ban đầu (như lập
trình), và mức độ hình thức cao hơn trong việc bảo trì các phiên bản giao.
Mỗi công ty phải định nghĩa các mức độ hình thức và các trường hợp ứng
với các mức độ hình thức.
Mức độ hình thức hoá và công cụ
Một công cụ sẽ ứng với một mức độ hình thức. Đa số công cụ sẽ cung cấp
mức hình thức tối thiểu, các mức độ hình thức cao hơn sẽ thực hiện theo quy trình
bằng tay. Một vài công cụ uyển chuyển có khả năng cho phép lựa chọn nhiều loại
mức độ hình thức tuỳ theo các thực thể cấu hình khác nhau.
Sự mở rộng về phạm vi
Mỗi một đề án có nhiều thực thể cấu hình tiềm năng. Nói chung, mỗi đối
tượng tạo ra hoặc mua được thường đặt vào trong quản lý cấu hình. Tuy nhiên, điều
này không phải hoàn toàn có lợi, nó sẽ làm cho chi phí tăng lên.
Hình 2.2 mô tả chi phí tổng cộng để quản lý cấu hình trong đề án. Các thực
thể góp phần làm tăng chi phí dựa vào:
• Khi thực thể đặt dưới sự quản lý cấu hình (trục x là thời gian)
• Mức độ hình thức mà hệ thống quản lý cấu hình thực hiện đối với một thực
thể (trục y là mức độ hình thức)
• Số lượng thực thể đặt dưới sự quản lý cấu hình (trục z mô tả các thực thể
cấu hình theo thời gian)
Trang 7
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
Hình 2-2 Tổng chi phí của quản lý cấu hình
Do đó, ta phải cân nhắc đưa các loại đối tượng nào vào hệ thống quản lý cấu
hình cho phù hợp.
2.3.2 Ví dụ
Hai bảng ở dưới là các ví dụ về các hoạt động trong hệ thống với mức độ hình
thức cao và thấp. Các mức độ hình thức áp dụng cho tất cả các thực thể cấu hình
như tài liệu, file mã nguồn, hoặc phiên bản giao cho khác hàng.
Giả sử các công cụ được đăng ký các giao tác trong một thư viện được quản
lý, tự tạo ra một file nhật ký (log file). Cách làm này thì thường bị hạn chế và thích
hợp cho mức độ hình thức thấp. Ở hình thức cấp cao, các thao tác log sẽ được người
điền vào. Điều này có vẻ như quản lý cấu hình trên giấy tờ, nhưng thật ra thì những
logs này sẽ được lưu trữ bằng máy
Hoạt động Mô tả
Tạo ra các thực thể Nhà sản xuất:
• Chỉ ra thực thể mới
• Đăng ký những dữ liệu cần nhất trong metadata
• Thêm thực thể mới trong thư viện được quản lý
Trang 8
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
Sử dụng Người sử dụng:
• Trích ra việc sao chép các thực thể cấu hình khi cần.
Người sử dụng thực hiện trực tiếp từ thư viện quản lý
Các sự kiện Những người dùng:
• Gửi email về những sự kiện cho người chịu trách nhiệm về
quản lý cấu hình và các thành viên trong bộ quản lý cấu
hình
Đánh giá sự kiện Người chịu trách nhiệm quản lý cấu hình đảm bảo rằng:
• Mọi sự kiện đăng ký được đánh giá bởi nhà sản xuất gốc
(hoặc những chuyên gia khác)
• Kết qủa đánh giá được gửi email đến bộ quản lý cấu hình
Thay đổi quyết định Ban điều khiển cấu hình:
• Gửi những quyết định thay đổi tới nhà sản xuất bằng email
Thực thể mới Nhà sản xuất:
• Chỉ ra những thành phần nào cần thêm mới
• Lấy một phiên bản cấu hình trước làm nền cho sự tạo ra
sản phẩm mới thích hợp
• Đăng ký những siêu dữ liệu thật cần thiết với yêu cầu định
dạng
• Thêm những thành phần mới vào thư viện điều khiển
Bảng 2-1 Mô tả những hoạt động với mức độ hình thức thấp
Hoạt động Mô tả
Tạo ra thực thể mới Người chịu trách nhiệm quản lý cấu hình
• Chỉ ra thực thể mới
• Điền thông tin cần thiết đối với thực thể mới, bao gồm
những thông tin chi tiết tới mối quan hệ với các thành
Trang 9
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
phần khác có liên quan
Đồng ý Người chịu trách nhiệm đánh giá:
• Điền và ký chấp nhận một thực thể sẵn sàng đặt dưới sự
quản lý cấu hình
Xem xét Nhà sản xuất
• Đưa sự chấp thuận về meatdata, thành phần cho người
quản lý
Đưa vào nơi lưu trữ Người quản lý
• Đặt thực thể trong thư viện quản lý
• Quan tâm việc đăng ký và lưu trữ liên quan đến metadata
Đưa ra yêu cầu Người sử dụng
• Viết ra yêu cầu cho người quản lý bao gồm thông tin ai sẽ
sữ dụng những thành phần và với mục đích gì.
Tạo bảng phát hành Người quản lý
để sử dụng • Tạo ra những bản copy của thực thể cấu hình tới những
người dùng những thành phần này tùy theo yêu cầu
• Quan tâm đến việc đăng ký và lưu lại các dữ liệu có quan
hệ với nhau
Các sự kiện Những người dùng:
• Giao bảng đăng ký cho người có trách nhiệm quản lý cấu
hình
Sự kiện đánh giá Người chịu trách nhiệm quản lý cấu hình
• Sắp xếp những cách đánh giá đối với mỗi sự kiện
Công việc của Ban Ban quản lý cấu hình
Quản lý cấu hình • Họp
• Đánh giá mỗi sự kiện đăng ký
• Ghi nhận lại cách đánh giá với mỗi sự kiện đăng ký
Thay đổi yêu cầu Ban quản lý cấu hình
Trang 10
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
• Tạo ra những thay đổi yêu cầu khi cần thiết theo kết qủa
đánh giá của mình
Thêm thực thể mới Người chịu trách nhiệm quản lý cấu hình
• Chỉ ra thực thể mới
• Phát hành một thực thể cấu hình làm nền tảng để tạo ra
thành phần mới thích hợp
Đồng ý thay đổi Người chịu trách nhiệm về chất lượng
• Điền và ký chấp nhận một thực thể sẳn sàng đặt dưới sự
quản lý cấu hình
Chấp nhận thay đổi Ban quản lý cấu hình:
• Họp
• Đánh giá mỗi chấp thuận
• Ghi lại tài liệu đánh giá của họ về thay đổi yêu cầu và dữ
kiện đăng ký
Xem xét sự thay Nhà sản xuất
đổi • Nộp việc đăng ký metadata, thực thể và chấp nhận thay
đổi yêu cầu cho người quản lý với mỗi thực thể mới
Lưu trữ Nguời quản lý
• Thêm những thực thể trong thư viện quản lý
• Quan tâm đến việc đăng ký và lưu các dữ liệu quan hệ
Liên lạc khi thay Người quản lý
đổi • Thông báo với những ai nhận phiên bản cấu hình trước
rằng đang có sẳn một phiên bản mới.
• Điều này làm cho nhà thầu khoán quyết định có muốn tạo
ra phiên bản mới hơn để sử dụng hay không
… …
Bảng 2-2 Mô tả hoạt động với mức độ hình thức cao
Trang 11
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
2.3.3 Cân nhắc lợi hại
Quản lý cấu hình mang lại những điều có lợi như tiết kiệm thời gian, chất
lượng tốt hơn, tiết kiệm chi phí. Quản lý cấu hình cũng mang cho ta yếu tố “bảo
hiểm”: bằng cách đầu tư nhỏ, nhưng tránh được những tổn thất lớn
Để có được đúng cấp quản lý cấu hình trong một ngữ cảnh cụ thể, ta phải tính
toán lợi hại dựa trên các khoản có thể tiết kiệm và chi phí phát sinh tương ứng, so
sánh giữa chi phí và lợi nhuận có được như mong muốn hay không.
Quy trình sau dành cho công ty hay đề án mới cài đặt và phát triển quản lý cấu
hình
• Tạo ra danh sách các khoản tiết kiệm trong tương lai cho công ty/ đề án,
bao gồm những đánh gía về kinh tế. Tính toán lại với mỗi lần thay đổi
• Ước lượng chi phí khi dùng quản lý cấu hình. Ước tính lại với mỗi sự thay
đổi
• Tập trung ưu tiên vào những cách có lợi cùng với chiến lược trọng tâm của
công ty. Ví vụ chiến lược thông thường tập trung vào sự thỏa mãn khách
hàng, năng suất, chất lượng , v.v…
• Theo dõi để đảm bảo kiểm soát tất cả chi phí và chi phí tiết kiệm như đã
ước tính và dùng kinh nghiệm để ước tính trước khả năng trước khi nỗ lực
cải tiến tiếp
Phí tổn
Phí tổn, phải được ước tính trước, phụ thuộc vào mức độ mong muốn. Chi phí
thường gồm:
• Chi phí về công cụ và hệ thống (phần mềm, phần cứng )
• Giờ làm của nhân viên bỏ ra và chi phí cho những trợ giúp tư vấn bên ngoài
như:
Về bổ sung: định nghĩa các quy trình và hệ thống, huấn luyện,..
Về những công việc thay đổi trong quản lý cấu hình
Tiết kiệm
Tiết kiệm bằng cách ngăn chặn những điều sau:
Trang 12
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
• Sửa cùng một lỗi ở nhiều chỗ
• Thực hiện công việc sai cơ bản (dùng những yêu cầu cũ)
• Lỗi đã sửa lại tiếp tục bị lỗi
• Có những chức năng không mong muốn
• Không biết khách hàng đã nhận phiên bản nào
• Nâng cấp tự do vì không tương thích với công nghệ cũ
• Có những đoạn code thừa
• Truyền đạt sai kiến thức cho những người mới
Việc tiết kiệm cũng tuỳ vào các kinh nghiệm xử lý vấn đề của công ty
Bảng dưới chỉ ra chi tiết các vấn đề ở trên và cách quản lý cấu hình giải quyết
và những gợi ý đánh giá về mặt kinh tế
Vấn đề Lợi ích của Quản lý cấu Giá trị kinh tế
hình
Cùng một lỗi được sửa– và Kịp thời nhận ra tất cả − Tiết kiệm (n-1)x (thời
những người khác nhau sẽ các biến ảnh hưởng và gian phân tích và sửa
sửa các biến khác nhau sửa lỗi tại một thời điểm lỗi của một thành phần
trong sản phẩm trong n biến)
− Tiết kiệm thời gian di
chuyển.
Do đó, có thể xử lý sản
phẩm, cài đặt cho khách
hàng cùng một lúc
Một thiết kế tạo ra dựa trên Đăng ký tất cả các trạng − Tiết kiệm thời gian
những yêu cầu đã cũ thái và lịch sử của tất cả dành cho những cái sai
cá thực thể cấu hình cơ bản.
− Có sự thỏa mãn của
các nhân viên tham gia
Trang 13
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
Những lỗi cũ xuất hiện lại Nhận biết được tất cả các − Tiết kiệm thời gian
khi một phiên bản mới được phiên bản của những tìm kiếm và sửa những
giao cho khách hàng thành phần cấu cũng như lỗi cũ
tất cả những thay đổi từ − Thỏa mãn được khách
phiên bản này sang phiên hàng vì chất lượng tốt
bản khác hơn
Nhà thiết kế và lập trình Một chức năng có thể − Tiết kiệm thời gian
viên giới thiệu những chức được theo dõi và chấp thực hiện (thiết kế,
năng không có trong yêu nhận trên hợp đồng/ hoặc code,.. ) cho những
cầu cũng bao gồm đặc tả yêu chức năng không
cầu, thay đổi yêu cầu mong muốn
Lỗi ở sản phẩm giao cho Biết được khách hàng − Tiết kiệm thời gian
khách hàng khó tìm thấy vì đang sử dụng version nào xác định phiên bản
ta không biết đã giao cho giao cho khách hàng
khách hàng phiên bản nào − Tiết kiệm thời gian và
chi phí
− Tiết kiệm được số tiền
phải giảm giá cho
khách hàng cho lần
bán kế tiếp đối với
cùng khách hàng vì lỗi
− Tiết kiệm được tiền
phải trả do trể hẹn với
khách hàng
− Thỏa mã khách hàng
nhiều hơn vì dịch vụ
tốt
Trang 14
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
Các phần mềm mới làm cho Thông tin về những lần − Tiết kiệm thời gian và
các khách hàng cũ. Vì ta thay đổi trong mỗi phiên công cụ để cập nhật
không biết rõ phiên bản cũ bản và biết được khách những thiết bị cũ
có hoạt động được cùng với hàng đã mua những − Làm giảm sự mất thời
công cụ mới hay không. Do phiên bản cũ nào. gian của khách hàng
đó, để an tòan, ta phải cập − Giảm thời gian cài đặt
nhật lại miễn phí các công
cụ cũ
Cùng một chức năng được Dễ dàng tìm lại những − Đánh giá việc phát
phát triển lại trong một số thực thể nào được dùng triển mới những thành
đề án. Dù ta biết, nhưng ta lại phần
lại không thể dùng lại vì − Tiết kiệm thời gian để
mất thời gian tìm kiếm và làm cho những thực
chỉnh sửa lại mã nguồn đó thể thích ứng với môi
đề cài đặt vào chức năng trường mới
của sản phẩm khác
Một nhân viên mới phải làm Đăng ký các mối liên hệ − Tiết kiệm thời gian
quen với sản phẩm bằng giữa mã nguồn và những dành cho những điều
cách đọc các tài liệu về sản tài liệu tương ứng, những sai cơ bản
phẩm. Tuy nhiên, tài liệu thay đổi, thời gian cập − Sự thỏa mãn của nhân
chưa được cập nhật, không nhật viên
ứng với mã nguồn hiện tại –
Do đó, người nhân viên mới
phải xem tất cả các mã
nguồn !
Bảng 2-3 Ví dụ về tiết kiệm khi sử dụng hệ thống Quản lý cấu hình
Trang 15
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
2.3.4 Những bẫy kết hợp với phạm vi
Khi tính toán lợi hại, cần tinh toán cân nhắc mức độ quản lý cấu hình như thế
nào. Ta không nên chọn quá nhiều đòi hỏi, đòi hỏi sai, quá chung chung, hoặc quá
chi li, quá cứng nhắc, quá riêng, quá trễ, quá sớm
2.3.5 Cách xứ lý các thứ khác ở bên ngoài
Trong một đề án cụ thể, mỗi người sẽ chọn các đối tượng đặt dưới sự quản lý
cấu hình khác nhau, tùy theo cách nhìn của mỗi người. Việc xử lý này không phải
của hệ thống quản lý cấu hình mà của quản lý đề án, người quản lý.
Những đối tượng lưu bên ngoài
Những đối tượng không thường đặt dưới sự quản lý cấu hình thường bao gồm:
• Những thứ không quan trọng tới việc giao sản phẩm hoàn tất (thư từ, những
tài liệu quản trị khác)
• Những thứ không bao giờ thay đổi (những lần họp mặt, trạng thái báo cáo)
• Những cái có thể tạo lại (phiên bản phát hành đã được dịch hoặc những file
thực thi)
Trong trường hợp thứ ba, chúng ta cần xem xét cái nào thuận tiện hơn đặt vào
quản lý cấu hình: công cụ dùng để tạo đối tượng hay những dẫn xuất của đối tượng
(mã nguồn và trình biên dịch hay mã nguồn và module đã được dịch.).
Định danh thống nhất
Có lợi cho ta nếu định nghĩa sự định danh quy nhất cho các đối tượng, thậm
chí các đối tượng không được đặt dưới sự quản lý cấu hình.
Lưu trữ
Thậm chí một số đối tượng không nằm trong quản lý cấu hình cũng phải được
cất ở một nơi nào đó. Ta cần có một thư viện không đặt duới sự kiểm soát của quản
lý cấu hình, nhưng vẫn phải nằm trong sự quản lý.
Trang 16
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
2.4 Các vai trò trong quản lý cấu hình phần mềm
Một đề án phần mềm như một vở kịch, phải có những thành viên tham gia với
ai trò lớn, nhỏ nhưng tất cả đều quan trọng.
Phần này nói về khía cạnh con người trong quản lý cấu hình. Không chỉ tập
trung vào các cá nhân, mà còn các mối quan hệ của họ vào sự phát triển và bảo trì
phần mềm. Phần này mô tả tầm quan trọng của các vai trò đến công việc liên quan.
Các vai trò được sắp xếp có tổ chức và có thể thay đổi tùy công ty. Có thể một
hay nhiều người chỉ đóng một vai trò, cũng như một người đóng nhiều vai trò.
2.4.1 Con người và quản lý cấu hình
Nhiều người gây ảnh hưởng và bị ảnh hưởng bởi quản lý cấu hình trong suốt
quá trình phát triển và bảo trì phần mềm. Quản lý cấu hình có thể là công việc chính
hoặc chỉ là một phần công việc trong công việc chính, ví dụ như công việc của lập
trình viên và công việc quản lý đề án. Trong mỗi trường hợp, ta cần làm việc nhóm.
Mỗi nhóm có mức độ ảnh hưởng nhất định đến kế hoạch thực hiện công việc.
2.4.1.1 Quản lý cấu hình như là một nghề
Nhiều người nghi ngờ tại sao xem quản lý cấu hình như là một nghề. Nhưng
có thể những thách thức ở mặt kỹ thuật cũng thú vị như mặt quản lý. Nó mang lại
cơ hội theo dõi được sản phẩm trong suốt vòng đời và biết được các cấp, các nhân
viên tham gia, khách hàng, từ người quản lý cao cấp đến developer mới nhất.
Quản lý cấu hình có kỹ luật trong các quy trình. Ngành công nghiệp ngày càng
nhận thức tầm quan trọng của những quy trình trưởng thành, có cấu trúc để cải tiến
công việc. Yêu cầu tăng về chất lượng, do đó cần nhiều người có kiến thức vững
chắc và kinh nghiệm trong quản lý cấu hình.
Yêu cầu
Quản lý cấu hình cần một kỹ thuật quản trị và một số đòi hỏi chuyên môn. Các
yêu cầu có thể là:
Quản lý cấu hình
• Một tầm nhìn tổng quát
Trang 17
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
• Chú ý vào chi tiết
• Phương pháp làm việc tỉ mỉ
• Khéo léo
• Khả năng giao tiếp với nhiều loại người
• Có kiến thức tòan diện về quy trình phát triển phần mềm nói chung
2.4.1.2 Quản lý cấu hình là công việc của mỗi người
Quản lý cấu hình là một phần quen thuộc trong cuộc sống hàng ngày của
những ai tham gia vào sự phát triển và bảo trì sản phẩm phần mềm. Những hoạt
động này có thể chiếm ít hoặc nhiều thời gian của chúng ta, nhưng ai cũng có lợi
với kết qủa đạt được và phải góp phần đóng góp vào quá trình thực hiện.
Mỗi người trong đề án phải biết quy trình cấu hình nào tồn tại những hoạt
động mà họ phải chịu trách nhiệm thực hiện.
2.4.2 Các vai trò trong quản lý cấu hình
Các vai trò chỉ ra ở đây là các vai trò chung để có thể áp dụng cho nhiều tổ
chức, công ty. Trong thực tế, một số các vai trò nhất định trong các công ty ứng với
một mức độ trưởng thành nhất định, nhưng cụ thể điều này lại cũng tùy thuộc vào
sự xem xét, cân nhắc của công ty.
Những vai trò này không phải là những công việc tòan thời gian, tuy nhiên, nó
không được dưới 25% công việc của một người, vì những nhiệm vụ cần phải liên hệ
với những nhiệm vụ khác để thực hiện đúng công việc
2.4.2.1 Ban quản lý cấu hình
Ban quản lý cấu hình mang trách nhiệm kiểm soát những thành phần cấu hình.
Ban này chịu trách nhiệm về:
• Đánh giá các sự kiện đăng ký
• Tạo ra những thay đổi yêu cầu thích hợp
• Theo dõi các sự kiện đăng ký và thay đổi yêu cầu trong suốt quy trình phát
triển
Trang 18
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
• Mang lại phản hồi cho người đăng ký những thay đổi cấu hình và những
nhà thầu khoán khác
• Hợp tác với những ban quản lý cấu hình tương đương
• Hợp tác với quản lý đề án hoặc những người quản lý khác tương đương
Vai trò của ban này là đại diện tất cả các hội đồng thầu khoán trong quản lý
những thực thể cấu hình. Phải có một người chủ tịch để ra những quyết định – bao
gồm các quyết định lớn về mặt kinh tế
Ban sẽ chịu trách nhiệm cho những thay đổi - ví dụ người quản lý đề án có thể
biết hoặc chỉ ra thực thể cấu hình nào bị ảnh hưởng khi có một sự kiện được ghi
nhận. Hoặc việc chọn ra một thành phần cấu hình có thể được phân tích sự ảnh
hưởng việc thay đổi trên đề án.
Ban có thể gồm một người như người kiểm soát chất lượng nếu người này có
khả năng đưa ra các quyết định đúng đắn.
Khi quản lý cấu hình có ảnh hưởng lớn hơn, ban này có thể gồm nhiều người
như người quản lý đề án, người khảo sát hiện trạng khác hàng, người chịu trách
nhiệm về chất lượng.
Các kỹ năng và kiến thức yêu cầu
Ban cấu hình sẽ quyết định cuối về việc đăng ký các sự kiện xảy ra. Đo đó,
ban này phải có năng lực và đưa ra các quyết định cần thiết, đặc biệt, có những
quyết định có thể không được sự đồng tình nhiều.
Ban này phải biết được mục đích của sản phẩm và liên hệ với những sản phẩm
có liên quan, đồng thời có tầm nhìn của công ty để cho phép những thay đổi có khả
năng. Ban này phải có kiến thức chung về quản lý cấu hình.
Nhiều ban
Một công ty có thể có nhiều hơn một ban, xử lý nhiều loại thành phần cấu
hình và được liên kết với nhiều thành phần có tổ chức. Điều nay được minh hoạ ở
hình dưới. Hình chỉ ra các thành phần cấu hình có thể ảnh hưởng đến nhiều ban
khác như sản xuất, đề án, tòan công ty hoặc khách hàng. Tùy thuộc vào tầm ảnh
Trang 19
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
hưởng của thành phần, nhiều ban khác nhau có thể chịu trách nhiệm cho sự thay
đổi. Hình dưới chỉ đứng ở khía cạnh tổ chức, không phải thời gian.
Hình 2-3 Nhiều ban quản lý cấu hình
Với mỗi ban, phải định nghĩa rõ ràng phạm vi trách nhiệm, những thành phần
cấu hình liên quan tương ứng. Mọi sự trao đổi phải rõ ràng vì nếu không, một sự
kiện xảy ra sẽ được xử lý khác nhau bởi các ban khác nhau.
2.4.2.2 Người quản lý
Người quản lý chịu trách nhiệm xây dựng thư việc quản lý cấu hình hoặc
những thư viện cho việc lưu giữ đồng đồng bộ của mỗi thư viện, đồng bộ các thư
viện với nhau. Người quản lý thư viện quan tâm đến cấu trúc (các kệ và các hệ
thống mục lục) và việc thiết lập (gán nhãn và vị trí của các cuốn sách), không quan
tâm đến nội dung cuốn sách vì nó thuộc về tác giả và nhà xuất bản.
Vai trò người quản lý thư viện giống như của nguời kế toán. Người này phải
chắc tất cả các khía cạnh của quản lý cấu hình được sắp xếp và làm việc với nhau.
Người giữ nhiệm vụ này phải đặc biệt chú ý về chi tiết và một phương pháp làm
việc tỉ mỉ
Trang 20
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
Hoạt động của người quản lý thư vện phụ thuộc vào mức độ quản lý cấu hình
được thực hiện như thế nào. Với mức độ hình thức cao, công việc thực hiện và giám
sát bao gồm:
• Thiết lập thư viện quản lý cấu hình – quản lý hệ thống thư viện chính để
chức các thành phần cấu hình
• Lưu trữ và quản lý nội dung của thư viện
+ Đặt các thực thể trong nơi lưu trữ dựa trên việc thực thể này được chấp
nhận như thế nào
+ Tạo và bảo trì siêu dữ liệu
+ Lấy ra các thực thể để sử dụng dựa trên yêu cầu lấy ra
+ Lấy ra những thực thể để sản xuất
• Liên hệ với nội dung của thư viện quản lý cấu hình
+ Tạo ra các mẫu báo cáo
+ Rút thông tin và tạo các báo cáo
+ Rút trích thông tin như việc đo các quy trình khác
• Quản lý thư viện cấu hình
+ Quản lý việc tích hợp của siêu dữ liệu
+ Các hoạt động quản trị cơ sở dữ liệu thông thường như nén dữ liệu
• Các hoạt động sao lưu dữ liệu
Khi mức độ hình thức thấp, nhiều các hoạt động thư viện được giao phó cho
các vai trò khác. Người quản lý thư viện phải có kiến thức vững về quản lý cấu hình
nói chung, và cách thực hiện, quyền hạn thực hiện trong công ty. Trong nhiều
trường hợp, người quản lý thư viện sẽ hợp tác với người chịu trách nhiệm quản lý
cấu hình hoặc quản lý quy trình để cải tiến quy trình của quản lý cấu hình
2.4.2.3 Người chịu trách nhiệm quản lý cấu hình
Người chịu quản lý cấu hình thực hiện, bảo trì, cải tiến quản lý cấu hình theo
các nguyên tắc quản lý. Người này chịu trách nhiệm sử dụng các công cụ hỗ trợ
Trang 21
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
trong công ty. Người này có thể có toàn quyền quản lý cấu hình trong công ty
nhưng có trách nhiệm hạn chế trong một tổ chức như sản xuất hay đề án.
Người chịu trách nhiệm quản lý cấu hình phải hợp tác với những người bên
trong và bên ngoài công ty. Người này chịu trách nhiệm trực tiếp tới người quản lý
đề án. Người này có mối quan hệ gần gũi với người chịu trách nhiệm quản lý quy
trình xem xét những quy trình tương ứng bên quản lý
Người chịu trách nhiệm quản lý cấu hình phải có cách nhìn khác nhau về việc
sắp xếp và các chi tiết cũng như các tóm tắt. Người này phải có khả năng giao tiếp
với nhiều loại người – dù trong nhiều tình huống trái ngược
Người này phải am hiểu về quản lý cấu hình, về lý thuyết và kỹ thuật hiện tại.
Hiều được nhu cầu của công ty và khả năng chuyển những mong muốn đo thành
những quy trình thực tế. Có kiến thức về các nguyên tắc: phân tích rủi ro, ước
lượng, tính toán lợi nhuận, độ đo, cũng như cập nhật những kiến thức liên quan đến
kỹ thuật và công cụ có sẳn.
Hoạt động bao gồm:
• Chuyển nhu cầu của công ty và những yêu cầu sang quản lý cấu hình tương
ứng, các quy trình thực tế, tài nguyên, và công cụ
• Chọn và kiểm thử các công cụ cấu hình phần mềm
• Cập nhật thông tin về các phiên bản mới của các công cụ tồn tại sẳn và
những công cụ mới
• Theo dõi việc thực hiện và tính hiệu qủa của quản lý cấu hình
• Tạo ra các báo cáo với phân tích dữ liệu và đưa ra những đề nghị cải tiến
Những vai trò khác, mức độ nhỏ hay lớn, việc tìm kiếm người chịu trách
nhiệm quản lý cấu hình phụ thuộc vào cách phân chia các trách nhiệm và mức độ
hình thức. Trong nhiều công ty, người này có thể có mối quan hệ gần với người
chịu trách nhiệm về công cụ.
Trang 22
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
2.4.2.4 Kế họach quản lý cấu hình
Quản lý cấu hình phải là những hoạt động bao gồm trong lên kế hoạch và lập
ngân sách cho một sản phẩm hoặc một đề án.
2.4.3 Các vai trò trong tổ chức
Các vai trò ở đây mô tả cấu trúc tổ chức thông thường của công ty. Mô tả vai
trò ở đây tập trung vào mối quan hệ với quản lý cấu hình.
2.4.3.1 Quản lý
Quản lý chịu trách nhiệm đảm bảo công ty có một quy định về quản lý cấu
hình mà hỗ trợ hiệu qủa cho các mục đích của công ty. Quản lý sẽ xem xét cách
quản lý cấu hình thực hiện như thế nào để có lợi nhất về chi phí
Định nghĩa và theo dõi các mục đích
Dựa trên kiến thức chung về quản lý cấu hình, thiết lập mục tiêu cho quản lý
cấu hình và theo dõi việc thực hiện những mục tiêu này. Người chịu trách nhiệm
cung cấp
• Hỗ trợ việc thực hiện và cải tiến quản lý cấu hình
− Hỏi về kế hoạch quản lý cấu hình và theo dõi quy trình
− Định hướng và định mức ưu tiên các tài nguyên cần thiết ..
• Hỗ trợ cho các nhân viên làm việc với quản lý cấu hình
− Tạo ra công việc và mộ tả các vai trò trong quản lý cấu hình
− Các hoạt động quản lý cấu hình trong mô tả các công việc khác
− Định nghĩa tiềm năng công việc trong quản lý cấu hình với công ty
Lợi ích
Công ty có thể đạt lợi nhuận nếu thực hiện đúng quản lý cấu hình, người quản
lý cấp cao có thể theo dõi các kế hoạch quan trọng và những bước phát triển mới
nhất của các developer hoặc các trợ lý cấp cao có thể tìm và tin vào những quy trình
mô trong công việc của mình.
Trang 23
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
2.4.3.2 Người chịu trách nhiệm với tài sản
Vai trò này chịu trách nhiệm về các tài sản, hay các thành tố sử dụng lại, được
tạo ra và dùng trong quá trình phát triển. Đảm bảo tài sản đáp ứng các yêu cầu
mong muốn và lưu chúng dưới quản lý cấu hình. Quản lý các tài sản này là cần thiết
vì những thay đổi có thể ảnh hưởng đến sản phẩm hoặc các đề án khác có liên quan.
Quản lý cấu hình phải được xem xét trong lúc lập kế hoạch và lên ngân sách
trong tổ chức liên quan đến phát triển các tài sản hoặc các thành tố sử dụng lại. Vai
trò này cần đảm bảo trong kế hoạch cung cấp các tài nguyên cần thiết cho những
người tham gia và kiến trúc đề án.
Người giữa vai trò này cần có kiến thức vững về
• Các nguyên tắc về quản lý cấu hình nói chung
• Cách công ty thực hiện quản lý cấu hình
Cần chú ý:
• Phải chỉ ra mô tả về Tài sản để dễ tìm kiếm.
• Đánh giá và chấp nhận các tài sản mới trên tiêu chuẩn chất lượng.
• Tất cả những người dùng các tài sản, khi tài sản có một phiên bản phát hành
khác, các người dùng sẽ được thông báo chi tiết để cho người dùng quyết
định sử dụng phiên bản mới hay phiên bản cũ.
Nhiều mô tả về quy trình khác nhau
Quản lý cấu hình được thực hiện khác nhau trong nhiều nơi trong công ty. Sự
khác nhau là do tính lịch sử và văn hoá của công ty hoặc do việc định nghĩa của các
công cụ. Mặc dù sự khác biệt này là không được mong muốn, nhưng nó vẫn xảy ra.
Ví dụ như các quy ước về định danh, các quy trình đưa sản phẩm vào nơi lưu
trữ hoặc phát hành chúng để sử dụng. Do đó, người chịu trách nhiệm về tài sản phải
cẩn thận khi đưa ra các mô tả quy trình tương ứng.
2.4.3.3 Người chịu trách nhiệm trong quá trình vận hành
Người chịu trách nhiệm vận hành đảm bảo rằng sản phẩm tạo ra vận hành như
mong muốn và quản lý cấu hình được thực hiện trong suốt quá trình vận hành.Việc
Trang 24
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
vận hành có thể liên quan đến sản phẩm do chính công ty làm ra hoặc sản phẩm do
công ty mua từ bên ngoài. Việc vận hành có thể do nội bộ công ty dùng hoặc khách
hàng sử dụng dịch vụ.
Người chịu trách nhiệm về vận hành sẽ nhận một sản phẩm để vận hành vào
một thời điểm nào đó trong vòng đời. Cần chỉ rõ các khi nào vai trò này sẽ thực
hiện trách nhiệm và trách nhiệm của vai trò này là gì. Người này vận hành sản phẩm
hay những phiên bản mới của sản phẩm, có thể quay lại các phiên bản cũ khi phiên
bản mới .
Người này phải có quy ước làm việc: cách xử lý các phiên bản cũ của sản
phẩm khi phiên bản mới đưa vào vận hành. Phiên bản mới có thay thế hoàn toàn
phiên bản cũ hay chúng vận hành song song trong một khoảng thời gian cụ thể.
Trách nhiệm quản lý cấu hình
Người chịu trách nhiệm vận hành có thể chia sẻ công việc bằng nhiều cách
như với bộ phận phát triển hay bảo trì, hoặc có thể đảm nhận toàn bộ trách nhiệm về
bảo trì sản phẩm do đó liên quan đến quản lý cấu hình.
Trong một bào trường hợp, toàn bộ môi trường vận hành đặt dưới quản lý cấu
hình chung với sản phẩm vận hành. Khi đó, ta áp dụng các nguyên tắc quản lý cấu
hình bình thường dựa vào các loại thực thể cấu hình.
Trung bình hơn 50% sự kiện xảy ra trong vòng đời sản phẩm là do trong quá
trình vận hành. Đo đó, ta phải chỉ rõ trách nhiệm, các đăng ký các sự kiện và quy
trình thông qua hệ thống quản lý cấu hình.
2.4.3.4 Người chịu trách nhiệm qui trình quản lý
Người chịu trách nhiệm này thường làm việc trong một bộ phận xem xét trên
nhiều đồ án của công ty như Ban đề ra các phương pháp và công cụ hoặc ban quản
lý chất lượng. Người này đảm bảo quy trình dùng trong đề án và các bộ phận khác
đáp ứng yêu cầu của công ty và thoả mãn một cách hiệu qủa. Những phần thuộc
những quy trình này là những quy trình quản lý cấu hình. Người này cũng để các
quy trình của công ty (sản phẩm công việc của họ) dưới quản lý cấu hình
Trang 25
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
Người chịu trách nhiệm về quy trình quản lý phải liên lạc với nhiều người có
một vài ý kiến khác về quy trình yêu cầu. Do đó, người này phải có kiến thức vững
chắc về:
• Phong tục, giá trị, mục tiêu của công ty
• Phát triển phần mềm nói chung và đặc biệt trong mối liên hệ với công ty
• Các nguyên lý của quản lý cấu hình cụng như cách thực hiện quản lý cấu
hình trong công ty.
Các hoạt động của vai trò này bao gồm:
• Biên soạn một mô tả quy trình để quản lý cấu hình
• Biên soạn hướng dẫn tuỳ biến các mô tả quy trình để tuỳ vào nhu cầu của
các đề án
• Xem xét việc tuỳ biến quy trình thực hiện quản lý cấu hình trong công ty.
• Thu thập và phân tích các phép đo theo kế hoạch đo
• Điều chỉnh định nghĩa quy trình dựa vào phân tích các phép đo
• Huấn luyện các nhân viên khác trong quản lý cấu hình.
2.4.3.5 Người chịu trách nhiệm về môi trường và công cụ
Người chịu trách nhiệm về môi trường và công cụ đảm bảo các công cụ yêu
cầu phải có sẳn và làm việc tốt. Người này cũng thực hiện hỗ trợ việc sử dụng công
cụ. Người này cũng có thể có trách nhiệm quản lý công cụ cấu hình của công ty và
các sản phẩm liên quan như bản hướng dẫn sử dụng, các bản script cài đặt, các
script trao đổi dữ liệu.
Người này phải có sự hứng thú quan tâm đến các công nghệ mới, đặc biệt liên
quan đến quản lý cấu hình.
Người này phải có kiến thức vững chắc về quản lý cấu hình nói chung và quản
lý cấu hình của công ty. Các hoạt động của người này trong mối quan hệ với công
cụ quản lý cấu hình có sẳn bao gồm:
• Cài đặt các công cụ
Trang 26
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
• Tạo ra các công cụ hỗ trợ cần thiết hoặc sự liên hệ giữa các công cụ (như
các scripts)
• Bảo trì các công cụ cài đặt, bao gồm viêc liên lạc với các nhà cung cấp.
• Hỗ trợ cho người dùng các công cụ quản lý cấu hình
• Huấn luyện nhân viên sử dụng công cụ
2.4.3.6 Ban hỗ trợ
Ban hỗ trợ hướng dẫn và giúp đỡ khách hàng. Thực hiện liên kết giữa những
người sử dụng và người chịu trách nhiệm bảo trì hệ thống bằng cách đăng ký và khả
năng theo vết các sự kiện thích hợp. Việc hỗ trợ cá nhân phải có kiến thức dùng các
công cụ quản lý cấu hình để đăng ký các sự kiện và rút thông tin từ siêu dữ liệu.
Phải biết những thông tin có sẳn về những thực thể quản lý cấu hình và các sự kiện
đăng ký và cách lấy ra nhanh nhất.
Nhân viên của phòng hỗ trợ dựa vào thông tin của quản lý cấu hình để giải
quyết các công việc hỗ trợ. Những hoạt động thường bao gồm:
• Đăng ký các sự kiện thích hợp với các thông tin yêu cầu đúng
• Theo dõi các sự kiện đăng ký để hỗ trợ yêu cầu xử lý.
• Thu thập thông tin từ hệ thống quản lý cấu hình khi trả lời các truy vấn và
đăng ký các sự kiện. Điều này có thể:
− Thông tin đăng ký trên các sự kiện giống nhau
− Định danh các thực thể cấu hình để sử dụng
− Giải pháp tạm thời cho vấn đề
− Thay đổi lịch sử của thực thể cấu hình ( Một hệ thống hoặc một phần của hệ
thống)
− Thông tin dựa trên nội dung của deliveries
− Việc tiến hành của một sự kiện đăng ký
Trang 27
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
2.4.4 Các vai trò liên quan đến đề án
Các vai trò mô tả ở đây liên quan đến việc tiến hành thực hiện đề án và có
quan hệ với một đề án tại một thời điểm. Tập trung vào mối quan hệ của chúng với
quản lý cấu hình
Không phải vai trò nào cũng cần thiết trong tất cả các đề án. Lượng công việc
tuỳ thuộc vào mức độ hình thức.
2.4.4.1 Người phân tích
Các nhà phân tích thực hiện các hoạt động sớm trong chu kỳ sống của sản
phẩm, như đặc tả các yêu cầu cho phần mềm, tài liệu khác. Nhà phân tích sẽ lưu giữ
các tài liệu này trong suốt chu kỳ sản phẩm, tạo ra phiên bản mới nếu thay đổi yêu
cầu. Nhà phân tích dùng hệ thống quản lý cấu hình để phân tích hoạt động để mở
rộng việc thực hiện quản lý cấu hình.
Nhà phân tích phải có quản lý cấu hình trong đầu khi làm việc. Nó bao gồm
các yêu cầu như các biến số, mà có thể xử lý một cách hợp lý với hệ thống xử lý
thích hợp với hệ thống quản lý cấu hình hiện tại. Việc phân tích quản lý cấu hình
giúp thực hiện quản lý cấu hình bằng:
• Chỉ ra các thực thể thích hợp
• Đặt các thực thể thích hợp tuỳ vào nơi lưu trữ tuỳ vào thực thể đó được
chấp nhận như thế nào.
• Tạo ra việc đăng ký thích hợp cho các thực thể được dùng nhờ vào phân
tích (như hợp đồng hoặc các đặc tả yêu cầu sử dụng)
Phân tích cũng có thể liên quan đến ban quản lý cấu hình trong việc đánh giá
các sự kiện đăng ký trong các hoạt động phát triển sau.
Lợi ích
Lợi ích của việc đặc sản phẩm dưới sự quản lý cấu hình có thể mang lại lợi
nhuận, người phân tích có lợi từ quản lý cấu hình dựa vào:
• Rút trích ra các thực thể cấu hình liên quan dựa trên các đối tượng phân
tích, như các hợp đồng hoặc các đặc tả yêu cầu người dùng
Trang 28
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
• Lấy thông tin về trạng thái và lịch sử của các thực thể này.
• Theo dõi kết qủa đối với các thực thể, đảm bảo việc phân tích bao hết các
yêu cầu.
2.4.4.2 Người thiết kế
Nhà thiết kế tạo ra kiến trúc, các thiết kế chi tiết và lưu lại các tài liệu này
trong suốt vòng đời của sản phẩm, tạo ra các phiên bản mới theo thay đổi yêu cầu.
Tất cả các hoạt động quản lý cấu hình phải được thực hiện cho các hoạt động thiết
kế mà người này chịu trách nhiệm.
Nhà thiết kế luôn phải có trong đầu khi nào công việc được thực hiện xong.
Các nhà thiết kế đóng góp vào việc thực hiện quản lý cấu hình bằng:
• Chỉ ra các thực thể cấu hình liên quan (các tài liệu thiết kế)
• Đặt các thực thể cấu hình thích hợp trong nơi lưu trữ sau khi được chấp
nhận
• Tạo ra các sự kiện đăng ký thích hợp cho các thực thể được dùng liên hệ
với công việc thiết kế như đặc tả yêu cầu người dùng và đặc tả yêu cầu
phần mềm.
Các nhà thiết kế có thể cũng liên quan đến ban quản lý cấu hình trong việc
đánh giá các sự kiện đăng ký về sau trong các hoạt động phát triển.
Lợi ích
Thuận lợi của việc đặc các sản phẩm của họ dưới quản lý cấu hình, các nhà
thiết kế có thể hưởng lợi từ quản lý cấu hình bằng cách:
• Rút ra các thực thể cấu hình liên quan để tạo ra các thực thể, như lấy ra đặc
tả yêu cầu phần mềm.
• Lấy thông tin về trạn thái và lịch sử của những thực thể này
• Lấu kết qủa phân tích trên những thực thể này để đảm bảo thiết kế đáp ứng
các yêu cầu
Trang 29
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
2.4.4.3 Lập trình viên
Lập trình viên thực hiện tất cả các hoạt động lập trình, tạo ra mã nguồn và
những đối tượng liên quan như hệ thống dữ liệu và xây dựng các file script. Chúng
thực hiện bảo trì các đối tượng lập trình trong vòng đời của sản phẩm, tạ ra version
mới khi có thay đổi yêu cầu. Họ chịu trách nhiệm cho việc kiểm thử chính đoạn mã
của mình như thực hiện các module test, và cũng thực hiện các kiểm thử tích hợp.
Tất cả các hoạt động quản lý cấu hình phải được thực hiện để lập trình và các
hoạt động khác mà người chịu trách nhiệm như kiểm thử. Những người lập trình
góp vào việc thực hiện quản lý cấu hình bằng cách:
• Chỉ ra các thực thể cấu hình thích hợp (mã ngưồn và các file đối tượng)
• Đặt các thực thể cấu hình trong bộ nhớ sau khi được chấp nhận
• Tạo ra các sự kiện đăng ký thích hợp cho các thực thể được dùng liên hệ
với lập trình như đặc tả các yêu cầu hoặc thết kế.
Các nhà lập trình cũng có thể liên quan đến ban quản lý cấu hình trong việc
đánh giá các sự kiện đăng ký.
Lợi ích
• Rút ra các thực thể cấu hình để dựa vào có thể tạo ra các đối tượng lập
trình, như đặc tả yêu cầu phần mềm và thiết kế
• Lấy thông tin trên trạng thái và lịch sử của các thực thể này.
• Theo dõi kết qủa phân tích trên các thực thể để đảm bảo mã nguồn và các
đối tượng liên quan đúng với thiết kế và các yêu cầu của phần mềm
2.4.4.4 Người tích hợp
Những người tích hợp tích hợp mã nguồn vào trong các hệ thống ngày lớn để
tạo thành toàn hệ thống.
Việc định danh chính xác nội dung bên trong của sản phẩm thì cần cho việc
kiểm thử và các hoạt động đăng ký. Người tích hợp nên dùng hệ thống quản lý cấu
hình trong các hoạt động tích hợp.
Trang 30
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
Những người tích hợp đóng vai trò trung tâm liên hệ với quản lý cấu hình.
Người này dùng quản lý cấu hình vào:
• Chỉ ra các thực thể cấu hình tương ứng (xâu dựng các script, các deliveries
vào những hệ thống lớn)
• Đặt các thực thể thích hợp vào nơi lưu trữ sau khi được chấp nhận.
• Tạo ra các sự kiện đăng ký thích hợp cho thực thể được dùng có quan hệ
với tích hợp như mã nguồn.
Những người tích hợp có một tầm nhìn về hệ thống và thông tin bao gồm trên
thực thể cấu hình. Họ cũng góp phần vào kiểm tra các thực thể cấu hình theo cách
nhìn tổng quan của mình, đảm bảo các thực thể cần thiết cho một phiên bản giao thì
tồn tại tương ứng.
Lợi ích
Lợi ích của việc đặt quản sản phẩm vào quản lý cấu hình, các nhà tich hợp có
lợi từ quản lý cấu hình bằng cách:
• Rút trích các thực thể cấu hình liên quan như là một tích hợp cơ sở (như
thiết kế kiến trúc, kế hoạch phát triển, và kế hoạch kiểm thử)
• Rút trích các thực thể cấu hình từ đó tạo ra các thực thể riêng của chúng.
• Lấy thông tin về trạng thái và lịch sử của những thực thể này.
2.4.4.5 Nhà quản lý đề án
Nhà quản lý đề án có tất cả các trách nhiệm lập kế hoạch quản lý cấu hình theo
yêu cầu của đề án. Người này chịu trách nhiệm lập kế hoạch quản lý cấu hình theo
yêu cầu của đề án và xem xét việc thực hiện. Nó bao gồm cái mà nhân viên tạo ra
và cái mà nhà quản lý đề án tạo ra (kế hoạch đề án).
Để có thể định nghĩa phạm vi và nhiệm vụ của quản lý cấu hình, nhà quản lý
đề án phải hiểu yêu cầu và có thể thực hiện chúng. Nhà quản lý phải hiểu vai trò của
quản lý cấu hình và truyền đạt lại cho các nhân viên cấp dưới. Thuận lợi nếu quản
Trang 31
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
lý đề án có kiến thức tốt về quản lý cấu hình nói chung không chỉ liên quan đến đề
án thực hiện.
Quản lý cấu hình là một phần những hoạt động bao gồm trong lập kế hoạch và
ngân sách cho đề án. Quản lý cấu hình phải đảm bảo những tài nguyên cần thiết cho
con người và ngân sách cho đề án. Nhà quản lý phải đảm bảo các tài nguyên cho
con người và cơ sở hạ tầng bao gồm trong kế hoạch và thật sự cung cấp cho những
người liên quan. Các hoạt động liên quan đến quản lý cấu hình có thể là:
• Tạo và cập nhật kế hoạch quản lý cấu hình
• Chỉ ra các vai trò quản lý cấu hình cần thiết trong đề án
• Gán trách nhiệm về các hoạt động quản lý cấu hình tương ứng với các vai
trò chỉ ra.
• Chỉ ra các tài nguyên để quản lý cấu hình
• Theo dõi các hoạt động quản lý cấu hình đã được lập kế hoạch
Các hoạt động này quan trọng trong việc thực hiện quản lý cấu hình và thực
hiện đúng trong đề án và trong công ty. Sự năng động của quản lý đề án và thấy
được lợi ích của quản lý cấu hình có thể là nguồn động lực cho nhân viên thực hiện
quản lý cấu hình.
Lợi ích
Nhà quản lý đề án có thể dùng
• Báo cáo trạng thái của hệ thống quản lý cấu hình để xem xét các thực thể
cấu hình
• Thông tin về các sự kiện đăng ký và sự tiến triển của chúng
• Các kết qủa đo từ hệ thống quản lý cấu hình, để xem xét về quản lý cấu
hình và nhựng quy trình khác
2.4.4.6 Người chịu trách nhiệm về chất lượng
Người này đảm bảo các hoạt động chất lượng đáp ứng tất cả các yêu cầu cho
sản phẩm. Người này đảm bảo các hoạt động quản lý chất lượng được thực hiện
như mong muốn bằng cách theo dõi các báo cáo chất lượng và quản lý cấu hình ,
Trang 32
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
thực hiện thanh ra các yêu cầu, kiểm tra mã. Người này đảm bảo các quy trình khác
trong đề án được theo dõi như mong muốn.
Để kiểm tra quản lý cấu hình, người chịu trách nhiệm phải có kiến thức tốt về
quản lý cấu hình nói chung và cho đề án nói riêng. Người này phải có kiến thức tốt
về độ đo quản lý cấu hình có thể tạo ra và cách dùng. Các hoạt động liên quan đến
quản lý cấu hình:
• Thiết lập yêu cầu liên quan đến các hoạt động quản lý cấu hình và kết qủa.
• Theo dõi chất lượng của các hoạt động quản lý cấu hình đã được lập kế
hoạch; định danh, lưu trữ, và sử dụng các thực thể cấu hình; xử lý các thay
đổi yêu cầu
• Tạo ra các sự kiện đăng ký đối với các thực thể liên quan, nếu các sự kiện
được theo dõi.
• Báo cáo và tóm tắt kết qủa chất lượng đạt được.
Các hoạt động quản lý chất lượng và các hoạt động quản lý cấu hình đan xen
vào nhau.
2.4.4.7 Người chịu trách nhiệm hợp đồng với khách hàng
Người này chịu trách nhiệm khách hàng được thoã mản theo như hợp đồng.
Thường quản lý đề án thực hiện nhiệm vụ này, còn các đề án lớn thì có một người
riêng lo về nhiệm vụ này.
Người này phải hiểu yêu cầu của khách hàng về quản lý cấu hình và đảm bảo
chúng được đáp ứng. Làm rõ đường biên quản lý cấu hình của đề án và của khách
hàng và cách chúng tương tác với nhau. Nhiệm vụ của công việc này xem xét cách
các sự kiện đăng ký được xử lý trong quy trình phát triển hoặc cách chuyển từ đề án
sang quản lý cấu hình của khách hàng tạo lúc giao.
Để có thể hợp tác với khách hàng về quản lý cấu hình, người này phải có kiến
thức cơ bản về quản lý cấu hình. Các loại hoạt động phụ thuộc vào cách hợp tác với
khách hàng (chặt chẽ hay gần gũi). Dựa trên hợp đồng, các hoạt động thường bao
gồm:
Trang 33
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
• Tạo ra tài liệu đáp ứng các yêu cầu quản lý cấu hình
• Nhận và thực hiện quản lý chất lượng trên các deliveries cho khách hàng
như đặc tả yêu cầu người dùng, và có thể thực hiện quản lý cấu hình nội bộ
bên trong
• Chuyển các sự kiện đăng ký cho khách hàng.
• Nhận các sự kiện đăng ký từ khách hàng, như việc xem xét tài liệu hoặc
xem các phiên bản demo
2.4.4.8 Người chịu trách nhiệm cho các hợp đồng phụ
Người chịu trách nhiệm cho các hợp đồng phụ đảm bào sự hợp tác với các
người thầu phụ.. Với mỗi hợp đồng phụ, một hợp đồng yêu cầu cần chỉ rõ các thuật
ngữ và bản phát hành cuối. Người chịu trách nhiệm đảm bảo các hoạt động quản lý
cấu hình phụ đáp ứng các yêu cầu.
Ranh giới giữa quản lý cấu hình trong đề án và của hợp đồng phụ phải rõ ràng,
cũng như mối quan hệ xen giữa chúng. Các hợp đồng phụ có thể đặt các thực thể
của mình vào quản lý cấu hình độc lập với phần còn lại của sản phẩm, nhưng tất cả
chúng phải được chuyển vào hệ thống quản lý cấu hình của đề án trong mối liên hệ
với delivery.
Để có thể hợp tác với các hợp đồng phụ về quản lý cấu hình, người chịu trách
nhiệm các hợp đồng phụ phải có kiến thức tốt về các nguyên tắc chung của quản lý
cấu hình và áp dụng vào công ty và đề án. Người giữ vai trò này phải hiểu các
phương pháp làm việc của hợp đồng phụ. Thiết lập các yêu cầu quy ước về quản lý
cấu hình trong các hợp đồng phụ và thực hiện.
Dựa vào hợp đồng, các hoạt động thường bao gồm:
• Định nghĩa những yêu cầu trong hệ thống quản lý cấu hình của các hợp
đồng phụ
• Lưu trữ mối liên hệ giữa hợp đồng phụ và đề án
• Theo dõi các hợp đồng phụ để đảm bảo các yêu cầu quản lý cấu hình được
thoả mãn
Trang 34
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
• Nhận và thực hiện quản lý chất lượng trên các sản phẩm chuyển giao phụ
và qua đó quản lý cấu hình bên trong các sản phẩn đó.
• Gửi đi các sự kiện đăng ký và những thay đổi yêu cầu có thể tới hợp động
phụ mà những thành phần cấu hình mà hợp đồng phụ chịu trách nhiệm
• Nhận đăng ký các sự kiện từ hợp đồng phụ
2.4.5 Các vai trò bên ngoài
Quản lý cấu hình thì không chỉ giới hạn ở công ty phát triển và bảo trì sản
phẩm. Giả sử công ty là một nhà thầu khoán. Cả khách hàng và hợp đồng con phải
góp phần trong hợp đồng phát triển và bảo trì phần mềm. Hình dưới chỉ ra mối quan
hệ giữa các khái niệm về khách hàng, thầu khoán, người thực hiện hợp đồng phụ và
cách mà các sản phẩm thường được giao
Hình 2-4 Khách hàng, người ký hợp đồng, các hợp đồng phụ
Tuy nhiên, một vài mối quan hệ với quản lý cấu hình thường xảy ra và theo 2
hướng. Do đó, tất cả các bên phải chỉ rõ cách giao tiếp để trao đổi các deliveries và
thông tin quản lý cấu hình.
2.4.5.1 Khách hàng
Các hoạt động của khách hàng gồm
• Tham gia vào một hay nhiều ban quản lý cấu hình
• Tạo ra các sự kiện đăng ký
• Phê duyệt các thực thể tạo ra
Trang 35
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
2.4.5.2 Nhà thầu phụ
Các hoạt động quản lý cấu hình của hợp đồng phụ phụ thuộc vào việc thoả
thuận trong hợp đồng, nhưng nhìn chung nó bao gồm toàn bộ các hoạt động của
quản lý cấu hình.
2.5 Dữ liệu cho quản lý cấu hình
2.5.1 Cái gì được đưa vào quản lý cấu hình
Nhiều đối tượng được tạo ra hoặc mua trong quá trình tạo ra phần mềm. Nói
chung, mọi thứ điều đặt trong quản lý cấu hình. Một đối tượng đặt trong quản lý cấu
hình gọi là một thực thể cấu hình (configuration item). Một thực thể cấu hình có thể
là một phần trong phiên bản đang phát triển, phiên bản giao, sản phẩm. Chúng được
định danh, tạo ra, lưu trữ, sử dụng và thay đổi.
Mỗi thực thể có độ phức tạp khác nhau. Một thực thể cấu hình có thể là một
thực thể riêng biệt hay là một tập hợp những thực thể khác, còn gọi là deliveries mà
có thể đặt vào quản lý cấu hình với quyền riêng.
2.5.1.1 Các đối tượng vật lý hay điện tử
Không chỉ có mã nguồn được đặt dưới sự quản lý cấu hình, các đối tượng cần
để hỗ trợ phát triển, bảo trì phần mềm cũng được quản lý.
Phân cấp thực thể cấu hình
Hình 2-5 Sơ đồ phân cấp các thực thể cấu hình
Những đối tượng vật lý
Những tính chất của một đối tượng vật lý trong quản lý cấu hình là:
• Số lượng sao chép bị giới hạn – thường chỉ là một
Trang 36
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
• Khi bản sao chép của đối tượng được đem ra bên ngoài, số lượng các bản
sao chép giảm xuống
• Nó không lưu trên một máy tính mà phải lưu ở một nơi vật lý
• Không thể tạo ra các siêu dữ liệu cho các đối tượng này.
• Trong các công cụ quản lý cấu hình cũ, không thể xử lý các đối tượng vật lý
mà không phải tạo một đối tượng giả ở bên điện tử
• Chỉ những hệ thống xử lý hiện đại mới có thể trích ra đối tượng vật lý từ
kho chứa dựa trên siêu dữ liệu
Ví dụ:
• Giấy phát thảo ý tưởng ban đầu
• Các máy trạm như một phần của hệ thống
• Các máy trạm dùng để phát triển
• Dây cáp
• Hộp tích hợp các phần mềm và phần cứng
• Các mạch
Những đối tượng điện tử
Các tính chất :
• Không giới hạn số lượng sao chép, dễ tạo ra các sao chép
• Khi đem ra một bản sao chép thì không làm giảm số lượng sao chép
• Các bản sao chép được tạo ra, rút trích, phân phối mà không cấn thông báo
cho một ai.
• Các bản sao chép có thể ở hình thức điện tử hoặc vật lý
• Nó được lưu trữ điện tử
• Siêu dữ liệu của đối tượng có thể gồm chính đối tượng và trong máy tình
(như một phần của hệ điều hành và công cụ )
• Siêu dữ liệu là con trỏ trực tiếp tới đối tượng và dùng để rút trích đối tượng
từ nơi lưu trữ
Trang 37
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
Ví dụ: các tài liệu yêu cầu viết bằng Word, một module phần mềm viết bằng
C, một hệ thống cơ sở dữ liệu (middleware) và hệ điều hành.
2.5.1.2 Các loại đối tượng theo cách nhìn sản phẩm
Sản phẩm được kết hợp từ nhiều loại sản phẩm con như phần mềm, phần
cứng, mạng, dữ liệu và dịch vụ. Với mỗi loại sản phẩm phụ, mỗi đối tượng riêng rẽ
có thể đặt trong quản lý cấu hình. Một đối tượng của sản phẩm phụ có thể là thành
tố phụ, thành tố và sản phẩm.
Phần dưới chỉ ra một vài ví dụ các đối tượng đặt dưới sự quản lý cấu hình của
một đề án thật sự
Phần mềm
Những đối tượng có quan hệ đến phần mềm, những loại đặc dưới sự quản lý
cấu hình có thể là : các header files, include files, files mã nguồn, hệ thống thư viện,
file đối tượng và file thực thi. Các file dẫn xuất (như file thực thi), có thể đặt vào hệ
thống quản lý cấu hình cùng với / thay vì các đối tượng tạo ra nó.
Phần cứng
Việc lưu lại các mội trường khác nhau là cần thiết như môi trường phát triển,
môi trường kiểm thử, môi trường tạo sản phẩm…
Phần cứng là yêu cầu về phần cứng của sản phẩm. Có thể là cab, máy (máy
chủ, máy cá nhân, máy trạm), bộ nhớ (ROM/EPROM/EEROM), thiết bị lập trình
logic - programmable logical device (PLD), hoặc các thiết bị ngoại vi khác (đầu ghi
CD, máy in, máy quét,..).
Mạng
Sản phẩm phụ mạng là sản phẩm phức tạp, nó có thể ngoải kiểm soát của sản
phẩm như Internet. Đối tượng đặt dưới sự quản lý cấu hình của sản phẩm con mạng
là tường lửa (cả tường lửa phần mềm và phần cứng), mạng vật lý (LAN/WAN),
thao thức protocol, servers, switches.. Các đối tượng này có thể là điện tử hoặc vật
lý.
Trang 38
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
Dữ liệu
Dữ liệu chuyển đi của sản phẩm có thể là tham số của hệ thống dữ liệu như hệ
thống tiền tệ. Dữ liệu chỉ được chuyển qua file (flat file hay file cơ sở dữ liệu) – dữ
liệu là đối tượng điện tử.
Dịch vụ
Các dịch vụ thì không thể sờ lấy được nên không thể đặt vào quản lý cấu hình.
Tuy nhiên, các đối tượng khác hữu hình có thể cho ta biết được các dịch vụ qua các
mô tả về quy trình, sự thoả thuận, hợp đồng, tài liệu giảng dạy. Các đối tượng này
có thể là đối tượng điện tử hay vật lý.
Các công cụ
Các công cụ dùng trong sản xuất ra các đối tượng kể trên có thể đặt dưới quản
lý cấu hình. Các công cụ có thể là các công cụ vẽ, bộ soạn thảo, trình biên dịch,
công cụ cơ sở dữ liệu..
2.5.1.3 Các loại đối tượng theo cách nhìn đề án
Một đền án gồm nhiều hoạt động trong vòng đời (vd: chuẩn bị, đặc tả yêu cầu,
thiết kế, sản xuất, tích hợp, kiểm thử, vận hành và bảo trì). Trong toàn bộ chu kỳ
sống của sản phẩm, cần có các chức năng hỗ trợ như quản lý đề án, quản lý chất
lượng, quản lý cấu hình. Mỗi một hoạt động trong chu kỳ sống, mỗi một chức năng
hỗ trợ sẽ tạo ra các loại đối tượng, và chúng sẽ được đặt dưới sự quản lý cấu hình
Các phần ở dưới sẽ trình bày các ví dụ về đối tượng đặt dưới quản lý cấu hình
trong các hoạt động trong chu kỳ sống và các chức năng hỗ trợ. Các đối tượng này
không nhất thiết phải giao cho khách hàng
Các hoạt động trong chu kỳ sống
Các tài liệu của đề án phát sinh từ các hoạt động trong chu kỳ sống.
Ví dụ:
• Chuẩn bị (hợp đồng, thoả thuận công việc, yêu cầu người dùng)
• Đặc tả yêu cầu (yêu cầu phần mềm, yêu cầu phụ khác, các biểu mẫu, kịch
bản)
Trang 39
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
• Thiết kế (đặc tả thiết kế kiến trúc)
• Sản xuất, sự tích hợp, kiểm thử (các thiết bị, lỗi, dữ liệu test, quy trình test,
các báo cáo kiểm thử)
• Vận hành và bảo trì (các quy trình tái sản xuất, các quy trình cài đặt, quy
trình thực hiện)
Các chức năng hỗ trợ
Các đối tượng, các chức năng hỗ trợ trong quá trình thực hiện có thể là:
• Quản lý đề án (kế hoạch đề án, thời gian biểu, các báo cáo)
• Quản lý chất lượng (kế hoạch, các báo cáo về chất lượng)
• Quản lý cấu hình (kế hoạch, yêu cầu, các sự kiện đăng ký, thay dổi yêu cầu,
các báo cáo trạn thái)
Công cụ
Các công cụ dùng trong sản xuất ra các đối tượng
2.5.1.4 Các loại đối tượng trong tổ chức
Các công ty đều có các đối tượng phân cấp mà quản lý cấu hình phải xem xét
như các tài liệu về quản trị, sản phẩm tài sản cuả công ty, cấu trúc hạ tầng, hoặc một
hệ thống chất lượng.
Các tài liệu quản trị
Các tài liệu quản trị được kiểm soát cấu hình như các thư từ trao đổi (thư,
email, fax,..) các mô hình ban đầu (các prototypes, slides trình bày.. ), các đơn đặt
hàng (hợp đồng) , các kế hoạch (hướng phát triển cuả công ty, lập chiến lược, kế
hoạch tổ chức, các kế hoạch cá nhân). Các tài liệu trên có thể là cuả một đề án cụ
thể hoặc cuả một bộ phận quản lý, hoặc của toàn công ty.
Những đối tượng này thường không đặt dưới sự quản lý cấu hình. Tuy nhiên,
ta cũng cần xem xét việc quản lý nó, ít nhất là đối với những đối tượng quan trọng.
Các đối tượng nào được coi là quan trọng thì tuỳ thuộc vào quyết định của công ty.
Các sản phẩm tài sản của công ty
Trang 40
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
Các sản phẩm tài sản của công ty thường là các thành tố sử dụng lại. Ta phải
quản lý cấu hình chặt chẽ đối với các đối tượng này.
Cơ sở hạ tầng
Cơ sở hạ tầng trong công ty là môi trường các nhân viên làm việc. Đối tượng
quản lý cấu hình bao gồm các công cụ phát triển (trình biên dịch, linkers), phần
cứng (máy tính, máy in, máy trạm), hệ điều hành, mạng, các công cụ.
Hệ thống chất lượng
Hệ thống chất lượng nói lên các tài liệu và mô tả quy trình mà công ty đang
thực hiện. Nó bao gồm các định nghĩa quy trình, các mẫu, các tiêu chuẩn.
2.5.1.5 Các sản phẩm phân phối trong quản lý cấu hình
Trong sản phẩm giao là cấu trúc phân cấp của nhiều thực thể cấu hình. Nó có
thể được xây dựng từ những sản phẩm giao khác theo cấu trúc nhánh.
Nhu cầu xử lý một nhóm các thực thể xuất hiện khi cần xử lý một bộ các thực
thể. Ví dụ như lấy ra một phần hoặc toàn bộ hệ thống, lấy ra các phiên bản để test,
giao cho khách hàng.
Ví dụ
Một đặt tả yêu cầu coi như một sản phẩm phải bàn giao. Nó tạo thành từ các
yêu cầu riêng rẽ và mỗi yêu cầu riêng cũng đặt dưới sự quản lý cấu hình.
Hình 2-6 Đặc tả yêu cầu của một delivery
Trang 41
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
Hình 2-7 Mối quan hệ về phần cứng của delivery
Mối quan hệ trong các đề án
Các mối quan hệ giữa các thực thể cấu hình trong các deliveries thì hoàn toàn
do mục đích phát hành để sử dụng và quản lý cấu hình. Những mối quan hệ này
không nên lẫn lộn với những mối quan hệ thiết lập qua lập kế hoạch, thiết kế.. Hai
loại quan hệ này có thể có nhiều thể hiện giống nhau, và cách danh sách quan hệ có
thể có ích cho quản lý cấu hình và những việc khác.
Điều này nên làm vì đối với một hệ thống quản lý cấu hình lớn, người chịu
trách nhiệm quản lý đề án hoặc nhà phát triển có nhiệm vụ phải chỉ ra các mối quan
hệ lập kế hoạch hoặc phân tích, không phải trách nhiệm của quản lý cấu hình.
2.5.1.6 Lập kế họach phân phối theo các mốc thời gian
Mô hình phát triển
Mô hình phát triển được chia nhỏ từng công việc để phát triển, sản xuất, bảo
trì. Ví dụ như mô hình thác nước và mô hình phát triển lặp – các công việc ngắn
hơn, nhưng chúng được lặp lại trong chu kỳ sống của đề án.
Với bất cứ quy trình phát triển nào của đề án, mỗi hoạt động nên kết thúc với
một mốc cụ thể và phát sinh một bản delivery cụ thể: a milestone delivery.
Các mốc phân chia
Số lượng, tên, nội dung các mốc phân chia phụ thuộc vào từng đề án và mô
hình phát triển.
Ví dụ các mốc phân chia trong đề án theo quy trình thác nước như sau:
• Kết thúc chuẩn bị
• Kết thúc đặc tả yêu cầu
Trang 42
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
• Kết thúc đặc tả yêu cầu phần mềm
• Kết thúc thiết kế kiến trúc
• Kết thúc thiết kế chi tiết
• Kết thúc lập trình và kiểm thử trên các module
• Kết thúc kiểm thử tích hợp
• Kết thúc kiểm thử hệ thống
• Kết thúc kiểm thử
• Bản giao cuối
Các delivery này sẽ ngày một tăng khi càng phát triển đề án.
Hình dưới chỉ ra ví dụ milestone deliveries và nội dung của chúng suốt giai
đoạn phát triển cùng với các số phiên bản tương ứng.
Milestone
Bao gồm Kết thúc Kết thúc Kết thúc Kết thúc Kết thúc Chấp nhận
các thực thể yêu cầu thiết kế thiết kế kiểm thử kiểm thử cuối cùng
cấu hình kiến trúc chi tiết các system kết qủa
module test test của hệ
thống
Lập kế 1.0 2.0 3.0 4.0 4.1 4.1
hoạch
Kế hoạch 1.0 2.0 3.0 4.0 4.0 4.0
quản lý cấu
hình
kế Lập 1.0 2.0 3.0 4.5 5.2 6.3
hoạch test
và đặc tả
test
Đặc tả yêu 1.0 1.2 1.3 1.4 1.6 1.6
Trang 43
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
cầu
Thiết kế — 1.0 1.2 1.3 1.3 1.3
kiến trúc
Thiết kế chi — 1.0 1.1 1.2 1.3 —
tiết
User — 1.0 1.1 1.1 — —
manual
Tài liệu sử
dụng
Phân hệ 1 — — — 1.0 1.1 1.2
Phân hệ 2 — — — 1.0 1.1 1.2
Trình biên — — — 4.3 4.3 4.3
dịch
Linker — — — 7.2.5 7.2.5 7.2.6
Hệ thống — — — — 1.0 1.1
hoàn chỉnh
Ghi chú — — — — — 1.0
phát hành
Dấu gạch ngang chỉ ra sự thực cấu hình đó không nằm trong delivery
2.5.2 Những điều cần biết về một thành phần cấu hình
Mỗi thực thể cấu hình có một lượng thông tin nhất định mà ta phải theo dõi
trong suốt dòng đời của thành phần.
2.5.2.1 Tổng quan về siêu dữ liệu của thực thể cấu hình
Các yếu tố dữ liệu
Hình 2-8 đưa ra những yếu tố dữ liệu nào hình thành nên một phần của siêu dữ
liệu cho một thành phần quản lý cấu hình – đó là dữ liệu mô tả thành phần cấu hình.
Các yếu tố dữ liệu có thể được chia vào những nhóm chung sau:
Trang 44
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
• Cánh định danh duy nhất
Mối quan hệ thuộc về
• Tất cả dữ liệu chỉ liên quan đến thực thể cấu hình đó, như chỉ ra bên trong
hộp “Thực thể cấu hình”.
• Chịu trách nhiệm
Những mối quan hệ “tạo ra bởi”, “chịu trách nhiệm bởi” và “chấp nhận bởi”
• Mối quan hệ đối với các thành phần cấu hình khác
• Những mối quan hệ “theo dõi ”, “tạo ra với”, “bắt nguồn từ”, và “bao gồm”
• Sự phân phối
• Những mối quan hệ “phân phối cho” và “đã được phân phối cho”
Hình 2-8 Tổng quan về siêu dữ liệu
Metadatabase Medium
Việc đăng ký siêu dữ liệu có thể thực hiện theo nhiều cách khác nhau. Siêu dữ
liệu cho quản lý cấu hình cũng mở rộng bằng nhiều cách. Trước đây, đa số được
thực hiện đăng ký bằng giấy. Có nghĩa là sẽ điền vào một đơn, ghi nhận lại, cập
nhật đối với mỗi thành phần cấu hình. Ngày nay, nó không còn phổ biến khi cơ sở
dữ liệu được dùng một rãi trong việc đăng ký
Phần của việc đăng ký phải nằm luôn trong chính thành phần cấu hình. Ví dụ:
tên tác giả thì thường được viết ở mặt trước của tài liệu hoặc trên phần đầu của file
Trang 45
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
mã nguồn. Phần đăng ký sẽ diễn ra ở trong công cụ dùng để lưu trữ thành phần cấu
hình. Nhưng công cụ không phải luôn có thể đăng ký tất cả các siêu dữ liệu.
Phần quan trọng nhất là xem xét loại thông tin nào cần được đăng ký và theo
những cách nào, cũng như cách thông tin tạo ra cho các báo cáo trạng thái. Cách
hay là dùng cơ sở dữ liệu thay vì biểu diễn thông tin trực tiếp lên file, mặc dù điều
này hơi nặng nề. Nhưng dễ tạo ra một bảng báo cáo từ cơ sở dữ liệu hơn là đọc qua
số lượng lớn các dòng ghi chú trong file
Những yếu tố dữ liệu khác
Một thành phần quản lý cấu hình có thề có thêm những phần dữ liệu thích hợp
để đăng ký ngoài những thông tin chỉ ra ở trên. Có thể là tên đầy đủ, mô tả tên thêm
để bổ sung cho tên định danh..
2.5.2.2 Siêu dữ liệu dùng để chỉ ra sự nhận biết duy nhất
Mỗi một thành phần cấu hình phải có cách nhận biết duy nhất, được hình
thành từ một hay nhiều nhóm dử liệu ở hình dưới.
Hình 2-9 Siêu dữ liệu nhận biết sự duy nhất
Thuộc về
“Thuộc về” chỉ ra thực thể tham gia vào những thành phần nào. Một thực thể
cấu hình thường thuộc về một sản phẩm. Trong một vài trường hợp, các thành phần
quản lý cấu hình có thể thuộc về một vài sản phẩm như các thành tố - component.
Trang 46
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
Trong những trường hợp như vậy, khi sử dụng, phải chỉ ra thực thể cấu hỉnh thuộc
về một nhóm thành tố nào
Tên
Tên của một thành phần cấu hình có thể được xây dựng bằng nhiều cách.
Thông thường nó sẽ là sự kết hợp của text, loại, số, .. và có ý nghĩa riêng.
Part Function
Text Text có thể mô tả những chữ viết tắt nơi thành phần cấu hình thuộc về
và chức năng của nó. Đối với đối tượng mã nguồn, text thông thường
kết hợp với dấu hiện ngắn nói lên mục đích của đoạn mã (ví dụ:
CUS_ADD dùng cho đoạn mã liên quan đến xử lý địa chỉ của khách
hàng)
Type Chỉ ra loại sản phẩm của thành phần quản lý. Mô tả loại có thể là một
mức độ chung như DOC đối với tài liệu, COD đối với mã nguồn. Mô tả
loại cũng áp chỉ đến mức chi tiết hơn như PMP là “Kế hoạch quản lý đề
án” hoặc PSC là đoạn code được viết bằng Pascal. Đặc biệt quan trọng
chỉ ra loại cụ thể nếu chỉ là sự khác nhau giữa các thành phần cấu hình.
Ví dụ như hai tài liệu giống nhau được viết bằng Word và WordPerfect
Running Phân biệt giữa các thành phần cấu hình của cùng một loại. Đây không
number phải là số phiên bản của thành phần quản lý cấu hình mà là những số cá
nhân. Ví dụ là ghi chý kỹ thuật chỉ ra như TN_nnnn, NT là mô tả loại
và nnnn là số đang chạy
Bảng 2-4 Thành phần tên và chức năng của nó
Phiên bản
Phiên bản mô tả quá trình phát triển của một thành phần cấu hình. Thông tin
phiên bản có thể chỉ là cách phân biệt giữa hai thành phần cấu hình, vì mỗi phiên
bản được coi như một thành phần riêng rẽ. Khi một thành phần cấu hình mới được
phát triển dựa trên cơ bản một thành phần đã tồn tại rồi, tất cả những phần để nhận
biết thường được kế thừa.
Trang 47
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
Thông tin trên một phiên bản có thể chứa một vài tầng, tuỳ thuộc vào mức độ
chi tiết mong muốn lưu trữ. Hơn nữa có nhiều cách đặt tên và diễn tả thông tin theo
cấu trúc đặc tên phân tầng
Trạng thái
Trạng thái mô tả trạng thái hiện tại của thành phần cấu hình. Cần phải chỉ ra
trạng thái của thực thể cấu hình để mọi người biết để có thể dùng thực thể cấu hình
đó hay không.
Ngày
Ngày là ngày tạo version.
Nơi lưu trữ
Nơi lưu trữ vật lý của thực thể cấu hình. Nó sẽ giúp dễ tìm các thực thể. Nơi
lưu trữ có thể hoàn toàn cụ thể ở một nơi nào khác nữa, như là một cấu trúc cây thư
mục trên máy chủ mô tả trong kế hoạch quản lý cấu hình cho tất cả các thành phần
của cùng một loại. Nơi lưu trữ được biểu diễn bằng đường dẫn tuyệt đối, hoặc
đường dẫn tương đối theo quy ước
Bộ lưu trữ trung gian
Ví dụ các trạng thái của một tài liệu
Dưới đây là một vài trạng thái thường gặp của các tài liệu:
Dưới sự chuẩn bị: chỉ ra cái sẽ thực hiện, nhưng thành phần chưa đưa vào
quản lý cấu hình. Nó không thể dùng bởi một người nào khác ngoại trừ nhà sản xuất
và các sự kiện chưa đăng ký (quản lý phiên bản)
Dưới sự kiểm soát chất lượng: thành phần dưới sự kiểm soát cấu hình nhưng
chỉ dùng cho các hoạt động đảm bảo chất lượng (ví dụ: kiểm tra). Các sự kiện được
đăng ký
Chấp nhận: thành phần được chấp nhận qua các hoạt động chất lượng và mọi
người có thể dùng. Những sự kiện được đăng ký
Ví dụ về bộ mã nguồn
Bảng chỉ ra ví dụ các trạng thái của một đơn vị mã nguồn trong quá trình phát
triển.
Trang 48
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
Activity/State Unit Status Responsible
Development, ongoing Busy Developer
Development, pausing Saved Developer
Unit CI in "useful" state Proposed Developer
Unit undergoing formal unit test Proposed Approver signature
Formal unit test ready for approval Proposed Developer
Formal unit test is approved Proposed Approver signature
Formal unit release established Published Configuration
management
Build undergoing formal integration Proposed Integrator
Formal integration test is ready for Proposed Integrator
approval
Formal integration test is approved Proposed Test manager signature
Formal build release established Published Configuration
management
Các trạng thái của một đơn vị có thể :
• Bận: đảm bảo quản lý phiên bản, không một ai có thể tình cờ bắt đầu thay
đổi cùng trên một file mã nguồn
• Lưu: Chỉ ra phiên bản đang thuộc riêng về nhà phát triển
• Đề xuất (Proposed): chỉ ra phiên bản đang trong trạng thái có ích với các
nhà phát triển khác. Chỉ những phiên bản với trạng thái (“proposed”) hay
cao hơn có thể dùng chính thức trong các unit tests
• Xuất (Published): phiên bản đã được test (unit test) và được chấp nhận
• Truy cập(Accessed): Phiên bản đã được chấp nhận chính thức sau lần kiểm
tra tích hợp
• Frozen: chỉ ra phiên bản là một phần của release chính thức
Trang 49
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
2.5.2.3 Siêu dữ liệu cho việc phân trách nhiệm
Việc phân trách nhiệm chỉ ra một người có quyền làm gì và đã làm gì với các
thực thể cấu hình. Việc phân trách nhiệm có thể gồm các dữ liệu như hình dưới
Hình 2-10 Siêu dữ liệu cho việc phân trách nhiệm
Thông thường, một đề án phần mềm có 3 loại người chịu trách nhiệm mô tả
bằng mối quan hệ “được tạo ra bởi”, “dưới sự quản lý của” và “được chấp thuận
bởi”.
Một hợp đồng cũng đòi hỏi nhóm đại diện của khách hàng chịu trách nhiệm về
tài liệu đăc tả yêu cầu cũng như toàn hệ thống
Nhà sản xuất
Là người chịu trách nhiệm tạo ra thực thể và đặt nó vào quản lý cấu hình. Nhà
sản xuất có thể là người tạo ra phiên bản mới dựa vào quản lý yêu cầu. Đối với mã
nguồn, nhà sản xuất thường là người lập trình. Đối với các tài liệu, nhà sản xuất là
tác giả, các tài thiệu về thiết kế nhà sản xuất là nhà thiết kế, các kế hoạch của đề án
nhà sản xuất là các nhà quản lý đề án.
Người giữ tất cả các trách nhiệm
Người giữ tất cả các trách nhiệm có trách nhiệm sau cùng với việc sửa lỗi sản
phẩm và các bản giao. Người này có thể là người quản lý đề án hoặc là một nhóm
quản lý dưới quyền người quản lý đề án hoặc người chịu trách nhiệm kiểm thử.
Trang 50
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
Người chịu trách nhiệm phê duyệt
Người chịu trách nhiệm phê duyệt có thể là nhà sản xuất trong các hoạt động
quản lý cấu hình sớm hoặc không chính thức. Người này có thể là người chịu trách
nhiệm về chất lượng trong quản lý cấu hình với mức độ hình thức cao, hoặc là một
nhóm các nhà thầu khoán khi quản lý cấu hình thực hiện với mức độ hình thức cao.
Người chịu trách nhiệm phê quyệt cũng có thể có vai trò như ban quản lý cấu hình,
chịu trách nhiệm phê duyệt tất cả những thay đổi đối với một thực thể cấu hình và
quyết định xem một thực thể đã sẵn sàng được quản lý cấu hình hay không.
Quyền sở hữu
Mô tả người có thể rút một thực thể để sản xuất và có thể làm thay đổi thực
thể đó. Nhưng ban quản lý cấu hình sẽ quyết định ai có thể làm thay đổi một thực
thể (tạo ra phiên bản mới) khi thực thể được đặt dưới sự quản lý cấu hình.
2.5.2.4 Siêu dữ liệu chỉ mối quan hệ đến các thực thể cấu hình khác
Thực tế, tất cả các thực thể cấu hình có một hay nhiều quan hệ với các thực
thể khác. Các mối quan hệ sẽ thường được mô tả bởi các dữ liệu ở hình dưới.
Hình 2-11 Siêu dữ liệu chỉ mối quan hệ đến các thực thể cấu hình khác
Theo vết
Thông tin để theo vết đối với một thực thể cấu hình cung cấp lý do tồn tại của
thực thể… Theo dõi thực thể từ những hoạt động trong quá trình phát triển của thực
Trang 51
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
thể cấu hình. Thông thường, kế hoạch đề án sẽ chỉ ra các thực thể cấu hình nào theo
dõi lẫn nhau: Theo dõi có thể thực thiện theo mô hình V
• Yêu cầu phần mềm dựa vào yêu cầu của người dùng
• Việc chấp nhận đặc tả test dựa vào những yêu cầu người dùng
• Thiết kế kiến trúc dựa vào yêu cầu phần mềm
• Chi tiết thiết kế dựa vào thiết kế kiến trúc và yêu cầu phần mềm ,v.v..
Đây chỉ là một phần nhỏ các thông tin theo vết có thể của sản phẩm. Nhìn
chung, nó có thể theo dõi tất cả các thực thể cấu hình để định trước các thực thể cấu
hình. Hình dưới chỉ ra theo dõi một đặc tả yêu cầu và một đặc tả kiểm tra hệ thống.
Hình 2-12 Ví dụ của việc theo vết
Đăng ký theo vết
Việc theo dõi thường là quan hệ nhiều nhiều. Để theo dõi thì thực thể cấu hình
phải có định danh duy nhất không thay đổi, dễ tham khảo và có thể truy cập được.
Việc theo dõi phải đăng ký theo cách báo cáo dễ để theo dõi cả hai phía. Có
nghĩa là nó có thể tìm ra các testcase đối với một yêu cầu cụ thể và các yêu cầu
phần mềm cho một testcase nào.
Phiên bản mới của thực thể cấu hình sẽ thường kế thừa các theo dõi của các
phiên bản trước. Việc theo dõi sẽ được kiểm soát, vì thế việc theo dõi được lưu trữ
lại và vẫn còn đúng với tất cả các phiên bản khác.
Tầm quan trọng của việc theo vết
Việc theo dõi là một phần đăng ký thường bị bỏ quên, vì nó là nhiệm vụ lớn
và hầu như không khả thi. Việc theo vết khó thực nếu bắt đầu theo vết ở giữa đề án.
Trang 52
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
Tuy nhiên, điều này có thể thực hiện được nhờ vào công nghệ đảo để tạo ra thông
tin theo dõi cho các thực thể cấu hình
Việc theo dõi thì quan trọng đối với người tạo ra thực thể cấu hình và đặc biệt
đối với những ai thay đổi chúng. Chất lượng sẽ được cải tiến khi người ta hiểu mối
quan hệ giữa các thực thể trong hệ thống.
Việc theo vết cũng được dùng để tìm ra kiểm tra kép việc thiết kế. Nếu một
yêu cầu theo vết với số lượng lớn các thực thể thiết kế, nó có thể là một dấu hiệu
thiết kế quá phức tạp và cần phải xem xét lại
Tạo ra với
Nói lên công cụ nào dùng để tạo nên thực thể. Không phải lúc nào cũng cần
đặt công cụ dưới sự quản lý cấu hình hoặc công cụ nào tạo ra thực thể nào. Với các
thực thể trong một bản phân phối, nên chỉ ra cái gì được dùng để nối kết các thực
thể cấu hình thành phiên bản để sử dụng.
Dẫn xuất từ
Mô tả lịch sử của thực thể cấu hình, phiên bản được thay đổi do phiên bản
trước nào. Nó chỉ xảy ra nếu có sự thay đổi phiên bản.
Bao gồm
Chỉ có các delivery mới bao gồm các thực thể cấu hình. Một module mã
nguồn không bao gồm các thực thể cấu hình khác, nhưng một yêu cầu phát hành
của phần mềm bao gồm bản kế hoạch của đề án, đặc tả người dùng, đặt tả yêu cầu
phần mềm và kế hoạch kiểm thử hệ thống.
2.6 Hệ thống quản lý cấu hình phần mềm
2.6.1 Khái niệm:
Hệ thống quản lý cấu hình phần mềm của một tổ chức lưu giữ các thông tin
quan trọng về việc phát triển sản phẩm, triển khai và quản lý tiến trình, và giữ lại
những kết quả có thể sự dụng lại sau này.
Trang 53
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
2.6.2 Mục tiêu
Hệ thống quản lý cấu hình phần mềm cần được thiết kế để kiểm sóat số lượng
lớn các sưu liệu được phát sinh từ nhiều người trong một dự án. Nhằm mục đích
tránh lãng phí chi phí và đảm bảo không bị trùng lắp khi tiến hành tích hợp hệ
thống.
2.6.3 Lợi ích
Một số lợi ích mà hệ thống quản lý cấu hình có thể đem lại là:
• Quản lý tính toàn vẹn của sản phẩm.
• Đảm bảo tính đầy đủ và chính xác của sản phẩm.
• Cung cấp môi trường ổn định để phát triển sản phẩm.
• Hạn chế thay đổi yêu cầu dựa trên nguyên tắc của dự án.
• Kiểm sóat những sưu liệu bị thay đổi thông qua trả lời câu hỏi: tại sao, khi
nào, và ai đã thay đổi.
2.6.4 Các tiến trình con trong quản lý cấu hình phần mềm
Nói chung, một hệ thống cấu hình phần mềm cụ thể sẽ liên quan đến một giải
pháp và qui định quản lý cấu hình phần mềm được công bố trong sổ tay quản lý cấu
hình của công ty. Các giải pháp và qui định này có thể xuất phát từ các chuẩn tổng
quát IEEE 828-1983, ISO 9000, CMM , CMMI ...
Hệ thống quản lý cấu hình bao gồm những họat động chính sau:
Tiến trình lập kế hoạch quản lý cấu hình chi tiết cho sản phẩm sẽ phát triển: là
tiến trình này thiết lập việc quản lý cấu hình, các thực thể sẽ được quản lý trong hệ
thống quản lý cấu hình phần mềm và vai trò của các thành viên trong hệ thống phần
mềm cho một đề án cụ thể.
Tiến trình quản lý những thay đổi về cấu hình phần mềm: là tiến trình bao
gồm vịêc phân tích các thay đổi, đánh giá phí tổn và theo dõi “vết” của thay đổi.
Tiến trình quản lý phiên bản của sản phẩm: tiến trình định nghĩa, theo dõi và
kiểm sóat các phiên bản khác nhau của một hệ thống phần mềm.
Trang 54
Chương 2 - Tổng quan về quản lý cấu hình phần mềm
Tiến trình tích hợp sản phẩm từ các thành tố: là tiến trình tổ hợp các thành tố
của hệ thống thành một chương trình có thể thực hiện trên một môi trường cấu hình
cụ thể. Với hệ thống lớn đây là một tiến trình quan trọng trong quản lý cấu hình.
Hình 2-13 Sơ đồ các tiến trình con trong quản lý cấu hình
Các tiến trình trên liên quan đến các thành viên tham gia vào quá trình phát
triển phần mềm và được hỗ trợ bởi các công cụ phát triển phần mềm ở mức tự động
hoặc bán tự động.
Trang 55
Chương 3 - Quản lý cấu hình phần mềm trong CMM & CMMI
Chương 3 Quản lý cấu hình phần mềm trong
CMM & CMMI
3.1 Mô hình trưởng thành
Capability Maturity Model (CMM) version 1.1 là mô hình được sử dụng rộng
rãi nhất. Nó được phát triển và được hỗ trợ bởi viện Công Nghệ Phần mềm ở đại
học Carnegie Mellon. Version 1.0 được phát hành vào 1991. Version 1.1 được phát
hành vào 1993. Version 2.0 vẫn đang thực hiện, nhưng có vẻ version này được thay
thế bởi CMMI. Do đó, ta sẽ đề cấp đến quản lý cấu hình trong CMM version 1.1 và
CMMI
3.2 CMM version 1.1
3.2.1 Mức độ trưởng thành của CMM Version 1.1
Level 1:
Khởi động
Level 2: Quản lý cấu hình phần mềm
Lặp lại Quản lý chất lượng phần mềm
Quản lý các hợp đồng phụ
Theo dõi và giám sát đề án phần mềm
Lập kế hoạch cho đề án phần mềm
Những yêu cầu về quản lý
Level 3: Công tác xem xét
Được định nghĩa Sự hợp các giữa các nhóm
Sản phẩm phần mềm
Quản lý phần mềm tích hợp
Trang 56
Chương 3 - Quản lý cấu hình phần mềm trong CMM & CMMI
Chương trình huấn luyện
Định nghĩa tiến trình
Tập trung cũng cố tiến trình
Level 4: Quản lý thay đổi quy trình
Quản lý Quản lý thay đổi công nghệ
Ngăn chặn lỗi
Level 5: Quản lý chất lượng phần mềm
Tối ưu hoá Quản lý quy trình chất lượng
Bảng 3-1 Mức độ trưởng thành của CMM
Quản lý cấu hình là một vùng tiến trình chính ở mức phát triển mức 2. Để đạt
được chuẩn 2, công ty phải đạt những mục tiêu trong tất cả các vùng tiến trình chính
ở mức phát triển cấp 2, bao gồm quản lý cấu hình. Những mục đích để quản lý cấu
hình trong CMM version 1.1 là:
Mục tiêu 1: Lên kế hoạch những hoạt động Quản lý cấu hình
Mục tiêu 2: Chỉ rõ và kiểm soát những công việc để làm ra sản phẩm.
Mục tiêu 3: Những thay đổi của sản phẩm công nghệ phần mềm được kiểm
soát
Mục tiêu 4: Những nhóm và những cá nhân ảnh hưởng sẽ được thông báo về
trạng thái và nội dung của các cấu hình cơ sở (baselines) của phần mềm
3.2.2 Quản lý cấu hình phần mềm trong CMM version 1.1
3.2.2.1 Mục đích
Mục đích của Quản lý cấu hình là thiết lập và lưu lại sự tích hợp của những
sản phẩm thông qua quy trình phát triển phần mềm. Hệ thống Quản lý cấu hình là
phần tích hợp hầu hết các quy trình phần mềm và quy trình quản lý.
3.2.2.2 Các hoạt động của quản lý cấu hình trong CMM Version 1.1
Hoạt động 1:
Trang 57
Chương 3 - Quản lý cấu hình phần mềm trong CMM & CMMI
Một kế hoạch Quản lý cấu hình được chuẩn bị cho mỗi đề án phần mềm tùy
vào một tài liệu quy trình
Hoạt động 2:
Một kế hoạch về Quản lý cấu hình được chấp nhận và ghi thành tài liệu dùng
để làm nền tảng để thực hiện những hoạt động về Quản lý cấu hình
Hoạt động 3:
Một hệ thống thư viện quản lý cấu hình được thiết lập như là một kho chứa
những cấu hình cơ sở của phần mềm
Hoạt động 4:
Chỉ ra và quản lý những công việc để tạo sản phẩm
Hoạt động 5:
Thay đổi yêu cầu và những báo cáo lỗi đối với những thực thể cấu hình được
khởi tạo, lưu lại, kiểm tra, chấp thuận, và theo dõi dựa vào tài liệu quy trình
Hoạt động 6:
Thay đổi các cấu hình cơ sở sẽ được kiểm soát, theo dõi theo tài liệu quy trình
Hoạt động 7:
Tạo ra những sản phẩm từ thư viện cấu hình cơ sở của phần mềm và những
bản phát hành sẽ được kiểm soát theo một tài liệu quy trình
Hoạt động 8:
Trạng thái của thực thể cấu hình/ bộ cấu hình được lưu lại theo một tài liệu
quy trình
Hoạt động 9:
Những tài liệu báo cáo chuẩn về những hoặc động Quản lý cấu hình và nội
dung của cấu hình cơ sở phần mềm được phát triển và giao cho những nhóm và
những cá nhân có liên quan
Hoạt động 10:
Kiểm tra cấu hình cơ sở của phần mềm theo một tài liệu quy trình
Trang 58
Chương 3 - Quản lý cấu hình phần mềm trong CMM & CMMI
3.3 Quản lý cấu hình trong CMMI
3.3.1 Các mức trưởng thành của CMMI
Hình 3-1 các mức trưởng thành của CMMI
Mức trưởng thành Vùng tiến trình
Phân tích nguyên nhân và giải pháp
5 Đổi mới tiến trình công nghệ Tối ưu hoá
4 Hiệu năng tiến trình
Được quản lý nhờ vào định lượng Quản lý đề án định lượng
3 Phát triển yêu cầu
Được định nghĩa Giải pháp kỹ thuật
Tích hợp sản phẩm
Kiểm tra
Xác nhận
Tập trung cũng cố tiến trình
Định nghĩa tiền trình
Huấn luyện
Quản lý đế án tích hợp
Tích hợp nhóm
Trang 59
Chương 3 - Quản lý cấu hình phần mềm trong CMM & CMMI
Quản lý rủi ro
Tích hợp quản lý với nhà cung cấp
Phân tích quyết định và giải pháp
Tích hợp môi trường tổ chức
2 Quản lý yêu cầu
Được quản lý Hoạch định đề án
Theo dõi và kiểm soát đề án
Quản lý hợp đồng với nhà cung cấp
Đo lường và phân tích
Bảo đảm chất lượng sản phẩm và tiến trình
Quản lý cấu hình
1
Khởi động
Bảng 3-2 Các mức trưởng thành và các vùng tiến trình của CMMI
3.3.2 Quản lý cấu hình trong CMMI
3.3.2.1 Mục đích
Mục đích của Quản lý cấu hình là thiết lập và duy trì tính toàn vẹn của các sản
phẩm kết xuất nhờ vào việc định danh cấu hình, kiểm soát cấu hình, xác định trạng
thái cấu hình và kiểm tra cấu hình.
3.3.2.2 Các hoạt động
• Chỉ ra cấu hình của một sản phẩm được chọn bao gồm cấu hình cơ sở tại
thởi điểm chỉ ra
• Kiểm soát thay đổi đối với những thành phần trong cấu hình
• Xây dựng hoặc cung cấp những đặc tả để xây dựng sản phẩm từ hệ thống
Quản lý cấu hình
• Lưu trữ sự tích hợp các cấu hình cơ sở
Trang 60
Chương 3 - Quản lý cấu hình phần mềm trong CMM & CMMI
• Cung cấp trạng thái chính xác và cấu hình hiện tại cho những nhà phát triển
phần mềm, những người dùng cuối, khách hàng. Công việc được kiểm soát
dưới sự quản lý cấu hình bao gồm những sản phẩm được giao cho khách
hàng, chỉ ra các sản phẩm nội bộ bên trong, những sản phẩm thu được,
những công cụ và những thành phần khác được dùng để tạo và mô tả những
sản phẩm.
Đối với gia công phần mềm
Sản phẩm làm ra cần được kiểm soát cấu hình bởi cả nhà cung cấp và đề án.
Cần phải thiết lập trong hợp đồng về việc thực hiện quản lý cấu hình. Cần phải đưa
ra, duy trì các phương pháp phù hợp để đảm bảo về tòan vẹn dữ liệu
Những ví dụ về những công việc tạo nên sản phẩm được đặt dưới sự quản lý
cấu hình gồm:
• Kế hoạch
• Mô tả qui trình
• Những yêu cầu
• Thiết kế dữ liệu
• Những bản vẽ
• Đặc tả sản phẩm
• Mã nguồn
• Trình biên dịch
• File dữ liệu của sản phẩm
• Tài liệu kỹ thuật về sản phẩm
3.3.2.3 Những vùng tiến trình liên quan
Liên quan đến vùng tiến trình Lập kế hoạch đề án gồm những thông tin liên
quan đến kế hoạch phát triển, cấu trúc phân chia công việc. Điều này thuận lợi cho
việc quyết định cần theo dõi những thành phần nào cần quản lý cấu hình
Trang 61
Chương 3 - Quản lý cấu hình phần mềm trong CMM & CMMI
Liên quan đến vùng tiến trình phân tích nguyên nhân và giải pháp để tìm ra
thêm thông tin về phương pháp sử dụng để phân tích ảnh hưởng của thay đổi yêu
cầu và phương pháp sử dụng khi việc ước lượng thay đổi
Liên quan đến vùng tiến trình Theo dõi và kiểm soát đề án để có nhiều
thông tin về việc phân tích thực hiện và những hành động sửa chữa
3.3.2.4 Các mục tiêu chuyên biệt
SG 1 Thiết lập các nhóm đối tượng cấu hình cơ sở
Chỉ ra các công việc nào cần được xác lập cấu hình cơ sở
SG 2 Theo dõi và kiểm soát những thay đổi
Những thay đổi về sản phẩm phải được kiểm soát của Quản lý cấu hình, chúng
được lưu vết và được kiểm soát
SG 3 Thiết lập tính tòan vẹn cấu hình
Ghi nhận và lưu sự tòan vẹn của các cấu hình cơ sở
3.3.2.5 Các mục tiêu tổng quát
GG 1 Đạt những mục tiêu cụ thể
GG 2 Chuẩn hoá một quy trình quản lý
GG 3 Chuẩn hoá một định nghĩa quy trình
GG 4 Chuẩn hoá một quy trình quản lý định lượng
GG 5 Chuẩn hoá một quy trình lạc quan
3.3.2.6 Mối quan hệ giữa mục tiêu và thực tiễn
SG 1 Thiết lập các cấu hình cơ sở
• SP 1.1-1 Chỉ ra các thực thể cấu hình
• SP 1.2-1 Thiết lập một hệ thống quản lý cấu hình
• SP 1.3-1 Tạo hoặc phát hành một cấu hình cơ sở
SG 2 Lưu vết và kiểm soát thay đổi
• SP 2.1-1 Lưu vết các thay đổi yêu cầu
• SP 2.2-1 Điều khiển các thành phần quản lý cấu hình
Trang 62
Chương 3 - Quản lý cấu hình phần mềm trong CMM & CMMI
SG 3 Thiết lập sự tòan vẹn
• SP 3.1-1 Chuẩn bị hồ sơ Quản lý cấu hình
• SP 3.2-1 Thực hiện kiểm tra cấu hình
GG 1 Đạt những mục đích cụ thể
• GP 1.1 Thực hiện những thói quen cơ bản
GG 2 Thể chế hoá một quy trình quản lý
• GP 2.1 Thiết lập một quy định có tổ chức
• GP 2.2 Lên kế hoạch quy trình
• GP 2.3 Cung cấp những tài nguyên
• GP 2.4 Gián trách nhiệm
• GP 2.5 Huấn luyện con người
• GP 2.6 Quản lý cấu hình
• GP 2.7 Xác định những người thầu khoán có liên quan
• GP 2.8 Quản lý và kiểm soát quy trình
• GP 2.9 Đánh giá một cách khách quan sự tham gia
• GP 2.10 Kiểm tra trạng thái với cấp độ quản lý cao hơn
GG 3 Chuẩn hoá việc định nghĩa quy trình
• GP 3.1 Thiết lập một quy trình định nghĩa
• GP 3.2 Thu thập các thông tin cải tiến
GG 4 Chuẩn hoá một quy trình quản lý định lượng
• GP 4.1 Thiết lập mục tiêu định lượng quy trình
• GP 4.2 Ổn định hoá các hiệu năng tiến trình phụ
GG 5 Chuẩn hoá một quy trình khách quan
• GP 5.1 Đảm bảo cải tiến liên tục quy trình
• GP 5.2 Sửa nguyên nhân gốc gây ra lỗi
Trang 63
Chương 3 - Quản lý cấu hình phần mềm trong CMM & CMMI
3.3.2.7 Các thực tiễn cụ thể trong từng mục đích
SG 1 Thiết lập các cấu hình cơ sở
SP 1.1 – 1 Xác định các thực thể cấu hình
SP 1.2 – 1 Thiết lập hệ thống quản lý cấu hình
SP 1.3 – 1 Tạo lập các nhóm cấu hình cơ sở và phát sinh sản phẩm
chuyển giao
Bảng 3-3 Danh sách các thực tiễn cho cho SG 1
SG 2 Theo vết và kiểm soát thay đổi
SP 2.1 – 1 Theo dõi các yêu cầu thay đổi
SP 2.2 – 1 Kiểm soát thay đổi thực thể cấu hình
Bảng 3-4 Danh sách các thực tiễn cho cho SG 2
SG 3 Thiết lập sự toàn vẹn cấu hình
SP 3.1 – 1 Thiết lập hồ sơ quản lý cấu hình
SP 3.2 – 1 Thực hiện kiểm tra quản lý cấu hình
Bảng 3-5 Danh sách các thực tiễn cho cho SG 3
SG 1 Thiết lập cấu hình cơ sở
Chỉ ra những sản phẩm cấu hình cơ sở
Thiết lập cấu hình cơ sở, theo dõi và kiểm soát những thay đổi để duy trì cấu
hình cơ sở, thiết lập sự tích hợp, ghi tài liệu và kiểm tra sự tích hợp của các cấu hình
cơ sở
SP 1.1-1 Chỉ ra những thực thể quản lý cấu hình
Chỉ ra những thực thể cấu hình, những thành tố, và những công việc liên quan
được kiểm soát bởi quản lý cấu hình
Định danh cấu hình được chọn, tạo ra, đặc tả như sau:
• Sản phẩm giao cho khách hàng
Trang 64
Chương 3 - Quản lý cấu hình phần mềm trong CMM & CMMI
• Chỉ rõ những công việc thực hiện bên trong
• Sản phẩm đạt được
• Những công cụ
Những thành phần khác được dùng để tạo và mô tả những công việc để tạo
nên sản phẩm
Những thực thể cấu hình đặt dưới sự kiểm soát cấu hình sẽ bao gồm những
đặc tả và những tài liệu giao tiếp nêu lên định nghĩa những yêu cầu của sản phẩm.
Những tài liệu khác tuỳ thuộc vào mức độ quan trọng của nó vào sản phẩm cũng có
thể bao gồm trong quản lý cấu hình như kết qủa kiểm tra.
Một “thực thể cấu hình” là một thực thể được thiết kế để quản lý cấu hình, nó
có thể bao gồm nhiều sản phẩm liên quan tới một cấu hình cơ sở. Nhóm logic này
cung cấp sự định danh ra và điều khiển sự truy cập. Sự lựa chọn công việc để quản
lý cấu hình nên dựa trên một tiêu chuẩn được thiết lập trong khi lập kế hoạch
Typical Work Products
Chỉ ra những thực thể cấu hình
Subpractices
Chọn những thực thể cấu hình và sản phẩm dựa trên tiêu chuẩn mô tả trên tài
liệu
Ví dụ tiêu chuẩn chọn những thực thể cấu hình vào những công việc theo cấp
thích hợp như sau:
• Sản phẩm công việc có thể được sử dụng bởi hai hay nhiều nhóm.
• Sản phẩm công việc luôn bị thay đổi vì lỗi hoặc thay đổi yêu cầu.
• Sản phầm công việc thì phụ thuộc lẫn nhau, do đó, khi thay đổi một trong
những thành phần, sẽ làm thay đổi những thành phần khác.
• Sản phẩm công việc là tiêu chuẩn để đánh giá đề án
Những ví dụ về sản phẩm có thể là thành phần của quản lý cấu hình bao gồm:
• Những định nghĩa quy trình
• Những yêu cầu
Trang 65
Chương 3 - Quản lý cấu hình phần mềm trong CMM & CMMI
• Thiết kế
• Kế hoạch kiểm thử và quy trình kiểm thử
• Kết qủa kiểm tra
• Những mô tả giao tiếp
+ Gán định danh duy nhất cho những đối tượng quản lý cấu hình
+ Đặc tả những tính chất quan trọng của mổi thực thể cấu hình
Ví dụ những tính chất của thực thể cấu hình bao gồm tác giả, tài liệu, loại file,
ngôn ngữ lập trình, những file mã nguồn
+ Đặc tả khi thực thể cấu hình đặt dưới sự quản lý cấu hình
Những ví dụ để quyết định khi nàp đặt quản lý cấu hình cho công việc:
• Trạng thái trong quy trình phát triển
• Khi sản phẩm sẵn sàng cho việc kiểm thử
• Mức độ kiểm soát mong muốn trên công việc
• Giới hạn về chi phí và thời gian
• Những yêu cầu khách hàng
• Chỉ người chịu những trách nhiệm đối với mỗi thành phần cấu hình
SP 1.2-1 Thiết lập một hệ thống quản lý cấu hình
Thiết lập và bảo trì cấu hình và thay đổi hệ thống quản lý để đìều khiển công
việc
Hệ thống quản lý cấu hình bao gồm kho lưu trữ, thủ tục, và những công cụ
truy cập vào các đối tượng cấu hình
Thay đổi hệ thống quản lý bao gồm kho lưu trữ, thủ tục, và những công cụ để
lưu lại và truy cập thay đổi yêu cầu
Typical Work Products
Hệ thống quản lý cấu hình với các công việc hỗ trợ
Hệ thống quản lý cấu hình truy cập vào các thủ tục điều khiển
Thay đổi cơ sở dữ liệu yêu cầu
Subpractices
Trang 66
Chương 3 - Quản lý cấu hình phần mềm trong CMM & CMMI
Thiết lập một cơ chế quản lý cấu hình nhiều cấp
Ví dụ những tình huống quản lý nhiều bao gồm:
• Nhiều cấp quản lý tại những thời điểm khác nhau trong vòng đời của đề án
( kiểm soát chặt chẽ hơn khi sản phẩm sắp hòan thành)
• Những thay đổi trong các cấp cần quản lý đối với nhiều loại hệ thống (hệ
thống chỉ gồm phần mềm và hệ thống bao gồm phần cứng và phần mềm)
• Những khác biệt giữa các cấp cần quản lý phải thoả mãn yêu cầu bảo mật,
yêu cầu an tòan đối với những thực thể cấu hình
Lưu trữ và phục hồi những thực thể cấu hình trong hệ thống quản lý cấu hình
Những ví dụ hệ thống quản lý cấu hình bao gồm:
• Hệ thống động (hoặc hệ thống phát triển) bao gồm các thành phần hiện tại
đang được tạo ra hoặc kiểm tra. Chúng đang trong sự quản lý của các nhà
developer và kiểm soát bới các developer. Thành phần cấu hình trong cấu
hình động là kiểm soát phiên bản
• Hệ thống quản lý chính bao gồm những cấu hình cơ sở hiện tại, và thay đổi
chúng. Thành phần cấu hình trong một hệ thống lớn đặt dưới sự quản lý cấu
hình hòan chỉnh như được mô tả ở vùng tiến trình
• Những hệ thống bao gồm đạt những phiên bản phát hành cấu hình cơ sở để
sử dụng. Những hệ thống tĩnh được đặt dưới sự quản lý cấu hình như mô tả
trong vùng tiến trình
Chia sẽ và trao đổi thành phần cấu hình giữa những cấp quản lý trong hệ thống
quản lý cấu hình
Lưu lại và phục hồi những phiên bản đạt được của những thành phần cấu hình
Lưu giữ, cập nhật, phục hồi những dữ liệu cấu hình lưu lại
Tạo những báo cáo về quản lý cấu hình từ hệ thống quản lý cấu hình
Bảo quản nội dung của hệ thống quản lý cấu hình
Những ví dụ của những chức năng bảo quản của hệ thống quản lý cấu hình
bao gồm:
Trang 67
Chương 3 - Quản lý cấu hình phần mềm trong CMM & CMMI
• Sao lưu và phục hồi những file quản lý cấu hình
• Đạt những file quản lý cấu hình
• Lưu lại những lỗi quản lý cấu hình
Kiểm tra lại cấu trúc quản lý cấu hình khi cần thiết
SP 1.3-1 Tạo hoặc phát hành cấu hình cơ sở
Tạo hoặc phát hành cấu hình cơ sở với mục đích sử dụng nội bộ hoặc giao cho
khách hàng
Một cấu hình cơ sở là một bộ những đặc tả hoặc những sản phẩm công việc
đang được kiểm tra và đạt được sự thỏa thuận. Sau đó nó là cơ bản để phát triển
nhiều hơn và chỉ thay đổi qua thay đổi quy trinh điều khiển. Một cấu hình cơ sở đại
diện cho công việc định danh các thực thể cấu hình và những thực thể liên quan
Một bộ những yêu cầu, thiết kế, file mã nguồn và những đoạn mã thực thi liên
quan, tài liệu người dùng (tất cả các thực thể liên quan) được gán sự định danh quy
nhất được xem là một cấu hình cơ sở.
Phát hành một cấu hình cơ sở, sửa chữa các file mã nguồn (những thành phần
cấu hình) từ hệ thống quản lý cấu hình và tạo ra những file thực thi. Một cấu hình
cơ sở được giao cho khách hàng thì thông thường gọi là một “phiên bản phát hành “
trong khi một cấu hình cơ sở sử dụng nội bộ thường gọi là “build”
Typical Work Products
Những cấu hình cơ sở
Mô tả các cấu hình cơ sở
Subpractices
Có sự cho phép của bộ quản lý cấu hình - configuration control board (CCB)
trước khi tạo hoặc phát hành baselines của những thành phần cấu hình
Tạo hoặc phát hành baselines chỉ từ những thành phần cấu hình trong hệ thống
quản lý cấu hình
Các tài liệu về các thực thể cấu hình cũng bao gồm trong cấu hình cơ sở
Có sẳn một cấu hình cơ sở hiện tại
SG 2 Theo dõi và kiểm soát thay đổi
Trang 68
Chương 3 - Quản lý cấu hình phần mềm trong CMM & CMMI
Những sản phẩm công việc đặt dưới sự quản lý cấu hình được theo dõi và
kiểm soát
Những quy tắc thực tiễn dưới mục tiêu chuyên biệt này để lưu trữ cấu hình cơ
sở sau khi chúng được thiết lập bới thực tiễn chuyên biệt dưới mục tiêu cụ thể Thiết
lập cấu hình cơ sở.
SP 2.1-1 Theo dõi thay đổi yêu cầu
Theo dõi thay đổi yêu cầu đối với những thành phần cấu hình
Thay đổi yêu cầu không chỉ những gồm những yêu cầu mới, yêu cầu thay đổi
mà còn gồm những lỗi trong sản phẩm.
Thay đổi yêu cầu được phân tích để quyết định ảnh hưởng thay đổi trên sản
phẩm công việc, những công việc liên quan, thời gian và chi phí
Typical Work Products
1. Thay đổi yêu cầu
Subpractices
Khởi tạo và lưu những thay đổi yêu cầu để thay đổi cơ sở dữ liệu yêu cầu
Phân tích ảnh hưởng của những thay đổi và sửa
Những thay đổi được đánh giá qua những hoạt động để đảm bảo chúng thống
nhất vói tất cả mặt kỹ thuật và yêu cầu đề án
Những thay đổi được đánh giá sự ảnh hưởng trực tiếp lên đề án và những yêu
cầu trong hợp đồng. Thay đổi tới một thực thể dùng trong nhiều sản phẩm có thể
gây ra vấn đề đối với những ứng dụng khác
Kiểm tra thay đổi yêu cầu sẽ được chỉ ra trong cấu hình cơ sở kế và thỏa thuận
để đạt sự đồng ý của những thành phần bị ảnh hưởng
Xem xét thay đổi yêu cầu bởi các thành viên tham gia. Lưu vị trí đối với
những thay đổi yêu cầu và lý do quyết định, bao gồm phạm vi thành công, mô tả
ngắn gọn kế hoạch hành động thích hợp. Thực hiện các hành động cần thực hiện
trong sự bố trí và ghi lại kết qủa cho các nhà thầu khoán.
Lưu vết trạng thái thay đổi yêu cầu đến khi nó kết thúc
Trang 69
Chương 3 - Quản lý cấu hình phần mềm trong CMM & CMMI
SP 2.2-2 Kiểm soát những thực thể cấu hình
Kiểm soát những thay đổi của những thành phần cấu hình
Lưu lại việc kiểm soát cấu hình sản phẩm của cấu hình cơ sở. Điều khiển này
bao gồm theo dõi cấu hình của mỗi thực thể cấu hình, chấp nhận một cấu hình mới
nếu cần và cập nhật cấu hình cơ sở.
Typical Work Products
Kiểm soát lịch sử của những thực thể cấu hình
Đạt được các cấu hình cơ sở
Subpractices
Kiểm soát thay đổi của các thực thể cấu hình trong suốt vòng đời của sản
phẩm.
Đạt được sự chấp thuận trước khi thay đổi những thành phần cấu hình được
đưa vào trong hệ thống quản lý cấu hình
Ví dụ: sự chấp thuận từ Ban quản lý cấu hình, người quản lý đề án, khách
hàng
Check in và check out những thực thể cấu hình từ hệ thống quản lý cấu hình
để thống nhất những thay đổi để lưu lại các lần sửa lỗi và sự đồng bộ của các thành
phần quản lý cấu hình
Những ví dụ về những bước check in- check out bao gồm:
Xác nhận việc kiểm tra đã được chấp thuận
Cập nhật hệ thống quản lý cấu hình
Đạt những cấu hình cơ sở thay thế và lưu trữ cấu hình cơ sở mới
Thực hiện kiểm tra để đảm bảo những thay đổi không gây ra những ảnh hưởng
không mong muốn trên baseline (đảm bảo những thay đổi không có ảnh hưởng đến
sự an toàn và bảo mật cho lữ liệu ).
Lưu lại những thay đổi của các thành phần cấu hình và những lý do thay đổi
để phù hợp
SG 3 Thiết lập sự toàn vẹn cầu hình
Thiết lập và lưu lại sự tích hợp của các cấu hình cơ sở.
Trang 70
Chương 3 - Quản lý cấu hình phần mềm trong CMM & CMMI
Sự tích hợp của các cấu hình cơ sở được thiết lập bởi một quy trình liên quan
tới mục tiêu chuyên biệt thiết lập cấu hình cơ sở, và nó được bảo trì bởi mục tiêu
chuyên biệt về Theo dõi và kiểm soát thay đổi.
SP 3.1-1 Thiết lập hồ sơ quản lý cấu hình
Thiết lập và lưu lại các thông tin mô tả các thực thể cấu hình
Typical Work Products
Xem lại lịch sử của các thực thể cấu hình
Thay đổi nhật ký (log)
Sao chép những thay đổi yêu cầu
Trạng thái của các thực thể cấu hình
Sự khác nhau giữa các cấu hình cơ sở
Subpractices
Lưu lại các hành động quản lý cấu hình để có thể biết được nội dung và trạng
thái của mỗi thực thể cấu hình và có thể phục hồi những phiên bản trước đó.
Đảm bảo các nhà thầu khoán có thể truy cập và biết trạng thái của những thực
thể cấu hình
Chỉ ra phiên bản gần nhất của cấu hình cơ sở
Chỉ ra phiên bản của một thành phần cấu hình tạo nên một cấu hình cơ sở cụ
thể
Mô tả sự khác biệt giữa các cấu hình cơ sở thành công
Kiểm tra trạng thái và lịch sữ của mỗi thực thể cấu hình khi cần thiết.
SP 3.2-2 Thực hiện kiểm tra cấu hình
Thực hiện kiểm tra cấu hình để lưu lại sự tích hợp của cấu hình cơ sở
Kiểm tra các hoạt động và các tiến trình quản lý cấu hình để đảm bảo kết qủa
của cấu hình cơ sở và tài liệu là chính xác, lưu lại kết qủa kiểm tra.
Typical Work Products
Kết qủa kiểm tra cấu hình
Hành động của các thực thể.
Subpractices
Trang 71
Chương 3 - Quản lý cấu hình phần mềm trong CMM & CMMI
Ước lương sự tích hợp của cầu hình cơ sở
Khẳng định việc lưu lại cấu hình chính xác sẽ chỉ ra cấu hình của các thực thể
cấu hình
Kiểm tra cấu trúc và sự tích hợp của các thực thể trong hệ thống quản lý cấu
hình
Khẳng định sự hoàn toàn đầy đủ và chính xác cùa thực thể trong hệ thống
quản lý cấu hình
Xác nhận sự bằng lòng với các quy trình và tiêu chuẩn quản lý cấu hình
Theo dõi hành động các thực thể từ lúc kiểm tra cho đến khi kết thúc
3.3.2.8 Các thực tiễn chung cho từng mục đích
GG 1 Đạt những mục tiêu chuyên biệt
Quy trình hỗ trợ giúp đạt những mục tiêu chuyên biệt của vùng quy trình bằng
cách chỉ ra những sản phẩm đầu vào và tạo ra những sản phẩm đầu ra.
GP 1.1 Thực hiện những thực tiển cơ bản
Thực hiện những thực tiển cơ bản vào quy trình quản lý cấu hình giúp phát
triển sản phẩm và cung cấp những dịch vụ để đạt những mục tiêu cụ thể của vùng
tiến trình
GG 2 Chuẩn hoá một quy trình quản lý
Quy trình này được chuẩn hoá như một quy trình quản lý
GP 2.1 Thiết lập hợpđồng
Thiết lập và lưu giữ hợp đồng để lập kế hoạch và thực hiện quy trình quản lý
cấu hình
Chi tiết : Hợp đồng thiết lập những mong muốn về việc thiết lập và duy trì cấu
hình cơ sở (dưới sự quản lý cấu hình ) , và thiết lập và duy trì sự tích hợp của các
cấu hình cơ sở
GP 2.2 Lập kế hoạch quy trình
Lập và duy trì kế hoạch thực hiện quy trình quản lý cấu hình
Trang 72
Chương 3 - Quản lý cấu hình phần mềm trong CMM & CMMI
Chi tiết: Kế hoạch để thực hiện quy trình quản lý cấu hình có thể bao gồm
(hoặc tham khảo đến) kế hoạch đề án.
GP 2.3 Cung cấp các nguồn tài nguyên
Cung cấp nguồn tài nguyên đầy đủ để thực hiện quy trình quản lý cấu hình,
phát triển sản phẩm, và cung cấp các dịch vụ cho quy trình
Chi tiết:
Ví dụ của nguồn tài nguyên bao gồm những công cụ sau:
Công cụ quản lý cấu hình
Công cụ quản lý dữ liệu
Công cụ lưu trữ và tái tạo
Chương trình cơ sở dữ liệu
GP 2.4 Giao trách nhiệm
Giao trách nhiệm thực hiện quy trình, phát triển sản phẩm, cung cấp dịch vụ
cho quy trình quản lý cấu hình
GP 2.5 Huấn luyện nhân viên
Huấn luyện nhân viên thực hiện hoặc hỗ trợ quy trinh quản lý cấu hình khi cần
Ví dụ đề tài huấn luyện bao gồm:
+ Vai trò, trách nhiệm, và quyền hạn của nhân viên quản lý cấu hình
+ Chuẩn quản lý cấu hình, quy trình và phương pháp
+ Hệ thống thư viện cấu hình
GP 2.6 Quản lý cấu hình
Đưa những sản phẩm tạo ra của quy trình quản lý cấu hình dưới cấp quản lý
cấu hình phù hợp
Những ví dụ sản phẩm đặt dưới sự quản lý cấu hình bao gồm:
+ Danh sách truy cập
+ Các báo cáo thay đổi trạng thái
+ Thay đổi cơ sở dữ liệu yêu cầu
+ Họp với ban quản lý cấu hình
+ Đạt những cấu hình cơ sở
Trang 73
Chương 3 - Quản lý cấu hình phần mềm trong CMM & CMMI
GP 2.7 Chỉ ra những nhà thầu khoán liên quan
Ví dụ các hoạt động của nhà thầu khoán bao gồm:
+ Thiết lập các cấu hình cơ sở
+ Xem các báo cáo hệ thống quản lý cấu hình và giải quyết vấn đề
+ Tạo sự ảnh hưởng thay đổi trong các thực thể cấu hình
+ Thực hiện kiểm tra cấu hình
+ Xem kết qủa của kiểm tra cấu hình
GP 2.8 Quản lý và theo dõi quy trình
Quản lý và theo dõi quy trình quản lý cấu hình so với kế hoạch để thực hiện
quy trình và có hành động sửa lỗi nếu có.
Ví dụ các phép đo đùng trong theo dõi và kiểm tra bao gồm:
+ Số lượng thay đổi tới thực thể cấu hình
+ Số lượng cấu hình kiểm tra
GP 2.9 Đánh giá khách quan
Đánh giá một cách khách quan quy trình quản lý cấu hình theo mô tả của quy
trình, theo tiêu chuẩn, các quy trình
- Các hoạt động kiểm tra các hoạt động bao gồm
+ Thiết lập các cấu hình cơ sở
+ Theo dõi và kiểm soát thay đổi
+ Thiết lập và lưu giữ tích hợp của các cấu hình cơ sở
- Ví dụ kiểm tra sản phẩm bao gồm:
+ Đạt cấu hình cơ sở
+ Cơ sở dữ liệu thay đổi yêu cầu
GP 2.10 Kiểm tra trạng thái với mức độ quản lý cao hơn.
Kiểm tra các hoạt động, trạng thái, và kết qủa của quy trình quản lý cấu hình
với cấp quản lý cao hơn và giải quyết vấn đề
GG 3 Chuẩn hoá các quy trình định nghĩa
Quy trình được chuẩn hoá như một quy trình định nghĩa.
Trang 74
Chương 3 - Quản lý cấu hình phần mềm trong CMM & CMMI
GP 3.1 Thiết lập quy trình định nghĩa
Thiết lập và lưu trữ định nghĩa quy trình quản lý cấu hình
GP 3.2 Thu thập các thông tin để cải tiến
Sản phẩm có được, các phép đo, kết qủa đo, thông tin cải tiến từ kế hoạch và
thực hiện để hỗ trợ dùng cho tương lai và cải tiến các quy trình
GG 4 Chuẩn hoá quy trình quản lý định lượng
Quy trình được chuẩn hoá như một quy trình quản lý định lượng
GP 4.1 Thiết lập mục tiêu đánh giá định lượng của quy trình
Thiết lập và lưu giữ mục tiêu đánh giá cho quy trình quản lý cấu hình để chỉ
chất lượng và sự thực hiện dựa vào nhu cầu của khách hàng mục tiêu kinh doanh
GP 4.2 Ổn dịnh hoá hiệu năng của các tiến trình con
Ổn định hiệu năng của các quy trình con sẽ quyết định đến khả năng quy trình
quản lý cấu hình đạt mục tiêu chất lượng và hiệu năng.
GG 5 Chuẩn hoá một quy trình khách quan
Quy trình được chuẩn hoá như một quy trình khách quan
GP 5.1 Đảm bảo liên tục cải tiến quy trình
Đảm bảo liên tục cải tiến quy trình quản lý cấu hình trong việc đáp ứng các
mục tiêu thích hợp trong kinh doanh, của tổ chức
GP 5.2 Sửa đúng nguôn gốc lỗi gây ra vấn đề
Chỉ ra và sửa nguồn gốc lỗi gây ra lỗi và những vấn đề khác trong tiến trình
quản lý cấu hình
Trang 75
Chương 4 - Vấn đề định danh, quản lý phiên bản và các giải pháp
Chương 4 Vấn đề định danh, quản lý phiên bản
và các giải pháp
Trong các tiến trình con của tiến trình quản lý cấu hình phần mềm có rất nhiều
vấn đề mà người thực hiện việc quản lý cấu hình thường gặp phải:
• Việc đặt tên các đối tượng cấu hình
• Thiết lập cơ sở dữ liệu
• Xác định và định danh phiên bản
4.1 Đặt tên các đối tượng cấu hình
Các phương pháp đặt tên đối tượng cấu hình cần phải đảm bảo những điều
kiện sau:
• Mỗi đối tượng phải có tên duy nhất trong toàn bộ hệ thống quản lý cấu
hình.
• Tên đối tượng, nên xúc tích, gợi nhớ và hàm ý ý nghĩa của đối tượng.
• Cách đặt tên hàm ý hàm ý các mối quan hệ giữa các đối tượng được quản
lý. Chẳng hạn liên hệ giữa hồ sơ yêu cầu, thiết kế, mã nguồn và hồ sơ kiểm
tra cho một phiên bản của phần mềm cụ thể.
• Bản thân phương pháp đặt tên đối tượng phải được kiểm sóat bởi hệ thống
quản lý cấu hình (có thể tự động hoặc không), không được đặt tên tùy tiện.
4.1.1 Đặt tên phân cấp dựa theo cấu trúc cây.
Sự duy nhất của tên đối tượng được thể hiện bởi đường đi duy nhất từ gốc đến
mỗi nút trong cây phân cấp.
Mối liên hệ của các đối tượng thể hiện qua đối tượng có cùng chung nút cha,
các đối tượng có quan hệ cha con ...
Ví dụ:
PCL_TOOLS/EDIT/FORMS/DISPLAY/AST_INTERFACE/CODE
Trang 76
Chương 4 - Vấn đề định danh, quản lý phiên bản và các giải pháp
PCL_TOOLS/EDIT/HELP/QUERY/HELPFRAMES/FR_1
Hình 4-1 Cây phân cấp đặt tên
Điểm hạn chế:
• Phụ thuộc nhiều vào đề án cụ thể, làm giảm khả năng dùng lại của một
thành tố (chẳng hạn dùng lại một thành tố thì sao chép và đổi tên).
• Nếu dùng cách đặt tên để thiết kế hệ thống tập tin lưu trữ thì gặp khó khăn
trong trường hợp các đối tượng được truy xuất phân loại dựa vào các thuộc
tính khác nhau.
4.1.2 Đặt tên phân cấp dựa theo phương pháp tiền tố và hậu tố
Theo phương pháp đặt tên này, mội đối tượng cấu hình ngoài tên gọi có ý
nghĩa gợi nhớ và hàm ý ý nghĩa của đối tượng đó còn có thêm những thông tin khác
được thêm vào đầu tên đối tượng để đảm bảo tính duy nhất của đối tượng đó trong
hệ thống cấu hình.
Để rõ ràng, mỗi loại đối tượng cấu hình nên có một qui tắc đặt tên riêng. Chủ
yếu được phân làm hai loại: Hồ sơ văn bản (hồ sơ đặc tả, hồ sơ thiết kế) và mã
nguồn chương trình.
Sử dụng qui tắc đặt tên sau cho các tài liệu thuộc một dự án phần mềm cụ thể:
Trang 77
Chương 4 - Vấn đề định danh, quản lý phiên bản và các giải pháp
Tên viết tắt Ý nghĩa
PPPP Tên dự án phần mềm mà tài liệu đó phụ thuộc vào
NNN Tên của loại tài liệu trong dự án phần mềm mà tài liệu đó thuộc
vào. Sử dụng từ viết tắt và được mô tả trong sổ tay “cấu hình
phần mềm” của công ty.
Vd:
URS: User requirement specification – Hồ sơ đặc yêu cầu
của người dùng.
OP: Operation Plan – Hồ sơ về kế họach thực hiện
MMM Tên gợi nhớ của tài liệu
TTT Phần mở rộng của tài liệu này
Bảng 4-1 Diễn giải từ viết tắt cho qui tắc đặt tên
Vd: Dự án quán lý về kế tóan có một hồ sơ đặc tả về một yêu cầu của
người dùng sẽ được đặt tên như sau:
QLKT_URS.yeucau_1.doc
Ưu điểm:
• Có thể dùng lại các đối tượng cấu hình đã phát triển cho đề án khác mà
không cần phải sao chép hoặc đổi tên đối tượng cấu hình đó.
Điểm hạn chế:
• Tên của đối tượng sẽ trở nên dài và vịêc nhớ được các từ viết tắt của tên tài
loại liệu sẽ gây khó khăn cho những người mới tham gia vào công ty hoặc
nếu số lượng từ viết tắt nhiều sẽ rất khó nhớ.
• Nếu tất cả các đối tượng cấu hình đều được đặt chung một chỗ trên hệ
thống sẽ gây khó khăn trong việc tìm kiếm và xác định các thành tố cho
người tích hợp phần mềm.
Trang 78
Chương 4 - Vấn đề định danh, quản lý phiên bản và các giải pháp
4.1.3 Nhận xét chung
Hai phương pháp đặt tên trên có thể được dùng độc lập hoặc kết hợp với nhau
để có được cách đặt tên đối tượng cấu hình phần mềm mới giải quyết được hai vấn
đề sau :
• Vấn đề trùng tên và dùng lại của các đối tượng cấu hình có thể được giải
quyết bằng phương pháp đặt tên theo tiền tố.
• Để giảm sự phức tạp của các thành tố do đặt chung vào một vị trí có thể xây
dựng một công cụ riêng để tạo ra một cấu trúc nhìn khác nhau cho những
đề án khác nhau. Hoặc sử dụng một công cụ có hỗ trợ tính năng tạo chia sẻ
(share) một đối tượng cấu hình vào nhiều vị trí khác nhau trên cấu trúc cây.
4.2 Xác định và định danh phiên bản
Việc xác định khi nào thì một phiên bản phần mềm mới được ra đời đã được
qui định trong việc lập kế họach cấu hình. Bên cạnh đó, người quản lý cấu hình cần
phải xác định được phương pháp định danh phiên bản cho phù hợp với phần mềm
cần phát triển.
Các phương pháp định danh phiên bản chỉ phản ánh được những mốc sự kiện
liên quan đến quá trình phát triển của phần mềm hoặc các phần tử cấu hình chứ
không cho biết các thuộc tính liên quan đến mỗi phiên bản phần mềm. Các thuộc
tính nên được lưu trong CSDL về quản lý cấu hình và bao gồm ít nhất những thông
tin sau đây:
• Tên khách hàng
• Ngôn ngữ dùng để phát triển.
• Tình trạng phát triển
• Cấu hình phần cứng
• Hệ điều hành
• Ngày lập phiên bản
Có 3 phương pháp định danh phiên bản chính:
• Sơ đồ tuyến tính
Trang 79
Chương 4 - Vấn đề định danh, quản lý phiên bản và các giải pháp
• Sơ đồ định danh theo dạng mạng
• Sơ đồ định danh theo tên
4.2.1 Sơ đồ tuyến tính
Sơ đồ nầy giả sử sự tiến hoá của hệ thống phần mềm diễn ra tuần tự, phiên bản
sau tương thích với phiên bản trước.
• Phiên bản đầu tiên thông thường là 1.0;
• Các phiên bản cơ sở là 1.0, 2.0, 3.0, …;
• Các phiên bản khác được bắt nguồn từ phiên bản cơ sở, ví dụ như bắt
nguồn từ phiên bản 2.0 là 2.1, 2.2, …
Phương pháp định danh này thích hợp cho những hệ thống phần mềm đơn
giản và việc định danh phiên bản có thể dựa trên việc check in hoặc check out của
hệ thống cấu hình.
4.2.2 Sơ đồ định danh theo mạng.
Sơ đồ định danh theo dạng mạng cho phép các phiên bản sau có thể được bắt
nguồn từ một phiên bản bất kỳ trong danh sách phiên bản hiện có của hệ thống
không nhất thiết phải từ phiên bản cơ sở trước đó. .
Trang 80
Chương 4 - Vấn đề định danh, quản lý phiên bản và các giải pháp
Hình 4-2 Sơ đồ định danh theo mạng
4.2.3 Sơ đồ định danh theo tên
Sử dụng phương pháp đặt tên phân cấp theo cấu trúc cây như trình bày ở trên.
Ví dụ: V1/VMS/DB Server: là phiên bản của DBServer chạy trên hệ điều hành
VMS
Trang 81
Chương 5 - Các công cụ hỗ trợ quản lý cấu hình
Chương 5 Các công cụ hỗ trợ quản lý cấu hình
5.1 Tóm tắt
Hiện nay, có rất nhiều công cụ tin học hỗ trợ việc quản lý cấu hình. Các công
cụ này có thể được cài đặt riêng lẻ hoặc được tích hợp vào toàn bộ tiến trình quản lý
cấu hình phần mềm.
• Cài đặt tích hợp gây khó khăn khi giao tiếp với các công cụ sẵn có.
• Cài đặt riêng lẻ linh động ít phí tổn và có thể tận dụng lại được các công cụ
sẵn có nhưng không thể theo dõi “vết” của các đối tượng trong suốt quá
trình quản lý cấu hình phần mềm.
Hai công cụ được trình bày trong chương này có thể được cài đặt riêng lẻ hoặc
tích hợp với một vài môi trường phát triển phần mềm tích hợp (IDE):
• Surround SCM 2.1.4 là một sản phẩm thương mại được phát triển bởi
Seapine Software Company.
• CVSNT được phát triển bởi Tony Hole. Công cụ này được cung cấp miễn
phí và được sử dụng rộng rãi trong cộng đồng mã nguồn mở GNU’s.
Xem hướng dẫn cài đặt và sử dụng 2 chương trình trên trong phần phụ lục A
5.2 Tính năng chung của Surround SCM và CVS
Hệ điều hành: Cả 2 công cụ trên đều hỗ trợ đa hệ điều hành trong đó có cá hệ
điều hành đang được sử dụng rộng rãi là Windows, Unix, Linux ...
5.3 Surround SCM
5.3.1 Mục đích
Surround SCM là một công cụ dùng để theo dõi sự thay đổi của mã nguồn
phần mềm dứơi những phiên bản khác nhau.
Trang 82
Chương 5 - Các công cụ hỗ trợ quản lý cấu hình
Surround SCM còn hỗ trợ việc phát triển phần mềm song song giải quyết vấn
đề đụng độ về mã nguồn khi có nhiều lập trình viên cùng làm việc chung trên một
project tại một thời điểm.
Ngoài ra, chương trình có thể tích hợp với các sản phẩm khác của công ty để
tạo thành một hệ thống quản lý cấu hình riêng theo qui trình do Seapine đề nghị cho
khách hàng sử dụng sản phẩm của họ.
5.3.2 Cấu trúc của chương trình
Surround SCM bao gồm 2 phần chính:
Server:
• Seapine License Server
• Seapine License Server Admin
• Surround SCM Server
Client:
• Surround SCM Client
• Surround SCM Analyse Utilities
Seapine License Server: đây chỉ đơn giản công cụ dùng để Seapine kiểm tra
bản quyền sử dụng của khách hàng. Seapine đòi hỏi người dùng phải chạy Seapine
License Server song song với Surround SCM Server để kiểm tra quyền sử dụng hệ
thống mỗi khi Surround Client kết nối đến server.
Seapine License Server Admin: đây là công cụ hỗ trợ cho người quản trị hệ
thống bao gồm:
• Quản lý license đăng ký sử dụng chương trình.
• Quản trị người dùng: Cho phép thêm, hủy bỏ, phân quyền sử dụng cho mỗi
user.
• Xem thông tin được ghi nhận trên server: các thông tin về vịêc kết nối đến
hệ thống hoặc các lỗi xảy ra trong quá trình sử dụng được Server ghi nhận
lại.
Trang 83
Chương 5 - Các công cụ hỗ trợ quản lý cấu hình
• Thiết lập những tùy chọn cho server: thiết các thông số liên quan đến việc
kết nối đến server: cổng kết nối, thời gian, các loại lỗi cần ghi nhận lại, thời
gian hết hạn của mật khẩu, mã hóa thông điệp khi truyền đi trong mạng ...
Surround SCM Server: là công cụ để quản lý cơ sở dữ liệu của SCM, lắng
nghe các kết nối và yêu cầu truy cập dữ liệu từ phía client đến server.
Surround SCM Client: là phần chính của SCM giúp các nhà phát triển thao
tác trên tập tin, dữ liệu được phép sử dụng (được lưu trữ trên cơ sở dữ liệu của
SCM). Cung cấp cho người dùng rất nhiều thao tác để truy cập hệ thống: check in,
check out, get ...
5.4 CVS và CVSNT
5.4.1 Mục đích
CVSNT được phát triển dựa trên công cụ mã nguồn mở có sẵn là CVS được
phát triển bởi Brian Berliner. CVSNT được phát triển để tạo ra một Server cho CVS
chạy chủ yếu trên hệ điều hành Windows NT. Vì CVS Server được thiết lập để chạy
chủ yếu trên hệ điều hành thuộc họ UNIX.
CVSNT cung cấp cho người dùng một giao diện quản trị Server bằng đồ họa
thuận tiện. Ở chế độ dòng lệnh, chương trình còn cung cấp thêm một vài lệnh bổ
xung mà CVS chuẩn không có liên quan đến việc quản trị hệ thống như: thiết lập
chế độ kết nối, thiết lập quyền truy cập cho thư mục trong kho chứa.
Cvs là một hệ thống quản lý phiên bản khá nổi tiếng trong cộng đồng mã
nguồn mở. Với công cụ này, người dùng có thể ghi nhận lại lịch sử của tập tin mã
nguồn. Giống như các chương trình quản lý mã nguồn khác, cvs cũng hỗ trợ việc
phát triển phần mềm theo nhóm hoặc phân nhánh hệ thống đang phát triển thành
nhiều nhánh khác nhau phục vụ cho những yêu cầu riêng biệt.
5.4.2 Cấu trúc của CVSNT
CVSNT có 3 chương trình chính thường được sử dụng là:
Trang 84
Chương 5 - Các công cụ hỗ trợ quản lý cấu hình
• cvsservice.exe
• cvslock.exe
• cvs.exe
cvsservice.exe & cvslock : là 2 chương trình chạy dứơi hệ thống để cung cấp
giao diện lệnh liên quan đến việc nhận kết nối từ client và quản việc truy xuất lý
kho chứa được lưu trữ trên server.
cvs.exe: còn được gọi là cvs client dùng để kết nối và tương tác với server và
truy cập kho chứa trên server.
Trang 85
Chương 6 - Ứng dụng minh họa “System Version Management”
Chương 6 Ứng dụng minh họa “System Version
Management”
6.1 Phân tích hiện trạng phát triển phần mềm tại T3H
T3H phát triển phần mềm theo quy trình thác nước bao gồm các giai đoạn sau:
• Khảo sát hiện trạng – xác định yêu cầu
• Lập giải pháp khả thi
• Phân tích
• Thiết kế
• Coding
• Kiểm thử
• Triển khai và bảo trì
Quy trình được minh hoạ qua sơ đồ
Trang 86
Chương 6 - Ứng dụng minh họa “System Version Management”
Hình 6-1 Qui trình phát triển phần mềm của T3H
Trang 87
Chương 6 - Ứng dụng minh họa “System Version Management”
MÔ TẢ CÁC GIAI ĐOẠN TRONG QUY TRÌNH PHÁT TRIỂN PHẦN MỀM
Giai Lập giải pháp Khảo sát – phân tích Thiết kế phần mềm Xây dựng Kiểm tra và
đoạn khả thi phần mềm thử nghiệm nội bộ
Tài liệu khảo − Tài liệu giải pháp − Tài liệu khảo sát phân − Tài − Tài liệu khảo sát
liệu khả thi tích sát phân tích phân tích
đầu − Tài liệu thiết kế − Tài liệu thiết kế
vào phần mềm phần mềm
− Prototype − Chương trình
chưong trình
1.Thiết kế kiến trúc 1.Thiết kế chung 1.Thiết kế kịch bản Mô tả − Khảo sát khả thi − Khảo sát chi tiết
phần mềm kỹ thuật: kiểm tra công − Mô tả và phân − Mô tả và phân tích
2.Thiết kế dữ liệu mức 2.Kiểm tra từng chức việc dùng − Biến tích hiện trạng : hiện trạng (chi tiết
vật lý. năng: cụ thể chung chú trọng đến hơn Giải pháp khả
3.Thiết kế chiến lược: của − Kỹ thuật tính khả thi của thi) : − Thư viện hàm:
giai − Các quy ước chung quy trình nghiệp các hàm dùng − Nghiệp vụ − Quy trình nghiệp vụ
đoạn vụ sẽ được tin chung, các hàm 3.Kiểm tra tích hợp − Cơ chế phát sinh khoá − Sơ đồ tổ chức xử lý
học hoá. hệ thống 4.Chỉnh sửa các lỗi
Trang 88
Chương 6 - Ứng dụng minh họa “System Version Management”
của chương trình lớp đối − Xác định yêu − Mối liên quan với hệ − Kiểm tra RBTV − Các
5.Thủ nghiệm cầu nghiệp vụ thống khác tượng (hoặc − Xử lý và thông báo
chuyển đổi từ dữ liệu màn hình) cơ sở lỗi − Xác định yêu − Phân tích sơ bộ
cũ 2.Thiết kế chi tiết cầu kỹ thuật − Mô hình dữ liệu sơ − Sao lưu và phục hồi
6.Lập tài liệu hướng chức năng bộ dữ liệu − Đề xuất giải
dẫn 3.Cài đặt CSDL pháp thực hiện − Yêu cầu nghiệp vụ − Bảo mật
4.Lập trình và trúc kỹ − Kiến − Yêu cầu hệ thống − Truyền (gửi/nhận) dữ
kiểm thử cục bộ thuật liệu − Yêu cầu giao diện
4.Thiết kế chức năng: − Vấn đề chuyển − Yêu cầu sao lưu
đổi, cập nhật dữ − Sơ đồ màn hình − Yêu cầu bảo mật
liệu cũ − Màn hình chính và hệ cầu đường − Yêu
− Kinh phí thống thực đơn truyền (gửi/nhận) dữ
− Thời gian thực − Màn hình liệu
hiện − Báo biểu − Yêu cầu về chuyển
thảo − Thương đổi, cập nhật dữ liệu toán xử lý − Thuật
−
hợp đồng cũ chính trên các màn
hình và báo biểu − Tập hợp các tài liệu
Trang 89
Chương 6 - Ứng dụng minh họa “System Version Management”
đã thu thập từ quá 5.Xây dựng prototype
trình khảo sát chương trình
Mô tả − Lập kế hoạch và theo dõi tiến độ
công − Quản lý cấu hình
việc − Xem xét và duyệt kết qủa công việc
chung − Tập huấn, chuyển giao kết qủa công việc
Kết liệu thiết kế − Tài liệu giải − Tài liệu khảo sát phân tích − Tài − Tài liệu Xây dựng − Tài liệu Kết
qủa pháp khả thi phần mềm phần mềm qủa
đầu chương tra − Hợp đồng − Prototype − Script phát sinh − Kiểm
ra đã ký trình CSDL chương trình
liệu − Chương trình − Tài
hướng dẫn
− Chương
trình đã kiểm
tra
Trang 90
Chương 6 - Ứng dụng minh họa “System Version Management”
• Các vai trò tham gia trong một quy trình phát triển phần mềm
NVPhân tích thiết kế - Quản trị hệ thống : hoạt động chủ yếu trong giai
đoạn lập giải pháp khả thi & khảo sát phân tích, các hồ sơ, tài liệu cuối cùng được
lưu trữ chủ yếu là văn bản giấy, nếu có lưu trữ trên máy thì cũng lưu trữ trên máy
của nhân viên phụ trách.. Sau khi kết thúc quá trình khảo sát, nhân viên ghi nhận
các yêu cầu từ khách hàng, lưu lại dưới dạng document. Khi có sửa đổi thì ghi nhận
lại ngay trên document đó.
NV Phân tích thiết kế : Khảo sát phân tích, thiết kế phần mềm lưu lại dưới
dạng các document, không theo chuẩn nhất định và cũng được sửa chồng khi có sự
thay đổi. Việc chuyển giao sang giai đoạn khác được thực hiện thông qua việc ký
nhận văn bản.
NV Lập trình : chịu trách nhiệm lập trình, chỉnh sửa code, đưa ra các release.
Mỗi nhóm lập trình sẽ được phân công từng module cụ thể. Quản lý các phiên bản
bằng Visual Source Safe. Khi source code thay đổi sẽ phát sinh 1 phiên bản mới,
tuy nhiên nó không thể hiện được sự thay đổi này ảnh hưởng đến những module
nào. Việc phân công coding cũng được thực hiện bằng tay.
NV Kiểm tra : Sau khi 1 module được coding xong hay đến 1 thời điểm quy
định, chương trình được test bởi nhóm NVKiểm tra. Việc kiểm tra được thực hiện
trên giấy. Khi phát hiện lỗi, nhân viên kiểm tra ghi nhận lại lỗi, và thực hiện lặp lại
cho đến hết module. Sau khi test xong, 1 module, bảng tường tình lỗi sẽ được gởi
đến người chịu trách nhiệm đánh giá lỗi, thường là quản lý dự án. Nếu là lỗi có thể
sửa sẽ đựơc xác nhận và chuyển giao cho bộ phận lập trình. Nếu lỗi có thể bỏ qua,
người quản lý dự án sẽ xác nhận và kết thúc việc test. (xem chi tiết mô hình bên
dưới)
NV quản lý đề án : là người có chức vụ cao nhất trong quy trình phát triển
phần mềm, quản lý toàn bộ các thành viên, chịu trách nhiệm phân công, lên kế
hoạch, theo dõi tiến độ thực hiện.
Trưởng dự án : người chịu trách nhiệm về quản lý dự án đó và ký kết hợp
đồng với phía khách hàng.
Trang 91
Chương 6 - Ứng dụng minh họa “System Version Management”
NV Quản lý cấu hình : chịu trách nhiệm về việc tổ chức quản lý những tài
liệu có liên quan đến đề án đang thực hiện như: quản lý các thành phần của từng
phiên bản có trong đề án, tạo các phiên bản test và phiên bản giao cho khách hàng,
đóng gói sản phẩm ...
NV Quản lý kiểm thử : Chịu trách nhiệm về việc lên kế họach kiểm thử, cho
từng giai đọan của đề án, đánh giá kết quả của việc kiểm thử. Và cùng với nhân viên
quản lý đề án, trưởng dự án quyết định khi nào thì ngưng việc kiểm thử trong
trường hợp chương trình vẫn còn lỗi nhưng những lỗi đó không nghiêm trọng, có
Quaûn lyù döï aùn
Tröôûng döï aùn
NV Quaûn lyù caáu hình
NV Quaûn lyù kieåm thöû
NV kieåm thöû
NV Quaûn trò heä thoáng
NV Phaân tích thieát keá
NV laäp trình
NV huaán luyeän
thể chấp nhận để giao cho khách hàng vì thời hạn giao đã gần đến ...
Hình 6-2 Sơ đồ phân cấp vai trò của nhân viên trong hệ thống
Qui trình quản lý cấu hình:
Hiện tại công việc tổ chức quản lý cấu hình của phòng phát triển phần mềm
(PPTPM) hầu như là không có và cũng ít được lưu tâm đến trong quá trình thực
hiện một đề án. Việc lưu trữ cấu hình của một phần mềm – cụ thể là cây cấu trúc
của một đề án phần mềm – được tổ chức theo chuẩn của tổ chức tập tin & thư mục.
PPTPM sử dụng một server (tạm gọi là File System) để lưu trữ toàn bộ hồ sơ (hồ sơ
phân tích, thiết kế, mã ngùôn) của từng đồ án trên đó. Các hồ sơ này được phân loại
theo loại tài liệu hoặc theo phân hệ tùy thuộc vào qui mô của đề án phần mềm.
Vd: Với một đề án nhỏ thì cây cấu hình được tổ chức theo loại tài liệu:
Trang 92
Đề án XYZ
Documents
Release
Source Code
Form
Report
Script
Help Document
Chương 6 - Ứng dụng minh họa “System Version Management”
Hình 6-3 Cây phân cấp theo cấu trúc
Đối với đề án lớn, như những đề án làm cho các công ty hoặc các tổ chức hành
chánh nhà nước có liên quan đến nhiều phòng ban khác nhau thì sẽ tổ chức theo các
Đề án XYZ
Phòng kế tóan
Phòng bán hàng
Phòng sản xuất
Form
Report
Script
Kho hàng
phòng ban, mỗi phòng ban tương ứng với một phân hệ trong chương trình:
Hình 6-4 Cây phân cấp theo phân hệ / kiến trúc
Trong quá trình thực hiện đề án, các lập trình viên không lấy tập tin trực tiếp
trên thư mục của server mà thông qua chương trình Visual Source Safe (VSS). Và
thực hiện việc cập nhật của mình thông qua chương trình này. Tuy nhiên mỗi lần
lấy tập tin ra và cập nhật lại nhân viên lập trình ít khi ghi chú lại mục đích của việc
lấy ra hoặc cập nhật lại.
Trang 93
Chương 6 - Ứng dụng minh họa “System Version Management”
Ngoài ra để rút ngắn thời gian thực hiện đề án, mỗi khi hoàn tất đựơc một
phân hệ nào của đề án hoặc một nhóm các chức năng của chương trình thì sẽ có
nhân viên tiến hành việc lấy phân hệ hoặc nhóm chức năng này ra biên dịch thành
một phiên bản để tiến hành kiểm thử nội bộ hoặc đem đi tham khảo ý kiến của
khách hàng. Sau khi hoàn thiện đựơc những phân hệ này thì các nhân viên lập trình
lại tiếp tục việc lập trình cho đến khi hoàn thành toàn bộ sản phẩm mà không có sự
lưu vết lại những phiên bản kiểm thử này.
Với mỗi một đề án phần mềm thì sản phẩm giao cho khách hàng là sản phần
cuối cùng sau khi hoàn chỉnh phần mềm. Nên việc xác định phiên bản để giao cho
khách hàng thường là phiên bản 1.0.
Về sau, Khi khách hàng có yêu cầu thay đổi về chương trình hoặc có nhận một
đề án tương tự, PPTPM vẫn tiến hành việc phân tích lại từ đầu và tạo một cây cấu
hình mới cho đề án phần mềm đó. Nếu có tận dụng lại thì cũng tận dụng lại những
phân hệ nào không thay đổi mà thôi. Tuy nhiên việc này thường ít xảy ra sau khi đề
án phần mềm đã ngưng.
Trang 94
Chương 6 - Ứng dụng minh họa “System Version Management”
Hình 6-5 Sơ đồ hoạt động của hệ thống hiện tại
6.2 Đặc tả yêu cầu của hệ thống mới
Đối với lập trình viên hệ thống mới không có gì thay đổi nhiều ngoài một số
qui định về việc truy cập hệ thống. Còn đối với người quản lý cấu hình, hệ thống
mới có thêm những công cụ nhằm tiện lợi hơn cho việc quản lý các release test,
release giao cho khách hàng, lưu trữ những thông tin về cầu hình cho từng phiên
bản của sản phẩm.
Khi có bản phân tích thiết kế chi tiết của phần phềm, người quản lý cấu hình
sẽ lên khung của project (gồm các thư mục chứa các phân hệ, các file của phân hệ)
và đưa lên server. Chương trình sẽ lưu trữ khung project này dưới dạng cây thư
mục.
Sau đó, mỗi phân hệ sẽ được giao cho các nhân viên lập trình để code.
Trang 95
Chương 6 - Ứng dụng minh họa “System Version Management”
Nhân viên lập trình sẽ check out file ra để cập nhật . Sau khi cập nhật xong,
nhân viên lập trình sẽ check in file trở lại. Hệ thống sẽ ghi nhận lại việc check in/
check out như:
• người check in/ check out
• thời gian check in/ check out
• file bị check in/ check out
• version của file tăng lên một.
Đồng thời, để dễ theo dõi sự ảnh hưởng của các phân hê, file, project với nhau,
người nhân viên quản lý cấu hình sẽ thiết lập mối quan hệ ảnh hưởng giữa các phân
hệ, file, project với nhau. Hệ thống sẽ ghi nhận lại mối ảnh hưởng này. Khi cần,
người trưởng đề án (người phân tích thiết kế) có thể dựa vào mối quan hệ ảnh
hưởng này để theo dõi sự thay đổi trong đề án khi một phân hệ, một file bị thay đổi
(do trong quá trình test phát hiện lỗi hoặc do khách hàng thay đổi yêu cầu).
Khi đã xong một hoặc nhiều phân hệ, các trưởng đề án (người quản lý cấu
hình) sẽ quyết định có tạo release trên các phân hệ đó hay không. Việc tạo release
này dùng cho quá trình test hoặc giao cho khách hàng. Hệ thống sẽ ghi nhận nội
dung của release này gồm:
• Các phân hệ bên trong release
• Các thư mục
• File
• Version của release
• Ngày tạo release
• Lý do tạo release
Yêu cầu cụ thể cho phần này:
Yêu cầu lưu trữ:
• Lưu trữ thông tin của project/ release/ phân hệ/ file
• Lưu trữ mối quan hệ của project/ release/ phân hệ/ file dưới dạng cây thư
mục
• Lưu trữ mối ảnh hưởng giữa các version file
Trang 96
Chương 6 - Ứng dụng minh họa “System Version Management”
Yêu cầu chức năng:
• Tạo các release
• Thông báo mối quan hệ ảnh hưởng khi một phân hệ/ file bị thay đổi
• Lưu vết các version của file/ phân hệ/ release.
Yêu cầu hệ thống:
• Chức năng check in/ check out
• Chức năng khoá file khi có người check out file
• Chức năng phân quyền
• Chức năng đăng nhập
• Hệ thống phải cho phép nhìn 1 đề án phần mềm theo 2 cách khác nhau:
+ Theo cấu trúc: phân cấp, giống như cấu trúc của cây thư mục được tổ
chức lưu trữ trên dĩa cứng.
+ Theo kiến trúc: của phần mềm, theo cách nhìn này thì cũng những
module & tập tin như cách tổ chức cấu trúc nhưng cho phép phân bố
lại theo từng phân hệ, hoặc theo dạng chức năng để thấy được phân hệ
nào đã được cài đặt và cài đặt cụ thể bởi những module nào ...
• Về trạng thái của các đối tượng cấu hình trong một đề án:
+ Check in / check out: cho biết đối tượng đang nằm trong hệ thống hay
đang được lấy ra để chỉnh sửa.
+ Nhất quán / không nhất quán: khi 2 đối tượng cấu hình có mối quan hệ
phụ thuộc với nhau. Nếu đối tượng phụ thuộc bị check out ra để chỉnh
sửa thì khi khi check in vào cần phải xác nhận lại xem 2 đối tượng đó
có còn nhất quán hay không. Mục tiêu là hạn chế bớt sai xót khi chỉnh
sửa đối tượng cấu hình.
Vd: A ∈ B. Nếu B bị check out ra để chỉnh sửa lại thì A & B có thể bị không
nhất quán với nhau. Lúc này cần phải có sự can thiệp của người quản lý cấu hình
xem xét xem những thay đổi của B có ảnh hưởng gì đến A hay không.
+ Reference (tham chiếu): trường hợp này liên quan nhiều đến thư viện
dùng chung hoặc hằng số ... Khi A tham chíêu đến B. Nếu check out A
Trang 97
Chương 6 - Ứng dụng minh họa “System Version Management”
ra để chỉnh sửa thì B sẽ có trạng thái là đang bị tham chiếu bởi 1 đối
tượng đã check out. Để khi B bị sửa đổi thì sẽ cảnh báo cho người
check out A ra biết về sự thay đổi này. Tham chiếu chỉ có phạm vi
trong 1 đề án.
+ Link: tương tự như tham chiếu nhưng có phạm vi rộng hơn là giữa 2 đề
án với nhau.
• Về cách xác định phiên bản:
+ Phiên bản do chương trình quản lý để lưu vết quá trình check in /
check out mà làm ảnh hưởng đến nội dung của module. ( theo dạng
tăng dần theo baseline).
+ Phiên bản do người quản lý cấu hình định cho module đó. Hay còn gọi
là việc gán nhãn cho module họăc đề án để ghi nhận lại mốc phát triển
của module hoặc đề án đó.
+ Mỗi một module sẽ có một phiên bản hiện hành. Để khi check out ra
người dùng có thể chọn check out phiên bản hiện hành hoặc check out
phiên bản mà họ chọn
+ Khi một module hoặc đề án được lấy ra để test thì tất cả module hoặc
đề án đó sẽ bị khóa lại và hình thành lên một phiên bản test. Và lúc đó
các nhân viên lập trình sẽ làm việc trên phiên bản test (kiểm lỗi & sửa
lỗi) cho đến khi kết thúc việc test thì sẽ cho phép đồng bộ lại với
module hoặc đồ án, trước khi test và tạo ra một phiên bản đã đựơc test
& sửa lỗi.
+ Trong quá trình phát triển có thể hình thành nhiều nhánh phát triển
khác nhau. Nhất là các thư viện lập trình. Vì vậy chương trình phải cho
phép tạo nhánh & cho người quản lý cấu hình biết nhánh đó được tạo
ra từ nhánh gốc nào. Đồng thời với việc tạo nhánh là việc trộn các
nhánh lại để cho ra một nhánh mới.
• Yêu cầu về giao diện: cho phép thực hiện dứơi 2 hình thức
Trang 98
Chương 6 - Ứng dụng minh họa “System Version Management”
+ Chế độ dòng lệnh: Viết các file thực thi đơn chỉ làm một hoặc 2 nhiệm
vụ cố định nào đó với các tham số đầu vào đựơc lấy từ dòng lệnh nhập.
Vd: checkin-out.exe chỉ thực hiện việc check in & check out module hoặc đề
án ra khỏi kho lưu trữ.
+ Chế độ giao tiếp đồ họa: tạo ra chương trình hoàn chỉnh tập hợp các
thao tác ở chế độ dòng lệnh đã xây dựng ở trên lại tạo sự tương tác tiện
lợi hơn cho người quản lý cấu hình.
6.3 Mô hình UseCase
Them/xoa de an
Them/xoa kho chua
Tao release
Login
Phan quyen
Admin
Viewer
Xem lich su cua thuc the
Cap nhat cay phan he/ chuc nang
Get
Developer
Gan nhan cho cac thuc the
Cap nhat cau truc de an
Check i n
Thiet lap su anh huong gi ua cac VersionFile
Check out
6.4 Đặc tả usecase
6.4.1 Đặc tả UseCase : Đăng Nhập (Login)
6.4.1.1 Tóm tắt
Use case này mô tả cách một người dùng đăng nhập vào Hệ thống quản lý
Cấu hình.
Trang 99
Chương 6 - Ứng dụng minh họa “System Version Management”
6.4.1.2 Dòng sự kiện
Dòng sự kiện chính :
Người dùng chọn chức năng đăng nhập từ màn hình chính
• Hệ thống hiển thị màn hình Đăng nhập
• Hệ thống yêu cầu người dùng nhập UserName và Password
• Người dùng nhấn nút đồng ý
• Hệ thống nhận thông tin từ người dùng và kiểm tra trong cơ sở dữ liệu
• Hệ thống thông báo việc đăng nhập thành công
• Hệ thống sẽ hiện ra danh sách các đề án và các vai trò tương ứng
trong từng đề án mà người dùng đang tham gia.
• Người dùng sẽ chọn đề án cùng với vai trò tương ứng để làm việc
Dòng sự kiện phụ :
Tên hoặc mật khẩu sai :
• Người dùng chọn chức năng Đăng Nhập từ màn hình chính
• Hệ thống hiển thị màn hình Đăng nhập
• Hệ thống yêu cầu người dùng nhập UserName và Password
• Hệ thống nhận thông tin từ người dùng và kiểm tra trong cơ sở dữ
liệu
• Hệ thống thông báo việc đăng nhập không thành công
6.4.1.3 Các yêu cầu đặt biệt
Không có.
6.4.1.4 Điều kiện tiên quyết
Người dùng phải được cấp một tài khỏan trên hệ thống.
6.4.1.5 Post-Conditions
Nếu use case thành công, người dùng lúc này đã đăng nhập vào hệ thống với
quyền đăng nhập. Nếu không trạng thái hệ thống không thay đổi.
Trang 100
Chương 6 - Ứng dụng minh họa “System Version Management”
6.4.1.6 Điểm mở rộng
Không có.
6.4.2 Đặc tả UseCase : Thêm/xoá kho chứa
6.4.2.1 Tóm tắt
Use case mô tả cách người dùng thêm, xoá kho chứa.
6.4.2.2 Dòng sự kiện
Dòng sự kiện chính
Use case này bắt đầu khi người dùng muốn thêm, xoá, kho chứa..
Hệ thống yêu cầu người dùng chọn một trong những luồng phụ sau để
thực hiện:
- Nếu người dùng chọn “Thêm kho chứa”, luồng Thêm
kho chứa được thực hiện
- Nếu người dùng chọn “Xoá kho chứa”, luồng Xoá kho
chứa được thực hiện
Thêm kho chứa
Người dùng sẽ chọn lệnh Thêm kho chứa, đưa vào các thông tin của
kho chứa như Tên kho chứa, Thư mục làm việc của kho chứa ứng với
user đăng nhập hiện hành.. Hệ thống kiểm tra thông tin nhập vào và
thêm vào cơ sở dữ liệu.
Xoá kho chứa
Người dùng chọn kho chứa cần xoá và yêu cầu xoá.
Hệ thống nhắc nhở người đúng có thật sự muốn xoá. Nếu người dùng
đồng ý xoá, hệ thống sẽ thực hiện xoá kho chứa.
Các dòng sự kiện khác
Thao tác xoá bị hủy
Trang 101
Chương 6 - Ứng dụng minh họa “System Version Management”
Nếu trong dòng sự kiện Xoá kho chứa, người sử dụng quyết đinh
không xoá kho chứa nữa thì thao tác xoá bị hủy và Dòng sự kiện
chính được bắt đầu lại từ đầu.
6.4.2.3 Các yêu cầu đặt biệt
Không có.
6.4.2.4 Điều kiện tiên quyết
Người dùng phải có quyền thực hiện chức năng này.
6.4.2.5 Post-Conditions
Nếu use case thực hiện thành công, hệ thống sẽ hiển thị kết qủa cho người sử
dụng. Nếu không, hệ thống sẽ thông báo lỗi, tình trạng hệ thống không thay
đổi.
6.4.2.6 Điểm mở rộng
Không có.
6.4.3 Đặc tả UseCase : Thêm/xoá đề án
6.4.3.1 Tóm tắt
Use case mô tả cách người dùng thêm, xoá đề án.
6.4.3.2 Dòng sự kiện
Dòng sự kiện chính
Use case này bắt đầu khi người dùng muốn thêm, xoá, đề án.
Hệ thống yêu cầu người dùng chọn một trong những luồng phụ sau để
thực hiện:
- Nếu người dùng chọn “Thêm đề án”, luồng Thêm đề án
được thực hiện
Trang 102
Chương 6 - Ứng dụng minh họa “System Version Management”
- Nếu người dùng chọn “Xoá kho chứa”, luồng Xoá đề án
được thực hiện
Thêm đề án
Người dùng sẽ chọn lệnh thêm đề án, đưa vào các thông tin của đề án
như Tên đề án, Thư mục làm việc của đề án ứng với user đăng nhập
hiện hành.. Hệ thống kiểm tra thông tin nhập vào và thêm vào cơ sở
dữ liệu.
Xoá đề án
Người dùng chọn đề án cần xoá và yêu cầu xoá.
Hệ thống nhắc nhở người đúng có thật sự muốn xoá. Nếu người dùng
đồng ý xoá, hệ thống sẽ thực hiện xoá đề án.
Các dòng sự kiện khác
Thao tác xoá bị hủy
Nếu trong dòng sự kiện Xoá đề án, người sử dụng quyết đinh không
xoá đề án đó nữa thì thao tác xoá bị hủy và Dòng sự kiện chính được
bắt đầu lại từ đầu.
6.4.3.3 Các yêu cầu đặt biệt
Không có.
6.4.3.4 Điều kiện tiên quyết
Người dùng phải có quyền thực hiện chức năng này.
6.4.3.5 Post-Conditions
Nếu use case thực hiện thành công, hệ thống sẽ hiển thị kết qủa cho người sử
dụng. Nếu không, hệ thống sẽ thông báo lỗi, tình trạng hệ thống không thay
đổi.
6.4.3.6 Điểm mở rộng
Không có
Trang 103
Chương 6 - Ứng dụng minh họa “System Version Management”
6.4.4 Đặc tả UseCase : Cập nhật cấu trúc đề án
6.4.4.1 Tóm tắt
Use case mô tả cách người dùng thêm, xoá, sửa cấu trúc của đề án.
6.4.4.2 Dòng sự kiện
Dòng sự kiện chính
Use case này bắt đầu khi người dùng muốn thêm, xoá, sửa cấu trúc
của đề án.
Người dùng có thể thêm thư mục trong đề án, khi đó luồng Thêm
thư mục sẽ được thực hiện.
Người dùng có thể thêm file trong các thư mục thuộc đề án, khi đó
luồng Thêm file sẽ được thực hiện.
Người dùng có thể xoá thư mụctrong đề án, khi đó luồng Xoá thư
mục sẽ được thực hiện.
Người dùng có thể Xoá file trong thư mục thuộc đề án, khi đó luồng
Xoá file sẽ được thực hiện.
Thêm thư mục
Người dùng có thể tạo thư mục mới bằng cách gõ tên thư mục hoặc
attach một thư mục từ bên ngoài vào (bao gồm luôn các file bên trong
thư mục đó) bằng cách chỉ ra đường dẫn vật lý. Hệ thống ghi nhận lại
việc thêm thư mục.
Thêm file
Người dùng có thể attach một file bằng cách chỉ ra đường dẫn vật lý,
thư mục cha mà file đó thuộc về. Hệ thống ghi nhận lại việc thêm file.
Xoá thư mục
Trang 104
Chương 6 - Ứng dụng minh họa “System Version Management”
Người dùng chỉ ra thư mục cần xoá và xác nhận xoá. Hệ thống ghi
nhận lại việc xoá thư mục.
Xoá file
Người dùng chỉ ra file cần xoá và xác nhận xoá. Hệ thống ghi nhận lại
việc xoá file.
Các dòng sự kiện khác
Không tồn tại thư mục
Nếu trong Dòng sự kiện thêm thư mục, xoá thư mục mà không tồn tại
thư mục đó thì hệ thống sẽ báo lỗi.
Không tồn tại file
Nếu trong Dòng sự kiện thêm file hoặc xoá file mà không tồn tại file
đó thì hệ thống sẽ báo lỗi.
Thao tác xoá bị hủy
Nếu trong dòng sự kiện xoá thư mục hoặc xoá file, người sử dụng
quyết đinh không xoá thư mục hoặc file thì thao tác xoá bị hủy và
Dòng sự kiện chính được bắt đầu lại từ đầu.
6.4.4.3 Các yêu cầu đặt biệt
Không có.
6.4.4.4 Điều kiện tiên quyết
Người dùng phải có quyền thực hiện chức năng này.
6.4.4.5 Post-Conditions
Nếu use case thực hiện thành công, hệ thống sẽ hiển thị kết qủa cho người sử
dụng. Nếu không, hệ thống sẽ thông báo lỗi, tình trạng hệ thống không thay
đổi.
Trang 105
Chương 6 - Ứng dụng minh họa “System Version Management”
6.4.4.6 Điểm mở rộng
Không có
6.4.5 Đặc tả UseCase : Cập nhật cây phân hệ, chức năng
6.4.5.1 Tóm tắt
Use case mô tả cách người dùng thêm, xoá, sửa cấu trúc cây phân hệ, chức
năng
6.4.5.2 Dòng sự kiện
Dòng sự kiện chính
Use case này bắt đầu khi người dùng muốn thêm, xoá, sửa cấu trúc
cây phân hệ, chức năng của đề án.
Người dùng có thể thêm chức năng/ phân hệ trong đề án, khi đó
luồng Thêm chức năng/ phân hệ sẽ được thực hiện.
Người dùng có thể thêm file trong chức năng/ phân hệ của đề án, khi
đó luồng Thêm file sẽ được thực hiện.
Người dùng có thể xoá chức năng/ phân hệ trong đề án, khi đó luồng
Xoá chức năng/ phân hệ sẽ được thực hiện.
Người dùng có thể Xoá file trong chức năng/ phân hệ của đề án, khi
đó luồng Xoá file sẽ được thực hiện.
Thêm chức năng/ phân hệ
Người dùng tạo chức năng/ phân hệ mới, đặt tên chức năng/ phân hệ.
Hệ thống ghi nhận lại việc thêm thư mục.
Thêm file
File được add vào từ các file bên cấu trúc của đề án. Hệ thống ghi
nhận lại việc thêm file.
Xoá chức năng/ phân hệ
Trang 106
Chương 6 - Ứng dụng minh họa “System Version Management”
Người dùng chỉ ra thư mục cần xoá và xác nhận xoá. Hệ thống ghi
nhận lại việc xoá thư mục.
Xoá file
Người dùng chỉ ra file cần xoá và xác nhận xoá. Hệ thống ghi nhận lại
việc xoá file.
Các dòng sự kiện khác
Không tồn tại file
Nếu trong Dòng sự kiện Add file mà không tồn tại file đó bên cấu trúc
của đề án thì hệ thống sẽ báo lỗi.
Thao tác xoá bị hủy
Nếu trong dòng sự kiện xoá chức năng/ phân hệ hoặc xoá file, người
sử dụng quyết đinh không xoá thư mục hoặc file thì thao tác xoá bị
hủy và Dòng sự kiện chính được bắt đầu lại từ đầu.
6.4.5.3 Các yêu cầu đặt biệt
Không có.
6.4.5.4 Điều kiện tiên quyết
Người dùng phải có quyền thực hiện chức năng này.
6.4.5.5 Post-Conditions
Nếu use case thực hiện thành công, hệ thống sẽ hiển thị kết qủa cho người sử
dụng. Nếu không, hệ thống sẽ thông báo lỗi, tình trạng hệ thống không thay
đổi.
6.4.5.6 Điểm mở rộng
Không có
Trang 107
Chương 6 - Ứng dụng minh họa “System Version Management”
6.4.6 Đặc tả UseCase : Tạo release
6.4.6.1 Tóm tắt
Use case mô tả cách người dùng muốn tạo ra release để dùng cho việc test
hoặc dùng để giao cho khách hàng.
6.4.6.2 Dòng sự kiện
Dòng sự kiện chính
Use case này bắt đầu khi người dùng muốn tạo ra release để dùng cho
việc test hoặc dùng để giao cho khách hàng.
Người dùng chọn chức năng tạo release, đặt tên cho release.
Người dùng cập nhật cây cấu trúc của release dựa trên cây cấu trúc
của đề án.
Người dùng cập nhật chức năng/ phân hệ của release dựa vào cây
chức năng/ phân hệ của đề án.
Hệ thống sẽ ghi nhận việc tạo và cập nhật cây cấu trúc và kiến trúc
của release.
Các dòng sự kiện khác
6.4.6.3 Các yêu cầu đặt biệt
Không có.
6.4.6.4 Điều kiện tiên quyết
Người dùng phải có quyền thực hiện chức năng này.
6.4.6.5 Post-Conditions
Nếu use case thực hiện thành công, hệ thống sẽ hiển thị kết qủa cho người sử
dụng. Nếu không, hệ thống sẽ thông báo lỗi, tình trạng hệ thống không thay
đổi.
Trang 108
Chương 6 - Ứng dụng minh họa “System Version Management”
6.4.6.6 Điểm mở rộng
Không có.
6.4.7 Đặc tả UseCase : Gán nhãn cho các thực thể
6.4.7.1 Tóm tắt
Use case mô tả cách người dùng muốn gán nhãn cho các thực thể (đề án, thư
mục, phân hệ - chức năng, versionfile)
6.4.7.2 Dòng sự kiện
Dòng sự kiện chính
Use case này bắt đầu khi người dùng muốn gán nhãn cho các thực thể
để quản lý phiên bản theo ý của mình.
Người dùng chọn thực thể cần gán nhãn và chọn chức năng gán nhãn.
Nếu người dùng gán nhãn đệ quy thì chương trình sẽ gán nhãn cho
thực thể đó và gán nhãn cho các thực thể con bên trong. Nếu không,
chương trình chỉ gán nhãn cho thực thể đó.
Các dòng sự kiện khác
6.4.7.3 Các yêu cầu đặt biệt
Không có.
6.4.7.4 Điều kiện tiên quyết
Người dùng phải có quyền thực hiện chức năng này.
6.4.7.5 Post-Conditions
Nếu use case thực hiện thành công, hệ thống sẽ hiển thị kết qủa cho người sử
dụng. Nếu không, hệ thống sẽ thông báo lỗi, tình trạng hệ thống không thay
đổi.
Trang 109
Chương 6 - Ứng dụng minh họa “System Version Management”
6.4.7.6 Điểm mở rộng
Không có.
6.4.8 Đặc tả UseCase : Phân quyền
6.4.8.1 Tóm tắt
Use case mô tả cách Admin muốn thêm, xoá thành viên, cập nhật quyền của
các thành viên trong hệ thống.
6.4.8.2 Dòng sự kiện
Dòng sự kiện chính
Use case này bắt đầu khi Admin muốn thêm, xoá thành viên, cập nhật
thông tin của các thành viên trong hệ thống.
Hệ thống yêu cầu người dùng thực hiện một trong những luồng phụ
sau:
- Người sử dụng chọn “Thêm thành viên”, luồng sự kiện
Thêm thành viên được thực hiện.
- Người sử dụng chọn “Xoá thành viên”, luồng sự kiện
Xoá thành viên được thực hiện
- Người sử dụng chọn “Cập nhật thông tin thành viên”,
luồng sự kiện Cập nhật thông tin thành viên được
thực hiện.
Thêm thành viên
1. Người sử dụng nhập thông tin thành viên:
- tên đang nhậpthành viên
- mật khẩu cấp cho thành viên
- quyền trong hệ thống của thành viên.
2. Hệ thống lưu lại thông tin của thành viên mới và thông báo têm
Trang 110
Chương 6 - Ứng dụng minh họa “System Version Management”
thành viên thành công.
Xoá thành viên
Người sử dụng chọn thành viên cần xoá ra khỏi hệ thống và thực hiện
xoá. Hệ thống sẽ xoá thành viên này trong hệ thống.
Cập nhật thông tin thành viên
Người sử dụng chọn thành viên cần cập nhật thông tin và cập nhật lại
các thông tin như luồng sự kiện Thêm thành viên. Hệ thống sẽ lưu trữ
lại việc cập nhật này
Các dòng sự kiện khác
Không tồn tại thành viên
Trong luồng sự kiện Xoá thành viên hoặc Cập nhật thông tin
thành viên, người dùng chọn thành viên không tồn tại trong hệ
thống, hệ thống sẽ báo lỗi. Người dùng chọn lại thành viên khác hoặc
use case kết thúc.
Thao tác xoá bị hủy
Nếu trong luồng phụ Xoá thành viên, người sử dụng quyết đinh
không xoá thành viên này nữa, thao tác xoá bị hủy và Dòng sự kiện
chính được bắt đầu lại từ đầu
6.4.8.3 Các yêu cầu đặt biệt
Không có.
6.4.8.4 Điều kiện tiên quyết
Người dùng phải có quyền thực hiện chức năng này.
6.4.8.5 Post-Conditions
Nếu use case thực hiện thành công, hệ thống sẽ hiển thị kết qủa cho người sử
dụng. Nếu không, hệ thống sẽ thông báo lỗi, tình trạng hệ thống không thay
đổi.
Trang 111
Chương 6 - Ứng dụng minh họa “System Version Management”
6.4.8.6 Điểm mở rộng
Không có.
6.4.9 Đặc tả UseCase : Thiết lập ảnh hưởng giữa các versionfile
6.4.9.1 Tóm tắt
Use case mô tả cách người dùng thiết lập ảnh hưởng giữa các version file với
nhau để có thể dễ dàng theo dõi mối liên hệ một khi có sự thay đổi. Chức
năng này cho phép người dùng thiết lập mới, xoá, sửa mối quan hệ.
6.4.9.2 Dòng sự kiện
Dòng sự kiện chính
Use case này bắt đầu khi người dùng muốn cập nhật lập ảnh hưởng
của một version file nào đó.
• Người dùng chọn version file cần thiết lập ảnh hưởng và chọn chức
năng thiết lập ảnh hưởng.
• Hệ thống hiện ra cho người dùng version file nào gây ảnh hưởng,
cũng như những version file bị ảnh hưởng tới version file đã chọn mà
người dùng đã thiết lập trước đó.
• Người dùng có thể thêm mới các ảnh hưởng; xoá các ảnh hưởng cũng
như sửa lại các ảnh hưởng cho phù hợp
• Hệ thống ghi nhận việc cập nhật ảnh hưởng đó xuống cơ sở dữ liệu và
thông báo kết qủa cho người sử dụng.
Không tồn tại version file mà người dùng muốn xem
Các dòng sự kiện khác
Nếu trong Dòng sự kiện chính không có version file thì hệ thống sẽ
thông báo lỗi cho người sử dụng.
6.4.9.3 Các yêu cầu đặt biệt
Không có.
Trang 112
Chương 6 - Ứng dụng minh họa “System Version Management”
6.4.9.4 Điều kiện tiên quyết
Người dùng phải có quyền thực hiện chức năng này
6.4.9.5 Post-Conditions
Nếu use case thực hiện thành công, hệ thống sẽ hiển thị kết qủa cho người sử
dụng. Nếu không, hệ thống sẽ thông báo lỗi, tình trạng hệ thống không thay
đổi.
6.4.9.6 Điểm mở rộng
Không có.
6.4.10 Đặc tả UseCase : Xem lịch sử phiên bản của thực thể
6.4.10.1 Tóm tắt
Use case mô tả cách người dùng xem lịch sử phiên bản của thực thể (kho
chứa, đề án, phân hệ - chức năng, file) để tìm hiểu quá trình thay đổi của thực
thể đó..
6.4.10.2 Dòng sự kiện
Dòng sự kiện chính
Use case này bắt đầu khi người dùng muốn xem lịch sử phiên bản của
một thực thể nào đó.
• Người dùng chọn thực thể muốn xem lịch sử và chọn chức năng xem
lịch sử phiên bản.
• Hệ thống sẽ tìm trên cơ sở dữ liệu lịch sử phiên bản của phân hệ/ file/
đề án đã chọn.
• Hệ thống đưa ra kết qủa cho người sử dụng về:
- Các version của thực thể
- Người chịu trách nhiệm
Trang 113
Chương 6 - Ứng dụng minh họa “System Version Management”
- Ngày tạo version
- Lý do có sự cập nhật
Không tồn tại thực thể mà người dùng muốn xem
Các dòng sự kiện khác
Nếu trong Dòng sự kiện chính không có thực thể thì hệ thống sẽ
thông báo lỗi cho người sử dụng.
6.4.10.3 Các yêu cầu đặt biệt
Không có.
6.4.10.4 Điều kiện tiên quyết
Người dùng phải có quyền thực hiện chức năng này
6.4.10.5 Post-Conditions
Nếu use case thực hiện thành công, hệ thống sẽ hiển thị kết qủa cho người sử
dụng. Nếu không, hệ thống sẽ thông báo lỗi, tình trạng hệ thống không thay
đổi.
6.4.10.6 Điểm mở rộng
Không có.
6.4.11 Đặc tả UseCase : Thực hiện check in
6.4.11.1 Tóm tắt
Use case mô tả cách người dùng check in để đưa file đã cập nhật trở lại đề
án.
6.4.11.2 Dòng sự kiện
Dòng sự kiện chính
Use case này bắt đầu khi người dùng muốn check in một hoặc nhiều
verison file nào đó của đề án.
Trang 114
Check in
Chương 6 - Ứng dụng minh họa “System Version Management”
• Người dùng file nào đó cần check in, chọn lý do check in.
• Hệ thống ghi nhận việc check in
Không tồn tại file mà người dùng muốn check in
Các dòng sự kiện khác
Nếu trong Dòng sự kiện check in không có version file thì hệ thống
sẽ thông báo lỗi cho người sử dụng.
6.4.11.3 Các yêu cầu đặt biệt
Không có
6.4.11.4 Điều kiện tiên quyết
Người dùng phải có quyền thực hiện chức năng này
6.4.11.5 Post-Conditions
Nếu use case thực hiện thành công, hệ thống sẽ hiển thị kết qủa cho người sử
dụng. Nếu không, hệ thống sẽ thông báo lỗi, tình trạng hệ thống không thay
đổi.
6.4.11.6 Điểm mở rộng
Không có
6.4.12 Đặc tả UseCase : Thực hiện check out
6.4.12.1 Tóm tắt
Use case mô tả cách người dùng check out để lấy ra, cập nhật các versionfile.
Khi người dùng check out để lấy ra file, người dùng có thể sửa đổi file đó và
thực hiện check in để ghi nhận lại (Khi đó, verion của file sẽ tăng lên).
6.4.12.2 Dòng sự kiện
Dòng sự kiện chính
Trang 115
Chương 6 - Ứng dụng minh họa “System Version Management”
Use case này bắt đầu khi người dùng muốn check out một hoặc nhiều
file nào đó của đề án.
• Người dùng chọn version file cần check out, ghi nhận lại lý do
checkout.
• Hệ thống ghi nhận việc check out.
Không tồn tại version file mà người dùng muốn check out
Các dòng sự kiện khác
Nếu trong Dòng sự kiện check out không tồn tại version file thì hệ
thống sẽ thông báo lỗi cho người sử dụng.
6.4.12.3 Các yêu cầu đặt biệt
Không có
6.4.12.4 Điều kiện tiên quyết
Người dùng phải có quyền thực hiện chức năng này
6.4.12.5 Post-Conditions
Nếu use case thực hiện thành công, hệ thống sẽ hiển thị kết qủa cho người sử
dụng. Nếu không, hệ thống sẽ thông báo lỗi, tình trạng hệ thống không thay
đổi.
6.4.12.6 Điểm mở rộng
Không có
6.4.13 Đặc tả UseCase : Get
6.4.13.1 Tóm tắt
Use case mô tả cách người dùng muốn lấy ra một version file nào đó ra thể
tham khảo.
Trang 116
Chương 6 - Ứng dụng minh họa “System Version Management”
6.4.13.2 Dòng sự kiện
Dòng sự kiện chính
Use case này bắt đầu khi người dùng muốn rút trích một version file
nào đó của đề án.
• Người dùng chọn tên file và phiên bản, thư mục để lấy versionfile
ra.
Hệ thống thực hiện lấy version file mà người dùng chọn chép vào
thư mục cần lấy file ra.
Không tồn tại version file mà người dùng muốn check out/ check in
Các dòng sự kiện khác
Nếu trong Dòng sự kiện chính không tồn tạo version file mà người
dùng chọn thì hệ thống sẽ thông báo lỗi cho người sử dụng.
6.4.13.3 Các yêu cầu đặt biệt
Không có
6.4.13.4 Điều kiện tiên quyết
Người dùng phải có quyền thực hiện chức năng này
6.4.13.5 Post-Conditions
Nếu use case thực hiện thành công, hệ thống sẽ hiển thị kết qủa cho người sử
dụng. Nếu không, hệ thống sẽ thông báo lỗi, tình trạng hệ thống không thay
đổi.
6.4.13.6 Điểm mở rộng
Không có
Trang 117
Chương 6 - Ứng dụng minh họa “System Version Management”
6.5 Thiết kế
6.5.1 Kiến trúc hệ thống
SQL Server
`
User
Client
CVSNT
Hệ thống được theo mô hình client server:
Hình 6-6 Kiến trúc về phần cứng hệ thống
• Client
− Sử dụng chương trình SVM + CVS để truy xuất thông tin qua mạng
• Server
− SQL Server chứa dữ liệu quan hệ và thông tin phụ cho các đối tượng cấu
hình
− CVSNT Chứa file được lưu trữ
6.5.2 Giao diện
Một số màn hình chính trong chương trình
Trang 118
Chương 6 - Ứng dụng minh họa “System Version Management”
Hình 6-7 Màn hình chính
Trang 119
Chương 6 - Ứng dụng minh họa “System Version Management”
Hình 6-8 Màn hình thiết lập mối quan hệ giữa các tập tin
Trang 120
Chương 6 - Ứng dụng minh họa “System Version Management”
Hình 6-9 Màn hình thiết lập kiến trúc từ cấu trúc
Hình 6-10 Màn hình xem thông tin của project, kho chứa, thư mục
Trang 121
Chương 6 - Ứng dụng minh họa “System Version Management”
Hình 6-11 Màn hình xem thông tin của tập tin và phiên bản của nó
Hình 6-12 Màn hình xem lịch sử của tập tin, thư mục, project
Trang 122
Chương 6 - Ứng dụng minh họa “System Version Management”
6.5.3 Mô hình lớp đối tượng
Action
Item
1
*
1 1
Staff
1*
StaffWorkingDir
AbstractDir
File
Version_File
11
1 *
1
1
*
1
*
1
Repositor
Project
Function
* 1
1
*
*
*
*
1
Release
1
Dir
*
1
1
*
*
Hình 6-13 Mô hình lớp đối tượng
1. Item : (Abstract)
Thuộc tính :
Tên Ý nghĩa Kiểu Miền giá trị Ghi chú
ID Mã số của item Chuỗi <= 20 ký tự
Name Tên của item Chuỗi <= 50 ký tự
CreatedDate Ngày giờ item Ngày giờ
được tạo
Removed Cho biết item đã bị Bool
đánh dấu xoá hay
chưa
Note Ghi chú, mô tả về Chuỗi <= 200 ký
item tự
Actions Mảng lưu các hành Mảng
động đã thực hiện
Trang 123
Chương 6 - Ứng dụng minh họa “System Version Management”
trên item
Hành động :
Tên hàm Phạm vi Diễn giải Kiểu Ghi chú
truy xuất trả về
clear Public Xoá thông tin của item
getActions Public Lấy tất cả các hành Class
động của item từ cơ sở Error
dữ liệu
setLabel Public Đặt nhãn cho item Class
Error
rename Public Đổi tên item Class
Error
remove Public Xoá thực sự/đánh dấu Class
xoá item Error
restore Public Phục hồi item đã bị Class
đánh dấu xoá Action
Trang 124
Chương 6 - Ứng dụng minh họa “System Version Management”
2. AbstractDir (Abstract) : Item
Thuộc tính :
Tên Ý nghĩa Kiểu Miền giá trị Ghi chú
WorkingDirs Mảng lưu các thư Mảng
mục làm việc
tương ứng với mỗi
nhân viên
Hành động :
Tên hàm Phạm vi Diễn giải Kiểu Ghi chú
truy xuất trả về
clear public Xoá thông tin của
AbstractDir
getConstruction public Lấy từ cơ sở dữ liệu tất Class
cả các thông tin của Error
AbstractDir
getActions public Lấy tất cả các hành Class
động của AbstractDir từ Error
cơ sở dữ liệu
getWorkingDirs public Lấy từ cơ sở dữ liệu tất Class
cả các working dir của Error
AbstractDir tương ứng
với mỗi nhân viên
setLabel public Đặt nhãn cho Class
AbstractDir Error
deleteWorkingDir public Xoá working dir của 1 Class
nhân viên Error
rename public Đổi tên AbstractDir Class
Error
Trang 125
Chương 6 - Ứng dụng minh họa “System Version Management”
remove public Xoá thực sự/đánh dấu Class
xoá AbstractDir Error
restore public Phục hồi AbstractDir đã Class
bị đánh dấu xoá Error
add public Thêm 1 AbstractDir con Class
vào AbtstractDir cha Error
3. Repository : AbstractDir
Thuộc tính :
Tên Ý nghĩa Kiểu Miền giá trị Ghi chú
Projects Mảng lưu các đề Mảng
án thuộc kho chứa
Hành động :
Tên hàm Phạm vi Diễn giải Kiểu Ghi chú
truy xuất trả về
Clear public Xoá thông tin của kho
chứa
getConstruction public Lấy từ cơ sở dữ liệu tất Class
cả các thông tin của kho Error
chứa
getReps public Lấy từ cơ sở dữ liệu tất Class
cả các kho chứa Error
add public Thêm 1 kho chứa mới Class
vào cơ sở dư liệu Error
setWorkingDirs public Thêm vào cơ sở dữ liệu Class
working dir của một Error
nhân viên
Trang 126
Chương 6 - Ứng dụng minh họa “System Version Management”
setLabel public Đặt nhãn cho kho chứa Class
Error
rename public Đổi tên kho chứa Class
Error
remove public Xoá thực sự/đánh dấu Class
xoá kho chứa Error
restore public Phục hồi kho chứa đã bị Class
đánh dấu xoá Error
addProject public Thêm 1 đề án mới vào Class
kho chứa Error
getProjects public Lấy tất cả các đề án Class
thuộc kho chứa Error
New public Tạo ra 1 đối tượng kho Reposit
chứa mới ory
4. Project : AbstractDir
Thuộc tính :
Tên Ý nghĩa Kiểu Miền giá trị Ghi chú
Parent Con trỏ trỏ tới kho Con trỏ
chứa chứa đề án
Dirs Mảng lưu các thư Mảng
mục của đề án
Functions Mảng lưu các phân Mảng
hệ/chức năng của
đề án
Releases Mảng lưu các bản Mảng
phát hành của đề
án
Trang 127
Chương 6 - Ứng dụng minh họa “System Version Management”
Hành động :
Tên hàm Phạm vi Diễn giải Kiểu Ghi chú
truy xuất trả về
clear public Xoá thông tin của đề án
getConstruction public Lấy từ cơ sở dữ liệu tất Class
cả các thông tin của đề Error
án
getPrjs public Lấy từ cơ sở dữ liệu tất Class
cả các đề án bất kể Error
thuộc kho chứa nào
getSubDirs public Lấy từ cơ sở dữ liệu tất Class
cả các thư mục của đề Error
án
getSubFunctions public Lấy từ cơ sở dữ liệu tất Class
cả các phân hệ/chức Error
năng của đề án
getSubReleases public Lấy từ cơ sở dữ liệu tất Class
cả các bản phát hành Error
của đề án
addDir public Thêm 1 thư mục mới Class
vào đề án Error
addFunction public Thêm 1 phân hệ/chức Class
năng mới vào đề án Error
addRelease public Thêm 1 bản phát hành Class
mới vào đề án Error
setWorkingDirs public Thêm vào working dir Class
của một nhân viên Error
setLabel public Đặt nhãn cho đề án Class
Error
Trang 128
Chương 6 - Ứng dụng minh họa “System Version Management”
rename public Đổi tên đề án Class
Error
remove public Xoá thực sự/đánh dấu Class
xoá đề án Error
restore public Phục hồi đề án đã bị Class
đánh dấu xoá Error
New public Tạo ra 1 đối tượng đề án Project
mới
checkOutTo public Check out toàn bộ đề án Class
ra 1 thư mục nào đó Error
checkIn public Check in toàn bộ đề án Class
Error
undoCheckOut public Undo check out toàn bộ Class
đề án Error
getTo public Copy toàn bộ đề án ra 1 Class
thư mục nào đó Error
5. Dir : AbstractDir
Thuộc tính :
Tên Ý nghĩa Kiểu Miền giá trị Ghi chú
Project Con trỏ trỏ tới đề Con trỏ
án chứa thư mục
Parent Con trỏ trỏ tới thư Con trỏ
mục cha
Release Con trỏ trỏ tới bản Con trỏ
phát hành của đề
án có chứa thư
mục
Trang 129
Chương 6 - Ứng dụng minh họa “System Version Management”
Dirs Mảng lưu các thư Mảng
mục con
VerFiles Mảng lưu các Mảng
version file thuộc
thư mục
Hành động :
Tên hàm Phạm vi Diễn giải Kiểu Ghi chú
truy xuất trả về
clear public Xoá thông tin của thư
mục
getConstruction public Lấy từ cơ sở dữ liệu tất Class
cả các thông tin của thư Error
mục
getSubDirs public Lấy từ cơ sở dữ liệu tất Class
cả các thư mục con của Error
thư mục
getSubVerFiles public Lấy từ cơ sở dữ liệu tất Class
cả các version file của Error
thư mục
addDir public Thêm 1 thư mục mới Class
vào thư mục Error
addVerFile public Thêm 1 version file mới Class Chỉ sử dụng
vào thư mục Error nếu thư mục
không thuộc
1 phiên bản
phát hành
nào của đề án
setWorkingDir public Thêm vào working dir Class
Trang 130
Chương 6 - Ứng dụng minh họa “System Version Management”
của một nhân viên Error
setLabel public Đặt nhãn cho thư mục Class
Error
rename public Đổi tên thư mục Class
Error
remove public Xoá thực sự/đánh dấu Class
xoá thư mục Error
restore public Phục hồi thư mục đã bị Class
đánh dấu xoá Error
New public Tạo ra 1 đối tượng thư Dir
mục mới
checkOutTo public Check out toàn bộ thư Class
mục ra 1 thư mục nào Error
đó
checkIn public Check in toàn bộ thư Class
mục Error
undoCheckOut public Undo check out toàn bộ Class
thư mục Error
getTo public Copy toàn bộ thư mục Class
ra 1 thư mục nào đó Error
addLinkTo public Thêm 1 version file vào Class Chỉ sử dụng
thư mục Error khi thư mục
thuộc 1 phiên
bản phát
hành của đề
án
destroyLinkTo public Xoá 1 version file khỏi Class Chỉ sử dụng
thư mục Error khi thư mục
thuộc 1 phiên
Trang 131
Chương 6 - Ứng dụng minh họa “System Version Management”
bản phát
hành của đề
án
6. Function : AbstractDir
Thuộc tính :
Tên Ý nghĩa Kiểu Miền giá trị Ghi chú
Project Con trỏ trỏ tới đề Con trỏ
án chứa phân
hệ/chức năng
Parent Con trỏ trỏ tới Con trỏ
phân hệ/chức năng
cha
Release Con trỏ trỏ tới bản Con trỏ
phát hành của đề
án chứa phân
hệ/chức năng
Functions Mảng lưu các phân Mảng
hệ/chức năng con
Files Mảng lưu các file Mảng
thuộc phân hệ/chứ
năng
Hành động :
Tên hàm Phạm vi Diễn giải Kiểu Ghi chú
truy xuất trả về
Clear public Xoá thông tin của thư
mục
getConstruction public Lấy từ cơ sở dữ liệu tất Class
Trang 132
Chương 6 - Ứng dụng minh họa “System Version Management”
cả các thông tin của thư Error
mục
getSubFunctions public Lấy từ cơ sở dữ liệu tất Class
cả các phân hệ/chức Error
năng con
getSubFiles public Lấy từ cơ sở dữ liệu tất Class
cả các file của phân Error
hệ/chức năng
addFunction public Thêm 1 phân hệ/chức Class
năng con Error
addLinkTo public Thêm file mới vào phân Class
hệ/chức năng Error
setLabel public Đặt nhãn cho phân Class
hệ/chức năng Error
Rename public Đổi tên phân hệ/chức Class
năng Error
Remove public Xoá thực sự/đánh dấu Class
xoá phân hệ/chức năng Error
Restore public Phục hồi phân hệ/chức Class
năng đã bị đánh dấu xoá Error
New public Tạo ra 1 đối tượng phân Functio
hệ/chức năng mới n
destroyLinkTo public Xoá 1 file khỏi phân Class
hệ/chức năng Error
Trang 133
Chương 6 - Ứng dụng minh họa “System Version Management”
7. Release : AbstractDir
Thuộc tính :
Tên Ý nghĩa Kiểu Miền giá trị Ghi chú
Project Con trỏ trỏ tới đề Con trỏ
án chứa bản phát
hành
Dirs Mảng lưu các thư Mảng
mục con của bản
phát hành
Functions Mảng lưu các phân Mảng
hệ/chức năng của
bản phát hành
Hành động :
Tên hàm Phạm vi Diễn giải Kiểu Ghi chú
truy xuất trả về
clear Public Xoá thông tin của bản
phát hành
getConstruction public Lấy từ cơ sở dữ liệu tất Class
cả các thông tin của bản Error
phát hành
getSubDirs public Lấy từ cơ sở dữ liệu tất Class
cả các thư mục của bản Error
phát hành
getSubFunctions public Lấy từ cơ sở dữ liệu tất Class
cả các phân hệ/chức Error
năng của bản phát hành
addDir public Thêm 1 thư mục mới Class
vào bản phát hành Error
Trang 134
Chương 6 - Ứng dụng minh họa “System Version Management”
addFunction public Thêm 1 phân hệ/chức Class
năng mới vào bản phát Error
hành
setLabel public Đặt nhãn cho bản phát Class
hành Error
rename public Đổi tên bản phát hành Class
Error
remove public Xoá thực sự/đánh dấu Class
xoá bản phát hành Error
restore public Phục hồi bãn phát hành Class
đã bị đánh dấu xoá Error
New public Tạo ra 1 đối tượng bản Release
phát hành mới
getTo public Copy toàn bộ bản phát Class
hành ra 1 thư mục nào Error
đó
8. File : Item
Thuộc tính :
Tên Ý nghĩa Kiểu Miền giá trị Ghi chú
Project Con trỏ trỏ tới đề Project
án chứa file
FileType Cho biết loại của Enum Text/Binary
file (text/binnary)
AddedDate Ngày giờ file được Ngày giờ
add vào đề án
Versions Mảng chứa các Mảng
phiên bản của file
Trang 135
Chương 6 - Ứng dụng minh họa “System Version Management”
Hành động :
Tên hàm Phạm vi Diễn giải Kiểu Ghi chú
truy xuất trả về
clear Public Xoá thông tin của file
getVersions Public Lấy từ cơ sở dữ liệu tất Class
cả các phiên bản của file Error
setFileType Public Đặt loại cho file Class
Error
New Public Tạo ra 1 đối tượng file File
mới
9. VersionFile : Item
Thuộc tính :
Tên Ý nghĩa Kiểu Miền giá trị Ghi chú
Project Con trỏ trỏ tới Con trỏ
đề án chứa
phiên bản file
Parent Con trỏ trỏ tới Con trỏ
thư mục chứa
phiên bản file
Dirs Mảng lưu các Mảng
con trỏ trỏ tới con trỏ
các thư mục
thuộc bản phát
hành của đề án
có sử dụng
phiên bản file
CVSVersion Tên phiên bản Chuỗi <= 20 ký tự
của phiên bản
Trang 136
Chương 6 - Ứng dụng minh họa “System Version Management”
file
Size Kích thước Số
của phiên bản
file
Status Cho biết trạng Enum CheckIn/CheckOut/
thái của phiên Normal/Dissynchronize
bản file
CheckOutDir Cho biết phiên Chuỗi <= 200 ký tự
bản file có
đang bị check
out hay không,
nếu có thì
đang bị check
out ở thư mục
nào
AffectedBy Mảng lưu các Mảng
phiên bản file
khác gây ảnh
hưởng đến
phiên bản file
này
AffectsTo Mảng lưu các Mảng
phiên bản file
khác bị ảnh
hưởng bởi
phiên bản file
này
Trang 137
Chương 6 - Ứng dụng minh họa “System Version Management”
Hành động :
Tên hàm Phạm vi Diễn giải Kiểu Ghi chú
truy xuất trả về
clear public Xoá thông tin của phiên
bản file
getActions Public Lấy từ cơ sở dữ liệu tất Class
cả hành động của phiên Error
bản file
setLabel public Đặt nhãn cho phiên bản Class
file Error
rename public Đổi tên file của phiên Class
bản Error
remove public Xoá thực sự/đánh dấu Class
xoá phiên bản file Error
restore public Phục hồi phiên bản file Class
đã bị đánh dấu xoá Error
New public Tạo ra 1 đối tượng Version
phiên bản file mới File
checkOutTo public Check out phiên bản file Class
ra 1 thư mục nào đó Error
checkIn public Check in phiên bản file Class
Error
undoCheckOut public Undo check out phiên Class
bản file Error
getTo public Copy phiên bản file ra 1 Class
thư mục nào đó Error
getRelations public Lấy từ cơ sở dữ liệu tất Class
cả các phiên bản file Error
khác có quan hệ với
Trang 138
Chương 6 - Ứng dụng minh họa “System Version Management”
phiên bản file này
addRelation public Thêm mối quan hệ với 1 Class
phiên bản file khác Error
destroyRelation public Xoá mối quan hệ với 1 Class
phiên bản file khác Error
setAccessStatus protected Cập nhật trạng thái của Class
phiên bản file Error
10. Action :
Thuộc tính :
Tên Ý nghĩa Kiểu Miền giá trị Ghi chú
ID Mã số của Chuỗi <= 20 ký tự
hành động
ActionType hành Enum Add/Remove/Restore/ Loại
Rename/CheckIn/ động
CheckkOut/SetLabel
Date Ngày giờ thực Ngày giờ
hành hiện
động
Note Ghi chú, mô tả Chuỗi <= 200 ký tự
khi thực hiện
hành động
Label Nhãn đặt cho Chuỗi <= 200 ký tự Chỉ sử dụng
item khi thực khi
hiện việc ActionType
SetLabel là SetLabel
Trang 139
Chương 6 - Ứng dụng minh họa “System Version Management”
Hành động :
Tên hàm Phạm vi Diễn giải Kiểu Ghi chú
truy xuất trả về
clear Public Xoá thông tin hành
động
11. Staff :
Thuộc tính :
Tên Ý nghĩa Kiểu Miền giá trị Ghi chú
ID Mã số nhân viên Chuỗi <= 20 ký tự
FullName Họ và tên của Chuỗi <= 50 ký tự
nhân viên
UserName Tên dùng để đăng Chuỗi <= 50 ký tự
nhập vào hệ thống
của nhân viên
Password Mật khẩu dùng để Chuỗi <= 20 ký tự
đăng nhập vào hệ
thống của nhân
viên
DateOfBirth Ngày sinh của Ngày giờ
nhân viên
Email Địa chỉ mail của Chuỗi <= 50 ký tự
nhân viên
Trang 140
Chương 6 - Ứng dụng minh họa “System Version Management”
Hành động :
Tên hàm Phạm vi Diễn giải Kiểu Ghi chú
truy xuất trả về
clear Public Xoá thông tin nhân viên
getStaffs public Lấy thông tin của tất cả Class
các nhân viên có trong Error
hệ thống
createStaff public Tạo 1 nhân viên mới Class
Error
deleteStaff public Xoá 1 nhân viên ra khỏi Class
Error hệ thống
updateStaff public Cập nhật thông tin của 1 Class
Error nhân viên
getProjectsOfStaff public Lấy tất cả các đề án mà Class
nhân viên có tham gia Error
getRolesOfStaff public Lấy các quyền của nhân Class
viên trong hệ thống Error
createStaffRole public Thêm quyền trong hệ Class
thống cho 1 nhân viên Error
deleteStaffRole public Giảm quyền của nhân Class
viên trong hệ thống Error
login public Nhân viên đăng nhập Class
vào hệ thống Error
Trang 141
Chương 6 - Ứng dụng minh họa “System Version Management”
12. StaffWorkingDir :
Thuộc tính :
Tên Ý nghĩa Kiểu Miền giá trị Ghi chú
Staff Con trỏ trỏ tới Con trỏ
nhân viên, cho biết
thư mục làm việc
ứng với nhân viên
nào
WorkingDir Thư mục làm việc Chuỗi <= 200 ký
của 1 item ứng với tự
1 nhân viên
Hành động :
Tên hàm Phạm vi Diễn giải Kiểu Ghi chú
truy xuất trả về
clear Public Xoá thông tin
13. Error :
Thuộc tính :
Tên Ý nghĩa Kiểu Miền giá trị Ghi chú
Error Câu thông báo lỗi Chuỗi
Hành động :
Tên hàm Phạm vi Diễn giải Kiểu Ghi chú
truy xuất trả về
add Public Thêm nội dung vào câu
thông báo lỗi
show public Hiển thị câu thông báo
lỗi
Trang 142
Chương 6 - Ứng dụng minh họa “System Version Management”
clear public Xoá câu thông báo lỗi
havingError public Xác định xem có lỗi xảy bool Nếu câu
ra hay không thông báo lỗi
rỗng =>
không có lỗi,
ngược lại thì
đã xảy ra lỗi
Trang 143
Chương 6 - Ứng dụng minh họa “System Version Management”
DIRECTORY_TYPE
FILE_INFO
6.5.4 Mô hình dữ liệu
PK ID_Directory_Type
CONSTRUCTION
FILE_TYPE
PK
ID_File
TypeName
PK ID_File_Type
PK,FK1 ID_Directory PK
ID_SubDirectory
CONSTRUCTION_FUNCTION_SUBSYSTEM
TypeName
FK1
NameFile DayAdd ID_File_Type Note
PK,FK1 ID_Directory ID_Function PK
DIRECTORY
FUNCTION_FILES
PK,FK2 ID_Directory
VERSION_FILE
PK,FK3 ID_File PK
ID_SubItem
PK
ID_Version_File
FK1
RELATIONSHIP
TYPE_RELATIONSHIP
FK5 ID_File
PK ID_Type_Relationship
FK3
PK,FK1 ID_Version_File_Affect PK
ID_Version_File_IsAffected
CVS_Version FK2 ID_Access_Status
DirectoryName ID_Directory_Type Note DayCreate ID_Run_State Removed
TypeName
FK2
ID_Type_Relationship
CONTENT_FILES
Note DateCreate Removed SizeFile CheckOutDir
LABEL_DIRECTORY
PK,FK1 ID_Directory PK
ID_verison_File
ACTION_DIRECTORY
LABEL_VERSION_FILE
PK
ID_Label _Directory
PK
ID_Action_Directory
PK
ID_Label _Version_File
FK 1
FK4
ACCESS_STATE
FK 2
ID_Directory Label ID_Action_Directory
FK5,FK6 ID_Version_File Label ID_Action_Version_File
PK ID_Access _Status
FK3 FK1
ID_Person OnDate ID_Action_Type ID_Directory Reason
Access _Status _Name Note
ACTION_VERSION_FILE
ACTION_TYPE
PK
ID_Action_Version_File
PK ID_Action_Type
WORKING_DIRECTORY
STAFF
FK3 ID_Person
ActionName
PK ID_Person
FK1
PK,FK1 ID_Directory PK,FK2 ID_Person
OnDate ID_Version_File Reason ID_Action_Type
FK4
Working_Dir
STAFF_ROLE
PK,FK4 ID_Staff_Role
FullName Username Pass_word DateOfBirth Phone Email Address
FK3 FK2 FK1
ID_Project ID_person ID_Role
ROLE
ROLE_FUNCTION
FUNCTION_GROUP
FUNCTION_LIST
PK ID_Role
PK GroupID
PK
ID_Function
PK,FK1 ID_Function PK,FK2 ID_Role
RoleName Note
ProgramType GroupName
ID_FunctionGroup ProgramType FunctioName
FK1 GroupID
Hình 6-14 Mô hình dữ liệu của hệ thống
Trang 144
Chương 6 - Ứng dụng minh họa “System Version Management”
STT
Tên bảng
Mô tả
1.
Loại thư mục: Project, thư mục, phân
DIRECTORY_TYPE
hệ/chức năng, release.
2.
Lưu thông tin của thư mục nói chung
DIRECTORY
(Project, thư mục, phân hệ/chức năng,
release)
3.
Ghi nhận việc gán nhãn của người dùng
LABEL_DIRECTORY
cho thư mục
4.
Bảng lưu mối quan hệ của các thư mục
CONSTRUCTION
với nhau
5.
CONSTRUCTION_FUCTION_SUBSYSTEM Lưu mối quan hệ giữa các phân hệ/
chức năng với nhau
6.
Loại File (Tex/binary)
FILE_TYPE
7.
Lưu thông tin về File
FILE_INFO
8.
Tình trạng truy cập của một thành phần:
ACCESS_STATE
Normal, Check in, check out,
dissynchronize
9.
Lưu trữ các thông tin của một version
VERSION_FILE
file (version này dựa vào version của
CVS)
Ghi nhận việc gán nhãn của người dùng
10. LABEL_VERSION_FILE
cho một version file nào đó
Lưu trữ sự thay đổi về mối quan hệ giữa
11. CONTENT_FILES
Thư mục và file
Lưu trữ mối liên hệ giữa các phân hệ/
12. FUNCTION_FILES
chức năng với file.
Các loại ảnh hưởng giữa mối quan hệ
13. TYPE_RELATIONSHIP
của các thành phần (references, link)
Mối liên hệ giữa hai version file với
14. RELATIONSHIP
nhau
Các thông tin của nhân viên trong công
15. STAFF
Danh sách cách bảng quan hệ
Trang 145
ty
Các chức năng của các thành viên trong
16. FUNCTION_LIST
hệ thống : được phép check in, check
out... (liên quan đến các chức năng hệ
thống)
Các vai trò của nhân viên trong đề án
17. ROLE
Quan hệ giữa một nhân viên giữ vai trò
18. ROLE_FUNCTION
nào thì được thực hiện chức năng nào
Vai trò của nhân viên tham gia trong
19. STAFF_ROLE
một đề án cụ thể
Các loại chức năng (add, check in,
20. ACTION_TYPE
check out, label, remove…)
Lưu trữ các thao tác tác động lên thư
21. ACTION_DIRECTORY
mục
Lưu trữ các thao tác tác động lên file
22. ACTION_VERSION_FILE
Chứa cây thư mục để check out của mỗi
23. WORKING_DIR
nhân viên
Chứa nhóm các chức năng dùng để
24. FUNTION_GROUP
phân gom nhóm các chức năng trong
bảng FUNCTION_LIST lại.
Chương 6 - Ứng dụng minh họa “System Version Management”
Trang 146
Chương 6 - Ứng dụng minh họa “System Version Management”
Mô tả thuộc tính dạng dữ liệu
1. DIRECTORY_TYPE
STT
Tên
Kiểu dữ liệu
Miền giá trị
Mô tả
Ghi
chú
Mã
loại
1.
ID_Directory_Type
int
Thư mục
1: Repository 2: Project 3: SubSystem_Function, 4: Directory 5: Release
Tên
loại
2.
TypeName
Nvarchar(50)
thư mục
2. DIRECTORY
STT
Tên
Kiểu dữ liệu Miền giá trị
Mô tả
Ghi
chú
1.
ID_Directory
Varchar(20)
Mã của thư mục
2. DirectoryName
nvarchar(50)
Tên Thư mục
3.
ID_Directory_Type
int
Mã Loại Thư mục
4. Note
nvarchar(200)
Ghi chú
5. DayCreate
SmallDateTime
Ngày tạo thư mục
6.
ID_Run_State
int
7. Removed
bit
0,1
Trạng thái xoá tạm
hay không
Trang 147
Chương 6 - Ứng dụng minh họa “System Version Management”
3. LABEL_DIRECTORY
STT
Tên
Kiểu dữ liệu Miền giá trị
Mô tả
Ghi
chú
1.
ID_Label_Directory
varchar(20)
Mã của
thư mục
được gán nhãn
2.
ID_Directory
varchar(20)
Mã thư mục được
gán nhãn
3. Label
nvarchar(50)
Nhãn do người dùng
gán
4.
ID_Action_Directory varchar(20)
Mã hành động gán
nhãn.
4. CONSTRUCTION
STT
Tên
Kiểu dữ liệu Miền giá
Mô tả
Ghi chú
trị
1.
ID_Directory
varchar(20)
Mã Thư mục
Loại thư mục
khác phân hệ/
chức năng
2.
ID_SubDirectory
varchar(20)
Mã thư mục con Loại thư mục
khác phân hệ/
chức năng
5. FUNCTION_SUBSYSTEM
STT
Tên
Kiểu dữ liệu Miền
Mô tả
Ghi chú
giá trị
1.
ID_Directory
varchar(20)
Mã
thư
mục
(project,
release,
function)
Thư mục có
2.
ID_Function
varchar(20)
Mã các phân hệ/
loại là phân hệ/
chức năng của thư
chức năng
mục
Trang 148
Chương 6 - Ứng dụng minh họa “System Version Management”
6. FILE_TYPE
STT
Tên
Kiểu dữ liệu Miền giá trị
Mô tả
Ghi
chú
1.
ID_File_Type
int
Mã loại File
1: Text
2: Binary
2. TypeName
nvarchar(50)
Tên
loại File (text,
binary)
7. FILE_INFO
STT
Tên
Kiểu dữ liệu Miền giá trị
Mô tả
Ghi
chú
1.
ID_File
Varchar(20)
Mã File
2. NameFile
nvarchar(50)
Tên File
3.
ID_File_Type
Varchar(20)
Loại File
4. Note
nvarchar(200)
Chi chú về file
5. DayAdd
SmallDateTime
Ngày thêm file vào
project
8. ACCESS_STATE
STT
Tên
Kiểu dữ liệu
Miền giá trị
Mô tả Ghi
chú
Mã
trạng
1.
ID_ Access_Status
int
1: Normal
thái
truy
2: CheckIn
cập
3: CheckOut
4: Dissynchronize
Tên trạng
2. Access_Status_Name
nvarchar(50)
thái
truy
cập
Ghi chú
3. Note
Nvarchar(200)
9. VERSION_FILE
Trang 149
Chương 6 - Ứng dụng minh họa “System Version Management”
STT
Tên
Kiểu dữ liệu Miền giá trị
Mô tả
Ghi
chú
1.
ID_Version_File
varchar(20)
Mã version – File
2.
ID_File
varchar(20)
Mã File
3. CVS_Version
varchar(20)
Version của File
4.
ID_Access_Status
int
Mã
trạng
thái
truy
xuất
5. Note
nvarchar(200)
Ghi chú
6. DayCreate
smallDateTime
Ngày tạo
7. Removed
Bit
0,1
Trạng thái xoá tạm
hay không
8.
SizeFile
bigint
Kích thước file
9. CheckOutDir
Nvarchar(200)
Ghi nhận lại thư mục
checkout
của
versionfile
khi
version
file
bị
checkout
10. LABEL_VERSION_FILE
STT
Tên
Kiểu dữ liệu Miền giá
Mô tả
Ghi
trị
chú
1.
ID_Label_Version_File
Mã gán nhãn
2.
ID_Version_File
varchar(20)
Mã version
file
được gán nhãn
3. Label
nvarchar(50)
Nhãn được người
dùng gán
4.
ID_Action_Version_File varchar(20)
Mã hành động gán
nhãn
11. CONTENT_VERFILES
Trang 150
Chương 6 - Ứng dụng minh họa “System Version Management”
STT
Tên
Kiểu dữ liệu Miền giá trị
Mô tả
Ghi chú
1.
ID_Directory
varchar(20)
Mã
thư mục
Thư mục có
chứa các file
loại là
Directory
(bên cấu
trúc)
2.
ID_Verison_File Varchar(20)
Mã version file
chứa trong thư
mục
STT
Tên
Kiểu dữ
Miền giá trị
Mô tả
Ghi chú
liệu
1.
varchar(20)
Mã thư mục
Thư mục có
12. FUNCTION_VERSIONFILE
ID_Directory
loại là phân
hệ/ chức
năng (bên
kiến trúc)
2.
varchar(20)
Mã file thuộc trong
ID_File
mã thư mục ở trên
13. TYPE_RELATIONSHIP
Ghi
STT
Tên
Kiểu dữ liệu Miền giá trị
Mô tả
chú
1.
ID_Type_Relationship
int
1: Link
Mã loại quan hệ
2: Reference
2. TypeName
nvarchar(50)
Tên loại quan hệ
14. RELATIONSHIP
Trang 151
Chương 6 - Ứng dụng minh họa “System Version Management”
STT
Tên
Kiểu dữ
Miền giá
Mô tả
Ghi
liệu
trị
chú
1.
ID_Version_File_Affect
varchar(20)
Mã Version của
file
gây
ảnh
hưởng
2.
ID_Vesion_File_IsAffected varchar(20)
Mã Version của
file bị ảnh hưởng
3.
ID_Type_Relationship
int
Loại ảnh hưởng
giữa hai version
file này
15. STAFF
STT
Tên
Kiểu dữ liệu Miền giá trị
Mô tả
Ghi
chú
1.
ID_Person
varchar(20)
Mã nhân viên
2.
FullName
nvarchar(50)
Tên nhân viên
3. Username
varchar(20)
Account dang nhập của
nhân viên
4.
Pass_word
varchar(20)
Mật khẩu của nhân viên
5. DateOfBirth
varchar(20)
Ngày sinh
6.
Phone
varchar(20)
Số điện thoại
7. Email
varchar(50)
Địa chỉ email
8. Address
nvarchar(20)
Địa chỉ liên lạc
16. FUNCTION_LIST
STT
Tên
Kiểu dữ liệu Miền giá trị
Mô tả
Ghi
chú
1.
ID_Function
int
Mã các chứa năng có
trong chương
trình
SVM
Trang 152
Chương 6 - Ứng dụng minh họa “System Version Management”
2.
ID_FucntionGroup
int
Thuộc nhóm
chức
năng
nào
trong
chương trình.
3.
ProgramType
int
Dùng
cho
chương
trình nào
4.
FunctionName
nvarchar(50)
Tên chức năng trong
chương trình SVM
17. ROLE
STT
Tên
Kiểu dữ liệu Miền giá trị
Mô tả
Ghi
chú
1.
ID _Role
varchar(20)
Mã vai trò
2. RoleName
nvarchar(50)
Tên vai trò
3. Note
Nvarchar(200)
Ghi chú
Trang 153
Chương 6 - Ứng dụng minh họa “System Version Management”
18. ROLE_FUNCTION
STT
Tên
Kiểu dữ liệu Miền giá trị
Mô tả
Ghi
chú
1.
ID_Function
varchar(20)
Mã chức năng của
chương trình
2.
ID_Role
varchar(20)
Mã vai trò có quyền
thực hiện chức năng
của chương trình
19. STAFF_ROLE
STT
Tên
Kiểu dữ liệu Miền giá trị
Mô tả
Ghi
chú
1.
ID_Staff_Role
varchar(20)
Mã bảng Staff_Role
2.
ID_Project
varchar(20)
Mã project
3.
ID_Person
varchar(20)
Mã nhân viên
4.
ID_Role
varchar(20)
Mã vai trò
20. ACTION_TYPE
STT
Tên
Kiểu dữ liệu
Miền giá trị
Mô tả
Ghi
chú
Mã loại hoạt
1.
ID_Action_Type
int
1: Add
động
của
2: Remove
chương trình
3: SetLabel
4: CheckIn
5: CheckOut
6: Rename
7: Restore
8: UndoCheckOut
Trang 154
Chương 6 - Ứng dụng minh họa “System Version Management”
2. ActionName
nvarchar(50)
Tên hoạt động
(Label, Check
in, check out,
add,
remove,
..)
21. ACTION_DIRECTORY
STT
Tên
Kiểu dữ liệu Miền giá
Mô tả
Ghi
trị
chú
ID_Action_Directory varchar(20)
Mã
bảng
Action_Directory
ID_Person
varchar(20)
Mã người thực hiện
hành động
OnDate
smalldatetime
Ngày giờ thực hiện
hành động
ID_Action_Type
int
Loại hành động
ID_Directory
Varchar(20)
Mã thư mục bị tác
động
Reason
Nvarchar(200)
Lý do thực hiện hành
động
22. ACTION_VERSION_FILE
STT
Tên
Kiểu dữ liệu Miền
Mô tả
Ghi
giá trị
chú
1.
ID_Action_Version_File varchar(20)
Mã
bảng
Action_Version_File
2.
ID_Person
varchar(20)
Mã người thực hiện
hành động
3. OnDate
Smalldatetime
Ngày giờ thực hiện
hành động
Lý do
4. Reason
nvarchar(200)
5.
ID_Action_Type
int
Loại hành động
Trang 155
Chương 6 - Ứng dụng minh họa “System Version Management”
6.
ID_Version_File
Varchar(20)
Mã version file bị tác
động
23. WORKING_DIRECTORY
STT
Tên
Kiểu dữ
Miền giá
Mô tả
Ghi
liệu
trị
chú
1.
ID_Working_Directory varchar(20)
Mã
bảng
Working_Directory
2.
ID_Person
varchar(20)
Mã người
3. Working_Dir
Thư mục làm việc ứng
với mã người
24. FUNCTION_GROUP
STT
Tên
Kiểu dữ liệu Miền giá trị
Mô tả
Ghi
chú
Mã GroupID
1. GroupID
int
1: View
2: Activities
3: Project
4: Administrator
5: Requirement
6: Test Case
7: Bug
2.
ProgramType
int
Chương trình SVM
hay QLYC
3. GroupName
Nvarchar(50)
Tên nhóm
Trang 156
Chương 6 - Ứng dụng minh họa “System Version Management”
6.6 Mô hình thiết kế
Các lược đồ sequence diagram
: User
: Staff
: frmMainApp
: frmLogin
: frmSelectWorkingProject
: frmSystemView
: DbStaff
1: // Login
2: //ShowDialog()
3: //UserName + Password
4: // Click Login
5: Login()
6: //Login()
7: //GetListStaff()
8: //staffs
9: // Login OK
Dang nhap thanh cong
10: staff
11: //ShowDialog()
12: // Chon Project + Role
13: //Click Select
14: //Project +Role duoc chon
15: //Hien thi man hinh chinh cho user + project duoc chon
16: //SetMenuRole()
6.6.1 Đăng nhập
Trang 157
Chương 6 - Ứng dụng minh họa “System Version Management”
: User
: RepositoryController
: CVSCommand
: MainForm
: CreateDirForm
: dbRepository
: CVS
: dbAction
//select add Repository()
//formLoad()
//fill infomation()
//check the infomation(Repository)
[ If the information is valid]
//AddRepository()
//call add to CSV()
//add to CVS()
//register event (action)
6.6.2 Thêm kho chứa
: User
: ProjectController
: MainForm
: CreateDirForm
: dbProject
: CVS
: dbAction
//select add Repository()
//formLoad()
//fill infomation(Project)//check the infomation(Project)
[ If the information is valid]
//AddProject(Project)
//add to CVS()
//register event(action)
6.6.3 Thêm đề án
Trang 158
Chương 6 - Ứng dụng minh họa “System Version Management”
: User
: ViewController
: ProjectController
: ReleaseController
: DirController
: MainForm
: dbDir
: dbVersionFile
//select view mode()
//set viewmode(mode Structure)
//get Structer Of Project (mode: Structure)
//get Dirs()
//get dirs of Project (IDProject)
//get VersionFiles of dir (IDDir)
//get Release (mode: Structure)
//get Structure of Release (IDRelease)
//get Structure of Release (IDRelease)
//get VersionFiles of dir(IDDir)
6.6.4 Xem Cấu trúc của project
: User
: ViewController
: ProjectController
: ReleaseController
: MainForm
: dbFunctionSubSystem
: dbFile
: FunctionSubSystemCo...
//select view mode()
//set viewmode(mode Architecture)
//get Architecture Of Project (mode: Architecture)
//get Function subsystem()
//get Function subsystem of Project (IDProject)
//get File of function/subsytem (IDFuntion)
//get Release (mode: Architecture)
//get Architecture of Release (IDRelease)
//get Architecture of Release (IDRelease)
//get File of function/subsytem (IDFuntion)
6.6.5 Xem kiến trúc của đề án
Trang 159
Chương 6 - Ứng dụng minh họa “System Version Management”
: User
: VersionFileController
: MainForm
: CheckOutForm
: CVSCommand : dbVersionFile
: CVS
: dbAction
//select Checkout form(ID_VersionFile)
//FormLoad (ID_VersionFile)
//Check out(ID_VersionFile)
//Check out (ID_VersionFile)
//CheckOut(ID_VersionFile)
//CheckOut(ID_VersionFile)
//CheckOut(ID_VersionFile)
//register event(action)
//Get All Related file(bool)
//Set status of Related files()
6.6.6 Check out
Trang 160
Chương 6 - Ứng dụng minh họa “System Version Management”
: User
: VersionFileController
: MainForm
: CheckOutForm
: CVSCommand : dbVersionFile
: CVS
: dbAction
//select Checkin form(ID_VersionFile)
//FormLoad (ID_VersionFile)
//Check in(ID_VersionFile)
//Check in (ID_VersionFile)
//Checkin(ID_VersionFile)
//Checkin(ID_VersionFile)
//Checkin(ID_VersionFile)
//register event(action)
//Keep Related file(bool)
//Set status of Related files()
6.6.7 Check in
Trang 161
Chương 6 - Ứng dụng minh họa “System Version Management”
: User
: MainForm
: SetLabelForm : ItemController
: dbItem
: dbAction
//select set label form(ID_Item)
//FormLoad(ID_Item)
//enter label(string)
//Set label (item)
//insert label()
//register event(action)
6.6.8 Gán nhãn cho Item
Trang 162
Chương 6 - Ứng dụng minh họa “System Version Management”
: User
: VersionFileController
: MainForm
: SetRelationshipForm
: dbVersionFile
//Select set relationship Form()
//FormLoad()
//select all versionFiles (IDProject)
//select all versionFiles (ID_Project)
//select 2 versionFiles
//set relationship (ID_VerFile, ID_VerFile)
//set relationship (ID_VerFile, ID_VerFile)
6.6.9 Thiết lập quan hệ giữa hai versionfile
Trang 163
Chương 6 - Ứng dụng minh họa “System Version Management”
: User
: MainForm
: SetLabelForm : ItemController
: dbItem
: dbAction
//select HistoryForm(ID_Item)
//FormLoad(ID_Item)
//history(ID_Item)
//select ItemInfo(ID_Item)
//select all actions (ID_Item)
//show result()
6.6.10 Xem lịch sử của Item
Trang 164
Chương 7 - Tổng kết
Chương 7 Tổng kết
7.1 Tự đánh giá
Sau khi thực hiện đề tài, chúng em đã đạt được những kết qủa sau đây
Về lý thuyết:
• Nắm sâu thêm những kiến thức cụ thể liên quan đến quản lý cấu hình phần
mềm, những công cụ được sử dụng để quản lý cấu hình.
• Hiểu rõ thêm về qui trình phát triển phần mềm đặc biệt là qui trình phát
triển theo mô hình thác nước.
• Có cơ hội tiếp cận với một đơn vị sản xuất phần mềm và tìm hiểu công việc
sản xuất phần mềm ở T3H
Về chương trình minh họa trong luận văn.
• Chương trình minh họa trong luận văn vẫn còn nhiều điểm thiếu sót so với
một công cụ về quản lý cấu hình thương mại.
• Chương trình đã thể hiện được những tính năng có thể dùng cho hệ thống
quản lý cấu hình: thiết lập kiến trúc hệ thống, quản lý phiên bản phát hành,
quản lý sự liên hệ giữa các phiên bản với nhau.
7.2 Hướng phát triển
Dựa trên kết qủa hiện tại của luận văn chúng em nhận thấy cần phải có những
mở rộng hơn nữa cho chương trình như sau:
• Chương trình chỉ mới được hoàn thiện phía client còn phía server vẫn phải
sử dụng đến cơ sở dữ liệu SQL và chương trình quản lý sự thay đổi của tập
tin bằng CVS. Có hai hướng để phát triển chương trình như sau:
• Hướng 1: Giữ lại server SQL, nhưng mở rộng bằng cách viết thêm những
module hỗ trợ cho cho nhiều hệ thống quản lý sự thay đổi tập tin như: RCS,
SCM, Visual Source Safe. Khi đó chương trình sẽ linh động ở chỗ có thể
Trang 165
Chương 7 - Tổng kết
kết hợp với những hệ quản lý sự thay đổi của tập tin khi đem sang các công
ty có những hệ thống quản lý tập tin riêng.
• Hướng 2: Tạo một hệ thống quản lý tập tin & thông tin quan hệ giữa các tập
tin riêng không sử dụng SQL hoặc một hệ thống quản lý thay đổi tập tin
nào khác.
• Tích hợp chương trình với những môi trường phát triển phần mềm tích hợp
hoặc những môi trường phân tích thiết kế để quản lý tập tin được chặt chẽ
và tiện dụng hơn cho các nhân viên phân tích & lập trình.
• Thiết kế giao diện ứng dụng dạng web để có thể hỗ trợ cho cả phía khách
hàng để có thể cập nhật được cấu hình phần mềm mới nhất hoặc tải bản sửa
lỗi thích hợp về.
Trang 166
Tài liệu tham khảo
1. Configuration Management Principles and Practice, Addison Wesley, 0-321-
11766-2,December 30,2002
2. Capability Maturity Model® Integration (CMMI), Version 1.1, Carnegie
Mellon University, Pittsburgh, PA 15213-3890
3. Katherine E. Harvey, Summary of the SEI Workshop on Software
Configuration Management, CMU/SEI-86-TR-5 December 1986
4. Dart, Susan, Spectrum of Functionality in Configuration Management
Systems, Software Engineering Institute, 1990.
http://www.sei.cmu.edu/technology/case/scm/tech_rep/TR11_90/TOC_TR11_
90.html
5. Berczuk, Steve. "Configuration Management Patterns", 1997.
6. http://www.bell-labs.com/cgi-
user/OrgPatterns/OrgPatterns?ConfigurationManagementPatterns.
7. Peter H. Feiler, Configuration Management Models in Commercial
Environments, March 1991, CMU/SEI-91-TR-7, ESD-9-TR-7
8. Susan A. Dart, The Past, Present and Future of Configuration Management,
Software Engineering Institute, Carnegie Mellon University, Pittsburgh, PA
15213, NADC, 12 February 1993.
9. Susan Dart, Concepts in Configuration Management Systems, Software
Engineering Institute , Carnegie-Mellon University, Pittsburgh, PA. 15123-
3890 USA
10. Feiler, P.H. and Downey, G., Tool Version Management Technology: A Case
Study, CMU/SEI-90-TRSEI-90-TR-25, Software Engineering Institute,
Carnegie Mellon University, November 1990
11. Microsoft Visual Source Safe
12. Surround SCM2.0.4(Windows) của hãng SeaPine Software -
www.seapine.com
13. Chương trình CVSNT
Trang 167
Chương 7 - Tổng kết
14. www.scmlabs.com
Trang 168