Công nghệ phần mềm - Quản trị dự án phần mềm
Quản trị dự án là cần thiết để thực hiện phần mềm
đúng tiến độ
giảm chi phí
đạt được mục tiêu
Quản trị dự án là rất quan trọng vì
dự án phần mềm phức tạp
sự thay đổi thường xuyên xuất hiện trong quá trình
phát triển
cần đảm bảo các ràng buộc
• thời gian
• chi phí
• ngồn tài nguyên
• Ví dụ • IEEE 828-1990: Software Configuration Management Plans • IEEE 1042: Guide to Software Configuration Management 16 31 Quản lý cấu hình Quản lý thay ñổi Phần mềm thường xuyên thay ñổi do yêu cầu của người sử dụng người phát triển thị trường Quản lý thay ñổi là ghi nhận tất cả các sự thay ñổi và bảo bảo rằng chúng ñược thực hiện với chi phí thấp nhất 32 Quản lý cấu hình Quản lý phiên bản Thuật ngữ promotion • một phiên bản ñược chuyển giao cho các người phát triển release • một phiên bản ñược chuyển giao cho người sử dụng (ngoài nhóm phát triển) ðặt tên các phiên bản rỏ ràng, không nhập nhằng phương pháp ñơn giản thường ñược sử dụng • ñánh số 17 33 Quản lý cấu hình Xây dựng hệ thống Biên dịch và kết hợp tất cả các thành phần của một cấu hình thành một hệ thống thực thi ñược Các cách kết hợp khác nhau các thành phần có thể tạo nên các hệ thống khác nhau Nên sử dụng các công cụ hỗ trợ Ví dụ: Makefile 34 Quản lý cấu hình Xây dựng hệ thống Các vấn ñề cần lưu ý khi xây dựng hệ thống: Tất cả các thành phần cần thiết ñều ñược sử dụng (liên kết) ? Phiên bản thích hợp của mối thành phần dược sử dụng ? Tất cả các tệp dữ liệu ñã sẵn sàng ? Hệ thống ñược xây dựng cho nền (platform) ñúng ñắn ? • hệ ñiều hành, cấu hình phần cứng Phiên bản của trình biên dịch và các công cụ sử dụng là ñúng ñắn ? 18 35 Quản lý cấu hình Công cụ SCM ñược hỗ trợ bởi các công cụ Có các loại công cụ các công cụ ñộc lập các công cụ tích hợp vào trong các môi trường phát triển 36 Quản lý cấu hình Công cụ Công cụ quản lý phiên bản Hoạt ñộng hỗ trợ • ðặt tên các phiên bản • tự ñặt tên các phiên bản mới • Ghi lại lịch sử (vết) thay ñổi • Phát triển cộng tác • nhiều người có thể thay ñổi ñồng thời một phiên bản • Ghi nhận các phiên bản: 2 khả năng • Ghi nhân toàn bộ phiên bản • Chỉ ghi nhận sự khác nhau giữa các phiên bản 19 37 Quản lý cấu hình Công cụ Công cụ quản lý phiên bản RCS (Revision Control System) • mã nguồn mở, cũ CVS (Concurrent Version System) • miễn phí, hỗ trợ các máy tính sử dụng hệ ñiều hành khác nhau, sử dụng từ xa Perforce • công cụ thương mại Subversion • mã nguồn mở, ñầy các tính năng của CVS, tốt hơn CVS 38 Tổ chức dự án Tổ chức dự án là rất quan trọng yếu tố chính quyết ñịnh cho sự thành công Bao gồm các hoạt ñộng Chọn nhân sự thích hợp Chọn cấu trúc của nhóm Chọn kích thước của nhóm Xác ñịnh vai trò của các thành viên trong nhóm Quản lý giao tiếp giữa các thành viên trong nhóm 20 39 Tổ chức dự án Chọn nhân sự thích hợp Các yếu tố cần xem xét khi chọn nhân sự Kinh nghiệm • hiểu biết lĩnh vực ứng dụng • kinh nghiệm với môi trướng phát triển • hiểu biết về ngôn ngữ lập trình ðào tạo Khả năng • khả năng giao tiếp • khả năng thích ứng, khả năn học Thái ñộ Tính cách 40 Tổ chức dự án Chọn cấu trúc của nhóm Nhóm không hình thức (egoless team) Nhóm chief-programmer Nhóm phân cấp 21 41 Tổ chức dự án Chọn cấu trúc của nhóm Nhóm phi hình thức (egoless team) các thành viên của nhóm có vai trò như nhau nhóm nhỏ các thành viên ñều có kinh nghiệm và năng lực dự án khó 42 Tổ chức dự án Chọn cấu trúc của nhóm Nhóm chief-programmer Gồm có • Trưởng nhóm (chief-programmer): thực hiện phân tích, thiết kế, mã hóa, kiểm thử • Trợ lý: hỗ trợ trưởng nhóm phát triển, kiểm thử • Thư ký: quản lý thông tin • Các chuyên gia hỗ trợ • quản lý, lập tài liệu, lập trình, kiểm thử... Phụ thuộc chủ yếu vào trưởng nhóm Trưởng nhóm phải có năng lực 22 43 Tổ chức dự án Chọn cấu trúc của nhóm Nhóm phân cấp Dự án lớn ñược chia thành nhiều dự án nhỏ Mỗi sự án nhỏ ñược hiện bởi một nhóm Mỗi nhóm có một trưởng nhóm Mỗi thành viên cấp dưới phải báo cáo công việc với người quản lý trực tiếp Mỗi thành viên phải ñược ñào tạo kỹ năng ñể thực hiện vai trò của mình 44 Tổ chức dự án Chọn kích thước của nhóm Kích thước nhóm nên tương ñối nhỏ: dưới 8 người giảm thời gian giao tiếp dễ dàng làm việc cùng nhau Không nên quá nhỏ nhóm bảo ñảm tiếp tục làm việc, nếu có thành viên ra ñi ðối với một dự án, số người trong nhóm có thể thay ñổi Khi một dự án chậm trể, thêm người vào dự án không bao giờ giải quyết ñược vấn ñề “Adding more programmers to a late project makes it later” (Brooks’ Law - The Mythical Man-Month) 23 45 Tổ chức dự án Xác ñịnh vai trò của các thành viên Trưởng dự án chịu trách nhiệm một dự án bảo ñảm nhóm có ñầy ñủ thông tin và nguồn tài nguyên cần thiết phân công công việc cho các thành viên kiểm tra thời hạn các công việc giao tiếp với khách hàng 46 Tổ chức dự án Quản lý giao tiếp giữa các thành viên Giao tiếp tốt cho phép nhóm hoạt ñộng tốt Thông tin cần trao ñổi về tiến ñộ công việc các thay ñổi các khó khăn ... Giao tiếp giữa các thành viên phụ thuộc vào cấu trúc nhóm nhóm phi hình thức: giao tiếp trực tiếp giữa các thành viên nhóm phân cấp: giao tiếp thông qua người quản lý 24 47 Tổ chức dự án Quản lý giao tiếp giữa các thành viên Các ñặc ñiểm trong giao tiếp nhóm (1) các thành viên có vị trí cao thường áp ñặt các cuộc trao ñổi nhóm vừa có nam và nữ thường giao tiếp tốt hơn giao tiếp phải qua một người ñiều phối trung tâm thường không hiệu quả tất cả các thành viên nên có tham gia vào các quyết ñịnh ảnh hưởng toàn bộ nhóm 48 Tổ chức dự án Quản lý giao tiếp giữa các thành viên Các ñặc ñiểm trong giao tiếp nhóm (2) tính cách của các thành viên • quá nhiều thành viên có cùng tính cách cũng có thể không tốt • hướng công việc: mỗi người ñều muốn thực hiện công việc riêng • hướng cá nhân: mỗi người ñều muốn làm ông chủ • hướng tương tác: nhiều họp hành mà ít thực hiện cụ thể • một nhóm nên cân bằng giữa các tính cách 25 49 Quản lý rủi ro Rủi ro (risk) là khả năng một tính huống xấu xảy ra Quản lý rủi ro (risk management) liên quan ñến xác ñịnh các rủi ro ảnh hưởng ñến dự án lập kế hoạch hạn chế sự ảnh hưởng của rủi ro Các loại rủi ro rủi ro của dự án (project risks) ảnh hưởng ñến tiến ñộ và guồn tài nguyên rủi ro của sản phẩm (product risks) ảnh hưởng ñến chất lượng phần mềm rủi ro của doanh nghiệp (enterprise risks) ảnh hưởng ñến doanh nghiệp sẽ sử dụng phần mềm 50 Quản lý rủi ro Ví dụ A competitive product is marketed before the system is completed EnterpriseProduct competition The underlying technology on which the system is built is superseded by new technology EnterpriseTechnology change The size of the system has been underestimatedProject & Product Size underestimate Specifications of essential interfaces are not available on schedule Project & Product Specification delays There will be a larger number of changes to the requirements than anticipated Project & Product Requirements change Hardware which is essential for the project will not be delivered on schedule. ProjectHardware unavailability There will be a change of organisational management with different priorities ProjectManagement change Experienced staff will leave the project before it is finished ProjectStaff turnover Mô tảLoại rủi roRủi ro 26 51 Quản lý rủi ro Các hoạt ñộng quản lý rủi ro Xác ñịnh các rủi ro Phân tích các rủi ro Lập kế hoạch các rủi ro Giám sát các rủi ro Xử lý các rủi ro 52 Quản lý rủi ro Xác ñịnh các rủi ro Phân loại rủi ro về thương mại • ðối thủ cạnh tranh có chiếm lĩnh thị trường trước ? • Có cần cho ra ñời phiên bản nhỏ ñể chiếm thị trường ? rủi ro về tài chính • Có ñủ năng lực về tài chính ñể thực hiện dự án ñúng tiến ñộ ? rủi ro về kỹ thuật • Công nghệ hiện tại có cho phép ? rủi ro về con người • Nhóm làm việc có ñủ kinh nghiệm và năng lực ? 27 53 Quản lý rủi ro Phân tích các rủi ro ðánh giá dự án, công nghệ, nguồn tài nguyên hiện có ñể xác ñịnh và hiểu bản chất và nguồn gốc của rủi ro Xác ñịnh xác suất của mỗi rủi ro rất thấp, thấp, trung bình, cao, rất cao Xác ñịnh tầm quan trọng của mỗi rủi ro rất nghiêm trọng, nghiêm trọng, có thể bỏ qua, không quan trọng 54 Quản lý rủi ro Lập kế hoạch các rủi ro Kế hoạch giảm rủi ro cho mỗi rủi ro gồm tầm quan trọng ñối với khách hàng tầm quan trọng ñối với người phát triển chiến lược quản lý rủi ro và ảnh hưởng về kinh tế phương tiện kiểm tra rủi ro ñã bị xóa hoặc ñã giảm các kịch bản bị ảnh hưởng bởi rủi ro 28 55 Quản lý rủi ro Lập kế hoạch các rủi ro Các chiến lược Chiến lược tránh rủi ro • giảm xác suất rủi ro xảy ra Chiến lược giảm rủi ro • giảm ảnh hưởng của rủi ro ñối với dự án hoặc sản phẩm khi nó xảy ra Kế hoạch khẩn cấp • xử lý ngay rủi ro khi xảy ra 56 Quản lý rủi ro Lập kế hoạch các rủi ro Derive traceability information to assess requirements change impact, maximise information hiding in the design Requirements change Investigate buying in components, investigate use of a program generator Development time underestimated Replace potentially defective components with bought-in components of known reliability. Failed components Reorganise team so that there is more overlap of work and people therefore understand each other’s jobs. Short for persionnel Alert customer of potential difficulties and the possibility of delays, investigate buying-in components. Recruitment probelms Prepare a briefing document for senior management showing how the project is making a very important contribution to the goals of the business. Financial problems Chiến lượcRủi ro 29 57 Quản lý rủi ro Giám sát các rủi ro ðánh giá thường xuyên mỗi rủi ro • ñể xác ñịnh xác suất xảy ra của nó • ñể ñánh giá các hậu quả của nó có thay ñổi Mỗi rủi ro chính cần phải ñược thảo luận khi có các cuộc họp về tiến ñộ dự án Xử lý các rủi ro Phương án xử lý khi rủi ro xảy ra
File đính kèm:
- 10_QuanTriDuAn.pdf