Object Oriented Design and Development COM534 v1

Professionally design and document your project

  • Understand how UML (Unified Modelling Language) can be used to document the design of your project.
  • Use in code documentation – Javadoc
  • Licence your project

Use professional development tools

  • Netbeans IDE
  • Maven build system

Understand the value of test driven development and use Unit and Integration testing during your development process

  • Junit
  • Maven Surefire Plugin automated unit testing
  • continuous integration

Understand the role of common design patterns in java development.

  • Java inheritance, polymorphism, interfaces
  • Factory / Template patterns
  • Inversion of control (Spring Framework)

Include external libraries as part of your build and development process

  • Build systems (maven)
  • Including libraries on your class path
  • Packaging
  • Licencing

Develop using enterprise java technologies

  • Java Collections Framework – Lists
  • XML Marshalling JAXB
  • Logging ( slf4j, Log4j)
  • Java-fx java thick client framework
  • Java Server pages (JSP)
  • Java ReST JAX-RS (Jersey)
  • Java Concurrent Framework - threads

Publish and share your work with others (version control)

  • Git / Github
  • Pair programming

Each week we will work on incrementally developing a design for a complete enterprise system. Enterprise systems are often developed in layers with each layer being independently developed and tested before integration into the full system.

You will keep your work in your own git hub repository and incrementally add to this software as your design is developed.

In each class we will have a brief lecture and demonstration followed by a set of exercises to help you apply the technology or technique which has been introduced.

Once we have learnt a technology, we will begin to use it to develop a layer of our proposed system. Ultimately we will have a fully working enterprise App.