Bài giảng Nhập môn công nghệ phần mềm - Chương 5: Quản lý cấu hình phần mềm

Chương 5: Quản lý cấu hình PM  
• 1. Đặt vấn đề  
NHẬP MÔN  
• 2. Khái niệm quản lý cấu hình PM  
• 3. Các hoạt động trong quản lý cấu hình PM  
• 4. Vai trò của người quản lý cấu hình PM  
• 5. Các khái niệm trong SCM  
CÔNG NGHỆ PHẦN MỀM  
(INTRODUCTION TO SOFTWARE  
ENGINEERING)  
• 6. Lập kế hoạch quản lý cấu hình PM  
• 7. Các công cụ quản lý cấu hình PM  
1
2
1
2
1. Đặt vấn đề  
Software Evolution  
Quá trình phát triển phần mềm  
• Phần mềm được phát triển theo thời gian  
• Lý tưởng:  
– Nhiều yếu tố khác nhau được tạo ra trong suốt thời gian  
của dự án  
– Có nhiều phiên bản khác nhau  
– Phần mềm được phát triển từ các yêu cầu ổn định  
– (do việc hướng đến mục tiêu cố định luôn dễ dàng hơn  
mục tiêu bị thay đổi)  
– Các nhóm làm việc song song để đưa ra sản phẩm cuối  
• Thực tế:  
cùng  
– Các yêu cầu ổn định luôn không tồn tại cho hầu  
• Hệ thống có thể thay đổi liên tục  
hết các hệ thống thực tế  
• Do đó:  
– Một dự án phần mềm hiệu quả cần phải có chiến  
lược để giải quyết vấn đề “THAY ĐỔI”  
3
4
3
4
Vấn đề  
Thay đổi và Kiểm soát  
• Nhiều người phải làm việc trên phần mềm đang thay đổi  
• Nhiều phiên bản của phần mềm phải được hỗ trợ:  
– Hệ thống đã phát hành  
– Hệ thống được cấu hình tùy chỉnh (các chức năng khác nhau)  
– Hệ thống đang được phát triển  
• Phần mềm phải chạy trên các máy và hệ điều hành khác nhau  
• Nếu những thay đổi không được kiểm soát - mọi thứ  
có thể và sẽ vượt khỏi tầm tay  
• Vấn đề quản lý thay đổi thậm chí là cần thiết khi  
nhiều người cùng làm việc trong một dự án  
• Nếu không có các chiến lược và cơ chế thích hợp để  
kiểm soát các thay đổi - người ta không bao giờ có  
thể khôi phục về bản sao cũ ổn định hơn của phần  
mềm  
Do đó cần phải có sự quản lý và phối hợp với nhau  
• Quản lý cấu hình phần mềm  
– quản lý các hệ thống phần mềm đang phát triển  
– kiểm soát chi phí liên quan đến việc thực hiện các thay đổi đối với hệ  
– Do bởi mọi thay đổi đều dẫn đến rủi ro  
thống  
5
6
5
6
Câu trả lời  
Configuration Management…  
• Sự thật:  
• Áp dụng một cách tiếp cận nghiêm ngặt để  
đảm bảo  
– Những thay đổi là không thể tránh khỏi  
– Các thay đổi cần được kiểm soát  
– Các thay đổi cần được quản lý  
– Các chi tiết trong hệ thống phần mềm đều được  
xác định và theo dõi  
– Các thay đổi với các mục khác nhau được ghi lại và  
theo dõi  
• Giải pháp  
– Quản lý cấu hình phần mềm  
– Software Configuration Management(SCM)  
– Tích hợp thích hợp tất cả các mô-đun khác nhau  
7
8
7
8
Configuration Management  
Sự cần thiết của SCM…  
• Khi phần mềm phát triển - nhiều tài nguyên hệ thống thay đổi  
• SCM có thể giúp xác định tác động của thay đổi cũng  
– CM ngăn ngừa các lỗi có thể tránh được phát sinh từ các thay đổi xung  
như kiểm soát sự phát triển song song  
đột  
• Nó có thể theo dõi và kiểm soát các thay đổi trong  
• Thông thường nhiều phiên bản của phần mềm được phát  
hành và cần đến sự hỗ trợ  
tất cả các khía cạnh của phát triển phần mềm  
– Yêu cầu  
– Thiết kế  
– Mã hóa  
– Kiểm thử  
– Làm tài liệu  
– CM cho phép một nhóm hỗ trợ nhiều phiên bản.  
– CM cho phép các thay đổi trong các phiên bản tuần tự được truyền bá  
• CM cho phép các nhà phát triển theo dõi các thay đổi và khôi  
phục bất kỳ thay đổi nào để đưa hệ thống phần mềm trở lại  
trạng thái an toàn đã biết gần đây nhất  
9
Software Project Management  
10  
9
10  
2. Software Configuration  
Software Configuration Management  
Management  
Forward Definition!  
• Description:  
• Definition:  
– Quản lý cấu hình phần mềm bao gồm các nguyên tắc  
và kỹ thuật đánh giá và kiểm soát sự thay đổi đối với  
các sản phẩm phần mềm trong và sau quá trình kỹ  
thuật phần mềm.  
– Một tập hợp các quy tắc quản lý trong quy trình kỹ  
thuật phần mềm để phát triển đường cơ sở  
(baseline).  
n
Chuẩn IEEE (IEEE Std. No. 610.12-1990) định nghĩa một cơ sở như sau:  
• Đặc tả kỹ thuật hoặc sản phẩm đã được xem xét và thống  
nhất chính thức, sau đó được dùng như là một cơ sở để tiếp tục  
phát triển, và có thể thay đổi chỉ thông qua thủ tục kiểm soát  
thay đổi chính thức.  
• Standards (approved by ANSI)  
– IEEE 828: Software Configuration Management Plans  
n
Một baseline là một mốc quan trọng trong sự phát triển của phần mềm  
được đánh dấu bằng việc cung cấp một hoặc nhiều mục cấu hình phần mềm  
và sự chấp thuận của các SCI - software configuration items thu được thông  
qua đánh giá kỹ thuật chính thức.  
– IEEE 1042: Guide to Software Configuration  
Management  
11  
12  
2. SCM Các hoạt động  
SCM Activities (continued)  
• Nhận dạng mục cấu hình (Configuration item identification)  
• Software Configuration Management (SCM) Activities:  
– Configuration item identification  
– Promotion management  
– mô hình hóa hệ thống như một tập hợp các thành phần đang phát  
triển  
• Quản lý tăng trưởng (Promotion management)  
– là việc tạo ra các phiên bản cho các nhà phát triển khác  
• Quản lý phát hành (Release management)  
– là việc tạo ra các phiên bản cho khách hàng và người dùng  
• Quản lý nhánh (Branch management)  
– Release management  
– Branch management  
– Variant management  
– Change management  
– là quản lý của sự phát triển đồng thời  
• Quản lý biến thể (Variant management)  
– là việc quản lý các phiên bản dự định cùng tồn tại  
• Quản lý thay đổi (Change management)  
– là việc xử lý, phê duyệt và theo dõi các yêu cầu thay đổi  
• No fixed rules:  
– SCM functions are usually performed in different ways  
(formally, informally) depending on the project type and  
life-cycle phase (research, development, maintenance).  
13  
14  
4. SCM Roles  
5. Các khái niệm trong SCM  
• Người quản lý cấu hình  
• What are  
– Chịu trách nhiệm xác định các mục cấu hình (configuration items  
– CI). Người quản lý cấu hình cũng có thể chịu trách nhiệm xác  
định các thủ tục để tạo các sự tăng trưởng và các bản phát  
hành.  
– Configuration Items  
– Baselines  
– SCM Directories  
– Versions, Revisions and Releases  
• Thành viên ban kiểm soát thay đổi  
– Chịu trách nhiệm phê duyệt hoặc từ chối các yêu cầu thay đổi  
• Lập trình viên  
– Tạo các thay đổi được kích hoạt bởi các yêu cầu. Nhà phát triển  
kiểm tra các thay đổi và giải quyết xung đột  
➭ Các thuật ngữ được định nghĩa ở đây không  
nghiêm chặt và thay đổi đối với các hệ thống  
quản lý cấu hình khác nhau.  
• Kiểm soát viên  
– Chịu trách nhiệm về việc lựa chọn và đánh giá các thay đổi để  
phát hành và đảm bảo tính nhất quán và đầy đủ của bản phát  
hành này  
15  
16  
Configuration Item  
Configuration Item  
• Các mục cấu hình phần mềm không chỉ là các đoạn mã  
chương trình mà là tất cả các loại tài liệu cho sự phát  
triển phần mềm, ví dụ:  
“An aggregation of hardware, software, or  
both, that is designated for configuration  
management and treated as a single entity in  
the configuration management process.”  
– các tệp mã  
– trình điều khiển cho các trường hợp kiểm thử  
– tài liệu phân tích hoặc thiết kế  
– tài liệu hướng dẫn người dùng  
“Tập hợp phần cứng, phần mềm hoặc cả hai,  
được chỉ định để quản lý cấu hình và được coi  
như một thực thể duy nhất trong quy trình  
quản lý cấu hình”.  
– cấu hình hệ thống (ví dụ: phiên bản trình biên dịch được  
sử dụng)  
v
Trong một số hệ thống, không chỉ phần mềm mà còn tồn tại các mục cấu hình phần cứng  
(CPU, tần số tốc độ bus)!  
17  
18  
Configuration management concepts  
(UML class diagram).  
An example of CM aggregates and  
configuration items  
*
Controlled item  
A320:CM Aggregate  
*
Version  
CM Aggregate  
Configuration item  
*
Fly-by-wire SW:CI  
Landing Gear:CM Aggregate  
Tire:CI  
Promotion  
Release  
*
Workspace  
Repository  
Fuselage:CI  
Wing:CI  
19  
20  
Finding Configuration Items  
(continued)  
Finding Configuration Items (CIs)  
• Một số thực thể này phải được duy trì trong suốt thời  
gian tồn tại của phần mềm. Điều này cũng bao gồm giai  
đoạn khi phần mềm không còn được phát triển nhưng  
vẫn được sử dụng bởi khách hàng vẫn mong đợi sự hỗ  
trợ thích hợp trong nhiều năm.  
• Các dự án lớn thường tạo ra hàng nghìn thực thể  
(tệp, tài liệu, ...) phải được xác định duy nhất.  
• Nhưng không phải tất cả các thực thể đều cần  
được định cấu hình. Vấn đề:  
• Một lược đồ đặt tên thực thể nên được xác địnhđể các  
– Cái gì: Lựa chọn CI (Nên quản lý những gì?)  
tài liệu liên quan có tên liên quan.  
• Lựa chọn các mục cấu hình phù hợp là một kỹ năng cần  
– Khi nào: Khi nào bạn bắt đầu đặt một thực thể dưới  
thực hành  
sự kiểm soát cấu hình?  
– Rất giống với mô hình đối tượng  
• Bắt đầu quá sớm dẫn đến quá sự “áp đặt”  
• Bắt đầu quá muộn dẫn đến hỗn loạn  
– Sử dụng các kỹ thuật tương tự như mô hình hóa đối tượng  
để tìm các CI  
21  
22  
Terminology: Baseline  
Terminology: Baseline  
“A specification or product that has been formally  
reviewed and agreed to by responsible  
Examples:  
Baseline A: API của một chương trình được xác định hoàn toàn; phần thân của các  
phương thức trống.  
management, that thereafter serves as the basis  
for further development, and can be changed only  
through formal change control procedures.”  
Baseline B: Tất cả các phương pháp truy cập dữ liệu được thực hiện và thử nghiệm; lập  
trình GUI có thể bắt đầu.  
Baseline C: GUI được triển khai, giai đoạn thử nghiệm có thể bắt đầu.  
“Một đặc tả hoặc sản phẩm đã được xem xét và  
chấp nhận, sau đó sẽ là cơ sở để phát triển thêm  
và chỉ có thể được thay đổi thông qua các thủ tục  
kiểm soát thay đổi chính thức.”  
23  
24  
More on Baselines  
Baselines in SCM  
• Khi hệ thống được phát triển, một loạt baseline được  
phát triển, thường là sau khi xem xét (đánh giá phân  
tích, đánh giá thiết kế, xem xét mã, kiểm tra hệ thống,  
chấp nhận khách hàng, ...)  
Baseline A (developmental)  
All changes relative to baseline A  
Baseline B (functional)  
All changes relative to baseline B  
Baseline C (beta test)  
All changes relative to baseline C  
Official Release  
• Nhiều lược đồ đặt tên cho đường cơ sở tồn tại (1.0,  
6.01a, ...)  
• Lược đồ 3 chữ số:  
7.5.5  
Release  
(Customer)  
Version  
(Developer)  
Revision  
(Developer)  
25  
26  
Three digit version identification  
scheme  
SCM Directories  
MUE.0.0.1:Release  
Alpha test release  
• Programmer’s Directory (IEEE: Dynamic Library)  
– Thư viện để chứa các thực thể phần mềm mới được tạo  
hoặc sửa đổi. Không gian làm việc của lập trình viên chỉ do  
lập trình viên kiểm soát.  
MUE.1.0.0:Release  
First major release  
Second minor release  
with bug fixes  
• Master Directory (IEEE: Controlled Library)  
MUE.1.2.1:Release  
MUE.2.0.3:Release  
– Quản lý (các) baseline và kiểm soát các thay đổi được thực  
hiện đối với chúng. Mục nhập được kiểm soát, thường sau  
khi được xác minh. Các thay đổi phải được cho phép.  
Second major  
release with three  
series of bug fixes  
• Software Repository (IEEE: Static Library)  
Three-digit version identification scheme  
– Lưu trữ cho các baseline khác nhau được phát hành để sử  
dụng chung. Các bản sao của các baseline này có thể được  
cung cấp cho các tổ chức yêu cầu.  
<version> ::= <configuration item name>.<major>.<minor>.<revision>  
<major> ::= <nonnegative integer>  
<minor> ::= <nonnegative integer>  
<revision> ::= <nonnegative integer>  
27  
28  
Standard SCM Directories  
Change management  
• Quản lý thay đổi là việc xử lý các yêu cầu thay đổi  
– Một yêu cầu thay đổi dẫn đến việc tạo ra một bản phát hành mới  
• Quy trình thay đổi  
• Programmer’s Directory  
– (IEEE Std: “Dynamic Library”)  
– Completely under control of one  
– Thay đổi được yêu cầu (có thể được thực hiện bởi bất kỳ ai bao gồm  
programmer.  
cả người dùng và nhà phát triển)  
Promotion  
– Yêu cầu thay đổi được đánh giá dựa trên các mục tiêu của dự án  
– Sau khi đánh giá, thay đổi được chấp nhận hoặc bị từ chối  
• Master Directory  
– (IEEE Std: “Controlled Library”)  
Central source  
code archive  
– Nếu nó được chấp nhận, thay đổi được chỉ định cho người phát triển  
và được triển khai  
– Central directory of all  
promotions.  
– Thay đổi đã thực hiện được kiểm tra.  
Release  
• Mức độ phức tạp của quy trình quản lý thay đổi thay đổi theo dự  
án. Các dự án nhỏ có thể thực hiện các yêu cầu thay đổi một cách  
không chính thức và nhanh chóng trong khi các dự án phức tạp yêu  
cầu các biểu mẫu yêu cầu thay đổi chi tiết và sự chấp thuận chính  
thức của một người quản lý nữa.  
• Software Repository  
– (IEEE Std: “Static Library”)  
– Externally released baselines.  
Foo’95  
Foo’98  
29  
30  
Managing Concurrent Development  
Version vs. Revision vs. Release  
• Version:  
– An initial release or re-release of a configuration item  
associated with a complete compilation or recompilation  
of the item. Different versions have different functionality.  
• Trong các dự án lớn, các nhà phát triển thường muốn  
thay đổi cùng các hạng mục (giống nhau)  
• Revision:  
• Cần hỗ trợ đồng thời các phiên bản đã phát hành và phát  
– Change to a version that corrects only errors in the  
triển mới.  
design/code, but does not affect the documented  
functionality.  
Quiz: Is Windows98 a new  
version or a new revision compared  
to Windows95 ?  
• HOW?  
• Release:  
– The formal distribution of an approved version.  
31  
32  
Branches: CVS  
6. SCM planning  
<version> ::= <configuration item name>.<version identifier>  
<version identifier> ::= <branch>.<revision>  
Main trunk  
<branch> ::= <version identifier>.<branch number> |  
• Lập kế hoạch quản lý cấu hình phần mềm bắt  
MUE.1.1:Release  
<branch number>  
<branch number> ::= <nonnegative integer>  
<revision> ::= <nonnegative integer>  
đầu trong giai đoạn đầu của dự án.  
revised by  
MUE.1.2:Release  
• Kết quả của giai đoạn lập kế hoạch SCM là Kế  
hoạch quản lý cấu hình phần mềm (SCMP)  
có thể được mở rộng hoặc sửa đổi trong phần  
còn lại của dự án.  
derived from  
Branch 1.2.1  
revised by  
MUE.1.3:Release  
1.2.1.1:Release  
merged with  
revised by  
• SCMP có thể tuân theo tiêu chuẩn công khai  
như IEEE 828 hoặc tiêu chuẩn nội bộ (ví dụ:  
của công ty).  
1.2.1.2:Release  
released as  
MUE.2.0:Release  
33  
34  
Outline of a Software Configuration  
Management Plan (SCMP, IEEE 828-  
19904). Schedule (WHEN?)  
The Software Configuration  
Management Plan  
•
•
1. Introduction  
•
•
•
• Xác định các loại tài liệu được quản lý và sơ đồ  
– Describes purpose, scope of  
application, key terms and  
references  
– Establishes the sequence and  
coordination of the SCM activities  
with project mile stones.  
đặt tên tài liệu.  
• Xác định người chịu trách nhiệm về các thủ tục  
2. Management (WHO?)  
5. Resources (HOW?)  
CM và việc tạo ra các baseline.  
– Identifies the responsibilities and  
authorities for accomplishing the  
planned configuration management  
activities  
– Identifies tools and techniques  
required for the implementation of  
the SCMP  
• Xác định các chính sách để kiểm soát thay đổi và  
quản lý phiên bản.  
6. Maintenance  
•
3. Activities (WHAT?)  
– Identifies activities and  
responsibilities on how the SCMP  
will be kept current during the life-  
cycle of the project.  
• Mô tả các công cụ nên được sử dụng để hỗ trợ  
quá trình CM và bất kỳ hạn chế nào trong việc sử  
dụng chúng.  
– Identifies the activities to be  
performed in applying to the  
project.  
• Xác định cơ sở dữ liệu quản lý cấu hình được sử  
dụng để ghi lại thông tin cấu hình.  
35  
36  
An example of change management  
7. Tools for Software Configuration  
Management  
process  
Anybody  
Control Board  
Developer  
Quality Control  
Team  
• Quản lý cấu hình phần mềm thường được hỗ trợ bởi  
Request change  
các công cụ với các chức năng khác nhau.  
Assess request  
[inconsistent with goals]  
[consistent with goals]  
• Examples:  
– RCS  
Reject request  
• very old but still in use; only version control system  
– CVS  
Approve request  
Assign change  
• based on RCS, allows concurrent working without locking  
– Perforce  
• Repository server; keeps track of developer’s activities  
Implement change  
– ClearCase  
• Multiple servers, process modeling, policy check mechanisms  
Validate change  
37  
38  
Summary  
• Quản lý cấu hình phần mềm là một phần cơ bản của kế hoạch quản  
lý dự án để quản lý các hệ thống phần mềm đang phát triển và điều  
phối các thay đổi đối với chúng.  
• SCM được thực hiện theo kế hoạch SCM. Kế hoạch này có thể tuân  
theo tiêu chuẩn công khai (ví dụ IEEE 828) hoặc tiêu chuẩn nội bộ.  
• Cần phải điều chỉnh một tiêu chuẩn cho một dự án cụ thể:  
– Các dự án lớn cần có kế hoạch chi tiết để thành công  
– Các dự án nhỏ không đủ khả năng gánh vác những kế hoạch như vậy  
• SCM được hỗ trợ bởi các công cụ. Chức năng của chúng thay đổi từ  
các công cụ lưu trữ phiên bản đơn giản đến các hệ thống rất phức  
tạp với các quy trình tự động để kiểm tra chính sách và hỗ trợ tạo  
tài liệu SCM.  
39  
pdf 10 trang yennguyen 22780 Free
Bạn đang xem tài liệu "Bài giảng Nhập môn công nghệ phần mềm - Chương 5: Quản lý cấu hình phần mềm", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_nhap_mon_cong_nghe_phan_mem_chuong_5_quan_ly_cau_h.pdf