ADORA is based on five principal ideas:
- Working with abstract objects (instead of classes)
- Structuring the system being modeled with hierarchical decomposition
- Using an integrated model (instead of collections of models)
- Allowing users to express different parts of a specification with varying degree of formality (adapted to the importance and risk of the parts)
- Visualizing models in context by presenting details of a model with an abstraction of its surrounding context.
The basic idea of the ADORA language is to model the facets of data, functionality and behavior in a single hierarchical object framework. Modeling is based on abstract objects instead of classes. Thus, we resolve the modeling anomalies that occur in decompositions of class models. Furthermore, we found in most cases modelling with objects more natural and convenient than modelling with classes.
Hierarchical part-of-structure is another key feature of ADORA. Compositions are not simply clusters with no or weak semantics. A composition in ADORA is a first class object having full object semantics including structural relationships and behavior. These structural relationships as well as the behavior of a composition are true abstractions of the relationships and behavior of its components.
Furthermore, simulation techniques enable the fast validation/revalidation of software requirements. Moreover, the simulation technique used in the ADORA approach is a means for the evolution of software requirements models, as it can be used to simulate and evolve semi-formal models towards formal ones.
Last but not least, the ADORA modeling language comprises a set of aspect-oriented language elements which support the evolution and modeling of modularized crosscutting concerns which aims at simplified models. However, under some circumstances, a woven model is more convenient or improves its understanding. Thus, the ADORA approach allows to switch between the conventional and the aspect-oriented view of its models.
An introduction to the ADORA language can be found in [Glinz, Berner and Joos 2002] or [Glinz et al. 2001]. The current language definition is given in [Joos 1999]. The visualization concept for the language can be found in [Berner 2002]. A formal defintion of the language ADORA can be found in [Xia 2003]. The semi-formal simulation and model evolution features are summurized in [Glinz et al 2007]. An overview of the aspect-oriented features of the ADORA tool are described in [Meier et al. 2006].