Thuật toán xây dựng cần có các tính chất sau:
1. Tính kết thúc
Thuật toán thiết kế cần phải kết thúc sau khi thực hiện một số lần hữu hạn các bước công việc. Các bước lặp, của thuật toán phải xác định một cách rõ ràng.
2. Tính xác định
Thuật toán xây dựng phải có tính xác định, nghĩa là trong những điều kiện như nhau thì kết quả thực hiện toán hay máy tính thực hiện thuật toán. Nói cách khác thuật toán phải rõ ràng, không gây ra sự nhập nhằng, lẫn lộn hoặc có thể hiểu theo nhiều nghĩa khác nhau.
3. Tính tổng quát
Thuật toán phải có tính tổng quát dùng để giải cả một lớp bài toán cùng loại chứ không phải dùng để giải một bài toán cụ thể, riêng lẻ.
4. Tính xác định đầu vào – đầu ra
Thuật toán xây dựng phải có tính xác định rõ ràng đầu vào và đẩu ra. Các đầu vào- đầu ra được xác định càng chính xác thì quá trình xay dựng thuật toán càng thuận lợi và thuật toán càng có chất lượng cao hơn.
5. Tính hiệu quả
Thuật toán phải đạt được tính hiệu quả nghĩa là nó cho kết quả đúng với những chi phí ít nhất về sức người, thời gian và tiền bạc.
103 trang |
Chia sẻ: aloso | Lượt xem: 1947 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Chuyên đề Xây dựng phần mềm quản lý nhân sự tại công ty TNHH phần mềm trí tuệ ISOFTCO, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
hức năng của các phân hệ và cuối cùng là thiết kế một chương trình làm nhiệm vụ tập hợp các module thành một hệ chương trình thống nhất, hoàn chỉnh.
Để minh hoạ cho tư tưởng thiết kế này ta xem xét ví dụ sau đây:
Giả sử trong một doanh nghiệp, công việc ứng dụng tin học trong quản lý đã được triển khai ở các bộ phận khác nhau và trong từng thời điểm khác nhau. Kết quả là người ta đã thiết kế và đưa vào sử dụng một số chương trình quản lý trong các phòng ban (phòng Tài vụ, phòng cung ứng vật tư, phòng Tổ chức hành chính,…). Danh sách các chương trình như sau:
Prog 1: Vào số liệu cho tệp hồ sơ cán bộ.
Prog 2: Sửa chữa, bổ sung, cập nhật hồ sơ.
Prog 3: Vào số liệu cho tệp quản lý vật tư.
Prog 4: Vào số liệu cho tệp hoá đơn bán sản phẩm.
Prog 5: Tính lương cán bộ quản lý.
Prog 6: Lập bảng dự toán sử dụng vật tư.
Prog 7: Quản lý cán bộ.
Prog 8: Lập bảng tính giá trị sản phẩm bán ra.
Các chương trình này đã được sử dụng và có kết quả trong sản xuất kinh doanh đã được thực tế kiểm nghiệm. Bây giờ trên cơ sở các chương trình cụ thể này, lãnh đạo công ty có nhu cầu thiết kế một hệ thống chương trình thống nhất, phục vụ tốt hơn cho việc quản lý doanh nghiệp. Trong trường hợp này, chúng ta phải vận dụng phương pháp thiết kế từ dưới lên. Ta lần lượt được các phác thảo sau đây:
√ Phác thảo thứ nhất: Gộp các module 1, 2, 5, 7 thành phân hệ quản lý nhân sự:
√ Phác thảo thứ hai: Gộp các module 4, 8 thành phân hệ quản lý bán hàng:
√ Phác thảo thứ ba: Gộp các module 3, 6 thành các chức năng quản lý kho hàng:
√ Phác thảo thứ 4: Trên cơ sở chức năng của các phân hệ quản lý trên đây, chúng ta có thể tiến hành thiết kế thêm một số chương trình khác làm phong phú thêm các vấn đề mà hệ thống quản lý (Prog 9 - dự báo mức tiêu thụ hàng hoá, Prog 10 - lập bảng tổng hợp hàng tồn kho). Các chương trình đựơc thiết kế bổ sung phải đảm bảo được yêu cầu phù hợp về mặt chức năng với các chương trình đã được thiết kế bà cài đặt trước đó. Đồng thời phải có sự tương thích với các chương trình đã được kiểm nghiệm trong thực tiễn. Trong ví dụ trên đây ta co thể thiết kế thêm nhiều chương trình trong mỗi phân hệ làm cho khả năng của các phân hệ ngày càng đa dạng, giải quyết được ngày càng hiệu quả các vấn đề mà thực tế quản lý của doanh nghiệp đặt ra. Ở đây là gộp ba phân hệ vừa thiết kế thành một hệ tin học quản lý thống nhất của doanh nghiệp dưới dạng mô hình sau:
2.3. CÁC QUY TRÌNH TRONG CÔNG NGHỆ PHẦN MỀM
Xây dựng một phần mềm quản lý gồm 6 quy trình:
Quy trình 1: Xây dựng hợp đồng phần mềm.
Quy trình 2: Xác định yêu cầu.
Quy trình 3: Phân tích thiết kế phần mềm
Quy trình 4: Lập trình.
Quy trình 5: Test
Quy trình 6: Triển khai
2.3.1 Quy trình 1: Xây dựng hợp đồng phần mềm
Mục đích: Nghiên cứu, đề xuất giải pháp kỹ thuật, tiến hành xây dựng hợp đồng với khách hàng, theo dõi tiến trình thực hiện hợp đồng, tổ chức thanh lý, thanh toán hợp đồng và lập hồ sơ tổng quát về quy trình hợp đồng phần mềm.
Dấu hiệu:
Xây dựng hợp đồng phần mềm với khách hàng.
Theo dõi thực hiện hợp đồng với khách hàng.
Thanh toán thanh lý hợp đồng phần mềm.
2.3.2. Quy trình 2: Xác định yêu cầu phần mềm
Mục đích: Sau khi đã có hợp đồng phần mềm với khách hàng, hợp đồng được chuyển sang để xác định nhu cầu của khách hàng về sản phẩm tương lai. Yêu cầu đặt ra là phải lượng hoá các dạng mô hình.
Dấu hiệu:
Phân tích nghiệp vụ chuyên sâu.
Lập mô hình hoạt động của hệ thống.
Lưu đồ quy trình 2: Xác định yêu cầu khách hàng
2.3.3 Quy trình thiết kế phần mềm
Mục đích: Sau khi quy trình xác định yêu cầu phần mềm, trên cơ sở hồ sơ của giai đoạn phân tích ta chuyển sang quy trình thiết kế nhằm xác định hồ sơ tổng thể các vấn đề thiết kế phần mềm từ tổng quát tới chi tiết.
Thiết kế là chìa khoá dẫn đến thành công của một dự án. Thiết kế là một quá trình đòi hỏi tính sáng tạo, tinh tế và hiểu biết sâu sắc của người thiết kế.Thiết kế phần mềm cung cấp cách biểu diễn phần mềm có thể được xác nhận về chất lượng, là cách duy nhất mà chúng ta có thể chuyển hoá một cách chính xác các yêu cầu của khách hàng thành sản phẩm hay hệ thống phần mềm cuối cùng.
Dấu hiệu:
Thiết kế cấu trúc phần mềm.
Thiết kế kỹ thuật.
+ Thiết kế dữ liệu.
+ Thiết kế thủ tục.
+ Thiết kế chương trình.
+ Thiết kế giao diện.
Lưu đồ quy trình thiết kế:
2.3.4 Quy trình lập trình
Mục đích: Trên cơ sở của hộ sơ thiết kế, bộ phận lập trình tiến hành chi tiết hoá các sơ đồ khối hay các lưu đồ để biến thành các bản vẽ thiết kế sản phẩm phần mềm nhưng bản thân công đoạn lập trình phải trung thành với thiết kế.
Lập trình là một tiến trình dịch thiết kế chi tiết thành chương trình bao gồm tập hợp các dòng mã lệnh mã máy tính có thể hiểu được. Mỗi ngôn ngữ lập trình có những giới hạn nhất định do vậy dựa trên các đặc trưng của ngôn ngữ, chúng ta sẽ chọn ngôn ngữ phù hợp.
Dấu hiệu:
Lập trình các thư viện chung
Lập trình module
Tích hợp hệ thống.
Lưu đồ quy trình lập trình:
2.3.5 Quy trinh test
Mục đích: Sau khi đã có công đoạn lập trình, các lập trình viên tiến hành test chương trình và test toàn bộ phần mềm bao gồm test hệ thống, test tiêu chuẩn nghiệm thu nhằm đảm bảo có một phần mềm chất lượng cao.
Quy trình test là quá trình đánh giá xem chương trình có phù hợp với những đặc tả yêu cầu và đáp ứng mong đợi của khách hàng không. Quá trình này phải được tiến hành thường xuyên sau mỗi giai đoạn sản xuất phần mềm. Quá trình này liên quan đến hai mục đích là “Phần mềm đáp ứng nhu cầu khách hàng và quá trình sản xuất không sai sót”.
Dấu hiệu:
Lập kịch bản test.
Test hệ thống.
Test nghiệm thu.
Lưu đồ quy trình test:
2.3.6 Quy trình triển khai
Mục đích: Đây là quy trình cuối cùng trong toàn bộ công đoạn khép kín của quy trình sản xuất phần mềm. Triển khai là một giai đoạn quan trọng, là một phần việc tất yếu đi kèm khi chuyển giao phần mềm, nên khi đánh giá thường chỉ quan tâm đến các chức năng và tính năng của hệ thống mà quên một điều quan trọng rằng đó là những tiềm năng sẵn có. Để đưa hệ thống cùng toàn bộ tính năng ưu việt của nó vào ứng dụng trong thực tế thì chỉ có quá trình triển khai tốt mới có thể biến các tiềm năng đó thành hiện thực. Tỷ lệ thất bại của phần mềm do quá trình triển khai vẫn đang chiếm một tỷ lệ rất cao mà nguyên nhân chủ yếu là do:
Năng lực của người sử dụng còn hạn chế.
Truyền đạt và thông tin không tốt.
Phương pháp triển khai thiếu tính khoa học và không rõ ràng.
Đào tạo người sử dụng là vấn đề không thể thiếu trong quá trình triển khai. Để người sử dụng có thể điều hành trôi chảy hệ thống mới, thông báo một số tình huống có thể xảy ra lỗi khi vận hành sản phẩm để người dùng biết cách xử lý.
Dấu hiệu:
Cài đặt máy chủ
Cài đặt máy mạng
Vận hành phần mềm
Hướng dẫn đào tạo sử dụng.
Lưu đồ quy trình triển khai:
2.4. PHƯƠNG PHÁP LUẬN VỀ PHÂN TÍCH HTTT
2.4.1. Các Phương pháp thu thập thông tin.
Phỏng vấn.
Phỏng vấn là một trong hai công cụ thu thập thông tin đắc lực nhất dùng cho hầu hết các dự án phát triển HTTT. Phỏng vấn cho phép thu thập những thông tin được xử lý theo cách khác nhau với mô tả trong tài liệu.
Nghiên cứu tài liệu.
Cho phép nghiên cứu kĩ và tỉ mỉ về nhiều khía cạnh của tổ chức như lịch sử hình thành và phát triển của tổ chức, tình trạng tài chính, các tiêu chuẩn và định mức, cấu trúc thứ bậc, vai trò và nhiệm vụ của các thành viên, nội dung và tình trạng của các thông tin đầu vào cũng như đầu ra.
Sử dụng phiếu điều tra.
Phương pháp này sử dụng đối với các đồi tượng cần điều tra thông tin với quy mô lớn.
Quan sát.
Việc thực hiện quan sát cho phép chúng ta thấy những gì không thể hiện trên tài liệu hoặc qua phỏng vấn như tài liệu để ở đâu, cho ai…? Phương pháp quan sát có nhiều rủi ro vì nếu để đối tượng quan sát để ý thì họ sẽ thay đổi lịch trình làm việc không như ngày thường.
2.4.2. Các công cụ mô mình hóa HTTT.
Các yêu cầu của người sử dụng thường được viết bằng ngôn ngữ tự nhiên để những người không có kiến thức về mặt kỹ thuật có thể hiểu được nó. Tuy nhiên, những yêu cầu hệ thống chi tiết phải được mô hình hóa, Mô hình hóa hệ thống giúp người phân tích hiểu rõ các chức năng của hệ thống.
Một số công cụ chính dùng để mô hình hóa và xây dựng tài liệu cho hệ thống là: sơ đồ chức năng kinh doanh BFD(Business Function Diagram), sơ đồ luồng thông tin IFD( Information Flow Diagram) và sơ đồ luồng dữ liệu DFD ( Data Flow Diagram),
Sơ đồ chức năng kinh doanh BFD (Business Function Diagram).
Sơ đồ chức năng BFD là sơ đồ mô tả các chức năng nghiệp vụ của một tổ chức và những mối quan hệ bên trong giữa các chức năng đó cũng như các mối quan hệ của chúng với môi trường bên ngoài.
Mô hinhf được xây dựng dần cùng với tiến trình khảo sát chi tiết giúp cho việc định hướng hoạt động khảo sát
Nó cho phép xác định phạm vi các chức năng hay miền cần nghiên cứu của tổ chức.
Nó cho thấy vị trí của mỗi công việc trong toàn hệ thống, tránh trùng lặp, giúp phát hiện các chức năng còn thiếu.
Là cơ sở để thiết kế cấu trúc hệ thống chương trình của hệ thống sau này.
Sơ đồ luồng thông tin IFD ( Information Flow Diagram).
Khái niệm
Sơ đồ luồng thông tin được dùng để mô tả hệ thống thông tin theo cách thức động, tức là mô tả sự di chuyển của dữ liệu, việc xử lý, việc lưu trữ trong thế giới vật lý bằng các sơ đồ.
Xử lý
Thủ công
Giao tác người máy
Tin học hoá hoàn toàn
Thủ công
Tin học hoá
Tài liệu
Kho lưu trữ dữ liệu.
Sơ đồ luông dữ liệu DFD(Data Flow Diagram)
Khái niệm
Là sự biểu diễn bằng sơ đồ sự vận động của dữ liệu và có liên quan đến nguồn, đích, xử lý và kho.
Một số quy tắc và quy ước liên quan tới sơ đồ DFD
Mỗi luồng dữ liệu phải có một tên trừ luồng giữa xử lý và kho giữ liệu.
Dữ liệu chứa trên 2 vật mang khác nhau nhưng luôn luôn đi cùng nhau thì có thể tạo ra chỉ một luồng duy nhất.
Xử lý luông phải được đánh mã số.
Vẽ lại các kho dữ liệu để các luồng dữ liệu không cắt nhau.
Tên cho xử lý phải là một động từ.
Xử lý buộc phải thực hiện một biến đổi dữ liệu. Luồng vào phải khác với luồng ra từ một xử lý.
Quy ước đối với việc phân rã DFD
Thông thường một xử lý mà lô gic xử lý của nó được trình bày bằng ngôn ngữ có cấu trúc chỉ chiếm một trang giấy thì không phân ra tiếp.
Cố gắng chỉ để tối đa 7 xử lý trên một trang DFD.
Tất cả các xử lý trên một DFD phải thuộc cùng một mức phân rã.
Luồng vào của một DFD mức cao phải là luồng vào của một DFD con mức thấp nào đó. Luồng ra tới đích của một DFD con phải là luồng ra tới đích của một DFD mức lớn hơn nào đó. Đây là nguyên tắc cân đối của DFD.
Xử lý không phân ra tiếp được thì gọi là xử lý nguyên thủy. Mỗi xử lý nguyên thủy phải có một phích lô gic trong từ điển hệ thông.
Các mức phân rã cơ bản của sơ đồ DFD gồm có:
Mức ngữ cảnh (context).
Mức 0.
Mức 1.
Các ký pháp sử dụng trong sơ đồ DFD.
Sơ đồ luồng dữ liệu là phần cốt lõi của rất nhiều phương pháp phân tích. Nó chứa các ký pháp rất dễ hiểu đối với khách hành. Các ký pháp sử dụng trong sơ đồ DFD bao gồm:
Quá trình hoặc chức năng.
Nhận tiền
Dòng dữ liệu
Hóa đơn nhận tiền
Kho dữ liệu.
Sổ kế toán
Tác nhân bên ngoài.
Thanh toán
Tác nhân bên trong.
Lãnh đạo
Một số công cụ chính dùng để mô hình hóa và xây dựng tài liệu cho hệ thống là sơ đồ chức năng kinh doanh (BFD) và sơ đồ luồng dữ liệu (DFD).
2.5. PHƯƠNG PHÁP LUẬN VỀ THIẾT KẾ HTTT
2.5.1. Nguyên tắc thiết kế vật lý ngoài.
Theo Joseph Dusmas thì thiết kế vật lý ngoài một HTTT phải dựa vào 7 nguyên tắc chung sau đây.
Đảm bảo rằng người sử dụng luôn đang kiểm soát hệ thống. Có nghĩa là, người dùng luôn luôn có thể thông báo cho hệ thống những việc cần thực hiện.
Thiết kế hệ thống theo thói quen và kinh nghiệm của người sử dụng.
Gắn chặt chẽ với các thuật ngữ, dạng thức và các thủ tục đã được dùng.
Che khuất những bộ phận bên trong của các phần mềm và phần cứng tạo thành hệ thống.
Cung cấp thông tin tư liệu trên màn hình.
Giảm tới mức tối thiểu lượng thông tin mà người dùng phải nhớ trong khi sử dụng hệ thống
Dựa vào những quy tắc đã được chấp nhận về đồ họa, ký họa khi thể hiện thông tin trên ra màn hình.
2.5.2. Nguyên tắc trình bày thông tin trên màn hình.
Những chú ý khi thiết kế thông tin trên màn hình.
Thông tin ra phải được thiết kế sao cho người sử dụng phải kiểm soát được lượng thông tin ra màn hình. Cần thiết kế thông tin lấp đầy màn hình rồi dừng lại và để người sử dụng chủ động cho tiếp tục hiện thông tin ra hay không? Thiết kế sao cho người sử dụng có thể lùi về trang trước hoặc xem trang sau bằng phím (Up, Down.PageUp,PageDown).
Thiết kế viên phải cho phép người sử dụng hạn chế khối lượng thông tin hiện trên màn hình.
Nguyên tắc thiết kế thông tin ra trên màn hình.
Đặt mọi thông tin gắn liền với nhiệm vụ trên một màn hình. Người sử dụng không phải nhớ thông tin từ màn hình này sang màn hình khác.
Chỉ dẫn rõ ràng cách thoát khỏi màn hình. Đặt giữa các tiêu đề và xếm đặt các thông tin theo trung tâm.
Nếu đầu ra gồm nhiều trang màn hình thì mỗi trang phải được đánh số thứ tự. Việc này giúp cho người sử dụng biết rõ mình đang ở đâu?
Viết văn bản theo quy ước chung bằng cách sử dụng chữ in hoa, gạch chân và ngắt câu hợp lý.
Đặt tiêu đề cho mỗi cột, chỉ đặt màu cho những thông tin quan trọng.
Tổ chức các phần tử của danh sách theo trật tự quen thuộc.
Căn trái các cột văn bản và căn phải các cột số.
Chỉ tô màu cho những thông tin quan trọng.
2.5.3. Nguyên tắc thiết kế màn hình nhập liệu.
Mục đích của thiết kế màn hình nhập liệu.
Thiết kế các thủ tục nhập liệu có hiệu quả và giảm thiểu tối đa các sai sót.
Các nguyên tắc thiết kế màn hình nhập liệu.
Màn hình nhập liệu được thiết kế dựa trên các nguyên tắc sau:
Khi nhập tài liệu được thiết kế từ một tài liệu gốc, khuôn dạng màn hình phải giống như tài liệu gốc.
Nên nhóm các trường trên màn hình theo một trật tự có ý nghĩa, theo trật tự tự nhiêm, theo tần số chung, theo chức năng hoặc theo tầm quan trọng.
Không nhập các thông tin mà hệ thống thông tin có thể truy tìm được từ cơ sở dữ liệu hoặc tính toán được.
Đặt tên các trường ở trên hoặc trước trường nhập.
Đặt các giá trị ngầm định cho phù hợp.
Sử dụng phím tab để chuyển trường hợp nhập.
2.6. CÔNG CỤ XÂY DỰNG
2.6.1. Cơ sở dữ liệu Microsoft Access( MS Access)
Khi lựa chọn một HQTCSDL( hệ quản trị cơ sở dữ liệu) để dựa vào đó mà viết những ( trình) ứng dụng CSDL ( datase application), người ta thường chú ý đến khả năng, mức độ tiện dụng và các lĩnh vực chuyên sâu của bản thân HQTCSDL, đồng thời chú ý đến tính tương thích của nó với phần cứng hiện có cũng như với các phần mềm mà khách hàng đang thường xuyên sử dụng. Vì thế, để xây dựng CSDL tôi sử dụng Microsoft Access bởi những điều sau đây:
MS Access là một trong những HQLCSDL đang được sử dụng nhiều nhất và phổ biến nhất hiện nay.
MS Access là một thành phần của hệ thống phần mềm Microsoft Office Professional, vì thế mà những đối tượng thuộc giao diện như thực đơn, dải công cụ( toolbar) mà hộp thoại đều rất tương tự như các ứng dụng khác của Office mà phần lớn cán bộ văn phòng đã quen dùng. Việc trao đổi( nhập/xuất) dữ liệu giữa Access và các ứng dụng khác trong môi trường Windows như Excel, Word, Visual FoxPro, SQL Sever, Oracle, HTML, XML… cũng rất thuận tiện.
Access có rất nhiều chức năng để đáp ứng những nhu cầu khác nhau về CSDL. Có thể dùng Access để phát triển sáu kiểu ứng dụng phổ biến nhất, đó là:
+ Ứng dụng cá nhân
+ Ứng dụng cho doanh nghiệp nhỏ
+ Ứng dụng trong nội bộ từng phòng ban
+ Ứng dụng cho toàn công ty
+ Ứng dụng ở tuyến trước( front – end) cho các CSDL theo mô hình khách chủ trên phạm vi toàn doanh nghiệp
+ Ứng dụng trên mạng nội bộ của một cơ quan (intranet) và mạng máy tính quốc tế ( Internet).
2.6.2. Ngôn ngữ lập trình Visual Basic 6.0
2.6.2.1 Khái niệm về ngôn ngữ lập trình ViusualBasic
Lập trình với VisualBasic ngày càng được chú ý và có nhiều yêu cầu trong các đề án được thực hiện trong nước và nước ngoài. Bởi vì, Visual Basic là một ngôn ngữ lập trình sử dụng phương pháp luận lập trình mới nhất như phương pháp lập trình hướng đối tượng, với công cụ cơ sở dữ liêụ mô hình quan hệ, kiến trúc Client – Sever.
Visual Basic là ngôn ngữ lập trình trên Windows do hãng Microsoft xây dựng, nó là một ngôn ngữ lập trình hướng đối tượng. Visual Basic có một môi trường soạn thảo đơn giản, dễ sử dụng, dễ hiểu và thân thiện với người sử dụng. Nó giúp cho lập trình viên có thể thấy được ngay kết quả, giao diện sau mỗi thao tác thiết kế.
Khi thiết kế giao diện ta chỉ cần gắp thả các đối tượng. Khi chương trình thực hiện, nó sẽ thực hiện thông qua các sự kiện của đối tượng như: kích chuột, di chuyển, nhấn phím…
Khả năng thừa kế cũng như sử dụng những công cụ và thư viện sẵn có cũng như khả năng tạo ra các thư viện giúp cho lập trình viên xây dựng ứng dụng một các nhanh chóng và thuận lợi cho việc lập trình theo nhóm.
Với sự hỗ trợ của các thành phần có sẵn cho nên Visual Basic rất mạnh cho việc xây dựng các ứng dụng.
2.6.2.2. Các tính năng của Visual Basic
Tiết kiệm thời gian và công sưckhi xây dựng ứng dụng.
Cho phép chỉnh sửa chương trình một cách dễ dàng, đơn giản.
Khi thiết kế chương trình có thể thấy ngay kết quả của từng thao tác.
Có khả năng liên kết với các thư viện liên kết động.
Vì những đặc điểm nổi bật và sự thân thiện với người sử dụng trong giao diện, cũng như các tính năng ưu việt của Visual Basic trong đồ án tốt nghiệp của mình em đã quyết định chọn Visual Basic làm ngôn ngữ lập trình.
CHƯƠNG III:XÂY DỰNG PHẦN MỀM QUẢN LÝ NHÂN SỰ TẠI CÔNG TY TNHH PHẦN MỀM TRÍ TUỆ ISOFTCO
3.1. Khảo sát sơ bộ
Hiện nay quá trình quản lý nhân sự tại Công ty TNHH phần mềm trí tuệ ISOFTCO vẫn còn thấy thực hiện một cách thủ công. Khi một phòng ban nào có nhu cầu về thay đổi nhân sự thì phòng ban đó phải chuyển yêu cầu lên phòng tổng hợp của công ty. Cán bộ phòng tổng hợp sẽ xem xét sau đó chuyển lên ban lãnh đạo phê duyệt. Quá trình này rất tốn thời gian và thường có nhiều sai sót. Một nhân viên khi bắt đầu làm việc cho đến khi nghỉ hưu hay buộc thôi việc, chuyển Công ty thì Công ty TNHH Phần mềm trí tuệ phải lưu hồ sơ của nhân viên đó. Toàn bộ hồ sơ nhân viên hầu như lưu dưới dạng sổ sách cũng như quá trình quản lý bằng thủ công. Việc tìm kiếm, tra cứu, bổ sung, sửa đổi hồ sơ cũng rất phức tạp và mất nhiều thời gian. Ban lãnh đạo muốn xem trong tháng các nhân viên của minh làm việc thể nào, có nên khen thưởng hay không phải trải qua một số công đoạn như có yêu cầu gửi về phòng ban. Các phòng ban xem xét quá trình làm việc rồi lên danh sách gửi lên ban lãnh đạo phê duyệt…Phần mềm Quản lý nhân sự tại công ty sau khi được xây dựng sẽ giúp ban lãnh đạo quản lý thông tin nhân sự một cách dễ dàng, đưa ra các quyết định kịp thời, nhanh chóng, chính xác khi có nhu cầu phát sinh trong quản lý như: Cần có thông tin về trình độ chuyên môn, quá trình công tác, khen thưởng, ký luật của nhân viên… để từ đó đưa ra những quyết định đúng đắn.
Thực hiện tin học hoá trong quản lý sẽ giúp cho cán bộ phòng tổng hợp làm việc hiệu quả hơn, hệ thống quản lý gọn nhẹ, việc sử dụng đơn giản, hạn chế những sai sót không đáng có.
3.2. Mô hình hóa các yêu cầu
3.2.1 Sơ đồ luồng thông tin (IDF)
- Khi có nhân viên mới vào công ty, hồ sơ nhân viên sẽ được chuyển đền phòng tổng hợp. Phòng tổng hợp sẽ cập nhật hồ sơ nhân viên vào cơ sở dữ liệu bằng phần mềm quản lý nhân sự.
- Thông tin được lưu vào kho hồ sơ của nhân viên công ty.
- Khi nhân viên nghỉ việc, thôi việc, hay bị thôi việc hồ sơ của nhân viên sẽ được xóa khỏi kho hồ so nhân viên của công ty hoặc kết chuyển sang kho dữ liệu khác.
- Hàng ngày khi có sự thay đổi về thông tin của nhân viên hay theo yêu cầu của giám đốc thì cán bộ phòng tổng hợp sẽ trực tiếp cập nhật sửa đổi hồ sơ theo yêu cầu và lưu lại.
- Thông tin sẽ được lưu vào kho hồ sơ.
- Cuối mỗi tháng, kỳ hay theo yêu cầu của ban giám đốc cán bộ phòng tổng hợp sẽ in báo cáo trình ban giám đốc cũng như có các đề nghị về thưởng, tăng lương, thăng chức….
- Sơ đồ IFD
3.2.2. Sơ đồ chức năng kinh doanh BFD
Xác định chức năng nghiệp vụ là bước đầu tiên của phân tích hệ thống. Để phân tích nhu cầu thông tin của tổ chức ta phải biết được tổ chức thực hiện những nhiệm vụ, chức năng gì. Từ đó biết được các dữ liệu, thông tin gì mà tổ chức sử dụng và làm thế nào để có các thông tin cần thiết.
HTTT quản lý nhân sự tại công ty TNHH phần mềm trí tuệ ISOFTCO có những chức năng chính sau:
*Quản lý hồ sơ nhân viên
- Cập nhập hồ sơ nhân viên khi có nhân viên mới được tuyển chọn vào làm việc tại công ty.
- Sửa đổi, bổ sung điều chỉnh hồ sơ khi có sự thay đổi thông tin về cá nhân, thuyên chuyển nhân viên giữa các phòng ban hay sự thay đổi về chức vụ
- Tìm kiếm và in báo cáo theo phòng ban, độ tuổi hay chức vụ…
- Tạo và in báo cáo khen thưởng kỷ luật nhân viên…
Sơ đồ chức năng của hệ thống quản lý nhân sự tại công ty TNHH phần mềm trí tuệ ISOFTCO được biểu diễn trong hình dưới đây:
Quản lý nhân sự
Báo cáo
Quản lý danh mục
Truy xuất dữ liệu
Danh mục phòng ban
Danh sách nhân viên
Các danh mục khác
Tìm kiếm nhân viên
Theo dõi khen thưởng, kỷ luật
Lập báo cáo
Xử lý
Sơ đồ chức năng của hệ thống quản lý nhân sự
3.2.3. Sơ đồ luồng dữ liệu DFD
Sơ đồ luồng dữ liệu DFD cung cấp cho người sử dụng một cách nhìn tổng thể về hệ thống và cơ chế lưu chuyển thông tin trong hệ thống ấy. Nó xác định các thông tin chuyển vận từ một quá trình hoặc từ chức năng này trong hệ thống sang một quá trình hoặc chức năng khác.
Sơ đồ ngữ cảnh
Khi xem xét một vấn đề, chúng ta luôn có cái nhìn tổng thể về vấn đề đó. Sơ đồ ngữ cảnh sẽ cho ta thấy những thành phần cốt lõi của hệ thống cần xây dựng.
Dưới đây là sơ đồ ngữ cảnh của hệ thống quản lý nhân sự.
Giám đốc
Các phòng ban
Nhân viên
Quản lý nhân sự
Hồ sơ
nhân viên
Thông tin
Nhân sự
Các báo cáo
Các báo cáo
Các yêu cầu
Sơ đồ ngữ cảnh của hệ thống quản lý nhân sự
Sơ đồ DFD mức 0
Sơ đồ DFD mức 0 chỉ ra tất cả các xử lý chính mà bao gồm toàn bộ hệ thống các thành phần trong của xử lý, chỉ ra các xử lý chính tương quan với nhau bởi các luồng dữ liệu như thế nào… Hình dưới đây là sơ đồ DFD mức 0 của hệ thống quản lý nhân sự tại công ty TNHH phần mềm trí tuệ ISOFTCO
Giám đốc, phòng ban
Nhân viên
2.0
Quản lý khen thưởng kỷ luật
3.0
Thống kê báo cáo
Hồ sơ NV
Hồ sơ NV
Giám đốc
1.0
Quản lý hồ sơ NV
Quy định
làm việc
Thông tin NV
Dữ liệu khen thưởng kỷ luật
TT khen thưởng, kỷ luật
Báo cáo nhân sự
Hồ sơ NV
Sơ đồ DFD mức 0
Các DFD mức 1
Sơ đồ DFD mức 1 của tiến trình quản lý hồ sơ nhân viên
Sơ đồ DFD mức 1 của tiến trình quản lý hồ sơ NV
Khi một nhân viên mới được tuyển dungv vào công ty thì nhân viên này sẽ nộp hồ sơ cho phòng nhân sự. Phòng nhân sự sẽ thực hiện cập nhật và lưu trữ hồ sơ vào kho dữ liệu hồ sơ nhân viên.
Hàng ngày, khi có sự thay đổi, biến động nhân sự (thay đổi vị trí trong phòng ban, giữa các phòng ban, nhân viên thôi việc, nghỉ hưu, hết hợp đồng…) thì Giám đốc, các phòng ban hay nhân viên sẽ gửi yêu cầu cho phòng nhân sự. Phòng nhân sự có nhiệm vụ sửa đồi, điều chỉnh theo yêu cầu và lưu thông tin vào kho dữ liệu hồ sơ nhân viên.
Sơ đồ DFD mức 1 của tiến trình quản lý khen thưởng kỷ luật
Các phòng ban
Phòng nhân sự
2.1.
Theo dõi khen thưởng
2.2.
Theo dõi kỷ luật
DL khen thưởng, kỷ luật
DS kỷ luật
DS khen thưởng
NV hoàn thành
công việc vượt KH
NV không hoàn
thành công việc
Sơ đồ DFD mức 1 của tiến trình thống kê báo cáo
3.1.
Truy xuất dữ liệu
3.1.
Lập báo cáo
Hồ sơ NV
Dữ liệu khen thưởng
Dữ liệu kỷ luật
TT nhân viên
DS khen thưởng
DS kỷ luật
Dữ liệu tổng hợp
Giám đốc, phòng ban
Các loại
báo cáo
Sơ đồ DFD mức 1 của tiến trình thống kê báo cáo
3.3. Thiết kế cơ sở dữ liệu
3.3.1. Cấu trúc các thực thể:
Các bảng sau đây thể hiện cấu trúc các thực thể dữ liệu trong hệ thống.
Bảng bằng cấp
STT
Tên trường
Kiểu dữ liệu
Độ rộng
Diễn giải
1
MaNV
TEXT
10
Mã nhân viên
2
TRINHDO
TEXT
50
Trình độ
3
TENBANG
TEXT
200
Tên bằng
4
CHUYENNGANH
TEXT
100
Chuyên ngành
5
NOICAP
TEXT
200
Nơi cấp
6
TUNGAY
Datetime
8
7
DENNGAY
Datetime
8
Bảng bộ phận
STT
Tên trường
Kiểu dữ liệu
Độ rộng
Diễn giải
1
MaBP
TEXT
10
Mã bộ phận
2
TEN
TEXT
100
Tên bộ phận
3
DIACHI
TEXT
200
Địa chỉ
4
DIENTHOAI
TEXT
16
Điện thoại
5
SOFAX
TEXT
16
Số Fax
6
NGAYLAP
Datetime
8
Ngày lập
7
NGAYKT
Datetime
8
Ngày kết thúc
Bảng chức vụ
STT
Tên trường
Kiểu dữ liệu
Độ rộng
Diễn giải
1
MaCV
TEXT
10
Mã chức vụ
2
TEN
TEXT
100
Tên chức vụ
3
DANGSUDUNG1
Bit
1
Đang sử dụng
4
DANGSUDUNG0
Bit
1
Đang sử dụng
5
GHICHU
TEXT
500
Ghi chú
Bảng chức vụ phòng ban (Lưu thông tin về chức vụ phòng ban hiện thời của nhân viên)
STT
Tên trường
Kiểu dữ liệu
Độ rộng
Diễn giải
1
MaNV
TEXT
10
Mã nhân viên
2
MaPB
TEXT
10
Mã phòng ban
3
MaCV
TEXT
10
Mã chức vụ
4
NGAYDAU
Datetime
8
5
NGAYCUOI
Datetime
8
Bảng chức vụ phòng ban 1 (Lưu thông tin chức vụ phòng ban trước đây của nhân viên)
STT
Tên trường
Kiểu dữ liệu
Độ rộng
Diễn giải
1
MaNV
TEXT
10
Mã nhân viên
2
MaPB
TEXT
10
Mã phòng ban
3
MaCV
TEXT
10
Mã chức vụ
4
NGAYDAU
Datetime
5
NGAYCUOI
Datetime
Bảng hợp đồng
STT
Tên trường
Kiểu dữ liệu
Độ rộng
Diễn giải
1
MaNV
TEXT
10
Mã nhân viên
2
SoHD
TEXT
50
Số hợp đồng
3
NGAYKYHD
Datetime
8
Ngày ký hợp đồng
4
NGAYBDHD
Datetime
8
Ngày bắt đầu hợp động
5
NGAYKTHD
Datetime
8
Ngày kết thúc hợp đồng
6
NGAYTHUVIEC
Datetime
8
Ngày thử việc
7
NGAYKTTHUVIEC
Datetime
8
Ngày kết thúc thử việc
8
NGAYCDHD
Datetime
8
Ngày chấm dứt hợp đồng
9
CHEDOLAMVIEC
TEXT
50
Chế độ làm việc
10
MaBHXH
TEXT
10
Mã BHXH
11
MaBHYT
TEXT
10
Mã BHYT
12
HTTRALUONG
TEXT
200
Hình thức trả lương
13
LUONGCOBAN
Money
Lương cơ bản
14
DONVITT
TEXT
50
15
SLTRALUONG
Int
Số lần trả lương
16
SONGAYPHEP
Int
Só ngày phép
17
MUCBOITHUONG
Money
Mức bồi thường
18
LYDOCHAMDUT
TEXT
500
Lý do chấm dứt
19
DANGHI
Bit
1
Đã nghỉ
Bảng dân tộc
STT
Tên trường
Kiểu dữ liệu
Độ rộng
Diễn giải
1
MaDT
TEXT
10
Mã dân tộc
2
DANTOC
TEXT
50
Dân tộc
Bảng hôn nhân
STT
Tên trường
Kiểu dữ liệu
Độ rộng
Diễn giải
1
HONNHAN
TEXT
50
Hôn nhân
Bảng khen thưởng
STT
Tên trường
Kiểu dữ liệu
Độ rộng
Diễn giải
1
MaNV
TEXT
10
2
NGUOIQD
TEXT
200
Người quyết định
3
LOAIQD
TEXT
50
Loại quyết định
4
SOQD
TEXT
50
Số quyết định
5
HINHTHUC
TEXT
50
6
NOIDUNG
TEXT
500
7
NGAYKY
Datetime
8
Ngày ký
8
NGAYHL
Datetime
8
Ngày hiệu lực
9
SOTIEN
Money
Số tiền
10
DONVI
TEXT
50
Đơn vị
Bảng nhân viên
STT
Tên trường
Kiểu dữ liệu
Độ rộng
Diễn giải
1
MANV
TEXT
10
2
HOTEN
TEXT
50
3
NGAYSINH
Datetime
8
4
NOISINH
TEXT
500
5
QUEQUAN
TEXT
500
6
DANTOC
TEXT
50
7
TONGIAO
TEXT
50
8
QUOCTICH
TEXT
50
9
HONNHAN
TEXT
50
10
CMT
TEXT
50
Số chứng minh thư
11
NGAYVAOLAM
Datetime
8
12
NGAYTHOIVIEC
Datetime
8
13
DANGHI
Bit
1
14
NGAYCAP
Datetime
8
15
NOICAP
TEXT
500
16
DCTHUONGTRU
TEXT
500
Địa chỉ thường trú
17
DCTAMTRU
TEXT
500
Địa chỉ tạm trú
18
MAIL
TEXT
100
Mail
19
DIENTHOAI
TEXT
15
20
GIOITINH
TEXT
50
21
DKTHUONGTRU
TEXT
500
Đăng ký thường trú
22
DK TAMTRU
TEXT
500
Đăng ký tạm trú
Bảng nước
STT
Tên trường
Kiểu dữ liệu
Độ rộng
Diễn giải
1
MANUOC
TEXT
10
Mã nước
2
NUOC
TEXT
50
Tên nước
Bảng tài khoản người dùng
STT
Tên trường
Kiểu dữ liệu
Độ rộng
Diễn giải
1
TENDN
TEXT
50
Tên đăng nhập
2
MATKHAU
TEXT
50
Mật khẩu
Bảng thẻ bảo hiểm xã hội
STT
Tên trường
Kiểu dữ liệu
Độ rộng
Diễn giải
1
MANV
TEXT
10
Mã nhân viên
2
MASOBHXH
TEXT
50
Mã số BHXH
3
NOIDANGKY
TEXT
500
Nơi đăng ký
4
NGAYCAP
Datetime
8
Ngày cấp
5
NGAYHET
Datetime
8
Ngày hết hạn
Bảng thẻ bảo hiểm y tế
STT
Tên trường
Kiểu dữ liệu
Độ rộng
Diễn giải
1
MANV
TEXT
10
Mã nhân viên
2
MASOBHYT
TEXT
50
Mã số BHYT
3
NOIDANGKY
TEXT
500
Nơi đăng ký
4
NGAYCAP
Datetime
8
Ngày cấp
5
NGAYHET
Datetime
8
Ngày hết
6
TENBV
TEXT
500
Tên bệnh viện
Bảng tôn giáo
STT
Tên trường
Kiểu dữ liệu
Độ rộng
Diễn giải
1
MATG
TEXT
10
Mã tôn giáo
1
TONGIAO
TEXT
50
Tên tôn giáo
Bảng tính lương
STT
Tên trường
Kiểu dữ liệu
Độ rộng
Diễn giải
1
MANV
TEXT
10
Mã nhân viên
2
HSL
Float
Hệ số lương
3
LCB
Money
Lương cơ bản
4
BHXH
Money
Tiền BHXH
5
BHYT
Money
Tiền BHYT
6
PHUCAP
Money
Tiền phụ cấp
7
TONGTIENNHAN
Money
Thực lĩnh
8
TONGTIENCHU
TEXT
700
Thực lĩnh bằng chữ
3.3.2 Mô hình quan hệ
3.4. Thiết kế giải thuật
3.4.1 Định nghĩa
Giải thuật ( Algorithm) là một dãy các quy tắc chặt chẽ xác định một trình tự các thao tác trên một đối tượng cụ thể để giải quyết một vấn đề hoặc để giải quyết một vấn đề để hoàn thành một mục đích cuối cùng nào đó.
3.4.2. Các phương pháp thiết kế giải thuật
Để diễn đạt một giải thuật thông thường người ta có thể dùng ba phương pháp chủ yếu sau:
+ Phương pháp 1 : Diễn đạt giải thuật bằng lời
+ Phương pháp 2 : Diễn đạt giải thuật bằng sơ đồ khối
+ Phương pháp 3 : Diễn đạt giải thuật bằng một ngôn ngữ lập trình có cấu trúc. Trong đề án dùng phương pháp diễn đạt thuần bằng sơ đồ khối
3.4.3. Vai trò của thiết kế giải thuật
Một chương trình có thiết kế giải thuật sẽ có tính bền vững, khi có một sự thay đổi về cấu trúc người lập trình dựa vào giải thuật thiết kế, viết lại chương trình, mở rộng dễ dàng không dẫn tới sự đổ vỡ của hệ thống.
Là ngôn ngữ chung dễ hiểu đối với người lập trình.
Tránh được thiếu sót và lầm lẫn trong lập trình
Giúp cho việc theo dõi, hiểu bố cục chương trình và bảo trì chương trình một cách dễ dàng hơn
3.4.4. Nguyên tắc thiết kế giải thuật
Thuật toán xây dựng cần có các tính chất sau:
Tính kết thúc
Thuật toán thiết kế cần phải kết thúc sau khi thực hiện một số lần hữu hạn các bước công việc. Các bước lặp, của thuật toán phải xác định một cách rõ ràng.
Tính xác định
Thuật toán xây dựng phải có tính xác định, nghĩa là trong những điều kiện như nhau thì kết quả thực hiện toán hay máy tính thực hiện thuật toán. Nói cách khác thuật toán phải rõ ràng, không gây ra sự nhập nhằng, lẫn lộn hoặc có thể hiểu theo nhiều nghĩa khác nhau.
Tính tổng quát
Thuật toán phải có tính tổng quát dùng để giải cả một lớp bài toán cùng loại chứ không phải dùng để giải một bài toán cụ thể, riêng lẻ.
Tính xác định đầu vào – đầu ra
Thuật toán xây dựng phải có tính xác định rõ ràng đầu vào và đẩu ra. Các đầu vào- đầu ra được xác định càng chính xác thì quá trình xay dựng thuật toán càng thuận lợi và thuật toán càng có chất lượng cao hơn.
Tính hiệu quả
Thuật toán phải đạt được tính hiệu quả nghĩa là nó cho kết quả đúng với những chi phí ít nhất về sức người, thời gian và tiền bạc.
3.4.5. Biểu diễn thuật toán bằng sơ đồ khối
Mỗi bước công việc cho tương ứng với một khối. Khối là một hình được biểu diễn theo ký pháp, ghi vắn tắt nội dung công việc cần thực hiện dưới dạng một công thức. Thứ tự thực hiện các bước công việc được chỉ ra bằng các mũi tên nối liên các khối với nhau.
3.4.6 Các thuật toán điển hình
Thuật toán đăng nhập:
B
Nhập tên và mật khẩu
Kiểm tra tên và mật khẩu
Đăng nhập hệ thống
S
Thông báo sai tên hoặc mật khẩu
S
E
Đ
I <=3
Đ
I=I+1
I = 0
Đ
Thông báo mất quyên đăng nhập
Tiếp tục?
S
Thuật toán đăng nhập hệ thống
Khi người dùng đăng nhập hệ thống, sẽ có một thuạt toán kiểm tra tính hợp lệ của dữ liệu đăng nhập với cơ sở dữ liệu sẽ cho người sử dụng đăng nhập, chương trình thuật toán kết thúc. Nếu sai sẽ yêu cầu đăng nhập lạ. Nếu sai quá 3 lần, chương trình sẽ tự động kết thúc.
Thuật toán nhập dữ liệu:
Khi nhân viên của phòng Nhân sự tiến hành cập nhật thông tin thì hệ thống sẽ kiểm tra tính hợp lệ của thông tin nhập vào. Dữ liệu hợp lệ sẽ được lưu vào kho dữ liệu, ngược lại, nếu dữ liệu không hợp lệ, hệ thống sẽ thông báo lỗi và yêu cầu nhập lại. Việc cập nhật kết thúc khi thông tin đã cập nhật xong.
B
Nhập dữ liệu
Kiểm tra dữ liệu thỏa mãn đk?
Lưu các thông tin vừa nhập
S
Thông báo lỗi
S
E
Đ
Nhập lại?
Đ
Thêm một bản ghi trắng
Đ
Tiếp tục?
S
Thuật toán cập nhật thông tin
Thuật toán sửa dữ liệu:
B
Chọn đối tượng cần sửa
Kiểm tra dữ liệu ?
Sửa và ghi thông tin vào CSDL
S
Thông báo DL không hợp lệ
S
E
Đ
Có chấp nhận sửa không?
Đ
Mờ form cần xử lý
Đ
Tiếp tục?
S
Thuật toán sửa dữ liệu
Thuật toán xóa dữ liệu:
B
Chọn đối tượng cần xóa
Có chấp nhận xóa không?
Xóa thông tin trong CSDL
S
E
Đ
Mở Form cần xử lý
Đ
Tiếp tục?
S
Thuật toán xóa dữ liệu
Thuật toán tìm kiếm:
B
Kiểm tra dữ liệu thỏa mãn đk?
Hiện các bản ghi phù hợp
S
Thông báo không có dữ liệu thỏa mãn
S
E
Tiếp tục?
Đ
Nhập điều kiện tìm kiếm
Đ
Thuật toán tìm kiếm
Thuật toán lên báo cáo:
B
Nhập điều kiện ràng buộc cho báo cáo
Tìm thấy dữ liệu?
Đưa ra báo cáo
S
Thông báo không tìm thấy dữ liệu
S
E
Đ
Có in không?
Đ
Lựa chọn loại báo cáo
Đ
Tiếp tục?
S
Tìm và lọc dữ liệu theo yêu cầu
In báo cáo
Thuật toán lên báo cáo
3.5 Thiết kế giao diện
* Form đăng nhập
* Form giao diện chính
* From quản lý người dùng
*Form danh mục phòng ban
* Form danh sách nhân viên
*Tìm kiếm nhân viên
* Form quyết định khen thưởng
*Form thông tin phần mềm
* Báo cáo danh sách đóng bảo hiểm
* Báo cáo khen thưởng nhân viên
KẾT LUẬN
Nguồn lực trong một tổ chức doanh nghiệp là một trong những nguồn lực quan trọng và tốn kém nhất. Đi kèm với sự phát triển của tổ chức, số lượng cán bộ công nhân viên ngày càng tăng công tác quản lý nhân sự sẽ gạp phải những khó khăn trong công tác quản lý như tra cứu hồ sơ, lý lịch CBCNV, công tác tuyển dụng thêm lao động, các phụ cấp, trợ cấp… Một phần mêm quản lý nhân sự tốt sẽ giúp cho tổ chức quản ly nhân sự của mình một cách dễ dàng. Với hệ thống các báo cáo của phần mềm sẽ đáp ứng nhanh nhất các thông tin về nhân sự hỗ trợ trưởng phòng, nhà quản lý, ban giám đốc những quyết định chính xác nhất, nhanh nhất về công tác nhân sự của Tổ chức.
Đề tài “Xây dựng phần mềm quản lý Nhân sự tại công ty TNHH phần mềm trí tuệ ISOFTCO” đã đạt được một số kết quả như sau:
Tìm hiểu về quá trình hình thành phát triển của công ty TNHH phần mềm trí tuệ ISOFTCO, tìm hiểu những đòi hỏi, yêu cầu, tính cấp thiết cũng như các tính năng cần có của phần mêm QLNS.
Áp dụng những kiến thức cơ bản của hệ thống thông tin quản lý cũng như công cụ phát triển phần mềm để xây dựng đề tài.
Phân tích một cách chi tiết các yêu cầu của công ty TNHH phần mềm trí tuệ ISOFTCO cũng như đòi hỏi về chức năng của phần mềm. Thiết kế vật lý, chi tiết, thiết kế giao diện, thiết kế dữ liệu, thiết kế giải thuật đảm bảo cho tính bền vững của hệ thống. Trên cơ sở đó kết hợp với các công cụ phát triển phần mềm là ngôn ngữ lập trình Visual Basic 6.0 , cơ sở dữ liệu Microsoft Access tạo nên một phần mềm hoàn chỉnh có tính ứng dựng trong thực tế.
Giúp cho quá trình quản lý nhân sự tại Công ty TNHH phần mêm trí tuệ ISOFTCO trở nên dễ dàng gọn nhẹ, đáp ứng các yêu cầu thực tế về nhân sự.
Một lần nữa em xin chân thành cảm ơn TS Đặng Quế Vinh đã hướng dẫn, đồng thời cũng xin chân thành cảm ơn sự giúp đỡ nhiệt tình từ phía công ty TNHH phần mềm trí tuệ ISOFTCO mà đặc biệt là ban lãnh đạo và phòng kĩ thuật của công ty trong suốt thời gian em đến thực tập. Những sự giúp đỡ, hướng dẫn nhiệt tình đã giúp em hoàn thành phần mềm cũng như mục tiêu của khóa thực tập. Tuy vậy trong quá trình thực tập cũng như viết đề tài em không tránh khỏi những sai sót. Em rất mong được nhự góp ý từ công ty cũng như giáo viên hướng dẫn để ngày càng hoàn thiện hơn.
Hà Nội, ngày 06 tháng 05 năm 2009
Sinh viên: Đặng Thanh Bình
Lớp : Tin học kinh tế 47B- Khoa tin học kinh tế
Trường : ĐH Kinh tế Quốc dân
Danh mục tài liệu tham khảo
“ Hệ thống thông tin quản lý” Ts Trương Văn Tú – Ts Trần Thị Song Minh
2. “ Cấu trúc dữ liệu và giải thuật” PGS TS Hàn Viết Thuận
3. “Cơ sở dữ liệu 1” Ths Trần Công Uẩn
4. “ Giáo trình Kỹ thuật lập trình 1” Ts Đặng Quế Vinh
5. “Bài giảng công nghệ phần mềm ” PGS TS Hàn Viết Thuận
6. “Bài giảng lập trình trong quản lý” Ths Trịnh Hoài Sơn
Phụ lục
Một số đoạn mã chương trình tiêu biểu
Global cn As New ADODB.Connection
Public Sub Main()
Set cn = New ADODB.Connection
With cn
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Database\QLNS.mdb;Persist Security Info=False"
.Open
End With
End Sub
Option Explicit
Dim strbang As String
Dim strtruongdulieu As String
Dim strften As String
Private Sub Hienthithongtin()
If lstdanhmuc.ListIndex = 0 Then
Label1.Caption = "M· b»ng :"
Label2.Caption = "Tªn b»ng :"
lvwchitiet.ColumnHeaders.Clear
strbang = "hr_bangcap"
Call Toanbobangcap
txtma.MaxLength = 2
ElseIf lstdanhmuc.ListIndex = 1 Then
Label1.Caption = "M· CV :"
Label2.Caption = "Tªn chøc vô :"
lvwchitiet.ColumnHeaders.Clear
strbang = "hr_chucvu"
txtma.MaxLength = 3
Call Toanbochucvu
ElseIf lstdanhmuc.ListIndex = 2 Then
Label1.Caption = "M· CN :"
Label2.Caption = "Tªn ngµnh :"
lvwchitiet.ColumnHeaders.Clear
strbang = "hr_chuyennganh"
txtma.MaxLength = 2
Call Toanbochuyennganh
ElseIf lstdanhmuc.ListIndex = 3 Then
Label1.Caption = "M· DV :"
Label2.Caption = "Tªn ®¬n vÞ :"
lvwchitiet.ColumnHeaders.Clear
strbang = "hr_donvi"
txtma.MaxLength = 3
Call Toanbodonvi
ElseIf lstdanhmuc.ListIndex = 4 Then
Label1.Caption = "M· DT :"
Label2.Caption = "Tªn d©n téc :"
lvwchitiet.ColumnHeaders.Clear
strbang = "hr_dantoc"
txtma.MaxLength = 2
Call Toanbodantoc
ElseIf lstdanhmuc.ListIndex = 5 Then
Label1.Caption = "M· CV :"
Label2.Caption = "Néi dung :"
lvwchitiet.ColumnHeaders.Clear
strbang = "hr_congviec"
txtma.MaxLength = 2
Call Toanbocongviec
ElseIf lstdanhmuc.ListIndex = 6 Then
Label1.Caption = "M· tØnh :"
Label2.Caption = "Tªn tØnh :"
lvwchitiet.ColumnHeaders.Clear
strbang = "hr_tinh"
txtma.MaxLength = 2
Call Toanbotinhthanh
ElseIf lstdanhmuc.ListIndex = 7 Then
Label1.Caption = "M· QG :"
Label2.Caption = "Tªn quèc gia :"
lvwchitiet.ColumnHeaders.Clear
strbang = "hr_quocgia"
txtma.MaxLength = 2
Call Toanboquocgia
ElseIf lstdanhmuc.ListIndex = 8 Then
Label1.Caption = "M· QH :"
Label2.Caption = "Tªn quan hÖ :"
lvwchitiet.ColumnHeaders.Clear
strbang = "hr_quanhe"
txtma.MaxLength = 2
Call Toanboquanhe
ElseIf lstdanhmuc.ListIndex = 9 Then
Label1.Caption = "M· HD :"
Label2.Caption = "Tªn hîp ®ång :"
lvwchitiet.ColumnHeaders.Clear
strbang = "hr_hopdong"
txtma.MaxLength = 2
Call Toanbohopdong
ElseIf lstdanhmuc.ListIndex = 10 Then
Label1.Caption = "M· TG :"
Label2.Caption = "Tªn t«n gi¸o :"
lvwchitiet.ColumnHeaders.Clear
strbang = "hr_tongiao"
txtma.MaxLength = 2
Call Toanbotongiao
ElseIf lstdanhmuc.ListIndex = 11 Then
Label1.Caption = "M· NN :"
Label2.Caption = "Tªn ngo¹i ng÷ :"
lvwchitiet.ColumnHeaders.Clear
strbang = "hr_ngoaingu"
txtma.MaxLength = 2
Call Toanbongoaingu
ElseIf lstdanhmuc.ListIndex = 12 Then
Label1.Caption = "M· HV :"
Label2.Caption = "Tªn häc vÊn :"
lvwchitiet.ColumnHeaders.Clear
strbang = "hr_hocvan"
txtma.MaxLength = 2
Call Toanbohocvan
ElseIf lstdanhmuc.ListIndex = 13 Then
Label1.Caption = "M· HV :"
Label2.Caption = "Tªn häc vÞ :"
lvwchitiet.ColumnHeaders.Clear
strbang = "hr_hocvi"
txtma.MaxLength = 2
Call Toanbohocvi
ElseIf lstdanhmuc.ListIndex = 14 Then
Label1.Caption = "M· ND :"
Label2.Caption = "Tªn nghÒ ®Õn :"
lvwchitiet.ColumnHeaders.Clear
strbang = "hr_ngheden"
txtma.MaxLength = 2
Call Toanbonghekhiden
ElseIf lstdanhmuc.ListIndex = 15 Then
Label1.Caption = "M· TPBT :"
Label2.Caption = "Thµnh phÇn BT :"
lvwchitiet.ColumnHeaders.Clear
strbang = "hr_tpbt"
txtma.MaxLength = 2
Call Toanbothanhphanbanthan
ElseIf lstdanhmuc.ListIndex = 16 Then
Label1.Caption = "M· TPXT :"
Label2.Caption = "Thµnh phÇn XT :"
lvwchitiet.ColumnHeaders.Clear
strbang = "hr_tpxt"
txtma.MaxLength = 2
Call Toanbothanhphanxuatthan
ElseIf lstdanhmuc.ListIndex = 17 Then
Label1.Caption = "M· NN :"
Label2.Caption = "Tr×nh ®é NN :"
lvwchitiet.ColumnHeaders.Clear
strbang = "hr_trinhdonn"
txtma.MaxLength = 2
Call Toanbotrinhdongoaingu
ElseIf lstdanhmuc.ListIndex = 18 Then
Label1.Caption = "M· VT :"
Label2.Caption = "Tr×nh ®é VT :"
lvwchitiet.ColumnHeaders.Clear
strbang = "hr_trinhdovt"
txtma.MaxLength = 2
Call Toanbotrinhdovitinh
ElseIf lstdanhmuc.ListIndex = 19 Then
Label1.Caption = "Lý do :"
Label2.Caption = "Tªn lý do :"
lvwchitiet.ColumnHeaders.Clear
strbang = "hr_lydonghi"
txtma.MaxLength = 2
Call Toanbolydonghi
ElseIf lstdanhmuc.ListIndex = 20 Then
Label1.Caption = "M· GDCS :"
Label2.Caption = "Ghi chó :"
lvwchitiet.ColumnHeaders.Clear
strbang = "hr_gdcs"
txtma.MaxLength = 2
Call Toanbogiadinhchinhsach
ElseIf lstdanhmuc.ListIndex = 21 Then
Label1.Caption = "M· TD"
Label2.Caption = "Tªn tr×nh ®é :"
lvwchitiet.ColumnHeaders.Clear
strbang = "HR_Trinhdo"
txtma.MaxLength = 4
Call Toanbotrinhdo
End If
End Sub
Private Sub cmdluu_Click()
If cmdluu.Caption = "Lu" Then
If txtten.text = "" Or txtma.text = "" Then
MsgBox "B¹n ph¶i nhËp ®Çy ®ñ th«ng tin tríc khi lu", vbExclamation, "Luu"
Else
lvwchitiet.ColumnHeaders.Clear
Call Nhapthemgiatri
Call Capnhatdanhsach
frmMain.Capnhattoanbodulieu
Editstate (NotEditing)
txtma.text = ""
txtten.text = ""
End If
Else
If txtten.text = "" Then
MsgBox "B¹n ph¶i nhËp tªn tríc khi lu", vbExclamation, "Luu"
Else
lvwchitiet.ColumnHeaders.Clear
Call Capnhatdulieu
Call Capnhatdanhsach
frmMain.Capnhattoanbodulieu
Editstate (NotEditing)
cmdluu.Caption = "Lu"
txtma.text = ""
txtten.text = ""
End If
End If
End Sub
Private Sub cmdsua_Click()
If txtma.text = "" Then
MsgBox "B¹n ph¶i chän tríc khi söa ch÷a th«ng tin", vbExclamation, "Thong bao"
Else
Editstate (Editing)
cmdluu.Caption = "CËp nhËt"
txtma.Enabled = False
End If
End Sub
Private Sub cmdthem_Click()
If cmdthem.Caption = "Thªm" Then
Editstate (Editing)
txtma.text = ""
txtten.text = ""
txtma.SetFocus
Else
cmdluu.Caption = "Lu"
Editstate (NotEditing)
txtma.text = ""
txtten.text = ""
End If
End Sub
Private Sub cmdthoat_Click()
Unload Me
End Sub
Private Sub cmdxoa_Click()
Dim m As Integer
If txtma.text = "" Then
MsgBox "B¹n ph¶i lùa chän tríc khi xo¸", vbExclamation, "Xoa"
Else
m = MsgBox("B¹n cã ch¾c ch¾n muèn xo¸ m· sè " & "'" & lvwchitiet.SelectedItem & "'" & " trong danh môc " & "'" & lstdanhmuc.text & "'" & " kh«ng ?", vbQuestion + vbYesNo, "Xoa")
If m = vbYes Then
lvwchitiet.ColumnHeaders.Clear
Call Xoadulieu
Call Capnhatdanhsach
frmMain.Capnhattoanbodulieu
Editstate (NotEditing)
txtma.text = ""
txtten.text = ""
Else
Exit Sub
End If
End If
End Sub
Private Sub Nhapthemgiatri()
On Error GoTo HandleErrors
Dim strthem As String
strthem = "insert into " & strbang & " values (" & "'" & txtma.text & "','" & txtten & "')"
ExecuteSQL (strthem)
mconCurrent.Close
Exit Sub
HandleErrors:
MsgBox "§· cã lçi x¶y ra b¹n h·y xem l¹i tríc khi lu", vbCritical, "Loi"
End Sub
Private Sub Capnhatdulieu()
On Error GoTo HandleErrors
Dim strcapnhat As String
strcapnhat = "Update " & strbang & " set " & _
strften & "=" & "'" & txtten.text & "'" & " where " & strtruongdulieu & " = " & "'" & txtma.text & "'"
ExecuteSQL (strcapnhat)
mconCurrent.Close
Exit Sub
HandleErrors:
MsgBox "§· cã lçi x¶y ra b¹n h·y xem l¹i tríc khi lu", vbCritical, "Loi"
End Sub
Private Sub Thongtinchietiet()
On Error GoTo HandleErrors
Dim strchietiet As String
strchietiet = "select * from " & strbang & " where " & strtruongdulieu & "=" & "'" & CStr(lvwchitiet.SelectedItem) & "'"
OpenSQL (strchietiet)
txtma.text = "" & mrstCurrent(0) & ""
txtten.text = "" & mrstCurrent(1) & ""
mconCurrent.Close
Exit Sub
HandleErrors:
On Error GoTo 0
End Sub
Private Sub lvwchitiet_Click()
Call Luachontruongdulieu
Call Thongtinchietiet
End Sub
Private Sub Luachontruongdulieu()
If lstdanhmuc.ListIndex = 0 Then
strtruongdulieu = "Mabang"
strften = "tenbang"
ElseIf lstdanhmuc.ListIndex = 1 Then
strtruongdulieu = "Machucvu"
strften = "tenchucvu"
ElseIf lstdanhmuc.ListIndex = 2 Then
strtruongdulieu = "ma_cn"
strften = "tennganh"
ElseIf lstdanhmuc.ListIndex = 3 Then
strtruongdulieu = "Madv"
strften = "tendv"
ElseIf lstdanhmuc.ListIndex = 4 Then
strtruongdulieu = "Madt"
strften = "tendt"
ElseIf lstdanhmuc.ListIndex = 5 Then
strtruongdulieu = "macv"
strften = "noidung"
ElseIf lstdanhmuc.ListIndex = 6 Then
strtruongdulieu = "matinh"
strften = "tentinh"
ElseIf lstdanhmuc.ListIndex = 7 Then
strtruongdulieu = "maqg"
strften = "tenqg"
ElseIf lstdanhmuc.ListIndex = 8 Then
strtruongdulieu = "maqh"
strften = "tenqh"
ElseIf lstdanhmuc.ListIndex = 9 Then
strtruongdulieu = "mahd"
strften = "tenhd"
ElseIf lstdanhmuc.ListIndex = 10 Then
strtruongdulieu = "matgiao"
strften = "tentgiao"
ElseIf lstdanhmuc.ListIndex = 11 Then
strtruongdulieu = "mann"
strften = "tennn"
ElseIf lstdanhmuc.ListIndex = 12 Then
strtruongdulieu = "mahvan"
strften = "tenhvan"
ElseIf lstdanhmuc.ListIndex = 13 Then
strtruongdulieu = "mahocvi"
strften = "tenhocvi"
ElseIf lstdanhmuc.ListIndex = 14 Then
strtruongdulieu = "mangheden"
strften = "ngheden"
ElseIf lstdanhmuc.ListIndex = 15 Then
strtruongdulieu = "matpbt"
strften = "thanhphanbt"
ElseIf lstdanhmuc.ListIndex = 16 Then
strtruongdulieu = "matpxt"
strften = "thanhphanxt"
ElseIf lstdanhmuc.ListIndex = 17 Then
strtruongdulieu = "matrinhdonn"
strften = "tentrinhdonn"
ElseIf lstdanhmuc.ListIndex = 18 Then
strtruongdulieu = "mavitinh"
strften = "tentdvt"
ElseIf lstdanhmuc.ListIndex = 19 Then
strtruongdulieu = "lydo"
strften = "tenlydo"
ElseIf lstdanhmuc.ListIndex = 20 Then
strtruongdulieu = "maGDCS"
strften = "ghichu"
ElseIf lstdanhmuc.ListIndex = 21 Then
strtruongdulieu = "Matrinhdo"
strften = "tentrinhdo"
End If
End Sub
Private Sub Xoadulieu()
On Error GoTo HandleErrors
Dim strxoa As String
strxoa = "Delete from " & strbang & " where " & strtruongdulieu & "=" & "'" & txtma.text & "'"
ExecuteSQL (strxoa)
mconCurrent.Close
Exit Sub
HandleErrors:
MsgBox "§· cã lçi x¶y ra b¹n h·y xem l¹i tríc khi lu", vbCritical, "Loi"
End Sub
Private Sub Capnhatdanhsach()
If lstdanhmuc.ListIndex = 0 Then
Call Toanbobangcap
ElseIf lstdanhmuc.ListIndex = 1 Then
Call Toanbochucvu
ElseIf lstdanhmuc.ListIndex = 2 Then
Call Toanbochuyennganh
ElseIf lstdanhmuc.ListIndex = 3 Then
Call Toanbodonvi
ElseIf lstdanhmuc.ListIndex = 4 Then
Call Toanbodantoc
ElseIf lstdanhmuc.ListIndex = 5 Then
Call Toanbocongviec
ElseIf lstdanhmuc.ListIndex = 6 Then
Call Toanbotinhthanh
ElseIf lstdanhmuc.ListIndex = 7 Then
Call Toanboquocgia
ElseIf lstdanhmuc.ListIndex = 8 Then
Call Toanboquanhe
ElseIf lstdanhmuc.ListIndex = 9 Then
Call Toanbohopdong
ElseIf lstdanhmuc.ListIndex = 10 Then
Call Toanbotongiao
ElseIf lstdanhmuc.ListIndex = 11 Then
Call Toanbongoaingu
ElseIf lstdanhmuc.ListIndex = 12 Then
Call Toanbohocvan
ElseIf lstdanhmuc.ListIndex = 13 Then
Call Toanbohocvi
ElseIf lstdanhmuc.ListIndex = 14 Then
Call Toanbonghekhiden
ElseIf lstdanhmuc.ListIndex = 15 Then
Call Toanbothanhphanbanthan
ElseIf lstdanhmuc.ListIndex = 16 Then
Call Toanbothanhphanxuatthan
ElseIf lstdanhmuc.ListIndex = 17 Then
Call Toanbotrinhdongoaingu
ElseIf lstdanhmuc.ListIndex = 18 Then
Call Toanbotrinhdovitinh
ElseIf lstdanhmuc.ListIndex = 19 Then
Call Toanbolydonghi
ElseIf lstdanhmuc.ListIndex = 20 Then
Call Toanbogiadinhchinhsach
ElseIf lstdanhmuc.ListIndex = 21 Then
Call Toanbotrinhdo
End If
End Sub
Option Explicit
Dim lanTC As Byte
Private Sub cmdcancel_Click()
End
End Sub
Private Sub cbousername_Change()
Call Luachonquyentruycap
End Sub
Private Sub cbousername_Click()
Call Luachonquyentruycap
End Sub
Private Sub cmdok_Click()
Dim err_name As String
lanTC = lanTC + 1
If lanTC < 3 Then
ConnectDatabase
Set rsPL = Nothing
rsPL.Open "Select * From HR_TruycapHS Where TenTC='" & cbousername.text & "'", mconCurrent, adOpenKeyset, adLockOptimistic
If rsPL.RecordCount > 0 Then
If Not IsNull(rsPL.Fields("Matkhau")) Then
If rsPL.Fields("Matkhau") = txtPassword.text Then Ok = True
Else
If txtPassword.text = "" Then Ok = True
End If
Else
Ok = False
End If
If Ok = False Then
MsgBox "Tªn ®¨ng nhËp hoÆc mËt khÈu kh«ng chÝnh x¸c. Xin vui lßng nhËp l¹i", vbInformation + vbOKOnly, "Error"
txtPassword.SetFocus
SendKeys "{home}+{end}"
Exit Sub
End If
Else
MsgBox "B¹n ®· nhËp sai qu¸ 3 lÇn. Ch¬ng tr×nh sÏ tù ®éng kÕt thóc", vbInformation, "Thoat"
End
End If
If Ok = True Then
Ok = False
strusername = cbousername.text
Unload Me
MDI.Show
End If
End Sub
Private Sub cmdthoat_Click()
End
End Sub
Private Sub Form_Load()
On Error GoTo HandleErrors
Toanbonguoidangnhap
cbousername.ListIndex = 0
Exit Sub
HandleErrors:
On Error GoTo 0
End Sub
Private Sub txtPassword_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then cmdok_Click
End Sub
Private Sub txtUserName_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then cmdok_Click
End Sub
Private Sub Luachonquyentruycap()
On Error GoTo HandleErrors
Dim strdn As String
strdn = "select quyen from TRUYCAP where tentc=" & "'" & cbousername.text & "'"
OpenSQL (strdn)
strpermission = mrstCurrent("quyen")
mconCurrent.Close
Exit Sub
HandleErrors:
On Error GoTo 0
End Sub
Private Sub Toanbonguoidangnhap()
On Error GoTo HandleErrors
Dim strdn As String
strdn = "select * from hr_truycaphs"
OpenSQL (strdn)
cbousername.Clear
Do Until mrstCurrent.EOF
cbousername.AddItem mrstCurrent("Tentc")
mrstCurrent.MoveNext
Loop
mconCurrent.Close
Exit Sub
HandleErrors:
On Error GoTo 0
End Sub
Private Sub Timer1_Timer()
Label3.Caption = " Chµo mõng b¹n ®Õn víi ch¬ng tr×nh qu¶n lý nh©n sù"
End Sub
Private Sub Timer2_Timer()
Label3.Caption = " H·y ®¨ng nhËp ®Ó vµo hÖ thèng "
End Sub
Các file đính kèm theo tài liệu này:
- 21894.doc