Agile Softwareentwicklung mit C# (Microsoft Press)
eBook - ePub

Agile Softwareentwicklung mit C# (Microsoft Press)

Best Practices und Patterns für flexiblen und adaptiven C#-Code

Gary McLean Hall, Detlef Johannis

  1. 462 Seiten
  2. German
  3. ePUB (handyfreundlich)
  4. Über iOS und Android verfügbar
eBook - ePub

Agile Softwareentwicklung mit C# (Microsoft Press)

Best Practices und Patterns für flexiblen und adaptiven C#-Code

Gary McLean Hall, Detlef Johannis

Angaben zum Buch
Buchvorschau
Inhaltsverzeichnis
Quellenangaben

Über dieses Buch

Wie geht man am besten mit wechselnden Anforderungen im Lauf eines Softwareprojektes um? Wie kann man Änderungen im Code einfach, zeitsparend und ohne Fehler umsetzen? Agile Methoden und Prozesse wie Scrum helfen, aber auch der Code selbst muss adaptiv und agil sein.Zentrales Thema dieses Buchs ist die Entwicklung von anpassungsfähigem C#-Code, der agilen Teams die Arbeit erleichtert undbewährte Prinzipien der objektorientierten Programmierung (insbesondere SOLID) berücksichtigt. Das Ergebnis ist ein praxisorientiertesWerk, das Ihnen anhand vieler Code-Beispiele verdeutlicht, wie Sie in einem agilen Umfeld Code schreiben können, der flexibel und adaptiv ist. Lernen Sie, wie Sie Unit Tests richtig einsetzen, welche Methoden der Refaktorierung effektiv sind, wie Sie wichtige Patterns verwenden und gefährliche Anti-Patterns vermeiden.Dieses Buch macht Ihren Code agil!· Die Scrum-Grundlagen: Artefakte, Rollen, Kennzahlen und Phasen· Organisation und Management von Abhängigkeiten· Best Practices für Patterns und Anti-Patterns· Beherrschung der SOLID-Prinzipien: Single-Responsibility, Open/Closed, Liskovsche Substitution· Schnittstellen richtig managen, um anpassungsfähigen Code zu erhalten· Unit-Tests und Refaktorierung im Zusammenspiel· Einfluss von Delegation und Abstraktion auf die Anpassungsfähigkeit von Code· Implementierung von Dependency-Injection· Die praktische Anwendung dieser Prinzipien im Rahmen eines agilen Projekts

Häufig gestellte Fragen

Wie kann ich mein Abo kündigen?
Gehe einfach zum Kontobereich in den Einstellungen und klicke auf „Abo kündigen“ – ganz einfach. Nachdem du gekündigt hast, bleibt deine Mitgliedschaft für den verbleibenden Abozeitraum, den du bereits bezahlt hast, aktiv. Mehr Informationen hier.
(Wie) Kann ich Bücher herunterladen?
Derzeit stehen all unsere auf Mobilgeräte reagierenden ePub-Bücher zum Download über die App zur Verfügung. Die meisten unserer PDFs stehen ebenfalls zum Download bereit; wir arbeiten daran, auch die übrigen PDFs zum Download anzubieten, bei denen dies aktuell noch nicht möglich ist. Weitere Informationen hier.
Welcher Unterschied besteht bei den Preisen zwischen den Aboplänen?
Mit beiden Aboplänen erhältst du vollen Zugang zur Bibliothek und allen Funktionen von Perlego. Die einzigen Unterschiede bestehen im Preis und dem Abozeitraum: Mit dem Jahresabo sparst du auf 12 Monate gerechnet im Vergleich zum Monatsabo rund 30 %.
Was ist Perlego?
Wir sind ein Online-Abodienst für Lehrbücher, bei dem du für weniger als den Preis eines einzelnen Buches pro Monat Zugang zu einer ganzen Online-Bibliothek erhältst. Mit über 1 Million Büchern zu über 1.000 verschiedenen Themen haben wir bestimmt alles, was du brauchst! Weitere Informationen hier.
Unterstützt Perlego Text-zu-Sprache?
Achte auf das Symbol zum Vorlesen in deinem nächsten Buch, um zu sehen, ob du es dir auch anhören kannst. Bei diesem Tool wird dir Text laut vorgelesen, wobei der Text beim Vorlesen auch grafisch hervorgehoben wird. Du kannst das Vorlesen jederzeit anhalten, beschleunigen und verlangsamen. Weitere Informationen hier.
Ist Agile Softwareentwicklung mit C# (Microsoft Press) als Online-PDF/ePub verfügbar?
Ja, du hast Zugang zu Agile Softwareentwicklung mit C# (Microsoft Press) von Gary McLean Hall, Detlef Johannis im PDF- und/oder ePub-Format sowie zu anderen beliebten Büchern aus Informatica & Programmazione Microsoft. Aus unserem Katalog stehen dir über 1 Million Bücher zur Verfügung.

