• Corpus ID: 106526479

AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis

  title={AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis},
  author={William H. Brown and Raphael C. Malveau and Hays W. McCormick and Thomas J. Mowbray},
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… 
AntiPatterns - Theory and Practice
AntiPatterns is introduced as a concept which is supposed to solve some of the software development problems, which are becoming increasingly more complex and makes it hard to properly design and implement them.
2 Fundamentals of AntiPatterns 2 . 1 Design Patterns and AntiPatterns
This work discusses two new AntiPattern proposals and a variation to an existing AntiPattern that the author has encountered in software projects.
Antipatterns: A Compendium of Bad Practices in Software Development Processes
A list of harmful practices that represent anti-patterns in the implementation of software development processes, which arise as a result of bad practices within application development processes are presented.
Towards a framework for automatic correction of anti-patterns
  • Rodrigo Morales
  • Computer Science
    2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)
  • 2015
Meta-heuristics are applied to propose a technique for automated refactoring that improves design quality and finds a specific solution to remove anti-patterns.
Anti-pattern Mutations and Fault-proneness
This paper presents results from an empirical study aimed at understanding the evolution of anti-patterns in 27 releases of three open-source software systems: ArgoUML, Mylyn, and Rhino, and identifies some mutations that are more risky in terms of fault-proneness.
9.1.2 Antipatterns in Systems Engineering: An Opening Trio
Patterns provide a way for experts to document the lessons of their experience in such a way that novices can apply those lessons in new situations, and thus avoid costly errors. Furthermore, pattern
Experiences on Managing Technical Debt with Code Smells and AntiPatterns
The goal is to show how to effectively use common tools and the existing body of knowledge on code smells and AntiPatterns to detect technical debt and pay it back.
Antipattern-based model refactoring for software performance improvement
An approach that allows the refactoring of architectural models, based on antipatterns, that aims at providing performance improvement is introduced, which has been applied to a case study in the e-commerce domain and results demonstrate its effectiveness.


Refactoring object-oriented frameworks
This thesis gives some conservative algorithms for determining whether a program satisfies constraints, and describes how to use this design information to refactor a program.
Succeeding With Objects: Decision Frameworks for Project Management
This invaluable guide clearly outlines the necessary decisions and issues to consider before employing objects for software development projects. It is filled with practical advice distilled from the
Big Ball of Mud
This paper examines the most frequently deployed architecture: the BIG BALL OF MUD, and explores the forces that encourage the emergence of a BIG BALL of MUD and the undeniable effectiveness of this approach to software architecture.
Reengineering of old systems to an object-oriented architecture
The goal is to show how an object-oriented development method can be used to gradually modernize an old system, i.e re-engineer the system, by showing how three typical cases of re-engineering are related to object- oriented development.
Software Architectures for Shared Information Systems
This paper reviews historical examples of shared information systems in three different applications whose requirements share some common features about collecting, manipulating, and preserving large bodies of complex information.
Migrating Legacy Systems: Gateways, Interfaces, and the Incremental Approach
Focusing on data migration, the authors outline key techniques for transforming a legacy IS into a flexible system that meets current needs and is adaptable to unpredictable future changes and advocate a step-by-step strategy that migrates the system to a decomposable target environment while the current IS remains completely operational.
Experiences Applying a Practical Architectural Method
This paper briefly introduces the method of developing and testing a practical software architecture method and describes the experiences with its “alpha” and “beta” applications to two U.S. Army management information systems.
Framework-Based Software Development in C++
This book discusses the marriage between the WWW and CORBA, the role of Object Databases in Frameworks, and the Economics of In-house Framework Development.
Object-Oriented Design Heuristics
Object-Oriented Design Heuristics offers insight into object-oriented design improvement and gives programmers of all levels a fast track to understanding the concepts of object- oriented programming.
Analysis patterns - reusable object models
  • M. Fowler
  • Computer Science
    Addison-Wesley series in object-oriented software engineering
  • 1997
The World of Patterns, a Treatise on Conceptual Models and Business Process Reengineering, and Design Templates for Other Techniques is presented, with a focus on patterns for type model design Templates.