Hình 2.36. Biểu đồ trạng thái cho nhân viên quản trị
1.10.2. Biểu đồ trạng thái cho Nhân viên thường
Hình 2.37. Biểu đồ trạng thái cho Nhân viên
1.10.3. Biểu đồ trạng thái cho Công việc
1.10.4.
THIẾT KẾ 1.11. Kiến trúc
Kiến trúc của hệ thống quản lý công việc được xây dựng dựa trên 2 thành phần riêng biệt có thể được cài đặt trên cùng một máy hoặc 2 máy tính riêng biệt, cụ thể 2 thành phần đó là:
Thành phần Database Server: là thành phần thực hiện xử lý và lưu trữ toàn bộ dữ liệu của hệ thống.
Thành phần Client: thành phần trực tiếp giao tiếp với người sử dụng. Thực hiện các thủ tục xử lý nghiệp vụ của hệ thống. Thành phần chỉ hoạt động được khi có dữ liệu lấy từ thành phần Database Server.
1.11.1. Kiến trúc tổng quát
Lựa chọn và xây dựng hệ thống theo kiến trúc hướng đối tượng (Object Oriented). Hệ thống đảm bảo được các yêu cầu lâu dài khi phát triển phần mềm:
Tính ứng dụng trong sử dụng và triển khai hệ thống. Tính bảo mật và an toàn đối với dữ liệu hệ thống. Dễ dàng nâng cấp và bảo trì và hệ thống.
Các thành phần của hệ thống có thể được tái sử dụng trong các dự án khác. Ta có biểu đồ mô hình tổng quát hệ thống
Hình 3.1. Biểu đồ tổng quát kiến trúc hệ thống.
1.12. Xây dựng biểu đồ hoạt độngĐăng nhập của người dùng Đăng nhập của người dùng
Giao diện người dùng Giao diện người dùng
Các thực thể Các thực thể Thành phần điều khiển Thành phần điều khiển Các báo cáo Các báo cáo T hà n h ph ầ n bả o m ật bả n phầ h hàn T o m ật
Thành phần truy xuất dữ liệu Thành phần truy xuất dữ liệu
Các Control Các Control Presentation Layer Middle Layer Data Layer Thủ tục xử lý dữ liệu (Store Procedure) Thủ tục xử lý dữ liệu
Hình 3.2. Biểu đồ hoạt động đăng nhập của người dùng
Hoạt động quản lý các danh mục
Hình 3.3. Biểu đồ hoạt động thêm thông tin
Hình 3.5. Biểu đồ hoạt động xóa thông tin
1.13. Xây dựng biểu đồ thành phần
Xây dựng hệ thống theo mô hình Client – Server, chia thành gói:
Gói Client: Chứa đựng chương trình giao tiếp với người dùng, thực hiện các nghiệp vụ của hệ thống. Bao gồm các thành phần:
o Thành phần WORK_MANAGEMENT.EXE: là thành phần EXE duy nhất trong chương trình. Sử dụng trong việc giao tiếp với người sử dụng.
o Thành phần HQ_ENTITIES: là thành phần DLL. Đây là nơi lưu thông tin của các đối tượng khi thực thi chương trình.
o Thành phần HQ_DATA: là thành phần DLL. Toàn bộ thủ tục thao tác với CSDL nằm ở đây. Nó có nhiệm vụ trao đổi dữ liệu với gói Server.
o Thành phần HQ_REPORTS: là thành phần DLL. Tất cả các báo và thủ tục xử lý với báo cáo đều nằm trong thành phần này.
o Thành phần HQ_SECURITY: là thành DLL. Chứa đựng tất các thao tác và xử lý liên quan đến vấn đề bảo mật và an toàn cho hệ thống. Thiết kế DLL nhằm mục đích tái sử dụng cho các dự án sau này.
o Thành phần HQ_CONTROLS: là thành phần DLL. Dùng để chứa các UserControl cần thiết cho thành phần WORK_MANAGEMENT.EXE. Việc thiết kế các Usercontrol trong một thành phần DLL nhằm mục đích có thể tái sử dụng sau này.
Gói Server: Chứa CSDL quan hệ và các thủ tục truy xuất dữ liệu dưới dạng các Store Procedure.
Ta có biểu đồ thành phần của hệ thống:
Hình 3.6. Biều đồ thành phần hệ thống.
1.14. Xây dựng biểu đồ triển khai hệ thống
Triển khai hệ thông theo mô hình Client – Server. Gói Client và gói Server đặt trên 2 máy tính riêng biệt, giao tiếp với nhau qua mạng LAN có dây hoặc không dây.
Yêu cầu:
Mạng LAN theo chuẩn Ethernet có dây hoặc không dây tốc độ tối thiểu 10Mbs. Để nghị đặt 100Mbs. Đường truyền ổn định.
Hình 3.7. Biểu đồ triển khai hệ thống.
1.14.1. Các thành phần chính
1.14.1.1. Database và thủ tục xử lý dữ liệu
− Lựa chọn và sử dụng cơ sở dữ liệu quan hệ SQL Server 2008. Là nơi duy nhất lưu trữ toàn bộ dữ liệu của hệ thống.
− Các thủ tục xử lý dữ liệu được viết dưới dạng các các thủ tục nội tại (Store Procedure) đảm nhận toàn bộ các công việc thao tác với CSDL trong hệ thống.
1.14.1.2. Thành phần truy xuất dữ liệu.
− Thực hiện tất cả các yêu cầu nhằm đảm bảo ứng dụng có thể kết nối và làm việc được với nguồn dữ liệu. Cung cấp các dịch vụ cho lớp trên sử dụng.
− Thiết kết độc lập để có thể dễ dàng cải tiến và tái sử dụng sau khi hoàn thành dự án.
1.14.1.3. Thành phần thực thể.
− Định nghĩa và mô tả các đối tượng trong thế giới thực. Đảm bảo lưu trữ các thông tin và dữ liệu nghiệp vụ khi hệ thống thực thi.
1.14.1.4. Thành phần báo cáo
− Đảm bảo trách nhiệm tạo và xử lý tất cả các báo cáo mà hệ thống yêu cầu. Cung cấp dịch vụ cho thành phần thực thể.
− Thiết kế hoàn toàn độc lập với các thành phần khác. 1.14.1.5. Thành phần điều khiển.
− Chứa đựng các yêu cầu nghiệp vụ nhằm kiểm soát cho chương trình thực hiện đúng. Làm nhiệm vụ trung gian trao đổi giữa thành phần giao diện với các thông tin trong thành phần thực thể.
1.14.1.6. Thành phần giao diện người dùng, Control.
− Thực hiện giao tiếp với người dùng trong thế giới thực. Thu thập dữ liệu cho hệ thống xử lý, đồng thời hiển thị các kết quả về thới thực.
− Thành phần Control thiết kế độc lập nhằm mục đích tái sử dụng lại cho các dự án khác sau này.
1.14.1.7. Thành phần Bảo mật
− Chứa đựng tất cả các thủ tục nhằm đảm bảo cho dữ liệu của hệ thống luốn được bảo vệ an toàn.
− Đây là thành phần có thể được dùng chung trong nhiều dự án, vì vậy được thiết kế riêng biệt cũng nhằm mục đích tái sử dụng.
1.15. Cơ sở dữ liệu
Các đối tượng thực thể là các đối tượng cần phải lưu trữ lâu dài trên bộ nhớ. Ở mục 2.4.1 ta thực hiện tìm được ra các lớp thực thể. Chúng tôi lựa chọn hệ quản trị cơ sở dữ
liệu quan hệ để lưu trữ dữ liệu.
1.15.1. Nhận xét
− Khi thực thực hiện chuẩn hóa thiết kế CSDL quan hệ, CSDL thường được đặt trên nhiều bảng, điều này dẫn đến việc làm giảm hiệu xuất thao tác dữ liệu bởi phải mất thời gian cho các thao tác JOIN.
− Ngày nay, với sự phát triển của ngày càng mạnh của ngôn ngữ XML vào trong tất cả các ứng dụng truyền thông, nó đã giúp giải quyết nhiều vấn đề khó trong lưu trữ và truyền tải thông tin.
− Trước khi các hệ quản trị CSDL thực sự hỗ trợ việc lưu trữ và xử lý XML, đã có rất nhiều các ứng dụng sử dụng việc lưu trữ XML dưới dạng chuỗi thuần, tuy nhiên việc thao tác với dữ liệu này khá khó khăn. Sự kiện đánh dấu khi từ phiên bản SQL Server 2005, Microsoft chính thức hỗ trợ việc lưu trữ và thao tác với dữ liệu XML ngay trong các thủ tục nội tại đã đánh dấu bước cải tiến vượt bậc trong việc thiết kế và lưu trữ dữ liệu trong cơ sở dữ liệu quan hệ.
1.15.2. Ánh xạ liên kết
• Liên kết 1- 1: Đưa khoá chính của 1 bảng vào bảng kia để nó trở thành khoá ngoại.
• Liên kết 1 – n: Đưa khoá chính của bảng bên 1 vào bảng bên nhiều để nó trở thành khoá ngoài.
• Liên kết n – n: Tạo ra một bảng kết nối, khoá chính của bảng kết nối là khoá bội hợp từ 2 khoá chính của 2 bảng.
1.15.3. Lưu trữ các thuộc tính đa trị, phức hợp và gộp các thuộc tính khi lưu trữ.
− Theo cách truyền thống, khi thiết kế CSDL có bảng chứa thuộc tính đa trị ta phải tách việc lưu trữ các thuộc tính này trên một bảng riêng biệt, và quan hệ với bảng gốc với quan hệ 1-n. Tuy nhiên điều này sẽ làm giảm đáng kể hiệu xuất xử lý dữ liệu.
− Để khắc phục, các thuộc tính đa trị của lớp sẽ được lưu trữ bằng 1 trường duy nhất sử dụng kiểu dữ liệu XML để định nghĩa.
− Các thuộc tính phức hợp sẽ được lưu trữ trên một trường duy nhất được định nghĩa bằng kiểu dữ liệu XML.
− Khi lưu trữ dữ liệu với XML, khi có nhiều thuộc tính có giá trị lưu trữ tương tự nhau và không có mục đích thiết lập rằng buộc và quan hệ giữa các bảng, ta cũng có thể gộp các trường này thành một trường duy nhất được lưu trữ bằng XML nhằm giảm việc dư thừa dữ liệu.
1.15.4. Thiết kế các bảng
Lưu ý: Các bảng sau đây được thiết kế cho việc lưu trữ trên hệ quản trị CSDL SQL Server 2008.
Cơ sở dữ liệu Hệ thống Quản lý công việc sẽ có các bảng sau đây: 1.15.4.1. Bảng Phòng ban: tblPHONG
− Các thuộc tính: DienThoai, Fax là các thuộc tính đa trị, đồng thời chúng có giá trị sử dụng và vai trò tương đương nhau, khi thiết kế bảng ta gộp chúng chung vào một trường LienHe kiểu dữ liệu XML.
Thuộc tính Kiểu dữ liệu NULL Ghi chú
PhongID Uniqueidentifier Khóa chính
MaPhong Char(5) TenPhong Nvarchar(100) ChucNang Nvarchar(MAX) TruongPhong Uniqueidentifier x LienHe Xml x GhiChu Nvarchar(MAX) x Bảng 3.1. Phòng ban 1.15.4.2. Bảng Chức vụ: tblCHUCVU
Thuộc tính Kiểu dữ liệu NULL Ghi chú
ChucVuID Uniqueidentifier Khóa chính
TenChucVu Nvarchar(50)
ChucNang Nvarchar(MAX) x
GhiChu Nvarchar(MAX) x
1.15.4.3. Bảng Nhân viên: tblNHANVIEN
− Các thuộc tính: DienThoai, DiDong, Email là các thuộc tính đa trị, đồng thời chúng có giá trị sử dụng và vai trò tương đương nhau, khi thiết kế ta gộp chúng lại lưu trữ trong một trường LienHe với kiểu dữ liệu XML.
− Thuộc tính quyền là một thuộc tính phức hợp nhằm ánh xạ tới thực thể Quyền (entQuyen). Khi thiết kế ta lưu trữ chúng bằng trường thông tin đơn với kiểu dữ liệu XML.
Thuộc tính Kiểu dữ liệu NULL Ghi chú
NhanVienID Uniqueidentifier Khóa chính
MaNhanVien Char(5)
HoTenNhanVien Nvarchar(35)
PhongID Uniqueidentifier Khóa ngoại
ChucVuID Uniqueidentifier Khóa ngoại
LienHe Xml x Luong Float NgayVaoCongTy Date GhiChu Nvarchar(MAX) x Order Int TenDangNhap Nvarchar(30) x MatKhau Nvarchar(50) x Quyen Xml x Avartar Image x Status Bảng 3.3. Nhân viên 1.15.4.4. Bảng Bảng công: tblCHAMCONG
− Thuộc tính BangCong (Bảng công) nhằm lưu trữ ngày công của tất cả các nhân viên trong tháng. Vì vậy đây là một thuộc tính vừa có tính phức hợp, vừa có tính đa trị. Để giải quyết, ta thực hiện lưu trữ dữ liệu thuộc tính bảng công bằng XML trong 1 trường.
Thuộc tính Kiểu dữ liệu NULL Ghi chú
Nam Int Khóa chính
Thang TinyInt Khóa chính
BangCong Xml
NhanVienID Uniqueidentifier Khóa ngoại
NgayTao DateTime
GhiChu Nvarchar(MAX) x
Bảng 3.4. Bảng công
1.15.4.5. Bảng Công việc: tblTIEPNHANCONGVIEC
Thuộc tính Kiểu dữ liệu NULL Ghi chú
CongViecID Uniqueidentifier Khóa chính
ThoiGianTiepNhan DateTime KhacHang Nvarchar(50) SoDienThoaiDen Nvarchar(20) DiaDiem Nvarchar(200) NoiDungCongViec Nvarchar(Max) DaGiaoViec Bit GhiChu Nvarchar(Max) x
NhanVienID Uniqueidentifier Khóa ngoại
Bảng 3.5. Công việc
1.15.4.6. Bảng Phiếu giao việc: tblPHIEUGIAOVIEC
− Thuộc tính NhanVienThucHien là một thuộc tính đa trị, ta lưu trong 1 trường với kiểu dữ liệu XML.
−
Thuộc tính Kiểu dữ liệu NULL Ghi chú
PhieuGiaoViecID Uniqueidentifier Khóa chính
MaPhieuGiaoViec Nvarchar(20)
CongViecID Uniqueidentifier Khóa ngoại
ThoiGianGiaoViec DateTime
LamMienPhi Bit
NhanVienThucHien Xml
GhiChu Nvarchar(MAX) x
HoanThanh Bit
NhanVienID Uniqueidentifier Khóa ngoại
Hình 3.8. Biểu đồ diagram hệ thống tblCHAMCONG Nam Thang BangCong NhanVienID NgayTao GhiChu tblCHUCVU ChucVuID TenChucVu ChucNang GhiChu tblNHANVIEN NhanVienID MaNhanVien HoTen PhongID ChucVuID LienHe Luong NgayVaoCongTy GhiChu [@Order] TenDangNhap MatKhau Quyen Avartar Status tblPHIEUGIAOVIEC PhieuGiaoViecID MaPhieuGiaoViec CongViecID ThoiGianGiaoViec LamMienPhi NhanVienThucHien GhiChu HoanThanh NhanVienID tblPHONG PhongID MaPhong TenPhong ChucNang TruongPhong LienHe GhiChu tblTIEPNHANCONGVIEC CongViecID ThoiGianTiepNhan KhachHang SoDienThoaiDen DiaDiem NoiDungCongViec DaGiaoViec GhiChu NhanVienID
KẾT LUẬN
Qua bài phân tích thiết kế hướng đối tượng về hệ thống quản lý công việc, chúng em đã hiểu và nắm rõ hơn về kiến thức của môn học, các bước phân tích và thiết kế theo hướng đối tượng, các hoạt động trong việc quản lý công việc.
Việc phân tích thiết kế hệ thống quản lý công việc nhìn chung đã phân tích được các đối tượng của hệ thống, xác định được các lớp và mối quan hệ giữa các lớp đối tượng. Xây dựng được các biểu đồ hoạt động, biểu đồ trạng thái. Tuy nhiên trong quá trình phân tích và thiết kế, chương trình cần phải sửa đổi nhiều cho phù hợp với mục đích quản lý do vậy việc phân tích khó có thể tránh khỏi thiếu sót và rất mong nhận được sự góp ý của thầy cô.