OOPSLA 2002


Tracks
Technical Program
Tutorials
Workshops
DesignFest
Educators' Symposium
Doctoral Symposium
Demonstrations
Posters
Student Research
Competition

Student Volunteers
Special Events
Exhibits
Housing Information
Registration Information
Transportation

Wednesday 15:00-15:45 – Convention Ctr - Exhibit Hall 4A
Friday 11:00-11:45 – Convention Ctr - Exhibit Hall 4A

7 Naked Objects

Richard Pawson
Computer Sciences Corporation, rpawson@csc.com
Robert Matthews
nakedobjects.org, rmatthews@nakedobjects.org

Naked Objects is an open-source Java-based framework designed to support the design and development of very pure object-oriented business systems, by exposing the core business objects directly to the user. Using the framework, all that the application developer defines are the core business objects; he/she does not have to write a single line of code to do with the user interface. Instead the framework’s viewing mechanism uses Java’s reflection to identify an object’s methods, and those attributes/associations with public accessors, and display these to the user.

Using this framework permits much faster prototyping of systems, and provides a common language between user and developer, the combination of which speeds up the development process and improves the chances of developing a system that the users really want. And because this approach encourages the design of behaviourally complete objects the resulting systems better able to respond to future changes in requirements.

Naked Objects was selected by the OOPSLA 2001 committee as one of four Intriguing Technologies. Since then the framework has been extended considerably. In this demonstration we will be concentrating on capabilities added to the framework in the last year. These include the mechanisms for supporting persistent and distributed objects, much of which can be handled transparently to the application developer. We will also demonstrate how Naked Objects makes it easy to write executable acceptance tests in the manner advocated by Extreme Programming but which has seldom been practiced due to the inherent technical difficulties.