{"id":23682,"date":"2023-05-05T07:42:59","date_gmt":"2023-05-05T07:42:59","guid":{"rendered":"https:\/\/www.booksofall.com\/in\/?post_type=product&#038;p=23682"},"modified":"2023-05-05T07:43:45","modified_gmt":"2023-05-05T07:43:45","slug":"object-oriented-reengineering-patterns-2","status":"publish","type":"product","link":"https:\/\/www.booksofall.com\/in\/object-oriented-reengineering-patterns-2\/","title":{"rendered":"Object-Oriented Reengineering Patterns"},"content":{"rendered":"<h2>Chapter 1 &#8211; Reengineering Patterns<\/h2>\n<h4>1.1 Why do we Reengineer?<\/h4>\n<p>A legacy is something valuable that you have inherited. Similarly, <a href=\"https:\/\/www.indeed.com\/career-advice\/career-development\/legacy-software\">legacy software<\/a> is valuable software that you have inherited. The fact you have inherited it may mean that it is somewhat old-fashioned. It may have been developed using an outdated programming language, or an obsolete development method. Most likely it has changed hands several times, and shows signs of many modifications and adaptations.<\/p>\n<p>Perhaps your legacy software is not even that old. With rapid development tools and rapid turnover in personnel, software systems can turn into legacies more quickly than you might imagine. The fact that the software is valuable, however, means that you do not just want to throw it away.<\/p>\n<p>A piece of legacy software is critical to your business, and that is precisely the source of all the problems: in order for you to be successful at your business, you must constantly be prepared to adapt to a changing business environment. The software that you use to keep your business running must therefore also be adaptable. Fortunately a lot of software can be upgraded, or simply thrown away and replaced when it no longer serves its purpose. But a legacy system can neither be replaced nor upgraded except at a high cost. The goal of reengineering is to reduce the complexity of a legacy system sufficiently that it can continue to be used and adapted at an acceptable cost.<\/p>\n<p>The specific reasons that you might want to reengineer a software system can vary significantly. For example:<\/p>\n<ul>\n<li>You might want to unbundle a <a href=\"https:\/\/www.atlassian.com\/microservices\/microservices-architecture\/microservices-vs-monolith\">monolithic system<\/a> so that the individual parts can be more easily marketed separately or combined in different ways.<\/li>\n<li>You might want to <a href=\"https:\/\/ignaciochiazzo.medium.com\/6-steps-to-improve-performance-in-software-engineering-7d5346313807\">improve performance<\/a>. (Experience shows that the right sequence is \u201cfirst do it, then do it right, then do it fast\u201d, so you might want to <a href=\"https:\/\/fullscale.io\/blog\/software-reengineering\/\">reengineer<\/a> to clean up the code before thinking about performance.)<\/li>\n<li>You might want to port the system to a new platform. Before you do that, you may need to rework the architecture to clearly separate the platform-dependent code.<\/li>\n<li>You might want to extract the design as a first step to a new implementation.<\/li>\n<li>You might want to exploit new technology, such as emerging standards or libraries, as a step towards cutting maintenance costs.<\/li>\n<li>You might want to reduce human dependencies by documenting knowledge about the system and making it easier to maintain.<\/li>\n<\/ul>\n<p>Though there may be many different reasons for reengineering a system, as we shall see, however, the actual technical problems with legacy software are often very similar. It is this fact that allows us to use some very general techniques to do at least part of the job of reengineering.<\/p>\n","protected":false},"excerpt":{"rendered":"<p><iframe frameborder=\"0\" allowtransparency=\"true\" allowFullscreen=\"true\" style=\"width: 100%; height: 800px; border: none;\" src=\"https:\/\/online.visual-paradigm.com\/share\/book\/object-oriented-reengineering-patterns-1cg6ctd0jd?p=1\"><\/iframe><\/p>\n","protected":false},"featured_media":23686,"template":"","meta":{"_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"Software reengineering is the process of modifying and updating existing software systems, try to learn more about it in this book now!"},"product_brand":[],"product_cat":[384],"product_tag":[],"class_list":{"0":"post-23682","1":"product","2":"type-product","3":"status-publish","4":"has-post-thumbnail","6":"product_cat-software-architecture","8":"first","9":"instock","10":"shipping-taxable","11":"product-type-simple"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Object-Oriented Reengineering Patterns - BooksOffAll Indian<\/title>\n<meta name=\"description\" content=\"Software reengineering is the process of modifying and updating existing software systems, try to learn more about it in this book now!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.booksofall.com\/in\/object-oriented-reengineering-patterns-2\/\" \/>\n<meta property=\"og:locale\" content=\"hi_IN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Object-Oriented Reengineering Patterns - BooksOffAll Indian\" \/>\n<meta property=\"og:description\" content=\"Software reengineering is the process of modifying and updating existing software systems, try to learn more about it in this book now!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.booksofall.com\/in\/object-oriented-reengineering-patterns-2\/\" \/>\n<meta property=\"og:site_name\" content=\"BooksOffAll Indian\" \/>\n<meta property=\"article:modified_time\" content=\"2023-05-05T07:43:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.booksofall.com\/in\/wp-content\/uploads\/sites\/13\/2023\/05\/Object-Oriented-Reengineering-Patterns.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.booksofall.com\/in\/wp-content\/uploads\/sites\/13\/2023\/05\/Object-Oriented-Reengineering-Patterns.jpg\" \/>\n<meta name=\"twitter:label1\" content=\"\u0905\u0928\u0941\u092e\u093e\u0928\u093f\u0924 \u092a\u0922\u093c\u0928\u0947 \u0915\u093e \u0938\u092e\u092f\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 \u092e\u093f\u0928\u091f\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.booksofall.com\/in\/object-oriented-reengineering-patterns-2\/\",\"url\":\"https:\/\/www.booksofall.com\/in\/object-oriented-reengineering-patterns-2\/\",\"name\":\"Object-Oriented Reengineering Patterns - BooksOffAll Indian\",\"isPartOf\":{\"@id\":\"https:\/\/www.booksofall.com\/in\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.booksofall.com\/in\/object-oriented-reengineering-patterns-2\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.booksofall.com\/in\/object-oriented-reengineering-patterns-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.booksofall.com\/in\/wp-content\/uploads\/sites\/13\/2023\/05\/Object-Oriented-Reengineering-Patterns.jpg\",\"datePublished\":\"2023-05-05T07:42:59+00:00\",\"dateModified\":\"2023-05-05T07:43:45+00:00\",\"description\":\"Software reengineering is the process of modifying and updating existing software systems, try to learn more about it in this book now!\",\"breadcrumb\":{\"@id\":\"https:\/\/www.booksofall.com\/in\/object-oriented-reengineering-patterns-2\/#breadcrumb\"},\"inLanguage\":\"hi-IN\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.booksofall.com\/in\/object-oriented-reengineering-patterns-2\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"hi-IN\",\"@id\":\"https:\/\/www.booksofall.com\/in\/object-oriented-reengineering-patterns-2\/#primaryimage\",\"url\":\"https:\/\/www.booksofall.com\/in\/wp-content\/uploads\/sites\/13\/2023\/05\/Object-Oriented-Reengineering-Patterns.jpg\",\"contentUrl\":\"https:\/\/www.booksofall.com\/in\/wp-content\/uploads\/sites\/13\/2023\/05\/Object-Oriented-Reengineering-Patterns.jpg\",\"width\":\"827\",\"height\":\"1169\",\"caption\":\"Object-Oriented Reengineering Patterns\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.booksofall.com\/in\/object-oriented-reengineering-patterns-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.booksofall.com\/in\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Categories\",\"item\":\"https:\/\/www.booksofall.com\/in\/categories\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Object-Oriented Reengineering Patterns\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.booksofall.com\/in\/#website\",\"url\":\"https:\/\/www.booksofall.com\/in\/\",\"name\":\"BooksOffAll Indian\",\"description\":\"Biggest IT eBooks library and learning resources - Free eBooks for programming, computing, artificial intelligence and more.\",\"publisher\":{\"@id\":\"https:\/\/www.booksofall.com\/in\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.booksofall.com\/in\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"hi-IN\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.booksofall.com\/in\/#organization\",\"name\":\"BooksOffAll Indian\",\"url\":\"https:\/\/www.booksofall.com\/in\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"hi-IN\",\"@id\":\"https:\/\/www.booksofall.com\/in\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.booksofall.com\/in\/wp-content\/uploads\/sites\/13\/2022\/06\/booksofall-logo-2.png\",\"contentUrl\":\"https:\/\/www.booksofall.com\/in\/wp-content\/uploads\/sites\/13\/2022\/06\/booksofall-logo-2.png\",\"width\":166,\"height\":30,\"caption\":\"BooksOffAll Indian\"},\"image\":{\"@id\":\"https:\/\/www.booksofall.com\/in\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Object-Oriented Reengineering Patterns - BooksOffAll Indian","description":"Software reengineering is the process of modifying and updating existing software systems, try to learn more about it in this book now!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.booksofall.com\/in\/object-oriented-reengineering-patterns-2\/","og_locale":"hi_IN","og_type":"article","og_title":"Object-Oriented Reengineering Patterns - BooksOffAll Indian","og_description":"Software reengineering is the process of modifying and updating existing software systems, try to learn more about it in this book now!","og_url":"https:\/\/www.booksofall.com\/in\/object-oriented-reengineering-patterns-2\/","og_site_name":"BooksOffAll Indian","article_modified_time":"2023-05-05T07:43:45+00:00","og_image":[{"url":"https:\/\/www.booksofall.com\/in\/wp-content\/uploads\/sites\/13\/2023\/05\/Object-Oriented-Reengineering-Patterns.jpg","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_image":"https:\/\/www.booksofall.com\/in\/wp-content\/uploads\/sites\/13\/2023\/05\/Object-Oriented-Reengineering-Patterns.jpg","twitter_misc":{"\u0905\u0928\u0941\u092e\u093e\u0928\u093f\u0924 \u092a\u0922\u093c\u0928\u0947 \u0915\u093e \u0938\u092e\u092f":"2 \u092e\u093f\u0928\u091f"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.booksofall.com\/in\/object-oriented-reengineering-patterns-2\/","url":"https:\/\/www.booksofall.com\/in\/object-oriented-reengineering-patterns-2\/","name":"Object-Oriented Reengineering Patterns - BooksOffAll Indian","isPartOf":{"@id":"https:\/\/www.booksofall.com\/in\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.booksofall.com\/in\/object-oriented-reengineering-patterns-2\/#primaryimage"},"image":{"@id":"https:\/\/www.booksofall.com\/in\/object-oriented-reengineering-patterns-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.booksofall.com\/in\/wp-content\/uploads\/sites\/13\/2023\/05\/Object-Oriented-Reengineering-Patterns.jpg","datePublished":"2023-05-05T07:42:59+00:00","dateModified":"2023-05-05T07:43:45+00:00","description":"Software reengineering is the process of modifying and updating existing software systems, try to learn more about it in this book now!","breadcrumb":{"@id":"https:\/\/www.booksofall.com\/in\/object-oriented-reengineering-patterns-2\/#breadcrumb"},"inLanguage":"hi-IN","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.booksofall.com\/in\/object-oriented-reengineering-patterns-2\/"]}]},{"@type":"ImageObject","inLanguage":"hi-IN","@id":"https:\/\/www.booksofall.com\/in\/object-oriented-reengineering-patterns-2\/#primaryimage","url":"https:\/\/www.booksofall.com\/in\/wp-content\/uploads\/sites\/13\/2023\/05\/Object-Oriented-Reengineering-Patterns.jpg","contentUrl":"https:\/\/www.booksofall.com\/in\/wp-content\/uploads\/sites\/13\/2023\/05\/Object-Oriented-Reengineering-Patterns.jpg","width":"827","height":"1169","caption":"Object-Oriented Reengineering Patterns"},{"@type":"BreadcrumbList","@id":"https:\/\/www.booksofall.com\/in\/object-oriented-reengineering-patterns-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.booksofall.com\/in\/"},{"@type":"ListItem","position":2,"name":"Categories","item":"https:\/\/www.booksofall.com\/in\/categories\/"},{"@type":"ListItem","position":3,"name":"Object-Oriented Reengineering Patterns"}]},{"@type":"WebSite","@id":"https:\/\/www.booksofall.com\/in\/#website","url":"https:\/\/www.booksofall.com\/in\/","name":"BooksOffAll Indian","description":"Biggest IT eBooks library and learning resources - Free eBooks for programming, computing, artificial intelligence and more.","publisher":{"@id":"https:\/\/www.booksofall.com\/in\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.booksofall.com\/in\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"hi-IN"},{"@type":"Organization","@id":"https:\/\/www.booksofall.com\/in\/#organization","name":"BooksOffAll Indian","url":"https:\/\/www.booksofall.com\/in\/","logo":{"@type":"ImageObject","inLanguage":"hi-IN","@id":"https:\/\/www.booksofall.com\/in\/#\/schema\/logo\/image\/","url":"https:\/\/www.booksofall.com\/in\/wp-content\/uploads\/sites\/13\/2022\/06\/booksofall-logo-2.png","contentUrl":"https:\/\/www.booksofall.com\/in\/wp-content\/uploads\/sites\/13\/2022\/06\/booksofall-logo-2.png","width":166,"height":30,"caption":"BooksOffAll Indian"},"image":{"@id":"https:\/\/www.booksofall.com\/in\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.booksofall.com\/in\/wp-json\/wp\/v2\/product\/23682","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.booksofall.com\/in\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/www.booksofall.com\/in\/wp-json\/wp\/v2\/types\/product"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.booksofall.com\/in\/wp-json\/wp\/v2\/media\/23686"}],"wp:attachment":[{"href":"https:\/\/www.booksofall.com\/in\/wp-json\/wp\/v2\/media?parent=23682"}],"wp:term":[{"taxonomy":"product_brand","embeddable":true,"href":"https:\/\/www.booksofall.com\/in\/wp-json\/wp\/v2\/product_brand?post=23682"},{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/www.booksofall.com\/in\/wp-json\/wp\/v2\/product_cat?post=23682"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/www.booksofall.com\/in\/wp-json\/wp\/v2\/product_tag?post=23682"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}