Refactoring for Software Design Smells: Managing Technical Debt
Awareness of design smells – indicators of common design problems – helps developers or software engineers understand mistakes made while designing, what design principles were overlooked or misapplied, and what principles need to be applied properly to address those smells through refactoring. Developers and software engineers may "know" principles and patterns, but are not aware of the "smells" that exist in their design because of wrong or mis-application of principles or patterns. These smells tend to contribute heavily to technical debt – further time owed to fix projects thought to be complete – and need to be addressed via proper refactoring.Refactoring for Software Design Smells presents 25 structural design smells, their role in identifying design issues, and potential refactoring solutions. Organized across common areas of software design, each smell is presented with diagrams and examples illustrating the poor design practices and the problems that result, creating a catalog of nuggets of readily usable information that developers or engineers can apply in their projects. The authors distill their research and experience as consultants and trainers, providing insights that have been used to improve refactoring and reduce the time and costs of managing software projects. Along the way they recount anecdotes from actual projects on which the relevant smell helped address a design issue. - Contains a comprehensive catalog of 25 structural design smells (organized around four fundamental designprinciples) that contribute to technical debt in software projects - Presents a unique naming scheme for smells that helps understand the cause of a smell as well as pointstoward its potential refactoring - Includes illustrative examples that showcase the poor design practices underlying a smell and the problemsthat result - Covers pragmatic techniques for refactoring design smells to manage technical debt and to create and maintainhigh-quality software in practice - Presents insightful anecdotes and case studies drawn from the trenches of real-world projects
1132571565
Refactoring for Software Design Smells: Managing Technical Debt
Awareness of design smells – indicators of common design problems – helps developers or software engineers understand mistakes made while designing, what design principles were overlooked or misapplied, and what principles need to be applied properly to address those smells through refactoring. Developers and software engineers may "know" principles and patterns, but are not aware of the "smells" that exist in their design because of wrong or mis-application of principles or patterns. These smells tend to contribute heavily to technical debt – further time owed to fix projects thought to be complete – and need to be addressed via proper refactoring.Refactoring for Software Design Smells presents 25 structural design smells, their role in identifying design issues, and potential refactoring solutions. Organized across common areas of software design, each smell is presented with diagrams and examples illustrating the poor design practices and the problems that result, creating a catalog of nuggets of readily usable information that developers or engineers can apply in their projects. The authors distill their research and experience as consultants and trainers, providing insights that have been used to improve refactoring and reduce the time and costs of managing software projects. Along the way they recount anecdotes from actual projects on which the relevant smell helped address a design issue. - Contains a comprehensive catalog of 25 structural design smells (organized around four fundamental designprinciples) that contribute to technical debt in software projects - Presents a unique naming scheme for smells that helps understand the cause of a smell as well as pointstoward its potential refactoring - Includes illustrative examples that showcase the poor design practices underlying a smell and the problemsthat result - Covers pragmatic techniques for refactoring design smells to manage technical debt and to create and maintainhigh-quality software in practice - Presents insightful anecdotes and case studies drawn from the trenches of real-world projects
69.95 In Stock
Refactoring for Software Design Smells: Managing Technical Debt

Refactoring for Software Design Smells: Managing Technical Debt

Refactoring for Software Design Smells: Managing Technical Debt

Refactoring for Software Design Smells: Managing Technical Debt

eBook

$69.95 

Available on Compatible NOOK devices, the free NOOK App and in My Digital Library.
WANT A NOOK?  Explore Now

Related collections and offers


Overview

