Object-Oriented Reengineering Patterns

┬╖ ┬╖
┬╖ Elsevier
рмЗрммрнБрмХрнН
282
рмкрнГрм╖рнНрмарм╛рмЧрнБрнЬрм┐рмХ
рмпрнЛрмЧрнНрнЯ
рм░рнЗрмЯрм┐рмВ рмУ рм╕рморнАрмХрнНрм╖рм╛рмЧрнБрнЬрм┐рмХрнБ рмпрм╛рмЮрнНрмЪ рмХрм░рм╛рмпрм╛рмЗрмирм╛рм╣рм┐рмБ ┬армЕрмзрм┐рмХ рмЬрм╛рмгрмирнНрмдрнБ

рмПрм╣рм┐ рмЗрммрнБрмХрнН рммрм┐рм╖рнЯрм░рнЗ

The documentation is missing or obsolete, and the original developers have departed. Your team has limited understanding of the system, and unit tests are missing for many, if not all, of the components. When you fix a bug in one place, another bug pops up somewhere else in the system. Long rebuild times make any change difficult. All of these are signs of software that is close to the breaking point.Many systems can be upgraded or simply thrown away if they no longer serve their purpose. Legacy software, however, is crucial for operations and needs to be continually available and upgraded. How can you reduce the complexity of a legacy system sufficiently so that it can continue to be used and adapted at acceptable cost?Based on the authors' industrial experiences, this book is a guide on how to reverse engineer legacy systems to understand their problems, and then reengineer those systems to meet new demands. Patterns are used to clarify and explain the process of understanding large code bases, hence transforming them to meet new requirements. The key insight is that the right design and organization of your system is not something that can be evident from the initial requirements alone, but rather as a consequence of understanding how these requirements evolve.* Describes how to reverse engineer a monolithic system to understand how it really works and how to identify potential problems.* Includes reengineering patterns that tackle well-known reengineering techniques often encountered in object-oriented programming, such as introducing polymorphism, factoring out common behavior, detecting duplicated code, and understanding design.* Shows how to build a culture of continuous reengineering for achieving flexible and maintainable object-oriented systems.

рм▓рнЗрмЦрмХрмЩрнНрмХ рммрм┐рм╖рнЯрм░рнЗ

Serge Demeyer is a Professor in the Department of Mathematics and Computer Science at the University of Antwerp in Belgium. He also serves as a technical leader of the FAMOOS esprit project; a project whose goal is to come up with a set of reengineering techniques and tools to support the development of object-oriented frameworks. He has been involved in the organization of several workshops (at ECOOP and ESEC) and one tutorial concerning object-oriented reengineering.St├йphane Ducasse is a post doctoral researcher in the Software Composition Group in Berne, serving as technical leaders of the FAMOOS esprit project; a project whose goal it is to come up with a set of reengineering techniques and tools to support the development of object-oriented frameworks. He has been involved in the organization of several workshops (at ECOOP and ESEC) and one tutorial concerning object-oriented reengineering.Oscar Nierstrasz is a Professor of Computer Science at the University of Berne, where he leads the Software Composition Group. He has been active in the object-oriented research community for many years, serving on program committees of among others, ECOOP, OOPSLA and ESEC. He gave several tutorials and invited talks on object-oriented technology at various international conferences and workshops.

рмПрм╣рм┐ рмЗрммрнБрмХрнНтАНрмХрнБ рморнВрм▓рнНрнЯрм╛рмЩрнНрмХрми рмХрм░рмирнНрмдрнБ

рмЖрмкрмг рмХрмг рмнрм╛рммрнБрмЫрмирнНрмдрм┐ рмдрм╛рм╣рм╛ рмЖрмормХрнБ рмЬрмгрм╛рмирнНрмдрнБред

рмкрнЭрм┐рммрм╛ рмкрм╛рмЗрмБ рмдрмернНрнЯ

