Software Engineering for the World Wide Web
SWE 642-001, Fall Semester 2008
Instructor: Dr. Nick Duan
Email: nduan@gmu.edu
URL: http://ise.gmu.edu/~nduan
Office Hours: Anytime electronically or after class ends on Wednesday
GTA: Yanyan Zhu, yzhu6@gmu.edu
Prerequisite:
- SWE 619 and SWE Foundation material (MSCS Students may substitute CS 540 and CS 571 for SWE 619)
- Knowledge of object-oriented programming and database management systems
- Basic knowledge of Java, JavaScript and HTML. Programming experience highly desired.
Objectives:
- Obtain a broad range of knowledge in internet and web concepts and architecture, including web server architecture, rich client applications, web services, web security, and Web 2.0 technologies (XML, AJAX, Mash-up with GoogleMaps)
- Understand the concepts of n-tier architecture and web-based application development in Java and Java EE (Java Servlet, JSP, JAX-WS, SOAP, WSDL)
- Become familiar with various web application engine design techniques via a hands-on programming project using open source software and tools (e.g. Apache Tomcat, Google Project)
Contents:
- Concept of Internet engineering (from TCP/IP to HTTP), and web-based application architecture
-
Client-side web development with JavaScript, XML,
- Server-side web engineering with Java EE standard and application components
- Web application development with Java Servlet and Java Server Pages (Servlet and JSP APIs, session management, security, packaging and deployment)
- Web application development environment with Apache Tomcat
- Database connectivity of web applications in a 3-tier environment using JDBC
- Web application security (authentication, authorization, encryption, PKI, SSL and digital certificate)
-
- Web Services Technology (SOAP, WSDL, UDDI)
- Web Service Development using Apache Axis (Axis API, JAX-WS)
Textbook:
- Web Application Development in Java - Presentation Slides with Notes (available on class web site)
- Jason Hunter, William Crawford, Java Servlet Programming, O’Reilly, 2001 (Recommended)
- Hans Bergsten, JavaServer Pages, 3rd Edition, O’Reilly, 2003 (Recommended)
- James McGovern, et. al., Java Web Services Architecture, Morgan Kaufmann, 2003 (Recommended)
On-line References:
- The J2EE 5 Tutorial, Part One, Sun Microsystems, http://java.sun.com/javaee/5/docs/tutorial/doc/
- Java Servlet Specification, 2.5, http://java.sun.com/products/servlet
-
JavaServer
Pages Specification, 2.1, http://java.sun.com/products/jsp
- Apache Tomcat, http://tomcat.apache.org
Grading Policy:
- Midterm Exam 30% (open book)
- Final Exam 30% (open book)
- Project Assignment 35%
- Presentation/Innovation 5%
Project Assignment:
· Objective: to obtain hands-on experience with Web client and server technologies, including HTML/JavaScripts/AJAX, Java Servlet, Java Server Pages, and Web Services through the development of a web-based, multi-tiered enterprise application, and to gain experience with real-world software development.
· Description: The application is an on-line flight reservation application with web front end for both the traveler and the airline administrators. The traveler should be able to search different flight, create itineraries, and book flights. The airline administrator should be able to publish and update flight information (flight number, aircraft type, departure/arrival time and locations, and prices). The actual database schema is up to each student/group to decide.
o The application shall consist of the following components:
o A set of web pages, development in a combination of HTML, JavaScripts and/or JSPs, as well as a GoogleMaps components
o A set of Java servlets for connecting with a backend database
o A Web service implemented in Apache Axis for reporting inventory status
· The following server modules are to be used for this project:
o Apache Tomcat version 6.0.
o HyperSonic SQL database
o Apache Axis as the Web Service engine running on Tomcat server
· System and Deployment Requirement: The application should be developed using Java SE 1.5, and Java Servlet version 2.5, JavaServer Pages version 2.1 (using Tomcat server). The students shall install the open source software on personal computer for development. The final project shall be packaged in standard Java EE war file and deployed onto a computer designated by the instructor for in-class demonstration. There will be three deliverables throughout the project. Each deliverable as a single Java EE web application to be made available to the instructor on or before the due day.
· Policies: The project can be completed individually or by a team of three to five students. All students of the team will receive the same final score for the project. The deliverable consists of a design document, source code, Java docs, and deployable modules/application. Design document should describe the system architecture, components, and customized component frameworks. The deliverable as a single Java EE web application is to be located in designated directory on Google Project hosted by each project team.
· Detailed requirements and scoring policies are defined in the class project document.
Additional Information and Policies:
Honor Code Statement:
As with all GMU courses, SWE 642 is governed by the GMU Honor Code. In this course, all assignments, exams, and project submissions carry with them an implicit statement that it is the sole work of the author, unless joint work is explicitly authorized. Help may be obtained from the instructor or other students to understand the description of the problem and any technology, but the solution, particularly the design portion, must be the student's own work. If joint work is authorized, all contributing students must be listed on the submission. Any deviation from this is considered an Honor Code violation, and as a minimum, will result in failure of the submission and as a maximum, failure of the class.
Class Schedule:
Session |
Date |
Topics |
References |
1 |
8/27 |
Introduction to Web Engineering |
Hunter, HTTP Spec |
2 |
9/3 |
Client-side Engineering 1 (XML, JavaScript, |
On-line Ref. |
3 |
9/10 |
Client-side Engineering 2 (GoogleMaps) |
On-line Ref. |
4 |
9/17 |
Introduction to Java EE Architecture and Java Servlet |
Hunter, Servlet Spec |
5 |
9/24 |
Web Application Session Management |
Hunter, Servlet Spec |
6 |
10/1 |
Java EE Database Connectivity using JDBC (Project Phase I due) |
On-line Ref. |
7 |
10/8 |
Midterm Exam (open book) |
|
8 |
10/15 |
In-Class Review |
|
9 |
10/22 |
JavaServer Pages and Web Framework |
Bergsten, JSP Spec |
10 |
10/29 |
Web Application Security |
On-line Ref. |
11 |
11/5 |
Web Server Performance (Project Phase II due) |
On-line Ref. |
12 |
11/12 |
Web Services Design 1 (SOAP, WSDL) |
McGovern, On-line Spec |
13 |
11/19 |
Web Services Design 2 (JAX-WS, UDDI) |
McGovern, On-line Specs |
14 |
12/3 |
Project Presentation (Project Phase III due) |
|
15 |
12/10 |
Final Exam (open book) |
|