Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Kiểm toán TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA: CÔNG NGHỆ - THÔNG TIN ---------- TRẦN THỊ THU HƯƠNG XÂY DỰNG PHẦN MỀM QUẢN LÝ TIỀN LƯƠNG DỰA TRÊN PHƯƠNG PHÁP LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Quảng Nam, tháng 4 năm 2015 Nguyễn Thị Thu Thương - CT13CTT02 LỜI CẢM ƠN Lời đầu tiên em xin chân thành cảm ơn sự chỉ dẫn và giúp đỡ tận tình của cô Trần Thị Diệu Hiền, khoa công nghệ thông tin trường đại học Quảng Nam. Trong suốt thời gian thực hiện luận văn tốt nghiệp, dưới sự chỉ dẫn nhiệt tình của cô đã giúp em bước đầu định hướng được hướng làm, cách trình bày của một bài luận văn, và cô đã cung cấp cho em rất nhiều hiểu biết về lĩnh vực thiết kế lập trình để em có kiến thức tập trung cho bài làm của mình một cách hiệu quả nhất. Em xin cảm ơn cô, các thầy cô và bạn bè, anh chị trong khoa công nghệ thông tin, cũng như các thầy cô trong trường đã giảng dạy, giúp đỡ chúng em trong suốt 3 năm học vừa qua. Nhờ vậy, em đã học được những kiến thức nền tảng đến chuyên sâu hơn để em có thể hoàn thành luận văn này cũng như các công việc của mình sau này. Tuy nhiên, do hạn chế về thời gian cũng như kiến thức của em còn non yếu, đề tài khóa luận cũng không tránh khỏi những thiếu sót nhất định, rất mong nhận được sự đóng góp ý kiến của quý thầy cô cũng như các bạn để bài khóa luận được hoàn chỉnh hơn. Em xin chân thành cảm ơn Sinh viên thực hiện Nguyễn Thị Thu Thương Nguyễn Thị Thu Thương - CT13CTT02 MỤC LỤC PHẦN 1: MỞ ĐẦU ........................................................................................ 1 1.1. Lý do chọn đề tài ........................................................................................... 1 1.2. Mục tiêu của đề tài ........................................................................................ 1 1.3. Đối tượng và phạm vi nghiên cứu ................................................................. 1 1.4. Phương pháp nghiên cứu ............................................................................... 2 1.5. Lịch sử nghiên cứu ........................................................................................ 2 1.6. Đóng góp của đề tài ....................................................................................... 2 1.7. Cấu trúc đề tài................................................................................................ 2 PHẦN 2: NỘI DUNG NGHIÊN CỨU ........................................................... 3 CHƯƠNG 1: TỔNG QUAN VỀ LÝ THUYẾT THIẾT KẾ HƯỚNG ĐỐI TƯỢNG ................................................................................................................. 3 1.1. Tìm hiểu về phương pháp phân tích thiết kế hướng đối tượng ..................... 3 1.1.1. Ý tưởng........................................................................................................ 3 1.1.2. Cách tiếp cận hướng đối tượng ................................................................... 3 1.1.2.1. Cách tiếp cận hướng chức năng ................................................................ 3 1.1.2.2. Cách tiếp cận hướng đối tượng ................................................................. 4 1.1.3. Ưu điểm chính của mô hình hướng đối tượng ............................................ 4 1.1.4. Các giai đoạn của chu trình phát triển phần mềm hướng đối tượng ........... 6 1.1.4.1. Phân tích hướng đối tượng(Object Oriented Analynis – OOA) ............... 6 1.1.4.2. Thiết kế hướng đối tượng(Object Oriented Design – OOD) .................... 6 1.1.4.3. Lập trình hướng đối tượng(Object Oriented Programming – OOP)......... 6 1.1.5. Những vấn đề đặt ra trong phân tích thiết kế hướng đối tượng .................. 6 1.2. Phân tích thiết kế hướng đối tượng với UML ............................................... 7 1.2.1. Lập mô hình nghiệp vụ ............................................................................... 7 1.2.2. Xác định yêu cầu của hệ thống ................................................................... 7 1.2.3. Phân tích ...................................................................................................... 7 1.2.3.1. Phân tích kiến trúc..................................................................................... 7 1.2.3.2. Phân tích một ca sử dụng .......................................................................... 9 1.2.3.3. Phân tích một lớp .................................................................................... 10 1.2.3.4. Phân tích một gói .................................................................................... 10 1.2.4. Thiết kế ...................................................................................................... 11 1.2.4.1. Thiết kế kiến trúc .................................................................................... 11 1.2.4.2. Thiết kế một ca sử dụng .......................................................................... 11 1.2.4.3. Thiết kế lớp ............................................................................................. 12 1.2.4.4. Thiết kế một hệ thống con....................................................................... 12 1.2.5. Các mô hình trong thiết kế hướng đối tượng với UML ............................ 13 1.2.5.1. Mô hình thác nước .................................................................................. 13 Nguyễn Thị Thu Thương - CT13CTT02 1.2.5.2. Mô hình thăm dò ..................................................................................... 14 1.2.5.3. Tạo nguyên mẫu ...................................................................................... 14 1.2.6. Mô hình các hướng nhìn trong phần mềm hướng đối tượng .................... 15 1.3. Giới thiệu công cụ Rational Rose................................................................ 19 CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG ............................. 20 2.1. Khảo sát ....................................................................................................... 20 2.1.1. Định nghĩa bài toán ................................................................................... 20 2.1.2. Các chức năng cơ bản của hệ thống .......................................................... 20 2.1.3. Yêu cầu phi chức năng của hệ thống ........................................................ 22 2.2. Biểu đồ Use Case ........................................................................................ 22 2.2.1. Xác định Actor .......................................................................................... 22 2.2.2. Xác định Use Case .................................................................................... 23 2.2.3. Đặc tả Use Case......................................................................................... 23 2.2.4. Xây dựng biểu đồ Use Case ...................................................................... 26 2.2.4.1. Biểu đồ phân rã chức năng “Cập nhật Hồ Sơ Nhân Viên” ..................... 26 2.2.4.2. Biểu đồ phân rã chức năng “Quản Lý Lương” ....................................... 27 2.3. Phân tích hệ thống ....................................................................................... 27 2.3.1. Phân tích gói ca sử dụng quản lý hồ sơ nhân viên .................................... 27 2.3.1.1. Ca sử dụng “Thêm hồ sơ” ....................................................................... 28 2.3.1.2. Ca sử dụng “Tìm kiếm hồ sơ”................................................................. 29 2.3.1.3. Ca sử dụng “Chỉnh Sửa hồ sơ” ............................................................... 30 2.3.1.4. Ca sử dụng “Xóa hồ sơ”.......................................................................... 31 2.3.1.5. Ca sử dụng “In hồ sơ” ............................................................................. 32 2.3.2. Phân tích gói ca sử dụng quản lý lương .................................................... 33 2.3.2.1. Biểu đồ tuần tự ........................................................................................ 33 2.3.2.2. Biểu đồ cộng tác ...................................................................................... 34 2.3.3. Phân tích gói ca sử dụng Thanh toán lương .............................................. 34 2.3.3.1. Biểu đồ tuần tự ........................................................................................ 35 2.3.3.2. Biểu đồ cộng tác ...................................................................................... 35 2.3.4. Phân tích gói ca sử dụng Thống kê ........................................................... 36 2.3.4.1. Biểu đồ tuần tự ........................................................................................ 36 2.3.4.2. Biểu đồ cộng tác ...................................................................................... 37 2.4. Biểu đồ lớp .................................................................................................. 37 2.4.1. Thiết kế gói ca sử dụng quản lý hồ sơ nhân viên ...................................... 37 2.4.2. Thiết kế gói ca sử dụng quản lý lương ...................................................... 38 2.5. Biểu đồ trạng thái ........................................................................................ 38 2.5.1. Lớp Hồ Sơ Nhân Viên............................................................................... 38 2.5.1.1. Chức năng thêm nhân viên...................................................................... 38 2.5.1.2. Chức năng chỉnh sửa thông tin nhân viên ............................................... 39 Nguyễn Thị Thu Thương - CT13CTT02 2.5.1.3. Chức năng Xóa thông tin nhân viên........................................................ 39 2.5.2. Lớp “Lương nhân viên” ............................................................................ 40 CHƯƠNG 3. XÂY DỰNG CƠ SỞ DỮ LIỆU – THIẾT KẾ DEMOCHƯƠNGTRÌNH .................................................................................. 41 3.1. Mô hình cơ sở dữ liệu.................................................................................. 41 3.2. Mô hình quan hệ .......................................................................................... 43 3.3. Cài đặt chương trình .................................................................................... 43 3.3.1. Cửa sổ đăng nhập ...................................................................................... 43 3.3.2. Giao diện chính ......................................................................................... 44 3.3.3. Giao diện cập nhật hồ sơ cán bộ nhân viên ............................................... 44 3.3.4. Giao diện quản lý chức vụ......................................................................... 45 3.3.5. Giao diện quản lý phòng ban .................................................................... 46 3.3.6. Giao diện cập nhật bảng lương nhân viên ................................................. 47 3.3.7. Cửa sổ tính lương nhân viên ..................................................................... 47 3.3.8. Giao diện thống kê nhân viên.................................................................... 48 3.3.9. Giao diện thống kê tiền lương ................................................................... 49 3.3.10.Giao diện tìm kiếm nhân viên ................................................................... 49 PHẦN 3. KẾT LUẬN VÀ KIẾN NGHỊ ....................................................... 51 PHẦN 4. TÀI LIỆU THAM KHẢO ............................................................ 52 Nguyễn Thị Thu Thương - CT13CTT02 DANH MỤC BIỂU MẪU, HÌNH ẢNH Hình 1.1. Các lớp phân tích ................................................................................... 9 Hình 1.2. Phương pháp mô hình thác nước. ........................................................ 13 Hình 1.3. Phương pháp mô hình thăm dò. ........................................................... 14 Hình 1.4. Phương pháp mẫu hệ thống ban đầu. .................................................. 15 Hình 1.5. Các View trong UML ........................................................................... 16 Hình 2.1.Mô hình ca sử dụng tổng quát hệ thống “Quản lý tiền lương”. ........... 26 Hình 2.2. Mô hình phân rã chức năng “Cập nhật hồ sơ nhân viên”. ................. 26 Hình 2.3. Mô hình phân rã chức năng “Quản lý lương”. ................................... 27 Hình 2.4. Biểu đồ tuần tự thực thi ca sử dụng “Thêm hồ sơ”. ............................ 28 Hình 2.5. Biểu đồ cộng tác thực thi ca sử dụng “Thêm hồ sơ”. .......................... 28 Hình 2.6. Biểu đồ tuần tự thực thi ca sử dụng “Tìm kiếm hồ sơ”. ...................... 29 Hình 2.7. Biểu đồ cộng tác thực thi ca sử dụng “Tìm kiếm hồ sơ”. .................... 29 Hình 2.8. Biểu đồ tuần tự thực thi ca sử dụng “Chỉnh sửa hồ sơ”. .................... 30 Hình 2.9. Biểu đồ cộng tác thực thi ca sử dụng “Chỉnh sửa hồ sơ”. .................. 30 Hình 2.10. Biểu đồ tuần tự thực thi ca sử dụng “Xóa hồ sơ”. ............................ 31 Hình 2.11. Biểu đồ cộng tác thực thi ca sử dụng “Xóa hồ sơ”. .......................... 31 Hình 2.12. Biểu đồ tuần tự thực thi ca sử dụng “In hồ sơ”................................. 32 Hình 2.13. Biểu đồ cộng tác thực thi ca sử dụng “In hồ sơ”. ............................. 32 Hình 2.14. Biểu đồ tuần tự thực thi ca sử dụng “Quản lý lương”. ..................... 33 Hình 2.15. Biểu đồ cộng tác thực thi ca sử dụng “Quản lý lương”. ................... 34 Hình 2.16. Biểu đồ tuần tự thực thi ca sử dụng “Thanh toán lương”. ................ 35 Hình 2.17. Biểu đồ cộng tác thực thi ca sử dụng “Thanh toán lương”............... 35 Hình 2.18. Biểu đồ tuần tự thực thi ca sử dụng “Thống kê”. .............................. 36 Hình 2.19. Biểu đồ cộng tác thực thi ca sử dụng “Thống kê”............................. 37 Hình 2.20. Mô hình lớp thiết kế gói ca sử dụng “Quản lý hồ sơ nhân viên”. ..... 37 Hình 2.21. Mô hình lớp thiết kế gói ca sử dụng “Quản lý lương”. ..................... 38 Hình 2.22. Biểu đồ trạng thái của chức năng “Thêm nhân viên”. ...................... 38 Nguyễn Thị Thu Thương - CT13CTT02 Hình 2.23. Biểu đồ trạng thái của chức năng “Chỉnh sửa thông tin nhân viên”. 39 Hình 2.24. Biểu đồ trạng thái của chức năng “Xóa thông tin nhân viên”. ......... 39 Hình 2.25. Biểu đồ trạng thái của lớp “Lương nhân viên”. ................................ 40 Nguyễn Thị Thu Thương - CT13CTT02 Trang1 PHẦN 1: MỞ ĐẦU 1.1. Lý do chọn đề tài Ngày nay,công nghệ thông tin đã và đang đóng vai trò quan trọng trong đời sống kinh tế - xã hội của nhiều quốc gia trên thế giới, hệ thống tin học phát triển nhanh chóng và ngày càng trở nên phức tạp. Việc phát triển hệ thống phần mềm ngày càng trở nên phức tạp cả về quy mô, phạm vi ứng dụng và việc thay đổi nội dung.Vì thế vấn đề đặt ra là làm giảm độ phức tạp của nó. Hiện nay, có 2 cách tiếp cận là tiếp cận hướng chức năng(truyền thông) và tiếp cận hướng đối tượng. Phương pháp phát triển phần mềm hướng đối tượng tuy là một phương pháp mới trong những năm gần đây nhưng đã chứng tỏ được ưu thế khi lập trình được các hệ thống phức tạp, đem lại những thành quả to lớn. Phát triển phần mềm hướng đối tượng mang lại một phần mềm thương mại có chất lượng caovới độ tin cậy cao, dễ mở rộng và dễ sử dụng lại, chạy trơn tru, phù hợp với yêu cầu của người dùng và đặc biệt là khả năng phát triển của nó. Chính vì những ưu điểm và lợi ích của phương pháp thiết kế hướng đối tượng, nên em chọn đề tài “Xây dựng phần mềm quản lý tiền lương dựa trên phương pháp lập trình hướng đối tượng”. Do kiến thức và trình độ hiểu biết còn hạn chế nên không tránh khỏi những thiếu sót trong quá trình làm bài. Vì vậy, rất mong nhận được sự giúp đỡ của giáo viên hướng dẫn và đánh giá nhận xét của ban giám khảo. Em xin chân thành cảm ơn 1.2. Mục tiêu của đề tài - Tìm hiểu về phương pháp lập trình hướng đối tượng. - Xây dựng được một phần mềm quản lý lương với đầy đủ các chức năng. 1.3. Đối tượng và phạm vi nghiên cứu - Đối tượng nghiên cứu: nghiên cứu tìm hiểu về phương pháp lập trình hướng đối tượng với UML. - Phạm vi nghiên cứu: Sử dụng UML để phân tích thiết kế, ứng dụng ngôn ngữ lập trình C để viết chương trình. Nguyễn Thị Thu Thương - CT13CTT02 Trang2 1.4. Phương pháp nghiên cứu -Sử dụng công cụ rational rose và visual studio 2010 để viết chương trình demo. 1.5. Lịch sử nghiên cứu Hiện nay, phương pháp phân tích thiết kế hướng đối tượnglà một phương pháp được sử dụng rộng rãi trong phát triển phần mềm. Với đề tài này thì em có tham khảo và nghiên cứu qua các bài như: - Đoàn Văn Ban, Phân tích thiết kế hướng đối tượng bằ ng UML, Giáo trình cao học (Trường ĐH Huế, Trường ĐH Đà Nẵng) , 2004. - Đặng Văn Đức, Phân tích thiết kế hướng đối tượng bằng UML (Thự c hành với Rational Rose), NXB Giáo dục, Hà Nội 2002. 1.6. Đóng góp của đề tài Xây dựng được mô hình cơ bản việc quản lý tiền lương tại cơ quan UBND xã Tam Thăng. 1.7. Cấu trúc đề tài Ngoài phần mở đầu, kết luận và kiến nghị, tài liệu tham khảo thì nội dung đề tài gồm có 3 chương: -Chương 1: Tổng quan về lý thuyết thiết kế hướng đối tượng. -Chương 2: Phân tích và thiết kế hệ thống. -Chương 3: Xây dựng cơ sở dữ liệu và thiết kế demo chương trình. Nguyễn Thị Thu Thương - CT13CTT02 Trang3 PHẦN 2: NỘI DUNG NGHIÊN CỨU CHƯƠNG 1: TỔNG QUAN VỀ LÝ THUYẾT THIẾT KẾ HƯỚNG ĐỐI TƯỢNG 1.1. Tìm hiểu về phương pháp phân tích thiết kế hướng đối tượng 1.1.1. Ý tưởng Ý tưởng cơ bản của việc tiếp cận hướng đối tượng là phát triển một hệ thống bao gồm các đối tượng độc lập tương đối với nhau. Mỗi đối tượng bao hàm trong nó cả dữ liệu và các xử lý tiến hành trên các dữ liệu này được gọi là bao gói thông tin. Ví dụ khi đã xây dựng một số đối tượng căn bản trong thế giới máy tính thì ta có thể lắp chúng lại với nhau để tạo ra ứng dụng của mình. 1.1.2. Cách tiếp cận hướng đối tượng Đểthựchiệnmột dự án phát triển phần mềm thì vấn đề quan trọng đầu tiên chắc sẽ là phải chọn cho được một cách thực hiện thích hợp dựa trên những yếu tố nêu trên. Có 2 cách tiếp cận cơ bản để phát triển phần mềm: cách tiếp cận hướng chức năng và cách tiếp cận hướng đối tượng. 1.1.2.1. Cách tiếp cận hướng chức năng Đây là lối tiếp cận truyền thống của ngành công nghệ phần mềm. Theo lối tiếp cận này, chúng ta quan tâm chủ yếu tới những thông tin mà hệ thống sẽ giữ gìn. Chúng ta hỏi người dùng xem họ sẽ cần những thông tin nào, rồi chúng ta thiết kế ngân hàng dữ liệu để chứa những thông tin đó, cung cấp Forms để nhập thông tin và in báo cáo để trình bày các thông tin. Nói một cách khác, chúng ta tập trung vào thông tin và không mấy để ý đến những gì có thể xảy ra với những hệ thống đó và cách hoạt động (ứng xử) của hệ thống là ra sao. Đây là lối tiệm cận xoay quanh dữ liệu và đã được áp dụng để tạo nên hàng ngàn hệ thống trong suốt nhiều năm trời. Lối tiếp cận xoay quanh dữ liệu là phương pháp tốt cho việc thiết kế ngân hàng dữ liệu và nắm bắt thông tin, nhưng nếu áp dụng cho việc thiết kế ứng dụng lại có thể khiến phát sinh nhiều khó khăn. Một trong những thách thức lớn là yêu cầu đối với các hệ thống thường xuyên thay đổi. Một hệ thống xoay quanh dữ liệu có thể dể dàng xử lý việc thay đổi ngân hàng dữ liệu, nhưng lại khó thực thi những thay đổi trong nguyên tắc nghiệp vụ hay cách hoạt động của hệ thống. Nguyễn Thị Thu Thương - CT13CTT02 Trang4 Phương pháp hướng đối tượng đã được phát triển để trả lời cho vấn đề đó. Với lối tiếp cận hướng đối tượng, chúng ta tập trung vào cả haimặt của vấn đề: thông tin vàcách hoạt động. 1.1.2.2. Cách tiếp cận hướng đối tượng Hướngđối tượng là thuật ngữ thông dụng hiện thời của ngành công nghiệp phần mềm. Các công ty đang nhanh chóng tìm cách áp dụng và tích hợp công nghệ mới này vào các ứng dụng của họ. Thật sự là đa phần các ứng dụng hiện thời đều mang tính hướng đối tượng. Nhưng hướng đối tượng có nghĩa là gì? Lối tiếp cận hướng đối tượng là một lối tư duy về vấn đề theo lối ánh xạ các thành phần trong bài toán vào các đối tượng ngoài đời thực. Với lối tiếp cận này, chúng ta chia ứng dụng thành các thành phần nhỏ, gọi là các đối tượng, chúng tương đối độc lập với nhau. Sau đó ta có thể xây dựng ứng dụng bằng cách chắp các đối tượng đó lại với nhau. Hãy nghĩ đến trò chơi xây lâu đài bằng các mẫu gỗ. Bước đầu tiên là tạo hay mua một vài loại mẫu gỗ căn bản, từ đó tạo nên các khối xây dựng căn bản của mình. Một khi đã có các khối xây dựng đó, bạn có thể chắp ráp chúng lại với nhau để tạo lâu đài. Tương tự như vậy một khi đã xây dựng một số đối tượng căn bản trong thế giới máy tính, bạn có thể chắp chúng lại với nhau để tạo ứng dụng của mình. Xin lấy một ví dụ đơn giản: vấn đề rút tiền mặt tại nhà băng. Các “mẫu gỗ“ thành phần ở đây sẽ là ánh xạ của các đối tượng ngoài đời thực như tài khoản, nhân viên, khách hàng, …Và ứng dụng sẽ được sẽ được nhận diện cũng như giải đáp xoay quanh các đối tượng đó. 1.1.3. Ưu điểm chính của mô hình hướng đối tượng Đối tượng là cơ sở để kết hợp các đơn thể có thể sử dụng lại thành hệ thống lớn hơn, tạo ra sản phẩm có chất lượng cao nhờ tương tác thông qua việc nhận và gửi các thông báo. Qui ước truyền thông điệp giữa các đối tượng đảm bảo cho việc mô tả các giao diện giữa các đối tượng thành phần bên trong hệ thống và những hệ thống bên ngoài trở nên dễ dàng hơn. Điều đó giúp cho việc phân chia những dự án lớn, phức tạp để phân tích, thiết kế theo cách chia nhỏ bài toán thành các lớp đối tượng hoàn toàn tương ứng với quan điểm hướng tới lời giải phù hợp với thế giới thực một cách tự nhiên. Nguyễn Thị Thu Thương - CT13CTT02 Trang5 Nguyên lý bao gói, che dấu thông tin hỗ trợ cho việc xây dựng những hệ thống thông tin an toàn,việc sửa đổi một đối tượng không gây ảnh hưởng lan truyền sang đối tượng khác. Việc phân tích và thiết kế theo cách phân bài toán thành các đối tượng là hướng tới lời giải của thế giới thực. Các đối tượng có thể sử dụng lại được do tính kế thừa của đối tượng cho phép xác định các modul và sử dụng ngay sau khi chúng chưa thực hiện đầy đủ các chức năng và sau đó mở rộng các đơn thể đó mà không ảnh hưởng tới các đơn thể đã có. Xây dựng hệ thống thành các thành phần khác nhau. Mỗi thành phần được xây dựng độc lập và sau đó ghép chúng lại với nhau đảm bảo có được đầy đủ các thông tin giao dịch. Việc phát triển và bảo trì hệ thống đơn giản hơn rất nhiều do có sự phân hoạch rõ ràng, là kết quả của sự bao gói thông tin và sự kết hợp giữa các đối tượng thông qua giao diện, việc sử dụng lại các thành phần đảm bảo độ tin cậy cao của hệ thống. Cho phép áp dụng các phương pháp phát triển, thiết kế và cài đặt trong quá trình phát triển phần mềm trong một giai đoạn ngắn. Quá trình phát triển phần mềm đồng thời là quá trình cộng tác của người dùng khách hàng, nhà phân tích, nhà thiết kế, nhà phát triển, chuyên gia lĩnh vực, chuyên gia kỹ thuật,... nên lối tiếp cận này khiến cho việc giao tiếp giữa họ với nhau được dễ dàng hơn. Một trong những ưu điểm quan trọng bậc nhất của phương pháp phân tích và thiết kế hướng đối tượng là tính tái sử dụng: bạn có thể tạo các thành phần( đối tượng) một lần và dùng chúng nhiều lần sau đó, nên khả năng tái sử dụng có tác dụng giảm thiểu lỗi và các khó khăn trong việc bảo trì, giúp tăng tốc độ thiết kế và phát triển phần mềm. Xóa bỏ được hố ngăn cách giữa các pha phân tích, thiết kế và cài đặt trong quá trình xây dựng phần mềm. Phương pháp hướng đối tượng giúp chúng ta xử lý các vấn đề phức tạp trong phát triển phần mềm và tạo ra các thế hệ phần mềm có quy mô lớn, có khả năng thích ứng và bền vững. Nguyễn Thị Thu Thương - CT13CTT02 Trang6 1.1.4. Các giai đoạn của chu trình phát triển phần mềm hướng đối tượng 1.1.4.1. Phân tích hướng đối tượng(Object Oriented Analynis – OOA) Là giai đoạn phát triển của một mô hình chính xác và xúc tích của vấn đề, có thành phần là các đối tượng khái niệm đời thực, dễ hiểu đối với người sử dụng. 1.1.4.2. Thiết kế hướng đối tượng(Object Oriented Design – OOD) Là giai đoạn tổ chức chương trình thành các tập đối tượng cộng tác với nhau, mỗi đối tượng trong đó là một lớp. Các lớp là thành viên tạo thành một cây cấu trúc với mối quan hệ thừa kế hay tương tác bằng thông báo. 1.1.4.3. Lập trình hướng đối tượng(Object Oriented Programming – OOP) Giai đoạn xây dựng phần mềm có thể được thực hiện kỹ thuật lập trình hướng đối tượng. Đó là phương pháp thực hiện việc chuyển các thiết kế hướng đối tượng thành chương trình bằng việc sử dụng ngôn ngữ lập trình có hỗ trợ các tính năng có thể chạy được, nó chỉ được đưa vào sử dụng sau khi đã trải qua nhiều vòng quay của nhiều bước thử nghiệm khác nhau. 1.1.5. Những vấn đề đặt ra trong phân tích thiết kế hướng đối tượng Đặc điểm của phân tích và thiết kế hướng đối tượng là nhìn nhận hệ thống như một tập các đối tượng tương tác với nhau để tạo ra một hành động cho một kết quả ở mức cao hơn. Để thực hiện được điều này, người ta phải sử dụng hệ thống mô hình các đối tượng với các đặc trưng cơ bản sau: - Tính trừu tượng hóa cao - Tính bao gói thông tin - Tính modul hóa - Tính kế thừa Ngày nay, UML là một công cụ được thiết kế có tất cả những tính chất và điều kiện giúp chúng ta xây dựng được các mô hình đối tượng có được bốn đặc trưng trên. Quá trình phát triển gồm nhiều bước lặp, mà mỗi bước lặp bao gồm: Xác định yêu cầu của hệ thống, phân tích, thiết kế, triển khai và kiểm thử. Nguyễn Thị Thu Thương - CT13CTT02 Trang7 1.2. Phân tích thiết kế hướng đối tượng với UML Phân tích thiết kế một hệ thống theo phương pháp hướng đối tượng sử dụng công cụ UML bao gồm các giai đoạn sau: 1.2.1. Lập mô hình nghiệp vụ Để có thể nắm bắt được yêu cầu hệ thống, trước hết ta phải hiểu và nắm được hệ thống nghiệp vụ. Việc mô tả các yêu cầu của hệ thống nghiệp vụ đủ tốt là rất cần thiết, để ta hiểu đúng và đầy đủ về hệ thống mà ta cần tin học hóa về mặt nghiệp vụ. Muốn vậy, trước hết phải xác định chức năng, phạm vi hệ thống thực hiện và chỉ ra mối quan hệ của chúng với môi trường. Tiếp theo tìm các ca sử dụng nghiệp vụ từ các chức năng của hệ thống mà qua đó con người và các hệ thống khách sử dụng chúng. 1.2.2. Xác định yêu cầu của hệ thống Nhiệm vụ chính trong xác định yêu cầu là phát triển một mô hình của hệ thống cần xây dựng bằng cách dùng các ca sử dụng. Để mô tả các yêu cầu nghiệp vụ dưới góc độ phát triển phần mềm cần tìm các tác nhân và các ca sử dụng để chuẩn bị một phiên bản đầu tiên của mô hình ca sử dụng. 1.2.3. Phân tích Nhiệm vụ chính là cần phân tích ca sử dụng bằng cách tìm ra cách tổ chức các thành phần bên trong của hệ thống để thực hiện mỗi ca sử dụng. Bao gồm các hoạt động: - Phân tích kiến trúc hệ thống - Phân tích một ca sử dụng - Phân tích một lớp - Phân tích một gói 1.2.3.1. Phân tích kiến trúc Mục đích của phân tích kiến trúc là phác họa những nét lớn của mô hình phân tích thông qua việc xác định các gói phân tích, các lớp phân tích hiển nhiên, và các yêu cầu chung. a. Xác định các gói phân tích Để xác định các gói phân tích, trước hết bố trí phần lớn các ca sử dụng vào các gói riêng, sau đó tiến hành thực thi chức năng tương ứng bên trong gói đó. Nguyễn Thị Thu Thương - CT13CTT02 Trang8 Khi xác định các gói phân tích có thể dựa trên các tiêu chí sau: - Các ca sử dụng cần có để hỗ trợ một quá trình nghiệp vụ cụ thể. - Các ca sử dụng cần có để hỗ trợ một tác nhân cụ thể của hệ thống. - Các ca sử dụng có quan hệ với nhau bằng các quan hệ tổng quát hóa, mở rộng và bao gồm. b. Xử lý phần chung của các gói phân tích Trong nhiều trường hợp ta có thể tìm thấy các thành phần chung trong các gói phân tích. Khi đó, đặt phần chung này vào một gói riêng nằm ngoài các gói chứa nó, sau đó để các gói khác có liên quan phụ thuộc vào gói mới chứa lớp chung này. Những lớp được chia sẽ có các phần chung như vậy thường là các lớp thực thể. Chúng có thể được tìm thấy bằng cách lần vết tới các lớp thực thể miền hoặc nghiệp vụ. c. Xác định các gói dịch vụ Gói dịch vụ dùng để mô tả các gói phân tích được sử dụng ở một mức thấp hơn trong sơ đồ phân cấp cấu trúc các gói của hệ thống. Một gói dịch vụ có thể có các tính chất sau: - Chứa một tập hợp các lớp có liên quan với nhau về mặt chức năng - Không thể chia nhỏ hơn - Có thể tham gia vào một hay nhiều thực thi ca sử dụng - Phụ thuộc rất ít vào các gói dịch vụ khác - Các chức năng nó cung cấp có thể được quản lý như một đơn vị riêng biệt. d. Xác định các mối quan hệ phụ thuộc giữa các gói Mục tiêu là tìm ra các gói phân tích tương đối độc lập với các gói khác, tức là chúng được ghép nối lỏng lẻo với nhau nhưng có tính kết dính cao bên trong. e. Xác định các lớp thực thể hiển nhiên Ta có thể xác định các lớp thực thể quan trọng nhất dựa trên các lớp miền hoặc các thực thể nghiệp vụ đã được xác định trong quá trình nắm bắt các yêu cầu. Mỗi lớp thực thể này có thể đưa vào một gói riêng. f. Xác định các yêu cầu đặc biệt chung Một yêu cầu đặc biệt là một yêu cầu nảy sinh trong quá trình phân tích và việc nắm bắt nó là quan trọng. Các yêu cầu kiểu này có thể là: Tính lâu bền (cần lưu trữ), sự phân bố và tính tương tranh, các điểm đặc trưng về an toàn, đúng sai về lỗi, quản lý giao dịch,... Nguyễn Thị Thu Thương - CT13CTT02 Trang9 1.2.3.2. Phân tích một ca sử dụng Việc phân tích một ca sử dụng bao gồm: a. Xác định các lớp phân tích Lớp phân tích thể hiện một sự trừu tượng của một hoặc nhiều lớp vàhoặc hệ thống con. Có ba kiểu lớp phân tích cơ bản sau: lớp biên, lớp điều khiể n và lớp thực tế. Hình 1.1. Các lớp phân tích. Lớp biên (boundary class): được sử dụng để mô tả hóa sự tương tác giữa hệ thống và các tác nhân của nó. Lớp thực thể (entity class): được dùng để mô hình hóa các thông tin tồn tại lâu dài và có thể được lưu trữ. Nó thường thể hiện các cấu trúc dữ liệu logic và góp phần làm rõ về các thông tin mà hệ thống phải thao tác trên chúng. Lớp điều khiển (control class): thể hiện sự phối hợp, sắp xếp trình tự, các giao dịch, sự điều khiển của các đối tượng và thường được sử dụng để gói lại các điều khiển liên quan đến một ca sử dụng cụ thể. Các khía cạnh động của hệ thống được mô hình hóa qua các lớp điều khiển. b. Mô tả các tương tác giữa các đối tượng phân tích Cách thức mà các đối tượng phân tích tương tác với nhau là hành vi của hệ thống. Hành vi của hệ thống là một bản mô tả những việc hệ thống làm. Mô tả hành vi của hệ thống được tiến hành bằng cách sử dụng các biểu đồ cộng tác (hay tuần tự), chúng chứa các thể hiện của tác nhân tham gia, các đối tượng phân tích, các mối liên kết giữa chúng. c. Mô tả luồng các sự kiện phân tích Bên cạnh các biểu đồ, đặc biệt là biểu đồ cộng tác, ta cần bổ sung thêm các mô tả bằng văn bản để các biểu đồ trở nên dễ hiểu và dễ dùng hơn. d. Nắm bắt các yêu cầu đặc biệt Ta cần nắm bắt các yêu cầu (phi chức năng) cần cho việc thực thi một ca sử dụng mà đã được xác định trong phân tích nhưng phải được xử lý trong thiết kế và thực thi. Nguyễn Thị Thu Thương - CT13CTT02 Trang10 1.2.3.3. Phân tích một lớp a. xác định trách nhiệm của lớp Xác định và duy trì các trách nhiệm của một lớp phân tích dựa trên vai trò của nó trong các thực thi ca sử dụng. b. Xác định các thuộc tính Một thuộc tính đặc tả một tính chất của một lớp phân tích và nó thường được gợi ý và đòi hỏi các trách nhiệm của lớp. Tên của thuộc tính phải là một danh từ. c. Xác định các liên kết và các kết hợp Số lượng các mối quan hệ giữa các lớp phải được tối thiểu hóa. Đó là các mối quan hệ cần phải tồn tại để đáp ứng lại các đòi hỏi từ các thực thi ca sử dụng khác nhau. Số lượng các đối tượng của hai lớp tham gia vào liên kết cũng rất quan trọng. Ngoài ra, hai lớp cũng có thể có nhiều mối liên kết. Ngược lại, một lớp có thể liên kết với nhiều lớp khác nhau. d. Xác định các lớp tổng quát hóa Các tổng quát hóa được dùng trong quá trình phân tích để biểu diễn hành vi chia sẽ và hành vi chung của các lớp phân tích khác nhau. Các lớp tổng quát hóa phải được giữ ở một mức cao và có tính khái niệm, chúng làm cho mô hình phân tích dễ hiểu hơn. e. Nắm bắt các yêu cầu đặc biệt của lớp phân tích Khi nắm bắt các yêu cầu này, nên tham khảo bất kỳ các yêu cầu đặc biệt chung nào đã được nhà kiến trúc xác định, nếu có thể. 1.2.3.4. Phân tích một gói Mục đích của việc phân tích một gói nhằm: - Đảm bảo gói phân tích càng độc lập đối với các gói khác nếu có thể. - Đảm bảo gói phân tích hoàn thành mục đích của nó là thực thi những lớp miền hoặc các ca sử dụng nào đó. - Mô tả các mối quan hệ phụ thuộc sao cho có thể ước tính được hiệu ứng của các thay đổi sau này. Một số nguyên tắc chung khi phân tích một gói: - Xác định và duy trì các mối quan hệ phụ thuộc giữa hai gói có chứa các lớp liên kết với nhau. Nguyễn Thị Thu Thương - CT13CTT02 Trang11 - Mỗi gói chứa các lớp đúng. - Hạn chế tối đa các mối quan hệ phụ thuộc tới các gói khác bằng cách bố trí các lớp chứa trong một gói sang gói khác nếu nó quá phụ thuộc vào các gói khác. 1.2.4. Thiết kế Đầu vào của thiết kế là mô hình phân tích. Khi thiết kế ta sẽ cố gắng bào tổn càng nhiều càng tốt cấu trúc của hệ thống được định hình từ mô hình phân tích. Thiết kế bao gồm các hoạt động sau: - Thiết kế kiến trúc - Thiết kế một ca sử dụng - Thiết kế một lớp - Thiết kế một hệ thống con. Mô hình thiết kế là một mô hình đối tượng mô tả sự thực thi các ca sử dụng 1.2.4.1. Thiết kế kiến trúc Mục đích của thiết kế kiến trúc là phát họa các mô hình thiết kế và sự bố trí của chúng bằng cách xác định: - Các nút và các cấu hình mạng của hệ thống - Các hệ thống con và các giao diện của chúng - Các lớp thiết kế quan trọng về mặt kiến trúc - Các cơ chế thiết kế chung để xử lý các yêu cầu chung. 1.2.4.2. Thiết kếmột ca sử dụng a. Xác định các lớp thiết kế tham gia một ca sử dụng Xác định các lớp thiết kế và các hệ thống con mà các thể hiện của chúng là cần thiết để thực hiện các luồng sự kiện của ca sử dụng đó. b. Mô tả các tương tác giữa các đối tượng thiết kế Khi chúng ta đã có một phát thảo về các lớp thiết kế cần thiết để thực thi ca sử dụng, ta cần phải mô tả cách thức mà các...
TỔNG QUAN VỀ LÝ THUYẾT THIẾT KẾ HƯỚNG ĐỐI TƯỢNG
Tìm hiểu về phương pháp phân tích thiết kế hướng đối tượng
1.1.1 Ý tưởng Ý tưởng cơ bản của việc tiếp cận hướng đối tượng là phát triển một hệ thống bao gồm các đối tượng độc lập tương đối với nhau Mỗi đối tượng bao hàm trong nó cả dữ liệu và các xử lý tiến hành trên các dữ liệu này được gọi là bao gói thông tin Ví dụ khi đã xây dựng một số đối tượng căn bản trong thế giới máy tính thì ta có thể lắp chúng lại với nhau để tạo ra ứng dụng của mình
1.1.2 Cách tiếp cận hướng đối tượng Đểthựchiệnmột dự án phát triển phần mềm thì vấn đề quan trọng đầu tiên chắc sẽ là phải chọn cho được một cách thực hiện thích hợp dựa trên những yếu tố nêu trên Có 2 cách tiếp cận cơ bản để phát triển phần mềm: cách tiếp cận hướng chức năng và cách tiếp cận hướng đối tượng
1.1.2.1 Cách tiếp cận hướng chức năng Đây là lối tiếp cận truyền thống của ngành công nghệ phần mềm Theo lối tiếp cận này, chúng ta quan tâm chủ yếu tới những thông tin mà hệ thống sẽ giữ gìn Chúng ta hỏi người dùng xem họ sẽ cần những thông tin nào, rồi chúng ta thiết kế ngân hàng dữ liệu để chứa những thông tin đó, cung cấp Forms để nhập thông tin và in báo cáo để trình bày các thông tin Nói một cách khác, chúng ta tập trung vào thông tin và không mấy để ý đến những gì có thể xảy ra với những hệ thống đó và cách hoạt động (ứng xử) của hệ thống là ra sao Đây là lối tiệm cận xoay quanh dữ liệu và đã được áp dụng để tạo nên hàng ngàn hệ thống trong suốt nhiều năm trời
Lối tiếp cận xoay quanh dữ liệu là phương pháp tốt cho việc thiết kế ngân hàng dữ liệu và nắm bắt thông tin, nhưng nếu áp dụng cho việc thiết kế ứng dụng lại có thể khiến phát sinh nhiều khó khăn Một trong những thách thức lớn là yêu cầu đối với các hệ thống thường xuyên thay đổi Một hệ thống xoay quanh dữ liệu có thể dể dàng xử lý việc thay đổi ngân hàng dữ liệu, nhưng lại khó thực thi những thay đổi trong nguyên tắc nghiệp vụ hay cách hoạt động của hệ thống
Phương pháp hướng đối tượng đã được phát triển để trả lời cho vấn đề đó Với lối tiếp cận hướng đối tượng, chúng ta tập trung vào cả haimặt của vấn đề: thông tin vàcách hoạt động
1.1.2.2 Cách tiếp cận hướng đối tượng
Hướngđối tượng là thuật ngữ thông dụng hiện thời của ngành công nghiệp phần mềm Các công ty đang nhanh chóng tìm cách áp dụng và tích hợp công nghệ mới này vào các ứng dụng của họ Thật sự là đa phần các ứng dụng hiện thời đều mang tính hướng đối tượng Nhưng hướng đối tượng có nghĩa là gì? Lối tiếp cận hướng đối tượng là một lối tư duy về vấn đề theo lối ánh xạ các thành phần trong bài toán vào các đối tượng ngoài đời thực Với lối tiếp cận này, chúng ta chia ứng dụng thành các thành phần nhỏ, gọi là các đối tượng, chúng tương đối độc lập với nhau Sau đó ta có thể xây dựng ứng dụng bằng cách chắp các đối tượng đó lại với nhau Hãy nghĩ đến trò chơi xây lâu đài bằng các mẫu gỗ Bước đầu tiên là tạo hay mua một vài loại mẫu gỗ căn bản, từ đó tạo nên các khối xây dựng căn bản của mình Một khi đã có các khối xây dựng đó, bạn có thể chắp ráp chúng lại với nhau để tạo lâu đài Tương tự như vậy một khi đã xây dựng một số đối tượng căn bản trong thế giới máy tính, bạn có thể chắp chúng lại với nhau để tạo ứng dụng của mình
Xin lấy một ví dụ đơn giản: vấn đề rút tiền mặt tại nhà băng Các “mẫu gỗ“ thành phần ở đây sẽ là ánh xạ của các đối tượng ngoài đời thực như tài khoản, nhân viên, khách hàng, …Và ứng dụng sẽ được sẽ được nhận diện cũng như giải đáp xoay quanh các đối tượng đó
1.1.3 Ưu điểm chính của mô hình hướng đối tượng
Đối tượng là cơ sở để kết hợp các đơn thể có thể sử dụng lại thành hệ thống lớn hơn, tạo ra sản phẩm có chất lượng cao nhờ tương tác thông qua việc nhận và gửi các thông báo
Qui ước truyền thông điệp giữa các đối tượng đảm bảo cho việc mô tả các giao diện giữa các đối tượng thành phần bên trong hệ thống và những hệ thống bên ngoài trở nên dễ dàng hơn Điều đó giúp cho việc phân chia những dự án lớn, phức tạp để phân tích, thiết kế theo cách chia nhỏ bài toán thành các lớp đối tượng hoàn toàn tương ứng với quan điểm hướng tới lời giải phù hợp với thế giới thực một cách tự nhiên
Nguyên lý bao gói, che dấu thông tin hỗ trợ cho việc xây dựng những hệ thống thông tin an toàn,việc sửa đổi một đối tượng không gây ảnh hưởng lan truyền sang đối tượng khác
Việc phân tích và thiết kế theo cách phân bài toán thành các đối tượng là hướng tới lời giải của thế giới thực
Các đối tượng có thể sử dụng lại được do tính kế thừa của đối tượng cho phép xác định các modul và sử dụng ngay sau khi chúng chưa thực hiện đầy đủ các chức năng và sau đó mở rộng các đơn thể đó mà không ảnh hưởng tới các đơn thể đã có
Xây dựng hệ thống thành các thành phần khác nhau Mỗi thành phần được xây dựng độc lập và sau đó ghép chúng lại với nhau đảm bảo có được đầy đủ các thông tin giao dịch
Việc phát triển và bảo trì hệ thống đơn giản hơn rất nhiều do có sự phân hoạch rõ ràng, là kết quả của sự bao gói thông tin và sự kết hợp giữa các đối tượng thông qua giao diện, việc sử dụng lại các thành phần đảm bảo độ tin cậy cao của hệ thống
Cho phép áp dụng các phương pháp phát triển, thiết kế và cài đặt trong quá trình phát triển phần mềm trong một giai đoạn ngắn
Quá trình phát triển phần mềm đồng thời là quá trình cộng tác của người dùng/ khách hàng, nhà phân tích, nhà thiết kế, nhà phát triển, chuyên gia lĩnh vực, chuyên gia kỹ thuật, nên lối tiếp cận này khiến cho việc giao tiếp giữa họ với nhau được dễ dàng hơn
Một trong những ưu điểm quan trọng bậc nhất của phương pháp phân tích và thiết kế hướng đối tượng là tính tái sử dụng: bạn có thể tạo các thành phần( đối tượng) một lần và dùng chúng nhiều lần sau đó, nên khả năng tái sử dụng có tác dụng giảm thiểu lỗi và các khó khăn trong việc bảo trì, giúp tăng tốc độ thiết kế và phát triển phần mềm
Xóa bỏ được hố ngăn cách giữa các pha phân tích, thiết kế và cài đặt trong quá trình xây dựng phần mềm
Phân tích thiết kế hướng đối tượng với UML
Phân tích thiết kế một hệ thống theo phương pháp hướng đối tượng sử dụng công cụ UML bao gồm các giai đoạn sau:
1.2.1 Lập mô hình nghiệp vụ Để có thể nắm bắt được yêu cầu hệ thống, trước hết ta phải hiểu và nắm được hệ thống nghiệp vụ Việc mô tả các yêu cầu của hệ thống nghiệp vụ đủ tốt là rất cần thiết, để ta hiểu đúng và đầy đủ về hệ thống mà ta cần tin học hóa về mặt nghiệp vụ Muốn vậy, trước hết phải xác định chức năng, phạm vi hệ thống thực hiện và chỉ ra mối quan hệ của chúng với môi trường Tiếp theo tìm các ca sử dụng nghiệp vụ từ các chức năng của hệ thống mà qua đó con người và các hệ thống khách sử dụng chúng
1.2.2 Xác định yêu cầu của hệ thống
Nhiệm vụ chính trong xác định yêu cầu là phát triển một mô hình của hệ thống cần xây dựng bằng cách dùng các ca sử dụng Để mô tả các yêu cầu nghiệp vụ dưới góc độ phát triển phần mềm cần tìm các tác nhân và các ca sử dụng để chuẩn bị một phiên bản đầu tiên của mô hình ca sử dụng
Nhiệm vụ chính là cần phân tích ca sử dụng bằng cách tìm ra cách tổ chức các thành phần bên trong của hệ thống để thực hiện mỗi ca sử dụng Bao gồm các hoạt động:
- Phân tích kiến trúc hệ thống
- Phân tích một ca sử dụng
Mục đích của phân tích kiến trúc là phác họa những nét lớn của mô hình phân tích thông qua việc xác định các gói phân tích, các lớp phân tích hiển nhiên, và các yêu cầu chung a Xác định các gói phân tích Để xác định các gói phân tích, trước hết bố trí phần lớn các ca sử dụng vào các gói riêng, sau đó tiến hành thực thi chức năng tương ứng bên trong gói đó
Khi xác định các gói phân tích có thể dựa trên các tiêu chí sau:
- Các ca sử dụng cần có để hỗ trợ một quá trình nghiệp vụ cụ thể
- Các ca sử dụng cần có để hỗ trợ một tác nhân cụ thể của hệ thống
- Các ca sử dụng có quan hệ với nhau bằng các quan hệ tổng quát hóa, mở rộng và bao gồm b Xử lý phần chung của các gói phân tích
Trong nhiều trường hợp ta có thể tìm thấy các thành phần chung trong các gói phân tích Khi đó, đặt phần chung này vào một gói riêng nằm ngoài các gói chứa nó, sau đó để các gói khác có liên quan phụ thuộc vào gói mới chứa lớp chung này Những lớp được chia sẽ có các phần chung như vậy thường là các lớp thực thể Chúng có thể được tìm thấy bằng cách lần vết tới các lớp thực thể miền hoặc nghiệp vụ c Xác định các gói dịch vụ
Gói dịch vụ dùng để mô tả các gói phân tích được sử dụng ở một mức thấp hơn trong sơ đồ phân cấp cấu trúc các gói của hệ thống Một gói dịch vụ có thể có các tính chất sau:
- Chứa một tập hợp các lớp có liên quan với nhau về mặt chức năng
- Không thể chia nhỏ hơn
- Có thể tham gia vào một hay nhiều thực thi ca sử dụng
- Phụ thuộc rất ít vào các gói dịch vụ khác
- Các chức năng nó cung cấp có thể được quản lý như một đơn vị riêng biệt d Xác định các mối quan hệ phụ thuộc giữa các gói
Mục tiêu là tìm ra các gói phân tích tương đối độc lập với các gói khác, tức là chúng được ghép nối lỏng lẻo với nhau nhưng có tính kết dính cao bên trong e Xác định các lớp thực thể hiển nhiên
Ta có thể xác định các lớp thực thể quan trọng nhất dựa trên các lớp miền hoặc các thực thể nghiệp vụ đã được xác định trong quá trình nắm bắt các yêu cầu Mỗi lớp thực thể này có thể đưa vào một gói riêng f Xác định các yêu cầu đặc biệt chung
Một yêu cầu đặc biệt là một yêu cầu nảy sinh trong quá trình phân tích và việc nắm bắt nó là quan trọng Các yêu cầu kiểu này có thể là: Tính lâu bền (cần lưu trữ), sự phân bố và tính tương tranh, các điểm đặc trưng về an toàn, đúng sai về lỗi, quản lý giao dịch,
1.2.3.2 Phân tích một ca sử dụng
Việc phân tích một ca sử dụng bao gồm: a Xác định các lớp phân tích
Lớp phân tích thể hiện một sự trừu tượng của một hoặc nhiều lớp và/hoặc hệ thống con Có ba kiểu lớp phân tích cơ bản sau: lớp biên, lớp điều khiển và lớp thực tế
Hình 1.1 Các lớp phân tích
Lớp biên (boundary class): được sử dụng để mô tả hóa sự tương tác giữa hệ thống và các tác nhân của nó
Lớp thực thể (entity class): được dùng để mô hình hóa các thông tin tồn tại lâu dài và có thể được lưu trữ Nó thường thể hiện các cấu trúc dữ liệu logic và góp phần làm rõ về các thông tin mà hệ thống phải thao tác trên chúng
Lớp điều khiển (control class): thể hiện sự phối hợp, sắp xếp trình tự, các giao dịch, sự điều khiển của các đối tượng và thường được sử dụng để gói lại các điều khiển liên quan đến một ca sử dụng cụ thể Các khía cạnh động của hệ thống được mô hình hóa qua các lớp điều khiển b Mô tả các tương tác giữa các đối tượng phân tích
Cách thức mà các đối tượng phân tích tương tác với nhau là hành vi của hệ thống Hành vi của hệ thống là một bản mô tả những việc hệ thống làm Mô tả hành vi của hệ thống được tiến hành bằng cách sử dụng các biểu đồ cộng tác (hay tuần tự), chúng chứa các thể hiện của tác nhân tham gia, các đối tượng phân tích, các mối liên kết giữa chúng c Mô tả luồng các sự kiện phân tích
Bên cạnh các biểu đồ, đặc biệt là biểu đồ cộng tác, ta cần bổ sung thêm các mô tả bằng văn bản để các biểu đồ trở nên dễ hiểu và dễ dùng hơn d Nắm bắt các yêu cầu đặc biệt
Giới thiệu công cụ Rational Rose
Rational Rose là một bộ công cụ sử dụng phát triển các hệ phần mềm hướng đối tượng theo ngôn ngữ mô hình hóa UML, với chức năng của bộ công cụ trực quan, Rational Rose cho phép chúng ta tạo, quan sát, sửa đổi và quản lý các biểu đồ Tập ký hiệu Rational Rose cung cấp thống nhất với các ký hiệu trong UML
Rational Rose giúp chúng ta mô hình hóa hệ thống khi viết mã chương trình, đảm bảo tính đúng đắn, hợp lý của kiến trúc hệ thống từ khi khởi đầu dự án
Ngoài ra Rational Rose còn cung cấp chức năng hỗ trợ quản lý dự án phát triển phần mềm, cung cấp các thư viện hỗ trợ sinh khung mã cho hệ thống theo một ngôn ngữ lập trình nào đó.
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Khảo sát
2.1.1 Định nghĩa bài toán Ủy Ban Nhân Dân xã Tam Thăng dự định đặt xây dựng một phần mềm hỗ trợ công tác quản lý tiền lương cho cán bộ nhân viên Người quản lý nhân sự - tiền lương cho Ủy Ban (Kế toán) yêu cầu phần mềm có khả năng cập nhật danh sách cán bộ nhân viên làm việc tại xã, phòng ban, chức vụ của từng cán bộ để tiện theo dõi và trả lương cho nhân viên
Nhập danh sách cán bộ mới khi có quyết định làm việc tại Ủy Ban, thay đổi thông tin, xóa thông tin, lưu vào cơ sở dữ liệu, Đến cuối tháng, nhân viên kế toán sẽ làm nhiệm vụ tính lương cho nhân viên Trong khu vực Ủy Ban sẽ sẽ được xây dựng các thiết bị phần cứng ( máy tính) và phần mềm để chạy hệ thống Trong trường hợp có thông tin thay đổi về chức vụ, tiền lương, phụ cấp, phòng ban thì nhân viên kế toán sẽ cập nhập lại thông tin cho chính xác
2.1.2 Các chức năng cơ bản của hệ thống
- Chức năng này sẽ được nhân viên phòng nhân sự theo dõi quá trình làm việc và tính lương cho từng cán bộ công nhân viên trong từng tháng như: tính lương theo chế độ làm việc: Biên chế, hợp đồng hay thử việc, bảng lương của cán bộ công chức làm việc ở UBND xã
- Theo dõi việc làm của từng cán bộ, các chế độ, phụ cấp khác nhau
- Cập nhật xem có nhân viên nào được khen thưởng hay bị kỷ luật
Xác định các chức năng của bài toán:
R1: Đă ng nh ậ p h ệ th ố ng
R1.1 Yêu cầu đăng nhập hệ thống
R1.2 Nhập thông tin đăng nhập
R1.3 Kiểm tra thông tin đăng nhập
R2.1 Mở cửa sổ chương trình cập nhật hồ sơ nhân viên
R2.2 Nhập thông tin nhân viên
R2.2.1 Yêu cầu nhập thông tin nhân viên
R2.2.2 Nhập thông tin nhân viên vào
R2.3 Chỉnh sửa thông tin nhân viên
R2.3.1 Chọn thông tin nhân viên cần sửa
R2.3.2 Chỉnh sửa thông tin nhân viên
R2.4 Thêm thông tin nhân viên
R2.4.1 Yêu cầu thêm thông tin nhân viên
R2.4.2 Thêm thông tin nhân viên vào
R2.5 Xóa thông tin nhân viên
R2.5.1 Yêu cầu xóa thông tin nhân viên
R2.5.2 Chọn thông tin nhân viên cần xóa
R2.5.3 Xác định xóa thông tin nhân viên
R3.1 Mở cửa sổ chương trình quản lý lương
R3.2 Hiển thị thông tin lương nhân viên
R3.3 Quản lý chế độ, tiền thưởng, Tiền phụ cấp, của từng nhân viên
R4.1 Mở cửa sổ chương trình quản lý phòng ban
R4.2 Cập nhật thông tin về phòng ban của cán bộ
R4.3 Quản lý thông tin của các cán bộ làm việc trong các phòng ban khác nhau
R5.1 Mở cửa sổ chương trình quản lý chức vụ
R5.2 Hiển thị thông tin chức vụ của từng cán bộ nhân viên
R5.3 Cập nhật thay đổi thông tin về chức vụ của từng cán bộ
R6.1 Chấm công cho nhân viên
R6.4 Chi trả lương theo tháng
R7.1 Thống kê bảng lương theo tháng
R7.2 Thống kê tổng tiền lương của cán bộ của từng tháng
R7.3 In mẫu báo cáo thống kê
2.1.3 Yêu cầu phi chức năng của hệ thống
Về mặt giao diện của chương trình: cần được thiết kế sáng sủa, đẹp đẽ, dễ nhìn, dễ thao tác, thực hiện
Cùng với đó nó còn có khả năng trợ giúp cho người dùng Một mặt nó không chỉ dễ thao tác với với những người thành thạo về tin học, mặt khác nó còn phải dễ sử dụng với cả những người làm công tác văn phòng
Biểu đồ Use Case
Gồm các Use Case sau:
2 Cập nhật thông tin hồ hơ nhân viên
4 Chỉnh sửa thông tin nhân viên
- Tên Use Case: Đăng nhập
- Tác nhân: Người quản lý
- Mô tả: Mở cửa sổ chương trình đăng nhập, sau đó người dùng nhập tên và mật khẩu Nhấn ok, nếu đúng thì cửa sổ chương trình sẽ ở để tiếp tục, sai thì yêu cầu nhập lại
Cập nhật thông tin hồ sơ nhân viên:
- Tên Use Case: Cập nhật thông tin hồ sơ nhân viên
- Tác nhân: Người quản lý
- Mô tả: Khi có quyết định cho phép cán bộ nhân viên được công tác và làm việc tại cơ quan thì người quản lý có nhiệm vụ bổ sung nhân viên đó và lưu trữ vào hồ sơ nhân viên để theo dõi chấm công và trả lương
Thêm thông tin nhân viên
- Tên Use Case: Thêm thông tin nhân viên
- Tác nhân: Người quản lý
- Mô tả: Khi có quyết định có thêm cán bộ mới làm việc tại Ủy Ban, thì người quản lý sẽ mở cửa sổ chương trình chức năng, nhập đầy đủ thông tin cán bộ đó và lưu vào CSDL
Chỉnh sửa thông tin nhân viên – tiền lương
- Tên Use Case: Chỉnh sửa thông tin nhân viên
- Tác nhân: Người quản lý
- Mô tả: Khi có quyết định thay đổi về mức lương hay chức vụ, phụ cấp thì người quản lý sẽ mở cửa sổ chương trình chức năng, thay đổi chỉnh sửa theo đúng yêu cầu của cấp trên và lưu thay đổi vào CSDL
Xóa thông tin nhân viên
- Tên Use Case: Xóa thông tin nhân viên
- Tác nhân: Người quản lý
- Mô tả: Khi có quyết định nghĩ việc hay thuyên chuyển công tác của một cán bộ nào đó( nhân viên không còn làm việc cho UBND), thì người quản lý sẽ mở chương trình quản lý nhân sự - tiền lương, chọn hiển thị danh sách cán bộ nhân viên, rồi chọn nhân viên cần xóa Hệ thống sẽ xóa thông tin nhân viên được chọn và lưu lại thay đổi vào CSDL
- Tên Use Case: Quản lý tiền lương
- Tác nhân: Người quản lý
- Mô tả: Theo yêu cầu, đến cuối mỗi tháng người quản lý sẽ chấm công và tính lương cho cán bộ, sau đó được in ra thành một bảng lương Lương cán bộ được tính bằng tiền lương cơ bản + tiền phụ cấp + tiền thưởng Người quản lý chịu trách nhiệm kê khai rõ nội dung này trên bảng lương để tiện theo dõi
- Tên Use Case: Quản lý phòng ban
- Tác nhân: Người quản lý
- Mô tả: Việc quản lý phòng ban nhằm giúp hệ thống lưu giữ chính xác thông tin về tất cả các cán bộ nhân viên làm việc tại UBND xã, nhằm phục vụ cho việc chi trả lương cho cán bộ một cách chính xác Nếu có thay đổi thông tin về phòng ban thì người quản lý phải nhanh chóng cập nhật hệ thống
- Tên Use Case: Quản lý chức vụ
- Tác nhân: Người quản lý
- Mô tả: Khi một cán bộ nào đó trong UBND xã nhận được quyết định thay đổi chức vụ, thì người quản lý hệ thống phải chỉnh sửa lại nhằm phục vụ cho việc tính lương của nhân viên
- Tên Use Case: Thanh toán lương
- Tác nhân: Người quản lý
- Mô tả: Đến cuối mỗi tháng, người quản lý nhân sự - tiền lương sẽ làm nhiệm vụ tổng hợp việc chấm công tháng này cho cán bộ, in bảng lương chi tiết và chi trả lương cho cán bộ Lưu lại bảng lương vào CSDL
- Tác nhân: Người quản lý
- Mô tả: Khi chủ tịch xã hay cấp trên yêu cầu thống kê tiền lương, người quản lý cần chọn tiêu chí để thống kê như thống kê theo tháng, thống kê theo kỳ, hay theo chức vụ và nhập thông tin vào Hệ thống sẽ thống kê theo tiêu chí đã chọn, hiển thị kết quả và in mẫu báo cáo thống kê
2.2.4 Xây dựng biểu đồ Use Case
Hình 2.1.Mô hình ca sử dụng tổng quát hệ thống “Quản lý tiền lương”
2.2.4.1 Biểu đồ phân rã chức năng “Cập nhật Hồ Sơ Nhân Viên”
Hình 2.2 Mô hình phân rã chức năng “Cập nhật hồ sơ nhân viên”
2.2.4.2 Biểu đồ phân rã chức năng “Quản Lý Lương”
Hình 2.3 Mô hình phân rã chức năng “Quản lý lương”.
Phân tích hệ thống
2.3.1 Phân tích gói ca sử dụng quản lý hồ sơ nhân viên
- Yêu cầu cập nhật thông tin cán bộ nhân viên
- Hệ thống hiển thị danh sách cán bộ đang làm việc tại cơ quan
- Quản lý chọn nhân viên cần nhập thông tin
- Hệ thống hiển thị thông tin nhân viên vừa được chọn
- Quản lý nhập những thông tin nhân viên muốn cập nhật
- Hệ thống ghi nhận và thông báo kết quả
- Không tìm thấy nhân viên trong danh sách
- Thông tin thay đổi không được chấp nhận
- Quay trở về giao diện đăng nhập
- Nếu hệ thống bị lỗi và dừng
+Người quản lý khởi động lại hệ thống
+ Hệ thống trước đó sẽ hủy và về lúc ban đầu
- Nếu nhập sai thông tin, hệ thống sẽ báo lỗi và yêu cầu nhập lại
2.3.1.1 Ca sử dụng “Thêm hồ sơ” a Biểu đồ tuần tự thực thi ca sử dụng
Hình 2.4 Biểu đồ tuần tự thực thi ca sử dụng “Thêm hồ sơ” b Biểu đồ cộng tác thực thi ca sử dụng
Hình 2.5 Biểu đồ cộng tác thực thi ca sử dụng “Thêm hồ sơ”
2.3.1.2 Ca sử dụng “Tìm kiếm hồ sơ” a Biểu đồ tuần tự thực thi ca sử dụng
Hình 2.6 Biểu đồ tuần tự thực thi ca sử dụng “Tìm kiếm hồ sơ” b Biểu đồ cộng tác thực thi ca sử dụng
Hình 2.7 Biểu đồ cộng tác thực thi ca sử dụng “Tìm kiếm hồ sơ”
2.3.1.3 Ca sử dụng “Chỉnh Sửa hồ sơ” a Biểu đồ tuần tự thực thi ca sử dụng
Hình 2.8 Biểu đồ tuần tự thực thi ca sử dụng “Chỉnh sửa hồ sơ” b Biểu đồ cộng tác thực thi ca sử dụng
Hình 2.9 Biểu đồ cộng tác thực thi ca sử dụng “Chỉnh sửa hồ sơ”
2.3.1.4 Ca sử dụng “Xóa hồ sơ” a Biểu đồ tuần tự thực thi ca sử dụng
Hình 2.10 Biểu đồ tuần tự thực thi ca sử dụng “Xóa hồ sơ” b Biểu đồ cộng tác thực thi ca sử dụng
Hình 2.11 Biểu đồ cộng tác thực thi ca sử dụng “Xóa hồ sơ”
2.3.1.5 Ca sử dụng “In hồ sơ” a Biểu đồ tuần tự thực thi ca sử dụng
Hình 2.12 Biểu đồ tuần tự thực thi ca sử dụng “In hồ sơ” b Biểu đồ cộng tác thực thi ca sử dụng
Hình 2.13 Biểu đồ cộng tác thực thi ca sử dụng “In hồ sơ”
2.3.2 Phân tích gói ca sử dụng quản lý lương
- Yêu cầu báo cáo bảng lương chi tiết
- Cập nhật hệ số lương, lương cơ bản, tiền thưởng, phụ cấp
- Hệ thống hiển thị thông tin về mức lương và các khoản lương khác
- Tự động cập nhật thông tin vào danh sách nhân viên trong bảng lương
- Hiển thị kết quả bảng lương chi tiết
- Yêu cầu kiểm tra lại thông tin
- Lưu kết quả bảng lương chưa cập nhật
Hình 2.14 Biểu đồ tuần tự thực thi ca sử dụng “Quản lý lương”
Hình 2.15 Biểu đồ cộng tác thực thi ca sử dụng “Quản lý lương”
2.3.3 Phân tích gói ca sử dụng Thanh toán lương
- Chấm công cho cán bộ nhân viên làm việc tại UBNN xã Tam Thăng
- Hiển thị thông tin của từng cán bộ và số tiền lương tính từng từ tiền thưởng, phụ cấp, tiền ứng,
- In bảng lương chi tiết
- Tìm kiếm thông tin quyết định khen thưởng, tạm ứng, phụ cấp thay đổi của từng cán bộ
Hình2.16 Biểu đồ tuần tự thực thi ca sử dụng “Thanh toán lương”
Hình 2.17 Biểu đồ cộng tác thực thi ca sử dụng “Thanh toán lương”
2.3.4 Phân tích gói ca sử dụng Thống kê
- Yêu cầu chức năng thống kê
- Chọn tiêu chí để thống kê
- Hệ thống thống kê doanh thu theo tiêu chí đã chọn và hiển thị kết quả
- Nếu hệ thốngbất ngờ dừng hoạt động thì người quản lý phải khởi động lại hệ thống
- Nếu thông tin không hợp lệ thì hệ thống sẽ báo lỗi, người quản lý phải chỉnh sửa lại sao cho phù hợp
- Nếu tất cả các quá trình đã đúng, hệ thống chạy trơn tru và không báo lỗi thì được phép thực hiện chức năng thống kê
Hình 2.18 Biểu đồ tuần tự thực thi ca sử dụng “Thống kê”
Hình 2.19 Biểu đồ cộng tác thực thi ca sử dụng “Thống kê”.
Biểu đồ lớp
2.4.1 Thiết kế gói ca sử dụng quản lý hồ sơ nhân viên
Hình 2.20 Mô hình lớp thiết kế gói ca sử dụng “Quản lý hồ sơ nhân viên”
2.4.2 Thiết kế gói ca sử dụng quản lýlương
Hình 2.21 Mô hình lớp thiết kế gói ca sử dụng “Quản lý lương”.
Biểu đồ trạng thái
2.5.1 Lớp Hồ Sơ Nhân Viên
2.5.1.1 Chức năng thêm nhân viên
Hình 2.22 Biểu đồ trạng thái của chức năng “Thêm nhân viên”
2.5.1.2 Chức năng chỉnh sửa thông tin nhân viên
Hình 2.23 Biểu đồ trạng thái của chức năng “Chỉnh sửathông tin nhân viên”
2.5.1.3 Chức năng Xóa thông tin nhân viên
Hình 2.24 Biểu đồ trạng thái của chức năng “Xóathông tin nhân viên”
Hình 2.25 Biểu đồ trạng thái của lớp “Lương nhân viên”.
XÂY DỰNG CƠ SỞ DỮ LIỆU – THIẾT KẾ DEMOCHƯƠNGTRÌNH
Mô hình cơ sở dữ liệu
Bảng Hồ sơ cán bộ nhân viên (lưu trữ thông tin về nhân sự của UBND)
STT Tên trường Kiểu dữ liệu Giải thích
1 MaNV(Khóa chính) varchar(10) Mã cán bộ nhân viên
2 TenNV Nvarchar(50) Họ và tên nhân viên
8 SDT int Số điện thoại
9 CMND int Chứng minh nhân dân
Bảng Chức vụ (lưu trữ thông tin về chức vụ cảu cán bộ nhân viên)
Tên trường Kiểu dữ liệu Giải thích
1 MaCV( khóa chính) Varchar(10) Mã chức vụ
2 TenCV Nvarchar(50) Tên chức vụ
3 PhucapCV Float Phụ cấp chức vụ
Bảng Phòng ban (Lưu trữ thông tin về phòng ban của cán bộ)
STT Tên trường Kiểu dữ liệu Giải thích
2 TenPB Nvarchar(50) Tên phòng ban
3 SDT Varchar(50) Số điện thoại
Bảng Lương (lưu trữ thông tin về quá trình lao động của cán bộ nhân viên)
STT Tên trường Kiểu dữ liệu Giải thích
1 Maluong( khóa chính) Varchar(10) Mã lương
2 MaNV Varchar(10) Mã cán bộ
3 MaCV Varchar(10) Mã chức vụ
4 MaPB Varchar(10) Mã phòng ban
6 Tienphucap Float Tiền phụ cấp
7 Hesoluong Float Hệ số lương
9 Luongcoban Float Lương cơ bản
10 Ngaylap datetime Ngày lập bảng lương
Cài đặt chương trình
- Sử dụng dữ liệu ở lớp “Người dùng”
- Lấy thông tin mà người quản lý đã đăng ký trước đó để khởi động hệ thống Hệ thống chỉ khởi chạy khi thông tin được đưa vào là tên đăng nhập và mật khẩu chính xác, nếu không đúng một trong hai thông tin trên thì hệ thống sẽ báo lỗi không thể đăng nhập được
- Đây là form chương trình chính của hệ thống quản lý tiền lương sau khi đã đăng nhập thành công
- Form chương trình chính sẽ cho ta thấy các chức năng chính liên quan đến hệ thống
3.3.3 Giao diện cập nhật hồ sơ cán bộ nhân viên
- Đây là form quản lý về thông tin của cán bộ nhân viên làm việc tại cơ quan Nó có chức năng cập nhật, chỉnh sửa thay đổi thông tin của từng cán bộ làm việc ở đây
- Sử dụng dữ liệu của lớp “Quản lý hồ sơ nhân viên”
3.3.4 Giao diện quản lý chức vụ
- Đây là form quản lý chức vụ Mỗi cán bộ làm việc tại cơ quan đều phải mang một chức vụ nhất định Việc quản lý chức vụ là cần thiết để cập nhật hồ sơ của nhân viên
- Sử dụng dữ liệu của lớp “Cập nhật hồ sơ nhân viên”
3.3.5 Giao diện quản lý phòng ban
- Đây là form quản lý phòng ban Mỗi cơ quan làm việc sẽ có nhiều phòng ban khác nhau Trong mỗi phòng ban sẽ có số lượng nhân viên làm việc phục vụ cho công việc của từng phòng khác nhau
- Cũng giống như form quản lý chức vụ, nó sử dụng dữ liệu của lớp “Cập nhật hồ sơ nhân viên” Form sẽ cho biết cán bộ nào làm việc ở phòng ban nào, và mỗi phòng ban sẽ có những nhân viên nào lam việc
3.3.6 Giao diện cập nhật bảng lương nhân viên
- Sử dụng dữ liệu ở lớp “Quản lý lương” Lớp này lấy thông tin của nhân viên thông qua lớp quản lý hồ sơ nhân viên
- Lớp cập nhật bảng lương nhân viên có liên kết với cửa sổ tính lương của từng nhân viên và tính tổng lương
3.3.7 Cửa sổ tính lương nhân viên
- Form “tính lương nhân viên” là một bảng lương chi tiết của từng nhân viên
- Đây là chức năng con nằm trong lớp quản lý lương Lấy thông tin tiền lương từ bảng lương để tính lương cho từng nhân viên
3.3.8 Giao diện thống kê nhân viên
- Form thống kê toàn bộ nhân viên lấy dữ liệu từ lớp “Quản lý hồ sơ nhân viên”
- Mục đích của việc thống kê nhằm xem hồ sơ của tất cả cán bộ làm việc tại cơ quan một cách chi tiết và cụ thể
- Thông tin này được lưu trữ lại và cung cấp cho lớp “Quản lý lương” để phục vụ cho việc tính lương của cán bộ nhân viên
3.3.9 Giao diện thống kê tiền lương
- Cũng giống như chức năng thống kê nhân viên, form thống kê tiền lương giúp thống kê tổng số tiền mà cơ quan phải chi trả cho cán bộ trong tháng Ngoài ra còn có thể xem bảng lương và hiển thị tổng tiền thống kê
3.3.10 Giao diện tìm kiếm nhân viên
- Form “Tìm kiếm nhân viên” cho phép tìm kiếm thông tin của một cán bộ nhân viên bất kỳ làm việc tại cơ quan Có 2 cách lựa chọn là tìm theo tên và tìm theo mã Tùy người dùng lựa chọn để phục vụ cho việc tìm kiếm kết quả một cách nhanh nhất có thể
- Sử dụng dữ liệu của lớp “Quản lý hồ sơ nhân viên” để tìm kiếm.