1. Trang chủ
  2. » Luận Văn - Báo Cáo

đồ án tiểu luận môn học

103 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Cấu trúc

  • CHƯƠNG 1. THU THẬP YÊU CẦU HỆ THỐNG (0)
    • 1.1. Quy trình nghiệp vụ quản lý dự án (0)
    • 1.2. Yêu cầu về người dùng hệ thống (20)
    • 1.3. Các yêu cầu chức năng (20)
    • 1.4. Yêu cầu về dữ liệu (21)
    • 1.5. Mục tiêu và phạm vi hệ thống (21)
  • CHƯƠNG 2. PHÂN TÍCH HỆ THỐNG (23)
    • 2.1. Mô hình hoá chức năng hệ thống (23)
      • 2.1.1. Các chức năng chính của hệ thống quản lý dự án (23)
      • 2.1.2. Quy trình quản lý dự án (24)
      • 2.1.3. Mô hình ước lượng tiến độ dự án (25)
      • 2.1.4. Kịch bản hoạt động (31)
    • 2.2. Mô hình hoá cấu trúc hệ thống (40)
      • 2.2.1. Thẻ CRC (40)
      • 2.2.2. Sơ đồ lớp (46)
    • 2.3. Mô hình hoá hoạt động hệ thống (47)
      • 2.3.1. Sơ đồ hoạt động (47)
      • 2.3.2. Sơ đồ tuần tự (52)
  • CHƯƠNG 3. THIẾT KẾ HỆ THỐNG (60)
    • 3.1. Mô hình thiết kế (60)
    • 3.2. Thiết kế cơ sở dữ liệu (61)
    • 3.3. Thiết kế giao diện (64)
  • CHƯƠNG 4. TRIỂN KHAI VÀ ĐÁNH GIÁ HỆ THỐNG (68)
    • 4.1. Triển khai hệ thống (68)
    • 4.2. Kết quả chạy chương trình (69)
      • 4.2.1. Chức năng quản lý tài khoản (70)
      • 4.2.2. Chức năng quản lý phòng ban (73)
      • 4.2.3. Chức năng quản lý nhân viên (76)
      • 4.2.4. Chức năng quản lý dự án (78)
    • 4.3. Đánh giá (88)
  • KẾT LUẬN (89)
  • TÀI LIỆU THAM KHẢO (90)
  • PHỤ LỤC (92)

Nội dung

NGUYỄN THANH BÌNHTên đồ án: PHÁT TRIỂN PHẦN MỀM QUẢN LÝ DỰ ÁNChọn các mức điểm phù hợp cho sinh viên trình bày theo các tiêu chí dưới đây: Rất kém 1; Kém 2; Đạt 3; Giỏi 4; Xuất sắc 5 Có

THU THẬP YÊU CẦU HỆ THỐNG

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 báo cáo tiến độ công việc cho người quản lý dự án và người quản lý dự án đánh giá kết quả công việc để xác định tiến độ công việc

8 Cập nhập tiến độ Người quản lý Đánh giá tiến độ chung của toàn bộ dự án dự án 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 = 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 độ + Mô tả Công việc = Tên + Mô tả + Ngày tạo + Người tạo + 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

Từ các yêu cầu thu thập được về chức năng, người dùng và dữ liệu của hệ thống, ta cần xây dựng một hệ thống mới giúp người dùng có thể quản lý được cả nhân viên và các dự án của công ty Hệ thống cần xây dựng để quản lý dự án một cách hiệu quả, từ việc phân chia công việc cho các nhân viên đến quản lý tiến độ của các công việc đã được giao cũng như tiến độ của toàn bộ dự án.

Việc kết hợp cả việc quản lý nhân viên và quản lý dự án trong một hệ thống sẽ giúp việc quản lý nhân viên tham gia vào các dự án đơn giản và thuận tiện hơn Hệ thống cũng giúp cho nhà quản lý và nhân viên có thể dễ dàng theo dõi cũng như phân chia công việc một cách rõ ràng. Để có thể thực hiện được các yêu cầu này, hệ thống cần thêm chức năng quản lý tài khoản để quản lý quyền hạn của người dùng hệ thống và thuận tiện cho người dùng sử dụng các chức năng của 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 đã có các yêu cầu của hệ thống, ta cần phân tích các yêu cầu này để xây dựng các mô hình nghiệp vụ để có thể 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 trong nghiệp vụ quản lý của công ty Ở đây chúng ta tập trung vào vấn đề quản lý dự án, nhưng để hỗ trợ cho việc quản lý dự án, chúng ta cần thêm nghiệp vụ quản lý nhân viên để cung cấp nhân sự cho dự án Bên cạnh đó, để người dùng có thể sử dụng các chức năng của hệ thống cần có tài khoản để truy nhập, vì vậy hệ thống cần thêm chức năng quản lý tài khoản.

