Giáo trình Quản lý dự án phần mềm

Mục lục

Lời nói đầu 6

Chương 1. Nhập môn về quản lý dự án phần mềm

Nhập môn

1.1. Nhu cầu đang gia tăng về phần mềm

1.2. Vai trò của việc quản lý trong phát triển phần mềm

1.3. Một thí dụ

1.4. Giành sự chấp nhận các thủ tục phát triển mới

1.5. Tóm tắt

Chương 2. Những vấn đề phát triển phần mềmMột chút phòng xa

2.1. Những vấn đề cơ bản

2.1.1. Những vấn đề liên quan đến các yêu cầu của dự án

2.1.2. Những thay đổi thường xuyên

2.1.3. Dự toán và những vấn đề liên quan

2.1.4. Nguồn lực bên ngoài

2.1.5. Kết thúc một dự án phần mềm

2.1.6. Tuyển dụng nhân viên và thuyên chuyển

2.1.7. Theo dõi và giám sát

2.2. Phân tích rủi ro

2.2.1. Dự kiến những vấn đề cần giải quyết

2.2.2. Pha phân tích

2.2.3. Thực hiện các kế hoạch đối phó bất ngờ

2.3. Tóm tắt

Bài tập

Chương 3. Phát triển phần mềm theo hợp đồng

Quan hệ khách hàng ư nhà phát triển

3.1. Chi phí cộng thêm đối lại với giá cố định

3.1.1. Hợp đồng phí cộng thêm

3.1.2. Hợp đồng giá cố định

3.2. Các mối quan hệ khác giưã khách hàng ư nhà phát triển

3.3. Yêu cầu đối với một đề xuất (RFP)

3.3.1. Một số vấn đề cơ bản

3.3.2. Chuẩn bị của RFP

3.3.3. Phát yêu cầu đề xuất RFP

3.4. Đề xuất

3.4.1. Đề xuất không do yêu cầu

3.4.2. Đề xuất khi có yêu cầu

3.4.3. Đội ngũ chuẩn bị đề xuất

3.4.4. Khuân dạng đề xuất

3.4.5. Khẳng định công việc (SOW)

3.5. Duyệt xét đề xuất và quá trình lựa chọn

3.5.1. Ban tuyển chọn đề xuất

3.5.2. Phương pháp đánh giá đề xuất

3.6. Một số nhận định bổ sung về đề xuất

3.6.1. Những vấn đề liên quan đến khách hàng

3.6.2. Những vấn đề liên quan đến người đề nghị

3.7. Tóm tắt

Bài tập

Chương 4. Chu trình phát triển phần mềm

Các biểu thái về chủ đề thác nước

4.1. Pha quan niệm

4.1.1. Bàu không khí trong pha quan niệm

4.1.2. Những vấn đề trong pha quan niệm

4.2. Pha yêu cầu phần mềm

4.2.1. Bàu không khí trong quá trình pha yêu cầu

4.2.2. Các vấn đề trong pha yêu cầu

4.3. Pha thiết kế

4.3.1. Bàu không khí trong pha thiết kế

4.3.2. Những vấn đề trong pha thiết kế

4.4. Pha thực hiện

4.4.1. Bàu không khí trong pha thực hiện

4.4.2. Những vấn đề trong pha thực hiện

4.5. Pha tích hợp và thử nghiệm

4.5.1. Bàu không khí trong pha tích hợp và thử nghiệm

4.5.2. Những vấn đề trong pha tích hợp và thử nghiệm

4.6. Pha bảo trì

4.6.1. Bàu không khí trong pha bảo trì

4.6.2. Những vấn đề trong pha bảo trì

4.7. Tóm tắt

Bài tập

Chương 5. Nguyên tắc quản lý các kỹ sư phần mềm

Họ có thực có gì khác nhau không ?

5.1. Cơ cấu tổ chức dự án phần mềm

5.2. Cơ cấu đội ngũ

5.2.1. Lãnh đạo đội

5.2.2. Các đội dân chủ

5.2.3. Các đội kỹ sư trưởng

5.2.4. Các đội chuyên gia

5.3. Các kỹ thuật báo cáo cơ bản

5.3.1. Báo cáo tình hình

5.3.2. Các cuộc họp về tình hình dự án

5.4. Những đường lối chung trong quản lý các kỹ sư phầnmềm

5.5. Tóm tắt

Bài tập

Chương 6. Chia để trị các dự án lớn thế nào: phân chia vàchiếm lĩnh.

Nhu cầu lớn không có nghĩa khó

6.1. Tinh chế từng bước một

6.1.1. Phân giải chức năng

6.1.2. Phân giải thiết kế

6.2. Cơ cấu phân tích công việc

6.2.1. Phân giải dự án

6.2.2. WBS làm công cụ quản lý dự án

6.3. Xử lý những dự án lớn

6.3.1. Các hệ thống phụ

6.3.2. Đường lối phân giải chức năng

6.3.3. Đường lối phân giải thiết kế

6.3.4. Đường lối phân giải nhiệm vụ công việc

6.4. Tóm tắt

Bài tập

Chương 7. Các chức năng hỗ trợ dự án

Hỗ trợ quản lý dự án

7.1. Kiểm tra cấu hình phần mềm (SCC)

7.1.1. Thuật ngữ kiểm tra cấu hình

7.1.2. Nguồn lực kiểm tra cấu hình

7.1.3. Kế hoạch quản lý cấu hình phần mềm

7.1.4. Một số đường lối chung

7.2. Bảo đảm chất lượng phần mềm (SQA)

7.2.1. Cung cấp phần mềm có chất lượng

7.2.2. Nguồn lực kiểm tra chất lượng

7.2.3. Kế hoạch bảo đảm chất lượng phầm mềm

7.2.4. Độ đo chất lượng phần mềm

