LỜI CẢM ƠN
Lời đầu tiên cho em gửi lời cảm ơn chân thành nhất tới tất cả các thầy, cô giáo
Trương Đại Học Công Nghệ Thông và Truyền Thông - Đại Học Thái Nguyên nói
chung và các thầy cô giáo trong bộ môn Các Hệ Thống Thông Tin nói riêng. Đã tận
tình giảng dạy, trang bị cho em vốn kiến thức cũng như những kinh nghiệm quý báu
để em có thể đạt được kết quả tốt nhất trong học tập cũng như trong công việc của
em sau này. Đặc biệt em xin chân thành cảm ơn cô giáo Th.Sĩ Nông Thị Hoa người
đã trực tiếp hướng dẫn giúp đỡ em trong thời gian làm đồ án. Trong thời gian hướng
dẫn tuy cô rất bận nhưng cô vẫn dành thời gian chỉ bảo truyền đạt cho em những
kinh nghiêm và những định hướng cho bài báo cáo của em đảm bảo kết quả, và hoàn
thành đúng thời gian theo quy đinh
Cuối cùng em xin cảm ơn sự giúp đỡ, động viên của gia đình, bạn bè dành cho
em trong suốt thời gian qua.
Thái Nguyên, Tháng 06 Năm 2011
Sinh viên
Nguyễn Thị Lan
1
LỜI CAM ĐOAN
Đồ án tốt nghiệp là sản phẩm tổng hợp toàn bộ các kiến thức mà sinh viên đã
học được trong suốt thời gian học tập tại trường đại học. Ý thức được điều đó, với
tinh thần nghiêm túc, tự giác cùng sự lao động miệt mài của bản thân và sự hướng
dẫn tận tình của cô giáo Th.Si Nông Thị Hoa em đã hoàn thành xong đồ án tốt
nghiệp của mình.
Em xin cam đoan: nội dung đồ án của em không sao chép nội dung cơ bản từ
các đồ án khác và sản phẩm của đồ án là của chính bản thân em nghiên cứu xây
dựng lên. Mọi thông tin sai lệch em xin hoàn toàn chịu trách nhiệm trước hội đồng
bảo vệ.
2
MỤC LỤC
LỜI NÓI ĐẦU
Ngày nay, khi mà đời sống của con người ngày càng được cải thiện, thì những
yêu cầu mà họ đặt ra đối với ngành Công Nghệ Thông Tin nói chung và ngành hệ
thống thông tin nói riêng ngày càng khắt khe hơn. Trước đây, ý tưởng về việc ngồi ở
nhà mà có thể tìm hiểu được thông tin về các nhà hàng, khách sạn mà họ quan tâm
thì gần như chỉ là chuyện không thể xảy ra. Ngày nay, cùng với sự phát triển của
công nghệ, mà đặc biệt là Internet, đã giải quyết cho những yêu cầu trên.
Việc xây dựng các trang web để phục vụ cho các nhu cầu riêng của các tổ
chức, công ty thậm chí các cá nhân, ngày nay, không lấy gì làm xa lạ. Với một vài
thao tác đơn giản, một người bất kì có thể trở thành chủ của một website giới thiệu
3
về bất cứ gì anh ta quan tâm: một website giới thiệu về bản thân và gia đình anh ta,
hay là một website trình bày các bộ sưu tập hình ảnh các loại xe hơi mà anh ta thích
chẳng hạn.
Đối với các chính phủ và các công ty thì việc xây dựng các website riêng
càng ngày càng trở nên cấp thiết. Thông qua những website này, thông tin về họ
cũng như các công văn, thông báo, quyết định của chính phủ hay các sản phẩm, dịch
vụ mới của công ty sẽ đến với những người quan tâm, đến với khách hàng của họ
một cách nhanh chóng kịp thời, tránh những phiền hà mà phương thức giao tiếp
truyền thống thường gặp phải.
Hoạt động của một nhà hàng, khách sạn sẽ được mở rộng và phát triển nếu
xây dựng được một website tốt. Bắt nguồn với ý tưởng này, cùng với những gợi ý
của Cô Nông Thị Hoa, em đã thực hiện đồ án:
Xây dựng website tư vấn chọn các nhà hàng và khách sạn ở Việt Nam
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
Phần 1: Tìn hiểu ngôn ngữ Joomla!
1. Tìm hiểu về Joomla FrameWork:
1.1. Joomla là gì ?
Để hiểu thật kỹ Joomla là gì thì cúng ta cần phải tìm hiểu chi tiết về quá trình
phát triển của Joomla theo từng phiên bản.
Hiện Joomla có 2 phiên bản chính là : Joomla 1.0.x (Phiên bản Joomla 1.0.0:
phát hành đầu tiên 15-09-2005) và Joomla 1.5.x (hiện nay đang phát triển phiên bản
Joomla 1.6.x )
Với phiên bản 1.0.x Joomla chỉ được coi là một hệ quản trị nội dung mã nguồn
mở ( Open Source Content Management Systems). Vì phiên bản 1.0.x chỉ có ứng
dụng CMS là chính, chưa hỗ trợ nhiều các thư viện, việc hỗ trợ phát triển
4
component, module, plugin cũng chưa đủ mạnh để có thể gọi là một framework
(nhưng cũng có thể tạm gọi là một framework)
Với phiên bản Joomla 1.5.x đã có sự cải tiến toàn diện về code và phiên bản
này đã được gọi là một Framework, ngoài hệ quản trị nội dung CMS có sẵn nó còn
cung cấp một thư viện các class với các tính năng mạnh giúp các nhà phát triển phần
mềm có thể nhanh chóng xây dựng các phần mềm trên framework này (tham khảo
/>
/>
Framework.html ).
Joomla được viết bằng ngôn ngữ php và kết nố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.
5
Joomla có đặc tính cơ bản là có bộ đệm trang giúp tăng tốc độ hiển thị, lập chỉ
mục, đọc tin RSS, trang dùng để in, bản tin nhanh, blog, diễn đàn, bình chọn, lịch
biểu, tìm kiếm trong Site và hỗ trợ đa ngôn ngữ.
Joomla được sử dụng ở khắp 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ễ 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í cho
tất cả mọi người trên thế giới.
1.2. Kiến trúc của Joomla.
Joomla 1.5.x gồm có 3 tầng hệ thống:
✓ Tầng dưới cùng là mức nền tảng, chứa các thư viện và các plugin (còn được
biết đến với tên mambot).
✓ Tầng thứ hai là mức ứng dụng và chứa các lớp Japplication hiện tại tầng này
gồm có 3 lớp con là Jinstallation, Jadministrator và Jsite.
✓ Tầng trên cùng là mức mở rộng. Tầng này chứa các thành phần, module và
giao diện được thực thi và thể hiện.
Kiếm trúc của Joomla 1.5.x
1.3. Lợi ích của công nghệ Joomla khi thiết kế Web.
Joomla là một bộ mã nguồn mở, miễn phí và sẵn có cho tất cả mọi người dưới
dạng giấy phép GPL. Hàng loạt những tính năng tuyệt vời và cải tiến mới được thêm
vào sau mỗi bản cập nhật của joomla. Với hàng triệu người sử dụng trên khắp thế
giới. Joomla luôn được mọi người quan tâm, chăm sóc, giúp đỡ…để ngày càng phát
triển hơn.
6
Với một sự hậu thẫn mạnh mẽ từ các nhà thiết kế web, công ty cung cấp dịch
vụ lưu trữ web…Joomla đang khẳng định vị trí của mình về công nghệ thiết kế
website. Hầu hết các nhà cung cấp dịch vụ lưu trữ web đều cài đặt máy chủ của
mình hỗ trợ các website bằng Joomla tốt nhất. Vì vậy ta có thể nói rằng Joomla đang
trên đà phát triển nhanh với một nền tảng vững chắc.
Một trong những điểm mạnh nhất của Joomla là công cụ quản lý nội dung,
hình ảnh, cách tổ chức quản lý dữ liệu. Cấu trúc của hệ thống quản lý Joomla cho
phép hàng ngàn nhà phát triển và thiết kế web trên thế giới dễ dàng sử dụng và phát
triển thêm những tiện ích mạnh mẽ phục vụ cho khách hàng của mình. Một số
những ứng dụng được người dùng của Joomla quan tâm và sử dụng nhiều nhất.
1. Xây dựng các biểu mẫu động
2. Phòng trưng bày hình ảnh và nội dung đa phương tiện
3. Thương mại điện tử và công cụ thanh toán, quản lý đơn hàng
4. Diễn đàn, phần mềm chat
5. Lịch làm việc
6. Phần mền viết blog
7. Email bản tin mới cho người dùng
8. Các công cụ thu thập dữ liệu và báo cáo
9. Hệ thống quản lý quảng cáo
10. Dịch vụ đăng ký nhận thông tin
Lợi ích của bạn khi thiết kế một website bằng công nghệ Joomla:
1. Cở sở dư liệu quản lý linh động, giúp tách biệt nội dung với thiết kế và viết
mã nguồn. Nội dung của website sẽ được cập nhật khi bạn thiết kế website
xong mà không phải ép buộc giữa nội dung và việc thiết kế phải đi song
hành.
2. Các phần nội dung được quản lý đầy đủ bằng những công cụ mạnh mẽ giúp
bạn không cần phải là một nhà thiết kế web cũng có thể chỉnh sửa được nội
dung.
7
3. Nội dung của bạn có thể được đóng góp bởi các tác giả khác dễ dàng với
một hệ thống phân quyền chuyên nghiệp.
4. Toàn quyền thay đổi giao diện web, vị trí, bố cục mà không phải đụng nhiều
đến mã nguồn.
5. Trình duyệt hỗ trợ bạn đầy đủ các chức năng tải hình ảnh, ứng dụng lên bộ
thư viện để sử dụng hoặc sử dụng từ các nguồn tài nguyên khác.
6. Hàng ngàn công ty thứ ba phát triển những tính năng mở rộng cho hệ thống
miễn phí.
7. Chạy hoàn hảo trên hệ thống máy chủ Linux, Windows,…
Lợi ích cho các webmaster khi sử dụng bộ quản trị của Joomla:
1. Thứ tự, nội dung bài viết dễ dàng thay đổi khi cần.
2. Có thể dễ dàng bật tắt chức năng đăng ký thành viên trên toàn bộ hệ thống.
3. Bộ quản lý menu dễ dàng cho bạn thiết lập và thay đổi các thông số menu
toàn trang.
4. Tất cả nội dung được bạn dễ dàng cho phép ai có thể truy cập.
5. Nội dung được cập nhật, chia danh mục dễ dàng.
6. Lưu trữ hình ảnh, các tập tin đa phương tiện nhanh chóng, dễ quản lý.
7. Mỗi một thông tin đều có chức năng gửi cho bạn, in ấn hay xuất thành file
PDF.
8. Bạn có thể đặt một hoặc nhiều bình chọn và khảo sát trên toàn trang.
9. Quản trị giao diện giúp bạn nhanh chóng áp dụng một giao diện mới theo sở
thích hoặc thay đổi giao diện của bạn theo mùa.
10. Giao diện được xem thử trước khi áp dụng cho toàn trang…
1.4. Tình hình ứng dụng của Joomla hiện nay.
Joomla một hệ quản tri nội dung mã nguồn mở mạnh nhất hiện nay trên thế
giới.
Ra đời do bất đồng quan điểm trong nội bộ Mambo một hệ quản trị nội dung
nổi tiếng, gần như toàn bộ nhân lực chủ chốt của Mambo đã ra đi, đã xây dựng nên
một đế chế hùng mạnh với tên gọi Open Source Master, và Joomla ra đời từ đó
8
(2005). Chỉ hơn 3 năm chào đời, Joomla đã làm nên một kỳ tích 2 lần đạt giải nhất
mã nguồn mở ứng dụng tốt nhất thế giới số thành viên trên 200.000 người tính riêng
tại joomla.org. Nếu tính thêm những website lớn như rockettheme.com,
joomlart.com, joomlashack.com,… thì số thành viên lên đến hàng triệu người.
Kết quả của về sự phát triển của
Joomla
Về phần mền được download, thì Joomla cũng chiếm tỷ lệ cao so với các mã
nguồn mở khác nhue Phpnuke, Rainbow portal,…
Tính đến thời điểm cuối tháng 9/2008, căn cứ theo chỉ số tìm kiếm trên
Google, thì có đến gần 112.000.000 kết quả từ Joomla, có 28.900.000 kết quả với
cụm từ powered by joomla.
Về số các sản phẩm như component, mambot, plugin, moduke… Joomla cũng
đạt con số kỷ lục trên 3.200. Đó là chưa kể đến hàng ngàn template được xây dựng
chỉ để dành cho website Joomla!.
Tại sao Joomla lại được sử dụng nhiều như vậy ? Lý do đơn giản là Joomla có
thể giúp mọi người phát triển 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.
Nói tóm lại nếu bạn muốn xây dựng một website, dù là cá nhân hay là một
website ngân hàng, một công ty lớn, một hệ thống bán hàng trực tuyến, một hệ
9
thống viễn thông, một trường học online,…bạn hãy dùng Joomla!. Joomla! có thể
làm được mọi thứ liên quan đến web!
Tại Việt Nam, hiện joomlaviet.org vẫn là website số một của cộng đồng
Joomla Việt Nam nhờ tính hỗ trợ cao và phi lợi nhuận. Tính đến 10/2008, Joomla
Việt có gần 20 ngàn thành viên là những người yêu thích Joomla nói riêng, mã
nguồn mở nói chung.
2. Tìm hiểu Template trong Joomla.
2.1. Giới thiệu về Template trong Joomla!
2.1.1. Khái niệm về Template.
Joomla! Template là một gói bao gồm các file PHP, HTML, CSS, JS
(Javascript)… và các tấm hình, ảnh, biểu tượng, video, flash kèm theo tạo nên giao
diện (bố cục và hình hài) của website Joomla.
2.1.2. Đặc điểm của Template Joomla!
✓ Các Template của Joomla! đều có khả năng tùy biến cao thông qua cách sắp
xếp và đặt vị trí các module rất linh động.
✓ Thiết kế Templaye Joomla! khá dễ dàng, thậm chí chỉ cần vài giờ là có thể
chuyển từ một Template thuần túy HTML/CSS hay một Template của một
PORTAL/CMS khác sang Template Joomla.
✓ Bạn có thể dùng cùng lúc vài Template khác nhau trên cùng website. Chẳng
hạn đối với trang HOME bạn gắn nó với Template JA Purity, còn trang
DOWNLOAD lại gắn nó với Template Rhuk Milkyway…
✓ Số lượng Template Joomla free (Template miễn phí) và Template Joomla
commercial (Template có phí) được cung cấp trên mạng hiện nay là một con
số mà nhiều PORTAl/CSS/BLOG khác phải kính nể. Có tới hàng nghìn
thậm chí hàng chục nghìn Template.
10
2.2 Các thành phần trong Template.
2.2.1 Module.
2.2.1.1 Joomla Module là gì?
Joomla Module là một trong các thành phần mở rộng của Joomla, nó là một
ứng dụng nhỏ (thường chỉ có vài file và phần lập trình cũng không nhiều) được sử
dụng chủ yếu để lấy dữ liệu và hiển thị thông tin. Module thường được dùng kết
hợp với các Component nhằm mở rộng, cũng như thể hiện rõ ràng hơn các chức
năng của Component.
Không giống như Component, một Module có thể được đặt ở bất kỳ vị trí nào
trên Template hoặc vị trí do người dùng định nghĩa. Ngoài ra một Module có thể
được nhân bản, nghĩa là cùng lúc có thể xuất hiện tại một vị trí hoặc các vị trí khác
nhau.
2.2.1.2Vị trí của Module Joomla.
Vị trí của Module Joomla là nơi mà Module có thể được đặt vào đó. Mỗi vị trí
đều được xác định thông qua một định danh duy nhất, chẳng hạn như left, right, top,
bottom, user1, user2,… Tên và số lượng các vị trí này được quy định bởi Template.
Các Template khác nhau thì số lượng vị trí Module cũng như tên của chúng có thể
khác nhau. Ngoài ra, trong quá trình sử dụng người dùng cũng có thể tự định nghĩa
các vị trí mới sao cho nó phù hợp với yêu cầu của mình.
2.2.1.3Các Module mặc định của Joomla
Trong phiên bản Joomla 1.5 có tất cả 20 Module mặc định được cung cấp kèm
theo. Các Module này được đặt trong thư mục Joomla/modules và nằm trong các thư
mục con tương ứng với ký hiệu là mod_xyz.
✓ Mod_archive: Module hiển thị các bài viết đã được đánh dấu.
✓ Mod_banners: Module hiển thị các quảng cáo
✓ Mod_breadcrumbs: Module hiển thị thanh điều hướng
✓ Mod_custom: Module hiển thị một đoạn mã HTML bất kỳ
✓ Mod_feed: Module hiển thị tin lấy từ các website khác
11
✓ Mod_feeter: Module hiển thị dòng bản quyền ở cuối website
✓ Mod_latesmews: Module hiển thị các bài viết mới nhất
✓ Mod_login: Module hiển thị form đăng nhập
✓ Mod_mainmenu: Module hiển thị menu điều khiển
✓ Mod_mostread: Module hiển thị bài viết được đọc nhiều nhất
✓ Mod_newsflash: Module hiển thị tin vắn/ tin nhanh
✓ Mod_poll: Module hiển thị bình chọn
✓ Mod_random_image: Module hiển thị hình ảnh ngẫu nhiên
✓ Mod_related_items: Module hiển thị các bài viết liên quan
✓ Mod_search: Module hiển thị form tìm kiếm
✓ Mod_sections: Module hiển thị danh sách các mục của website
✓ Mod_stats: Module hiển thị các thông số thống kê của website
✓ Mod_syndicate: Module cấp tin cho các website khác
✓ Mod_whoisonline: Module hiển thị danh tính và số người trực tuyến
✓ Mod_wrapper: Module hiển thị một trang web bất kỳ được nhúng vào
website Joomla.
2.2.2 Component.
2.2.2.1 Joomla component là gì?
Joomla Component là một trong các thành phần mở rộng của Joomla!, thực
chất nó là một ứng dụng trong hệ thống joomla!. Component được sử dụng để thực
hiện một chức năng lớn nào đó, chẳng hạn như cung cấp tin tức, quảng cáo, rao vặt,
đặt phòng khách sạn, bất động sản, download…
Một Component được hiển thị ở phần trung tâm, hay phần chính của website.
2.2.2.2 Các Component mặc định của Joomla
Trong phiên bản Joomla! 1.5 có tất cả 11 Component mặc định được cung cấp
kèm theo. Các Component này được đặt trong thư mục joomla/components và nằm
trong các thư mục con tương ứng với ký hiệu là com_xyz.
✓ Com_banners: Quản lý bảng quảng cáo
12
✓ Com_contact: Quản lý các đầu mới liên hệ
✓ Com_content: Quản lý và hiển thị bài viết
✓ Com_mailto: Quản lý chức năng gửi nhận email
✓ Com_media: Quản lý các tệp đa phương tiện
✓ Com_newsfeeds: Quản lý việc lấy tin từ website khác
✓ Com_poll: Cung cấp chức năng bình chọn
✓ Com_search: Cung cấp chức năng tìm kiếm
✓ Com_user: Quản lý thành viên
✓ Com_weblinks: Quản lý và hiển thị danh mục các website liên kết
✓ Com_wrapper: Cho phép nhúng một website khác trong cửa sổ của website
Joomla.
2.2.2.3Các Component mở rộng
✓ Com_restaurant: Quản lý nhà hàng.
✓ Com_province: Quản lý tỉnh
✓ Com_huyen: Quản lý huyện
✓ Com_xa: Quản lý xa
✓ Com_khachsan: Quản lý khách sạn
✓ Com_tintuc: Quản lý tin tức...
2.3 Cấu trúc của Template.
Cấu trúc của Template gồm các file sau:
✓ Template_name: Thư mục chính thường được đặt tên của Template.
✓ CSS: Thư mục chứa các tệp tin bảng kiểu với các thông số định dạng cho
Template, trong đó có tệp tin chính có tên là Template.css và có thể được bổ
sung thêm một số tệp tin css khác.
✓ Html: Thư mục chứa các tệp tin dùng để thay đổi hoặc định dạng lại cho các
thành phần mở rộng của Joomla, có thể không cần nếu không muốn thay
đổi.
✓ Images: Thư mục chứa các tệp tin hình ảnh của Template.
13
✓ Index.php: Tập tin ngăn sự truy cập trực tiếp vào thư mục của Template.
✓ Params.ini: Tập tin lưu các thông số mặc đinh của Template, được thiết lập
trong phần quản lý.
✓ Template_thumbnail.png: Tập tin hình ảnh dùng để cho xem hình dạng của
Template.
✓ templateDetails.xml: Tập tin chứa các thông tin và thông số liên quan đến
Template được dùng khi cài đặt và quản lý Template.
✓ Ngoài ra còn có thể có một thư mục js chứa các tập tin mã lệnh sử dụng
trong Template.
Cấu trúc files của một Template
3. Tìm hiểu kiến trúc MVC trong Joomla.
3.1 Giới thiệu kiến trúc MVC.
Model-View-Controller (gọi tắt là MVC) là một mẫu thiết kế phần mềm được
dùng để tổ chức các đoạn mã theo cách mà việc xử dữ liệu và biểu diễn dữ liệu tách
rời nhau. Điều này tạo ra tiền đề cho hướng tiếp cận sau này khi mà việc xử lý dữ
liệu được nhóm vào trong một section, khi đó giao diện hay quá trình tương tác với
người dùng bao quanh dữ liệu có thể được định dạng và tùy biến lại mà không phải
lập trình lại việc xử lý dữ liệu nữa (nghĩa là hình thức và nội dung là tách rời nhau,
do đó khi thay đổi hình thức thể hiện thì không ảnh hưởng đến nội dung).
Có ba phần chính trong một Component MVC (ba phần này bao gồm Model,
View, Controller).
MVC được phát triển dựa trên mô hình xử lý truyền thống là input, processing,
output. Mô hình dưới đây là cách thức thực hiện và xây dựng một Component theo
phương pháp MVC, nó bao gồm các công đoạn Controller, Model, View.
14
Mô hình MVC trong Joomla
3.1.1 Model
Modul là một thành phần của Component đóng gói dữ liệu của ứng dụng. Nó
thường cung cấp các thủ tục để quản lý và thao tác dữ liệu này theo một cách nào đó,
trong đó có bổ sung thêm các thủ tục để lấy dữ liệu từ Model, trong trường hợp của
chúng ta Model sẽ chứa các phương thức như bổ sung, loại bỏ và cập nhật thông tin
trong cơ sở dữ liệu. Nó chứa phương thức để lấy danh sách các yêu cầu trong cơ sở
dữ liệu. Nói một cách tổng quát, việc truy cập vào cơ sở dữ liệu lớp dưới sẽ được
đóng gói trong Model. Theo cách này, nếu một ứng dụng chuyển đổi sang việc sử
dụng một file bình thường để lưu trữu thông tin của nó thay vì sử dụng cơ sở dữ liệu,
thì chỉ có thành phần Model là thay đổi, các thành phần View và Controller là không
đổi.
3.1.2 View
View là một thành phần của Component được sử dụng để trả lại dữ liệu từ
Model theo cách phù hợp với tương tác. Đối với các ứng dụng web, View thông
thường là các trang HTML để trả lại dữ liệu. View lấy dữ liệu từ Model (dữ liệu này
được chuyển qua nó để tới Controller). Và đưa dữ liệu vào trong Template (dữ liệu
hiển thị với người dùng). View không làm thay đổi dữ liệu. Nó chỉ hiển thị dữ liệu
lấy từ Model.
3.1.3 Controller
Controller chịu trách nhiệm phản hồi các hành động của người dùng. Trong các
ứng dụng web, một hành động của người dùng thông thường là một hành động tải
trang. Controller sẽ xác định yêu cầu gì được đưa ra bởi người sử dụng và phản hồi
thích hợp bằng việc yêu cầu Model tính toán dữ liệu phù hợp và chuyền từ Model
vào View. Controller không thể hiện dữ liệu từ Model, nó kích hoạt các phương thức
trong Model để hiệu chỉnh dữ liệu và sau đó chuyển từ Model sàng View để hiển thị
dữ liệu.
Đối với một Component cơ sở chúng ta cần có 5 file.
15
✓
Tên component.php: Đây là điểm vào cho
Component
✓
Controler.php: File này có chứa Controller cơ bản
✓
Views/tên controller/view.html.php: File này nhận
các dữ liệu cần thiết và đặt nó lên Template
✓
Views/tên controller/tmpl/default.php: File này là
Template cho đầu ra
✓
Tên controller.xml: Đây là một file XML nói cho
Joomla biết cách cài đặt Conponent của chúng ta như thế nào.
3.1.4. Tạo một Component
3.1.4.1. Tạo 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 các ứ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ị lựa chọn trong URL hoặc trong
dữ liệu POST. Đối với Component của chúng ta URL sẽ như sau: index.php?
option=tên component&view=tên component. Việc này sẽ tải file chính của chúng ta
và có thể xem phư một điểm vào đơn cho Component của chúng ta.
3.1.4.2. Tạo Controller
Nhiệm vụ của Controller là tính toán trên dữ liệu và tải view thích hợp, một số
phương thức trong Controller như display(), edit(), save(),… Hầu hết các hàm cần
thiết được xây dựng trong lớp Jcontroller, bởi vậy tất cả những gì chúng ta cần phải
làm là gọi các phương thức đó Jcontroller::display(),…
3.1.4.3. Tạo View
Nhiệm vụ của View thì rất đơn giản nó nhận dữ liệu được hiển thị và đặt nó lên
Template. Dữ liệu được đặt lên Template sử dụng phương thức <classname> Jview
</classname>::assignRef.
3.1.4.4. Tạo Template
Joomla Template/ layout là các file PHP thông thường, được sử dụng để bố
16
trí, xếp đặt dữ liệu từ View theo một cách cụ thể nào đó. Các biến được gán bởi
phương thức Jview::assignRef có thể được truy cập từ Template sử dung $this->
propertyname}
3.1.4.5. Tạo file đóng gói
Có thể cài đặt thủ công một Component bằng cách copy tất cả các file bằng
FPT client và hiệu chỉnh cơ sở dữ liệu. Nhưng sẽ hiệu quả hơn nếu tạo ra một file
được đóng gói để Joomla!Insttaller thực hiện điều này cho bạn. File đóng gói này sẽ
chứa nhiều dạng thông tin khác nhau như sau.
✓
Các miêu tả chi tiết cơ bản về Component của
bạn, và tùy ý một số mô tả thông tin về bản quyền…
✓
Một danh sách các file cần copy.
✓
Một file PHP thực hiện bổ sung các thao tác cài
đặt và gỡ bỏ (file này không bắt buộc)
✓
Một file SQL có chứa các câu truy vấn dữ liệu mà
sẽ thực hiện vào lúc
Phần 2: Tìm hiểu ngôn ngữ mô hình hóa UML
1. Ngôn ngữ mô hình hóa hệ thống UML
1.1. Giới thiệu về ngôn ngữ mô hình hóa hệ thống UML
UML (Unified Modeling Language) là ngôn ngữ mô hình hóa độc lập với các
công nghệ phần mềm. Trước hết nó bao gồm một tập các kí pháp thống nhất, thể
hiện ngữ nghĩa các định nghĩa trực quan tất cả các thành phần của mô hình. UML
được sử dụng để hiển thị, đặc tả, tổ chức xây dựng và làm tài liệu các kết quả của
các quá trình phát triển phần mềm hướng đối tượng, đặc biệt là phân tích, thiết kế
dưới dạng báo cáo, biểu đồ, bản mẫu hay các website v.v…
17
1.2. UML và các giai đoạn phát triển hệ thống.
1.2.1. phân tích yêu cầu.
UML đưa ra các ca sử dụng để mô phỏng các chức năng hệ thống. Qua các ca
sử dụng các nhân tố ngoài có thể tham gia vào hệ thống mô hình hóa bởi các tác
nhân. Các ca sử dụng và các tác nhân được mô tả trong biểu đồ ca sử dụng. Mỗi ca
sử dụng được mô tả bằng văn bản đặc tả yêu cầu của khách hàng.
1.2.2. phân tích hệ thống.
Trong giai đoạn phân tích, chỉ mô tả lớp phạm vi của vấn đề cần giải quyết,
chứ không đi vào các chi tiết kỹ thuật của chúng. Nhiệm vụ của người phân tích là
nghiên cứu kỹ các yêu cầu của hệ thống, phân tích các thành phần của hệ thống cùng
mối quan hệ của chúng. Trong khâu phân tích chủ yếu trả lời các câu hỏi:
- Hệ thống gồm những thành phần bộ phận nào?
- Hệ thống cần thực hiện những gì?
Kết quả của pha phân tích là xây dựng được biểu đồ tuần tự, biểu đồ cộng tác
và biểu đồ thành phần, biểu đồ trạng thái và biểu đồ lớp.
1.2.3. Thiết kế hệ thống.
Trong giai đoạn thiết kế, các kết quả của quá trình phân tích được mở rộng
thành một giải pháp kỹ thuật. Một số lớp mới được thêm vào để cung cấp các cơ sở
hạ tầng kỹ thuật như: lớp giao diện người sử dụng, lớp cơ sở dữ liệu, v.v... Trong
khâu thiết kế hệ thống hướng đối tượng chủ yếu trả lời cho câu hỏi:
✓ Làm như thế nào?
✓ Trong hệ thống có những lớp đối tượng và trách nhiệm của chúng làm gì?
✓ Các đối tượng tương tác với nhau như thế nào?
✓
Các nhiệm vụ nào mà mỗi lớp phải thực hiện?
Qua đó chúng ta thấy nhiệm vụ chính của giai đoạn thiết kế hệ thống là:
✓ Xây dựng các thiết kế chi tiết mô tả các thành phần của hệ thống ở mức cao
hơn để phục vụ cho việc cài đặt.
18
✓ Đưa ra được kiến trúc của hệ thống để đảm bảo cho hệ thống có thể thay
đổi, có tính mở, dễ bảo trì, thân thiện với người sử dụng v.v…
Các kết quả sẽ được thể hiện trong các biểu đồ: biểu đồ tương tác, biểu đồ
thành phần, biểu đồ triển khai, biểu đồ lớp. Kết quả nhất thiết phải được ghi lại
ở hồ sơ, tài liệu cho hệ thống.
1.2.4. Lập trình.
Các lớp của bước thiết kế sẽ được chuyển thành mã nguồn theo một ngôn ngữ
lập trình hướng đối tượng. Trong giai đoạn này mỗi công việc đã được thiết lập
thành những module chương trình. Sau đó các module chương trình này sẽ được
kiểm tra, tích hợp với nhau thành hệ thống tổng thể và nó sẽ được kiểm tra xem có
đáp ứng các yêu cầu của khách hàng hay không. Kết thúc pha này là phần mềm cần
phải xây dựng.
Có 4 hình thức kiểm tra hệ thống:
✓ Kiểm tra từng đơn thể được dùng để kiểm tra các lớp hay các nhóm đơn.
✓ Kiểm tra tính tích hợp để kết hợp với các thành phần và các lớp, kiểm tra
xem chúng hoạt động có khớp với nhau không.
✓ Kiểm tra hệ thống xem có đáp ứng được nhu cầu của khách hàng không.
✓ Kiểm tra tính chấp nhận được, việc này được thực hiện bởi khách hàng.
1.2.5. Vận hành và bảo trì hệ thống.
Hệ thống phần mềm phải được nâng cấp, hoàn thiện liên tục nhằm nâng cao
hiệu quả của hệ thống như các thay đổi để cải thiện hiệu quả công việc, bổ sung
thêm các chức năng hay giảm thời gian xử lý.
1.3. Cấu trúc của ngôn ngữ mô hình hóa UML
Ngôn ngữ mô hình hóa UML được chia làm 4 khối chính:
● Các quan sát
●
Các biểu đồ
● Các thành phần mô hình
● Các mối quan hệ
Sau đây ta sẽ tìm hiểu từng khối trong cấu trúc của UML
19
1.3.1. Các quan sát.
Các quan sát theo các phương diện khác nhau của hệ thống cần phân tích, thiết
kế. Dựa vào các quan sát để thiết lập kiến trúc cho hệ thống cần phát triển.
Có 5 loại quan sát: quan sát theo ca sử dụng, quan sát logic, quan sát thành
phần, quan sát tương tranh, quan sát triển khai.
Biểu đồ mô tả các quan sát của hệ thống
Biểu đồ trên mô tả các quan sát của hệ thống. Trong đó, mỗi quan sát tập
trung số biểu đồ nhất định.
Quan sát theo ca sử dụng
●
Quan sát theo ca sử dụng mô tả các chức năng, nhiệm vụ của hệ thống. Nó là
cơ sở để trao đổi giữa các thành viên dự án phần mềm với khách hàng.
● Quan sát logic
Quan sát logic biểu diễn mối quan hệ logic giữa các lớp và các mối quan hệ
của chúng với nhau. Quan sát này được thể hiện trong các biểu đồ lớp, biểu đồ đối
tượng, biểu đồ tương tác, biểu đồ trạng thái.
●
Quan sát thành phần
Quan sát thành phần xác định các module vật lý hay tệp mã chương trình và sự
liên hệ giữa chúng để tổ chức thành hệ thống phần mềm. Quan sát thành phần được
thể hiện trong biểu đồ thành phần và các gói.
● Quan sát tương tranh
Quan sát tương tranh biểu diễn sự phân chia các luồng thực hiện công việc, các
lớp đối tượng cho các tiến trình và sự đồng bộ giữa các luồng trong hệ thống. Quan
sát này tập trung vào các nhiệm vụ tương tranh, tương tác với nhau trong hệ thống
đa nhiệm.
● Quan sát triển khai
20
Quan sát triển khai mô tả sự phân bố tài nguyên và nhiệm vụ trong hệ thống.
Quan sát triển khai bao gồm các luồng công việc, bộ xử lý các thiết bị.
1.3.2 Các biểu đồ.
Biểu đồ là biểu diễn đồ họa tập các phần tử mô hình được sử dụng để biểu diễn
hệ thống đang xây dựng dưới các góc độ quan sát khác nhau. Trong UML có các
biểu đồ sau:
●
Biểu đồ UC (Use Case)
Một biểu đồ Use case chỉ ra một số lượng các tác nhân ngoại cảnh và mối liên
kết của chúng đối với Use case mà hệ thống cung cấp. Các Use case định nghĩa các
yêu cầu về mặt chức năng đối với hệ thống nhưng không miêu tả chức năng được
cung cấp sẽ hoạt động nội bộ bên trong hệ thống ra sao.
● Biểu đồ lớp
Một biểu đồ lớp chỉ ra cấu trúc tĩnh của các lớp trong hệ thống. Các lớp là đại
diện cho các “vật” được xử lý trong hệ thống. Các lớp có thể quan hệ với nhau trong
nhiều dạng thức: liên kết, phụ thuộc, chuyên biệt hóa hay đóng gói.
●
Biểu đồ trình tự
Biểu đồ trình tự chỉ ra luồng chức năng xuyên qua các UC. Nó là biểu đồ mô tả
tương tác giữa các đối tượng và tập trung vào mô tả trật tự các thông điệp theo thời
gian.
●
Biểu đồ cộng tác
Biểu đồ cộng tác tập trung vào các tương tác và kết nối giữa một tập các đối
tượng cộng tác. Biểu đồ cộng tác gần giống như biểu đồ trình tự nhưng biểu đồ trình
tự tập trung vào khía cạnh thời gian còn biểu đồ cộng tác tập trung vào khía cạnh
không gian.
● Biểu đồ triển khai
21
Biểu đồ triển khai chỉ ra cách bố trí vật lý các thành phần theo cấu trúc được
thiết kế của hệ thống. Trong biểu đồ này xác định các máy tính và thiết bị hoạt động,
cũng như cách nối các nút lại với nhau.
● Biểu đồ chuyển trạng thái
Biểu đồ chuyển trạng thái mô tả vòng đời của đối tượng, từ khi nó được sinh ra
đến khi bị phá hủy. Biểu đồ chuyển trạng thái cung cấp cách thức mô hình hóa các
trạng thái khác nhau của đối tượng và được sử dụng để mô hình hóa các hành vi
động của hệ thống.
● Biểu đồ thành phần
Biểu đồ thành phần cho ta cái nhìn vật lý của mô hình. Nó cho ta thấy các
thành phần phần mềm trong hệ thống và quan hệ giữa chúng; cho thấy trình tự dịch
các modul trong hệ thống. Đồng thời cho biết thành phần nào được tạo ra khi chạy
chương trình. Biểu đồ thành phần chỉ ra ánh xạ của lớp vào các thành phần cài đặt.
1.3.3. Các thành phần của mô hình UML.
Trong ngôn ngữ mô hình hóa UML định nghĩa bốn loại phần tử:
✓ Phần tử cấu trúc
✓ Phần tử mô tả hành vi
✓ Phần tử phân nhóm
✓ Phần tử chú giải
1.3.4. Các mối quan hệ trong UML.
Ngôn ngữ mô hình hóa UML cho phép biểu diễn bốn mối quan hệ giữa các đối
tượng trong các hệ thống. Đó là:
✓ Quan hệ phụ thuộc
✓ Quan hệ kết hợp
✓ Quan hệ khái quát
✓ Quan hệ hiện thực hóa
22
1.4. Lớp và gói trong ngôn ngữ mô hình hóa UML.
1.4.1 Biểu đồ lớp.
Biểu đồ lớp là một dạng mô hình tĩnh, mô tả hệ thống trong mối quan hệ giữa
các lớp. Biểu đồ lớp chỉ ra trừu tượng của thế giới thực, tập trung vào giải thích cấu
trúc tĩnh từ góc nhìn tổng quát.
1.4.2. Đối tượng, lớp và mối quan hệ.
Trong ngôn ngữ mô hình hóa UML, những phần tử cấu thành căn bản nhất của
mô hình là lớp, đối tượng và mối quan hệ giữa chúng.
● Đối tượng
Đối tượng là một khái niệm, một sự trừu tượng hóa hoặc là một sự vật có nghĩa
trong một ứng dụng nào đó, đối tượng là thực thể của hệ thống, của cơ sở dữ liệu và
được xác định thông qua định danh của chúng. Mỗi đối tượng trong một hệ thống
đều có ba đặc tính:
✓
Định danh đối tượng: dùng để phân biệt với những đối tượng
khác (ngay cả khi chúng có các tính chất giống nhau). Mỗi đối tượng đều có
một định danh và nó được thiết lập khi đối tượng được tạo ra trong hệ thống.
✓
Tính bền vững của đối tượng: mỗi đối tượng đều có thời gian
sống (tồn tại trong hệ thống) và điều này dẫn tới bản chất tĩnh của hệ thống.
✓
Tính tương tác: mỗi đối tượng phải có hoặc có thể tương tác
với các đối tượng khác. Điều này dẫn đến bản chất động của hệ thống.
Đối tượng là thực thể của lớp nên ký hiệu dùng cho đối tượng cũng là ký hiệu
dùng cho lớp.
● Lớp
Lớp là một mô tả về một nhóm các đối tượng có những tính chất (thuộc tính)
giống nhau, có chung các hành vi ứng xử (thao tác gần như nhau), có cùng mối liên
quan với các đối tượng của các lớp khác và có chung ngữ nghĩa trong hệ thống.
Trong UML, lớp được mô tả bằng một hình hộp chữ nhật, trong đó tên của lớp, có
thể có các thuộc tính và các hàm (phương thức).
23
✓
Tên lớp: tên lớp phải được dẫn xuất từ phạm vi vấn đề rõ ràng.
Vì thế nó là danh từ chung.
✓ Thuộc tính: thuộc tính mô tả các đặc tính của các đối tượng trong lớp đó.
✓
Phương thức (thao tác hoặc hàm thành phần): Phương thức của
lớp mô tả các hành vi và các mối quan hệ của các đối tượng trong hệ thống.
Mỗi phương thức được mô tả bởi phạm vi, tên gọi, danh sách các tham số và
kiểu trả lại giá trị.
● Các quan hệ của lớp
Giữa các lớp có các loại quan hệ sau:
✓
Quan hệ kết hợp: quan hệ kết hợp là sự kết nối giữa các lớp về
mặt ngữ nghĩa các đối tượng, quan hệ này được vẽ bằng đường đơn trong biểu
đồ lớp. Kết hợp có thể là một hay hai chiều.
✓
Quan hệ phụ thuộc: quan hệ phụ thuộc cũng là sự kết nối giữa
hai lớp, nhưng có đôi chút khác biệt so với quan hệ kết hợp. Quan hệ phụ
thuộc luôn là quan hệ một chiều, chỉ ra một lớp phụ thuộc vào lớp khác, được
thể hiện bằng mũi tên nét đứt.
✓
Quan hệ tụ hợp: là hình thức kết hợp mạnh. Quan hệ tụ hợp
giữa hai lớp có nghĩa là chúng có cùng mức, không lớp nào quan trọng hơn lớp
nào. Tụ hợp là quan hệ giữa toàn thể và bộ phận, với một lớp biểu diễn phần
lớn hơn còn lớp kia biểu diễn phần nhỏ hơn.
✓
Quan hệ khái quát hóa: khái quát hóa là tiến trình khá khó
khăn, nó đòi hỏi phải có khả năng trừu tượng cao để có thể được phân cấp tối
ưu. Cây của lớp không phát triển từ gốc mà hình thành từ lá của nó.
1.4.3. Gói.
Gói là một nhóm các phần tử của mô hình, gồm các lớp, các mối quan hệ và
các gói nhỏ hơn. Gói được mô tả trong biểu đồ UML gồm tên của gói, có thể các
lớp, gói nhỏ khác và được ký hiệu như hình vẽ:
24
Gói các lớp trong UML
khảo sát và mô tả một khía cạnh của hệ thống và thường được thể hiện trong
một
Chương 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
1. Yêu cầu nghiệp vụ
1.1. Xây dựng danh sách các nhà hàng
✓ Quản lý các nhà hàng
✓
Định nghĩa các nhà hàng mới phát sinh (thêm nhà hàng mới vào
cơ sở dữ liệu)
✓
Thực hiện sửa và xóa các nhà hàng đã có nếu có yêu cầu thay
đổi thông tin.
1.2. Xây dựng danh sách các khách sạn
✓ Quản lý các khách sạn
✓
Định nghĩa các khách sạn mới phát sinh (thêm khách sạn mới
vào cơ sở dữ liệu)
✓
Thực hiện sửa và xóa các khách sạn đã có nếu có yêu cầu thay
đổi thông tin.
25