Information

Verlag
dpunkt
Jahr
2015
ISBN
9783864916915

Teil I

Eine agile Grundlage
KAPITEL 1 Einführung in Scrum
KAPITEL 2 Abhängigkeiten und Schichten
KAPITEL 3 Schnittstellen und Entwurfs-Patterns
KAPITEL 4 Unit-Tests und Refaktorierung
Dieser Teil des Buchs führt in die Grundlagen von agilen Prinzipien und Verfahren ein.
Das Schreiben von Code ist ein Grundpfeiler der Softwareentwicklung. Allerdings gibt es viele unterschiedliche Wege, lauffähigen Code zu erhalten. Selbst wenn Sie die Auswahl von Plattform, Sprache und Framework außen vor lassen, steht ein Entwickler sogar beim Implementieren simpelster Funktionen vor einer Vielzahl von Entscheidungen.
Die Erstellung erfolgreicher Softwareprodukte ist schon immer das primäre Ziel der Softwareentwicklungsbranche. In den letzten Jahren haben sich Entwickler darauf verlegt, Patterns (Muster) und Verfahren zu implementieren, die reproduzierbar sind und sich positiv auf die Codequalität auswirken. Dies ist notwendig geworden, weil sich die Codequalität nicht mehr von der Qualität des fertigen Softwareprodukts trennen lässt. Im Lauf der Zeit wird minderwertiger Code die Qualität des Produkts herunterziehen, zumindest wird er die Auslieferung funktionierender Software verzögern.
Um qualitativ hochwertige Software zu produzieren, müssen Entwickler sicherstellen, dass ihr Code gut wartbar, einfach zu lesen und vollständig getestet ist. Daneben hat sich als neue Anforderung herauskristallisiert, dass Code adaptiv, also anpassungsfähig sein sollte.
Die Kapitel in diesem ersten Buchteil stellen moderne Softwareentwicklungsprozesse und -verfahren vor. Diese Prozesse und Verfahren werden zusammenfassend als agile Prozesse und Verfahren bezeichnet, womit betont werden soll, dass sich ihre Richtung schnell ändern kann. Agile Prozesse stellen Möglichkeiten bereit, wie ein Softwareentwicklungsteam schnelles Feedback erhalten und als Reaktion darauf seinen Fokus verschieben kann. Agile Verfahren bieten dagegen Wege, wie ein Softwareentwicklungsteam Code schreibt, der bei Bedarf eine neue Richtung einschlagen kann.
Kapitel 1

Einführung in Scrum

Am Ende dieses Kapitels werden Sie in der Lage sein, die folgenden Aufgaben durchzuführen:
  • Zuweisen von Rollen an die wichtigsten Stakeholder des Projekts
  • Beschreiben der unterschiedlichen Dokumente und anderer Artefakte, die Scrum benötigt und produziert
  • Messen des Fortschritts eines Scrum-Projekts im Lauf seiner Entwicklung
  • Diagnostizieren von Problemen bei Scrum-Projekten und Vorschlagen von Gegenmitteln
  • Abhalten von produktiven Scrum-Meetings, die allen Beteiligten nützen
  • Begründen, warum Scrum und nicht andere agile oder rigide Methodologien eingesetzt werden
