3.1.1 Xác định các yêu cầu của hệ thống
3.1.1.1 Đối với người duyệt web
Website đảm bảo các yêu cầu sau:
• Website cung cấp giao diện đồ họa trực quan cho người duyệt, có thể dễ dàng tra cứu, tìm kiếm chương trình tivi một cách nhanh chóng.
• Website hiển thị các tin theo từng kênh • Cung cấp các chức năng tìm kiếm.
3.1.1.2 Đối với người quản trị Admin
Để có thể thực hiện những tác vụ của người quản trị, hệ thống sẽ yêu cầu người quản lý đăng nhập vào hệ thống. Sau khi đăng nhập website cung cấp các chức năng:
• Kết nối cơ sở dữ liệu
• Quản lý dữ liệu: tiến hành cập nhập, thêm mới hay xóa bỏ các dữ liệu không phù hợp.
• Quản lý chương trình tivi: tiến hành cập nhâp,thêm mới,xóa bỏ các dữ liệu chương trình tivi không phù hợp
• Quản lý các kênh: có thể cập nhâp, thêm mới, xóa bỏ các kênh không phù hợp
• Quản lý các liên kết website, quảng cáo có thể cập nhập, thêm mới, sửa, xóa
• Quản lý User: có thể cập nhập,thêm,xóa,phân quyền cho người sử dụng • Chức năng tìm kiếm cho người quản trị
• Phân quyền sử dụng website
• Thay đổi mật khẩu khi cần thiết để đảm bảo tính bảo mật và an toàn cho Website.
3.1.2 Mô tả chi tiết chức năng với từng đối tượng sử dụng hệ thống
3.1.2.1 Đối với người duyệt web
• Xem chương trình tivi
Mục đích Chức năng cho phép người xem có thể xem chương trình tivi. Dữ liệu vào Lựa chọn kênh ti vi muốn xem.
Xử lý Lấy danh sách chương trình của từng kênh từ Database. Dữ liệu ra Chạy chương trình được yêu cầu.
• Tìm kiếm chương trình tivi
Mục đích Cho phép người xem tìm kiếm các chương trình .
Dữ liệu vào +Nhập từ khóa muốn tìm.
+Tìm kiếm với tất cả các từ nhập vào.
Xử lý Truy vấn trong cơ sở dữ liệu, hiện kết quả.
Dữ liệu ra Hiển thị các thông tin chi tiết.
3.1.2.2 Đối với người quản trị web
• Đăng nhập
Mục đích Cho Phân quyền để kiểm soát hệ thống một cách chặt chẽ, tránh
tình trạng hệ thống bị thay đổi và phá hủy.
Dữ liệu vào Tên đăng nhập, mật khẩu.
Xử lý So sánh với bảng user trong cơ sở dữ liệu .
Dữ liệu ra Chuyển đến trang của đối tượng nếu đúng, báo lỗi nếu sai tên hay
mật khẩu. • Đăng xuất
Mục đích Cho người quản lý thoát khỏi hệ thống đang sử dụng
Dữ liệu vào Yêu cầu đăng xuất
Xử lý Thực hiện yêu cầu đăng xuất khỏi hệ thống
• Quản lý người dùng
Mục đích Người quản trị có thể kiểm soát được người dùng, admin có thể
phân quyền, thêm, sửa, xóa người dùng
Dữ liệu vào Các thông tin của người dùng
Xử lý Xử lý các yêu cầu
Dữ liệu ra Hiển thị lên giao diện quản lý
• Quản lý chương trình tivi
Mục đích
+ Người quản trị có thể kiểm soát được các chương trình tivi. Có thể cho chương trình đó hiển thị lên web không,chương trình đó thuộc kênh nào…
+Admin có thể tìm kiếm, xem, sửa xóa và cập nhật các kênh tivi +Admin có thể xem chi tiết về từng chương trình tivi tại trang quản lý
Dữ liệu vào
+Dữ liệu tìm kiếm
+ Dữ liệu thêm kênh mới. +Dữ liệu về update kênh mới +Dữ liệu về chương trình cần xóa
Xử lý Xử lý các yêu cầu truy xuất dữ liệu để chỉnh sửa chương trình tivi
và cập nhập dữ liệu khi thêm chương trình mới.
Dữ liệu ra Hiển thị lên giao diện • Quản lý kênh tivi
Mục đích Admin có thể tìm kiếm, xem, sửa xóa và cập nhật các kênh tivi
Dữ liệu vào +Dữ liệu tìm kiếm
+ Dữ liệu thêm kênh mới. +Dữ liệu về update kênh mới
+Dữ liệu về kênh cần xóa +Xem chi tiết chương trình
Xử lý Truy xuất dữ liệu để chỉnh sửa kênh và cập nhập dữ liệu khi thêm
kênh mới.
Dữ liệu ra Hiển thị tất cả kênh.
• Quản lý các liên kết website và quảng cáo
Mục đích Admin có thể tìm kiếm, xem, sửa xóa và cập nhật các trang web
liên kết và quảng cáo
Dữ liệu vào
+ Dữ liệu tìm kiếm
+ Dữ liệu thêm liên kết mới mới. +Dữ liệu về update liên kết mới +Dữ liệu về liên kết cần xóa
Xử lý Truy xuất dữ liệu để chỉnh sửa liên kết, cập nhập dữ liệu khi thêm
liên kết mới, xóa liên kết
Dữ liệu ra Hiển thị tất cả các yêu cầu đáp trả
3.2 THIẾT KẾ HỆ THỐNG3.2.1 Mô hình phân cấp chức năng 3.2.1 Mô hình phân cấp chức năng
Hình 3.1: Mô hình phân cấp chức năng của Admin • Trang dành cho người duyệt web
Xóa user Xóa user Sửa user Sửa user Thêm user Thêm user Tìm kiếm user Tìm kiếm user Xóa kênh ti vi Xóa kênh ti vi Sửa kênh ti vi Sửa kênh ti vi Thêm kênh ti vi Thêm kênh ti vi Tìm kênh ti vi Tìm kênh ti vi Xóa chương trình tivi Xóa chương trình tivi Sửa chương trình tivi Sửa chương trình tivi
Xem chi tiết chương trình Xem chi tiết chương trình Tìm kiếm chương trình Tìm kiếm chương trình Thêm mới chương trình Thêm mới chương trình Quản lý user Quản lý user Quản lý kênh ti vi Quản lý kênh ti vi Quản lý chương trình Quản lý chương trình Trang chủ Trang chủ Quản lý banner Quản lý banner Tìm kiếm banner Tìm kiếm banner Thêm banner Thêm banner Sửa banner Sửa banner Xóa banner Xóa banner
Hình 3.2: Mô hình phân cấp chức năng của người duyệt web
Xem chi tiết chương trình
Xem chi tiết chương trình Danh sách chương trình theo kênh Danh sách chương trình theo kênh Xem chương trình theo kênh Xem chương trình theo kênh Xem liên kết website Xem liên kết website Xem chương trình mới nhất Xem chương trình mới nhất Tìm kiếm chương trình Tìm kiếm chương trình Trang chủ
3.2.2 Mô hình UseCase
• Sơ đồ UseCase của hệ thống
Hình 3.3: Sơ đồ UseCase của hệ thống System user admin quan ly user quan ly chuongtrinh quan ly kenh tim kiem
xem chương trình tivi quan ly lien ket website
• Sơ đồ Usecase của Admin
Hình 3.4: Sơ đồ UseCase của Admin
• Sơ đồ Usecase của User
Hình 3.5: Sơ đồ UseCase của User
admin xem chi tiet chuong trinh tivi
them,sua,chuong trinh tivi
them ,sua, xoa kenh tivi
them,sua,xoa lien ket website
them,sua,xoa user
tim kiem
dang nhap
thoat
user xem chuong trinh theo kenh
xem chương trinh moi nhat
xem tin tin tuc tivi xem lien ket website
tim kiem chuong trinh tivi
3.2.3 Kiến trúc hệ thống
Hệ thống Framework MVC hoạt động theo mô hình MVC với kiến trúc như sau:
Hình 3.6: Kiến trúc của hệ thống Framework MVC
3.2.3.1 Mô tả kiến trúc hệ thống
• Hệ thống hoạt động theo mô hình MVC trong đó: C = bootstrap+(Controller + Action) M = Logic + DB V = View DB Server DB Server Block Block View View bootstrap bootstrap Controller+ Action Controller+ Action Logic Logic DB DB 1 2 3 7 4 8 6 9 10 11 0:Request 12:Reponse C M v User 5
• Block trong kiến trúc này hoạt động rất linh hoạt ,tùy từng chức năng mà nó có thể đóng vai trò như một thành phần của Controller hoặc nó có thể là một khối của view.
− Khi Block là thành phần của Controller thì nó hoạt động như một Action, thành phần của block cũng bao gồm các hàm xử lý.
− Khi Block là một khối của View nó đóng vai trò hiển thị dữ liệu lên giao diện.Block này có tính sử dụng lại khi dữ liệu hiển thị trên trang web có các khối trùng lặp,thay vì phải code lại các chức năng đó thì ta chỉ cần gọi block đó.
• Cách thức hoạt động của mô hình:
− Bước 0: Ban đầu người dùng cần thực hiện chức năng gì sẽ gửi request đến cho bootstrap.
− Bước 1:bootstrap điều khiển đến Controller +Action
− Bước 2: Khi nhận được request từ người dùng,Controller sẽ điều phối request xem yêu cầu người dùng cần thực hiện chức năng gì.Sau đó sẽ lựa chọn Action cần thực hiện chức năng đó.Tiếp đó Action thực hiện xử lý các chức năng thông qua các hàm của nó và gọi đến các hàm trong Logic cần thực hiện.
− Bước 3 : Logic thực hiện phần xử lý logic và sẽ truy xuất vào DB để lấy dữ liệu
− Bước 4: Tại đây DB sẽ thực hiện các câu lệnh truy vấn cơ sở dữ liệu mà logic yêu cầu như select, update, insert , delete. Từ các câu lệnh truy vấn cơ sở dữ liệu thì hệ thống sẽ truy cập vào hệ thống cơ sở dữ liệu DB server.Tại đây dữ liệu yêu cầu được lấy ra .
− Bước 5: Kết quả của dữ liệu truy vấn sẽ được trả về cho Action.Action sẽ gọi vào block nếu website có nhiều block khác nhau và thực hiện nhiều chức năng khác nhau .
− Bước 6: Các Block lúc này sẽ có vai trò như Action và truy xuất vào Logic cần thực hiện
− Bước 7: Từ Logic sẽ truy xuất vào DB cần thực hiện
− Bước 8 : Tại đây DB sẽ thực hiện các câu lệnh truy vấn cơ sở dữ liệu mà logic yêu cầu như select, update, insert , delete. Từ các câu lệnh truy vấn cơ sở dữ liệu thì hệ thống sẽ truy cập vào hệ thống cơ sở dữ liệu DB server.Tại đây dữ liệu yêu cầu được lấy ra .
− Bước 9: Kết quả của truy vấn sẽ được trả về cho Block.Tại đây dữ liệu sẽ được chuyển vào View
− Bước 10:Mọi xử lý của hệ thống sẽ trả về Controller+Action ,tại đây nó sẽ điều phối dữ liệu để chuyển qua View hiển thị lên giao diện
− Bước 11:View có thể gọi trực tiếp đến logic sau đó logic truy xuất vào DB,DB thực hiện câu lênh truy vấn cơ sở dữ liệu mà logic yêu cầu như select, update, insert , delete. Từ các câu lệnh truy vấn cơ sở dữ liệu thì hệ thống sẽ truy cập vào hệ thống cơ sở dữ liệu DB server.Tại đây dữ liệu yêu cầu được lấy ra và trả về cho view.
− Bước 12: dữ liệu mà người dùng yêu cầu sẽ được đáp trả thông qua giao diện của website.
Hình 3.7: Mô hình Sequence Diagram của kiến trúc hệ thống Framework MVC
3.2.3.3 Mô hình Class Diagram của kiến trúc hệ thống
Hình 3.8: Mô hình Class Diagram của kiến trúc hệ thống Framework MVC
Actor View Controller Block Model
1 : Request() 2 : Request() 3 : Query() 5 : Request() 6 : Request() 7 : Query() Database 11 : Response() 9: Request() 10: Query() 4 : Response() 8 : Response() Controller Action Block Logic DataBase View 1: Request 2: Request 4: Request 5: Request 6: Query 3: Query 7: Response 8: Response 9: Response
3.2.4 Chức năng đăng nhập
3.2.4.1 Mô tả chức năng đăng nhập
Chức năng đăng nhập dùng cho người quản lý website.Khi người quản lý muốn đăng nhập website thì họ phải đưa request vào hệ thống thông quan form đăng nhập của website.FrontController sẽ nhận request và xử lý , nó sẽ điều phối đến Action thích hợp là LoginAction. LoginAction.php gọi đến AdminLogic bằng hàm checkUser(), tại đây nó sẽ xử lý kiểm tra dữ liệu bằng hàm selectUser().Từ AdminLogic gọi đến AdminDB bằng hàm selectOne().Kết quả kiểm tra được trả về LoginAction. LoginAction sẽ xử lý và gọi đến các block liên quan.Các Block đó sẽ xử lý tiếp các yêu cầu và trả lại kết quả cho view.Mọi kết quả trả về sẽ được trả về cho FrontController để điều phối trả lại kết quả ra view cho người dùng.Chi tiết về cách thức hoạt động của chức năng đăng nhập thể hiện trên mô hình seaquence diagram và mô hình class diagram.
3.2.4.2 Mô hình Sequence Diagram của chức năng đăng nhập
Hình 3.9: Mô hình Sequence Diagram của chức năng đăng nhập
Actor LoginAction LoginBlock View UserLogic UserDb
1 : Request() 2 : checkUser () 4 : selectOne () 5 : Request() 6 : Request() 7 : Request() 8 : Response() 3 : selectUser ()
3.2.4.3 Mô hình Class Diagram của chức năng đăng nhập
Hình 3.10: Mô hình Class Diagram của chức năng đăng nhập
3.2.5 Mô hình Sequence Diagram cho các chức năng chính của hệ thống
3.2.5.1 Mô hình Sequence Diagram đối với người duyệt web
• Mô hình Sequence Diagram của trang chủ phía người dùng
Hình 3.11: Mô hình Sequence Diagram của trang chủ phía người dùng
LoginAction LoginBlock BaseView UserDb UserLogic 2:Query 5:Request 1:Request 4:Request 3:Request
Actor View Home-Controller block_category Block-content
4:HTML
3: Action-home-category() t
1 : action_index ()
• Mô hình Sequence Diagram của chức năng tìm kiếm chương trình ti vi
Hình 3.12: Mô hình Sequence Diagram của chức năng tìm kiếm chương trình tivi
Actor view Controller_Search Block-content ModelContent
1 : action_index ()
2 : action_homeClip ()
4 : HTML
• Mô hình Sequence Diagram của chức năng hiển thị các chương trình tivi mới nhất lên trang chủ
Hình 3.13: Mô hình Sequence Diagram của chức năng hiển thị các chương trình mới nhất lên trang chủ
Actor view Controller_Home block_content
1 : Index-Action()
2:action_homeSlideshow
• Mô hình Sequence Diagram của chức năng hiển thị các chương trình tivi mới nhất theo từng kênh lên trang chủ
Hình 3.14: Mô hình Sequence Diagram của chức năng hiển thị các chương trình mới nhất theo từng kênh lên trang chủ
Actor View Controller-Home Categoryblock CategoryModel
1: Index-action () 4:searchHomeVTC() 5 : selectSlideshow () 3:action_homeSlideshow() 6 : HTML ContentModel Contentblock 2: action-homeCategoty () ,action_categoryClip() ,searchTopCategory ()
• Mô hình Sequence Diagram của chức năng xem chi tiết chương trình ti vi
Hình 3.15: Mô hình Sequence Diagram của chức năng xem chi tiết chương trình tivi • Mô hình Sequence Diagram của chức năng hiển thị danh sách các chương
trình theo từng kênh
Hình 3.16: Mô hình Sequence Diagram của chức năng hiển thị danh sách các chương trình theo từng kênh
Actor view Content-Controller Content-model
1:Request(id)
2 selectPrimary key ()
3: HTML
Actor view Controller_Category block_content Content-Model
1 :Action-View()
3: Action-Home()
4 : HTML
3.2.5.2 Mô hình Sequence Diagrams đối với người quản lý website
• Mô hình Sequence Diagram của chức năng tìm kiếm chương trình tivi và hiển thị danh sách chương trình ti vi
Hình 3.17: Mô hình Sequence Diagram của chức năng tìm kiếm và hiển thị danh sách chương trình ti vi
• Mô hình Sequence Diagram của chức năng thêm mới chương trình ti
Actor DataListAction View contentLogic contentDB
1 : Request()
2 : searchList()
3 : selectList() 4 : Request()
Hình 3.18: Mô hình Sequence Diagram của chức năng thêm mới chương trình ti vi • Mô hình Sequence Diagram của chức năng sửa chương trình ti vi
Hình 3.19: Mô hình Sequence Diagram của chức năng sửa chương trình ti vi • Mô hình Sequence Diagram của chức năng xóa chương trình ti vi
Actor DataAddAction View ContentLogic ContentDB 1 : Request()
2 : insertData ()
3 : insert () 4 : Request()
5 : Response()
Actor DataEditAction View ContentLogic ContentDB
1 : Request() 2 : selectData() 3 : selectOne() 4 : Request() 5 : updateData() 6 : updatePrimary() 7 : Request() 8 : Response()
Hình 3.20: Mô hình Sequence Diagram của chức năng xóa chương trình tivi • Mô hình Sequence Diagram của chức năng tìm kiếm và hiển thị danh sách
kênh tivi
Hình 3.21: Mô hình Sequence Diagram của chức năng tìm kiếm và hiển thị danh sách kênh tivi
Actor DataDeleteAction View ContentLogic ContentDB
1 : Request()
2 : deleteData ()
3 : deletePrimary () 4 : Request()
5 : Response()
Actor DataAddAction View CategoryLogic CategoryDB
1 : Request()
2 : searchList()
3 : selectList() 4 : Request()
• Mô hình Sequence Diagram của chức năng thêm mới kênh
Hình 3.22: Mô hình Sequence Diagram của chức năng thêm mới kênh tivi
• Mô hình Sequence Diagram của chức năng sửa kênh tivi
Actor DataAddAction View CategoryLogic CategoryDB
1 : Request()
2 : insertData ()
3 : insert () 4 : Request()
Hình 3.23: Mô hình Sequence Diagram của chức năng sửa kênh ti vi
• Mô hình Sequence Diagram của chức năng xóa kênh tivi
Actor DataEditAction View CategoryLogic CategoryDB
1 : Request() 2 : selectData() 3 : selectOne() 4 : Request() 5 : updateData() 6 : updatePrimary() 7 : Request() 8 : Response()
Hình 3.24: Mô hình Sequence Diagram của chức năng xóa kênh tivi • Mô hình Sequence Diagram của chức năng tìm kiếm và hiển thị danh sách
liên kết website và quảng cáo
Hình 3.25: Mô hình Sequence Diagram của chức năng tìm kiếm và hiển thị danh sách liên kết website và quảng cáo
• Mô hình Sequence Diagram của chức năng thêm mới liên kết website và
Actor DataDeleteAction View CategoryLogic CategoryDB
1 : Request() 2 : DeleteData() 3 : deletePrimary () 4 : Request() 5 : Response() Acto r
DataListAction View BannerLogic BannerLinkDB
1 : Request()
2 : searchList()
3 : selectList() 4 : Request()
quảng cáo
Hình 3.26: Mô hình Sequence Diagram của chức năng thêm mới liên kết website và quảng cáo
• Mô hình Sequence Diagram của chức năng chỉnh sửa liên kết website và quảng cáo
Hình 3.27: Mô hình Sequence Diagram của chức năng chỉnh sửa liên kết website và quảng cáo