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ư:
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN Tel. (84-511) 3736 949, Fax. (84-511) 842 771 Website: itf.ud.edu.vn, E-mail: cntt@ud.edu.vn BÁO CÁO THỰC TẬP TỐT NGHIỆP NGÀNH CÔNG NGHỆ THÔNG TIN MÃ NGÀNH : 05115 ĐỀ TÀI : XÂY DỰNG COMPONENT QUẢN LÝ DỰ ÁN PHẦN MỀM CHO WEBSITE JOOMLA SINH VIÊN : Nguyễn Thị Thu Thiện Lê Thị Hồng Thủy LỚP : 04T4 CBHD : T.S Nguyễn Thanh Bình Th.S Nguyễn Văn Nguyên ĐÀ NẴNG, 05/2009 LỜI CẢM ƠN Tôi chân thành cảm ơn Thầy cô trong khoa Công nghệ thông tin cũng như các thầy cô giảng dạy trong trường Đại học Bách khoa Đà Nẵng đã truyền đạt những kiến thức quý báu cho chúng tôi trong những năm học vừa qua. Đặc biệt, tôi xin chân thành cảm ơn thầy giáo Nguyễn Thanh Bình và thầy Nguyễn Văn Nguyên - thuộc khoa Công nghệ thông tin, trường Đại học Bách khoa Đà Nẵng đã tận tình hướng dẫn, động viên và giúp đỡ tôi trong suốt thời gian thực hiện đề tài. Và để có được kết quả như ngày hôm nay, tôi rất biết ơn gia đình đã động viên, khích lệ, tạo mọi điều kiện thuận lợi nhất trong suốt quá trình học tập cũng như quá trình thực hiện đề tài tốt nghiệp này. Xin chân thành cám ơn các bạn trong khoa Công nghệ thông tin – khóa 04, đặc biệt là các bạn lớp 04T4 đã ủng hộ, giúp đỡ, chia sẻ kiến thức, kinh nghiệm và tài liệu có được cho tôi trong quá trình nghiên cứu và thực hiện đề tài. Một lần nữa tôi xin chân thành cảm ơn ! LỜI CAM ĐOAN Tôi xin cam đoan: 1 Những nội dung trong báo cáo này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của thầy T.S Nguyễn Thanh Bình và thầy Th.S Nguyễn Văn Nguyên. 2 Mọi tham khảo dùng trong báo cáo này đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố. 3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu hoàn toàn trách nhiệm. Sinh viên, Ngưyễn Thị Thu Thiện Lê Thị Hồng Thủy MỤC LỤC 1 Những nội dung trong báo cáo này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của thầy T.S Nguyễn Thanh Bình và thầy Th.S Nguyễn Văn Nguyên .iii 2 Mọi tham khảo dùng trong báo cáo này đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố .iii 3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu hoàn toàn trách nhiệm iii 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 .1 .I Giới thiệu về joomla .1 .I.1. Joomla là gì? 1 .I.2. Các dòng phiên bản của Joomla .1 .I.3. Kiến trúc Joomla .1 .II Một số khái niệm trong Joomla 2 .II.1. Front-end và back-end .2 .II.1.1. Front-end 2 .II.1.2. Back-end .2 .II.2. Template .2 .II.3. Menu .2 .II.4. Các thành phần mở rộng 3 .II.4.1. Module 3 .II.4.2. Component .3 .II.4.3. Mambot (Plug-in) .4 .III Cách xây dựng một component trong Joomla 1.5 4 .III.1. Giới thiệu mô hình MVC .4 .III.2. Cài đặt Joomla MVC 5 .III.3. Tạo một component 5 .III.3.1. Tạo một entry point .5 .III.3.2. Tạo Controller 7 .III.3.3. Tạo View 8 .III.3.4. Tạo Template 8 .III.3.5. Đóng gói tất cả- Tạo file hello.xml 9 .III.4. Bổ sung Model vào component .10 .III.4.1. Tạo Model .10 .III.4.2. Sử sụng Model 11 .III.4.3. Bổ sung file vào package .12 .III.5. Sử dụng cơ sở dữ liệu trong component MVC 13 .III.5.1. Lấy dữ liệu 13 .III.5.2. Tạo file SQL trong quá trình cài đặt và gỡ bỏ component .15 i Cập nhật file cài đặt .16 .III.6. Tạo giao diện quản trị trong MVC .17 .III.6.1. Tạo Framework cơ sở .17 .III.6.2. Model Hellos .18 .III.6.3. View Hellos .20 .III.6.4. Template hellos .21 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG .23 .I Phân tích hệ thống thông tin 23 .I.1. Sơ đồ Use Case 24 .I.1.1. Use Case “Projects Management” 24 .I.1.2. Use Case “Tasks Management” .24 .I.1.3. Use Case “Delivery Management” 25 .I.1.4. Use Case “Requirements Management” 25 .I.1.5. Use Case “Design Management” .26 .I.1.6. Use Case “Coding Management” 26 .I.1.7. Use Case “Risks Management” 27 .I.1.8. Use Case “File Manage” .27 .I.1.9. Use Case “Calendar Management” .28 .I.1.10. Use Case “Board Management” 28 .I.1.11. Use Case “Profile Management” .29 .I.1.12. Use Case “User Management” 29 .I.2. Danh sách Actor, Phân Quyền và Use Case 29 .I.2.1. Actor .29 .I.2.2. Use Case 30 .I.3. Đặc tả chi tiết .33 .I.3.1. Use Case “Login” .33 .I.3.2. Use Case “Projects Management” 34 .I.3.3. Use Case “Tasks Management” .35 .I.3.4. Use Case “Delivery Management” 37 .I.3.5. Use Case “Requirements Management” 38 .I.3.6. Use Case “Design Management” .40 .I.3.7. Use Case “Coding Management” 41 .I.3.8. Use Case “Risks Management” 43 .I.3.9. Use Case “File Manage” .44 .I.3.10. Use Case “Calendar Management” .45 .I.3.11. Use Case “Board Management” 47 .I.3.12. Use Case “Profile Management” .48 .I.3.13. Use Case “User Management” 49 .I.4. Sơ đồ tuần tự 51 .I.4.1. Chức năng “Login” 51 .I.4.2. Chức năng “Projects Management” 51 .I.4.3. Chức năng “Tasks Management” 53 .I.4.4. Chức năng “Delivery Management” .54 .I.4.5. Chức năng “Requirements Management” .55 .I.4.6. Chức năng “Design Management” .56 .I.4.7. Chức năng “Coding Management” .57 .I.4.8. Chức năng “Risks Management” .58 .I.4.9. Chức năng “File Manage” 59 .I.4.10. Chức năng “Calendar Management” 60 ii Mục lục iii .I.4.11. Chức năng “Board Management” .61 .I.4.12. Chức năng “User Management” 62 .I.5. Thiết kế hệ thống .63 .I.5.1. Sơ đồ lớp 63 .I.5.2. Tổ chức dữ liệu 63 XÂY DỰNG CHƯƠNG TRÌNH VÀ KẾT QUẢ THỰC HIỆN .74 .I Công cụ và môi trường phát triển 74 .II Một số kết quả đạt được 74 .II.1. Màn hình khởi động .74 .II.2. Màn hình “Tasks Management” 75 .III Màn hình “Delivery Management” .75 .III.1. Màn hình “Requirements Management” .76 .III.2. Màn hình “Design Management” 76 .III.3. Mành hình “Coding Management” 77 .III.4. Màn hình “Risks Management” .77 .III.5. Màn hình “Upload File” .78 .III.6. Màn hình “Calendar Management” .78 .III.7. Màn hình “Update profile” 79 .III.8. Màn hình “User Management” 79 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .80 [1] Joseph LeBlanc. “Learning Joomla 1.5 Extension development”,258 tr .i [2] PHP Cookbook, 2nd Edition By David Sklar, Adam Trachtenberg i [3] Ebook “Quản lý dự án công nghệ thông tin” i [4] Trang web: http://www.joomlaviet.org/ .i [5] Trang web: http://www.projectfork.net/ .i Mục lục iv 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ệ 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 Tên tác giả, LỚP XXX 1 − 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 » 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ý Tên tác giả, LỚP XXX 2 Tên đề tài ở đây − 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 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 3 [...]... dung của component Thông thường sau khi cài đặt joomla có sẵn các component: Banner (quản lý các bảng quảng cáo), Contact ( quản lý việc liên hệ giữa người dùng với ban quản trị website) , Search (quản lý việc tìm kiếm), Web links (quản lý các liên kết ngoài website) , và các component quản lý nội dung của trang web II.4.3 Mambot (Plug-in) Mambot (plug-in) là chức năng được bổ sung thêm cho component, ... ra Một component có hai thành phần chính: phần quản trị và phần trên site Phần trên site là phần được sử dụng để tải về các trang khi được triệu gọi trong quá trình hoạt động của một website thông thường Phần quản trị cung cấp giao diện để cấu hình, quản lý các khía cạnh khác nhau của component và được truy cập thông qua ứng dụng quản trị của Joomla Component có thể có thêm modul để hỗ trợ cho việc... Site và hỗ trợ đa ngôn ngữ Joomla! được sử dụng rất phổ biến, từ những website cá nhân cho tới những hệ thống website doanh nghiệp, cung cấp nhiều dịch vụ và ứng dụng Joomla dễ dàng cài đặt, quản lý và có độ tin cậy cao Joomla có mã nguồn mở do đó việc sử dụng Joomla là hoàn toàn miễn phí .I.2 Các dòng phiên bản của Joomla Joomla có 2 dòng phiên bản chính: Joomla 1.0.x và Joomla 1.5.x − Dòng phiên bản... hiển thị các menu của website − Banners Module (mod_banners): Moudule hiển thị các banner quảng cáo − II.4.2 Component Component là một thành phần mở rộng lớn nhất và phức tạp nhất của Joomla CMS Các component có thể xem như là các ứng dụng con và nếu joomla là một hệ điều hành thì các component là các ứng dụng desktop Ví dụ component nội dung (com_content) là một ứng dụng mini xử lý tất cả các vấn đề... được hiển thị Mambot được xem như là phương tiện giao tiếp giữa hệ thống joomla với component, chẳng hạn tìm kiếm thông tin III Cách xây dựng một component trong Joomla 1.5 III.1 Giới thiệu mô hình MVC Bắt đầu từ phiên bản Joomla 1.5.x hoặc các phiên bản sau này, Joomla đã đưa vào một framework mới, mang lại những thuận tiên rất lớn cho những người phát triển Các đoạn code giờ đây rất dễ dàng để kiểm tra... ổn định Được sử dụng rộng rãi, có nhiều thành phần mở rộng (component, module, mambot) − Dòng phiên bản 1.5.x: Là phiên bản cải tiến từ Joomla 1.0.x (phần mã được viết lại hoàn toàn, tuy nhiên vẫn giữ cách hành xử như cũ) Joomla 1.5 hỗ trợ đa ngôn ngữ Joomla 1.5 dùng charset mặc định là UTF-8 (thay vì ISO-8859-1 trong Joomla 1.0.x) I.3 Kiến trúc Joomla Joomla! 1.5 gồm có 3 tầng hệ thống − Tầng dưới... của trang Web Joomla! cho phép cài đặt và thay đổi Temp cho Web Site hay cho từng trang Web khác nhau một cách dễ dàng .II.3 Menu Joomla! có rất nhiều kiểu Menu, mỗi Menu sẽ là một trang hiển thị có nội dung và cách trình bày theo nhiều kiểu khác nhau Các Menu này được quản lý theo mã số ID nên có thể thay đổi tên và vị trí mà ảnh hưởng đến nội dung, địa chỉ liên kết của chúng Joomla! cho phép lựa...CHƯƠNG 2 CƠ SỞ LÝ THUYẾT Tên tác giả, LỚP XXX 1 .I Giới thiệu về joomla I.1 Joomla là gì? Joomla là một hệ quản trị nội dung mã nguồn mở (Open Source Content Management Systems) .Joomla được viết bằng ngôn ngữ PHP và kết nối tới cơ sở dữ liệu MySQL , cho phép người sử dụng có thể dễ dàng xuất bản các nội dung của họ lên Internet hoặc Intranet Joomla có các đặc tính cơ bản là: bộ... file XML nói cho joomla biết cách cài đặt component của chúng ta như thế nào III.3.1 Tạo một entry point Joomla luôn luôn được truy cập thông qua một điểm vào đơn: index.php cho các ứng dụng site và administrator/index.php cho ứng dụng quản trị Sau đó ứng dụng sẽ tải các component cần thiết dựa trên giá trị chọn lựa trong URL hoặc trong dữ liệu POST Đối với component của chúng ta URL sẽ như sau:index.php?... III.3 Tạo một component Đối với component cơ sở của chúng ta, chúng ta chỉ cần 5 file: − hello.php - đây là điểm vào cho component của chúng ta − controller.php - file này có chứa controler cơ bản − views/hello/view.html.php - file này nhận các dữ liệu cần thiết và đặt nó lên template − views/hello/tmpl/default.php - file này là temple cho đầu ra − hello.xml - đây là một file XML nói cho joomla biết . CHO WEBSITE JOOMLA SINH VIÊN : Nguyễn Thị Thu Thiện Lê Thị Hồng Thủy LỚP : 04T4 CBHD : T.S Nguyễn Thanh Bình Th.S Nguyễn Văn Nguyên ĐÀ NẴNG, 05/2009 . các bạn trong khoa Công nghệ thông tin – khóa 04, đặc biệt là các bạn lớp 04T4 đã ủng hộ, giúp đỡ, chia sẻ kiến thức, kinh nghiệm và tài liệu có được