Vorstellung
Thema
Architektur - Begriffsdefinition Eine Architektur (vοn griechisch αρχή = Anfang, Ursprung und lateinisch tectum = Haus, Dach) beschreibt in der Informatik im Allgemeinen das Zusammenspiel der Komponenten eines komplexen Systems Die Softwarearchitektur ist Teil des Softwareentwurfs, innerhalb dessen sie als Grobgliederung der Komponenten entsteht Im Rahmen der Softwareentwicklung repräsentiert die Softwarearchitektur die früheste Softwaredesign-Entscheidung (Architekturentwurf) Eine einmal eingerichtete Softwarearchitektur ist später nur mit hohem Aufwand abänderbar. Die Entscheidung über ihr Design ist somit eine der kritischsten und wichtigsten Punkte im Entwicklungsprozess einer Software Architektur ist all das, was teuer ist, wenn man es später ändern muss
Motivation Mist
Traditioneller Ansatz: Ablauf Analyse aller Anforderungen Ermitteln der technischen Komponenten Planung der kompletten Architektur Umsetzung
Adapter Adapter Adapter Adapter Adapter Traditioneller Ansatz: Architekturübersicht Benutzeroberfläche Batch Datenimport Legitimations System Anwendungskern Drittsystem A Drittsystem B Drittsystem C Persistenz
Traditioneller Ansatz: Detailplanung Benutzeroberfläche Bestandsverwalter Wareneingangsdialog Warenausgangsdialog Statistik -dialog XML Reader Batch Import Wareneingangsverwalter Warenausgangsverwalter Reportgenerator Lagerplatzverwalter Anwendungskern
Inkrementelle Architektur erstes Set an Anforderungen erstes Architekturmodell Umsetzung weitere Anforderungen Architekturmodell erweitern/anpassen
Adapter Adapter Adapter Adapter Adapter Inkrementelle Architektur: Erstes Architekturmodell Benutzeroberfläche Batch Datenimport Legitimations System Anwendungskern Drittsystem A Drittsystem B Drittsystem C Persistenz
Inkrementelle Architektur: Rollierende vorausschauende Planung Sprint 1 Bekannte Anforderungen Geplante Anforderungen Sprint 2 Bekannte Anforderungen Geplante Anforderungen Sprint 3 Bekannte Anforderungen Geplante Anforderungen Sprint 4 Bekannte Anforderungen Geplante Anforderungen = Architekturplanung
Wer macht die Architektur Architektur wissen Architekt Entwickler
Wer macht die Architektur Architektur wissen Scrum Team
Architektur Review Anforderungsmanagement Sprint Retrospektive Architekturmodell Product Backlog Refactoring Anforderungen Anpassung Sprint Planning Sprint Backlog Input Architektur Review Sprint Sprint Review
Refactoring Refactoring bezeichnet in der Softwareentwicklung die manuelle oder automatisierte Strukturverbesserung von Programm-Quelltexten unter Beibehaltung des beobachtbaren Programm-Verhaltens. Dabei sollen die Lesbarkeit, Verständlichkeit, Wartbarkeit und Erweiterbarkeit verbessert werden, mit dem Ziel, den jeweiligen Aufwand für Fehleranalyse und funktionale Erweiterungen deutlich zu senken. Wikipedia.de kann passieren Architektur anpassen wo notwendig/sinnvoll Anpassungen immer in Absprache mit dem Team
Grundsätze guter Programmierung/Architektur Gemeinsam Standards festlegen Grundsätze guter Programmierung /Architektur Quasar OSGi Bilden von Komponenten technisch organisieren Entkopplung gegen Interfaces programmieren Inversion of Control / Dependency Injection
Verabschiedung Vielen Dank Kontakt: carsten.czeczine@binaris-informatik.de