9.19. Process: Iterative and Evolutionary Domain Modeling
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 thatnot 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 modelit 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 elaboration phase p. 33
Inception
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.
Elaboration
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 BOMnot to be confused with the many other definitions of a BOMis 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]