Khóa luận Khung làm việc và ứng dụng cho bài toán luồng công việc

TÓM TẮT NỘI DUNG KHÓA LUẬN Qua tìm hiểu thực tế cho thấy, với các tổ chức, cơ quan khác nhau có nghiệp vụ thực hiện công tác tổ chức xử lý và giao việc không giống nhau. Tuy nhiên về cơ bản các công ty, doanh nghiệp đều có mô hình quản lý và luồng quy trình nghiệp vụ thực hiện công tác tổ chức và giao việc giống nhau. Do đó, để phát triển và mở rộng một hệ thống có tính chất thương mại hoá, triển khai trên quy mô lớn, dễ bảo trì, cấu hình, phát triển mở rộng, khóa luận đã nghiên cứu đặc điểm, tính chất và cách xây dựng một Khung làm việc(Framework), các bài toán luồng công việc cụ thể, phân tích thiết kế bài toán luồng công việc tổng quát được rút ra từ các bài toán cụ thể, tích hợp và ghép nối các mẫu thiết kế lại thành các khung làm việc. Các khung làm việc hỗ trợ các điểm thế chỗ trước để khi ứng dụng triển khai có thể thay thế các điểm thế chỗ trước này. Khi triển khai ứng dụng cho một đơn vị có sự thay đổi về quy trình nghiệp vụ xử lý công việc ta chỉ cần xây dựng mới thêm một vài mô đun tương ứng với sự thay đổi đó và lắp ghép vào các điểm thế chỗ trước để tạo ra ứng dụng mới đáp ứng hoàn toàn về sự thay đổi mô hình quản lý và quy trình nghiệp vụ xử lý của đơn vị cần triển khai áp dụng hệ thống. Đề tài của khóa luận này là “Khung làm việc-Framework và ứng dụng cho bài toán luồng công việc”. Nội dung của đề tài gồm các phần sau. MỞ ĐẦU: Giới thiệu lý do chọn đề tài luận văn, nhu cầu thực tiễn và khả năng ứng dụng của luận văn Chương 1: Tổng quan về framework. Nhằm trả lời cho câu hỏi: “Framework là gì?”, phần này nêu ra khái niệm, các đặc điểm và phân loại framework. Chương 2: Giới thiệu một số Framework cụ thể đã có. Phần này đưa ra một số Framework điển hình đã được xây dựng và ứng dụng giải quyết các bài toán cụ thể. Chương 3: Xây dựng Framework giải quyết bài toán Luồng công việc-Workflow. Nêu ra bài toán Workflow tổng quát bằng lời và bằng các mô hình nghiệp vụ, các ca sử dụng và các sơ đồ lớp. Phân tích thiết kế tiến tới chi tiết hóa các ca sử dụng, gắn vào đó là các mẫu-patterns tạo nên một biểu đồ lớp có kèm theo các patterns sẵn có. Dựa trên phân tích thiết kế, xây dựng framework giải quyết bài toán luồng công việc trên nền tảng .NET framework 3.5 và ngôn ngữ lập trình C#. Chương 4: Ứng dụng Framework trên để demo một bài toán giao việc nhỏ. KẾT LUẬN: Phần này nêu kết quả đạt được của khóa luận và đề xuất phương hướng nâng cấp và mở rộng ứng dụng đề tài vào thực tiễn trong tương lai. MỤC LỤC LỜI CẢM ƠN i TÓM TẮT NỘI DUNG KHÓA LUẬN ii MỤC LỤC: iv DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ viii DANH MỤC CÁC BẢNG ix MỞ ĐẦU: - 1 - Chương 1 - 4 - GIỚI THIỆU CHUNG VỀ FRAMEWORK - 4 - 1.1. Khái niệm về framework - 4 - 1.1.1. Định nghĩa về framework - 4 - 1.1.2. Cấu trúc của một framework - 5 - 1.1.3. Phân biệt framework với các khái niệm khác - 7 - 1.2. Các đặc điểm của framework - 9 - CHƯƠNG 2 - 10 - GIỚI THIỆU MỘT SỐ FRAMEWORK CỤ THỂ - 10 - 2.1. Higgin Trust Framework - 10 - 2.1.1. Giới thiệu về Higgins - 10 - 2.1.2. Các thành phần của Higgins - 11 - 2.1.2.1. Browser Extension - 12 - 2.1.2.2. RP Enablement - 12 - 2.1.2.3. I-Card Manager - 13 - 2.1.2.4. RP Protocol Support - 13 - 2.1.2.5. ISS Client UI - 13 - 2.1.2.6. I-Card Selector Service - 14 - 2.1.2.7. I-Card Registry - 14 - 2.1.2.8. I-Card Provider - 14 - 2.1.2.9. Token Service - 14 - 2.1.2.10. Token Provider - 15 - 2.1.2.11. Identity Attribute Service - 15 - 2.1.2.12. Context Provider - 16 - 2.1.3. Mô hình dữ liệu của Higgins - 16 - 2.1.3.1. Các khái niệm dữ liệu cơ bản - 16 - 2.1.3.2. Mục tiêu của mô hình - 18 - 2.2. JhotDraw - 18 - 2.2.1. Giới thiệu khung làm việc JhotDraw - 18 - 2.2.2. Kiến trúc tổng quan về thiết kế của JHotDraw - 19 - CHƯƠNG 3: - 24 - XÂY DỰNG FRAMEWORK GIẢI QUYẾT - 24 - BÀI TOÁN LUỒNG CÔNG VIỆC-WORKFLOW. - 24 - 3.1. Mô tả bài toán quản lý công việc tại một công ty thiết kế đồ nội thất gia đình: - 24 - 3.1.1. Bài toán đặt ra: - 24 - 3.1.2. Sơ đồ hoạt động quản lý công việc tại công ty thiết kế đồ nội thất gia đình: - 24 - 3.1.3. Mô hình miền lĩnh vực: - 25 - 3.2. Mô tả bài toán quản lý thanh toán tiền lương: - 26 - 3.2.1. Bài toán đặt ra: - 26 - 3.2.2. Sơ đồ tiến trình quản lý hoạt động thanh toán tiền lương: - 27 - 3.2.3. Mô hình miền lĩnh vực: - 30 - 3.3. Mô tả bài toán tổng quát: - 30 - 3.3.1. Các thông tin chung về bài toán luồng công việc: - 30 - 3.3.2. Công tác quản lý bài toán luồng công việc: - 32 - 3.3.3. Sơ đồ tiến trình quản lý hoạt động giao công việc - 32 - 3.3.4. Các yêu cầu xây dựng hệ thống quản lý hoạt động giao công việc - 34 - 3.3.5. Các chức năng hệ thống - 34 - 3.3.6. Từ điển dữ liệu và mô hình lĩnh vực nghiệp vụ - 35 - 3.3.6.1. Các khái niệm dự tuyển cho nghiệp vụ quản lý giao việc - 35 - 3.3.6.2. Mô hình lĩnh vực nghiệp vụ - 36 - 3.3.7. Đặc tả hệ thống bài toán luồng công việc - 36 - 3.3.7.1. Các tác nhân (Actor) trong hệ thống - 36 - 3.3.7.2. Các ca sử dụng (Usecase) của hệ thống - 38 - 3.3.7.2.1. Ca sử dụng Đăng nhập hệ thống - 38 - 3.3.7.2.2. Ca sử dụng Tạo công việc mới - 39 - 3.3.7.2.3. Ca sử dụng Sửa thông tin hồ sơ công việc - 39 - 3.3.7.2.4. Ca sử dụng Xoá hồ sơ công việc - 39 - 3.3.7.2.5. Ca sử dụng Phân giải quyết công việc - 40 - 3.3.7.2.6. Ca sử dụng Chỉ đạo giải quyết công việc - 40 - 3.3.7.2.7. Ca sử dụng sửa Chỉ đạo giải quyết công việc - 40 - 3.3.7.2.8. Ca sử dụng Giải quyết công việc - 41 - 3.3.7.2.9. Ca sử dụng Báo cáo thống kê - 41 - 3.3.7.2.10. Ca sử dụng Xem và tra cứu công việc - 42 - 3.3.7.2.11. Ca sử dụng Cập nhật danh mục từ điển - 42 - 3.3.7.2.12. Ca sử dụng Cập nhật người dùng - 42 - 3.3.7.2.13. Ca sử dụng Cập nhật nhóm quyền - 43 - 3.3.7.2.14. Ca sử dụng Phân quyền truy nhập - 43 - 3.3.8. Mô hình ca sử dụng tổng thể - 43 - 3.3.8.1. Gói ca sử dụng Đăng nhập hệ thống - 43 - 3.3.8.2. Gói ca sử dụng Quản lý giải quyết công việc - 44 - 3.3.8.3. Gói ca sử dụng Quản trị tiện ích - 45 - 3.3.8.4. Gói ca sử dụng Báo cáo thống kê - 46 - 3.3.8.5. Gói ca sử dụng Quản trị phân quyền người dùng - 46 - 3.3.9. Mô tả chi tiết các ca sử dụng - 47 - 3.3.9.1. Gói ca sử dụng Đăng nhập hệ thống - 47 - 3.3.9.2. Gói ca sử dụng Quản lý giải quyết công việc - 49 - 3.3.9.3. Gói ca sử dụng Quản trị tiện ích - 53 - 3.3.9.4. Gói ca sử dụng Báo cáo thống kê - 57 - 3.3.9.5. Gói ca sử dụng Quản trị phân quyền người dùng - 61 - 3.4. Phân tích các lớp: - 63 - 3.4.1. Các lớp giao diện hệ thống: - 63 - 3.4.2. Các lớp thao tác Cơ Sở dữ liệu: - 64 - 3.4.3. Các lớp dịch vụ(Services): - 65 - 3.4.4. Các lớp thực thể: - 66 - 3.5. Áp dụng các mẫu (patterns) trong việc thiết kế cho các ca sử dụng: - 67 - 3.5.1. Gói ca sử dụng Đăng nhập hệ thống - 67 - 3.5.2. Gói ca sử dụng Quản lý giải quyết công việc - 69 - a. Ca sử dụng Cập nhật công việc - 69 - b. Ca sử dụng Phân công việc - 72 - 3.5.3. Gói ca sử dụng phục vụ tra cứu, báo cáo, thống kê - 74 - 3.6. Thiết kế một số lớp - 76 - 3.6.1. Lớp giao diện - 76 - 3.6.2. Lớp điều khiển - 78 - 3.6.3. Lớp thực thể - 80 - KẾT LUẬN - 87 - TÀI LIỆU THAM KHẢO - 89 - Tài liệu tiếng Việt - 89 - Tài liệu tiếng Anh - 89 - Các trang Web - 90 - Bộ công cụ - 90 - MỞ ĐẦU Cơ sở khoa học và thực tiễn của đề tài: a. Cơ sở khoa học và ý nghĩa thực tiễn của việc nghiên cứu và ứng dụng các mô hình sử dụng lại vào quá trình thiết kế phần mềm: Ngày nay, một trong những vấn đề quan trọng của ngành công nghệ phần mềm là vấn đề sử dụng lại. Ngay từ thời kỳ đầu tiên, người ta đã cố gắng sử dụng lại phần mềm bằng cách xây dựng trước các thư viện lớp. Trong các thư viện lớp này có chứa các hàm và thủ tục thường hay được sử dụng trong các ứng dụng phần mềm. Tuy nhiên, cách sử dụng lại này tương đối thụ động, vì chỉ có thể sử dụng lại các đoạn mã có sẵn, mà không thể sử dụng các thiết kế. Ý tưởng sử dụng lại các thiết kế có sẵn đã được thể hiện qua việc sử dụng các mẫu thiết kế. Một mẫu thiết kế là một mô tả có tên về một cặp vấn đề và giải pháp, nó có thể được áp dụng trong những hoàn cảnh khác nhau. Tuy nhiên, các mẫu thiết kế thường khó sử dụng vì có mức độ trừu tượng hóa cao. Do vậy, để có thể sử dụng lại các thiết kế có sẵn hiệu quả hơn, người ta đã đưa ra khái niệm Khung làm việc-Framework. Giống với các mẫu thiết kế, các framework cũng được sử dụng lại dễ dàng bằng cách thu nhận lại các kịch bản phát triển phần mềm thành công. Tuy nhiên, khác với mẫu thiết kế, framework thường gắn với một miền ứng dụng cụ thể và bao gồm cả thiết kế và mã thực hiện. b. Cơ sở khoa học và ý nghĩa thực tiễn của việc nghiên cứu, thiết kế và xây dựng úng dụng “ Khung làm việc giải quyết bài toán luồng công việc”: Ngày nay, với sự phát triển nhanh chóng của khoa học kỹ thuật nói chung và công nghệ thông tin nói riêng đã mang lại nhiều thành tựu to lớn. Những thành tựu của khoa học được áp dụng trong tất cả các hoạt động của con người và đã đem lại những thành công hết sức lớn lao. Ở Việt Nam, hiện nay, các công ty, xí nghiệp và các doanh nghiệp vừa và nhỏ hầu hết đã trang bị cơ sở hạ tầng về máy tính và kết nối mạng đã tạo cơ sở cho việc áp dụng những công nghệ mới của mạng máy tính và internet vào lĩnh vực tìm kiếm, tổ chức và xử lý thông tin phục vụ công tác điều hành và quản lý sản xuất. Với cơ sở hạ tầng công nghệ thông tin ngày càng phát triển mở rộng, các tổ chức, doanh nghiệp ngày càng có nhu cầu tin học hoá mọi lĩnh vực công việc, sản xuất, quản lý, và mong muốn mọi thông tin quản lý điều hành sản xuất đều được lưu trữ trên máy tính để có thể tra cứu tìm kiếm dễ dàng và nhanh chóng mỗi khi có nhu cầu. Những hoạt động mang tính chất luồng công việc như hoạt động giao việc và điều hành xử lý việc thực hiện công việc là một hoạt động chủ đạo trong hầu hết các tổ chức, doanh nghiệp. Tuy nhiên, qua khảo sát thực tế cho thấy, hiện nay việc tổ chức và quản lý hoạt động giao công việc trong các tổ chức, xí nghiệp chủ yếu thực hiện trực tiếp bằng miệng và quản lý dựa trên trên giấy tờ. Do đó, để tổ chức và theo dõi điều hành một công việc thực hiện qua nhiều người, nhiều cấp, trên nhiều giai đoạn thời gian khác nhau gặp rất nhiều khó khăn. Việc tin học hoá hoạt động này để có thể tổ chức xử lý, theo dõi hoạt động giao công việc trên hệ thống máy tính là nhu cầu cấp thiết. Việc ứng dụng công nghệ thông tin vào tổ chức, quản lý hoạt động giao công việc là một trong các biện pháp có ý nghĩa thiết thực trong việc áp dụng các thành tựu khoa học kỹ thuật vào công tác điều hành và quản lý sản xuất trong các doanh nghiệp. Từ nhu cầu thực tiễn xã hội và đặc biệt là của đơn vị đang công tác, cùng với cơ sở khoa học của việc nghiên cứu ứng dụng các mô hình sử dụng lại vào quá trình phân tích thiết kế phần mềm, luận văn đã chọn đề tài với tên gọi “Khung làm việc và ứng dụng cho bài toán luồng công việc”. Mục tiêu của bài toán “Luồng công việc” là xây dựng một hệ thống thông tin tổ chức và quản lý các hoạt động giao công việc đang thực hiện trong một tổ chức, doanh nghiệp phân theo các cấp quản lý theo từng đầu người cụ thể dựa trên mạng máy tính. Hệ thống giúp các cấp lãnh đạo nắm sát tình hình thực hiện công việc và đưa ra ý kiến chỉ đạo và hướng giải quyết đúng đắn, kịp thời nhằm nâng cao hiệu quả quản lý. Hệ thống cung cấp các đầu mục tra cứu và tổng hợp các công việc đã và đang thực hiện trên mạng máy tính để làm các thống kê, báo cáo định kỳ theo yêu cầu. Hệ thống được xây dựng sử dụng các công nghệ kỹ thuật mới như: ứng dụng hướng tiếp cận áp dụng các mẫu thiết kế, sử dụng công cụ mô hình hoá UML để phân tích và thiết kế bài toán theo mô hình hướng đối tượng; ứng dụng công nghệ Windows Applications để cập nhật và xử lý thông tin. Với hướng tiếp cận phân tích và thiết kế hệ thống áp dụng công nghệ hướng đối tượng sử dụng các mẫu thiết kế gắn với một miền ứng dụng cụ thể(bài toán luồng công việc) và sử dụng ngôn ngữ C# dựa trên nền tảng .NET Framework 3.5 để xây dựng và phát triển hệ thống, cho phép hệ thống dễ bảo trì và phát triển mở rộng trong tương lai đáp ứng được các yêu cầu thay đổi và phát triển ngày càng cao của xã hội. Mục tiêu và phạm vi nghiên cứu của luận văn – Nghiên cứu khái niệm, đặc điểm và phân loại Framework. – Nắm bắt được phương pháp phân tích thiết kế hướng đối tượng một hệ thống. Sử dụng phương pháp phân tích thiết kế hướng đối tượng, áp dụng các mẫu thiết kế về hành vi và trình diễn để phân tích, thiết kế một ứng dụng cụ thể trên máy tính. – Nghiên cứu bài toán luồng công việc, áp dụng các kiến thức về Phân tích hướng đối tượng để phân tích thiết kế bài toán. – Từ kết quả phân tích và thiết kế tiến hành xây dựng hệ thống dựa trên các công cụ và môi trường đã lựa chọn. – Ứng dụng một phần mềm nhỏ sử dụng Framework đã xây dựng. Nội dung nghiên cứu và thực hiện của luận văn – Nghiên cứu khái niệm, đặc điểm và phân loại Framework. – Nếu một số đặc điểm và ứng dụng của một vài Framework sẵn có. – Tiếp cận một số bài toán cụ thể liên quan đến luồng công việc đó là bài toán “Quản lý luồng công việc tại Công ty đồ nội thất gia đình” và bài toán “Quản lý tính tiền lương cho giáo viên”. – Tiến hành tổng quát hóa từ hai bài toán trên để rút ra bài toán “Luồng công việc tổng quát”. – Tiến hành xây dựng các biểu đồ Usecase cho bài toán “Luồng công việc” đến mức chi tiết nhất. – Từ các biểu đồ Usecase chi tiết hóa trên tiến hành áp dụng các mẫu(patterns sẵn có như Singleton, Observer, State, Oposite ) để tổng quát hóa bài toán, tổng quát hóa các biểu đồ lớp phục vụ cho việc xây dựng Framework. – Xây dựng chương trình và tiến hành cài đặt thử nghiệm demo một bài toán nhỏ.

