Đề tài Khung làm việc - Framework và ứng dụng cho bài toán luồng công việc

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áchxâ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ộtvà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ộidung 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.5và ngôn ngữ lập trình C#.

pdf101 trang | Chia sẻ: nhungnt | Lượt xem: 2591 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Đề tài Khung làm việc - Framework 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
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Duy Hiệp KHUNG LÀM VIỆC VÀ ỨNG DỤNG CHO BÀI TOÁN LUỒNG CÔNG VIỆC KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công Nghệ Thông Tin HÀ NỘI - 2009 2 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Duy Hiệp KHUNG LÀM VIỆC VÀ ỨNG DỤNG CHO BÀI TOÁN LUỒNG CÔNG VIỆC KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công Nghệ Thông Tin Cán bộ hướng dẫn: PGS. TS. Nguyễn Văn Vỵ HÀ NỘI - 2009 i LỜI CẢM ƠN Lời đầu tiên em xin được gửi lời cảm ơn chân thành nhất tới thầy giáo PGS. TS. Nguyễn Văn Vỵ. Thầy đã giúp em trong việc định hướng đề tài, tìm hiểu tài liệu, nghiên cứu về Khung làm việc(Framework) và Luồng công việc(Workflow). Thầy cũng giúp đỡ em rất nhiều trong kỹ năng viết, trình bày khóa luận. Em xin một lần nữa được gửi lời cảm ơn chân thành nhất đến thầy! Em cũng được xin gửi lời cảm ơn chân thành nhất đến các thầy cô trong trường Đại học Công nghệ, đặc biệt các thầy cô trong khoa Công nghệ phần mềm. Các thầy cô đã tận tình dạy dỗ và tạo điều kiện cho em học tập để đạt được kết quả tốt như ngày hôm nay! Em xin chân thành cảm ơn các thầy cô! Cuối cùng em xin cảm ơn tới Gia đình, bố mẹ, bạn bè em đã luôn cổ vũ động viên, tạo điều kiện giúp đỡ em trong quá trình thực hiện khóa luận tốt nghiệp này! Hà Nội, ngày 11 tháng 05 năm 2009 Sinh viên Nguyễn Duy Hiệp ii 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#. iii 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. iv 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 - v 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 - vi 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 - vii 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 ......................................... - 68 - 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 - viii DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ Hình 1.1. Mối quan hệ giữa các thành phần khác nhau trong một framework [4] Hình 2.1. Higgins Trust Framework Hình 2.2. Kiến trúc của Higgins Hình 2.3. RP Enablement Hình 2.4. Kiến trúc Token Service Hình 2.5. Kiến trúc tổng quan về thiết kế của JhotDraw Hình 2.6 : Các mẫu thiết kế Hình 3.1: 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 Hình 3.2: Mô hình khái niệm hệ thống tổ chức và quản lý công việc tại công ty thiết kế đồ nội thất gia đình Hình 3.3: Sơ đồ hoạt động quản lý công việc quản lý tiền lương Hình 3.4: Mô hình miền lĩnh vực của bài toán quản lý tính tiền lương Hình 3.5. Mô hình phân cấp quản lý trong doanh nghiệp Hình 3.6: Sơ đồ tiến trình quản lý hoạt động giao công việc Hình 3.7: Mô hình khái niệm hệ thống tổ chức và quản lý giao công việc Hình 3.8: Gói ca sử dụng Đăng nhập hệ thống Hình 3.9: Gói ca sử dụng Quản lý giải quyết công việc Hình 3.10: Gói ca sử dụng Quản trị tiện ích Hình 3.11: Gói ca sử dụng Báo cáo thống kê Hình 3.12: Gói ca sử dụng Quản trị phân quyền người dùng Hình 3.13: Biểu đồ lớp thiết kế thực thi ca sử dụng Đăng nhập Hình 3.14: Biểu đồ lớp thiết kế ca sử dụng Đăng nhập áp dụng mẫu Singleton 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 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 Hình 3.17: Biểu đồ lớp thiết kế thực thi ca sử dụng Sửa nội dung công việc ix Hình 3.18: Biểu đồ lớp thiết kế thực thi ca sử dụng Xoá công việc Hình 3.19: Biểu đồ lớp thiết kế thực thi ca sử dụng Phân công việc 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 Hình 3.21: Biểu đồ lớp thiết kế thực thi ca sử dụng Chỉ đạo công việc Hình 3.22: Biểu đồ lớp thiết kế thực thi ca sử dụng Giải quyết công việc 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 Hình 3.24: Áp dụng mẫu thiết kế Composite vào lớp CongViec DANH MỤC CÁC BẢNG Bảng 2.1: Các chức năng hệ thống Bảng 2.2: Các khái niệm dự tuyển cho nghiệp vụ quản lý giao việc Bảng 2.3: Mô tả các tác nhân trong hệ thống - 1 - 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. - 2 - 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