Vì chức năng quản lý nhân viên chỉ để hỗ trợ cho quản lý dự án nên ở đây nghiệp vụ quản lý nhân viên chỉ gồm một số chức năng cơ bản là tạo hồ sơ nhân viên, cập nhập hồ sơ nhân viên Vì các nhân viên thuộc về các phòng ban nên hệ thống cần thêm chức năng quản lý phòng ban

Như vậy hệ thống yêu cầu 4 chức năng chính là: 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ư trong sơ đồ ca sử dụng trên Hình 2.1.

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 lập kế hoạch cho dự án bao gồm các công việc cần thực hiện, lựa chọn nhân sự thực hiện, phân công công việc cho nhân viên và đưa ra 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 công việc được giao cho các nhân viên thực hiện, các nhân viên này có nhiệm vụ báo cáo tiến độ công việc định kỳ và các công việc sẽ được đánh giá tiến độ dựa vào 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ể có những yêu cầu thay đổi từ khách hàng hoặc do tiến độ công việc thay đổi mà ta có thể cần cập nhập lại các thông tin cũng như các công việc của dự án.

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.

Ta có thể thấy, ở đây nhiệm vụ ước lượng và đánh giá tiến độ dự án là nhiệm vụ trọng tâm của hệ thống, vì nó ảnh hưởng đến kết quả cũng như thành công của dự án. Để tính toán tiến độ của dự án có rất nhiều cách khác nhau, đánh giá dựa trên các tiêu chí khác nhau Ở đây, 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.

H2: Tổng thời gian thực hiện các công việc của dự án không lớn hơn thời gian thực hiện dự án (Khái niệm tổng thời gian sẽ được làm rõ hơn ở phần sau, khi chúng ta tính đến cả các công việc làm 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)

Hình 2.2 Sơ đồ hoạt động quản lý 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 A , A , …, A Mỗi công việc A lại có các thông tin: 1 2 n i

Thời gian bắt đầu công việc T (Ai) (ngày cụ thể)b

Thời gian cần hoàn thành T (Ai) (số lượng ngày, vd 90 ngày)c

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 (hay công việc bị phụ thuộc): là những công việc cần hoàn thành trước khi thực hiện công việc Ai, tức là Ai phụ thuộc vào những công việc này Trong hệ thống này, chúng tôi coi giữa mỗi cặp công việc sẽ tồn tại một trong hai quan hệ: phụ thuộc hoặc độc 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

Từ thời gian bắt đầu thực hiện và thời gian cần hoàn thành, ta sẽ suy được thời gian mà dự án/công việc sẽ kết thúc: T = T + T f b c

Tc(P) 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 độ theo kế hoạch của dự án tính đến thời điểm t, được ước lượng thuần túy theo đơn vị thời gian, và nó sẽ là tỉ lệ giữa thời gian đã làm với thời gian cần hoàn thành dự án, tức là:

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à:

Trong đó C (P, t) là tỉ lệ công việc còn phải làm (chỉnh là tỉ lệ giữa thời gian cònrest phải làm của dự án và thời gian cần hoàn thành dự án) và được tính đơn giản theo công thức:

Thay (2.3) vào (2.2) ta sẽ có công thức (2.1) Công thức (2.3) tính C (P, t) ở trênrest được gọi là đơn giản vì ta chưa tính đến quan hệ phụ thuộc/độc lập giữa các công việc trong dự án Khi tính đến cả các quan hệ này, thì thời gian còn thực hiện của dự án sẽ được tính trên việc tổng hợp thời gian còn thực hiện trên các công việc, nên sẽ cho được công thức ước lượng chính xác hơn Tuy nhiên, cách tính sẽ phức tạp hơn, nên chúng ta sẽ dành cách tính này để tính cho tiến độ thực tế ở phần sau.

