Next:
Day 1: Object-Oriented Software
Up:
4days_dd
Previous:
4days_dd
Contents
Day 1: Object-Oriented Software Development
Why OO?
Benefits of object-oriented programming
Symptoms of software development problems
Root causes of project failure
Software development best practices
Introduction to OO concepts
Encapsulation
Inheritance
Polymorphism
Abstraction with objects
Message passing
UML summary
Standard diagrams
Object Oriented Software Development
Why have a process?
The Rational Unified Process (RUP)
Inception phase
Elaboration
Construction phase
Transition
A sample process
Domain modeling
Use case modeling
Robustness analysis
Interaction modeling
Collaboration and State Modeling
Addressing Requirements
Survey of Design Patterns
Agile Methods
The Agile Alliance
Introduction to Extreme Programming
Risk: The Basic Problem
Four Variables
The Cost of Change
Four Values
Basic Principles
Back to Basics
The Solution
OO Summary
OO Concepts
UML
Day 2: The Java Programming Language
Introduction
Chapter objectives
Java design goals
What is Java?
How/where to get Java
First Steps with Java
Java Commands and Utilities
A first application
main
Variables, constants, and keywords
Primitive data types
Literals
Constants
Reserved keywords
Arrays
Strings
String objects
StringBuffer
class
Comments and Javadoc
Types of comments
Javadoc comment tags
A comment example
Notes on Usage
Flow control and loops
Introduction
Objectives
Statements and blocks
if-else
switch
while and do-while
for
Labels
break
continue
return
No
goto
Statement
Classes and objects
Introduction
Objectives
A Simple Class
Fields
Access Control and Inheritance
Creating Objects
Constructors
Methods
this
Overloading methods
Overriding methods
Static members
Initialization Blocks
Garbage collection and finalize
The
toString()
Method
Native Methods
Methods and parameters
Methods
Extending Classes
Introduction
Objectives
An extended class
A simple example
What protected really means
Constructors in extended classes
Overriding methods, hiding fields, and nested classes
Marking methods and classes
final
The
object
class
Anonymous classes
Abstract Classes and methods
Cloning objects
Extending classes: how and when
Designing a class to be extended
Interfaces
Introduction
Objectives
An example interface
Single inheritance versus multiple inheritance
Extending Interfaces
Implementing Interfaces
Using an Implementation
Marker Interfaces
When to Use Interfaces
Exceptions
Introduction
Objectives
Creating exception types
throw
The throws clause
try, catch, and finally
When to use exceptions
Packages
Introduction
Package Naming
Package Access
Package Contents
Examples
Day 3: Standard Libraries & Server-side Programming
Objectives
IO: Streams and readers
Java networking
Introduction
Socket
ServerSocket
ServerSocket lifecycle
URL
URLConnection
Threads
Objectives
Applications without multiple threads
Thread states
Creating a threaded class with
thread
Creating a threaded class with the
runnable
interface
Thread methods
Thread references
JavaBeans
Remote Method Invocation (RMI)
Java Native Interface (JNI)
Collections framework
Lists
Maps
Collection Utilities
Internationalization, localization, and formatting
HTTP protocol
Request and Response
Cookies
Servlets and JSPs
Objectives
Introduction/Background
Servlets
Objectives
Servlet basics
HelloWorldServlet
Servlet lifecycle
HTTPServlet
HTTPServletRequest
HTTPServletResponse
JavaServer Pages
What is a JSP?
JSP engine/container:
Translation time and request time
Scriptlets
Expressions
Declarations
Directives
Implicit objects
Exception handling
Survey of other server-side Java technologies
XML
XSLT
Enterprise Java Beans
Java Messaging Service
Day 4: Databases, Best Practices, and Final Project
Databases and JDBC
Getting things set up
Connecting to the database
Statements
getXXX
methods
Updating the database
PreparedStatement
s
A real method
JUnit
Is Testing Important?
Mars Orbiter
USS Yorktown
Types of tests
Unit Testing 101
Goals of unit testing?
Unit Testing with JUnit
A sample JUnit session
Recap
Best practices
Refactoring
Final project
Bibliography
Next:
Day 1: Object-Oriented Software
Up:
4days_dd
Previous:
4days_dd