Research - General   

As the variability of information and software systems has increased, the need for an engineering discipline concerned with building reusable assets (such as specification sets, patterns and components) on one hand and representing and managing knowledge in specific domains on the other hand has become crucial. This discipline, called domain engineering, supports the notion of a domain, defined as a set of applications that use a set of common concepts for describing requirements, problems and capabilities. The purpose of domain engineering (also known as product line engineering) is to identify, model, construct, catalog, and disseminate a set of software artifacts that can be applied to existing and future software in a particular application domain. As such, it can support the effective and efficient management and development of software assets. Hence, it is important to introduce this discipline among software engineering practitioners and researchers. As an evolutionary approach, domain engineering relates to many different areas, such as conceptualization, ontologies and ontology deployment, metadata and metamodeling, knowledge base integration, reuse, patterns, model driven approaches, and reference modeling.

ADOMThe Application-based Domain Modeling (ADOM) approach binds domain and application models into a general framework and enables the definition of mutual constraints between these types of models. This framework consists of three layers: the application layer, the domain layer, and the (modeling) language layer. The application layer consists of models of particular applications, including their structure (scheme) and behavior. The language layer comprises metamodels of modeling languages, e.g., UML. The intermediate domain layer consists of specifications (including terminology, constraints, commonality, and allowed variability) of various domains, e.g., process control systems, scheduling systems, e-commerce applications, etc. The ADOM framework also enables enforcing constraints among the different layers; in particular the domain layer enforces constraints on the application layer. The fulfillment of these constraints can be checked due to the ability to classify application elements according to the domain terminology. ADOM is supported by a tool which enables domain model creation, application model guiding, and application model validation. You can freely download the tool and its reference manual here (~250MB).

 

More about ADOM you can find in the ER'2005 tutorial slide here and in the publications section.

 

Works that uses ADOM for specific areas are:

1.      Semi Automatic Domain Modeling (SDM) - domain engineering has been criticized as dealing with too broad areas (domains) which are usually understood only during the development process. SDM aims at automatically creating draft models of domains from application models in those domains.

2.   ADOM for Situational Method Engineering (ADOM-SME) - the discipline of situational method engineering promotes the idea of creating method components, rather than complete methodologies, and tailoring them to specific situations at hand. SME-ADOM is a method for representing, retrieving, and tailoring method components. It enriches ISO/IEC 24744 by supporting the creation of valid methodologies and guiding their tailoring.

3.   Aspect-Oriented ADOM - This approach is used for defining families of aspects and their weaving rules to families of applications during the entire development lifecycle. In particular, three types of models, aspect, base, and woven models, are defined in different abstraction levels. Examples of the approach on UML 2.0 class and sequence diagrams can be found here.

 

back to the top of research page