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, AJAX, GoogleMaps

-          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)

-          Enterprise server performance optimization and high-availability/clustering options (using Apache Tomcat and Apache Web Server)

-          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:

  • All class related information, including syllabus, project information, and class notes, is accessible from the instructor's web page.
  • Each student shall set up his/her computer account to receive class-related emails and help information.
  • There will be NO make-up exams.  Project due day is fixed and non-negotiable.

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, AJAX)

On-line Ref.

3

9/10

Client-side Engineering 2 (GoogleMaps)

On-line Ref.

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)