Object-oriented reengineering patterns:
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Elektronisch E-Book |
Sprache: | English |
Veröffentlicht: |
San Francisco
Morgan Kaufman Publishers
c2003
|
Schlagworte: | |
Online-Zugang: | FAW01 Volltext |
Beschreibung: | Includes bibliographical references and index 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 |
Beschreibung: | 1 Online-Ressource (xxi, 282 p.) |
ISBN: | 0080512992 1558606394 9780080512990 9781558606395 |
Internformat
MARC
LEADER | 00000nmm a2200000zc 4500 | ||
---|---|---|---|
001 | BV042307598 | ||
003 | DE-604 | ||
005 | 00000000000000.0 | ||
007 | cr|uuu---uuuuu | ||
008 | 150129s2003 |||| o||u| ||||||eng d | ||
020 | |a 0080512992 |c electronic bk. |9 0-08-051299-2 | ||
020 | |a 1558606394 |9 1-55860-639-4 | ||
020 | |a 9780080512990 |c electronic bk. |9 978-0-08-051299-0 | ||
020 | |a 9781558606395 |9 978-1-55860-639-5 | ||
035 | |a (OCoLC)162595743 | ||
035 | |a (DE-599)BVBBV042307598 | ||
040 | |a DE-604 |b ger |e aacr | ||
041 | 0 | |a eng | |
049 | |a DE-1046 | ||
082 | 0 | |a 005.1/17 |2 22 | |
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 San Francisco |b Morgan Kaufman Publishers |c c2003 | |
300 | |a 1 Online-Ressource (xxi, 282 p.) | ||
336 | |b txt |2 rdacontent | ||
337 | |b c |2 rdamedia | ||
338 | |b cr |2 rdacarrier | ||
500 | |a Includes bibliographical references and index | ||
500 | |a 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 | ||
650 | 7 | |a Programmatuurtechniek |2 gtt | |
650 | 7 | |a Broncode |2 gtt | |
650 | 7 | |a Hergebruik |2 gtt | |
650 | 7 | |a Object-georiënteerd programmeren |2 gtt | |
650 | 7 | |a COMPUTERS / Programming / Open Source |2 bisacsh | |
650 | 7 | |a COMPUTERS / Software Development & Engineering / Tools |2 bisacsh | |
650 | 7 | |a COMPUTERS / Software Development & Engineering / General |2 bisacsh | |
650 | 7 | |a Técnicas de programação |2 larpcal | |
650 | 7 | |a Programação orientada a objetos |2 larpcal | |
650 | 7 | |a Padrões de software (projeto) |2 larpcal | |
650 | 7 | |a Objektorientierte Programmierung |2 swd | |
650 | 7 | |a Reengineering |2 swd | |
650 | 7 | |a Software |2 swd | |
650 | 7 | |a Object-oriented programming (Computer science) |2 local | |
650 | 7 | |a Software reengineering |2 local | |
650 | 7 | |a Software patterns |2 local | |
650 | 4 | |a Object-oriented programming (Computer science) | |
650 | 4 | |a Software reengineering | |
650 | 4 | |a Software patterns | |
650 | 0 | 7 | |a Objektorientierte Programmierung |0 (DE-588)4233947-9 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Reengineering |0 (DE-588)4404560-8 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Software |0 (DE-588)4055382-6 |2 gnd |9 rswk-swf |
653 | |a Electronic books | ||
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 | |8 1\p |5 DE-604 | |
700 | 1 | |a Ducasse, Stéphane |e Sonstige |4 oth | |
700 | 1 | |a Nierstrasz, Oscar Marius |e Sonstige |4 oth | |
856 | 4 | 0 | |u http://www.sciencedirect.com/science/book/9781558606395 |x Verlag |3 Volltext |
912 | |a ZDB-33-ESD | ||
940 | 1 | |q FLA_PDA_ESD | |
999 | |a oai:aleph.bib-bvb.de:BVB01-027744590 | ||
883 | 1 | |8 1\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk | |
966 | e | |u http://www.sciencedirect.com/science/book/9781558606395 |l FAW01 |p ZDB-33-ESD |q FAW_PDA_ESD |x Verlag |3 Volltext |
Datensatz im Suchindex
_version_ | 1804152893085843456 |
---|---|
any_adam_object | |
author | Demeyer, Serge |
author_facet | Demeyer, Serge |
author_role | aut |
author_sort | Demeyer, Serge |
author_variant | s d sd |
building | Verbundindex |
bvnumber | BV042307598 |
collection | ZDB-33-ESD |
ctrlnum | (OCoLC)162595743 (DE-599)BVBBV042307598 |
dewey-full | 005.1/17 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.1/17 |
dewey-search | 005.1/17 |
dewey-sort | 15.1 217 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
format | Electronic eBook |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>04710nmm a2200733zc 4500</leader><controlfield tag="001">BV042307598</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">00000000000000.0</controlfield><controlfield tag="007">cr|uuu---uuuuu</controlfield><controlfield tag="008">150129s2003 |||| o||u| ||||||eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0080512992</subfield><subfield code="c">electronic bk.</subfield><subfield code="9">0-08-051299-2</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">1558606394</subfield><subfield code="9">1-55860-639-4</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780080512990</subfield><subfield code="c">electronic bk.</subfield><subfield code="9">978-0-08-051299-0</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781558606395</subfield><subfield code="9">978-1-55860-639-5</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)162595743</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV042307598</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">aacr</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-1046</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.1/17</subfield><subfield code="2">22</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">San Francisco</subfield><subfield code="b">Morgan Kaufman Publishers</subfield><subfield code="c">c2003</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">1 Online-Ressource (xxi, 282 p.)</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">c</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">cr</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">Includes bibliographical references and index</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">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</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Programmatuurtechniek</subfield><subfield code="2">gtt</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Broncode</subfield><subfield code="2">gtt</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Hergebruik</subfield><subfield code="2">gtt</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Object-georiënteerd programmeren</subfield><subfield code="2">gtt</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">COMPUTERS / Programming / Open Source</subfield><subfield code="2">bisacsh</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">COMPUTERS / Software Development & Engineering / Tools</subfield><subfield code="2">bisacsh</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">COMPUTERS / Software Development & Engineering / General</subfield><subfield code="2">bisacsh</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Técnicas de programação</subfield><subfield code="2">larpcal</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Programação orientada a objetos</subfield><subfield code="2">larpcal</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Padrões de software (projeto)</subfield><subfield code="2">larpcal</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Objektorientierte Programmierung</subfield><subfield code="2">swd</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Reengineering</subfield><subfield code="2">swd</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Software</subfield><subfield code="2">swd</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Object-oriented programming (Computer science)</subfield><subfield code="2">local</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Software reengineering</subfield><subfield code="2">local</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Software patterns</subfield><subfield code="2">local</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Object-oriented programming (Computer science)</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Software reengineering</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Software patterns</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">Reengineering</subfield><subfield code="0">(DE-588)4404560-8</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="653" ind1=" " ind2=" "><subfield code="a">Electronic books</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="8">1\p</subfield><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 Marius</subfield><subfield code="e">Sonstige</subfield><subfield code="4">oth</subfield></datafield><datafield tag="856" ind1="4" ind2="0"><subfield code="u">http://www.sciencedirect.com/science/book/9781558606395</subfield><subfield code="x">Verlag</subfield><subfield code="3">Volltext</subfield></datafield><datafield tag="912" ind1=" " ind2=" "><subfield code="a">ZDB-33-ESD</subfield></datafield><datafield tag="940" ind1="1" ind2=" "><subfield code="q">FLA_PDA_ESD</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-027744590</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield><datafield tag="966" ind1="e" ind2=" "><subfield code="u">http://www.sciencedirect.com/science/book/9781558606395</subfield><subfield code="l">FAW01</subfield><subfield code="p">ZDB-33-ESD</subfield><subfield code="q">FAW_PDA_ESD</subfield><subfield code="x">Verlag</subfield><subfield code="3">Volltext</subfield></datafield></record></collection> |
id | DE-604.BV042307598 |
illustrated | Not Illustrated |
indexdate | 2024-07-10T01:17:56Z |
institution | BVB |
isbn | 0080512992 1558606394 9780080512990 9781558606395 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-027744590 |
oclc_num | 162595743 |
open_access_boolean | |
owner | DE-1046 |
owner_facet | DE-1046 |
physical | 1 Online-Ressource (xxi, 282 p.) |
psigel | ZDB-33-ESD FLA_PDA_ESD ZDB-33-ESD FAW_PDA_ESD |
publishDate | 2003 |
publishDateSearch | 2003 |
publishDateSort | 2003 |
publisher | Morgan Kaufman Publishers |
record_format | marc |
spelling | Demeyer, Serge Verfasser aut Object-oriented reengineering patterns Serge Demeyer, Stéphane Ducasse, Oscar Nierstrasz San Francisco Morgan Kaufman Publishers c2003 1 Online-Ressource (xxi, 282 p.) txt rdacontent c rdamedia cr rdacarrier Includes bibliographical references and index 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 Programmatuurtechniek gtt Broncode gtt Hergebruik gtt Object-georiënteerd programmeren gtt COMPUTERS / Programming / Open Source bisacsh COMPUTERS / Software Development & Engineering / Tools bisacsh COMPUTERS / Software Development & Engineering / General bisacsh Técnicas de programação larpcal Programação orientada a objetos larpcal Padrões de software (projeto) larpcal Objektorientierte Programmierung swd Reengineering swd Software swd Object-oriented programming (Computer science) local Software reengineering local Software patterns local Object-oriented programming (Computer science) Software reengineering Software patterns Objektorientierte Programmierung (DE-588)4233947-9 gnd rswk-swf Reengineering (DE-588)4404560-8 gnd rswk-swf Software (DE-588)4055382-6 gnd rswk-swf Electronic books Objektorientierte Programmierung (DE-588)4233947-9 s Reengineering (DE-588)4404560-8 s Software (DE-588)4055382-6 s 1\p DE-604 Ducasse, Stéphane Sonstige oth Nierstrasz, Oscar Marius Sonstige oth http://www.sciencedirect.com/science/book/9781558606395 Verlag Volltext 1\p cgwrk 20201028 DE-101 https://d-nb.info/provenance/plan#cgwrk |
spellingShingle | Demeyer, Serge Object-oriented reengineering patterns Programmatuurtechniek gtt Broncode gtt Hergebruik gtt Object-georiënteerd programmeren gtt COMPUTERS / Programming / Open Source bisacsh COMPUTERS / Software Development & Engineering / Tools bisacsh COMPUTERS / Software Development & Engineering / General bisacsh Técnicas de programação larpcal Programação orientada a objetos larpcal Padrões de software (projeto) larpcal Objektorientierte Programmierung swd Reengineering swd Software swd Object-oriented programming (Computer science) local Software reengineering local Software patterns local Object-oriented programming (Computer science) Software reengineering Software patterns Objektorientierte Programmierung (DE-588)4233947-9 gnd Reengineering (DE-588)4404560-8 gnd Software (DE-588)4055382-6 gnd |
subject_GND | (DE-588)4233947-9 (DE-588)4404560-8 (DE-588)4055382-6 |
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 | Programmatuurtechniek gtt Broncode gtt Hergebruik gtt Object-georiënteerd programmeren gtt COMPUTERS / Programming / Open Source bisacsh COMPUTERS / Software Development & Engineering / Tools bisacsh COMPUTERS / Software Development & Engineering / General bisacsh Técnicas de programação larpcal Programação orientada a objetos larpcal Padrões de software (projeto) larpcal Objektorientierte Programmierung swd Reengineering swd Software swd Object-oriented programming (Computer science) local Software reengineering local Software patterns local Object-oriented programming (Computer science) Software reengineering Software patterns Objektorientierte Programmierung (DE-588)4233947-9 gnd Reengineering (DE-588)4404560-8 gnd Software (DE-588)4055382-6 gnd |
topic_facet | Programmatuurtechniek Broncode Hergebruik Object-georiënteerd programmeren COMPUTERS / Programming / Open Source COMPUTERS / Software Development & Engineering / Tools COMPUTERS / Software Development & Engineering / General Técnicas de programação Programação orientada a objetos Padrões de software (projeto) Objektorientierte Programmierung Reengineering Software Object-oriented programming (Computer science) Software reengineering Software patterns |
url | http://www.sciencedirect.com/science/book/9781558606395 |
work_keys_str_mv | AT demeyerserge objectorientedreengineeringpatterns AT ducassestephane objectorientedreengineeringpatterns AT nierstraszoscarmarius objectorientedreengineeringpatterns |