Tag Archives: Design Patterns

Adaptable Designs for Agile Software Evolution

“It is not the strongest of the species that survives, nor the most intelligent that survives. It is the one that is the most adaptable to change.” – Charles Darwin Big Design Up Front (BDUF) is considered a very bad … Continue reading

Posted in Agile, Design Patterns, Software Architecture, Software Evolution | Tagged , , , | 11 Comments

Separation of Concerns

The most important principle in Software Engineering is the Separation of Concerns (SoC): The idea that a software system must be decomposed into parts that overlap in functionality as little as possible. It is so central that it appears in … Continue reading

Posted in AOP, Design Patterns, OOD, OOP, Software Reuse | Tagged , , , , | 4 Comments

Design Patterns and the Tower of Babel

This is the story of the Tower of Babel from Wikipedia: According to the biblical account, a united humanity of the generations following the Great Flood, speaking a single language and migrating from the east, came to the land of … Continue reading

Posted in Design Patterns, OOD | Tagged , | 2 Comments

Identifying Anti-Patterns

In my previous post, I’ve discussed the importance of identifying domain-specific Design Patterns in an organization. Equally important is the need to identify Anti-Patterns. This is the definition of Anti-Patterns from Wikipedia: “An anti-pattern is a pattern that may be … Continue reading

Posted in Design Patterns, OOD | Tagged , | 2 Comments

Collecting Design Patterns

Today we expect every professional Software Engineer to have a good knowledge of Design Patterns. In particular, the names of the patterns in the Gang-of-Four (GoF) book became part of the common vocabulary of software developers. Any good programmer should … Continue reading

Posted in Design Patterns, OOD | Tagged , | 1 Comment