Bücher zur Software-Entwicklung Hits und Flops

Objektorientierung, Analyse und Design

Objekt­ori­en­tier­te Soft­ware-Ent­wick­lung
Bert­rand Mey­er. ISBN 3−446−15773−5. 547 Sei­ten
B. Mey­er ist als C++ Kri­ti­ker bekannt und beschreibt ihm Buch sei­ne Pro­gram­mier­spra­che EIFFEL. Eine Sprach­be­schrei­bung ist aber nicht pri­mä­res Ziel des Buches, in ers­ter Linie bleibt es ein Werk über Soft­ware-Ent­wurf. Inhal­te sind Kern­pro­ble­me und Prin­zi­pi­en wie Soft­ware-Qua­li­tät, Modu­la­ri­tät, Wie­der­ver­wend­bar­keit. Im zwei­ten und größ­ten Teil beschreibt er EIFFEL. Im drit­ten gibt er einen Über­riss über ande­re objekt­ori­en­tier­te Spra­chen, unter ande­rem C++. Mey­ers Buch ist gut zu lesen und die Über­set­zung ist gut gelun­gen. In der neu­en Auf­la­ge geht er auch auf objekt­ori­en­tier­te Benut­zungs­schnitt­stel­len und Java ein. Der EIFFEL Com­pi­ler erzeugt mitt­ler­wei­le Java Byte­code. Jan 1999

OOP. Objekt­ori­en­tier­te Pro­gram­mie­rung
Peter Coad, Jill Nico­la. Pren­ti­ce Hall. ISBN 3−930436−08−6. 1994. 648 Sei­ten
Kaum ein Buch habe ich in den letz­ten 8 Jah­ren so oft ange­fan­gen wie die­ses. Dann habe ich es immer wie­der sein las­sen. Zwar sind bei­de Auto­ren ech­te Pro­fis, doch das Buch mit vie­len Smalltalk/C++-Beispielen ermü­dend über einen län­ge­ren Zeit­raum zu lesen. Immer wie­der wird ein Münz­ein­wurf und Zäh­ler wei­ter­ent­wi­ckelt. Die Spra­che ist immer der Art „Vor­hin haben Sie…“, „Ver­su­chen Sie es“, Bau­en Sie alles zusam­men“, „Las­sen Sie das Pro­gramm lau­fen“. Mich nervt das! Das Buch bekam ich auch geschenkt und weiß war­um. Jetzt bekommt es die Stadt­bü­che­rei. Juli 2004

Objekt­ori­en­tier­tes Design ohne Geheim­nis
John-Har­ry Wie­ken, F. Hoff­mann. Ver­lag Heinz Hei­se. ISBN 3882290749. 1997
Hüb­sches OOP-Buch mit einer Zusam­men­fas­sung aller bekann­ten Metho­den. Sep­tem­ber 2002

Design-Pattern

Ent­wurfs­mus­ter für Soft­ware-Werk­zeu­ge
Dirk Rieh­le. Addi­son Wes­ley. 1997. 165 Sei­ten
Aka­de­mi­sches und in mei­nen Augen sehr tro­cke­nes Buch zur Merk­zeug- Mate­ri­al Meta­pher. Ver­mut­lich ein kaum gele­se­nes Buch und das erklärt, war­um es bei Ama­zon kei­ne Kri­ti­ken gibt. Die Geschich­te der Ent­wurfs­mus­ter fin­de ich dabei das Bes­te am Buch. Okto­ber 2006

UML

