Ngày nay công nghệ thông tin phát triển rất mạnh mẽ. Việc ứng dụng công nghệ thông tin vào việc giao dịch qua mạng đang rất phổ biến. Khách hàng không cần đến tận nơi mà vẫn có thể mua được sản phẩm mình mong muốn. Đó là lý do mà Website thương mại điện tử ra đời nhằm đáp ứng nhu cầu giao dịch giữa khách hàng và người bán hàng.Hiện nay có rất nhiều ngôn ngữ để lập trình web như: HTML, Javascript,…rồi các ngôn ngữ PHP, ASP,….. Qua quá trình tìm hiểu và học tập ở trường chúng em đã biết và được học ngôn ngữ Java và chúng em đã ứng dụng để xây dựng trang web “Xây dựng Hệ thống bán vé máy bay trực tuyến” theo hướng cấu phần.Dù đã rất cố gắng nhưng do thời gian hạn chế cũng như kiến thức còn hạn hẹp nên bài tập lớn của chúng em có thể còn có thiếu sót. Mong thầy giáo và các bạn góp ý kiến để nhóm em chỉnh sửa và bổ sung.Qua đây chúng em cũng xin chân thành cảm ơn thầy Nguyễn Thái Cường đã tận tình giúp đỡ chúng em hoàn thành đề tài này.
Trường Đại Học Công Nghiệp Hà Nội Khoa Công Nghệ Thông Tin BÁO CÁO BÀI TẬP LỚN MÔN LẬP TRÌNH PHẦN MỀM HƯỚNG CẤU PHẦN Đề tài: Xây dựng Hệ thống bán vé máy bay trực tuyến Sinh viên thực hiện: Lê Duy Thanh Nguyễn Duy Hoàng Lớp: KTPM-CLC-K7 Giáo viên hướng dẫn: Th.S Nguyễn Thái Cường Hà Nội, 29 Tháng 11, Năm 2015 MỤC LỤC MỤC LỤC LỜI NÓI ĐẦU Tổng quan cấu phần phần mềm Cấu phần gì? Sử dụng cấu phần Lập trình hướng cấu phần Tổng quan toán Phát biểu toán Những khó khăn gặp phải thực công việc tay .7 Cần thiết xây dựng hệ thống .7 Tìm hiểu đề tài, phân tích thiết kế hệ thống Bán vé máy bay trực tuyến Tìm hiểu đề tài Mục đích đề tài Đối tượng ứng dụng phạm vi nghiên cứu đề tài Ý nghĩa thực tiễn Phân tích yêu cầu hệ thống Về chức Về giao diện Về liệu .10 Về bảo mật 10 Phân tích hệ thống 11 Xác định tác nhân 11 Biểu đồ mô tả Use case 11 Biểu đồ hoạt động .27 Biểu đồ 34 Phân tích thiết kế liệu 42 Thiết kế liệu vật lý 42 Mô hình thực thể liên kết 50 Thiết kế cài đặt chương trình 51 Thiết kế chương trình theo hướng cấu phần 51 Cấu phần theo file Casscading StyleSheet 52 Cấu phần theo file Javascript 52 Cấu phần theo class java .52 Cấu phần file JSP 54 Cấu phần theo template, layout thư viện, mã nguồn có sẵn .54 Giao diện chương trình 55 Phần User .55 Phần Admin 60 KẾT LUẬN 64 TÀI LIỆU THAM KHẢO .65 LỜI NÓI ĐẦU Ngày công nghệ thông tin phát triển mạnh mẽ Việc ứng dụng công nghệ thông tin vào việc giao dịch qua mạng phổ biến Khách hàng không cần đến tận nơi mà mua sản phẩm mong muốn Đó lý mà Website thương mại điện tử đời nhằm đáp ứng nhu cầu giao dịch khách hàng người bán hàng Hiện có nhiều ngôn ngữ để lập trình web như: HTML, Javascript,…rồi ngôn ngữ PHP, ASP,… Qua trình tìm hiểu học tập trường chúng em biết học ngôn ngữ Java chúng em ứng dụng để xây dựng trang web “Xây dựng Hệ thống bán vé máy bay trực tuyến” theo hướng cấu phần Dù cố gắng thời gian hạn chế kiến thức hạn hẹp nên tập lớn chúng em có thiếu sót Mong thầy giáo bạn góp ý kiến để nhóm em chỉnh sửa bổ sung Qua chúng em xin chân thành cảm ơn thầy Nguyễn Thái Cường tận tình giúp đỡ chúng em hoàn thành đề tài Chân thành cảm ơn thầy! Tổng quan cấu phần phần mềm Cấu phần gì? Một cấu phần phần mềm mảnh khép kín, tự triển khai mã với chức xác định rõ lắp ráp với cấu phần khác thông qua giao diện Một cấu phần cung cấp chức mạch lạc Nó lắp ráp với thành phần khác để tái sử dụng đơn vị ngữ cảnh khác Sự tích hợp thực thông qua giao diện cấu phần, có nghĩa việc thực bên cấu phần thường ẩn đối với người sử dụng Sử dụng cấu phần Mục đích cấu phần sử dụng lại phần mềm Hai hình thức sử dụng lại sử dụng lại hộp trắng sử dụng lại hộp đen Sử dụng lại hộp trắng nghĩa mã nguồn cấu phần phần có sẵn đầy đủ nghiên cứu, sử dụng lại, lắp ghép chỉnh sửa Sử dụng lại hộp trắng thể vai trò tảng hướng đối tượng, đáp ứng sức mạnh kế thừa cho cài đặt phần mềm sử dụng lại Nhược điểm sử dụng lại hộp trắng khách hàng sử dụng cấu phần thay đổi mã nguồn cấu phần có thay đổi bên chương trình Sử dụng lại hộp đen dựa nguyên tắc che giấu thông tin Người dùng cấu phần dựa vào giao diện Các giao diện mô tả đặc tả hành vi cấu phần Thông qua giao diện, lời gọi cấu phần thay đổi tiếp tục thỏa mãn yêu cầu định nghĩa Giao diện thể cách tường minh qua công cụ chẳng hạn biên dịch, kiểm chứng khả tương thích với cấu phần client Lập trình hướng cấu phần - Lập trình hướng cấu phần (Component-Oriented Programming) phương pháp lập trình cho phép chương trình xây dựng từ thành phần phần mềm xây dựng sẵn Tổng quan toán Phát biểu toán Hoạt động quản lý bán vé đại lý bán vé máy bay Khi có yêu cầu đề xuất mua vé máy bay từ khách hàng, phận kinh doanh giới thiệu loại vé, chuyến bay có Và sau yêu cầu khách hàng điền thông tin vào phiếu thông tin gồm: Tên, tuổi, năm sinh, số chứng minh thư/ số hộ chiếu, số điện thoại, loại vé, số lượng vé chuyến bay Nhân viên phòng kinh doanh có nhiệm vụ nhập lại thông tin lên hệ thống thông qua phiếu thông tin vừa điền khách hàng khách hàng Phòng Kinh doanh có nhiệm vụ tiếp nhận xử lý, kiểm tra thông tin hồ sơ sai sót Khách hàng nhận vé từ nhân viên toán chi phí cho vé Khách hàng trả lại vé thay đổi lại lịch trình bay đăng ký vòng 24h Nếu thay đổi hồ sơ xét duyệt Vé chuyển xuống cho khách hàng Sau 24h khách hàng trả lại sửa đổi lịch trình bay Hàng tháng phận kế toán thống kê lượng vé bán, lượng khách hàng tháng lên cho phận kế hoạch Từ phận kế hoạch phân tích chiến lược mới, đưa biện pháp để tăng doanh thu, phát triển công ty Bộ phận kế toán thống kê doanh thu, chi phí, lương nhân viên lên ban quản trị Bộ phận nơi trả lương cho nhân viên Những khó khăn gặp phải thực công việc tay Việc cập nhật lưu trữ thông tin khách hàng mua vé nhiều thời gian công sức Khi cần tìm kiếm thông tin vị khách phát sửa chữa thông tin cần thiết khó khăn, dễ mắc sai sót tốn nhiều thời gian Các công việc lập vé bán thống kê số lượng vé… Đều thực tay nên gặp khó khăn việc tổng hợp thông tin dễ sai sót Cần thiết xây dựng hệ thống Tin học hóa việc Quản lý hệ thống bán vé máy bay trực tuyến giúp cửa hàng khắc phục nhược điểm trên, giúp cho việc quản lý người quản trị việc đặt vé tiến hành đơn giản nhanh chóng, thuận tiện nâng cao hiệu công việc Tìm hiểu đề tài, phân tích thiết kế hệ thống Bán vé máy bay trực tuyến Tìm hiểu đề tài Mục đích đề tài Hệ thống cho phép khách hàng đặt vé toán trực tuyến Đồng thời xây dựng ứng dụng quản lý việc lưu trữ hồ sơ thông tin khách hàng thông tin vé máy bay vào sở liệu, quản lý việc thu chi, in hóa đơn, in báo cáo thu phí Đối tượng ứng dụng phạm vi nghiên cứu đề tài Đối tượng ứng dụng - Cá nhân, tổ chức muốn quản lý hệ thống bán vé máy bay cách trực tuyến tin học hóa - Mọi người muốn đặt vé máy bay qua mạng trực tuyến Phạm vi nghiên cứu - Sản phẩm đề tài xây dựng ngôn ngữ Java, hệ quản trị SQL Server sử dụng HTML, CSS, Javascript, JSP, Servlet,…và framework Hibernate Ý nghĩa thực tiễn Hệ thống xây dựng nhằm mục đích: - Giúp nhân viên đại lý quản lý vé, đơn hàng, nhân viên,… yêu cầu khác cách dễ dàng - Giúp khách hàng tìm kiếm vé mà không cần tận nơi đến đại lý, khách hàng đặt mua trực tuyến giao hàng tận nơi cách nhanh chóng Từ giảm chi phí thuê nhân viên, chi phí lại…cũng tiết kiệm thời gian nhà quản lý khách hàng Phân tích yêu cầu hệ thống Về chức - Khách hàng có thể: + Tìm kiếm xem thông tin vé theo điều kiện + Đặt vé tìm kiếm + Tra cứu thông tin vé đặt - Người quản trị có thể: + Quản trị vé đặt + Quản trị người dùng + Quản trị hãng máy bay + Quản trị vé máy bay + Quản trị báo cáo thống kê + Quản trị máy bay - Hệ thống: + Tự động gửi mail thông báo cho khách hàng khách hàng đặt vé + Có cảnh báo, phản hồi thông minh cho người dùng Về giao diện - Giao diện sử dụng màu sắc êm dịu, hài hòa, không sặc sỡ khiến người dùng khó chịu - Giao diện thống tất trang - Giao diện trình bày đơn giản, dễ dàng quản lý khiến người dùng cảm thấy dễ sử dụng từ lần sử dụng - Giao diện dễ thấy trực quan, để khách hàng biết làm việc gì, đâu Về liệu - Dữ liệu xây dựng hệ quản trị SQL Server Hệ thống trường CSDL thiết kế khoa học, hợp lý, thông tin không bị trùng lặp hay có liệu rác CSDL backup để đề phòng trường hợp hệ thống bị lỗi, để dễ dàng restore Về bảo mật Hệ thống phân quyền cho người dùng, từ quản lý tác vụ mà tài khoản sử dụng Hệ thống sử dụng chuỗi bắt lỗi nhập vào, tránh tình trạng sai sót liệu, hư hỏng hệ thống 10 Thiết kế cài đặt chương trình Thiết kế chương trình theo hướng cấu phần - Ứng dụng xây dựng theo mô hình MVC, trang jsp đóng vai trò View, Servlet đóng vai trò Controller class xử lý liệu đóng vai trò Model Hình dưới minh họa thức làm việc mô hình này: - Trong ứng dụng này, chúng em chia làm package, tương ứng: + airline.managerment.controller: Chứa Servlet giúp điều hướng xử lý + airline.managerment.dao: Chứa lớp xử lý, truy xuất database + airline.managerment.model: Chứa lớp thực thể, ánh xạ với sở liệu, lớp DAO làm việc + airline.managerment.utility: Chứa lớp tiện ích, kết nối hệ thống 51 - Ngoài để làm việc với CSDL, chúng em sử dụng framework Hibernate để ánh xạ lớp thực thể với bảng sở liệu Từ làm việc với CSDL thông qua đối tượng ánh xạ - Đặc biệt, ứng dụng chúng em ứng dụng cấu phần để thiết kế cài đặt chương trình Danh sách cấu phần sử dụng liệu kê dưới Cấu phần theo file Casscading StyleSheet - Mô tả: Các file CSS tạo nhằm bố trí giao diện số xử lý mặt giao diện cho hệ thống - Cách thức thực hiện: Tạo file Casscading StyleSheet định nghĩa theo class id theo bố cục định, cần vào trang html, jsp, để import vào sử dụng chúng theo id class định nghĩa file CSS - Cú pháp sử dụng: Cấu phần theo file Javascript - Mô tả: Các file Javascript tạo nhằm xử lý kịch hệ thống - Cách thức thực hiện: Tạo file Javascript để xử lý hay nhiều chức đấy, muốn sử dụng chúng cần import vào gọi đến phương thức - Cú pháp sử dụng: Cấu phần theo class java - Mô tả: Các hàm java thực chức điều khiển, xử lý hệ thống - Cách thức thực hiện: Tạo file, project chứa hàm dùng chung Add, Update, Delete hay hàm Utility Sau xuất file jar, sử dụng cần add file jar vào (nó thư viện java, thư viện 52 định nghĩa), sau import tên package gọi class, hàm bình thường - Cú pháp sử dụng: + import tên_package.tên_class + Tạo thể lớp gọi đến phương thức 53 Cấu phần file JSP - Mô tả: Các file JSP tạo nhằm tạo giao diện viết lên hàm gọi xử lý hiển thị đó, thành phần dùng chung dùng dùng lại nhiều lần hệ thống phần header, footer, subcontent dựa vào làm component - Cách thức thực hiện: Cũng component khác, tìm thành phần file JSP tách làm component, viết thành file jsp riêng, lúc sử dụng cần import theo cú pháp dưới - Cú pháp sử dụng: Cấu phần theo template, layout thư viện, mã nguồn có sẵn - Chúng ta sử dụng thành phần template, layout thư viện, mã nguồn có sẵn để tái sử dụng lại project 54 Giao diện chương trình Phần User - Trang chủ - Màn hình chọn chuyến bay 55 - Màn hình Thông tin liên hệ - Màn hình toán 56 57 - Màn hình xác nhận - Màn hình Kiểm tra đơn hàng 58 - Màn hình Xem chi tiết đơn hàng 59 Phần Admin - Màn hình Trang chủ - Màn hình Quản lý báo cáo thống kê 60 - Màn hình Quản trị máy bay 61 - Màn hình Quản trị hãng máy bay - Màn hình quản lý vé đặt 62 - Màn hình Quản trị người dùng 63 KẾT LUẬN Qua tập lớn lần chúng em biết lập trình phần mềm theo hướng cấu phần Từ chúng em hiểu việc xây dựng mã nguồn theo hướng tái sử dụng điều cần thiết Trong trình học tập làm việc chúng em nhiều thiếu sót mong thầy bạn góp ý kiến để ứng dụng chúng em hoàn thiện Chúng em xin chân thành cảm ơn thầy Nguyễn Thái Cường hướng dẫn chúng em hoàn thành tập lớn Xin chân thành cảm ơn! 64 TÀI LIỆU THAM KHẢO Trong trình làm tập lớn, chúng em tham khảo nhiều tài liệu video mạng Chúng em xin liệt kê số trang mà chúng em tham khảo: http://stackoverflow.com/ http://howtodoinjava.com/ http://www.tutorialspoint.com/ http://courses.coreservlets.com/Course-Materials/ 65 [...]... các vé tương ứng 4 Người dùng chọn vé 5 Hệ thống hiển thị thông tin chi tiết về v : số chỗ hiện có/ đã đặt/ còn trống của từng hạng ghế 6 Người dùng chọn xem vé đã đặt Flow of Events 7 Hệ thống hiển thị các vé các vé đã đặt 8 Người dùng chọn hủy vé 9 Hệ thống hủy vé được chọn Alternative Flows • Không tìm thấy v : Nếu không tìm thấy chuyến bay nào, hệ thống sẽ thông báo lỗi và đề nghị nhập lại Special... chọn trên: Thêm mới Flow of Events 1 Hệ thống hiển thị trang thêm mới và yêu cầu nhập thông tin máy bay gồm: tên máy bay, hãng sản xuất, sức chứa, số hiệu,… 2 Người dùng nhập thông tin, sau đó nhấn Thêm mới 3 Hệ thống kiểm tra và thêm mới máy bay vào hệ thống Cập nhật 1 Hệ thống yêu cầu một số thông tin liên quan đến máy bay cần cập nhật 2 Người dùng nhập thông tin, sau đó nhấn Tiếp tục 3 Hệ thống. .. tục 3 Hệ thống kiểm tra và trả về các máy bay tương ứng với thông tin nhập vào 7 Người dùng chọn máy bay và nhấn nút Xóa 8 Hệ thống hiển thị một thông báo xác thực việc xóa 9 Người dùng chọn Đồng ý 10 Hệ thống xóa vé khỏi hệ thống Alternative Flows • Không tìm thấy máy bay: Trong trường hợp Cập nhật và Xóa, nếu không tìm thấy máy bay nào, hệ thống sẽ thông báo lỗi và đề nghị nhập lại Special Requirements... về vé bán theo từng hãng khác nhau Basic Flow 1 Hệ thống yêu cầu lựa chọn tác vụ mà người quản trị sẽ thực hiện (chọn hãng, chọn ngày bắt đầu thống kê, ngày kết thúc thống kê) Flow of Events 2 Người dùng chọn từ 3 : - Hãng máy bay: chọn hãng cần thống kê - Từ ngày : chọn ngày bắt đầu thống kê - Đến ngày : chọn ngày kết thúc thống kê - Chọn Xem thống kê, hệ thống hiển thị ra màn hình các danh mục thống. .. trị đã đăng nhập vào hệ thống Hệ thống đang hiển thị trang Quản trị hãng Post-Conditions Hệ thống thêm mới, cập nhật, xóa hãng tương ứng với hành động của người dùng Extension Points N/A 23 UC Quản trị máy bay Brief Description Ca sử dụng này cho phép người quản trị quản lý các máy bay của từng hãng trong hệ thống, gồm: Thêm, Cập nhật, và Xóa thông tin máy bay Basic Flow 1 Hệ thống yêu cầu lựa chọn... hệ thống Hệ thống đang hiển thị trang Quản trị vé Post-Conditions Hệ thống thêm mới, cập nhật, xóa vé tương ứng với hành động của người dùng Extension Points N/A 20 UC Quản trị đặt vé Brief Description Ca sử dụng này cho phép người dùng xem thông tin đặt vé của các chuyến bay Basic Flow 1 Hệ thống yêu cầu nhập thông tin vé 2 Người dùng nhập thông tin và nhấn nút Tiếp tục 3 Hệ thống trả về các vé. .. Ket Qua Biểu đồ tuần tự UC Tìm chuyến bay 34 : Home.jsp : OrderTicketServlet : TicketDAO : Khach hang Nhap thong tin tim kiem yeu cau tim kiem tim kiem ve return() return() Tra ket qua tim kiem UC Đặt vé 35 : Khach hang : ChonChuyenBay.jsp : ThongTinLienHe.jsp : ThanhToan.jsp : XacNhan.jsp : OrderTicketServlet : OrderTicketDAO : TicketDAO : PersonDAO chon chuyen bay yeu cau xu ly lay thong tin ve dat... trả về các máy bay tương ứng với thông tin nhập vào 4 Người dùng chọn một máy bay để cập nhật thông tin 5 Hệ thống hiển thị thông tin chi tiết về máy bay 6 Người dùng nhập lại các thông tin thay đổi, sau đó nhấn Cập nhật 7 Hệ thống kiểm tra và lưu lại thông tin 24 Xóa 1 Hệ thống yêu cầu một số thông tin liên quan đến máy bay cần cập nhật 2 Người dùng nhập thông tin, sau đó nhấn Tiếp tục 3 Hệ thống kiểm... Pre-Conditions Quản trị đã đăng nhập vào hệ thống Hệ thống đang hiển thị trang Quản trị Đặt vé Post-Conditions Hệ thống tìm và hiển thị thông tin đặt vé của vé được yêu cầu Extension Points N/A 21 UC Quản trị hãng máy bay Brief Description Flow of Events Ca sử dụng này cho phép người quản trị quản lý các hãng trong hệ thống, gồm: Thêm, Cập nhật, và Xóa thông tin hãng 1 Hệ thống yêu cầu lựa chọn tác vụ mà người... • Hủy việc xóa: Nếu trường hợp Xóa, người dùng chọn Hủy bỏ khi thông báo xác thực xuất hiện thì việc xóa bị dừng lại N/A Quản trị đã đăng nhập vào hệ thống Hệ thống đang hiển thị trang Quản trị máy bay 25 Hệ thống thêm mới, cập nhật, xóa máy bay tương ứng với hành động của người dùng Post-Conditions UC Quản trị báo cáo thống kê Brief Description Ca sử dụng này cho phép người quản trị thống kê các