Common Software Architecture Anti-Patterns

undefined
 
Software
Architecture
Anti-Patterns
 
 
What are Anti-patterns?
 
 
“An Anti-Pattern describes a commonly occurring solution
to a problem that generates decidedly negative
consequences.”
 
Happens because an architect…
Does 
not have sufficient knowledge or experience
 solving a
particular problem
Applied
 a perfectly 
good design pattern
 in the 
wrong context
Drift.. 
The project evolves and changes over time and no one is
paying attention to the architecture.
 
Examples - 1
 
 
Jumble
Horizontal
 and 
vertical
 design 
elements are intermixed 
(ball of mud). The result is
unstable, and limits reusability. The layer pattern is violated.
 
Stovepipe
External systems
 and/or 
internal subsystems
 are 
integrated
 in an 
ad hoc point to
point 
manner using 
multiple integration strategies and mechanisms
. It is
characterized by a 
lack of coordination and planning
, extensibility and support are
difficult.
 
Spaghetti Code
 
- Uncontrolled ‘evolutionary’ development
 
- Never taking time to refactor
 
- ‘As long as it works …’
 
 
Swiss Army Knife
An 
excessively complex component interface
. The designer attempts to provide for
all possible uses of the component.
 
 
Examples - 2
 
 
Vendor Lock-In - 
systems are 
highly dependent upon proprietary
architectures
. Architectural isolation layers can provide independence
from vendor-specific solutions.
 
Wolf Ticket
A product 
claims openness
 and 
conformance to unenforceable
standards
. Interfaces may vary significantly from the published
standard. Marketing motivated (term comes from rock concert ticket
scalping)
 
Examples -3
 
 
Cover Your Assets
Less-than-useful requirements
 are produced because 
important
decisions are avoided and alternatives are elaborated.
 Obfuscates
architecture design
 
Architecture by Implication
Lack of architecture planning and documentation 
due to architect over
confidence or incompetence leads to implementation risks
 
Examples - 4
 
 
Design by Committee
Design by Committee creates 
overly complex architectures 
that 
lack
coherence
. Clarification of architectural roles and improved process
facilitation can refactor bad meeting processes into highly productive
events.
 
Reinvent the Wheel
Pervasive 
lack of technology transfer between software projects leads to
substantial reinvention
. Design knowledge buried in legacy assets can be
leveraged to reduce time-to-market, cost, and risk.
 
The Grand Old Duke of York
Egalitarian 
software processes often ignore people’s talents to the
detriment of the project
. Programming skill does not equate to skill in
defining abstractions. Distinguish between programmers and design
modelers
 
References
 
 
AntiPatterns, Muller, University of Victoria,
http://www.csc.uvic.ca/~hausi/480/lectures/antipatterns.pdf
 
https://sourcemaking.com/antipatterns/software-architecture-
antipatterns
Slide Note
Embed
Share

Anti-patterns in software architecture are commonly occurring solutions to problems that lead to negative consequences. These arise due to insufficient knowledge or experience, misuse of design patterns, and lack of attention to evolving project architecture. Examples include Jumble, Stovepipe, Spaghetti Code, Swiss Army Knife, Vendor Lock-In, Wolf Ticket, Cover Your Assets, Architecture by Implication, Design by Committee, Reinvent the Wheel, and The Grand Old Duke of York.

  • Software Architecture
  • Anti-Patterns
  • Design Patterns
  • Examples
  • Best Practices

Uploaded on Jul 22, 2024 | 4 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. Software Architecture Anti-Patterns

  2. What are Anti-patterns? An Anti-Pattern describes a commonly occurring solution to a problem that generates decidedly negative consequences. Happens because an architect Does not have sufficient knowledge or experience solving a particular problem Applied a perfectly good design pattern in the wrong context Drift.. The project evolves and changes over time and no one is paying attention to the architecture.

  3. Examples - 1 Jumble Horizontal and vertical design elements are intermixed (ball of mud). The result is unstable, and limits reusability. The layer pattern is violated. Stovepipe External systems and/or internal subsystems are integrated in an ad hoc point to point manner using multiple integration strategies and mechanisms. It is characterized by a lack of coordination and planning, extensibility and support are difficult. Spaghetti Code - Uncontrolled evolutionary development - Never taking time to refactor - As long as it works Swiss Army Knife An excessively complex component interface. The designer attempts to provide for all possible uses of the component.

  4. Examples - 2 Vendor Lock-In - systems are highly dependent upon proprietary architectures. Architectural isolation layers can provide independence from vendor-specific solutions. Wolf Ticket A product claims openness and conformance to unenforceable standards. Interfaces may vary significantly from the published standard. Marketing motivated (term comes from rock concert ticket scalping)

  5. Examples -3 Cover Your Assets Less-than-useful requirements are produced because important decisions are avoided and alternatives are elaborated. Obfuscates architecture design Architecture by Implication Lack of architecture planning and documentation due to architect over confidence or incompetence leads to implementation risks

  6. Examples - 4 Design by Committee Design by Committee creates overly complex architectures that lack coherence. Clarification of architectural roles and improved process facilitation can refactor bad meeting processes into highly productive events. Reinvent the Wheel Pervasive lack of technology transfer between software projects leads to substantial reinvention. Design knowledge buried in legacy assets can be leveraged to reduce time-to-market, cost, and risk. The Grand Old Duke of York Egalitarian software processes often ignore people s talents to the detriment of the project. Programming skill does not equate to skill in defining abstractions. Distinguish between programmers and design modelers

  7. References AntiPatterns, Muller, University of Victoria, http://www.csc.uvic.ca/~hausi/480/lectures/antipatterns.pdf https://sourcemaking.com/antipatterns/software-architecture- antipatterns

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#