Thông qua dữ liệu của hệ thống thông tin quản lý tiền lương và thu nhập, công ty và nhân viên có thể nắm rõ tình hình thực hiện công việc, sử dụng làm thông tin để lên các báo cáo theo y
Trang 1TRƯỜNG ĐẠI HỌC HẢI PHÒNG Khoa Công Nghệ Thông Tin
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP
CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN Tên đề tài: Xây dựng phần mềm quản lý tiền lương cho DN
Giảng viên hướng dẫn :Th.S Đào Thị Hưng Sinh viên thực hiện : Lương Ngọc Hoàng Anh
Mã sinh viên : 203148201158
Hải Phòng, tháng 4 năm 2024
Trang 2LỜI CAM ĐOAN
Tôi xin cam đoan đề tài “Xây dựng phần mềm quản lý tiền lương cho doanh nghiệp”
là công trình nghiên cứu cá nhân của tôi trong thời gian qua Toàn bộ nội dung và kết quả nghiên cứu là do tôi tự tìm hiểu, phân tích một cách khách quan, trung thực, có nguồn gốc rõ ràng và chưa được công bố dưới bất kỳ hình thức nào Tôi xin chịu hoàn toàn trách nhiệm nếu
có sự không trung thực trong thông tin sử dụng trong công trình nghiên cứu này
Hải Phòng, tháng 4 năm 2024 Sinh viên thực hiện
Lương Ngọc Hoàng Anh
Trang 3LỜI CẢM ƠN
Để có kiến thức và kết quả thực tế ngày hôm nay, trước hết em xin chân thành cảm ơn các Thầy, Cô trong khoa Công Nghệ Thông Tin trường Đại Học Hải Phòng đã giảng dạy và trang bị cho em những kiến thức cơ bản Bên cạnh đó, em xin gửi lời cảm ơn chân thành đến
cô Đào Thị Hưng đã tận tình chỉ dạy và truyền đạt cho em những kinh nghiệm cũng như những kiến thức quý báu trong suốt thời gian học tập vừa qua
Với thời gian thực hiện còn hạn chế và sự hiểu biết còn nhiều bỡ ngỡ nên bài báo cáo của em sẽ không tránh khỏi những thiếu sót Nên em mong nhận được ý kiến đóng góp để em
có thể đúc kết được nhiều bài học và kinh nghiệm cho bản thân, từ đó giúp ích được nhiều cho
em khi chính thức bước vào môi trường làm việc sau này
Cuối cùng, em xin gửi đến quý Thầy Cô lời chúc sức khỏe và thành công trong sự nghiệp giảng dạy Chúc Trường đại học Hải Phòng ngày càng phát triển và thành công Một phần cũng do kiến thức còn hạn chế nên đề tài khó tranh khỏi những sai xót Em rất mong nhận được ý kiến đóng góp của thầy cô và các bạn để bài làm của em được hoàn hảo hơn
Em xin chân thành cảm ơn!
Hải Phòng, tháng 4 năm 2024 Sinh viên thực hiện
Lương Ngọc Hoàng Anh
Trang 4MỤC LỤC
LỜI CẢM ƠN i
LỜI CAM ĐOAN ii
MỤC LỤC iii
MỤC LỤC HÌNH ẢNH vii
MỤC LỤC BẢNG viii
MỞ ĐẦU ix
CHƯƠNG I: GIỚI THIỆU CÔNG CỤ VÀ NGÔN NGỮ LỰA CHỌN 1
1.1 Visual Studio 1
1.1.1 Visual Studio là gì 1
1.1.2 Cấu trúc của Visual Studio 2
1.1.3 Các tính năng của Visual Studio 3
1.2 Ngôn ngữ lập trình C# (C Sharp) 5
1.2.1 Khái niệm cơ bản 5
1.2.2 Lịch sử hình thành 6
1.2.3 Mục tiêu của việc phát triển C# 6
1.2.4 Ưu điểm của ngôn ngữ C# 7
1.2.5 Nhược điểm của ngôn ngữ C# 10
1.2.6 Ứng dụng của C# 10
1.3 SQL Server 11
1.3.1 Giới Thiệu SQL Server 11
1.3.2 Cài Ðặt SQL Server (Installation) 12
1.3.3 Lịch sử ra đời SQL Server và các phiên bản 13
1.3.4 Các thành phần cơ bản trong SQL Server 14
Trang 5CHƯƠNG II: KHẢO SÁT HỆ THỐNG 17
2.1 Khảo sát sơ bộ 17
2.1.1 Khái niệm về HRM ? 17
2.1.2 Phần mềm HRM là gì ? 17
2.1.3 Các chức năng cơ bản của phần mềm HRM 17
2.1.4 Khái niệm mô hình 3 lớp 18
2.1.5 Lợi thế của mô hình 3 lớp 19
2.2 Khảo sát chi tiết 20
2.2.1 Khảo sát hiện trạng 20
2.2.2 Hạn chế 20
2.3 Danh sách các trang 20
2.3.1 Các chức năng chính của phần mềm 20
2.3.2 Các yêu cầu chức năng 21
2.3.3 Các yêu cầu phi chức năng 23
CHƯƠNG III: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 24
3.1 Biểu đồ Usecase 24
3.1.1 Xác định Actor 24
3.1.2 Xác định các UseCase 25
3.1.3 Biểu đồ Usecase tổng quát 26
3.1.4 Sơ đồ Usecase phân rã chức năng đăng nhập 26
3.1.5 Sơ đồ Usecase phân rã chức năng quản lý nhân viên 27
3.1.6 Sơ đồ Usecase phân rã chức năng quản lý tiền lương 27
3.1.7 Sơ đồ Usecase phân rã chức năng quản lý chấm công 28
3.1.8 Sơ đồ Usecase phân rã chức báo cáo và thống kê 28
Trang 63.1.9 Sơ đồ Usecase phân rã chức năng thêm thông tin 29
3.1.10 Sơ đồ Usecase phân rã chức năng sửa thông tin 29
3.1.11 Sơ đồ Usecase phân rã chức năng xóa thông tin 30
3.1.12 Sơ đồ Usecase phân rã chức năng in thông tin 30
3.2 Đặc tả các Usecase 30
3.2.1 Đặc tả Usecase đăng ký tài khoản 30
3.2.2 Đặc tả Usecase đăng nhập tài khoản 31
3.2.3 Đặc tả Usecase xem thông tin tiền lương 32
3.2.4 Đặc tả Usecase xem thông tin nhân viên 32
3.2.5 Đặc tả Usecase xem thông tin chi tiết nhân viên 33
3.2.6 Đặc tả Usecase xem thông tin chi tiết tiền lương 33
3.2.7 Đặc tả Usecase chọn thông tin nhân viên 33
3.2.8 Đặc tả Usecase thêm thông tin 34
3.2.9 Đặc tả Usecase sửa thông tin 34
3.2.10 Đặc tả Usecase xóa thông tin 35
3.2.11 Đặc tả Usecase thanh toán tiền lương 36
3.2.12 Đặc tả Usecase báo cáo thống kê 37
3.2.13 Đặc tả Usecase lưu thông tin 37
3.2.14 Đặc tả Usecase in thông tin 38
3.3 Biểu đồ tuần tự 39
3.3.1 Biểu đồ tuần tự chức năng đăng nhập 39
3.3.2 Biểu đồ tuần tự chức năng đăng xuất 40
3.3.3 Biểu đồ tuần tự chức năng xem thông tin nhân viên 41
3.3.4 Biểu đồ tuần tự chức năng xem thông tin tiền lương 42
Trang 73.3.5 Biểu đồ tuần tự sửa chức năng thông tin 43
3.3.6 Biểu đồ tuần tự chức năng thêm thông tin 44
3.3.7 Biểu đồ tuần tự chức năng xóa thông tin 45
3.4 Thiết kế cơ sở dữ liệu 45
3.4.1 Các thuộc tính cơ bản của cơ sở dữ liệu 45
3.4.2 Biểu đồ thực thể liên kết 46
3.4.3 Danh mục các bảng 47
3.4.4 Biểu đồ lớp 55
CHƯƠNG IV: GIAO DIỆN DEMO VÀ KẾT QUẢ THỰC NGHIỆM 56
4.1 Giao diện cơ bản của phần mềm 56
4.1.1 Giao diện quản lý nhân viên 56
4.1.2 Giao diện quản lý tiền lương 56
4.1.3 Giao diện quản lý nâng lương 57
4.1.4 Giao diện quản lý loại ca 57
4.1.5 Giao diện quản lý hợp đồng lao động 58
4.1.6 Giao diện quản lý dân tộc của nhân viên 59
4.1.7 Giao diện báo cáo chấm công nhân viên 59
4.1.8 Giao diện quản lý chức vụ 60
4.1.9 Giao diện quản lý chấm công 61
KẾT LUẬN 61
TÀI LIỆU THAM KHẢO 63
Trang 8MỤC LỤC HÌNH ẢNH
Hình 1: Sơ đồ phân cấp chức năng tổng quát 22
Hình 2: Biều đồ Usecase tổng quát 26
Hình 3: Sơ đồ Usecase phân rã chức năng đăng nhập 26
Hình 4: Sơ đồ Usecase phân giã chức năng quản lý nhân viên 27
Hình 5: Sơ đồ Usecase phân rã chức năng quản lý tiền lương 27
Hình 6: Sơ đồ Usecase phân rã chức năng quản lý chấm công 28
Hình 7: Sơ đồ Usecase phân rã chức báo cáo và thống kê 28
Hình 8: Sơ đồ Usecase phân rã chức năng thêm thông tin 29
Hình 9: Sơ đồ Usecase phân rã chức năng sửa thông tin 29
Hình 10: Sơ đồ Usecase phân rã chức năng xóa thông tin 30
Hình 11: Sơ đồ Usecae phân rã chức năng in thông tin 30
Hình 12: Biểu đồ tuần tự chức năng đăng nhập 39
Hình 13: Biểu đồ tuần tự chức năng đăng xuất 40
Hình 14: Biểu đồ tuần tự chức năng xem thông tin nhân viên 41
Hình 15: Biểu đồ tuần tự chức năng xem thông tin tiền lương 42
Hình 16: Biểu đồ tuần tự chức năng sửa thông tin 43
Hình 17: Biểu đồ tuần tự chức năng thêm thông tin 44
Hình 18: Biểu đồ tuần tự chức năng xóa thông tin 45
Hình 19: Database – Mô hình dữ liệu quan hệ 46
Hình 20: Giao diện quản lý nhân viên 56
Hình 21: Giao diện quản lý tiền lương 56
Hình 22: Giao diện danh sách nâng lương 57
Hình 23: Giao diện quản lý loại ca 57
Hình 24: Giao diện quản lý hợp đồng lao động 58
Hình 25: Giao diện quản lý dân tộc của nhân viên 59
Hình 26: Giao diện báo cáo chấm công nhân viên 60
Hình 27: Giao diện quản lý chức vụ 61
Hình 28: Giao diện quản lý chấm công 61
Trang 9MỤC LỤC BẢNG
Bảng 3 1: Bảng nhân viên 47
Bảng 3 2: Bảng lương 47
Bảng 3 3: Bảng phòng ban 48
Bảng 3 4: Bảng bộ phận 48
Bảng 3 5: Bảng chức vụ 48
Bảng 3 6: Bảng phòng ban 48
Bảng 3 7: Bảng chấm công 49
Bảng 3 8: Bảng loại công 49
Bảng 3 9: Bảng tăng ca 49
Bảng 3 10: Bảng loại ca 50
Bảng 3 11: Bảng bảo hiểm 50
Bảng 3 12: Bảng hợp đồng lao động 50
Bảng 3 13: Bảng khen thưởng, kỷ luật 51
Bảng 3 14: Bảng dân tộc 51
Bảng 3 15: Bảng tôn giáo 51
Bảng 3 16: Bảng kỳ công 52
Bảng 3 17: Bảng công nhân viên 52
Bảng 3 18: Bảng công ty 53
Bảng 3 19: Bảng thôi việc 53
Bảng 3 20: Bảng điều chuyển 53
Bảng 3 21: Bảng phụ cấp 54
Bảng 3 22: Bảng ứng lương 54
Trang 10MỞ ĐẦU
1 Lý do chọn đề tài
Bước vào thời đại công nghệ 4.0 khoa học kỹ thuật, tin học đã trở thành một lĩnh vực quan trọng, thiết yếu trong quá trình hội nhập và phát triển của đất nước hiện nay Các lĩnh vực trong cuộc sống đã và đang có sự hỗ trợ đắc lực của các ứng dụng tin học nhằm nâng cao chất lượng và hiệu quả công việc Đặc biệt, đối với các doanh nghiệp, việc ứng dụng tin học trở thành một nhu cầu hết sức quan trọng để có thể tồn tại và phát triển trên thị trường đầy cạnh tranh ngày nay Xuất phát từ xu thế chung của xã hội, hàng loạt các phần mềm phục vụ hoạt động sản xuất, kinh doanh, quản trị đã ra đời và để đáp ứng nhu cầu cấp thiết của các doanh nghiệp hiện nay
Ở nước ta, công tác quản lý tại các cơ quan, xí nghiệp đang trở nên phổ biến và quan trong Trong một công ty, một trong những công việc quan trọng nhất chính là việc hỗ trợ quản lý tiền lương Các công ty rất cần một hệ thống thông tin có khả năng cung cấp thông tin một cách chính xác, kịp thời và phù hợp nhằm hỗ trợ họ hoàn thành các công việc, chức năng của mình Thông qua dữ liệu của hệ thống thông tin quản lý tiền lương và thu nhập, công ty
và nhân viên có thể nắm rõ tình hình thực hiện công việc, sử dụng làm thông tin để lên các báo cáo theo yêu cầu Hệ thống thông tin quản lý thu nhập hỗ trợ quyết định quản trị nguồn nhân lực đặc biệt các thông tin về lương, thưởng…có liên quan đến các nguồn thông tin bên ngoài và hệ thống thông tin khác trong doanh nghiệp
Có thể nói rằng, nhân sự, tiền lương và các khoản trích theo lương là một trong những vấn đề được cả doanh nghiệp và người lao động quan tâm Vì vậy việc hạch toán, phân bổ chính xác nhân sự tiền lương cùng các khoản trích theo lương vào giá thành sản phẩm sẽ một phần giúp cho doanh nghiệp có sức cạnh tranh trên thị trường nhờ giá cả hợp lý Qua đó cũng góp cho người lao động thấy được quyền và nghĩa vụ của mình trong việc tăng năng suất lao động, từ đó thúc đẩy việc nâng cao chất lượng lao động của doanh nghiệp Mặt khác việc tính đúng, tính đủ và thanh toán kịp thời tiền lương cho người lao động cũng là động lực thúc đẩy
họ hăng say sản xuất và yên tâm tin tưởng vào sự phát triển của doanh nghiệp
Trang 11Hiện nay, công việc quản lý nhân sự và tiền lương cho nhân viên thì nhiều doanh nghiệp đang sử dụng bảo tính Excel để hỗ trợ quản lí tuy nhiên cũng không đem lại nhiều lợi ích cho người sử dụng Bởi Excel chỉ là công cụ tính toán chính xác và nhanh chóng nhưng nó không
có khả năng quản lý 1 hệ thống cơ sở dữ liệu không thể giúp doanh nghiệp nắm rõ toàn bộ thông tin đầy đủ về toàn bộ hệ thống
Từ thực trạng đó nên có 1 hệ thống quản lý hồ sơ và tính lương cho nhân viên Đưa tin học vào quản lý nhân sự và tiền lương giúp đáp ứng được việc cung cấp thông tin về nhân viên, tiền lương một cách chính xác, kịp thời, giảm bớt thời gian tra cứu, đáp ứng yêu cầu của các doanh nghiệp nhanh hơn
Qua đó, em đã nhận thấy tầm quan trọng của phần mềm quản lý toán lương tại công
ty Chính vì vậy, em đã chọn đề tài “Xây dựng phần mềm quản tiền lương cho doanh nghiệp”
2 Mục tiêu nghiên cứu
Mục tiêu chung:
Xây dựng phần mềm quản lý dữ và hệ thống thông tin để quản lý nhân viên và tiền lương của doanh nghiệp nhằm nhằm nâng cao hiệu quả hoạt động và công tác quản lý thông tin trong doanh nghiệp
Mục tiêu cụ thể:
Đánh giá hiện trạng quản lý dữ liệu ở một số doanh nghiệp ở nước ta hiện nay
Xây dựng phần mềm quản lý tiền lương dành cho máy tính
Được người dùng chấp nhận
Ứng dụng các kiến thức về khoa học và công nghệ của khoa công nghê thông tin trường Đại học Hải Phòng đã học được để xây dựng phần mềm và tạo lập cơ sở dữ liệu về công tác quản lý nhân sự và tiền lương
Xây dựng được tài liệu cho phần mềm, cập nhật dữ liệu, báo cáo, in ấn thông tin, quản trị hệ thống và quy chế vận hành của phần phần mềm
Trang 12Cung cấp thông tin môt cách chính xác, dễ dàng, đầy đủ, nhanh chóng, phục vụ tốt quá trình quản lý lương và nhân sự, phục vụ tốt cho các đơn vị sử dụng tiêu biểu như kế toán
Tận dụng năng lực tài nguyên (hệ thống máy tính), năng lực con người nhằm nâng cao hiệu quả công tác quản lý
3 Đối tượng và phương pháp nghiên cứu
Đối tượng nghiên cứu:
Các phần mềm quản lý nhân sự và tiền lương cho doanh nghiệp
Phương pháp nghiên cứu:
Thu thập thông tin, khảo sát thực tế, phỏng vấn nhân viên công ty, tham khảo các nội dung trên mạng, …
Phương pháp phát triển hệ thống thông tin quản lý
Phương pháp phân tích hệ thông thông tin quản lý
4 Phạm vi nghiên cứu
Hệ thống thông tin quản lý về tiền lương, các khoản trích theo lương và thực hiện các báo cáo liên quan tới tiền lương trong các doanh nghiệp ở Việt Nam
Các tài liệu đã được nghiên cứu và kiểm định trên Internet
5 Nội dung nghiên cứu
Phần mềm quản lý là phần mềm ứng dụng trên máy vi tính có nhiệm vụ tin học hóa các quy trình của doanh nghiệp Đây cũng chính là hệ thống dùng để nạp, quản trị các thông số,
dữ liệu và giá trị thông tin của một doanh nghiệp
Phân hệ trung tâm của chương trình, liên kết và chia sẻ dữ liệu với các phân hệ khác, phân hệ này cho phép lưu trữ, chỉnh sửa và hệ thống hóa dữ liệu một cách chuẩn xác
Trong lập trình, thường 1 phần mềm quản lý sẽ bao gồm các module chương trình, mỗi module là một chương trình con dưới dạng các hàm hoặc thủ tục để thực hiện một công việc
Trang 13nào đó theo thiết kế đã định Do đó phần mềm quản lý thường được sử dụng cho phần mềm
hệ thống
6 Cấu trúc báo cáo
Ngoài phần mở đầu, kết luận, phụ lục, các danh mục và tài liệu tham khảo thì nội dung
đề tài được chia thành 4 chương:
Chương I: Giới thiệu công cụ và ngôn ngữ lựa chọn
Chương II: Khảo sát hệ thống
Chương III: Phân tích và thiết kế hệ thống
Chương IV: Giao diện Demo và kết quả thực nghiệm
Trang 14CHƯƠNG I: GIỚI THIỆU CÔNG CỤ VÀ NGÔN NGỮ LỰA CHỌN
1.1 Visual Studio
1.1.1 Visual Studio là gì
Microsoft Visual Studio là một môi trường phát triển tích hợp (IDE) từ Microsoft Microsoft Visual Studio còn được gọi là "Trình soạn thảo mã nhiều người sử dụng nhất thế giới ", được dùng để lập trình C++ và C# là chính Nó được sử dụng để phát triển chương trình máy tính cho Microsoft Windows, cũng như các trang web, các ứng dụng web và các dịch vụ web Visual Studio sử dụng nền tảng phát triển phần mềm của Microsoft như Windows API, Windows Forms, Windows Presentation Foundation, Windows Store và Microsoft Silverlight
Nó có thể sản xuất cả hai ngôn ngữ máy và mã số quản lý
Visual Studio bao gồm một trình soạn thảo mã hỗ trợ IntelliSense cũng như cải tiến mã nguồn Trình gỡ lỗi tích hợp hoạt động cả về trình gỡ lỗi mức độ mã nguồn và gỡ lỗi mức độ máy Công cụ tích hợp khác bao gồm một mẫu thiết kế các hình thức xây dựng giao diện ứng dụng, thiết kế web, thiết kế lớp và thiết kế giản đồ cơ sở dữ liệu Nó chấp nhận các plug-in nâng cao các chức năng ở hầu hết các cấp bao gồm thêm hỗ trợ cho các hệ thống quản lý phiên bản (như Subversion) và bổ sung thêm bộ công cụ mới như biên tập và thiết kế trực quan cho các miền ngôn ngữ cụ thể hoặc bộ công cụ dành cho các khía cạnh khác trong quy trình phát triển phần mềm
Trang 15Visual Studio hỗ trợ nhiều ngôn ngữ lập trình khác nhau và cho phép trình biên tập mã
và gỡ lỗi để hỗ trợ (mức độ khác nhau) hầu như mọi ngôn ngữ lập trình Các ngôn ngữ tích hợp gồm có C, C++ và C++/CLI (thông qua Visual C++), VB.NET (thông qua Visual Basic.NET), C# (thông qua Visual C#) và F# (như của Visual Studio 2010) Hỗ trợ cho các ngôn ngữ khác như J++/J#, Python và Ruby thông qua dịch vụ cài đặt riêng rẽ Nó cũng hỗ trợ XML/XSLT, HTML/XHTML, JavaScript và CSS
1.1.2 Cấu trúc của Visual Studio
Visual Studio không hỗ trợ cho bất kỳ ngôn ngữ lập trình nào về giải pháp hoặc công
cụ thực chất, thay vào đó nó cho phép cắm chức năng được mã hóa như là một VSPackage Khi cài đặt, các chức năng có sẵn như là một dịch vụ IDE cung cấp ba dịch vụ: SVsSolution cung cấp khả năng liệt kê các dự án và các giải pháp; SVsUIShell cung cấp cửa sổ và giao diện người dùng và SVsShell Ngoài ra, IDE cũng có trách nhiệm điều phối và cho phép truyền thông giữa các dịch vụ Tất cả các biên tập viên, nhà thiết kế, các loại dự án
và các công cụ khác được thực hiện theo VSPackages Visual Studio sử dụng COM để truy cập VSPackages Visual Studio SDK cũng bao gồm Managed Package Framework (MPF) là một tập hợp quản lý bao bọc quanh các COM-interfaces cho phép các gói được viết bằng bất
kỳ ngôn ngữ nào Tuy nhiên, MPF không cung cấp tất cả các chức năng bộc lộ trong Visual Studio COM-interfaces Các dịch vụ có thể được tiêu thụ để tạo ra các gói khác, để thêm chức năng cho Visual Studio IDE
Hỗ trợ cho các ngôn ngữ lập trình được thêm vào bằng cách sử dụng một VSPackage đặc biệt được gọi là một dịch vụ ngôn ngữ Một dịch vụ ngôn ngữ định nghĩa giao tiếp khác nhau mà việc thực hiện VSPackage có thể thực hiện để hỗ trợ thêm cho các chức năng khác nhau Các chức năng có thể được thêm vào theo cách này bao gồm cú pháp màu, hoàn thành báo cáo kết quả, kết hợp đôi, công cụ chú giải tham số thông tin, danh sách thành viên và đánh dấu lỗi trên nền biên dịch.Nếu giao diện được thực hiện, các tính năng sẽ
có sẵn ngôn ngữ Dịch vụ ngôn ngữ sẽ được thực hiện trên cơ sở mỗi ngôn ngữ Việc triển khai có thể tái sử dụng mã từ phân tích cú pháp hoặc trình biên dịch cho ngôn ngữ.Dịch vụ ngôn ngữ có thể được triển khai hoặc trong mã nguồn gốc hoặc mã số quản lý Đối với mã
Trang 16nguồn gốc, thì cả COM-interfaces gốc hoặc Babel Framework (một phần của Visual Studio SDK) đều có thể được sử dụng Đối với mã số quản lý thì các MPF sẽ bao hàm các dịch vu quản lý văn bản
1.1.3 Các tính năng của Visual Studio
- Biên tập mã
Giống như bất kỳ IDE khác, nó bao gồm một trình soạn thảo mã hỗ trợ tô sáng cú pháp và hoàn thiện mã bằng cách sử dụng IntelliSense không chỉ cho các biến, hàm và các phương pháp mà còn các cấu trúc ngôn ngữ như vòng điều khiển hoặc truy vấn IntelliSense được hỗ trợ kèm theo cho các ngôn ngữ như XML, Cascading Style Sheets và JavaScript khi phát triển các trang web và các ứng dụng web Các đề xuất tự động hoàn chỉnh được xuất hiện trong một hộp danh sách phủ lên trên đỉnh của trình biên tập mã Trong Visual Studio 2008 trở đi, nó có thể được tạm thời bán trong suốt để xem mã che khuất bởi nó Các trình biên tập mã được sử dụng cho tất cả các ngôn ngữ được hỗ trợ
- Trình gỡ lỗi
Visual Studio có một trình gỡ lỗi hoạt động vừa là một trình gỡ lỗi cấp mã nguồn và là một trình gỡ lỗi cấp máy Nó hoạt động với cả hai mã quản lý cũng như ngôn ngữ máy và có thể được sử dụng để gỡ lỗi các ứng dụng được viết bằng các ngôn ngữ được hỗ trợ bởi Visual Studio Ngoài ra, nó cũng có thể đính kèm theo quy trình hoạt động và theo dõi và gỡ lỗi những quy trình Nếu mã nguồn cho quá trình hoạt động có sẵn, nó sẽ hiển thị các mã như nó đang được chạy Nếu mã nguồn không có sẵn, nó có thể hiển thị các tháo gỡ Các Visual Studio debugger cũng có thể tạo bãi bộ nhớ cũng như tải chúng sau để gỡ lỗi Các chương trình đa luồng cao cấp cũng được hỗ trợ Trình gỡ lỗi có thể được cấu hình sẽ được đưa ra khi một ứng dụng đang chạy ngoài Visual Studio bị treo môi trường
- Thiết kế
- Windows Forms Designer: được sử dụng để xây dựng GUI sử dụng Windows Forms;
bố trí có thể được xây dựng bằng các nút điều khiển bên trong hoặc khóa chúng vào bên cạnh
Trang 17mẫu Điều khiển trình bày dữ liệu (như hộp văn bản, hộp danh sách, vv) có thể được liên kết với các nguồn dữ liệu như cơ sở dữ liệu hoặc truy vấn Các điều khiển dữ liệu ràng buộc có thể được tạo ra bằng cách rê các mục từ cửa sổ nguồn dữ liệu lên bề mặt thiết kế Các giao diện người dùng được liên kết với mã sử dụng một mô hình lập trình hướng sự kiện Nhà thiết
kế tạo ra bằng C thăng hay VB.NET cho ứng dụng
- WPF Designer: có tên mã là Cider, được giới thiệu trong Visual Studio 2008 Giống
như Windows Forms Designer, hỗ trợ kéo và thả ẩn dụ Sử dụng tương tác người-máy nhắm mục tiêu theo Windows Presentation Foundation Nó hỗ trợ các chức năng WPF bao gồm kết nối dữ liệu và tự động hóa bố trí quản lý Nó tạo ra mã XAML cho giao diện người dùng Các tập tin XAML được tạo ra là tương thích với Microsoft Expression Design, sản phẩm thiết kế theo định hướng Các mã XAML được liên kết với mã đang sử dụng một mô hình code-behind
- Web designer/development: Visual Studio cũng bao gồm một trình soạn thảo và thiết
kế trang web cho phép các trang web được thiết kế bằng cách kéo và thả các đối tượng Nó được sử dụng để phát triển các ứng dụng ASP.NET và hỗ trợ HTML, CSS và JavaScript Nó
sử dụng mô hình code-behind để liên kết với mã ASP.NET Từ Visual Studio 2008 trở đi, công cụ bố trí được sử dụng bởi các nhà thiết kế web được chia sẻ với Microsoft Expression Web Ngoài ra ASP.NET MVC Framework hỗ trợ cho công nghệ MVC là tải xuống riêng biệt và dự án ASP.NET Dynamic Data có sẵn từ Microsoft
- Class designer: Các lớp thiết kế được dùng để biên soạn và chỉnh sửa các lớp (bao
gồm cả các thành viên và truy cập của chúng) sử dụng mô hình UML Các lớp thiết kế có thể tạo ra mã phác thảo C thăng và VB.NET cho các lớp và cá phương thức Nó cũng có thể tạo
ra sơ đồ lớp từ các lớp viết tay
- Data designer: Thiết kế dữ liệu có thể được sử dụng để chỉnh sửa đồ họa giản đồ cơ
sở dữ liệu bao gồm các bảng, khóa chính, khóa ngoại và các rằng buộc Nó cũng có thể được
sử dụng để thiết kế các truy vấn từ các giao diện đồ họa
Trang 18- Mapping designer: Từ Visual Studio 2008 trở đi, thiết kế ánh xạ được dùng
bởi Language Integrated Query để thiết kế các ánh xạ giữa các giản đồ cơ sở dữ liệu và các lớp để đóng gói dữ liệu Các giải pháp mới từ cách tiếp cận ORM, ADO.NET Entity Framework sẽ thay thế và cải thiện các công nghệ cũ
- Khả năng mở rộng
- Visual Studio cho phép các nhà phát triển viết các phần mở rộng cho Visual Studio để
mở rộng tính năng của nó Những phần mở rộng "cắm vào" Visual Studio và mở rộng tính năng của nó Các phần mở rộng đến ở dạng macro, add-in và các gói Các macro đại diện cho các nhiệm vụ lặp đi lặp lại và hành động mà các nhà phát triển có thể ghi lại theo chương trình
để tiết kiệm, các cài đặt Các chế độ biệt lập của vỏ tạo ra một AppID mới, nơi các gói được cài đặt Những thứ này được bắt đầu với một thực thi khác nhau Nó nhằm mục đích cho sự phát triển của môi trường phát triển tùy chỉnh, hoặc cho một ngôn ngữ cụ thể hoặc một kịch bản cụ thể Các chế độ tích hợp cài đặt các gói vào AppID của các phiên bản Professional / Standard / Team System, do đó các công cụ tích hợp vào các phiên bản Visual Studio Shell là miễn phí tải về
- Sau khi phát hành Visual Studio 2008, Microsoft đã tạo ra Visual Studio Gallery Nó phục vụ như vị trí trung tâm cho đăng tải thông tin về phần mở rộng cho Visual Studio Phát triển cộng đồng cũng như phát triển thương mại có thể tải lên thông tin về các phần mở rộng của họ đến Visual Studio.NET 2002 thông qua Visual Studio 2010 Người sử dụng trang web
có thể đánh giá và xem lại các phần mở rộng để giúp đánh giá chất lượng các phần mở rộng được đăng RSS feed thông báo cho người dùng trên bản cập nhật tới trang web và các tính năng gắn thẻ cũng được lên kế hoạch
1.2 Ngôn ngữ lập trình C# (C Sharp)
1.2.1 Khái niệm cơ bản
C# (C Sharp, đọc là "xi-sáp") là một ngôn ngữ lập trình hướng đối tượng đa năng,
mạnh mẽ được phát triển bởi Microsoft, C# là phần khởi đầu cho kế hoạch NET của họ Tên
của ngôn ngữ bao gồm ký tự thăng theo Microsoft nhưng theo ECMA là C#, chỉ bao gồm dấu
Trang 19số thường Microsoft phát triển C# dựa trên C++ và Java C# được miêu tả là ngôn ngữ có được sự cân bằng giữa C++, Visual Basic, Delphi và Java
C# được thiết kế chủ yếu bởi Anders Hejlsberg kiến trúc sư phần mềm nổi tiếng với
các sản phẩm Turbo Pascal, Delphi, J++, WFC Phiên bản gần đây nhất là 9.0, được phát hành vào năm 2020 cùng với Visual Studio 2019 phiên bản 16.8
1.2.2 Lịch sử hình thành
Cái tên "C sharp" được lấy cảm hứng từ ký hiệu âm nhạc, trong đó một dấu thăng sau nốt nhạc "#" nghĩa là một nốt được chơi cao hơn nửa cung Điều này tương tự như trường hợp đặt tên của ngôn ngữ của C++, trong đó "++" chỉ ra rằng giá trị của một biến nên được tăng lên 1 Biểu tượng # cũng giống với bốn ký tự "+" (trong một lưới 2x2), ngụ ý rằng ngôn ngữ
là một phiên bản tăng cường của C++ (gấp đôi C++) Bởi vì giới hạn kỹ thuật của việc hiển thị (các font chuẩn, trình duyệt ) và sự thật là ký tự thăng không hiện diện trong đa số các bàn phím, ký tự # đã được chọn để diễn đạt một cách tương đương trong cách viết tên ngôn ngữ
Hậu tố "#" đã được sử dụng bởi một số ngôn ngữ khác của.NET là các biến thể của các ngôn ngữ hiện tại, bao gồm J# (một ngôn ngữ.NET cũng được thiết kế bởi Microsoft có nguồn gốc từ Java 1.1), A# (từ Ada) và ngôn ngữ lập trình chức năng F#.Việc triển khai ban đầu của Eiffel for.NET được gọi là Eiffel# Hậu tố cũng đã được sử dụng cho các thư viện, chẳng hạn như Gtk# (một wrapper NET cho GTK+ và các thư viện GNOME khác) và Cocoa#
1.2.3 Mục tiêu của việc phát triển C#
Tiêu chuẩn ECMA liệt kê các mục tiêu của việc thiết kế ngôn ngữ C#:
- Ngôn ngữ được dự định là một ngôn ngữ lập trình đơn giản, hiện đại, hướng đến nhiều mục đích sử dụng, và là một ngôn ngữ lập trình hướng đối tượng
- Ngôn ngữ và việc triển khai đáp ứng các nguyên tắc của ngành kỹ thuật phần mềm như kiểm tra chặt chẽ kiểu dữ liệu, kiểm tra giới hạn mảng, phát hiện các trường hợp sử dụng
Trang 20các biến chưa có dữ liệu, và tự động thu gom rác Tính mạnh mẽ, sự bền bỉ, và năng suất của việc lập trình là rất quan trọng đối với ngôn ngữ này
- Ngôn ngữ sẽ được sử dụng để phát triển các thành phần của phần mềm theo hướng thích hợp cho việc triển khai trong các môi trường phân tán
- Khả năng di chuyển (portability) là rất quan trọng, đặc biệt là đối với những lập trình viên
đã quen với C và C++
- Hỗ trợ quốc tế hóa
- Ngôn ngữ sẽ được thiết kế để phù hợp với việc viết các ứng dụng cho cả hai hệ thống: hosted và nhúng, từ các phần mềm quy mô lớn, đến các phần mềm chỉ có các chức năng đơn giản
- Mặc dù các ứng dụng C# có tính kinh tế đối với các yêu cầu về bộ nhớ và chế độ xử lý, ngôn ngữ này không cạnh tranh trực tiếp về hiệu năng và kích thước đối với ngôn ngữ C hoặc assembly
1.2.4 Ưu điểm của ngôn ngữ C#
- C# là ngôn ngữ đơn giản, mạnh mẽ
C# được dựng trên nền tảng C++ và Java, ảnh hưởng bởi Delphi, VisualBasic nên ngôn ngữ C# được thừa hưởng các ưu điểm vào loại bỏ các yếu điểm của các ngôn ngữ trên, vì vậy
nó khá đơn giản, đồng thời loại bỏ các cú pháp dư thừa và thêm vào đó các cú pháp cải tiến hơn
C# là ngôn ngữ lập trình bậc cao, đa nền tảng vì vậy nó dễ dàng tiếp cận và phù hợp cho người mới bắt đầu học, ví dụ câu lệnh kinh điển dành cho người mới bắt đầu học là in
ra dòng chữ "Hello world", với C# ta chỉ cần 1 câu lệnh: System.Console.WriteLine("Hello world");
- C# là ngôn ngữ đa năng và hiện đại
C# phù hợp cho việc phát triển trong thời đại 4.0, bao gồm việc phát triển web, mobile app, game, học máy và trí tuệ nhân tạo, phát triển đám mây, IoT, blockchain, microservices
Trang 21- C# là một ngôn ngữ lập trình hướng đối tượng đồng thời hỗ trợ lập trình chức năng
C# hỗ trợ mạnh mẽ cho phương pháp lập trình hướng đối tượng, ngoài ra C# còn hỗ trợ các phương pháp lập trình chức năng thông qua các biểu thức lamba, khớp mẫu, functions, các thuộc tính bất biến
- C# là ngôn ngữ gõ tĩnh, định kiểu mạnh, hỗ trợ gõ động
C# được gõ tĩnh nên nó mang đầy đủ các ưu việt của phương pháp gõ tĩnh như bảo đảm
an toàn kiểu, tự động phân tích và nhận biết lỗi cú pháp ngay trong quá trình viết mã
Ngoài ra khi sử dụng C# kết hợp với IDE Visual Studio, C# được hỗ trợ gợi ý code bởi Visual Studio IntelliCode sử dụng trí tuệ nhân tạo giúp cho việc viết code trở nên nhanh chóng và dễ dàng hơn
- C# là một ngôn ngữ ít từ khóa
C# có khoảng hơn 80 từ khóa
- C# là một trong các ngôn ngữ lập trình phổ biến và phát triển nhất
Theo TIOBE Index, tính đến tháng 10/2020, C# là ngôn ngữ phổ biến thứ 5 thế giới Theo PYPL, tính đến tháng 10/2020, C# là ngôn ngữ được cộng đồng quan tâm và chia
Trang 22- Ngoài ra C# còn có những ưu điểm:
C# là ngôn ngữ lập trình mã nguồn mở,vì vậy C# là miễn phí với tất cả mọi người, đồng thời mọi người đều có thể cùng tham gia phát triển, đề xuất thiết kế ngôn ngữ C#
C# là ngôn ngữ đa nền tảng vì vậy có thể biên dịch trên nhiều nền tảng máy tính khác nhau (Windows, Linux, MacOS)
C# có hiệu suất cao và tốc độ thực thi nhanh do sử dụng trình biên dich trung gian (CLR), điểm cộng nữa là tốc độ phát triển phần mềm nhanh chóng so với đa số các ngôn ngữ hiện tại C# có IDE Visual Studio cùng nhiều plug-in vô cùng mạnh mẽ ngoài ra có thể viết C# bằng bất kỳ text editor nào khác như Visual Studio Code, Vim, Netbeam
C# có cấu trúc khá gần gũi với các ngôn ngữ lập trình truyền thống, song cũng được bổ sung các yếu tố mang tính hiện đại nên dễ dàng tiếp cận cho người mới học và học nhanh với C#
C# được thiết kế và phát triển bởi Microsoft nên rất được Microsoft quan tâm và hỗ trợ
Trang 231.2.5 Nhược điểm của ngôn ngữ C#
C# theo một hướng nào đó, là ngôn ngữ lập trình phản ánh trực tiếp nhất đến NET Framework mà tất cả các chương trình.NET chạy, và nó phụ thuộc mạnh mẽ vào framework này Mọi dữ liệu cơ sở đều là đối tượng, được cấp phát và hủy bỏ bởi trình dọn rác Garbage-Collector (GC), và nhiều kiểu trừu tượng khác chẳng hạn như class, delegate, interface, exception phản ánh rõ ràng những đặc trưng của.NET runtime
So sánh với C và C++, ngôn ngữ này bị giới hạn và được nâng cao ở một vài đặc điểm nào đó, nhưng không bao gồm các giới hạn sau đây:
- Các con trỏ chỉ có thể được sử dụng trong chế độ không an toàn Hầu hết các đối tượng được tham chiếu an toàn, và các phép tính đều được kiểm tra tràn bộ đệm Các con trỏ chỉ được sử dụng để gọi các loại kiểu giá trị; còn những đối tượng thuộc bộ gom rác thì chỉ được gọi bằng cách tham chiếu
- Các đối tượng không thể được giải phóng tường minh
- Chỉ có đơn kế thừa, nhưng có thể cài đặt nhiều interface trừu tượng (abstract interfaces) Chức năng này làm đơn giản hóa sự thực thi của thời gian thực thi
- C# thì an-toàn-kiểu (typesafe) hơn C++
- Cú pháp khai báo mảng khác nhau (“int [ ] a = new int [ 5 ]”)
- Kiểu thứ tự được thay thế bằng tên miền không gian
Trang 24- Phát triển web front end (Blazor WebAssembly,Uno platform)
- Phát triển desktop app (Winform, WPF, UWP,WinUI, Mono, Uno, MAUI,Blazor desktop )
- Phát triển game 2D, 3D đa nền tảng (Game engine:Unity, Monogame, Godot, Stride, CryEngine, Flax Engine, Evergine, NeoAxis, XNA )
- Phát triển thực tế ảo (VR), thực tế tăng cường(AR), thực tế hỗn hợp (MR) (HoloLens,Unity,CryEngine, Oculus quest )
- Phát triển ứng dụng đồ họa 2D,3D đa nền tảng (2D: SkiaSharp, ImageSharp ; 3D: OpenTK, SharpDX, SharpVulkan, Vulkan.NET, Veldrid, Silk.NET, Helix Toolkit, Aspose )
- Phát triển mobile app, IOS native, Android native (Xamarin,MAUI,Uno platform)
- Phát triển đám mây (Azure,AWS,Google Cloud )
- Học máy và trí tuệ nhân tạo (ML.Net, TensorFlow, csiSharp )
- Data science, bigdata (csiSharp, Apache Spark)
- Blockchain (NEO, Stratis)
- Microservices and containers
- Internet of thing (IoT,5G)
- Hệ thống nhúng (Raspberry pi, PLC)
1.3 SQL Server
1.3.1 Giới Thiệu SQL Server
SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ (Relational Database Management
System (RDBMS) ) sử dụng câu lệnh SQL (Transact-SQL) để trao đổi dữ liệu giữa máy Client
và máy cài SQL Server Một RDBMS bao gồm databases, database engine và các ứng dụng dùng để quản lý dữ liệu và các bộ phận khác nhau trong RDBMS
SQL Server được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn (Very Large Database Environment) lên đến Tera-Byte và có thể phục vụ cùng lúc cho hàng ngàn user SQL Server có thể kết hợp “ăn ý” với các server khác như Microsoft Internet Information Server (IIS), E-Commerce Server, Proxy Server…
Trang 25Một vài ấn bản SQL Server:
- Enterprise : chứa tất cả cá đặc điểm nổi bật của SQL Server, bao gồm nhân bộ máy
cơ sở dữ liệu và các dịch vụ đi kèm cùng với các công cụ cho tạo và quản lý phân cụm SQL Server Nó có thể quản lý các CSDL lớn tới 524 petabytes và đánh địa chỉ
12 terabytes bộ nhớ và hỗ trợ tới 640 bộ vi xử lý(các core của cpu)
- Standard : Rất thích hợp cho các công ty vừa và nhỏ vì giá thành rẻ hơn nhiều so với
Enterprise Edition, nhưng lại bị giới hạn một số chức năng cao cấp (advanced features) khác, edition này có thể chạy tốt trên hệ thống lên đến 4 CPU và 2 GB RAM
- Developer : Có đầy đủ các tính năng của Enterprise Edition nhưng được chế tạo đặc
biệt như giới hạn số lượng người kết nối vào Server cùng một lúc… Ðây là phiên bản
sử dụng cho phát triển và kiểm tra ứng dụng Phiên bản này phù hợp cho các cá nhân,
tổ chức xây dựng và kiểm tra ứng dụng
- Workgroup: ấn bản SQL Server Workgroup bao gồm chức năng lõi cơ sở dữ liệu
nhưng không có các dịch vụ đi kèm Chú ý phiên bản này không còn tồn tại ở SQL Server 2012
- Express : SQL Server Express dễ sử dụng và quản trị cơ sở dữ liệu đơn giản Được
tích hợp với Microsoft Visual Studio, nên dễ dàng để phát triển các ứng dụng dữ liệu,
an toàn trong lưu trữ, và nhanh chóng triển khai SQL Server Express là phiên bản miễn phí, không giới hạn về số cơ ở dữ liệu hoặc người sử dụng, nhưng nó chỉ dùng cho 1
bộ vi xử lý với 1 GB bộ nhớ và 10 GB file cơ sở dữ liệu SQL Server Express là lựa chọn tốt cho những người dùng chỉ cần một phiên bản SQL Server 2005 nhỏ gọn, dùng trên máy chủ có cấu hình thấp, những nhà phát triển ứng dụng không chuyên hay những người yêu thích xây dựng các ứng dụng nhỏ
1.3.2 Cài Ðặt SQL Server (Installation)
Để cài SQL Server thì cần có phiên bản Developer Edition và ít nhất là 64 MB RAM,
500 MB hard disk để có thể cài SQL Server Bạn có thể cài trên Windows Server hay Windows
10, Windows 8, Windows 7, Windows XP …
Các bước cài đặt không quá khó khăn với các phiên bản SQL Server khác nhau, bạn có thể xem lại bài Hướng dẫn cài đặt SQL Server 2008 Khi cài đặt bạn cần lưu ý các điểm sau:
Trang 26Ở màn hình thứ hai bạn chọn Install Database Server Sau khi install xong SQL Server bạn có thể install thêm Analysis Service nếu bạn thích
Ở màn hình Installation Definition bạn chọn Server and Client Tools
Sau đó bạn nên chọn kiểu Custom và chọn tất cả các bộ phận của SQL Server Ngoài
ra nên chọn các giá trị mặc định (default)
Ở màn hình Authentication Mode nhớ chọn Mixed Mode Lưu ý vì SQL Server có thể dùng chung chế độ bảo mật (security) với hệ điều hành Windows và cũng có thể dùng chế độ bảo mật riêng của nó Trong Production Server người ta thường dùng Windows Authetication
vì độ an toàn cao hơn và dễ dàng cho người quản lý mạng và cả cho người sử dụng Nghĩa là một khi bạn được chấp nhận (authenticated) kết nối vào domain thì bạn có quyền truy cập dữ liệu (access data) trong SQL Server Tuy nhiên ta nên chọn Mixed Mode để dễ dàng cho việc học tập
Sau khi install bạn sẽ thấy một icon nằm ở góc phải bên dưới màn hình, đây chính là Service Manager Bạn có thể Start, Stop các SQL Server services dễ dàng bằng cách double-click vào icon này
1.3.3 Lịch sử ra đời SQL Server và các phiên bản
Phiên bản đầu tiên của Microsoft SQL Server ra đời đầu tiên vào năm 1989 cho các hệ điều hành chạy 16 bít với SQL Server phiên bản 1.0 và tiếp tục phát triển cho tới ngày nay
SQL Server của Microsoft được thị trường chấp nhận rộng rãi kể từ version 6.5 Sau
đó Microsoft đã cải tiến và hầu như viết lại một engine mới cho SQL Server 7.0 Cho nên có thể nói từ version 6.5 lên version 7.0 là một bước nhảy vọt Có một số đặc tính của SQL Server 7.0 không tương thích với version 6.5 Trong khi đó từ Version 7.0 lên version 8.0 (SQL Server 2000) thì những cải tiến chủ yếu là mở rộng các tính năng về web và làm cho SQL Server 2000 đáng tin cậy hơn
Một điểm đặc biệt đáng lưu ý ở phiên bản 2000 là Multiple-Instance Tức là bạn có thể cài dặt phiên bản 2000 chung với các phiên bản trước mà không cần phải gỡ chúng Nghĩa là bạn có thể chạy song song version 6.5 hoặc 7.0 với phiên bản 2000 trên cùng một máy (điều
Trang 27này không thể xảy ra với các phiên bản trước đây) Khi đó phiên bản cũ trên máy bạn là Default Instance còn phiên bản 2000 mới vừa cài sẽ là Named Instance
Từ tháng 10 năm 2016, các phiên bản sau được Microsoft hỗ trợ:
1.3.4 Các thành phần cơ bản trong SQL Server
SQL Server được cấu tạo bởi nhiều thành phần như Database Engine, Reporting Services, Notification Services, Integration Services, Full Text Search Service… Các thành phần này khi phối hợp với nhau tạo thành một giải pháp hoàn chỉnh giúp cho việc lưu trữ và phân tích dữ liệu một cách dễ dàng
Database Engine
– Cái lõi của SQL Server:
Ðây là một engine có khả năng chứa data ở các quy mô khác nhau dưới dạng table và support tất cả các kiểu kết nối (data connection) thông dụng của Microsoft như
ActiveX Data Objects (ADO), OLE DB, and Open Database Connectivity (ODBC)
Ngoài ra nó còn có khả năng tự điều chỉnh (tune up) ví dụ như sử dụng thêm các tài nguyên (resource) của máy khi cần và trả lại tài nguyên cho hệ điều hành khi một user log off
Replication
– Cơ chế tạo bản sao (Replica):
Giả sử bạn có một database dùng để chứa dữ liệu được các ứng dụng thường xuyên cập nhật Một ngày đẹp trời bạn muốn có một cái database giống y hệt như thế trên một server khác để
Trang 28chạy báo cáo (report database) (cách làm này thường dùng để tránh ảnh hưởng đến performance của server chính) Vấn đề là report server của bạn cũng cần phải được cập nhật thường xuyên để đảm bảo tính chính xác của các báo cáo Bạn không thể dùng cơ chế back
up and restore trong trường hợp này Thế thì bạn phải làm sao? Lúc đó cơ chế replication của SQL Server sẽ được sử dụng để bảo đảm cho dữ liệu ở 2 database được đồng bộ (synchronized) Replication sẽ được bàn kỹ trong bài 12
Integration Services (DTS)
– Integration Services là một tập hợp các công cụ đồ họa và các đối tượng lập trình cho việc
di chuyển, sao chép và chuyển đổi dữ liệu
Nếu bạn làm việc trong một công ty lớn trong đó data được chứa trong nhiều nơi khác nhau
và ở các dạng khác nhau cụ thể như chứa trong Oracle, DB2 (của IBM), SQL Server, Microsoft Access….Bạn chắc chắn sẽ có nhu cầu di chuyển data giữa các server này (migrate hay transfer) và không chỉ di chuyển bạn còn muốn định dạng (format) nó trước khi lưu vào database khác, khi đó bạn sẽ thấy DTS giúp bạn giải quyết công việc trên dễ dàng
Analysis Services
Một dịch vụ phân tích dữ liệu rất hay của Microsoft
Dữ liệu (Data) chứa trong database sẽ chẳng có ý nghĩa gì nhiều nếu như bạn không thể lấy được những thông tin (Information) bổ ích từ đó Do đó Microsoft cung cấp cho bạn một công cụ rất mạnh giúp cho việc phân tích dữ liệu trở nên dễ dàng và hiệu quả bằng cách dùng khái niệm hình khối nhiều chiều (multi-dimension cubes) và kỹ thuật “khai phá dữ liệu” (data mining)
Notification Services
Dịch vụ thông báo Notification Services là nền tảng cho sự phát triển và triển khai các ứng dụng tạo và gửi thông báo Notification Services có thể gửi thông báo theo địch thời đến hàng ngàn người đăng ký sử dụng nhiều loại thiết bị khác nhau
Reporting Services
Trang 29Reporting Services bao gồm các thành phần server và client cho việc tạo, quản lý và triển khai các báo cáo Reporting Services cũng là nền tảng cho việc phát triển và xây dựng các ứng dụng báo cáo
Full Text Search Service
Dịch vụ SQL Server Full Text Search là một dịch vụ đặc biệt cho đánh chỉ mục và truy vấn cho dữ liệu văn bản không cấu trúc được lưu trữ trong các CSDL SQL Server Đánh chỉ mục với Full Text Search có thể dduwowcj tạo trên bất kỳ cột dựa trên dữ liệu văn bản Nó sẽ rất hiệu quả cho việc tìm các sử dụng toán tử LIKE trong SQL với trường hợp tìm văn bản
Service Broker
Được sử dụng bên trong mỗi Instance, là môi trường lập trình cho việc các ứng dụng nhảy qua các Instance Service Broker giao tiếp qua giao thức TCP/IP và cho phép các component khác nhau có thể được đồng bộ cùng nhau theo hướng trao đổi các message Service Broker chạy như một phần của bộ máy cơ sở dữ liệu, cung cấp một nền tảng truyền message tin cậy và theo hàng đợi cho các ứng dụng SQL Server
Trang 30CHƯƠNG II: KHẢO SÁT HỆ THỐNG
Phần mềm HRM (Human Resource Management software) là phần mềm nhân sự được
thiết kế để quản lý, tối ưu hóa cũng như hỗ trợ các nhiệm vụ liên quan đến nhân sự Phần mềm
này giúp người nhân viên và quản lý phát huy hết khả năng trong công việc của họ Đồng thời, dựa trên kết quả của phần mềm HRM, doanh nghiệp cũng sẽ biết được nên tiếp tục hay thay đổi định hướng mới Cụ thể là ứng dụng công nghệ vào trong việc quản trị nhân sự toàn diện
từ việc quản lý hồ sơ, tuyển dụng, chấm công, tính lương, trả lương, đào tạo, tính KPIs, BHYT, BHXH,…nhanh chóng, thuận tiện, chính xác Giúp nhân sự tiết kiệm được thời gian Thông qua đó ban lãnh đạo doanh nghiệp cũng nắm rõ được tình hình của doanh nghiệp và đưa ra những phương án triển khai phù hợp
2.1.3 Các chức năng cơ bản của phần mềm HRM
Để một doanh nghiệp hoạt động được tốt hơn nên việc phần mềm HRM được ra đời và đáp ứng những khó khăn mà việc quản trị nhân sự gặp phải Những chức năng mà phần mềm HRM mang lại để giúp cho doanh nghiệp thuận lợi hơn trong quá trình quản trị đó là:
Trang 31Quản lý hệ thống nhân sự: Phần mềm HRM giúp doanh nghiệp lưu trữ toàn bộ thông
tin sơ yếu lý lịch, hợp đồng, bảo hiểm, thông tin của nhân viên,…Quản lý những vấn đề kinh nghiệm, chuyên nghiệp, năng lực của nhân viên trong doanh nghiệp
Tạo ra quy trình tuyển dụng thông minh: Phần mềm sẽ hỗ trợ doanh nghiệp trong
quá trình tuyển dụng từ những bước đơn giản như tạo đơn đề xuất tuyển dụng trên hệ thống rồi đến sàng lọc hồ sơ ứng viên phù hợp Bên cạnh đó có thể kết nối với những sàn giao dịch việc làm hoặc website tuyển dụng để tìm kiếm những ứng viên phù hợp
Quản lý, đánh giá, xếp loại chất lượng của nhân viên: Doanh nghiệp hoàn toàn có
thể quản lý, đánh giá, xếp loại được chất lượng nhân viên thông qua phần mềm HRM Người dùng hoàn toàn có thể đánh giá, thiết lập theo theo đầu mục công việc, xem quá trình đào tạo, kết quả KPI để đưa ra những quyết định tăng lương, trừ lương hay thưởng đối với nhân viên
Quản lý chấm công, tính lương chính xác: Thật phiền phức nếu như cứ đến tháng là
nhân sự lại mất thời gian cho việc ngồi tính thủ công từng người một về bảng lương cũng như ngày đi, ngày nghỉ Điều đó đã được phần mềm HRM giải quyết nhanh chóng Kết nối với máy chấm công để nhận dữ liệu mỗi ngày Thiết lập ca làm, lịch nghỉ,… và làm bảng chấm công cho từng bộ phận Căn cứ vào chấm công thì phần mềm chấm công tính lương sẽ tự động tính lương Tự động trừ vào những ngày nghỉ phép, ngày đi muộn, tính thuế thu nhập hay lương tạm ứng và gửi phiếu lương cho nhân viên Tính năng này giúp giảm thiểu thời gian cho nhân sự trong việc ngồi chấm công, tính lương mỗi tháng của doanh nghiệp để tập trung vào những việc tối ưu quy trình vận hành
Báo cáo tình hình nhân sự cho doanh nghiệp: Dựa vào những yếu tố mà phần mềm
HRM đánh giá thì ban lãnh đạo sẽ căn cứ vào đó để đánh giá năng lực của mỗi nhân viên và giám sát được tình hình nhân sự của doanh nghiệp HRM cung cấp các công cụ để tạo ra các báo cáo và phân tích về các hoạt động nhân sự như tỷ lệ nghỉ việc, hiệu suất làm việc, và chi phí nhân sự
2.1.4 Khái niệm mô hình 3 lớp
Mô hình 3 lớp là một kiến trúc phần mềm được sử dụng để thiết kế và triển khai ứng dụng phần mềm Đây là một trong những mô hình phát triển phổ biến trong công nghệ phần
Trang 32mềm Các lớp này tách biệt các thành phần của ứng dụng, từ đó làm cho việc quản lý và bảo trì ứng dụng trở lên rõ ràng hơn Nó cũng cho phép phát triển song song giữa các lớp, cho phép nhiều nhóm phát triển làm việc độc lập trên các phần khác nhau của ứng dụng Mô hình này chia ứng dụng thành ba lớp chính:
Lớp giao diện người dùng (Presentation Layer): Lớp này tương tác trực tiếp với
người dùng cuối Nó chịu trách nhiệm hiển thị dữ liệu và cung cấp giao diện cho người dùng tương tác với ứng dụng Đây thường là phần giao diện đồ họa cho người dùng
Lớp Logic ứng dụng (Business Logic Layer): Lớp này xử lý Logic của ứng dụng Nó
chứa các quy tắc kinh doanh, xử lý dữ liệu và thực hiện các nhiệm vụ Lgic cần thiết Lớp này không liên quan trực tiếp đến việc hiển thị dữ liệu hoặc tương tác với người dùng, mà tập trung vào xử lý Logic ứng dụng và dữ liệu
Lớp truy cập dữ liệu (Data Acess Layer): Lớp này làm nhiệm vụ giao tiếp với các
nguồn dữ liệu như cơ sở dữ liệu, tệp tin hay dịch vụ Web Nó cung cấp các phương thức để truy cập và thay đổi dữ liệu từ các nguồn này Lớp này đảm bảo rằng Logic ứng dụng và giao diện người dùng có thể tương tác với nhau một cách hiệu quả
(Không cần thiết) DTO Layer: Đây là một lớp phụ, đây là lớp định nghĩa các table
trong database, định nghĩa cột của nó cũng như để ta gán data khi query lấy dữ liệu Có thể hiểu nôm na là 1 dạng cơ bản ORM (Object Relation Mapping)
2.1.5 Lợi thế của mô hình 3 lớp
Việc phân chia thành từng lớp giúp cho code được tường minh hơn Nhờ vào việc chia
ra từng lớp đảm nhận các chức năng khác nhau và riêng biệt như giao diện, xử lý, truy vấn thay vì để tất cả lại một chỗ Nhằm giảm sự kết dính
Dễ bảo trì khi được phân chia, thì một thành phần của hệ thống sẽ dễ thay đổi Việc thay đổi này có thể được cô lập trong 1 lớp, hoặc ảnh hưởng đến lớp gần nhất mà không ảnh hưởng đến cả chương trình
Trang 33 Dễ phát triển, tái sử dụng: khi chúng ta muốn thêm một chức năng nào đó thì việc lập trình theo một mô hình sẽ dễ dàng hơn vì chúng ta đã có chuẩn để tuân theo Và việc
sử dụng lại khi có sự thay đổi giữa hai môi trường ( Winform sang Webfrom ) thì chỉ việc thay đổi lại lớp GUI
Dễ bàn giao Nếu mọi người đều theo một quy chuẩn đã được định sẵn, thì công việc bàn giao, tương tác với nhau sẽ dễ dàng hơn và tiết kiệm được nhiều thời gian
Dễ phân phối khối lượng công việc Mỗi một nhóm, một bộ phận sẽ nhận một nhiệm
vụ trong mô hình 3 lớp Việc phân chia rõ ràng như thế sẽ giúp các lập trình viên kiểm soát được khối lượng công việc của mình
2.2 Khảo sát chi tiết
2.2.1 Khảo sát hiện trạng
- Việc sử dụng bảng tính Excel tuy chính xác nhưng còn rất nhiều hạn chế
- Ban quản lý nhận thấy việc quản lý thông tin nhân viên là cần thiết
- Khó có thể quản lý chấm công cho nhân viên bằng bảng tính Excel
- Nhân viên không thể biết tình trạng công việc của mình
- Quản lý điều chuyển, khen thưởng kỉ luật, tăng ca, phụ cấp là rất cần thiết
- Tính lương cho nhân viên dễ dàng và chính xác với số lượng nhân viên lớn
2.2.2 Hạn chế
- Chưa thể tính lương theo doanh số mà nhân viên thực hiện được trong quá trình làm việc
- Chưa đáp ứng các yêu cầu về pháp luật về vấn đề tiền lương và lao động
2.3 Danh sách các trang
2.3.1 Các chức năng chính của phần mềm
2.3.1.1 Chức năng quản lý nhân viên
a) Chức năng quản lý thông tin nhân viên:
Dân tộc
Trang 34 Điều chuyển nhân viên
Khen thưởng – kỉ luật
Nhân viên thôi việc
2.3.1.2 Chức năng quản lý tiền lương
Bảng lương nhân viên
Ứng lương nhân viên
Nhân viên phụ cấp
Quá trình nâng lương nhân viên
2.3.1.3 Chức năng quản lý chấm công
Quản lý loại ca
Quản lý loại công
Bảng công nhân viên:
Bảng công sẽ bao gồm các ký công của nhân viên Admin có thể thêm kỳ công và phát sinh kỳ công cho nhân viên
Tăng ca
2.3.2 Các yêu cầu chức năng
a) Quản lý nhân viên
Cập nhật thông tin nhân viên (Thêm, sửa, xóa, …)
Trang 35 Lưu trữ thông tin nhân viên
In thông tin nhân viên
b) Quản lý tiền lương
Chấm công cho nhân viên
Tính lương dựa trên bảng chấm công
Ứng và thanh toán lương
c) Quản lý chấm công
Quản lý các chấm công
Quản lý cập nhật các kỳ công
Quản lý kỳ công theo tháng
Quản lý kỳ công theo từng nhân viên
d) Báo cáo và thống kê
Thống kê báo cáo về nhân viên
Thống kê báo cáo về tiền lương
Báo cáo tổng hợp
e) Sơ đồ phân cấp chức năng tổng quát
Hình 1: Sơ đồ phân cấp chức năng tổng quát
Trang 362.3.3 Các yêu cầu phi chức năng
Dễ sử dụng: Phần mềm phải có một giao diện thân thiện và cấu trúc dễ hiểu và dễ sử
dụng các ngôn ngữ phù hợp với ngôn ngữ tự nhiên người dùng
Khả năng tính toán: Việc tính toán và quản lý tiền lương cần chuẩn xác để không ảnh
hưởng đến quyền lợi nhân viên
Tương thích với nhiều phần mềm khác: Phần mềm phải tương thích với các phần
mềm khác để không gây xung đột và tạo ra sự cố máy khi chạy chương trình
Tương thích với nhiều thiết bị ngoại vi: Phần mềm cần tương thích với các thiết bị
bên ngoài như: bàn phím, chuột,…
Giao diện bắt mắt: Dễ nhìn, dễ sử dụng, mang lại cảm giác dễ chịu cho người dùng
Yêu cầu bộ nhớ: Phần mềm khi được viết ra cần phải tiết kiệm bộ nhớ cho các thiết
bị để hoạt động tốt hơn
Tính bảo mật: Vì là phần mềm sử dụng cho doanh nghiệp nên thông tin về mọi mặt
cần được bảo mật để không ảnh hưởng đến doanh nghiệp
Trang 37CHƯƠNG III: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
3.1 Biểu đồ Usecase
3.1.1 Xác định Actor
Admin: Là người đứng đầu của hệ thống
Nhân viên: Nhân viên có thể thực hiện các chức năng được Amin cung cấp hoặc một vài chức năng cơ bản ở mức thấp hơn Admin
Bảng 3 1: Phân tích yêu cầu chức năng hệ thống
Admin 1.0: Phân quyền nhân viên
1.1: Xem thông tin nhân viên
1.2: Cập nhật thông tin nhân viên (Thêm, sửa, xóa,…)
1.3: Chấm công nhân viên
1.4: Cập nhật bảng chấm công
1.5: Tính lương nhân viên
1.6: Lập báo cáo, thống kê
Có thể nâng cấp một vài nhân viên lên Admin
Nhân viên 2.0: Tạo tài khoản và đăng nhập
2.1: Xem thông tin nhân viên
2.2: Xem thông tin chấm công
2.3: Xem thông tin tiền lương
2.4: Phản hồi với Admin
Trang 38*Chú ý: Người dùng có thể là duy nhất hoặc cũng có thể là nhiều người dùng với chức năng
giống hệt nhau
3.1.2 Xác định các UseCase
- UseCase xem thông tin nhân viên
- UseCase xem thông tin tiền lương
- UseCase xem danh sách chấm công
- UseCase xem thông tin chi tiết nhân viên
- UseCase xem thông tin chi tiết tiền lương
- UseCase chọn thông tin nhân viên
- UseCase thêm thông tin nhân viên
- UseCase sửa thông tin nhân viên
- UseCase xóa thông tin nhân viên
- UseCase lưu thông tin nhân viên
- UseCase in thông tin nhân viên và tiền ương
- UseCase thanh toán tiền lương
- UseCase chấm công cho nhân viên
- UseCase báo cáo thống kê