Object-oriented reengineering patterns:
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Kehrsatz
Square Bracket Associates
2009
|
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | Facsimilie reprint of the original 2003 edition |
Beschreibung: | xviii, 338 pages |
ISBN: | 9783952334126 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV045009556 | ||
003 | DE-604 | ||
005 | 20220913 | ||
007 | t | ||
008 | 180615s2009 |||| 00||| eng d | ||
020 | |a 9783952334126 |9 978-3-9523341-2-6 | ||
035 | |a (OCoLC)1042902896 | ||
035 | |a (DE-599)BVBBV045009556 | ||
040 | |a DE-604 |b ger |e rda | ||
041 | 0 | |a eng | |
049 | |a DE-739 | ||
084 | |a ST 231 |0 (DE-625)143618: |2 rvk | ||
100 | 1 | |a Demeyer, Serge |e Verfasser |4 aut | |
245 | 1 | 0 | |a Object-oriented reengineering patterns |c Serge Demeyer, Stéphane Ducasse, Oscar Nierstrasz |
264 | 1 | |a Kehrsatz |b Square Bracket Associates |c 2009 | |
300 | |a xviii, 338 pages | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
500 | |a Facsimilie reprint of the original 2003 edition | ||
650 | 0 | 7 | |a Objektorientierte Programmierung |0 (DE-588)4233947-9 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Software |0 (DE-588)4055382-6 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Reengineering |0 (DE-588)4404560-8 |2 gnd |9 rswk-swf |
653 | 0 | |a Object-oriented programming (Computer science) | |
653 | 0 | |a Software reengineering | |
653 | 0 | |a Software patterns | |
653 | 0 | |a Object-oriented programming (Computer science) | |
653 | 0 | |a Software patterns | |
653 | 0 | |a Software reengineering | |
689 | 0 | 0 | |a Objektorientierte Programmierung |0 (DE-588)4233947-9 |D s |
689 | 0 | 1 | |a Reengineering |0 (DE-588)4404560-8 |D s |
689 | 0 | 2 | |a Software |0 (DE-588)4055382-6 |D s |
689 | 0 | |5 DE-604 | |
700 | 1 | |a Ducasse, Stéphane |e Sonstige |4 oth | |
700 | 1 | |a Nierstrasz, Oscar |d 1957- |e Sonstige |0 (DE-588)121317617 |4 oth | |
856 | 4 | 2 | |m Digitalisierung UB Passau - ADAM Catalogue Enrichment |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=030401516&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-030401516 |
Datensatz im Suchindex
_version_ | 1804178621121691648 |
---|---|
adam_text | Contents
Foreword vii
Preface xiii
I Introduction 1
1 Reengineering Patterns 3
1.1 Why do we Reengineer?................................. 3
1.2 The Reengineering Lifecycle.......................... 8
1.3 Reengineering Patterns............................... 12
1.4 The Form of a Reengineering Pattern................. 14
1.5 A Map of Reengineering Patterns...................... 14
II Reverse Engineering 17
2 Setting Direction 19
2.1 Agree on Maxims...................................... 23
2.2 Appoint a Navigator.................................. 25
2.3 Speak to the Round Table ............................ 27
2.4 Most Valuable First................................. 29
2.5 Fix Problems, Not Symptoms........................... 33
2.6 If It Ain t Broke, Don t Fix It...................... 35
2.7 Keep It Simple..................................... 37
3 First Contact 39
3.1 Chat with the Maintainers.............................. 45
3.2 Read all the Code in One Hour.......................... 53
3.3 Skim the Documentation................................. 61
3.4 Interview During Demo.................................. 69
3.5 Do a Mock Installation................................. 77
4 Initial Understanding 83
4.1 Analyze the Persistent Data............................ 87
4.2 Speculate about Design................................. 97
4.3 Study the Exceptional Entities....................... 107
5 Detailed Model Capture 117
5.1 Tie Code and Questions.................................121
5.2 Refactor to Understand.................................127
5.3 Step Through the Execution.............................133
5.4 Look for the Contracts.................................137
5.5 Learn from the Past....................................141
III Reengineering 147
6 Tests: Your Life Insurance! 149
6.1 Write Tests to Enable Evolution........................153
6.2 Grow Your Test Base Incrementally......................159
6.3 Use a Testing Framework ...............................163
6.4 Test the Interface, Not the Implementation ............171
6.5 Record Business Rules as Tests ........................175
6.6 Write Tests to Understand............................ 179
7 Migration Strategies 181
7.1 Involve the Users......................................185
7.2 Build Confidence.......................................189
7.3 Migrate Systems Incrementally........................ 191
7.4 Prototype the Target Solution............................195
7.5 Always Have a Running Version.......................... 199
7.6 Regression Test After Every Change.......................201
7.7 Make a Bridge to the New Town............................203
7.8 Present the Right Interface..............................207
7.9 Distinguish Public from Published Interface..............211
7.10 Deprecate Obsolete Interfaces............................215
7.11 Conserve Familiarity.....................................219
7.12 Use Profiler Before Optimizing...........................221
8 Detecting Duplicated Code 223
8.1 Compare Code Mechanically................................227
8.2 Visualize Code as Dotplots...............................233
9 Redistribute Responsibilities 239
9.1 Move Behavior Close to Data..............................243
9.2 Eliminate Navigation Code................................253
9.3 Split Up God Class.......................................263
10 Transform Conditionals to Polymorphism 269
10.1 Transform Self Type Checks...............................273
10.2 Transform Client Type Checks.............................281
10.3 Factor out State.........................................291
10.4 Factor out Strategy......................................295
10.5 Introduce Null Object....................................299
10.6 Transform Conditionals into Registration.................303
IV Appendices 313
A Thumbnail patterns 315
A.l Testing Patterns..........................................316
A.1.1 Retest Persistent Problems........................ 316
A.l.2 Test Fuzzy Features................................316
A.1.3 Test Old Bugs.....................................316
A.2 Refactorings............................................317
A.2.1 Encapsulate Field.................................317
A.2.2 Extract Method....................................317
A. 2.3 Move Method......................................317
A.2.4 Rename Attribute..................................318
A.2.5 Rename Method ....................................318
A.2.6 Replace Conditional with Polymorphism.............318
A.3 Design Patterns..........................................319
A.3.1 Abstract Factory..................................319
A.3.2 Adapter...........................................319
A.3.3 Facade............................................319
A.3.4 Factory Method....................................319
A.3.5 Flyweight.........................................320
A.3.6 Null Object.......................................320
A.3.7 Quantity..........................................320
A.3.8 Singleton.........................................321
A.3.9 State.............................................321
A.3.10 State Patterns...................................321
A.3.11 Strategy.........................................321
A.3.12 Template Method..................................322
A.3.13 Visitor..........................................322
|
any_adam_object | 1 |
author | Demeyer, Serge |
author_GND | (DE-588)121317617 |
author_facet | Demeyer, Serge |
author_role | aut |
author_sort | Demeyer, Serge |
author_variant | s d sd |
building | Verbundindex |
bvnumber | BV045009556 |
classification_rvk | ST 231 |
ctrlnum | (OCoLC)1042902896 (DE-599)BVBBV045009556 |
discipline | Informatik |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01937nam a2200469 c 4500</leader><controlfield tag="001">BV045009556</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20220913 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">180615s2009 |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783952334126</subfield><subfield code="9">978-3-9523341-2-6</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1042902896</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV045009556</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rda</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-739</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 231</subfield><subfield code="0">(DE-625)143618:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Demeyer, Serge</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Object-oriented reengineering patterns</subfield><subfield code="c">Serge Demeyer, Stéphane Ducasse, Oscar Nierstrasz</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Kehrsatz</subfield><subfield code="b">Square Bracket Associates</subfield><subfield code="c">2009</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">xviii, 338 pages</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">Facsimilie reprint of the original 2003 edition</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Objektorientierte Programmierung</subfield><subfield code="0">(DE-588)4233947-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Software</subfield><subfield code="0">(DE-588)4055382-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Reengineering</subfield><subfield code="0">(DE-588)4404560-8</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="653" ind1=" " ind2="0"><subfield code="a">Object-oriented programming (Computer science)</subfield></datafield><datafield tag="653" ind1=" " ind2="0"><subfield code="a">Software reengineering</subfield></datafield><datafield tag="653" ind1=" " ind2="0"><subfield code="a">Software patterns</subfield></datafield><datafield tag="653" ind1=" " ind2="0"><subfield code="a">Object-oriented programming (Computer science)</subfield></datafield><datafield tag="653" ind1=" " ind2="0"><subfield code="a">Software patterns</subfield></datafield><datafield tag="653" ind1=" " ind2="0"><subfield code="a">Software reengineering</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Objektorientierte Programmierung</subfield><subfield code="0">(DE-588)4233947-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Reengineering</subfield><subfield code="0">(DE-588)4404560-8</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="2"><subfield code="a">Software</subfield><subfield code="0">(DE-588)4055382-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Ducasse, Stéphane</subfield><subfield code="e">Sonstige</subfield><subfield code="4">oth</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Nierstrasz, Oscar</subfield><subfield code="d">1957-</subfield><subfield code="e">Sonstige</subfield><subfield code="0">(DE-588)121317617</subfield><subfield code="4">oth</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Passau - ADAM Catalogue Enrichment</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=030401516&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-030401516</subfield></datafield></record></collection> |
id | DE-604.BV045009556 |
illustrated | Not Illustrated |
indexdate | 2024-07-10T08:06:53Z |
institution | BVB |
isbn | 9783952334126 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-030401516 |
oclc_num | 1042902896 |
open_access_boolean | |
owner | DE-739 |
owner_facet | DE-739 |
physical | xviii, 338 pages |
publishDate | 2009 |
publishDateSearch | 2009 |
publishDateSort | 2009 |
publisher | Square Bracket Associates |
record_format | marc |
spelling | Demeyer, Serge Verfasser aut Object-oriented reengineering patterns Serge Demeyer, Stéphane Ducasse, Oscar Nierstrasz Kehrsatz Square Bracket Associates 2009 xviii, 338 pages txt rdacontent n rdamedia nc rdacarrier Facsimilie reprint of the original 2003 edition Objektorientierte Programmierung (DE-588)4233947-9 gnd rswk-swf Software (DE-588)4055382-6 gnd rswk-swf Reengineering (DE-588)4404560-8 gnd rswk-swf Object-oriented programming (Computer science) Software reengineering Software patterns Objektorientierte Programmierung (DE-588)4233947-9 s Reengineering (DE-588)4404560-8 s Software (DE-588)4055382-6 s DE-604 Ducasse, Stéphane Sonstige oth Nierstrasz, Oscar 1957- Sonstige (DE-588)121317617 oth Digitalisierung UB Passau - ADAM Catalogue Enrichment application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=030401516&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Demeyer, Serge Object-oriented reengineering patterns Objektorientierte Programmierung (DE-588)4233947-9 gnd Software (DE-588)4055382-6 gnd Reengineering (DE-588)4404560-8 gnd |
subject_GND | (DE-588)4233947-9 (DE-588)4055382-6 (DE-588)4404560-8 |
title | Object-oriented reengineering patterns |
title_auth | Object-oriented reengineering patterns |
title_exact_search | Object-oriented reengineering patterns |
title_full | Object-oriented reengineering patterns Serge Demeyer, Stéphane Ducasse, Oscar Nierstrasz |
title_fullStr | Object-oriented reengineering patterns Serge Demeyer, Stéphane Ducasse, Oscar Nierstrasz |
title_full_unstemmed | Object-oriented reengineering patterns Serge Demeyer, Stéphane Ducasse, Oscar Nierstrasz |
title_short | Object-oriented reengineering patterns |
title_sort | object oriented reengineering patterns |
topic | Objektorientierte Programmierung (DE-588)4233947-9 gnd Software (DE-588)4055382-6 gnd Reengineering (DE-588)4404560-8 gnd |
topic_facet | Objektorientierte Programmierung Software Reengineering |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=030401516&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT demeyerserge objectorientedreengineeringpatterns AT ducassestephane objectorientedreengineeringpatterns AT nierstraszoscar objectorientedreengineeringpatterns |