Đề tài Xây dựng Component quản lý dự án phần mềm cho website Joomla

MỤC LỤC

 

MỞ ĐẦU 1

I. Đặt vấn đề 1

II. Lý do chọn đề tài 1

III. Hướng nghiên cứu của đề tài 2

III.1. Về mặt lý thuyết 2

III.2. Công cụ xây dựng đề tài 2

IV. Dự kiến kết quả đạt được 2

V. Nội dung tóm tắt các chương tiếp theo 3

CƠ SỞ LÝ THUYẾT ERROR! BOOKMARK NOT DEFINED.

VI. Giới thiệu về joomla 1

VI.1. Joomla là gì? 1

VI.2. Các dòng phiên bản của Joomla 1

VI.3. Kiến trúc Joomla 1

VII. Một số khái niệm trong Joomla 2

VII.1. Front-end và back-end 2

VII.1.1. Front-end 2

VII.1.2. Back-end 2

VII.2. Template 2

VII.3. Menu 2

VII.4. Các thành phần mở rộng 3

VII.4.1. Module 3

VII.4.2. Component 3

VII.4.3. Mambot (Plug-in) 4

VIII. Cách xây dựng một component trong Joomla 1.5 6

VIII.1. Giới thiệu mô hình MVC 6

VIII.2. Cài đặt Joomla MVC 6

VIII.3. Tạo một component 7

VIII.3.1. Tạo một entry point 7

VIII.3.2. Tạo Controller 8

VIII.3.3. Tạo View 9

VIII.3.4. Tạo Template 10

VIII.3.5. Đóng gói tất cả- Tạo file hello.xml 10

VIII.4. Bổ sung Model vào component 12

VIII.4.1. Tạo Model 12

VIII.4.2. Sử sụng Model 13

VIII.4.3. Bổ sung file vào package 14

VIII.5. Sử dụng cơ sở dữ liệu trong component MVC 15

VIII.5.1. Lấy dữ liệu 15

VIII.5.2. Tạo file SQL trong quá trình cài đặt và gỡ bỏ component 16

VIII.5.3. Cập nhật file cài đặt 17

VIII.6. Tạo giao diện quản trị trong MVC 19

VIII.6.1. Tạo Framework cơ sở 19

VIII.6.2. Model Hellos 20

VIII.6.3. View Hellos 22

VIII.6.4. Template hellos 23

PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 25

IX. Phân tích hệ thống thông tin 25

IX.1. Sơ đồ Use Case 26

IX.1.1. Use Case “Projects Management” 26

IX.1.2. Use Case “Tasks Management” 26

IX.1.3. Use Case “Delivery Management” 27

IX.1.4. Use Case “Requirements Management” 27

IX.1.5. Use Case “Design Management” 28

IX.1.6. Use Case “Coding Management” 28

IX.1.7. Use Case “Risks Management” 29

IX.1.8. Use Case “File Manage” 29

IX.1.9. Use Case “Calendar Management” 30

IX.1.10. Use Case “Board Management” 30

IX.1.11. Use Case “Profile Management” 31

IX.1.12. Use Case “User Management” 31

IX.2. Danh sách Actor, Phân Quyền và Use Case 31

IX.2.1. Actor 31

IX.2.2. Use Case 32

IX.3. Đặc tả chi tiết 35

IX.3.1. Use Case “Login” 35

IX.3.2. Use Case “Projects Management” 36

I.1.2. Use Case “Tasks Management” 38

I.1.2. Use Case “Delivery Management” 39

I.1.2. Use Case “Requirements Management” 41

I.1.2. Use Case “Design Management” 42

I.1.3. Use Case “Coding Management” 44

I.1.4. Use Case “Risks Management” 45

I.1.5. Use Case “File Manage” 46

I.1.2. Use Case “Calendar Management” 48

I.1.3. Use Case “Board Management” 49

I.1.4. Use Case “Profile Management” 51

I.1.5. Use Case “User Management” 51

I.2. Sơ đồ tuần tự 53

I.2.1. Chức năng “Login” 53

I.2.2. Chức năng “Projects Management” 53

I.2.3. Chức năng “Tasks Management” 55

I.2.4. Chức năng “Delivery Management” 56

I.2.5. Chức năng “Requirements Management” 57

I.2.6. Chức năng “Design Management” 58

I.2.7. Chức năng “Coding Management” 59

I.2.8. Chức năng “Risks Management” 60