doc101 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2323 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Khóa luận Khung làm việc và ứng dụng cho bài toán luồng công việc, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
nội dung giao việc 9. Chọn Kết thúc 10. Đóng form Giao việc và trở về giao diện chính. Ngoại lệ: Bước 2: Nếu không có công việc nào hệ thống sẽ thông báo: “Không có công việc nào cần giao”. Bước 9. Nếu muốn nhập tiếp công việc mới quay lại bước 3 Hậu điệu kiện: Thông tin giao giải quyết công việc được ghi vào cơ sở dữ liệu. Yêu cầu đặc biệt: Tác nhân phải là người tạo ra công việc hoặc là người chủ trì giải quyết công việc. Tác nhân chỉ được phân cho cấp dưới hoặc những người cùng phối hợp giải quyết công việc. c. Ca sử dụng Giải quyết công việc Tiền điều kiện: Nhân viên đăng nhập hệ thống thành công Tác nhân: Nhân viên. Mục tiêu: Cho phép tác nhân cập nhật thông tin giải quyết công việc (các công việc được phân giải quyết). Luồng sự kiện: Hành động tác nhân Phản ứng của hệ thống Dữ liệu liên quan 1. Chọn chức năng giải quyết công việc cá nhân. 2. Hiện danh sách các công việc đang và chưa giải quyết của cá nhân. + Bảng Công việc + Bảng Nhân viên + Bảng Phòng ban + Bảng Giao việc + Bảng Nội dung giao việc 3. Chọn công việc cần giải quyết. 4. Hiện thông tin của công việc. + Bảng Công việc + Bảng Nhân viên + Bảng Phòng ban + Bảng Giao việc + Bảng Nội dung giao việc 5. Nhập nội dung giải quyết công việc, trạng thái công việc và chọn Giải quyết. 6. Kiểm tra thông tin và ghi lại. Hiển thị lại thông tin giải quyết công việc lên màn hình. + Bảng Công việc + Bảng Giao việc + Bảng Nhân viên + Bảng Nội dung giao việc 7. Chọn Kết thúc 8. Đóng form giải quyết công việc và trở về giao diện chính. Ngoại lệ: Bước 2: Nếu không có công việc nào hệ thống sẽ thông báo: “Không có công việc nào cần giải quyết”. Bưới 6: Nếu nội dung giải quyết rỗng thì hệ thống thông báo lỗi và yêu cầu nhập lại thông tin trước khi xác nhận Giải quyết. Bước 7. Nếu muốn nhập tiếp nội dung giải quyết của công việc khác quay lại bước 3. Hậu điệu kiện: Thông tin giải quyết công việc được ghi vào cơ sở dữ liệu. Yêu cầu đặc biệt: Tác nhân chỉ được nhập và sửa nội dung giải quyết công việc của các công việc đang và chưa giải quyết xong. Với các công việc có mức độ hoàn thành 100% hoặc đã kết thúc thì tác nhân không thể nhập hoặc sửa nội dung giải quyết công việc được. 3.3.9.3. Gói ca sử dụng Quản trị tiện ích a. Ca sử dụng Quản lý và cập nhật thông tin phòng ban Tiền điều kiện: Quản trị hệ thống đăng nhập hệ thống thành công. Tác nhân: Quản trị hệ thống Mục tiêu: Cho phép tác nhân cập nhật các thông tin danh mục Phòng ban. Luồng sự kiện: Hành động tác nhân Phản ứng của hệ thống Dữ liệu liên quan 1. Chọn chức năng cập nhật danh mục phòng ban. 2. Hiển thị danh sách phòng ban. + Bảng Phòng ban 3. Chọn một phòng ban. 4. Hiện thông tin chi tiết của phòng ban. + Bảng Phòng ban 5. Chỉnh sửa thông tin và chọn Ghi lại. 6. Kiểm tra thông tin và ghi lại. Hiển thị thông báo phản hồi. Hiển thị lại danh sách phòng ban. + Bảng Phòng ban 7. Chọn Thêm mới. 8. Hiển thị form cập nhật thông tin phòng ban. 9. Nhập các thông tin yêu cầu và chọn Ghi lại. 10. Kiểm tra thông tin và ghi lại. Hiển thị thông báo phản hồi. Hiển thị lại danh sách phòng ban. + Bảng Phòng ban 11. Chọn một phòng ban và chọn Xoá. 12. Hiển thị thông báo xác nhận có chắc chắn xoá không ? 13. Đồng ý xoá. 14. Xoá phòng ban đã chọn. Hiển thị thông báo phản hồi. Hiển thị lại danh sách phòng ban. + Bảng Phòng ban 15. Chọn Kết thúc. 16. Đóng form cập nhật danh mục Phòng ban và trở về trang chính. Ngoại lệ: Bước 6,10: Nếu các thông tin phòng ban không hợp lệ thì hệ thống sẽ thông báo và yêu cầu nhập lại. Nếu Tên phòng hoặc Mã phòng ban bị trùng hệ thống hiện thông báo và yêu cầu nhập Tên và Mã phòng ban khác. Bước 13: Nếu không đồng ý xoá thì hệ thống quay lại form hiển thị danh sách phòng ban. Bước 14: Nếu phòng này (hoặc tổ/nhân viên thuộc phòng này) đã tham gia vào hồ sơ công việc thì không xoá được công việc đó. Nếu không xoá được hệ thống sẽ thông báo. Bước 15. Nếu muốn tạo tiếp phòng ban mới quay lại bước 7. Nếu muốn sửa phòng ban khác quay lại bước 5. Nếu muốn xoá một phòng ban khác quay lại bước 11. Hậu điệu kiện: Thông tin về phòng ban được cập nhật trong cơ sở dữ liệu. b. Ca sử dụng Quản lý và cập nhật thông tin nhân viên Tiền điều kiện: Quản trị hệ thống đăng nhập hệ thống thành công. Tác nhân: Quản trị hệ thống Mục tiêu: Cho phép tác nhân cập nhật các thông tin danh mục Nhân viên. Luồng sự kiện: Hành động tác nhân Phản ứng của hệ thống Dữ liệu liên quan 1. Chọn chức năng cập nhật danh mục nhân viên. 2. Hiển thị danh sách nhân viên theo từng phòng ban. + Bảng Phòng ban + Bảng Nhân viên 3. Chọn một nhân viên. 4. Hiển thị thông tin chi tiết của nhân viên. + Bảng Nhân viên 5. Chỉnh sửa thông tin và chọn Ghi lại. 6. Kiểm tra thông tin và ghi lại. Hiện thông báo phản hồi. Hiển thị lại danh sách nhân viên. + Bảng Nhân viên 7. Chọn Thêm mới 8. Hiển thị form cập nhật thông tin nhân viên. 9. Nhập các thông tin yêu cầu và chọn Ghi lại. 10. Kiểm tra thông tin và ghi lại. Hiển thị thông báo phản hồi. Hiển thị lại danh sách nhân viên. + Bảng Nhân viên 11. Chọn một nhân viên và chọn Xoá. 12. Hiển thị thông báo xác nhận có chắc chắn xoá không ? 13. Đồng ý xoá 14. Xoá nhân viên đã chọn. Hiển thị thông báo phản hồi. Hiển thị lại danh sách nhân viên. + Bảng Nhân viên 15. Chọn Kết thúc. 16. Đóng form cập nhật danh mục Nhân viên và trở về trang chính. Ngoại lệ: Bước 6,10: Nếu các thông tin nhân viên không hợp lệ thì hệ thống sẽ thông báo và yêu cầu nhập lại. Bước 13: Nếu không đồng ý xoá thì hệ thống quay lại form hiển thị danh sách nhân viên. Bước 14: Nếu nhân viên này đã tham gia vào một hồ sơ công việc thì không xoá được. Nếu không xoá được hệ thống sẽ thông báo. Bước 15. Nếu muốn tạo tiếp nhân viên mới quay lại bước 7. Nếu muốn sửa nhân viên khác quay lại bước 5. Nếu muốn xoá một nhân viên khác quay lại bước 11. Hậu điệu kiện: Thông tin về nhân viên được cập nhật trong cơ sở dữ liệu. c. Ca sử dụng Cập nhật danh mục loại công việc Tiền điều kiện: Quản trị hệ thống đăng nhập hệ thống thành công. Tác nhân: Quản trị hệ thống Mục tiêu: Cho phép tác nhân cập nhật các thông tin danh mục Loại công việc Luồng sự kiện: Hành động tác nhân Phản ứng của hệ thống Dữ liệu liên quan 1. Chọn chức năng cập nhật danh mục loại công việc. 2. Hiển thị danh sách danh mục loại công việc. + Bảng Loại công việc 3. Chọn một loại công việc. 4. Hiện thông tin chi tiết của danh mục loại công việc. + Bảng Loại công việc 5. Chỉnh sửa thông tin và chọn Ghi lại 6. Kiểm tra thông tin và ghi lại. Hiện thông báo phản hồi. Hiển thị lại danh sách danh mục loại công việc. + Bảng Loại công việc 7. Chọn Thêm mới 8. Hiển thị form cập nhật danh mục loại công việc. 9. Nhập các thông tin yêu cầu và chọn Ghi lại. 10. Kiểm tra thông tin và ghi lại. Hiển thị thông báo phản hồi. Hiển thị lại danh sách danh mục loại công việc. + Bảng Loại công việc 11. Chọn một loại công việc và chọn Xoá. 12. Hiển thị thông báo xác nhận có chắc chắn xoá không ? 13. Đồng ý xoá 14. Xoá loại công việc đã chọn. Hiển thị thông báo phản hồi. Hiển thị lại danh sách danh mục loại công việc. + Bảng Loại công việc 15. Chọn Kết thúc. 16. Đóng form cập nhật danh mục Loại công việc và trở về trang chính. Ngoại lệ: Bước 6,10: Nếu các thông tin loại công việc không hợp lệ thì hệ thống sẽ thông báo và yêu cầu nhập lại. Bước 13: Nếu không đồng ý xoá thì hệ thống quay lại form hiển thị danh sách danh mục loại công việc. Bước 14: Nếu loại công việc này đã có công việc được tạo thì không thể xoá được. Nếu không xoá được hệ thống sẽ thông báo. Bước 15. Nếu muốn tạo tiếp loại công việc mới quay lại bước 7. Nếu muốn sửa loại công việc khác quay lại bước 5. Nếu muốn xoá một loại công việc khác quay lại bước 11. Hậu điệu kiện: Thông tin về loại công việc được cập nhật trong cơ sở dữ liệu. 3.3.9.4. Gói ca sử dụng Báo cáo thống kê a. Ca sử dụng Tra cứu thông tin công việc Tiền điều kiện: Ban giám đốc, Thư ký giám đốc, Lãnh đạo phòng, Chủ trì công việc, Nhân viên đăng nhập hệ thống thành công. Tác nhân: Giám đốc, Thư ký giám đốc, Lãnh đạo phòng, Chủ trì công việc, Nhân viên. Mục tiêu: Cho phép tác nhân tra cứu công việc theo các tiêu chí khác nhau. Luồng sự kiện: Hành động tác nhân Phản ứng của hệ thống Dữ liệu liên quan 1. Chọn chức năng tra cứu công việc. 2. Hiện form nhập các tiêu chí tra cứu công việc. + Bảng Loại công việc + Bảng Phòng ban + Bảng Nhân viên 3. Nhập các thông số và chọn Tra cứu. 4. Kiểm tra thông số và Tra cứu thông tin. Hiển thị danh sách các công việc thoả mãn điều kiện tra cứu. + Bảng Loại công việc + Bảng Phòng ban + Bảng Nhân viên + Bảng Công việc + Bảng Quản lý công việc + Bảng Chỉ đạo + Bảng Giải quyết 5. Chọn Kết thúc. 6. Đóng form tra cứu công việc và trở về trang chính. Ngoại lệ: Bước 4: Nếu các thông số không hợp lệ (ngày nhập vào không hợp lệ, từ ngày lớn hơn đến ngày,...) thì hệ thống sẽ thông báo và yêu cầu nhập lại. Bước 5. Nếu muốn tra cứu công việc theo các tiêu chí, thông số khác quay lại bước 3. Hậu điệu kiện: Không có Yêu cầu đặc biệt: Tuỳ theo chức danh quản lý của Tác nhân để lựa chọn không gian và phạm vi tìm kiếm thông tin (chỉ tra cứu và đưa ra các công việc mà Tác nhân tạo ra, hoặc Tác nhân là người chủ trì giải quyết công việc, hoặc tác nhân là người trực tiếp giải quyết công việc, hoặc các công việc do cấp dưới của Tác nhân tạo ra, các công việc do cấp dưới của Tác nhân chủ trì hoặc tham gia giải quyết). Với mỗi công việc trong danh sách các công việc tìm được phải có liên kết tới biểu mẫu hiển thị thông tin chi tiết công việc tương ứng. Phải in được danh sách công việc tìm thấy. Phải xem được danh sách trước khi in. b. Ca sử dụng Tổng hợp báo cáo công việc Tiền điều kiện: Ban giám đốc, Thư ký giám đốc, Lãnh đạo phòng, Chủ trì công việc, Nhân viên đăng nhập hệ thống thành công. Tác nhân: Giám đốc, Thư ký giám đốc, Lãnh đạo phòng, Chủ trì công việc, Nhân viên. Mục tiêu: Cho phép tác nhân tổng hợp và xem các báo cáo công việc. Luồng sự kiện: Hành động tác nhân Phản ứng của hệ thống Dữ liệu liên quan 1. Chọn chức năng tổng hợp báo cáo công việc. 2. Hiện form nhập các tiêu chí để báo cáo. + Bảng Loại công việc + Bảng Phòng ban + Bảng Nhân viên 3. Nhập các thông số báo cáo và chọn Xem báo cáo. 4. Kiểm tra thông số và thực hiện tổng hợp số liệu theo các thông số. Hiển thị số liệu thoã mãn điều kiện lên báo cáo. + Bảng Loại công việc + Bảng Phòng ban + Bảng Nhân viên + Bảng Công việc + Bảng Quản lý công việc + Bảng Chỉ đạo + Bảng Giải quyết 5. Chọn Kết thúc. 6. Đóng form báo cáo công việc và trở về trang chính. Ngoại lệ: Bước 4: Nếu các thông số không hợp lệ (ngày nhập vào không hợp lệ, từ ngày lớn hơn đến ngày,...) thì hệ thống sẽ thông báo và yêu cầu nhập lại. Bước 5. Nếu muốn xem báo cáo với các tiêu chí khác quay lại bước 3. Hậu điệu kiện: Không có Yêu cầu đặc biệt: Tuỳ theo chức danh quản lý của Tác nhân để lựa chọn không gian và phạm vi báo cáo thống kê (báo cáo thống kê chỉ đưa ra các công việc mà Tác nhân tạo ra, hoặc Tác nhân là người chủ trì giải quyết công việc, hoặc tác nhân là người trực tiếp giải quyết công việc, hoặc các công việc do cấp dưới của Tác nhân tạo ra, các công việc do cấp dưới của Tác nhân chủ trì hoặc tham gia giải quyết). Cuối báo cáo phải có tổng số công việc, số công việc đã giải quyết, đang giải quyết, chưa giải quyết, chưa phân giải quyết. Phải in được báo cáo thống kê. Phải xem được báo cáo trước khi in. Phải kết xuất nội dung báo cáo ra các định dạng khác (Word, Excell,...) c. Ca sử dụng Vẽ biểu đồ Gantt Tiền điều kiện: Ban giám đốc, Thư ký giám đốc, Lãnh đạo phòng, Chủ trì công việc đăng nhập hệ thống thành công. Tác nhân: Giám đốc, Thư ký giám đốc, Lãnh đạo phòng, Chủ trì công việc Mục tiêu: Cho phép tác nhân vẽ biểu đồ phân cấp theo mỗi hồ sơ công việc trên máy tính. Luồng sự kiện: Hành động tác nhân Phản ứng của hệ thống Dữ liệu liên quan 1. Chọn chức năng vẽ biểu đồ Gantt. 2. Hiện biểu mẫu nhập các tiêu chí truy vấn số liệu để vẽ biểu đồ. + Bảng Loại công việc + Bảng Phòng ban + Bảng Nhân viên 3. Nhập các thông số, tiêu chí để truy vấn số liệu vẽ biểu đồ. 4. Kiểm tra thông số và truy vấn thông tin. Hiển thị danh sách hồ sơ công việc thoả mãn điều kiện. + Bảng Phòng ban + Bảng Nhân viên + Bảng Công việc + Bảng Quản lý công việc + Bảng Chức danh quản lý 5. Chọn một hồ sơ công việc và chọn Vẽ biểu đồ 6. Vẽ biểu đồ phân cấp của hồ sơ công việc được chọn. + Bảng Công việc + Bảng Phòng ban + Bảng Nhân viên + Bảng Quản lý công việc + Bảng Chức danh quản lý 7. Chọn Kết thúc. 8. Đóng form vẽ biểu đồ và trở về trang chính. Ngoại lệ: Bước 4: Nếu các thông số không hợp lệ (ngày nhập vào không hợp lệ, từ ngày lớn hơn đến ngày,...) thì hệ thống sẽ thông báo và yêu cầu nhập lại. Bước 7. Nếu muốn vẽ biểu đồ phân cấp của hồ sơ công việc khác quay lại bước 5. Nếu muốn vẽ biểu đồ của công việc khác không có trong danh sách hồ sơ công việc quay lại bước 3 để thay đổi thông số truy vấn số liệu vẽ biểu đồ. Hậu điệu kiện: Không có Yêu cầu đặc biệt: Tuỳ theo chức danh quản lý của Tác nhân để lựa chọn không gian và phạm vi truy vấn số liệu vẽ biểu đồ (kết quả truy vấn số liệu vẽ biểu đồ chỉ đưa ra các công việc mà Tác nhân tạo ra, hoặc Tác nhân là người chủ trì giải quyết công việc, hoặc tác nhân là người trực tiếp giải quyết công việc, hoặc các công việc do cấp dưới của Tác nhân tạo ra, các công việc do cấp dưới của Tác nhân chủ trì hoặc tham gia giải quyết). 3.3.9.5. Gói ca sử dụng Quản trị phân quyền người dùng a. Ca sử dụng Quản lý và cập nhật nhóm quyền Tiền điều kiện: Quản trị hệ thống đăng nhập hệ thống thành công. Tác nhân: Quản trị hệ thống Mục tiêu: Cho phép tác nhân cập nhật thông tin danh mục nhóm quyền. Luồng sự kiện: Hành động tác nhân Phản ứng của hệ thống Dữ liệu liên quan 1. Chọn chức năng cập nhật danh mục nhóm quyền. 2. Hiển thị danh sách các nhóm quyền. + Bảng Nhóm quyền 3. Chọn một nhóm quyền. 4. Hiện thông tin chi tiết nhóm quyền đã chọn. + Bảng Nhóm quyền + Bảng Chức năng 5. Chỉnh sửa thông tin và chọn Ghi lại 6. Kiểm tra thông tin và ghi lại. Hiện thông báo phản hồi. Hiển thị lại danh sách nhóm quyền. + Bảng Nhóm quyền 7. Chọn Thêm mới 8. Hiển thị form cập nhật nhóm quyền. + Bảng Nhóm quyền + Bảng Chức năng 9. Nhập các thông tin yêu cầu và chọn Ghi lại. 10. Kiểm tra tính hợp lệ của các thông tin. Hiển thị thông báo phản hồi. Hiển thị lại danh sách nhóm quyền. + Bảng Nhóm quyền 11. Chọn một nhóm quyền và chọn Xoá. 12. Hiển thị thông báo xác nhận có chắc chắn xoá không ? 13. Đồng ý xoá 14. Xoá nhóm quyền đã chọn. Hiển thị thông báo phản hồi. Hiển thị lại danh sách nhóm quyền. + Bảng Nhóm quyền + Bảng Chức năng 15. Chọn Kết thúc. 16. Đóng form cập nhật nhóm quyền và trở về trang chính. Ngoại lệ: Bước 6,10: Nếu các thông tin không hợp lệ thì hệ thống sẽ thông báo và yêu cầu nhập lại. Bước 13: Nếu không đồng ý xoá thì hệ thống quay lại form hiển thị danh sách các nhóm quyền. Bước 14: Nếu không xoá được hệ thống sẽ thông báo. Hậu điệu kiện: Thông tin về nhóm quyền được cập nhật trong cơ sở dữ liệu. b. Ca sử dụng Phân quyền sử dụng các chức năng Tiền điều kiện: Quản trị hệ thống đăng nhập hệ thống thành công. Tác nhân: Quản trị hệ thống Mục tiêu: Cho phép tác nhân cập nhật thông tin phân quyền người dùng. Luồng sự kiện: Hành động tác nhân Phản ứng của hệ thống Dữ liệu liên quan 1. Chọn chức năng Phân quyền. 2. Hiển thị màn hình chọn phòng ban, nhân viên. + Bảng Phòng ban + Bảng Nhân viên 3. Chọn phòng ban có người dùng cần phân quyền. 4. Hiển thị danh sách các nhân viên thuộc phòng ban đã chọn. + Bảng Nhân viên 5. Chọn nhân viên cần phân quyền. 6. Hiển thị danh sách các nhóm quyền mà người dùng đã được cấp và chưa cấp. + Bảng Phân quyền + Bảng Nhóm quyền 7. Chọn các nhóm quyền cần cấp, bỏ chọn các nhóm quyền không cấp và Chọn Cập nhật phân quyền. 8. Hiển thị thông báo xác nhận có chắc chắn cập nhật lại quyền của người dùng không ? 9. Đồng ý cấp lại quyền. 10. Kiểm tra thông tin và ghi lại. Hiện thông báo phản hồi. Hiển thị lại danh sách nhóm quyền của người dùng đã chọn. + Bảng Nhân viên + Bảng Phân quyền 11. Chọn Kết thúc. 12. Đóng form cập nhật phân quyền và trở về trang chính. Ngoại lệ: Bước 9: Nếu không đồng ý cấp lại quyền thì hệ thống quay lại form hiển thị danh sách các nhóm quyền của người dùng. Bước 10: Nếu các thông tin không hợp lệ thì hệ thống sẽ thông báo và yêu cầu nhập lại. Nếu không cập nhật được thông tin hệ thống sẽ thông báo. Bước 11: Nếu muốn thay đổi thông tin phân quyền cho nhân viên khác quay lại bước 5. Hậu điệu kiện: Thông tin phân quyền người dùng được cập nhật trong cơ sở dữ liệu. Phân tích các lớp: Các lớp giao diện hệ thống: Lớp FormTaoTaiKhoan: Tạo tài khoản cho một nhân viên, hiển thị thông tin tài khoản của nhân viên, xóa tài khoản nhân viên, sửa thông tin tài khoản nhân viên. Lớp FormTaoThongTinNhanVien: Tạo thông tin nhân viên, hiển thị thông tin nhân viên, xóa thông tin nhân viên, sửa thông tin nhân viên. Lớp FormTaoPhongBan: Tạo thông tin phòng ban, hiển thị thông tin phòng ban, xóa thông tin phòng ban, sửa thông tin phòng ban. Lớp FormTaoNhomQuyen: Tạo thông tin nhóm quyền, hiển thị thông tin nhóm quyền, xóa thông tin nhóm quyền, sửa thông tin nhóm quyền. Lớp FormTaoChucDanhQuanLy: Tạo chức vụ cho nhân viên, hiển thị thông tin chức vụ nhân viên, xóa thông tin chức vụ nhân viên, sửa thông tin chức vụ nhân viên. Lớp FormPhanQuyenNhanVien: Tạo nhóm quyền cho nhân viên, hiển thị thông tin quyền nhân viên, xóa thông tin quyền nhân viên, sửa thông tin quyền nhân viên. Lớp FormPhanQuyenChucNang: Tạo chức năng cho nhóm quyền, hiển thị thông tin chức năng nhóm quyền, xóa thông tin chức năng nhóm quyền, sửa thông tin chức năng nhóm quyền. Lớp FormThongTinCongViec: Tạo thông tin công việc, hiển thị thông tin công việc, xóa thông tin công việc, sửa thông tin công việc. Lớp FormGiaoViec: Hiển thị thông tin phân việc và cập nhật lại thông tin phân công giải quyết công việc. Lớp FormGiaoViec và FormNoiDungGiaoViec: Hiển thị giao diện cập nhật nội dung giải quyết công việc, bao gồm các thuộc tính: người giải quyết, ngày giải quyết, tiến độ thực hiện, nội dung giải quyết. Lớp FormDoiMatKhau: Hiển thị giao diện đổi mật khẩu, bao gồm các thuộc tính: tên truy nhập, mật khẩu cũ, mật khẩu mới. Lớp FormDanhSachChucNang: Hiển thị danh sách các chức năng thao tác với phần mềm, bao gồm các thuộc tính: tên chức năng, mã chức năng. Lớp FormMain: Hiển thị các nhóm chức năng điều khiển. Lớp Form1: Có chức năng Login vào hệ thống. Các lớp thao tác Cơ Sở dữ liệu: Những lớp này đóng vai tròn tạo và liên kết các kết nối tới Cơ sở dữ liệu đồng thời thực hiện vai trò thao tác Xen, xem, xóa, sửa ứng với từng bảng trong Cơ sở dữ liệu. Lớp SqlChucDanhQuanLy và lớp SqlChucDanhQuanLyBase: Thực hiện việc Xen, xem, xóa, sửa với cơ sở dữ liệu ở bảng ChucDanhQuanLy. Lớp SqlChucNang và lớp SqlChucNangBase: Thực hiện việc Xen, xem, xóa, sửa với cơ sở dữ liệu ở bảng ChucNang. Lớp SqlCongViec và lớp SqlCongViecBase: Thực hiện việc Xen, xem, xóa, sửa với cơ sở dữ liệu ở bảng CongViec. Lớp SqlGiaiQuyet và lớp SqlGiaiQuyetBase: Thực hiện việc Xen, xem, xóa, sửa với cơ sở dữ liệu ở bảng GiaiQuyet. Lớp SqlNhanVien và lớp SqlNhanVienBase: Thực hiện việc Xen, xem, xóa, sửa với cơ sở dữ liệu ở bảng NhanVien. Lớp SqlNhomQuyen và lớp SqlNhomQuyenBase: Thực hiện việc Xen, xem, xóa, sửa với cơ sở dữ liệu ở bảng NhomQuyen. Lớp SqlPhanQuyen và lớp SqlPhanQuyenBase: Thực hiện việc Xen, xem, xóa, sửa với cơ sở dữ liệu ở bảng PhanQuyen. Lớp SqlPhanQuyenChucNang và lớp SqlPhanQuyenChucNangBase: Thực hiện việc Xen, xem, xóa, sửa với cơ sở dữ liệu ở bảng PhanQuyenChucNang. Lớp SqlPhongBan và lớp SqlPhongBanBase: Thực hiện việc Xen, xem, xóa, sửa với cơ sở dữ liệu ở bảng PhongBan. Lớp SqlQuanHeNhanVien và lớp SqlQuanHeNhanVienBase: Thực hiện việc Xen, xem, xóa, sửa với cơ sở dữ liệu ở bảng QuanHeNhanVien. Lớp SqlQuanHePhongBan và lớp SqlQuanHePhongBanBase: Thực hiện việc Xen, xem, xóa, sửa với cơ sở dữ liệu ở bảng QuanHePhongBan. Lớp SqlNoiDungGiaoViec và lớp SqlNoiDungGiaoViecBase: Thực hiện việc Xen, xem, xóa, sửa với cơ sở dữ liệu ở bảng NoiDungGiaoViec. Lớp SqlTaiKhoan và lớp SqlTaiKhoanBase: Thực hiện việc Xen, xem, xóa, sửa với cơ sở dữ liệu ở bảng TaiKhoan. Các lớp dịch vụ(Services): Những lớp này đóng vai trò điều khiển các thao tác của người dùng với Cơ sở dữ liệu và điều khiên những thao tác trên các lớp giao diện, nó liên kết với những lớp thao tác trực tiếp với cơ sở dữ liệu ở trên và sử dụng những tiện ích trên mang lại. Lớp ChucDanhQuanLy và ChucDanhQuanLyBase: Thực hiện việc Xen, xem, xóa, sửa với cơ sở dữ liệu ở bảng ChucDanhQuanLy và thao tác với các lớp giao diện. Lớp ChucNangService và ChucNangServiceBase: Thực hiện việc Xen, xem, xóa, sửa với cơ sở dữ liệu ở bảng ChucNang và thao tác với các lớp giao diện. Lớp CongViecService và CongViecServiceBase: Thực hiện việc Xen, xem, xóa, sửa với cơ sở dữ liệu ở bảng CongViec và thao tác với các lớp giao diện. Lớp GiaoviecService và GiaoViecServiceBase: Thực hiện việc Xen, xem, xóa, sửa với cơ sở dữ liệu ở bảng GiaoViec và thao tác với các lớp giao diện. Lớp NhanVienService và NhanVienServiceBase: Thực hiện việc Xen, xem, xóa, sửa với cơ sở dữ liệu ở bảng TaiKhoan và thao tác với các lớp giao diện. Lớp NhomQuyenService và NhomQuyenServiceBase: Thực hiện việc Xen, xem, xóa, sửa với cơ sở dữ liệu ở bảng NhomQuyen và thao tác với các lớp giao diện. Lớp PhanQuyenService và PhanQuyenServiceBase: Thực hiện việc Xen, xem, xóa, sửa với cơ sở dữ liệu ở bảng PhanQuyen và thao tác với các lớp giao diện. Lớp PhongBanService và PhongBanServiceBase: Thực hiện việc Xen, xem, xóa, sửa với cơ sở dữ liệu ở bảng PhongBan và thao tác với các lớp giao diện. Lớp QuanHeNhanVienService và QuanHeNhanVienServiceBase: Thực hiện việc Xen, xem, xóa, sửa với cơ sở dữ liệu ở bảng QuanHeNhanVien và thao tác với các lớp giao diện. Lớp QuanHePhongBanService và QuanHePhongBanServiceBase: Thực hiện việc Xen, xem, xóa, sửa với cơ sở dữ liệu ở bảng QuanHePhongBan và thao tác với các lớp giao diện. Lớp NoiDungGiaoViecService và NoiDungGiaoViecServiceBase: Thực hiện việc Xen, xem, xóa, sửa với cơ sở dữ liệu ở bảng NoiDungGiaoViec và thao tác với các lớp giao diện. Lớp TaiKhoanService và TaiKhoanServiceBase: Thực hiện việc Xen, xem, xóa, sửa với cơ sở dữ liệu ở bảng TaiKhoan và thao tác với các lớp giao diện. Các lớp thực thể: Lớp CongViec: Các thuộc tính: Tên công việc, nội dung, ngày tạo, người tạo, ngày giao, người giao, độ khẩn, hạn giải quyết, trạng thái, khối lượng, ngày kết thúc công việc. Lớp NhanVien: Các thuộc tính: Mã nhân viên, tên nhân viên, phòng ban, số thứ tự hiển thị, địa chỉ, mật khẩu. Lớp QuanLyCongViec : Các thuộc tính: Người quản lý, chức danh quản lý, tên công việc, trạng thái . Lớp NhomQuyen : Các thuộc tính: Tên nhóm quyền, mã nhóm quyền. Lớp PhongBan : Các thuộc tính: Tên phòng, mã phòng, địa chỉ, số điện thoại, số thứ tự hiển thị . Lớp ChucDanhQuanLy: Các thuộc tính: Tên chức danh, mã chức danh, địa chỉ, số điện thoại, số thứ tự hiển thị. Lớp GiaoViec: Các thuộc tính: ID, Mã giao việc, Mã người giao, Mã nhân viên được giao, Hướng dẫn thực hiện, Mã tính cấp thiết. Lớp NoiDungGiaoViec: Các thuộc tính: ID, Mã giao việc, Mã công việc, Thời gian bắt đầu, Thời gian yêu cầu kết thúc, Trạng thái, Thời gian kết thúc thực tế, Nội dung giải quyết. Lớp TinhCapThiet: Các thuộc tính: Mã tính cấp thiết, Tên tính cấp thiết. Lớp ChucNang: Các thuộc tính: Mã chức năng, Tên chức năng. Lớp TaiKhoan: Các thuộc tính: Username, Password, Mã Nhân viên. Lớp QuanHePhongBan: Các thuộc tính: Mã phòng, Mã phòng quản lý Lớp QuanHeNhanVien: Các thuộc tính: Mã Nhân viên, Mã Nhân viên quản lý. Lớp PhanQuyenChucNang: Các thuộc tính: ID, Mã nhóm quyền, Mã chức năng. Áp dụng các mẫu (patterns) trong việc thiết kế cho các ca sử dụng: Gói ca sử dụng Đăng nhập hệ thống Ca sử dụng Đăng nhập Chưa áp dụng mẫu Biểu đồ lớp thiết kế tham gia thực thi ca sử dụng Hình 3.13: Biểu đồ lớp thiết kế thực thi ca sử dụng Đăng nhập Áp dụng mẫu Singleton Áp dụng mẫu Singleton vào ca sử dụng đăng nhập cho phép các người dùng chỉ login một lần trên toàn hệ thống. Những giá trị, thông tin của người dùng sẽ được lưu lại trong suốt quá trình chạy chương trình. Bất cứ lúc nào người phát triển đều có thể làm việc với giá trị đó. Mẫu Singleton đảm bảo lớp NhanVien chỉ có thể tạo được một thể hiện duy nhất. Cấu trúc mẫu Singleton: Hình 3.14: Biểu đồ lớp thiết kế ca sử dụng Đăng nhập áp dụng mẫu Singleton Mẫu Singleton là giải pháp thiết kế cho phép lớp NhanVien có thể tự kiểm soát thể hiện của nó. Theo giải pháp này, lớp NhanVien được thêm một thuộc tính tĩnh (static) lưu thể hiện của lớp NhanVien và một phương thức tĩnh để người dùng bất cứ lúc nào đều có thể truy xuất đến thể hiện duy nhất đó. 3.5.2. Gói ca sử dụng Quản lý giải quyết công việc a. Ca sử dụng Cập nhật công việc Chưa áp dụng mẫu Biểu đồ lớp thiết kế tham gia thực thi ca sử dụng Hình 3.15: Biểu đồ lớp thiết kế thực thi ca sử dụng Tạo công việc mới Áp dụng mẫu Observer vào ca sử dụng tạo công việc mới Màn hình giao diện chính có các đối tượng biểu diển các trạng thái xử lý công việc khác nhau. Các đối tượng menu liên kết thể hiện trạng thái cần cập nhật thông tin khi nào có công việc mới, có bao nhiêu công việc đang giải quyết, chưa giải quyết hoặc đã giải quyết xong trong tháng, màn hình thể hiện danh sách và nội dung công việc cần được đồng bộ với cơ sở dữ liệu để luôn thể hiện công việc và nội dung mới nhất. Khi có một công việc mới được tạo ra, hệ thống phải tự động thông báo và đồng bộ thông tin, nội dung, trạng thái trên các đối tượng liên quan của tất cả các máy tính trạm đang kết nối vào hệ thống. Với việc thiết kế tập trung, để thực hiện được việc này, ta phải tạo các dịch vụ chạy ngầm trên máy chủ, theo định kỳ thời gian dịch vụ này sẽ tiến hành đồng bộ dữ liệu công việc mới nhất trên máy chủ và thể hiện lên các máy trạm. Với giải pháp này, khi không có sự thay đổi hay thêm mới công việc thì hệ thống vẫn tiến hành đồng bộ liên tục, điều này làm giảm thiểu dung lượng và tài nguyên của hệ thống để thực hiện các tác vụ khác. Giải pháp thiết kế mẫu Observer cho phép giải quyết trường hợp này, khi một đối tượng CongViec thay đổi nội dung hoặc trạng thái thì tất cả các đối tượng liên quan cũng sẽ được thông báo và câp nhật theo. Việc gửi thông báo và cập nhật nội dung cho các đối tượng liên quan được kiểm soát và thực hiện hoàn toàn chủ động. Sử dụng mẫu Observer, ta có thể thêm vào một hoặc nhiều đối tượng cần cập nhật và đồng bộ dữ liệu mà không cần sửa đổi lại lớp điều khiển. Cấu trúc mẫu Observer: Ta gắn các lớp giao diện cần cập nhật và đồng bộ các thay đổi trạng thái công việc cho lớp ConcreteObserver: FormMain, FormThongTinCongViec. Lớp Observer là lớp thuần ảo khai báo giao diện cập nhât trạng thái cho các lớp ConcreteObserver. Lớp CongViec tương ứng với lớp ConcreteSubject. Hình 3.16. Biểu đồ lớp thiết kế thực thi ca sử dụng Tạo công việc mới áp dụng mẫu thiết kế Observer Các đối tượng thuộc các lớp ConcreteObserver khi khởi tạo phải dựa trên một đối tượng thuộc lớp CongViec để lấy thông tin trạng thái hiện tại của đối tượng CongViec. Các đối tượng ConcreteObserver sẽ được thông báo để lấy thông tin về nội dung và trạng thái của đối tượng CongViec mỗi khi đối tượng lớp CongViec có sự thay đổi về nội dung và trạng thái. Ở lớp DK_CongViec, tất cả các phương thức thay đổi nội dung và trạng thái của công việc như TaoMoi_CV(), Sua_CongViec(), Xoa_CongViec(), Xoa_ChiDao(), CapNhat_PhanViec(), Them_ChiDao(), Sua_ChiDao(), ThemND_GiaiQuyet(), SuaND_GiaiQuyet(), XoaND_GiaiQuyet() đều có lời gọi thủ tục Notify() của lớp cha là Subject. Thủ tục Notify() của lớp Subject thực hiện duyệt tất cả các đối tượng ConcreteObserver thừa kế từ lớp Observer lưu trong mảng con trỏ ArrObserver và gọi hàm Update() để thực hiện cập nhật lại thông tin công việc. Việc áp dụng mẫu thiết kế thực thi cho các ca sử dụng Sửa nội dung công việc, xoá công việc, Chỉ đạo công việc, Giải quyết công việc được biểu diễn tương tự mô hình trên. b. Ca sử dụng Phân công việc Chưa áp dụng mẫu Biểu đồ lớp thiết kế tham gia thực thi ca sử dụng Hình 3.19: Biểu đồ lớp thiết kế thực thi ca sử dụng Phân công việc Áp dụng mẫu State vào ca sử dụng Phân công việc Các tác nhân tương tác vận hành hệ thống quản lý hoạt động giao công việc thuộc bốn cấp quản lý đó là: cấp Giám đốc quản lý và thao tác với công việc trong pham vi toàn công ty, cấp Lãnh đạo phòng/tổ/nhóm quản lý và thao tác với công việc trong pham vi tương ứng phòng/tổ/nhóm mà mình lãnh đạo, cấp Chủ trì công việc quản lý và thao tác với công việc trong pham vi hồ sơ công việc liên quan do mình chủ trì, cấp Nhân viên xem và giải quyết các công việc do lãnh đạo hoặc Chủ trì công việc phân. Việc khởi tạo các đối tượng thuộc các lớp giao diện và trình diễn thông tin liên quan (FormMain (thực đơn chức năng), FormThongTinCongViec, FormGiaoViec, FormBaoCaoThongKe, FormHienThiBaoCao) căn cứ vào cấp lãnh đạo tương ứng của tác nhân để hiển thị các thông tin phù hợp với cấp quản lý của tác nhân. Khi khởi tạo hoặc hiển thị thông tin các lớp giao diện này căn cứ vào cấp lãnh đạo của người dùng đang đăng nhập vào hệ thống để hiện thị thông tin và giao diện tương ứng với cấp quản lý đó. Việc làm này dẫn đến có rất nhiều thủ tục và module có chức năng giống nhau được lặp trên các lớp giao diện khác nhau. Khi cần thay đổi chức năng của một cấp quản lý hay thêm/bớt một cấp quản lý ta phải sửa đổi lại toàn bộ source code của các lớp giao diện liên quan. Điều này làm chương trình không mềm dẽo lúc triển khai áp dụng thực tế, việc nâng cấp và bảo trì gặp nhiều khó khăn. Giải pháp thiết kế áp dụng mẫu State khắc phục được các nhược điểm trên. Việc áp dụng mẫu State cho phép các đối tượng có thể tự điều chỉnh hành vi khi trạng thái của nó thay đổi. Cấu trúc mẫu State: Áp dụng mẫu thiết kế State vào ca sử dụng Phân công việc, ta gán các lớp giao diện FormThongTinCongViec, FormGiaoViec tương ứng với lớp Context ở sơ đồ trên. Lớp NhanVien tương ứng với lớp State ở sơ đồ trên. Các lớp StateLDCongTy, StateLDPhong, StateChuTriCV, StateNhanVien được tạo ra tương ứng với các lớp ConcreteStateA, ConcreteStateB, ... Việc cài đặt các ứng xử về thao tác và trình diễn nội dung lên giao diện của các lớp thuộc ConText được thực hiện ở lớp trạng thái ConcreteState tương ứng. Cụ thể phương thức HienThiDS_CongViec của lớp FormThongTinCongViec khi được gọi nó sẽ gọi phương thức tương ứng của đối tượng trạng thái hiện tại thuộc một trong các lớp LanhDaoCongTy, LanhDaoPhong, ChuTriCongViec, NhanVien. Hình 3.20. Biểu đồ lớp thiết kế thực thi ca sử dụng Phân công việc áp dụng mẫu thiết kế State Tương tự, ta áp dụng mẫu State cho các ca sử dụng Tạo công việc, Sửa nội dung công việc, Xoá công việc, Chỉ đạo công việc. Gói ca sử dụng phục vụ tra cứu, báo cáo, thống kê Ca sử dụng Tổng hợp báo cáo công việc Chưa áp dụng mẫu Biểu đồ lớp thiết kế tham gia thực thi ca sử dụng Hình 3.23: Biểu đồ lớp thiết kế thực thi ca sử dụng Báo cáo công việc Áp dụng mẫu Composite vào ca sử dụng tổng hợp báo cáo công việc Mỗi công việc có trạng thái kết thúc và chưa kết thúc, có số lượng ngày, số lượng người giải quyết công việc. Một công việc có thể có nhiều công việc con, do đó để tổng hợp số nhân công, khối lượng thời gian thực hiện xong công việc cần phải duyệt qua từng đối tượng công việc con để tính toán và tổng hợp lên. Mẫu Composite thực hiện gom các đối tượng vào trong một cấu trúc hình cây để thể hiện được cấu trúc tổng quát của nó. Nó cho phép chúng ta có sự giao tiếp giống nhau với các đối tượng riêng lẻ khác nhau. Ta chia các công việc thành hai loại Công việc đơn và Công việc phức. Công việc đơn là các công việc độc lập, không có công việc con. Công việc phức là các công việc có công việc con. Ta xây dựng thêm hai lớp CongViecDon và lớp CongViecGop, hai lớp này kế thừa từ lớp tổng quát hơn là lớp CongViec. Đối tượng CongViecGop có thể chứa đối tượng CongViecDon và CongViecGop khác. Ở biểu đồ cộng tác ca sử dụng báo cáo công việc, thủ tục HienThiBC() sẽ lấy danh sách các công việc thoả mãn điều kiện báo cáo và duyệt với mỗi công việc gọi các thủ tục TongHop_NhanCong(), TongHop_TrangThai (), HienThi_ThongTin().Với đối tượng thuộc lớp CongViecDon các hàm trên sẽ thực hiện và trả về một giá trị cụ thể. Với các đối tượng thuộc lớp CongViecGop các hàm trên sẽ duyệt hết tất cả các công việc con của nó, mỗi công việc con lại gọi hàm tương ứng để thực hiện. Biểu đồ lớp thiết kế áp dụng mẫu Composite vào lớp CongViec để thực hiện báo cáo công việc như sau: Hình 3.24: Áp dụng mẫu thiết kế Composite vào lớp CongViec thực hiện tổng hợp, báo cáo, hiển thị thông tin trong ca sử dụng Báo cáo công việc Tương tự, ta áp dụng mẫu Composite cho các ca sử dụng Sửa nội dung công việc, Xoá công việc,Chỉ đạo công việc, Phân công việc để hiển thị danh sách công việc và thông tin công việc. Thiết kế một số lớp Trong bước này, ta thực hiện thiết kế một số lớp điển hình dựa trên hệ quản trị cơ sở dữ liệu SQLServer 2005. 3.6.1. Lớp giao diện a. Lớp FormThongTinCongViec a.1. Bảng thuộc tính Tên Kiểu dữ liệu Mô tả FormCha Nvarchar(50) Tên form gọi form này TrangThai Smallint Trạng thái đang xử lý: 0: đang xem (giá trị mặc định), 1: Đang sửa, 2: Đang xoá, 3: Đang cập nhật bản ghi mới. a.2. Bảng các phương thức Tên phương thức Mô tả GetTrangThai() Lấy thông tin trạng thái HienThi_TT() Hiển thị thông tin chi tiết của một công việc HienThiNV_GQ() Hiển thị danh sách Nhân viên được phân giải quyết công việc. KiemTra_TT() Kiểm tra tính hợp lệ của các thông tin trên form chi tiết. Sua_CongViec() Gọi phương thức Sua_CongViec() của lớp DK_CongViec để sửa nội dung công việc. KhoiTaoFrmGiaiQuyet() Gọi phương thức KhoiTao() của lớp FrmGiaiQuyetCV để khởi tạo giao diện nhập thông tin giải quyết công việc. KhoiTaoFrmPhanViec() Gọi phương thức KhoiTao() của lớp FrmPhanViec để khởi tạo giao diện nhập thông tin phân công việc. KhoiTaoFrmChiDao() Gọi phương thức KhoiTao() của lớp FrmChiDaoCV để khởi tạo giao diện nhập thông tin chỉ đạo công việc. b. Lớp FormGiaoViec b.1. Bảng thuộc tính Tên Kiểu dữ liệu Mô tả FormCha Nvarchar(50) Tên form gọi form này TrangThai Smallint Trạng thái đang xử lý: 0: đang xem (giá trị mặc định), 1: Đang sửa, 2: Đang xoá, 3: Đang cập nhật bản ghi mới. b.2. Bảng các phương thức Tên phương thức Mô tả GetTrangThai() Lấy thông tin trạng thái KhoiTao() Khởi tạo giá trị các thuộc tính. HienThiDS_ChiDao() Hiển thị danh sách các lần chỉ đạo công việc. KiemTra_TT() Kiểm tra tính hợp lệ của các thông tin trên form trước khi cập nhật. LayDS_ChiDao() Gọi phương thức LayDS_ChiDao() của lớp DK_CongViec để lấy danh sách các lần chỉ đạo. Them_ChiDao() Gọi phương thức Them_ChiDao() của lớp DK_CongViec để thêm chỉ đạo mới Sua_ChiDao() Gọi phương thức Sua_ChiDao() của lớp DK_CongViec để sửa nội dung chỉ đạo. Xoa_ChiDao() Gọi phương thức Xoa_ChiDao() của lớp DK_CongViec để xoá chỉ đạo. 3.6.2. Lớp điều khiển Trong bước này, ta thực hiện thiết kế một số lớp điều khiển trên môi trường VisualStudio .NET 2008. a. Lớp DK_CongViec a.1. Bảng thuộc tính Tên Kiểu dữ liệu Mô tả FormGoi String Tên form gọi form này a.2. Bảng các phương thức Tên phương thức Mô tả Set_FormGoi() Đặt giá trị cho thuộc tính FormGoi TaoMoi_CV() Gọi phương thức TaoMoi_CV() của lớp CongViec để thêm công việc mới. LayDS_CongViec() Gọi phương thức LayDanhSach() của lớp CongViec để lấy danh sách công việc. LayTT_CongViec() Gọi phương thức LayThongTin() của lớp CongViec và phương thức GetTen() của lớp LoaiCongViec để lấy thông tin về công việc. Gọi phương thức HienThi_TT() để hiển thị thông tin công việc lên form tương ứng. LayDS_ChucDanhQL() Gọi phương thức LayDanhSach() của lớp ChucDanhQuanLy để lấy danh sách chức danh. LayDS_ChiDao() Gọi phương thức LayDanhSach() của lớp ChiDao để lấy danh sách các lần chỉ đạo. Them_ChiDao() Gọi phương thức Them() của lớp ChiDao để thêm thông tin lần chỉ đạo mới. Sua_ChiDao() Gọi phương thức Sua() của lớp ChiDao để sửa thông tin chỉ đạo. Xoa_ChiDao() Gọi phương thức Xoa() của lớp ChiDao để xoá chỉ đạo. LayND_GiaiQuyet() Gọi phương thức GetNoiDungGQ() của lớp GiaiQuyet để lấy nội dung giải quyết công việc. ThemND_GQ() Gọi phương thức Them() của lớp GiaiQuyet để thêm nội dung giải quyết mới. SuaND_GQ() Gọi phương thức Sua() của lớp GiaiQuyet để sửa nội dung giải quyết. HienThi_TT() Gọi phương thức HienThi_TT() của lớp có tên bằng giá trị của thuộc tính FormGoi. HienThiNV_GQ() Gọi phương thức LayDS_QuanLyCV() của lớp QuanLyCongViec, phương thức GetTenNhanVien() của lớp NhanVien, phương thức GetTenPhong() của lớp PhongBan. Gọi phương thức HienThiNV_GQ() của lớp FrmTT_CongViec để hiển thị danh sách nhân viên được phân giải quyết công việc. Sua_CongViec() Gọi phương thức Sua() của lớp CongViec để sửa thông tin công việc. Xoa_CongViec() Gọi phương thức Xoa() của lớp CongViec, phương thức Xoa() của lớp QuanLyCongViec, phương thức Xoa() của lớp GiaiQuyet, phương thức Xoa() của lớp ChiDao để xoá công việc và các thông tin liên quan. CapNhat_PhanViec() Gọi phương thức CapNhat_PhanViec() của lớp QuanLyCongViec để cập nhật thông tin phân việc. b. Lop DK_VeBieuDo b.1. Bảng thuộc tính Tên Kiểu dữ liệu Mô tả TieuDe String Tiêu đề của biểu đồ KieuBD Interger Kiểu biểu đồ objCongViec CongViec Đối tượng lưu thông tin công việc tổng hợp trước lúc vẽ biểu đồ. b.2. Bảng các phương thức Tên phương thức Mô tả VeBieuDo() Gọi phương thức LayDS_QuanHeCV() của lớp CongViec, phương thức LayDS_QuanLyCV() của lớp QuanLyCongViec, phương thức GetTenPhong() của lớp PhongBan, phương thức GetTenNhanVien() của lớp NhanVien để tổng hợp thông tin đưa vào biến thuộc tính objCongViec. HienThiBieuDo() Gọi phương thức HienThiBD() của lớp Frm_HienThiBD để hiển thị biểu đồ. 3.6.3. Lớp thực thể a. Lớp CongViec a.1. Bảng thuộc tính Tên Kiểu dữ liệu Mô tả MaCongViec Int Mã công việc (trường tự động tăng) TenCongViec Nvarchar(255) Tên công việc NoiDungCongViec Nvarchar(5000) Nội dung công việc MaNguoiTao int Mã người tạo DonViTinhKL Nvarchar(50) Đơn vị tính khối lượng. a.2. Bảng các phương thức Tên phương thức Mô tả TaoMoi_CV() + Đầu vào: Giá trị tất cả các thuộc tính của lớp. + Giá trị trả về: boolean +Ý nghĩa: Tạo mới một công việc. Sua() + Đầu vào: Giá trị các thuộc tính của lớp và Mã công việc cần sửa. +Giá trị trả về: boolean +Ý nghĩa: Sửa thông tin một công việc. Xoa() + Đầu vào: Mã công việc cần xoá +Giá trị trả về: boolean +Ý nghĩa: Xoá một công việc. LayThongTin() + Đầu vào: Mã công việc +Giá trị trả về: Các thông tin của công việc +Ý nghĩa: Lấy toàn bộ thông tin chi tiết của một công việc. LayDanhSach() + Đầu vào: Danh sách Mã công việc + Giá trị trả về: Danh sách công việc. +Ý nghĩa: Lấy toàn bộ danh sách công việc có Mã công việc thuộc danh sách Mã đưa vào. Get_TT_PhanGQ() + Đầu vào: Mã công việc + Giá trị trả về: Tình trạng phân giải quyết +Ý nghĩa: Lấy tình trạng phân giải quyết của công việc Get_TT_GQ() + Đầu vào: Mã công việc + Giá trị trả về: Tình trạng giải quyết +Ý nghĩa: Lấy tình trạng giải quyết công việc Get_TenCV() + Đầu vào: Mã công việc + Giá trị trả về: Tên công việc +Ý nghĩa: Lấy tên công việc có mã bằng đối số Get_DoKhan() + Đầu vào: Mã công việc + Giá trị trả về: Độ khẩn của công việc +Ý nghĩa: Lấy độ khẩn của công việc có mã bằng đối số Get_TienDo() + Đầu vào: Mã công việc + Giá trị trả về: Tiến độ thực hiện công việc +Ý nghĩa: Lấy thông tin tiến độ thực hiện công việc b. Lớp NhanVien b.1. Bảng thuộc tính Tên Kiểu dữ liệu Mô tả ID Int Số thứ tự Nhân viên(khóa chính) Ma_NV Int Mã số nhân viên (là trường tự động tăng). HoVaTen Nvarchar(50) Họ và tên nhân viên MaChucVu int Mã chức vụ công tác DiaChi Nvarchar(255) Địa chỉ làm việc DienThoai Nvarchar(20) Số điện thoại liên hệ Ma_Phong Int Mã phòng b.2. Bảng các phương thức Tên phương thức Mô tả Them() + Đầu vào: Giá trị tất cả các thuộc tính của lớp. + Giá trị trả về: boolean +Ý nghĩa: Tạo mới một Nhân viên Sua() + Đầu vào: Giá trị các thuộc tính của lớp và Mã nhân viên cần sửa. +Giá trị trả về: boolean +Ý nghĩa: Sửa thông tin một Nhân viên Xoa() + Đầu vào: Mã Nhân viên cần xoá +Giá trị trả về: boolean +Ý nghĩa: Xoá một Nhân viên. Get_TenNV() + Đầu vào: Mã Nhân viên +Giá trị trả về: boolean +Ý nghĩa: Tên viết tắt của Nhân viên có Mã số bằng đối số. Get_TenDD() + Đầu vào: Mã Nhân viên +Giá trị trả về: boolean +Ý nghĩa: Tên đầy đủ của Nhân viên có Mã số bằng đối số. Get_DinhDanh() + Đầu vào: Mã người dùng + Giá trị trả về: định danh của người dùng +Ý nghĩa: Lấy tên định danh của người dùng Get_Domain() + Đầu vào: Mã người dùng + Giá trị trả về: Tên domain +Ý nghĩa: Lấy tên domain của người dùng Get_MatKhau() + Đầu vào: Mã người dùng + Giá trị trả về: mật khẩu của người dùng +Ý nghĩa: Lấy mật khẩu của người dùng Set_MatKhau() + Đầu vào: Mã người dùng, mật khẩu + Giá trị trả về: boolean +Ý nghĩa: đặt lại mật khẩu cho người dùng, trả về True nếu đặt thành công, trả về False nếu không đặt được. LayDanhSach() + Đầu vào: Mã phòng ban +Giá trị trả về: Danh sách Nhân viên +Ý nghĩa: Lấy toàn bộ danh sách Nhân viên có Mã phòng bằng giá trị đối số đưa vào. LayThongTin() + Đầu vào: Mã Nhân viên +Giá trị trả về: Các thông tin của nhân viên +Ý nghĩa: Lấy toàn bộ thông tin chi tiết của một Nhân viên Get_LanhDao() + Đầu vào: Mã Nhân viên +Giá trị trả về: boolean +Ý nghĩa: Trả về giá trị True hoặc False tương ứng nhân viên là Lãnh đạo hay không. Get_CongTac() + Đầu vào: Mã Nhân viên +Giá trị trả về: boolean +Ý nghĩa: Trả về giá trị True hoặc False tương ứng nhân viên còn công tác hay không. Get_TenPhong() + Đầu vào: Mã Nhân viên +Giá trị trả về: Tên phòng +Ý nghĩa: Lấy tên phòng của Nhân viên Get_ChucVu() + Đầu vào: Mã Nhân viên +Giá trị trả về: Tên chức vụ +Ý nghĩa: Lấy tên chức vụ của Nhân viên c. Lớp GiaoViec c.1. Bảng thuộc tính Tên Kiểu dữ liệu Mô tả ID Int Số thứ tự MaGiaoViec Int Mã giao việc MaNguoiGiao Int Mã người giao việc MaNhanVienDuocGiao int Mã nhân viên được giao HuongDanThucHien Nvarchar(255) Hướng dẫn thực hiện. c.2. Bảng các phương thức Tên phương thức Mô tả Them() + Đầu vào: Giá trị tất cả các thuộc tính của lớp. + Giá trị trả về: boolean +Ý nghĩa: Tạo mới một lần chỉ đạo mới, trả về True nếu tạo thành công, trả về False nếu tạo không thành công Sua() + Đầu vào: Giá trị các thuộc tính của lớp và Mã chỉ đạo cần sửa. + Giá trị trả về: boolean +Ý nghĩa: Sửa thông tin một chỉ đạo Xoa() + Đầu vào: Mã chỉ đạo cần xoá + Giá trị trả về: boolean +Ý nghĩa: Xoá một chỉ đạo Get_DanhSach() + Đầu vào: Mã công việc + Giá trị trả về: danh sách các lần chỉ đạo +Ý nghĩa: Lấy danh sách các lần chỉ đạo có mã công việc bằng đối số. d. Lớp NoiDungGiaoViec d.1. Bảng thuộc tính Tên Kiểu dữ liệu Mô tả ID Int Số thứ tự MaGiaoViec Int Mã giao việc MaCongViec Int Mã công việc giao ThoiGianBD Datetime Ngày bắt đầu ThoiGianYCKT Datetime Ngày yêu cầu kết thúc NoiDungGQ Nvarchar(255) Nội dung giải quyết TrangThai Smallint Khối lượng giải quyết công việc (từ 0% đến 100%), mặc định =0%. ThoiGianKTTT Datetime Thời gian kết thúc thực tế d.2. Bảng các phương thức Tên phương thức Mô tả Them() + Đầu vào: Giá trị tất cả các thuộc tính của lớp. + Giá trị trả về: boolean +Ý nghĩa: Tạo mới một lần giải quyết mới, trả về True nếu tạo thành công, trả về False nếu tạo không thành công Sua() + Đầu vào: Giá trị các thuộc tính của lớp và Mã giải quyết cần sửa. + Giá trị trả về: boolean +Ý nghĩa: Sửa thông tin một lần giải quyết Xoa() + Đầu vào: Mã giải quyết cần xoá + Giá trị trả về: boolean +Ý nghĩa: Xoá một giải quyết Get_DanhSach() + Đầu vào: Mã công việc + Giá trị trả về: danh sách các lần giải quyết +Ý nghĩa: Lấy danh sách các lần giải quyết có mã công việc bằng đối số. Get_NoiDung_GQ() + Đầu vào: Mã công việc, mã Nhân viên + Giá trị trả về: danh sách các lần giải quyết +Ý nghĩa: Lấy danh sách các lần giải quyết có mã công việc bằng đối số Mã công việc của Nhân viên có mã bằng giá trị đối số mã Nhân viên. e. Lớp PhongBan e.1. Bảng thuộc tính Tên Kiểu dữ liệu Mô tả Ma_Phong Int Mã số phòng/ban (trường tự động tăng) TenPhong Nvarchar(255) Tên phòng/ban DiaChi Nvarchar(255) Địa chỉ phòng/ban SoDienThoai Nvarchar(20) Số điện thoại của phòng/ban e.2. Bảng các phương thức Tên phương thức Mô tả Them() + Đầu vào: Giá trị tất cả các thuộc tính của lớp. + Giá trị trả về: boolean +Ý nghĩa: Tạo một phòng ban mới, trả về True nếu tạo thành công, trả về False nếu tạo không thành công Sua() + Đầu vào: Giá trị các thuộc tính của lớp và Mã phòng cần sửa. + Giá trị trả về: boolean +Ý nghĩa: Sửa thông tin một phòng ban Xoa() + Đầu vào: Mã phòng ban cần xoá + Giá trị trả về: boolean +Ý nghĩa: Xoá một phòng ban đã có Get_TenPhong() + Đầu vào: Mã phòng + Giá trị trả về: Tên phòng +Ý nghĩa: Lấy tên phòng có Mã phòng bằng giá trị đối số. Get_DanhSach() + Đầu vào: Không có + Giá trị trả về: danh sách các phòng ban +Ý nghĩa: Lấy danh sách các phòng ban KẾT LUẬN Các kết quả đạt được Nắm rõ được khái niệm, đặc điểm và phân loại Framework qua đó biết được hướng xây dựng một Framework cụ thể. Tìm hiểu mô hình 3 lớp phục vụ cho việc thiết kế và mã hóa chương trình một cách khoa học và dễ quản lý nhất. Tìm hiểu các ứng dụng thực tế và nhận ra được tầm quan trọng và tiện dụng của một Framework. Tìm hiểu các bài toán liên quan đến luồng công việc như “Quản lý luồng công việc tại công ty thiết kế đồ nội thất gia đình” và “Quản lý tính tiền lương cho giáo viên” qua đó rút ra được bài toán tổng quát “Giao việc và xử lý luồng công việc” tại một doanh nghiệp hay một công ty nào đó. Vận dụng kiến thức đã được học về “Phân tích thiết kế hướng đối tượng”, xây dựng các Usecase(Ca sử dụng) đến mức chi tiết cho bài toán “Luồng công việc”. Áp dụng các Mẫu(Patterns) vào việc tổng quát hóa các Usecase và xây dựng biểu đồ lớp thiết kế thực thi các ca sử dụng đó Xây dựng, mã hóa Framework Luồng công việc theo mô hình 3 lớp: Entity, ServiceBase, SqlBase sử dụng ngôn ngữ lập trình C# dựa trên nền tảng .NET 3.5 và SQL Server 2005 của Microsoft. Xây dựng một phần mềm nho nhỏ ứng dụng Framework đã thực hiện. Những vấn đề tồn tại và hướng mở rộng và phát triển Do thời gian có hạn, luận văn mới chỉ dừng lại ở việc xây dựng và áp dụng một vài mẫu thiết kế để thiết kế và cài đặt, xây dựng phần mềm hệ thống. Để có được một hệ thống hoàn chỉnh, mềm dẽo vận hành trong thực tế, luận văn cần được nghiên cứu và phát triển hơn nữa với việc áp dụng các mẫu thiết kế vào các quy trình tổ chức, xử lý, tổng hợp công việc. Đó là thiết kế chi tiết các gói ca sử dụng, chỉ ra và mô tả chi tiết các thuộc tính và các phương thức thực hiện trong từng lớp của hệ thống, thiết kế một số thuật toán xử lý chi tiết, áp dụng các mẫu thiết kế có thể. Thực hiện xây dựng hệ thống trên một công cụ lập trình dựa theo mô hình phân tích thiết kế đã xây dựng. Hệ thống có thể mở rộng để kết nối với hệ thống quản lý công văn. Các công văn đến được chuyển thành công việc, công văn được xem như là nội dung công việc. Việc giải quyết công văn được đưa tích hợp vào quy trình giải quyết công việc. Nghiên cứu phát triển chức năng tạo và tổ chức, giải quyết công việc thông qua mô hình đồ hoạ. Tạo sẵn các công cụ cho phép kéo thả và điền các thuộc tính công việc một cách trực quan trên màn hình máy tính. TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt [1]. Đặng Văn Đức (2002), Phân tích thiết kế hướng đối tượng bằng UML, NXB Giáo dục, Hà Nội. [2]. Nguyễn Văn Vỵ, Nguyễn Hữu Nguyên (biên dịch (2001)), Phân tích và thiết kế hướng đối tượng, Khoa Công Nghệ, ĐHQGHN, Hà Nội. [3]. Nguyễn Văn Vỵ (2002), Phân tích thiết kế các hệ thống thông tin hiện đại hướng cấu trúc và hướng đối tượng, tr.293-358, Nhà xuất bản Thống kê, Hà Nội. [4]. Nguyễn Văn Vỵ (biên dịch (2004), Applying UML and Patterns An Introduction to Object-Oriented Analysis and Design, Graig Lanrmen -1998, Khoa Công Nghệ, ĐHQGHN, Hà Nội. [5]. Đặng Sơn Lâm (2007), Ứng dụng Framework Higgins để phát triển một số ứng dụng, luận văn tốt nghiệp - Khoa Công Nghệ Thông Tin, Đại học Công Nghệ, ĐHQGHN. [6]. Vũ Văn Thạch(2006), Framework và ứng dụng trong lĩnh vực sử dụng lại, luận văn tốt nghiệp – Khoa Công Nghệ Thông Tin, Đại học Công Nghệ, ĐHQGHN. Tài liệu tiếng Anh [5]. Boggs, W. and Boggs, M. (1999), Mastering UML with Rational Rose, Sybex. [6]. Booch, G., Rumbaugh, J. and Jacobson, I. (1998), The Unified Modeling Language User Guide, NXB Wesley. [7]. Booch, G., Rumbaugh, J. and Jacobson, I. (1999), The Unified Software Development Process, NXB Wesley. [8]. Douglas C.Schmidt (1998), Introduction to Pattern and Frameworks, Vanderbilt University. [9]. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1994), Design Patterns: Elements of Reusable Object-Oriented Software, NXB Wesley. [10]. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1998), Design Patterns CD - Elements of Reusable Object Oriented Software, NXB Wesley. [11]. Fowler (1997), Analysis Patterns: Reusable Object Models, NXB Wesley. [12]. Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sornmerlad, Michael Stal (1996), Pattern-Oriented Software Architecture (Vol.1, Vol.2), John Wiley & Sons Ltd. [13]. Kim Waldén and Jean-Marc Nerson (1994), Seamless Object-Oriented Software Architecture, Designers & Patterns Ltd, Oxford. [14].Michael Kircher, Prashant Jain (2004), Pattern-Oriented Software Architecture: Patterns for Resource Management, Volume 3, John Wiley & Sons Ltd. [15].James W cooper (2002), Introduction to Design Patterns in C#, IBM T J Watson Research Center. [16].Zhiming Liu (2001), Object-Oriented Sofware Development Using UML, NXB UNI/IIST. Các trang Web [17]. [18]. [19]. [20]. [21]. Bộ công cụ [1]. Microsoft Visual Studio .NET 2008 [2]. SQL Server 2005. [3]. Microsoft Visio 2007

Các file đính kèm theo tài liệu này:

  • docKhung làm việc và ứng dụng cho bài toán luồng công việc.doc