LỜI NÓI ĐẦU Ngày nay Công nghệ thông tin đã trở thành một phần tất yếu của cuộc sống con người, có người đã nói rằng nước Mỹ hùng mạnh một phần là nhờ vào Công nghệ thông tin. Nếu lúc trước Công nghệ thông tin là một điều viễn tưởng thì giờ đây nó đã trở thành một phần không thể thiếu trong tất cả các lĩnh vực từ y học, kinh doanh đến cả giáo dục… Đất nước ta đang ngày một phát triển, đang cố gắng hòa nhập và rút ngắn khoảng cách với thế giới, việc nước ta trở thành thành viên của WTO đã được các nhà kinh doanh chú ý đến và đầu tư ngày càng nhiều vào Việt Nam. Vì vậy để không bị quá lạc hậu, để rút ngắn khoảng cách với các nước, để đáp ứng yêu cầu tất yếu của các nhà đầu tư vào Việt Nam và để các nhà kinh doanh trong nước có đủ sức cạnh tranh với nước ngoài…thì bắt buộc phải đầu tư cho Công nghệ thông tin mà ở đây chính xác là các phần mềm tin học dùng cho các công ty, bệnh viện,…Việc áp dụng các phần mềm tin học vào các lĩnh vực giúp nâng cao tính hiệu quả và chính xác của công việc, ngoài ra còn tiết kiệm thời gian và giảm bớt mệt nhọc cho con người khiến hệ thống công việc hoạt động nhịp nhàng hơn. Nhu cầu thực tế của xã hội đòi hỏi con người phải luôn năng động và sáng tạo để làm ra những sản phẩm đáp ứng nhu cầu thị trường. Các công ty luôn luôn phát triển, các hồ sơ tuyển vào sẽ nhiều. Vì vậy cần rất nhiều những kho chứa để lưu trữ hồ sơ của nhân viên khi vào công ty, giải pháp hiệu quả nhất hiện nay là đầu tư công nghệ và thiết bị hiện đại, ứng dụng công nghệ thông tin, tự động hóa trong điều hành và quản lý nhân sự để nâng cao chất lượng phục vụ, đổi mới phương thức quản lý, tăng năng suất hiệu quả… Cho nên em đã quyết định chọn đề tài tốt nghiệp là “Tìm hiểu .Net và xây dựng website quản lý nhân sự”. Ai cũng biết công ty nào cũng vậy, muốn tồn tại và phát triển thì phải có nhân tố con người. Cùng với tốc độ phát triển mạnh mẽ của Công nghệ thông tin, các lập trình viên đã phát minh ra nhiều phần mềm hữu ích nhằm phục vụ cho công việc của con người. Không ngoại lệ, phần mềm quản lý nhân sự cũng là một trong những vấn đề con người quan tâm nhiều nhất, nó giúp cho công tác nghiệp vụ của các công ty giảm thiếu tối đa những vất vả trong công việc, giúp cho việc lưu trữ hồ sơ dễ dàng hơn. Đề tài quản lý nhân sự là một đề tài không phải là mới, hiện tại trên thị trường cũng có rất nhiều các phần mềm của các Công ty phần mềm có chức năng tương tự và chuyên nghiệp, nhưng vì mong muốn có thể tìm hiểu một phần kiến thức nhỏ nhoi trong một đại dương Công nghệ thông tin nên nhóm em đã đi vào tìm hiểu về cơ cấu tổ chức và phát triển công ty để có thể viết ra một phần mềm quản lý nhân sự nhằm phục vụ cho lợi ích của công ty. Ứng dụng phần mềm của nhóm em có thể chưa hoàn chỉnh và còn nhiều thiết sót nhưng đó là sự cố gắng của nhóm em trong bước đầu hòa nhập vào môi trường làm việc bên ngoài. Nhóm em mong quý thầy cô trong khoa có thể tạo điều kiện giúp đỡ nhóm em hoàn thành đề tài này tốt hơn . Chương trình phần mềm quản lý nhân sự của nhóm em được lập trình bằng ngôn ngữ C#, chạy trên nền .Net Framework và kết nối bằng cơ sở dữ liệu SQL. Phần mềm này giúp công ty quản lý hồ sơ, lương, chế độ của nhân viên. Giúp giảm tải bớt việc tìm kiếm mất thời gian mà hiệu quả và tính chính xác vẫn cao. Nhom em xin chân thành cảm ơn sự giúp đỡ tận tình của thầy Hoàng Quang Huy trong thời gian qua để giúp nhóm em có thể hoàn thành đề tài này. LÝ DO CHỌN ĐỀ TÀI Mỗi lần muốn tìm hồ sơ của một nhân viên nào đó trong công ty người quản lý nhân sự lại phải tìm lần lượt trong kho chứa xem hồ sơ nhân viên đó nằm ở đâu, như vậy rất tốn thời gian mà có khi không tìm ra do hồ sơ quá nhiều. Công việc lưu trữ hồ sơ rất thủ công, việc thống kê báo cáo hàng tháng, hàng năm sẽ gặp rất nhiều khó khăn nếu thông tin nhân viên ngày càng nhiều. Khi có nhân viên trong công ty thôi việc người quản lý nhân viên công ty phải tìm trong kho xem hồ sơ đó ở đâu để chuyển sang kho lưu trữ thôi việc, nếu hàng ngày cứ lặp đi lặp lại nhiều lần như vậy người quản lý nhân sự sẽ gặp rất nhiều khó khăn trong công tác lưu trữ và quản lý. Quản lý nhân sự là một trong những vẫn đề then chốt trong mọi công ty. Quản lý nhân sự không tốt sẽ dẫn đến nhiều vấn đề bất cập trong công ty. Chúng ta luôn thấy những tình trạng chấm nhầm công hoặc lưu trữ sai thông tin nhân viên, như vậy sẽ dẫn đến những xáo trộn khi phát lương…Vì vậy yêu cầu đặt ra ở đây là làm thế nào để có thể lưu trữ hồ sơ và lương của nhân viên một cách hiệu quả nhất, giúp cho nhân viên trong công ty có thể yên tâm và thoải mái làm việc đạt kết quả cao. Ngoài những lý do trên còn có một lý do khiến nhóm em quyết định chọn đề tài “ Tìm hiểu về ASP.NET xây dựng website quản lý nhân sự ” là nhóm em mong muốn phần mềm này sẽ là người hỗ trợ đắc lực cho việc quản lý nhân sự của công ty. Bạn không cần thiết phải biết nhiều về tin học, bạn vẫn có thể sử dụng phần mềm quản lý nhân sự một cách hiệu quả. Giao diện thuận tiện dễ sử dụng của chương trình sẽ luôn khiến bạn cảm thấy thật thoải mái khi sử dụng phần mềm này. CHƯƠNG I. TỔNG QUAN VỀ .NET VÀ ĐỀ TÀI 1.1 Tổng quan về .Net Framework và ASP.Net Core MVC 1.1.1 Cơ bản về .Net Framework Ngày nay .NET Framework đã trở thành một trong công nghệ được sử dụng rộng rãi trên toàn thế giới. Theo số liệu thống kê không chính thức thì số lượng lập trình viên sử dụng ngôn ngữ C# của .NET cũng rơi vào khoảng 6 triệu. Đây là một sự tăng trưởng cực kỳ nhanh nếu như chúng ta biết rằng .NET mới chỉ ra đời được hơn 10 năm. Điều đấy cũng cho thấy mức độ hấp dẫn của .NET đối với lập trình viên lớn như thế nào. .NET framework cùng với hệ sinh thái Microsoft đã phát triển rất nhanh với tất cả các công nghệ có thể giúp lập trình viên xây dựng nên các ứng dụng mất ít thời gian nhất, nó có thể giúp xây dựng từ ứng dụng chạy trên desktop cho đến ứng dụng web và gần đây là cả ứng dụng mobile/tablet. Cách xây dựng ứng dụng bằng .NET tương đối dễ dàng và tiện lợi so với các công nghệ khác vì Microsoft đã làm rất tốt phần việc của mình khi giúp cho lập trình viên không còn phải can thiệp và hiểu quá sâu về hệ thống và cách thức hoạt động của .NET. Tuy nhiên, để có thể nắm vững và sử dụng hiệu quả .NET, tránh những lỗi khó xử lý thì chúng ta cần phải hiểu được kiến trúc của .NET cũng như cách thức hoạt động của nó.
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN PHÁT TRIỂN PHẦN MỀM HƯỚNG FRAMEWORK
Đề tài: XÂY DỰNG PHẦN MỀM QUẢN LÝ NHÂN SỰ
Giảng viên hướng dẫn : Th.s Hoàng Quang Huy
Lớp : KTPM4 – K10 Nhóm : 1
Sinh viên thực hiện : Phạm Minh Hồng-1041360303
Nguyễn Văn Khải-1941360319
Hà Nội, 2019
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN PHÁT TRIỂN PHẦN MỀM HƯỚNG FRAMEWORK
Đề tài: XÂY DỰNG PHẦN MỀM QUẢN LÝ NHÂN SỰ
Giảng viên hướng dẫn : Th.s Hoàng Quang Huy
Lớp : KTPM4 – K10 Nhóm : 1
Sinh viên thực hiện : Phạm Minh Hồng-1041360303
Nguyễn Văn Khải-1941360319
Hà Nội, 2019
Trang 3MỤC LỤC
Mục Lục Hình 5
LỜI NÓI ĐẦU 6
LÝ DO CHỌN ĐỀ TÀI 8
CHƯƠNG I TỔNG QUAN VỀ NET VÀ ĐỀ TÀI 9
1.1 Tổng quan về Net Framework và ASP.Net Core MVC 9
1.1.1 Cơ bản về Net Framework 9
a, Công nghệ OLE 9
b, Công nghệ COM 9
c, Công nghệ NET 10
1.1.1.2 Common Language Runtime (CLR) 12
1.1.1.3 Common Type System (CTS) 12
1.1.1.4 Common Language Specification (CLS) 12
1.1.1.5 Microsoft Intermediate Language (MSIL) 13
1.1.1.6 Managed Code 13
1.1.2.1 Giới thiệu mô hình MVC 13
a, Xuất xứ 13
b, Kiến trúc mô hình MVC 13
c, Đặc điểm của mô hình MVC 15
1.1.2.2 Tổng quan NET Core MVC 15
1.2 Nội dung nghiên cứu 17
1.3 Phạm vi ứng dụng 17
CHƯƠNG II KHẢO SÁT BÀI TOÁN QUẢN LÝ NHÂN SỰ 18
2.1 Khảo sát thực tế bài toán 18
2.2 Mục tiêu 19
2.3 Chức năng và nhiệm vụ 19
2.4 Đảm bảo 20
CHƯƠNG III PHÂN TÍCH HỆ THỐNG 21
3.1 Phân tích chức năng 21
3.1.1 Các chức năng chính của hệ thống 21
3.1.2 Chức năng "Hệ thống" 22
3.1.3 Chức năng "Quản lý nhân sự" 22
3.1.5 Chức năng "Quản lý chế độ" 23
3.1.6 Chức năng "Quản lý tiền lương" 24
3.1.7 Chức năng "Tra cứu" 24
3.1.8 Chức năng “Thống kê báo cáo” 25
3.1.9 Sơ đồ chức năng nghiệp vụ hệ thống Quản lý nhân sự công ty 25
3.2 Phân tích dữ liệu 27
3.2.1 Biểu đồ Use-case của hệ thống 27
3.2.2 Biểu đồ Use-case Đăng nhập hệ thống 28
3.2.3 Biểu dồ Use-case Quản lý nhân sự 29
3.2.4 Biểu đồ Use-case Quản lý lương công ty 30
3.2.5 Biểu đồ Use-case Tra cứu 31
3.2.6 Biểu đồ Use-case Thống kê báo cáo 32
3.2.7 Chức năng thêm sửa xóa thông tin nhân viên 33
3.2.8 Chức năng lương nhân viên 33
Trang 43.2.9 Chức năng báo cáo thống kê 34
3.3 Mô hình tổ chức dữ liệu 34
3.4 Mô hình quan hệ dữ liệu 37
4.1 Giao diện trang web 39
4.2 Giao diện đăng nhập 39
4.3 Giao diện trang nhân viên 40
4.4 Báo cáo nhân sự 42
4.5 Giao diện lương 43
4.6 Báo cáo lương 43
KẾT LUẬN 44
HƯỚNG PHÁT TRIỂN 44
TÀI LIỆU THAM KHẢO 45
Trang 5Mục Lục Hình
Hình 1.1: kiến trúc Net Framework 4.5 12
Hình 1.2: Các thành phần chính của mô hình MVC 14
Hình 1.3: Mô hình tuần tự của MVC 14
Hình 3.1: Thể hiện các chức năng chính của hệ thống Quản lý nhân sự tại công ty 22
Hình 3.2: Hệ thống đăng nhập 22
Hình 3.3: Quản lý nhân sự 23
Hình 3.4: Quản lý chế độ 23
Hình 3.5: Quản lý tiền lương 24
Hình 3.6:Tra cứu thông tin 24
Hình 3.7: Thống kê báo cáo 25
Hình 3.8:Sơ đồ đấy đủ chức năng nghiệp vụ hệ thống 26
Hình 3.9: User case hệ thống quản lý nhân sự 27
Hình 3.10: User case đăng nhập hệ thống 28
Hình 3.11: Use case quản lý nhân sự 29
Hình 3.12: Use case quản lý lương 30
Hình 3.13: Use case Tra cứu 31
Hình 3.14: Use case Thống kê báo cáo 32
Hình 3.15: Biểu đồ tuần tự chức năng thêm sửa xóa thông tin nhân viên 33
Hình 3.16: Biểu đồ tuần tự chức năng lương nhân viên 33
Hình 3.17: Biểu đồ tuần tự chức năng báo cáo thống kê 34
Hình 3.18: Sơ đồ dữ liệu Users 38
Hình 3.19: Sơ đồ cơ sở dữ liệu Quản lý nhân sự 38
Hình 4.1: Giao diện trang web 39
Hình 4.2: Giao diện đăng nhập 39
Hình 4.3: Giao diện danh sách nhân viên 40
Hình 4.4: Giao diện tạo mới nhân viên 40
Hình 4.5: Giao diện CV 41
Hình 4.6: Giao diện hợp đồng 41
Hình 4.7: Giao diện thống kê tỉ lệ nhân sự 42
Hình 4.8: Giao diện file báo cáo excel nhân sự 42
Hình 4.9: Giao diện danh sách lương 43
Hình 4.10: Biểu đồ lương 43
Hình 4.11: Giao diện file báo cáo excel 44
Trang 6LỜI NÓI ĐẦU
Ngày nay Công nghệ thông tin đã trở thành một phần tất yếu của cuộc sống conngười, có người đã nói rằng nước Mỹ hùng mạnh một phần là nhờ vào Công nghệthông tin Nếu lúc trước Công nghệ thông tin là một điều viễn tưởng thì giờ đây nó đãtrở thành một phần không thể thiếu trong tất cả các lĩnh vực từ y học, kinh doanh đến
cả giáo dục…
Đất nước ta đang ngày một phát triển, đang cố gắng hòa nhập và rút ngắnkhoảng cách với thế giới, việc nước ta trở thành thành viên của WTO đã được các nhàkinh doanh chú ý đến và đầu tư ngày càng nhiều vào Việt Nam Vì vậy để không bịquá lạc hậu, để rút ngắn khoảng cách với các nước, để đáp ứng yêu cầu tất yếu của cácnhà đầu tư vào Việt Nam và để các nhà kinh doanh trong nước có đủ sức cạnh tranhvới nước ngoài…thì bắt buộc phải đầu tư cho Công nghệ thông tin mà ở đây chính xáclà các phần mềm tin học dùng cho các công ty, bệnh viện,…Việc áp dụng các phầnmềm tin học vào các lĩnh vực giúp nâng cao tính hiệu quả và chính xác của công việc,ngoài ra còn tiết kiệm thời gian và giảm bớt mệt nhọc cho con người khiến hệ thốngcông việc hoạt động nhịp nhàng hơn
Nhu cầu thực tế của xã hội đòi hỏi con người phải luôn năng động và sáng tạo
để làm ra những sản phẩm đáp ứng nhu cầu thị trường Các công ty luôn luôn pháttriển, các hồ sơ tuyển vào sẽ nhiều Vì vậy cần rất nhiều những kho chứa để lưu trữ hồ
sơ của nhân viên khi vào công ty, giải pháp hiệu quả nhất hiện nay là đầu tư công nghệvà thiết bị hiện đại, ứng dụng công nghệ thông tin, tự động hóa trong điều hành vàquản lý nhân sự để nâng cao chất lượng phục vụ, đổi mới phương thức quản lý, tăngnăng suất hiệu quả… Cho nên em đã quyết định chọn đề tài tốt nghiệp là “Tìm hiểu.Net và xây dựng website quản lý nhân sự”
Ai cũng biết công ty nào cũng vậy, muốn tồn tại và phát triển thì phải có nhân
tố con người Cùng với tốc độ phát triển mạnh mẽ của Công nghệ thông tin, các lậptrình viên đã phát minh ra nhiều phần mềm hữu ích nhằm phục vụ cho công việc củacon người Không ngoại lệ, phần mềm quản lý nhân sự cũng là một trong những vấn
đề con người quan tâm nhiều nhất, nó giúp cho công tác nghiệp vụ của các công tygiảm thiếu tối đa những vất vả trong công việc, giúp cho việc lưu trữ hồ sơ dễ dànghơn
Trang 7Đề tài quản lý nhân sự là một đề tài không phải là mới, hiện tại trên thị trườngcũng có rất nhiều các phần mềm của các Công ty phần mềm có chức năng tương tự vàchuyên nghiệp, nhưng vì mong muốn có thể tìm hiểu một phần kiến thức nhỏ nhoitrong một đại dương Công nghệ thông tin nên nhóm em đã đi vào tìm hiểu về cơ cấu
tổ chức và phát triển công ty để có thể viết ra một phần mềm quản lý nhân sự nhằmphục vụ cho lợi ích của công ty Ứng dụng phần mềm của nhóm em có thể chưa hoànchỉnh và còn nhiều thiết sót nhưng đó là sự cố gắng của nhóm em trong bước đầu hòanhập vào môi trường làm việc bên ngoài Nhóm em mong quý thầy cô trong khoa cóthể tạo điều kiện giúp đỡ nhóm em hoàn thành đề tài này tốt hơn
Chương trình phần mềm quản lý nhân sự của nhóm em được lập trình bằngngôn ngữ C#, chạy trên nền Net Framework và kết nối bằng cơ sở dữ liệu SQL Phầnmềm này giúp công ty quản lý hồ sơ, lương, chế độ của nhân viên Giúp giảm tải bớtviệc tìm kiếm mất thời gian mà hiệu quả và tính chính xác vẫn cao
Nhom em xin chân thành cảm ơn sự giúp đỡ tận tình của thầy Hoàng Quang
Huy trong thời gian qua để giúp nhóm em có thể hoàn thành đề tài này.
Trang 8LÝ DO CHỌN ĐỀ TÀI
Mỗi lần muốn tìm hồ sơ của một nhân viên nào đó trong công ty người quản lýnhân sự lại phải tìm lần lượt trong kho chứa xem hồ sơ nhân viên đó nằm ở đâu, nhưvậy rất tốn thời gian mà có khi không tìm ra do hồ sơ quá nhiều Công việc lưu trữ hồ
sơ rất thủ công, việc thống kê báo cáo hàng tháng, hàng năm sẽ gặp rất nhiều khó khănnếu thông tin nhân viên ngày càng nhiều
Khi có nhân viên trong công ty thôi việc người quản lý nhân viên công ty phảitìm trong kho xem hồ sơ đó ở đâu để chuyển sang kho lưu trữ thôi việc, nếu hàng ngày
cứ lặp đi lặp lại nhiều lần như vậy người quản lý nhân sự sẽ gặp rất nhiều khó khăntrong công tác lưu trữ và quản lý
Quản lý nhân sự là một trong những vẫn đề then chốt trong mọi công ty Quản
lý nhân sự không tốt sẽ dẫn đến nhiều vấn đề bất cập trong công ty Chúng ta luôn thấynhững tình trạng chấm nhầm công hoặc lưu trữ sai thông tin nhân viên, như vậy sẽ dẫnđến những xáo trộn khi phát lương…Vì vậy yêu cầu đặt ra ở đây là làm thế nào để cóthể lưu trữ hồ sơ và lương của nhân viên một cách hiệu quả nhất, giúp cho nhân viêntrong công ty có thể yên tâm và thoải mái làm việc đạt kết quả cao
Ngoài những lý do trên còn có một lý do khiến nhóm em quyết định chọn đề tài
“ Tìm hiểu về ASP.NET xây dựng website quản lý nhân sự ” là nhóm em mong muốn
phần mềm này sẽ là người hỗ trợ đắc lực cho việc quản lý nhân sự của công ty Bạnkhông cần thiết phải biết nhiều về tin học, bạn vẫn có thể sử dụng phần mềm quản lýnhân sự một cách hiệu quả Giao diện thuận tiện dễ sử dụng của chương trình sẽ luônkhiến bạn cảm thấy thật thoải mái khi sử dụng phần mềm này
Trang 9
CHƯƠNG I TỔNG QUAN VỀ NET VÀ ĐỀ TÀI1.1 Tổng quan về Net Framework và ASP.Net Core MVC
1.1.1 Cơ bản về Net Framework
Ngày nay NET Framework đã trở thành một trong công nghệ được sử dụngrộng rãi trên toàn thế giới Theo số liệu thống kê không chính thức thì số lượng lậptrình viên sử dụng ngôn ngữ C# của NET cũng rơi vào khoảng 6 triệu Đây là một sựtăng trưởng cực kỳ nhanh nếu như chúng ta biết rằng NET mới chỉ ra đời được hơn 10năm Điều đấy cũng cho thấy mức độ hấp dẫn của NET đối với lập trình viên lớn nhưthế nào
.NET framework cùng với hệ sinh thái Microsoft đã phát triển rất nhanh với tất
cả các công nghệ có thể giúp lập trình viên xây dựng nên các ứng dụng mất ít thời giannhất, nó có thể giúp xây dựng từ ứng dụng chạy trên desktop cho đến ứng dụng web vàgần đây là cả ứng dụng mobile/tablet Cách xây dựng ứng dụng bằng NET tương đốidễ dàng và tiện lợi so với các công nghệ khác vì Microsoft đã làm rất tốt phần việc củamình khi giúp cho lập trình viên không còn phải can thiệp và hiểu quá sâu về hệ thốngvà cách thức hoạt động của NET
Tuy nhiên, để có thể nắm vững và sử dụng hiệu quả NET, tránh những lỗi khóxử lý thì chúng ta cần phải hiểu được kiến trúc của NET cũng như cách thức hoạtđộng của nó
1.1.1.1 Các công nghệ tiền thân của NET
a, Công nghệ OLE
OLE (Object Linking and Embedding) là công nghệ ra đời đầu tiên của
Microsoft trong những năm 90 để đơn giản hóa việc giao tiếp giữa các ứng dụng.Chúng hỗ trợ:
Nhúng tài liệu từ một ứng dụng sang ứng dụng khác
Cho phép một ứng dụng chỉnh sửa các đối tượng trong ứng dụng khác
OLE cho phép người dùng phát triển ứng dụng yêu cầu liên kết giữa các sản phẩmkhác nhau VD: Word hay Excel
Trang 10b, Công nghệ COM
Trước khi COM xuất hiện cách phát triển phần mềm thông thường là xây dựngthành một khối duy nhất Thế nhưng khi chương trình lớn và phức tạp dần lên thì cáchlàm này dẫn tới một số vấn đề về bảo trì và kiểm thử phần mềm Để giải quyết vấn đềnày Microsoft đã tiến tới mô hình dựa trên các thành phần để phát triển phần mềm.Cách này đơn giản là chia phần mềm thành các module (các thành phần độc lập) màmỗi module sẽ cung cấp một dịch vụ cụ thể Mỗi module này có thể kiểm thử và pháttriển độc lập sau đó tích hợp vào phần mềm chính Kỹ thuật này được gọi là mô hình
đối tượng dựa trên thành phần COM (Component Object Model).
Mô hình này giúp cho việc phát triển phần mềm linh hoạt hơn:
Giảm độ phức tạp của toàn bộ phần mềm
Cho phép phát triển các module phân tán giữa nhiều nhóm, phòng ban…
Tăng khả năng bảo trì phần mềm
c, Công nghệ NET
Công nghệ NET là mô hình dựa trên thành phần thế hệ thứ 3 Nó nâng cấpcách thức liên kết giữa các thành phần trong hệ thống so với công nghệ COM Trongkhi COM cung cấp một cơ chế nhị phân chuẩn để giao tiếp giữa các module thì NET
thay thế cơ chế này bởi một ngôn ngữ trung gian gọi là Microsoft Intermediate
Language (MSIL) hay IL Các trình biên dịch NET khác nhau sẽ dịch code của các
module thành mã IL nên sẽ tự động tương thích với các IL của module khác
IL code có một thuộc tính là metadata về các dữ liệu và mô tả thuộc tính của nó
IL giúp cho việc tích hợp giữa các ngôn ngữ khác nhau trở nên dễ dàng Ngoài IL,.NET còn bao gồm một loạt các công nghệ và công cụ khác giúp cho chúng ta pháttriển và xây dựng các ứng dụng dễ dàng hơn
Đây là môi trường giúp cho việc xây dựng, phát triển và chạy các ứng dụng trênnền NET, bao gồm tất cả các loại ứng dụng: Windows Form, Web, Siverlight, WPF,Windows Phone…
Lợi ích của việc xây dựng Asp.Net Framework:
- Giữ cho bạn các ứng dụng Asp.Net được bảo mật với xác thực Windowsvà cấu hình mỗi ứng dụng tích hợp
- Asp.Net đã giảm các dòng mã dài cần thiết để phát triển các ứng dụnglớn
- Asp.Net và Html, cùng nhau tạo ra các trang web động một cách trơntru
Trang 11- Là một công nghệ kịch bản phía máy chủ lý tưởng, mã Asp.Net trướctiên chạy trên máy chủ Windows trước khi hiển thị trên trình duyệt web.
- Asp.Net Framework là một ngôn ngữ không tùy thuộc, nghĩa là bạn cóthể chọn bất kỳ ngôn ngữ lập trình nào phù hợp nhất với ứng dụng củabạn
- Với thông tin cấu hình tích hợp, Asp.Net rất dễ triển khai
- Máy chủ web Windows giám sát kỹ lưỡng các trang web, nhiều thànhphần và ứng dụng chạy trên nó
- Net Framework nhanh chóng đưa ra cảnh báo về rò rỉ bộ nhớ, các vònglặp không bị ràng buộc và các hành vi sai trái khác, ngay lập tức dừng vàkhởi động lại chúng một lần nữa
- Các tính năng của Asp.Net như liên kết sớm, biên dịch JIT, dịch vụ lưutrữ và hỗ trợ tối ưu hóa riêng mang lại cho ứng dụng của bạn mức hiệunăng cao
- Tất cả các ứng dụng Asp.Net được giám sát và quản lý chặt chẽ để giúpứng dụng có sẵn để xử lý các yêu cầu
- Phần hay nhất của Net Framework là nó có các tính năng bộ nhớ đệmtích hợp sẵn
- Nội dung và logic chương trình được phân tách trong Net Framework,
do đó làm giảm sự bất tiện của chương trình
Microsoft Asp.Net Framework là một khung phát triển được sử dụng rộng rãi
để xây dựng các ứng dụng web cấp doanh nghiệp, mà ngày nay các nhà phát triển rấtthích sử dụng Công nghệ Net mang lại lợi ích to lớn cho các vấn đề khác nhau nhưquản lý bộ nhớ, bảo mật và xử lý đặc biệt, một nhà phát triển có thể phải đối mặt.Những ưu điểm nêu trên đã khiến Asp.Net Framework trở thành một lựa chọn lý tưởng
để phát triển ứng dụng
.NET Framework gồm 3 công nghệ khác nhau:
Common Language Runtime(CLR)
Các lớp cơ sở của framework (Framework Based Classes – FBC)
Các giao diện chương trình (Web, Winform, Windows Phone …)
Trang 12Hình 1.1: kiến trúc Net Framework 4.5
1.1.1.2 Common Language Runtime (CLR)
CLR được coi như trái tim và linh hồn của NET Framework CLR như tên
ám chỉ cung cấp một môi trường thực thi nơi mà các ứng dụng viết bằng NET (C#,VB.NET, C++…) có thể chạy được
CRL cung cấp một số dịch vụ như sau:
Nạp và thực thi chương trình
Phân chia vùng nhớ của ứng dụng
Xác minh tính an toàn của kiểu dữ liệu
Dịch mã IL thành mà máy thực thi được
Cung cấp metadata
Quản lý bộ nhớ tự động (automatic garbage collection)
Thực thi bảo mật
Quản lý lỗi và ngoại lệ
Hỗ trợ các công việc như debug hoặc profile ứng dụng
Liên kết với các hệ thống khác
1.1.1.3 Common Type System (CTS)
.NET framework hỗ trợ nhiều ngôn ngữ và đều dùng một thành phần gọi là hệthống kiểu chung CTS trong CLR CTS hỗ trợ một loạt kiểu và toán tử có thể thấy
Trang 13trong hầu hết các ngôn ngữ lập trình nên gọi một ngôn ngữ từ một ngôn ngữ khác sẽkhông yêu cầu chuyển kiểu Dẫn đến chúng ta có thể xây dựng các ứng dụng NET sửdụng cả ngôn ngữ VB.NET lẫn C#, C++…
1.1.1.4 Common Language Specification (CLS)
Đặc tả ngôn ngữ chung CLS là một tập con của CTS, nó định nghĩa một tập cácquy tắc cho phép liên kết hoạt động trên nền tảng NET Các quy tắc này sẽ trợ giúp vàchỉ dẫn cho các nhà thiết kế compiler của hãng thứ 3 hoặc những người muốn xâydựng thư viện dùng chung
1.1.1.5 Microsoft Intermediate Language (MSIL)
MSIL hay còn gọi IL là một tập lệnh mà tất cả các chương trình NET đượcbiên dịch thành Nó trông hơi giống ngôn ngữ assembly và nó chứa các lệnh để nạp,lưu trữ, khởi tạo, gọi các phương thức trong chương trình Khi chúng ta biên dịch mộtchương trình C# hoặc bất kỳ chương trình nào được viết bởi ngôn ngữ tuân theo CLSthì mã của nó sẽ là IL
1.1.1.6 Managed Code
CLR chịu trách nhiệm quản lý việc thực thi mã được biên dịch trên nền tảng.NET Mã chạy được trên môi trường thực thi CLR được gọi là managed code Trìnhbiên dịch tương thích với nền tảng NET sẽ tạo ra managed code Managed code đượctạo bởi C# chính là IL code
1.1.2.1 Giới thiệu mô hình MVC
a, Xuất xứ
Nắt đầu vào những năm 70 của thế kỷ 20, tại phòng thí nghiệm Xerox PARC ởPalo Alto Sự ra đời của giao diện đồ họa (Graphical User Interface) và lập trình hướngđối tượng ( Object Oriented Programming) cho phép lập trình viên làm việc với nhữngthành phần đồ họa như những đối tượng đồ họa có thuộc tính và phương thức riêngcủa nó Không dừng lại ở đó, những nhà nghiên cứu ở Xerox PARC còn đi xa hơn khicho ra đời cái gọi là kiến trúc MVC ( viết tắt của Model – View – Controller)
MVC được phát minh tại Xerox Parc vào những năm 70,bởi TrygveReenskaug.MVC lần đầu tiên xuất hiện công khai là trong Smalltalk-80 Sau đó trong một thờigian dài hầu như không có thông tin nào về MVC, ngay cả trong tài liệu 80 Smalltalk.Các giấy tờ quan trọng đầu tiên đƣợc công bố trên MVC là “A Cookbook for Usingthe Model-View-Controller User Interface Paradigm in Smalltalk – 80”, bởi GlennKrasner và Stephen Pope, xuất bản trong tháng 8 / tháng 9 năm 1988
b, Kiến trúc mô hình MVC
Trong kiến trúc MVC, một đối tượng đồ họa người dùng (GUI Component)bao gồm 3 thành phần cơ bản: Model, View và Controller Model có trách nhiệm đốivới toàn bộ dữ liệu cũng như trạng thái của đối tượng đồ họa View chính là thể hiệntrực quan của Model, hay nói cách khác chính là giao diện của đối tượng đồ họa VàController điều khiển việc tương tác giữa đối tượng đồ họa với người sử dụng cũngnhư những đối tượng khác
Trang 14Hình 1.2: Các thành phần chính của mô hình MVC
Khi người sử dụng hoặc những đối tượng khác cần thay đổi trạng thái của đốitượng đồ họa, nó sẽ tương tác thông qua Controller của đối tượng đồ họa Controller sẽthực hiện việc thay đổi trên Model Khi có bất kỳ sự thay đổi nào xảy ra ở Model, nó
sẽ phát thông điệp ( broadcast message) thông báo cho View và Controller biết Nhậnđược thông điệp từ Model, View sẽ cập nhật lại thể hiện của mình, đảm bảo rằng nóluôn là thể hiện trực quan chính xác của Model Còn Controller, khi nhận được thôngđiệp từ Model, sẽ có những tương tác cần thiết phản hồi lại người sử dụng hoặc cácđối tượng khác
Hình 1.3: Mô hình tuần tự của MVC
Trang 15c, Đặc điểm của mô hình MVC
Cái lợi ích quan trọng nhất của mô hình MVC là nó giúp cho ứng dụng dễ bảotrì, module hóa các chức năng, và được xây dựng nhanh chóng MVC tách các tác vụcủa ứng dụng thành các phần riêng lẻ model, view, controller giúp cho việc xây dựngứng dụng nhẹ nhàng hơn Dễ dàng thêm các tính năng mới, và các tính năng cũ có thểdễ dàng thay đổi MVC cho phép các nhà phát triển và các nhà thiết kế có thể làm việcđồng thời với nhau MVC cho phép thay đổi trong 1 phần của ứng dụng mà không ảnhhưởng đến các phần khác
Sở dĩ như vậy vì kiến trúc MVC đã tách biệt (decoupling) sự phụ thuộc giữacác thành phần trong một đối tượng đồ họa, làm tăng tính linh động (flexibility) vàtính tái sử dụng (reusebility) của đối tượng đồ họa đó Một đối tượng đồ họa bấy giờcó thể dễ dàng thay đổi giao diện bằng cách thay đổi thành phần View của nó trong khicách thức lưu trữ (Model) cũng như xử lý (Controller) không hề thay đổi Tương tự, tacó thể thay đổi cách thức lưu trữ (Model) hoặc xử lý (Controller) của đối tượng đồ họamà những thành phần còn lại vẫn giữ nguyên
Chính vì vậy mà kiến trúc MVC đã được ứng dụng để xây dựng rất nhiềuframework và thư viện đồ họa khác nhau Tiêu biểu là bộ thư viện đồ họa của ngônngữ lập trình hướng đối tượng SmallTalk (cũng do Xerox PARC nghiên cứu và pháttriển vào thập niên 70 của thế kỷ 20) Các Swing Components của Java cũng đượcxây dựng dựa trên kiến trúc MVC Đặc biệt là nền tảng ASP.NET MVC Frame work
1.1.2.2 Tổng quan NET Core MVC
ASP.NET Core là một khung mã nguồn mở, hiệu suất cao, đa nền tảng để xâydựng các ứng dụng kết nối Internet hiện đại, dựa trên đám mây Với ASP.NET Core,bạn có thể:
Xây dựng các ứng dụng và dịch vụ web, ứng dụng IoT và phụ trợ diđộng
Sử dụng các công cụ phát triển yêu thích của bạn trên Windows, macOSvà Linux
Triển khai lên đám mây hoặc tại chỗ
Chạy trên NET Core hoặc NET Framework
ASP.NET Core cung cấp các lợi ích sau:
Cách sắp đặt thống nhất để xây dựng giao diện người dùng web và APIweb
Kiến trúc cho khả năng kiểm tra
Razor Pages giúp mã hóa các kịch bản tập trung vào trang dễ dàng hơnvà hiệu quả hơn
Có khả năng phát triển và chạy trên Windows, macOS và Linux
Nguồn mở và tập trung vào cộng đồng
Tích hợp các khung công tác hiện đại, phía khách hàng và quy trình pháttriển
Trang 16 Một hệ thống cấu hình dựa trên môi trường, sẵn sàng cho đám mây.
Tích hợp tiêm phụ thuộc
Nhẹ, hiệu suất cao và modular HTTP cần đường dẫn
Khả năng lưu trữ trên IIS, Nginx, Apache, Docker hoặc tự lưu trữ trongquy trình của riêng bạn
Phiên bản ứng dụng song song khi nhắm mục tiêu NET Core
Công cụ đơn giản hóa phát triển web hiện đại
ASP.NET Core MVC cung cấp các tính năng để xây dựng API web và ứngdụng web:
Mô hình Model-View-Controller (MVC) giúp làm cho API web và ứngdụng web của bạn có thể kiểm tra được
Razor Page là một mô hình lập trình dựa trên trang, giúp xây dựng giaodiện người dùng web dễ dàng và hiệu quả hơn
Razor markup cung cấp một cú pháp hiệu quả cho các Razor Pages vàMVC views
Helpers Tag cho phép mã phía máy chủ tham gia vào việc tạo và hiển thịcác phần tử HTML trong tệp Razor Page
Hỗ trợ tích hợp cho nhiều định dạng dữ liệu và trao đổi nội dung chophép API web của bạn tiếp cận được nhiều khách hàng, bao gồm cả trìnhduyệt và thiết bị di động
Mô hình liên kết tự động ánh xạ dữ liệu từ các yêu cầu HTTP đến cáctham số phương thức hành động
Xác thực mô hình tự động thực hiện xác nhận phía máy khách và phíamáy chủ
Phát triển phía khách hàng:
ASP.NET Core tích hợp hoàn hảo với các khung và thư viện phía máy kháchphổ biến, bao gồm các Razor Components, Angular, React và Bootstrap
1.2 Nội dung nghiên cứu
Để có thể hoàn thành được đề tài thì cần phải nghiên cứu những nội dung như sau :
Tìm hiểu sơ lược về thông tin
Khái niệm thông tin
Các loại thông tin quản lý
Vai trò của thông tin trong tổ chức
Trang 17 Khái niệm hệ thống – hệ thống thông tin – hệ thống thông tin quản lý.
Một vài khái niệm liên quan đến quy trình quản lý nhân sự
Quy trình bài toán quản lý nhân sự
Tìm hiểu tổ chức, cách thức hoạt động của công ty
Tìm hiểu về các nghiệp vụ của công ty như nghiệp vụ tính lương, nghiệp vụchấm công, nghiệp vụ quản lý bảo hiểm xã hội, thai sản cho nhân viên Phảinắm được rõ những nghiệp vụ này thì chúng ta mới có thể xây dựng đượcphần mềm
Cần phải tìm hiểu nghiên cứu về những nhu cầu có thể phát sinh của doanhnghiệp trong tương lai để từ đó có thể có giải pháp thiết kế phần mềm phù hợpcó tính mềm dẻo cao đáp ứng được bất cứ sự thay đổi có thể xảy ra nào
1.3 Phạm vi ứng dụng
Ứng dụng được xây dựng với mục đích là phục vụ cho tác vụ quản lý hồ sơnhân viên, quản lý lương, chấm công, cũng như là những tác vụ luân chuyển nhânviên, quản lý bảo hiểm, các chế độ Vì vậy đối tượng sử dụng nó là những nhân viêncó thẩm quyền của doanh nghiệp, cụ thể hơn đó chính là những nhà lãnh đạo doanhnghiệp và những nhân viên thuộc phòng nhân sự của công ty
Trang 18
CHƯƠNG II KHẢO SÁT BÀI TOÁN QUẢN LÝ NHÂN SỰ
2.1 Khảo sát thực tế bài toán
Quản lý nhân sự là một trong những công việc thiết yếu, góp phần quyết định
sự thành bại của một công ty, do nhu cầu thực tiễn như vậy Em đã nghiên cứu môhình các công ty trong và ngoài nước về quản lý nhân sự Hiện tại em đang xây dựngphần mềm quản lý nhân sự cho Công ty TNHH Mạnh Lee nhằm để hỗ trợ cho việcquản lý nhân sự gồm:
+ Quản lý nhân sự
+ Quản lý bảng công và lương của nhân viên trong công ty
Phần mềm quản lý nhân sự để phục vụ công tác quản lý nhân sự, người quản lý có khả năng bao quát và điều hành nhân sự, chịu trách nhiệm đưa ra các thống kê, báo
cáo định kỳ và thường xuyên về tình hình hoạt động của công ty Các khâu chuyên
trách khác của nhân sự sẽ do Nhân viên trong bộ phận nhân sự quản lý đảm nhiệm.
Quản lý nhân sự sẽ có các bộ phận chuyên trách riêng cho các công việc liên quan đếnnghiệp vụ nhân sự :
Bộ phận quản lý nhân sự thực hiện các công việc như nhập thông tin cá nhân
của từng nhân sự, nhập thông tin về bộ phận hoặc phòng ban…
Bộ phận quản lý chế độ thực hiện quản lý các chế độ của nhân viên trong công
ty như chế độ khen thưởng, chế độ kỷ luật, các phụ cấp cần thiết, chế độ bảohiểm…
Bộ phận quản lý tiền lương thực hiện quản lý thông tin liên quan về lương của
nhân viên như bảng công, làm thêm giờ,…
Bộ phận quản lý hữu trí thực hiện quản lý các thông tin liên quan đến nhân
viên thuộc diện hưởng chế độ nghỉ hưu hoặc nghỉ hưu trước tuổi để cân bằngđược lương hưu cho nhân viên
Bộ phận quản lý tạm ứng thực hiện việc quản lý thông tin tạm ứng lương của
nhân viên trong tháng tiện cho bộ phận kế toán đầy đủ thông tin hơn khi tínhlương hàng tháng cho nhân viên
Tra cứu thông tin nhân viên theo các tiêu trí đặt ra.
Trang 19Ngoài ra, hệ thống còn giúp người quản trị quản lý nhân sự thông qua các
nhóm người dùng bằng cách cung cấp quyền sử dụng các chức năng tương ứng với
quyền hạn được kiểm soát thông qua các tài khoản đăng nhập nhằm làm bảo mật hơn
hệ thống quản lý nhân sự
2.2 Mục tiêu
Nghiên cứu bài toán quản lý nhân sự nói chung và bài toán quản lý nhân sự củacông ty TNHH Mạnh Lee nói riêng để thiết kế và lập trình phần mềm nhằm hỗ trợcông tác quản lý của công ty
Dự kiến lập trình phần mềm quản lý nhân sự ở công ty đạt được các mục tiêuchính sau:
Cập nhật hồ sơ nhân viên mới vào công ty.
Cập nhật phòng ban hoặc bộ phận khi công ty phát sinh thêm các bộ
phận hoặc phòng ban mới
Quản lý chế độ cho nhân viên giúp cho nhân viên được hưởng các chế độ
ưu đãi cũng như kỷ luật của công ty của công ty
Tìm kiếm, tra cứu thông tin nhân viên trong công ty.
Kết xuất bảng thống kê danh sách nhân viên.
Kết xuất bảng công trong công ty.
Thông kê số lượng nhân sự.
Biểu đồ thể hiện sự chênh lệch nhân viên giữa các phòng ban, tỉ lệ nam-nữ
trong công ty
Hợp đồng của mỗi nhân viên.
2.3 Chức năng và nhiệm vụ
o Hệ thống yêu cầu đăng nhập trước khi quản trị (hay nhân viên quản lýnhân sự) muốn quản lý, và sử dụng các chức năng quản lý tương ứng vớiquyền hạn của người đăng nhập (quản lý, người dùng)
o Menu chính bao gồm các menu con, mỗi menu thường là điểm vàocủa một chức năng
o Chức năng hệ thống (cập nhật thông tin phòng ban, chức vụ, cập nhật
các thông tin nhân viên (thêm, xoá, sửa) chỉ được sử dụng bởi người quản lý
Trang 20o Chức năng tìm kiếm có thể áp dụng cho: quản lý (nhân viên phòng
o Chức năng quản lý lương chỉ được áp dụng cho người trực tiếp quản
lý bộ phận làm lương cho nhân viên trong công ty thông qua một số thông tinnhư bảng công, các phụ cấp cần thiết…
o Chức năng xóa cho những nhân viên thôi việc của công ty khi có yêu
cầu của cấp trên chỉ được thực hiện bởi nhân viên phòng nhân sự
2.4 Đảm bảo
Hệ thống Quản lý nhân sự được thiết kế để đảm bảo:
Thời gian xử lý nhanh
Tra cứu dữ liệu được xử lý chính xác các thông tin về nhân viên trong công
ty nhằm phục vụ cho các thao tác hoặc các chức năng sau nó
Dễ sử dụng với những giao diện đồ hoạ thân thiện phù hợp với người sửdụng
Trang 21CHƯƠNG III PHÂN TÍCH HỆ THỐNG
3.1 Phân tích chức năng
3.1.1 Các chức năng chính của hệ thống
Qua khảo sát quy trình hoạt động của hệ thống, nghiên cứu các nghiệp vụ, tathấy nổi bật các chức năng chính là: Hệ thống, tìm kiếm, quản lý chế độ, quản lý tiềnlương, đưa ra thông báo (thôi việc ), quản lý luân chuyển, và thống kê báo cáo
Chức năng Hệ thống có nhiệm vụ quản lý thông tin về nhân viên (thêm, sửa,xoá), bộ phận và phòng ban cho công ty Và công việc này chỉ được sử dụng bởi ngườiquản lý
Chức năng tìm kiếm có thể áp dụng cho: quản lý (nhân viên phòng nhân sự).Chức năng này phục vụ cho hoạt động tìm kiếm, tra cứu thông tin của nhân viên mộtcách nhanh nhất bằng cách tìm theo mã nhân viên, theo họ tên nhân viên, tìm theochức vụ, phòng ban, tuổi của nhân viên
Chức năng thống kê báo cáo: có nhiệm vụ thống kê và lập các báo cáo theo cáctiêu chuẩn khác nhau, qua đó hỗ trợ công tác quản lý, lập kế hoạch bổ sung nhân viêncho công ty
Chức năng Quản lý chế độ chỉ được sử dụng bởi người quản trị phần mềm.Chức năng này có nhiệm vụ nhập danh sách nhân viên tham gia bảo hiểm xã hội, bảohiểm y tế và danh sách nhân viên có phụ cấp ăn trưa và phụ cấp điện thoại…
Chức năng quản lý lương chỉ được áp dụng cho người trực tiếp quản lý bộ phận
làm lương cho nhân viên trong công ty thông qua một số thông tin như bảng công, phụcấp, bảo hiểm để từ đó đưa ra được bảng lương cho công ty
Chức năng thông báo danh sách nhân viên được luân chuyển hoặc thôi việc củacông ty khi có yêu cầu của cấp trên chỉ được thực hiện bởi nhân viên phòng nhân sự
Trang 22Đăng nhập hệ thống Đổi mật khẩu
Hình 3.4: Thể hiện các chức năng chính của hệ thống Quản lý nhân sự tại công ty
3.1.2 Chức năng "Hệ thống"
Hệ thống yêu cầu đăng nhập trước khi quản trị (hay nhân viên quản lý nhân sự) muốn quản lý, và sử dụng các chức năng quản lý tương ứng với quyền hạn của người đăng nhập (quản lý, người dùng)
Ở đây người quản trị có thể thay đổi mật khẩu của chương trình để đảm bảotính bảo mật của chương trình
Hình 3.5: Hệ thống đăng nhập
3.1.3 Chức năng "Quản lý nhân sự"
Chức năng “Quản lý nhân sự” ở chức năng này người trực tiếp quản lý đó là
nhân viên phòng nhân sự thực hiện được những yêu cầu sau:
+ Cập nhật tất cả các thông tin của nhân viên trong công ty như (Họ tên, quêquán, năm sinh, điện thoại, chức vụ…) bổ sung vào danh sách nhân viên trong công ty.+ Nhập bộ phận của từng nhân viên vào phòng ban cụ thể nào đó
Trang 23+ Sửa chi tiết thông tin nhân viên: thực hiện việc chỉnh sửa, cập nhật bổ sungthêm các thông tin chi tiết của từng nhân viên.
+ Lập phân loại, thực hiện việc cập nhật bổ sung, chỉnh sửa phân loại nhân viênvào từng phòng ban cụ thể
+ Xoá thông tin: thực hiện việc xoá thông tin khi nhân viên nghỉ việc hoặc chyển
+ Mở cơ sở dữ liệu
+ Cho phép người quản lý thêm thông tin mới, chỉnh sửa các thông tin và xoá
bỏ các thông tin không cần thiết khi nhân viên đó chuyển đi Thông qua chức năngnày giúp cho việc quản lý dễ giàng hơn
+ Thống kê lại từng tháng báo cáo cấp trên
Quản lý nhân sự
Thôngtinnhânviên
Bộ phậnphòngban
Phụ cấptráchnhiệmQuản Lý Chế Độ