7.2.5. Một số đường lối chung

7.3. Thử nghiệm phần mềm

7.3.1. Các loại thử nghiệm phần mềm

7.3.2. Các thủ tục thử nghiệm chính thức

7.3.3. Một số đường lối chung

7.4. Tóm tắt

Bài tập

Chương 8. Tiêu chuẩn phát triển phần mềm

Tiêu chuẩn phát triển: tai hại cần thiết

8.1. Tổng quan các tiêu chuẩn phát triển phần mềm

8.2. Tiêu chuẩn US DOD 2167

8.2.1. Tổng quan tiêu chuẩn 2167

8.2.2. Rà soát và kiểm toán

8.2.3. Mô tả hạng mục dữ liệu (DIDS)

8.2.4. Lấy kích thước tiêu chuẩn

8.2.5. Lợi và bất lợi của tiêu chuẩn 2167

8.3. Các tiêu chuẩn công nghệ phần mềm IEEE

8.3.1. Tổng quan tiêu chuẩn IEEE

8.3.2. Phân loại IEEE về các tiêu chuẩn công nghệ phần

8.3.3. Lợi và bất lợi của tiêu chuẩn IEEE

8.3.4. So sánh các tiêu chuẩn IEEE và DOD

8.4. Các tiêu chuẩn Ada

8.4.1. Môi trường Ada

8.4.2. Tiêu chuẩn IEEE cho các Ada PDL

8.5. Các tiêu chuẩn phát triển phần mềm khác

8.6. Tóm tắt

Bài tập

Chương 9. Lập trình dự án

Lập trình: vấn đề

9.1. Kế hoạch phát triển dự án

9.2. Các hoạt động theo lập trình và mốc

9.2.1. Danh mục hoạt động theo lập trình

9.2.2. Các cột mốc và đường mốc chủ yếu

9.3. Các biểu đồ Gantt

9.4. Các biểu đồ PERT và con đường tới hạn

9.4.1. Đường tới hạn

9.4.2. Các khối chương trình PERT và việc tăng cường

9.5. Nhân sự lập trình

9.5.1. Qui mô đội ngũ phát triển

9.5.2. Kỹ năng và kinh nghiệm

9.5.3. Tháng của con người bất nghì

9.6. Lập lịch các nguồn lực

9.6.1. Lập lịch không gian làm việc

9.6.2. Thiết bị lập trình

9.6.3. Chủ bán các nhà thầu phụ

9.7. Kiểm chứng và cập nhật chương trình

9.7.1. Báo cáo định kỳ

9.7.2. Các hoạt động kiểm chứng khác

9.7.3. Cập nhật chương trình

9.8. Một số đường lối chung cho việc lập trình và qui hoạch

9.8.1. Tinh lọc danh mục hoạt động ban đầu

9.8.2. Giành được phê chuẩn chương trình

9.8.3. Mối quan hệ giữa chương trình, tài nguyên, chất

lượng và tính chức năng

9.9. Tóm tắt

Bài tập

Chương 10. Chuẩn bị dự toán: phương pháp và kỹ thuật

Dự toán: vấn đề

10.1. Dự toán dự án

10.2. Dự toán từng bước

10.2.1. Những thành phần đưa khỏi giá

10.2.2. Những thành phần dư thừa kinh nghiệm

10.2.3. Những thành phần có một phần kinh nghiệm

10.2.4. Phát triển mới

10.2.5. Phân tích chi tiết dự án ở mức rủi ro

10.3. Uớc định phát triển mới

10.3.1. Những phương pháp kiểu đầu (nguyên mẫu)

10.3.2. Những phương pháp thống kê

10.4. Mô hình chi phí xây dựng (Cocomo)

10.4.1. Mức nhân sự

10.4.2. Mức độ phức tạp

10.4.3. Yếu tố độ tin cậy

10.4.4. Môi trường phát triển

10.4.5. Các thứ hệ

10.4.6. Thuật toán dự toán phí

10.5. Chức năng phân tích điểm

10.5.1. Những bước FPA cơ bản

10.5.2. ứng dụng của FPA

10.6. Dự toán là một lĩnh vực

10.7. Dự toán tài nguyên phần cứng

10.7.1.Tải trọng CPU

10.7.2. Lưu trữ dự liệu

10.7.3. Tốc độ

10.8. Tổng phí không phát triển

10.9. Tóm tắt

Bài tập

Tham khảo 243

Tài liệu đọc thêm

