Naked Objects
By Richard Pawson and Robert Matthews
A critical look at object-orientation
Defining a new approach
|
previous | contents | next
|
If we are going to encourage the design of business systems from
behaviourally-complete objects, then we need to overcome a number of
forces that discourage people from doing proper object modelling, and/or
that tend to separate procedure and data even in so-called
object-oriented designs. Overcoming these forces will require new tools
and techniques, and these must demonstrate that they do not re-expose us
to risks or problems that the established tools and techniques were
designed to overcome. Specifically:
- Instead of envisaging the role of business systems solely as a
means of executing a deterministic process, transforming input
information into output information through a sequence of value-added
steps, we need to find alternative metaphors. One such metaphor is the
value shop, where the user constructs a solution to an individual
problem. (It is a lot easier to add optimized scripts to a value shop
model where necessary than it is to add problem solving to a value
chain model.)
- Instead of pursuing optimal efficiency in the execution of each of
a finite set of scripted tasks, design a form of user interaction that
maximizes the overall effectiveness of the users in fulfilling their
broader responsibilities. This means giving the users more control, for
example over the order in which capabilities are invoked in order to
achieve a goal. We should also design systems that allow users to
become more expert as they learn, rather than constraining everyone to
the lowest common denominator.
- Instead of capturing the requirements for a system as a set of
use-cases and then using these to identify the shared objects and their
responsibilities, aim to identify the objects and their
responsibilities directly, in conversation with the users and other
stakeholders. We also need some means of capturing the emerging object
model in a concrete form that the users can identify with and gain
value from.
- Instead of allowing the business logic to become scattered across
Model, View and Controller objects, find a way to make the View and
Controller roles generic, so that the developer writes only the Model
objects and all user interaction is derived from this
automatically.
- Instead of allowing the architecture of our systems to become
dominated by the idea of being able to buy it piecemeal from different
suppliers, recognize that real agility demands a homogeneous business
object model that cannot be purchased, but has to be designed in-house
to reflect true business needs.
|
Copyright (c) 2002
nakedobjects.org You may print this document for your own personal
use, or you may copy it in electronic form for access within your
organisation, provided this notice is preserved.
|
previous | contents | next
|