Online Retail Application

Learning Objective

Our aim is threefold

  1. develop your thinking like an OO programmer
  2. encourage you to think about testing
  3. teach you the syntax and semantics of the Java language

We see the above as different to most Java Programming courses on the market that focus mainly on teaching you how to programme in the language.  After a lot research we discovered that many programmers understand the concepts of logic very well but not OO, and testing.  This course brings together all three skills.  It encourages you to write tests and make use of those tests to demonstrate that your code is fit for purpose (it is not following a TDD philosophy - we strongly believe in TDD but this philosophy and the three tenants of this course cannot be taught in the time allowed), it constantly challenges your style of programming by encouraging you to adhere to good OO design philosophies, and finally it teaches you the Java language syntax and the semantics behind the syntax.

Case Study Objective

Create an application that implements a simple business model (shown below).  The application must be able to display the objects in various formats (XML and JSON), write the data to the screen and to text files, serialize the objects out to the file system, deserialize the objects from the file system, and lastly control the application via an extensible command menu system. 

As you work your way through the model and the different sections of the exercise, your classes will change, sections of the them will be deleted, renamed, modified and new sections added.  This is normal for any software development process (a process of learning and evolution).

Business Model

See sub-pages for solutions and notes on each section