Scrum ist eine Methodologie für die Projektverwaltung. Genauer gesagt handelt es sich um eine agile Methodologie. Das zentrale Konzept von Scrum beruht darauf, den Nutzen eines Softwareprodukts iterativ, also phasenweise, zu steigern. Der gesamte Scrum-Prozess wird mehrmals wiederholt (die Iterationen), bis das Softwareprodukt als vollständig beurteilt oder der Prozess abgebrochen wird. Diese Iterationen werden als Sprints bezeichnet. Sie münden in einer Software, die als fertiges Produkt freigegeben werden kann. Die gesamte Arbeit wird im sogenannten Produkt-Backlog (Produkt-Rückstand) in Prioritäten eingestuft, und bei Beginn jedes Sprints legt das Entwicklungsteam fest, welche Arbeiten es in der aktuellen Iteration erledigen wird, indem es diese Arbeiten im Sprint-Backlog festhält. Eine Arbeitseinheit innerhalb von Scrum wird als Story (Geschichte) bezeichnet. Das Produkt-Backlog ist eine nach Prioritäten sortierte Liste abzuarbeitender Stories, und jeder Sprint wird durch die Stories definiert, die während einer Iteration entwickelt werden. Abbildung 1–1 zeigt einen Überblick des Scrum-Prozesses.
image
Abb. 1–1 Scrum ähnelt einer Fertigungsstraße für kleine Features eines Softwareprodukts
Scrum umfasst verschiedene Dokumentationsartefakte, Rollen, die von Personen innerhalb und außerhalb des Entwicklungsteams übernommen werden, und Zeremonien, das heißt Meetings, an denen die relevanten Gruppen teilnehmen. Ein einziges Kapitel reicht nicht aus, um alle Vorteile von Scrum als Projektverwaltungsmethode aufzuzeigen, aber dieses Kapitel sollte Ihnen einen ausreichenden Überblick vermitteln, damit Sie sich bei Bedarf tiefer in bestimmte Teilbereiche einarbeiten können und die Bedeutung der üblichen Scrum-Verfahren durchblicken.

Scrum und Wasserfall

Ich habe die Erfahrung gemacht, dass in der Softwareentwicklung der agile Ansatz besser funktioniert als das Wasserfallmodell (engl. waterfall), daher empfehle ich grundsätzlich nur agile Prozesse. Das Problem bei der Wasserfallmethode ist ihre Inflexibilität. Abbildung 1–2 zeigt die Abläufe bei einem Wasserfallprojekt.
image
Abb. 1–2 Der Entwicklungsprozess bei der Wasserfallmethode
Die Ergebnisse jeder Phase werden dabei zur Basis der nächsten Phase, und jede Phase wird vollständig abgeschlossen, bevor die nächste in Angriff genommen wird. Das setzt voraus, dass keine Fehler, Probleme, ungelösten Fragen oder Missverständnisse mehr auftauchen, nachdem eine Phase abgeschlossen ist. Die Pfeile zeigen nur in eine Richtung.
Der Wasserfallprozess geht außerdem davon aus, dass nach Abschluss einer Phase keine Änderungen mehr vorgenommen werden. Diese Annahme lässt sich angesichts der eigenen Erfahrung und zahlreicher Untersuchungen einfach nicht aufrechterhalten. Änderungen gehören einfach zum Leben dazu, nicht nur bei der Softwareentwicklung. Wasserfallansätze behandeln Änderungen als etwas, das teuer und unerwünscht ist und daher unbedingt vermieden werden sollte. Wasserfallmethoden basieren auf dem Konzept, dass sich Änderungen vermeiden lassen, wenn man mehr Zeit auf die Ausarbeitung von Anforderungen und Entwurf verwendet. In diesem Denkkonzept tauchen Änderungen während der nachfolgenden Phasen schlicht nicht auf. Das ist natürlich lächerlich, weil sich immer Änderungen ergeben.
Das Agile-Konzept begegnet diesem Problem, indem es einen fundamental anderen Ansatz verwendet, in dem Änderungen als etwas Positives betrachtet werden und jeder die Gelegenheit erhält, sich an alle auftretenden Änderungen anzupassen. Das Agile-Konzept und somit auch Scrum lassen zwar Änderungen auf Prozessebene zu, aber auf das Ziel künftiger Änderungen hin zu programmieren ist eine der schwierigsten und gleichzeitig wichtigsten Ziele moderner Softwareentwicklung. Dieses Buch will Ihnen zeigen, wie Sie Code erstellen, der so agil und adaptiv ist, dass er Änderungen übersteht.
Wasserfallmethodologien sind außerdem dokumentzentriert, das heißt, sie produzieren große Mengen an Dokumentation, die nicht direkt das Softwareprodukt verbessert. Bei den Agile-Methoden wird dagegen die lauffähige Software als wichtigstes Dokument eines Softwareprodukts betrachtet. Das Verhalten der Software wird schließlich durch ihren Quellcode gesteuert, nicht durch die Dokumente, die begleitend zum Code verfasst wurden. Und weil die Dokumentation vom Quellcode getrennt ist, kann es leicht passieren, dass sie nicht mehr mit der Software übereinstimmt.
Scrum definiert einige Kennzahlen, die Rückmeldungen zum Fortschritt eines Projekts und seinem Gesamtzustand liefern, aber das ist etwas anderes als eine erklärende Dokumentation über das Produkt. Agile-Methoden empfehlen im Allgemeinen, nur so viel Dokumentation zu produzieren, dass das Projekt nicht ins Unverantwortliche abkippt, aber sie schreiben eine solche Dokumentation meist nicht vor. Es gibt durchaus Code, der von ergänzender Dokumentation profitiert, sofern sie nicht einmal geschrieben und dann nie wieder gelesen wird. Aus diesem Grund sind lebendige, einfach zu nutzende Dokumente, wie beispielsweise Wikis, wichtige Werkzeuge in Scrum-Teams.
Der Rest dieses Kapitels behandelt die wichtigsten Aspekte von Scrum genauer. Dabei konzentrieren wir uns nicht auf pures Scrum, sondern auf eine beliebte Variante. Das Ziel von Scrum als Prozess besteht nicht nur darin, das Softwareprodukt iterativ zu verbessern, sondern auch den Entwicklungsprozess....

Inhaltsverzeichnis

Zitierstile für Agile Softwareentwicklung mit C# (Microsoft Press)

APA 6 Citation

Hall, G. M. (2015). Agile Softwareentwicklung mit C# (Microsoft Press) ([edition unavailable]). dpunkt. Retrieved from https://www.perlego.com/book/1076969/agile-softwareentwicklung-mit-c-microsoft-press-best-practices-und-patterns-fr-flexiblen-und-adaptiven-ccode-pdf (Original work published 2015)

Chicago Citation

Hall, Gary McLean. (2015) 2015. Agile Softwareentwicklung Mit C# (Microsoft Press). [Edition unavailable]. dpunkt. https://www.perlego.com/book/1076969/agile-softwareentwicklung-mit-c-microsoft-press-best-practices-und-patterns-fr-flexiblen-und-adaptiven-ccode-pdf.

Harvard Citation

Hall, G. M. (2015) Agile Softwareentwicklung mit C# (Microsoft Press). [edition unavailable]. dpunkt. Available at: https://www.perlego.com/book/1076969/agile-softwareentwicklung-mit-c-microsoft-press-best-practices-und-patterns-fr-flexiblen-und-adaptiven-ccode-pdf (Accessed: 14 October 2022).

MLA 7 Citation

Hall, Gary McLean. Agile Softwareentwicklung Mit C# (Microsoft Press). [edition unavailable]. dpunkt, 2015. Web. 14 Oct. 2022.