skip to main content
Skip header Section
AntiPatterns: Refactoring Software, Architectures, and Projects in CrisisApril 1998
Publisher:
  • John Wiley & Sons, Inc.
  • 605 Third Ave. New York, NY
  • United States
ISBN:978-0-471-19713-3
Published:03 April 1998
Pages:
336
Skip Bibliometrics Section
Bibliometrics
Skip Abstract Section
Abstract

If patterns are good ideas that can be re-applied to new situations, AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis looks at what goes wrong in software development, time and time again. This entertaining and often enlightening text defines what seasoned developers have long suspected: despite advances in software engineering, most software projects still fail to meet expectations--and about a third are cancelled altogether. The authors of AntiPatterns draw on extensive industry experience, their own and others, to help define what's wrong with software development today. They outline reasons why problem patterns develop (such as sloth, avarice, and greed) and proceed to outline several dozen patterns that can give you headaches or worse. Their deadliest hit list begins with the Blob, where one object does most of the work in a project, and Continuous Obsolescence, where technology changes so quickly that developers can't keep up. Some of the more entertaining antipatterns include the Poltergeist (where do-nothing classes add unnecessary overhead), the Boat Anchor (a white elephant piece of hardware or software bought at great cost) and the Golden Hammer (a single technology that is used for every conceivable programming problem). The authors then proceed to define antipatterns oriented toward management problems with software (including Death by Planning and Project Mismanagement, along with several miniature antipatterns, that help define why so many software projects are late and overbudget). The authors use several big vendors' technologies as examples of today's antipatterns. Luckily, they suggest ways to overcome antipatterns and improve software productivity in "refactored solutions" that can overcome some of these obstacles. However, this is a realistic book, a mix of "Dilbert" and software engineering. A clever antidote to getting too optimistic about software development, AntiPatterns should be required reading for any manager facing a large-scale development project. --Richard Dragan

