Top Banner
Thomas Schissler | MVP Visual Studio ALM, artiso AG
31

Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

Jun 13, 2019

Download

Documents

votuyen
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

Thomas Schissler | MVP Visual Studio ALM, artiso AG

Page 2: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

Kurs-Übersicht

Moderne Softwareentwicklung

01 | ÜberblickWas macht moderne Software-Entwicklung aus?

05 | Erweiterbare ArchitekturKann gewachsene Architektur effizient sein?

02 | ProjektmanagementWie funktioniert modernes Projektmanagement

06 | Continous Delivery & Dev OpsAusliefern und betreiben

03 | Test-Management Wie funktioniert Testen im agilen Umfeld?

07 | Entwickler-ProduktivitätOptimales Arbeitsumfeld für Entwickler

04 | ProjektkommunikationEffizient kommunizieren – Klarheit schaffen

08 | Team PowerPotenziale effizienter Teams nutzen

Page 3: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

05 | Erweiterbare Architektur

Kann gewachsene Architektur effizient sein?

Page 4: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

Big Design Up Front

www.integrativebiology.ac.uk/softarch.html

Page 5: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

Continous Delivery

Page 6: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

Gewachsene Architektur

PBI

PBI

PBI

PBI

Page 7: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

Ziele moderner Architektur

Wartbar ErweiterbarTestbarTestbar

Page 8: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

Oberstes Ziel: Entkopplung

Trennung

-Daten

-Orchestrierung

-Logik

Sackgassen-

methoden

Komponenten-

orientierung

IoC

Interfaces

MVVM / MVCSingle

Responsibility

POCOs

Page 9: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

Software-Architektur

{C#}

Page 10: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

Solid Design Principleshttp://en.wikipedia.org/wiki/Solid_(object-oriented_design)

O

S

L

I

D

Single ResponsibilityThere should never be more than one reason for a class change.

Open/closed PrincipleA module should be open for extension but closed for modification.

Liskov Substitutability PrincipleSubclasses should be substitutable for their base classes.

Interface Segregation PrincipleMany client specific interfaces are better than on general purpose

interface.

Dependency Inversion PrincipleDepend upon Abstractions. Do not depend upon concretions

{C#}

Page 11: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

Komponentenorientierte

Architektur{C#}

Data Contract

Operation Contract

Page 12: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

Contracts Data Contract

Operation Contract

{C#}

Page 13: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

Spaghetti-Code

Recognize

SplitLine

DB

ReadData

SplitDigit

Recognize Digit

Integrations-Test

Page 14: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

Klassische Struktur

SplitLine

DB

ReadData

Recognize

Integrations-Test

SplitDigit

Recognize Digit Unit-Test

Integrations-Test

Integrations-Test

Integrations-Test

Page 15: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

Sackgassen-Methoden

SplitLine

DB

ReadData

Recognize

Integrations-Test

SplitDigit Recognize Digit

Integrations-Test

Unit-Test Unit-Test Unit-Test

Page 16: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

Warum Inversion of Control (IoC)?

Recognize instanziert eine konkrete Implementierung

Codeänderung an Recognize nötig wenn eine andere Implementierung genutzt werden soll

Recognize

TextFileReader

XMLReader

{C#}

Page 17: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

Mit IoC

Recognize nutzt IReader

IReader wird durch IoC Container gem. Konfiguration instanziiert

Keine Änderungen am Code selber

Recognize

TextFileReader

XMLReaderIR

ead

er

IoC

Co

nta

ine

r

{C#}

Page 18: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

Inversion of Control (IoC)

Constructor Injection

{C#}

Page 19: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

Häufige Lösung - Greenfield

Page 20: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

Refactoring – Renovierung des Codes

Page 21: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

Greenfield – Wirklich?

Hoffnung

Page 22: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

Greenfield – Wirklich?

Kunden-

Feedback

Page 23: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

Greenfield – Wirklich?

Kapazität

Page 24: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

Greenfield – Wirklich?

Greenfield ist nicht

alternativlos

Page 25: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

Modelle im Agilen Kontext

Nutzen von

Modellen?

Modell-

getriebene

Entwicklung?

Beispiele

Page 26: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

UML

Page 27: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

.NET Classdesigner

Page 28: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

Workflow Foundation

Page 29: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

Architecture Discovery

Page 30: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

Demo

Agile Architektur

Vorteile entkoppelter Architektur für Unit-Tests

Nutzung von IoC für Mocking

Architektur-Tools in Visual Studio– Layer-Diagramme

– Code Maps

– Code Clone Detection

– Sequence Diagramms

Page 31: Thomas Schissler | MVP Visual Studio ALM, artiso AGdownload.microsoft.com/.../MVA_Moderne_Software_Entwicklung_Modul_05.pdfUML.NET Classdesigner. Workflow Foundation. Architecture

©2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, Office, Azure, System Center, Dynamics and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.