software architecture anti patterns
play

Software Architecture Anti-Patterns R. Kuehl p. 1 R I T Software - PowerPoint PPT Presentation

Software Architecture Anti-Patterns R. Kuehl p. 1 R I T Software Engineering What are Anti-patterns? An AntiPattern describes a commonly occurring solution to a problem that generates decidedly negative consequences. Happens


  1. Software Architecture Anti-Patterns R. Kuehl p. 1 R I T Software Engineering

  2. What are Anti-patterns?  “An AntiPattern 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 R. Kuehl p. 2 R I T Software Engineering

  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.  Cover Your Assets Less-than-useful requirements are produced because important decisions are avoided and alternatives are elaborated. Obfuscates architecture design R. Kuehl p. 3 R I T Software Engineering

  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)  Architecture by Implication Lack of architecture planning and documentation due to architect over confidence or incompetence leads to implementation risks R. Kuehl p. 4 R I T Software Engineering

  5. Examples - 3  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.  Swiss Army Knife An excessively complex component interface . The designer attempts to provide for all possible uses of the component.  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 R. Kuehl p. 5 R I T Software Engineering

  6. References  AntiPatterns, Muller, University of Victoria, http://www.csc.uvic.ca/~hausi/480/lectures/antip atterns.pdf  https://sourcemaking.com/antipatterns/software- architecture-antipatterns R. Kuehl p. 6 R I T Software Engineering

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend