chapter three

3 Using collaborative modeling for design and architecture

 

This chapter covers

  • Definitions of design and architecture
  • The relationship between collaborative modeling, design and architecture
  • An introduction to sociotechnical systems
  • Understanding heuristics and their usage during collaborative modeling
  • Designing bounded contexts by using design heuristics

“If the design, or some central part of it, does not map to the domain model, that model is of little value, and the correctness of the software is suspect.”

Eric Evans, Domain-Driven Design: Tackling Complexity in the Heart of Software

The previous chapter gave you an idea what collaborative modeling is, and how it can be used to truly understand the business problems before diving into solutions. We explained the relationship between Domain-Driven Design and collaborative modeling, and described some of our favorite collaborative modeling tools. So we’ve got the basics right. At this point, you’re probably wondering how collaborative modeling can be used to create an actual design and architecture. That’s exactly what we will cover in this chapter.

We will continue with our BigScreen example, and take you further on their journey. We start with explaining definitions of design and architecture, which is crucial if we want to move to the solution space. We will also dive into the difference between designing and architecture, and how you can benefit from doing it collaboratively.

3.1 What is software design and architecture

3.1.1 The importance of meaning and definitions

3.1.2 What is software architecture?

3.1.3 What is software design?

3.1.4 What are sociotechnical systems?

3.1.5 Design decisions and collaborative modeling

3.2 Heuristics for collaborative modeling

3.2.1 What are heuristics?

3.2.2 Competing heuristics

3.2.3 How to use heuristics

3.3 Driving the design by understanding the business

3.3.1 Designing boundaries

3.3.2 Why boundaries are designed through collaboration

3.3.3 From design to architecture

3.4 Chapter heuristics

3.5 Further reading

3.6 Summary