Search code examples
oopumlclass-diagram

Role of class diagram in real world system implementation


I have designed the domain models of my system by using class diagram. It only includes the business domain logic of my system but not application logic that will be affected by the choice of platform, tools and programming language. This is all right in the analysis stage because no implementation detail is required yet.

However, I found that the class diagram that I have designed in the analysis stage is not sufficient to be used as the blueprint to develop the system in the implementation stage due to the lack of application logic, presentation logic and persistence logic details. Do I need to re-design the class diagram or create another type of diagram to serve as the blueprint for implementation?

I did not have any real world experiences in designing and implementing a system from the start to end so I would like to have some insights on the role of class diagram in real world system development.

The book - Applying Use Case Driven Object Modeling with UML has defined analysis-level class diagram as the class diagram that includes domain models while design-level class diagram is the class diagram that is "closer" to the source code implementation. However, I could not find any example of design-level class diagram and do not know what should be included in the design-level class diagram.


Solution

  • This is going to be a long story, so I try to make it short. You were so far only on a certain level of abstraction. But once you reach the borders you need to extend your model. A good way it the use of Model Driven Architecture (MDA). Here you introduce 3 layers called

    • CIM Computation Independent Model,
    • PIM Platform Independent Model and
    • PSM Platform Specific Model

    While the CIM only looks a requirements and use cases and talks about business the PIM concretes this layer and forms classes (the level you were looking at). Finally the PSM models concrete things as hardware where the system will be deployed.

    There are quite a number of different processes which deal with creation of such a model. I once made a good start with ICONIX but RUP is also widely used (though much more complex).