Big Java example project "invoice"

You can use this project as follows:

 - invoke the main method of the driver class InvoiceTest by 
 right-clicking on the class representation and selecting the main method.
 - create a few Product objects
 - create an Address object
 - create a an Invoice object using Address object as parameter
 - use "add" in Invoice to add Products you have created previously
 - call Invoice's format method
 - Use "Get" button on the returned formatted String
 - Use Evaluate expression to call System.out.println on the formatted String.
 
This project illustrates concepts covered in Big Java, Chapter 16 
"System Design".

 - to learn about the software life cycle
 - to learn how to discover new classes and methods
 - to understand the use of CRC cards for class discovery
 - to be able to identify inheritance, aggregation, and dependence relationships between classes
 - to master the use of UML class diagrams to describe class relationships
 - to learn how to use object-oriented design to build complex programs