Tiến độ thực tế của dự án tính đến thời điểm t là tiến độ mà dựa theo tiến độ đã hoàn thành của các công việc trong dự án Ta sẽ áp dụng cách tiếp cận như tính công thức (2.2) ở trên để tính đại lượng này, nhưng sẽ tính đến cả các quan hệ độc lập/phụ thuộc giữa các công việc Trước khi đi vào công thức tính, chúng ta trước hết lưu ý đến một số tính chất sau:

Tính chất 1: nếu hai công việc A và A độc lập với nhau, và có thời gian còn lại i j cần hoàn thành tương ứng là Trest(Ai) và Trest(Aj) Khi đó, thời gian còn lại cần hoàn thành cả hai công việc sẽ là:

Trest(Ai, A ) = j max (Trest(Ai), Trest(A ))j

Tính chất 2: nếu hai công việc A và A phụ thuộc nhau, và có thời gian còn lại i j cần hoàn thành tương ứng là Trest(Ai) và Trest(Aj) Khi đó, thời gian còn lại cần hoàn thành cả hai công việc sẽ là:

Trest(Ai, A ) = Tj rest(Ai) + Trest(A )j

Hai tính chất trên dễ dàng mở rộng cho một nhóm công việc độc lập hoặc phụ thuộc nhau

Tính tiến độ thực tế: áp dụng chiến lược của công thức (2.2) ở trên, ta có:

Mô hình hoá cấu trúc hệ thống

Mô hình cấu trúc là cách để biểu diễn các đối tượng được sử dụng và tạo ra bởi một hệ thống nghiệp vụ Nó thể hiện các sự vật, địa điểm hoặc con người có thông tin được thu thập và mối liên hệ giữa các đối tượng này Để xây dựng mô hình cấu trúc hệ thố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) dùng để mô tả trách nhiệm của mỗi lớp và sự cộng tác của các lớp để thực hiện một chức năng hệ thống Với nghiệp vụ hệ thống đã được chúng ta phân tích ở phần trên, ta xây dựng được các lớp chịu trách nhiệm cho từng chức năng và sự hợp tác giữa các lớp được thể hiện trong Bảng 2.16 dưới đây.

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 Front:

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

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 Front:

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

CollaboratorsPhòng banTài khoảnNhân viên dự án

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 Front:

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 Front:

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

Collaborators Công việc Nhân viê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ữ các thông tin về nhân viên tham gia vào một dự án, thẻ CRC cho lớp này được mô 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

Dự án Nhân viên Phân công công việc

Other Associations: Dự án, Nhân viên, Phân công công việc

Lớp Công việc phụ trách các nghiệp vụ liên quan đến quản lý công việc của dự án, thẻ CRC cho lớp này được mô tả trong Bảng 2.22 dưới đây

Bảng 2.24 Thẻ CRC cho lớp Công việc Front:

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

Dự án Phân công công việc Tiến độ công việc

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

Collaborators Công việc Nhân viên dự án

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 Associated Use Cases: 9,

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.

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

Ta mô hình hoá hoạt động của hệ thống sử dụng hai loại sơ đồ là sơ đồ hoạt động và sơ đồ tuần tự lần lượt mô hình hoá nghiệp vụ và mô hình hoá hoạt động bên trong của hệ thống

Sơ đồ hoạt động mô tả các hoạt động cần để thực hiện quy trình nghiệp vụ của hệ thống Sau đây sẽ trình bày 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ả trongHình 2.6 dưới đây.

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ả trongHình 2.7 dưới đây.

Hình 2.7 Sơ đồ hoạt động Quản lý nhân viên

Các hoạt động chính quản lý dự án đã được mô tả trong sơ đồ hoạt động trong Hình 2.2 ở phần trên Sau đây ta sẽ đi vào chi tiết cho một số hoạt động quan trọng nhất trong quá trình quản lý dự án.

2.3.1.3 Sơ đồ hoạt động Quản lý công việc

