2.1.5 .Một số khái niệm cơ bản về quản lí dự án và một số thuật ngữ
3.2. Đề xuất giải pháp
3.2.2. Yêu cầu phi chức năng
Hệ thống sử dụng hệ quản trị CSDL MySQL: Hệ quản trị CSDL MySQL hồn tồn miễn phí, ổn định và an tồn. MySQL đưa ra tính năng bảo mật đặc biệt chắc chắn dữ liệu sẽ được bảo mật tuyệt đối. Bên cạnh đó MySQL có khả năng chèn dữ liệu nhanh, và hỗ trợ mạnh cho các chức năng chuyên dụng của website như tìm kiếm văn bản nhanh. Do đó, MySQL là lựa chọn tốt nhất khi xây dựng một HTTT trên website.
Hệ thống sử dụng CSDL tập trung: Cơ chế điều khiển tập trung, độc lập dữ liệu, giảm bớt dư thừa, cơ cấu vật lý phức tạp đối với khả năng truy cập, toàn vẹn, hồi phục, điều khiển tương tranh, biệt lập và an tồn dữ liệu.
Chương trình có tính tái sử dụng, khả năng tiến hóa cao. Tốc độ truy xuất, xử lý nhanh, hiệu quả với lượng dữ liệu lớn. Giao diện đẹp, thân thiện với người dùng.
3.2.3. Mơ tả quy trình quản lý dự án
Trưởng nhóm dự án là người xây dựng kế hoạch dự án, đồng thời là người chịu trách nhiệm quản lý, điều hành các quá trình cung cấp thiết bị, lắp đặt sản phẩm bao gồm nguồn nhân lực tài nguyên và tiến độ lắp đặt. Quản lý là người chịu trách nhiệm cao nhất dự án.
Sau khi giám đốc duyệt dự án, trưởng nhóm tiến hành lập dự án và cập nhật các thông tin chung về dự án vào hệ thống bao gồm tên dự án, loại dự án, kích cỡ dự án, mục tiêu, ngày bắt đầu, ngày kết thúc, tình trạng cơng khai. Sau đó cập nhật các thành viên tham gia dự án và các công việc cần làm của dự án cùng với người chịu trách nhiệm. Thông tin về công việc bao gồm tên công việc, ngày bắt đầu, ngày kết thúc. Trưởng nhóm có thể tải tài liệu của dự án lên hệ thống . Hệ thống cho phép trưởng nhóm tra cứu theo dõi dự án của mình thơng qua biểu đồ sự kiện và lịch. Các thành viên được cập nhật các cơng việc cần làm mà thành viên đó chịu trách nhiệm bao gồm việc thay đổi thơng tin về cơng việc đó và chia nhỏ cơng việc. Thành viên có thể cập nhật phần trăm hồn thành cơng việc. Thành viên có thể tải tài liệu của dự án từ hệ thống về máy tính cá nhân.
Hệ thống cho phép người sử dụng tra cứu thông tin về dự án trong quyền hạn cho phép. Người sử dụng được tra cứu thông tin các dự án cơng khai và các dự án mình tham gia.
Mặt khác, hệ thống phải có nhiệm vụ kết xuất các báo cáo, danh sách gửi quản lý giúp quản lý theo dõi các hoạt động của dự án:
Danh sách dự án đang tiến hành.
Danh sách dự án ngừng hoạt động.
Danh sách dự án hoàn thành trong tháng.
Danh sách dự án đúng tiến độ và trễ tiến độ phân loại theo từng loại dự án và theo kích cỡ dự án.
3.2.4. Biểu đồ Use Case (Use Case Diagram)
- Các tác nhân: Trưởng nhóm, thành viên, quản lý, người sử dụng
Dựa vào các tác nhân đã được xác định, bảng mô tả Usecase của HTTT quản lý dự án được xây dựng như sau:
Bảng 3.1 Bảng mô tả Usecase HTTT quản lý dự án
Tác nhân Ca sử dụng Mô tả Usecase
Người sử dụng
Đăng nhập Đăng nhập hệ thống
Đăng xuất Đăng xuất hệ thống
Tra cứu thông tin dự án Tra cứu thông tin về các dự án công khai và các dự án người sử dụng tham gia.
Quản lý Quản lý người dùng Quản lý người sử dụng.
Phân quyền Phân quyền người sử dụng
In danh sách dự án In danh sách dự án
Cập nhật thông tin dự án Cập nhật các thông tin chung về dự án vào hệ thống bao gồm tên dự án, loại dự án, kích cỡ dự án, mục tiêu, ngày bắt đầu, ngày kết thúc, tình trạng công khai.
Cập nhật các thành viên tham gia dự án
Cập nhật các thành viên và vai trò trong dự án.
Cập nhật các công việc Cập nhật các công việc cần làm của dự án và người chịu trách nhiệm.
Gửi thông báo họp đội dự án
Hệ thống tự động gửi email cho các thành viên trong đội dự án
Quản lý file tài liệu Hệ thống cho phép người làm việc có thể up tài liệu lên hoặc tải tài liệu xuống theo vai trị của người sử dụng.
Thành viên Cập nhật các cơng việc cần làm
Chỉ cho phép thêm, cập nhật, xóa và chia nhỏ cơng việc mà thành viên đó chịu trách
Tác nhân Ca sử dụng Mô tả Usecase
- Biểu đồ use case:
Hình 3.1. Biểu đồ Usecase HTTT quản lý dự án
3.2.5. Biểu đồ tuần tự
- Use Case “Đăng nhập”
Usecase này mô tả người sử dụng đăng nhập vào hệ thống quản lý dự án. Khi
một người sử dụng muốn dùng hệ thống phải đăng nhập vào hệ thống với một đặc quyền cho trước. Người sử dụng đăng nhập bằng tài khoản Google.
- Use Case “Đăng xuất”
Usecase này mô tả người sử dụng đăng xuất ra khỏi hệ thống quản lý dự án.
Hình 3.3 Biểu đồ tuần tự của Usecase “Đăng xuất” - Usecase “Tra cứu thông tin dự án”
Tra cứu các thông tin về dự án, tiến độ dự án, thành viên dự án. Người sử dụng chỉ được quyền tra cứu thông tin các dự án công khai và dự án tham gia.
+ Usecase này bắt đầu khi người sử dụng muốn tra cứu thông tin của một dự án. Có thể tra cứu theo tên hay mã dự án. Chương trình cần hiển thị các thơng tin sau: Tên dự án, loại dự án, kích cỡ dự án, loại dự án, mục tiêu, ngày bắt đầu dự kiến, ngày kết thúc dự kiến, số ngày tiến hành dự án, tình trạng cơng khai.
+ Người sử dụng nhấn nút “Thoát”, usecase kết thúc.
: Nguoisudung
: Nguoisudung frmDanhSachDuAnfrmDanhSachDuAn frmThongTinDuAnfrmThongTinDuAn :project:project : issue: issue :member:member :document:document :meeting:meeting 1: mo form()
2: Nhap thong tin tim kiem()
3: Gui thong tin()
4: Hien thi thong tin du an() 5: Chon du an()
6: Gui thong tin() 7: Gui project() 8: Gui project()
9:Gui project() 10:Gui project() 11: Hien thi thong tin du an()
12:Hien thi thong tin du an() 13:Hien thi thong tin du an()
14:Hien thi thong tin du an()
- Usecase “Quản lý người sử dụng”
Usecase này bắt đầu khi người quản lý muốn quản lý thông tin người sử dụng. Usecase cho phép thực hiện các thao tác thêm, sửa đổi, xóa thơng tin người sử dụng.
Usecase bắt đầu khi quản lý truy cập vào trang chức năng quản lý người sử dụng. Sau khi quản lý chọn chức năng thêm/xóa /sửa người sử dụng thì các dịng sự kiện phụ dưới đây được thực hiện:
Thêm người dùng: Quản lý nhập các thông tin cá nhân của người dùng. Hệ thống kiểm tra tính hợp lệ của thơng tin quản lý nhập vào. Nếu hợp lệ hệ thống sẽ thêm một người dùng mới vào hệ thống.
Sửa thông tin người dùng: Quản lý lựa chọn người sử dụng và sửa đổi thơng tin. Xóa người dùng: Quản lý lựa chọn người sử dụng cần xóa. Hệ thống chuyển thơng tin người sử dụng cần xóa sang danh sách người sử dụng cũ, xóa quyền truy cập hệ thống.
Hình 3.5 Biểu đồ tuần tự của Usecase “Quản lý người sử dụng” - Usecase “Cập nhật thông tin dự án”
Cho phép Quản lý cập nhật thông tin dự án, bao gồm các thao tác: thêm mới dự án, cập nhật thông tin đầy đủ về dự án. Hỗ trợ chức năng tìm kiếm dự án theo mã dự án, tên dự án, trạng thái và kích thước dự án.
Usecase này bắt đầu khi có một dự án được phê duyệt và bắt đầu tiến hành. Sau khi lập dự án mới, quản lý bắt đầu nhập thông tin chi tiết của dự án mới hoặc chọn từ một dự án từ form “Danh sách dự án” và “cập nhật thơng tin”. Chức năng này có thể gọi trực tiếp từ menu chính của chương trình hay từ form “Danh sách dự án”
Hệ thống hiển thị màn hình “Thơng tin dự án”. Thơng tin tổng quan nhất về dự án sẽ được hiển thị bao gồm: tên dự án, loại dự án, kích cỡ dự án, loại dự án, mục tiêu, ngày bắt đầu dự kiến, ngày kết thúc dự kiến, số ngày tiến hành dự án, tình trạng cơng khai để đạo diễn nhập thông tin. Người sử dụng nhập theo form này. Sau khi nhập xong, hệ thống sẽ quay về form “Danh sách dự án”. Sau khi nhập xong, nhấn “Lưu” để cập nhật tồn bộ thơng tin dự án. Thông tin kết chuyển sẽ được hiển thị ngay trên form.
Người sử dụng nhấn nút “Thoát”, usecase kết thúc. Form “Thơng tin dự án” được đóng lại.
Nếu ngày kết thúc dự án nhỏ hơn ngày bắt đầu dự án thì hệ thống sẽ hiển thị một thơng báo lỗi. Quản lý có thể nhập lại thơng tin cho dự án hoặc thoát khỏi usecase này.
: Quanly
: Quanly frmDanhSachDuAnfrmDanhSachDuAn frmThongTinDuAnfrmThongTinDuAn CTThongTinDuAnCTThongTinDuAn :project:project 1: mo form()
2:Chon hoac lap du an moi()
3: Hien thi form() 4: Nhap thong tin()
8: Thong bao()
6: Kiem tra thong tin() 5:Gui thong tin
7; Luu du lieu()
Hình 3.6 Biểu đồ tuần tự của Usecase “Cập nhật thông tin dự án” - Usecase “Cập nhật các thành viên tham gia”
Usecase này cho phép quản lý cập nhật các thành viên tham gia dự án bao gồm các thao tác: thêm mới thành viên và xoá thành viên. Hỗ trợ chức năng hiển thị sẵn một số vai trò trong dự án tùy thuộc vào lựa chọn loại dự án, hoặc chọn thành viên từ một bộ phận. Hỗ trợ chức năng hiển thị tên nhân viên.
Usecase này bắt đầu khi quản lý hồn thành thơng tin chung của dự án và tiếp tục hoặc chọn chức năng Quản lý thành viên. Chương trình hiển thị màn hình Thành viên.
Quản lý chọn nút Thêm mới ở từng vai trò của dự án, hệ thống hiển thị form. Quản lý lựa chọn bộ phận rồi chọn thành viên từ bộ phận đó hoặc nhập tên thành viên. Quản lý chọn nút Lưu, hệ thống sẽ lưu thêm thành viên của dự án vào hệ thống.
Quản lý chọn nút Xóa, hệ thống xóa thành viên đó của dự án.
Khơng tìm thấy tên nhân viên: Nếu Quản lý chọn Lưu khi chưa hiển thị tên thành viên do khơng tìm thấy tên nhân viên trong danh sách nhân viên thì hệ thống sẽ hiển thị một thơng báo lỗi. Quản lý có thể quay về đầu dịng sự kiện chính để thêm lại thành viên hoặc thoát khỏi usecase này.
: Quanly
: Quanly frmThongTinDuAnfrmThongTinDuAn frmThanhVienfrmThanhVien CTThanhVienCTThanhVien :project:project :member:member 1:Chon chuc nang thanh vien()
2:Gui yeu cau() 3: Nhap thong tin()
4: kiem tra thong tin 5:Gui thong tin()
6:Gui thong tin()
7:Gui thong tin
8: Luu thong tin() 9:Thong bao()
Hình 3.7 Biểu đồ tuần tự của Usecase “Cập nhật các thành viên tham gia” - Usecase “Cập nhật các công việc”
Usecase này cho phép quản lý cập nhật các cơng việc chính phải làm của dự án bao gồm các thao tác: thêm mới công việc, cập nhật và xố cơng việc.
Hỗ trợ chức năng hiển thị sẵn một số công việc trong dự án tùy thuộc vào lựa chọn loại dự án và chức năng hiển thị sẵn danh sách thành viên tương ứng với công việc.
Usecase này bắt đầu khi quản lý hoàn thành việc cập nhật thành viên và tiếp tục hoặc chọn chức năng Quản lý cơng việc. Chương trình hiển thị màn hình Cơng việc.
Quản lý chọn nút Thêm mới, hệ thống hiển thị form. Quản lý nhập tên công việc, chọn người làm từ danh sách thành viên hoặc để trống, ngày bắt đầu, ngày kết thúc, công việc cha (nếu là chia nhỏ công việc), công việc tiên quyết. Quản lý chọn nút Lưu, hệ thống sẽ lưu thêm công việc của dự án vào hệ thống.
Thành viên chọn nút Sửa, hệ thống hiển thị form thông tin của công việc. Thành viên nhập tên công việc, ngày bắt đầu, ngày kết thúc, công việc cha (nếu là chia nhỏ công việc), công việc tiên quyết.
Quản lý chọn nút Xóa, hệ thống xóa cơng việc đó của dự án.
Nếu ngày kết thúc cơng việc nhỏ hơn ngày bắt đầu công việc hoặc ngày bắt đầu công việc nhỏ hơn ngày kết thúc công việc tiên quyết thì hệ thống sẽ hiển thị một thơng báo lỗi. Thành viên có thể nhập lại thơng tin cho cơng việc đó hoặc thốt khỏi usecase này.
: Quanly
: Quanly frmThongTinDuAnfrmThongTinDuAn frmCongViecfrmCongViec CTCongViecCTCongViec :Project:Project :issue:issue :member:member 1:Chon chuc nang cong viec()
2:Hien thi form() 3:Nhap thong tin cong viec()
4:Gui project_id()
5: Gui member_id() 6: Gui thong tin()
7:Luu thong tin() 8:Hien thi cong viec()
Hình 3.8 Biểu đồ tuần tự của Usecase “Cập nhật các công việc” - Usecase “Gửi thông báo họp”
Cho phép quản lý gửi thông báo họp đến các thành viên tham gia dự án.
: Quanly
: Quanly frmThongTinDuAnfrmThongTinDuAn frmLichfrmLich frmCuocHopfrmCuocHop CTCuocHopCTCuocHop ;project;project :meeting:meeting :member:member 1: Chon chuc nang cuoc hop()
2:Hien thi form cuoc hop()
3: Gui project_id(0) 4:Nhap thong tin()
5:Gui thong tin()
6:kiem tra thong tin()
7: Gui thong tin()
9:Gui project_id()
8:Luu thong tin()
10:Thong bao()
11: Gui danh sach emai()
- Usecase “Quản lý tài liệu”
Cho phép quản lý tải dự án lên hệ thống.
2: Hien thi danh sach tai lieu() : Quanly
: Quanly frmThongTinDuAnfrmThongTinDuAn frmTaiLieufrmTaiLieu CTTaiLieuCTTaiLieu :project:project :document:document 1: Chon chuc nang Tai Lieu()
3:Chon hoac them moi tai lieu()
4:Gui thong tin()
5:Gui project_id() 6:Luu tai lieu()
7:Thong bao()
Hình 3.10 Biểu đồ tuần tự của Usecase “Quản lý tài liệu” - Usecase “Cập nhật các công việc chịu trách nhiệm”
Usecase này cho phép thành viên dự án cập nhật các cơng việc của dự án mà thành viên đó chịu trách nhiệm gồm các thao tác: thêm mới công việc, cập nhật và xố cơng việc.
Hình 3.11 Biểu đồ tuần tự của Usecase “Cập nhật các công việc chịu trách nhiệm”
- Usecase “In danh sách dự án”
Quản lý in danh sách các dự án đang tiến hành, ngừng hoạt động, hoàn thành trong tháng, đúng tiến độ và trễ tiến độ. Trong đó phân loại theo từng loại dự án và theo kích cỡ dự án.
Hình 3.12 Biểu đồ tuần tự của Usecase “In danh sách dự án”
3.2.6. Thiết kế CSDL.
a. Xác định liên kết giữa các thực thể
:
b. Mơ hình thực thể liên kết (E-R)
Hình 3.14 Biểu đồ liên kết ER
c. Chuyển mơ hình ERD thành mơ hình quan hệ dữ liệu:
Với mỗi thực thể thông thường tạo một quan hệ tương ứng có các thuộc tính chính là các thuộc tính đơn của thực thể, đối với các thuộc tính phức hợp ta tách thành các thuộc tính đơn, khóa của quan hệ chính là khóa của thực thể. Ta thu được các quan hệ dữ liệu:
PROJECT (id, name, target, expected_end_date, start_date, end_date, is_public, done_ratio, projecttype_id, projectsize_id, projectstatus_id, created_on, updated_on)
PROJECTTYPE (id, name) PROJECTSIZE (id, name) PROJECTSTATUS (id, name)
DOCUMENT (id, name, link, created_on)
MEETING (id, name, description, date, time, launch_time, location)
USER (id, name, email_viteq, email, birthday, address, date_join_viteq, tel, marital_status, created_on, updated_on)
GROUP (id, name, email)
SCHEDULE (id, title, start_year, start_month, start_day, start_hour, start_minute, end_year, end _month, end _day, end _hour, end_minute)
ROLE (id, name, permission)
TASK (id, name, description, done_ratio, created_on, updated_on, parent_task_id, pre_task_id, start_day, dute_day)
d. Xử lý mơ hình quan hệ dữ liệu :
Xử lý thực thể yếu: Trong bài tốn đang xét khơng có thực thể yếu.
Xử lý thuộc tính đa trị: Trong bài tốn đang xét khơng có thuộc tính đa trị. Xử lý mối quan hệ 1-1: Trong bài tốn đang xét khơng có mối quan hệ 1-1. Xử lý mối quan hệ 1-N: Bổ sung thêm khóa của quan hệ 1 làm thuộc tính quan hệ N.
Xử lý mối quan hệ N-N: Tách thành 2 quan hệ 1-N (Tạo bảng MEMBER_TASK).
Hình 3.15 Mơ tả xử lý quan hệ N-N.
Sau khi tiến hành xử lý, ta thu được mơ hình quan hệ sau :
PROJECT (id, name, target, expected_end_date, start_date, end_date, is_public, done_ratio, projecttype_id, projectsize_id, projectstatus_id, created_on, updated_on)
PROJECTTYPE (id, name) PROJECTSIZE (id, name) PROJECTSTATUS (id, name)
DOCUMENT (id, name, link, project_id, created_on)
MEETING (id, name, project_id, description, date, time, launch_time, location) USER (id, name, email_viteq, email, birthday, group_id, address, date_join_viteq, tel, marital_status, created_on, updated_on)
GROUP (id, name, email)
SCHEDULE (id, user_id, title, start_year, start_month, start_day, start_hour, start_minute, end_year, end _month, end _day, end _hour, end_minute)
ROLE (id, project_id, name, permission)
TASK (id, project_id, name, description, done_ratio, created_on, updated_on, parent_task_id, pre_task_id, start_day, dute_day)
MEMBER_TASK (id, id_task, id_member)
e. Thiết kế trên MySQL