Cited By

  1. ACM
    Alberts L, Lyngs U and Van Kleek M (2024). Computers as Bad Social Actors: Dark Patterns and Anti-Patterns in Interfaces that Act Socially, Proceedings of the ACM on Human-Computer Interaction, 8:CSCW1, (1-25), Online publication date: 17-Apr-2024.
  2. Huang Z, Yu H, Fan G, Shao Z, Li M and Liang Y (2024). Aligning XAI explanations with software developers’ expectations, Expert Systems with Applications: An International Journal, 238:PA, Online publication date: 15-Mar-2024.
  3. Zmeev D, Zmeev O and Ivanova L (2023). Antipattern Practice for Essence Practice Library, Programming and Computing Software, 49:8, (913-921), Online publication date: 1-Dec-2023.
  4. Malhotra R, Jain B and Kessentini M (2023). Examining deep learning’s capability to spot code smells: a systematic literature review, Cluster Computing, 26:6, (3473-3501), Online publication date: 1-Dec-2023.
  5. Agrahari V, Shanbhag S, Chimalakonda S and Rao A (2023). A catalogue of game-specific anti-patterns based on GitHub and Game Development Stack Exchange, Journal of Systems and Software, 204:C, Online publication date: 1-Oct-2023.
  6. ACM
    Eghtebas C, Klinker G, Boll S and Koelle M Co-Speculating on Dark Scenarios and Unintended Consequences of a Ubiquitous(ly) Augmented Reality Proceedings of the 2023 ACM Designing Interactive Systems Conference, (2392-2407)
  7. Yedida R, Krishna R, Kalia A, Menzies T, Xiao J and Vukovic M (2023). An expert system for redesigning software for cloud applications, Expert Systems with Applications: An International Journal, 219:C, Online publication date: 1-Jun-2023.
  8. Al Khatib S, Alkharabsheh K and Alawadi S (2023). Selection of human evaluators for design smell detection using dragonfly optimization algorithm, Information and Software Technology, 155:C, Online publication date: 1-Mar-2023.
  9. Takeuchi H, Kaiya H, Nakagawa H and Ogata S (2024). Practice-based Collection of Bad Smells in Machine Learning Projects, Procedia Computer Science, 225:C, (517-526), Online publication date: 1-Jan-2023.
  10. Caballero-Espinosa E, Carver J and Stowers K (2023). Community smells—The sources of social debt, Information and Software Technology, 153:C, Online publication date: 1-Jan-2023.
  11. ACM
    Jaakkola H, Mikkonen T and Systä K On Supervising Master’s Theses in Industry Context Proceedings of the 22nd Koli Calling International Conference on Computing Education Research, (1-10)
  12. ACM
    Oishwee S, Codabux Z and Stakhanova N An exploratory study on the relationship of smells and design issues with software vulnerabilities Proceedings of the 1st International Workshop on Mining Software Repositories Applications for Privacy and Security, (16-20)
  13. Openja M, Morovati M, An L, Khomh F and Abidi M (2022). Technical debts and faults in open-source quantum software systems, Journal of Systems and Software, 193:C, Online publication date: 1-Nov-2022.
  14. Avritzer A, Britto R, Trubiani C, Camilli M, Janes A, Russo B, van Hoorn A, Heinrich R, Rapp M, Henß J and Chalawadi R (2022). Scalability testing automation using multivariate characterization and detection of software performance antipatterns, Journal of Systems and Software, 193:C, Online publication date: 1-Nov-2022.
  15. ACM
    Barros D, Peldszus S, Assunção W and Berger T Editing support for software languages Proceedings of the 25th International Conference on Model Driven Engineering Languages and Systems, (232-243)
  16. Sotto-Mayor B, Elmishali A, Kalech M and Abreu R (2022). Exploring Design smells for smell-based defect prediction, Engineering Applications of Artificial Intelligence, 115:C, Online publication date: 1-Oct-2022.
  17. ACM
    Pícha P, Hönel S, Brada P, Ericsson M, Löwe W, Wingkvist A and Daněk J Process anti-pattern detection – a case study Proceedings of the 27th European Conference on Pattern Languages of Programs, (1-18)
  18. Ho-Quang T, Nurwidyantoro A, Rukmono S, Chaudron M, Fröding F and Ngoc D (2022). Role stereotypes in software designs and their evolution, Journal of Systems and Software, 189:C, Online publication date: 1-Jul-2022.
  19. Li X, Moreschini S, Zhang Z and Taibi D (2022). Exploring factors and metrics to select open source software components for integration, Journal of Systems and Software, 188:C, Online publication date: 1-Jun-2022.
  20. ACM
    Rachow P and Riebisch M An architecture smell knowledge base for managing architecture technical debt Proceedings of the International Conference on Technical Debt, (1-10)
  21. ACM
    Vegi L and Valente M Code smells in Elixir Proceedings of the 30th IEEE/ACM International Conference on Program Comprehension, (580-584)
  22. Alkharabsheh K, Alawadi S, Kebande V, Crespo Y, Fernández-Delgado M and Taboada J (2022). A comparison of machine learning algorithms on design smell detection using balanced and imbalanced dataset, Information and Software Technology, 143:C, Online publication date: 1-Mar-2022.
  23. ACM
    Daaji M, Ouni A, Gammoudi M, Bouktif S and Mkaouer M (2021). Multi-criteria Web Services Selection: Balancing the Quality of Design and Quality of Service, ACM Transactions on Internet Technology, 22:1, (1-31), Online publication date: 28-Feb-2022.
  24. ACM
    Agrahari V and Chimalakonda S A Catalogue of Game-Specific Anti-Patterns Proceedings of the 15th Innovations in Software Engineering Conference, (1-10)
  25. Hamdi O, Ouni A, Cinnéide M and Mkaouer M (2021). A longitudinal study of the impact of refactoring in android applications, Information and Software Technology, 140:C, Online publication date: 1-Dec-2021.
  26. Tran V, Abdellatif M and Guéhéneuc Y Formalising Solutions to REST API Practices as Design (Anti)Patterns Service-Oriented Computing, (153-170)
  27. Chouchane M, Soui M and Ghedira K (2021). The impact of the code smells of the presentation layer on the diffuseness of aesthetic defects of Android apps, Automated Software Engineering, 28:2, Online publication date: 1-Nov-2021.
  28. Abid C, Alizadeh V, Kessentini M, Dhaouadi M and Kazman R (2021). Prioritizing refactorings for security-critical code, Automated Software Engineering, 28:2, Online publication date: 1-Nov-2021.
  29. Sotto-Mayor B and Kalech M (2021). Cross-project smell-based defect prediction, Soft Computing - A Fusion of Foundations, Methodologies and Applications, 25:22, (14171-14181), Online publication date: 1-Nov-2021.
  30. ACM
    Caivano D, Cassieri P, Romano S and Scanniello G An Exploratory Study on Dead Methods in Open-source Java Desktop Applications Proceedings of the 15th ACM / IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM), (1-11)
  31. Panahandeh M, Hamdaqa M, Zamani B and Hamou-Lhadj A (2021). MUPPIT: a method for using proper patterns in model transformations, Software and Systems Modeling (SoSyM), 20:5, (1491-1523), Online publication date: 1-Oct-2021.
  32. Sonnleithner L, Oberlehner M, Kutsia E, Zoitl A and Bácsi S Do you smell it too? Towards Bad Smells in IEC 61499 Applications 2021 26th IEEE International Conference on Emerging Technologies and Factory Automation (ETFA ), (1-4)
  33. ACM
    Arzt S Security and quality: two sides of the same coin? Proceedings of the 10th ACM SIGPLAN International Workshop on the State Of the Art in Program Analysis, (7-12)
  34. ACM
    Abidi M, Rahman M, Openja M and Khomh F (2021). Are Multi-Language Design Smells Fault-Prone? An Empirical Study, ACM Transactions on Software Engineering and Methodology, 30:3, (1-56), Online publication date: 1-May-2021.
  35. ACM
    Lujan S, Pecorelli F, Palomba F, De Lucia A and Lenarduzzi V A preliminary study on the adequacy of static analysis warnings with respect to code smell prediction Proceedings of the 4th ACM SIGSOFT International Workshop on Machine-Learning Techniques for Software-Quality Evaluation, (1-6)
  36. ACM
    Schmitt Laser M, Medvidovic N, Le D and Garcia J ARCADE: an extensible workbench for architecture recovery, change, and decay evaluation Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, (1546-1550)
  37. ACM
    Pantiuchina J, Zampetti F, Scalabrino S, Piantadosi V, Oliveto R, Bavota G and Penta M (2020). Why Developers Refactor Source Code, ACM Transactions on Software Engineering and Methodology, 29:4, (1-30), Online publication date: 31-Oct-2020.
  38. ACM
    Trindade R, da Silva Bigonha M and Ferreira K Oracles of Bad Smells Proceedings of the XXXIV Brazilian Symposium on Software Engineering, (62-71)
  39. ACM
    Chondamrongkul N, Sun J, Warren I and Lee S Semantic-based Architecture Smell Analysis Proceedings of the 8th International Conference on Formal Methods in Software Engineering, (109-118)
  40. ACM
    Vranić V, Vranić A and Khail W Growing Organizations with Patterns Proceedings of the European Conference on Pattern Languages of Programs 2020, (1-11)
  41. ACM
    Tighilt R, Abdellatif M, Moha N, Mili H, Boussaidi G, Privat J and Guéhéneuc Y On the Study of Microservices Antipatterns Proceedings of the European Conference on Pattern Languages of Programs 2020, (1-13)
  42. ACM
    Abidi M and Khomh F Towards the Definition of Patterns and Code Smells for Multi-language Systems Proceedings of the European Conference on Pattern Languages of Programs 2020, (1-13)
  43. ACM
    Zarras A Common Mistakes When Using the Command Pattern and How to Avoid Them Proceedings of the European Conference on Pattern Languages of Programs 2020, (1-9)
  44. ACM
    Jebnoun H, Ben Braiek H, Rahman M and Khomh F The Scent of Deep Learning Code Proceedings of the 17th International Conference on Mining Software Repositories, (420-430)
  45. ACM
    Pecorelli F, Palomba F, Khomh F and De Lucia A Developer-Driven Code Smell Prioritization Proceedings of the 17th International Conference on Mining Software Repositories, (220-231)
  46. Bessghaier N, Ouni A and Mkaouer M On the Diffusion and Impact of Code Smells in Web Applications Services Computing – SCC 2020, (67-84)
  47. Kaur A, Jain S and Goel S (2019). SP-J48: a novel optimization and machine-learning-based approach for solving complex problems: special application in software engineering for detecting code smells, Neural Computing and Applications, 32:11, (7009-7027), Online publication date: 1-Jun-2020.
  48. Hora A and Robbes R (2020). Characteristics of method extractions in Java: a large scale empirical study, Empirical Software Engineering, 25:3, (1798-1833), Online publication date: 1-May-2020.
  49. Sergievsky M (2020). Modeling Unified Language Templates for Designing Information Systems, Automatic Documentation and Mathematical Linguistics, 54:1, (26-35), Online publication date: 1-Jan-2020.
  50. Palma F, Moha N and Guéhéneuc Y (2019). UniDoSA: The Unified Specification and Detection of Service Antipatterns, IEEE Transactions on Software Engineering, 45:10, (1024-1053), Online publication date: 1-Oct-2019.
  51. ACM
    Laigner R, Kalinowski M, Carvalho L, Mendonça D and Garcia A Towards a Catalog of Java Dependency Injection Anti-Patterns Proceedings of the XXXIII Brazilian Symposium on Software Engineering, (104-113)
  52. ACM
    Lenarduzzi V, Saarimäki N and Taibi D The Technical Debt Dataset Proceedings of the Fifteenth International Conference on Predictive Models and Data Analytics in Software Engineering, (2-11)
  53. Arcelli Fontana F, Lenarduzzi V, Roveda R and Taibi D (2019). Are architectural smells independent from code smells? An empirical study, Journal of Systems and Software, 154:C, (139-156), Online publication date: 1-Aug-2019.
  54. ACM
    Abidi M, Khomh F and Guéhéneuc Y Anti-patterns for multi-language systems Proceedings of the 24th European Conference on Pattern Languages of Programs, (1-14)
  55. ACM
    Brada P and Picha P Software process anti-patterns catalogue Proceedings of the 24th European Conference on Pattern Languages of Programs, (1-10)
  56. ACM
    Picha P and Brada P Software process anti-pattern detection in project data Proceedings of the 24th European Conference on Pattern Languages of Programs, (1-12)
  57. ACM
    Abidi M, Grichi M, Khomh F and Guéhéneuc Y Code smells for multi-language systems Proceedings of the 24th European Conference on Pattern Languages of Programs, (1-13)
  58. Azadi U, Fontana F and Taibi D Architectural smells detected by tools Proceedings of the Second International Conference on Technical Debt, (88-97)
  59. ACM
    Ouni A, Wang H, Kessentini M, Bouktif S and Inoue K (2018). A Hybrid Approach for Improving the Design Quality of Web Service Interfaces, ACM Transactions on Internet Technology, 19:1, (1-24), Online publication date: 28-Feb-2019.
  60. ACM
    Ureel II L and Wallace C Automated Critique of Early Programming Antipatterns Proceedings of the 50th ACM Technical Symposium on Computer Science Education, (738-744)
  61. ACM
    Russo D, Ciancarini P, Falasconi T and Tomasi M (2018). A Meta-Model for Information Systems Quality, ACM Transactions on Management Information Systems, 9:3, (1-38), Online publication date: 30-Sep-2018.
  62. Aniche M, Bavota G, Treude C, Gerosa M and Deursen A (2018). Code smells for Model-View-Controller architectures, Empirical Software Engineering, 23:4, (2121-2157), Online publication date: 1-Aug-2018.
  63. ACM
    Zarras A, Mamalis G, Papamichail A, Kollias P and Vassiliadis P And the Tool Created a GUI That was Impure and Without Form Proceedings of the 23rd European Conference on Pattern Languages of Programs, (1-8)
  64. Das T and Dingel J (2018). Model development guidelines for UML-RT, Software and Systems Modeling (SoSyM), 17:3, (717-752), Online publication date: 1-Jul-2018.
  65. ACM
    Tahir A, Yamashita A, Licorish S, Dietrich J and Counsell S Can you tell me if it smells? Proceedings of the 22nd International Conference on Evaluation and Assessment in Software Engineering 2018, (68-78)
  66. Sae‐Lim N, Hayashi S and Saeki M (2017). Context‐based approach to prioritize code smells for prefactoring, Journal of Software: Evolution and Process, 30:6, Online publication date: 13-Jun-2018.
  67. ACM
    Tymchuk Y, Ghafari M and Nierstrasz O JIT feedback Proceedings of the 26th Conference on Program Comprehension, (64-73)
  68. ACM
    Pellegrini L and Lenarduzzi V Are code smells the root cause of faults? Proceedings of the 19th International Conference on Agile Software Development: Companion, (1-3)
  69. ACM
    Marr S and Daloze B Few versatile vs. many specialized collections: how to design a collection library for exploratory programming? Companion Proceedings of the 2nd International Conference on the Art, Science, and Engineering of Programming, (135-143)
  70. ACM
    Benni B, Mosser S, Collet P and Riveill M Supporting micro-services deployment in a safer way Proceedings of the 33rd Annual ACM Symposium on Applied Computing, (1706-1715)
  71. ACM
    Sousa B, Bigonha M and Ferreira K A systematic literature mapping on the relationship between design patterns and bad smells Proceedings of the 33rd Annual ACM Symposium on Applied Computing, (1528-1535)
  72. Mumtaz H, Alshayeb M, Mahmood S and Niazi M (2018). An empirical study to improve software security through the application of code refactoring, Information and Software Technology, 96:C, (112-125), Online publication date: 1-Apr-2018.
  73. Chen Z, Chen L, Ma W, Zhou X, Zhou Y and Xu B (2018). Understanding metric-based detectable smells in Python software, Information and Software Technology, 94:C, (14-29), Online publication date: 1-Feb-2018.
  74. Nafees T, Coull N, Ferguson I and Sampson A Vulnerability anti-patterns Proceedings of the 24th Conference on Pattern Languages of Programs, (1-16)
  75. Thaller H, Ramler R, Pichler J and Egyed A Exploring code clones in programmable logic controller software 2017 22nd IEEE International Conference on Emerging Technologies and Factory Automation (ETFA), (1-8)
  76. Vogel-Heuser B, Fischer J, Feldmann S, Ulewicz S and Rsch S (2017). Modularity and architecture of PLC-based software for automated production Systems, Journal of Systems and Software, 131:C, (35-62), Online publication date: 1-Sep-2017.
  77. Jaafar F, Lozano A, Guhneuc Y and Mens K (2017). Analyzing software evolution and quality by extracting Asynchrony change patterns, Journal of Systems and Software, 131:C, (311-322), Online publication date: 1-Sep-2017.
  78. ACM
    Kessentini M, Dea T and Ouni A A context-based refactoring recommendation approach using simulated annealing Proceedings of the Genetic and Evolutionary Computation Conference, (1303-1310)
  79. ACM
    Jakobs M and Wehrheim H (2017). Programs from Proofs, ACM Transactions on Programming Languages and Systems, 39:2, (1-56), Online publication date: 30-Jun-2017.
  80. Morales R, Soh Z, Khomh F, Antoniol G and Chicano F (2017). On the use of developers context for automatic refactoring of software anti-patterns, Journal of Systems and Software, 128:C, (236-251), Online publication date: 1-Jun-2017.
  81. Kessentini M and Ouni A Detecting Android smells using multi-objective genetic programming Proceedings of the 4th International Conference on Mobile Software Engineering and Systems, (122-132)
  82. Habchi S, Hecht G, Rouvoy R and Moha N Code smells in iOS apps Proceedings of the 4th International Conference on Mobile Software Engineering and Systems, (110-121)
  83. Chen B and Jiang Z Characterizing and detecting anti-patterns in the logging code Proceedings of the 39th International Conference on Software Engineering, (71-81)
  84. Oliveira R, Sousa L, de Mello R, Valentim N, Lopes A, Conte T, Garcia A, Oliveira E and Lucena C Collaborative identification of code smells Proceedings of the 39th International Conference on Software Engineering: Software Engineering in Practice Track, (33-42)
  85. Russo D, Ciancarini P, Falasconi T and Tomasi M Software quality concerns in the Italian bank sector Proceedings of the 39th International Conference on Software Engineering: Software Engineering in Practice Track, (63-72)
  86. Vale L and Maia M On the properties of design-relevant classes for design anomaly assessment Proceedings of the 25th International Conference on Program Comprehension, (332-335)
  87. Hebig R and Giese H (2017). On the complex nature of MDE evolution and its impact on changeability, Software and Systems Modeling (SoSyM), 16:2, (333-356), Online publication date: 1-May-2017.
  88. Trubiani C, Ghabi A and Egyed A (2017). Exploiting traceability uncertainty between software architectural models and extra-functional results, Journal of Systems and Software, 125:C, (15-34), Online publication date: 1-Mar-2017.
  89. De Sanctis M, Trubiani C, Cortellessa V, Di Marco A and Flamminj M (2017). A model-driven approach to catch performance antipatterns in ADL specifications, Information and Software Technology, 83:C, (35-54), Online publication date: 1-Mar-2017.
  90. ACM
    Tan S, Yoshida H, Prasad M and Roychoudhury A Anti-patterns in search-based program repair Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, (727-738)
  91. Ergin H, Syriani E and Gray J (2016). Design pattern oriented development of model transformations, Computer Languages, Systems and Structures, 46:C, (106-139), Online publication date: 1-Nov-2016.
  92. ACM
    Aydinli D, Berki E, Poranen T and Stamelos I Management anti-patterns in IT innovation projects Proceedings of the 20th International Academic Mindtrek Conference, (1-10)
  93. ACM
    Samarthyam G, Suryanarayana G and Sharma T Refactoring for software architecture smells Proceedings of the 1st International Workshop on Software Refactoring, (1-4)
  94. Bagheri H, Garcia J, Sadeghi A, Malek S and Medvidovic N (2016). Software architectural principles in contemporary mobile software, Journal of Systems and Software, 119:C, (31-44), Online publication date: 1-Sep-2016.
  95. ACM
    Tufano M, Palomba F, Bavota G, Di Penta M, Oliveto R, De Lucia A and Poshyvanyk D An empirical investigation into the nature of test smells Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering, (4-15)
  96. ACM
    Peldszus S, Kulcsár G, Lochau M and Schulze S Continuous detection of design flaws in evolving object-oriented programs using incremental multi-pattern matching Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering, (578-589)
  97. ACM
    Ouni A, Kessentini M, Sahraoui H, Inoue K and Deb K (2016). Multi-Criteria Code Refactoring Using Search-Based Software Engineering, ACM Transactions on Software Engineering and Methodology, 25:3, (1-53), Online publication date: 22-Aug-2016.
  98. ACM
    Lelli V, Blouin A, Baudry B, Coulon F and Beaudoux O Automatic detection of GUI design smells Proceedings of the 8th ACM SIGCHI Symposium on Engineering Interactive Computing Systems, (263-274)
  99. ACM
    Fontana F, Roveda R, Vittori S, Metelli A, Saldarini S and Mazzei F On evaluating the impact of the refactoring of architectural problems on software quality Proceedings of the Scientific Workshop Proceedings of XP2016, (1-8)
  100. ACM
    Mannan U, Ahmed I, Almurshed R, Dig D and Jensen C Understanding code smells in Android applications Proceedings of the International Conference on Mobile Software Engineering and Systems, (225-234)
  101. ACM
    Luitel G, Stephan M and Inclezan D Model level design pattern instance detection using answer set programming Proceedings of the 8th International Workshop on Modeling in Software Engineering, (13-19)
  102. ACM
    Ivanov V, Mazzara M, Pedrycz W, Sillitti A and Succi G Assessing the process of an Eastern European software SME using systemic analysis, GQM, and reliability growth models Proceedings of the 38th International Conference on Software Engineering Companion, (251-259)
  103. ACM
    Krusche S, Berisha M and Bruegge B Teaching code review management using branch based workflows Proceedings of the 38th International Conference on Software Engineering Companion, (384-393)
  104. ACM
    Bruegge B, Krusche S and Alperowitz L (2015). Software Engineering Project Courses with Industrial Clients, ACM Transactions on Computing Education, 15:4, (1-31), Online publication date: 23-Dec-2015.
  105. Hecht G, Benomar O, Rouvoy R, Moha N and Duchien L Tracking the software quality of Android applications along their evolution Proceedings of the 30th IEEE/ACM International Conference on Automated Software Engineering, (236-247)
  106. Gralha C, Araújo J and Goulão M (2015). Metrics for measuring complexity and completeness for social goal models, Information Systems, 53:C, (346-362), Online publication date: 1-Oct-2015.
  107. Stephan M and Cordy J Identification of simulink model antipattern instances using model clone detection Proceedings of the 18th International Conference on Model Driven Engineering Languages and Systems, (276-285)
  108. Das T and Dingel J State machine antipatterns for UML-RT Proceedings of the 18th International Conference on Model Driven Engineering Languages and Systems, (54-63)
  109. ACM
    Fitsilis P, Tilentzidis K, Moustakas I, Stamelos I and Settas D Enabling open software project management data with antipatterns Proceedings of the 19th International Academic Mindtrek Conference, (194-200)
  110. Edstrom J and Tilevich E (2015). Improving the survivability of RESTful Web applications via declarative fault tolerance, Concurrency and Computation: Practice & Experience, 27:12, (3108-3125), Online publication date: 25-Aug-2015.
  111. Ouni A, Kessentini M, Sahraoui H, Inoue K and Hamdi M (2015). Improving multi-objective code-smells correction using development history, Journal of Systems and Software, 105:C, (18-39), Online publication date: 1-Jul-2015.
  112. ACM
    Kim J, Bagla A and Bernstein M Designing Creativity Support Tools for Failure Proceedings of the 2015 ACM SIGCHI Conference on Creativity and Cognition, (157-160)
  113. Ouni A, Kessentini M, Bechikh S and Sahraoui H (2015). Prioritizing code-smells correction tasks using chemical reaction optimization, Software Quality Journal, 23:2, (323-361), Online publication date: 1-Jun-2015.
  114. Cardoso B and Figueiredo E Co-Occurrence of Design Patterns and Bad Smells in Software Systems Proceedings of the annual conference on Brazilian Symposium on Information Systems: Information Systems: A Computer Socio-Technical Perspective - Volume 1, (347-354)
  115. Hecht G, Rouvoy R, Moha N and Duchien L Detecting antipatterns in Android apps Proceedings of the Second ACM International Conference on Mobile Software Engineering and Systems, (148-149)
  116. Klepper S, Krusche S, Peters S, Bruegge B and Alperowitz L Introducing continuous delivery of mobile apps in a corporate environment Proceedings of the Second International Workshop on Rapid Continuous Software Engineering, (5-11)
  117. Palomba F, Nucci D, Tufano M, Bavota G, Oliveto R, Poshyvanyk D and De Lucia A Landfill Proceedings of the 12th Working Conference on Mining Software Repositories, (482-485)
  118. Stephan M and Cordy J Identifying instances of model design patterns and antipatterns using model clone detection Proceedings of the Seventh International Workshop on Modeling in Software Engineering, (48-53)
  119. Fontana F, Braione P, Roveda R and Zanoni M A context-aware style of software design Proceedings of the Second International Workshop on Context for Software Development, (15-19)
  120. Hecht G An approach to detect Android antipatterns Proceedings of the 37th International Conference on Software Engineering - Volume 2, (766-768)
  121. Tufano M, Palomba F, Bavota G, Oliveto R, Di Penta M, De Lucia A and Poshyvanyk D When and why your code starts to smell bad Proceedings of the 37th International Conference on Software Engineering - Volume 1, (403-414)
  122. ACM
    Hill J and Feiock D (2014). Pin++: an object-oriented framework for writing pintools, ACM SIGPLAN Notices, 50:3, (133-141), Online publication date: 12-May-2015.
  123. Palomba F, Bavota G, Di Penta M, Oliveto R, Poshyvanyk D and De Lucia A (2015). Mining Version Histories for Detecting Code Smells, IEEE Transactions on Software Engineering, 41:5, (462-489), Online publication date: 1-May-2015.
  124. Santos Neto B, Ribeiro M, Silva V, Braga C, Lucena C and Costa E (2015). AutoRefactoring, Expert Systems with Applications: An International Journal, 42:3, (1652-1664), Online publication date: 15-Feb-2015.
  125. Song M and Tilevich E (2015). Reusing metadata across components, applications, and languages, Science of Computer Programming, 98:P4, (617-644), Online publication date: 1-Feb-2015.
  126. ACM
    Fenske W and Schulze S Code Smells Revisited Proceedings of the 9th International Workshop on Variability Modelling of Software-Intensive Systems, (3-10)
  127. Tekin U and Buzluca F (2014). A graph mining approach for detecting identical design structures in object-oriented design models, Science of Computer Programming, 95:P4, (406-425), Online publication date: 1-Dec-2014.
  128. ACM
    Kim S, Yi J and Elmqvist N Oopsy-daisy Proceedings of the Fifth Workshop on Beyond Time and Errors: Novel Evaluation Methods for Visualization, (142-146)
  129. ACM
    Sahin D, Kessentini M, Bechikh S and Deb K (2014). Code-Smell Detection as a Bilevel Problem, ACM Transactions on Software Engineering and Methodology, 24:1, (1-44), Online publication date: 14-Oct-2014.
  130. ACM
    Hill J and Feiock D Pin++: an object-oriented framework for writing pintools Proceedings of the 2014 International Conference on Generative Programming: Concepts and Experiences, (133-141)
  131. ACM
    Hall T, Zhang M, Bowes D and Sun Y (2014). Some Code Smells Have a Significant but Small Effect on Faults, ACM Transactions on Software Engineering and Methodology, 23:4, (1-39), Online publication date: 5-Sep-2014.
  132. Zazworka N, Vetro' A, Izurieta C, Wong S, Cai Y, Seaman C and Shull F (2014). Comparing four approaches for technical debt identification, Software Quality Journal, 22:3, (403-426), Online publication date: 1-Sep-2014.
  133. ACM
    Mkaouer M, Kessentini M, Bechikh S, Deb K and Ó Cinnéide M High dimensional search-based software engineering Proceedings of the 2014 Annual Conference on Genetic and Evolutionary Computation, (1263-1270)
  134. ACM
    Knowles B, Blair L, Walker S, Coulton P, Thomas L and Mullagh L Patterns of persuasion for sustainability Proceedings of the 2014 conference on Designing interactive systems, (1035-1044)
  135. ACM
    de Andrade H, Almeida E and Crnkovic I Architectural bad smells in software product lines Proceedings of the WICSA 2014 Companion Volume, (1-6)
  136. Palomba F, Bavota G, Di Penta M, Oliveto R, De Lucia A and Poshyvanyk D Detecting bad smells in source code using change history information Proceedings of the 28th IEEE/ACM International Conference on Automated Software Engineering, (268-278)
  137. Poelmans J, Kuznetsov S, Ignatov D and Dedene G (2013). Review, Expert Systems with Applications: An International Journal, 40:16, (6601-6623), Online publication date: 1-Nov-2013.
  138. ACM
    Athanasiadis I and Villa F A roadmap to domain specific programming languages for environmental modeling Proceedings of the 2013 ACM workshop on Domain-specific modeling, (27-32)
  139. Boussaa M, Kessentini W, Kessentini M, Bechikh S and Ben Chikha S Competitive Coevolutionary Code-Smells Detection Proceedings of the 5th International Symposium on Search Based Software Engineering - Volume 8084, (50-65)
  140. ACM
    Smith J and Simons C A comparison of two memetic algorithms for software class modelling Proceedings of the 15th annual conference on Genetic and evolutionary computation, (1485-1492)
  141. Guimaraes E, Garcia A, Figueiredo E and Cai Y Prioritizing software anomalies with software metrics and architecture blueprints Proceedings of the 5th International Workshop on Modeling in Software Engineering, (82-88)
  142. ACM
    Zhang L, Sun Y, Song H, Wang W and Huang G Detecting anti-patterns in Java EE runtime system model Proceedings of the Fourth Asia-Pacific Symposium on Internetware, (1-8)
  143. ACM
    Bruegge B, Krusche S and Wagner M Teaching Tornado Proceedings of the 8th edition of the Educators' Symposium, (5-12)
  144. ACM
    Kabbedijk J and Jansen S The role of variability patterns in multi-tenant business software Proceedings of the WICSA/ECSA 2012 Companion Volume, (143-146)
  145. Settas D, Cerone A and Fenz S (2012). Enhancing ontology-based antipattern detection using Bayesian networks, Expert Systems with Applications: An International Journal, 39:10, (9041-9053), Online publication date: 1-Aug-2012.
  146. ACM
    Arcelli D, Cortellessa V and Trubiani C Antipattern-based model refactoring for software performance improvement Proceedings of the 8th international ACM SIGSOFT conference on Quality of Software Architectures, (33-42)
  147. Letouzey J The SQALE method for evaluating technical debt Proceedings of the Third International Workshop on Managing Technical Debt, (31-36)
  148. Izurieta C, Vetrò A, Zazworka N, Cai Y, Seaman C and Shull F Organizing the technical debt landscape Proceedings of the Third International Workshop on Managing Technical Debt, (23-26)
  149. Tekin U, Erdemir U and Buzluca F Mining object-oriented design models for detecting identical design structures Proceedings of the 6th International Workshop on Software Clones, (43-49)
  150. Liu Y Energy-efficient synchronization through program patterns Proceedings of the First International Workshop on Green and Sustainable Software, (35-40)
  151. Mahouachi R, Kessentini M and Ghedira K A new design defects classification Proceedings of the 15th international conference on Fundamental Approaches to Software Engineering, (455-470)
  152. Dietrich J, McCartin C, Tempero E and Shah S On the existence of high-impact refactoring opportunities in programs Proceedings of the Thirty-fifth Australasian Computer Science Conference - Volume 122, (37-48)
  153. Ghannem A, Kessentini M and El Boussaidi G Detecting model refactoring opportunities using heuristic search Proceedings of the 2011 Conference of the Center for Advanced Studies on Collaborative Research, (175-187)
  154. ACM
    Cho H and Gray J Design patterns for metamodels Proceedings of the compilation of the co-located workshops on DSM'11, TMC'11, AGERE! 2011, AOOPES'11, NEAT'11, & VMIL'11, (25-32)
  155. Akiyama M, Hayashi S, Kobayashi T and Saeki M Supporting design model refactoring for improving class responsibility assignment Proceedings of the 14th international conference on Model driven engineering languages and systems, (455-469)
  156. ACM
    von Detten M Towards systematic, comprehensive trace generation for behavioral pattern detection through symbolic execution Proceedings of the 10th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools, (17-20)
  157. ACM
    Lavallée M and Robillard P Causes of premature aging during software development Proceedings of the 12th International Workshop on Principles of Software Evolution and the 7th annual ERCIM Workshop on Software Evolution, (61-70)
  158. Palyart M, Lugato D, Ober I and Bruel J MDE4HPC Proceedings of the 15th international conference on Integrating System and Software Modeling, (247-261)
  159. Coq T and Rosen J The SQALE quality and analysis models for assessing the quality of Ada source code Proceedings of the 16th Ada-Europe international conference on Reliable software technologies, (61-74)
  160. ACM
    von Detten M and Becker S Combining clustering and pattern detection for the reengineering of component-based software systems Proceedings of the joint ACM SIGSOFT conference -- QoSA and ACM SIGSOFT symposium -- ISARCS on Quality of software architectures -- QoSA and architecting critical systems -- ISARCS, (23-32)
  161. Elaasar M, Briand L and Labiche Y Domain-specific model verification with QVT Proceedings of the 7th European conference on Modelling foundations and applications, (282-298)
  162. Kessentini M, Sahraoui H, Boukadoum M and Wimmer M Search-based design defects detection by example Proceedings of the 14th international conference on Fundamental approaches to software engineering: part of the joint European conferences on theory and practice of software, (401-415)
  163. ACM
    Zschaler S and Rashid A Aspect assumptions Proceedings of the tenth international conference on Aspect-oriented software development, (93-104)
  164. ACM
    Trubiani C and Koziolek A Detection and solution of software performance antipatterns in palladio architectural models Proceedings of the 2nd ACM/SPEC International Conference on Performance engineering, (19-30)
  165. ACM
    Rech J and Ras E (2011). Aggregation of experiences in experience factories into software patterns, ACM SIGSOFT Software Engineering Notes, 36:2, (1-4), Online publication date: 14-Mar-2011.
  166. ACM
    Wang W and Huang G Pattern-driven performance optimization at runtime Proceedings of the 9th International Workshop on Adaptive and Reflective Middleware, (39-45)
  167. ACM
    Merkle B Stop the software architecture erosion Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion, (295-297)
  168. ACM
    Merkle B Stop the software architecture erosion Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion, (129-138)
  169. ACM
    Bouhours C, Leblanc H and Percebois C Sharing bad practices in design to improve the use of patterns Proceedings of the 17th Conference on Pattern Languages of Programs, (1-24)
  170. ACM
    Hammouda I, Mikkonen T, Oksanen V and Jaaksi A Open source legality patterns Proceedings of the 14th International Academic MindTrek Conference: Envisioning Future Media Environments, (207-214)
  171. Trubiani C A model-based framework for software performance feedback Proceedings of the 2010 international conference on Models in software engineering, (19-34)
  172. Sturm A, Balaban M and Maraee A (2010). Management of Correctness Problems in UML Class Diagrams Towards a Pattern-Based Approach, International Journal of Information System Modeling and Design, 1:4, (24-47), Online publication date: 1-Oct-2010.
  173. ACM
    Bavota G, De Lucia A, Marcus A and Oliveto R A two-step technique for extract class refactoring Proceedings of the 25th IEEE/ACM International Conference on Automated Software Engineering, (151-154)
  174. ACM
    Kessentini M, Vaucher S and Sahraoui H Deviance from perfection is a better criterion than closeness to evil when identifying risky code Proceedings of the 25th IEEE/ACM International Conference on Automated Software Engineering, (113-122)
  175. Moha N, Guéhéneuc Y, Meur A, Duchien L and Tiberghien A (2010). From a domain analysis to the specification and detection of code and design smells, Formal Aspects of Computing, 22:3, (345-361), Online publication date: 1-May-2010.
  176. Cortellessa V, Martens A, Reussner R and Trubiani C A process to effectively identify “guilty” performance antipatterns Proceedings of the 13th international conference on Fundamental Approaches to Software Engineering, (368-382)
  177. ACM
    Tilevich E and Song M Reusable enterprise metadata with pattern-based structural expressions Proceedings of the 9th International Conference on Aspect-Oriented Software Development, (25-36)
  178. Czibula G and Czibula I (2010). Clustering based adaptive refactoring, WSEAS Transactions on Information Science and Applications, 7:3, (391-400), Online publication date: 1-Mar-2010.
  179. Ireland A, Grov G and Butler M Reasoned modelling critics Proceedings of the Second international conference on Abstract State Machines, Alloy, B and Z, (189-202)
  180. ACM
    Pohjalainen P Self-configuring user interface components Proceedings of the 1st international workshop on Semantic models for adaptive interactive systems, (33-37)
  181. Kaczor O, Guéhéneuc Y and Hamel S (2010). Identification of design motifs with pattern matching algorithms, Information and Software Technology, 52:2, (152-168), Online publication date: 1-Feb-2010.
  182. Crasso M, Zunino A, Moreno L and Campo M (2009). JEETuningExpert, Expert Systems with Applications: An International Journal, 36:9, (11718-11729), Online publication date: 1-Nov-2009.
  183. ACM
    Enckevort T Refactoring UML models Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications, (635-646)
  184. Ferber M, Hunold S, Krellner B, Rauber T, Reichel T and Rünger G Reducing the class coupling of legacy code by a metrics-based relocation of class members Proceedings of the 4th IFIP TC 2 Central and East European conference on Advances in Software Engineering Techniques, (202-214)
  185. ACM
    Buckl S, Ernst A, Matthes F and Schweda C How to make your enterprise architecture management endeavor fail! Proceedings of the 16th Conference on Pattern Languages of Programs, (1-7)
  186. ACM
    Pérez J and Crespo Y Perspectives on automated correction of bad smells Proceedings of the joint international and annual ERCIM workshops on Principles of software evolution (IWPSE) and software evolution (Evol) workshops, (99-108)
  187. Goldstein M and Moshkovich D System Grokking Proceedings of the 7th international conference on Next generation information technologies and systems, (38-49)
  188. Rogers J and Pheatt C (2009). Integrating antipatterns into the computer science curriculum, Journal of Computing Sciences in Colleges, 24:5, (183-189), Online publication date: 1-May-2009.
  189. Ballis D, Baruzzo A and Comini M (2008). A Rule-based Method to Match Software Patterns Against UML Models, Electronic Notes in Theoretical Computer Science (ENTCS), 219, (51-66), Online publication date: 1-Nov-2008.
  190. ACM
    Tansey W and Tilevich E (2008). Annotation refactoring, ACM SIGPLAN Notices, 43:10, (295-312), Online publication date: 27-Oct-2008.
  191. ACM
    Chis A Automatic detection of memory anti-patterns Companion to the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications, (925-926)
  192. ACM
    Tansey W and Tilevich E Annotation refactoring Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications, (295-312)
  193. ACM
    Khomh F and Guéhéneuc Y DEQUALITE Proceedings of the 15th Conference on Pattern Languages of Programs, (1-7)
  194. Czibula I and Czibula G Refactorings detection using hierarchical clustering Proceedings of the 2nd conference on European computing conference, (332-337)
  195. ACM
    Grammenos D Game over Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, (1443-1452)
  196. Kotzé P, Renaud K and Biljon J (2008). Don't do this - Pitfalls in using anti-patterns in teaching human-computer interaction principles, Computers & Education, 50:3, (979-1008), Online publication date: 1-Apr-2008.
  197. Moha N, Guéhéneuc Y, Le Meur A and Duchien L A domain analysis to specify design defects and generate detection algorithms Proceedings of the Theory and practice of software, 11th international conference on Fundamental approaches to software engineering, (276-291)
  198. Moha N, Hacene A, Valtchev P and Guéhéneuc Y Refactorings of design defects using relational concept analysis Proceedings of the 6th international conference on Formal concept analysis, (289-304)
  199. Maeda K Web services for parsing source code by two-step parsing Proceedings of the 11th IASTED International Conference on Software Engineering and Applications, (391-396)
  200. ACM
    Moha N and Guéhéneuc Y Decor Proceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering, (527-528)
  201. ACM
    Trese T and Tilley S Documenting software systems with views V Proceedings of the 25th annual ACM international conference on Design of communication, (103-112)
  202. ACM
    Moha N Detection and correction of design defects in object-oriented designs Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion, (949-950)
  203. ACM
    Moha N and Guéhéneuc Y PTIDEJ and DECOR Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion, (868-869)
  204. ACM
    Mäkelä S and Leppänen V A software metric for coherence of class roles in Java programs Proceedings of the 5th international symposium on Principles and practice of programming in Java, (51-60)
  205. ACM
    Lozano A, Wermelinger M and Nuseibeh B Assessing the impact of bad smells using historical information Ninth international workshop on Principles of software evolution: in conjunction with the 6th ESEC/FSE joint meeting, (31-34)
  206. ACM
    Harman M and Tratt L Pareto optimal search based refactoring at the design level Proceedings of the 9th annual conference on Genetic and evolutionary computation, (1106-1113)
  207. Habli I and Kelly T Capturing and Replaying Architectural Knowledge through Derivational Analogy Proceedings of the Second Workshop on SHAring and Reusing architectural Knowledge Architecture, Rationale, and Design Intent
  208. Babu T. L, Seetha Ramaiah M, Prabhakar T and Rambabu D ArchVoc--Towards an Ontology for Software Architecture Proceedings of the Second Workshop on SHAring and Reusing architectural Knowledge Architecture, Rationale, and Design Intent
  209. Berenbach B and Konrad S Putting the "Engineering" into Software Engineering with Models Proceedings of the International Workshop on Modeling in Software Engineering
  210. Cheng Y and Liao J An ontology-based taxonomy of bad code smells Proceedings of the third conference on IASTED International Conference: Advances in Computer Science and Technology, (437-442)
  211. ACM
    Boustedt J, McCartney R, Tenenberg J, Winters T, Edwards S, Morrison B, Musicant D, Utting I and Zander C (2007). It seemed like a good idea at the time, ACM SIGCSE Bulletin, 39:1, (346-347), Online publication date: 7-Mar-2007.
  212. ACM
    Boustedt J, McCartney R, Tenenberg J, Winters T, Edwards S, Morrison B, Musicant D, Utting I and Zander C It seemed like a good idea at the time Proceedings of the 38th SIGCSE technical symposium on Computer science education, (346-347)
  213. ACM
    Rech J and Schäfer W (2007). Visual support of software engineers during development and maintenance, ACM SIGSOFT Software Engineering Notes, 32:2, (1-3), Online publication date: 1-Mar-2007.
  214. Laplante P, Hoffman R and Klein G (2007). Antipatterns in the Creation of Intelligent Systems, IEEE Intelligent Systems, 22:1, (91-95), Online publication date: 1-Jan-2007.
  215. Persson A and Stirna J How to transfer a knowledge management approach to an organization – a set of patterns and anti-patterns Proceedings of the 6th international conference on Practical Aspects of Knowledge Management, (243-252)
  216. Moha N, Rezgui J, Guéhéneuc, Y, Valtchev P and El Boussaidi G Using FCA to suggest refactorings to correct design defects Proceedings of the 4th international conference on Concept lattices and their applications, (269-275)
  217. Moha N, Rezgui J, Guéhéneuc Y, Valtchev P and El Boussaidi G Using FCA to Suggest Refactorings to Correct Design Defects Concept Lattices and Their Applications, (269-275)
  218. ACM
    Hadar E and Hadar I The composition refactoring triangle (CRT) practical toolkit Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications, (786-797)
  219. Kaminski P, Litoiu M and Müller H A design technique for evolving web services Proceedings of the 2006 conference of the Center for Advanced Studies on Collaborative research, (23-es)
  220. Elaasar M, Briand L and Labiche Y A metamodeling approach to pattern specification Proceedings of the 9th international conference on Model Driven Engineering Languages and Systems, (484-498)
  221. ACM
    Mäntylä M and Lassenius C Drivers for software refactoring decisions Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering, (297-306)
  222. ACM
    Seng O, Stammel J and Burkhart D Search-based determination of refactorings for improving the class structure of object-oriented systems Proceedings of the 8th annual conference on Genetic and evolutionary computation, (1909-1916)
  223. Börstler J Tenth workshop on pedagogies and tools for the teaching and learning of object oriented concepts Proceedings of the 2006 conference on Object-oriented technology: ECOOP 2006 workshop reader, (146-156)
  224. ACM
    Washizaki H, Kobayashi Y, Watanabe H, Nakajima E, Hagiwara Y, Hiranabe K and Fukuda K Experiments on quality evaluation of embedded software in Japan robot software design contest Proceedings of the 28th international conference on Software engineering, (551-560)
  225. ACM
    Kaminski P, Müller H and Litoiu M A design for adaptive web service evolution Proceedings of the 2006 international workshop on Self-adaptation and self-managing systems, (86-92)
  226. Kreimer J (2005). Adaptive Detection of Design Flaws, Electronic Notes in Theoretical Computer Science (ENTCS), 141:4, (117-136), Online publication date: 1-Dec-2005.
  227. ACM
    Langelier G, Sahraoui H and Poulin P Visualization-based analysis of quality for large-scale software systems Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering, (214-223)
  228. Van Biljon J, Kotzé P, Renaud K, McGee M and Seffah A The use of anti-patterns in human computer interaction Proceedings of the 2004 annual research conference of the South African institute of computer scientists and information technologists on IT research in developing countries, (176-185)
  229. Hammouda I, Koskinen J, Pussinen M, Katara M and Mikkonen T Adaptable Concern-Based Framework Specialization in UML Proceedings of the 19th IEEE international conference on Automated software engineering, (78-87)
  230. Duboc L, Wicks T and Emmerich W Experience with lightweight distributed component technologies in business intelligence systems Proceedings of the 4th international conference on Software Engineering and Middleware, (214-229)
  231. Hallal H, Alikacem E, Tunney W, Boroday S and Petrenko A Antipattern-Based Detection of Deficiencies in Java Multithreaded Software Proceedings of the Quality Software, Fourth International Conference, (258-267)
  232. Mak J, Choy C and Lun D Precise Modeling of Design Patterns in UML Proceedings of the 26th International Conference on Software Engineering, (252-261)
  233. Spinellis D (2003). Global Analysis and Transformations in Preprocessed Languages, IEEE Transactions on Software Engineering, 29:11, (1019-1030), Online publication date: 1-Nov-2003.
  234. ACM
    Williams L and Smith C PASASM Proceedings of the 3rd international workshop on Software and performance, (179-189)
  235. ACM
    Dugan R, Glinert E and Shokoufandeh A The Sisyphus database retrieval software performance antipattern Proceedings of the 3rd international workshop on Software and performance, (10-16)
  236. ACM
    Verkamo A, Gustafsson J, Nenonen L and Paakki J Design patterns in performance prediction Proceedings of the 2nd international workshop on Software and performance, (143-144)
  237. ACM
    Müller H, Jahnke J, Smith D, Storey M, Tilley S and Wong K Reverse engineering Proceedings of the Conference on The Future of Software Engineering, (47-60)
  238. Hanlon D, Spence M and Pfeiffer P Mixing Project Management and Distance Education Proceedings of the 13th Conference on Software Engineering Education & Training
  239. ACM
    Leijen D and Meijer E (1999). Domain specific embedded compilers, ACM SIGPLAN Notices, 35:1, (109-122), Online publication date: 1-Jan-2000.
  240. ACM
    Leijen D and Meijer E Domain specific embedded compilers Proceedings of the 2nd conference on Domain-specific languages, (109-122)
  241. Lloyd A, Dewar R and Pooley R (1999). Legacy information systems and business process change, Communications of the AIS, 2:4es, (2-es), Online publication date: 1-Dec-1999.
  242. Leijen D and Meijer E Domain specific embedded compilers Proceedings of the 2nd conference on Conference on Domain-Specific Languages - Volume 2, (9-9)
  243. Yannakopoulos D, Ferretti M and Schultz M Object Lessons Learned from an Intelligent Agents Framework for Telephony-Based Applications Proceedings of the Technology of Object-Oriented Languages and Systems
