THU THẬP YÊU CẦU HỆ THỐNG
Quy trình nghiệp vụ quản lý dự án
Nghiệp vụ quản lý trong doanh nghiệp bao gồm nhiều lĩnh vực khác nhau, đặc biệt là quản lý dự án, nơi nhiệm vụ chính là giám sát công việc và nhân viên cũng như theo dõi tiến độ dự án Để thực hiện hiệu quả, cần nắm rõ nghiệp vụ quản lý nhân viên nhằm phục vụ cho việc quản lý nhân sự trong dự án và các phòng ban, vì nhân viên thường được quản lý theo từng bộ phận Doanh nghiệp thường được tổ chức thành các phòng ban khác nhau như hành chính, nhân sự, kế toán, sản xuất và kinh doanh, với việc thành lập hoặc giải tán các phòng ban thường do quản lý cấp cao quyết định.
Các phòng ban trong công ty thường có người quản lý và nhân viên, với nghiệp vụ quản lý nhân viên được thực hiện một cách đơn giản nhằm hỗ trợ cho quản lý dự án Nhân viên được tổ chức theo các phòng ban và quản lý thông qua hồ sơ nhân viên Hồ sơ này được tạo ra khi nhân viên xin việc và được trả lại khi họ rời công ty Nhân viên sẽ tham gia vào các dự án và thực hiện các công việc liên quan đến dự án đó.
Nghiệp vụ quản lý dự án của doanh nghiệp được diễn ra như sau:
Khi có yêu cầu từ khách hàng, người quản lý dự án sẽ khởi tạo một dự án mới.
Người quản lý dự án cần lập kế hoạch chi tiết cho dự án, bao gồm việc xác định các công việc cần thực hiện, lựa chọn nhân sự phù hợp, phân công nhiệm vụ cho từng nhân viên và thiết lập tiến độ cho mỗi công việc, nhằm đảm bảo toàn bộ dự án được thực hiện đúng thời hạn.
Người quản lý dự án cần quản lý tiến độ của dự án:
Các nhân viên được giao nhiệm vụ thực hiện công việc và có trách nhiệm báo cáo tiến độ định kỳ Người quản lý sẽ đánh giá và xác định tiến độ công việc dựa trên các báo cáo này.
Tiến độ của cả dự án được đánh giá dựa vào tiến độ hoàn thành của các công việc.
Trong quá trình thực hiện dự án, có thể xảy ra các yêu cầu thay đổi từ khách hàng hoặc do sự thay đổi trong tiến độ công việc Vì vậy, việc cập nhật thông tin và các công việc của dự án là cần thiết.
Yêu cầu về người dùng hệ thống
Hệ thống phục vụ các người dùng sau:
Người quản lý: quản lý chung các công việc trong công ty, gồm cả quản lý nhân viên, các phòng ban và quản lý dự án.
Người quản lý dự án: các nhân viên phụ trách quản lý và thực hiện dự án.
Nhân viên: các nhân viên trong các phòng ban, tham gia thực hiện các dự án.
Các yêu cầu chức năng
Các yêu cầu chức năng và người dùng của hệ thống được mô tả trong Bảng 1.1 dưới đây.
Bảng 1.1 Yêu cầu chức năng hệ thống
T Tên chức năng Người dùng Mô tả
Người quản lý Quản lý các phòng ban trong doanh nghiệp, có thể thành lập, giải tán hoặc thay đổi
Người quản lý Quản lý hồ sơ nhân viên, tạo hồ sơ, chỉnh sửa hồ sơ hoặc trả hồ sơ về cho nhân viên
3 Tạo dự án Người quản lý dự án Khởi tạo một dự án mới và thêm các thông tin mô tả về dự án
4 Cập nhập dự án Người quản lý dự án
Thay đổi các mô tả về dự án, nội dung công việc, các nhiệm vụ hoặc có thể xoá bỏ công việc hoặc toàn bộ dự án
5 Phân công công việc Người quản lý dự án Phân chia dự án thành các công việc và giao các công việc này cho nhân viên thực hiện
6 Xem nội dung và phân công công việc
Nhân viên Xem danh sách các công việc được phân công cũng như nội dung chi tiết từng công việc
7 Cập nhập tiến độ công việc Nhân viên,
Người quản lý dự án
Nhân viên gửi báo cáo tiến độ công việc đến người quản lý dự án, người sau đó sẽ đánh giá kết quả để xác định tình hình tiến độ công việc.
8 Cập nhập tiến độ dự án
Người quản lý dự án Đánh giá tiến độ chung của toàn bộ dự án
Yêu cầu về dữ liệu
Các yêu cầu về dữ liệu đối với hệ thống được liệt kê thành từ điển dữ liệu cho trong Bảng 1.2 dưới đây.
Bảng 1.2 Từ điển dữ liệu
Tên dữ liệu Mô tả
Nhân viên = Mã NV + Họ Tên + Email + Số điện thoại+ Địa chỉ + Phòng/Ban +
Chức vụ Phòng/Ban = Tên Phòng/Ban + Trưởng phòng + Mô tả
Dự án bao gồm các thông tin quan trọng như tên, ngày tạo, ngày bắt đầu, ngày kết thúc dự kiến, ngày kết thúc thực tế, tiến độ và mô tả Công việc trong dự án được xác định bởi tên, mô tả, ngày tạo, người tạo và thời gian thực hiện.
Người thực hiện + Dự án thuộc về + Tiến độ + Kết quả
Mục tiêu và phạm vi hệ thống
Dựa trên yêu cầu thu thập về chức năng, người dùng và dữ liệu, chúng ta cần phát triển một hệ thống mới cho phép người dùng quản lý hiệu quả nhân viên và các dự án của công ty Hệ thống này sẽ hỗ trợ trong việc phân chia công việc cho nhân viên, theo dõi tiến độ các nhiệm vụ đã được giao, cũng như quản lý tiến độ tổng thể của toàn bộ dự án.
Việc tích hợp quản lý nhân viên và dự án trong một hệ thống giúp đơn giản hóa quy trình quản lý, tạo điều kiện thuận lợi cho nhân viên tham gia vào các dự án Hệ thống này cho phép nhà quản lý và nhân viên dễ dàng theo dõi và phân chia công việc một cách rõ ràng Để đáp ứng các yêu cầu này, cần bổ sung chức năng quản lý tài khoản nhằm kiểm soát quyền hạn của người dùng và tối ưu hóa trải nghiệm sử dụng các chức năng trong hệ thống.
Như vậy hệ thống được triển khai sẽ bao gồm các chức năng chính là:
Quản lý tài khoản người dùng.
Sau khi thu thập yêu cầu của hệ thống, việc phân tích các yêu cầu này là cần thiết để xây dựng các mô hình nghiệp vụ, giúp mô tả một cách trực quan và logic hơn.
PHÂN TÍCH HỆ THỐNG
Mô hình hoá chức năng hệ thống
2.1.1 Các chức năng chính của hệ thống quản lý dự án
Nghiệp vụ quản lý dự án là một phần quan trọng trong quản lý công ty, tập trung vào việc điều hành và tổ chức các dự án hiệu quả Để hỗ trợ cho quá trình này, cần có nghiệp vụ quản lý nhân viên nhằm cung cấp nguồn nhân lực phù hợp cho từng dự án Hơn nữa, để người dùng có thể truy cập và sử dụng các chức năng của hệ thống, việc quản lý tài khoản là cần thiết để đảm bảo an toàn và hiệu quả trong việc sử dụng.
Chức năng quản lý nhân viên trong hệ thống chủ yếu hỗ trợ cho việc quản lý dự án, bao gồm các nhiệm vụ cơ bản như tạo và cập nhật hồ sơ nhân viên Do nhân viên được phân bổ theo các phòng ban, hệ thống cũng cần tích hợp chức năng quản lý phòng ban để đảm bảo hiệu quả trong công tác quản lý.
Hệ thống yêu cầu bốn chức năng chính: quản lý dự án, quản lý nhân viên, quản lý phòng ban và quản lý tài khoản, như được thể hiện trong sơ đồ ca sử dụng ở Hình 2.1.
Quản lý phòng ban Quản lý dự án
Người quản lý dự án
Hình 2.1 Sơ đồ ca sử dụng các chức năng chính của hệ thống quản lý dự án
2.1.2 Quy trình quản lý dự án
Như được trình bày trong phần thu thập yêu cầu, quy trình quản lý dự án của doanh nghiệp diễn ra như sau:
Khi có yêu cầu từ khách hàng, người quản lý dự án sẽ khởi tạo một dự án mới.
Người quản lý dự án cần xây dựng một kế hoạch chi tiết cho dự án, bao gồm việc xác định các công việc cần thực hiện, lựa chọn nhân sự phù hợp, phân công nhiệm vụ cho từng nhân viên và thiết lập thời gian thực hiện cho mỗi công việc.
Người quản lý dự án cần quản lý tiến độ của dự án:
Các nhân viên được giao nhiệm vụ thực hiện công việc và có trách nhiệm báo cáo tiến độ định kỳ Tiến độ công việc sẽ được đánh giá dựa trên các báo cáo này.
Tiến độ của cả dự án được đánh giá dựa vào tiến độ hoàn thành của các công việc.
Trong quá trình thực hiện dự án, có thể phát sinh yêu cầu thay đổi từ khách hàng hoặc do sự thay đổi trong tiến độ công việc Điều này đòi hỏi chúng ta cần cập nhật lại thông tin và các công việc liên quan đến dự án để đảm bảo tính chính xác và hiệu quả trong quá trình triển khai.
Quy trình này được mô hình hoá thành sơ đồ hoạt động như trên Hình 2.2.
Từ đây ta có thể mô tả các chức năng cơ bản của hệ thống thành sơ đồ ca sử dụng như trên Hình 2.3.
Nhiệm vụ ước lượng và đánh giá tiến độ dự án là trọng tâm của hệ thống, ảnh hưởng trực tiếp đến kết quả và thành công của dự án Có nhiều phương pháp khác nhau để tính toán tiến độ, dựa trên các tiêu chí đa dạng Chúng ta sẽ xây dựng một mô hình tính toán tiến độ dựa trên thời gian thực hiện các công việc.
2.1.3 Mô hình ước lượng tiến độ dự án
H1: Năng suất lao động của các thành viên thực hiện dự án là như nhau, và không thay đổi trong suốt quá trình thực hiện dự án.
Tổng thời gian thực hiện các công việc trong dự án không được vượt quá thời gian thực hiện của toàn bộ dự án Khái niệm về tổng thời gian sẽ được giải thích chi tiết hơn ở phần sau, khi chúng ta xem xét cả các công việc thực hiện tuần tự và song song.
Một dự án P gồm các thông tin:
Tb(P): thời gian bắt đầu thực hiện dự án (ngày cụ thể, vd 20/05/2018)
Tc(P): thời gian cần hoàn thành (theo số ngày, vd 365 ngày)
Sơ đồ hoạt động quản lý dự án
Người quản lý dự án Nhân viên
Yêu cầu dự án từ khách hàng
Tạo công việc cho dự án
Giao các công việc cho nhân viên thực hiện
Xem chi tiết công việc và thực hiện
Báo cáo và cập nhập tiến độ công việc Đánh giá tiến độ công việc của nhân viên
Cập nhập tiến độ của công việc
Cập nhập tiến độ của dự án Đánh giá tiến độ của dự án
Hình 2.2 Sơ đồ hoạt động quản lý dự án
Người quản lý dự án
Tạo công việc Phân công công việc
Cập nhập tiến độ công việc
Cập nhập tiến độ dự án
Hình 2.3 Sơ đồ ca sử dụng cho hệ thống quản lý dự án
Các công việc thành phần A1, A2, …, An Mỗi công việc Ai lại có các thông tin:
Thời gian bắt đầu công việc Tb(Ai) (ngày cụ thể)
Thời gian cần hoàn thành Tc(Ai) (số lượng ngày, vd 90 ngày)
Tiến độ đã hoàn thành tính đến thời điểm t: C(Ai, t) (theo tỉ lệ phần trăm công việc).
Danh sách tiền công việc là những nhiệm vụ cần hoàn thành trước khi thực hiện công việc Ai, trong đó Ai phụ thuộc vào những nhiệm vụ này Trong hệ thống này, giữa mỗi cặp công việc sẽ tồn tại một trong hai mối quan hệ: phụ thuộc hoặc độc lập.
Tc(P) lập Nếu chúng phụ thuộc nhau thì thứ tự thực hiện sẽ tuần tự, còn ngược lại chúng có thể được thực hiện song song
Để xác định thời gian kết thúc của một dự án hoặc công việc, ta có thể sử dụng công thức Tf = Tb + Tc, trong đó Tf là thời gian hoàn thành, Tb là thời gian bắt đầu, và Tc là thời gian cần thiết để hoàn thành.
Mối quan hệ giữa các thông tin trên được biểu diễn ở Hình 2.4 dưới đây.
Hình 2.4 Các thời gian trong mô hình ước lượng tiến độ dự án
Ta cần tính được hai đại lượng:
Cexp(P, t): tiến độ theo kế hoạch của dự án tại thời điểm t
Creal(P, t): tiến độ thực tế theo khối lượng các công việc đã hoàn thành của dự án đến thời điểm t
Từ các mô tả trên, chúng ta tiến hành xây dựng các công thức tính tiến độ
Tiến độ theo kế hoạch
Tiến độ của dự án tại thời điểm t được đánh giá dựa trên thời gian thực hiện, thể hiện qua tỷ lệ giữa thời gian đã hoàn thành và thời gian cần thiết để hoàn tất dự án.
Ngoài ra, còn một cách tính khác áp dụng không chỉ cho tiến độ theo kế hoạch và còn cho tiến độ thực tế, đó là:
Crest(P, t) là tỷ lệ công việc còn lại cần hoàn thành, được tính bằng tỷ lệ giữa thời gian còn lại của dự án và thời gian tổng cần thiết để hoàn thành dự án.
Khi thay (2.3) vào (2.2), chúng ta có công thức (2.1) Công thức (2.3) dùng để tính Crest(P, t) được xem là đơn giản vì chưa xem xét mối quan hệ phụ thuộc hoặc độc lập giữa các công việc trong dự án Khi tính đến các mối quan hệ này, thời gian còn lại của dự án sẽ được xác định dựa trên tổng hợp thời gian còn lại của các công việc, từ đó cho ra ước lượng chính xác hơn Tuy nhiên, phương pháp tính này sẽ phức tạp hơn, vì vậy chúng ta sẽ áp dụng nó để tính cho tiến độ thực tế trong phần sau.
Tiến độ thực tế của dự án tại thời điểm t được xác định dựa trên tiến độ hoàn thành của các công việc trong dự án Để tính toán đại lượng này, chúng ta sẽ áp dụng công thức (2.2) và xem xét cả các mối quan hệ độc lập và phụ thuộc giữa các công việc Trước khi đi vào chi tiết công thức, cần lưu ý một số tính chất quan trọng.
Nếu hai công việc Ai và Aj độc lập với nhau, với thời gian còn lại để hoàn thành tương ứng là Trest(Ai) và Trest(Aj), thì thời gian cần thiết để hoàn thành cả hai công việc sẽ là tổng thời gian còn lại của chúng.
Trest(Ai, Aj) = max (Trest(Ai), Trest(Aj))
Mô hình hoá cấu trúc hệ thống
Mô hình cấu trúc là phương pháp biểu diễn các đối tượng trong hệ thống nghiệp vụ, thể hiện thông tin về sự vật, địa điểm và con người cùng mối quan hệ giữa chúng Để xây dựng mô hình cấu trúc hệ thống, chúng ta sử dụng thẻ cộng tác trách nhiệm lớp (Thẻ CRC) và sơ đồ lớp.
Thẻ CRC (Class-Responsibility-Collaboration) là công cụ mô tả trách nhiệm của từng lớp và sự hợp tác giữa các lớp trong việc thực hiện chức năng của hệ thống Dựa trên phân tích nghiệp vụ hệ thống trước đó, chúng ta đã xác định các lớp chịu trách nhiệm cho các chức năng cụ thể, và sự tương tác giữa các lớp này được thể hiện trong Bảng 2.16.
Bảng 2.18 Bảng ánh xạ giữa các chức năng và thẻ CRC
Cập nhập tiến độ công việc x x x
Cập nhập tiến độ dự án x x x
Sau đây ta sẽ đi vào chi tiết thẻ CRC cho từng lớp.
Lớp Phòng ban phụ trách các nghiệp vụ liên quan đến Quản lý phòng ban và được mô tả trên thẻ CRC như trong Bảng 2.17 dưới đây.
Bảng 2.19 Thẻ CRC cho lớp Phòng ban
Class Name: Phòng ban ID: 1 Type: Concrete
Description: Một phòng ban trong công ty Associated Use Cases: 1
Aggregation (has-parts): Nhân viên Other Associations:
Lớp Nhân viên phụ trách các nghiệp vụ liên quan đến Quản lý nhân viên, thẻ CRC cho lớp này được cho trong Bảng 2.18 dưới đây.
Bảng 2.20 Thẻ CRC cho lớp Nhân viên
Class Name: Nhân viên ID: 2 Type: Concrete
Description: Một nhân viên của công ty Associated Use Cases: 2
Other Associations: Phòng ban, Tài khoản, Nhân viên dự án,
Lớp Tài khoản phụ trách các nghiệp vụ liên quan đến Quản lý tài khoản và thẻ CRC cho lớp này được mô tả trong Bảng 2.19.
Bảng 2.21 Thẻ CRC cho lớp Tài khoản
Class Name: Tài khoản ID: 3 Type: Concrete
Description: Một tài khoản của nhân viên Associated Use Cases: 3
Lớp Dự án phụ trách các nghiệp vụ liên quan đến Quản lý dự án, thẻ CRC cho lớp này được mô tả trong Bảng 2.20 dưới đây.
Bảng 2.22 Thẻ CRC cho lớp Dự án
Class Name: Dự án ID: 4 Type: Concrete
Description: Một dự án cần thực hiện Associated Use Cases: 5, 10, 11
Cập nhập tiến độ dự án
Aggregation (has-parts): Công việc Other Associations: Nhân viên dự án
2.2.1.5 Lớp Nhân viên dự án
Lớp Nhân viên dự án lưu trữ thông tin về các nhân viên tham gia dự án, với thẻ CRC được mô tả chi tiết trong Bảng 2.21 dưới đây.
Bảng 2.23 Thẻ CRC cho lớp Nhân viên dự án Front:
Class Name: Nhân viên dự án ID: 5 Type: Concrete
Description: Một nhân viên tham gia vào dự án Associated Use Cases: 7, 12
Other Associations: Dự án, Nhân viên, Phân công công việc
Lớp Công việc đảm nhiệm các nhiệm vụ liên quan đến quản lý dự án, với thẻ CRC được mô tả chi tiết trong Bảng 2.22 dưới đây.
Class Name: Công việc ID: 6 Type: Concrete
Description: Một công việc trong dự án Associated Use Cases: 6, 7, 8, 9, 10, 11
Cập nhập tiến độ công việc
Cập nhập tiến độ dự án
Aggregation (a-part-of): Dự án Other Associations: Phân công công việc, Tiến độ công việc
2.2.1.7 Lớp Phân công công việc
Lớp Phân công công việc được mô tả trong thẻ CRC trong Bảng 2.23 dưới đây
Bảng 2.25 Thẻ CRC cho lớp Phân công công việc
Class Name: Phân công công việc ID: 7 Type: Concrete
Description: Một công việc được phân công cho một nhân viên trong dự án
Cập nhập tiến độ công việc
Other Associations: Công việc, Nhân viên dự án
2.2.1.8 Lớp Tiến độ công việc
Lớp Tiến độ công việc được mô tả trong thẻ CRC trong Bảng 2.24 dưới đây.
Bảng 2.26 Thẻ CRC cho lớp Tiến độ công việc
Class Name: Tiến độ công việc ID: 8 Type: Concrete
Description: Tiến độ của một công việc trong dự án
Cập nhập tiến độ công việc
Cập nhập tiến độ dự án
Tiến độ công việc (int)
Dựa vào các thẻ CRC được xây dựng, ta xây dựng được sơ đồ lớp cho hệ thống quản lý dự án như trên Hình 2.5 dưới đây.
- Số điện thoạ: String + Tạo nhân viên()
- ID công việc: int + Xem công việc()
- ID nhân viên: int + Thêm nhân viên dự án()
+ Cập nhập tiến độ công việc()
- Tiến độ công việc: int
+ Xoá nhân viên() + Chỉnh sửa nhân viên() + Chi tiết nhân viên()
- Trưởng phòng: String + Tạo phòng ban()
+ Xoá phòng ban() + Chỉnh sửa phòng ban() + Chi tiết phòng ban()
- Mật khẩu: String + Tạo tài khoản()
+ Xoá tài khoản() + Chỉnh sửa tài khoản()
+ Cập nhập dự án() + Cập nhập tiến độ dự án()
+ Thêm nhân viên dự án()
+ Danh sách dự án() + Chi tiết dự án()
+ Danh sách công việc() + Chi tiết công việc()
+ Chi tiết tiến độ công việc() + Chỉnh sửa dự án()
Hình 2.5 Sơ đồ các lớp cho hệ thống quản lý dự án
Sau khi đã mô tả được mô hình cấu trúc của hệ thống, ta chuyển sang bước mô hình hoá hoạt động của hệ thống.
Mô hình hoá hoạt động hệ thống
Mô hình hóa hoạt động của hệ thống được thực hiện thông qua hai loại sơ đồ: sơ đồ hoạt động và sơ đồ tuần tự Sơ đồ hoạt động giúp mô hình hóa các nghiệp vụ, trong khi sơ đồ tuần tự mô hình hóa các hoạt động bên trong của hệ thống.
Sơ đồ hoạt động minh họa các bước cần thiết để thực hiện quy trình nghiệp vụ trong hệ thống Bài viết này sẽ giới thiệu sơ đồ hoạt động cho các chức năng chính của hệ thống.
2.3.1.1 Sơ đồ hoạt động Quản lý phòng ban
Các hoạt động quản lý phòng ban do người quản lý thực hiện và được mô tả trong Hình 2.6 dưới đây.
Sơ đồ hoạt động Quản lý phòng ban
Chi tiết phòng ban Xoá phòng ban
Hình 2.6 Sơ đồ hoạt động Quản lý phòng ban
2.3.1.2 Sơ đồ hoạt động quản lý nhân viên
Các hoạt động quản lý nhân viên do người quản lý thực hiện và được mô tả trong
Sơ đồ hoạt động Quản lý nhân viên
Sửa nhân viên Chi tiết nhân viên Xoá nhân viên
Hình 2.7 Sơ đồ hoạt động Quản lý nhân viên
Các hoạt động chính trong quản lý dự án đã được trình bày rõ ràng trong sơ đồ hoạt động (Hình 2.2) ở phần trước Bài viết này sẽ tập trung vào việc phân tích chi tiết một số hoạt động quan trọng nhất trong quy trình quản lý dự án.
2.3.1.3 Sơ đồ hoạt động Quản lý công việc
Quản lý công việc bao gồm việc tạo ra các công việc và công việc con khi cần thiết, cũng như phân công nhiệm vụ cho nhân viên trong dự án Những hoạt động này được thể hiện rõ trong sơ đồ hoạt động ở Hình 2.8.
Sơ đồ hoạt động Tạo dự án
Phân công công việc Danh sách công việc
Danh sách nhân viên dự án
Phân công công việc cho nhân viên dự án
Hình 2.8 Sơ đồ hoạt động Quản lý công việc
2.3.1.4 Sơ đồ hoạt động Cập nhập dự án
Các hoạt động cập nhật dự án, bao gồm sửa đổi, xóa dự án và các công việc do người quản lý dự án thực hiện, được mô tả chi tiết trong Hình 2.9.
Sơ đồ hoạt động Cập nhập dự án
Người quản lý dự án
Chi tiết dự án Chỉnh sửa dự án
Hình 2.9 Sơ đồ hoạt động Cập nhập dự án
2.3.1.5 Sơ đồ hoạt động Cập nhập tiến độ
Các hoạt động cập nhật tiến độ bao gồm việc cập nhật tiến độ công việc và tiến độ dự án Nhân viên dự án thực hiện cập nhật tiến độ công việc dựa trên kết quả công việc của mình và cần sự chấp nhận từ người quản lý dự án Tiến độ dự án được tính toán dựa vào tiến độ của các công việc và được cập nhật khi tiến độ công việc được điều chỉnh Sơ đồ hoạt động mô tả các hoạt động cập nhật tiến độ được thể hiện trong Hình 2.10.
Sơ đồ hoạt động Cập nhập tiến độ
Người quản lý dự án Nhân viên dự án
Cập nhập tiến độ công việc
Xác nhận tiến độ công việc
Giữ tiến độ cũ Tính toán tiến độ dự án Đánh giá tiến độ dự án
[Chưa hoàn thành] [Hoàn thành]
Hình 2.10 Sơ đồ hoạt động Cập nhập tiến độ
Sơ đồ tuần tự minh họa quy trình hoạt động của hệ thống nhằm thực hiện các nghiệp vụ đã định Nó tập trung vào thứ tự các bước thực hiện mà không đề cập đến phương thức thực hiện các bước đó.
2.3.2.1 Sơ đồ tuần tự Quản lý phòng ban
Hoạt động của chức năng Quản lý phòng ban được mô tả trong sơ đồ tuần tự trong Hình 2.11 dưới đây.
:Người quản lý :Phòng ban
Nhập thông tin phòng ban(ID phòng ban)
Thông tin phòng ban sd Quản lý phòng ban
Xác nhận() Xoá phòng ban(ID phòng ban) Đồng ý xoá Chỉnh sửa phòng ban(ID phòng ban)
Thông tin phòng ban đã chỉnh sửa Thông tin phòng ban
Chi tiết phòng ban(ID phòng ban) Thông tin phòng ban
Hình 2.11 Sơ đồ tuần tự Quản lý phòng ban
2.3.2.2 Sơ đồ tuần tự Quản lý nhân viên
Sơ đồ tuần tự mô tả hoạt động của chức năng Quản lý nhân viên được mô tả trong Hình 2.12 dưới đây.
:Người quản lý :Nhân viên
Nhập thông tin nhân viên(ID nhân viên)
Thông tin nhân viên sd Quản lý nhân viên
Xác nhận() Xoá nhân viên(ID nhân viên) Đồng ý xoá
Chỉnh sửa nhân viên(ID nhân viên)
Thông tin nhân viên đã chỉnh sửa Thông tin nhân viên
Chi tiết nhân viên(ID nhân viên) Thông tin nhân viên
Hình 2.12 Sơ đồ tuần tự Quản lý nhân viên
2.3.2.3 Sơ đồ tuần tự Quản lý tài khoản
Sơ đồ tuần tự mô tả hoạt động chức năng Quản lý tài khoản được mô tả trong Hình 2.13 dưới đây.
:Người quản lý :Tài khoản
Nhập thông tin tài khoản(ID tài khoản)
Tài khoản, Mật khẩu, Quyền sd Quản lý tài khoản
Xác nhận() Xoá tài khoản(ID tài khoản) Đồng ý xoá
Chỉnh sửa tài khoản (ID tài khoản)
Thông tin tài khoản đã chỉnh sửa Thông tin tài khoản
Hình 2.13 Sơ đồ tuần tự Quản lý tài khoản
2.3.2.4 Sơ đồ tuần tự Tạo dự án
Hoạt động của chức năng Tạo dự án được mô tả bằng sơ đồ tuần từ trong Hình 2.14 dưới đây.
:Người quản lý dự án :Dự án
Nhập thông tin dự án(ID dự án) Tạo dự án()
Thông tin dự án sd Tạo dự án
Thêm nhân viên dự án(ID dự án, ID nhân viên)
Danh sách nhân viên Danh sách nhân viên
Thêm nhân viên dự án(ID nhân viên)
Hình 2.14 Sơ đồ tuần tự Tạo dự án
2.3.2.5 Sơ đồ tuần tự Tạo công việc
Hoạt động của chức năng Tạo công việc được mô tả bằng sơ đồ tuần tự trong Hình 2.15 dưới đây.
:Người quản lý dự án :Dự án
Chi tiết dự án(ID dự án) sd Tạo công việc
Tạo công việc (ID dự án)
Nhập thông tin công việc(ID công việc)
2.3.2.6 Sơ đồ tuần tự Phân công công việc
Sơ đồ tuần tự mô tả hoạt động của chức năng Phân công công việc được cho trong Hình 2.16 dưới đây.
:Người quản lý dự án :Dự án
Danh sách dự án() sd Phân công công việc
:Công việc :Nhân viên dự án
Danh sách công việc (ID dự án)
Danh sách nhân viên dự án
Danh sách nhân viên dự án(ID dự án)
Danh sách nhân viên dự án
Phân công công việc (ID công việc, ID nhân viên)
Danh sách công việc của dự án Phân công công việc(ID công việc)
Phân công công việc(ID nhân viên)
Hình 2.16 Sơ đồ tuần tự Phân công công việc
2.3.2.7 Sơ đồ tuần tự Xem công việc
Sơ đồ tuần tự mô tả hoạt động của chức năng Xem công việc được cho trong Hình 2.17 dưới đây.
:Nhân viên :Phân công công việc
Xem công việc(ID nhân viên) sd Xem công việc
Chi tiết công việc (ID công việc) Thông tin công việc
Danh sách công việc(ID nhân viên)
Danh sách công việc của nhân viên
2.3.2.8 Sơ đồ tuần tự Cập nhập tiến độ công việc
Hoạt động của chức năng Cập nhập tiến độ công việc được mô tả bằng sơ đồ tuần tự trong Hình 2.18 dưới đây.
:Nhân viên :Phân công công việc
Xem công việc(ID nhân viên) sd Cập nhập tiến độ công việc
Chi tiết công việc (ID công việc) Thông tin công việc
Danh sách công việc(ID nhân viên)
Danh sách công việc của nhân viên
:Người quản lý dự án
Cập nhập tiến độ công việc(ID công việc, Tiến độ) Xác nhận tiến độ công việc(ID công việc, Tiến độ) Đánh giá tiến độ công việc
Kết quả đánh giá tiến độ công việc
Hình 2.18 Sơ đồ tuần tự Cập nhập tiến độ công việc
2.3.2.9 Sơ đồ tuần tự Cập nhập tiến độ dự án
:Người quản lý dự án :Dự án
Danh sách dự án() sd Cập nhập tiến độ dự án
:Công việc :Tiến độ công việc
Các ID công việc thuộc dự án Danh sách công việc(ID dự án)
Chi tiết tiến độ công việc(ID công việc) Cập nhập tiến độ dự án(ID dự án)
Tính toán tiến độ dự án() Tiến độ dự án
Hình 2.19 Sơ đồ tuần tự Cập nhập tiến độ dự án
Hoạt động của chức năng Cập nhập tiến độ dự án được mô tả bằng sơ đồ tuần tự như trên Hình 2.19.
2.3.2.10 Sơ đồ tuần tự Cập nhập dự án
Sơ đồ tuần tự mô tả hoạt động của chức năng Cập nhập dự án được thể hiện trongHình 2.20 dưới đây.
:Người quản lý dự án :Dự án
Danh sách dự án() sd Cập nhập dự án
Thông tin dự án Chỉnh sửa dự án(ID dự án)
Thông tin dự án đã chỉnh sửa
Danh sách công việc(ID dự án) Danh sách công việc của dự án
Chỉnh sửa công việc(ID công việc) Thông tin công việc
Thông tin công việc đã chỉnh sửa
Hình 2.20 Sơ đồ tuần tự Cập nhập dự án
Chúng ta đã hoàn thành quy trình phân tích hệ thống, bao gồm việc mô hình hóa các chức năng thông qua sơ đồ ca sử dụng và kịch bản hoạt động Tiếp theo, chúng ta đã mô hình hóa cấu trúc hệ thống bằng thẻ CRC và sơ đồ lớp Cuối cùng, hoạt động của hệ thống đã được mô hình hóa bằng các sơ đồ tuần tự cho từng chức năng cụ thể.
Tiếp theo chúng ta sẽ thực hiện bước tiếp theo trong quy trình phát triển phần mềm là thiết kế hệ thống.
THIẾT KẾ HỆ THỐNG
Mô hình thiết kế
Đến nay, chúng ta đã chú trọng vào nghiệp vụ của hệ thống mà chưa xem xét môi trường hệ thống như quản lý dữ liệu, giao diện người dùng và kiến trúc vật lý Để chuyển từ mô hình phân tích sang thiết kế, cần bổ sung thông tin về môi trường này Chúng ta có thể phân chia các thành phần hệ thống thành các lớp riêng biệt hoặc áp dụng mô hình MVC (Model-View-Controller) Việc phân lớp có thể thực hiện thông qua các gói và sơ đồ gói.
Kiến trúc phần mềm được phân chia thành ba lớp chính: lớp giao diện, lớp nghiệp vụ và lớp quản lý dữ liệu Mỗi lớp đảm nhận những nhiệm vụ riêng biệt và có mối quan hệ phụ thuộc lẫn nhau Các lớp này có thể được hình dung như những gói riêng biệt và có thể được thể hiện qua sơ đồ lớp Chi tiết về nhiệm vụ của từng lớp sẽ được trình bày cụ thể trong các phần thiết kế sau.
Hệ thống quản lý dự án của chúng ta cho phép tổ chức thành các lớp giao diện, nghiệp vụ và dữ liệu, từ đó xây dựng mô hình thiết kế theo sơ đồ gói như thể hiện trong Hình 3.1.
Trong phần này, chúng ta sẽ tập trung vào thiết kế chi tiết cho từng lớp (layer), đặc biệt là thiết kế cơ sở dữ liệu và giao diện, vì lớp nghiệp vụ đã được phân tích kỹ lưỡng trong phần trước.
Hình 3.21 Sơ đồ gói các lớp trong mô hình thiết kế
Thiết kế cơ sở dữ liệu
Dựa trên sơ đồ các lớp thiết kế và yêu cầu dữ liệu trong từ điển dữ liệu, chúng ta xác định các thực thể của mô hình thực thể liên kết (ERD) như được trình bày trong Bảng 3.1 dưới đây.
Bảng 3.27 Các thực thể và thuộc tính trong mô hình ERD
Tên thực thể Tên sử dụng Các thuộc tính
Phòng ban Department Tên phòng ban, Trưởng phòng, Mô tả
Nhân viên bao gồm các thông tin như họ tên, giới tính, vị trí, kỹ năng, email, số điện thoại, phòng ban, tài khoản và mô tả Tài khoản sẽ có tên tài khoản, mật khẩu, quyền truy cập, ngày hoàn thành, mô tả và tiến độ.
Công việc Task Dự án, Tên công việc, Người tạo, Ngày tạo,
Ngày bắt đầu, ngày kết thúc, Ngày hoàn thành,
Mô tả Nhân viên dự án Staff Project Dự án, Nhân viên
Phân công công việc Staff Task Nhân viên, Công việc
Tiến độ công việc Progress Task Công việc, Ngày đánh giá, Tiến độ, Xác nhận,
Chi tiết đánh giá Tiến độ dự án Progress Project Dự án, Ngày đánh giá, Tiến độ, Xác nhận, Chi tiết đánh giá
Xác định liên kết giữa các thực thể
Quan hệ 1:N giữa Nhân viên và Phòng ban: Một Phòng ban có nhiều
Nhân viên, nhưng ngược lại một Nhân viên chỉ thuộc một Phòng ban.
Quan hệ 1:1 giữa Nhân viên và Tài khoản: Một Nhân viên có một Tài khoản, và ngược lại một Tài khoản thuộc về một Nhân viên.
Quan hệ 1:N giữa Dự án và Công việc: Một Dự án bao gồm nhiều công việc, nhưng ngược lại Một công việc chỉ thuộc về một Dự án.
Trong mô hình quan hệ 1:N giữa Dự án và Nhân viên dự án, mỗi Dự án có thể có nhiều Nhân viên tham gia, trong khi mỗi Nhân viên chỉ được gán cho một Dự án duy nhất.
Trong mối quan hệ 1:N giữa Nhân viên và Nhân viên dự án, một Nhân viên có thể tham gia vào nhiều Dự án và do đó có thể là nhiều Nhân viên dự án khác nhau Tuy nhiên, mỗi Nhân viên dự án chỉ tương ứng với một Nhân viên duy nhất.
Trong mối quan hệ 1:N giữa Công việc và Phân công công việc, một Công việc có thể được giao cho nhiều người, dẫn đến việc có nhiều Phân công công việc khác nhau Ngược lại, mỗi Phân công công việc chỉ thuộc về một Công việc cụ thể.
Trong mô hình quan hệ 1:N giữa Nhân viên và Phân công công việc, mỗi Nhân viên có khả năng thực hiện nhiều Công việc, dẫn đến việc có nhiều Phân công công việc Tuy nhiên, mỗi Phân công công việc chỉ được thực hiện bởi một Nhân viên duy nhất.
Trong mối quan hệ 1:N giữa công việc và tiến độ công việc, mỗi công việc có thể có nhiều tiến độ công việc được đánh giá qua từng lần cập nhật Ngược lại, mỗi tiến độ công việc chỉ thuộc về một công việc cụ thể.
Trong quản lý dự án, mối quan hệ 1:N giữa Dự án và Tiến độ dự án thể hiện rằng mỗi Dự án có thể liên kết với nhiều Tiến độ dự án qua các lần cập nhật tiến độ Ngược lại, mỗi Tiến độ dự án chỉ thuộc về một Dự án duy nhất.
Dựa vào mô tả của các thực thể và liên kết giữa các thực thể, ta xây dựng được sơ đồ thực thể liên kết (ERD) như trên Hình 3.2.
Phòng ban 1 có N Nhân viên 1 có 1 Tài khoản
Phân công công việc có có là làm
Tiến độ công việc có có
Hình 3.22 Sơ đồ thực thể liên kết
Sau khi hoàn thành sơ đồ thực thể liên kết, quá trình chuyển đổi sang mô hình quan hệ sẽ tạo ra lược đồ cơ sở dữ liệu quan hệ như thể hiện trong Hình 3.3.
Thiết kế giao diện
Chúng ta sẽ xây dựng giao diện bằng cách sử dụng các bản mẫu giao diện web có sẵn, cụ thể là Admin LTE.
Giao diện chính của website như trên Hình 3.4.
Hình 3.24 Giao diện chính của website Để hiển thị các danh sách phòng ban, nhân viên, dự án hay công việc, sử dụng giao diện bảng như trên Hình 3.5.
Hình 3.25 Giao diện bảng để hiển thị danh sách Để tạo hay chỉnh sửa các đối tượng như nhân viên hay dự án ta sử dụng form như
Giao diện chỉnh sửa và thêm thông tin dự án, như được thể hiện trong Hình 3.26, cho phép hiển thị chi tiết về các đối tượng như công việc và nhân viên, tương tự như giao diện trong Hình 3.7.
Hình 3.27 Giao diện hiển thị chi tiết công việc
Chúng em sử dụng thư viện Highchart để trực quan hóa dữ liệu tiến độ dưới dạng đồ thị, giúp người dùng dễ dàng quan sát và phân tích thông tin.
Hình 3.28 Giao diện hiển thị dưới dạng đồ thị
Chúng ta đã hoàn thiện thiết kế hệ thống theo mô hình phân lớp MVC, bao gồm lớp cơ sở dữ liệu và lớp giao diện Dựa trên thiết kế này, hệ thống sẽ được triển khai trên nền tảng Java Spring.
TRIỂN KHAI VÀ ĐÁNH GIÁ HỆ THỐNG
Triển khai hệ thống
Ta triển khai cơ sở dữ liệu trên công cụ MySQL Workbench 8.0 Tạo một lược đồ có tên “rangdondev3”.
I use the Spring Tool Suite 4 toolkit to deploy applications By modifying the ddl-auto property in the application.properties file from "none" to the appropriate setting, we can create tables in the database corresponding to the entities in the system model.
Sau khi thiết lập các bảng trong cơ sở dữ liệu, bước tiếp theo là thêm thủ công các quyền vào bảng phân quyền (role) trong MySQL, bao gồm ba quyền chính được thể hiện trong Hình 3.1 dưới đây.
Hình 4.29 Thêm các quyền cho bảng phân quyền trong cơ sở dữ liệu
Chúng tôi xây dựng ứng dụng bằng Spring Boot App và để kiểm thử hệ thống, cần đăng ký tài khoản admin Việc tạo tài khoản chỉ nhằm hỗ trợ kiểm thử, vì hệ thống không cho phép người dùng tự đăng ký; admin sẽ tạo tài khoản cho người dùng Hình 4.2 minh họa quá trình tạo tài khoản với quyền admin.
Sau khi tạo tài khoản admin, bạn cần đăng nhập vào hệ thống để kiểm tra các chức năng hoạt động theo yêu cầu nghiệp vụ Màn hình đăng nhập hệ thống được hiển thị trong Hình 4.3.
Sau khi đã đăng nhập, ta chạy chương trình để kiểm thử các chức năng hệ thống,kết quả chạy chương trình được trình bày trong phần dưới đây.
Hình 4.30 Đăng ký tài khoản để kiểm thử hệ thống
Hình 4.31 Đăng nhập vào hệ thống
Kết quả chạy chương trình
Sau khi đăng nhập vào hệ thống, ta sẽ vào trang chủ của ứng dụng, có giao diện
Hình 4.32 Trang chủ của ứng dụng
Giao diện chính của trang chủ bao gồm các menu chức năng quan trọng như quản lý tài khoản, phòng ban, nhân viên và dự án Chúng ta sẽ lần lượt thử nghiệm từng chức năng này của hệ thống.
4.2.1 Chức năng quản lý tài khoản
4.2.1.1 Hiển thị danh sách tài khoản
Danh sách tài khoản trong cơ sở dữ liệu được trình bày dưới dạng bảng, hiển thị tên tài khoản cùng với quyền hạn tương ứng Giao diện còn cung cấp các nút để người dùng tương tác với hệ thống, như thể hiện trong Hình 4.5 dưới đây.
Hình 4.33 Hiển thị danh sách tài khoản
4.2.1.2 Thêm tài khoản cho người dùng hệ thống
Để thêm tài khoản, từ màn hình danh sách tài khoản, hãy nhấn vào nút "Create Account" Bạn cần cung cấp thông tin tài khoản bao gồm tên tài khoản (Account Name), mật khẩu (Password) và quyền của tài khoản (Account Role) Có ba quyền chính để lựa chọn khi thêm tài khoản: admin, manager và staff.
Hình 4.34 Thêm tài khoản cho người dùng hệ thống
Khi tạo tài khoản, cần lưu ý không thêm tài khoản trùng với những tài khoản đã có trong hệ thống, nếu không sẽ gặp lỗi Sau khi tài khoản được tạo thành công, chủ tài khoản sẽ nhận được email thông báo.
Từ màn hình danh sách tài khoản, nhấn vào biểu tượng bút chì để chỉnh sửa thông tin tài khoản Hệ thống chỉ cho phép thay đổi mật khẩu và quyền truy cập, không cho phép chỉnh sửa tên tài khoản Lưu ý rằng chỉ có quản trị viên mới có quyền thực hiện việc chỉnh sửa tài khoản.
Giao diện chỉnh sửa tài khoản được thể hiện trên Hình 4.7.
Tài khoản sẽ bị xóa khi không còn sử dụng, và chỉ tài khoản có quyền admin mới có khả năng thực hiện việc này Để xóa tài khoản, người dùng cần nhấn vào biểu tượng thùng rác tương ứng Hệ thống sẽ yêu cầu xác nhận trước khi tiến hành xóa, như thể hiện trong Hình 4.8 Sau khi xóa, người dùng sẽ nhận được thông báo thành công hoặc thông báo lỗi nếu không có quyền admin.
Hình 4.35 Chỉnh sửa thông tin tài khoản
Hình 4.36 Xoá tài khoản người dùng khỏi hệ thống
4.2.2 Chức năng quản lý phòng ban
4.2.2.1 Danh sách các phòng ban
Để truy cập danh sách các phòng ban trong công ty, hãy chọn menu Quản lý Phòng ban Danh sách này sẽ được hiển thị dưới dạng bảng, kèm theo các thông tin mô tả về từng phòng ban và các nút chức năng cho phép người dùng tương tác với hệ thống, như minh họa trong Hình 4.9.
Hình 4.37 Hiển thị danh sách các phòng ban trong công ty
Để tạo phòng ban, từ màn hình danh sách phòng ban, hãy nhấn nút "Create Department" Giao diện tạo phòng ban sẽ hiển thị cùng với các trường thông tin cần thiết để điền.
Hình 4.38 Tạo phòng ban mới
Từ màn hình danh sách phòng ban, hãy nhấn vào biểu tượng chỉnh sửa để cập nhật thông tin phòng ban Giao diện chỉnh sửa sẽ hiển thị như trong Hình 4.11.
Hình 4.39 Chỉnh sửa phòng ban
4.2.2.4 Xoá phòng ban Ở màn hình danh sách các phòng ban, chọn biểu tượng xoá tương ứng với phòng ban để thực hiện xoá phòng ban không còn hoạt động Hệ thống sẽ yêu cầu người dùng xác nhận yêu cầu xoá như trong Hình 4.12.
Hình 4.40 Xoá phòng ban không còn hoạt động
4.2.2.5 Xem chi tiết phòng ban
Từ màn hình danh sách phòng ban, người dùng có thể nhấn vào biểu tượng chi tiết để truy cập thông tin cụ thể của từng phòng ban Thông tin này sẽ được hiển thị rõ ràng, như minh họa trong Hình 4.13.
Hình 4.41 Hiển thị thông tin chi tiết của phòng ban
4.2.3 Chức năng quản lý nhân viên
Khi truy cập vào menu Quản lý Nhân viên, người dùng sẽ thấy danh sách nhân viên được trình bày dưới dạng bảng, bao gồm các thông tin mô tả chi tiết về từng nhân viên cùng với các nút tương tác để thao tác với hệ thống, như thể hiện trong Hình 4.14.
Hình 4.42 Hiển thị danh sách nhân viên của công ty
Để thêm nhân viên vào công ty, từ màn hình danh sách nhân viên, bạn hãy nhấn nút "Add Staff" Giao diện và các trường thông tin cần điền của nhân viên sẽ được hiển thị như trong Hình 4.15.
Hình 4.43 Thêm nhân viên vào công ty
4.2.3.3 Chỉnh sửa thông tin nhân viên
Từ màn hình danh sách nhân viên, chọn biểu tượng chỉnh sửa để chỉnh sửa thông tin nhân viên Form chỉnh sửa nhân viên được thể hiện trong Hình 4.16.
Hình 4.44 Chỉnh sửa thông tin nhân viên
Để xóa nhân viên không còn làm việc khỏi danh sách, bạn hãy chọn biểu tượng xoá trên màn hình danh sách nhân viên Hệ thống sẽ hiển thị yêu cầu xác nhận như trong Hình 4.17.
Hình 4.45 Xoá nhân viên khỏi danh sách nhân viên
4.2.3.5 Thông tin chi tiết nhân viên
Từ màn hình danh sách nhân viên, nhấn vào biểu tượng chi tiết để truy cập thông tin cụ thể của từng nhân viên Các thông tin này sẽ được trình bày rõ ràng như trong Hình 4.18.
Hình 4.46 Xem thông tin chi tiết của nhân viên
4.2.4 Chức năng quản lý dự án