Search code examples
model-view-controllerumlclass-diagramsystem-designsystem-analysis

what is the difference between design classes and analysis classes?


I am trying to create the analysis class diagram and the drawing class diagram, I cannot understand each one in detail to elaborate their diagrams. Anyone can explain the difference, I am using the MVC architecture pattern, I will be very grateful for any tip presented.


Solution

  • The good news is that 1) you can use UML for different purposes and 2) UML is always UML:

    • The analysis has the purpose to understand the problem and the requirements. An analysis model puts the focus on the business domain, without prejudice of how the solution's internals could look like. So if you're thinking of MVC, this model would focus on the M only.

    • The design has the purpose to think of a solution suitable to solve the problem and fulfill the requirements. The beauty of MVC would appear in the design model since MVC is part of the solution and not of the (functional) requirements.

    Where the analysis model ends and the design model starts depends on the methodological framework:

    • Very often, you'll find in the analysis only domain objects. The design would enrich the analysis model with additional classes about the internals.
    • In the book "The Unified Software Development Process", the fathers of UML explain how they think it could be used in an iterative and use case driven approach. The analysis model then has some classes that represent the use-cases (with Entity-Contol-Boundary)
    • Scott Ambler's Agile UP has renamed the analysis model into requirement model. For him the design model should be a sketch of the overall solution, with sufficient details to be able to understand how it works, but not too much because the design might evolve. I fully subscribe to this point of view.

    Finally, it's worth mentioning that some see the analysis model as a temporary model that will be enriched to become the design model. Others see them as two different models. Whether to maintain it or not is then another methodological question to be clarified in the project.