рм╕рнНрморм╛рм░рнНрмЯрмлрнЛрми рмУ рмЯрм╛рммрм▓рнЗрмЯ
Google Play Books рмЖрмкрнНрмХрнБ, Android рмУ iPad/iPhone рмкрм╛рмЗрмБ рмЗрмирм╖рнНрмЯрм▓рнН рмХрм░рмирнНрмдрнБред рмПрм╣рм╛ рм╕рнНрм╡рмЪрм╛рм│рм┐рмд рмнрм╛рммрнЗ рмЖрмкрмгрмЩрнНрмХ рмЖрмХрм╛рмЙрмгрнНрмЯрм░рнЗ рм╕рм┐рмЩрнНрмХ рм╣рнЛтАНрмЗрмпрм┐рмм рмПрммрмВ рмЖрмкрмг рмпрнЗрмЙрмБрмарм┐ рмерм╛рмЖрмирнНрмдрнБ рмирм╛ рмХрм╛рм╣рм┐рмБрмХрм┐ рмЖрмирм▓рм╛рмЗрмирнН рмХрм┐рморнНрммрм╛ рмЕрмлрм▓рм╛рмЗрмирнНтАНрм░рнЗ рмкрнЭрм┐рммрм╛ рмкрм╛рмЗрмБ рмЕрмирнБрмормдрм┐ рмжрнЗрммред
рм▓рм╛рмкрмЯрмк рмУ рмХрморнНрмкрнНрнЯрнБрмЯрм░
рмирм┐рмЬрм░ рмХрморнНрмкрнНрнЯрнБрмЯрм░рнНтАНрм░рнЗ рмерм┐рммрм╛ рн▒рнЗрммрнН рммрнНрм░рм╛рмЙрмЬрм░рнНтАНрмХрнБ рммрнНрнЯрммрм╣рм╛рм░ рмХрм░рм┐ Google Playрм░рнБ рмХрм┐рмгрм┐рмерм┐рммрм╛ рмЕрмбрм┐рмУрммрнБрмХрнНтАНрмХрнБ рмЖрмкрмг рм╢рнБрмгрм┐рмкрм╛рм░рм┐рммрнЗред
рмЗ-рм░рм┐рмбрм░рнН рмУ рмЕрмирнНрнЯ рмбрм┐рмнрм╛рмЗрм╕рнНтАНрмЧрнБрнЬрм┐рмХ
Kobo eReaders рмкрм░рм┐ e-ink рмбрм┐рмнрм╛рмЗрм╕рмЧрнБрмбрм╝рм┐рмХрм░рнЗ рмкрмврм╝рм┐рммрм╛ рмкрм╛рмЗрмБ, рмЖрмкрмгрмЩрнНрмХрнБ рмПрмХ рмлрм╛рмЗрм▓ рмбрм╛рмЙрмирм▓рнЛрмб рмХрм░рм┐ рмПрм╣рм╛рмХрнБ рмЖрмкрмгрмЩрнНрмХ рмбрм┐рмнрм╛рмЗрм╕рмХрнБ рмЯрнНрм░рм╛рмирнНрм╕рмлрм░ рмХрм░рм┐рммрм╛рмХрнБ рм╣рнЗрммред рм╕рморм░рнНрмерм┐рмд eReadersрмХрнБ рмлрм╛рмЗрм▓рмЧрнБрмбрм╝рм┐рмХ рмЯрнНрм░рм╛рмирнНрм╕рмлрм░ рмХрм░рм┐рммрм╛ рмкрм╛рмЗрмБ рм╕рм╣рм╛рнЯрмдрм╛ рмХрнЗрмирнНрмжрнНрм░рм░рнЗ рмерм┐рммрм╛ рм╕рммрм┐рм╢рнЗрм╖ рмирм┐рм░рнНрмжрнНрмжрнЗрм╢рм╛рммрм│рнАрмХрнБ рмЕрмирнБрм╕рм░рмг рмХрм░рмирнНрмдрнБред