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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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)
- 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.
- 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.
- 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.
- 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.
- 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)
- 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)
- 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.
- 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.
- 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)
- 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.
- 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)
- 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.
- 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.
- 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)
- Vegi L and Valente M Code smells in Elixir Proceedings of the 30th IEEE/ACM International Conference on Program Comprehension, (580-584)
- 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.
- 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.
- Agrahari V and Chimalakonda S A Catalogue of Game-Specific Anti-Patterns Proceedings of the 15th Innovations in Software Engineering Conference, (1-10)
- 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.
- Tran V, Abdellatif M and Guéhéneuc Y Formalising Solutions to REST API Practices as Design (Anti)Patterns Service-Oriented Computing, (153-170)
- 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.
- 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.
- 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.
- 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)
- 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.
- 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)
- 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)
- 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.
- 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)
- 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)
- 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.
- Trindade R, da Silva Bigonha M and Ferreira K Oracles of Bad Smells Proceedings of the XXXIV Brazilian Symposium on Software Engineering, (62-71)
- 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)
- Vranić V, Vranić A and Khail W Growing Organizations with Patterns Proceedings of the European Conference on Pattern Languages of Programs 2020, (1-11)
- 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)
- 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)
- 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)
- 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)
- 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)
- Bessghaier N, Ouni A and Mkaouer M On the Diffusion and Impact of Code Smells in Web Applications Services Computing – SCC 2020, (67-84)
- 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.
- 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.
- 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.
- 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.
- 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)
- 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)
- 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.
- 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)
- Brada P and Picha P Software process anti-patterns catalogue Proceedings of the 24th European Conference on Pattern Languages of Programs, (1-10)
- 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)
- 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)
- Azadi U, Fontana F and Taibi D Architectural smells detected by tools Proceedings of the Second International Conference on Technical Debt, (88-97)
- 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.
- 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)
- 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.
- 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.
- 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)
- 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.
- 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)
- 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.
- Tymchuk Y, Ghafari M and Nierstrasz O JIT feedback Proceedings of the 26th Conference on Program Comprehension, (64-73)
- 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)
- 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)
- 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)
- 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)
- 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.
- 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.
- Nafees T, Coull N, Ferguson I and Sampson A Vulnerability anti-patterns Proceedings of the 24th Conference on Pattern Languages of Programs, (1-16)
- 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)
- 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.
- 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.
- 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)
- 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.
- 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.
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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.
- 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.
- 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.
- 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)
- 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.
- 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)
- Samarthyam G, Suryanarayana G and Sharma T Refactoring for software architecture smells Proceedings of the 1st International Workshop on Software Refactoring, (1-4)
- 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.
- 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)
- 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)
- 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.
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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.
- 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)
- 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.
- 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)
- 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)
- 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)
- 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.
- 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.
- 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)
- 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.
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- Hecht G An approach to detect Android antipatterns Proceedings of the 37th International Conference on Software Engineering - Volume 2, (766-768)
- 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)
- 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.
- 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.
- 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.
- 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.
- Fenske W and Schulze S Code Smells Revisited Proceedings of the 9th International Workshop on Variability Modelling of Software-Intensive Systems, (3-10)
- 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.
- 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)
- 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.
- 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)
- 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.
- 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.
- 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)
- 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)
- de Andrade H, Almeida E and Crnkovic I Architectural bad smells in software product lines Proceedings of the WICSA 2014 Companion Volume, (1-6)
- 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)
- 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.
- 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)
- 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)
- 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)
- 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)
- 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)
- Bruegge B, Krusche S and Wagner M Teaching Tornado Proceedings of the 8th edition of the Educators' Symposium, (5-12)
- 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)
- 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.
- 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)
- Letouzey J The SQALE method for evaluating technical debt Proceedings of the Third International Workshop on Managing Technical Debt, (31-36)
- 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)
- 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)
- Liu Y Energy-efficient synchronization through program patterns Proceedings of the First International Workshop on Green and Sustainable Software, (35-40)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- Palyart M, Lugato D, Ober I and Bruel J MDE4HPC Proceedings of the 15th international conference on Integrating System and Software Modeling, (247-261)
- 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)
- 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)
- 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)
- 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)
- Zschaler S and Rashid A Aspect assumptions Proceedings of the tenth international conference on Aspect-oriented software development, (93-104)
- 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)
- 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.
- Wang W and Huang G Pattern-driven performance optimization at runtime Proceedings of the 9th International Workshop on Adaptive and Reflective Middleware, (39-45)
- 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)
- 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)
- 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)
- 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)
- Trubiani C A model-based framework for software performance feedback Proceedings of the 2010 international conference on Models in software engineering, (19-34)
- 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.
- 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)
- 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)
- 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.
- 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)
- 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)
- 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.
- 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)
- Pohjalainen P Self-configuring user interface components Proceedings of the 1st international workshop on Semantic models for adaptive interactive systems, (33-37)
- 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.
- 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.
- Enckevort T Refactoring UML models Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications, (635-646)
- 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)
- 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)
- 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)
- Goldstein M and Moshkovich D System Grokking Proceedings of the 7th international conference on Next generation information technologies and systems, (38-49)
- 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.
- 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.
- Tansey W and Tilevich E (2008). Annotation refactoring, ACM SIGPLAN Notices, 43:10, (295-312), Online publication date: 27-Oct-2008.
- 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)
- Tansey W and Tilevich E Annotation refactoring Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications, (295-312)
- Khomh F and Guéhéneuc Y DEQUALITE Proceedings of the 15th Conference on Pattern Languages of Programs, (1-7)
- Czibula I and Czibula G Refactorings detection using hierarchical clustering Proceedings of the 2nd conference on European computing conference, (332-337)
- Grammenos D Game over Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, (1443-1452)
- 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.
- 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)
- 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)
- 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)
- Moha N and Guéhéneuc Y Decor Proceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering, (527-528)
- 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)
- 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)
- Moha N and Guéhéneuc Y P
TIDEJ and DECOR Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion, (868-869) - 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)
- 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)
- 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)
- 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
- 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
- Berenbach B and Konrad S Putting the "Engineering" into Software Engineering with Models Proceedings of the International Workshop on Modeling in Software Engineering
- 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)
- 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.
- 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)
- 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.
- 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.
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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.
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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.
- Williams L and Smith C PASASM Proceedings of the 3rd international workshop on Software and performance, (179-189)
- 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)
- 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)
- 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)
- Hanlon D, Spence M and Pfeiffer P Mixing Project Management and Distance Education Proceedings of the 13th Conference on Software Engineering Education & Training
- Leijen D and Meijer E (1999). Domain specific embedded compilers, ACM SIGPLAN Notices, 35:1, (109-122), Online publication date: 1-Jan-2000.
- Leijen D and Meijer E Domain specific embedded compilers Proceedings of the 2nd conference on Domain-specific languages, (109-122)
- 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.
- Leijen D and Meijer E Domain specific embedded compilers Proceedings of the 2nd conference on Conference on Domain-Specific Languages - Volume 2, (9-9)
- 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
Index Terms
- AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis