Process: Iterative and Evolutionary Domain Modeling - UML

Although paradoxically a significant number of pages were devoted to explaining domain modeling, in experienced hands the development of a (partial, evolutionary) model in each iteration may take only 30 minutes. This is further shortened by the use of predefined analysis patterns.

In iterative development, we incrementally evolve a domain model over several iterations. In each, the domain model is limited to the prior and current scenarios under consideration, rather than expanding to a "big bang" waterfall - style model that early on attempts to capture all possible conceptual classes and relationships. For example, this POS iteration is limited to a simplified cash - only Process Sale scenario; therefore, a partial domain model will be created to reflect just that - not more. And to reiterate advice from the start of this chapter:

Guideline: Avoid a waterfall - mindset big - modeling effort to make a thorough or "correct" domain model — it won't ever be either, and such over - modeling efforts lead to analysis paralysis, with little or no return on the investment.

Limit domain modeling to no more than a few hours per iteration.

Domain Models Within the UP

As suggested in the example of Table, the UP Domain Model is usually both started and completed in the elaboration phase.

Table Sample UP artifacts and timing, s - start; r - refine

Table Sample UP artifacts and timing, s - start; r - refine


Domain models are not strongly motivated in inception, since inception's purpose is not to do a serious investigation, but rather to decide if the project is worth deeper investigation in an elaboration phase.


The Domain Model is primarily created during elaboration iterations, when the need is highest to understand the noteworthy concepts and map some to software classes during design work.

The UP Business Object Model vs. Domain Model

The UP Domain Model is an official variation of the less common UP Business Object Model (BOM). The UP BOM — not to be confused with the many other definitions of a BOM - is a kind of enterprise model that describes the entire business. It may be used when doing business process engineering or reengineering, independent of any one software application (such as the NextGen POS). To quote:

[The UP BOM] serves as an abstraction of how business workers and business entities need to be related and how they need to collaborate in order to perform the business. [RUP]

The BOM is represented with several different diagrams (class, activity, and sequence) that illustrate how the entire enterprise runs (or should run). It is most useful if doing enterprise - wide business process engineering, but that is a less common activity than creating a single software application.

Consequently, the UP defines the Domain Model as the more commonly created subset artifact or specialization of the BOM. To quote:

You can choose to develop an "incomplete" business object model, focusing on explaining "things" and products important to a domain. [...] This is often referred to as a domain model. [RUP]

All rights reserved © 2018 Wisdom IT Services India Pvt. Ltd Protection Status

UML Topics