Các hoạt động quản lý công việc bao gồm tạo công việc, tạo công việc con (nếu cần), phân công công việc cho nhân viên dự án Các hoạt động này được mô tả trong sơ đồ hoạt động trên Hình 2.8.

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ập dự án như sửa, xoá dự án và các công việc do người quản lý dự án thực hiện và được mô tả trên Hình 2.9.

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ập bao gồm cập nhập tiến độ công việc và cập nhập tiến độ dự án Việc cập nhập tiến độ công việc do nhân viên dự án dựa vào kết quả thực hiện công việc của mình thực hiện để đánh giá và phải được 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 của dự án và được cập nhập khi tiến độ công việc được cập nhập Các hoạt động cập nhập tiến độ được mô tả trong sơ đồ hoạt động trên Hình 2.10.

Hình 2.10 Sơ đồ hoạt động Cập nhập tiến độ

Sơ đồ tuần tự mô tả hoạt động bên trong của hệ thống để thực hiện nghiệp vụ đã đề ra Nó chỉ quan tâm đến trình tự các bước mà không cần quan tâm các bước này được thực hiện như nào.

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ự trongHình 2.11 dưới đây.

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ả trongHình 2.12 dưới đây.

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ả trongHình 2.13 dưới đây.

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ình2.14 dưới đây.

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.

Hình 2.15 Sơ đồ tuần tự Tạo 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 trongHình 2.16 dưới đây.

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.

Hình 2.17 Sơ đồ tuần tự Xem công việc 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.

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

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 trong Hình 2.20 dưới đây.

Hình 2.20 Sơ đồ tuần tự Cập nhập dự án

Như vậy chúng ta đã hoàn thành các bước phân tích hệ thống từ mô hình hoá các chức năng hệ thống bằng sơ đồ ca sử dụng và kịch bản hoạt động; mô hình hoá cấu trúc hệ thống bằng thẻ CRC và sơ đồ lớp; cuối cùng là mô hình hoá hoạt động hệ thống bằng các sơ đồ tuần tự cho từng chức năng.

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ế

Cho đến nay, chúng ta mới chỉ tập trung vào vấn đề nghiệp vụ của hệ thống mà hoàn toàn bỏ qua môi trường hệ thống (quản lý dữ liệu, giao diện người dùng, kiến trúc vật lý) Để có thể chuyển từ mô hình phân tích sang mô hình thiết kế, chúng ta cần thêm các thông tin về môi trường hệ thống này Chúng ta có thể thực hiện điều này bằng cách chia các thành phần hệ thống thành các lớp (layer) riêng biệt hay sử dụng mô hình MVC (Model-View-Controller) Việc phân lớp có thể thực hiện bằng cách sử dụng các gói (package) và sơ đồ gói (package diagram).

Kiến trúc phần mềm thường được chia thành các lớp: lớp giao diện, lớp nghiệp vụ và lớp quản lý dữ liệu Mỗi lớp có nhiệm vụ khác nhau và có quan hệ phụ thuộc lẫn nhau Mỗi lớp (layer) này có thể được xem là một gói và có thể được biểu diễn thành sơ đồ lớp Nhiệm vụ của từng lớp sẽ được trình bày chi tiết ở các phần thiết kế cho từng lớp ở phần sau.

Với hệ thống quản lý dự án của chúng ta cũng có thể tổ chức thành các lớp giao diện, nghiệp vụ và dữ liệu như trên và ta có thể xây dựng mô hình thiết kế như trên sơ đồ gói trong Hình 3.1 dưới đây.

Sau đây ta sẽ đi vào thiết kế chi tiết cho từng lớp (layer), do lớp nghiệp vụ đã được phân tích khá kỹ lưỡng trong phần phân tích hệ thống nên trong phần này chúng ta tập trung vào phần thiết kế cơ sở dữ liệu và thiết kế giao diện.

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

Từ sơ đồ các lớp đã được thiết kế và các yêu cầu về dữ liệu thu thập được liệt kê trong từ điển dữ liệu ở phần thu thập yêu cầu, ta xác định được các thực thể của mô hình thực thể liên kết (ERD) được liệt kê 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 Staff 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, Mô tả Tài khoản Account Tên tài khoản, Mật khẩu, Quyền

Dự án Project Tên dự án, Ngày tạo, Ngày bắt đầu, Ngày kết thúc, Ngày hoàn thành, Mô tả, 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.