UML Distil­led: A Brief Gui­de to the Stan­dard Object Mode­ling Lan­guage
Mar­tin Fow­ler, Kendall Scott. Addi­son-Wes­ley. ISBN 0321193687. Drit­te Auf­la­ge vom 19. Sep­tem­ber 2003. 192 Sei­ten
Ein UML-Buch mit nur 180 Sei­ten ist in der Tat etwas beson­de­res, ver­gli­chen mit den 1.000 Sei­ten der UML 2.0 Doku­men­ta­ti­on inklu­si­ve der vie­len Zusatz­do­ku­men­te wie MDA und so wei­ter. Dabei ist Fow­lers Buch nicht ober­fläch­lich, son­dern er destil­liert den Kern der UML, die Dia­gram­me, und hält sich nicht mit Meta-Model­len auf. Vor der eigent­li­chen Nota­ti­on fasst er auf etwa 30 Sei­ten Ent­wick­lungs­me­tho­den (wie RUP), Refac­to­ring, Pat­tern zusam­men. Dann fol­gen die bekann­ten UML-Dia­gram­me, in der 3. Auf­la­ge auch die seit UML 2.0 neu­en Timing-Dia­gram­me. In der Schreib­wei­se wählt Fow­ler einen per­sön­li­chen Stil, den ich beson­ders sym­pa­thisch fin­de. Er spricht häu­fi­ger in der Ich-Form und am offens­ten war das Satz zum The­ma Umgang mit den poli­ti­schen Schwie­rig­kei­ten in der Soft­ware-Ent­wick­lung:

I can’t offer you any serious advice on this becau­se I’m not a skil­led cor­po­ra­te poli­ti­ci­an. I stron­gly sug­gest that you find someo­ne who is.

Das ist ein gan­zes Kapi­tel! In der Sum­me dürf­te das Buch für die­je­ni­gen inter­es­sant sein, die einen schnel­len, schmerz­lo­sen Ein­stieg in UML suchen. Novem­ber 2005

Objekt­ori­en­tier­te Soft­ware-Ent­wick­lung. Ana­ly­se und Design mit der UML
Bernd Oes­te­reich, Olden­bourg. ISBN 3486255738. 4. Auf­la­ge 1999. 375 Sei­ten
Ein Stan­dard­werk zu UML. Ob man das Vor­ge­hens­mo­dell gut fin­det ist eine ande­re Fra­ge (mei­ne Auf­la­ge erwähnt agi­le Pro­gram­mie­rung mit kei­nem Wort). Das wird mit der aktu­el­len 8. Auf­la­ge aus 2001 sicher­lich anders sein. Mit 44,80 EUR etwas teu­er. 2000 — April 2007

Agile und Extreme-Programming

Extre­me Pro­gramming Exp­lai­ned
Kent Beck. Addi­son-Wes­ley Pro­fes­sio­nal. ISBN 0201616416. Okto­ber 1999. 224 Sei­ten
Ein Buch über XP kann meh­re­re Auf­ga­ben haben: Es kann in das The­ma ein­füh­ren, es kann ver­schie­de Metho­den der Soft­ware-Ent­wick­lung gegen­über­stel­len, es kann XP aus­ein­an­der neh­men. Becks Buch (und And­res‘ in der neu­en Auf­la­ge) geben auf den 200 Sei­ten eine Ein­füh­rung in die Prin­zi­pi­en des Extre­men; Paar-Pro­gram­mie­rung, häu­fi­ge Inte­gra­ti­on, kur­ze Relea­ses usw. Kent Beck ist einer der „Erfin­der“ von XP und eine äußerst bekann­te Figur in der Soft­ware-Welt. Sein Wir­ken zeigt sich unter Ande­rem in JUnit und in Büchern wie „Con­tri­bu­ting to Eclip­se“ mit Erich Gam­ma und Test Dri­ven Deve­lop­ment.

So sehr ich die Ein­füh­rung schät­ze, so sehr miss­fällt mir die Bläu­äu­gig­keit. Pro­ble­me bei der Umset­zung wer­den stief­müt­ter­lich behan­delt und ich wer­de den Ver­dacht nicht los, dass das Prin­zip Mut — einer der vier Prin­zi­pi­en neben Kom­mu­ni­ka­ti­on, Ein­fach­heit und Feed­back — nicht für das Buch galt: Mut, auf­zu­schrei­ben, wo Pro­ble­me bei der Umset­zung lie­gen. Zwar wid­met sich das Buch im 24. Kapi­tel den Pro­ble­men, doch ein Kapi­tel mit etwas mehr als zwei Sei­ten ist mager. Eine Pas­sa­ge aus dem ers­ten Teil:

