(so sánh ưu nhược điểm giữa các lựa chọn để từ đó chọn ra chiến lược phù hợp nhất cho dự án)
Chiến lược phát triển Ưu điểm Nhược điểm
Thuê ngoài
- Chất lượng dịch vụ cao, đáp ứng được các yêu cầu và chức năng đề ra - Tiện lợi và không tốn nhân lực trong việc xây dựng và phát triển - Tính linh hoạt: có thể sử dụng cho các dự án khác…
- Mất khả năng kiểm soát - Chi phí cao
- Sự bất ổn về thông tin chiến lược
- Tính phụ thuộc, mất thời gian chờ đợi bên thứ 3 làm việc.
Sử dụng hệ thống tích hợp
- Tiết kiệm được chi phí - Chỉ cần tự phát triển thêm các chức năng còn thiếu
- Cần phải có hệ thống từ trước và hệ thống đó phải có khả năng mở rộng - Cần nhân lực có năng lực, hiểu biết về hệ thống có sẵn để phát triển thêm
Tự phát triển
- Xây dựng và đáp ứng được các yêu cầu và chức năng của hệ thống - Dữ liệu được bảo mật - Chủ động nếu có tình huống bất ngờ xảy ra
- Tốn thời gian.
- Có thể tốn chi phí với các sản phẩm có thể có bản quyền
- Phải có đủ nhân lực có năng lực, hiểu biết để phát triển và xây dựng
Sử dụng sản phẩm có sẵn
- Có sản phẩm trên thị trường đáp ứng đủ các yêu cầu của tổ chức - Tiết kiệm được thời gian (đáp ứng nhu cầu cần gấp, có thể sử dụng ngay)
- Có thể tốn nhiều chi phí với các sản phẩm bản quyền
- Khả năng mở rộng kém, mang tính rủi ro
➔Từ những ưu điểm và nhược điểm của các chiến lược phát triển hệ thống đã phân tích ở trên, nhóm chúng em xét thấy chiến lược “Tự phát triển” là phù hợp với dự án nhất bởi nó đáp ứng được các tiêu chí cần thiết như tính bảo mật, tính chủ động... cho hệ thống và các nhược điểm của chiến lược này có thể giải quyết và khắc phục được. Với các chiến lược còn lại, mặc dù các chiến lược đều có các ưu điểm nổi bật nhưng nhược điểm lại khó khắc phục, khó kiểm soát.
4.2 Kiến trúc hệ thống
4.2.1 Kiến trúc vật lý (vẽ mô hình kiến trúc của hệ thống mới gắn với mô hình của tổ chức và giải thích)
- Sử dụng mô hình mạng Client-Server hệ thống có sự tương tác - Ưu điểm
+ Giúp làm việc trên bất kì một máy tính nào có hỗ trợ giao thức truyền thông. Giao thức chuẩn này cũng giúp các nhà sản xuất tích hợp lên nhiều sản phẩm khác nhau mà không gặp phải khó khăn gì.
+ Có thể có nhiều server cùng làm một dịch vụ, chúng có thể nằm trên nhiều máy tính hoặc một máy tính.
+ Chỉ mang đặc điểm của phần mềm mà không hề liên quan đến phần cứng, ngoài yêu cầu duy nhất là server phải có cấu hình cao hơn các client.
+ Hỗ trợ người dùng nhiều dịch vụ đa dạng và sự tiện dụng bởi khả năng truy cập từ xa.
+ Cung cấp một nền tảng lý tưởng, cho phép cung cấp tích hợp các kỹ thuật hiện đại như mô hình thiết kế hướng đối tượng, hệ chuyên gia, hệ thông tin địa lý (GIS).
- Nhược điểm
+ Vấn đề bảo mật dữ liệu thông tin đôi khi còn chưa được an toàn, do phải trao đổi dữ liệu giữa 2 máy tính khác nhau ở 2 khu vực địa lý cách xa nhau. Tuy nhiên vấn đề này thì có một số giao thức đã hỗ trợ bảo mật dữ liệu khi truyền tải(HTTPS).
4.2.2 Công nghệ được lựa chọn để phát triển hệ thống - Công nghệ sử dụng:
+ Window Form App (C#): Dễ code, có nhiễu component có sẵn rất phù hợp để tạo các phần mềm quản lý, tính toán, thống kê,...
+ SQL: Cho phép lưu trữ, quản lý, truy xuất dữ liệu trong hệ thống quản lý cơ sở dữ liệu quan hệ. Và xác định dữ liệu trong cơ sở dữ liệu và thao tác với dữ liệu trong hệ thống.
- Phần mềm sử dụng:
+ Microsoft Visual Studio 2019 + Microsoft SQL Server 2019 4.2.3 Kiến trúc logic của phần mềm
- Với việc quản lý nhân sự trường THCS Tân Định,nhóm sử dụng kiến trúc phần mềm theo hướng xử lý(MVC-Model View Controller) là phù hợp nhất.
- Mô hình MVC được cấu trúc hóa thành 3 component logic tương tác với nhau:
+ Model:Là bộ phận có chức năng lưu trữ toàn bộ dữ liệu của ứng dụng và là cầu nối giữa 2 thành phần bên dưới là View và Controller.Model thể hiện rõ các thao tác với cơ sở dữ liệu như cho phép xem, truy xuất, xử lý dữ liệu,…
+ View: đơn vị chương trình có nhiệm vụ trình diễn dữ liệu, giao tiếp tiếp, nhận yêu cầu của người dùng.
+ Controller:có chức năng điều hướng thông tin tới model hoặc view tương ứng, tương tác với người dùng(đến model và view) . và xử lý các yêu cầu bằng cách gọi các phương thức xử lý tương ứng - Giải thích mô hình:
+ Khi một yêu cầu của từ máy khách (Client) gửi đến Server.
+ Controller trong MVC chặn lại để xem đó là URL request hay sự kiện.
+ Controller xử lý input của user rồi giao tiếp với Model trong MVC.
+ Model chuẩn bị data và gửi lại cho Controller.
+ Cuối cùng, khi xử lý xong yêu cầu thì Controller gửi dữ liệu trở lại View và hiển thị cho người dùng trên trình duyệt.
+ View không giao tiếp trực tiếp với Model. Sự tương tác giữa View và Model sẽ chỉ được xử lý bởi Controller.
4.3 Thiết kế Cơ sở dữ liệu
4.3.1 Chuyển đổi Logical ERD sang Physical RDB
- Chuyển các thực thể thành bảng/file (đổi tên theo quy ước của bảng / file)
Tên thực thể Tên bảng
Nhân viên tblNhanVien
Chức vụ tblChucVu
Hợp đồng tblHopDong
Công việc tblCongViec
Lương tblLuong
Tài khoản tblTaiKhoan
Chấm công tblChamCong
Tổ công tác tblCongTac
Trình độ học vấn tblTrinhDoHocVan
Thành tích tblThanhTich
Vi phạm tblViPham
- Chuyển thực thể - Thuộc tính thành Bảng – Thuộc tính sau chuyển đổi
Tên Thực Thể Các Thuộc Tính Các Thuộc Tính Sau
Chuyển Đổi
Nhân viên Mã nhân viên
Họ tên CCCD SĐT Địa chỉ
sMaNV sHoTen sCCCD sSDT sDiaChi
Ngày sinh Giới tính Số tài khoản
Ngân hàng Hệ số thâm niên
Mã tổ công tác Mã trình độ học vấn
Mã chức vụ
dNgaySinh sGioiTinh
sSTK sNganHang
fHSTN sMaTo sMaTD sMaCVu
Chức vụ Mã chức vụ
Tên chức vụ Hệ số chức vụ
sMaCVu sTenCVu
fHSCV
Hợp đồng Mã hợp đồng
Số hợp đồng Ngày lập hợp đồng
Thời gian bắt đầu Thời gian kết thúc Mã nhân viên
sMaHD sSoHD dNgayLapHD
dTgBatDau dTgKetThuc sMaNV
Lương Mã lương
Bậc lương Hệ số lương Mã nhân viên
sMaLuong sBacLuong
fHSL sMaNV
Công việc Mã công việc
Tên công việc Thời gian bắt đầu công
việc
Thời gian kết thúc công việc
Mã nhân viên
sMaCV sTenCV dTgBatDauCV dTgKetThucCV
sMaNV
Chấm công Mã chấm công
Ngày chấm công Mã nhân viên
sMaChamCong dNgayChamCong
sMaNV
Tài khoản Mã nhân viên Mật khẩu
sMaNV sMatKhau Trình độ học vấn Mã trình độ học vấn
Tên trình độ học vấn
sMaTD sTenTD Tổ công tác Mã tổ công tác
Tên tổ công tác
sMaTo sTenTo
Thành tích Mã thành tích
Nội dung thành tích Thời gian Mã nhân viên
sMaThanhTich sNDThanhTich
dThoiGian sMaNV
Vi phạm Mã vi phạm
Nội dung vi phạm Thời gian Mã nhân viên
sMaViPham sNDViPham
dThoiGian sMaNV
4.3.2 Đặc tả Cơ sở dữ liệu 1. Bảng tblNhanVien
Tên Trường Kiểu Dữ Liệu Diễn Giải
sMaNV NVARCHAR(10) Mã Nhân Viên
sHoTen NVARCHAR(50) Họ và tên
sSDT NVARCHAR (12 ) Số điện thoại
sDiaChi NVARCHAR(50) Địa Chỉ
dNgaySinh DATE Ngày sinh
sCCCD NVARCHAR(13) Căn Cước Công Dân
sGioiTinh NVARCHAR(3) Giới tính
sSTK NVARCHAR(15) Số tài khoản
sNganHang NVARCHAR(50) Tên Ngân Hàng
fHSTN FLOAT Hệ số thâm niên
sMaTo NVARCHAR(10) Mã tổ
sMaTD NVARCHAR(10) Mã trình độ
sMaCVu NVARCHAR(10) Mã chức vụ
2. Bảng tblChucVu
Tên Trường Kiểu Dữ Liệu Diễn Giải
sMaCVu NVARCHAR(10) Mã chức vụ
sTenCVu NVARCHAR(30) Tên chức vụ
fHSCV FLOAT Hệ số chức vụ
3. Bảng tblHopDong
Tên Trường Kiểu Dữ Liệu Diễn Giải
sMaHD NVARCHAR(10) Mã hợp đồng
sSoHopDong NVARCHAR(10) Số hợp đồng
dNgayLapHD DATE Ngày lập hợp đồng
dTgBatDau DATE Thời gian bắt đầu
dTgKetThuc DATE Thời gian kết thúc
sMaNV NVARCHAR(10) Mã Nhân Viên
4. Bảng tblLuong
Tên Trường Kiểu Dữ Liệu Diễn Giải
sMaLuong NVARCHAR(10) Mã Lương
sBacLuong NVARCHAR(10) Bậc lương
fHSL FLOAT Hệ số lương
sMaNV NVARCHAR(10) Mã Nhân Viên
5. Bảng tblCongViec
Tên Trường Kiểu Dữ Liệu Diễn Giải
sMaCV NVARCHAR(10) Mã công việc
sTenCV NVARCHAR(30) Tên công việc
dTgBatDauCV DATE Thời gian bắt đầu công việc
dTgKetThucCV DATE Thời gian kết thúc công việc
sMaNV NVARCHAR(10) Mã Nhân Viên
6. Bảng tblChamCong
Tên Trường Kiểu Dữ Liệu Diễn Giải
sMaChamCong NVARCHAR(10) Mã chấm công
dNgayChamCong DATE Ngày chấm công
sMaNV NVARCHAR(10) Mã Nhân Viên
7. Bảng tblTaiKhoan
Tên Trường Kiểu Dữ Liệu Diễn Giải
sMatKhau NVARCHAR(30) Mật khẩu
sMaNV NVARCHAR(10) Mã Nhân Viên
8. Bảng tblTrinhDoHocVan
Tên Trường Kiểu Dữ Liệu Diễn Giải
sMaTD NVARCHAR(10) Mã trình độ học vấn
sTenTD NVARCHAR(30) Tên trình độ học vấn
9. Bảng tblToCongTac
Tên Trường Kiểu Dữ Liệu Diễn Giải
sMaTo NVARCHAR(10) Mã tổ công tác
sTenTo NVARCHAR(30) Tên tổ công tác
10. Bảng tblThanhTich
Tên trường Kiểu dữ liệu Diễn giải
sMaThanhTich NVARCHAR(10) Mã thành tích sNDThanhTich NVARCHAR(50) Nội dung thành tích
dThoiGian DATE Thời gian
sMaNV NVARCHAR(10) Mã Nhân Viên
11. Bảng tblViPham
Tên trường Kiểu dữ liệu Diễn giải
sMaViPham NVARCHAR(10) Mã vi phạm
sNDViPham NVARCHAR(50) Nội dung vi phạm
dThoiGian DATE Thời gian
sMaNV NVARCHAR(10) Mã Nhân Viên
4.3.3 Sơ đồ quan hệ
4.4 Physical DFD
4.4.1. Physical DFDtiếp nhận nhân sự
4.4.2.Physical DFDquản lý hồ sơ nhân viên
4.4.3.Physical DFDquản lý công việc
4.4.4.Physical DFD quản lý chấm công
4.4.5. Physical DFD quản lý lương
4.4.6 Physical DFD quản lývi phạm của nhân viên
4.4.7 Physical DFD quản lý khen thưởng
4.5 Thiết kế giao diện người dùng 4.5.1 Chuẩn giao diện
- Màn hình là nơi giao tiếp giữa người dùng và hệ thống, vì vậy việc thiết kế giao diện trên màn hình rất quan trọng, tính dễ sử dụng của màn hình giao diện cũng là một tiêu chuẩn để đánh giá chất lượng của hệ thống.
- Ngày nay, các giao diện người / máy đều thực hiện qua màn hình dạng cửa sổ (Windows)
- Ẩn dụ giao diện (Interface Metaphor)
+ Giao diện được thiết kế theo dạng ô, giúp cho người dùng có thể nhanh chóng nắm rõ cách tương tác với giao diện người dùng.
+ Các biểu tượng của giao diện mô tả rõ chức năng của từng nút.
+ Hình ảnh sử dụng trong giao diện thể hiện rõ ý nghĩa, chức năng và thao tác - Mẫu giao diện (Interface Templates)
+ Mẫu giao diện được tạo ra dựa trên sự tham khảo các mẫu giao diện khác + Mẫu giao diện đảm bảo tiêu chí rõ ràng, không rối mắt, thể hiện rõ những
chức năng cần dùng.
+ Màu sắc: sáng sủa, dễ nhìn + Có tiêu đề của cửa sổ các trang + Phải có chỗ thoát ra
+ Sử dụng giao diện đồ họa nhằm đơn giản hóa việc biểu diễn dữ liệu và truyền đạt được nhiều thông tin hơn.
+ Thường rất khó chỉ ra các nguyên tắc tuyệt đối cho các thiết kế giao diện mà thường dựa vào kinh nghiệm và thẩm mỹ của mỗi người thiết kế. Với nhiều tổ chức làm phần mềm nhất là các giao diện WEB thường có các họa sỹ chuyên thiết kế các trang mẫu. Vì vậy việc kiến trúc thiết kế thường tách ra các phần giao diện và lập trình thành các phần độc lập để các kỹ sư có thể viết trình độc lập với các hoạt động trang trí mỹ thuật trên giao diện.
+ Thiết kế các mẫu dạng form thường dùng để quy định các khoảng cách , font chữ, bố trí, phím chức năng, thanh công cụ,…
- Các đối tượng giao diện (Interface Objects):
+ Các tùy chọn (Option)
+ Tên thuộc tính
+ Trường nhập dữ liệu
+ Bảng hiển thị thông tin
- Các hoạt động trên giao diện (Interface Actions) + Thêm dữ liệu
+ Sửa
+ Tìm kiếm
+ Xóa
- Các biểu tượng (Interface Icons):
4.5.2 Giao diện Hệ thống
4.5.2.1 Giao diện đăng nhập, trang chủ - Đăng nhập
- Trang chủ
4.5.2.2 Giao diện quản lý tài khoản
+ Giao diện tạo tài khoản mới
+ Giao diện cập nhật tài khoản
4.5.2.3 Giao diện quản lý lương
4.5.2.4 Giao diện quản lý công việc
4.5.2.5 Giao diện quản lý chấm công
4.5.2.6 Giao diện quản lý nhân viên
+ Giao diện quản lý nhân viên
+ Giao diện quản lý trình độ
+ Giao diện quản lý chức vụ
+ Giao diện quản lý hợp đồng
+ Giao diện quản lý tổ công tác
4.5.2.7 Giao diện quản lý khen thưởng & kỷ luật
+ Giao diện quản lý thành tích
+ Giao diện quản lý vi phạm
4.6 Thiết kế Kiểm soát
4.6.1 Xác định các điểm hở của hệ thống 1) Do con người:
- Một vài thao tác vô tình chạm phải của người dùng có thể làm mất dữ liệu (như xóa) trong hệ thống
- Hệ thống vẫn chưa hoàn thiện hoàn toàn các nghiệp vụ của nhà trường vì vậy một số nghiệp vụ vẫn còn làm thủ công nên có thể dẫn đến xung đột dữ liệu với hệ thống
2) Do lỗi kỹ thuật:
- Trong quá trình nhập dữ liệu chấm công, phê duyệt thì máy tính bị lỗi - Lỗi/sự cố phần cứng. Ví dụ: khi đang hoạt động máy tính bị lỗi màn
hình, RAM đầy hoặc do máy bị nóng lên dẫn đến tình trạng không thao tác được
3) Do thảm họa thiên tai:
- Trong quá trình vận hành xảy ra hỏa hoạn, mất điện…Ví dụ: khi có những thảm họa tự nhiên không báo trước, dữ liệu cần được sao lưu để đảm bảo tất cả có thể được khôi phục không cần máy chủ
4) Do cố ý:
- Không một hệ thống nào là an toàn tuyệt đối, vì vậy hệ thống nhóm đưa ra cũng có khả năng bị kẻ xấu hack khiến dữ liệu hệ thống không toàn vẹn
- Nhân viên vô tình hoặc cố tình nhập sai, sau đó thỏa thuận với nhân viên người quen khác(Có thể xuất hiện hành vi tham ô của nhân viên cấp cao hơn)
4.6.2 Các giải pháp được đề xuất để khắc phục các điểm hở
- Hệ thống có một vài điểm hở có thể do tác nhân con người hoặc thời tiết như bên trên. Điều này đòi hỏi người xây dựng hệ thống phải có cái nhìn trước để khắc phục điểm hở ấy, nhóm đã đưa ra 3 cách khắc phục như sau:
1) Tăng cường tính chính xác cho hệ thống
- Mục đích: Đảm bảo tính xác thực, đồng bộ thông tin dữ liệu
- Yêu cầu: kiểm tra thông tin nhập, xuất
- Nơi thực hiện: nơi lưu thông tin vào và xuất dữ liệu ra - Nội dung: phát hiện và sửa lỗi
- Hình thức: tự động hoặc thủ công, trực tiếp hoặc gián tiếp
2) Tăng cường tính an toàn cho hệ thống
- Phải đảm bảo cho hệ thống hoạt động một cách tốt nhất không bị gián đoạn trong quá trình sử dụng hoặc lỗi kỹ thuật
- Nguyên nhân có thể là hỏng phần cứng, lập trình sai, hệ điều hành bị lỗi,...
- Hậu quả: mất thời gian khắc phục hệ thống , mất dữ liệu tốn kém tiền bạc để sửa lỗi
- Cách khắc phục: Tạo các bản sao lưu, thiết lập các server dự phòng…
3) Đảm bảo tính riêng tư cho hệ thống
- Hệ thống cần có phân quyền cho các người dùng - Phân loại và gán mỗi người với mỗi quyền nhất định phù
hợp cho quá trình làm việc của mỗi người khác nhau - Mức thấp: mỗi người một mật khẩu truy cập - Mức vừa : phân loại người dùng và gán mỗi loại người
dùng một số quyền nhất định - Mức cao: sử dụng nhiều tầng truy cập 4.6.3 Các kết quả thiết kế kiểm soát
Kịch bản khắc phục một vài điểm hở như sau:
- Sao lưu phục hồi dữ liệu: Trường hợp dữ liệu đang nhập bị mất khi mất điện hay hỏng phần cứng. Xây dựng server dự phòng, dữ liệu tự động sao lưu lại và khi mất điện hay mất dữ liệu tại máy đang làm việc, người dùng có thể truy cập vào server dự phòng để lấy lại - Ứng phó rủi ro: Trường hợp tài khoản nào đó được đăng ký trong hệ thống, khi chưa được admin hay người quản trị phân quyền thì chưa được phép thực hiện một vài hành động. Ví dụ như quản lý được quyền thêm, sửa, xóa thông tin. Nhưng với một user mới được tạo ra chưa phân quyền thì không được phép thay đổi hay thậm chí là đọc nội dung trong hệ thống. Điều này đảm bảo tính riêng tư, bí mật của hệ thống
- Hệ thống thêm mục trợ giúp người dùng có tài liệu tham khảo sử dụng vận hành hệ thống bằng tiếng việt để đảm bảo người dùng có thể tiếp cận được dễ dàng
Thông qua các điểm hở và cách khắc phục hệ thống đã đạt được:
- Nắm bắt thông tin lực lượng nhân viên để bổ sung kịp thời.
- Dễ dàng kiểm soát công việc của nhân viên.
- Giảm thiểu được thiệt hại do thiên tai gây ra.
4.7 Thiết kế Chi tiết xử lý (cách bố trí tùy theo từng kiến trúc phần mềm) 4.7.1 Tạo tài khoản
Input: Thông tin tài khoản cần tạo(txtMaNV, txtMatKhau) Các bước xử lý:
● Khi người dùng nhấn vào form Tạo tài khoản, con trỏ chuột tự động nằm ở ô txtMaNV.
● Nếu người dùng nhấn vào button “Tạo mới” mà chưa nhập đủ thông tin các trường: txtMaNV, txtMatKhau, thì hệ thống sẽ hiện thông báo: “Không để trống thông tin các trường cần nhập”
● Nếu người dùng đã nhập đủ thông tin ở các ô textbox nhưng sai kiểu dữ liệu, sau khi nhấn nút “Tạo mới” hệ thống sẽ hiện thông báo:
+ Nếu thông tin textbox txtMaNV không trùng với Mã nhân viên nào trong database lưu dữ liệu của form Quản lý nhân viên thì hệ thống hiển thị thông báo “Không tồn tại nhân viên có mã txtMaNV”.
+ Nếu thông tin textbox txtMaNV đã tồn tại trong database thì hệ thống hiển thị thông báo “Bạn đã tạo tài khoản cho nhân viên txtMaNV”.
+ Nếu textbox txtMatKhau nhập dưới 6 ký tự thì hệ thống hiển thị thông báo “Mật khẩu phải từ 6 ký tự trở lên”.
● Nếu không gặp lỗi nào nêu trên thì thông báo cho người dùng “Tạo tài khoản thành công”.
Biểu đồ giao tiếp giữa các thành phần: