Note. This course is built around the Lightweight development process from UML Distilled by Martin Fowler. As such it is compatible with the Unified Process and it places a lot of emphasis on the effective use of the UML. The OO Development using UML and Java course follows a Quality or Test First process and includes writing code as part of the course.
Object Languages allow advantages, but do not provide them" - Tom Hadfield
As the "traditional" developer community learnt early on, good systems arise out of good designs. Good Designs require a good understanding of the problem to be solved. In all of the current hype surrounding Object Technology, it is very easy to fall into the trap of thinking that Object Oriented Programming is the silver bullet.
The reality is that used by itself, Object Oriented Programming should carry a Health Warning. Premature coding in an Object project has worse consequences than it ever had in the traditional (un)structured programming project. The illusion of rapid progress that slowly fades into the nightmare of poor quality, inflexible, unmaintainable parts of a system that will be ready to be delivered "real soon".
The intention behind this course is to allow experienced developers to leverage their current knowledge to gain a fast start in Object Oriented Development. The course provides developers with the tools needed to talk about the Quality of Requirements and Designs in Object Projects.
The course focuses on the needs of small development teams through the use of relatively "low ceremony" techniques and methods. The use of models for communicating ideas is emphasized, as is the need for an iterative, incremental development lifecycle.
The Unified Modeling Language (UML) is the successor to the wave of Object Oriented Analysis and Design notations that appears in the 80’s and 90’s. The UML 1.1 was ratified by the OMG (Object Management Group) as the standard modeling language for use in Object Oriented Development. This course addresses the needs of practitioners for a fast start in the basics of the UML to improve the Quality and Productivity of Object Technology Projects. CASE tools are used where appropriate to assist in the construction of the UML diagrams.
The course is fast paced and interactive, using "toy" problems and a small case study to give participants hands-on experience in the use of the various techniques. Initially the focus is on getting familiar with the Object terminology and learning what makes a project truly Object Oriented. The focus then shifts to using Use Cases for Requirements Capture, and validating these by the use of a Business Object Model.
Using these Use Cases and the Business Object Model, the focus then shifts to the design of the implementation, using Responsibility Driven Design to design the Classes within the implementation packages. The focus of the last part of the course is on Quality Assurance and Testing, how can the design and implementation be validated against the Requirements.
4 Days (tailored versions for companies can also be provided, in-house versions of this course require a minimum of 6 participants)
Analysts and software designers/developers with some experience of Object Concepts or who will soon be undertaking an Object project. Knowledge of Java syntax is useful if participants want to be able to validate their design decisions by running code.
In addition to the formal aspects of OO Development, this course also covers the creative aspects of object modeling.