08 December 2007

Software Engineering: Anti-pattern (Definitions)

"An antipattern is just like a pattern, except that instead of a solution it gives something that looks superficially like a solution, but isn’t one." (Andrew Koenig, Journal of Object-Oriented Programming Vol 8(1), 1995)

"[...] an antipattern is a common approach to solving a problem that leaves us worse off than when we started." (Scott W Ambler & Larry L Constantine, "The Unified Process Construction Phase: Best Practices for Completing the Unified Process", 2000)

"An antipattern is a structure used in software design that seems to be beneficial initially, but has significant, unintended negative consequences." (Jens Dietrich, "From Business Rules to Application Code: Code Generation Patterns for Rule Defined Associations", 2009)

"An anti-pattern is a general, proven, and non-beneficial problem (i.e., bad solution) in a software product or process. It strongly classifies the problem that exhibits negative consequences and provides a solution. Built upon similar experiences, anti-patterns represent 'worst-practices' about how to structure or build a software architecture." (Jörg Rech et al, "Knowledge Patterns" [in "Encyclopedia of Knowledge Management" 2nd Ed.], 2011)

"An antipattern is a software design practice that is ineffective or counterproductive—in other words, the opposite of a 'best practice'. To put it another way, an antipattern is something that the software allows you to do, but that may have an adverse functional or performance impact." (Google)

"An inferior process pattern that teams follow or a design solution that teams commonly make. Antipatterns are used to reinforce better planning and provide a problem solving reference point." (IBM)

"Repeated action, process, structure or reusable solution that initially appears to be beneficial and is commonly used but is ineffective and/or counterproductive in practice." (ISQTB)

No comments:

Related Posts Plugin for WordPress, Blogger...

About Me

My photo
Koeln, NRW, Germany
IT Professional with more than 24 years experience in IT in the area of full life-cycle of Web/Desktop/Database Applications Development, Software Engineering, Consultancy, Data Management, Data Quality, Data Migrations, Reporting, ERP implementations & support, Team/Project/IT Management, etc.