Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 189 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
189
Dung lượng
4,95 MB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA HỆ THỐNG THÔNG TIN BÁO CÁO ĐỒ ÁN CUỐI KÌ PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG VỚI UML Đề tài: XÂY DỰNG WEBSITE HỆ THỐNG RẠP CHIẾU PHIM Giảng viên hướng dẫn : ThS Nguyễn Đình Loan Phương Lớp : IS205.E21 Sinh viên thực hiện: Nguyễn Phi Hùng 11520132 Phạm Duy Hưng 11520137 Lâm Trí Tín 11520412 Võ Thị Thu Uyên 11520685 TP Hồ Chí Minh, ngày 01 tháng năm 2014 LỜI CÁM ƠN Đầu tiên, nhóm tác giả xin gởi lời cảm ơn chân thành đến tập thể quý Thầy Cô Trường Đại học Công nghệ thông tin – Đại học Quốc gia TP.HCM quý Thầy Cô khoa Hệ thống thơng tin giúp cho nhóm tác giả có kiến thức làm tảng để thực đề tài Đặc biệt, nhóm tác giả xin gửi lời cảm ơn lòng biết ơn sâu sắc tới Cơ Nguyễn Đình Loan Phương (Giảng viên lý thuyết mơn Phân tích thiết kế HTTT) Thầy Nguyễn Thành Hiệp (Giảng viên hướng dẫn thực hành môn Phân tích thiết kế HTTT) Các Thầy Cơ trực tiếp hướng dẫn tận tình, sửa chữa đóng góp nhiều ý kiến q báo giúp nhóm tác giả hồn thành tốt báo cáo mơn học Trong thời gian học đề tài, nhóm tác giả vận dụng kiến thức tảng tích lũy đồng thời kết hợp với việc học hỏi nghiên cứu kiến thức Từ đó, nhóm tác giả vận dụng tối đa thu thập để hoàn thành báo cáo đồ án tốt Tuy nhiên, q trình thực hiện, nhóm tác giả khơng tránh khỏi thiếu sót Chính vậy, nhóm tác giả mong nhận góp ý từ phía Thầy Cơ nhằm hồn thiện kiến thức mà nhóm tác giả học tập hành trang để nhóm tác giả thực tiếp đề tài khác tương lai Xin chân thành cảm ơn q Thầy Cơ ! Nhóm sinh viên thực GVHD: ThS Nguyễn Đình Loan Phương Nguyễn Thành Hiệp Website hệ thống rạp chiếu phim NHẬN XÉT CỦA GIẢNG VIÊN GVHD: ThS Nguyễn Đình Loan Phương Nguyễn Thành Hiệp Website hệ thống rạp chiếu phim MỤC LỤC Chương TỔNG QUAN VỀ ĐỀ TÀI 1.1 Đặt vấn đề .1 1.2 Giải pháp .1 1.3 Mục tiêu .2 1.4 Phạm vi 1.5 Công cụ sử dụng 1.6 Bố cục báo cáo Chương XÁC ĐỊNH VÀ PHÂN TÍCH YÊU CẦU Khảo sát trạng 2.1 2.1.1 Phỏng vấn 2.1.2 Hiện trạng tổ chức 2.1.3 Các quy trình nghiệp vụ 2.2 Phân tích yêu cầu 12 2.2.1 Yêu cầu chức .12 2.2.2 Yêu cầu phi chức .13 2.3 Lựa chọn phương án thiết kế 14 2.3.1 Các yêu cầu hệ thống 14 2.3.2 Các ràng buộc hệ thống 15 2.3.3 Các phương án đề xuất cho hệ thống .15 2.3.4 Chọn lựa phương án thiết kế .16 Chương THIẾT KẾ HỆ THỐNG 17 3.1 Sơ đồ Usecase 17 3.2 Danh sách tác nhân hệ thống .19 3.3 Danh sách Usecase 19 3.4 Đặc tả Usecase sơ đồ hoạt động (Activity Diagram) 21 3.4.1 Usecase Xem thông tin phim .21 3.4.2 Usecase Đăng ký 21 3.4.3 Usecase Xem lịch sử giao dịch 22 3.4.4 Usecase Đặt vé 23 GVHD: ThS Nguyễn Đình Loan Phương Nguyễn Thành Hiệp Website hệ thống rạp chiếu phim 3.4.5 Usecase Đánh giá phim 25 3.4.6 Usecase Đăng nhập .25 3.4.7 Usecase Sửa thông tin người dùng 26 3.4.8 Usecase Yêu cầu cấp lại mật 27 3.4.9 Usecase Gửi phản hồi 28 3.4.10 Usecase Tìm kiếm .29 3.4.11 Usecase Quản lý phim 30 3.4.12 Usecase Quản lý tin tức 32 3.4.13 Usecase Quản lý khuyến .34 3.4.14 Usecase Quản lý hỏi đáp 36 3.4.15 Usecase Quản lý lịch chiếu .38 3.4.16 Usecase Quản lý người dùng .40 3.5 Sơ đồ trình tự (Sequence Diagram) sơ đồ lớp (Class Diagram) 41 3.5.1 Xem thông tin phim 41 3.5.2 Đăng ký .43 3.5.3 Xem lịch sử giao dịch 45 3.5.4 Đặt vé 46 3.5.5 Đánh giá phim 48 3.5.6 Đăng nhập 50 3.5.7 Sửa thông tin người dùng 51 3.5.8 Yêu cầu cấp lại mật 52 3.5.9 Gửi phản hồi .53 3.5.10 Tìm kiếm .54 3.5.11 Quản lý phim 57 3.5.12 Quản lý tin tức 63 3.5.13 Quản lý khuyến 68 3.5.14 Quản lý hỏi đáp 73 3.5.15 Quản lý lịch chiếu .78 3.5.16 Quản lý người dùng 83 3.5.17 Class Diagram tổng 86 3.5.18 Đặc tả Class Diagram 87 3.6 Sơ đồ trạng thái (State Diagram) 115 GVHD: ThS Nguyễn Đình Loan Phương Nguyễn Thành Hiệp Website hệ thống rạp chiếu phim 3.6.1 Phim 115 3.6.2 Suất chiếu 117 3.6.3 Khuyến .118 3.6.4 Người dùng 118 3.7 Sơ đồ triển khai (Deployment Diagram) 119 3.8 Ánh xạ liệu quan hệ từ mơ hình hướng đối tượng 120 3.9.1 Mơ hình quan hệ .120 3.9.2 Tổ chức liệu 120 3.9.3 Mô tả kiểu liệu 122 3.9 Thiết kế giao diện .132 3.10.1 Danh sách trang chương trình 132 3.10.2 Giao diện trang 134 Chương KẾT LUẬN 166 4.1 Bảng phân chia cơng việc nhóm 166 4.2 Môi trường phát triển môi trường triển khai ứng dụng 167 4.2.1 Môi trường phát triển ứng dụng .168 4.2.2 Môi trường triển khai ứng dụng .168 4.3 Kết đạt 168 4.3.1 Kết 168 4.3.2 Hạn chế 169 4.4 Hướng phát triển 170 PHỤ LỤC 171 TÀI LIỆU THAM KHẢO 182 GVHD: ThS Nguyễn Đình Loan Phương Nguyễn Thành Hiệp Website hệ thống rạp chiếu phim Chương 1.1 TỔNG QUAN VỀ ĐỀ TÀI Đặt vấn đề Hiện nay, với phát triển nhanh chóng ngành giải trí, rạp chiếu phim xây dựng ngày nhiều giới để phục vụ cho nhu cầu thiết yếu khán giả Tuy nhiên, việc tương tác với khách hàng ln gặp khó khăn Khách hàng ln phải xếp hàng chờ đợi hàng để mua vé xem phim, không nắm rõ lịch chiếu cụ thể đến rạp, việc bán vé thủ công không cho khách hàng lựa chọn chỗ ngồi gây cho họ khó chịu Về lâu dài, bất tiện nhiều ảnh hưởng đến thu nhập rạp phim Vì vậy, việc tạo hệ thống tương tác khách hàng rạp chiếu phim nhu cầu tất yếu giúp cho việc phụ vụ chăm sóc ngày trở nên đơn giản hơn, nhanh chóng dễ dàng Rạp chiếu phim TinyCinema tin học hóa cơng tác quản lý phần mềm với chức quản lý phim, quản lý thông tin khách hàng, quản lý kiện, quản lý nhân viên …Tuy nhiên, chưa thực có kênh giao tiếp trực tiếp với khách hàng hệ thống chưa giải việc bán vé cách thủ công Để giải vấn đề trên, cần giải pháp mang tính thực tiễn, cần xây dựng nên hệ thống phục vụ công tác quản lý rạp chiếu phim trực thuộc hệ thống rạp TinyCinema, đồng thời tạo nên kênh thơng tin thức để quảng bá thương hiệu đến với người dùng Hệ thống xây dựng phải hệ thống quản lý tích hợp, lưu trữ thông tin tập trung dễ dàng tương tác với khách hàng Bên cạnh cần chuẩn hóa qui trình cơng việc, để việc ứng dụng cơng nghệ thơng tin thực có hiệu 1.2 Giải pháp Các rạp chiếu phim xây dựng nằm vị trí địa lý cách xa nên để giải vấn đề quản lý đồng rạp phim, nhóm đưa giải pháp xây dựng ứng dụng web, để khách hàng tham khảo thông tin phim, lịch chiếu tất rạp hệ thống thuận tiện việc đặt vé tra cứu thông tin rạp chiếu phim Đồng thời, ứng dụng web làm cho việc quản lý chăm sóc khách hàng tiện lợi nhanh chóng 1.3 Mục tiêu Xây dựng website hỗ trợ quản lý quảng bá Hệ thống rạp chiếu phim TinyCinema đáp ứng yêu cầu sau: - Quản lý trình nhập xuất thông tin phim, lịch chiếu thông tin rạp phim cách nhanh chóng dễ dàng - Quản lý kết xuất báo cáo đáng tin cậy tự động - Quản lý đầy đủ thông tin rạp chiếu, phòng chiếu - Quản lý thơng tin giao dịch khách hàng - Quản lý trình đặt vé online kết hợp với kiện khuyến giải vấn đề truy xuất đồng thời trình đặt vé - Cập nhật tin tức liên tục tới khách hàng - Tạo kênh liên lạc để khách hàng phản hồi đóng góp ý kiến - Thơng tin lưu trữ sở liệu, giúp truy xuất, lưu phục hồi dễ dàng, đồng bộ, nhanh chóng đáng tin cậy 1.4 Phạm vi Do thời gian thực đồ án có hạn, việc xây dựng website quản lý hệ thống rạp chiếu phim TinyCinema tập trung vào chức bao gồm: quản lý thơng tin phim, quản lý thông tin rạp chiếu & phòng chiếu, tin học hóa quy trình đặt vé online cho khách hàng, quản lý lịch chiếu, quản lý tin tức, quản lý thông tin giao dịch ghi nhận phản hồi người dùng 1.5 Công cụ sử dụng Trong trình thực đồ án, nhóm sử dụng số phần mềm phục vụ cho việc tìm hiểu xây dựng đề tài bao gồm: - Microsoft SQL Server 2012: Hệ quản trị CSDL quan hệ - IntelliJ IDEA 13.1.1: IDE để xây dựng website GVHD: ThS Nguyễn Đình Loan Phương Nguyễn Thành Hiệp Website hệ thống rạp chiếu phim - Adobe Photoshop CS6, Adobe Illustrator CS6: Phục vụ việc thiết kế giao diện thành phần xử lý 1.6 Bố cục báo cáo - Chương 1: Tổng quan đề tài Giới thiệu tống quan nội dung đề tài Nội dung chương bao gồm: lý lựa chọn đề tài, nội dung phạm vi nghiên cứu đề tài, bố cục báo cáo - Chương 2: Xác định phân tích u cầu Trong chương 2, nhóm trình bày sơ lược sơ đồ tổ chức rạp chiếu phim TinyCinema qui trình cơng tác quản lý rạp chiếu phim Từ đưa phương pháp tiếp cận giải vấn đề nhóm - Chương 3: Thiết kế hệ thống Trình bày chi tiết q trình phân tích thiết kế hệ thống dựa ngơn ngữ mơ hình hóa UML - Chương 4: Kết luận GVHD: ThS Nguyễn Đình Loan Phương Nguyễn Thành Hiệp Website hệ thống rạp chiếu phim Chương 2.1 XÁC ĐỊNH VÀ PHÂN TÍCH YÊU CẦU Khảo sát trạng 2.1.1 Phỏng vấn Kế hoạch vấn tổng quan Hệ thống: Rạp chiếu phim Tiny Cinema Người lập: Phạm Duy Hưng STT Chủ đề Yêu cầu Ngày bắt đầu Ngày kết thúc Quy trình quản Nắm rõ quy trình lưu trữ phim, 24/03/2014 lý phim Ngày lập: 20/03/2014 24/03/2014 phân suất chiếu định giá vé Quy trình hoạch Nắm rõ quy trình đề áp 24/03/2014 24/03/2014 định khuyến dụng kiện khuyến tin tức rạp phim Quy trình quản Nắm quy trình lưu trữ 24/03/2014 lý khách hàng 24/03/2014 khai thác thông tin khách hàng để làm tốt cơng tác chăm sóc khách hàng Quy trình thống Biết rõ quy trình thực 24/03/2014 kê 24/03/2014 báo cáo lượng vé thức ăn bán được, dựa vào liệu hệ thống Hệ thống máy Tìm hiểu kỹ tài nguyên máy 24/03/2014 móc, phần mềm 24/03/2014 móc, trang thiết bị, phần mềm, hệ điều hành sử dụng hệ thống Bảng 2.1 Mẫu kế hoạch vấn Bảng kế hoạch vấn GVHD: ThS Nguyễn Đình Loan Phương Nguyễn Thành Hiệp Website hệ thống rạp chiếu phim 169 - Quản lý Khuyến - Kênh Hỏi đáp - Kênh Phản hồi - Quản lý Ngôn ngữ - Quản lý Người dùng - Đặt vé xem phim (áp dụng kèm khuyến mãi) - Đánh giá phim Bên cạnh đó, phần mềm phát triển thêm chức đặc biệt sau: - Đa ngơn ngữ, chuyển đổi thành nhiều ngôn ngữ khác - Bảo mật thơng tin cách mã hóa mật người dùng Nhờ việc sử dụng mơ hình Spring MVC, việc quản lý mã nguồn chương trình phân chia cơng việc cho thành viên nhóm trở nên đơn giản Khi thành phần bị hỏng cần sửa thành phần cập nhật lại ứng dụng mà không cần cập nhật lại toàn Ngoài việc thiết kế giao diện đẩy mạnh việc đưa giao diện hệ thống (giao diện dành cho người dùng hệ thống giao diện dành cho người dùng ngồi hệ thống) Nhờ đó, việc sử dụng hệ thống (đối với khách hàng) việc quản lý hệ thống (đối với quản trị viên) trở nên tách biệt dễ dàng 4.3.2 Hạn chế Vì thời gian nghiên cứu thực đề tài giới hạn kết đề tài có số hạn chế Cụ thể sau: - Chức Sao lưu – Phục hồi thủ cơng hệ quản trị CSDL, mà chưa trở thành chức cụ thể phần quản lý - Chưa thực chức Báo cáo – thống kê - Chưa kết nối với mạng xã hội thông dụng (Facebook, Twitter, …) - Chưa khuyến nghị người dùng việc lựa chọn phim GVHD: ThS Nguyễn Đình Loan Phương Nguyễn Thành Hiệp Website hệ thống rạp chiếu phim 170 Chính vậy, đề tài dừng lại mức đồ án môn học chưa thể đạt số mục tiêu đề lúc đầu 4.4 Hướng phát triển Như trình bày phần trước, nhóm tác giả nhận định nhiều việc cần phải làm để hoàn thiện hệ thống quản lý rạp chiếu phim Chính nhóm đặt mục tiêu để phát triển đề tài tương lai sau: - Hoàn thiện chức Sao lưu – Phục hồi - Xây dựng hệ thống Báo cáo – Thống kê - Xây dựng kênh liên lạc người dùng với nhau, việc kết nối với mạng xã hội thông dụng - Khuyến nghị việc lựa chọn phim cho người dùng dựa xu hướng lịch sử giao dịch với rạp chiếu phim GVHD: ThS Nguyễn Đình Loan Phương Nguyễn Thành Hiệp Website hệ thống rạp chiếu phim 171 PHỤ LỤC HIBERNATE VÀ SPRING MVC FRAMEWORK TRONG LẬP TRÌNH ỨNG DỤNG WEB I Hibernate Framework Lịch sử hình thành Hibernate dự án đầy tham vọng với đích nhắm đưa giải pháp toàn diện cho vấn đề quản lý Persistent Data Java Nó gián tiếp giúp cho ứng dụng tương tác với sở liệu quan hệ Nó giúp cho Developer đơn giản hóa vấn đề nghiệp vụ phải xử lý thủ cơng Hibernate tích hợp với hầu hết ứng dụng không yêu cầu thay đổi phá vỡ thành phần lại hệ thống Một ứng dụng chia làm phần sau : phần giao diện người dùng (GUI layer), phần xử lý nghiệp vụ (business layer), phần chứa liệu (data layer) Cụ thể, business layer chia nhỏ thành layer business logic layer (chỉ quan tâm đến ý nghĩa nghiệp vụ, tính tốn nhằm thỏa mãn u cầu người dùng) persistence layer Persistence layer chịu trách nhiệm giao tiếp với data layer (thường hệ quản trị sở liệu quan hệ - RDBMS) Persistence đảm nhiệm nhiệm vụ mở kết nối, truy xuất lưu liệu vào RDBMS Việc phân chia có lợi ích cơng việc tách bạch Người lo thiết kế xử lý GUI việc tâm vào cơng việc Người lo business layer cần tập trung vào thiết kế phát triển thỏa mãn requirement khách hàng mà tâm đến khía cạnh thực bên Còn người lo persistence layer trọng đến khía cạnh thực giải technical issues mà thơi Cũng có DBA (DB Administrators) lo việc cài đặt tạo object RDBMS Như vậy, persistence layer layer có nhiệm vụ kết nối RDBMS truy xuất, thao tác liệu lưu trữ lưu trữ liệu vào chúng Hibernate framework cho persistence layer Có thể thấy nhờ có Hibernate framework GVHD: ThS Nguyễn Đình Loan Phương Nguyễn Thành Hiệp Website hệ thống rạp chiếu phim 172 mà phát triển ứng dụng, ta cần tâm vào layer khác mà bận tâm nhiều persistence layer Tương tự vậy, bạn có UI framework, bạn khơng phải bận tâm nhiều GUI layer Cơ sở liệu quan hệ thiết kế để quản lý liệu theo mơ hình quan hệ Tuy nhiên, làm việc với ứng dụng hướng đối tượng, bạn gặp số vấn đề cố gắng persist đối tượng vào mơ hình quan hệ Với khác biệt hai mơ hình, làm để chúng làm việc với Để giải vấn đề này, object / relational mapping (ORM) đời.ORM cầu nối hai mơ hình, cho phép ứng dụng bạn persist đối tượng trực tiếp vào sở liệu quan hệ mà không cần chuyển đổi qua lại object relational Có vài ORM framework yêu cầu đối tượng kế thừa từ lớp yêu cầu xử lý bytecode Trong đó, Hibernate yêu cầu số lượng nhỏ metedata cho đối tượng persistent Nó cung cấp đầy đủ ánh xạ đối tượng / quan hệ, nghĩa hỗ trợ tất đặc trưng hướng đối tượng mà sở liệu quan hệ thiếu Object/Relation Persistence Persistence khái niệm trình phát triển ứng dụng Một ứng dụng sử dụng Hibernate Framework thường không làm việc trực tiếp với thực thể sở liệu, chúng sử dụng mơ hình hướng đối tượng (Object/Relation Persistence) tương ứng với thực thể sở liệu để thao tác xử lý liệu Persistence layer: Tầng persistence nhóm lớp thành phần cho việc lưu trữ phục hồi liệu Chức tầng chứa mơ hình thực thể nghiệp vụ (thậm chí mơ hình metadata) Object/Relation Mapping (ORM) ORM tự động ánh xạ persistence object tới bảng sở liệu quan hệ, sử dụng metadata để mô tả việc ánh xạ đối tượng sở liệu Với ORM, ứng dụng tương tác với ORM API lớp ánh xạ từ sở liệu trừu tượng hóa SQL/JDBC GVHD: ThS Nguyễn Đình Loan Phương Nguyễn Thành Hiệp Website hệ thống rạp chiếu phim 173 So sánh JDBC Hibernate JDBC Hibernate Lập trình viên phải viết code để ánh xạ Hibernate tự xử lý việc cách sử đối tượng liệu với bảng mô dụng file XML mà không cần phải hình liệu quan hệ lược đồ sở viết code liệu tương ứng JDBC hỗ trợ ngơn ngữ SQL Lập trình Hibernate cung cấp ngơn ngữ truy vấn viên phải tìm cách hiệu để truy cập Hibernate Query Language (độc lập với vào CSDL, tức phải chọn câu truy vấn CSDL) thể tương tự với câu hiệu lệnh SQL Hibernate lựa chọn cách hiệu để thực thao tác liên quan đến CSDL cho ứng dụng Việc viết code để ánh xạ đối tượng Việc ánh xạ thực file liệu với bảng mơ hình liệu XML Khi có thay đổi, cần chỉnh gây khó khăn CSDL (hoặc phần sửa file XML CSDL) thay đổi Lập trình viên phải thay đổi cấu trúc đối tượng câu lệnh để thực ánh xạ lại Với JDBC, người lập trình phải xử lý Hibernate giảm thiểu dòng mã lệnh result set chuyển đổi thành cách trì việc ánh xạ object-table đối tượng Java để sử dụng trả kết ứng dụng liệu persistent ứng dụng Vì thơng qua lớp Java Nó giúp lập với JDBC, việc ánh xạ đối tượng trình viên giảm bớt gánh nặng xử lý thủ Java bảng database công liệu persistent, công việc thủ công làm giảm thời gian phát triển chi phí bảo trì GVHD: ThS Nguyễn Đình Loan Phương Nguyễn Thành Hiệp Website hệ thống rạp chiếu phim 174 Chính ưu điểm Hibernate so với JDBC, nhóm tác giả đồ án định chọn Hibernate để phát triển đề tài Kiến trúc Hibernate Kiến trúc Hibernate phân tầng để không cần phải quan tâm API phía Hibernate tạo CSDL liệu cấu hình để cung cấp cho dịch vụ quản lý lưu trữ trạng thái ứng dụng JAVA APPLICATION PERSISTENT OBJECT HIBERNATE CONFIGURATION SESSION FACTORY SESSION TRANSACTION QUERY CRITETRIA JTA JDBC JNDI DATABASE Tổng quan đối tượng Hibernate: - Configuration: sử dụng để quản lý thơng tin cấu hình kết nối đến CSDL ánh xạ thực thể vào CSDL - SessionFactory: đối tượng cho phép sản sinh nhiều phiên (session) làm việc khác - Session: sử dụng để tạo phiên làm việc với CSDL thông qua Hibernate - Transaction: sử dụng để điều khiển transaction - Query: Đối tượng sử dụng để thực truy vấn liệu GVHD: ThS Nguyễn Đình Loan Phương Nguyễn Thành Hiệp Website hệ thống rạp chiếu phim 175 - Criteria: Đối tượng sử dụng để xây dựng câu lệnh truy vấn lập trình thay cho truy vấn câu lệnh HQL (Hibernate Query Language) hay SQL Cấu hình Hibernate Persistence class Persistence class Java class có phương thức getter setter để truy cập thuộc tính Persistence class có đặc điểm sau: - Nó thay hướng đối tượng cho bảng sở liệu - Các thuộc tính bảng trở thành biến instance persistence class - Kiểu liệu biến instance kiểu liệu thuộc tính - Đối tượng persistence class thay cho hàng bảng sở liệu Mapping file Mapping file file XML chứa ánh xạ chi tiết persistence class bảng đại diện Các thành phần bắt buộc file XML : - Hibernate – mapping: Đây thành phần gốc bao gồm tất thành phần khác - Class: Được sử dụng để ánh xạ tên bảng thành persistence class Tên thuộc tính sử dụng để xác định tên lớp - Id: Thành phần sử dụng để ánh xạ khóa bảng thành biến instance class - Property: Thành phần thuộc cột thành phần bảng, ánh xạ thuộc tính khác (hoặc cột thành biến instance persistence class) Thuộc tính name property chứa tên biến giá trị Thuộc tính name thành phần column chứa tên cột biến instance ánh xạ Các thuộc tính length sql-type trỏ đến độ dài kiểu liệu cột Ví dụ cụ thể file mapping: GVHD: ThS Nguyễn Đình Loan Phương Nguyễn Thành Hiệp Website hệ thống rạp chiếu phim 176 Hibernate Configuration file Đây file cấu hình, khởi tạo tài nguyên hệ thống, bao gồm khởi tạo thông tin sở liệu, cấu hình transaction tạo ánh xạ tới file mapping Dưới ví dụ cụ thể file cấu hình này: com.microsoft.sqlserver.jdbc.SQLServerDriver jdbc:sqlserver://localhost:1433;databaseName=TinyCinema;integratedSecu rity=true 1 org.hibernate.dialect.SQLServerDialect org.hibernate.cache.EhCacheProvider true thread validate II Spring MVC Framework Lịch sử hình thành Spring application framework mã nguồn mở, giới thiệu vào năm 2002 Rod Johnson đưa ý tưởng từ kinh nghiệm làm việc với kiến trúc J2EE Ông viết sách với tiêu đề: “J2EE Development without EJB” để giới thiệu khái GVHD: ThS Nguyễn Đình Loan Phương Nguyễn Thành Hiệp Website hệ thống rạp chiếu phim 178 niệm trình chứa hạng nhẹ (lightweight container) với lý luận: EJB có giá trị khơng phải lúc cần thiết phù hợp cho tất ứng dụng Theo Rod Johnson EJB khơng phức tạp cố gắng cung cấp giải cho vấn đề phức tạp EJB phát triển cho giao dịch, đối tượng phân phát máy khác Nhưng số Enterprise Project khơng có mức độ phức tạp sử dụng EJB chí ứng dụng đơn giản lại trở nên phức tạp Trong trường hợp Spring lựa chọn Các framework phổ biến khác Struts, JSF, Tapestry …là framwork tốt cho tầng Web sử dụng framework này, phải cung cấp thêm framework khác để giải tầng enterprise mà tích hợp tốt với framework Spring làm giảm bớt vấn đề cách cung cấp framework toàn diện bao gồm : - Core bean container - MVC framework - AOP integration framework - JDBC integration framework - EJB integration framework - Các mặt mạnh kiến trúc Spring bao gồm : - Spring tổ chức tầng trung gian cách hiệu quả, mà không quan tâm liệu người dùng có sử dụng EJB hay khơng Spring thăm dò xem có nên để người dùng tự định người dùng dùng Struts framework khác với API J2EE Và thành phần coi quan trọng tầng trung gian, dịch vụ quản lý cấu hình Spring đưa vào tầng kiến trúc mơi trường thực thi - Spring giúp loại bỏ tình trạng lan tràn Singleton nhiều dự án Theo số nhà nghiên cứu, vấn đề lớn, làm suy giảm khả kiểm thử tính hướng đối tượng GVHD: ThS Nguyễn Đình Loan Phương Nguyễn Thành Hiệp Website hệ thống rạp chiếu phim 179 - Spring khiến cộng đồng dần quên nhu cầu sử dụng định dạng file thuộc tính thiết kế thơng qua việc quản lý cấu hình qn ứng dụng dự án Với IoC (Inversion of Control) DI (Dependency Injection), người dùng cần quan sát thuộc tính JavaBean lớp cho tham số khởi tạo mà không cầ phải đọc Javadoc hay mã nguồn - Spring giúp công việc lập trình trở nên hiệu cách giảm chi phí lập trình giao diện, mà khơng phải lớp - Spring thiết kế để ứng dụng phụ thuộc mức tối thiểu vào hàm API Phần lớn đối tượng giao dịch ứng dụng Spring khơng có phụ thuộc vào Spring - Các ứng dụng xây dựng Spring dễ kiểm thử đơn vị - Spring biến việc sử dụng EJB tùy chọn thay thành phần bắt buộc kiến trúc ứng dụng Người dùng chọn cài đặt chuẩn thương mại POJO EJB cục mà không ảnh hưởng tới mã gọi - Spring trợ giúp giải nhiều vấn đề mà không cần EJB Spring cung cấp công cụ thay EJB phù hợp với ứng dụng Ví dụ, Spring sử dụng AOP để phân phối quản lý khai báo mà không dùng container EJB, chí khơng cần JTA, cần làm việc với sở liệu - Spring cung cấp framework quán để truy cập sở liệu, dù người dùng sử dụng JDBC hay số sản phẩm ánh xạ O/R TopLink, Hibernate cài đặt JDO Spring sử dụng mơ hình lập trình đơn giản, quán nhiều lĩnh vực, biến công cụ trở thành “loại hồ gắn kết” kiến trúc lý tưởng Có thể thấy rõ điều so sánh với với JDBC, JMS, JavaMail, JNDI nhiều hàm API quan trọng khác Ưu điểm Spring Quản lý phiên GVHD: ThS Nguyễn Đình Loan Phương Nguyễn Thành Hiệp Website hệ thống rạp chiếu phim 180 Spring giúp kiểm soát hiệu quả, dễ dàng, an tồn đơn vị cơng việc phiên làm việc Hibernate hay TopLink Mã liên quan sử dụng riêng công cụ ORM thường cần phải sử dụng kèm đối tượng “Session” để kiểm sốt tính hiệu giao dịch thích hợp Spring tạo liên kết phiên tới luồng cách suốt, cách sử dụng hướng tiếp cận kiểu chắn AOP, sử dụng lớp bao “template” tường minh mức mã Java Do vậy, Spring giải nhiều vấn đề liên quan tới sử dụng ảnh hưởng tới nhiều người dùng công nghệ ORM Quản lý tài nguyên Các ngữ cảnh ứng dụng (application context) Spring kiểm sốt vị trí cấu hình Hibernate SessionFactories, nguồn liệu JDBC nguồn tài nguyên liên quan khác Do vậy, Spring Framework cho phép giá trị dễ dàng quản lý thay đổi Quản lý giao dịch tích hợp Spring cho phép bạn bao mã ORM chắn phương thức AOP, lớp bao “template” tường minh mức mã Java Trong trường hợp nào, ngữ nghĩa giao dịch kiểm soát giúp bạn, việc kiểm sốt giao dịch thích hợp trường hợp xảy ngoại lệ quan tâm Như đề cập sau đây, bạn nhận lợi ích khả sử dụng tráo đổi quản lý giao dịch khác nhau, mà không bị ảnh hưởng tới mã ORM liên quan Ngồi ra, lợi ích khác mà Spring đem lại mã JDBC liên quan hồn tồn tích hợp với mã ORM, hầu hết công cụ hỗ trợ ORM Điều hữu ích cho việc kiểm sốt tính khơng tn theo ORM Bao đóng ngoại lệ Như đề cập trên, Spring bao đóng ngoại lệ từ tầng ORM, chuyển đổi chúng từ ngoại lệ độc quyền hãng thành tập ngoại lệ trừu tượng thời gian chạy Điều cho phép bạn kiểm soát hầu hết ngoại lệ bền bỉ nhất, ngoại lệ khơng có khả khơi phục, tầng thích hợp, mà GVHD: ThS Nguyễn Đình Loan Phương Nguyễn Thành Hiệp Website hệ thống rạp chiếu phim 181 không làm ảnh hưởng tới cụm catch/throw khai báo ngoại lệ sử dụng thường xun Bạn bẫy kiểm sốt ngoại lệ nơi cần thiết Lưu ý ngoại lệ JDBC (bao gồm đặc trưng cụ thể DB) chuyển đổi tới hệ thống cấp bậc, nghĩa bạn thực số thao tác với JDBC bên mơ hình lập trình qn Tránh bó buộc nhà cung cấp Các giải pháp ORM có đặc tính hiệu khác, khơng có giải pháp thỏa mãn tất Thay vào đó, bạn nhận thấy tính cụ thể lại khơng phù hợp với cài đặt sử dụng công cụ ORM bạn Vì vậy, giải pháp khơn ngoan tách kiến trúc bạn khỏi cài đặt phụ thuộc công cụ Nếu bạn cần chuyển tới cài đặt khác lý liên quan tới chức năng, hiệu năng, hay mối quan tâm khác, việc sử dụng Spring khiến việc chuyển đổi dễ dàng nhiều Sự trừu tượng Spring Transactions Exceptions công cụ ORM, với hướng tiếp cận IoC cho phép bạn dễ dàng chuyển đổi đối tượng ánh xạ/DAO cài đặt chức truy cập liệu khiến dễ lập tất mã phụ thuộc vào ORM cụ thể lĩnh vực ứng dụng mà không làm ảnh hưởng tới sức mạnh công cụ ORM Ứng dụng mẫu PetClinic kèm với Spring demo lợi ích tính khả chuyển mà Spring đem lại thông qua việc cung cấp biến sử dụng JDBC, Hibernate, TopLink Apache OJB để cài đặt tầng tồn lâu dài (pesistence layer) Dễ dàng kiểm thử Sự chuyển đổi hướng tiếp cận điều khiển Spring khiến dễ dàng chuyển đổi cài đặt vị trí nguồn tài nguyên session factory Hibernate, nguồn liệu, trình quản lý giao diện, cài đặt đối tượng ánh xạ (nếu cần thiết) Việc giúp dễ dàng nhiều việc cô lập kiểm thử đoạn mã liên quan cách tách biệt GVHD: ThS Nguyễn Đình Loan Phương Nguyễn Thành Hiệp Website hệ thống rạp chiếu phim 182 TÀI LIỆU THAM KHẢO Tiếng Anh: [1] Hector Garcia-Molina, Jeffrey D Ullman, Jennifer Widom, 2001, Database Systems: The Complete Book Prentice Hall [2] Dave Minter, Jeff Linwood, 2004, Pro in Hibernate Apress [3] Marten Deinum, Koen Serneels, Colin Yates, Seth Ladd, Christophe Vanfleteren, 2012, Pro Spring MVC: With Web Flow Apress [4] Spring MVC Tutorial Mkyong Truy cập ngày 20/5/2014 http://www.mkyong.com/tutorials/spring-mvc-tutorials/ Tiếng Việt: [1] +Slide mơn học Phân tích thiết kế hướng đối tượng với UML ThS Nguyễn Đình Loan Phương GVHD: ThS Nguyễn Đình Loan Phương Nguyễn Thành Hiệp Website hệ thống rạp chiếu phim 183 GVHD: ThS Nguyễn Đình Loan Phương Nguyễn Thành Hiệp Website hệ thống rạp chiếu phim ... Phương Nguyễn Thành Hiệp Website hệ thống rạp chiếu phim 24 Đặt vé Người dùng Hệ thống CSDL Tìm kiếm rạp chiếu phim chọn Chọn phim Chọn rạp Hiển thị rạp Tìm kiếm ngày có chiếu phim chọn Chọn ngày... phần mềm, hệ điều hành sử dụng hệ thống Bảng 2.1 Mẫu kế hoạch vấn Bảng kế hoạch vấn GVHD: ThS Nguyễn Đình Loan Phương Nguyễn Thành Hiệp Website hệ thống rạp chiếu phim Hệ thống: Rạp chiếu phim Tiny... cần xây dựng nên hệ thống phục vụ công tác quản lý rạp chiếu phim trực thuộc hệ thống rạp TinyCinema, đồng thời tạo nên kênh thơng tin thức để quảng bá thương hiệu đến với người dùng Hệ thống xây