4. Triển khai SOA và Webservice trong ứng dụng thực tế
4.3.11 Bảng trách nhiệm yêu cầu an toàn
Stt Nghiệp vụ Người dùng Phần mềm Ghi chú
1 Phục hồi Cho biết task,
user, project cần phục hồi
Phục hồi dữ liệu
user, project cần hủy
3 Không cho phép xóa Thực hiện theo
đúng yêu cầu
4.3.12 Yêu cầu bảo mật
Stt Nghiệp vụ Admin Project Manager Team Leader Member 1 Projects x x 2 Milestones x x x x
3 Tasklists (To-do lists) x x x x
4 Messaging / Instant Messaging x x x x
5 Calendaring x x x x
6 File management x x x
7 Time tracking x x x
8 Permissions (role based) x
9 Filesharing x x x
10 Tagging x x x x
11 Messageboard x
12
Excel files from activity logs and
timetracker reports x x
13 PDF export x x
14
Synchronization of calendars via
iCal task export x x x x
15 RSS feeds for messages and tasks x x x x
16 E-mail notification x x x x
17 Multilanguage x x x x
18 Search x x x x
19 Fully themeable x x x x
20
Activity logs and messages in PDF
format x x
21 Full UTF8 support x x x z
1
Quản trị hệ thống
quyền hạn, cung cấp đầy đủ tên công ty, …
Ghi nhận và thực hiện đúng 2 Project manager Cung cấp tên và mật khẩu
Ghi nhận và thực hiện đúng 3 Team Leader Cung cấp tên và mật khẩu
Ghi nhận và thực hiện đúng
4 Member Cung cấp tên và mật khẩu
Ghi nhận và thực hiện đúng
---oOo---
4.4. User-case
4.4.1 Mục đích
Mô tả sự tương tác giữa các tác nhân bên ngoài (actor) và hệ thống. Đồng thời nó cũng thể hiện ứng xử của hệ thống đối với bên ngoài như thế nào, trong những hoàn cảnh nhất định, xét từ quan điểm của người sử dụng.
Tóm lại, tài liệu này mô tả các yêu cầu đối với hệ thống, có nghĩa là những gì hệ thống phải làm chứ không nhằm mục đích mô tả hệ thống phải làm như thế nào.
4.4.2 Các quy ước
Sau đây là các quy ước trình bày các usecase trong tài liệu này:
• Phần đặc tả usecase được trình bày trong một bảng.
• Mỗi usecase có một ID riêng biệt.
• Phần “Mức độ” (priority) chỉ định độ quan trọng của usecase mà hệ thống cần đáp ứng. Có ba mức sau:
o Cao
o Bình thường
4.4.4.1 Danh sách các actor của hệ thống
STT Tên Ý nghĩa
1
Admin Người quản trị có quyền cao nhất của hệ thống, có thể thực hiện mọi tác vụ và sử dụng mọi chức năng mà hệ thống cung cấp.
2
ProjectManager (PM) Người quản trị dự án. Trong phạm vi của EPM, người quản trị dự án là trưởng nhóm. Đây là người thực hiện các tác vụ chính để quản lý nhóm của mình.
3
Member Các thành viên bình thường của hệ thống. Đây là người dưới quyền một PM, thực hiện các công việc theo nhiệm vụ được giao
4.4.4.2 Danh sách các use-case
STT Tên use-case Mô tả
1 DangNhap Người dùng đăng nhập vào hệ thống để bắt đầu sử dụng EPM.
2 DangXuat Người dùng muốn thoát khỏi hệ thống và kết thúc phiên làm việc.
3
TaoTaiKhoan Quản trị viên (Admin và PM) thêm thành viên mới vào project mà mình quản lý hay thêm thành viên mới vào hệ thống.
4 DoiMatKhau Người dùng thay đổi mật khẩu của họ.
5 DoiThongTinTaiKhoan Người dùng thay đổi các thông tin cá nhân (Họ tên, email, avatar,…) của họ.
6
QuanLyThanhVien Quản trị viên (Admin và PM) có thể thay đổi thông tin của các thành viên trong hệ thống, thêm thành viên mới hay xóa tài khoản các thành viên ra khỏi hệ thống.
phân quyền (role), chỉnh sửa các hành động mà một role được phép thực hiện hay xóa một role. 8 TaoDuAn Quản trị viên (Admin và PM) tạo mới một dự án.
9
QuanLyDuAn Việc quản lý dự án được thực hiện bởi người quản trị (Admin và PM) bao gồm các công việc: quản lý chung các dự án, quản lý mốc thời gian, quản lý danh sách công việc tasklist, quản lý task, quản lý message, quản lý tập tin, xuất báo cáo, tra cứu báo cáo và tìm kiếm.
10
TaoMilestone Việc tạo các mố thời gian (milestone) sẽ giúp cho người quản trị dự án (Admin và PM) có thể dễ dàng theo dõi tiến độ làm việc của nhóm, đặt ra các mục tiêu ngắn hạn cũng như dài hạn và xác định được kế hoạch làm việc cho cả nhóm.
11
QuanLyMilestone Admin hay PM có thể chỉnh sửa thông tin của các mốc thời gian, xóa hay thêm một milestone. Đồng thời Admin hay PM cũng có thể xem và quản lý các tasklist có liên quan.
12
TaoTasklist Quản trị viên hay trưởng nhóm dự án có thể tạo danh sách các công việc và phân công cho các thành viên. Danh sách công việc bao gồm một hay nhiều công việc và được gắn với một milestone nhất định.
13
QuanLyTaskList Admin hay PM có thể thay đổi, chỉnh sửa và xóa thông tin của một tasklist, đồng thời cũng có thể quán lý các công việc con (task) của tasklist đó.
14
TaoTask Sau khi tạo danh sách các công việc, người quản trị hay trưởng nhóm dự án sẽ tạo các công việc con trong tasklist đó và phân công cho các thành viên cụ thể.
theo dõi quá trình thực hiện của công việc, phân công task cho các thành viên.
16
GuiMessage Người sử dụng có thể gởi thông báo hay tin nhắn cho môt hay nhiều thành viên trong dự án của mình.
17
QuanLyMessage Người dùng có thể xem các tin nhăn mới nhất, trả lời các tin nhắn nhận được, gửi tin nhắn hay xóa các tin nhắn.
18
QuanLyFile Hệ thống EPM cung cấp cho người sủ dụng một giao diện quản lý tập tin, thư mục đơn giản và dễ sử dụng.
19
ThayDoiCauHinh Chỉ có quản trị viên (Admin) mới có thể thay đổi các cấu hình hệ thống như giao diện, ngôn ngữ hiển thị, cấu hình mail server, cấu hình chức năng gửi email.
20
XuatBaoCao Admin hay PM có thể xem báo cáo các công việc trong dự án đế xem tiến độ dự án. Riêng Admin và PM có thể chỉnh sửa báo cáo.
21 TraCuuBaoCao Admin hay PM có thể lọc ra các nội dung cần xem trong bản báo cáo.
22
TimKiem Người sử dụng có thể tìm kiếm các nội dung chuyên biệt theo yêu cầu bằng cách nhập từ khóa vào ô tìm kiếm.
4.5.1 Mục đích
Sau khi phân tích yêu cầu của người dùng, nhóm phát triển bắt đầu tiến hành bước thiết kế hệ thống. Tài liệu này là bản đặc tả khái quát kiến trúc của hệ thống bao gồm mô hình các tầng (layers), các thành phần (components), sơ đồ và đặc tả các lớp sẽ triển khai trong EPM.
4.5.2 Sơ đồ các lớp trong EPM (mức phân tích)
4.5.2.1 Sơ đồ các lớp chính
4.5.2.2 Danh sách các lớp đối tượng và quan hệ
STT Tên lớp/quan hệ Loại Ý nghĩa/Ghi chú
1 DataObject Lớp mô tả chung nhất cho các đối tượng
dữ liệu.
2 User Lớp đối tượng người dùng, miêu tả chung
cho ba loại người dùng chính của hệ thống là: Admin, Project Manager và các
Member (thành viên bình thường). Lớp User kế thừa từ lớp DataObject. 3 DeadlineWork Đại diện cho các công việc được thi hành
trong một khoảng thời gian nhất định (nghĩa là có deadline).
Lớp DeadlineWork kế thừa từ lớp
DataObject.
4 Project Lớp đặc tả cho một dự án CNTT. Dự án là
một dạng công việc được thực hiện trong một khoảng thời gian rõ ràng vì vậy nó được kế thừa từ lớp DeadlineWork.
5 Milestone Đây là lớp đại diện cho một mốc thời gian
của một dự án CNTT. Mỗi dự án có thể có nhiều mốc thời gian khác nhau để phân chia công việc và lập kế hoạch cho dự án. Milestone có quan hệ với một Project và là một đối tượng con chứa trong Project. Một Milestone cũng có hiệu lực trong một khoảng thời gian cụ thể, nên nó cũng được kế thừa từ lớp DeadlineWork.
6 TaskList TaskList – danh sách công việc, là một
danh sách hay tập hợp chứa nhiều công việc con. Nhiệm vụ chính của lớp này là
TaskList có quan hệ với một Milestone và là một đối tượng con chứa trong
Milestone.
TaskList cũng được kế thừa từ lớp
DeadlineWork.
7 Task Đại diện cho một công việc được giao cho
một thành viên trong dự án thực hiện. Task là một phần tử con của TaskList. Task được kế thừa từ lớp DeadlineWork.
8 Role Đại diện cho một phân quyền trong hệ
thống. Một phân quyền định ra các hành động mà một đối tượng người dùng có thể thực hiện được khi sử dụng hệ thống. Người quản trị (Admin hoặc Project Manager) có thể dùng các quyền mặc định của hệ thống hoặc tạo ra các phân quyền mới cho từng dự án.
Role được kế thừa từ lớp DataObject.
9 Action Đại diện cho một hành động hay một tác
vụ được thực thi bởi người người dùng (ví dụ: thêm, xóa, sửa,…)
Action được kế thừa từ lớp DataObject.
10 Module Module là một thành phần trong hệ thống
chẳng hạn như: front end, back end, khu vực quản lý dự án, khu vực quản lý thành viên... Thực sự lớp này chỉ có ý nghĩa cho người quản trị (Admin hoặc Project
bình thường (Member).
Lớp này có 2 nhiệm vụ chính: giúp quản lý dễ dàng các thành phần của hệ thống và phục vụ cho chức năng phân quyền. Module được kế thừa từ lớp DataObject. 11 ModuleAction Như tên gọi của nó, lớp này là sự kết hợp
từ hai lớp Module và Action. Mỗi loại phân quyền sẽ được phép thực hiện những tác vụ (Action) khác nhau trong từng Module khác nhau.
ModuleAction được kế thừa từ lớp DataObject.
12 TimeTracker Lớp TimeTracker có nhiệm vụ lưu vết quá
trình làm việc của các thành viên để dễ dàng báo cáo tiến độ công việc sau này. TimeTracker được kế thừa từ lớp
4.6.2 Sơ đồ logic chi tiết:
4.7. Thiết kế giao diện
4.7.1 Danh sách các màn hình
STT Tên màn hình Chức năng
1 Desktop Trang chủ xuất hiện sau khi người dùng đăng nhập
vào hệ thống. Là trang tổng hợp các thông tin mới nhất.
2 Project Trang hiển thị thông tin chung của mỗi dự án. Xuất hiện khi người dùng click chọn một dự án.
Tương tự cho chức năng Edit.
5 Task List Quản lý các danh sách công việc và phân công công việc cho các thành viên.
6 User Liệt kê và thêm user vào project.
7 My Project Liệt kê tất cả các dự án mà một người dùng đã và đang tham gia.
8 Add Project Tạo dự án mới.
9 User profile Quản lý thộng tin cá nhân của người dùng. 10 Edit user Chỉnh sửa thông tin cá nhân của người dùng.
11 My Task Hiển thị tất cả các Task list của user trong project đó Hiển thị tất cả các Task có trong Task list.
12 Add Task List Thêm một Task List vào project.
13 Add Task Thêm một Task mới trong Task List.
14 Project Administraion Trang quản lý dự án dành cho admin. 15 User Administration Quản lý các thành viên trong toàn hệ thống.
16 Add User Thêm thành viên mới vào hệ thống.
17 System Administration Trang cấu hình hệ thống dành cho admin.
18 TimeTracking Quản lý thời gian làm việc của các nhiệm vụ (task) và lưu vết lại theo cấu hình của admin.
19 Filter Tracking Lọc (tìm kiếm) báo cáo. Cho phép lọc theo thời gian bắt đầu, kết thúc, hoặc lọc theo user hoặc task.
4.8. Mô tả chi tiết các màn hình
4.8.1 Màn hình “Desktop”
4.8.1.1 Chức năng
Trang chủ xuất hiện sau khi người dùng đăng nhập vào hệ thống. Đây là trang tổng hợp các thông tin mới nhất, bao gồm danh sách các dự án mà người dùng hiện tại đang tham gia (My Projects) , danh sách các công việc được giao (My Tasks) và một lịch biểu (Calendar) hiển thị các cột mốc (milestone).
4.8.1.2 Các thành phần của giao diện
STT Tên điều khển Kiểu dữ liệu Bắt buộc Giá trị Ghi chú
(1) (2) (3) (4) (6) (10) (13) (14) (16) (17) (7) (8) (11) (12) (5) (15)
chính của ứng dụng luôn xuất hiện trên màn hình, giúp người dùng di chuyển qua lại giữa các màn hình/chức năng và không bị “lạc” trong ứng dụng.
Xem (*) để biết thêm chi tiết.
2 tabDesktop Tab Giúp người dùng truy cập
vào thẻ Desktop. Đây cũng là thẻ mặc định hiển thị sau khi đăng nhập.
3 tabMyProjects Tab Truy cập vào thẻ quản trị
các dự án.
4 tabMyTasks Tab Truy cập vào thẻ quản trị
các nhiệm vụ được giao.
5 lblDesktop Label Tiêu đề của thẻ.
6 lstProjects Table Danh sách các dự án.
7 likFinish Link Dùng để đóng hay hoàn
thành một dự án. Hình , chỉ hiển thị với admin. 8 Các likEdit và lnkDelete Link Dùng để chỉnh sửa ( ) và xóa các dự án. Hình , chỉ hiển thị với admin
Hình , chỉ hiển thị với admin
10 lstTasks Table Danh sách các công việc
cần làm.
11 likFinish Link Dùng để đóng hay hoàn
thành một dự án. Hình , chỉ hiển thị với admin. 12 Các likEdit và lnkDelete Link Dùng để chỉnh sửa ( ) và xóa các dự án. Hình , chỉ hiển thị với admin Hình , chỉ hiển thị với admin
13 calendar Table Lịch biểu hiển thị các cột
mốc và các sự kiện (milestone) có liên quan tới người dùng.
14 txtSearch Textbox Nhập từ khóa tìm kiếm.
15 btnGo Button Chạy chức năng tìm kiếm.
16 miniCalendar Table Đây cũng là một lịch biểu
nhưng chỉ có chức năng là xem thời gian và xuất hiện trong toàn ứng dụng.
17 Online users Hiển thị danh sách các
người dùng đang đăng nhập vào hệ thống EPM.
Desktop: giúp truy cập vào trang Desktop (trang chủ)
My Account: truy cập vào trang thông tin cá nhân.
Administration: truy cập vào trang quản trị toàn bộ hệ thống, bao gồm : Projest, Users và System. Mục này chỉ xuất hiện với admin.
4.8.2 Màn hình “Project”
4.8.2.1 Chức năng
Đây là trang quản trị các dự án và cũng là trang quan trọng nhất, tập trung các chức năng chính của ứng dụng, bao gồm:
• Chỉnh sửa và đóng một project.
• Lưu vết và ghi chú lại các sự kiện (chức năng time tracker) cho một project.
(1) (2) (3) (4) (5) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (6)
4.8.3.1 Chức năng
Hiển thị tất cả các milestone của user đó.
4.8.4 Màn hình “Milestone Add/Edit”
4.8.4.1 Chức năng
4.8.5 Màn hình “Task List”
4.8.5.1 Chức năng
Bao gồm 2 thành phần : danh sách task list chưa hoàn thành và danh sách task list đã hoàn thành.
4.8.7 Liệt kê và thêm user vào project. Màn hình “My Project” Project”
4.8.7.1 Chức năng
Liệt kê tất cả các project mà user đã tham gia , kèm theo các thông tin tiến độ , số ngày còn lại của project . Cho phép add / edit / delete project nếu user là
administrator.
4.8.8.1 Chức năng
Thêm project mới.
4.8.9.1 Chức năng
4.8.10 Màn hình “Edit user”
4.8.10.1 Chức năng
Chỉnh sửa thông tin của User
Hiển thị tất cả các Task list của user trong project đó Hiển thị tất cả các Task có trong Task list
4.8.12 Màn hình “Add Task List”
4.8.12.1 Chức năng
4.8.13 Màn hình “Add Task”
4.8.13.1 Chức năng
4.8.14.1 Chức năng
Quản lý thành viên: thêm, xoá, sửa thành viên
4.8.15 Màn hình “Add User”
4.8.15.1 Chức năng
Tạo user mới.
4.9. EPM Web Service
Để các thành viên có thể cập nhật được các công việc được giao hệ thống EPM cung cấp một Web Service để các ứng dụng client có thể truy xuất dữ liệu. Ở đây chúng ta sẽ sử dụng công cụ có sẵn của Visual Studio để tạo một Web Service đơn giản chạy trên nền .NET. Web service trong .NET cũng tuân thủ mô hình chung của Web Service.
Hình 4.9 – Mô hình của web service.
Việc tạo Web service trong Visual Studio rất dễ dàng, các tầng cấp thấp bên dưới đã được hỗ trợ sẵn, chúng ta chỉ việc cài đặt các hàm xử lý business. Sau khi cài đặt xong chúng ta vào trình duyệt và mở tập tin .asmx thì sẽ xuất hiện nội dung như sau:
Như vậy chúng ta đã cài đặt thành công một web service, các ứng dụng khác (ứng dụng client, ứng dụng web khác,…) có thể gọi và sử dụng các phương thức của EPMservice một cách dễ dàng. Bước tiếp theo, chúng ta sẽ xây dựng một ứng dụng dạng Windows Form để sử dụng các dịch vụ của EPMservice cung cấp.
4.10.Xây dựng ứng dụng Client – EPM Agent