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 và 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 giảm thiểu diện tích các kho và thậm chí là không cần.
Trang 1LỜI MỞ ĐẦU
Đấ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ínhxác là các phần mềm tin học dùng cho các công ty, bệnh viện v.v… Việc áp dụng cácphầ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ôngviệ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
để tạo ra ngày càng nhiều sản phẩm cho xã hội Các công ty luôn luôn phát triển, các
hồ sơ tuyển vào sẽ nhiều lên vì vậy đòi hỏi phải cần rất nhiều những kho chứa hồ sơ đểlưu trữ hồ sơ của nhân viên khi vào công ty để giảm đi những bất cập trong công tácquản lý nhân sự và lương trong 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 hoá trong điềuhà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 xuất hiệu quả Đó là những nội dung cơ bản đề cập đến trong đề tàinày
Trang 2
MỤC LỤC
LỜI MỞ ĐẦU 1
CHƯƠNG 1: TỔNG QUAN 7
1.1 Cơ sở của đề tài 7
1.1.1 Lý do chọn đề tài 7
1.1.2 Cơ sở thực tiễn của đề tài 7
1.2 Nội dung nghiên cứu 9
1.2.1 Mục tiêu của đề tài 9
1.2.2 Nội dung của đề tài 9
1.2.3 Phương pháp nghiên cứu 12
1.2.4 Phạm vi nghiên cứu 13
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 14
2.1 Giới thiệu Net FrameWork và ngôn ngữ C# 14
2.1.1 Nền tảng của Net 14
2.1.2 Net FrameWork 15
2.1.3 Biên dịch và ngôn ngữ trung gian (MSIL) 16
2.1.4 Ngôn ngữ C# 17
2.2 Giới thiệu về MSSQL 18
CHƯƠNG 3 NỘI DUNG THỰC HIỆN 21
3.1 Sơ đồ USE – CASE 21
3.1.1 Danh sách các Actor 21
3.1.2 Danh sách các USE-CASE 22
3.2 Đặc tả USE-CASE 23
3.2.1 Đặc tả USE-CASE “Đăng Nhập” 23
3.2.2 Đặc tả USE-CASE “Phân Quyền” 25
3.2.3 Đặc tả USE-CASE “Xem danh sách nhân viên” 26
3.2.4 Đặc tả USE-CASE “Nhập hồ sơ nhân viên” 27
3.2.5 Đặc tả USE-CASE “Cập nhật hồ sơ nhân viên” 28
3.2.6 Đặc tả USE-CASE “Xóa hồ sơ nhân viên” 30
Trang 33.2.7 Đặc tả USE-CASE “Tra cứu nhân viên theo đơn vị” 31
3.2.8 Đặc tả USE-CASE “Tính lương” 32
3.2.8 Đặc tả USE-CASE “Thay đổi tham số” 32
3.2.9 Đặc tả USE-CASE “Kỷ luật” 33
3.3 Sơ đồ lớp 34
3.3.1 Danh sách các lớp đối tượng và quan hệ: 35
3.3.2 Mô tả chi tiết từng lớp đối tượng 37
3.4 Sơ đồ logic 41
3.4.1 Bảng ghi chú 43
3.4.2 Mô tả chi tiết các kiểu dữ liệu 45
3.5 Kiến trúc hệ thống 57
3.5.1 Các thành phần trong kiến trúc hệ thống 58
3.5.2 Chi tiết thành phần trong kiến trúc hệ thống 59
3.6 Thiết kế giao diện 61
3.6.1 Thiết kế form hệ thống 62
3.6.2 Thiét kế form cập nhật danh mục 63
3.6.2 Thiết kế các form Cập nhật nhân viên công ty 66
3.6.3 Thiết kế các form Chức năng 69
3.7 Kết quả thực hiện 70
3.7.1 Môi trường phát triển và môi trường triển khai 70
3.7.2 Kết quả đạt được 70
3.7.3 Hướng phát triển 71
KẾT LUẬN 72
DANH MỤC TÀI LIỆU THAM KHẢO 72
DANH MỤC CÁC HÌNH
Trang 4Hình 2.1 Kiến trúc khung ứng dụng Net 15
Hình 3.1 Sơ đồ use-case tổng quát 21
Hình 3.2 Lược đồ tuần tự 24
Hình 3.3 Lược đồ trạng thái Use-Case Đăng nhập 25
Hình 3.3 Sơ đồ lớp 35
Hình 3.4 Sơ đồ logic 43
Hình 3.5 Kiến trúc hệ thống 58
Hình 3.6 Chi tiết thành phần trong kiến trúc hệ thống 59
Hình 3.7 Thiết kế form đăng nhập 62
Hình 3.8 Thiết kế form đổi mật khẩu 63
Hình 3.9 Thiết kế form đăng ký 63
Hình 3.10 Thiết kế form danh mục 64
Hình 3.11 Thiết kế form bảng công 65
Hình 3.12 Thiết kế form Quản lý lương 65
Hình 3.13 Thiết kế form phòng ban 66
Hình 3.14 Thiết kế form nhập thông tin cho nhân viên 67
Hình 3.15 Thiết kế form nhập bộ phận 68
Hình 3.16 Thiết kế form chế độ bảo hiểm 69
Hình 3.17 Thiết kế form chế độ Thai sản 69
Hình 3.18 Thiết kế form tra cứu 70
DANH MỤC CÁC BẢNG
Trang 5Bảng 3.1 Danh sách các Actor 22
Bảng 3.2 Danh sách các USE-CASE 23
Bảng 3.3 Danh sách các lớp đối tượng và quan hệ 37
Bảng 3.4 Mô tả chi tiết từng lớp đối tượng 41
Bảng 3.5 Bảng ghi chú 45
Bảng 3.6 Mô tả chi tiết các kiểu dữ liệu của bảng nhân viên 46
Bảng 3.7 Mô tả chi tiết các kiểu dữ liệu của bảng trình độ 46
Bảng 3.8 Mô tả chi tiết các kiểu dữ liệu của bảng chi tiết trình độ 47
Bảng 3.9 Mô tả chi tiết các kiểu dữ liệu của bảng tôn giáo 48
Bảng 3.10 Mô tả chi tiết các kiểu dữ liệu của bảng dân tộc 48
Bảng 3.11 Mô tả chi tiết các kiểu dữ liệu của bảng khen thưởng 48
Bảng 3.12 Mô tả chi tiết các kiểu dữ liệu của bảng chi tiết khen thưởng 49
Bảng 3.13 Mô tả chi tiết các kiểu dữ liệu của bảng kỷ luật 49
Bảng 3.14 Mô tả chi tiết các kiểu dữ liệu của bảng chi tiết kỷ luật 50
Bảng 3.15 Mô tả chi tiết các kiểu dữ liệu của bảng chức vụ 51
Bảng 3.16 Mô tả chi tiết các kiểu dữ liệu của bảng phòng ban 51
Bảng 3.17 Mô tả chi tiết các kiểu dữ liệu của bảng chuyển công tác 52
Bảng 3.18 Mô tả chi tiết các kiểu dữ liệu của bảng thai sản 53
Bảng 3.19 Mô tả chi tiết các kiểu dữ liệu của bảng bảng lương 54
Bảng 3.20 Mô tả chi tiết các kiểu dữ liệu của bảng người dùng 54
Bảng 3.21 Mô tả chi tiết các kiểu dữ liệu của bảng phân quyền 54
Bảng 3.22 Mô tả chi tiết các kiểu dữ liệu của bảng hợp đồng 55
Bảng 3.23 Mô tả chi tiết các kiểu dữ liệu của bảng chi tiết hợp đồng 56
Bảng 3.24 Mô tả chi tiết các kiểu dữ liệu của bảng ngoại ngữ 56
Bảng 3.25 Mô tả chi tiết các kiểu dữ liệu của bảng chi tiết ngoại ngữ 57
Bảng 3.26 Mô tả chi tiết các kiểu dữ liệu của bảng tham số 57
Bảng 3.27 Thành phần trong kiến trúc hệ thống 58
Bảng 3.28 Chi tiết thành phần trong kiến trúc hệ thống 60
Bảng 3.29 Bảng Thiết kế giao diện 62
Trang 6PHỤ LỤC
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 sa mạc Công nghệ thông tin nên 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ụ cholợi ích của công ty Ứng dụng phần mềm của em có thể chưa hoàn chỉnh và còn nhiềuthiếu sót nhưng đó là sự cố gắng của em trong bước đầu hòa nhập vào môi trường làmviệc bên ngoài và tiếp xúc chập chững với Công nghệ thông tin Em mong quý thầy côtrong khoa có thể tạo điều kiện giúp đỡ em hoàn thành đề tài tốt hơn.
Chương trình phần mềm quản lý nhân sự của em được lập trình bằng ngôn ngữlập trình C# Ngôn ngữ C# là một ngôn ngữ được dẫn xuất từ C và C++, nhưng nóđược tạo từ nền tảng phát triển hơn Microsoft bắt đầu với công việc trong C và C++
và thêm vào những đặc tính mới để làm cho ngôn ngữ này dễ sử dụng hơn Nhiềutrong số những đặc tính này khá giống với những đặc tính có trong ngôn ngữ Java.Không dừng lại ở đó, Microsoft đưa ra một số mục đích khi xây dựng ngôn ngữ này.Những mục đích này được được tóm tắt như sau:
C# là ngôn ngữ đơn giản
C# là ngôn ngữ hiện đại
C# là ngôn ngữ hướng đối tượng
C# là ngôn ngữ mạnh mẽ và mềm dẻo
C# là ngôn ngữ có ít từ khóa
C# là ngôn ngữ hướng module
Trang 8C# chạy trên nền NetFramwork và kết nối bằng cơ sở SQL Phần mềm này giúpcô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ếmmất thời gian mà hiệu quả và tính chính xác vẫn cao.
1.1.2 Cơ sở thực tiễn của đề 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 mất rất nhiều thời gian mà có khi không tìm ra do hồ sơ nhân viên quá nhiều.Công việc lưu trữ hồ sơ rất thủ công hầu hết ở các khâu làm cho số lượng nhân viêntham gia vào việc lưu trữ hồ sơ sẽ nhiều lên.Việc thống kê báo cáo hàng tháng, hàngnă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ảitìm trong kho xem hồ sơ đó ở đâu để chuyển sang kho lưu trữ thôi việc Nếu hàngngà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ônthấ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 những xáo trộn khi phát lương Vì vậy yêu cầu đặt ra ở đây là làmthế 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úpcho 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 em quyết định chọn đề tàitốt nghiệp là “Phân tích và thiết kế phần mềm quản lý nhân sự” là em mong muốnphần mềm quản lý nhân sự sẽ là người hỗ trợ đắc lực cho việc quản lý nhân sự củacô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ầnmề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ươngtrì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
1.2 Nội dung nghiên cứu
1.2.1 Mục tiêu của đề tài
Tìm hiểu, phân tích bài toán QLNS
Xây dựng phần mềm, 1 số chức năng cơ bản của bài toán QLNS
Trang 9Phần mềm được sắp xếp, bố cục một cách hợp lý, tạo điều kiện cho người sửdụng dễ định hướng trong việc sử dụng phần mềm.
1.2.2 Nội dung của đề tài
- Tìm hiểu, nghiên cứu phân tích nghiệp vụ thực tế:
* Quản lý công tác tuyển dụng công ty theo Thủ tục tuyển dụng:
Lên danh sách phỏng vấn, thông báo ứng viên phòng vấn bằng điện thoại vàthư, tổ chức phỏng vấn (phòng họp, nhắc lại lịch), lên danh sách kết quả phỏng vấn,thông báo ứng viên không đạt yêu cầu, thông báo ứng viên đạt yêu cầu và lịch nhậnviệc, lập giấy nhận việc
* Chuyển bảng đánh giá ứng viên cho phòng kế toán tính lương, lập bảng đánhgiá ứng viên khi thử việc
* Quản lý hồ sơ, lý lịch của CNV toàn Công ty: lưu hồ sơ CNV trong file theo
bộ phận Lập danh sách CNV Công ty theo biểu mẫu, cập nhật định kỳ hàng tháng
* Quản lý hồ sơ lý lịch của ứng viên không đạt yêu cầu: lập danh sách ứng viênkhông đạt yêu cầu theo biểu mẫu danh sách phỏng vấn của Thủ tục tuyển dụng, hồ sơcủa từng đợt tuyển dụng đối với mỗi loại chức danh được lưu giữ riêng theo thứ tựtrong danh sách
* Quản lý hồ sơ CNV nghỉ việc: tất cả CNV nghỉ việc được lưu theo thứ tự thờigian, CNV nghỉ việc rút lại hồ sơ thì phải photo lưu hồ sơ, lập danh sách CNV nghỉviệc theo thời gian, danh sách CNV nghỉ việc tương tự như danh sách CNV hiện thời
* Quản lý việc đào tạo của công ty: lập kế hoạch, chương trình đào tạo, liên hệ
cơ sở đào tạo, làm thủ tục cho CNV đi đào tạo, lưu bằng cấp – chứng chỉ đào tạo củaCNV, đánh giá kết quả đào tạo, lưu hồ sơ đào tạo
Trang 10* Quản lý văn phòng phẩm của công ty: nhận các đề xuất VPP, lập đề xuất muaVPP 2 lần/tháng, cấp phát VPP theo yêu cầu, hàng tháng rà soát lại số lượng VVP tồn,lập thẻ kho để theo dõi việc nhập, cấp phát VPP, tồn VPP.
* Quản lý và phân phát các biểu mẫu liên quan đến hành chánh nhân sự: lưu cácbiểu mẫu trong máy, in các biểu mẫu và lưu trong bìa còng các biểu mẫu theo bộ phận,hàng tuần chủ động thông tin cho các bộ phận về tình hình sử dụng biểu mẫu, hàngtuần đi photo các biểu mẫu theo yêu cầu và tự làm thủ tục thanh toán
* Đề xuất các phương án thưởng lễ, tết, trợ cấp cho người lao động và tổ chứcthực hiện
* Lập các quyết định điều động, bổ nhiệm, miễn nhiệm….theo yêu cầu củaTrưởng phòng và thực hiện các thủ tục liên quan
* Thực hiện chấm công cho nhân viên văn phòng lập bảng tổng kết công, côngtăng ca, chuyển cho CNV ký tên, chuyển TP duyệt, chuyển P.Kế toán để tính lươngcho nhân viên Trong quá trình chấm công, phát hiện nhân viên mới, nhân viên nghỉviệc đề xuất Trưởng phòng hướng xử lý
* Quản lý nghỉ phép của CNV, cụ thể là: nhận đơn xin nghỉ phép, lưu đơn xinnghỉ phép, hàng tháng báo cáo các trường hợp CNV nghỉ vô kỷ luật (không phép) cho
TP HCNS
* Quản lý nghỉ việc của CNV, cụ thể là:
Nhận đơn xin nghỉ việc, chuyển TP ký, lưu đơn xin nghỉ việc
Sau khi nhận biên bản bàn giao công việc, trình TP xem biên bản bàn giao, đơnxin nghỉ việc (của tất cả CNV trong tháng) từ 01 – 05 tháng sau, sau khi TP xác địnhphương án trả lương nghỉ việc cho CNV, chuyển giấy nghỉ việc có xác nhận (bảnphoto có đóng dấu HCNS) cho Phòng kế toán để trả lương
* Tiếp nhận các loại công văn vào sổ công văn đến Phân loại và chuyển côngvăn, giấy tờ cho nhân viên giao nhận (hoặc tự chuyển)đến các bộ phận liên quan Khichuyển giao công văn, giấy tờ, phải yêu cầu người nhận ký vào sổ giao công văn
Trang 11* Quản lý báo chí, phân phối báo chí theo quy định công ty Nhận báo từ ngườigiao báo/bảo vệ, ghi mã số báo, ghi vào sổ theo dõi từng loại báo, sau đó chuyển báocho người nhận.
* Đánh máy, photocopy, bảo quản các văn bản, công văn giấy tờ thuộc phầnviệc được giao
* Quản lý tổng đài theo qui định của Công ty, cụ thể là lập sổ theo dõi gọi diđộng - liên tỉnh, nhận cuộc gọi, chuyển cuộc gọi đến người có liên quan, gọi điện thoạicho CNV Công ty theo yêu cầu
* Ghi nhận thông tin của khách, CNV và chuyển thông tin theo yêu cầu Lập sổthông tin gồm các cột: ngày, nội dung, người nhận, kết quả
* Nhận fax và chuyển cho các bộ phận liên quan Khi chuyển phải ghi vào sổgiao công văn
* Lập lịch họp, theo dõi, nhắc nhở thư ký HC tổ chức chuẩn bị cho cuộc họpcủa công ty
* Lập lịch làm việc của Manager hàng tuần, theo dõi và thông tin lịch làm việccho các cá nhân có nhu cầu Ghi lịch làm việc Manager lên bảng
* Lập lịch tiếp khách hàng tuần, theo dõi và tổ chức tiếp khách
* Thực hiện các công việc khác do Trưởng phòng phân công
- Nghiên cứu cơ sở lý thuyết về C#, MSSQL
- Thiết kế, xây dựng 1 số chức năng chính:
Xây dựng chức năng quản lý sơ yếu lý lịch
Xây dựng chức năng quản lý thành viên và trình độ cán bộ
Xây dựng chức năng quản lý kinh nghiệm,uy tín công tác
Xây dựng chức năng quản lý diễn biến quá trình đào tạo
Xây dựng chức năng quản lý các diễn biến công tác
Xây dựng chức năng quản lý chấm công
Xây dựng chức năng quản lý lương của nhân viên
- Kiểm thử
- Nhận xét
Trang 121.2.3 Phương pháp nghiên cứu
Tìm hiểu nghiệp vụ tại công ty CỔ PHẦN XỬ LÍ MÔI TRƯỜNG MIỀNTRUNG – CHI NHÁNH HÀ NỘI
Phần mềm này khi được phát triển hoàn chỉnh sẽ tăng hiệu quả quản lý chocông ty, giảm chi phí thời gian và công sức của nhân viên
Về cơ bản phần mềm sẽ đáp ứng được các chức năng sau:
Chức năng quản lý sơ yếu lý lịch
Chức năng quản lý thành viên và trình độ cán bộ
Chức năng quản lý kinh nghiệm,uy tín công tác
Chức năng quản lý diễn biến quá trình đào tạo
Chức năng quản lý các diễn biến công tác
Chức năng quản lý chấm công
Chức năng quản lý lương của nhân viên
Trang 13CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1 Giới thiệu Net FrameWork và ngôn ngữ C#
2.1.1 Nền tảng của Net
Khi Microsoft công bố C# vào tháng 7 năm 2000, việc khánh thành nó chỉ làmột phần trong số rất nhiều sự kiện mà nền tảng Net được công công bố Nền tảng.Net là bộ khung phát triển ứng dụng mới, nó cung cấp một giao diện lập trình ứngdụng (Application Programming Interface - API) mới mẽ cho các dịch vụ và hệ điềuhành Windows, cụ thể là Windows 2000, nó cũng mang lại nhiều kỹ thuật khác nổi bậtcủa Microsoft suốt từ những năm 90 Trong số đó có các dịch vụ COM+, công nghệASP, XML và thiết kế hướng đối tượng, hỗ trợ các giao thức dịch vụ web mới nhưSOAP, WSDL và UDDL với trọng tâm là Internet, tất cả được tích hợp trong kiến trúcDNA
Nền tảng NET bao gồm bốn nhóm sau:
Một tập các ngôn ngữ, bao gồm C# và Visual Basic Net; một tập các công
cụ phát triển bao gồm Visual Studio Net; một tập đầy đủ các thư viện phục vụ choviệc xây dựng các ứng dụng web, các dịch vụ web và các ứng dụng Windows; còn
có CLR - Common Language Runtime: (ngôn ngữ thực thi dùng chung) để thực thicác đối tượng được xây dựng trên bô khung này
Một tập các Server Xí nghiệp Net như SQL Server 2000 Exchange 2000,BizTalk 2000, … chúng cung cấp các chức năng cho việc lưu trữ dữ liệu quan hệ,thư điện tử, thương mại điện tử B2B, …
Các dịch vụ web thương mại miễn phí, vừa được công bố gần đậy như là
dự án Hailstorm; nhà phát triển có thể dùng các dịch vụ này để xây dựng các ứngdụng đòi hỏi tri thức về định danh người dùng…
.NET cho các thiết bị không phải PC như điện thoại (cell phone), thiết bịgame
2.1.2 Net FrameWork
Trang 14.Net hỗ trợ tích hợp ngôn ngữ, tức là ta có thể kế thừa các lớp, bắt các biệt lệ,
đa hình thông qua nhiều ngôn ngữ .NET Framework thực hiện được việc này nhờvào đặc tả Common Type System - CTS (hệ thống kiểu chung) mà tất cả các thànhphần Net đều tuân theo Ví dụ, mọi thứ trong Net đều là đối tượng, thừa kế từ lớpgốc System.Object
Ngoài ra Net còn bao gồm Common Language Specification - CLS (đặc tảngôn ngữ chung) Nó cung cấp các qui tắc cơ bản mà ngôn ngữ muốn tích hợp phảithỏa mãn CLS chỉ ra các yêu cầu tối thiểu của ngôn ngữ hỗ trợ Net Trình biêndịch tuân theo CLS sẽ tạo các đối tượng có thể tương hợp với các đối tượng khác
Bộ thư viện lớp của khung ứng dụng (Framework Class Library - FCL) có thể đượcdung bởi bất kỳ ngôn ngữ nào tuân theo CLS .NET Framework nằm ở tầng trêncủa hệ điều hành (bất kỳ hệ điều hành nào không chỉ là Windows) NETFramework bao bao gồm:
Bốn ngôn ngữ chính thức: C#, VB.Net, C++, và Jscript.NET
Common Language Runtime - CLR, nền tảng hướng đối tượng cho pháttriển ứng dụng Windows và web mà các ngôn ngữ có thể chia sẻ sử dụng
Bộ thư viện Framework Class Library - FCL
Hình 2.1 Kiến trúc khung ứng dụng Net
Thành phần quan trọng nhất của NET Framework là CLR, nó cung cấp môitrường cho ứng dụng thực thi, CLR là một máy ảo, tương tự máy ảo Java CLR
Trang 15kích hoạt đối tượng, thực hiện kiểm tra bảo mật, cấp phát bộ nhớ, thực thi và thudọn chúng.
Tầng trên của CLR bao gồm:
* Các lớp cơ sở
* Các lớp dữ liệu và XML
* Các lớp cho dịch vụ web, web form, và Windows form
Các lớp này được gọi chung là FCL, Framework Class Library, cung cấp APIhướng đối tượng cho tất cả các chức năng của NET Framework (hơn 5000 lớp)
Các lớp cơ sở tương tự với các lớp trong Java Các lớp này hỗ trợ các thaotác nhập xuất, thao tác chuổi, văn bản, quản lý bảo mật, truyền thông mạng, quản lýtiểu trình và các chức năng tổng hợp khác …
Trên mức này là lớp dữ liệu và XML Lớp dữ liệu hỗ trợ việc thao tác các dữliệu trên cơ sở dữ liệu Các lớp này bao gồm các lớp SQL (Structure QueryLanguage: ngôn ngữ truy vấn có cấu trúc) cho phép ta thao tác dữ liệu thông quamột giao tiếp SQL chuẩn Ngoài ra còn một tập các lớp gọi là ADO.Net cũng chophép thao tác dữ liệu Lớp XML hỗ trợ thao tác dữ liệu XML, tìm kiếm và diễndịch XML
Trên lớp dữ liệu và XML là lớp hỗ trợ xây dựng các ứng dụng Windows(Windows forms), ứng dụng Web (Web forms) và dịch vụ Web (Web services)
2.1.3 Biên dịch và ngôn ngữ trung gian (MSIL)
Với NET chương trình không biên dịch thành tập tin thực thi, mà biên dịchthành ngôn ngữ trung gian (MSIL - Microsoft Intermediate Language, viết tắt làIL), sau đó chúng được CLR thực thi Các tập tin IL biên dịch từ C# đồng nhất vớicác tập tin IL biên dịch từ ngôn ngữ Net khác
Khi biên dịch dự án, mã nguồn C# được chuyển thành tập tin IL lưu trên đĩa.Khi chạy chương trình thì IL được biên dịch (hay thông dịch) một lần nữa bằng
trình Just In Time - JIT, khi này kết quả là mã máy và bộ xử lý sẽ thực thi.
Trang 16Trình biên dịch JIT chỉ chạy khi có yêu cầu Khi một phương thức được gọi,JIT phân tích IL và sinh ra mã máy tối ưu cho từng loại máy JIT có thể nhận biết
mã nguồn đã được biên dịch chưa, để có thể chạy ngay ứng dụng hay phải biêndịch lại
CLS có nghĩa là các ngôn ngữ Net cùng sinh ra mã IL Các đối tượng đượctạo theo một ngôn ngữ nào đó sẽ được truy cập và thừa kế bởi các đối tượng củangôn ngữ khác Vì vậy ta có thể tạo được một lớp cơ sở trong VB.Net và thừa kế nó
từ C#
2.1.4 Ngôn ngữ C#
C# là một ngôn ngữ rất đơn giản, với khoảng 80 từ khoá và hơn mười kiểu
dữ liệu dựng sẵn, nhưng C# có tính diễn đạt cao C# hỗ trợ lập trình có cấu trúc,hướng đối tượng, hướng thành phần (component oriented)
Trọng tâm của ngôn ngữ hướng đối tượng là lớp Lớp định nghĩa kiểu dữ liệumới, cho phép mở rộng ngôn ngữ theo hướng cần giải quyết C# có những từ khoádành cho việc khai báo lớp, phương thức, thuộc tính (property) mới C# hỗ trợ đầy
đủ khái niệm trụ cột trong lập trình hướng đối tượng: đóng gói, thừa kế, đa hình
Định nghĩa lớp trong C# không đòi hỏi tách rời tập tin tiêu đề với tập tin càiđặt như C++ Hơn thế, C# hỗ trợ kiểu sưu liệu mới, cho phép sưu liệu trực tiếptrong tập tin mã nguồn Đến khi biên dịch sẽ tạo tập tin sưu liệu theo định dạngXML
C# hỗ trợ khái niệm giao diện, interfaces (tương tự Java) Một lớp chỉ có thể
kế thừa duy nhất một lớp cha nhưng có thế cài đặt nhiều giao diện
C# có kiểu cấu trúc, struct (không giống C++) Cấu trúc là kiểu hạng nhẹ và
bị giới hạn.Cấu trúc không thể thừa kế lớp hay được kế thừa nhưng có thể cài đặtgiao diện
C# cung cấp những đặc trưng lập trình hướng thành phần như property, sựkiện và dẫn hướng khai báo (được gọi là attribute) Lập trình hướng component
Trang 17được hỗ trợ bởi CLR thông qua siêu dữ liệu (metadata) Siêu dữ liệu mô tả các lớpbao gồm các phương thức và thuộc tính, các thông tin bảo mật ….
Assembly là một tập hợp các tập tin mà theo cách nhìn của lập trình viên là
các thư viện liên kết động (DLL) hay tập tin thực thi (EXE) Trong NET mộtassembly là một đơn vị của việc tái sử dụng, xác định phiên bản, bảo mật, và phânphối CLR cung cấp một số các lớp để thao tác với assembly
C# cũng cho truy cập trực tiếp bộ nhớ dùng con trỏ kiểu C++, nhưng vùng
mã đó được xem như không an toàn CLR sẽ không thực thi việc thu dọn rác tựđộng các đối tượng được tham chiếu bởi con trỏ cho đến khi lập trình viên tự giảiphóng
2.2 Giới thiệu về MSSQL
SQL Server là hệt hống quản trị cơ sở dữl iệu quan hệ (Relational DataBaseManagement System-RDBMS) sử dụng các lệnh giáo chuyển Transaction-SQL để traođổi dữ liệu giữa Client Computer và Server Computer SQL Server có một số đặc tínhsau:
Cho phép quản trị một hệ CSDL lớn(lên đến vài tega byte), có tốc độ xử lý dữ liệunhanh đáp ứng yêu cầu về thời gian
Cho phép nhiều người cùng khai thác trong một thời điểm đối với một CSDL và toàn
bộ quản trịCSDL(lên đến vài chục ngàn user)
Có hệ thống phân quyền bảo mật tương thích với hệ thống bảo mật của công nghệ NT(Network Technology), tích hợp với hệ thống bảo mật của Windows NT hoặcsửdụng hệthống bảo vệđộc lập của SQL Server
Hỗ trợ trong việc triển khai CSDL phân tán và phát triển ứng dụng trên Internet
Cho phép lập trình kết nối với nhiều ngôn ngữlập trình khác dùng xây dựng các ứngdụng đặc thù (Visual Basic, C, C++, ASP, ASP.NET, XML, )
Sử dụng câu lệnh truy vấn dữ liệu Transaction-SQL (Access là SQL, Oracle làPL/SQL)
Trang 18Win CE: Sửdụng cho các ứng dụng chạy trên Windows CE.
Trial: Phiên bản dùng thử, bịgiới hạn bởi thời gian
SQL Client: Là phiên bản dành cho máy khách, khi thực hiện khai thác sẽthựchiện kết nối đến phiên bản SQL Server, phiên bản này cung cấp giao diện GUI khaithác cho người sử dụng
SQL Connectivity only: Là phiên bản sử dụng chỉ cho các ứng dụng để kế tnốiđến SQL Server, phiên bản này không cung cấp công cụ GUI cho người dùng khaithác SQL Server
Các phiên bản này được cài đặt phụ thộc vào bộ cài đặt mà bạn chọn hoặc lựachọn khai cài đặt (ví dụ phiên bản Enterprise, Standard, Personal,… bạn phải chọntheo bộ cài đặt, phiên bản SQL Client, Connectivity,… do bạn chọn trong các hộpthoại trong quá trình cài đặt)
Một sốtính năng của Enterprise manager
Dễcài đặt
Hỗtrợmô hình Client/Server
Thích hợp trên các hệđiều hành Windows
Hoạt động với nhiều giao thức truyền thông
Trang 19CHƯƠNG 3 Nội dung thực hiện
3.1 Sơ đồ USE – CASE
Hình 3.1 Sơ đồ use-case tổng quát
Trang 203.1.1 Danh sách các Actor
thống
trong hệ thống-Chịu sự quản lí của Giám đốc
đặc biệt, có tất cả các vai trò của ngườiquản lý ngoài ra Giám đốc còn cóquyền quyết định tuyển nhận nhân viênmới vào công ty hay không
Bảng 3.1 Danh sách các Actor
3.1.2 Danh sách các USE-CASE
Trang 219 ChamCong Chấm công
Bảng 3.2 Danh sách các USE-CASE
3.2 Đặc tả USE-CASE
3.2.1 Đặc tả USE-CASE “Đăng Nhập”
Tóm tắt
Admin,quản lí,giám đốc,nhân viên sử dụng usecase
Dùng usecase để đăng nhập và truy cập vào hệ thống
Usecase “Đăng Nhập” dùng để bảo vệ hệ thống và phân quyền
Dòng sự kiện
Dòng sự kiện chính
Use case này bắt đầu khi một actor (GĐ, QL, NV) muốn đăng nhập vào hệ thống quản lý nhân sự công ty
Hệ thống yêu cầu các actor (GĐ, QL, NV) nhập tên và mật khẩu
Người dùng nhập tên và mật khẩu
Hệ thống kiểm tra tên và mật khẩu mà actor đã nhập và cho phép actor đăngnhập vào hệ thống
Dòng sự kiện khác
Tên hoặc mật khẩu sai: Nếu trong dòng sự kiện chính các actor nhập tên và mật khẩu sai thì hệ thống sẽ thông báo lỗi Actor có thể quay trở về đầu dòng sự kiện hoặc hủy bỏ việc đăng nhập lúc này use case kết thúc
Các yêu cầu đặc biệt
Yêu cầu khi thực hiện phải nhập tên đăng nhập và mật khẩu đúng
Để bảo đảm tính an toàn cho hệ thống, mỗi actor chỉ được quyền nhập lạitên và mật khẩu của mình (nếu đăng nhập sai) tối đa là 3 lần Sau đó hệ thống sẽ tự
Trang 22động kết thúc use case
Trạng thải hệ thống khi bắt đầu thực hiện usecase
Không có trạng thái nào
Trạng thái hệ thống sau khi thực hiện usecase
Khi đăng nhập thành công , các chức năng của hệ thống sẽ sử dụng được
Khi đăng nhập không thành công, các chức năng của hệ thống không sử dụng được
Trang 23Hình 3.3 Lược đồ trạng thái Use-Case Đăng nhập
3.2.2 Đặc tả USE-CASE “Phân Quyền”
Tóm tắt
Admin sử dụng use-case
Dùng use-case để phân quyền truy cập vào hệ thống
Use-case “Phân Quyền” dùng để phần quyền truy cập hệ thống,bảo vệ quyền truy cập riêng cho nhân viên
Trang 24Trạng thái hệ thống sau khi thực hiện use-case
Khi phân quyền thành công , hệ thống sẽ lưu thông tin vào cơ sở dữ liệu
Điểm mở rộng
Không có
3.2.3 Đặc tả USE-CASE “Xem danh sách nhân viên”
Admin,giám đốc,quản lí,nhân viên sử dụng use case
Dùng usecase xem danh sách nhân viên hiện đang công tác tại công ty
Dòng sự kiện
Dòng sự kiện chính
Use case này bắt đầu khi người dùng muốn xem danh sách nhân viên
Hệ thống liệt kê bảng danh sách nhân viên với đầy đủ các thông tin
Người dùng chọn chấm dứt việc xem danh sách nhân viên
Hệ thống thoát khỏi việc xem danh sách này
Dòng sự kiện khác
Không có
Các yêu cầu đặc biệt
Không có
Trang 25Trạng thái hệ thống trước khi bắt đầu thực hiện usecase
Người được phép sử dụng usecase này buộc phải đăng nhập vào hệ thống vớimột vai trò xác định
Trạng thái hệ thống sau khi thực hiện usecase
Nếu usecase thành công thì người dùng sẽ xem được danh sách nhân viên.Ngược lại trạng thái của hệ thống không đổi
Không có
3.2.4 Đặc tả USE-CASE “Nhập hồ sơ nhân viên”
Admin, giám đốc sử dụng use case
Dùng usecase đểnhập vào một nhân viên mới
Dòng sự kiện
Dòng sự kiện chính
Use case này bắt đầu khi người dùng muốn thêm mới một nhân viên
Hệ thống hiển thị danh sách các nhân viên của công ty
Người dùng tiến hành nhập thông tin về nhân viên gồm: Họ tên, ngày sinh, chứng minh nhân dân, địa chỉ, điện thoại, đơn vị, trình độ
Sau khi điền đẩy đủ các thông tin cần thiết về nhân viên vào trong các
textbox, người sử dụng hệ thống chọn chức năng thêm mới (Add)
Hệ thống sẽ kiểm tra tính hợp lệ của các thông tin
Nếu không hợp lệ hệ thống sẽ báo lỗi và người dùng sẽ chỉnh lại
Nếu hợp lệ thông tin về nhân viên sẽ được thêm vào trong hệ thống Nhân viên mới này sẽ được tự động sắp xếp tăng theo tên
Danh sách nhân viên mới được thêm vào hiển thị trở lại màn hình
Dòng sự kiện khác
Thông tin về nhân viên không đầy đủ : Nếu các thông tin được người sử dụng hệ thống nhập vào không đầy đủ thì hệ thống sẽ hiển thị thông báo lỗi: Thiếu cácthông tin cần thiết và yêu cầu bổ sung đầy đủ các thông tin Người sử dụng hệ thống
có thể bổ sung đầy đủ các thông tin cần thiết hoặc hủy bỏ thao tác đang thực hiện, lúc này use case kết thúc
Việc xác nhận không được người sử dụng hệ thống chấp thuận:Nếu việc xác nhận các thao tác tương ứng không được người sử dụng chấp thuận hệ thống sẽ trở lại
Trang 26trạng thái trước đó của từng luồng sự kiện tương ứng
Các yêu cầu đặc biệt
Không có
Trạng thải hệ thống khi bắt đầu thực hiện usecase
Người được phép sử dụng usecase này buộc phải đăng nhập với vai trò làgiám đốc hay admin
Trạng thái hệ thống sau khi thực hiện usecase
Nếu usecase thành công thì nhân viên sẽ được thêm mới vào hệ thống
Ngược lại trạng thái của hệ thống không đổi
Use case này bắt đầu khi người dùng muốn thêm mới một nhân viên
Hệ thống hiển thị danh sách các nhân viên của công ty
Người dùng tiến hành nhập thông tin về nhân viên gồm: Họ tên, ngày sinh, chứng minh nhân dân, địa chỉ, điện thoại, đơn vị, trình độ
Sau khi điền đẩy đủ các thông tin cần thiết về nhân viên vào trong các textbox, người sử dụng hệ thống chọn chức năng thêm mới (Add)
Hệ thống sẽ kiểm tra tính hợp lệ của các thông tin
Nếu không hợp lệ hệ thống sẽ báo lỗi và người dùng sẽ chỉnh lại
Nếu hợp lệ thông tin về nhân viên sẽ được thêm vào trong hệ thống Nhân viên mới này sẽ được tự động sắp xếp tăng theo tên
Danh sách nhân viên mới được thêm vào hiển thị trở lại màn hình
Dòng sự kiện khác
Thông tin về nhân viên không đầy đủ:Nếu các thông tin được người sử dụng hệ thống nhập vào không đầy đủ thì hệ thống sẽ hiển thị thông báo lỗi: Thiếu cácthông tin cần thiết và yêu cầu bổ sung đầy đủ các thông tin Người sử dụng hệ thống
có thể bổ sung đầy đủ các thông tin cần thiết hoặc hủy bỏ thao tác đang thực hiện, lúc này use case kết thúc
Trang 27 Thông tin về nhân viên không hợp lệ:Nếu các thông tin được người sử dụng
hệ thống nhập vào không hợp lệ thì hệ thống sẽ hiển thị thông báo lỗi: Các thông tin vềnhân viên không hợp lệ và yêu cầu người sử dụng hệ thống chỉnh sửa lại các thông tin không hợp lệ Người sử dụng hệ thống có thể chỉnh sửa các thông tin không chính xác hoặc hủy bỏ thao tác đang thực hiện, lúc này use case kết thúc
Việc xác nhận không được người sử dụng hệ thống chấp thuận:Nếu việc xác nhận các thao tác tương ứng không được người sử dụng chấp thuận hệ thống sẽ trởlại trạng thái trước đó của từng luồng sự kiện tươngứng
Các yêu cầu đặc biệt
Không có
Trạng thải hệ thống khi bắt đầu thực hiện usecase
Người được phép sử dụng use case này buộc phải đăng nhập với vai trò làgiám đốc hay admin
Trạng thái hệ thống sau khi thực hiện usecase
Nếu usecase thành công thì nhân viên sẽ được thêm mới vào hệ thống Ngược lại trạng thái của hệ thống không đổi
Không có
3.2.6 Đặc tả USE-CASE “Xóa hồ sơ nhân viên”
Quản lý sử dụng use case
Usecase này mô tả việc người dùng xóa hồ sơ một nhân viên ra khỏidanh sách nhân viên
Hệ thống sẽ tiến hành xóa tên nhân viên ra khỏi danh sách
Danh sách nhân viên được hiển thị trở lại màn hình
Dòng sự kiện khác
Trang 28Người dùng quên click chọn một nhân viên trong danh sách hiển thị:Nếu người dùng quên chọn một nhân viên mà click vào nút Delete thì hệ thống sẽ báo lỗi
để người dùng chọn lại
Việc xác nhận không được người sử dụng hệ thống chấp thuận:Nếu việc xác nhận các thao tác tương ứng không được người sử dụng chấp thuận, hoặc người dùng không muốn xóa tên nhân viên nữa thì hệ thống sẽ trở lại trạng thái trước đó của từng luồng sự kiện tương ứng
Các yêu cầu đặc biệt
Không có
Trạng thải hệ thống khi bắt đầu thực hiện usecase
Người được phép sử dụng use case này buộc phải đăng nhập với vai trò làquản lý hay admin
Trạng thái hệ thống sau khi thực hiện usecase
Nếu use case thành công thì nhân viên bị xóa sẽ không còn trong hệ thống Ngược lại trạng thái của hệ thống không đổi
Không có
3.2.7 Đặc tả USE-CASE “Tra cứu nhân viên theo đơn vị”
Admin, quản lý sử dụng use case
Dùng use case để tra cứu thông tin
Use case này mô tả việc người dùng muốn tra cứu nhân viên theo một đơn vị
Dòng sự kiện
Dòng sự kiện chính
Use case này bắt đầu khi người dùng muốn tra cứu nhân viên theo một đơn
vị nào đó
Hệ thống hiển thị danh sách các nhân viên của công ty
Người dùng tiến hành click chọn một đơn vị trong một combobox danh sách các đơn vị của công ty
Sau khi chọn đơn vị hệ thống sẽ hiển thị danh sách nhân viên tương ứng của đơn vị đó
Dòng sự kiện khác
Không có
Các yêu cầu đặc biệt