Quan hệ 1:N giữa Dự án và Nhân viên dự án: Một Dự án có nhiều Nhân viên dự án tham gia, nhưng ngược lại một Nhân viên dự án chỉ thuộc về một Dự án.

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 nên có thể là nhiều Nhân viên dự án, nhưng ngược lại một Nhân viên dự án chỉ là một Nhân viên.

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 phân công cho nhiều người nên có nhiều Phân công công việc, và ngược lại một Phân công công việc là của một Công việc.

Quan hệ 1:N giữa Nhân viên và Phân công công việc: Một Nhân viên có thể thực hiện nhiều Công việc nên có nhiều Phân công công việc, nhưng ngược lại một Phân công công việc do một Nhân viên thực hiện.

Quan hệ 1:N giữa Công việc và Tiến độ công việc: Một Công việc sẽ có nhiều Tiến độ công việc được đánh giá ở mỗi lần cập nhập tiến độ, nhưng ngược lại một Tiến độ công việc là của một Công việc.

Quan hệ 1:N giữa Dự án và Tiến độ dự án: Một Dự án sẽ có nhiều Tiến độ dự án cho mỗi lần cập nhập tiến độ, nhưng ngược lại, một Tiến độ dự án là của một dự án.

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.

Hình 3.22 Sơ đồ thực thể liên kết Sau khi đã có sơ đồ thực thể liên kết, ta chuyển từ mô hình thực thể liên kết sang mô hình quan hệ, ta được lược đồ cơ sở dữ liệu quan hệ như trên Hình 3.3.

Hình 3.23 Lược đồ cơ sở dữ liệu cho hệ thống quản lý dự án

Thiết kế giao diện

Với phần giao diện, chúng ta sử dụng các bản mẫu giao diện web có sẵn để xây dựng giao diện Ở đây chúng ta sử dụng Admin LTE để làm giao diện.

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ư trên Hình 3.6.

Hình 3.26 Giao diện để chỉnh sửa, thêm thông tin dự án Để hiển thị chi tiết cho các đối tượng như công việc hay nhân viên, ta sử dụng giao diện như trên Hình 3.7.

Hình 3.27 Giao diện hiển thị chi tiết công việc

Ngoài ra, chúng em còn sử dụng thư hiện Highchart để hiển thị các dữ liệu tiến độ dưới dạng đồ thị, để có thể quan sát một cách trực quan.

Hình 3.28 Giao diện hiển thị dưới dạng đồ thị

Như vậy chúng ta đã xây dựng được thiết kế với mô hình phân lớp theo MVC và thiết kế cho từng lớp gồm lớp cơ sở dữ liệu và lớp giao diện Dựa trên thiết kế này,chúng ta sẽ triển khai hệ thống 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”.

Ta sử dụng bộ công cụ Spring Tool Suite 4 để triển khai ứng dụng Ta có thể tạo ra các bảng trong cơ sở dữ liệu tương ứng các thực thể trong mô hình của hệ thống bằng cách thay đổi trong file application.properties thuộc tính ddl-auto từ “none” thành

“update” Sau khi đã có các bảng trong cơ sở dữ liệu, trước tiên ta cần thêm thủ công các quyền trong bảng phân quyền (role) từ MySQL, với 3 quyền chính như 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

Ta xây dựng ứng dụng bằng công cụ Spring Boot App Để kiểm thử hệ thống ta cần đăng ký một tài khoản với quyền admin để có thể kiểm thử việc triển khai các chức năng hệ thống Việc tạo tài khoản chỉ để hỗ trợ việc kiểm thử h chứ hệ thống không cho phép người dùng đăng ký tài khoản mà là do admin sẽ tạo tài khoản cho người dùng Ta tạo một tài khoản với quyền admin như trên Hình 4.2.

Sau khi đã có tài khoản với quyền admin, ta đăng nhập vào hệ thống và chạy thử các chức năng để kiểm tra hoạt động của hệ thống theo nghiệp vụ đã đề ra Màn hình đăng nhập hệ thống cho 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 như trên Hình 4.4 dưới đây.

Hình 4.32 Trang chủ của ứng dụng

Ta thấy giao diện chính của trang chủ gồm các menu chức năng chính của hệ thống như quản lý tài khoản, quản lý phòng ban, quản lý nhân viên và quản lý dự án. Sau đây, ta sẽ chạy thử lần lượt 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 các tài khoản trong cơ sở dữ liệu được hiển thị dưới dạng bảng với tên tài khoản và quyền tương ứng của mỗi tài khoản Ngoài ra còn hiển thị các nút để người dùng có thể tương tác với hệ thống Ta có giao diện như 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

