Kruchten’s Logical vs Development View – Key Differences

architectural-patternsArchitecturemicroservices

I want to understand the difference between Kruchten's Logical and Development view when using a microservice architecture.

Krutchen describes the software architecture model 4+1 model with four different views.

Logical

The logical architecture primarily supports the functional
requirements — what the system should provide in terms of services to
its users.

Development

The development architecture focuses on the actual software module
organization on the software development environment. The software is
packaged in small chunks — program libraries or subsystems — that can
be developed by one or a small number of developers.

As I understand, the logical view uses class diagrams and state diagrams to illustrate the components. And the Development view uses a Package diagram. However, I have also found a source that says that the development view uses class diagrams.

The question then is how do they differ, and what is the correct definition of the views? What diagram form would I use to illustrate a microservice architecture?

Best Answer

It is indeed a confusing question: very often the decomposition into microservices (which would be Krutchen’s development view) is guided by the domain model (the logical view) and at a very granular level, so that both are completely aligned.

Keep in mind however that this alignment is more a result of some specific choices and there are many more decomposition strategies, such as by business capability, by technical criteria to obtain self-contained services, or by team. In these cases, the distinction between the views will appear more obvious.

The logical view is based on the requirements and the domain design independently of any choice about how this design is to be implemented. You’d probably be interested in this view in bounded contexts and domain design. The development view will look into how this design can be broken down and “packaged” for the implementation.