Contributors
  • The Bank of New York Mellon Corporation
  • MITRE Corporation

Recommendations

James W. Moore

As a colleague recently commented to me, “In this business, it's not hard to write a book about bad practices.” So perhaps it is not surprising when a book about bad practices turns out to be self-referential. Consider the irony of the following two passages: A goal for this book is to end the perpetual circle of hype and disillusionment that characterizes software technology (p. 5). AntiPatterns represents the latest concept in a series of revolutionary changes in computer science and software engineering technology (p. 3). The executive summary promises that “this book will help you identify and overcome prevalent, recurring roadblocks to successful software development.” The presentation is based on a currently popular design concept known as “patterns,” a technique for capturing and articulating intangible attributes formerly regarded as simply the result of applying “judgment” or “experience.” The authors say that a pattern becomes an antipattern when it causes more problems than it solves. In general, the antipatterns are described in a common format that enumerates the problem, causes, symptoms, consequences, and solution. Although the authors make no specific assertion, the book seems to be oriented toward management and senior technical staff. Following 25 pages of front matter and four chapters of introduction, the authors devote individual chapters to antipatterns related to software development, software architecture, and software project management. Four appendices provide a synopsis of the antipatterns, terminology, acronyms, and a bibliography. An index is also included. In all, 18 anti patterns are fully described; another 23 are described in abbreviated form. The value of the text probably lies in a systematic arrangement of material that many experienced practitioners would regard as common sense. Considered from this viewpoint, there are some problems, though. The schema of nearly 20 sections for describing antipatterns seems overly elaborate, including, for example, an item attributing each problem to sins like “sloth” and “avarice.” The introductory material is tedious, repetitive, and probably unnecessary—the antipattern descriptions are not difficult to understand on their own. The aids provided for finding and referencing half-remembered material are inadequate. The treatment is uneven: for example, a treatise on architecture is folded into the description of the solution of one of the antipatterns. In addition, the book includes too many references to the authors' own works and some unfortunate disparagement of particular technologies. All things considered, the treatment may be too specific to the Object Management Group's Common Object Request Broker Architecture (CORBA) technology, since it seems to suggest the CORBA Interface Description Language (IDL) as the solution to too many problems. My overall reaction to the book is mixed. Occasionally, the antipattern descriptions helped me to recognize and explain a problem about which I had previously had only a vague feeling. On the other hand, too many of the descriptions—such as “mushroom management”—are simply trite caricatures of problems that are well known. It is hard to take material like that seriously. On the other hand, maybe it is not meant to be taken seriously: page xxv says “you will find that AntiPatterns are fun to learn and discuss with colleagues.”

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.