Propose an aDSL, named domain class specification language (DCSL), which consists in a set of annotations that express the essential structural constraints and the essential behaviour of a domain class. The design features were carefully selected from a number of authoritative software and system engineering resources and show that they form a minimum design space of the domain class.Propose a unified domain modelling approach, which uses DCSL to express both the structural and behavioural modelling elements. The dissertation chooses the UML activity diagram language for behavioural modelling and discusses how the domainspecific constructs of this language are expressed in DCSL. To demonstrate the applicability of the approach the dissertation defines the unified domain modelling patterns for tackling the design problems posed by five core UML activity flows. Define 4property characterisation for the software that are constructed directly from the domain model. These properties are defined based on a conceptual layered software model that includes the domain model at the core, an intermediate module layer surrounding this core and an outer software layer. Propose a second aDSL, named module configuration class language (MCCL), that is used for designing module configuration classes (MCCs) in a modulebased software architecture. An MCC provides an explicit classbased definition of a set of module configurations of a given class of software modules. The MCCs can easily be reused to create different variants of the same module class, without having to change the module class design. Develop set of software tools for DCSL, MCCL and the generators associated with these aDSLs. These tools were implemented as components in a software framework, named jDomainApp, which was developed as part of the research Propose an aDSL, named domain class specification language (DCSL), which consists in a set of annotations that express the essential structural constraints and the essential behaviour of a domain class. The design features were carefully selected from a number of authoritative software and system engineering resources and show that they form a minimum design space of the domain class.Propose a unified domain modelling approach, which uses DCSL to express both the structural and behavioural modelling elements. The dissertation chooses the UML activity diagram language for behavioural modelling and discusses how the domainspecific constructs of this language are expressed in DCSL. To demonstrate the applicability of the approach the dissertation defines the unified domain modelling patterns for tackling the design problems posed by five core UML activity flows. Define 4property characterisation for the software that are constructed directly from the domain model. These properties are defined based on a conceptual layered software model that includes the domain model at the core, an intermediate module layer surrounding this core and an outer software layer. Propose a second aDSL, named module configuration class language (MCCL), that is used for designing module configuration classes (MCCs) in a modulebased software architecture. An MCC provides an explicit classbased definition of a set of module configurations of a given class of software modules. The MCCs can easily be reused to create different variants of the same module class, without having to change the module class design. Develop set of software tools for DCSL, MCCL and the generators associated with these aDSLs. These tools were implemented as components in a software framework, named jDomainApp, which was developed as part of the research