If inte­gra­ti­on took a coup­le of hours, it would not be pos­si­ble to work in this style. It is important to have tools that sup­port a fast integration/build/test cycle. You also need a rea­son­ab­ly com­ple­te test sui­te that runs in a few minu­tes. The effort nee­ded to fix col­li­si­ons can’t be too gre­at.

Was denn zu tun ist, wenn bei Pro­jek­ten die Inte­gra­ti­on län­ger dau­ert, beant­wor­tet das Buch kaum. Auch Fra­gen der ver­teil­ten Ent­wick­lung (meh­re­re Teams in unter­schied­li­chen Län­dern) wer­den nicht beant­wor­tet. Auch ver­glei­che zu ande­ren agi­len Metho­den feh­len. Die Anzahl der feh­len­den The­men geht wei­ter: Wenn der Fach­ler unfä­hig ist, wenn — wie beim C3-Pro­jekt — Geld­ge­ber und Anfor­de­rungs­be­stim­mer nicht gleich sind, wenn auf TDD ver­zich­tet wird, usw. usw. Im Kapi­tel 25 (When You Shouldn’t Try XP) erfährt man viel­leicht die Ant­wort: XP nutzt man dann erst gar nicht. Es ist viel­leicht nicht die Ant­wort, die man erwar­tet hat. Statt kri­ti­scher Aus­ein­an­der­set­zung und Lösungs­vor­schlä­gen bekommt der Leser in mei­nen Augen pat­zi­ges wie:

If you have pro­gramm­ers on two floors, for­get it. If you have pro­gramm­ers wide­ly sepa­ra­ted on one floor, for­get it.

Alles in allem ein nett geschrie­be­nes Ein­füh­rungs­buch, aber wer wirk­lich XP in sein Team brin­gen will, muss auf jeden Fall ein XP-kri­ti­sches Buch zusätz­lich lesen. Es gibt seit Ende 2004 eine zwei­te Auf­la­ge. Novem­ber 2005

Allgemeine Bücher

The Clean Coder
Robert C. Mar­tin
Ich mag das Buch von Robert Mar­tin (Uncle Bob), weil es offen und ehr­lich ist. Sel­ten sagen Ent­wick­ler und Bera­ter: „Da habe ich Mist gemacht, ich war blöd, das war dumm“. Robert ist da scho­nungs­los und legt offen, an wel­chen Stel­len er in sei­nem Leben vor die Wand fuhr. Dar­aus for­mu­liert er Grund­sät­ze, von denen wir alle ler­nen kön­nen. Dabei ist das Buch rela­tiv untech­nisch. Viel­mehr steht der Ent­wick­ler als Mensch als sozia­les und mit­un­ter selbst­herr­li­ches Wesen im Vor­der­grund; Coding-Tipps wie Pat­tern oder Idio­me feh­len gänz­lich. Aber das ist gut so, denn viel zu oft den­ken gera­de Neu­ein­stei­ger, es kommt auf die coo­le Pro­gram­mier­spra­che an, oder Meis­ter der Kom­man­do­zei­le zu sein. Alles falsch bzw. das ist nur ein Teil. Soft­ware­ent­wick­lung ist ein kol­la­bo­ra­ti­ver Pro­zess. Man muss „Nein“ sagen zu Din­gen, die man nicht ein­hal­ten kann und ein „Ja“ bedeu­tet, ein Com­mit­ment zu machen, um ver­läss­lich im Team zu arbei­ten. So ist auch „Ja“/“Nein“ zu sagen, und die Kon­se­quen­zen zu tra­gen, ein zen­tra­ler Bestand­teil des Buchs. Wei­te­re The­men sind Zeit­ein­tei­lun­gen, Arbei­ten unter Druck und immer wie­der, was ein pro­fes­sio­nel­len Ent­wick­ler aus­zeich­net: Tes­ten, Tes­ten, Tes­ten. Da der per­fek­te pro­fes­sio­nel­le Ent­wick­ler nicht gebo­ren, son­dern im Lau­fe der Jah­re her­an­reift, nimmt auch die­se Ent­wick­lung im Buch Platz ein. Zen­tra­le The­men bei Mar­tin sind: Pro­gram­mier­auf­ga­ben (was man selbst tun kann) und Men­to­ring (was die Umgebung/Arbeitgeber tun kann). Wer schön län­ger im Geschäft muss es das Buch nicht lesen, denn jeder wird sich dort wie­der­erken­nen, doch jeder ange­hen­de Soft­ware­ent­wick­ler soll­te es lesen und einen Ein­druck gewin­nen, wor­auf man sich ein­lässt und was es heißt, pro­fes­sio­nell zu arbei­ten. Dezem­ber 2011

