Thursday – 13:30-17:00
Convention Ctr - Room 611

53 – Framework Design and Implementation using Java and UML

Dirk Riehle
SKYVA International

Alan Perry
SKYVA International

This tutorial shows how to design and implement object-oriented frameworks using a real-world example, Java, and UML. The example is the open-source framework, JValue, which we will see evolve over several steps. Topics discussed and explained are: effective interface design and abstract superclasses for code reuse, framework types, interface and implementation architecture of frameworks, design patterns and frameworks, framework extension and framework layering, and framework evolution under benign circumstances (you have control over clients). Specific emphasis is put on the use of UML collaborations to model design patterns and frameworks, giving us a much clearer picture of how to separate a framework from its use-context.

Attendee background

Attendees are expected to be familiar with Java and UML on an intermediate level.

Format

Lecture style.

Presenters

Dirk Riehle is a software developer at SKYVA International, where he is developing business software based on object-oriented frameworks. Dirk has worked on design patterns, object-oriented frameworks, and software architecture for the last 10 years. More recently, he became the main designer and implementer of the first UML Virtual Machine using a framework approach. At OOPSLA, he may be best known for his technical paper presentations on the subject matter. Dirk holds a Ph.D. from Swiss Federal Institute of Technology and welcomes feedback through dirk@riehle.org.

Alan Perry is a senior developer at SKYVA International. After studying physics he chose a career in software, and has worked in the fields of semiconductor CAD, Laboratory Information Management Systems, and now in the design and production of business applications. He has worked with various frameworks for over 5 years and has been one of the main outside influences driving the evolution of the JValue framework used as the main example in this tutorial.