Technical Program
Educators' Symposium
Doctoral Symposium
Student Research

Student Volunteers
Special Events
Housing Information
Registration Information

Thursday, 7 November – 13:30-17:00 Afternoon – Convention Ctr - Room 611

53 Framework Design and Implementation using Java and UML

Dirk Riehle
SKYVA International, dirk@riehle.org
Alan Perry
SKYVA International, aperry@skyva.com

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.


Lecture style.


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.