Do đó, các hệ thống quản lý có dữ liệu lớn, nhiều người tham gia dần dần được người ta đưa vào ứng dụng Web, và việc quản lý các yêu cầu về cơ sở vật chất trong trường đại học cũng khôn
Trang 1TRƯỜNG ĐẠI HỌC VINH
KHOA CÔNG NGHỆ THÔNG TIN
Vịnh CHU QUANG PHAI
DO AN TOT NGHIEP DAI HOC
Trang 2TRƯỜNG ĐẠI HỌC VINH KHOA CÔNG NGHỆ THÔNG TIN
Y
ĐỒ ÁN TÓT NGHIỆP ĐẠI HỌC
Tên đỀ tài:
PHÁT TRIÊN ỨNG DỤNG QUẢN LÝ THÔNG TIN ĐỊA CHÍNH
Sinh viên thực hiện: Chu Quang Phải
Trang 3LOI CAM ON
Trước tiên, em xin gửi lời cảm ơn và lòng biết ơn sâu sắc đến TS Nguyễn Trung Hòa, người đã tận tình hướng dẫn em trong suốt quá trình thực hiện đồ án tốt nghiệp này
Em xin gửi lời cám ơn đến các thầy cô giáo đã giảng dạy em trong những năm học qua, đã cho em nhiều kiến thức quý báu để em vững bước trên con đường tương lai của mình
Tôi xin gửi lời cảm ơn tới các bạn trong lớp 49K — CNTT, đã ủng hộ và giúp đỡ tôi trong suốt quá trình học tập tại trường
Và cuối cùng con xin bày tỏ niềm biết ơn vô hạn tới bố mẹ, anh chị đã luôn luôn bên cạnh, động viên con trong suốt quá trình học tập
Vinh, ngày 10 thắng 12 năm 2012
Sinh viên
Đoàn Văn Điệp
Đoàn Văn Điệp 49K-CNTT Khoa CNTT Page 3
Trang 4LỜI MỞ ĐẦU
Ngày nay, mạng Internet là một trong những sản phẩm có giá trị hết sức lớn lao
và ngày càng trở nên một công cụ không thể thiếu, là nền tảng chính cho sự truyền tái, trao đối thông tin trên toàn cầu Giờ đây, mọi việc liên quan đến thông tin đã trở nên
dễ dàng cho người sử dụng, chỉ cần một máy tính có kết nối Internet và một đường truyền dữ liệu tốt thì gần như mọi thứ mà bạn quan tâm sẽ hiện ra Việc quản lý các hệ thống theo đó cũng được ứng dụng vào Internet Việc cài đặt phần mềm trên trên máy
tính cục bộ giờ đây đã đem lại nhiều bất cat về dữ liệu, sự thống nhất dữ liệu và tính
tiện lợi khi sử dụng là một khó khăn cho việc các phần mềm quản lý trên máy tính cục
bộ Do đó, các hệ thống quản lý có dữ liệu lớn, nhiều người tham gia dần dần được
người ta đưa vào ứng dụng Web, và việc quản lý các yêu cầu về cơ sở vật chất trong trường đại học cũng không ngoại lệ
Khuôn viên trường đại học là tổ hợp nhiều cơ sở vật chất ở trong đó như: phòng học, phòng thực hành, phòng thí nghiệm, phòng thể dục dụng cụ, căng tin, ký túc
xá, Bên trong các cơ sở đó là các thiết bị kỹ thuật như máy tính, bàn ghế, dụng cụ
thí nghiệm Ngoài ra trong trường đại học còn có các hoạt động học tập, nghiên cứu
và xã hội khác như: tọa đàm, mít tỉnh, các buổi lao động vệ sinh, hoạt động từ thiện, thể dục thể thao, văn nghệ Để phục vụ cho các công việc trên thì các cơ sở vật chất, thiết bị kỹ thuật cần phải được chuẩn bị để sẵn sàng sử dụng Việc quản lý các cơ sở
vật chất đó có nhiều thành phần tham gia như bảo vệ, người hướng dẫn phòng thí
nghiệm, người phục vụ phòng máy, tổng đoàn, hội Sự kết hợp giữa các thành viên đó
sẽ đem lại kết quả cao cho công việc Tuy nhiên với khuôn viên rộng lớn của trường
đại học, và có nhiều người cùng tham gia quản lý nên trong thực tế việc tương tác giữa
các thành viên thường gặp khó khăn, không nhất quán và mắt nhiều thời gian Như vậy
vân đề đặt ra là làm sao đề quản lý được các tương tác giữa các thành viên khi có yêu
cầu về kỹ thuật, dịch vụ để tận dụng được nguồn lực, vật chất, và tiết kiệm thời gian
Trang 5Từ nhu cầu thực tế đó, là một sinh viên khoa Công nghệ thông tin, em quyết định chọn đề tài “Quản lý yêu cẩu về dịch vụ thiết bị kỹ thuật trong trường đại học
sứ dụng Struis 2° để có thê đáp ứng được nhu cầu thực tế trên
Đồ án gồm những phan sau:
> Chương l1: Công nghệ Struts 2
> Chương 2: Phân tích hệ thông
> Chương 3: Xây dựng cơ sở đữ liệu và giao diện
> Chương 4: KếI luận
- IDE Eclipse Juno
Trong thời gian làm đồ án, tuy đã cố gắng hết mình tìm hiểu, phân tích thiết kế hệ thống, nhưng do kiến thức hạn hẹp, thời gian ngắn nên vẫn không tránh những sai sót mặc phải, mong các thầy cô thông cảm cho em Nhân đây em cũng xin chân thành cám
ơn thầy giáo 7S Nguyễn Trung Hòa đã tận tình hướng dẫn giúp đỡ em hoàn thành
đồ án này Em cũng xin được bày tỏ lòng biết ơn đối với các thầy cô và bạn bè trong khoa Công Nghệ Thông tin đã luôn giúp đỡ động viên em trong suốt thời gian qua Cuối cùng em xin kính chúc các thầy cô giao sức khỏe và hạnh phúc!
Đoàn Văn Điệp 49K-CNTT Khoa CNTT Page 5
Trang 6MỤC LỤC LỜI CÁM ƠN
1.3.2 Các thành phần cơ bản của Struts
1.3.3 Các phiên bản của Struts
1.3.4 Struts 2
CHUONG 2: PHAN TICH HE THONG
2.1 Phân tích yêu cầu
2.2 Biểu đồ phân cấp chức năng
2.2.1 Biểu đồ mức chức năng
2.2.2 Mô tả chỉ tiết các chức năng lá
2.3 Biểu đồ luồng dữ liệu
2.4.2 Sơ đồ liên kết thực thé ang chuan 3
CHUONG 3: XAY DUNG CO SO DU LIEU VA GIAO DIEN
3.1 Thiết kế cơ sở đữ liệu vật lý
3.2 Thiết kế giao diện
3.2.1 Đăng nhập
3.2.2 Đồi mật khâu
3.2.3 Danh sách yêu cầu
3.2.4 Tạo mới yêu cầu
Trang 74.2 Hạn chế :
4.3 Hướng phát triên " 0800/2766 .804./(0 nh h< 39
CHƯƠNG 1: CONG NGHE STRUTS 2 1.1 Giới thiệu
Java là một nền tảng phát triển các ứng dụng phần mềm có vị trí rất lớn trong
những năm cuối thế kỉ 20, đầu thế kỉ 21 Đánh dấu sự trưởng thành của mô hình lập
trình hướng đối tượng, nó được coi là một nền tảng mang tính cách mạng trong nghành phần mềm Mô hình máy ảo Virtual Machineđã cho phép các ứng dụng viết
bằng Java có thể chạy trên nhiều hệ điều hành khác nhau Vì thế Java là ngôn ngữ vẫn
được rất nhiều các nhà thiết kế lựa chọn làm ngôn ngữ phát triển chính cho hệ thống của mình
hiện tất cả các yêu cầu như những dòngtrong một xử lý, hoặc trên một hệ thống load-
balancing sẽ là mỗi xử lý trên một server trong kết chùm cluster Các servlet dễ dàng chia sẽ tài nguyên Bạn có thể sử dụng JavaMail để đọc và gửi mail, Java DataBase Connect (IDBC) để truy cập các database, lớp File và những lớp quan hệ đề truy cập hệ thống file, RMI, CORBA, Enterprise Java Beans (EJB) để truy cập các hệ
thống kế thừa
JSP:
Viết tắt của tiếng Anh Java Server Pages còn được biết đến với một cái tên khác
là Java Scripting Preprocessor — t ạm dịch là “Bộ tiền xử lý văn lệnh Java” Là một công nghệ Java cho phép các nhà phát triển tạo nội dung HTML, XML hay một số định dạng khác của trang web một cách năng động, trong khi hồi âm yêu cầu của trình
Trang 8duyệt phía client Công nghệ này cho phép người ta nhúng mã Java và một số hành động xử lý đã được định trước (pre-defined actions) vào trong nội dung tĩnh của trang Trước khi hiển thị ra trình duyệt, tập tin JSP phải được biên dịch thành Servlet, dùng
bộ biên dịch JSP(JSP compiler) Bộ biên địch JSP có thể tạo servlet thành mã nguồn
Java trước, rồi biên dịch mã nguồn ra tập tin class dùng bộ biên dịch Java, hoặc có thể trực tiếp tạo mã bytecode cho servlet tir trang JSP
Câu hỏi đặt ra là: Mô hình JSP/Servlet có đủ khả đáp ứng được yêu cầu của hệ thống hay không? Em đã tìm hiểu và đưa ra một số những nhược điểm của nó khiến
nó không được ứng dụng trong việc xây dựng các hệ thống lớn:
-_ Kiến trúc của JSP/servlet khá đơn giản, việc gộp các action (các hàm xử lý thông
tin) là điều rất không nên Bởi khi thiết kế hệ thống, các module của chương trình
cần phải được sắp xếp hợp lý, các action được chỉnh sửa mà không ảnh hưởng tới
giao diện hiển thị
-_ Ngoài ra, việc phân chia các thành phần hợp lý dựa theo mẫu thiết kế chuẩn của một
hệ thống được người dùng đánh giá rất cao Sau khi hoàn thiện, nếu bản thân người dùng muốn phát triển tiếp ứng dụng của mình, họ cần có một hướng dẫn chỉ tiết cách sửa các thành phần trong các gói (package) Trong quá trình thiết kế một hệ
thống lớn, yêu cầu phải đòi hỏi làm việc theo nhóm, để quá trình phân công công
việc hợp lý, việc phân tách các thành phần của hệ thống là cần thiết Nếu không,
quá trình làm việc sẽ thường xuyên bị gián đoạn
Công nghệ Struts đã thành công trong việc tối ưu các khuyết điểm vốn có của JSP/Servlet Tính năng của nó sẽ được để cập nhiều hơn qua nội dung sẽ trình bày sắp
yêu cầu bảo mật và chuyên nghiệp cho một hệ thống lớn Struts cơ bản định hình lại
cách các lập trình viên website nghĩ về và cầu trúc một ứng dụng Web
Đoàn Văn Điệp 49K-CNTT Khoa CNTT Page 8
Trang 9demand red data +
Hình 1: Kién tric 3 tang MVC
thành phần khác
-_Model(Mô hình): Model được giao nhiệm vụ cung cấp di liệu cho cơ sở dữ liệu và lưu dữ liệu vào các kho chứa đữ liệu Tất cả các nghiệp vụ logic được thực thi
ở Model Dữ liệu vào từ người dùng sẽ thông qua View được kiểm tra ở Model trước
khi lưu vào cơ sở dữ liệu Việc truy xuất, xác nhận, và lưu dữ liệu là một phần của
Model
- View(Giao dién): View hién thị các thông tin cho người dùng của ứng dụng
và được giao nhiệm vụ cho việc nhận các dữ liệu vào từ người dùng, gửi đi các yêu
cầu đến bộ điều khiến, sau đó là nhận lại các phản hồi từ bộ điều khiển và hiển kết quả
Đoàn Văn Điệp 49K-CNTT Khoa CNTT Page 9
Trang 10cho người dùng Các trang HTML, JSP, các thư viện thẻ và các file nguồn là một phần của thành phần View
- Controller(bộ điều khiển): Controller là tầng trung gian giữa Model và View Controller được giao nhiệm vụ nhận các yêu cầu từ phía máy khách Một yêu cầu được nhận từ máy khách được thực hiện bởi một chức năng logic thích hợp từ thành phần Model và sau đó sinh ra các kết quả cho người dùng và được thành phần View hiển thị ActionServlet, Action, ActionForm va struts-config.xml là các phần của Controller
1.3.2 Cac thanh phan co ban cua Struts
Struts là tập hợpcác thư viện Java có thể phân thành 4 nhóm :
Framework cơ sở cung cấp các tính năng MVC cốt lõi Nén tang cua framework
cơ sở là Controller servlet: Action servlet Các phần còn lại bao gồm các lớp cơ sở mà
ứng dụng của bạn sẽ kế thừa và các class tiện ích
Nỗi bật nhất trong các lớp là lớp Action và lớp ActionForm:
-_ Lớp Action: được sử dụng bởi ActionServlet để xử lý các request xác định
- Lop ActionForm: bắtdữ liệu từ các HTML form và được sử dụng để chuyền dữ
liệu trở lại View đê sinh ra các trả lời (response)
Validator 1a mot framework v6i kha năng thực hiện xác nhận tính hợp lệ
của dữ liệu ở cả phía server và client
Trang 111.3.3 Các phién ban cua Struts
Hiện nay struts đã phát triển 2 phiên ban 1a struts 1x va struts 2x Có một số khác biệt trong cấu trúc của 2 phiên bản Dưới đây là một số khác biệt cơ bản:
(Lớp hoạt trừu tượng), không sir | lop Java nào
động) dụng interface (lớp giao -Cung cấp sẵn | interface
diện) chung cho các action là
-Action yêu cầu bắt buộc | ActonSupport, tuy nhiên
phải kế thừa từ một lớp _ | không bắt buộc thực thi
abstract nào đó action này
Threading Cac Action là độc nhất vì | Trong Struts 2 các đối
Model thế chúng phải được | tượng được khởi tạo cho (Mô hình thread-safe bai vi chico | mỗi request do đó không
lu ồng) một thể hiện của lớp để |SỐ — thread-saietyMột
giữ lại tất cả request đối serviet container sinh ra với Action do nhiêu đôi tượng throw-
away cho môi request Servlet Actions bi phu thudc vào | HttpServletResponse cho Dependency thư viện servlet API boi | phuong thức execute (Phần phụ vì HttpServletRequest và | Struts 2 không phụ thuộc
HttpServletResponse được Action chỉ là một
lớp bình thường và chúng
ta không cần truyền đối
tượng HttpServletRequest
và truyền vào phương
thức execute khi Action
được thực thi
vào API của servlet bởi chúng tạo các POJO đơn giản
Trang 12
(Khả năng kiêm vân đê chính trong việc khởi tạo Action.Các
thức execute phụ thuộc | giản và không phụ thuộc
vao Servlet API Struts framework,vi thé viéc test TestCase cung cấp một trở lên đơn giản hơn
tập hợp các đối tượng Mock cho Struts 1
Harvesting Struts] str dung mot đối Struts2 sử dụng các thuộc Input tượng ActionForm để giữ | tinh Action dé giới han sự (Kết qua dau các inputGiống nhưcác | can thiết cho các đôi
ActionForms cân được thừa kế lớp ActionForm
Struts 2 sử dung công
nghé ValueStack dé dam
bảo việc truy c ập giá trị
bằng taglib không thông qua coupling (kết nối)
diễn)
Type Trong Struts I các thuộc | Struts 2 sử dụng OGNL
Conversion tính của ActionForm hau | đối với việc chuyển kiểu
(Thay đổi kiểu) hế định dạng là | đữliệu
String Việc chuyển đổi dựa trên từng lớp, không được cấu hình dựa trên thê hiện của lớp
Control Of Mỗi module trong Struts | Trong Struts 2 các vòng Action 1 có sự tách rời Request | đời khác nhau được tạo ra
Execution Processors (vòng đời), | dựa trên nền tảng Action
trong khi tat ca các thông qua ngănxếp chặn
Trang 13
(Kiêm soát thực Action trong module cân | (Interceptor Stacks) Các
thi) phải chia sẻ cùng vòng — | Stack tùy biến được tạo ra
đời và sử dụng với Action
khác nhau
Sự khác nhau như trên, với những ưu diém cua Struts 2 so với Struts 1 1am Struts
2 trở thành công cụ hữu ích cho các nhà thiết kế phần mềm Web hiện tại và tương lai 1.3.4 Struts 2
“_ Vòng đời của các yêu cầu trong Struts 2:
Hình 2: Vòng đời của các yêu cau trong Struts 2
Người sử dụng gửi yêu cầu đến server để yêu cầu một số tài nguyên của ứng dụng
- Bộ điều khiển lọc(FilterDispatcher) xem xét yêu cầu và sau đó xác định một Action thích hợp
-_ Các bộ chặn (Interceptors) được ứng dụng: các cấu hình bộ chặn áp dụng cho các chức năng chung như: luồng công việc, thấm định, tải file được tự động ứng dụng vào yêu cầu
Thực thi Action: sau khi phương thức action được thực thi dé thực hiện các
hoạt động liên quan đến cơ sở đữ liệu như sắp xếp hoặc nhận dữ liệu từ cơ sở đữ liệu
-_ Sinh kết qua
- Sau đó kết quả yêu cầu được trả về thông qua bộ chặn theo chiều ngược lại
Kết quả trả về cho phép chúng ta thực hiện thu dọn hoặc thêm quá trình xử ly
- Hién thi kết quả cho người sử đụng: Việc điều khiển cuối cùng được trả về cho trình chứa servlet, nó sẽ gửi kết quả trả về cho trình duyệt của người sử dụng
Trang 14" Kién tric Struts 2:
Struts 2 Architecture
ActionContextCleanUp Other Filters (SiteMesh, etc) FilterDispatcher
HttpServietResponse
O servet Fitters (CD) struts Core (D) interceptors (D) User Created
Hinh 3: Kién tric Struts 2
- Action ContextCleanUp filter: La mét thy chon va nó được sử dụng khi tích hợp với các công nghệ khác như SiteMash Plugin
- FilterDispatcher: Khi FilterDispatcher (bộ điều khiển lọc) được gọi, nó quay lại
sử dụng ActionMapper để xác định Action nào được triệu gol Néu action được yêu cầu được triệu gọi thì FilterDispatcher ủy nhiệm việc điều khiển lại cho ActionProxy
- ActionProxy: ActionProxy nhận sự giúp đỡ từ bộ quản lý cấu hình file (Configuration Files manager), được khởi tạo từ file strufs.xml Sau đó ActionProxy tạo ra một ActionInvocation, thực thi từ mẫu lệnh ActionInvocation xử lý triệu gọi bộ chặn (Interceptors) nếu nó được cấu hình và sau đó triệu goi Action ActionInvocation
Trang 15tìm kiếm kết quả thích hợp, sau đó kết quả được thực thi, nó triệu gọi việc sinh ra trang các JSP hoặc các mẫu Sau đó, các Interceptor được thực thi một lần nữa theo thứ tự ngược lại Việc trả về kết quả cuối cùng thông qua các bộ lọc được cấu hình
trong file web.xml Néu bộ lọc ActionContextCleanUp được cấuhình, thì FilterDispatcher không dọn dep ThreadLocal ActionContext Néu bộ lọc ActionContextCleanUp không có
thì FilterDispatcher sẽ dọn dẹp tất cả các ThreadLocal tồn tại
"_ Các thành phân chính yếu và thường dùng cua Struts 2 Framework
- Action Class hay ActionSupport Class
Chứa đựng các thuộc tính mapping trên form và các thành phần xử lý của object (business logic) và phương thức chỉ định thực thi
Struts 2 Framework cung cấp cơ chế tự động mapping các tham số trong request trong form đến các thuộc tính trong Action với các thuộc tính cùng tên và có phương thức setXxx
Trong quá trình mapping, Struts 2 Framework sử dụng OGNL thay thế EL để ép
kiểu tự động từ form đến kiểu đữ liệu của Action property Do vậy, không nhất thiết
lúc nào cũng khai báo kiểu dữ liệu là String và thực hiện ép kiểu bằng tay
- Struts Config (struts.xml)
<struts>
[<include £file=“xml File”/>]
extends=“struts-default“ [method=“method_name“]>
Trang 16<action name="action Name” class="package.className”>
extends: xac dinh class cha tuong tự như khái niệm kế thừa
abstract: bằng true nếu là lớp kế thừa
- action: anh xạ một action với một class action
name: xác định tên action
class: xác định java class để xử lý action
method: xác định phương thức được gọi khi request được chuyến tới Nếu tham số này không tồn tại thì phương thức execute mặc định được tìm kiếm và thực thi
- result: xc dinh tén result hay page kết xuất của một action
name: xác định tén result Néu không có thì mac dinh 1a success
type: xác dinh loai result Nếu không có thì mặc định là FilterDispatcher thực hiện forward đến trang kết quả
-_ Cơ chế hoạt động cúa Struts 2 Framework
Struts 2 Framework hoạt động tương tự như mô hình MVC của Struts | Framework nhưng điểm khác biệt đó là pull-framework, nghĩa là dữ liệu được lấy trực
tiếp từ action để đưa đến view
- Controller: FilterDispatcher 1a servlet Filter co nhiém vu đón nhận request va
dựa trên cấu hình để xác định action cụ thể để đón nhận request cho xử lý -_ Model: Action là một java class đảm bảo đặc tính của một object trong mô hình hướng đối tượng và thỏa tính chất của JavaBean
- View: Result 1a mét kết xuất hay một dạng xác định action hay trang chuyển về
và trình bày trên Web Browser
Trang 17Hình 4: Cơ chế hoạt động của Struts 2 Framework
Khi người dùng gửi yêu cầu truy xuất ứng dụng web, request được chuyển đến FilterDispatcher, đây là Filter được tạo sẵn trong Framework để làm chức năng như Controller
FilterDispatcher dựa trén trap tin cấu hình xác định xem action có được ứng dụng Interceptor hay không
Nếu có, framework sẽ gọi Interceptor theo tuần tự khi gọi xong một Interceptor, framework sẽ checking tiép Interceptor trong stack cho đến Interceptor cuối cùng Nếu không có áp dụng Interceptor cuối cùng được thực thi thi framework sé goi action
Action đón nhận dữ liệu, thực hiệ xử lý và kích hoạt phương thức chỉ định thực thi Sau khi phương thức đó xử lý hoàn tắt, Result được trả về Tại bước này, nếu ứng dụng có áp dung interceptor là Result sẽ được apply theo chiều ngược chiều gọi ban
dau dé trả kết quả trở về hay chuyển đến Action tiếp theo
Điểm khác biệt giữa cơ chế hoạt động của Struts 2 so với Struts 1 là tất cả mọi thứ phải thông qua file struts.xml hay annotation và một phần nào đó Struts 2 che dấu FilterDispatcher đối với người lập trình để tạo nên tính linh hoạt trong việc xây dựng
và bảo trì ứng dụng web, đặc biệt là việc mapping kết xuất giữa các trang không còn lệ thuộc và đặt trong code servlet din đến việc mapping trớ nên linh hoạt và uyên chuyển hơn
Trang 18CHƯƠNG 2: PHAN TICH HE THONG
2.1 Phân tích yêu cẩu
Để phân tích yêu cầu của bài toán, xét một ví dụ cụ thể:
Giả sử vào ngày 23-12-2012, ở trường Đại học Vinh diễn ra buổi bảo vệ đồ án tốt
nghiệp của lớp 49K-CNTT tại phòng A2302 vào lúc 7h - 12h Để buổi bảo vệ đồ án
được diễn ra, cán bộ lớp 49K phải đăng ký với người quán lý phòng A2303 để sử dụng phòng A2302 vào thời điểm trên, bên cạnh đó còn phải đăng ký sử dụng các dụng cụ, thiết bị khác như máy chiếu, loa, máy tính Khi đó, người quán lý phòng A2302 sẽ đọc các yêu cầu và nếu hợp lý sẽ chuẩn bị phòng A2302 sẵn sàng cho buổi bảo vệ, và người quản lý thiết bị dụng cụ cũng sẽ đọc các yêu cầu và đồng ý cho mượn máy chiếu, loa thì lớp 49K mới được tổ chức buổi bảo vệ tại phòng đó Sau khi phòng học và các thiết bị đã sẵn sàng thì người quán lý phòng sẽ thông báo cho cán bộ lớp 49K là đã sẵn sàng cho buổi bảo vệ đồ án tốt nghiệp Ngoài ra, nếu yêu cầu đặt ra
không hợp lệ thì những người quản lý có quyền từ chối yêu cầu trên
Từ ví dụ trên có thể thấy luồng xử lý yêu cầu như sau:
Trang 19Yêu cầu sử Quản lý
dụng phòng phòng
Cập nhật yêu câu
-_ Người tạo ra yêu cầu: cán bộ lớp 49K
-_ Người xem xét yêu cầu: quản lý phòng và quản lý thiết bị
Người xử lý yêu cầu: Cán bộ nhà trường
Dữ liệu:
- Thong tin yêu cầu
- CaAc tin nhắn cập nhật yêu cầu và thông báo phản hồi
Tuy nhiên tại một thời điểm có thể có nhiều yêu cầu được tạo ra, và vấn đề xảy ra là thực hiện yêu cầu nào trước, vì thế mỗi yêu cầu sẽ có thêm các đặc điểm như mức độ,
độ ưu tiên của yêu cầu Bên cạnh đó, để những người khác biết được yêu cầu đang được xử lý như thế nào, thì yêu cầu cần có thêm đặc tính trạng thái
Từ ví dụ trên ta có: