Lehrplan: Architektur und Design
Gliederung 1 Grundlagen der industriellen So9ware Entwicklung 2 Ebenen von Architektur und Design 3 KernakAvitäten von So9ware- Architekten 4 Architekturtypologien von So9ware- Systemen 5 Architektur und Entwurf von Anwendungsoberflächen 6 Architektur und Entwurf von Anwendungslogik 7 Architektur und Entwurf von Datenspeichern 8 Entwurfsmuster für die technische IntegraAon von Enterprise Anwendungen 9 Build- und Architekturmanagement 9 Qualitätssicherung von SW- Architekturen 10 Unternehmensarchitektur vs. So9warearchitektur 2
Vorlesung 01 1 Grundlagen der industriellen So9ware Entwicklung Herausforderungen und Probleme im So9ware Engineering Komplexität, KommunikaAon, Aufwandsschätzung Architektur und Design im SW- Prozess Einordnung, Abhängigkeiten, Schni\stellen Abgrenzung zu Requirements Engineering / SpezifikaAon Abgrenzung zu Architekturmanagement Grundprinzipien des So9ware- Engineering Architekturbegriff KernakAvitäten von SW- Architekten 3
Vorlesung 02 2 Ebenen von Architektur und Design MoAvaAon, Geschichte, Bezug zum SW- Prozess Stakeholder, Akteure und AkAvitäten Architekturpyramide Domänen- /Facharchitektur Unternehmensarchitektur Anwendungsarchitektur Pladormarchitektur Hardwarearchitektur Einsatz von Architekturmustern und Prinzipien Architektur- Prinzipien Basisarchitekturen Enterprise IntegraAon Pa\erns OrganisaAonsmuster Referenzarchitekturen 4
Vorlesung 03 3 KernakAvitäten von So9ware- Architekten Erfassung der Anforderungen und Interessen der Stakeholder (Capture) Entwerfen einer Architektur (Design) Beschreiben und DokumenAeren (Describe) Bewertung und EvaluaAon von Architekturen Szenario- basierte EvaluaAon (ATAM) Architecture Compliance Checking 5
Vorlesung 04 4 Architekturtypologien von So9ware- Systemen Monolithische Anwendungen Eigenscha9en, Vorteile, Nachteile, Typische Einsatzszenarien von Desktop Anwendung, Host Anwendung Verteilte Anwendungen Eigenscha9en, Vorteile, Nachteile, Typische Einsatzszenarien von Client- Sever Peer- to- peer Service orienaerte Architekturen Mobile Architekturen Architekturen zur IntegraAon/KommunikaAon Eigenscha9en, Vorteile, Nachteile, Typische Einsatzszenarien von File Transfer Shared Databases Remote Procedure InvocaAon Messaging 6
Vorlesung 05 5 Architektur und Entwurf von Anwendungsoberflächen Thin- Client Architektur: Nur Darstellung, keine Fachlogik Fat- Client Architektur: Darstellung und Teile der Fachlogik Synchrone vs. Asychrone GUIs Modale Dialoge Grundkonzepte komponentenbasierter GUI- Frameworks Grundkonzepte und Richtlinien für die Gestaltung guter Usability für Desktopanwendungen Webanwendungen Mobile Anwendungen 7
Vorlesung 06 6 Architektur und Entwurf von Anwendungslogik Domain Driven Design Einsatz eines Domänenmodells als zentrales Artefakt KommunikaAonsgrundlage Grundlage für Design der Anwendung Zentrale Elemente des Domänenmodells EnAty Value Object Service Komponente Konzept des Prinzips Strategic Design und Einfluss auf Entscheidungen und AkAvitäten im SW- Prozess 8
Vorlesung 07 6 Architektur und Entwurf von Anwendungslogik Pa\erns of Enterprise ApplicaAon Architecture (MarAn Fowler) Domain Logic Pa\erns (Service Layer, Table Module) Data Source Architectural Pa\ern (Table Data Gateway) Object- RelaAonal Behaviour Pa\erns (Unit of Work, IdenAty Map) Web PresentaAon Pa\erns (Page Controller, Template View) Session State Pa\erns (Server Session State, Client Session State) Base Pa\erns (Mapper, Registry, Value Object, Money) 9
Vorlesung 08 6 Architektur und Entwurf von Anwendungslogik Grundprinzipien Prinzipien des ObjektorienAerten Designs Grundlagen und MoAvaAon von Designprinzipien Open- Closed Prinzip (OCP) Liskovsches SubsAtuAonsprinzip (LSP) Dependency Inversion Prinzip (DIP) Interface SegregaAon Prinzip (ISP) Single Responsibility Prinzip (SRP) Weitere Prinzipien 10
Vorlesung 09 6 Architektur und Entwurf von Anwendungslogik Grundidee von Entwurfsmustern Standardmuster- Kataloge Muster zur Objekterzeugung (GoF) Singleton, Factory Method Abstract Factory Builder Prototype Strukturmuster zur Zusammenfassung von Objektmengen (GoF) Wrapper Flyweight, Composite Proxy, Bridge Decorator, Facade 11
Vorlesung 10 6 Architektur und Entwurf von Anwendungslogik Verhaltensmuster zur InterakAon von Objekten und Kontrollflüssen (GoF) Observer Iterator Command Template Method Strategy Chain of Responsibility Interpreter, Mediator Memento, State, Visitor Weitere Musterkataloge 12
Vorlesung 11 7 Architektur und Entwurf von Datenspeichern RelaAonale Datenmodellen und Datenbanken RelaAonenalgebra, SQL ObjektrelaAonales- Mapping Hierarchische Datenmodelle Extensible Markup Language (XML) NoSQL- Datenmodelle DokumentenorienAerte Datenbanken Graphendatenbanken SpaltenorienAerte Datenbank Objektdatenbanken Mapping von Daten verschiedener Datenmodelle 13
Vorlesung 12 8 Entwurfsmuster für die technische IntegraAon von Enterprise Anwendungen Messaging Message Endpoints, Message ContstrucAon, Message Channels Message RouAng, System Management, Message TransformaAon RESTful Design - AnwendungsintegraAon mit HTTP und XML Grundprinzipien und MoAvaAon von REST Adressierbarkeit von Diensten und Daten Zustandsloses Transferprotokoll StandardfunkAonen für alle REST- Services HTML und XML als Standard- Datenformat Einsatz von RESTful Webservices 14
Vorlesung 13 9 Build- und Architekturmanagement MoAvaAon, Vorteile, Nachteile, Voraussetzungen Au9eilung in Projekte (Maven / SVN) Au9eilung in Package und Module AutomaAsierung von Builds / IntegraAon AutomaAsierung von Tests AutomaAsiertes Delivery 15
Vorlesung 14 10 Qualitätssicherung von SW- Architekturen Möglichkeiten der AutomaAsierung Qualitätseigenscha9en und deren Messbarkeit Abhängigkeiten Zyklische Abhängigkeiten Code Komplexität IntegraAon von automaascher QS in den Buildprozess Werkzeugunterstützung 16
Vorlesung 15 11 Unternehmensarchitektur vs. So9warearchitektur Abgrenzung und Schni\stellen Zusammenarbeit von Unternehmensarchitekt und SW- Architekt Rollen und OrganisaAonsmuster 17