Naked objects
   HOME

TheInfoList



OR:

Naked objects is an
architectural pattern An architectural pattern is a general, reusable solution to a commonly occurring problem in software architecture within a given context. The architectural patterns address various issues in software engineering, such as computer hardware perfor ...
used in
software engineering Software engineering is a systematic engineering approach to software development. A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term '' ...
. It is defined by three principles: The naked object pattern's innovative feature arises by combining the and principles into a principle: The naked objects pattern was first described formally in Richard Pawson's PhD thesis which includes investigation of antecedents and inspirations for the pattern including, for example, the Morphic user interface. The first complete
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized so ...
framework to have implemented the pattern was named Naked Objects.Naked Objects Framework
/ref> In 2021, Pawson announced that he had subsequently applied the same pattern to the
Functional Programming In computer science, functional programming is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions tha ...
programming paradigm, as an alternative to the
object-oriented programming Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of ...
paradigm, creating a variant of the Naked Objects framework called Naked Functions.From Naked Objects to Naked Functions
/ref>


Benefits

Pawson's thesis claims four benefits for the pattern: #A faster development cycle, because there are fewer layers to develop. In a more conventional design, the developer must define and implement three or more separate layers: the domain object layer, the presentation layer, and the task or process scripts that connect the two. (If the naked objects pattern is combined with object-relational mapping or an
object database An object database or object-oriented database is a database management system in which information is represented in the form of objects as used in object-oriented programming. Object databases are different from relational databases which a ...
, then it is possible to create ''all'' layers of the system from the domain object definitions alone; however, this does not form part of the naked objects pattern ''per se''.) The thesis includes a case study comparing two different implementations of the same application: one based on a conventional '4-layer' implementation; the other using naked objects. #Greater agility, referring to the ease with which an application may be altered to accommodate future changes in business requirements. In part this arises from the reduction in the number of developed layers that must be kept in synchronisation. However the claim is also made that the enforced 1:1 correspondence between the user presentation and the domain model, forces higher-quality object modelling, which in turn improves the agility. #A more empowering style of user interface. This benefit is really attributable to the resulting
object-oriented user interface In computing, an object-oriented user interface (OOUI) is a type of user interface based on an object-oriented programming metaphor, and describes most modern operating systems ("object-oriented operating systems") such as MacOS and Windows. In an ...
(OOUI), rather than to naked objects per se, although the argument is made that naked objects makes it much easier to conceive and to implement an OOUI. #Easier requirements analysis. The argument here is that with the naked objects pattern, the domain objects form a common language between users and developers and that this common language facilitates the process of discussing requirements - because there are no other representations to discuss. Combined with the faster development cycle, it becomes possible to prototype functional applications in real time.


Use

The
Department of Social Protection The Department of Social Protection ( ga, An Roinn Cosanta Sóisialta) is a department of the Government of Ireland, tasked with administering Ireland's social welfare system. It oversees the provision of income support and other social service ...
(DSP) (formerly known as the Department for Social and Family Affairs) in Ireland has built a suite of enterprise applications using the naked objects pattern. As part of its Service Delivery Modernisation (SDM) programme, the DSP designed a new enterprise architecture both to meet its planned new business requirements and to provide greater agility over the longer term. The naked objects pattern forms a key element of the SDM architecture.Department of Social and Family Affairs - Guide to the Functions & Records of the Department
DSFA website - Freedom Of Information
In November 2002, the DSP went live with a new application to replace its existing system for the administration of child benefit. This is believed to be the first operational application of the naked objects pattern, anywhere. The DSP's experience in building this first application, including the reactions of users to the radical user interface is documented extensively in Pawson's thesis, and more recently in a presentation at QCon London 2011.Case Study: Large-scale Pure OO at the Irish Governmen
QCon London 2011
/ref> One of the more striking aspects of the DSP experience was the way that the Naked Objects technique permitted re-use very actively. Once a domain object, such as a Customer, had been defined for one 'application' it could be (has been) readily adapted with the minimum of tweaking and addition for use elsewhere. This suggests that the approach could become a favourite in government circles, where re-use is seen as a powerful technique for breaking down siloed systems. The UK 'Transformational Government' policy is particularly keen to see re-use become a standard requirement of new government systems, both consuming other governmental system components and making new ones available for others to use. This re-use is often seen in terms of services, but objects could be an equally powerful approach. The DSP's initial 'Naked Object Architecture' was developed by an external contractor,Fujitsu, Case Study: The Department of Social and Family Affair

but the architecture was subsequently redeveloped around th
Naked Objects Framework
which now forms the basis for future application development, as confirmed in the request for tenders for a four-year programme of further applications to be built using naked objects.Department of Social & Family Affairs, The ongoing development of the Department's Service Delivery Modernisation programme, 2007
e-tenders website
/ref>


Relationship to other ideas

The naked objects pattern has relevance to several other disciplines and/or trends, including:


See also

* Direct manipulation interface * Object-action interface


References

{{Design Patterns patterns Software design patterns Software architecture