- Software architectural patterns help manage complexity through abstraction and separation of concerns. The most commonly used architectural patterns are layered architectures, which benefit from modularity and reuse of layers. However, they lack in supporting changes, as there is a need to do a substantial amount of rework on the layers in order to incorporate changes. Furthermore, the comprehension of specifications which are based on a layered architecture can be difficult. In order to address the aforementioned limitations, we adopt a domain engineering approach called Application-based Domain Modeling (ADOM). Using ADOM, we refer to each layer as a separate domain model, whose elements are used to classify the application model elements. Consequently, the application model is represented in a unified form, which incorporates information from all of the layers. This allows performing changes in the model, without creating cascades of changes among the layers’ models in order to synchronize them.