Per­len der Pro­gram­mier­kunst. Pro­gramming Pearls
Jon Bent­ley. Addi­son-Wes­ley. ISBN 3827317193. 2000. 285 Sei­ten
Nicht-Infor­ma­ti­ker erle­ben beim Lesen sicher­lich mehr Aha-Momen­te. Stützt sich stark auf das Imple­men­tie­ren und geht wenig auf das Design bzw. die Archi­tek­tur von Anwen­dun­gen ein. Eher ein algo­rith­mi­sches Buch mit eini­gen net­ten Auf­ga­ben und net­ten Anek­do­ten. Ich würd’s aber nicht noch ein­mal kau­fen.April 2007

Elec­tro­nic Busi­ness. Metho­den, Werk­zeu­ge, Tech­ni­ken und Sys­te­men für den Unter­neh­mens­er­folg im Inter­net
Bert­hold, Daum, Mar­kus Schel­ler. Addi­son-Wes­ley. ISBN 978–3827316431. 2000. 462 Sei­ten
So schnell kann das gehen: 1999 brach­te die Soft­ware AG noch eine neue Pro­gram­mier­spra­che Bole­ro her­aus, die ein Com­pi­ler in Java-Byte-Code über­setzt, und nur ein paar Jah­re spä­ter fin­det man von die­ser Spra­che nichts mehr. Nicht im brei­ten Inter­net und auf den schma­len Sei­ten der Soft­ware AG. Das Buch ist ist im Wesent­li­chen eine Vor­stel­lung von Bole­ro und Mög­lich­kei­ten, dazu noch ein wenig Dies und Das rund um Soft­ware-Ent­wick­lung und die Bedeu­tung von E-Com­mer­ce. Das Buch kann im Regal blei­ben. März 2007

Pro­gram­mier­pra­xis. Prin­zi­pi­en zur effi­zi­en­ten Pro­gram­mie­rung
Bri­an W. Ker­nig­han, Rob Pike. Addi­son-Wes­ley. 978–3827315830. 1999. 302 Sei­ten
Zwei groß­ar­ti­ge Ent­wick­ler schrei­ben für Java-Ent­wick­ler ein rela­tiv unspek­ta­ku­lä­res Buch. Für C(++)-Coder ist da schon viel drin, aber die Java-Ent­wick­ler wer­den sich wun­dern, war­um denn die Auto­ren Datei­strö­me nicht im finally-Block schlie­ßen (Kapi­tel 4.7) und nicht das Prin­zip „Der kleins­te nöti­ge Typ“ anwen­den, etwa bei FileInputStream in = new FileInputStream(fname). Per­sön­lich wür­de ich auch den Satz „Java, als auf höhe­rer Ebe­ne als C oder C++ ange­sie­del­te Hoch­spra­che, ver­birgt die Pro­ble­ma­tik der Byte-Rei­hen­fol­ge voll­stän­dig. Von den Biblio­the­ken wird die Schnitt­stel­le Serializable zur Ver­fü­gung gestellt, die die Art und Wei­se defi­niert, in der Daten­ele­men­te zum Daten­aus­tausch gepackt wer­den.“ auch falsch fin­den. März 2007

Appli­ka­tio­nen ent­wi­ckeln unter Win­dows NT 4.0. Cli­ent-Ser­ver-Tech­no­lo­gie, Design, Pro­gram­mie­rung
M. Röß­mann. Addi­son-Wes­ley. ISBN 3−8273−1080−6. 1997