Từ màn hình danh sách tài khoản phía trên, nhấn vào nút Create Account để thực hiện chức năng thêm tài khoản Thông tin tài khoản bao gồm Account Name là tên tài khoản người dùng, Password là mật khẩu và Account role là quyền của tài khoản như trên Hình 4.6 Có 3 quyền chính của tài khoản có thể lựa chọn khi thêm tài khoản là admin, manager và staff.

Hình 4.34 Thêm tài khoản cho người dùng hệ thống

Cần lưu ý ở đây là không được phép thêm tài khoản trùng với tài khoản đã tồn tại trong hệ thống, như vậy hệ thống sẽ báo lỗi Sau khi tạo tài khoản thành công sẽ có email thông báo gửi về cho chủ tài khoản.

Từ màn hình danh sách tài khoản, nhấn chọn biểu tượng chỉnh sửa tài khoản hình bút chì để sửa thông tin tài khoản Hệ thống chỉ cho phép chỉnh sửa mật khẩu và quyền của tài khoản mà không cho phép chỉnh sửa tên tài khoản Lưu ý ở đây là chỉ có admin mới có quyền 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 bị xoá khi không còn sử dụng Chỉ có tài khoản với quyền admin mới có thể xoá tài khoản Để xoá tài khoản ta nhấn vào biểu tượng thùng rác tương ứng với tài khoản muốn xoá Hệ thống sẽ yêu cầu xác nhận xoá như trên Hình 4.8 Thông báo cho người dùng đã xoá thành công hoặc thông báo lỗi khi người dùng không phải là người dù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

Lựa chọn menu Department Management để truy cập vào danh sách các phòng ban trong công ty Hiển thị danh sách các phòng ban dưới dạng bảng với các thông tin mô tả về phòng ban và các nút chức năng để người dùng tương tác với hệ thống như trên Hình 4.9.

Hình 4.37 Hiển thị danh sách các phòng ban trong công ty

Từ màn hình danh sách phòng ban, bấm vào nút Create Department để thực hiện tạo phòng ban Giao diện tạo phòng ban cùng các trường thông tin cần thêm như trong Hình 4.10.

Hình 4.38 Tạo phòng ban mới

Từ màn hình danh sách các phòng ban, chọn biểu tượng chỉnh sửa để thay đổi các thông tin của phòng ban Giao diện chỉnh sửa phòng ban được thể hiện như trên 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, chọn biểu tượng chi tiết để xem thông tin chi tiết của từng phòng ban Các thông tin của phòng ban được hiển thị như 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 chọn menu Staff Management, danh sách nhân viên được hiển thị dưới dạng bảng với các thông tin mô tả về nhân viên và các nút để người dùng có thể tương tác với hệ thống như trong Hình 4.14.

Hình 4.42 Hiển thị danh sách nhân viên của công ty

Từ màn hình danh sách nhân viên, nhấn chọn nút Add Staff để thêm nhân viên vào công ty Giao diện và các trường thông tin của nhân viên được thể hiện trên 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

Từ màn hình danh sách nhân viên, chọn biểu tượng xoá để xoá nhân viên khi không còn làm việc ra khỏi danh sách nhân viên Hệ thống sẽ yêu cầu xác nhận xoá như trên 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, chọn biểu tượng chi tiết để xem thông tin chi tiết của nhân viên Các thông tin của nhân viên được hiển thị 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

Đánh giá

Qua các kết quả chạy chương trình, chúng ta có thể thấy hệ thống đã đáp ứng được đầy đủ các yêu cầu chức năng hệ thống từ quản lý phòng ban, quản lý nhân viên, quản lý tài khoản đến quản lý dự án Các chức năng này được triển khai chi tiết để thực hiện đầy đủ chức năng yêu cầu Yêu cầu ước lượng và đánh giá tiến độ dự án đã được triển khai và thực hiện đúng mô hình đã đề ra.

Tuy nhiên, ứng dụng vẫn còn một số thiếu sót cần cải thiện thêm để có thể hoàn thiện hơn nữa và có thể triển khai trong thực tế.

Ngày đăng: 13/06/2024, 16:31

w