1.4 Lợi ích của việc quản lý cấu hình phần mềm Công việc quản lý cấu hình phần mềm đem lại những ích lợi sau: + Cung cấp cho người phát triển phiên bản mới nhất của phần mềm + Quản lý đư
Trang 1Đề TàIQUảN Lý CấU HìNH PHầN MềM
Trang 21 Quản lý cấu hình phần mềm (Configuration Management) 2
1.1 Quản lý cấu hình phần mềm là gì? 2
1.2 Nội dung của quản lý cấu hình phần mềm 2
1.3 Nhiệm vụ của quản lý cấu hình 4
1.4 Lợi ích của việc quản lý cấu hình phần mềm 4
2 Xác định cấu hình phần mềm 5
3 Kiểm soát phiên bản 6
4 Kiểm soát thay đổi 7
4.1 Qui trình kiểm soát sự thay đổi 8
4.2 Các hoạt động kiểm soát sự thay đổi 9
5 Kiểm toán cấu hình phần mềm 11
5.1 Rà soát kỹ thuật chính thức 11
5.2 Kiểm toán cấu hình phần mềm 11
6 Báo cáo hiện trạng 12
7 Một số công cụ tự động hỗ trợ quản lý cấu hình và quản lý thay đổi 12
7.1 Công cụ hỗ trợ cho sự cộng tác (Collaborative Work Tools) 12
7.2 Công cụ hỗ trợ về tài liệu (Documentation Tools) 13
7.3 Công cụ đối chiếu thiết kế phần mềm (Tools for Reverse Engineering of Software) 14 7.4 Công cụ quản lý cấu hình (Tools for Configuration Management) 15
8 Vài nét về USDP (Unified Software Development Process) 15
8.1 Giới thiệu chung 15
8.2 Lịch sử phát triển 15
8.3 Kiến trúc tổng quát của RUP 16
Trang 3QUẢN LÝ CẤU HÌNH PHẦN MỀMCONFIGURATION MANAGEMENT
Trong quá trình phát triển các hệ thống thông tin, rất hiếm khi không có thay đổi Người dùng thường xuyên quên mất các yêu cầu và chỉ nhớ đến chúng sau này trong khi tiếp nhận bản thiết kế Không những thế, sự thay đổi còn xảy ra ngay trong các giai đoạn phát triển ứng dụng Sự thay đổi có thể được hình thành cho yêu cầu từ phía người dùng thay đổi, các bản thiết kế có sự điều chỉnh Chính sự điều chỉnh này làm thay đổi qui trình mã hoá và sửa lỗi, những thay đổi đó cần được lưu lại để người phát triển có thể quản lý được sự tiến hoá của phần mềm
Sự thay đổi là một trong nhiều lý do khiến cho các dự án đi đến thất bại Nhưng hiện nay thực sự chưa phương pháp hiệu quả để hạn chế sự thay đổi và người phát triển hệ thống phần mềm coi quản lý sự thay đổi đó là một phần trong qui trình quản
lý dự án phần mềm Qui trình quản lý đó được gọi là quản lý cấu hình phần mềm
1 Quản lý cấu hình phần mềm (Configuration Management)
Quản lý cấu hình phần mềm được xem là một hoạt động nhằm đảm bảo chất lượng phần mềm Vì thông qua các báo cáo liên quan đến sự thay đổi có thể lượng hoá và đánh giá được qui trình và chất lượng của cả hệ thống phần mềm được xây dựng
1.2 Nội dung của quản lý cấu hình phần mềm
Nội dung của quản lý cấu hình phần mềm là:
+ Xác định được những thay đổi diễn ra trong quá trình phát triển
+ Kiểm soát được các thay đổi xuất hiện
Trang 4+ Đảm bảo các thay đổi xuất hiện đã được thực hiện sửa đổi.
+ Báo cáo các kết quả của việc sửa đổi được ghi nhận và gửi đến những người
có trách nhiệm quản lý và xác minh lại sự thay đổi đó
Quản lý cấu hình phần mềm được thể hiện thông qua các khoản mục sau:
+ Đặc tả hệ thống: bao gồm các tài liệu thu nhận được sau khảo sát, các bước
phân tích đánh giá tài liệu và đưa ra những phác hoạ trong hệ thống dự kiến
sẽ xây dựng Các đặc tả này thường bao gồm những qui trình nghiệp vụ, nội dung thông tin cần mà phần mềm cần xử lý
+ Kế hoạch dự án phần mềm: là tài liệu phân chia khối lượng công việc và
hoạch định thời gian và tiến trình các công việc đó
+ Đặc tả yêu cầu: thể hiện những yêu cầu liên quan đến phần mềm, những
công việc mà phần mềm sẽ phải đáp ứng sau khi hoàn thành
- Các môđun và mã thi hành được
- Các môđun đã liên kết được
+ Đặc tả cơ sở dữ liệu:
- Lược đồ và cấu trúc các file
- Nội dung hồ sơ ban đầu
Trang 5- Các tài liệu liên quan đến công tác bảo trì phần mềm.
1.3 Nhiệm vụ của quản lý cấu hình
Hình 1: Nhiệm vụ của quản lý cấu hình
+ Xác định cấu hình phần mềm
+ Kiểm soát phiên bản phần mềm
+ Kiểm soát thay đổi
+ Kiểm toán cấu hình phần mềm
+ Thiết lập các báo cáo liên quan đến những thay đổi trong phần mềm
Việc quản lý cấu hình cần phải trả lời được các câu hỏi sau:
+ Làm thế nào để tổ chức và quản lý được nhiều phiên bản (Version) của phần
mềm sao cho những thay đổi đem lại sự hiệu quả?
+ Làm sao để tổ chức kiểm soát toàn bộ thay đổi trước và sau khi giao phần mềm cho người sử dụng?
+ Ai sẽ chịu trách nhiệm về việc chấp thuận và thiết lập thứ tự ưu tiên cho các thay đổi khi có nhiều thay đổi cùng được đề xuất?
+ Làm thế nào đảm bảo được việc thay đổi đã thực hiện đúng?
+ Dùng cơ chế nào để đánh giá các thay đổi khác nhau?
Trang 6Trên một diện hẹp thì quản lý cấu hình phần mềm còn được coi là quản lý mã
nguồn (Source Code).
1.4 Lợi ích của việc quản lý cấu hình phần mềm
Công việc quản lý cấu hình phần mềm đem lại những ích lợi sau:
+ Cung cấp cho người phát triển phiên bản mới nhất của phần mềm
+ Quản lý được các mã nguồn được lưu trữ phân tán
+ Quản lý được các phiên bản khác nhau của phần mềm
+ Ghi chú lý do của sự thay đổi mã nguồn phần mềm và nội dung thay đổi đó như thế nào
+ Tạo sự dễ dàng cho phép người phát triển có thể truy cập lại các phiên bản
cũ trước đó thông qua hồ sơ hay các báo cáo được thiết lập,
+ Giúp tích kiệm được không gian đĩa do không phải cùng một lúc lưu trữ nhiều phiên bản khác nhau trong giai đoạn phát triển
+ Cung cấp việc truy cập an toàn và đơn giản đối với bản copy tổng thể về các kết quả bàn giao đã được thông qua
+ Kiểm soát được thực trạng của các kết quả bàn giao và mối quan hệ qua lại lẫn nhau giữa các kết quả này
+ Cung cấp một kho chứa an toàn đối với các kết quả bàn giao
+ Cho phép việc kiểm soát và tiết lộ có nguyên tắc các kết quả bàn giao thông qua vòng đời của nó, với đầy đủ các dấu tích lịch sử, đảm bảo phiên bản đúng và cập nhật, đã được kiểm tra và phát hành
+ Kiểm soát thay đổi cuả các kết quả bàn giao, đảm bảo các kết quả này được lưu theo đúng thứ tự
+ Cung cấp việc lập báo cáo về hiện trạng của các kết quả bàn giao và những thay đổi của chúng
2 Xác định cấu hình phần mềm.
Trang 7Xác định cấu hình phần mềm là quá trình thiết lập các đối tượng và đặt tên cho các đối tượng trong qui trình phát triển phần mềm Cần đặt tên không trùng lặp cho các khoản mục trong cấu hình phần mềm để kiểm soát quản lý và tổ chức lại theo phương pháp hướng đối tượng.
Xác định cấu hình phần mềm chia thành hai loại đối tượng:
+ Đối tượng cơ bản: là một “đơn vị văn bản” được kỹ sư phần mềm tạo ra
trong quá trình phân tích, thiết kế, lập mã và kiểm thử
+ Đối tượng hỗn hợp: được cấu thành từ các đối tượng cơ bản
Mỗi đối tượng có một bộ các đặc tính mà thể hiện của nó là duy nhất phân biệt với các đối tượng khác gồm:
+ Tên đối tượng: dùng để định danh và đại diện cho đối tượng
+ Mô tả đối tượng phần mềm bằng một danh sách các khoản mục, dữ liệu liên quan đến đối tượng:
- Kiểu khoản mục cấu hình phần mềm: là tài liệu, chương trình hay dữ liệu
- Chứng thư dự án: xác định vị trí của đối tượng nằm trong giai đoạn nào, phần nào của dự án tổng thể
- Thông tin thay đổi hay thông tin liên quan đến phiên bản
+ Danh sách các nguồn lực: là tất cả các thực thể được cung cấp, xử lý, tham khảo và các thức khác mà đối tượng cần đến
+ Mối quan hệ giữa các đối tượng là quan hệ bộ phần hay toàn bộ, thể hiện thông qua đồ thị các đối tượng Các mối quan hệ khác tương tác giữa các đối tượng
Để kiểm soát thay đổi của các đối tượng ta sử dụng đồ thị tiến hoá cho từng đối tượng Đồ thị tiến hoá mô tả lịch sử đổi thay của đối tượng đó
3 Kiểm soát phiên bản
Trước hết, chúng ta cần tìm hiểu thế nào là phiên bản? Phiên bản (Version) là một thực thể mới của một đối tượng cấu hình (CI: Configuration Item) sau khi đã qua một
Trang 8hoặc nhiều lần xem xét và thay đổi Kiểm soát phiên bản là tổ hợp các thủ tục và các công cụ để quản lý các phiên bản khác nhau của các đối tượng cấu hình đã được tạo ra trong qui trình xây dựng phần mềm.
Quản lý cấu hình cho phép đặc tả cấu hình thay thế của hệ thống phần mềm thông qua những phản hồi của người dùng khi đưa ra những mong muốn mới liên quan đến phần mềm Để xây dựng một biến thể mới cho phần mềm và xác lập những thay đổi
so với các phần mềm trước đó người ta gắn mỗi phiên bản phần mềm với một số đặc điểm đặc trưng cho nó hay còn gọi là một “bộ thuộc tính” Một phiên bản phần mềm mới được xây dựng khi các đặc trưng của phần mềm trước đó đã không còn đáp ứng được nhu cầu mới của sự phát triển, và sự thay đổi đó là đáng kể về mặt công nghệ
Phiên bản Delta: Delta có nghĩa là sự khác biệt Một file Delta là một file thể hiện
sự khác biệt giữa các phiên bản của một phần mềm Các phiên bản là các bản sao của một chương trình biểu diễn các thay đổi dần dần Khi một phiên bản Delta được giữ lại thể hiện rằng chương trình logic chính được thay đổi một lần Sau đó, phiên bản Delta được ứng dụng trên phiên bản chính với những thay đổi đã được thực hiện ta sẽ thu được các phiên bản Delta
Phiên bản Alpha: là các phiên bản phần mềm đầu tiên được đưa cho các đối tác
có kinh nghiệm thử nghiệm Các đối tác ở đây là một lớp người dùng nhỏ, có kinh nghiệm trong việc triển khai hệ thống Thông tin được phản hồi là các lỗi được phát hiện, các góp ý liên quan đến việc cải thiện chất lượng phần mềm
Phiên bản Beta: Sau khi khắc phục các thiếu xót trong các phiên bản Alpha, phm
đã trở nên hoàn thiện hơn và được tung ra cho lớp người dùng rộng hơn để có thể thu nhận được nhiều ý kiến đóng góp từ mọi ngành nghề, mọi đối tượng có mục đích và yêu cầu khác nhau
Trang 9Hình 2: Sơ đồ kiểm soát phiên bản
Các phiên bản được phân biệt thông qua các con số đi kèm theo sau tên của phần mềm Ví dụ một số phiên bản của phần mềm Total Commander: Total Commander 5.0; Total Commander 5.25; Total Commander 6.0; Total Commander 6.3 Ở đây, chúng ta thấy sự khác biệt trong tên gọi các phiên bản là các con số đi kèm, khoảng cách giữa các số thường thể hiện sự cải tiến trong phần mềm Các con số ở hàng đầu tiên chỉ khi các tính năng của phần mềm được thay đổi cơ bản, còn các thông số sau chỉ sự cải tiến nhỏ giữa các phiên bản
4 Kiểm soát thay đổi
Trong quá trình phát triển phần mềm có qui mô lớn không thể không có những thay đổi Nếu những thay đổi này không được kiểm soát sẽ dẫn đến tình trạng thiếu nhất quán, hỗn độn trong toàn bộ hệ thống và dẫn đến sự thất bại của phần mềm Chính vì vậy chúng ta cần có sự kiểm soát các thay đổi diễn ra trong quá trình xây dựng và phát triển hệ thống phần mềm
Phương thức được sử dụng để kiểm soát thay đổi là phối hợp cả các qui trình thủ tục, cả con người và các công cụ tự động để tạo ra một cơ chế kiểm soát sự thay đổi hiện quả
4.1 Qui trình kiểm soát sự thay đổi
Trang 10* Sơ đồ qui trình kiểm soát sự thay đổi trong dự án phần mềmNhận ra nhu cầu thay đổi
Người dùng đệ trình yêu cầu thay đổi
Người phát triển đánh giá
Sinh ra các báo cáo về thay đổi
Người có thẩm quyền quyết định kiểm soát thay đổi
Yêu cầu bị bác bỏ
Thông báo cho người dùng
Xếp hạng yêu cầu, tạo thứ tự thay đổi
Phân đối tượng cấu hình cho cá nhân
Các khoản mục đối tượng cấu hình “Check out”
Thực hiện thay đổi
Rà soát thay đổi (kiểm toán)
Các khoản mục đối tượng cấu hình “Check in”
Thiết lập các đường mốc kiểm thử
Tién hành các hoạt động đảm bảo chất lượng kiểm thử
Xem lại các thay đổi sẽ được bao gồm trong lần phần phát
mới Xây dựng lại phiên bản mới của phần mềm
Rà soát sự thay đổi của các khoản mục cấu hình (kiểm toán)
Trang 11Hình 3 Qui trình kiểm soát sự thay đổi trong dự án
Trang 124.2 Các hoạt động kiểm soát sự thay đổi
Khi một yêu cầu thay đổi được đệ trình cần phải được xác định lại giá trị của yêu
cầu thay đổi đó nhằm:
- Sử dụng kỹ thuật thích hợp để thực hiện thay đổi đó
- Xác định các hiệu ứng phụ có thể ảnh hưởng lên tổng thể các đối tượng cấu hình khác và lên các chức năng hệ thống, lên chi phí dành cho dự án có thể diễn ra khi thực hiện sự thay đổi này
Kết quả đánh giá về sự thay đổi được báo cáo cho người có thẩm quyền kiểm soát thay đổi (CCA) – người có quyền cao nhất trong việc kiểm soát tình trạng và quyết định sự thay đổi đó có được thực hiện hay không
Khi một thay đổi được chấp thuận, một lệnh thay đổi kỹ thuật (ECO) được tạo ra Lệnh này mô tả các đổi thay cần phải làm, các ràng buộc cần phải tuân thủ, các tiêu chuẩn rà soát và kiểm toán sẽ được thực hiện sau khi thực hiện thay đổi
Hình 4 Quá trình kiểm soát sự thay đổi trên các đối tượngĐối tượng cần thay đổi được “Check out” khỏi cơ sở dữ liệu dự án, được thực hiện
sự thay đổi và các hoạt động bảo đảm chất lượng phần mềm cần được áp dụng Sau
đó, đối tượng này sẽ được “Check in” vào cơ sở dữ liệu và một cơ chế kiểm soát phiên bản được thực hiện Quá trình “Check in” và “Check out” thực thi hai điều quan trong của kiểm soát thay đổi là kiểm soát truy cập và kiểm soát đồng bộ Kiểm soát truy cập quản trị những gì mà người kỹ sư có thẩm quyền truy cập và sửa đổi đặc tả cấu hình
Trang 13đặc biệt Kiểm soát đồng bộ giúp đảm bảo các thay đổi song song hoàn thành bởi những người khác nhau sẽ không bị viết đè lên nhau Quá trình “Check out” một đặc
tả cấu hình dựa trên yêu cầu thay đổi đã được chấp thuận và thứ tự thay đổi kỹ thuật cho phép người kỹ sư phần mềm có thể thực hiện Chức năng kiểm soát truy câp sẽ đảm bảo rằng người kỹ sư phần mềm có thẩm quyền “Check out” các đối tượng đó và kiểm soát đồng bộ sẽ khoá đối tượng đó trong cơ sở dữ liệu dự án sao cho không thể cập nhật được dữ liệu này cho đến khi phiên bản “Check out” hiện thời được thay thế Tuy nhiên, có thể có nhiều bản sao của cùng một đối tượng được “Check out” nhưng chỉ cỏ bản sao có thẩm quyền mới được cập nhật
Một bản sao của đối tượng đường mốc gọi là phiên bản trích ly được thay đổi bởi các kỹ sư Sau khi được thay đổi và đảm bảo chất lượng phần mềm thì phiên bản thay đổi đó sẽ được “Check in” ngược trở lại cơ sở dữ liệu dự án và các đối tượng và đường mốc giới được xác lập liên quan đến đối tượng được thay đổi sẽ được mở khoá
và thực hiện theo đối tượng đã được thực hiện thay đổi Đường mốc được tạo ra khi đối tượng đó đã được rà soát kỹ thuật chính thức và được chấp thuận Sau đó kiểm soát thay đổi mức dự án sẽ được thực thi Trước hết, người phát triển phải được sự chấp thuận của người quản lý dự án (nếu dự án là cục bộ) hoặc được sự chấp thuận của người có thẩm quyền kiểm soát sự đổi thay nếu thay đổi ảnh hưởng đến các khoản mục khác trong cấu hình phần mềm
Quá trình kiểm soát thay đổi với nhiều thủ tục quá chặt chẽ có nguy cơ tạo ra sự cứng nhắc, quan liêu trong điều phối sự thay đổi Nếu không tổ chức và kiểm tra tốt,
sự kiểm soát thay đổi có thể dẫn đến việc cản trở tiến trình phát triển của cả dự án Hầu hết các người phát triển phần mềm đều có cơ chế kiểm soát thay đổi, họ tạo ra một số tầng kiểm soát khác nhau trên những mức khác nhau trong dự án để việc kiểm soát thay đổi có thể dễ dàng được thực hiện và quản lý từ mức thấp đến mức cao của toàn thể dự án
Trong một số trường hợp, việc sinh ra nhiều thủ tục chính thức như các yêu cầu, các báo cáo thay đổi và thứ tự thay đổi có thể được bỏ qua Tuy nhiên việc đánh giá từng thay đổi vẫn được tiến hành và tất cả các thay đổi vẫn được theo dõi và rà soát Kiểm soát thay đổi chính thức được hình thành khi sản phẩm đã được phân phát cho
Trang 14khách hàng Thẩm quyền kiểm soát thay đổi đóng một vai trò tích cực trong dự án phần mềm và phụ thuộc vào đặc tính của dự án phần mềm
Người có thẩm quyền cần có cái nhìn tổng thể, đánh giá được ảnh hưởng của thay đổi đối với các yếu tố bên ngoài các khoản mục cấu hình phần mềm như:
- Thay đổi ảnh hưởng tới phần cứng như thế nào?
- Thay đổi ảnh hưởng tới sự thực thi như thế nào?
- Thay đổi ảnh hưởng tới sự nhìn nhận của khách hàng đối với sản phẩm như thế nào?
- Thay đổi ảnh hưởng tới chất lượng và độ tin cậy của sản phẩm như thế nào?
-
5 Kiểm toán cấu hình phần mềm
Mục đích của việc kiểm soát phiên bản, kiểm soát sự thay đổi giúp người phát triển
dự án duy trì được trật tự, tránh được tình trạnh hỗn độn trong toàn bộ hệ thống phần mềm Tuy nhiên, ngay cả các cơ chế kiểm soát thành công nhất cũng chỉ theo dõi được sự thay đổi cho đến khi một đối tượng cấu hình kỹ thuật được sinh ra thay thế cho cấu hình đối tượng trước đó Như vậy, làm thế nào để đảm bảo sợ thay đổi đó được thực thi? Để đảm bảo sự thay đổi đó được thực thi chúng ta cần có 2 hoạt động sau:
5.2 Kiểm toán cấu hình phần mềm