Awareness of design smells – indicators of common design problems – helps developers or software engineers understand mistakes made while designing, what design principles were overlooked or misapplied, and what principles need to be applied properly to address those smells through refactoring. Developers and software engineers may "know" principles and patterns, but are not aware of the "smells" that exist in their design because of wrong or mis-application of principles or patterns. These smells tend to contribute heavily to technical debt – further time owed to fix projects thought to be complete – and need to be addressed via proper refactoring.Refactoring for Software Design Smells presents 25 structural design smells, their role in identifying design issues, and potential refactoring solutions. Organized across common areas of software design, each smell is presented with diagrams and examples illustrating the poor design practices and the problems that result, creating a catalog of nuggets of readily usable information that developers or engineers can apply in their projects. The authors distill their research and experience as consultants and trainers, providing insights that have been used to improve refactoring and reduce the time and costs of managing software projects. Along the way they recount anecdotes from actual projects on which the relevant smell helped address a design issue. - Contains a comprehensive catalog of 25 structural design smells (organized around four fundamental designprinciples) that contribute to technical debt in software projects - Presents a unique naming scheme for smells that helps understand the cause of a smell as well as pointstoward its potential refactoring - Includes illustrative examples that showcase the poor design practices underlying a smell and the problemsthat result - Covers pragmatic techniques for refactoring design smells to manage technical debt and to create and maintainhigh-quality software in practice - Presents insightful anecdotes and case studies drawn from the trenches of real-world projects

Product Details

ISBN-13: 9780128016466
Publisher: Morgan Kaufmann Publishers
Publication date: 10/31/2014
Sold by: Barnes & Noble
Format: eBook
Pages: 258
File size: 24 MB
Note: This product may take a few minutes to download.

About the Author

