LỜI NÓI ĐẦU 2 Tóm tắt bài tập lớn 3 Danh sách hình vẽ 5 Danh sách bảng biểu 6 Danh sách từ viết tắt 7 PHẦN 1: MỞ ĐẦU 8 1. Tên đề tài 8 Mục tiêu: 8 2. Bố cục đề tài 8 PHẦN 2: NỘI DUNG 9 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 9 1.1. Kiến thức tổng quan về cấu phần 9 1.2. Các công nghệ thiết kế website cơ bản 12 1.3. Các công nghệ java web 13 1.3.1. Servlet 13 1.3.2. Giới thiệu JSP 19 CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ 22 2.1. Mô tả bài toán và cách giải quyết vấn đề 22 2.1.1. Tổ chức hoạt động 22 2.1.2. Quy trình nghiệp vụ 22 2.1.3. Giải quyết vấn đề 23 2.2. Giới thiệu UML 23 2.2.1. Khái niệm 23 2.2.2. Những ưu điểm khi sử dụng UML 24 2.3. Phân tích thiết kế 24 2.3.1. Biểu đồ User Case 24 2.3.2. Mô tả Ca sử dụng 24 CHƯƠNG 3: THIẾT KẾ CƠ SỞ DỮ LIỆU 43 3.1. Giới thiệu về MySQL 43 3.2. Cơ sở dữ liệu 43 CHƯƠNG 4: CÀI ĐẶT 46 4.1. Môi trường cài đặt 46 4.2. Thiết kế 47 PHẦN III: TỔNG KẾT 50 Tài liệu tham khảo 51
ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN Môn: phát triển phần mềm theo cấu phần Đề tài: Xây dựng website cho trung tâm hội nghị - nhà hàng tiệc cưới Giáo viên hướng dẫn: Th.s Nguyễn Thái Cường. Sinh viên thực hiện (Nhóm 6): • Trương Đức Anh. • Ngô Văn Hảo. • Dương Văn Quý Hà Nội, 2014. 1 LỜI NÓI ĐẦU Trong cuộc cách mạng khoa học và công nghệ đang diễn ra một cách sôi động chưa từng thấy như hiện nay trên toàn thế giới thúc đẩy loài người bước sang một kỉ nguyên mới. Đó là kỷ nguyên của công nghệ thông tin, việc ứng dụng tin học vào đời sống nói chung và công tác quản lý nói riêng đang phát triển mạnh mẽ, nó góp vai trò không nhỏ vào việc phát triển phát trển của lĩnh vực công nghệ thông tin và ngày nay, sự phát triển đó đang được ứng dụng nhiều và không thể thiếu được trong mọi ngành nghề văn phòng, quảng cáo, tài chính, công tác quản lý… Sự phát triển của Internet trên mọi lĩnh vực giúp mọi người có thể lấy các tin tức cần thiết, chia sẻ các thông tin trên mạng máy tính và liên lạc với người ở xa. Website là một trong những lĩnh vực đa phương tiện hữu ích giúp con người sử dụng làm những công việc trên, thông qua web mọi người có thể tìm được mọi thứ mình cần một cách nhanh chóng mà không tốn nhiều công sức vì phát triển thương mại điện tử từ mọi cơ quan, văn phòng cũng như siêu thị đều có website của riêng minh. Bạn nghĩ sao khi chỉ cần ngồi nhà mà có thể đặt hang, đặt phòng cũng như lấy thông tin cần thiết. Có được những thứ đó là nhờ sự kết hợp của các website cùng với những cơ sở dữ liệu trên khắp thế giới. Website trở thành một cuộc cách mạng vì nó làm cho Internet trở nên thân thiện với người dung. Chính vì những vấn đề trên đã thúc đấy chúng em tìm hiểu về lĩnh vưc thiết kế website. Qua quá trình khảo sát thực tế, em thấy các trung tâm Hội nghị - tiệc cưới chưa thực sự có một website đáp ứng nhu cầu của khách hàng. Chính vì vậy, nhóm quyết định chọn đề tài “Xây dựng website cho trung tâm hội nghị - nhà hàng tiệc cưới”. Trong quá trình thực hiện Đề tài: Xây dựng website cho trung tâm hội nghị - nhà hàng tiệc cưới, nhóm em đã nhận được nhiều sự giúp đỡ của thầy cô và các bạn, những đóng góp hết sức ý nghĩa đó đã góp phần giúp chúng em hoàn thành được dự án. Chúng em xin gửi lời cảm ơn tới những thầy cô cùng các bạn đã giúp nhóm em, Đặc biệt em xin gửi lời cảm ơn sâu sắc tới thầy Nguyễn Thái Cường – người đã tận tâm chỉ bảo, hướng dẫn trong suốt quá trình thực hiện đề tài. Rất mong rằng thầy và các bạn vẫn tiếp tục đồng hành cùng nhóm chúng em và những lời góp ý và nhận xét nhiều hơn nữa để nhóm có thể hoàn thiện đề tài của mình ngày một tốt hơn. Em xin chân thành cảm ơn! Nhóm thực hiện 2 Tóm tắt bài tập lớn Hiện nay có rất nhiều các nhà hàng tiệc cưới, các trung tâm hội nghị với nhiều dịch vụ đi kèm, việc quảng bá hình ảnh cho nhà hàng chủ yếu thông qua internet, các nhà hàng hầu hết đều có được những website riêng nhưng việc đặt tiệc online các website đó chưa làm được, chính vì vậy chúng em xây dựng một website có đầy đủ các chức năng cần thiết, đặt biệt website được phát triển theo hướng cấu phần gồm các module rời có thể thay thế bằng những module khác, giúp website dễ dàng bảo trì, dễ thay đổi cho phù hợp với hoàn cảnh xã hội. Những chức năng chính của website: • Thêm, sửa, xóa Thực đơn. • Đặt tiệc. • Giới thiệu dịch vụ. • Cập nhật dịch vụ. • Lập hóa đơn • Thống kê doanh thu • Báo biểu: Tổng doanh thu; số khách đến, thức ăn, thức uống bán nhiều nhất theo từng tiêu chí 3 Mục Lục 4 Danh sách bảng và hình vẽ 5 Danh sách từ viết tắt COP component object programing lập trình hướng cấu phần 6 PHẦN 1: MỞ ĐẦU 1. Tên đề tài Xây dựng website cho trung tâm hội nghị - nhà hàng tiệc cưới. Mục đích đề tài Xây dựng được website đẹp, đầy đủ các chức năng nhằm giúp nhà hàng quản lý được các đơn đặt hàng, giới thiệu các dịch vụ, thực đơn. Website đáp ứng nhu cầu tìm hiểu các dịch vụ của khách hàng, cho phép khách hàng đặt tiệc online. Mục tiêu: Sản phẩm phải đạt các yêu cầu sau: • Yêu cầu về phía người sử dụng. • Giao diện đẹp, thân thiện phù hợp với yêu cầu của khách hàng. • Dễ sử dụng đối với người dung, thuận tiện trong quản trị, dễ bảo trì • Thông tin hiện thị chi tiết. • Chạy ổn định. • Hoàn thành sản phẩm đúng thời gian quy định. Yêu cầu về chức năng: • Quảng bá hình ảnh của nhà hàng tới người đọc. • Cho phép người truy cập có thể đặt tiệc thông qua hệ thống. • Dễ dang tùy chỉnh, thay đổi các modul, có khả năng tích hợp nhiều thành phần. • Có tính hiệu quả cao. • Có tính bảo mật cao. Yêu cầu module • Module quản lý khách hang. • Module quản lý thông tin nhà hàng. • Module quản lý người truy cập. • Module quản lý thông tin hợp đồng đặt tiệc. • Module liên hệ. • Module thông báo. • Module quản trị hệ thống. 2. Bố cục đề tài • Chương 1: Cơ sở lý thuyết • Chương 2: Phân tích thiết kế hệ thống. • Chương 3: Thiết kế cơ sở dữ liệu. • Chương 4: Cài đặt, 7 PHẦN 2: NỘI DUNG CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1. Kiến thức tổng quan về cấu phần Lập trình hướng cấu phần (component object programing - COP) là kiểu lập trình có xu hướng chia hệ thống phần mềm thành những thành phần giữ các chức năng khác nhau (mỗi thành phần này được gọi là một bộ phận hợp thành) mà khi kết hợp lại ta thu được một hệ thống phần mềm hoàn chỉnh. Với lập trình hướng cấu phần, chương trình được xây dựng bằng cách lắp ráp các thành phần phần mềm có thể sử dụng lại, các khối tự chứa mã máy (hay còn gọi là các khối .thành phần thực hiện). Các thành phần này gồm các thành phần giao diện, các kết nối. COP nẩy sinh xuất phát từ thực tế rằng mọi thứ có cấu trúc đều được tạo nên từ các thành phần khác. Điển hình như trong nền công nghiệp tự động, các hệ thống được cấu tạo từ các thành phần. Ví dụ, để phát triển một chiếc ô tô là rất phức tạp. Ô tô = {Các thành phần được ghép nối}; Các thành phần cấu tạo nên ô tô là thuộc nhiều loại khác nhau, kích cỡ khác nhau, chức năng khác nhau, được sản xuất bởi các nhà sản xuất khác nhau. Các thành phần này giới hạn từ các ốc vít rất nhỏ đến các hệ thống con phức tạp hơn như các động cơ, các bộ truyền phát nhanh Trong công nghiệp phần mềm. Sản phẩm vẫn làm bằng tay là chủ yếu. Điều đó dẫn đến tính năng của sản phẩm thấp, chất lượng không đảm bảo, khó tái sử dụng Trong công nghệ phần cứng. Mọi sản phẩm cũng được tạo ra dựa trên phương pháp hướng cấu phần. Thực tế cho thấy nền công nghiệp này phát triển rất nhanh, thu được nhiều lợi nhuận. Đây chính là lý do tại sao COP lại quan trọng. COP sử dụng nhiều khái niệm của OOP (lập trình hướng đối tượng) nhưng hai phương pháp này là độc lập nhau. COP phát triển phần mềm bằng cách lắp ráp các thành phần trong khi OOP nhấn mạnh đến các lớp và các đối tượng. COP nhấn mạnh giao diện và kết cấu, trong khi OOP nhấn mạnh về cài đặt viết mã. COP không cần biết bất cứ kiến thức nào về cách thức một thành phần cài đặt giao diện của chúng, nó xem thành phần như một hộp đen (không bị ảnh hưởng bởi sự thay đổi trong cài đặt của giao diện thành phần), chỉ quan tâm đến đầu vào, đầu ra, chức năng nhiệm vụ của hộp đen đó. Ví dụ: Ốc vít dùng để làm gì, làm thế nào để sử 8 dụng nó mà không cần biết nó được làm như thế nào, sử dụng công cụ gì. COP lắp ráp các thành phần thông qua giao diện của các thành phần này. Sự khác nhau giữa 2 phương pháp lập trình OOP và COP được chỉ ra trong bảng sau: COP OOP COP phát triển phần mềm bằng cách lắp ráp các thành phần OOP nhấn mạnh cài đặt các lớp và các đối tượng COP nhấn mạnh giao diện và kết cấu OOP nhấn mạnh về đối tượng/lớp OOP hỗ trợ bao bọc, thừa kế, đa xạ nhưng chưa bao giờ đạt mục đích của nó vì kế thừa xâm phạm bao bọc, hơn nữa các đối tượng và các lớp không tự vận hành. COP là kỹ thuật đóng gói và phân tán OOP là kỹ thuật cài đặt COP hỗ trợ sử dụng lại mức cao OOP hỗ trợ sử dụng lại mức thấp COP về nguyên tắc có thể viết bởi bất kỳ ngôn ngữ lập trình nào OOP bị giới hạn bởi ngôn ngữ OO COP gồm các thành phần gắn kết lỏng lẻo OOP gồm các đối tượng phụ thuộc chặt chẽ hơn vào các đối tượng khác qua giao diện kế thừa (Cha thay đổi, con thay đổi theo) COP có các thành phần hạt nhân từ lớn đến nhỏ OOP gồm các đối tượng là các đơn vị của kiến trúc COP hỗ trợ đa giao diện và thiết kế hướng giao diện OOP không cung cấp mỗi quan hệ rõ ràng về giao diện giữa các lớp con và lớp cha 1. Hình 1:Sự khác nhau giữa cop và oop Các ngôn ngữ có thể được sử dụng trong lập trình hướng cấu phần: Visual Basic, Delphi, C#, Java… Tóm lại: Kỹ nghệ phần mềm dựa trên cấu phần – CBSE (Component Based Software Engineering) gồm các hoạt động: o COA (Component Oriented Analysis): Phân tích hướng cấu phần 9 o COD (Component Oriented Design): Thiết kế hướng cấu phần o COP (Component Oriented Programming): Lập trình hướng cấu phần o COM (Component Oriented Management): Quản lý hướng cấu phần Từ cách nhìn của tiến trình kỹ nghệ, các thành phần có thể được phân làm 5 dạng khác nhau: Thành phần đặc tả: Biểu diễn các đặc tả của một đơn vị phần mềm, mô tả một tập hành vi của các đối tượng thành phần. Thành phần giao diện: Định nghĩa một tập hành vi có thể được yêu cầu bởi một đối tượng thành phần. Thành phần cài đặt: Có thể vận hành độc lập (điều này không có nghĩa nó độc lập với các thành phần khác. Nó có thể có nhiều phụ thuộc với thành phần khác). Thành phần đã cài đặt: Thành phần mã thực thi Thành phần đối tượng: Lớp, gói, CBSE hiện tại là một mô hình cho việc phát triển các hệ thống phần mềm lớn như: Các ứng dụng phân tán cho doanh nghiệp Các ứng dụng Web – N Tier Các dịch vụ Web (Web Services) Có thể dùng các công nghệ của Java như: EJB: Enterprise Java Bean, COM: Component Object Model, DCOM: Distributed Component Object Model , CORBA: 10 [...]... châm “Luôn đem đến cho khách hàng niềm vui trọn vẹn”, Trung tâm Hội nghị Tiệc cưới Hương Sen sẽ dành sự quan tâm đặc biệt đến từng chi tiết để cùng quý vị làm nên ngày vui thành công mỹ mãn Gồm 2 sảnh tiệc sang trọng, đây là địa điểm thích hợp cho bữa tiệc của bạn, dù đậm tính truyền thống hay quý phái theo phong cách phương Tây.Ngoài phục vụ tiệc cưới, Hương Sen còn có Hội trường hội nghị phục vụ các... dịch vụ, Nhà hàng Hương Sen tự tin thu hút du khách và kỳ vọng sớm trở thành một trong những nơi tổ chức họi nghị, tiệc cưới hấp dần nhất ở Hà Nội 2.1.2 Quy trình nghiệp vụ Nhà Hàng chưa sử dụng phần mềm hay Website để quản lý các nghiệp vụ Nhân viên của từng bộ phận hoạt động và hổ trợ cho nhau Khi có khách hàng muốn đặt tiệc có thể trực tiếp đặt tại website cùa nhà hàng Khi đặt tiệc, khách hàng phải... nghị phục vụ các sự kiện lớn của doanh nghiệp như: hội thảo, hội nghị, tiệc cuối năm… Khu vực dành cho nhà hàng cũng là một địa chỉ ẩm thực tin cậy của nhiều khách hàng, với hệ thống phòng ăn gia đình riêng biệt đem lại không gian ấm cúng cho bữa ăn gia đình trong những dịp lễ kỷ niệm, sinh nhật Hương Sen phấn đấu trở thành Trung tâm Hội nghị - tiệc cưới hiện đại bậc nhất Hà thành Với tất cả cảnh sắc... điều chỉnh lại các thuộc tính cần thiết cho việc kết nối CSDL loại khác mà thôi 21 CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ 2.1 Mô tả bài toán và cách giải quyết vấn đề 2.1.1 Tổ chức hoạt động Trung tâm Tiệc cưới – hội nghị Hương Sen toạ lạc tại địa chỉ 584, đường Đội Cấn, quận Ba Đình Được xây dựng trên diện tích gần 4000m2 với quy mô 2 tầng lầu, bao gồm 2 đại sảnh đãi tiệc hiện đại, không gian thoáng đãng và... thuận tiện Nhà hàng có tổng sức chứa lên đến 3000 khách là địa điểm hoàn hảo cho những buổi tiệc cưới trang trọng, hoành tráng, những hội nghị chuyên nghiệp cùng các sự kiện đáng ghi nhớ Với hình thức kiến trúc hài hoà, công trình mang dáng dấp của một cung điện sang trọng, rực rỡ và lịch lãm, rất phù hợp cho những bữa tiệc mang phong cách Châu Âu hiện đại, chuẩn mực nhưng cũng không kém phần ấm áp,...Hoặc công công nghệ NET của Microsoft để phát triển các hệ thống phần mềm theo mô hình này Ưu điểm của COP • Trinh phục sự phức tạp • Quản lý sự thay đổi • Tái sử dụng • Lập trình viên có thể chia sẻ với nhau những thành phần mình đã xây dựng cho nhiều người khác dùng chung • Khi cần, lập trình viên có thể lắp ghép các thành phần có sẵn khác nhau để tạo thành các chương trình có chức... bước sau: • Xây dựng sơ đồ use case và đặc tả use case • Xây dựng sơ đồ cơ sơ dữ liệu quan niệm và mô tả thuộc tính của bảng • Xây dựng sơ đồ tuần tự • Xây dựng sơ đồ quan hệ cơ sở dữ liệu • Cài đặt cơ sở dữ liệu • Cài đặt các ứng dụng, lập trình • Kết luận 2.2 Giới thiệu UML 2.2.1 Khái niệm Unified Modeling Language (UML): Là một ngôn ngữ mô hình hóa dựng để xác định, mô hình, xây dựng và trình bày... Marked đã phát triển một chuẩn khác thay cho CGI được gọi là Fast CGI Fast CGI hành động giống như CGI Nó khác ở chỗ, Fast CGI tạo ra một tiến trình bền vững cho từng chương trình • Một số chương trình ứng dụng khác như ASP và Java Script cũng hỗ trợ để tạo ra các ứng dụng Web ASP được Microsoft phát triển để tạo ra các nội dung cho các trang Web động Trong ASP, trang HTML có thể nhúng những phần nhỏ... không phải quan tâm đến việc cấp phát và xóa bộ nhớ như C, C++ Tuy nhiên khi sở dụng những tài nguyên mạng, file IO, database (nằm ngoài kiểm soát của JVM) mà người lập trình không đóng (close) các streams thì memory leak vẫn có thể xảy ra 1.3.1 Servlet 1.3.1.1 Giới thiệu về Servlet Hiện nay, trong lập trình có một xu hướng rất quan trọng đang được tập trung phát triển ứng dụng, đó là xây dựng các chương... ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh