Softwareentwicklung von Kopf bis Fuß [ein Buch zum Mitmachen und Verstehen]

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Pilone, Dan (VerfasserIn), Miles, Russ (VerfasserIn)
Format: Buch
Sprache:German
English
Veröffentlicht: Beijing ; Köln [u.a.] O'Reilly 2008
Schlagworte:
Online-Zugang:Inhaltsverzeichnis
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!

MARC

LEADER 00000nam a2200000 c 4500
001 BV023357376
003 DE-604
005 20121018
007 t|
008 080623s2008 xx ad|| |||| 00||| ger d
015 |a 08,N23,0049  |2 dnb 
015 |a 08,A35,0054  |2 dnb 
016 7 |a 988713659  |2 DE-101 
020 |a 9783897218628  |c kart. : EUR 49.90, EUR 51.30 (AT), sfr 81.90 (freier Pr.)  |9 978-3-89721-862-8 
020 |a 3897218623  |9 3-89721-862-3 
035 |a (OCoLC)244290755 
035 |a (DE-599)DNB988713659 
040 |a DE-604  |b ger  |e rakddb 
041 1 |a ger  |h eng 
049 |a DE-1051  |a DE-859  |a DE-384  |a DE-M347  |a DE-858  |a DE-703  |a DE-20  |a DE-29T  |a DE-Aug4  |a DE-1049  |a DE-860  |a DE-523  |a DE-634  |a DE-83  |a DE-573  |a DE-706  |a DE-861  |a DE-1102  |a DE-11  |a DE-526  |a DE-2070s  |a DE-91G  |a DE-1047  |a DE-863 
082 0 |a 005.12  |2 22/ger 
084 |a ST 230  |0 (DE-625)143617:  |2 rvk 
084 |a DAT 310f  |2 stub 
084 |a 004  |2 sdnb 
100 1 |a Pilone, Dan  |e Verfasser  |4 aut 
240 1 0 |a Head first software development 
245 1 0 |a Softwareentwicklung von Kopf bis Fuß  |b [ein Buch zum Mitmachen und Verstehen]  |c Dan Pilone ; Russ Miles 
264 1 |a Beijing ; Köln [u.a.]  |b O'Reilly  |c 2008 
300 |a XXXIII, 459 S.  |b Ill., graph. Darst. 
336 |b txt  |2 rdacontent 
337 |b n  |2 rdamedia 
338 |b nc  |2 rdacarrier 
650 0 7 |a Softwareentwicklung  |0 (DE-588)4116522-6  |2 gnd  |9 rswk-swf 
650 0 7 |a Software Engineering  |0 (DE-588)4116521-4  |2 gnd  |9 rswk-swf 
689 0 0 |a Softwareentwicklung  |0 (DE-588)4116522-6  |D s 
689 0 |5 DE-604 
689 1 0 |a Software Engineering  |0 (DE-588)4116521-4  |D s 
689 1 |8 1\p  |5 DE-604 
700 1 |a Miles, Russ  |e Verfasser  |4 aut 
856 4 2 |m HBZ Datenaustausch  |q application/pdf  |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016540896&sequence=000004&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA  |3 Inhaltsverzeichnis 
883 1 |8 1\p  |a cgwrk  |d 20201028  |q DE-101  |u https://d-nb.info/provenance/plan#cgwrk 
943 1 |a oai:aleph.bib-bvb.de:BVB01-016540896 

Datensatz im Suchindex

DE-BY-TUM_call_number 0702 DAT 310f 2010 A 8527
DE-BY-TUM_katkey 1745102
DE-BY-TUM_location 07
DE-BY-TUM_media_number 040071339583
_version_ 1820876726132015104
adam_text Der Inhalt (im Überblick) Einführung xxiü 1 Gute Software entwickeln: Den Kunden zufrieden stellen 1 2 Anforderungen sammeln: Wissen, was der Kunde will 29 3 Projektplanung: Mit Planung zum Erfolg 69 4 User-Stories und Tasks: Jetzt aber an die Arbeit 109 5 Gut genug-Design: Fertig werden — mit gutem Design 149 6 Versionskontrolle: Defensives Programmieren 177 6.5 Code erstellen: LascheA durch Schlitz Bstecken ... 219 7 Tests und kontinuierliche Integration: Damit nichts schiefgeht 235 8 Testgetriebenc Entwicklung: Ihren Code verantwortlich machen 275 9 Eine Iteration abschließen: Alles fügt sich zusammen 317 10 Die nächste Iteration: Es ist nicht kaputt.... reparieren Sie es trotzdem 349 11 Bugs: Bugs beheben wie ein Profi 383 12 Das wahre Leben: Ein Prozess fürs lieben 417 Der Inhalt (jetzt ausfiöirlich) Einführung Ihr entwicklungsfähiges Gehirn. Sie versuchen, etwas zu lernen, und Ihr Hirn tut sein Bestes, damit das Gelernte nicht hängen bleibt. Es denkt nämlich: »Wir sollten lieber ordentlich Platz für wichtigere Dinge lassen, z.B. für das Wissen, welche Tiere einem gefährlich werden könnten, oder dass es eine ganz schlechte Idee ist, nackt Snowboard zu fahren.« Tja, wie schaffen wir es nun, Ihr Gehirn davon zu überzeugen, dass Ihr Leben davon abhängt, gute Software entwickeln zu können? Für wen ist dieses Buch? xxiv Wir wissen, was Sie gerade denken. xxv Metakognition: Nachdenken übers Denken xxvii Und das können SIE tun, um sich Ihr Gehirn untenan zu machen xxix Lies mich! xxx Die Gutachter xxxii Danksagungen xxxiii Gute. Software entwickeln IDen Kunden zufrieden stellen Wenn Ihr Kunde unzufrieden ist, sind alle unzufrieden! Jedes gute Stück Software fängt damit an,dass ein Kunde eine tolle Idee hat. Ihr Job als Softwareentwickler ist es, diese Idee real werden zulassen. Aber aus einer vagen Idee funktionsfähigen Code zu machen - Code, der den Kunden zufrieden stellt - ist nicht ganz einfach. In diesem Kapitel werden Sie lernen, wie man verhindert, in der Softwareentwicklung Schiffbruch zu erleiden: indem Sie genau die Software abliefern, die benötigt wird, und zwar pünktlich und im Rahmen des Budgets. Jetzt schnappen Sie sich mal Ihren Laptop, und dann ziehen wir los, um gute Software auf den Weg zu bringen. ^^ Toms Touren gehen online 2 ^^^^^ Die meisten Projekte starten mit zwei wichtigen Fragen 3 ^^^ ^k Entwicklung nach dem »Big Bang«-Ansatz 4 ^M I ¦ Wir spulen vor: zwei Wochen später 5 ^^p M Big Bang-Entwicklung endet meist mit einer üblen BAUCHLANDUNG 6 ^^^r Gute Software entwickeln heißt... 9 je| Das Ziel mit ITERATIONEN erreichen 10 Jede Iteration ist ein Mini-Projekt 14 Jede Iteration entspricht QUALITÄTS-Software 14 Der Kunde WIRD etwas verändern 20 Es ist Ihre Aufgabe, Anpassungen vorzunehmen 20 Da gibt es aber ein paar MÄCHTIGE Probleme ... 20 Iteration berücksichtigt Veränderungen automatisch (irgendwie jedenfalls) 22 Ihre Software ist erst fertig, wenn sie VERÖFFENTLICHT ist 25 Werkzeuge für Ihre Softwareentwickler-Kiste 26 Anforderungen sammeln Wissen, was der Kunde will 2 Man kann nicht alles haben, was man will... der Kunde allerdings SChon! Gute Softwareentwicklung liefert, was der Kunde haben will. In diesem Kapitel geht es ausschließlich darum, wie wir von unseren Kunden erfahren können, welche Anforderungen sie an die Software stellen. Sie werden lernen, wie User-Stories, Brainstorming und das Planungsspiel Ihnen helfen, Ihrem Kunden in den Kopf zu sehen. Auf diese Weise können Sie sicherstellen, am Ende des Projekts das angefertigt zu haben, was der Kunde will... und nicht bloß eine armselige Imitation. Ikarus Shuttle-Trips wird modernisiert 30 Sprechen Sie mit Ihrem Kunden, um an MEHR Informationen zu kommen 33 Blueskying — mit dem Kunden Wolken schieben 34 Aktuelles Angebot | Manchmal endet Blueskying so... 36 ra,i. anzeigen ^ „«h^i»,™: FieWebiiti „„, Shuttle toeben I Finden Sie heraus, wie sich die Leute KONKRET verhalten 37 Jesoeherndas aktuelle/ .^^u^,. EinSesushervon I von Ikaros anzeigen, lksro» soll ein Shuttle borten I Ihre Anforderungen müssen KUNDENzentriert sein 39 können. | Kundenfeedback zum Entwickeln von Anforderungen nutzen 41 ™, Zosatzpaketb „„, Online bezahlen „«n^w CbiiewriivvAr „^lb^, Einfeswhervon User-Stories definieren das WAS Ihres Projekts ... Ikargs toll «in Spezlalpaket «iH ikaro* soll se[ne P«chu»a online 41 , , _ . , ,.,.,™-, ,„ Extras online heben können- bezahlen können, Abschätzungen definieren das WANN 43 ^^^_^_^^ 1 Bürogespräch 47 ~^» ¦ „„,. Hotel buehen mmtm ™! bIIiSIJ ~-*-1™ tS Tlllirv2L Spielen wir das Planungsspiel 48 ^a^anr ,2 Ikaros soll «in «otslbwhenkon- ^ r Raombafenomanisieri Machen Sie Annahmen den Prozess 51 ^^^^m—m^m^SSSSSMM^^^^^^ m^ Fur eine User-Stor^ ist eine GROSSE Abschätzung eine SCHLECHTE Abschätzung 54 Das Ziel heißt Konvergenz 57 Der Iterationszyklus von der Anforderung bis zur Abschätzung 60 Jetzt endlich sind Sie so weit und können das gesamte Projekt abschätzen ... 63 rrojektplsmmg 3 Mit Planung zum Erfolg Jedes gute Stück Software beginnt mit einer soliden Planung. In diesem Kapitel werden Sie lernen, wie Sie diese Planung erstellen. Sie werden lernen, mit dem Kunden zusammenzuarbeiten, um Prioritäten für die Anforderungen festzulegen. Sie werden Iterationen definieren, auf die Sie anschließend gemeinsam mit Ihrem Team hinarbeiten können. Und schließlich werden Sie einen realisierbaren Projektplan ausarbeiten, dem Sie sich mit Ihrem Team anvertrauen und dessen Durchführung Sie kontrollieren können.Wenn Sie sich das erarbeitet haben, werden Sie genau wissen, wie Sie von den Anforderungen zu Ihrer ersten lieferbaren Leistung kommen. Kunden wollen ihre Software SOFORT! 70 Prioritäten festlegen - mit dem Kunden zusammen 73 Wir wissen, was in Meilenstein 1.0 hineinkommt (ja, vielleicht) 74 Wenn die Features nicht passen, überarbeiten Sie die Prioritäten 75 Manchmal bedeuten mehr Leute weniger Ertrag 77 Arbeiten Sie sich zu einem vernünftigen Meilenstein 1.0 vor 78 amwierer Folgendes... Bei Iterationen liegt die Würze in der Kürze 85 ^_^-—¦ • --—n. Vergleich von Planung und Realität 87 X Klar, kein Problem, da kann ich ) (mich in zwei Tagen durchf rasen. / Velocity berücksichtigt Overhead m Ihren Abschätzungen 89 £ ° ^- ^~—S~^ Programmierer rechnen in UTOPISCHEN Tagen... 90 (Entwickler rechnen in REALEN Tagen ... 91 Wann dauert Ihre Iteration zu lange? 92 Befassen Sie sich mit dem Durchsatz, BEVOR Sie Iterationen einteilen 93 0 Zeit für eine Beurteilung 97 ei Die große Tafel da an Ihrer Wand 100 rirklichkeit allerdings das hier; Wie Sic den Leutcn in Ihrcm Team das Leben vermiesen 103 y^ Auf dem Weg nach Hause schnapp ich ~ f mir einen Monster-Burger, bis 3 Uhr früh pro- ^—-^ User-Stories uncl Täsks 4 Jetzt aber an die Arbeit Es wird Zeit, sich an die Arbeit zu machen. Mit user-stories erfassen Sie, was entwickelt werden soll, und jetzt wird es Zeit, sich an die Arbeit zu machen und das alles aufzuteilen, damit in diese User-Stories langsam Leben kommt. Im folgenden Kapitel werden Sie lernen, wie Sie Ihre User-Stories in einzelne Tasks (Aufgaben) aufbrechen und wie Task-Abschätzungen Ihnen helfen, Ihr Projekt von Anfang bis Ende zu überwachen. Sie werden lernen, wie Sie Ihre Projekttafel aktualisieren und Tasks von »In Arbeit« nach »Erledigt« verschieben, um am Ende eine vollständig fertiggestellte User-Story zu haben. Auf dem Weg dahin werden Sie erfahren, wie Sie mit der unvermeidlichen unvorhergesehenen Arbeit umgehen müssen, die Ihnen Ihr Kunde vorsetzen wird. Dürfen wir vorstellen? - binHinUndWeg 110 Addieren sich Ihre Tasks zum richtigen Ergebnis? 113 Tragen Sie nur die Arbeit ab, die noch übrig ist 115 Hängen Sie Ihre Tasks an die Tafel 116 Fangen Sie an, an Ihren Tasks zu arbeiten 118 Ein Task ist erst dann IN ARBEIT, wenn er in Arbeit ist 119 Und wenn ich an zwei Sachen gleichzeitig arbeite? 120 Ihr erstes Stand-up-Meeting... 123 Ihr erSteS Stand-Up-MeetiWg ... Ta* l die »Date«-Klasse anlegen 124 Stand-up-Meeting: Tag 5, also Ende von Woche 1 ... 130 A1*rk ^ato ba«ke*peirte, Stand-up-Meeting: Tag 2, Woche2 136 an, KatWuths- S w **** ^H*! m S#L Wir unterbrechen dieses Kapitel... 140 ntw ^^ / Ungeplante Tasks müssen festgehalten werden 141 «Jv^T w 3 ^ä Unerwartete Tasks lassen Ihren Burndown-Verlauf ansteigen 143 ^^ML ^HftK *3K. Durchsatz ist hilfreich, aber... 144 ^^^^^^l ^^Bjj^P fl^^B Sie haben eine Menge zu tun... 146 ^^^^^P ^B^V f ^^^^B ... aber Sie wissen GENAU, wo Sie stehen 147 ^^M ^^Ek Bm f^ ^^^K ^H^b ^^H| n. Durchsatz im Gespräch 148 Gut genug-Desxgn 5 Fertig werden - mit gutem Design Gutes Design hilft Ihnen dabei, liefern zu können, im letzten Kapitel sah es reichlich düster aus. Schlechtes Design hat allen das Leben schwer gemacht, und zur Krönung des ganze Übels tauchte urplötzlich noch ein ungeplanterTask auf. In diesem Kapitel werden wir uns ansehen, wie Sie mit Refactoring Ihr Design so umgestalten, dass Sie und Ihr Team produktiver arbeiten können. Sie werden Prinzipien für gutes Design anwenden und sich gleichzeitig davor hüten, ein »perfektes Design« anzustreben. Abschließend werden Sie mit ungeplanten Tasks genau so umgehen wie mit der übrigen Arbeit in Ihrem Projekt, und dafür werden Sie die große Projekttafel nutzen,die Sie an Ihrer Wand hängen haben. binHinUndWeg steckt in ernsten Schwierigkeiten ... 150 Dieses Design verstößt gegen das Prinzip der einen Verantwortlichkeit 153 k Mehrere Verantwortlichkeiten im Design aufspüren 156 ..¦. . ¦- - Von mehreren Verantwortlichkeiten zu einer Verantwortlichkeit übergehen 159 Hö m^M / Ihr DesiSn sollte dem SRP folge«: at)er ebenso dem DRY-Prinzip ... 160 .. / Das Post-Refactoring-Stand-up-Meeting... 164 V Ungeplante Tasks sind trotz allem immer noch Tasks 166 Die Demo ist selbst Teil Ihres Tasks 167 Wenn alles erledigt ist, ist die Iteration beendet 170 *•« In Arbeit Ev-Iecki ! « faazäesarQwi I «I „ ¦lUlf ^V Mtft ^ U Mb» Ä d,tit , ^O? 1 I v. ^-(»-a™ij. I ö . .—_^ ^sJJ , - i °t T^ iö^ ° ¦^ 7-^r^—^-jA - 7 1 lÄlt. J— r ^ ; ^ iM-L-JÄ ri _J ¦ N ^,ihi gdhi. ?e»ti3 K ^yieKdien i j i _/^r^^^^^ s ™* i r ~ —~~^ ~ I Abysihlosscr. _ _—_—___^ ^^ - ^Jj^iii- Versionskorttrolle 6 Defensives Programmieren Sicherheit geht vor, wenn es darauf ankommt, wirklich gute Software ZU Schreiben! Gute Software zu schreiben ist nicht einfach... vor allem, wenn Sie sichergehen müssen, dass der Code funktioniert und dass das auch so bleibt. Ein einziger Tippfehler reicht aus, eine ungünstige Entscheidung eines Kollegen oder auch ein Festplatten-Crash, und Ihre gesamte Arbeit geht den Bach runter. Wenn Sie aber mit Versionskontrolle arbeiten, können Sie dafür sorgen, dass Ihr Code immer sicher in einem Repository aufbewahrt wird. Sie können Fehler rückgängig machen, und Sie können Bugs beseitigen - sowohl in neuen als auch in älteren Versionen Ihrer Software. Sie haben einen neuen Auftrag BcatBox Pro 178 r~„„„ cpj ^ Und jetzt die Arbeit am GUI... 182 ZZZ. ZZ. ¦ Und ein schneller Test... 183 £^- * - - r- B Führen Sie Ihrem Kunden die neue BeatBox vor 185 EÜÜ? - * ^T *7 ¦ Kommen wir zum Thema VERSIONSKONTROLLE 188 E5EI tU I ¦ Zuerst legen Sie Ihr Projekt an... 190 VBBBBBBBflHBBBM^HHPBi - ¦ ¦ anschließend können Sie Code ein- und auschecken 191 ^^^^^ Die meisten Werkzeuge zur Versionskontrolle versuchen, Beat OX Pro 1.0 Probleme für Sie zu lösen 192 Der Server versucht, Ihre Änderungen ZUSAMMENZUFÜHREN 193 Wenn Ihre Software die Änderungen nicht zusammenführen kann. meldet sie einen Konflikt 194 mrnmMM ,,j Noch mehr Iterationen, noch mehr Stories... 198 ™™~ . _ _ -HZ, ¦ Wir haben mehr als eine Version von unserer Software... 200 SU - - .,™~ ¦ Gute Commit-Kommcntarc machen es Ihnen leichter. Z^T - - - « ZT I ältere Software zu finden 202 2J2 ~ ^ - ¦ Jetzt können Sie Version 1.0 auschecken 203 HSI WM^B (Notfall-)Stand-up-Meeting 204 VMHHSSMHSBBBMHHmh^P Geben Sie Ihren Versionen ein Tag 205 *^^^^^ Tags, Zweige und Trunks... au weia! 207 PeatPOX Pro l.X /crsion i .0 korrigieren ... diesmal aber wirklich! 208 Wir haben jetzt ZWEI Codestämme. 209 Wann man KEINEN Zweig anlegen sollte ... 212 #Zen oder die Kunst vom guten Verzweigen 212 Was Versionskontrollc macht... 214 Versionskontrolle kann nicht dafür sorgen, dass Ihr Code wirklich funktioniert... 215 Werkzeuge für Ihre Softwareennvickler-Kiste 216 Code erstellen . # Lasche A durch Schlitz B stecken ... fc^ I m Es lohnt sich, sich an die Anweisungen zu halten ... vor allem ¦ p I *ß Wenn Sie Sie Selbst geschrieben haben. Versionskontrolle allein reicht ^*^ * S^ nicht aus, um Ihren Code permanent abzusichern. Sie müssen sich Gedanken darüber machen, Ihren Code zu kompilieren und als vertriebsfertiges Softwarepaket aufzubereiten. Und vor allen Dingen: Welche Klasse soll die Hauptklasse sein? Wie soll sie ausgeführt werden? In diesem Kapitel lernen Sie, wie ein Build-Tool Ihnen ermöglicht, Ihre eigenen Anweisungen für den Umgang mit Ihrem Quellcode zu schreiben. Entwickler sind keine Gedankenleser 220 Ihr Projekt in einem Schritt erstellen 221 Ant: Ein Build-Tool für Java-Projekte 222 Projekte, Properties, Targets, Tasks 223 Gute Build-Skripten... 228 Gute Build-Skripten gehen über das Übliche HINAUS 230 Auch Ihr Build-Skript ist Code 232 Neuer Entwickler, Klappe, die zweite 233 Werkzeuge für Ihre Softwareentwickler-Kiste 234 Einzelteile ijrfes Build-frQzess Lau££ä}iiges Projekte System i »ilder oder /Cohs J . • / i«» Bespiel... J^fiT! Tests und kprrt3nuierl!clie Integration 7 Damit nichts schiefgeht Auch die besten Entwickler können den Build beschädigen. Jeder hat es schon einmal gemacht. Sie sind sich sicher: Mein Code kompiliert. Sie haben ihn immer wieder auf Ihrem System getestet und jetzt ins Repository eingepflegt. Aber auf dem Weg zwischen Ihrem System und der schwarzen Kiste, die man Server nennt, muss jemand Ihren Code geändert haben. Der arme Kerl, der den nächsten Check-out durchführt, wird einen harten Tag damit verbringen, das in Ordnung zu bringen, was einmal funktionierender Code war. In diesem Kapitel werden wir darüber reden, wie man ein Sicherheitsnetz aufbaut, um den Build funktionsfähig und Sie selbst produktiv zu halten. Schiefgehen tut es IMMER 236 Ihr System können Sie auf dreierlei Weise betrachten 238 Black-Box-Tests konzentrieren sich auf EINGABE und AUSGABE 239 Grey-Box-Tests bringen Sie NÄHER an den Code 240 White-Box-Tests nutzen Insiderwissen 243 ALLES in einem Schritt testen 248 Tests mit einem Test-Framework automatisieren 250 illJlfiMäw!* /jmISKUBK Führen Sie Ihre Tests mit dem Framework aus 251 iHjSpJf B ¦ CI im Griff mit CruiseControl 254 A, h iJ ^^^^^^^^ lÜH^^BK Tests stellen sicher, dass alles funktioniert... oder? 256 V ! U mHVI Den gesamten Code testen heißt, ALLE ZWEIGE zu testen 264 * * Blaclt-Box-Test ^lit einem Abdeckungsbericht prüfen, was abgedeckt wird 265 Eine gute Abdeckung zu erreichen ist nicht immer leicht... 267 Was Versionskontrollc macht... 270 Werkzeuge für Ihre Softwarcentwicklcr-Kiste 274 Testgetriebene Entwicklung 8 Ihren Code verantwortlich machen Manchmal geht es nur darum, Erwartungen zu erfüllen. Guter Code muss funktionieren, jeder weiß das. Aber woher wissen Sie, dass Ihr Code funktioniert? Selbst mit Unit-Tests gibt es in großen Codemengen immer noch Bereiche, die ungetestet bleiben. Aber was wäre, wenn Testen ein grundlegender Teil der Softwareentwicklung wäre? Was ist, wenn Sie alles mit Blick auf Tests machen würden? In diesem Kapitel werden wir auf dem aufbauen, was Sie über Versionskontrolle, Cl und automatisiertes Testen wissen, und alles zu einer Umgebung zusammenbinden, in der Sie keine Angst vor dem Reparieren von Bugs, dem Refactoring und soger der Neuimplementierung von Teilen Ihres Systems haben müssen. Testen Sie ERST, nicht zum Schluss 276 Wir werden also ERST testen ... 277 Willkommen bei der testgesteuerten Entwicklung 277 Ihr erster Test... 278 ... schlägt kläglich fehl 279 Machen Sie Ihre Tests GRÜN 280 Rot, grün, Refactoring... 281 Bei TDD LENKEN Tests Ihre Implementierung 286 Einen Task abzuschließen bedeutet, dass Sie alle erforderlichen Tests haben und diese alle erfolgreich sind 28o Gehen Sie weiter, wenn Ihr Test erfolgreich ist! 289 Einfachheit heißt, Abhängigkeiten zu vermeiden 29j Schreiben Sie immer testbaren Code 294 Schauen Sie sich Ihren Entwurf an, wenn das Testen schwer wird 295 Das Strategy-Muster ermöglicht mehrere Implementierungen eines Interface 296 Halten Sie Ihren Testcode bei Ihren Tests 299 Testen führt zu besserem Code 300 Mehr Tests bedeuten immer viel mehr Code 302 ^^^ Strategy-Muster, lockere Bindung, Mock-Objekte... 303 ^V Wir brauchen viele unterschiedliche, aber ähnliche Objekte 304 » Können wir nicht Objekte senerieren? 304 Ü Srüi: Ihr Tett ist erfolgreich. 1 I Ein Mock-Objekt vertritt echte Objekt 305 Refoctoring: Mit Verdopplungen. Hüisiich- J Mock-Objekte sind funktionierende Objektvertreter 306 ktiten, und aH*n Code usw. aufräumen. S . Qnn ^ l0,^^ Gute Software ist testbar 309 Es ist nicht immer leicht, grün zu sein ... 310 Ein Tag im Leben eines testgesteuerten Entwicklers 312 Werkzeuge für Ihre Softwareentwickler-Kiste 314 Eine Iteration abschließen Alles fügt sich zusammen 9 Sie Sind fast fertig! Das Team hat hart gearbeitet, und jetzt fügt sich alles zusammen. Ihre Aufgaben und User-Stories sind vollständig. Aber womit verbringen Sie jetzt am besten den Tag, den Sie noch übrig haben? Wo können Sie Usability-Tests einbauen? Können Sie eine weitere Refactoring- und Umarbeitungsrunde einbauen? Und sicher treiben sich da noch eine Menge Fehler herum... wann werden die behoben? All das ist Teil des Endes einer Iteration... machen wir uns also bereit, fertig zu werden. Ihre Itcration ist fast abgeschlossen ... 318 ... aber es gibt eine Menge, was Sie noch tun könnten 319 Systemtests sind NOTWENDIG ... 324 ... aber WER führt sie durch? 325 Systemtests benötigen ein vollständiges System 326 Gute Systemtests erfordern ZWEI Iterationszyklen 327 Mehr Iterationen führen zu mehr Problemen 328 10 Kennzeichen effektiver Systemtests 333 Leben (und Sterben) eines Bugs 334 Sie haben also einen Bug gefunden ... 336 j——-^_______^ Anatomie eines Bug-Reports 337 / , j. Sü^w^ ¦ - Aber es gibt eine Menge Dinge, die Sie noch tun KONNTEN... 338 / ««te* / ^ ¦ Zeit für den Iterationsrückblick 342 / ~~~ ~ 1 a ¦ Einige Fragen für den Iterationsrückblick 343 / 20—--—.^ m ^ ne ALLGEMEINE Prioritätsliste zur Erledigung /- ~- ^ t^j3—T-^ ¦ ZUSÄTZLICHER Dinge... 344 A^tsT~ —• . B Werkzeuge für Ihre Softwareentwickler-Kiste 346 xvii Die nächste Iteration Es ist nicht kaputt... reparieren Sie es trotzdem I ä^ Alles läuft gut? Warten Sie ab, das kann sich schnell ändern ... ¦ B W Ihre Iteration ist wunderbar gelaufen, und Sie haben rechtzeitig funktionierende Software ausgeliefert. Zeit für die nächste Iteration? Kein Problem, stimmt s? Leider nicht ganz. In der Softwareentwicklung dreht sich alles um Veränderung, und der Schritt zur nächsten Iteration bildet darin keine Ausnahme. In diesem Kapitel werden Sie lernen, wie Sie sich auf die nächste Iteration vorbereiten. Sie müssen Ihre Tafel neu aufbauen und Ihre Stories und Annahmen anpassen - und das auf Basis dessen, was der Kunde JETZT mW, nicht darauf, was er vor einem Monat wollte. Was ist funktionierende Software? 350 Sie müssen die nächste Iteration planen 352 Der Durchsatz trägt dem WAHREN LEBEN Rechnung 359 Es geht IMMER noch um den Kunden 360 Auch die Software eines anderen ist BLOSS Software 362 Kundenzustimmung? Prüfen! 365 Ihren Code testen 370 Houston, wir haben ein ernsthaftes Problem ... 371 Vertrauen Sie KEINEM 373 Sie ohne Ihren Prozess 378 Sie mit Ihrem Prozess 379 dicht Usei^SUfes )-, .. , IfzplatzwilMih 1 I I - —- (! ¦ Bugs 1. Bugs beheben wie ein Profi I Ihr Code, Ihre Verantwortung ... Ihr Bug, Ihr Ruf! Wenns hart wird, ¦ müssen Sie den Karren selbst aus dem Dreck ziehen. Bugs, egal ob sie in Ihrem Code stecken oder bloß in Code, den Ihre Software nutzt, gehören in der Softwareentwicklung zu den Gegebenheiten des Lebens. Und wie alles andere sollte sich auch das Verfahren, mit dem Sie Bugs behandeln, in Ihren restlichen Prozess einfügen. Sie müssen Ihre Tafel vorbereiten, Ihren Kunden auf dem Laufenden halten, zuverlässig einschätzen, wie viel Arbeit es ist, die Bugs zu beheben, und Refactoring sowie Prefactoring einsetzen, um Bugs zu reparieren und in der Zukunft zu vermeiden. Neulich in Iteration 2 386 Zunächst müssen Sie mit dem Kunden reden 386 Priorität eins: Die Dinge erstellbar machen 392 Wir könnten den Code reparieren ... 394 ... müssen aber die Funktionalität reparieren 395 Herausfinden, welche Funktionalität funktioniert 396 JETZT wissen Sie, was nicht funktioniert 399 Was würden Sie tun? 399 Spike-Test zum Abschätzen 400 Was sagen Ihnen die Ergebnisse der Spike-Tests? 402 Das Bauchgefühl Ihres Teams zählt 404 Geben Sie Ihrem Kunden die Bug-Fix-Abschätzung 406 Die Dinge sehen gut aus... 410 ... und Sie schließen die Iteration erfolgreich ab! 411 UND der Kunde ist zufrieden 412 P^Pppww»*«!^,.. Werkzeuge für Ihre Softwareentwickler-Kiste 414 Das Waiifö Leihen Ein Prozess fürs Leben J * J Sie haben eine Menge über die Entwicklung von Software ¦ fJ gelernt. Aber bevor Sie jetzt anfangen, Burndown-Graphen in jedes Büro zu hängen, sollten m^^* Sie noch erfahren, wie man mit den Eigenarten des jeweiligen Projekts verfährt - in seinen eigenen Begriffen. Es gibt eine Menge Ähnlichkeiten und Erfahrungswerte, die Sie von einem Projekt ins nächste übernehmen sollten, aber überall gibt es auch spezifische Dinge, auf die Sie vorbereitet sein sollten. Jetzt ist es Zeit, einen Blick darauf zu werfen, was Sie an einem bestimmten Projekt gelernt haben und wohin Sie sich als Nächstes wenden solten, um noch mehr zu lernen. -•— 1 Einen Softwareentwicklungsprozess fixieren 418 U~ Ein guter Prozess liefert gute Software aus 419 • £—;—3—1—*i i—i- ~ | Förmliche Kleidung erforderlich... 424 — ¦ ** Einige zusätzliche Ressourcen... 426 —Ü- - 1 Mehr Wissen = bessere Prozesse 427 -.. — Werkzeuge für Ihre Softwareentwickler-Kiste 428 Weis üki£ Uelht ADie Top Five der Themen (die wir nicht behandelt haben) Schon mal das Gefühl gehabt, dass irgendetwas fehlt? Das kennen Wir ... Gerade als Sie dachten,Sie wären fertig ...taucht was Neues auf.Wir konnten Sie einfach nicht entlassen, ohne noch ein paar Dinge zu erwähnen, die ins restliche Buch einfach nicht mehr gepasst haben. Zumindest nicht, wenn Sie dieses Buch immer noch mit sich herumtragen können möchten, ohne dazu einen Leiterwagen hinter sich herziehen zu müssen. Werfen Sie also einen Blick auf die Dinge, die Ihnen (immer noch) fehlen könnten. 1. UML-Klassendiagramme 434 2. Sequenzdiagramme 43( /^~ ci ~—-- -v I 3. User-Stories und Anwendungsfällc 438 *g==r ^ 4. System-Tests vs. Unit-Tests 440 ^yscWmdijceit :mi 5. Refactoring 441 + je-t^estWiwdißkei-tü -in-t fc + se^esdUmdikeitfgesfihwmdiakei-t = «ü :void Ä „J„^OM BßWU tZCrW 1 Techniken und Prinzipien B Werkzeuge für den erfahrenen Softwareentwickler Haben Sie sich auch schon gewünscht, es gäbe all diese tollen Werkzeuge und Techniken irgendwo an einem Platz Versammelt? Nun, hier kommt eine Zusammenfassung aller Entwicklungstechniken und -prinzipien, die wir in diesem Buch behandelt haben. Schauen Sie sich alle noch einmal an und überprüfen Sie, ob Sie noch wissen, was sie im Einzelnen bedeuten.Vielleicht können Sie sich diese Seiten auch ausschneiden und damit Ihre Projekttafel garnieren, so dass sie jeder während Ihrer täglichen Stand-up-Meetings sehen kann. Entwicklungstechniken 444 Entwicklungsprinzipen 446
any_adam_object 1
author Pilone, Dan
Miles, Russ
author_facet Pilone, Dan
Miles, Russ
author_role aut
aut
author_sort Pilone, Dan
author_variant d p dp
r m rm
building Verbundindex
bvnumber BV023357376
classification_rvk ST 230
classification_tum DAT 310f
ctrlnum (OCoLC)244290755
(DE-599)DNB988713659
dewey-full 005.12
dewey-hundreds 000 - Computer science, information, general works
dewey-ones 005 - Computer programming, programs, data, security
dewey-raw 005.12
dewey-search 005.12
dewey-sort 15.12
dewey-tens 000 - Computer science, information, general works
discipline Informatik
format Book
fullrecord <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>02038nam a2200469 c 4500</leader><controlfield tag="001">BV023357376</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20121018 </controlfield><controlfield tag="007">t|</controlfield><controlfield tag="008">080623s2008 xx ad|| |||| 00||| ger d</controlfield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">08,N23,0049</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">08,A35,0054</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">988713659</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783897218628</subfield><subfield code="c">kart. : EUR 49.90, EUR 51.30 (AT), sfr 81.90 (freier Pr.)</subfield><subfield code="9">978-3-89721-862-8</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">3897218623</subfield><subfield code="9">3-89721-862-3</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)244290755</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)DNB988713659</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakddb</subfield></datafield><datafield tag="041" ind1="1" ind2=" "><subfield code="a">ger</subfield><subfield code="h">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-1051</subfield><subfield code="a">DE-859</subfield><subfield code="a">DE-384</subfield><subfield code="a">DE-M347</subfield><subfield code="a">DE-858</subfield><subfield code="a">DE-703</subfield><subfield code="a">DE-20</subfield><subfield code="a">DE-29T</subfield><subfield code="a">DE-Aug4</subfield><subfield code="a">DE-1049</subfield><subfield code="a">DE-860</subfield><subfield code="a">DE-523</subfield><subfield code="a">DE-634</subfield><subfield code="a">DE-83</subfield><subfield code="a">DE-573</subfield><subfield code="a">DE-706</subfield><subfield code="a">DE-861</subfield><subfield code="a">DE-1102</subfield><subfield code="a">DE-11</subfield><subfield code="a">DE-526</subfield><subfield code="a">DE-2070s</subfield><subfield code="a">DE-91G</subfield><subfield code="a">DE-1047</subfield><subfield code="a">DE-863</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.12</subfield><subfield code="2">22/ger</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 230</subfield><subfield code="0">(DE-625)143617:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 310f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">004</subfield><subfield code="2">sdnb</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Pilone, Dan</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="240" ind1="1" ind2="0"><subfield code="a">Head first software development</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Softwareentwicklung von Kopf bis Fuß</subfield><subfield code="b">[ein Buch zum Mitmachen und Verstehen]</subfield><subfield code="c">Dan Pilone ; Russ Miles</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Beijing ; Köln [u.a.]</subfield><subfield code="b">O'Reilly</subfield><subfield code="c">2008</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXXIII, 459 S.</subfield><subfield code="b">Ill., graph. Darst.</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="650" ind1="0" ind2="7"><subfield code="a">Softwareentwicklung</subfield><subfield code="0">(DE-588)4116522-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Software Engineering</subfield><subfield code="0">(DE-588)4116521-4</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Softwareentwicklung</subfield><subfield code="0">(DE-588)4116522-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">Software Engineering</subfield><subfield code="0">(DE-588)4116521-4</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Miles, Russ</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">HBZ Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&amp;doc_library=BVB01&amp;local_base=BVB01&amp;doc_number=016540896&amp;sequence=000004&amp;line_number=0001&amp;func_code=DB_RECORDS&amp;service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</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="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-016540896</subfield></datafield></record></collection>
id DE-604.BV023357376
illustrated Illustrated
indexdate 2024-12-23T21:03:35Z
institution BVB
isbn 9783897218628
3897218623
language German
English
oai_aleph_id oai:aleph.bib-bvb.de:BVB01-016540896
oclc_num 244290755
open_access_boolean
owner DE-1051
DE-859
DE-384
DE-M347
DE-858
DE-703
DE-20
DE-29T
DE-Aug4
DE-1049
DE-860
DE-523
DE-634
DE-83
DE-573
DE-706
DE-861
DE-1102
DE-11
DE-526
DE-2070s
DE-91G
DE-BY-TUM
DE-1047
DE-863
DE-BY-FWS
owner_facet DE-1051
DE-859
DE-384
DE-M347
DE-858
DE-703
DE-20
DE-29T
DE-Aug4
DE-1049
DE-860
DE-523
DE-634
DE-83
DE-573
DE-706
DE-861
DE-1102
DE-11
DE-526
DE-2070s
DE-91G
DE-BY-TUM
DE-1047
DE-863
DE-BY-FWS
physical XXXIII, 459 S. Ill., graph. Darst.
publishDate 2008
publishDateSearch 2008
publishDateSort 2008
publisher O'Reilly
record_format marc
spellingShingle Pilone, Dan
Miles, Russ
Softwareentwicklung von Kopf bis Fuß [ein Buch zum Mitmachen und Verstehen]
Softwareentwicklung (DE-588)4116522-6 gnd
Software Engineering (DE-588)4116521-4 gnd
subject_GND (DE-588)4116522-6
(DE-588)4116521-4
title Softwareentwicklung von Kopf bis Fuß [ein Buch zum Mitmachen und Verstehen]
title_alt Head first software development
title_auth Softwareentwicklung von Kopf bis Fuß [ein Buch zum Mitmachen und Verstehen]
title_exact_search Softwareentwicklung von Kopf bis Fuß [ein Buch zum Mitmachen und Verstehen]
title_full Softwareentwicklung von Kopf bis Fuß [ein Buch zum Mitmachen und Verstehen] Dan Pilone ; Russ Miles
title_fullStr Softwareentwicklung von Kopf bis Fuß [ein Buch zum Mitmachen und Verstehen] Dan Pilone ; Russ Miles
title_full_unstemmed Softwareentwicklung von Kopf bis Fuß [ein Buch zum Mitmachen und Verstehen] Dan Pilone ; Russ Miles
title_short Softwareentwicklung von Kopf bis Fuß
title_sort softwareentwicklung von kopf bis fuß ein buch zum mitmachen und verstehen
title_sub [ein Buch zum Mitmachen und Verstehen]
topic Softwareentwicklung (DE-588)4116522-6 gnd
Software Engineering (DE-588)4116521-4 gnd
topic_facet Softwareentwicklung
Software Engineering
url http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016540896&sequence=000004&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA
work_keys_str_mv AT pilonedan headfirstsoftwaredevelopment
AT milesruss headfirstsoftwaredevelopment
AT pilonedan softwareentwicklungvonkopfbisfußeinbuchzummitmachenundverstehen
AT milesruss softwareentwicklungvonkopfbisfußeinbuchzummitmachenundverstehen