Die Soft­ware Rebel­len. Die Erfolgs­sto­ry von Linus Tor­valds und Linux
Glyn Moo­dy, Mod. Indus­trie, La. ISBN 3478387302. 2001. 280 Sei­ten
Toll zu lesen­den Buch, wel­ches mich wie kein ande­res in letz­ter Zeit zum Lesens brach­te. Teil­wei­se ist dem Inhalt etwas kon­fus zu fol­gen, da die Geschich­te nicht chro­no­lo­gisch auf­ge­baut ist. Sonst kann ich nur sagen: Tol­les Buch, wel­ches ins­be­son­de­re vie­le Detail­in­for­ma­tio­nen über die Leu­te rund um die Open-Source-Sze­ne gibt. Janu­ar 2002

Pro­gram­mie­ren mit GNU Soft­ware
Mike Loukides, Andy Oram, O’Reilly. ISBN 3−930673−32−0. 283 Sei­ten
Ein Buch, wel­ches sich nur der Soft­ware-Ent­wick­lung mit GNU-Pro­duk­ten beschäf­tigt. Wir erfah­ren in dem Buch eini­ges über den Edi­tor EMACS, dem GCC, Biblio­the­ken, dem Debug­ger, der Über­set­zung mit make, der Ver­wal­tung von Quell­da­tei­en mit RCS uns der­zeit Mes­sung und Pro­filing von Pro­gram­men. Das Buches aller­dings von 1997, sodass nicht alle Soft­ware auf dem aktu­ells­ten Stand beschrie­ben ist. Den­noch ist es auch eine schö­ne Ein­füh­rung in die wich­ti­gen Hel­fer. Auf gra­fi­sche Ober­flä­chen geht die­ses Buch nicht ein, eben­so wie Java fin­det kei­nen Platz. Lei­der fin­det sich auch über con­fi­gu­re und den neu­en Dienst­pro­gram­men von Apa­che, wie etwa ant kein Ster­bens­wört­chen. Aber da das Buch von 1997 ist und mitt­ler­wei­le nicht mehr lie­fer­bar ist, ist das OK.

Per­for­mance Engi­nee­ring. Sta­te of the Art and Cur­rent Trends (Lec­tu­re Notes in Com­pu­ter Sci­ence Vol. 2047)
Rei­ner Dum­ke, Claus Rau­ten­strauch, Andre­as Schmie­ten­dorf, And­re Scholz. Sprin­ger-Ver­lag Ber­lin Hei­del­berg. ISBN 3540421459. Mai 2001. 349 Sei­ten
Man kann das Buch nicht als durch­ge­hen­des Buch sehen, son­dern man muss es als Samm­lung von Papers ver­ste­hen, die immer wie­der von wis­sen­schaft­li­chen Mit­ar­bei­tern der Uni­ver­si­tä­ten von For­schungs­ein­rich­tun­gen publi­ziert wer­den. Die Inhalt und The­men sich auch rela­tiv unspek­ta­ku­lär, sogar lang­wei­lig, und ich wür­de zwei­feln, ob man die ange­spro­che­nen The­men wirk­lich pra­xis­taug­lich umset­zen kann. Eines der inter­es­san­tes­ten Arti­kel war über die Geschich­te des PE. Mein Fazit: Man kann die Samm­lung von Arti­keln nicht bei kon­kre­ten Pro­ble­men inper­for­man­ter Pro­gram­me ver­wer­ten. Der Preis ist mit 88,00 DM dann auch er etwas für Uni­ver­si­täts-Biblio­the­ken, die sol­che Bän­de regel­mä­ßig kau­fen (müs­sen). Okto­ber 2002