pdf243 trang | Chia sẻ: maiphuongdc | Lượt xem: 3043 | Lượt tải: 5download
Bạn đang xem trước 20 trang tài liệu Giáo trình Quản lý dự án phần mềm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
g chính của công ty. Công ty đã quyết định phát triển một hệ thống vận hành sở hữu khiêm tốn cho máy vi tính mới. Hãy xét một hệ thống đơn giản chỉ một ng•ời dùng. Chuẩn bị một đề nghị về việc phân giải chức năng của hệ thống vận hành sử dụng tinh lọc từng b•ớc. Mô tả biểu đồ phân giải chức năng cho ba cấp đầu. 2. Với hệ thống vận hành mô tả ở bài tập 1 và căn cứ ở phân giải chức năng, chuẩn bị phân giải thiết kế. Mô tả biểu diễn phân giải thiết kế cho ba cấp đầu. Chọn thành phần cấp cao duy nhất và mô tả toàn bộ phân giải tới tận cấp môđun phần mềm. Giải thích bạn đã tính đến những h•ớng dẫn cho các môđun độc lập thế nào. Giải thích bạn đã thực hiện h•ớng dẫn che dấu thông tin thế nào. 3. Với hệ thống vận hành ở bài tập 1, chuẩn bị biểu đồ cơ cấu phân tích công việc cho ba cấp đầu và chuẩn bị danh mục nhiệm vụ WBS. Giải thích vì sao một số nhiệm vụ ở bảng 6.2 không áp dụng đ•ợc cho dự án này. 4. Xét phần mềm cho 1 dự án vệ tính kể cả việc phóng và theo dõi vệ tinh và vận hành của vệ tinh trong và sau khi phóng. Nhận biết những hệ phụ chính trong dự án và giải thích lợi điểm đạt đ•ợc khi xác định chúng là hệ phụ. Quản lý dự án phần mềm 114 Bây giờ xét hệ thống danh sách nhân viên kể cả nhân lực bảo trì hồ sơ,phát phiếu kiểm tra danh sách v.v... liệu đó có lợi điểm gì trong việc xác định các hệ phụ cho dự án đó ? Giải thích. Bảng 6.2. Nhiệm vụ cơ cấu phân tích công việc cấp cao. Phát triển phần mềm Phân tích yêu cầu Phát triển nguyên mẫu Đặc điểm nguyên mẫu Thiết kế nguyên mẫu Thực hiện nguyên mẫu Thử nghiệm Thử nghiệm Alpha Thử nghiệm bêta Nghiệm thu Lắp đặt Đào tạo Cung cấp Thu thập công cụ phát triển Thu thập các thành phần hệ thống Thiết kế Thiết kế cấp cao Thiết kế chi tiết Bảo trì Hiệu chỉnh sai lầm Tăng c•ờng phần mềm Chọn lựa thiệtbi Chọn lựa ng•ời bán Thủ tục đặt hàng Kiểm tra kiểm kê Thực hiện Lập mã Thử nghiệm đơn vị Quản lý Qui hoạch Tuyển nhân sự Quản trị và dịch vụ khác T• liệu Bài viết kỹ thuật Hoạt động xuất bản dự án T• liệu phát triển không giao đ•ợc. Hội nhập Hội nhập phần mềm Hội nhập phần cứng/ phần mềm. Quản trị ngân sách Quản lý nhân sự Bảo hiểm chất l•ợng Quản lý cấu hình T• liệu phát triển giao đ•ợc T• liệu về bảo trì T• liệu ng•ời dùng Bảng 6.3. Nhiệm vụ quản lý và hành chính ủy nhiệm Nhiệm vụ quản lý v v v v v v v v v v 1. Quy hoạch 2. Chuẩn bị dự án 3. Phân tích rủi ro và quản lý rủi ro 4. Lịch trình 5. Tuyển nhân sự 6. Phân tích ngân sách và quản trị ngân sách 7. Quản lý nhân sự 8. ủy thác nhiệm vụ 9. Giao thẩm quyền 10. ủy thác nguồn phát triển 11. Giám sát bảo trì thiết bị phát triển 12. Giám sát và kiểm tra phát triển 13. Tổ chức duyệt xét và các giới thiệu chính thức 14. Lập tiêu chuẩn và ph•ơng pháp Quản lý dự án phần mềm 115 v v v v 15. Bảo hiểm và kiểm tra chất l•ợng 16. Quản lý và kiểm tra cấu hình 17. Giám sát các chủ thầu phụ và ng•ời bán 18. Giao diện và phối hợp quản lý cao 19. Giao diện và phối hợp khách hàng 20. Báo cáo 21. Quản trị và dịch vụ Quản lý dự án phần mềm 116 Ch•ơng bảy Các chức năng hỗ trợ dự án Hỗ trợ quản lý dự án. Quản lý dự án phần mềm là quá trình qui hoạch, tổ chức, tuyển nhân sự, giám sát, kiểm tra và lãnh đạo dự án phần mềm24. Hiếm khi mọi nhiệm vụ đó lại có thể do quản lý dự án thực hiện mà trên thực tế về mặt lý t•ởng họ không thể. Nhiều hoạt động kiểm tra và giám sát có thể đ•ợc ủy thác cho các nhóm hỗ trợ dự án. Những nhóm hỗ trợ này không chỉ giám định nặng cho quản lý dự án và kỹ s• phát triển bằng những nhiệm vụ hỗ trợ: họ cũng thực hiện những nhiệm vụ đó tốt hơn bằng cách tập trung mọi cố gắng của họ vào những chức năng hỗ trợ đặc tr•ng. Có nhiều loại chức năng hỗ trợ dự án. Dịch vụ th• ký, hỗ trợ hành chính xuất bản và cung cấp tài liệu là những thí dụ về chức năng hỗ trợ không kỹ thuật; thử nghiệm, kiểm tra cấu hình, công nghệ hệ thống quản lý hội nhập và bảo hiểm chất l•ợng là những thí dụ về chức năng hỗ trợ kỹ thuật. Dự án càng lớn và càng phức tạp lại sẽ đòi hỏi chức năng hỗ trợ nhiều hơn. Chẳng hạn, một dự án lớn th•ờng có tổ chức kiểm tra chất l•ợng của nó trong khi một dự án nhỏ có thể chia xẻ chức năng đó với các dự án khác. T•ơng tự, nhiều tổ chức duy trì nhóm thử nghiệm độc lập mà vai trò là thử nghiệm một sản phẩm phần mềm tr•ớc khi đ•a ra. ở những dự án lớn, nhóm thử nghiệm độc lập là một bộ phận của đội dự án và tham gia trong thử nghiệm và qui hoạch thử nghiệm xuyên suốt chu trình phát triển. Ch•ơng này mô tả ba chức năng hỗ trợ dự án kỹ thuật chủ yếu: - Kiểm tra cấu hình - Bảo hiểm chất l•ợng phần mềm - Thử nghiệm. Ba chức năng cơ bản đó đ•ợc yêu cầu trong mỗi dự án phát triển phần mềm. Kiểm tra cấu hình quản lý thay đổi cho sản phẩm phần mềm đ•ợc phát triển, bảo hiểm chất l•ợng giám sát và kiểm tra chất l•ợng sản phẩm còn thử nghiệm thử lại đáp ứng với các yêu cầu của sản phẩm. Trách nhiệm của ng•ời quản lý dự án là tổ chức các nhóm hỗ trợ dự án và cung cấp t• liệu các hoạt động đã quy hoạch của các nhóm cho kế hoạch phát triển dự án (coi ch•ơng 9). Nếu những nhóm đó đã có trong tổ chức, thì hỗ trợ của các nhóm cần đ•ợc phối hợp và lên lịch cho dự án. Nếu các 24 nh• xác định trong IEEE (1987a) Quản lý dự án phần mềm 117 nhóm không tồn tại thì chúng phải đ•ợc thiết lập trong đội phát triển dự án. Qui mô của một nhóm hỗ trợ rõ ràng tùy thuộc ở qui mô dự án, chẳng hạn, một dự án lớn có thể yêu cầu một nhóm hai hay ba kỹ sự kiểm tra cấu hình và một dự án nhỏ có thể giao nhiệm vụ một phần thời gian cho kỹ s• phát triển. Các quyết định này phải do quản lý dự án đ•a ra trong những giai đoạn ban đầu của dự án. Các chức năng hỗ trợ dự án đã đ•ợc qui hoạch tốt lúc khởi đầu dự án sẽ đóng góp vào việc quản lý hiệu quả dự án suốt dự án. 7.1. Kiểm tra cấu hình phần mềm (SCC). Kiểm tra cấu hình là chức năng hỗ trợ quản lý hỗ trợ nhiều hoạt động khác nhau liên quan đến thay đổi cho sản phẩm phần mềm. Điều này bao gồm những thay đổi mã của ch•ơng trình, yêu cầu và thay đổi thiết kế cùng thay đổi trong việc đ•a ra phiên bản. Kiểm tra cấu hình th•ờng đ•ợc những nhà sản xuất coi là trở ngại hơn là lợi ích vì nó hạn chế sự tự do của đội phát triển và đặt ra những giới hạn về cái gì có thể và không thể làm. Kiểm tra cấu hình dù sao cũng tạo ra môi tr•ờng trong đó phần mềm có thể đ•ợc phát triển một cách trật tự. Từ cấu hình đ•ợc sử dụng ở đây để mô tả sự phối hợp các thành phần phần mềm tạo thành hệ hợp chất. Khi kết hợp với từ kiểm tra, từ đ•ợc sử dụng để mô tả một ph•ơng pháp trật tự và hiệu quả theo đó sự phối hợp đó của các thành phần có thể đ•ợc thực hiện, chẳng hạn, xây dựng các hệ phần mềm từ những thành phần cấp thấp không phải là nhiệm vụ đơn giản. Điều này đ•ợc minh họa tốt nhất ở giai đoạn sau. Một công ty ngân hàng lớn kết hợp làm dịch vụ thông tin tài chính quốc tế. Dịch vụ này có thể cung cấp cho ngân hàng truy nhập trực tuyến với cơ sở dữ liệu trung tâm chứa thông tin th•ờng xuyên cập nhật về những thị tr•ờng tài chính thế giới. Trong thế giới hiện đại thông tin điện tử nhanh, đây là một dịch vụ chủ yếu cho mọi tổ chức ngân hàng hiện đại. Dù sao, máy tính của ngân hàng đã không có đ•ợc khả năng giao diện với dịch vụ tài chính. Ngân hàng ủy thác ng•ời quản lý dự án phát triển phần mềm cần thiết có nhu cầu cho giao diện. Sau khi giai đoạn hội nhập bắt đầu, một trong những nhà sản xuất báo cáo là cột mốc chủ yếu đã hoàn thành liên túc với dịch vụ thông tin đã đ•ợc thiết lập thành công. Ng•ời quản lý dự án báo cáo điều này cho các cấp trên của anh ta và thông báo với họ là phát triển đã đ•ợc tiến hành theo lịch. Một tuần sau, các thành viên quản lý hàng đầu đến thăm dự án và yêu cầu chứng minh liên lạc với dịch vụ thông tin. Tuy nhiên, ng•ời quản lý dự án đã không thể cung cấp chứng minh. Nhà sản xuất đã báo cáo cột mốc không thể lặp lại thành công tr•ớc đây. Đây là do những đặc điểm phụ đã đ•ợc bổ sung cho phần mềm liên lạc và những liên lạc này lại Quản lý dự án phần mềm 118 ch•a hoạt động. Ngay cả những đặc điểm tr•ớc đây cũng không còn hoạt động nữa. Bắt đầu Có sửa không? Môđun yêu cầu kiểm tra cấu hình Sửa môđun Tiến trình kiểm tra cấu hình Thử nghiệm đơn vị Môđun phát triển Kết thúc Môđun do kiểm tra cấu hình phát ra Có nghiệm thu không? Quản lý dự án phần mềm 119 Hình 7.1 Dòng điều khiển cấu hình môđun phần mềm Rõ ràng, hẳn nhà sản xuất đã giữ một bản sao của phần mềm liên lạc không có những đặc điểm mới. Trong một dự án tổ chức tốt, nhiệm vụ phòng vệ, một phiên bản phần mềm tr•ớc đây hẳn đã đ•ợc ng•ời quản lý cấu hình thực hiện. Một cách lý thú để xem đến kiểm tra cấu hình là coi nh• một ph•ơng pháp đảm bảo là dự án tiến triển (hay ít ra không thụt lùi). Trong tr•ờng hợp xét trên hiện nay dự án tr•ợt lùi. Kiểm tra cấu hình là chủ yếu cho mọi hạng mục phát triển kể cả mã, t• liệu và hợp nhất thành phần hình 7, mô tả dòng kiểm tra cấu hình để phát triển môđun phần mềm. Một dòng t•ơng tự hẳn vận dụng đ•ợc cho t• liệu mà dự án phát sinh kiểm tra cấu hình cũng quan trọng trong giai đoạn bảo trì để đảm bảo khi việc phát hành mới một hệ thống đ•ợc gọi lại do những khuyết tật nghiêm trọng có thể bị thay thế trong đợt phát hành tr•ớc. 7.1.1. Thuật ngữ kiểm tra cấu hình. Có nhiều từ đ•ợc dùng liên quan đến kiểm tra cấu hình. Chẳng may, không có một sử dụng nào hay một ý nghĩa nào của chúng đ•ợc chuẩn hoá: rất nhiều từ khác nhau đã đ•ợc sử dụng để mô tả cùng chức năng; cùng ý t•ởng. Một trong những cố gắng tốt nhất nhằm tiêu chuẩn hóa có trong từ vựng IEEE thuật ngữ về công nghệ phần mềm (IEEE 1987b). Dù sao, ngay từ vựng đó cũng phản ảnh sự thiếu sót trong lý giải và sử dụng thống nhất các từ đó khi mà nhiều từ kiểm tra cấu hình xuất hiện với vô vàn định nghĩa. Sau đây là giải thích hơn là định nghĩa chính xác của một số những thuật ngữ cơ bản. Hạng mục kiểm tra cấu hình phần mềm (SCCI) là hạng mục dự án phần mềm đ•ợc coi là một đơn vị cho những mục đích của kiểm tra cấu hình. Điều này có thể bao gồm những điều nh• mô đun phần mềm (1) phiên bản hệ thống phần mềm hay t• nliệu. Kiểm tra thay đổi là quá trình kiểm tra các thay đổi. Điều này bao gồm đề nghị thay đổi, đánh giá thay đổi, chấp nhận hay bác bỏ, lên lịch và theo dõi thay đổi. Kiểm tra phiên bản nh• vận dụng cho phát triển phần mềm, là quá trình kiểm tra phát hành các phiên bản phần mềm.25 Điều này bao gồm l•u giữ và phòng ngừa mỗi đợt phát hành và chứng minh bằng t• liệu các khác biệt giữa các đợt phát hành. Kiểm tra cấu hình là quá trình đánh giá, chấp nhận hay bác bỏ, và quản lý thay đổi cho những hạng mục cấu hình. Kiểm tra cấu hình cũng bao gồm các chức năng kiểm tra phiên bản. 25 Nhiều giả thích từ hạng mục cấu hình không bao giờ hạng mục cấp thấp nh• mô đun phần mềm. Tiêu chuẩn (DOD 1988a) phát triển phần mềm US- DOD std.2167 vận dụng thuật ngữ cho những thành phần cấp cao nh• xác định trong tiêu chuẩn Std.480a kiểm tra cấu hình DOD. Giải thích này liên quan đến những hạng mục có thể đ•ợc phát triển độc lập hay sửa chữa và bảo trì độc lập. Quản lý dự án phần mềm 120 Quản lý cấu hình là ứng dụng kỹ thuật và hành chính kiểm tra cấu hình. Điều này cũng bao gồm việc duy trì tổ chức kiểm tra cấu hình, thay đổi và các tiêu chuẩn kiểm tra phiên bản và các ph•ơng tiện kiểm tra cấu hình. Các từ khác là chỉ định nhận biết cấu hình đ•ợc sử dụng để nhận biết các hạng mục cấu hình, ban kiểm tra cấu hình chấp nhận hay bác bỏ những thay đổi công nghệ và kiểm toán cấu hình kiểm tra thích ứng với các tiêu chuẩn kiểm tra cấu hình. Mục tiêu của quản lý cấu hình đ•ợc xác định tốt nhất không phải nh• những định nghĩa chính thức từ vựng IEEE những thực ra nhờ giải thích có tính chất mô tả hơn nh• đã nêu trong lời nói đến tiêu chuẩn IEEE 828 (1987b) cho những kế hoạch quản lý cấu hình phần mềm, khẳng định: Cung cấp cấu hình phần mềm (SCM) là ngành công nghệ chính thức cung cấp ph•ơng pháp và công cụ cho các nhà sản xuất và sử dụng phần mềm biết phần mềm đ•ợc phát triển, lập ra những đ•ờng mốc, thay đổi kiểm tra cho những đ•ờng gốc đó, l•u giữ và theo dõi tình hình và kiểm toán sản phẩm. SCM là ph•ơng tiện thông qua đó sự hợp nhất và liên tục của sản phẩm phần mềm đ•ợc l•u giữ, thông tin và kiểm tra. Một số những nhiệm vụ quản lý cấu hình chồng chéo với nhiệm vụ của hoạt động hỗ trợ khác, kiểm tra chất l•ợng phần mềm (bàn đến sau). Trong các dự án phần mềm mà kiểm tra chất l•ợng và kiểm tra cấu hình, do các nhóm riêng rẽ thực hiện, việc định nghĩa rõ trong phân chia trách nhiệm là cần thiết. 7.1.2. Nguồn lực kiểm tra cấu hình. Hình 7.2 Điều khiển cấu hình mạng Kiểm tra cấu hình là một trong những lĩnh vực đầu tiên của công nghệ phần mềm đ•ợc công nhận là dự tuyển tự động hóa, nhiều hoạt động kiểm tra cấu hình nh• kiểm tra phiên bản và kiểm tra thay đổi đã đ•ợc tự Cơ cở dữ liệu kiểm tra cấu hình Các máy tính đầu cuối phát triển dự án Máy tính kiểm tra cấu hình Quản lý dự án phần mềm 121 động hóa vào đầu những năm 1970 với những công cụ nh• đóng mạch và SCCS (coi Rochkind 1975)26. Một số những công cụ đó dịch chuyển từ các hệ vận hành UNIX nói chung đ•ợc sử dụng đầu tiên đến các môi tr•ờng khác nh• MS-DOS và VMS của Digital. Nhiều hoạt động kiểm tra cấu hình chính là những dự tuyển tự nhiên cho các công cụ tự động hóa CASE (Công nghệ phần mềm có hỗ trợ bằng máy tính) nh• đ•ợc xác định rõ, có đôi chút lặp lại và sẵn sàng hội nhập vào quá trình phát triển. Những công cụ đó có thể đ•ợc dễ dùng giao diện với các công cụ mã phần mềm (thí dụ các biên tập viên và s•u tập) và các bộ xử lý từ để sản sinh t• liệu. Kiểm tra cấu hình tự động là tốt nhất khi đ•ợc sử dụng trong môi tr•ờng phát triển nhiều ng•ời sử dụng nh• LAN với cách đó mọi nhân tố đ•ợc kiểm tra l•u giữ trong cơ sở dữ liệu trung tâm và việc truy nhập của mọi nhà sản xuất đ•ợc quản lý từ hệ thống kiểm tra cấu hình trung tâm (coi Hình.7.2). Việc kiểm tra cấu hình có hiệu quả đòi hỏi ở sự tổ chức hiệu quả và đ•ợc xác định rõ. Mọi ph•ơng pháp kiểm tra cấu hình phải căn cứ ở bốn quan niệm sau: 1. Phải thành lập cấp thẩm quyền quản lý cấu hình đ•ợc xác định rõ. 2. Phải sản xuất và phân phối các tiêu chuẩn kiểm tra cấu hình, các thủ tục và h•ớng dẫn kiểm tra cấu hình các nhà sản xuất. 3. Kiểm tra cấu hình không thể có hiệu quả nếu không có công cụ và ph•ơng tiện cần thiết. 4. Phải phát triển kế hoạch quản lý cấu hình ngay khởi đầu dự án. Đây là trách nhiệm của ng•ời quản lý dự án trong việc giao quyền quản lý cấu hình. Điều này có thể tiến hành từ đội kiểm tra cấu hình trong các dự án lớn đến kỹ s• kiểm tra cấu hình một phần thời gian trong các dự án nhỏ. Trong cả hai tr•ờng hợp, cả quyền hạn và trách nhiệm phải đ•ợc xác định rõ. Kỹ s• kiểm tra cấu hình phải đ•ợc tham gia trong mọi hoạt động phát triển và phải có quyền hạn đặc thù trong việc chấp nhận hay bác bỏ hạng mục cấu hình. Các thành viên đội phát triển phải làm quen với các tiêu chuẩn kiểm tra cấu hình, các thủ tục và h•ớng dẫn phải dễ hiểu và rõ ràng. Điều này có thể giảm bớt số phản bác trong kiểm tra cấu hình do không thích ứng với các tiêu chuẩn không quen thuộc. Môi tr•ờng quản lý cấu hình bao gồm những cần thiết cho việc thực hiện kế hoạch kiểm tra cấu hình. Điều này bao gồm: - Công cụ kiểm tra cấu hình, kể cả: + Kiểm tra phiên bản tự động và công cụ kiểm tra thay đổi. + Giám sát, kiểm toán và đăng ký các tiện ích hỗ trợ. 26 Sự tiến triển của quản lý cấu hình đ•ợc mô tả trong thảo luận của Ambriola và cộng sự (1990) cũng bàn đến tự động hóa các hoạt động kiểm tra cấu hình khác nhau. Quản lý dự án phần mềm 122 - Ph•ơng tiện l•u giữ: kho chứa an toàn cho mọi hạng mục cấu hình đ•ợc phê chuẩn, kể cả: - L•u giữ tại chỗ cho quá trình phát triển hàng ngày. - L•u giữ ngoài phạm vi để phục hồi tai họa. 7.1.3. Kế hoạch quản lý cấu hình phần mềm. Kế hoạch quản lý cấu hình phần mềm (SCMP) là một bộ phận của kế hoạch phát triển phần mềm cả dự án. SCMP có thể xuất hiện nh• một t• liệu riêng biệt hay một phần trong phạm vi kế hoạch phát triển dự án. SCMP cung cấp dự liệu cho các nguồn có nh• cầu, chúng đ•ợc sử dụng nh• thế nào, và có những tiêu chuẩn thủ tục gì sẽ đ•ợc vận dụng trong dự án. Theo thế SCMP trở thành đ•ợc ủy nhiệm cho nhóm kiểm tra cấu hình trong phát triển dự án. Việc đ•a ra kế hoạch đó là trách nhiệm của ng•ời quản lý dự án, mặc dù trong những dự án lớn nó có thể đ•ợc phó thác cho ng•ời quản lý kiểm tra cấu hình. Bảng 7.1. Có một danh mục các đề tài chính nằm trong SCMP. Nếu có một đề tài nào trong những đề tài đó nằm ở chỗ khác (thí dụ trong kế hoạch bảo hiểm chất l•ợng phần mềm) thì đề tài đó có thể đ•ợc bỏ qua ở SCMP và đ•ợc thay bằng con trỏ. Trong t• liệu mà nó đáng phải ở đó. Mặc dù phần lớn các đề tài trong bảng 7.1. là tự mô tả, sau đây là một số h•ơng dẫn:  Báo cáo tình hình cấu hình mô tả cách thông tin tình hình diễn triển: - Từ ng•ời sản xuất đến tổ chức quản lý cấu hình (kiểm toán và duyệt). - Từ tổ chức quản lý cấu hình tới quản lý dự án (thủ tục báo cáo tình hình).  Nhận biết cấu hình mô tả ph•ơng pháp chỉ định các hạng mục phát triển nh• SCCI. Đây là một bộ phận của phân giải hệ thống cấp cao thành những thành phần páht triển chủ yếu (coi ch•ơng 6). Phần về các ph•ơng pháp nhận biết mô tả cách mà mỗi thành phần phát sinh, từ dự án đ•ợc đánh dấu nhận biết duy nhất.  An toàn, truy nhập hạn chế và phân loại nhằm phát triển an toàn các sản phẩm nhạy cảm (nh• t• liệu phần mềm, bằng phát minh, thông tin quân sự xếp hạng v.v...). Th•ờng thuận lợi là ủy thác nhiều những nhiệm vụ đó cho kiểm tra cấu hình do nh• cầu phải tham gia vào việc duyệt và phân loại t• liệu và các hoạt động khác liên quan gắn với an toàn.  Các chủ thầu phụ, ng•ời bán hàng và ng•ời cung cấp có thể hay không thể thực hiện kế hoạch quản lý cấu hình của chính mình. Đây là trách nhiệm của ng•ời quản lý dự án phải đảm bảo là các chủ thầu phụ hay các nhà sản xuất bên ngoài phải trình duyệt CMP hay ng•ời quản lý cấu hình của dự án chịu trách nhiệm về công việc của họ. Quản lý dự án phần mềm 123 SCMP cũng có thể bao gồm những sơ đồ và biểu đồ để dòng chảy mô tả thủ tục đệ trình các yêu cầu thay đổi hay báo cáo vấn đề27. Hình 7.3. giới thiệu một thí dụ về biểu đồ dòng chảy tổng quát kiểm tra cấu hình mà tiêu chuẩn US DOD 2167A (DOD) 1988a gợi ý (so sánh với dòng kiểm tra cấu hình mô đun phần mềm trong h.7.1). Bảng 7.1. Thí dụ về nội dung kế hoạch quản lý cấu hình phần mềm. 1. Tổ chức và nguồn quản lý cấu hình phần mềm - Cơ cấu tổ chức - Khả năng về trình độ kỹ năng nhân sự - Nguồn 2. Tiêu chuẩn, thủ tục, chính sách và h•ớng dẫn. 3. Nhận biết cấu hình - Ph•ơng pháp xác định SCCI - Mô tả SCCI cho dự án này 4. Ph•ơng pháp nhận biết (định danh và đánh dấu t• liệu, cấu kiện phần mềm, duyệt phát hành v.v...). 5. Đệ trình hạng mục cấu hình thủ tục chấp nhận / bác bỏ. 6. Kiểm tra thay đổi. - Thủ tục kiểm tra thay đổi (ph•ơng pháp đệ trình duyệt, chấp nhận và bác bỏ). - Báo cáo t• liệu (yêu cầu thay đổi, báo cáo vấn đề) - Thủ tục duyệt thay đổi và ban xét duyệt 7. Kiểm tra phiên bản. - Chuẩn bị phiên bản phần mềm và t• liệu - Thủ tục chấp nhận phát hành. 8. L•u trữ, xử lý và cung cấp các kênh thông tin dự án - Yêu cầu l•u trữ. - Sao chép 9. Kiểm tra cấu hình của các chủ thầu phụ, ng•ời bán và ng•ời cung cấp 10. Kiểm tra bổ sung - Thủ tục kiểm tra linh tinh - Kiểm tra đặc biệt dự án (an toàn v.v...) 11. Báo cáo tình hình cấu hình - Kiểm toán và duyệt cấu hình - Thủ tục báo cáo tình hình cấu hình 12. Cột mốc chủ yếu quản lý cấu hình 13. Công cụ, kỹ thuật và ph•ơng pháp luận 27 về mô tả SCMP chi tiết hơn, coi IEEE (1987) Quản lý dự án phần mềm 124 7.1.4. Một số đ•ờng lối chung Hình 7.3 Thí dụ về l•ợc đồ một dòng điều khiển cấu hình. Danh mục hoạt động mà kiểm tra cấu hình tiến hành còn ch•a đạt tiêu chuẩn là chức năng hỗ trợ quản lý dự án, phạm vi kiểm tra cấu hình bao gồm nhiều hoạt động tùy chọn hay tuyển chọn. Do đó, với t• cách một h•ớng dẫn cơ bản, nó hoàn toàn có thể chấp nhận đ•ợc để gán cho quản lý cấu hình trong phạm vi dự án chuyên đề, bất kỳ hoạt động nào liên quan nh• phân bổ nguồn phát triển hay bố trí và tổ chức các trình diễn Không Nâng cấp phần mềm Thay đổi phần mềm Các vấn đề Phân tích và •ớc định ảnh h•ởng Chuẩn bị đề xuất thay đổi kỹ thuật Sáp nhập sự thay đổi Ban rà soát thiết kế phần mềm Ban điều khiển cấu hình phần mềm Có Đánh giá đề xuất thay đổi kỹ thuật Cung cấp liên hệ ng•ợc cho ng•ời khởi đầu Kiểm thử thay đổi Kết thúc Chấp thuận hay không? L•u trữ thay đổi Phân tích và truy cập ảnh h•ởng Quản lý dự án phần mềm 125 cho khách hàng. Cả hai thí dụ đó sử dụng thông tin có đ•ợc cho ng•ời quản lý cấu hình: cấu kiện sản phẩm nào đ•ợc sản xuất, khi nào và do ai. Đòi hỏi thay đổi phần mềm Số : Trang: Tên ng•ời khởi đầu: Điện thoại: Ngày: Dự án: Hệ thống/Sản phẩm: Version: Lý do thay đổi: Mô tả thay đổi: Ng•ời rà soát: Chữ ký: Ngày: Ước l•ợng số công: Lịch thời gian: Lập lịch ảnh h•ởng: Ng•ời chấp thuận dự toán: Chữ ký: Ngày: Có chấp thuận không (có/không): Tên ng•ời quyết định: Chữ ký: Ngày: Hình 7.4 Thí dụ biểu yêu cầu thay đổi phần mềm Việc l•u giữ hồ sơ là quan trọng trong mọi hoạt động hành chính của dự án nh•ng đặc biệt quan trọng trong kiểm tra cấu hình. Tai họa của Quản lý dự án phần mềm 126 quản lý dự án vẫn là tranh chấp vĩnh cửu về các thỏa thuận miệng lý giải sai hay hiểu sai... Kiểm tra thay đổi yếu là phổ biến trong việc gây nên tranh chấp giữa khách hàng và ng•ời sản xuất. T•ơng tự nh• vậy việc kiểm tra phiên bản yếu có thể là tai họa, đặc biệt khi không có hồ sơ về dị biệt giữa các phiên bản. Hình 7.4. cho 1 thí dụ về mẫu yêu cầu thay đổi. Mẫu này l•u giữ thay đổi phần mềm từ lần đệ trình ban đầu, qua chấp nhận hay bác bỏ và cuối cùng đến thực hiện và kiểm nghiệm (khi đ•ợc chấp nhận). Cần ghi nhớ nhu cầu chữ ký; những mẫu này không thể l•u giữ bằng điện tử - bản gốc có chữ ký phải đ•ợc l•u lại. Sau đây là một số h•ớng dẫn bổ sung để quản lý cấu hình hiệu quả. Một số những h•ớng dẫn này đồng thời áp dụng đ•ợc cho các chức năng hỗ trợ quản lý khác. - Quản lý cấu hình đòi hỏi quyền hạn để có hiệu lực. Quyền hạn này phải đ•ợc quản lý dự án giao cụ thể cho các kỹ s• có trách nhiệm. Bất cứ kế hoạch quản lý cấu hình nào sẽ trở nên vô nghĩa nếu kế hoạch không thể đ•ợc tôn trọng. Tốt nhất nên tránh, bất cứ khi nào có thể, việc c•ỡng bức tôn trọng bất cứ kế hoạch, chính sách hay tiêu chuẩn nào. Một trong những đức tính của ng•ời quản lý tốt là khả năng vận dụng chính sách với c•ỡng bức tối thiểu. Bất cứ khi nào các chính sách và tiêu chuẩn sẵn sàng đ•ợc ng•ời sản xuất chấp nhận thì chúng càng đ•ợc tự nguyện tuân thủ và rất ít có tr•ờng hợp bác bỏ vật liệu đệ trình. Điều này dẫn đến quá trình phát triển hiệu quả hơn. - Quản lý cấu hình phải đ•ợc thực hiện từ lúc khởi đầu dự án phần mềm. Nhiều t• liệu chính thức đề xuất trong giai đoạn quan niệm ban đầu là trọng yếu cho các giai đoạn yêu cầu và thiết kế và phải đ•ợc đặt trong sự kiểm tra cấu hình. Việc vận dụng sớm quản lý cấu hình là đặc biệt quan trọng trong các mô đen xoáy ốc, lấy nguyên mẫu nhanh hay các ph•ơng pháp luận phát triển lặp lại. Những tiếp cận phát triển này khởi đầu tạo ra vô vàn phiên bản của mỗi sản phẩm. Nhiều phiên bản khác nhau có thể trở thành ác mộng công nghệ nếu không có kiểm tra cấu hình có trật tự. - Đôi khi một số hoạt động kiểm tra cấu hình phần mềm có thể chồng chéo với các hoạt động bảo hiểm chất l•ợng phần mềm. Trong những dự án nhỏ, cả hai chức năng đó có thể giao cho một kỹ s• hỗ trợ duy hất. Ngay trong những dự án lớn, đôi khi chức năng đó có thể do một nhóm hỗ trợ duy nhất thực hiện. Về h•ớng dẫn chung cuối cùng, phải ghi nhận là quản lý cấu hình có thể đ•ợc đề cao thái quá. Các hoạt động kiểm tra cấu hình bản thân chúng không phải là đối t•ợng. Chúng là ph•ơng tiện. Một thí dụ điển hình về việc vận dụng sai quản lý cấu hình (và kiểm tra chất l•ợng lệch h•ớng) là yêu cầu sửa lại phần mềm đã đ•ợc dùng lại đáp ứng các tiêu chuẩn và thủ tục thông dụng. Phần mềm tái sử dụng là phần mềm phát Quản lý dự án phần mềm 127 triển tr•ớc đây trong dự án khác và đ•ợc thấy thích hợp để hòa nhập vào dự án thông th•ờng. Trong những tr•ờng hợp đó, hiếm khi lại có ý nghĩa trong việc sửa đổi một sản phẩm hoàn chỉnh và hoạt động nhằm cho nó đáp ứng với các tiêu chuẩn hành chính dự kiến để làm nó trở thành một sản phẩm hoàn chỉnh và hoạt động đ•ợc. 7.2. Bảo đảm chất l•ợng phần mềm (SQA). Chất l•ợng khó xác định đ•ợc đặc biệt khi vận dụng cho một hợp đồng phát triển sản phẩm. Mặc dù không phải mọi phần mềm đ•ợc phát triển theo hợp đồng, chất l•ợng vẫn là mối quan tâm đầu tiên của khách hàng (và mọi dự án cuối cùng đều có khách hàng). Cơ quan tiêu chuẩn Anh (1986) đã khẳng định "chất l•ợng nằm trong con mắt của ng•ời xem, một đề tài phán xử của khách hàng". Nếu đã có khó khăn trong việc tìm kiếm đ•ợc những định nghĩa chấp nhận rộng rãi về thuật ngữ kiểm tra cấu hình thì về thuật ngữ bảo đảm c

Các file đính kèm theo tài liệu này:

  • pdfGiaotrinhquanlyduanphanmem.pdf