EE564, Enterprise Software Development, Spring 2012

Lecture:   TuTh 11:00-12:15, Rowley 142
Office Hours: TuTh 10:00-11:00 AM

Instructor: Daqing Hou

Office: CAMP 127  
Email: dhou at clarkson dot edu  
Campus Phone: X7675

Recommended books (not required)

(1) Program Development in Java - Abstraction, Specification, and Object-Oriented Design.
     Barbara Liskov with John Guttag. Addison-Wesley. ISBN 0201657686.
     Available at the Clarkson bookstore. A book worth of keeping for your career.
(2) Java EE Tutorial. Available free online. Printed copy also available,

Online Resources

  1. HTML Basics    Advanced HTML    HTML Styles    Cascading Style Sheets HOME PAGE
  2. HTML 4.0 Spec.    XHTML™ 1.0 Spec.
  3. JavaScript Tutorial    More W3School Tutorials
  4. HTML Tidy Project Page (HTML Parsing & Validation)    The W3C Markup Validation Service    Amaya: The W3C Editor/Browser
  5. XML and Java Technologies    Choose Your XML Parser
  6. Berkeley Sockets    Key Web Technologies Primer (from Struts, Recommended)
  7. javax.servlet    javax.servlet.http    Java Servlets 3.0 Spec    Filters    Nice Tutorials for Java Server Page    The Context of a Java Server Page
  8. Who Does Not Know Cookies!    Computer Science Cookies.    Read Section 2 If You Are Not Patient.    More about Cookies here and   here!
  9. Web Meeting for Mr. Dow

Schedule & Lecture Notes

The following topics and slides are for reference only.
This semester EE564 will be project-oriented.

Jan. 7 introduction & Java review
install and try Eclipse
Jan. 14 abstraction and specification
procedural abstraction
data abstraction
HW#1 (5%)
(1) homework due next Monday
(2) code for
Jan. 21 data abstraction (cont'd)
data abstraction (cont'd)
HW#2 (10%)
test case & expected output
Jan. 28 type hierarchy
Overview of Eclipse
Eclipse plugins dependency
HW#3 (10%)
paper review
Feb. 4
Eclipse plug-in
1. HW#4 (5%)
Eclipse features
2. code for the clarkson plugin architecture and its first plugin
Feb. 11 Winter break
Using Eclipse to read code
coupling and cohesion
Midterm project starts!

Section 14.1
Feb. 18 project QA
composites and visitor pattern
indirection in design patterns

Section 15.5
Section 15.6
Feb. 25 Use objects to pass around procedures
Observer pattern

Mar. 4
project presentation
project presentation
Java EE overview

Java EE slides can be found at
Mar. 11 Java EE overview (cont.)
web server (demo)
web server (cont.)
Mar. 12: project report due in class
Mar. 18 spring recess week

Mar. 25 Java web technologies
context, session, and concurrency control
Mar. 26: project report due in class (extended)
HW #5
code for Counter
info for configuring and running Tomcat
Apr. 1 Enterprise component technologies
Sun Application Server (AS)
EJB 3.0 Spec (JSR 220)
Java Annotations (JSR 175)
HW #6
Apr. 8 Enterprise component technologies
Java Persistence API (JPA)
JMS and Sun Open Message Queue
Java RMI Spec.
Java RMI Notes
Java RMI over IIOP
Commands for Web Services wsgen wsimport

Apr. 15
Wed: Patty AJAX
Fri:     Mike Java Generics

Marking guideline
Apr. 22 Mon: Chandan RMI/IIOP
Wed: Dave Java Messaging Services
Fri:    Tao   JSP tags

Apr. 29 Final exam week; class ends.

Intended Audience

This studio-like class is intended for graduate and senior undergraduate students of computer science and computer engineering who are interested in improving their skills of software design. It is assumed that students be confident of programming with at least one high level language, such as Java and C/C++.


Software abstraction and specification. Coupling and cohesion. Module dependency. Design patterns. Shared information systems. Selected topics in Integrated Development Environment (IDE). Selected topics in Java Enterprise Edition (Java EE).

Learning Outcomes

1. Students will understand the basic notions of abstraction and specification and apply them in small sized exercises.
2. Students will study and evaluate both the design and evolution of a large software system or a part of it.
3. Students will study the Java EE platform and understand its design.

Course Work and Evaluation*

Rough time line
4 weekly homework.
Feb. ~ Mar. 25
midterm essay
study and evaluate both the design and evolution of a large software system or a part of it.
Mar. 26 ~ Apr. 29
homework and lecture for Java EE
3 homework and 1 lecture on a selected topic

* This is only an estimation. It may be changed after class starts.

January 2, 2009 --           Redaction 1
February 2, 2009 --           Added Online Resources Section
January 19, 2012 --           Project-oriented