Đề 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 CHƯƠNG 1 MỞ ĐẦU I. Đặt vấn đề Ngày nay, các ứng dụng mã nguồn mở hầu như đáp ứng đầy đủ các yêu cầu sử dụng của doanh nghiệp. Từ việc triển khai các trang web với Joomla, diễn đàn với PhpBB, hệ thống elearning Moodle cho đến các ứng dụng quản lý khách hàng SugarCRM, quản lý dự án . Một trong những thuận lợi đầu tiên của việc ứng dụng mã nguồn mở là tiết kiệm chi phí. Ngoài ra, khi ứng dụng phần mềm chạy trên nền web người dùng sẽ dễ dàng truy cập và sử dụng bằng các trình duyệt như Firefox hay IE mà không cần phải cài đặt gì thêm. Có nhiều chương trình mã nguồn mở khác nhau, chúng tôi chọn tìm hiểu về hệ thống quản lý tin Joomla CMS vì Joomla được sử dụng ở khắp mọi nơi trên thế giới, từ những website cá nhân cho tới những hệ thống website doanh nghiệp có tính phức tạp cao, cung cấp nhiều dịch vụ và ứng dụng. Joomla có thể dễ dàng cài đặt, dễ dàng quản lý và có độ tin cậy cao. Joomla giúp mọi người có thể phát triển việc kinh doanh, học tập, giảng dạy, giới thiệu, quảng bá hình ảnh, dịch vụ, sản phẩm của mình, của công ty, của trường mình một cách tốt nhất, hiệu quả nhất với chi phí thấp nhất Ngoài ra, chương trình này còn được hỗ trợ bởi một cộng đồng rộng lớn, đáp ứng các yêu cầu về an toàn và bảo mật thông tin . Để tìm hiểu mô hình hoạt động và cách xây dựng một ứng dụng trên nền Joomla, chúng tôi xin giới thiệu đề tài « Xây dựng component quản lý dự án phần mềm cho website Joomla » Mặc dù ứng dụng đã triển khai được phần lớn các yêu cầu chính trong việc quản lý một dự án phần mềm, tuy nhiên việc xây dựng một chương trình quản lý dự án là khá phức tạp. Do đó ứng dụng này không tránh khỏi những thiếu sót, rất mong nhận được nhiều ý kiến nhận xét của thầy cô và các bạn để chúng tôi có thể rút kinh nghiệm cho việc xây dựng những ứng dụng thực tế sau này. II. Lý do chọn đề tài Trong thuật ngữ của chuyên ngành Kĩ nghệ [NTB1] phần mềm, Quản lý dự án phần mềm là các hoạt động trong lập kế hoạch, giám sát và điều khiển tài nguyên dự án, thời gian thực hiện, các rủi ro trong dự án và cả quy trình thực hiện dự án; nhằm đảm bảo thành công cho dự án. Khi triển khai một dự án phần mềm thì các vấn đề sau thường xảy ra: thời gian thực hiện quá mức dự kiến, kết quả của dự án không như mong đợi .Để tránh những vấn đề đó xảy ra đòi hỏi người quản lý phải làm tốt về: - Quản lý thời gian: lập lịch, kiểm tra đối chiếu quá trình thực hiện dự án với lịch trình, điều chỉnh lịch trình khi cần thiết - Quản lý nhân lực: xác định, điều phối nhân lực cho hợp lý - Quản lý sản phẩm: thêm, bớt các chức năng phù hợp với yêu cầu của khách hàng - Quản lý rủi ro: xác định, phân tích rủi ro và đề xuất giải pháp khắc phục. Xuất phát từ những yêu cầu trên, chúng tôi đã chọn đề tài « Xây dựng component quản lý dự án phần mềm cho website Joomla » [NTB2] làm đề tài tốt nghiệp. Việc xây dựng một ứng dụng như vậy nhằm áp dụng những kiến thức mà chúng tôi đã được học ở trường trong thời gian qua vào thực tiễn với mong muốn sẽ làm cho công việc quản lý dự án doanh nghiệp phần mềm sẽ thuận tiện hơn. Chương trình được viết trên nền web nên những người tham gia dự án chỉ cần truy cập vào website của công ty để lấy những thông tin về dự án, trao đổi về công việc. Hơn nữa người quản lý vẫn có thể xem xét quá trình làm dự án, trực tiếp quản lý dự án đó khi vắng mặt ở công ty. III. Hướng nghiên cứu của đề tài III.1. Về mặt lý thuyết - Tìm hiểu về CMS Joomla, ngôn ngữ PHP, MySQL, cách xây dựng component cho website Joomla. - Tìm hiểu về các thao thác cơ bản trong việc quản lý dự án nói chung và quản lý dự án phần mềm nói riêng. - Đưa ra một số định hướng để phát triển đề tài. III.2. Công cụ xây dựng đề tài - Công cụ nghiên cứu cơ sở lý thuyết: Các tài liêu tham khảo về ngôn ngữ PHP, MySQL, Joomla, quản lý dự án . - Công cụ thiết kế phần mềm: trình duyệt Firefox, Internet Explore, Joomla 1.5.9, Jcode studio for Joomla, StarUML . IV. Dự kiến kết quả đạt được Xậy dựng component cho website Joomla thực hiện một số công việc cơ bản của quản lý dự án phần mềm như: - Hiển thị thông tin các dự án mà công ty đang thực hiện. Chương trình cho phép admin và trưởng dự án trực tiếp chỉnh sửa, cập nhật thông tin về dự án trên đó. Nhân viên sau khi xem thông tin về dự án nếu muốn tham gia có thể gởi yêu cầu và nếu đựợc admin hay trưởng dự án đồng ý thì sẽ trở thành thành viên của dự án. - Trưởng dự án có thể chia một dự án ra thành nhiều task nhỏ, mỗi task có một thời hạn deadline riêng, do một nhân viên trực tiếp chịu trách nhiệm để tiện cho việc quản lý - Mỗi dự án phần mềm được chia ra thành những phần cụ thể như : Task: Mỗi dự án chia ra thành các công việc nhỏ hơn. Mỗi công việc có một thời hạn deadline riêng. Requirement: đưa ra những yêu cầu của khách hàng về dự án phần mềm đó Design: đưa ra các bản thiết kế cho phần mềm sao cho phù hợp với requirement, mỗi requirement có thể có nhiều mẫu design khác nhau Coding: phần này để quản lý việc coding của dự án, ứng với mỗi design thì có một hoặc nhiều phần coding khác nhau Risks: là nơi đưa ra những rủi ro dự kiến được của dự án, hậu quả và cách khắc phục . Delivery: trưởng dự án đưa ra thông tin về kế hoạch chuyển giao cho khách hàng ở đây để mọi người tham khảo và điều chỉnh kế hoạch làm việc của mình cho kịp tiến độ - Quản lý file: Các thành viên của dự án có thể đưa những tài liệu có liên quan lên đây cho mọi người. Chương trình cho phép tạo một thư mục mới và liên kết với task có liên quan. - Diễn đàn thảo luận nội bộ của các thành viên trong dự án: là nơi để các thành viên trong dự án đưa lên những ý kiến của mình, những khó khăn khi thực hiện để trưởng dự các và các thành viên khác xem xét, cân nhắc, đưa ra ké hoạch làm việc phù hợp. - Quản lý thành viên: Mỗi nhân viên phải có tài khoản đăng kí trên website của công ty. Nếu muốn nhân viên đó trở thành thành viên của dự án thì admin hay trưởng dự án sẽ dùng tên tài khoản mà nhân viên đã đăng kí hoặc địa chỉ mail của nhân viên để add vào dự án V. Nội dung tóm tắt các chương tiếp theo Chương 1: Cơ sở lý thuyết[NTB3] Chương 2: Phân tích và thiết kế hệ thống Chương 3: Xây dựng chương trình và kết quả thực hiện Chương 4: Kết luận

