Chương 1: Tập trung vào một số lý lý thuyết liên quan đến quản lý quá trình phát triển dự án phần mềm Chương 2: Trình bầy về các khái niệm, luật của lý thuyết chắc chắn. Chương 3: Phân tích đánh giá một số quy trình ước lượng dự án phần mềm để từ đó đưa ra quy trình ước lượng dự án phần mềm. Chương 4: Sử dụng tri thức trong việc ước lượng dự án phần mềm. 9 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CHƢƠNG 1.
QUẢN LÝ QUÁ TRÌNH PHÁT TRIỂN DỰ ÁN 1.1 Lập kế hoạch dự án Để hoàn thành thành công một dự án phát triển, việc lập kế hoạch và quản lý dựa trên các kế hoạch là quan trọng. Việc chuẩn bị kế hoạch cho phép nhìn toàn cảnh về dự án. Dự án cần được phát triển rõ ràng, có khả năng kiểm tra và nghiên cứu trước các vấn đề rủi ro của dự án. Ngoài ra còn cần xem xét mục đích, chức năng và nhìn bao quát về hệ thống, cũng như khối lượng công việc và số nhân công cần cho dự án.1 Lập kế hoạch dự án Việc lập kế hoạch dự án được thực hiện, nhằm tạo ra những kết quả : Những đầu ra (mã lệnh, chương trình, tài liệu), công việc, lịch biểu, quản lý chất lượng, quản lý rủi ro và những vấn đề khác.
Cơ cấu tổ chức của dự án. Cơ cấu gồm những thành viên tham gia dự án và đóng vai trò nào đó trong dự án. Những người có vai trò quản trị dự án, quản trị chất lượng,. sẽ đảm nhận cụ thể những công việc gì trong quá trình phát triển và quản lý dự án.
Quy định môi trường phát triển bao gồm phần cứng và phần mềm và các điều kiện khác về an toàn bảo mật trong dự án kèm theo, nếu có. Chi phí phát triển, bao gồm chi phí cho nhân sự, trang thiết bị, chi tiêu và các chi phí có liên quan khác. Người ta xây dựng kế hoạch chi tiết theo những kết quả trên. Những kế hoạch này cung cấp cơ sở để đánh giá tính khả thi triển khai dự án.
Ngoài ra, kế hoạch được dùng làm mục đích cho việc quản lý dự án, sau khi dự án được phê duyệt.2 Tính toán lợi nhuận của dự án Việc phát triển hệ thống được thực hiện như một phần của hoạt động kinh doanh, nên các yêu tố sinh lợi cần được thăm dò sau khi phát triển dự án, một cách tự nhiên. Điều này có nghĩa là việc đánh giá chi phí- hiệu quả là cần thiết. Nếu việc phát triển hệ thống cho thấy nó không sinh lợi từ giai đoạn lập kế hoạch, 10 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com thì dự án sẽ không được chấp thuận. Chẳng hạn như, hệ thống là cần thiết để đáp ứng các yêu cầu của luật pháp hay quy chế.
Nếu việc tính toán lợi nhuận được đưa ra tại giai đoạn lập kế hoạch, thì điều thường xảy ra là vào lúc hoàn thành người ta thấy dự án này hoàn toàn chẳng lợi lộc gì. Chẳng hạn, ta có thể xét kịch bản sau đây : Khách hàng thay đổi yêu cầu vào giai đoạn thiết kế, làm tăng khối lượng công việc cần thiết. Các chức năng được đưa ra trước đây thực tế không được hỗ trợ thỏa đáng. Những thứ mua từ bên ngoài lại kém về chất lượng, làm phát sinh nhiều việc phải làm lại và ảnh hưởng tới thời hạn giao hàng.
Một số kịch bản chỉ được đưa ra khi nào các dự án được tiến hành. Có thể nói rằng dự án đó có thể là không được thực hiện như đã lập kế hoạch. Do đó việc xem xét lại các kế hoạch trong từng giai đoạn trở thành cần thiết, để duy trì tính sinh lợi. Những sửa đổi về các đặc tả phải được phản ánh đúng.
Cho nên, để an toàn chất lượng, cần phải tiến hành việc quản lý những thay đổi diễn ra trong dự án.2 Lập kế hoạch, quản lý và đánh giá chất lƣợng 1.1 Triển khai chức năng chất lƣợng Mục đích chính của kiểm thử phần mềm là loại bỏ các lỗi và duy trì chất lượng đã được thiết kế, QFD là một công nghệ giúp cho phần mềm đạt chất lượng cao hơn. QFD được giới thiệu để tăng chất lượng của thiết kế phần cứng. Đại cương về QFD là : Với QFD, chất lượng của phần mềm bao gồm các hệ con và các phân hệ, được biểu diễn như đặc trưng chất lượng. Nó cho phép đánh giá và sử dụng cho việc kiểm soát chất lượng của các hệ thống con và các phân hệ bên trong nó.2 Chất lƣợng phần mềm Nói rằng „‟Máy tính thông minh lắm‟‟ là không đúng.
Đúng hơn phải nói là, „‟ Phần mềm (chương trình) này thông minh lắm‟‟. Trong thực tế, việc đưa dữ liệu ký tự vào thay vì các số làm cho máy tính bị kết thúc bất thường. Để tránh điều này, với một chương trình có thể kiểm tra dữ liệu được đưa vào và yêu cầu chương trình phải đưa ra yêu cầu thông báo người dùng phải nhập lại số liệu- nếu dữ liệu không hợp lệ (không phải là số, hoặc ngày tháng chẳng hạn). Nói cách khác, việc 11 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com đưa ra chức năng kiểm tra lỗi làm cho chương trình thông minh hơn, làm tăng chất lượng phần mềm.
Một chức năng như vậy không nên phụ thuộc vào khả năng của người lập trình. Nó phải được tính trước trong giai đoạn thiết kế, nơi các yêu cầu của người dùng được cụ thể hóa chi tiết. Nếu như việc kiểm tra được xác nhận như một nhu cầu tiềm tàng của người dùng, nhưng lại không được mô tả trong đặc tả trong giai đoạn thiết kế, thì chức năng này sẽ không bao giờ có được. Những thiếu sót bắt nguồn từ các đặc tả yêu cầu(giai đoạn sớm nhất), có thể chỉ được phát hiện ra trong kiểm thử vận hành (giai đoạn muộn nhất).
Hậu quả là có thể là điều không sửa chữa được, ngay cả khi đã tìm ra khiếm khuyết. Nói cách khác, nếu có đủ thời gian trong các giai đoạn đầu cho việc kiểm soát và sửa chữa sai sót, thì khối lượng cần sửa đổi trong các giai đoạn sau sẽ được rút bớt lại. Thực tế người ta nói : „‟Một giờ được dùng để sửa các khiếm khuyết trong những giai đoạn đầu, tiết kiệm từ ba tới mười giờ làm việc trong những giai đoạn cuối‟‟. Để làm tăng chất lượng phần mềm, người ta thực hiện chu trình : 1.
Việc thực hiện theo chu trình trên là rất quan trọng. Nó sẽ giúp chúng ta loại bỏ được phần lớn những rủi ro trong quá trình thực hiện dự án từ những giai đoạn sớm nhất trong dự án.3 Đặc trƣng chất lƣợng phần mềm Có nhiều phương pháp đánh giá phần mềm. Ở đây chúng ta cùng xem xét đến sáu mô tả đặc trưng được liệt kê trong ISO/IEC 9126 được nêu trong hình sau. Chức năng (đặc trưng chức năng) Các chức năng cần cho hệ thống được thực hiện (tính thích hợp); Độ chính xác chức năng được cung cấp (tính chính xác); Các chức năng đáp ứng cho đặc tả (tính tuân thủ); 12 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Cung cấp sự dễ dàng khi kết nối với các hệ thống khác (tính liên tác); Cung cấp tính an ninh cơ bản.
Tính phù hợp Tính chính xác Tính chức năng Tính tuân thủ Tính liên tác Tính an ninh Tính chín muồi Tính tin cậy Dung sai Khôi phục được Tính hiểu được Tính dùng được Tính học được Tính vận hành được Hành vi thời gian Đặc trưng Tính hiệu quả chất lượng Hành vi tài nguyên Tính phân tích được Tính thay đổi được Tính bảo trì Tính ổn định Tính kiểm thử được Tính thích ứng Tính cài đặt Tính khả chuyển Tính tuân thủ Tính thay thế được Hình 1.1: Sáu đặc trưng chất lượng phần mềm Tính tin cậy Phần mềm không có lỗi được gọi là chín muồi; Một mức độ hệ thống nào đó được duy trì ngay cả khi xuất hiện trục trặc: dung sai; Hoạt động bình thường được khôi phục sẵn sàng khi lỗi xuất hiện: tính khôi phục được. Tính dùng được (dễ dùng) Vận hành dễ dàng: Tính hiểu được Dễ nhớ: khả năng học hiểu. Cho phép quản lý thao tác dễ dàng: tính vận hành. 13 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tính hiệu quả Cung cấp những đáp ứng tố và hiệu năng cao : hành vi thời gian; Cho phép dùng hiệu quả các tài nguyên hệ thống: hành vi tài nguyên.
Tính bảo trì Cho phép phân tích dễ dàng các tài liệu thiết kế và chương trình khi tìm ra lỗi: khả năng phân tích; Cho phép mở rộng và sửa đổi dễ dàng cho hệ thống: tính thay đổi được; Việc sửa đổi hệ thống không ảnh hưởng tới các hệ thống khác: tính ổn định; Không đòi hỏi kiểm thử mất công sức sau khi tiến hành sửa đổi: tính kiểm thử được. Tính khả chuyển Có tính thích ứng: tính thích ứng; Cung cấp công việc thiết đặt dễ dàng: khả năng thiết đặt; Tuân thủ các đặc tả chuyển: tính tuân thủ; Cho phép dễ dàng thay thế bằng phần mềm khác: khả năng thay thế.3 Quản lý tiến trình Quản lý tiến trình được chia thành lập kế hoạch tiến độ và quản lý tiến trình. Ở đây, các đặc trưng, và phương pháp được áp dụng sẽ được giải thích ở dưới đây.1 Tổng quan về lập kế hoạch tiến trình và quản lý tiến độ Lập kế hoạch tiến trình xuất hiện khi việc phát triển hệ thống được hoàn thành dựa trên việc hoàn thành các tiến trình khác nhau. Một số công việc lớn phải mất nhiều năm để hoàn thành.
Do đó, việc lập kế hoạch tiến độ chính xác là một việc quan trọng. Một dự án phát triển mới gồm nhiều nhân tố không chắc chắn mà không thể nào xác định được chính xác trong giai đoạn lập kế hoạch tiến độ. Do đó, khi tiến độ công việc được thúc đẩy, việc giải quyết linh hoạt cho các tính huống như: làm cho ngày chuyển giao sớm hơn (tùy theo tinh huống), hay tối thiểu hóa việc chậm trễ, trở thành cần thiết. Trong khi đó quản lý tiến trình là việc quản lý quá trình diễn biến của công việc.
Chúng ta cần kiểm tra lại tiến độ công việc và tiến hành hành động nào đó 14 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com đối với công việc có tiến độ bị chậm so với kế hoạch làm việc. Hiệu năng công việc phát triển hệ thống bị chia sẻ cho nhiều người.