Girish Suryanarayana is currently a Senior Research Scientist at Research and Technology Center, Siemens Technology and Services Pvt. Ltd. Bangalore, India. At Siemens, he is involved in providing architectural guidance to software development teams, pursuing research in topics related to software architecture and cloud computing, and conducting internal software design and architecture training. Girish is a member of the IEEE Software Advisory Board and is the General Chair for the IEEE Software Experts Summit 2014 conference. He actively contributes to software engineering conferences. In 2013, he was on the program committee for the Software Engineering In Practice (SEIP) track at the 35th International Conference on Software Engineering (ICSE). Girish received a PhD in Information and Computer Science from the University of California, Irvine, in 2007. His research interests include software architecture, design patterns, design smells, refactoring, cloud computing, and reputation-based trust management systems. He is an IEEE-certified Software Engineering Certified Instructor (SECI) and regularly conducts training for the IEEE SWEBOK Certificate Program (SCP) and IEEE Certified Software Development Associate (CSDA) programs. He has also helped contribute course material for the IEEE's SWEBOK Certificate Program (SCP). He is regularly invited by local universities to deliver guest lectures on software architecture and design topics. Additionally, he is the General Chair for IEEE SES (Software Expert Summit) 2014 which is being organized by IEEE Software.Ganesh Samarthyam has more than 11 years of experience in the IT industry. He is an independent consultant and corporate trainer based in Bangalore, India. Earlier, he worked for the Software Architecture and Development team in Siemens Corporate Research & Technologies in Bangalore. His work involved providing consultancy to development teams on code and design quality, pursuing applied research in the areas of software design, and conducting trainings on topics related to software design and refactoring and quality-driven development. Prior to Siemens, he worked in Hewlett-Packard's C++ compiler team for 5 years where he also represented HP in the ANSI/ISO C++ standardization committee. He is an IEEE-certified Software Engineering Certified Instructor (SECI) and regularly conducts training for the IEEE SWEBOK Certificate Program (SCP) and IEEE Certified Software Development Associate (CSDA) program. He has also helped contribute course material for the IEEE's SWEBOK Certificate Program (SCP). Ganesh has authored/co-authored several books on programming. His latest book titled "Oracle Certified Professional Java SE 7 Programmer Exams 1Z0-804 and 1Z0-805" (co-authored with Tushar Sharma) has been published by Apress in 2013. In his free time, he also regularly contributes to a column on software programming and design in "Open Source For You magazine. His areas of interest include design smells and refactoring, bug patterns, software quality assessment methods, and programming languages. He can be reached at sgganesh@gmail.com.
Girish Suryanarayana is currently a Senior Research Scientist at Research and Technology Center, Siemens Technology and Services Pvt. Ltd. Bangalore, India. At Siemens, he is involved in providing architectural guidance to software development teams, pursuing research in topics related to software architecture and cloud computing, and conducting internal software design and architecture training. Girish is a member of the IEEE Software Advisory Board and is the General Chair for the IEEE Software Experts Summit 2014 conference. He actively contributes to software engineering conferences. In 2013, he was on the program committee for the Software Engineering In Practice (SEIP) track at the 35th International Conference on Software Engineering (ICSE). Girish received a PhD in Information and Computer Science from the University of California, Irvine, in 2007. His research interests include software architecture, design patterns, design smells, refactoring, cloud computing, and reputation-based trust management systems. He is an IEEE-certified Software Engineering Certified Instructor (SECI) and regularly conducts training for the IEEE SWEBOK Certificate Program (SCP) and IEEE Certified Software Development Associate (CSDA) programs. He has also helped contribute course material for the IEEE’s SWEBOK Certificate Program (SCP). He is regularly invited by local universities to deliver guest lectures on software architecture and design topics. Additionally, he is the General Chair for IEEE SES (Software Expert Summit) 2014 which is being organized by IEEE Software.
Ganesh Samarthyam has more than 11 years of experience in the IT industry. He is an independent consultant and corporate trainer based in Bangalore, India. Earlier, he worked for the Software Architecture and Development team in Siemens Corporate Research & Technologies in Bangalore. His work involved providing consultancy to development teams on code and design quality, pursuing applied research in the areas of software design, and conducting trainings on topics related to software design and refactoring and quality-driven development. Prior to Siemens, he worked in Hewlett-Packard's C++ compiler team for 5 years where he also represented HP in the ANSI/ISO C++ standardization committee. He is an IEEE-certified Software Engineering Certified Instructor (SECI) and regularly conducts training for the IEEE SWEBOK Certificate Program (SCP) and IEEE Certified Software Development Associate (CSDA) program. He has also helped contribute course material for the IEEE’s SWEBOK Certificate Program (SCP). Ganesh has authored/co-authored several books on programming. His latest book titled "Oracle Certified Professional Java SE 7 Programmer Exams 1Z0-804 and 1Z0-805" (co-authored with Tushar Sharma) has been published by Apress in 2013. In his free time, he also regularly contributes to a column on software programming and design in “Open Source For You” magazine. His areas of interest include design smells and refactoring, bug patterns, software quality assessment methods, and programming languages. He can be reached at sgganesh@gmail.com.
Tushar Sharma is currently a Technical Expert in the Software Architecture and Development group at the Research and Technology Center, Siemens Technology and Services Pvt. Ltd., Bangalore, India. His work at Siemens involves researching and providing consultation on topics related to software design, refactoring, testability, design patterns, and change impact analysis. He has a Masters degree in Computer Science from the Indian Institute of Technology-Madras (IIT-M), Chennai, India, where he specialized in design patterns and refactoring. Tushar conducts several internal training sessions on topics related to software design and refactoring. He has been actively pursuing his research interests that resulted in several patents, research papers, and tools related to software design and refactoring. He is also the co-author of the book “Oracle Certified Professional Java SE 7 Programmer Exams 1Z0-804 and 1Z0-805" published by Apress in 2013. Additionally, he is the Local Publicity Chair for IEEE SES (Software Expert Summit) 2014.

Table of Contents

Preface - Technical Debt - Design Smells - Abstraction - Encapsulation - Modularization - Hierarchy - Smell Sociology - Repaying Technical Debt in Practice Appendix A: List of object-oriented design principles Appendix B: List of software tools for replaying technical debt Appendix C: Notations for figures that have been used in the book Appendix D: Further suggested reading

What People are Saying About This

From the Publisher

Software Design Quality to Manage Technical Debt

From the B&N Reads Blog

Customer Reviews