Giải thuật di truyền và ứng dụng trong quản lý dự án phần mềm

  • Số trang: 110 |
  • Loại file: PDF |
  • Lượt xem: 12 |
  • Lượt tải: 0
nhattuvisu

Đã đăng 26946 tài liệu

Mô tả:

1 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN HỮU HUY GIẢI THUẬT DI TRUYỀN VÀ ỨNG DỤNG TRONG QUẢN LÝ DỰ ÁN PHẦN MỀM LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hà Nội-2014 2 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN HỮU HUY GIẢI THUẬT DI TRUYỀN VÀ ỨNG DỤNG TRONG QUẢN LÝ DỰ ÁN PHẦN MỀM Ngành: CÔNG NGHỆ THÔNG TIN Chuyên ngành: KỸ THUẬT PHẦN MỀM Mã số:60480103 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƢỜI HƢỚNG DẪN KHOA HỌC: PGS.TS. BÙI THU LÂM Hà Nội-2014 3 LỜI CAM ĐOAN Tôi xin cam đoan, toàn bộ nội dung liên quan tới đề tài được trình bày trong luận văn là bản thân tôi tự tìm hiểu và nghiên cứu, dưới sự hướng dẫn của PGS, TS.Bùi Thu Lâm. Các tài liệu, số liệu tham khảo được trích dẫn đầy đủ nguồn gốc. Tôi xin chịu trách nhiệm trước pháp luật lời cam đoan của mình. Học viên thực hiện Nguyễn Hữu Huy 4 LỜI CẢM ƠN Tôi xin chân thành cám ơn tới Khoa Công nghệ thông tinTrường Đại học Công nghệ Đại học Quốc gia Hà Nội, các thầy, cô đã giúp đỡ và tận tình truyền đạt các kiến thức cho tôi trong suốt quá trình học tập và nghiên cứu. Tôi xin cảm ơn ban chủ nhiệm khoa và các cán bộ đã tạo điều kiện tốt nhất cho chúng tôi trong quá trình học tập và hoàn thành luận văn của mình. Đặc biệt, tôi xin gửi tới PGS, TS. Bùi Thu Lâm, thầy đã tận tình chỉ bảo tôi trong suốt quá trình làm luận văn lời cám ơn và biết ơn sâu sắc nhất. Bên cạnh những kiến thức tôi còn học hỏi được ở thầy tinh thần làm việc khoa học và nghiêm túc. Tôi xin cảm ơn tới học viên Phạm Minh Hải vàNguyễn Thanh Hưng đã đóng góp những ý kiến và động viên tôi trong quá trình học tập và làm luận văn. Tôi xin bày tỏ lòng biết ơn tới gia đình, bạn bè, và các đồng nghiệp ngân hàng Dầu khí toàn cầu GP.Bank, các chị em trong nhóm Ngân hàng điện tử và nhất là trưởng phòng Ngân hàng điện tử Trần Trung Kiên đã động viên khích lệ tinh thần và giúp đỡ tôi hoàn thành luận văn này. 5 MỤC LỤC Trang phụ bìa Trang .................................................................................................... 2 Lời cam đoan ............................................................................................................... 3 Lời cảm ơn .................................................................................................................. 4 Mục lục ........................................................................................................................ 5 Danh mục các ký hiệu và chữ viết tắt ......................................................................... 7 Danh mục các hình vẽ, đồ thị ...................................................................................... 9 Danh mục các bảng ................................................................................................... 11 MỞ ĐẦU ....................................................................................................................... 12 Chương 1. Tổng quan về quản lý dự án phần mềm ....................................................... 14 1.1. Định nghĩa dự án, quản lý dự án phần mềm ....................................................14 1.1.1. Dự án là gì ....................................................................................................14 1.1.2. Thế nào là quản trị dự án ..............................................................................17 1.2. Vấn đề lập kế hoạch, lập lịch trong quản trị dự án phần mềm ........................21 1.2.1. Khái niệm về lập kế hoạch ...........................................................................21 1.2.2. Tự động hóa việc lập lịch .............................................................................21 Chương 2. Giải thuật di truyền và các ứng dụng ........................................................... 24 2.1. Tổng quan về giải thuật di truyền ....................................................................24 2.2. Lịch sử phát triển .............................................................................................25 2.3. Các bước áp dụng giải thuật di truyền .............................................................26 2.3.1. Mã hóa dữ liệu ..............................................................................................26 2.3.2. Khởi tạo quần thể..........................................................................................27 2.3.3. Xác định hàm thích nghi ...............................................................................27 2.3.4. Quá trình lai ghép .........................................................................................28 2.3.5. Quá trình đột biến .........................................................................................29 2.3.6. Quá trình chọn lọc ........................................................................................30 2.4. Các tham số của giải thuật di truyền ................................................................31 2.5. Thuật toán giải thuật di truyền .........................................................................32 Chương 3. Ứng dụng giải thuật di truyền để giải quyết bài toán lập lịch trong quản lý dự án phần mềm ............................................................................................................ 34 3.1. Phát biểu bài toán .............................................................................................34 3.2. Thuật toán ........................................................................................................38 3.2.1. Thuật toán khởi tạo cá thể ............................................................................38 3.2.2. Thuật toán đột biến cá thể.............................................................................40 3.2.3. Thuật toán lai tạo giữa hai cá thể ..................................................................41 3.2.4. Thuật toán xác định chuỗi thực hiện công việc có phù hợp với sơ đồ phân rã công việc hay không ..................................................................................................45 3.2.5. Thuật toán gán tài nguyên thực hiện công việc theo thứ tự .........................46 6 3.2.6. Xây dựng hàm fitness ...................................................................................48 Chương 4. Xây dựng ứng dụng ...................................................................................... 49 4.1. Mô hình ứng dụng ............................................................................................49 4.2. Tìm hiểu về nền tảng AForge.NET và ứng dụng vào chương trình demo ......54 4.3. Viết Add-in cho Microsoft Project ..................................................................58 4.3.1. Tạo button trong menu Add-ins ...................................................................59 4.3.2. Các bước cơ bản tạo Add-in trên Visual studio 2010 ..................................59 4.3.3. Viết code chức năng ExportData. .................................................................61 4.3.4. Chức năng import dữ liệu task từ database ..................................................61 4.3.5. Chức năng xem biểu đồ gantt chart ..............................................................62 4.4. Dữ liệu demo ....................................................................................................62 4.4.1. Bảng công việc .............................................................................................62 4.4.2. Bảng loại tài nguyên .....................................................................................66 4.4.3. Bảng tài nguyên ............................................................................................66 4.5. Chương trình demo ..........................................................................................67 4.5.1. Tạo mới database lưu trữ dữ liệu. .................................................................67 4.5.2. Mở database có sẵn .......................................................................................68 4.5.3. Quản lý dự án................................................................................................69 4.5.4. Quản lý loại tài nguyên dự án .......................................................................70 4.5.5. Quản lý tài nguyên dự án ..............................................................................71 4.5.6. Quản lý công việc .........................................................................................71 4.5.7. Thực hiện việc estimate các công việc dự án ...............................................74 4.5.8. Chức năng lập lịch dự án bằng giải thuật di truyền:.....................................75 4.5.9. Các chức năng bổ trợ khác ...........................................................................77 4.6. Kết quả chạy chương trình ...............................................................................82 KẾT LUẬN ................................................................................................................... 90 TÀI LIỆU THAM KHẢO ............................................................................................. 91 PHỤ LỤC ...................................................................................................................... 92 7 THUẬT NGỮ VIẾT TẮT Số thứ tự 1 2 3 4 5 Thuật ngữ GP EA EP WBS AForge.NET Tên đầy đủ Genetic programming Evolutionary algorithm Evolutionary programming Work breakdown structure Nền tảng thư viện phục vụ cho lĩnh vực thị giác máy tính và trí tuệ nhân tạo. 8 Ý NGHĨA CÁC KÝ HIỆU Số thứ tự 1 Ký hiệu Predj 2 Cpr 3 TaskLine 4 5 DoingTask NeedToDo 6 WorkingResource Ý nghĩa Tập hợp các công việc trực tiếp phía trước của công việc j. Công việc j là một công việc trong tập các công việc được định nghĩa trong bảng phân rã công việc. Bảng phân rã công việc. Ở bảng này đã chỉ định rõ công việc nào là công việc trực tiếp phía trước, công việc nào là công việc sau. Đường biểu diễn chuỗi công việc. Đây là tập hợp các công việc đã chỉ định rõ thứ tự thực hiện. Giả sử công việc e có công việc trực tiếp phía trước là d, trước công việc d có công việc trực tiếp phía trước c. Công việc e lại có công việc trực tiếp phía sau là f, công việc f lại có công việc trực tiếp phía sau là g. Thì ta có đường biểu diễn công việc e là tập hợp các công việc theo thứ tự như sau: c, d, e, f, g. Danh sách các task đang làm việc. Danh sách các task cần phải làm, các công việc này được đươc vào hàng đọi, đang đợi đủ tài nguyên để thực hiện. Các tài nguyên đang làm việc, các tài nguyên này đang bận thực hiện một task nào đấy. 9 DANH MỤC HÌNH VẼ Hình 1.1 Vòng đời chuẩn của quản lý dự án .................................................................18 Hình 2.1 Ví dụ về mã hóa nhiễm sắc thể .......................................................................26 Hình 2.2 Ví dụ về mã hóa nhị phân ...............................................................................26 Hình 2.3 Ví dụ về mã hóa hoán vị .................................................................................27 Hình 2.4 Ví dụ về mã hóa giá trị ...................................................................................27 Hình 2.5 Ví dụ về mã hóa cây .......................................................................................27 Hình 2.6 Lai ghép giữa hai cá thể ..................................................................................28 Hình 2.7 Lai ghép giữa hai cá thể ..................................................................................28 Hình 2.8 Đột biến một nhiễm sắc thể ............................................................................29 Hình 2.9 Đột biến một nhiễm sắc thể tại một điểm và hai điểm ...................................30 Hình 2.10 Sơ đồ quá trình tính toán của thuật toán di truyền .......................................32 Hình 3.1 Ví dụ bảng phân rã gồm 8 công việc được đánh chỉ số từ 0 tới 7 ..................36 Hình 3.2 Biểu diễn thứ tự công việc bằng mảng một chiều nguyên không âm ............37 Hình 4.1 Mô hình các thành phần trong chương trình demo luận văn ..........................49 Hình 4.2 Mô hình quan hệ cơ sở dữ liệu .......................................................................51 Hình 4.3 Mô hình thực thể liên kết................................................................................52 Hình 4.4 Màn hình các chức năng Add-in ....................................................................59 Hình 4.5 Tạo project từ trình đơn Visual studio............................................................59 Hình 4.6 Chọn loại dự án là Project 2010 Add-in .........................................................60 Hình 4.7 Solution explorer của dự án ............................................................................60 Hình 4.8 class ThisAddIn ..............................................................................................61 Hình 4.9 Đồ thị thứ tự công việc được vẽ lại bằng phần mềm demo luận văn .............66 Hình 4.10 Truy cập tính năng tạo mới database từ menu ............................................67 Hình 4.11 Chọn tên database và lưu lại ........................................................................68 Hình 4.12 Chọn mở database từ menu .........................................................................68 Hình 4.13 Mở danh sách dự án từ menu ......................................................................69 Hình 4.14 Danh sách dự án ...........................................................................................69 Hình 4.15 Màn hình edit dự án ......................................................................................70 Hình 4.16 Màn hình tạo mới dự án ...............................................................................70 Hình 4.17 Vào chức năng quản trị Resource type từ menu...........................................70 Hình 4.18 Vào chức năng quản trị Resource từ menu ..................................................71 Hình 4.19 Màn hình quản trị tài nguyên.......................................................................71 Hình 4.20 Truy xuất màn hình đồ họa quản lý task từ menu ........................................72 Hình 4.21 Màn hình quản lý task ..................................................................................73 Hình 4.22 Xem danh sách tasks ....................................................................................73 Hình 4.23 Danh sách tasks trong dự án .........................................................................74 Hình 4.24 Màn hình estimate task .................................................................................75 Hình 4.25 Combobox công việc ....................................................................................75 10 Hình 4.26 Màn hình tùy chọn các tham số giải thuật di truyền ....................................76 Hình 4.27 Đồ thị hàm fitness qua các thế hệ .................................................................76 Hình 4.28 Xem giá cá thể tốt nhất của thế hệ................................................................77 Hình 4.29 Xem chi tiết cách chỉ định tài nguyên thực hiện công việc ..........................77 Hình 4.30 Thực hiện chức năng lưu dữ liệu từ menu ....................................................78 Hình 4.31 Thực hiện chức năng nạp dữ liệu từ menu ...................................................78 Hình 4.32 Chỉ định vị trí file dữ liệu cần lưu. ...............................................................79 Hình 4.33 Các chức năng dùng lập kế hoạch bằng giải thuật di truyền ........................79 Hình 4.34 Lựa chọn Line mode trên màn hình đồ họa công việc .................................80 Hình 4.35 Show tooltip – hiển thị thông tin chi tiết về một task...................................80 Hình 4.36 Màn hình đồ họa công việc được vẽ thêm lưới mờ ......................................81 Hình 4.37 Hiển thị điểm bắt đầu đồ thị công việc .........................................................81 Hình 4.38 Hiển thị điểm kết thúc công việc ..................................................................82 Hình 4.39 Hiển thị tên và chỉ mục công việc trên màn hình đồ họa .............................82 Hình 4.40 Đồ thị finess kiểu chọn lọc Elite...................................................................83 Hình 4.41 Đồ thị finess kiểu chọn lọc Elite và giữ lại cá thể tốt nhất ...........................83 Hình 4.42 Đồ thị finess kiểu chọn lọc Elite và local search ..........................................84 Hình 4.43 Đồ thị finess kiểu chọn lọc Elite và thực hiện đồng thời lưu lại phần tử tốt nhất của thế hệ trước và thực hiện local seach ..............................................................85 Hình 4.44 Biểu đồ gantt chart........................................................................................88 Hình 4.45 Biểu đồ sử dụng tài nguyên trong công việc ................................................89 11 DANH MỤC BẢNG BIỂU Bảng 1.1 Các hoạt động của quản lý dự án ...................................................................19 Bảng 1.2 Các kế hoạch của dự án..................................................................................22 Bảng 4.1 Bảng phân rã công việc dự án và kế hoạch tài nguyên ..................................62 Bảng 4.2 Bảng loại tài nguyên ......................................................................................66 Bảng 4.3 Bảng tài nguyên phân loại theo loại tài nguyên .............................................66 Bảng 4.4 Bảng kết quả chạy thuật toán .........................................................................85 Bảng 4.5 Bảng lập lịch thực hiện công việc ..................................................................85 12 MỞ ĐẦU Hiện nay quản trị dự án ngày càng được ứng dụng rộng rãi trong các ngành nghề xã hội, trong đó có hoạt động quản lý dự án phần mềm. Cùng với sự phức tạp và đa dạng của phần mềm, hoạt động quản lý dự án phần mềm ngày càng tinh vi và phức tạp hơn. Trong đó nổi bật lên là vấn đề lập kế hoạch và phân bổ nguồn lực trong dự án. Với những dự án ít đầu việc và ít người tham gia thì vấn đề lập kế hoạch và lập lịch dự án một cách thủ công sẽ không đáng ngại. Nhưng với những dự án lớn, có nhiều đầu việc phức tạp, số lượng nhân công (nguồn lực, tài nguyên) tham gia vào dự án lớn và cónhiều biến động,khi đó vấn đề lập kế hoạch, lập lịch dự án sẽ gặp khó khăn. Người làm kế hoạch sẽ phải tốn nhiều thời gian để tiến hành sửa đổi kế hoạch, lập lịch lại mỗi khi có sự biến động về nhân sự (hay rộng hơn là thay đổi về nguồn lực thực hiện dự án). Như vậy, vấn đề cấp thiết phải làm sao tự động được khâu này, để giảm thiểu sức người cũng như nâng cao chất lượng khâu này. Trong trí tuệ nhân tạo “Giải thuật di truyền” đã được ứng dụng rộng rãi đề giải quyết nhiều bài toán phức tạp. Trong đó có các bài toán về lập lịch, lập kế hoạch.Việc áp dụng giải thuật di truyền nhằm làm tối ưu hóa vấn đề lập kế hoạch và phân bổ nguồn lực trong dự án phần mềm đã và đang được nghiên cứu cải tiến rất nhiều trên thế giới. Trong luận văn này tôi đặt trọng tâm tìm hiểu giải thuật di truyền và áp dụng vào lập lịch thực hiện các công việc trong dự án phần mềm với sự giới hạn về tài nguyên thực hiện các công việc trong dự án. Các kiến thức về lập lịch trong quản lý dự án phần mềm, kiến thức về giải thuật di truyền, cách áp dụng giải thuật di truyền để tự động lập lịch dự án cũng như các kỹ năng lập trình xây dựng ứng dụng hoàn chỉnh bước đầu có thể quản lý dự án và tự động chọn lựa phương án tối ưu để lập lịch dự án được học viên trình bày chi tiết trong luận văn vàđược chia thành 4 chương sau đây: Chƣơng 1. TỔNG QUAN VỀ QUẢN LÝ DỰ ÁN PHẦN MỀM Chương này giới thiệu về dự án phần mềm và quản lý dự án phần mềm. Qua chương này ta thấy được phần mềm cũng như các tiến trình, công cụ quản lý phần mềm ngày càng phức tạp. Do vậy cần phải tìm cách tự động hóa càng nhiều khâu trong quản lý dự án càng tốt. Trong chương này cũng chỉ ra là có thể áp dụng giải thuật di truyền vào quản lý dự án phần mềm ở bước lập lịch biểu, gán nguồn lực thực hiện dự án. Chƣơng 2. GIẢI THUẬT DI TRUYỀN VÀ CÁC ỨNG DỤNG Chương này sẽ cho người đọc một cái nhìn tổng quan về giải thuật di truyền và các ứng dụng của nó trong thực tế, qua đó người đọc có thêm hiểu biết về các vấn đề mã hóa giải thuật di truyền. Giúp người đọc có thể vận dụng những kiến thức ở chương này để giải quyết các vấn đề của mình. 13 Chƣơng 3. ỨNG DỤNG GIẢI THUẬT DI TRUYỀN ĐỂ GIẢI QUYẾT BÀI TOÁN LẬP LỊCH TRONG QUẢN LÝ DỰ ÁN PHẦN MỀM Chương này đưa ra các bước cụ thể cách dùng giải thuật đi truyền vào bài toán lập lịch trong quản trị dự án phần mềm và phát triển các thuật toán di truyền: mã hóa, lai tạo, độ biến, chọn lọc để vận dụng giải quyết bài toán lập lịch với ràng buộc hạn chế về nguồn lực thực hiện dự án. Chƣơng 4. XÂY DỰNG ỨNG DỤNG Dựa vào các kiến thức tìm hiểu ở các chương trên, chương này giới thiệu về cách tạo ứng dụng demo, hướng dẫn sử dụng ứng dụng này trong việc lâp lịch tự động. Giới thiệu tới người đọc framework giải thuật di truyền AForge.NET, cách sử dụng framework này trong việc viết chương trình demo. Giới thiệu sơ lược về cách lập trình Add-ins cho phần mềm Microsoft Project và kết hợp giữa công cụ lập lịch tự động với phần mềm này. 14 Chương 1. TổNG QUAN Về QUảN LÝ Dự ÁN PHầN MềM 1.1. Định nghĩa dự án,quản lý dự án phần mềm 1.1.1. Dự án là gì Có rất nhiều cách định nghĩa một dự án, chung quy lại dự án là quá trình tạo ra sản phẩm hay dịch vụ. Do vậy các định nghĩa dự án như sau đều được chấp nhận:Dự án là một quá trình gồm các công việc, nhiệm vụ có liên quan với nhau, được thực hiện nhằm đạt được mục tiêu đã đề ra trong điều kiện ràng buộc về thời gian, nguồn lực và ngân sách. Hoặc định nghĩa dự án là một nhiệm vụ cần hoàn thành để có được một sản phẩm, dịch vụ duy nhất trong một thời hạn đã cho với kinh phí dự kiến. Hoặc dự án là một sự cố gắng nhất thời để tạo sản phẩm dịch vụ[5]. Cũng giống như các dự án thông thường, dự án phần mềmmang những đặc điểm cơ bản như sau: - Mỗi dự ánphải có một hoặc một số mục tiêu rõ ràng do dự ánlà một quá trình tạo ra kết quả cụ thể. - Mỗi dự án đều có một thời hạn nhất định, toàn bộ thời gian của dự án được chia thành các giai đoạn: Giai đoạnkhởi đầu, giai đoạn triển khai và giai đoạn kết thúc. Thời gian thực hiện dự án được chỉ định không được vượt quá một khoảng thời gian nhất định (ví dụ không quá một tháng, một năm, hai năm…). Thời gian thự hiện dự án được ước lượng thông qua các tính năng của sản phẩm (kết quả của dự án) mà khách hàng yêu cầu và được sự đồng ý của khách hàng. Để đảm bảo dự án hoàn thành theo đúng thời gian cho phép, bộ phận quản trị dự án cần áp dụng các công cụ, phương pháp quản lý dự án phù hợp cho từng loại hình dự án nhằm đảm bảo dự án hoàn thành đúng tiến độ đã đề ra. - Mỗi dự án đều có sử dụng nguồn lực và nguồnlực này bị hạn chế. Các nguồn lực đó bao gồm nhân lực, nguyên vậtliệu, ngân sách. Do các nguồn lực này là hạn chế nên phải có phương pháp quản trị và sử dụng các nguồn lực này trong dự án một cách hợp lý. - Giữa các dự án, không có sự lặp lại hoàn toàn giữa các dự án. Ví dụ như giữa hai dự án hoàn toàn giống nhau về sản phẩm đầu ra, quy trình phát triển nhưng có yếu tố nhân lực vật lực hoặc thời gian triển khai dự án khác nhau, do vậy giữa hai dự án không có sự trùng lặp hoàn toàn. Với các dự án phần mềm thì có nhiều điểm thuận lợi hơn các dự án khác. Những điểm thuận lợi mà dự án phần mềm có được như: - Sản phầm của dự án dễ sửa đổi hơn sản phẩm vật chất khác. Với dự án phần mềm khi có yêu cầu sửa đổi sản phẩm thì đội phát triển sẽ sửa đổi mã nguồn và biên dịch thành chương trình chạy và gửi lại khách hàng. Nhưng với các sản 15 - - - - phẩm thông thường ví dụ như chiếc tivi, nếu khách muốn đổi các thông số trên chiếc tivi này, muốn có một số tính năng mới thì rất khó có thể làm được điều này. Các pha của vòng đời dự án rõ ràng. Vòng đời chuẩn của quản lý dự án gồm 4 pha : Xác định dự án, Lập kế hoạch, Thực hiện và cuối cùng là Đóng dự án. Có thể có nhiều giải pháp cho một yêu cầu. Ví dụ cùng một yêu cầu xây dựng phần mềm kế toán có thể có hai giải pháp thực hiện vấn đề này, giải pháp thứ nhất là xây dựng phần mềm sử dụng online qua internet, giải pháp thứ hai là xây dựng phần mềm offline, không nhất thiết phải làm sao để có nhiều người dùng truy xuất một lúc với giải pháp offline.Tùy vào giải pháp cụ thể mà đội phát triển dự án sẽ có những phương án nguồn lực cụ thể để hoàn thành dự án, như với giải pháp xây dựng phần mêm có thể sử dụng online qua internet thì cần phải chọn nhân lực có các kỹ năng về lập trình web, ngược lại giải pháp offline thì cần các nhân lực có kỹ năng về lập trình ứng dụng window. Định hình sản phẩm của dự án phần mềm không cứng nhắc miễn là đáp ứng được yêu cầu. Như ở ví dụ trên đã đưa ra về việc xây dựng phần mềm kế toán, đội phát triển có thể định hình sản phẩm theo hai hướng là phần mềm được sử dụng qua internet hoặc không cần kết nối qua internet miễn là phần mềm sao đáp ứng được các tính năng cần có của một phần mềm kế toán mà khách hàng yêu cầu. Có nhiều công cụ trợ giúp và các công cụ này ngày càng tốt hơn mạnh hơn. Đối với các dự án phần mềm các công cụ trợ giúp ngày càng mạnh, có thể kế đến các công cụ quản lý mã nguồn, công cụ hỗ trợ quản lý yêu cầu, công cụ quản lý lỗi, các công cụ hỗ trợ lập trình như Microsoft visual studio 2001, các công cụ quản lý cơ sở dữ liệu…Nhờ có các công cụ này mà các dự án phần mềm ngày càng được rút ngắn thời gian phát triển mà vẫn đảm bảo chất lượng phần mềm và làm hài lòng khách hàng. Dự án phần mềm còn có đăc điểm nữa là cho phép bộ phận triển khai dự án vận dụng nhiều giải pháp: công nghệ, quản lý vào quản lý dự án. Sản phẩm của dự án phần mềm là phần mềm bao gồm chương trình (mã máy) và dữ liệu và tài liệu hướng dẫn, sản phẩm phần mềm mang các đặc trưng khác so với các sản phẩm của dự án thông thường: - Sản phẩm phần mềm là vô hình, không cầm nắm được như các sản phẩm thông thường. Sản phẩm phần mềm được lưu trữ trên máy tính bao gồm chương trình, cơ sở dữ liệu và các tài liệu hướng dẫn sử dụng. Khi sử dụng sản phẩm phần mềm cần phải có máy tính, người sử dụng sản phẩm phần mềm cũng cần phải có một số kiến thức nhất định về công nghệ thông tin, cần phải biết cách sử dụng máy tính. 16 - Cùng một yêu cầu nhưng không xác định duy nhất sản phẩm đầu ra. Khi mà khách hàng yêu cầu xây dựng phần mềm thì mỗi đội phát triển sẽ cho ra một sản phẩm khác nhau, có thể có những khác nhau về giao diện, quy trình nghiệp vụ, tính năng sản phẩm. Những sự khác nhau này vẫn cần phải đảm bảo sản phẩm làm ra phải thỏa mãn yêu cầu và làm hài lòng khách hàng. - Các nguyên tắc kỹ nghệ để làm ra phần mềm hoàn toán khác với các nguyên tắc tạo ra sản phẩm thông thường(như cơ, điện...). - Sản phẩm phần mềm chịu nhiều yếu tố biến động hơn các sản phẩm khác, các yếu tố biến động như công nghệ, môi trường, nghiệp vụ và nguồn lực ảnh hưởng trực tiếp tới chất lượng phần mềm. - Nguyên liệu đầu vào để sản xuất phần mềm cũng rất đặc trưng, nguyên liệu đầu vào có thể là các sản phẩm phần mềm khác, các gói thư viện phần mềm, còn một nguyên liệu rất trừu tượng đó là chất sám. Dự án phần mềm cũng giống như các loại dự án khác về các nguyên nhân gây nên sự thất bại của dự án. Các nguyên nhân thất bại như: - Dự án không có tính thực tế và sản phẩm không khớp với yêu cầu khách hàng - Dự án không hoàn thành đúng hạn dẫn đến sự không hài lòng của khách hàng làm cho khách hàng có thể kết thúc dự án - Chi phí dự án bị vượt quá dự toán - Khi lập kế hoạch người có thẩm quyền đã ước tính không chính xác nguồn lực cần thiết cho dự án - Xác định yêu cầu hệ thống không đúng - Báo cáo tình trạng dự án sơ sài - Dự án không thực hiện quản lý độ rủi ro - Việc giao tiếp khách hàng, người sử dụng và người phát triển dự án không tốt dẫn tới hiểu sai yêu cầu khách hàng - Dự án sử dụng công nghệ lạc hậu - Không có khả năng xử lý độ phức tạp của dự án - Phát triển thực hành không có hệ thống - Thiếu kinh nghiệm trong việc quản lý dự án - Các bên liên quan mang tính chính trị - Các áp lực mang tính thương mại Nhìn lại lịch sử về các dự án phần mềm, trong giai đoạn từ những năm 1970 và những năm 1980 ngành công nghiệp phần mềm phát triển như vũ bão,do sản xuất phần mềm giai đoạn này dễ hơn và giá thành rẻ hơn so với sản xuất phần cứng vì vậy ngành công nghiệp sản xuất phần mềm nhanh chóng phát triển trong giai đoạn từ thập niên 1970 đến thập niên 1980. Các công ty cũng đã ứng dụng các phương thức quản lý phần mềm, trong giai đoạn này các phương pháp quản lý phần mềm được đưa ra sử dụng luôn, chưa qua quá trình kiểm thử thực tế nên hiệu quả không được tốt, đặc biệt là sự không khớp giữa đặc tả người dùng và phần mềm được chuyển giao cho khách hàng, 17 dẫn đến một loạt các nguyên nhân thất bại của dự án phần mêm kể trên. Để tránh các vấn đề trên, các phương thức quản lý dự án phần mềm tập trung vào làm rõ các yêu cầu người dùng theo mô hình hình thác nước. Hiện này phần mềm máy tính đã được ứng dụng rộng khắp vào hầu như tất cả các hoạt động sản xuất, trong mọi ngành kinh tế, xã hội. Do vậy các phần mềm hiện đại ngày nay nảy sinh nhiều vấn đề mới mà các nhà quản lý cần phải quan tâm, hoạch định để giải quyết các vấn đề này. Các vấn đề của phần mềm bao gồm: - Chi phí liên quan đến phần mềm ngày càng tăng.Do phần mềm ngày càng phức tạp và khó, với những phần mềm phức tạp và khó đòi hỏi người quản trị phải có kỹ năng nhất định để đảm bảo dự án phần mềm, và những người trong đội phát triển cũng phải có kỹ năng ở mức độ cho phép để tham gia dự án. Đó là một trong những nguyên nhân dẫn đến chi phí liên quan ngày càng tăng. - Các yêu cầu của khách hàng thì càng ngày càng nhiều. Do phần mềm càng ngày càng phức tạp, dẫn đến tính năng phần mềm nhiều và phức tạp - Quy mô, độ phức tạp ngày càng lớn. - Yêu cầu hiệu năng phần mềm ngày càng tăng theo sự tăng trưởng của phần cứng và nhu cầu người dùng. - Phần mềm ngày càng lớn, nhiều người tham gia thực hiện, vấn đề truyền thông, quản lý ngày càng quan trọng (một ví dụ là hệ điều hành Window2000 cần đến 5.000 người tham gia). Với những vấn đề nổi cộm ở trên ta thấy việc cấp thiết phải có những phương pháp để quản lý các dự án phần mềm hiệu quả. Ngày nay trên thế giới các nhà hoạch định chiến lược, các công ty lớn, các nhà nghiên cứu trong các viện, các trường đại học đã tập chung nghiên cứu tìm tòi, cải tiến các phương pháp, quy trình, cải tiến công cụ quản lý dự án phần mềm. Nhờ áp dùng các kết quả nghiên cứu, công cụ mới mà đã từng bước giải quyết được các vấn đề khó khăn trên của dự án phần mềm. 1.1.2. Thế nào là quản trị dự án Quản lý dự án là việc áp dụng kiến thức, phương pháp, kỹ thuật, công cụ và tổ chức các hoạt động nhằm tạo ra sản phẩm đáp ứng yêu cầu đã cho. Hoạt động quản lý dự án phần mềm bao gồm: lập kế hoạch, triển khai, theo dõi, giám sát, đánh giá và điều chỉnh. Vòng đời chuẩn của quản lý dự án gồm 4 pha sau: Xác định dự án Lập kế hoạch Khởi tạo dự án Thực hiện Đóng dự án 18 Hình 1.1 Vòng đời chuẩn của quản lý dự án - - - Giai đoạn xác định dự án: Giai đoạn này bắt đầu với công bố dự án cho đến khi các tài liệu dự án được các bên tham gia thông qua. Kết quả của giai đoạn này là một hoặc nhiều dự án được chọn, các tài liệu thông tin dự án được hoàn thành và làm cơ sở để triển khai hoặc mời thầu dự án (với các dự án lớn). Lập kế hoạch: Tạo các kế hoạch dự án, trong giai đoạn này có thể thay đổi tài liệu dự án ở bước xác định dự án nếu như phù hợp và được các bên thông qua. Thực hiện: Triển khai các kế hoạch dự án đã thông qua. Giai đoạn này dựa vào kết quả ở bước Lập kế hoạch, bộ phận quản trị tiến hành lập lịch biểu chi tiết các kế hoạch và tiến hành thực hiện các công việc, giám sát các công việc thực hiện đúng tiến độ đã đề ra. Việc lập lịch biểu có thể làm tự động bằng chương trình máy tính, có thể dùng giải thuật di truyền để tìm ra phương án lập lịch tối ưu. Đóng dự án: Công việc tiến hành bao gồm: chuyển dự án sang khâu bảo trì, tiến hành các thủ tục kết thúc với khách hàng, đánh giá, rút kinh nghiệm về dự án, tiền hành lưu trữ tài liệu phục vụ cho dự án tiếp theo. Quản lý dự án tập chung vào các nội dung: Quản lý công việc, quản lý tiến độ, quản lý tài chính, quản lý nhân lực, quản lý nguồn lực, quản lý chất lượng. Việc quản lý dự án sẽ gặp phải nhiều thách thức như thách thức nhân lực, công việc, ước lượng, tổ chức, quản lý và kiểm soát. - Nhân lực:Thách thức từ khâutuyển chọn(từ đâu? kỹ năng cần có là gì?), đến khâu sử dụng (vào đâu? công việc gì?). Vàkhi dự án kết thúc, không cần dùng tới thì phải sắp xếp nhân lực hợp lý. - Công việc và ước lượng: Khi ước lượng công việc người quản trị cần phải xác định đủ việc, ước lượng đúng khối lượng, chi phí nguồn lực, thời gian cần thiết để hoàn thành công việc. - Tổ chức và quản lý: Tùy theo tổ chức hiện có và mục tiêu cần đạt được của dự án phần mềm mà tiến hành tổ chức bộ phận quản lý dự án phần mềm hợp lý. Các cách tổ chức này là tạm thời, tồn tại cho đến khi dự án kết thúc. Ứng với một dự án mà thành viên tham gia sẽ được xác lập một thẩm quyền nhất định, và mối quan hệ giữa các thành viên cũng thay đổi theo từng dự án. - Kiểm soát: Do công việc có nhiều thay đổi, ví dụ như thay đổi về nhân lực, thay đổi do yêu cầu khách hàng,nên kế hoạch công việc và việc thực hiện kế hoạch này không ổn định, luôn thay đổi. Người quản trị cần nắm thông tin kịp thời và điều chỉnh cho phù hợp với yêu cầu thực tế, cần phải ra quyết định chính xác, phù hợp và đạt đồng thuận cao trong nhóm. 19 - Việc quản lý qua các thể hiện, không nhìn thấy trực tiếp:Các thể hiện ở đây là tài liệu và chương trình, chúng rất đa dạng và thiếu thước đo, các dự án phần mềm khác nhau lại dùng các chuẩn khác nhau, việc áp dụng chuẩn tài liệu rất vất vả và mất nhiều công sức. - Thách thức chất lượng: Chất lượng phần mềm phụ thuộc vào rất nhiều yếu tố như: quy trình có phù hợp với thực tế hay không và có mang lại hiệu quả không. Công nghệ và công cụ có phù hợp với sản phẩm và môi trường hay không. Kiểm soát thay đổi, các thay đổi có được kiểm soát thường xuyên hay không và phải đảm bảo rằng các thay đổi phải được thực thi nghiêm túc tránh việc bỏ sót. - Khống chế rủi ro:Rủi ro là các sự kiện khiến dự án thất bại, ví dụ: chi phí quá cao, thời gian quá dài, tính năng quá kém. Rủi ro trong phần mềm có rất nhiều và hay xảy ra, do vậy việc khống chế rủi ro phải được quan tâm, đảm bảo được rằng phải biết được các rủi ro và lập kế hoạch phòng chống cụ thể. Nhiệm vụ của người quản lý dự án trong việc khống chế rủi ro bao gồm: phải xác định, dự đoán được rủi ro, phân tích rủi ro (khả năng và thiệt hại), đưa ra giải pháp để khống chế rủi ro (quản lý rủi ro), giám sát (theo dõi sự xuất hiện, tác động của rủi ro) và thực hiện các biện pháp quản lý. Quản lý dự án phần mềm là việc quản lý toàn diện các mặt của hoạt động trên dự án phần mềm để đảm bảo sản xuất ra phần mềm đúng chất lượng và yêu cầu của khách hàng. Các hoạt động quản lý gồm mục tiêu thực hiện và chi tiết nội dung được liệt kê trong bảng dưới đây: Bảng 1.1 Các hoạt động của quản lý dự án STT Hoạt động Mục tiêu 1 Quản lý phạm vi Đảm bảo thực hiện đúng công (thay đổi) việc đã định 2 Quản lý thời gian Đảm bảo hoàn thành hạng mục công việc trong thời hạn dự kiến 3 Quản lý chi phí Đảm bảo huy động, sử dụng ngân sách đáp ứng yêu cầu 4 Quản lượng lý chất Đảm bảo sản phẩm đạt yêu cầu chất lượng đề ra Nội dung -Xác định giai đoạn - Xác định công việc - Xác định sản phẩm giao - Kiểm soát thay đổi -Xác định thời gian hoàn thành công việc - Xác định trình tự thực hiện - Lập lịch thực hiện -Kiểm soát thực hiện theo lịch - Lập kế hoạch huy động ngân sách -Ước tính chi phí - Phân phối ngân sách - Kiểm soát chi tiêu - Xác định các chuẩn chất lượng, độ đo, quy trình kiểm định 20 Tìm và sử dụng người tham gia một cách có hiệu quả 5 Quản lý nhân lực 6 Quản lý mua sắm Đảm bảo phục vụ, trợ giúp tốt thuê nhất mọi hoạt động dự án 7 Quản lý thông tin Đảm bảo thu thập, lưu trữ đủ và truyền thông thông tin và cung cấp kịp thời 8 Quản lý rủi ro 9 Quản lý cấu hình Đảm bảo kiểm soát mọi thay đổi, (và thay đổi) đồng bộ sản phẩm Đảm bảo ngăn ngừa và hạn chế thiệt hại do sự cố xảy ra - Kiểm định chuẩn cho mỗi sản phẩm - Quản lý thay đổi chất lượng - Xây dựng đội dự án - Lựa chọn, phân công công việc - Phát triển bồi dưỡng nguồn lực - Thúc đẩy, động viên, phối hợp - Xác định nhu cầu trợ giúp - Lập kế hoạch mua sắm, trang bị -Tìm nhà cung cấp và đặt hàng - Quản lý hợp đồng mua sắm - Tổ chức việc cung cấp trợ giúp - Xác định nhu cầu thông tin thành viên - Xác định hình thức trao đổi - Xác định dữ liệu thông tin lưu trữ - Quy định hình thức báo cáo, lưu trữ, cung cấp thông tin - Nhận diện các rủi ro - Xác định khả năng xuất hiện, phân tích tác động đến dự án - Lập kế hoạch phòng chống - Kiểm soát, xử lý - Xác định khoản mục cấu hình - Xây dựng triển khai quy trình - Giám sát thực hiện quy trình và lưu trữ cấu hình, phiên bản Ngoài các hoạt động từng mặt người quản trị dự án cần quản lý chung để phối hợp các quản lý cụ thể để đảm bảo dự án được thực hiện tốt nhất. Trong các hoạt động trên thì hai hoạt động: Quản lý rủi ro và quản lý cấu hình là đặc thù riêng biệt của quản lý dự án phần mềm. Cònquản lý thời gian, quản lý chi phí, quản lý chất lượng là đặc biệt quan trọng của quản lý dự án phần mềm. Trong phạm vi đề tài này học viên quan tâm tìm hiểu kỹ về hoạt động Quản lý thời gian của dự án để tìm cách áp dụng kiến thức về giải thuật di truyền áp dụng vào các bước lập lịch dự án đảm bảo thời gian thực hiện toàn bộ dự án là tối ưu nhất. Hoạt động quản lý thời gian nhằm mục đích đảm bảo hoàn thành các hạng mục công việc
- Xem thêm -