CSE 432:
Object-Oriented Software Engineering
Spring 2006
Professor: Glenn David Blank Phone:
758-4867 Office:
328 Packard Lab
Hours: TWTh
Course Description: Design and construction of modular, reusable,
extensible and portable software using statically typed object-oriented
programming languages (Eiffel, C++, Java). Abstract data
types; genericity; multiple inheritance; use and
design of software libraries; persistence and object-oriented databases; impact
of OOP on software life cycle.
Prerequisites: Familiarity with a high-level programming language
and data structures
Textbooks:
Martin Fowler, UML Distilled, 3rd edition,
Addison-Wesley, 2004. (Available in bookstore, strongly recommended)
Glenn D. Blank and Sally H. Moritz, The
Big Picture of Software Development (first chapter of proposed
textbook for novices)
Bruce Eckel, Thinking in Java, 3rd
edition, Prentice Hall, 2002 (available online at http://www.mindview.net/Books/TIJ/)
Bruce Eckel, Thinking in Enterprise Java,
2003 (also available online)
Peter Coad & Jill Nicola, Object-Oriented Programming,
Yourdon Press, 1993 (on reserve at FM library)
Mark Grand, Java Enterprise Design Patterns (electronic
resource available via NetLibrary)
Pete Thomas & Ray Weedon, Object-Oriented
Programming in Eiffel, Addison Wesley, 1995 (on reserve at FM library)
Multimedia:
point Microsoft
Internet Explorer at http://cimel.cse.lehigh.edu, Sophia (faw2@lehigh.edu) will
provide logins
Requirements:
Analysis, design, and implementation homework assignments: 30%
Project presentations (analysis, design and prototype): 5%
Class attendance and participation: 5%
Project: substantial software development in Java or C++: 60%, apportioned by points as follows:
Extra
credit:
seminar presentation on a topic related to the course, i.e., tools (Rational
Rose tools, Eclipse development, J2EE, .NET),
a design pattern (preferably one you are or might actually use) or research
issues from OOPSLA or ECOOP conference
Syllabus:
1/17 Objectives; project ideas; OOP essentials Thomas ch 1; Mm: Inheritance (in The Universal Computer: Software Engineering)
1/19 Dynamic binding ; Eclipse and DrJava Blank&Moritz,Mm: Objects&classes in Eclipse (in Design First With Java)
1/24
Why software engineering?
Pfleeger,
ch 1; Mm: Why software engineering?
1/26 Requirements gathering and use cases Fowler ch 9; Mm: Use cases; form Project analyst teams
1/31 Life cycle models Pfleeger, ch 2-3, Mm: Life cycles; ATM use cases due
2/2 Extreme programming Mm: Extreme programming
2/7 OO-analysis, CRC cards Coad&Nicola ch 1; Fowler ch 1-3; Mm: CRC; Project requirement spec due
2/9 From use cases to classes in Eclipse Rauch 70 lab
2/14-16 Object-oriented
design in UML Fowler ch 4-17;
ATM, undo, fruit class diagrams due
2/21-23 Abstract data types; present analyses Thomas ch. 3&8; Mm: Abstract
data types; Project analysis due
2/28-3/2 Java, AWT, Swing Eckel Java ch 1, 4-9, 11, 14. Fruit ADT design due
3/14-16 Assertions; JDK 1.5; present designs Preliminary project design, test
plan and team role assessments due
3/21-23 Threads, Network programming Eckel
Java ch 13; Eckel
Enterprise Java ch 1;Fruit
program due
3/28-30 Design Patterns; JDBC, servlets Grand; Mm: Design patterns; Eckel Enterprise Java 3-4
4/4-6 Components, JavaBeans, EJB and J2EE Eckel Enterprise JavaBeans and A J2EE Introduction
4/11-13 OO testing, Junit; ActiveX, CORBA, .SOAP Pfleeger, ch 8-9
4/18-20 .NET, C# Project
Junit example
4/25-27 Project prototype presentations Updated project designs
and prototype demos
5/11 Final projects and team role
assessments due by