What is the difference between Conceptual Class Diagram and Detailed Class Diagram?

KkKCcCYappie picture KkKCcCYappie · Sep 21, 2016 · Viewed 13.1k times · Source

Can someone briefly explain the difference between a Conceptual Class Diagram and a Detailed Class Diagram?

Answer

Gerd Wagner picture Gerd Wagner · Sep 21, 2016

While a "Conceptual Class Diagram" expresses a conceptual (domain) model, it's not clear what you (or your professor) mean(s) with "Detailed Class Diagram": it could refer to a (language-/platform-independent) design model or to an implementation model like a C++ class model or a Java class model.

See also my answer to this related SO question.

The one-to-many relationships between conceptual models and design models, and between design models and implementation models are illustrated in the following Figure:

The one-to-many relationships in model refinement

As an example that illustrates how the derivation chain from concept via design to implementation works, consider the following model of a people/Person concept/class:

From concept via design to implementation

Domain models are solution-independent descriptions of a problem domain produced in the analysis phase of a software engineering project. The term "conceptual model" is often used as a synonym of "domain model". A domain model may include both descriptions of the domain’s state structure (in conceptual information models) and descriptions of its processes (in conceptual process models). They are solution-independent, or ‘computation-independent’, in the sense that they are not concerned with making any system design choices or with other computational issues. Rather, they focus on the perspective and language of the subject matter experts for the domain under consideration.

In the design phase, first a platform-independent design model, as a general computational solution to the given software engineering problem, is developed on the basis of the domain model. The same domain model can potentially be used to produce a number of (even radically) different design models representing different design choices. Then, by taking into consideration a number of implementation issues ranging from architectural styles, nonfunctional quality criteria to be maximized (e.g., performance, adaptability) and target technology platforms, one or more platform-specific implementation models are derived from the design model.