Über­set­zung objekt­ori­en­tier­ter Pro­gram­mier­spra­chen: Kon­zep­te, abs­trak­te Maschi­nen und Prak­ti­kum „Java Com­pi­ler“
Dr. Bern­hard Bau­er, Riit­ta Höl­le­rer. Sprin­ger. ISBN 3−540−64256−0. 1998. 272 Sei­ten
Net­te Lehr­buch, aber etwas zu prak­tisch für mei­nen Geschmack. Ich füh­le mich unwohl, wenn alles sofort ver­ständ­lich ist, aus mei­nem Stu­di­um in Com­pi­ler­bau erin­ne­re ich mich an ganz ande­re Kali­ber; bspw. Dra­chen­buch , Hopcroft/Ullman. Com­pi­ler­bau ist für mich immer mit for­ma­len Spra­chen ver­bun­den. Davon merkt man aber im Buch nichts. Par­sing­tech­ni­ken spie­len kei­ne Rol­le. Inter­es­sant fin­de ich die Umset­zun­gen von vir­tu­el­len Metho­den­auf­ru­fen in Java und C++. Etwas knapp auch GC: 7 Sei­ten. Da das Buch als Pra­xis­buch ange­legt ist, fin­det sich im zwei­ten Teil (ab Sei­te 183) die Beschrei­bung des Com­pi­ler­tools MAX, der mit attri­bu­tier­ten Gram­ma­ti­ken arbei­tet und aus Java Quell­code eine Klas­sen­da­tei gene­riert. Nett beschrie­ben für ein Prak­ti­kum. Fand ich aber nicht mehr so inter­es­sant, da auf die Details nicht ein­ge­gan­gen wird. Ins­ge­samt ein les­ba­res Buch für die­je­ni­gen, die sich schon immer mal gefragt haben, wie ein OO-Com­pi­ler arbei­tet. Weni­ger inter­es­sant für den Uni­be­trieb, da zu spe­zia­li­siert mit einem Tool und einer Spra­che gear­bei­tet wird. Juni 2k

The Mythi­cal Man-Month: Essays on Soft­ware Engi­nee­ring
Fre­de­rick P- Brooks, Addi­son-Wes­ley. ISBN 0−210−00650−2. 1975. 195 Sei­ten
Die­ses Buch ist ein abso­lu­ter Klas­si­ker — was liegt näher, als das Buch ein­mal zu lesen. Lei­der ist es nicht einer der typi­schen Bücher, die ihr Stan­dard-Eng­lisch-Voka­bu­lar nut­zen. So brauch­te ich etwas län­ger zu lesen und dies zog sich über Mona­te hin­durch. Zum Inhalt: Wie das Erschei­nungs­da­tum andeu­tet, ist das Buch schon ein paar Deka­den alt. Brooks schreibt über sei­ne Erfah­run­gen mit und beim Ent­wurf des IBM System/360. Tools und Pro­gram­mier­spra­chen ent­spre­chen also die­sem Umfeld. Schön zu lesen ist die Per­so­nen­auf­tei­lung und der Pro­jekt­ver­lauf. Für einen Pro­jekt­lei­ter ist die­ses Buch sehr reiz­voll. Daher: Lesen! Juni 2k

Der Krieg der Codes: Wie Micro­soft ein neu­es Betriebs­sys­tem ent­wi­ckelt
G. Pas­cal Zacha­ry. ISBN 3–445-11038-X. 1996. 407 Sei­ten
Ein super inter­es­san­tes Buch über die Ent­ste­hung von Win­dows NT. Liest sich sehr flüs­sig und lässt die Zeit ver­ges­sen. Juni 1999

C Ele­ments of Style
Ste­ve Qual­li­ne. ISBN 0–13-148222-X. 1992. 265 Sei­ten
Buch über Pro­gram­mier­stil in C und C++. April 1999

Die west­li­che Pro­gram­mier­kunst am Schei­de­weg: die Schlüs­sel­tech­ni­ken der Soft­ware-Ent­wick­lung für das 21. Jahr­hun­dert
Edward Your­don. ISBN 3−446−17518−0. 1993. 298 Sei­ten
Das Buch von Your­don ist zwar schon etwas älter, aber der Inhalt ist zukunfts­wei­send. Er beschreibt die neu­en Wege, die im wesent­li­chen sind: CASE Tools und Objekt­ori­en­tie­rung. Er bringt eine Men­ge von Bei­spie­len, wo die Design/Analyse Pha­se ein­fach über­sprun­gen wird und dann natür­lich alles aus dem Ruder läuft. Feb 1999