PHÁT BIỂU VẤN ĐỀ
Giới thiệu đề tài
Xây dựng dự án phần mềm thành công là ưu tiên hàng đầu của mọi doanh nghiệp Vai trò và kinh nghiệm của người quản lý dự án phần mềm được coi là yếu tố thiết yếu, đóng vai trò như một kiến trúc sư trong việc đảm bảo sự thành công của dự án.
Việc hoàn toàn phụ thuộc vào hiểu biết và kinh nghiệm của người quản lý dự án không thể đảm bảo chất lượng cho dự án phần mềm.
Quản lý chất lượng phần mềm là một lĩnh vực quan trọng nhưng vẫn cần được nghiên cứu và cải thiện, đặc biệt để khắc phục những điểm yếu của các công ty phần mềm Việt Nam Mặc dù một số công ty đã đạt chuẩn quốc tế CMM/CMMI, nhằm nâng cao năng lực và quản lý chất lượng, nhưng số lượng này vẫn còn hạn chế và chủ yếu tập trung vào các công ty gia công cho thị trường nước ngoài.
Việc bổ sung công cụ hỗ trợ cho người quản lý dự án theo tiêu chuẩn quốc tế là cần thiết để đảm bảo chất lượng và nâng cao tỷ lệ thành công của dự án.
Mục đích nghiên cứu
Theo báo cáo của nhóm Standish, hơn 80% các dự án phần mềm không thành công do vượt quá kinh phí, giao hàng trễ hoặc thiếu chức năng cần thiết Thêm vào đó, khoảng 30% dự án phần mềm bị hủy trước khi hoàn thành Do đó, nghiên cứu các phương pháp quản lý dự án phần mềm hiệu quả và thành công là vô cùng cần thiết trong bối cảnh hiện nay.
Mục tiêu nghiên cứu là áp dụng công nghệ và kỹ thuật để tối ưu hóa quản lý dự án phát triển phần mềm, tập trung vào các tiêu chí như chi phí, chất lượng, thời gian hoàn thành và quản lý rủi ro.
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 2
Ý nghĩa khoa học và thực tiễn
Nghiên cứu tích hợp các nguyên tắc của hệ hỗ trợ ra quyết định và giải thuật tối ưu hóa đa mục tiêu, kết hợp với kiến thức quản lý dự án và các giai đoạn phát triển phần mềm, nhằm phát triển sản phẩm phần mềm phù hợp với nhu cầu thị trường.
Trong bối cảnh cạnh tranh ngày càng khốc liệt, quản lý dự án phần mềm không thể chỉ dựa vào các công cụ theo dõi và thống kê thông thường Hiện nay, nhiều dự án vẫn được quản lý thủ công bởi người quản lý dự án, nhưng để nâng cao hiệu quả, cần áp dụng thêm nhiều công cụ hỗ trợ hiện đại hơn.
Nghiên cứu này nhằm đưa ra khuyến nghị và lựa chọn các quyết định tối ưu trong quản lý phát triển phần mềm, bao gồm phân công và sắp xếp thứ tự công việc, cân đối chi phí và rủi ro, cũng như bổ sung tài nguyên cho dự án.
Nghiên cứu thành công sẽ giảm nhẹ khối lượng công việc cho người quản lý dự án, hỗ trợ hiệu quả trong quản lý hàng ngày và nâng cao chất lượng quản lý Nó cũng cung cấp công cụ hữu ích cho việc huấn luyện nhân viên quản lý dự án mới, nâng cao tay nghề và kinh nghiệm thông qua việc sử dụng phần mềm Cuối cùng, nghiên cứu sẽ tạo ra sản phẩm giúp đảm bảo tỉ lệ thành công cao hơn cho các dự án triển khai.
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 3
TỔNG QUAN CÁC CHƯƠNG TRÌNH NGHIÊN CỨU CÓ LIÊN QUAN
Chọn lựa các dự án bằng cách sử dụng các công cụ tối ưu hóa hệ hỗ trợ ra quy ết định, Eric D Brown
Chọn lựa các dự án và quản lý các hồ sơ dựa trên đa tiêu chí:
- Ngân sách, giá trị chiến lược, các yêu cầu cá nhân, …
Các công cụ tối ưu hóa hỗ trợ tổ chức trong việc lựa chọn phối hợp hồ sơ dự án một cách hiệu quả, nhằm tối đa hóa giá trị lợi ích từ các nguồn lực như ngân sách và nhân sự.
Một hệ hỗ trợ ra quyết định được xây dựng bằng cách sử dụng kết hợp giữa Excel và gói phần mềm mô hình tối ưu hóa LINGO
Mô hình này giả định rằng tiền sẽ được chi trả trong suốt thời gian của dự án, tất cả các dự án bắt đầu và kết thúc trong cùng một khoảng thời gian, và độ ưu tiên của các dự án sẽ không thay đổi trong suốt thời gian đó.
Thiết kế và xây dựng hệ hỗ trợ quyết định về môi trường của ManelPoch,
ManelPoch, Joaquim Comas, Ignasi Rodrıguez-Roda, Miquel
Phân tích vấn đề môi trường bao gồm thu thập và phân tích dữ liệu, truy vấn tri thức, lựa chọn và thực thi các mô hình phù hợp, cũng như xác nhận tính hợp lệ của Hệ thống hỗ trợ quyết định (EDSS) Quá trình này giúp thiết kế các hệ thống hỗ trợ ra quyết định hiệu quả và lập kế hoạch cho các hành động liên quan đến môi trường.
Theo Fox và Das (2000), hệ thống hỗ trợ ra quyết định là công cụ máy tính giúp người ra quyết định lựa chọn độ tin cậy và các hoạt động của các phương án, thông qua việc áp dụng kiến thức về miền quyết định và đưa ra khuyến nghị cho các lựa chọn khác nhau.
Việc ứng dụng công nghệ AI mang lại khả năng tiếp cận trực tiếp với các chuyên gia, đồng thời cung cấp sự linh hoạt trong việc hỗ trợ quá trình ra quyết định và học hỏi Sự tích hợp này không chỉ nâng cao hiệu quả công việc mà còn thúc đẩy sự phát triển bền vững trong các lĩnh vực khác nhau.
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 4 cho thấy rằng việc kết hợp các mô hình số học và thống kê trong một hệ thống duy nhất sẽ nâng cao độ chính xác, độ tin cậy và tính hữu ích của kết quả.
Tối ưu việc phân công nhân sự bằng giải thuật di truyền và ứng dụng trong hệ hỗ trợ ra quyết định của Sou-Sen Leu , Chung-Huei Yang, Jiun-Ching Huang
Huei Yang, Jiun-Ching Huang
Giải thuật di truyền là một phương pháp tối ưu hóa hiệu quả, giúp khắc phục những hạn chế của giải thuật phân công nhân sự truyền thống Nó cho phép kết hợp tối ưu nhiều nguồn nhân lực, đồng thời xem xét các ngày bắt đầu và kết thúc công việc Người lập kế hoạch có thể tương tác với hệ thống để thực hiện các cải tiến thông qua các câu hỏi "what if".
Tối ưu hóa bằng giải thuật di truyền trong việc kiểm soát các dự án động của
Công thức tích hợp và kết hợp được sử dụng để đánh giá ước lượng, lập lịch, quản lý nguồn lực và phân tích dòng tiền Mô hình này dựa trên giả thuyết rằng có nhiều phương thức cấu thành tùy chọn cho mỗi hoạt động, với sự khác biệt từ chi phí thấp và thời gian dài đến chi phí cao và thời gian ngắn.
Giải thuật di truyền được áp dụng để tối ưu hóa tổng chi phí, với mô hình xem xét tiến trình thực tế của các hoạt động và tối ưu hóa lịch trình cho các yếu tố còn lại Điều này được thực hiện bằng cách xác định sự kết hợp tốt nhất của các phương pháp cấu thành, nhằm đảm bảo các ràng buộc của dự án được thỏa mãn.
Trong thời gian gần đây, các phương pháp điều hành dự án đặc biệt quan trọng đã được trình bày, tập trung vào việc kết hợp các tính năng của chúng để tạo ra một phân tích có giá trị Nỗ lực này nhằm cải thiện mô hình đề xuất, giúp tối ưu hóa quy trình quản lý và nâng cao hiệu quả dự án.
Hệ thống lập lịch dự án mờ dùng cho phát triển phần mềm của Maciej Hapke ,
Maciej Hapke , Andrzej Jaszkiewicz, Roman Slowinski
Hệ thống lập lịch mờ nhằm mục đích tối ưu hóa việc phân bổ nguồn lực, cụ thể là các kỹ sư phần mềm, cho các hoạt động phụ thuộc như thiết kế hệ thống, thiết kế giao diện người dùng và thực thi.
Việc lập lịch cho dự án dựa trên hai tiêu chí chính: thời gian hoàn thành và độ trễ tối đa, trong bối cảnh các thông số thời gian không chắc chắn Các thông số này bao gồm thời gian sẵn sàng, chu kỳ và ngày kết thúc của từng hoạt động Để mô hình hóa các thông số này, phương pháp số mờ L-R được áp dụng Thêm vào đó, các thủ tục tổng quát giúp chuyển đổi lập lịch mờ thành các vấn đề quyết định thông qua việc sử dụng nhát cắt alpha.
Một hệ hỗ trợ ra quyết định cho việc chọn lựa các hồ sơ dự án của Pin-Yu
Hệ hỗ trợ ra quyết định (DSS) giúp các nhà quản lý lựa chọn kế hoạch phù hợp cho dự án nghiên cứu và phát triển, với các ràng buộc về ngân sách, thời gian và nguồn lực DSS bao gồm nhiều hệ thống con với chức năng riêng biệt, trong đó lõi của hệ thống là mô hình chi phí, thực hiện phân tích cân bằng giữa thời gian và chi phí Giải thuật chọn lựa chiến lược dựa trên lập trình động cung cấp kế hoạch phát triển tối ưu cho quản lý R&D Bảng làm việc trong DSS tạo điều kiện giao tiếp hiệu quả giữa người quản lý và hệ thống, trong khi hệ thống kiểm tra dữ liệu giúp loại bỏ thông tin và kế hoạch không chắc chắn.
Kiến tạo lịch trình thực hiện dự án sử dụng giải thuật tiến hóa của Piotr Jaśkowski và Anna Sobotka
Bài báo này áp dụng giải thuật tiến hóa để tối ưu hóa chu kỳ kiến tạo dự án trong bối cảnh không kiểm soát, với thời gian thay đổi và giới hạn trong việc tái sử dụng tài nguyên như lao động, máy móc và dụng cụ Các tiến trình kiến tạo với độ phức tạp khác nhau cần được xây dựng để thiết lập thứ tự kỹ thuật, có thể thực hiện với các loại máy móc, kỹ thuật và cách sử dụng tài nguyên đa dạng.
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 6
2.8 Giải thuật di truyền đa mục tiêu dùng để tối ưu việc sử dụng tài nguyên và sắp xếp ưu tiên các ràng buộc trong lập kế hoạch dự án phần mềm của D Sundar, B Umadevi và Dr K Alagarsamy
Giải thuật di truyền đa mục tiêu (MOGA) được thiết kế nhằm tối ưu hóa việc sử dụng nhân sự bằng cách giảm thiểu chi phí, thời gian thực hiện và tối đa hóa hiệu quả Bài báo nhấn mạnh tầm quan trọng của thứ tự xử lý các ràng buộc, nhằm đạt được sự thỏa mãn tốt nhất với ít tiến trình xử lý nhất Giải thuật này áp dụng nguyên tắc di truyền, khác với các phương pháp tối ưu cổ điển thường yêu cầu nhiều lần tìm kiếm để xác định giải pháp tối ưu Pareto Hiệu quả của các phương pháp cổ điển phụ thuộc vào hình dáng của phân vùng tối ưu Pareto, độ phân rã không gian tìm kiếm và sự hiện diện của các ràng buộc.
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 7
CƠ SỞ LÝ THUYẾT
Hệ hỗ trợ ra quyết định
Hệ hỗ trợ ra quyết định là một hệ thống mở rộng, giúp phân tích dữ liệu và lập mô hình tính toán cho quyết định, đặc biệt trong các tình huống không trù tính và bất thường, nhằm hướng tới quy hoạch tương lai (Moore & Chang, 1980).
- Khả năng hỗ trợ giải quyết các vấn đề phức tạp
Hệ thống hỗ trợ quyết định (DSS) cho phép phản ứng nhanh chóng trước những tình huống bất ngờ do sự thay đổi điều kiện DSS cung cấp khả năng phân tích định lượng chi tiết trong thời gian ngắn, giúp đánh giá khách quan và kịp thời ngay cả khi có sự thay đổi thường xuyên trong các tình huống phức tạp.
- Khả năng thử một vài sách lược khác nhau dưới cấu hình khác nhau một cách nhanh chóng và khách quan
Người dùng có khả năng bộc lộ những phát kiến mới thông qua tác phẩm của mô hình và phân tích sâu rộng với câu hỏi "what if" Những phát kiến này không chỉ thúc đẩy sự sáng tạo mà còn hỗ trợ trong việc huấn luyện các nhà quản lý thiếu kinh nghiệm và nhân viên khác.
- Giao diện thân thiện: do người sử dụng tham gia vào quá trình thu thập dữ liệu và kiến tạo mô hình
Hệ thống hỗ trợ quyết định (DSS) có khả năng nâng cao kiểm soát quản lý bằng cách giám sát các mức vượt ngưỡng, từ đó cải thiện hiệu quả điều hành của tổ chức.
Áp dụng hệ thống hỗ trợ quyết định (DSS) thường xuyên có thể giúp tiết kiệm chi phí đáng kể, giảm thiểu hoặc loại bỏ các khoản chi tiêu phát sinh từ những quyết định sai lầm.
- Quyết định khách quan: quyết định tạo ra từ DSS vững chắc và khách quan hơn quyết định bằng trực giác
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 8
Hệ thống hỗ trợ quyết định (DSS) giúp nâng cao hiệu quả quản lý bằng cách giảm thiểu thời gian và công sức mà nhà quản lý cần bỏ ra trong công việc điều hành Nhờ vào DSS, nhà quản lý có thể sử dụng thời gian của mình một cách hiệu quả hơn để phân tích, quy hoạch và thực hiện các quyết định quan trọng.
- Hiệu suất của nhà phân tích được nâng cao
Hệ thống hỗ trợ ra quyết định (DSS) được thiết kế nhằm hỗ trợ các nhà quản lý trong việc lựa chọn chuỗi kế hoạch phù hợp cho các dự án nghiên cứu và phát triển (R&D), đồng thời đáp ứng các ràng buộc về ngân sách, thời gian và nguồn lực.
DSS có khả năng giả lập, dự đoán và cũng được sử dụng như là một công cụ để thông tin liên lạc, huấn luyện và trải nghiệm
3.1.3 Các thành phần của DSS
Một cách cơ bản, DSS gồm có những hệ thống con sau đây:
- Quản lý dữ liệu: bao gồm các cơ sở dữ liệu chứa các thông tin của tổ chức liên quan đến vấn đề cần quyết định
Quản lý mô hình là một gói phần mềm tích hợp các mô hình tài chính, thống kê, khoa học quản lý và các mô hình định lượng khác, nhằm cung cấp khả năng phân tích hệ thống và quản lý phần mềm hiệu quả.
- Quản lý hội thoại: gồm hệ thống giao diện, trao đổi thông tin Người sử dụng có thể giao tiếp với DSS thông qua hệ thống con này
- Người sử dụng: trực tiếp sử dụng DSS
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 9
Giải thuật tối ưu đa mục tiêu
AHP, hay Phương pháp Phân tích Phân cấp, là một kỹ thuật cấu trúc giúp tổ chức và phân tích các quyết định phức tạp Phương pháp này hỗ trợ đa mục tiêu bằng cách tính toán các tiêu chí thành các eigen vector, đồng thời sử dụng ma trận so sánh từng cặp để chuyển đổi các so sánh định tính thành định lượng.
Cơ sở dữ liệu: nội bộ và bên ngoài
Quản lý dữ liệu Quản lý mô hình
Quản lý hội thoại Ứng dụng
Hình 1 Mô hình hệ hỗ trợ ra quyết định
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 10
Giải thuật này được phát triển bởi Thomas L Saaty vào những năm 70, sau đó được nghiên cứu và phát triển đến nay
Giải thuật này có vai trò quan trọng trong việc ra quyết định nhóm và được áp dụng rộng rãi trên toàn cầu trong nhiều lĩnh vực như chính trị, kinh doanh, công nghiệp, chăm sóc sức khỏe và giáo dục.
Giải thuật AHP không chỉ giúp người ra quyết định đưa ra lựa chọn chính xác mà còn hỗ trợ trong việc tìm kiếm giải pháp phù hợp nhất với mục tiêu và mức độ hiểu biết về vấn đề Nó cung cấp một khung hợp lý và chặt chẽ để cấu trúc vấn đề quyết định, biểu diễn và lượng hóa các yếu tố liên quan, cũng như đánh giá các mối quan hệ giữa các yếu tố và mục tiêu tổng thể, từ đó đánh giá các giải pháp tiềm năng.
Giải thuật AHP cung cấp một công cụ hiệu quả để tổ chức và đánh giá các khả năng theo cấu trúc phân cấp các mục tiêu cần thỏa mãn, giúp xử lý các quyết định phức tạp Nó cho phép xác định tiêu chí lựa chọn một cách dễ dàng và hiệu quả, đồng thời trọng số và phân tích các tiêu chí này Nhờ đó, giải thuật AHP giảm thiểu đáng kể thời gian cần thiết cho các chu kỳ quyết định.
Giải thuật AHP có khả năng xử lý cả các đánh giá định tính và định lượng, mang đến một cơ chế hiệu quả để kiểm tra tính chắc chắn của các chỉ số đánh giá cũng như các lựa chọn được đề xuất bởi các thành viên.
Giải pháp AHP giúp tổ chức giảm thiểu các cạm bẫy trong quá trình ra quyết định, như thiếu tập trung, kế hoạch, sự tham gia và tính sở hữu Những yếu tố này nếu không được chú trọng sẽ dẫn đến sự xao lãng, cản trở các thành viên trong việc đưa ra quyết định đúng đắn.
3.2.3 Các bước trong giải thuật AHP
Mô hình bài toán được xây dựng dưới dạng một cây phân cấp, trong đó bao gồm các mục tiêu quyết định, các giải pháp để đạt được những mục tiêu đó và các tiêu chí dùng để đánh giá hiệu quả của các giải pháp.
Một cây phân cấp là một hệ thống tổ chức và xếp hạng các đối tượng, bao gồm người, vật và ý tưởng, trong đó mỗi thành phần, ngoại trừ nút gốc, phụ thuộc vào một hoặc nhiều thành phần khác.
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 11
Cây phân cấp AHP bao gồm một mục tiêu tổng quát, các lựa chọn hoặc giải pháp để đạt được mục tiêu đó, và các nhân tố hay tiêu chí liên quan đến khả năng đạt được mục tiêu Các tiêu chí này có thể được phân rã thành nhiều cấp độ, từ tiêu chí phụ đến các tiêu chí phụ của phụ, tùy thuộc vào yêu cầu của vấn đề.
Hình 2 Cây phân cấp AHP
Khi lựa chọn nhà lãnh đạo từ ba ứng cử viên, các yếu tố quan trọng như kinh nghiệm, giáo dục, uy tín và tuổi tác cần được xem xét Theo đánh giá của các nhà ra quyết định, Dick được coi là ứng cử viên mạnh nhất, tiếp theo là Tom và Harry.
Hình 3 Ví dụ về dùng giải thuật AHP để chọn người lãnh đạo
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 12
Khởi tạo giá trị ưu tiên cho các yếu tố trong cây phân cấp thông qua chuỗi đánh giá dựa trên so sánh đối xứng từng cặp Chẳng hạn, trong việc mua bán bất động sản, nhà đầu tư thường ưu tiên vị trí hơn giá cả, đồng thời cũng coi trọng giá cả hơn thời gian.
Khi cây phân cấp được thiết lập, người tham gia tiến hành phân tích thông qua chuỗi so sánh ma trận đối xứng, dựa trên các số liệu thập phân tại các nút Các tiêu chí được so sánh một cách đối xứng nhằm xác định mức độ quan trọng của từng mục tiêu, trong khi các giải pháp cũng được so sánh đối xứng với các tiêu chí tham khảo.
Giải thuật sử dụng eigenvector để xác định trọng số bắt đầu từ việc bình phương ma trận đối xứng Sau đó, tổng các dòng của ma trận sẽ được tính toán và tiến hành chuẩn hóa để đạt được kết quả chính xác.
Ví dụ: ta có ma trận đối xứng
Chuyển thành số thập phân:
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 13
Tính ra trọng số (eigenvector)
Nhiệm vụ quan trọng của người ra quyết định là cho trọng số ban đầu của mỗi tiêu chí chọn lựa
Tổng hợp các đánh giá thành một độ ưu tiên tổng quan trong cây phân cấp là quá trình kết hợp ý kiến của nhà đầu tư về vị thế, giá cả và thời gian Các đánh giá này được phân loại thành các thứ tự A, B, C và D, tạo thành thứ tự toàn phần cho mỗi thuộc tính.
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 14
- Kiểm tra tính chặt chẽ của các đánh giá
- Đi đến quyết định cuối cùng dựa trên kết quả của quá trình này
Phân loại các dự án phần mềm
Hình 4 Phân loại các dự án phần mềm
Nhiều dự án cùng một vị trí địa lý có thể tạo ra sự cạnh tranh và ảnh hưởng đến giá trị bất động sản Theo Turner và Speiser, việc này cần được định nghĩa rõ ràng để hiểu rõ hơn về tác động của nó.
Quản lý chương trình là một quá trình kết hợp giữa việc quản lý, hỗ trợ và thiết lập độ ưu tiên cho từng dự án, nhằm tạo ra các lợi ích bổ sung để đáp ứng sự thay đổi trong nhu cầu công việc Một số dự án có thể hoạt động độc lập, nhưng chúng vẫn liên quan đến các mục tiêu chung và chia sẻ cam kết, thông tin, nguồn lực và kỹ thuật.
Trong môi trường đa dự án đa vị trí, khoảng cách địa lý giữa các bên tham gia gây ra khó khăn trong giao tiếp giữa các nhà quản lý dự án và chương trình Việc giao tiếp trực tiếp trở nên không khả thi, dẫn đến việc chia sẻ nguồn lực cần phải được lập lịch cẩn thận hơn Một tài nguyên có thể không được yêu cầu ngay lập tức và việc di chuyển giữa các dự án ở các vị trí khác nhau trở nên phức tạp Do đó, tối ưu hóa cục bộ tại từng vị trí riêng lẻ là con đường dễ dàng hơn, trong khi tối ưu hóa toàn cục đòi hỏi nhiều nỗ lực hơn.
Dự án phân tán là một dự án duy nhất nhưng được triển khai ở nhiều địa điểm khác nhau, điều này có thể do nhiều yếu tố như khan hiếm nguồn lực, tính thuận tiện, chi phí, năng lực quản lý và chất lượng Vấn đề chính là cần tăng cường thông tin liên lạc và kết nối các phần riêng lẻ của dự án đang phát triển ở các khu vực khác nhau, đồng thời lập lịch cho các hoạt động khác nhau qua nhiều bên và cố gắng truy cập đồng thời vào các nguồn lực.
Nhiều dự án phân tán được triển khai tại các vị trí khác nhau nhưng lại do cùng một người quản lý điều hành Vấn đề quan trọng nhất là sự tương đồng giữa các dự án này, điều này có thể ảnh hưởng đến hiệu quả quản lý và phát triển của từng dự án.
Đa dự án phân tán chia sẻ cùng vị trí cho phép nhiều cá nhân tham gia vào nhiều dự án đồng thời, giúp họ nhận ra sự tương đồng và phối hợp hiệu quả hơn Việc chia sẻ cùng một vị trí đơn giản hóa quá trình làm việc và tăng cường khả năng hợp tác giữa các nỗ lực cá nhân.
Quy trình phát triển phần mềm
3.4.1 Giới thiệu Áp dụng chặt chẽ những qui trình sản xuất một cách nhất quán trong quá trình phát triển phần mềm là yếu tố quan trọng để đảm bảo chất lượng sản phẩm
RUP, hay Quy trình Phát triển Hợp lý, được đề xuất bởi Rational Software, một phần của IBM vào năm 2003 Quy trình này cung cấp một phương pháp có hệ thống để tổ chức công việc và phân công trách nhiệm trong phát triển phần mềm Mục tiêu chính của RUP là đảm bảo chất lượng sản phẩm.
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 16 lượng cao, đáp ứng được nhu cầu của người sử dụng trong một lịch trình và ngân sách có thể dự đoán được
Mô hình RUP có 2 chiều:
- Chiều ngang biểu diễn giai đoạn theo thời gian
- Chiều thẳng đứng biểu diễn các nguyên tắc
Hình 5 Mô hình RUP mô tả các giai đoạn và các nguyên tắc trong phát triển phần mềm
Mỗi giai đoạn trong một dự án thường có mức độ nỗ lực và thời gian khác nhau, tùy thuộc vào tính chất của dự án Tuy nhiên, một chu kỳ phát triển cơ bản của dự án thường được phân chia theo các giai đoạn cụ thể.
Bảng 1 Phân bố thời gian và nguồn lực của các giai đoạn
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 17
Mà có thể được mô hình hóa như sau:
Hình 6 Các giai đoạn trong quy trình phát triển phần mềm
Mục đích của giai đoạn khởi đầu là đạt được sự thống nhất giữa các bên tham gia về chu kỳ chung của dự án Đây là bước quan trọng đầu tiên trong nỗ lực phát triển dự án mới, nơi các nghiệp vụ và rủi ro liên quan đến yêu cầu được xác định rõ ràng trước khi tiến hành Đối với các dự án cải tiến hệ thống hiện có, giai đoạn này sẽ ngắn hơn nhưng vẫn cần tập trung để đảm bảo tính khả thi và giá trị của dự án.
Mục tiêu của giai đoạn này gồm:
Khởi tạo phạm vi dự án bao gồm việc xác định các điều kiện biên, tầm nhìn vận hành, tiêu chí chấp thuận, cùng với việc xác định những yếu tố cần tập trung vào trong dự án và những yếu tố không nên.
- Phân biệt những kịch bản sử dụng quan trọng của hệ thống, các ngữ cảnh vận hành cơ bản mà có thể hướng dẫn cho việc thiết kế chính
- Trình bày hay có thể là biễu diễn ít nhất một kiến trúc thích hợp với các ngữ cảnh cơ bản đó
- Ước lượng chi phí và thời gian tổng quan cho toàn dự án (những ước lượng chi tiết hơn sẽ được tiến hành trong giai đoạn sau)
- Ước lượng các rủi ro có khả năng xảy ra
- Chuẩn bị môi trường hỗ trợ cho dự án
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 18
Các hoạt động cần thiết:
Phát biểu phạm vi dự án là việc mô tả rõ ràng ngữ cảnh, các yêu cầu và ràng buộc quan trọng, từ đó xác định các tiêu chí chấp thuận cho việc hoàn thành dự án.
Lên kế hoạch và chuẩn bị các kịch bản nghiệp vụ là bước quan trọng trong quản lý dự án Việc đánh giá các giải pháp cho quản lý rủi ro, nhân sự và các thỏa hiệp về chi phí, thời gian và lợi ích sẽ giúp tối ưu hóa hiệu quả công việc.
Tổng hợp kiến trúc tiềm năng giúp đánh giá các thỏa hiệp trong thiết kế, từ đó làm, mua hoặc sử dụng lại các nguồn lực để ước lượng chi phí và thời gian hiệu quả.
Để đảm bảo sự thành công của dự án, cần chuẩn bị môi trường làm việc hợp lý, đánh giá toàn diện dự án và tổ chức một cách khoa học Việc lựa chọn các công cụ phù hợp và quyết định các phần của tiến trình cần được thực hiện cũng rất quan trọng trong quá trình triển khai dự án.
Theo RUP [10], Hình 7 miêu tả cách mà một dự án bắt đầu và cách mà các lược đồ khác nhau liên kết:
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 19
Hình 7 Phân bố các công việc trong giai đoạn khởi tạo
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 20
3.4.2.2 Giai đoạn chuẩn bị (Elaboration)
Giai đoạn chuẩn bị nhằm xác định kiến trúc hệ thống, tạo nền tảng vững chắc cho các thiết kế và nỗ lực thực thi trong giai đoạn kiến tạo.
Các mục tiêu của giai đoạn này gồm:
Để đảm bảo sự ổn định trong kiến trúc và kế hoạch, cần giảm thiểu rủi ro nhằm dự đoán chính xác chi phí và thời gian hoàn thành dự án Đối với hầu hết các dự án, giai đoạn này đánh dấu sự chuyển mình từ hoạt động nhẹ nhàng, nhanh chóng và ít rủi ro sang giai đoạn có chi phí cao và rủi ro lớn hơn.
- Chỉ rõ tất cả các rủi ro chính về kiến trúc của dự án
Việc thiết lập một kiến trúc cơ bản là rất quan trọng, vì nó giúp xác định các ngữ cảnh kiến trúc quan trọng có thể dẫn đến những rủi ro kỹ thuật hàng đầu trong dự án.
Tạo ra các mẫu thử cho các thành phần chất lượng sản phẩm, bao gồm một hoặc nhiều mẫu thử dùng một lần, giúp khám phá và giảm thiểu các rủi ro cụ thể.
Thỏa hiệp về thiết kế và yêu cầu
Các thành phần sử dụng lại được
Sản phẩm khả dĩ hay các phần mềm thử cho nhà đầu tư, khách hàng và người sử dụng
- Minh họa kiến trúc cơ bản hỗ trợ các yêu cầu của hệ thống với chi phí hợp lý và trong thời gian có thể chấp thuận được
- Thiết lập môi trường hỗ trợ Để đạt được các mục tiêu đó thì giai đoạn này cần tiến hành các hoạt động sau:
- Xác định, phê chuẩn và ra quyết định cho kiến trúc của hệ thống càng nhanh càng thiết thực càng tốt
Định nghĩa tầm nhìn mới dựa trên thông tin thu thập được trong giai đoạn này, giúp thiết lập sự hiểu biết sâu sắc về các ngữ cảnh quan trọng, từ đó hỗ trợ cho các quyết định liên quan đến kế hoạch và kiến trúc.
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 21
- Tạo và thỏa hiệp các kế hoạch giai đoạn lặp chi tiết cho giai đoạn kiến tạo
Tinh chỉnh các ngữ cảnh phát triển và tích hợp chúng vào môi trường phát triển là rất quan trọng Điều này bao gồm việc xác định quy trình, lựa chọn công cụ phù hợp và áp dụng các hỗ trợ tự động cần thiết để tối ưu hóa hiệu suất cho đội ngũ phát triển.
Kiến thức quản lý dự án
Là một chuỗi các hoạt động nhằm đảm bảo dự án được hoàn thành đúng thời gian quy định
- Định dang các hoạt động của dự án để tạo ra sản phẩm của dự án
- Sắp xếp thứ tự các hoạt động có xem xét các phụ thuộc
- Ước lượng tài nguyên cho các hoạt động: loại và số lượng nhân sự cần để thực hiện từng hoạt động
- Ước lượng thời gian thực hiện hoạt động
Phát triển bảng biểu thời gian cho dự án là quá trình quan trọng, bao gồm việc phân tích chuỗi thực hiện các hoạt động, xác định thời gian cần thiết, yêu cầu nhân sự và các ràng buộc về lịch trình Việc này giúp tối ưu hóa quản lý dự án, đảm bảo tiến độ và hiệu quả trong việc hoàn thành mục tiêu đề ra.
- Kiểm soát lịch trình thực hiện
Một số kỹ thuật được áp dụng khi lập lịch cho dự án:
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 40
- Phương pháp đường găng (critical path method)
Phương pháp này xác định ngày bắt đầu và kết thúc sớm nhất cũng như muộn nhất cho tất cả các hoạt động trong dự án mà không xem xét giới hạn tài nguyên, thông qua phân tích hướng tới hoặc quay lui trên mô hình mạng lưới các hoạt động Kết quả thu được không nhất thiết phải áp dụng trong lập lịch dự án, mà chủ yếu được sử dụng để tính toán khoảng thời gian thực hiện các hoạt động, các mối quan hệ logic, lead, lag và các ràng buộc khác.
Để rút ngắn lịch trình mà không làm thay đổi phạm vi dự án, cần đáp ứng các ràng buộc về thời gian và mục tiêu khác Có hai phương pháp chính: phá vỡ lịch trình, thường dẫn đến tăng chi phí, và fast tracking, thực hiện song song một số hoạt động, có thể gây ra tăng chi phí và rủi ro.
Trong quá trình thực hiện dự án, có thể xuất hiện một số ngữ cảnh như thay đổi yêu cầu từ khách hàng, sự cố kỹ thuật hoặc thiếu hụt nguồn lực Nếu những tình huống này xảy ra, lịch trình thực hiện cần được điều chỉnh để đảm bảo tiến độ và chất lượng công việc Việc xác định rõ ràng các yếu tố ảnh hưởng và lập kế hoạch thay thế kịp thời sẽ giúp dự án duy trì được hiệu quả và đạt được mục tiêu đề ra.
Kỹ thuật này được áp dụng trên mô hình mạng đã được phân tích bằng kỹ thuật đường găng, nhằm chỉ ra các hoạt động cần thực hiện để đáp ứng ngày công bố chỉ định Nó cũng chỉ ra các tình huống mà tài nguyên được chia sẻ hoặc yêu cầu chỉ rãnh trong một khoảng thời gian nhất định, hoặc chỉ rỗi một số lượng tài nguyên nhất định Hơn nữa, kỹ thuật này giúp duy trì việc sử dụng các tài nguyên chọn lựa ở một mức độ nhất định trong khoảng thời gian đã chỉ định.
- Phương pháp miền găng (critical chain method)
Phương pháp phân tích mô hình mạng lập lịch này cho phép điều chỉnh lịch trình thực hiện dự án với các giới hạn về tài nguyên, kết hợp giữa hai cách tiếp cận xác suất và tất định.
Quản lý chi phí là quá trình bao gồm lập kế hoạch, ước lượng, lập ngân sách và kiểm soát chi phí, nhằm đảm bảo dự án hoàn thành trong giới hạn kinh phí được phê duyệt.
Quản lý chất lượng dự án bao gồm tất cả các hoạt động cần thiết để đảm bảo tuân thủ chính sách chất lượng, đạt được mục tiêu chất lượng và xác định rõ trách nhiệm trong quá trình thực hiện dự án.
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 41 thực hiện quản lý chất lượng thông qua các chính sách, thủ tục và quy trình để đáp ứng đầy đủ yêu cầu được giao.
- Lập kế hoạch chất lượng, định nghĩa các tiêu chuẩn chất lượng liên quan tới dự án và quyết định cách làm để thỏa mãn các tiêu chuẩn đó
- Thực hiện các tiến trình đảm bảo chất lượng đảm bảo dự án thực thi tất cả các tiến trình cần thiết để đáp ứng các yêu cầu
Kiểm soát chất lượng là quá trình quan trọng nhằm đánh giá các kết quả của dự án, xác định xem chúng có đáp ứng các tiêu chuẩn chất lượng đã đề ra hay không, và đưa ra giải pháp để loại bỏ các nguyên nhân gây ra sự vi phạm.
Rủi ro của dự án là những sự kiện hoặc điều kiện có khả năng xảy ra, và nếu xảy ra, chúng có thể ảnh hưởng tích cực hoặc tiêu cực đến các mục tiêu của dự án, bao gồm thời gian, chi phí, phạm vi và chất lượng.
Quản lý rủi ro là quá trình thiết lập kế hoạch nhằm xác định, phân tích, đáp ứng và kiểm soát các rủi ro trong dự án, đảm bảo hiệu quả và an toàn cho các hoạt động.
- Lập kế hoạch quản lý rủi ro, xác định cách tiếp cận, kế hoạch và thực thi các hoạt động quản lý rủi ro cho dự án
- Xác định rủi ro, quyết định các loại rủi ro có thể ảnh hưởng đến dự án và các đặc tính của nó
Phân tích chất lượng rủi ro là quá trình quan trọng giúp xác định và sắp xếp thứ tự ưu tiên cho các rủi ro Bằng cách đánh giá xác suất xuất hiện và tác động của từng rủi ro, chúng ta có thể thực hiện những phân tích sâu hơn và đưa ra các hành động thích hợp để quản lý hiệu quả.
- Phân tích số lượng rủi ro, phân tích một cách số học ảnh hưởng lên toàn mục tiêu của dự án của các rủi ro đã xác định
Lập kế hoạch ứng phó với rủi ro là cần thiết để phát triển các lựa chọn và hành động nhằm tận dụng cơ hội, đồng thời giảm thiểu nguy cơ ảnh hưởng đến mục tiêu của dự án.
Kiểm tra và giám sát rủi ro là quá trình quan trọng trong quản lý dự án, bao gồm việc theo dõi các rủi ro đã được xác định, phát hiện các rủi ro mới và thực hiện kế hoạch ứng phó Đồng thời, cần đánh giá ảnh hưởng của những rủi ro này đối với toàn bộ vòng đời của dự án để đảm bảo sự thành công và bền vững.
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 42
Giải thuật nhánh và cận
Trong thế giới thực, nhiều bài toán lập kế hoạch được phân loại là bài toán tối ưu kết hợp, với đặc điểm là có số lượng hữu hạn các phương án khả thi nhưng rất lớn Những bài toán này được gọi là NP-hard, bao gồm các ví dụ như phân luồng xe, phân công nhân sự và lập kế hoạch sản xuất.
Để giải quyết các bài toán tối ưu NP-hard một cách hiệu quả, cần sử dụng các thuật toán mạnh mẽ như giải thuật nhánh và cận Giải thuật này thực hiện tìm kiếm trong toàn bộ không gian để xác định phương án tối ưu nhất Tuy nhiên, do số lượng lớn các phương án khả thi, giải thuật cần áp dụng cận của hàm tối ưu kết hợp với giá trị của phương án tốt nhất hiện tại để hạn chế miền không gian tìm kiếm.
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 43
Hình 20 Minh họa việc giới hạn không gian tìm kiếm của giải thuật nhánh và cận (theo [13])
Chuỗi xử lý trong bài toán tối ưu hóa phụ thuộc vào việc lựa chọn nút xử lý tiếp theo Cách đầu tiên là xác định nhánh con dựa trên giá trị của chúng, trong đó các giá trị được tính toán và so sánh với giá trị tốt nhất hiện tại Nếu nhánh con không có khả năng chứa phương án tối ưu, miền không gian đó sẽ bị loại bỏ Cách thứ hai bắt đầu bằng việc tính toán cận của nút đã chọn và thực hiện việc rẽ nhánh nếu cần thiết.
Xem xét một bài toán tối thiểu, vấn đề là phải đi tối thiểu hóa 1 hàm f(x) với các biến (x1,
…, x n ) trong một miền khả dĩ S:
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 44
Hàm f, được gọi là hàm mục tiêu, đại diện cho tập hợp các phương án khả dĩ với điều kiện chung như số nguyên, số nhị phân hoặc các ràng buộc đặc biệt Trong nhiều trường hợp, tập hợp các phương án tiềm năng P nằm trong S, nơi hàm f xác định, thường đi kèm với một hàm g(x) được định nghĩa trên S (hoặc P) sao cho g(x) ≤ f(x) Cả P và g đều đóng vai trò quan trọng trong giải thuật nhánh và cận.
Một giải thuật nhánh và cận thường bao gồm 3 thành phần chính:
- Hàm cận để cung cấp cho một miền không gian con của không gian giải pháp một cận thấp hơn đối với giá trị phương án tốt nhất
- Chiến lược chọn lựa miền không gian con để kiểm tra
- Luật của nhánh sẽ được áp dụng khi miền không gian con sau khi được kiểm tra mà không bị cắt bỏ đi
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 45
PHƯƠNG PHÁP THỰC HIỆN
Mô hình bài toán
Một dự án phần mềm được chia thành nhiều công việc khác nhau, mỗi công việc yêu cầu kỹ năng, chi phí tối đa và thời gian hoàn thành cụ thể Dự án quản lý kỹ năng nhân viên, chi phí theo giờ và thông tin liên quan Người quản lý dự án cần sắp xếp và phân bổ nhân sự hợp lý để đáp ứng yêu cầu về chi phí, chất lượng và thời gian hoàn thành.
Gọi Xi là một công việc với i từ 1 đến n, với n là tổng số công việc có trong dự án
Yj là nhân viên với j từ 1 đến m, trong đó m là tổng số nhân viên trong dự án
Biến aij dùng để đánh dấu nhân viên Yj có làm công việc Xi hay không
Biến aij có thể nhận 2 giá trị: 0 => nghĩa là không có và 1 => nghĩa là có
Biến ei là thời gian bắt đầu của công việc Xi
Các kỹ năng trong dự án được mô hình bởi biến Kr với r từ 1 đến p trong đó p là tổng số kỹ năng được tài liệu hóa
Biến di là số nhân công yêu cầu của mỗi công việc Xi
Biến ti là thời gian cần thiết để hoàn thành công việc Xi
Biến bi là chi phí ước lượng của công việc i với Xi
Biến kir là mức kỹ năng yêu cầu của công việc Xi đối với kỹ năng Kr
Biến kjr là mức kỹ năng có được của nhân viên Yj đối với kỹ năng Kr
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 46
Biến cjlà chi phí tính theo giờ của nhân viên Yj
Hàm mục tiêu là yếu tố quyết định mục đích chính của mô hình, nhằm tối đa hóa hoặc tối thiểu hóa kết quả Trong lĩnh vực quản lý dự án phần mềm, có ba hàm mục tiêu chính cần được chú ý.
Chi phí dự án: với ∀ X và ∀ Y
- Chi phí của từng công việc:
- Chi phí của toàn dự án:
Thời gian hoàn thành dự án:
Chất lượng của dự án: với ∀ X và ∀ Y
- Chất lượng của từng công việc:
Tổng thời gian của dự án: time ≤ T với T là thời gian ước lượng hoàn thành dự án
Tổng chi phí của dự án: cost ≤ C với C là chi phí ước lượng của dự án
Tổng thời gian làm việc của nhân sự phải nhỏ hơn thời gian hoàn thành dự án
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 47
Chi phí hoàn tất công việc phải nhỏ hơn chi phí ước lượng cho từng công việc
Tổng số nhân sự thực hiện một công việc phải bằng với số nhân sự mà công việc yêu cầu
∀ ∈ : Kỹ năng của nhân viên thực hiện một công việc phải thỏa yêu cầu về kỹ năng của công việc
Các công việc được sắp xếp theo một thứ tự cụ thể, trong đó một số công việc chỉ có thể bắt đầu khi các công việc khác đã hoàn tất Điều này có nghĩa là công việc j sẽ khởi động chỉ sau khi công việc i đã được hoàn thành.
∀ ∈ : ( , ) = 1 ↔ ≥ + Công việc đầu tiên bắt đầu ở thời điểm 0
Một nhân viên không thể thực hiện 2 công việc trong cùng thời gian
Thiết kế cơ sở dữ liệu
- Một công ty có nhiều dự án (projects)
- Thông tin của mỗi dự án gồm có:
Thời hạn cuối cùng của dự án (milestone)
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 48
Tên khách hàng (company_name)
Thời gian tạo (created_at)
Thời gian cập nhật (updated_at)
Thời gian ước lượng (duration)
Tổng thời gian ước lượng (estimated_effort)
Chi phí ước lượng khác (estimated_other_cost)
Tổng số công việc (activities_count)
Tổng số nhân viên (employees_count)
- Mỗi dự án có các tài nguyên cần thiết (project_materials)
- Thông tin của tài nguyên gồm:
Số tuần (week_to_spend)
Số ngày (day_to_spend)
Chi phí ước lượng (estimated_cost)
Thời gian tạo (created_at)
Thời gian cập nhật (updated_at)
- Mỗi dự án có nhiều công việc cần thực hiện (activities)
- Thông tin của mỗi công việc gồm:
Ước lượng số người thực hiện (estimated_number_of_people)
Ước lượng thời gian (estimated_duration)
Ước lượng chi phí (estimated_cost)
Công việc bắt buộc phải làm trước (predecessor)
Thời gian tạo (created_at)
Thời gian cập nhật (updated_at)
Số lượng kỹ năng (skills_count)
- Công ty cũng có nhiều nhân viên (employees)
- Thông tin của mỗi nhân viên gồm:
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 49
Phân loại nhân viên (role)
Là quản lý (is_manager)
Người quản lý (manager_id)
Chi phí theo giờ (hourly_rate)
Thích tăng ca (like_ot)
Khả năng làm việc độc lập (single_work_ability)
Hiệu suất làm việc nhóm (team_work_productivity)
Tinh thần làm việc nhóm (team_work_motivation)
Tỉ lệ lỗi khi làm độc lập (error_percent_single)
Tỉ lệ lỗi khi làm nhóm (error_percent_group)
Thời gian tạo (created_at)
Thời gian cập nhật (updated_at)
Số ngày nghỉ (employee_turns_count)
- Mỗi công việc đều yêu cầu một số kỹ năng (skills)
- Mỗi nhân viên có một số kỹ năng
- Thông tin kỹ năng gồm:
Thời gian tạo (created_at)
Thời gian cập nhật (updated_at)
- Mỗi nhân viên có một số ngày nghỉ trong năm (employee_turns)
- Thông tin ngày nghỉ gồm:
Loại ngày nghỉ (absence_type)
Thời gian tạo (created_at)
Thời gian cập nhật (updated_at)
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 50
4.2.2 Mô hình dữ liệu ý niệm
Hình 21 Thiết kế cơ sở dữ liệu
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 51
4.2.3 Thiết kế cơ sở dữ liệu vật lý a) Projects
Tên Loại dữ liệu Độ dài Not
The database schema includes several key attributes: 'id' as the primary key of type INT with a length of 11, 'name' as a VARCHAR with a maximum of 255 characters, and 'introduction' and 'description' as TEXT fields Additionally, 'company_name' and 'abbreviation' are both VARCHAR fields with a limit of 255 characters The 'milestone' is recorded as a DATETIME, while 'duration' is an INT of 11, measured in weeks based on a standard workweek of 40 hours The 'estimated_effort' is also an INT of 11, quantified in hours, and 'estimated_other_costs' is a DOUBLE representing costs in USD, initialized at zero Finally, 'created_at' and 'updated_at' are TIMESTAMP fields for tracking record creation and updates.
00 00:00:00' activities_count INT 11 0 employees_count INT 11 0
Bảng 3 Bảng projects b) Project_Materials
Tên Loại dữ liệu Độ dài Not
Giá trị mặc định Đặc tả id INT 11 x Khóa chính project_id INT 11 x Khóa ngoại đến bảng projects material TEXT
The software tools require a specified quantity of materials, denoted as INT 11, along with a designated usage duration measured in weeks (week_to_spend INT 11) and days (day_to_spend INT 11) The estimated cost for these tools is expressed in USD as a double value Additionally, the timestamps for creation and last updates are recorded for tracking purposes.
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 52 c) Activities
Tên Loại dữ liệu Độ dài Not
The default values for the database schema include an ID as the primary key (INT 11), a name (VARCHAR 255), a description (TEXT), and a project ID that serves as a foreign key linked to the projects table (INT 11) Additional fields include activity order (INT 11), estimated number of people required (INT 11), estimated duration in hours (INT 11), estimated cost in USD (DOUBLE), and a predecessor field that lists the IDs of prerequisite activities (VARCHAR 255) The schema also tracks the count of required skills (INT 11), along with timestamps for creation and updates (TIMESTAMP).
Tên Loại dữ liệu Độ dài Not
Giá trị mặc định Đặc tả id INT 11 x Khóa chính name VARCHAR 255
5 – Web Design description TEXT created_at TIMESTAMP current_ timestamp updated_at TIMESTAMP
Bảng 6 Bảng skills e) Activities_skills
Tên Loại dữ liệu Độ dài Not
Giá trị mặc định Đặc tả id INT 11 x Khóa chính level SMALLINT 6 Có 6 level activity_id INT 11 x Khóa ngoại đến bảng activities
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 53 skill_id INT 11 x Khóa ngoại đến bảng skills created_at TIMESTAMP current_ timestamp updated_at TIMESTAMP
Bảng 7 Bảng activities_skills f) Employees
Tên Loại dữ liệu Độ dài Not
Giá trị mặc định Đặc tả id INT 11 x Khóa chính name VARCHAR 255 description TEXT role INT
10 – "Customer support Projects" is_manager TINYINT 1 manager_id INT 11 Khóa ngoại tới chính bảng
Employees hourly_rate DOUBLE Đơn vị: USD/giờ like_ot INT 11 có 3 giá trị:
3 – hate single_work_ability INT 11 có 5 giá trị:
5 – excellent team_work_productivity INT 11 có 5 giá trị:
5 – excellent team_work_motivation INT 11 có 5 giá trị:
5 – excellent health_status INT 11 có 5 giá trị:
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 54
The article discusses key metrics for employee performance, including the employee turnover rate measured in days of absence, individual error percentage, and group error percentage It also highlights the importance of timestamps for tracking the creation and updates of these metrics.
Bảng 8 Bảng employees g) Employee_skills
Tên Loại dữ liệu Độ dài Not
The database schema includes a default value specification with the following attributes: an integer ID as the primary key, a SMALLINT level that can range from 1 to 6, an employee_id as a foreign key linked to the employees table, a skill_id as a foreign key referencing the skills table, and timestamps for created_at and updated_at, with the latter set to the current timestamp.
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 55 h) Employee_turns
Tên Loại dữ liệu Độ dài Not
Giá trị mặc định Đặc tả id INT 11 x Khóa chính employee_id INT 11 x Khóa ngoại đến bảng employees absence_type INT 11
3 – Have a sick feeling duration INT 11 x Đơn vị: ngày (ngày 8h) created_at TIMESTAMP current_ timestamp updated_at TIMESTAMP
Bảng 10 Bảng employee_turns i) Locations
Tên Loại dữ liệu Độ dài Not
Giá trị mặc định Đặc tả id INT 11 x Khóa chính address VARCHAR 255 cost DOUBLE 11 Đơn vị: USD/tháng description TEXT created_at TIMESTAMP current_ timestamp updated_at TIMESTAMP
Bảng 11 Bảng locations j) Project_locations
Tên Loại dữ liệu Độ dài Not
Giá trị mặc định Đặc tả id INT 11 x Khóa chính project_id INT 11 x Khóa ngoại đến bảng projects location_id INT 11 x Khóa ngoại đến bảng locations
Sơ đồ giải thuật
Các bài toán sắp xếp nhân sự thường thuộc loại NP-hard, điều này có nghĩa là hiện tại chưa có giải thuật nào được công nhận là có khả năng tìm ra phương án tối ưu Một trong những phương pháp tìm kiếm là quét cạn.
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 56 cho biết rằng việc lập lịch có thể giải quyết vấn đề nhưng thời gian thực thi sẽ kéo dài khi kích cỡ bài toán tăng Để khắc phục điều này, luận văn áp dụng giải thuật sắp lịch kết hợp với heuristic nhằm tìm ra các phương án khả dĩ tối ưu cục bộ Sau đó, giải thuật AHP được sử dụng để đánh giá các phương án dựa trên trọng số về chi phí, chất lượng và thời gian của dự án Mặc dù phương án cuối cùng có thể không phải là tối ưu toàn cục, nhưng nó vẫn đáp ứng các điều kiện ràng buộc và tối ưu qua từng bước xếp nhân sự.
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 57
Hình 22 Sơ đồ tổng quan để giải bài toán
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 58
4.3.2 Thiết lập thứ tự thực hiện công việc
Dựa trên các ràng buộc về thứ tự trước sau giữa các công việc, dùng đệ quy để gán thứ tự thực hiện cho từng công việc
Hình 23 Gán thứ tự công việc
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 59
4.3.3 Lọc danh sách nhân viên có đủ kỹ năng để làm công việc
Một nhân viên chỉ có thể hoàn thành công việc nếu kỹ năng của họ đáp ứng các yêu cầu tối thiểu cần thiết cho vị trí đó.
Hình 24 Tạo danh sách nhân viên có khả năng thực hiện công việc
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 60
Hình 25 Kiểm tra nhân viên có thực hiện công việc không
4.3.4 Lấy thời gian bắt đầu của một công việc
Thời gian bắt đầu của một công việc phụ thuộc vào thời gian hoàn thành các công việc trước đó và thời gian của những công việc thực hiện song song với nó.
Thời gian bắt đầu sớm nhất của một công việc được xác định bằng cách cộng thời gian bắt đầu sớm nhất của công việc trước đó với thời gian cần thiết để thực hiện công việc đó, lấy giá trị lớn nhất từ các công việc cần thực hiện trước Ngoài ra, nó cũng có thể được tính từ thời gian bắt đầu sớm nhất của công việc cuối cùng trong chuỗi sắp xếp cùng ống với công việc hiện tại, cộng với thời gian cần thiết để thực hiện hành động đó, tùy thuộc vào giá trị nào lớn hơn.
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 61
Thời gian bắt đầu sớm nhất của công việc đầu tiên là 0
Hình 26 Lấy thời gian bắt đầu sớm nhất của một công việc
4.3.5 Phân công nhân sự cho một công việc
Nhân sự được phân công công việc cần đáp ứng đầy đủ kỹ năng yêu cầu Trong trường hợp sắp xếp song song, cần đảm bảo không có nhân viên nào thực hiện đồng thời hai công việc Việc phân công nhân sự vào công việc phù hợp là rất quan trọng để đạt hiệu quả cao nhất.
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 62 việc phải đảm bảo chi phí thực hiện công việc nhỏ hơn chi phí dự kiến dành cho công việc đó
Hình 27 Phân công nhân sự cho công việc
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 63
4.3.6 Chọn lựa 2 cách phân công tối ưu cho một công việc
Mỗi công việc có nhiều cách phân công nhân sự, nhưng để tối ưu hóa, ta sẽ lựa chọn hai phương án phân công dựa trên tiêu chí tối thiểu chi phí và tối đa chất lượng Trong bài toán này, thời gian hoàn tất công việc không được xem xét vì đây là yếu tố ràng buộc cần phải thỏa mãn.
Hình 28 Chọn 2 phương án phân công nhân sự tối ưu cho 1 công việc theo cách tiếp cận tuần tự
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 64
4.3.7 Chọn lựa 4 nhánh tối ưu cục bộ
Khi lựa chọn phương pháp thực hiện song song nhiều công việc, mô hình cây sẽ được sử dụng để tổ chức các phương án phân chia Các trường hợp trong mô hình cây có thể được phân nhánh một cách linh hoạt.
- Chọn nhiều cách phân công cho một công việc
Chọn các phương pháp khác nhau để thực hiện nhóm công việc có cùng thứ tự, vì những công việc này độc lập và có thể được thực hiện song song.
Số nhánh của cây có thể gia tăng nhanh chóng, do đó, sau mỗi lần duyệt nhóm công việc cùng cấp, cần cắt bỏ một số nhánh để thu hẹp không gian tìm kiếm thông qua tối ưu cục bộ Chúng ta sẽ áp dụng 4 tiêu chí để thực hiện việc này.
Sau khi cắt bỏ nhánh, ta sẽ tiến hành duyệt các công việc ở cấp thứ tự kế tiếp trên cây đã được thu nhỏ không gian tìm kiếm
Sau khi hoàn tất quá trình duyệt và phân công nhân sự cho dự án, chúng ta có thể đưa ra tối đa 4 phương án phù hợp với tiêu chí đã đề ra cho từng mức độ mong muốn Tuy nhiên, các phương án này có thể không phải là phương án tối ưu nhất cho toàn bộ dự án.
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 65
Hình 29 Chọn lựa 4 nhánh tối ưu cục bộ theo cách tiếp cận song song
4.3.8 Sắp xếp công việc tuần tự
Khi sắp xếp công việc theo thứ tự, thời gian hoàn thành dự án không cần phải quan tâm, vì thời gian thực hiện mỗi công việc là cố định Thời gian hoàn thành dự án sẽ là tổng thời gian của tất cả các công việc, và đây cũng chính là thời gian dài nhất mà dự án có thể kéo dài.
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 66
Ngoài ra do công việc được thực hiện một cách tuần tự nên ta cũng không lo vấn đề xung đột nhân sự giữa các công việc
Hình 30 Sắp xếp công việc theo cách tuần tự
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 67
4.3.9 Sắp xếp công việc theo cách song song
Có nhiều phương pháp để sắp xếp song song các công việc trong dự án, với nhiều mức độ khác nhau Bước đầu tiên trong thuật toán này là tạo ra một mảng các công việc được sắp xếp theo thứ tự, dựa trên thuật toán sắp xếp đã được trình bày ở mục 4.3.2.
Hình 31 Sắp xếp và phân công nhân sự cho dự án theo cách tiếp cận song song
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 68
4.3.10 Xếp hạng các phương án
Sau khi xác định các phương án khả thi thông qua tối ưu cục bộ, chúng ta sẽ áp dụng giải thuật AHP để lựa chọn phương án cuối cùng, đảm bảo đáp ứng các tiêu chí cụ thể về chi phí, chất lượng và thời gian.
Hình 32 Giải thuật AHP chọn phương án theo trọng số
Dùng phương pháp Eigenvector, tính toán xếp hạng quan hệ giữa các phương pháp dựa trên các tiêu chí
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 69
Hình 33 Tính giá trị Eigenvector cho các phương án trong giải thuật AHP
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 70
Hiện thực chương trình
4.4.1 Các công nghệ sử dụng
Chương trình sử dụng các công nghệ như sau và đều được chạy trên hệ điều hành Ubuntu:
Kiến trúc bên trong của chương trình:
Hình 34 Kiến trúc chương trình
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 71
4.4.2 Các thành phần trong chương trình
Chương trình bao gồm các giao diện quản lý để người dùng nhập liệu các dữ liệu cần thiết cho dự án
- Quản lý nhân viên: quản lý các thông tin cơ bản của từng nhân viên, lương và đánh giá các kỹ năng của nhân viên
Quản lý công việc bao gồm việc nắm bắt các thông tin cơ bản về công việc, ước lượng thời gian và chi phí thực hiện Đồng thời, quản lý cũng cần chú trọng đến việc sắp xếp thứ tự thực hiện các công việc để đảm bảo hiệu quả và tiến độ.
Quản lý dự án là việc tổ chức và theo dõi danh sách các dự án cùng thông tin chi tiết của từng dự án Tất cả dữ liệu nhập vào sẽ được lưu trữ an toàn trong cơ sở dữ liệu Chương trình cung cấp giao diện thân thiện cho người quản lý, cho phép hiển thị các phương án phân công khả thi, cung cấp thông tin trọng số cho các tiêu chí và hỗ trợ trong việc lựa chọn phương án phân công cuối cùng.
Hệ thống hỗ trợ ra quyết định trong chương trình đóng vai trò quan trọng, giúp quản lý dự án lựa chọn phương án tối ưu dựa trên chi phí, thời gian và các ràng buộc nhân sự cùng yêu cầu của khách hàng Chương trình cung cấp giao diện với các khuyến nghị về cách bố trí nhân sự và thứ tự thực hiện công việc, đồng thời xếp hạng các phương án dựa trên trọng số của các điều kiện ràng buộc mà người dùng nhập vào.
Hình 35 Các thành phần trong chương trình
HVTH: Phạm Thị Bích Liên _ 10071050 Trang 72