doc96 trang | Chia sẻ: lvcdongnoi | Lượt xem: 3285 | Lượt tải: 3download
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
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 form để User nhập thông tin của requirement. User nhập thông tin của requriement. 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 requirement này vào CSDL và Use Case này kết thúc. Nếu User đánh dấu requirement và chọn cập nhật thì: Hệ thống sẽ hiển thị form cập nhật cho requirement. Nếu User chọn nút “Save” hoặc Apply” và thông tin của requirement sẽ được cập nhật. Nếu User chọn requirement 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 requirement khỏi CSDL. Nếu User nhập tên requirement …. và chọn “OK” thì hệ thống sẽ đưa ra danh sách các requirement 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 requriement: Nếu User chọn chức năng “Save” mà chưa nhập tên của requirement thì hệ thống sẽ đưa ra thông báo yêu cầu nhập tên requirement. 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 requriement: Nếu User chọn nút “Save” hoặc Apply” mà thiếu tên requirement thì hệ thống sẽ đưa ra thông báo yêu cầu nhập tên requirement. 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 requirement 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 “Design Management” Mô tả Use Case này dùng để quản lý các module được PM thiết kế dựa theo yêu cầu 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 module. 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 module: Hệ thống sẽ xuất hiện form để User nhập thông tin của module. User nhập thông tin của module. 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 module này vào CSDL và Use Case này kết thúc. Nếu User đánh dấu module và chọn cập nhật thì: Hệ thống sẽ hiển thị form cập nhật cho module. Nếu User chọn nút “Save” hoặc Apply” và thông tin của module sẽ được cập nhật. Nếu User chọn module 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 module khỏi CSDL. Nếu User nhập tên module …. và chọn “OK” thì hệ thống sẽ đưa ra danh sách các module 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 module: Nếu User chọn chức năng “Save” mà chưa nhập design code thì hệ thống sẽ đưa ra thông báo yêu cầu nhập design code. 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 module: Nếu User chọn nút “Save” hoặc Apply” mà thiếu design code thì hệ thống sẽ đưa ra thông báo yêu cầu nhập design code. 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 module 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 “Coding Management” Mô tả Use Case này dùng để quản lý tiến trình coding các module được tham chiếu từ Design 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 module. 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 module: Hệ thống sẽ xuất hiện form để User nhập thông tin của module. User nhập thông tin của module. 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 module này vào CSDL và Use Case này kết thúc. Nếu User đánh dấu module và chọn cập nhật thì: Hệ thống sẽ hiển thị form cập nhật cho module. Nếu User chọn nút “Save” hoặc Apply” và thông tin của module sẽ được cập nhật. Nếu User chọn module 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 module khỏi CSDL. Nếu User nhập tên module,chọn status,.. …. và chọn “OK” thì hệ thống sẽ đưa ra danh sách các module 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 module: Nếu User chọn chức năng “Save” mà chưa nhập tên module thì hệ thống sẽ đưa ra thông báo yêu cầu nhập tên module. 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 module: Nếu User chọn nút “Save” hoặc Apply” mà thiếu tên module thì hệ thống sẽ đưa ra thông báo yêu cầu nhập tên module. 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 module 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 “Risks Management” Mô tả Use Case này dùng để quản lý các nguy cơ (risk) có thể xảy ra trong quá trình làm project 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 risk. 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 risk: Hệ thống sẽ xuất hiện form để User nhập thông tin của risk. User nhập thông tin của risk. 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 risk này vào CSDL và Use Case này kết thúc. Nếu User đánh dấu risk và chọn cập nhật thì: Hệ thống sẽ hiển thị form cập nhật cho risk. Nếu User chọn nút “Save” hoặc Apply” và thông tin của risk sẽ được cập nhật. Nếu User chọn risk 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 risk khỏi CSDL. Nếu User nhập tên module,chọn status,.. …. và chọn “OK” thì hệ thống sẽ đưa ra danh sách các risk 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 risk: Nếu User chọn chức năng “Save” mà chưa nhập tên risk thì hệ thống sẽ đưa ra thông báo yêu cầu nhập tên risk. 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 risk: Nếu User chọn nút “Save” hoặc Apply” mà thiếu tên risk thì hệ thống sẽ đưa ra thông báo yêu cầu nhập tên risk. 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 risk 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 “File Manage” Mô tả Use Case này dùng để quản lý các tệp tin, thư mục gồm các chức năng sau: tạo thư mục, upload tệp tin, di chuyển thư mục hoặc tệp tin đến thư mục khác,… Các luồng sự kiện chính Use Case này bắt đầu khi User muốn upload file, download file,…. Nếu User chọn tạo mới một folder: Hệ thống sẽ xuất hiện form để User nhập thông tin của folder. User nhập thông tin của folder. 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 folder này vào CSDL và Use Case này kết thúc. Nếu User đánh dấu folder và chọn cập nhật: Hệ thống sẽ hiển thị form cập nhật cho folder. Nếu User chọn nút “Save” và thông tin của folder sẽ được cập nhật. Nếu User chọn upload file: Hệ thống hiển thị form để User chọn đường dẫn đến file cần upload và nhập thông tin vê file. Nếu User chọn chứa năng “Save” và thông tin hợp lệ thì hệ thống sẽ upload file lên server cập nhật file này vào CSDL và Use Case này kết thúc. Nếu User đánh dấu file và chọn cập nhật: Hệ thống hiển thị form để User chọn đường dẫn đến file cần upload và nhập thông tin vê file. Nếu User chọn nút “Cancel” thì Use Case này sẽ kết thúc. Nếu User đánh dấu file/folder cần chuyển và chọn move: Hệ thống sẽ hiển thị danh sách các folder. Chọn folder và chọn “Move”. Nếu User chọn folder/file và chọn xóa thì hệ thống sẽ xóa chúng khỏi CSDL. Các luồng sự kiện khác Ở luồng sự kiện tạo mới folder: Nếu User chọn chức năng “Save” mà chưa nhập tiêu đề của folder thì hệ thống sẽ đưa ra thông báo yêu cầu nhập. 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 folder: Nếu User chọn nút “Save” mà thiếu tiêu đề của folder thì hệ thống sẽ đưa ra thông báo yêu cầu nhập. Nếu User chọn nút “Cancel” thì Use Case này sẽ kết thúc. Ở luồng sự kiện move: Nếu User chọn nút “Cancel” thì Use Case này sẽ kết thúc. Các yêu cầu đặc biệt Điều kiện trước đó Yêu cầu sau đó Hiển thị ra màn hình. Use Case “Calendar Management” Mô tả Use Case này dùng để xem lịch và quản lý các các sự kiện (event) gồm các chức năng: thêm mới, cập nhật, xóa. 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 các event hoặc xem lịch. 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 và xem lịch. User có thể xem lịch cùng với các event theo tháng, week hoặc date băng cách chọn: Display month. Display week. Display date. Nếu User chọn tạo mới một event: Hệ thống sẽ xuất hiện form để User nhập thông tin của event. User nhập thông tin của event. 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 event này vào CSDL và Use Case này kết thúc. Nếu User đánh dấu event và chọn cập nhật thì: Hệ thống sẽ hiển thị form cập nhật cho event. Nếu User chọn nút “Save” và thông tin của event sẽ được cập nhật. Nếu User chọn event và chọn xóa thì hệ thống sẽ xóa event khỏi CSDL. Các luồng sự kiện khác Ở luồng sự kiện tạo mới event: Nếu User chọn chức năng “Save” mà chưa nhập tiêu đề của event thì hệ thống sẽ đưa ra thông báo yêu cầu nhập. 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 event: Nếu User chọn nút “Save” mà thiếu tiêu đề cuae event thì hệ thống sẽ đưa ra thông báo yêu cầu nhập. Nếu User chọn nút “Cancel” thì Use Case này sẽ 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 “Board Management” Mô tả Use Case giống như một forum. Trong quá trình thực hiện dự án nếu gặp vần đề mọi người có thể đưa ý kiến lên đây để trao đổi gồm các chức năng: viết bài, cập nhật, xóa. Các luồng sự kiện chính Use Case này bắt đầu khi User muốn viết bài, cập nhật,… thông tin lên Board. Hệ thống hiển thị màn hình cho phép User tạo topics, reply, …. Nếu User chọn tạo mới một topic: Hệ thống sẽ xuất hiện form để User nhập thông tin của topic. User nhập thông tin của topic. 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 topic này vào CSDL và Use Case này kết thúc. Nếu User đánh dấu topic và chọn cập nhật thì: Hệ thống sẽ hiển thị form cập nhật cho topic. Nếu User chọn nút “Save” và thông tin của topic sẽ được cập nhật. Nếu User chọn topic 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 topic khỏi CSDL. Nếu User kích chuột vào tiêu đề của topic thì hệ thống sẽ hiển thị form để User viết reply: User nhập nội dung muốn reply. Chọn “Reply” thì nội dung của reply sẽ được cập nhật vào CSDL Các luồng sự kiện khác Ở luồng sự kiện tạo mới topic: Nếu User chọn chức năng “Save” mà chưa nhập tiêu đề của topic thì hệ thống sẽ đưa ra thông báo yêu cầu nhập. 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 topic: Nếu User chọn nút “Save” mà thiếu tiêu đề cuae topic thì hệ thống sẽ đưa ra thông báo yêu cầu nhập. Nếu User chọn nút “Cancel” thì Use Case này sẽ kết thúc. Ở luồng sự kiện viết reply: Use Case sẽ kết thúc nếu User chọn “Back” 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 “Profile Management” Mô tả Use Case này cho phép xem và cập nhật thông tin các nhân (profile), đặc biệt là có thể mở rộng profile với avatar. Các luồng sự kiện chính Use Case bắt đầu khi User muốn xem và cập nhật profile. Hiển thị màn hình để User cập nhât lại profile. User nhập thông tin về profile. 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 profile này vào CSDL và Use Case này kết thúc. Các luồng sự kiện khác Nếu User chọn “Save” mà chưa điền thông tin ở một trong hai trường là Name và Email hoặc là thông tin không hợp lệ thì hệ thống sẽ gởi thông báo yêu cầu nhập lại. 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. Yêu cầu sau đó Hiển thị lên màn hình. Use Case “User Management” Mô tả Use Case dùng để SA quản lý các User, gồm các chức năng: thêm mới, cập nhật, xó và mời User tham gia vào project. Các luồng sự kiện chính Use Case bắt đầu khi SA muốn thực hiện các chức năng trên. Nếu SA chọn tạo mới User: Mặc định chức năng này sẽ tạo mới một User trong Joomla và thêm User này vào tham gia project. Hệ thống hiển thị form nhập để SA nhập thông tin. SA nhập thông tin. SA chọn “Save” và thông tin hợp lệ thì hệ thống sẽ cập nhật User này vào CSDL và Use Case này kết thúc. Nếu SA đánh dấu chọn User và chọn cập nhật: Hệ thống hiển thị form nhập để SA nhập thông tin của User. SA nhập thông tin. SA chọn “Save” và thông tin hợp lệ thì hệ thống sẽ cập nhật User này vào CSDL và Use Case này kết thúc. Nếu SA đánh dấu chọn User và chọn xóa thì User sẽ bị loại khỏi đang tham gia project Nếu SA chọn nút “Invite” để mời User tham gia vào dự án: Hệ thống hiển thị form nhập để SA nhập username hoặc địa chỉ email của User. Nếu User này chưa tồn tại trong project thì hệ thống cập nhật nó vào project. Các luồng sự kiện khác Ở luồng sự kiện tạo mới : Nếu User này đã tồn tại trong hệ thống User của Joomla thì hệ thống sẽ báo lỗi và yêu cầu nhập lại thông tin. Nếu SA chọn “Cancel” thì Use Case này kết thúc. Ở luồng sự kiện tạo Invite : Nếu User này đã tồn tại trong project thi hệ thống sẽ không báo lỗi và Use Case này kết thúc. Nếu SA chọn “Cancel” thi 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 với quyền SA. SA phải chọn workspace. Yêu cầu sau đó Hiển thị lên màn hình. Sơ đồ tuần tự Chức năng “Login” Hình 14: Sơ đồ tuần tự chức năng “Login” Chức năng “Projects Management” Hình 15: Sơ đồ tuần tự chức năng “Projects Management” Chức năng “Tasks Management” Hình 16: Sơ đồ tuần tự chức năng “Tasks Management” Chức năng “Delivery Management” Hình 17: Sơ đồ tuần tự chức năng “Delivery Management” Chức năng “Requirements Management” Hình 18: Sơ đồ tuần tự chức năng “Requirements Management” Chức năng “Design Management” Hình 19: Sơ đồ tuần tự chức năng “Design Management” Chức năng “Coding Management” Hình 20: Sơ đồ tuần tự chức năng “Coding Management” Chức năng “Risks Management” Hình 21: Sơ đồ tuần tự chức năng “Risks Management” Chức năng “File Manage” Hình 22: Sơ đồ tuần tự chức năng “File Manage” Chức năng “Calendar Management” Hình 23: Sơ đồ tuần tự chức năng “Calendar Management” Chức năng “Board Management” Hình 24: Sơ đồ tuần tự chức năng “Board Management” Chức năng “User Management” Hình 25: Sơ đồ tuần tự chức năng “User Management” Thiết kế hệ thống Sơ đồ lớp Bảng 3: Sơ đồ lớp Tổ chức dữ liệu Từ việc xây dựng các chức năng đã trình bày ở trên, chương trình xây dựng các bảng dữ liệu như sau: Mô tả các bảngNên có thêm sơ đồ CSDL quan hệ Stt Tên bảng Diễn giải jos_pf_projects Lưu trữ tất cả các thông tin của dự án jos_pf_project_members Mô tả quan hệ của User đến các dự án jos_pf_tasks Lưu trữ tất cả các thông tin công việc của dự án jos_pf_comments Bảng lưu trữ các comments của task jos_pf_requirement Bảng lưu trữ yêu cầu của khách hàng jos_pf_design Bảng lưu trữ các module được PM thiết kế jos_pf_coding Bảng lưu trữ các module được coding jos_pf_delivery Bảng lưu trữ các thành phần chuyển giao cho khách hàng jos_pf_risks Lưu trữ các nguy cơ xảy ra trong khi thực hiện dự án jos_pf_files Bảng lưu trữ thông tin các tệp tin được upload jos_pf_folders Bảng lưu trữ thông tin các thư mục jos_pf_folder_tree Miêu tả quan hệ thư mục cha,con jos_pf_events Bảng lưu trữ thông tin các sự kiện trong calendar jos_pf_groups Bảng lưu trữ các nhóm của Joomla jos_pf_group_permissions Bảng lưu trữ phân quyền cho group jos_pf_sections Lưu trữ tất cả các thông tin về các section đã cài đặt jos_pf_panels Bảng lưu trữ các panel jos_pf_section_tasks Bảng lưu trữ các chức năng trong các section jos_pf_topics Bảng lưu trữ các topic của Board jos_pf_topic_replies Bảng lưu trữ các reply jos_pf_user_profile Bảng lưu trữ thông tin cài đặt profile jos_pf_settings Bảng lưu trữ cấu hình hệ thống jos_pf_access_flags Bảng lưu trữ các flag của User jos_pf_access_levels Bảng lưu trữ các mức truy cập của User jos_pf_languages Bảng lưu trữ các gói ngôn ngữ được cài đặt jos_users Bảng lưu trữ các User của Joomla jos_pf_task_attachments Mô tả file đính kèm(folder,file) cho task Bảng 4: Mô tả chức năng các bảng dữ liệu Stt Trường Kiểu Kích thước Chú thích id int 11 title Varchar 124 project_type int 11 Gồm các type: Development, Mantenance, Prototype,Researching dev_cycles int 11 Gồm các cycle: Standard, Rup, V, Spiral, Cascade, Modifier client Varchar 255 manager int 11 start_date int 11 est_effort int 11 teamsize int 11 remark Text author int 11 is_public int 1 allow_register int 1 archivated int 1 create_date int 11 deadline int 11 Bảng 5: jos_pf_projects Stt Trường Kiểu Kích thước Chú thích id int 11 project_id int 11 user_id int 11 Bảng 6: jos_pf_project_members Stt Trường Kiểu Kích thước Chú thích id int 11 title Varchar 124 status int 11 Complete, incomplete remark Text author int 11 assigned int 11 Người chịu trách nhiệm project int 11 create_date int 11 Ngày khởi tạo sdate int 11 Ngày bắt đầu deadline int 11 actual_finish_date int 11 progress int 11 0%-100% priority int 11 Bảng 7: jos_pf_tasks Stt Trường Kiểu Kích thước Chú thích id int 11 title Varchar 255 content Text item_id int 11 author int 11 cdate int 11 Bảng 8: jos_pf_comments Stt Trường Kiểu Kích thước Chú thích id int 11 requirement Varchar 255 project int 11 author int 11 status_requirement int 11 Wip, Documented, Reviewed, Approved, Canceled progress int 11 0%-100% deadline int 11 actual_finish_date int 11 assigned int 11 remark int 11 Bảng 9: jos_pf_requirement Stt Trường Kiểu Kích thước Chú thích id int 11 design_code Varchar 255 project int 11 author int 11 requirement int 11 module Varchar 255 functions Varchar 255 progress int 11 0%-100% deadline int 11 actual_finish_date int 11 status_design int 11 Wip, Documented, Reviewed, Approved, Canceled assigned int 11 Người chịu trách nhiệm remark Text Bảng 10: jos_pf_design Stt Trường Kiểu Kích thước Chú thích id int 11 project int 11 author int 11 design int 11 module Varchar 255 functions Varchar 255 status_coding int 11 Wip, Coded, Reviewed, Test failed, Test passed, Accepted, Canceled progress int 11 0%-100% deadline int 11 actual_finish_date int 11 assigned int 11 Người chịu trách nhiệm remark Text Bảng 11: jos_pf_coding Stt Trường Kiểu Kích thước Chú thích id int 11 element Varchar 255 project int 11 original_date int 11 replanned_date int actual_release_date int 11 remark Text Bảng 12: jos_pf_delivery Stt Trường Kiểu Kích thước Chú thích id int 11 risk Varchar 255 project int 11 author int 11 create_date int 11 probability Text Nguy cơ có thể xảy ra serverity Text Mức độ nguy hiểm type int 11 status_risk int 11 Open, accepted, closed, tasked place possible_impact Text Khả năng ảnh hưởng mitigation_action Text Phương án để giảm rủi ro contingency_action Text actual_impact Text Ảnh hưởng thực tế actual_action Text Hành động thực tế close_date int 11 assigned int 11 Người chịu trách nhiệm Bảng 13 : jos_pf_risks Stt Trường Kiểu Kích thước Chú thích id int 11 name Varchar 255 prefix Varchar 255 Tiền tố file được thêm vào tránh ghi đè khi có file trùng tên được upload description Varchar 128 author int 11 project int 11 dir int 11 Folder chứa file được upload filesize int 11 cdate int 11 edate int 11 Bảng 14: jos_pf_files Stt Trường Kiểu Kích thước Chú thích id int 11 title Varchar 56 description Varchar 128 author int 11 project int 11 cdate int 11 edate int 11 Bảng 15: jos_pf_folders Stt Trường Kiểu Kích thước Chú thích id int 11 folder_id int 11 parent_id int 11 Id cuae folder cha, 0=root Bảng 16 : jos_pf_folder_tree Stt Trường Kiểu Kích thước Chú thích id int 11 title Varchar 56 content Text author int 11 project int 11 cdate int 11 sdate int 11 edate int 11 Bảng 17: jos_pf_events Stt Trường Kiểu Kích thước Chú thích id int 11 title Varchar 124 description Varchar 255 project int 11 Bảng 18: jos_pf_groups Stt Trường Kiểu Kích thước Chú thích id int 11 group_id int 11 task Varchar 56 Chức năng được phân quyền cho các thành viên của group section Varchar 255 Bảng 19: jos_pf_group_permissions Stt Trường Kiểu Kích thước Chú thích id int 11 name Varchar 255 title Varchar 255 published int 1 flag Varchar 124 tags Varchar 255 is_default int 1 ordering int 11 Bảng 20: jos_pf_sections Stt Trường Kiểu Kích thước Chú thích id int 11 name Varchar 255 title Varchar 255 flag Varchar 124 published int 1 position Varchar 255 ordering int 11 Bảng 21: jos_pf_panels Stt Trường Kiểu Kích thước Chú thích id int 11 section Varchar 255 name Varchar 255 title Varchar 255 description Text flag Varchar 255 tags Varchar 255 parent Varchar 255 ordering int 11 Bảng 22: jos_pf_section_tasks Stt Trường Kiểu Kích thước Chú thích id int 11 title Varchar 124 content Text author int 11 project nt 11 create_date int 11 edate nt 11 Bảng 23: jos_pf_topics Stt Trường Kiểu Kích thước Chú thích id int 11 title Varchar 124 content Text author int 11 project int 11 topic int 11 create_date int 11 edate int 11 Bảng 24: jos_pf_topic_replies Stt Trường Kiểu Kích thước Chú thích id int 11 user_id int 11 parameter Varchar 255 value Varchar 255 Bảng 25: jos_pf_user_profile Stt Trường Kiểu Kích thước Chú thích id int 11 parameter Varchar 255 value Text Bảng 26: jos_pf_settings Stt Trường Kiểu Kích thước Chú thích id int 11 name Varchar 124 title Varchar 124 project int 11 Bảng 27: jos_pf_languages Stt Trường Kiểu Kích thước Chú thích id int 11 title Varchar 124 project int 11 flag int 11 Bảng 28: jos_pf_access_levels Stt Trường Kiểu Kích thước Chú thích id int 11 name Varchar 255 title Varchar 255 published Varchar 255 is_default Text create_date int 11 install_date Varchar 255 Bảng 29: jos_pf_languages Stt Trường Kiểu Kích thước Chú thích id int 11 name Varchar 255 username Varchar 150 email Varchar 100 password Varchar 100 usertype Varchar 25 block tinyint 4 sendEmail tinyint 4 gid tinyint 3 registerDate datetime lastvisitDate datetime 11 activation Varchar 100 params Text Bảng 30: jos_users Stt Trường Kiểu Kích thước Chú thích id int 11 task_id int 11 username int 11 attach_type Varchar 124 File hoặc Folder Bảng 31: jos_pf_task_attachments CHƯƠNG 4 XÂY DỰNG CHƯƠNG TRÌNH VÀ KẾT QUẢ THỰC HIỆN Giới thiệu môi trường, công cụ và công nghệ được áp dụng và trình bày một số kết quả đạt được. Công cụ và môi trường phát triển Ứng dụng được xây dựng dựa trên các công cụ và môi trường sau: Công cụ phân tích và thiết kế hệ thống: StarUML version 5.0.2.1570. Môi trường cài đặt ứng dụng: Joomla. Môi trường lập trình: JCode. Hệ quản trị CSDL: MySQL. Ngoài ra trong quá trình xây dựng ứng dụng em còn sử dụng thêm một số công cụ như: Microsoft Paint, SnagIt. Một số kết quả đạt được Màn hình khởi động Hình dưới là giao diện chính của component sau khi Login. Hình 26: Màn hình “Projects Management” Màn hình “Tasks Management” Hình 27: Màn hình “Task Management” Màn hình “Delivery Management” Hình 28: Màn hình “Delivery Management” Màn hình “Requirements Management” Hình 29: Màn hình “Requirements Management” Màn hình “Design Management” Hình 30: Màn hình “Design Management” Mành hình “Coding Management” Hình 31: Màn hình “Coding Management” Màn hình “Risks Management” Hình 32: Màn hình “Risks Management” Màn hình “Upload File” Hình 33: Màn hình “Upload File” Màn hình “Calendar Management” Hình 34: Màn hình “Calendar Management” Màn hình “Update profile” Hình 35: Màn hình “Update profile” Màn hình “User Management” Hình 36: Màn hình “User Management” CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Trong quá trình thực hiện đề tài tốt nghiệp này em cũng ! đã đạt được một số kết quả nhất định cũng như một vài hạn chế và hướng phát triển như sau: Kết quả đạt được Xây dựng được một ứng dụng hỗ trợ quản lý dự án phần mềm trên nền Web.Tuy chưa so sánh được với các phần mềm hiện nay trên thị trường nhưng vẫn hỗ trợ được các chức năng quan trọng cho việc quản lý nhân sự, lập kế hoạch,... Bên cạnh đó em ! cũng có thêm được nhiều kinh nghiệm thực tế khi thực hiện đề tài tốt nghiệp này. Hạn chế Ứng dụng chưa hỗ trợ chức năng thông báo đến người chịu trách nhiệm của một công việc nào đó khi gần tới hạn cuối. Hướng mở rộng và phát triển của đề tài Xây dựng thêm chức năng thông báo đến người chịu trách nhiệm của một công việc nào đó khi gần tới hạn cuối. Nghiên cứu thêm các hệ thống hỗ trợ dự đoán chi phí thời gian hoàn thành dự án. . TÀI LIỆU THAM KHẢO Joseph LeBlanc. “Learning Joomla 1.5 Extension development”,258 tr. PHP Cookbook, 2nd Edition By David Sklar, Adam Trachtenberg Ebook “Quản lý dự án công nghệ thông tin” Trang web: Trang web:

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

  • docLVTN_NTTThien_LTHThuy_04T4.doc