I.2.9. Chức năng “File Manage” 61

I.2.10. Chức năng “Calendar Management” 62

I.2.11. Chức năng “Board Management” 63

I.2.12. Chức năng “User Management” 64

I.3. Thiết kế hệ thống 65

I.3.1. Tổ chức dữ liệu 65

XÂY DỰNG CHƯƠNG TRÌNH VÀ KẾT QUẢ THỰC HIỆN 76

I. Công cụ và môi trường phát triển 76

I. Một số kết quả đạt được 76

I.1. Màn hình khởi động 76

I.2. Màn hình “Tasks Management” 77

II. Màn hình “Delivery Management” 77

II.1. Màn hình “Requirements Management” 78

II.2. Màn hình “Design Management” 78

II.3. Mành hình “Coding Management” 79

II.4. Màn hình “Risks Management” 79

II.5. Màn hình “Upload File” 80

II.6. Màn hình “Calendar Management” 80

II.7. Màn hình “Update profile” 81

II.8. Màn hình “User Management” 81

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 82

 

 

doc96 trang | Chia sẻ: netpro | Lượt xem: 2845 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đề tài Xây dựng Component quản lý dự án phần mềm cho website Joomla, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
nRef( 'greeting', $greeting ); parent::display($tpl); } } ?> Bổ sung file vào package Tất cả những gì còn lại cần phải làm là bổ sung một entry vào file XML để model mới của chúng ta được copy. Joomla! Frameword sẽ tìm kiếm model của chúng ta trong thư mục models. Bởi vậy entry cho file này trông như sau: models/hello.php File hello.xml mới của chúng ta sẽ như sau: <!DOCTYPE install SYSTEM " install.dtd"> Hello 2007 02 22 John Doe john.doe@example.org Copyright Info License Info Component Version String Description of the component ... index.html hello.php controller.php views/index.html views/hello/index.html views/hello/view.html.php views/hello/tmpl/index.html views/hello/tmpl/default.php models/index.html models/hello.php Hello World! index.html admin.hello.php Sử dụng cơ sở dữ liệu trong component MVC Lấy dữ liệu Model hiện tại của chúng ta có một phương thức getGreeting(). Phương thức này rất đơn giản, tất cả những gì nó làm là trả về một câu chào được code cố định. Để làm những điều này thú vị hơn, chúng ta sẽ lấy câu chào từ bảng cơ sở dữ liệu. Trong phần sau, chúng ta sẽ mô tả làm cách nào để tạo ra một file SQL và bổ sung các đoạn mã phù hợp vào file XML để tạo ra bảng và bổ sung dữ liệu mẫu vào bảng khi component được cài đặt. Bây giờ, chúng ta chỉ đơn giản thay thế câu lệnh trả về trong hàm getGreeting bằng đoạn code lấy lời chào mừng từ CSDL và trả lại lời chào mừng đó. Đầu tiên, chúng ta cần lấy được một tham chiếu đến đối tượng CSDL. Vì joomla sử dụng CSDL cho các thao tác thông thường của nó, nên nó đã có một kết nối tới CSDL tồn tại, bởi thế không cần thiết phải tạo ra một kết nối CSDL riêng. Có thể lấy được một tham chiếu tới kết nối bằng cách sử dụng câu lệnh: $db =& JFactory::getDBO(); JFactory là một lớp static được sử dụng để nhận tham chiếu đến nhiều đối tượng hệ thống khác nhau. Các thông tin thêm về lớp này có thể tham khảo trong tài liệu về API. Tên hàm getDBO là viết tắt cho get DataBase Object, có thể nhớ một cách dễ dàng và rất quan trọng. Bây giờ chúng ta đã có một tham chiếu đến đối tượng CSDL, Chúng ta có thể lấy dữ liệu. Điều này được thực qua hai bước: Lưu trữ câu truy vấn của vào đối tượng CSDL Tải kết quả về Code của phương thức getGreeting() bây giờ sẽ như sau: function getGreeting() { $db =& JFactory::getDBO(); $query = 'SELECT greeting FROM #__hello'; $db->setQuery( $query ); $greeting = $db->loadResult(); return $greeting; } Trong đoạn mã trên ‘hello’ là tên của bảng trong CSDL mà chúng ta sẽ tạo ra trong phần sau. Và ‘greeting’ là tên của trường lưu trữ câu chào mừng. Phương thức $db→loadResult() sẽ chạy câu lệnh truy vấn CSDL đã được lưu trữ và trả về trường đầu tiên của dòng đầu tiên trong kết quả. Xem JDatabase API reference để có các thông tin nhiều hơn về các phương thức khác trong lớp JDatabase. Tạo file SQL trong quá trình cài đặt và gỡ bỏ component Joomla! installer có xây dựng sẵn việc hỗ trợ đối với việc chạy các câu truy vấn trong quá trình cài đặt component. Tất cả các câu truy vấn này được lưu trữ trong một file text chuẩn. Chúng ta sẽ có 3 câu truy vấn trong file cài đặt: việc đầu tiên sẽ thực hiện xóa bảng trong trường hợp nó đã tồn tại, tiếp theo thực hiện việc tạo ra bảng với các trường phù hợp, và cuối cùng là chèn dữ liệu vào bảng vừa tạo. Dưới đây là các câu truy vấn của chúng ta: DROP TABLE IF EXISTS `#__hello`; CREATE TABLE `#__hello` ( `id` int(11) NOT NULL auto_increment, `greeting` varchar(25) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT DEFAULT CHARSET=utf8; INSERT INTO `#__hello` (`greeting`) VALUES ('Hello, World!'), ('Bonjour, Monde!'), ('Ciao, Mondo!'); Joomla! sẽ thay thế các tiền tố #_ trong tên bảng bởi tiền tố đã được xác định trong quá trình cài đặt. Đối với hầu hết các bản cài đặt, bảng này sẽ trở thành jos_hello. Điều này cho phép nhiều bản cài đặt joomla có thể sử dụng chung CSDL, và ngăn chặn các xung đột với các ứng dụng khác sử dụng cùng tên bảng (ví dụ, hai ứng dụng có thể chia sẻ chung một CSDL, nhưng cả hai đều cần một bảng ‘user’, với cách này vấn đề sẽ được giải quyết). Chúng ta đã xác định hai trường trong CSDL. Trường đầu tiên là ‘id’ đóng vai trò là khóa chính. Khóa chính trong một bảng của CSDL là trường dùng để xác định duy nhất một bản ghi trong bảng. Nó thường được sử dụng để tìm kiếm các hàng trong CSDL. Trường còn lại là ‘greeting’. Đây là trường lưu câu chào mừng được trả lại bởi truy vấn mà chúng ta đã sử dụng ở trên. Các câu truy vấn của chúng ta sẽ được lưu trong file install.utf.sql. Tạo ra file SQL để gỡ bỏ cài đặt Joomla! sẽ quản lý việc xóa các file và các thư mục được tạo ra trong quá trình cài đặt, nhưng phải bổ sung các câu truy vấn sẽ loại bỏ các bảng đã được thêm vào CSDL. Trong ví dụ, chúng ta chỉ cần một câu truy vấn sau để xóa nó. DROP TABLE IF EXISTS `#__hello`; Câu truy vấn này sẽ được lưu trữ trong file uninstall.utf.sql. Cập nhật file cài đặt Chúng ta cần phải thay đổi một vài thứ trong file cài đặt XML. Đầu tiên, chúng ta cần bổ sung hai file mới vào danh sách các file. File cài đặt SQL sẽ phải đưa vào trong thư mục admin. Thứ hai, chúng ta cần phải báo cho trình cài đặt chạy các câu truy vấn trong các file của chúng ta trong quá trình cài đặt và quá trình gỡ bỏ. File XML mới của chúng ta sẽ như sau: <!DOCTYPE install SYSTEM " install.dtd"> Hello 2007 02 22 John Doe john.doe@example.org Copyright Info License Info Component Version String Description of the component ... index.html hello.php controller.php views/index.html views/hello/index.html views/hello/view.html.php views/hello/tmpl/index.html views/hello/tmpl/default.php models/hello.php install.sql uninstall.sql Hello World! index.html admin.hello.php install.sql uninstall.sql Chú ý đến hai thuộc tính xuất hiện trong các thẻ nằm trong các phần và : charset và driver. Charset là kiểu charset được sử dụng. Chỉ có charset hợp lệ là utf8. Nếu bạn muốn tạo ra các file cài đặt cho CSDL không phải là utf8 bạn sẽ bỏ qua thuộc tính này. Thuộc tính driver xác định CSDL nào các câu truy vấn được viết cho. Hiện tại, thuộc tính này chỉ có thể là mysql, nhưng các phiên bản joomla trong tương lai có thể có nhiều dạng CSDL hơn. Tạo giao diện quản trị trong MVC Tạo Framework cơ sở Frameword cơ sở của panel quản trị cũng tương tự như phần site. Điểm vào chính cho phần quản trị là file admin.hello.php. File này giống y hệt file hello.php được sử dụng trong phần site ngoại trừ tên của controler mà nó tải sẽ được thay đổi thành HellosController. Ngoài ra, controler mặc định được gọi là controller.php và file này giống y hệt controler mặc định trong phần site, ngoại trừ tên của controler được gọi là HellosController thay vì HelloController. Sự thay đổi này để JControler theo mặc định sẽ tải hellos view, view này sẽ hiển thị một danh sách các câu chào mừng. Dưới đây là code của admin.hello.php <?php defined( '_JEXEC' ) or die( 'Restricted access' ); require_once( JPATH_COMPONENT.DS.'controller.php' ); if($controller = JRequest::getWord('controller')) { $path = JPATH_COMPONENT.DS.'controllers'.DS.$controller.'.php'; if (file_exists($path)) { require_once $path; } else { $controller = ''; } } $classname = 'HellosController'.$controller; $controller = new $classname( ); $controller->execute( JRequest::getVar( 'task' ) ); $controller->redirect(); ?> Chúng sẽ bắt đầu với view hellos và model hellos. Đầu tiên là model hellos. Model Hellos Model Hellos sẽ rất đơn giản. Hiện tại, công việc mà chúng ta cần chỉ là truy vấn để nhận được một danh sách của các câu chào mừng từ CSDL. Công việc này sẽ được thực hiện bằng cách gọi phương thức getData(). Lớp JModel có một phương thức protected được xây dựng sẵn _getList(). Phương thức này có thể được sử dụng để đơn giản hóa tác vụ truy vấn để nhận được một danh sách các bản ghi từ CSDL. Đơn giản là chúng ta cần truyền cho nó câu truy vấn và nó sẽ trả lại danh sách các bản ghi. Trong tương lai, có thể chúng ta lại muốn sử dụng câu truy vấn trong một phương thức khác. Vì vậy, ở đây chúng ta sẽ tạo ra một phương thức private _buildQuery() sẽ trả lại câu truy vấn sẽ được truyền vào phương thức _getList(). Điều này sẽ tạo ra khả năng thay đổi câu truy vấn khi nó được đặt trong một tình huống khác. Do đó trong lớp của chúng ta sẽ có hai phương thức: getData() và _buildQuery(). Phương thức _buidQuery đơn giản là trả về câu truy vấn. Code của nó như sau: function _buildQuery() { $query = ' SELECT * ' . ' FROM #__hello ' ; return $query; } Phương thức getData() nhận câu truy vấn và trả lại danh sách các bản ghi từ CSDL. Bây giờ có thể xảy ra tình huống là chúng ta cần nhận được danh sách này 2 lần trong việc tải một trang. Thật là lãng phí khi truy vấn CSDL 2 lần. Bởi vậy chúng ta sẽ phải làm cho phương thức này lưu trữ dữ liệu trong một thuộc tính protected để trong các yêu cầu tiếp theo, nó chỉ đơn giản là trả về dữ liệu mà nó đã lấy được. Thuộc tính này sẽ được gọi là _data. Dưới đây là code của phương thức getData() function getData() { // Lets load the data if it doesn't already exist if (empty( $this->_data )) { $query = $this->_buildQuery(); $this->_data = $this->_getList( $query ); } return $this->_data; } Code đầy đủ của model sau khi hoàn thành như sau: <?php // Check to ensure this file is included in Joomla! defined('_JEXEC') or die(); jimport( 'joomla.application.component.model' ); class HellosModelHellos extends JModel { var $_data; function _buildQuery() { $query = ' SELECT * ' . ' FROM #__hello ' ; return $query; } function getData() { // Lets load the data if it doesn't already exist if (empty( $this->_data )) { $query = $this->_buildQuery(); $this->_data = $this->_getList( $query ); } return $this->_data; } } File này được lưu lại thành models/hellos.php. View Hellos Bây giờ chúng ta đã có một model để nhận dữ liệu, chúng ta cần hiển thị nó. View hellos này sẽ khá giống với view trong phần site. Model của chúng ta được tự động cài đặt trên site, bởi vậy nó nằm trong phần quản trị. Các phương thức bắt đầu bằng ‘get’ trong model có thể được truy cập bằng việc sử dụng phương thức get() của lớp JView. Bởi vậy view của chúng ta sẽ có 3 dòng. Một để lấy dữ liệu từ model, một để đẩy dữ liệu lên template, và một gọi phương thức display để hiển thị. Bởi vậy chúng ta có code như sau: <?php // Check to ensure this file is included in Joomla! defined('_JEXEC') or die(); jimport( 'joomla.application.component.view' ); class HellosViewHellos extends JView { function display($tpl = null) { JToolBarHelper::title( JText::_( 'Hello Manager' ), 'generic.png' ); JToolBarHelper::deleteList(); JToolBarHelper::editListX(); JToolBarHelper::addNewX(); // Get data from the model $items =& $this->get( 'Data'); $this->assignRef( 'items', $items ); parent::display($tpl); } } File này được lưu thành views/hellos/view.html.php. Template hellos Template sẽ lấy dữ liệu được đưa đến từ view và đưa dữ liệu đó ra đầu ra để hiển thị. Chúng ta sẽ hiển thị kết quả ở đầu ra trong một bảng đơn giản. Trong khi template ở phần site là rất đơn giản, thì trong trang quản trị chúng ta sẽ cần mở rộng một chút để xử lý vòng lặp thông qua dữ liệu. Dưới đây là code trong template của chúng ta: <?php $k = 0; for ($i=0, $n=count( $this->items ); $i < $n; $i++) { $row =& $this->items[$i]; ?> "> id; ?> greeting; ?> <?php $k = 1 - $k; } ?> Template này được lưu thành views/hellos/tmpl/default.php. CHƯƠNG 3 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG Trình bày kết quả phân tích và thiết kế bài toán gồm: phân tích chức năng như sơ đồ UseCase, sơ đồ tuần tự; thiết kế như sơ đồ lớp; giao diện,…) Phân tích hệ thống thông tinTrước khi phân tích nên mô tả lại một cách chi tiết bài tians cho người đọc hiểu rỏ yêu cầu Dưới đây là sơ đồ mô tả tổng quát chức năng của hệ thống quản lý dự án. Hình 1: Sơ đồ tổng quát của hệ thống Sơ đồ Use Case Use Case “Projects Management” Hình 2: Sơ đồ Use Case “Projects Management” Use Case “Tasks Management” Hình 3: Sơ đồ Use Case “Tasks Management” Use Case “Delivery Management” Hình 4: Sơ đồ Use Case “Delivery Management” Use Case “Requirements Management” Hình 5: Sơ đồ Use Case “Requirements Management” Use Case “Design Management” Hình 6: Sơ đồ Use Case “Design Management” Use Case “Coding Management” Hình 7: Sơ đồ Use Case “Coding Management” Use Case “Risks Management” Hình 8: Sơ đồ Use Case “Risks Management” Use Case “File Manage” Hình 9: Sơ đồ Use Case “File Manage” Use Case “Calendar Management” Hình 10: Sơ đồ Use Case “Calendar Management” Use Case “Board Management” Hình 11: Sơ đồ Use Case “Board Management” Use Case “Profile Management” Hình 12: Sơ đồ Use Case “Profile Management” Use Case “User Management” Hình 13: Sơ đồ Use Case “User Management” Danh sách Actor, Phân Quyền và Use Case Actor Có 3 loại User sử dụng hệ thống: Super Administrator, Project Manager và Member. Chúng được phân quyền như sau: Super Administrator Là người quản trị hệ thống hệ thống Joomala. Vì vậy nó có đầy đủ quyền trên component này. Project Manager Nhiệm vụ của Project Manager là quản lý dự án . Do vậy User này các quyền như Super Administrator ngoại trừ chức năng tạo dự án mới (create project). Member Là thành viên tham gia dự án và chỉ có quyền trên một số chức năng sau: Section Quyền Projects View projects Tasks View tasks Write comments Delivery View Requirements View Design View Coding View Risks View File Manage Create folder Upload file Download file Calendar View month View week View date Profile View profile Update profile Board Create topics Reply Bảng 1: Các chức năng của member Use Case Hệ thống gồm có các Use Case sau: Section Stt Use Case Mô tả Projects View Cho phép người dùng xem các dự án và các thông tin liên quan. Create projects Khởi tạo một dự án mới và lúc này nó ở trạng thái Active (đang hoạt động). Edit projects Chỉnh sửa các thông tin của dự án. Delete projects Xóa dự án. Archive project Sau khi dự án kết thúc, ta có thể lưu trữ lại bằng cách chuyển sang trạng thái Archive Search projects Tìm kiếm các dự án theo tên hoặc theo trạng thái của nó. Tasks View Cho phép xem thông tin về task như: người được phân bổ, tiến trình,độ ưu tiên,.... Create tasks Tạo mới một task. Edit tasks Chỉnh sửa các thông tin của task Delete tasks Xóa task. Write comments Viết lời bình cho task. Edit comments Chỉnh sửa lời bình. Delete comments Xóa lời bình. Search tasks Tìm kiếm các task theo: tên, người được phân bổ,trạng thái, độ ưu tiên. Delivery View Cho phép xem thông tin thời gian chuyển giao các element cho khách hàng. Create elements Tạo mới element. Edit elements Chỉnh sửa các thông tin của element. Delete elements Xóa element. Search element Tìm kiếm element. Requirements View Cho phép xem các thông tin về yêu cầu của khách hàng. Create requirements Tạo mới requirement. Edit requirements Chỉnh sửa requirement. Delete requirements Xóa requirement. Search requirements Search requirement. Design View Xem thông tin củacác module được thiết kế dựa trên các requirement của khách hàng. Create module Tạo mới module. Edit module Chỉnh sửa module. Delete module Xóa module. Search module Tìm kiếm module theo: tên, người được phân bổ, trạng thái của module. Coding View Xem thông tin về module được coding dựa theo design. Create module Tạo mới module. Edit module Chỉnh sửa module. Delete module Xóa module. Search module Tìm kiếm module theo: name, người được phân bổ, trạng thái của nó. Risks View Xem thông tin về các nguy cơ có thể xảy ra trong quá trình làm dự án. Create risks Tạo mới risk Edit risks Chỉnh sửa risk. Delete risks Xóa risk. Search risks Tìm kiếm risks. File Manage Create folder Tạo mới thư mục. Upload file Cho phép upload tệp tin từ máy lên server. Download Cho phép download file về máy. Edit folder Chỉnh sửa thư mục. Edit file Chỉnh sửa file Move Chuyển file hoặc folder đến folder khác. Delete folder Xóa thư mục. Delete file Xóa tệp tin. Calendar Create event Tạo mới một sự kiện (event). Edit event Chỉnh sửa thông tin của event. Delete event Xóa event. View month Cho phép xem các event theo tháng. View week Cho phép xem các event theo tuần. View date Cho phép xem các event theo ngày. Board Create topics Cho phép tạo chủ đề để mọi người tham gia thảo luận. Reply Tham gia thảo luận các topic bằng cách hồi âm (reply). Edit topics Chỉnh sửa topic. Edit replies Chỉnh sửa reply Delete topics Xóa topic. Delete replies Xóa reply. Profile View profile Cho phép xem thông tin cá nhân của user. Update profile Cập nhật thông tin của user. User Create user Tạo mới user,chức năng này sẽ tạo mới một user và được thêm vào như là thành viên của dự án. Invite user Mời user tham gia vào dự án. Edit user Chỉnh sửa thông tin user. Delete user Xóa user. Bảng 2: Danh sách các Use Case Đặc tả chi tiết Use Case “Login” Mô tả Use Case này cho phép Super Administrator, Project Manager hoặc là Member đăng nhập vào hệ thống. Các luồng sự kiện chính Use Case này bắt đầu khi người dùng đăng nhập vào hê thống Joomla và click vào liên kết đến component Quan Ly Du An. Màn hình đăng nhập hiện lên. Màn hình yêu cầu User muốn đăng nhập nhập vào username và password. User xác nhận đăng nhập vào hệ thống. Hệ thống kiểm tra xem username và password có đúng hay không. Nếu đúng hệ thống sẽ thông báo đăng nhập thành công và cho user vào hệ thống với quyền tương ứng. Use Case kết thúc. Các luồng sự kiện khác Nếu User không muốn đăng nhập vào hệ thống thì UseCase này kết thúc. Nếu username hoặc password không đúng hê thống sẽ thông báo lỗi. Các yêu cầu đặc biệt Không có Điều kiện trước đó Không có Yêu cầu sau đó Nếu Use Case này thành công thì hệ thống cho phép User đăng nhập vào hệ thống với quyền tương ứng. Use Case “Projects Management” Mô tả Use Case này cho phép User thêm mới, cập nhật, lưu trữ ,xóa và tìm kiếm project tùy vào quyền mà User đã đăng nhập vào hệ thống. Các luồng sự kiện chính Use Case này bắt đầu khi User muốn thêm, cập nhật, lưu trữ, xóa và tìm kiếm project. Hệ thống hiển thị màn hình cho phép User thêm, cập nhật, lưu trữ, xóa, tìm kiếm. Nếu User chọn khởi tạo mới một project: Hệ thống sẽ xuất hiện form để User nhập thông tin project. User nhập thông tin tạo dự án mới: Project name, Project type, Development cycles, Client name, PM name,… Nếu User chọn chứa năng “Save” và thông tin hợp lệ thì hệ thống sẽ cập nhật project này vào CSDL và Use Case này kết thúc. Nếu User đánh dấu project và chọn cập nhật thì: Hệ thống sẽ hiển thị form cập nhật project. Nếu User chọn nút “Save” hoặc Apply” và thông tin hợp lệ thì hệ thống sẽ cập nhật thông tin project. Nếu User đánh dấu project và chọn lưu trữ thì hệ thống sẽ chuyển trạng thái của project từ Active sang Archive. Nếu User chọn project và chọn xóa thì: Hệ thống sẽ đưa ra bảng thông báo để xác nhận. Nếu User chọn “Yes” hệ thống sẽ xóa project khỏi CSDL. Nếu User nhập tên project, chọn trạng thái và chọn “OK” thì hệ thống sẽ đưa ra danh sách các project phù hợp với nội dung tìm kiếm nhất. Các luồng sự kiện khác Ở luồng sự kiện tạo mới project: Nếu User chọn chức năng “Save” mà chưa nhập tên của project thì hệ thống sẽ đưa ra thông báo yêu cầu nhập tên project. Nếu User chọn chức năng “Cancel” thì Use Case này kết thúc. Ở luồng sự kiện cập nhật project: Nếu PM chọn nút “Save” hoặc Apply” mà thiếu tên project thì hệ thống sẽ đưa ra thông báo yêu cầu nhập tên project. Nếu PM chọn nút “Cancel” thì Use Case này sẽ kết thúc. Ở luồng sự kiện xóa project nếu User chọn “No” thì Use Case này kết thúc. Các yêu cầu đặc biệt Không có. Điều kiện trước đó User đăng nhập thành công vào hệ thống. Các chức năng chỉ được thực hiện theo đúng quyền của User. Yêu cầu sau đó Hiển thị lại kết quả lên màn hình. Use Case “Tasks Management” Mô tả Use Case này cho phép User thêm mới, cập nhật, xóa, tìm kiếm task. Ngoài ra còn co thêm các chức năng viết, cập nhật, xóa comment. Các chức năng này được thực hiện tùy vào quyền mà User đã đăng nhập vào hệ thống. Các luồng sự kiện chính Use Case này bắt đầu khi User muốn thêm, cập nhật, xóa…. Hệ thống hiển thị màn hình cho phép User thêm, cập nhật, lưu trữ, xóa, tìm kiếm,…. Nếu User chọn tạo mới task: Hệ thống sẽ xuất hiện form để User nhập thông tin task. User nhập thông tin task: Task name, Status,… Nếu User chọn chứa năng “Save” và thông tin hợp lệ thì hệ thống sẽ cập nhật task này vào CSDL và Use Case này kết thúc. Nếu User đánh dấu task và chọn cập nhật thì: Hệ thống sẽ hiển thị form cập nhật task. Nếu User chọn nút “Save” hoặc Apply” và thông tin task sẽ được cập nhật. Nếu User chọn task và chọn xóa thì: Hệ thống sẽ đưa ra bảng thông báo để xác nhận. Nếu User chọn “Yes” hệ thống sẽ xóa task khỏi CSDL. Nếu User nhập tên project, chọn trạng thái, …. và chọn “OK” thì hệ thống sẽ đưa ra danh sách các task phù hợp với nội dung tìm kiếm nhất. Nếu User đánh dấu task và chọn comments thì hệ thống hiển thị màn hình quản lý comment gồm các chức năng sau: User nhập nội dung của comment và “Save”. User chọn comment và “Edit”. User chọn comment va “Delete”. Các luồng sự kiện khác Ở luồng sự kiện tạo mới task: Nếu User chọn chức năng “Save” mà chưa nhập tên của task thì hệ thống sẽ đưa ra thông báo yêu cầu nhập tên task. Nếu User chọn chức năng “Cancel” thì Use Case này kết thúc. Ở luồng sự kiện cập nhật task: Nếu User chọn nút “Save” hoặc Apply” mà thiếu tên task thì hệ thống sẽ đưa ra thông báo yêu cầu nhập tên task. Nếu User chọn nút “Cancel” thì Use Case này sẽ kết thúc. Ở luồng sự kiện xóa task nếu User chọn “No” thì Use Case này kết thúc. Ở luồng sự kiện comments nếu User chọn “Back” thì Use Case này kết thúc. Các yêu cầu đặc biệt Không có. Điều kiện trước đó User đăng nhập thành công vào hệ thống. User phải chọn workspace. Đó chính là project chứa các task này Các chức năng chỉ được thực hiện theo đúng quyền của User. Yêu cầu sau đó Hiển thị lại kết quả lên màn hình. Use Case “Delivery Management” Mô tả Use Case này dùng để quản lý việc chuyển giao các thành phần của project đến khách hàng gồm: thêm mới, cập nhật, xóa, tìm kiếm các phần tử (element) sẽ được giao. Các chức năng này được thực hiện tùy vào quyền mà User đã đăng nhập vào hệ thống. Các luồng sự kiện chính Use Case này bắt đầu khi User muốn thêm, cập nhật, xóa, tìm kiếm các element. Hệ thống hiển thị màn hình cho phép User thêm, cập nhật, lưu trữ, xóa, tìm kiếm. Nếu User chọn tạo mới một element: Hệ thống sẽ xuất hiện form để User nhập thông tin của element. User nhập thông tin của element. Nếu User chọn chứa năng “Save” và thông tin hợp lệ thì hệ thống sẽ cập nhật element này vào CSDL và Use Case này kết thúc. Nếu User đánh dấu element và chọn cập nhật thì: Hệ thống sẽ hiển thị form cập nhật cho element. Nếu User chọn nút “Save” hoặc Apply” và thông tin của element sẽ được cập nhật. Nếu User chọn element và chọn xóa thì: Hệ thống sẽ đưa ra bảng thông báo để xác nhận. Nếu User chọn “Yes” hệ thống sẽ xóa element khỏi CSDL. Nếu User nhập tên element …. và chọn “OK” thì hệ thống sẽ đưa ra danh sách các element phù hợp với nội dung tìm kiếm nhất. Các luồng sự kiện khác Ở luồng sự kiện tạo mới element: Nếu User chọn chức năng “Save” mà chưa nhập tên của element thì hệ thống sẽ đưa ra thông báo yêu cầu nhập tên element. Nếu User chọn chức năng “Cancel” thì Use Case này kết thúc. Ở luồng sự kiện cập nhật element: Nếu User chọn nút “Save” hoặc Apply” mà thiếu tên element thì hệ thống sẽ đưa ra thông báo yêu cầu nhập tên element. Nếu User chọn nút “Cancel” thì Use Case này sẽ kết thúc. Ở luồng sự kiện xóa element nếu User chọn “No” thì Use Case này kết thúc. Các yêu cầu đặc biệt Không có. Điều kiện trước đó User đăng nhập thành công vào hệ thống. User phải chọn workspace. Các chức năng chỉ được thực hiện theo đúng quyền của User. Yêu cầu sau đó Hiển thị lại kết quả lên màn hình. Use Case “Requirements Management” Mô tả Use Case này dùng để quản lý các yêu cầu (requirement) trong dự án mà khách hàng đưa ra gồm các chức năng: thêm mới, cập nhật, xóa, tìm kiếm. Các chức năng này được thực hiện tùy vào quyền mà User đã đăng nhập vào hệ thống. Các luồng sự kiện chính Use Case này bắt đầu khi User muốn thêm, cập nhật, xóa, tìm kiếm các requirement. Hệ thống hiển thị màn hình cho phép User thêm, cập nhật, lưu trữ, xóa, tìm kiếm. Nếu User chọn tạo mới một requirement: Hệ thống sẽ xuất hiện f

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

  • docLVTN_NTTThien_LTHThuy_04T4.doc