Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
1
16 Wiederverwendung von Software
16.0 Einführung Lernziele Vorteile der Wiederverwendung Nachteile der Wiederverwendung 16.1 Die Wiederverwendungslandschaft Wiederverwendungstechniken Auswahlkriterien 16.2 Anwendungsframeworks Definition Typen von Frameworks Frameworks und Entwurfsmuster
2
16 Wiederverwendung von Software (2)
16.3 Software-Produktlinien Anwendungsframeworks und Software-Produktlinien Spezialisierung in Produktlinien Architektur und Konfiguration 16.4 Wiederverwendung von COTS-Produkten Vorteile von COTS COTS-Lösungen COTS-Integration
3
16.0 Lernziele die Vorteile und Probleme der Wiederverwendung von Software bei der Entwicklung neuer Systeme kennen das Konzept von Frameworks für Anwendungen verstehen eine Vorstellung von Software-Produktlinien haben wissen, wie Systeme durch Konfigurieren und Zusammenstellen kommerzieller Anwendungen entwickelt werden können
4
16.0 Wiederverwendung Verwendung eines Artefakts in einem anderen Kontext in den Ingenieurswissenschaften üblich in der Softwaretechnik zunächst nicht im Fokus Fokus zunächst auf Entwicklung erste Überlegungen zur Wiederverwendung um 1985 im Fokus seit etwa 2000
5
16.0 Wiederverwendung von Software
Wiederverwendung von Anwendungssystemen Wiederverwendung von Komponenten Kapitel 17/19 Wiederverwendung von Objekten und Funktionen Wiederverwendung von Konzepten
6
16.0 Vorteile der Wiederverwendung
Höhere Zuverlässigkeit Geringeres Risiko im Projekt Effektiver Einsatz von Spezialisten Übereinstimmung mit Standards Beschleunigte Entwicklung
7
16.0 Probleme der Wiederverwendung
Höhere Wartungskosten Mangel an Werkzeugunterstützung Not-invented-here Syndrom Aufwand für Aufbau und Wartung einer Komponentenbibliothek Aufwand zum Suchen, Verstehen und Anpassen von wiederverwendbaren Komponenten
8
16.1 Wiederverwendungslandschaft
9
16.1 Wiederverwendungstechniken
Architekturmuster Entwurfsmuster Komponentenbasierte Entwicklung Anwendungsframeworks Umhüllen von Altsystemen Serviceorientierte Systeme Softwareproduktlinien Wiederverwendung von COTS-Produkten ERP-Systeme Konfigurierbare vertikale Anwendungen Programmbibliotheken Modellgetriebene Entwicklung Programmgeneratoren Aspektorientierte Softwareentwicklung
10
16.1 Auswahlkriterien Entwicklungszeitplan
Voraussichtliche Lebensdauer der Software Fähigkeiten, Hintergrund und Erfahrung der Entwickler Kritische nichtfunktionale Anforderungen Anwendungsbereich Einsatzplattform
11
16.2 Anwendungsframeworks
Framework may refer to: Computers Enterprise Architecture Framework Architecture framework Software framework, a reusable set of libraries or classes for a software system (or subsystem) JavaScript and Ajax frameworks, Rich Internet application frameworks Application framework, used to implement the standard structure of an application for a specific operating system. Content management framework, reusable components of a Content management system used to manage web content Web application framework, for development of dynamic websites, web applications, and web services Multimedia framework, handles media on a computer and through a network
12
16.2 Anwendungsframeworks
Framework-oriented design, a programming paradigm that uses existing frameworks as the basis for application design Framework (office suite), a DOS office application suite launched in 1984 to run on the original IBM PC. Framework III an integrated software package; its spreadsheet program. Government ... Education Other Uses (Wikipedia englisch, )
13
16.2 Anwendungsframeworks
In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by additional user written code, thus providing application specific software. A software framework is a universal, reusable software platform used to develop applications, products and solutions. Software frameworks include support programs, compilers, code libraries, an application programming interface (API) and tool sets that bring together all the different components to enable development of a project or solution. (Wikipedia englisch, )
14
16.2 Anwendungsframeworks
Ein Framework (englisch für Rahmenstruktur) ist ein Programmiergerüst, das in der Softwaretechnik, insbesondere im Rahmen der objektorientierten Softwareentwicklung sowie bei komponentenbasierten Entwicklungsansätzen, verwendet wird. Im allgemeineren Sinne und nicht als dezidiertes Softwareprodukt verstanden, bezeichnet man mit Framework auch einen Ordnungsrahmen. (Wikipedia deutsch, )
15
16.2 Anwendungsframeworks
... ein integrierter Satz an Softwareartefakten (wie Klassen, Objekte und Komponenten), die zusammenwirken, um eine wiederverwendbare Architektur für eine Familie von verwandten Anwendungen bereitzustellen. (Schmidt et al., 2004)
16
16.2 Anwendungsframeworks
Größenmäßig zwischen Komponente und System Konkrete und abstrakte Klassen und deren Interaktionen sprachspezifisch Generische Struktur mit generischen Funktionen jeweils für bestimmte Typen von Anwendungen Implementierung einer bestimmten Anwendung Konkretisierung (Schnittstellen, abstrakte Klassen) Erweiterung (Vererbung)
17
16.2 Klassen von Frameworks
Einteilung nach Sommerville Frameworks für Systeminfrastruktur Entwicklung von Systeminfrastrukturen wie Kommunikation, Benutzungsschnittstellen, Compiler Frameworks zur Integration von Middleware Standards und Objektklassen zur Unterstützung von Komponentenkommunikation und Informationsaustausch Unterstützung standardisierter Komponentenmodelle (EJB, .NET) Frameworks für Unternehmensanwendungen domänenspezifisch, z.B. Telekommunikationssysteme oder Finanzsysteme Webanwendungsframeworks
18
16.2 Typen von Frameworks Application Frameworks Domain Frameworks
Einteilung nach Wikipedia deutsch, Application Frameworks bilden das Programmiergerüst für eine bestimmte Klasse von Anwendungen (horizontal slice), die Funktionen und Programmstrukturen bereitstellen, die bei allen Anwendungen dieser Klasse von Bedeutung sind. Domain Frameworks hingegen bilden das Programmiergerüst für einen bestimmten Problembereich (vertical slice), also Funktionen und Strukturen, die zur Lösung dieses Problembereichs typischerweise benötigt werden. Class Frameworks fassen Klassen und Methoden zusammen, die Unterstützung auf einer bestimmten Abstraktionsebene für ein breites Anwendungsfeld bieten.
19
16.2 Typen von Frameworks Komponenten-Frameworks
Wikipedia Fortsetzung (1) Komponenten-Frameworks abstrahieren von der objektorientierten Ebene und bieten eine Umgebung zur Entwicklung und Integration von Software-Komponenten an. Software-Komponenten werden dabei meist als Bündel von Klassen mit eindeutig definierten Schnittstellen betrachtet. Coordination-Frameworks (wie z. B. Jini und UPnP) stellen Formen und Einrichtungen der Geräte-Interaktion zur Verfügung und dienen so in erster Linie deren nahtloser und skalierbarer Interoperabilität. Wenn beispielsweise ein „Jini-fähiger“ Drucker an ein Netzwerk angeschlossen wird, welches Jini verwendet, so kann er selbstständig anderen Geräten mitteilen, was für eine Art von Drucker dazugekommen ist – so dass andere Geräte sich jetzt dieser neuen Möglichkeit „bewusst“ sind.
20
16.2 Typen von Frameworks Tests Frameworks Webframeworks
Wikipedia Fortsetzung (2) Tests Frameworks dienen zur Ausführung von (automatisierten) Softwaretests, besonders im Rahmen der testgetriebenen Entwicklung. Populäre Beispiele sind JUnit für Modultests oder Selenium zum Testen von Webanwendungen. Webframeworks sind ausgelegt für die Entwicklung von dynamischen Webseiten, Webanwendungen oder Webservices.
21
16.2 Abgrenzung der Frameworks
kein fertiges Programm mehr als eine Klassenbibliothek Vorgabe einer Architektur / Anwendungsstruktur Wesentliche Merkmale Umkehrung der Steuerung (IOC, Inversion of Control) Standardverhalten (Default Behaviour) Erweiterbarkeit (Extensibility) Unveränderbarer Code (Non-modifiable Framework Code) (Wikipedia englisch, )
22
16.2 Umkehrung der Steuerung
Das Framework legt den Kontrollfluss fest Programmierer registriert konkrete Implementierungen Framework ruft diese auf Beispiel bei GUI Listener für Ereignisse Observer-Pattern Unterschied zu Bibliotheken Aufruf von Methoden durch das Programm Sonderfall Dependency Injection Registrierung nicht im Code, sondern „von außen“ „Hollywood-Prinzip“ Don't call us, we'll call you.
23
16.2 Webanwendungsframeworks (WAF)
Erstellung von dynamischen Websites Frontends für Webanwendungen verfügbar in gängigen Web-Programmiersprachen Java, Python, Ruby etc. Architektur basiert auf MVC-Muster Benutzereingaben Steuerungszustand Steuerungsmethoden Modellzustand Modellmethoden Präsentationszustand Präsentationsmethoden Nachrichten zu Präsentationsänderungen Modellbearbeitungen Modellanfragen und Aktualisierungen
24
16.2 Model – View – Controller
Architekturmuster für GUI Entwurf Verschiedene Präsentationen eines Objektes und getrennte Interaktionen mit diesen Präsentationen MVC-Muster kann als Framework betrachtet werden Implementierung verschiedener Entwurfsmuster, z.B. Observer Pattern Composite Pattern Strategy Pattern Funktionalität über Einschubmethoden (Hooks)
25
16.2 WAF-Funktionalitäten
Sicherheit Benutzerauthentifizierung und Zugriffssteuerung Dynamische Webseiten Definition von Schablonen (Templates) und deren Füllung aus einer Datenbank Datenbankunterstützung abstrakte Schnittstelle zu verschiedenen Datenbanken Sitzungsverwaltung Verwaltung von Sitzungen als Zusammenfassung mehrerer Interaktionen des Benutzers mit dem System Benutzerinteraktion z.B. Verwendung von AJAX zur Validierung von Eingaben
26
16.2 Anwendungserstellung mit Frameworks
Generisches Framework wird erweitert zu anwendungsspezifischem (Sub-)System Hinzufügen konkreter Klassen erben von abstrakten Klassen erben von konkreten Klassen Hinzufügen von Rückrufmethoden (callback) reagieren auf Ereignisse, die das Framework erkennt Probleme Komplexität der Frameworks Komplexität der Werkzeuge lange Einarbeitungszeit
27
16.2 Offenheit von Frameworks
Black-Box-Framework definierte Schnittstelle des Frameworks Implementierung dahinter unbekannt White-Box-Framework Implementation des Frameworks ist vollständig sichtbar Implementation des Frameworks kann geändert werden Glass-Box-Framework Implementation ist gegen Änderungen gesichert
28
16.3 Software-Produktlinien
Ausgangspunkt vorhandene Anwendung ähnlicher Anforderungsbereich Erzeugung einer neuen Anwendung durch Anpassung Folge: strukturelle Probleme Strategie generische Produktlinie Architektur mit unterschiedlichen Subsystemen, die geändert werden können
29
16.3 Software-Produktlinien
Anwendungsfamilien gemeinsame Architektur gemeinsame Komponenten generische Funktionalität Anpassung an unterschiedliche Anforderungsprofile Konfiguration des Systems und der Komponenten Hinzufügen neuer Komponenten Auswahl von Komponenten aus einer Bibliothek Ändern von Komponenten
30
16.3 Frameworks und Software-Produktlinien
Objektorientierung Frameworks stützen sich auf objektorientierte Konzepte Framework-Code bleibt in der Regel unverändert Anwendungsfamilien müssen nicht objektorientiert sein Komponenten-Code wird geändert, gelöscht, neu geschrieben Unterstützter Bereich Frameworks eher technisch Produktlinien eher domänen- und plattformspezifisch Hauptanwendungen Produktlinien häufig hardware-orientiert (z.B. Druckertreiber) Frameworks eher software-orientiert Ausgangspunkt der Entwicklung bei Produktlinien meist das ähnlichste Mitglied der Familie bei Frameworks in der Regel das Framework
31
16.3 Spezialisierung bei Software-Produktlinien
Phase 1: Kern der Produktlinie erzeugen häufig aus einem Framework Erweiterung insbesondere durch fachliche Komponenten Phase 2: Spezialisierte Familienmitglieder erzeugen Plattformspezialisierung Betriebssystem, Hardware Umgebungsspezialisierung Einsatzumgebung (z.B. Kommunikationsmittel), Peripheriegeräte Funktionale Spezialisierung unterschiedliche Kundenanforderungen (z.B. Groß- / Einzelhandel) Prozessspezialisierung unterschiedliche Geschäftsprozesse (z.B. zentral / dezentral)
32
16.3 Vorgehen für eine neue Anwendung
Anforderungen der Beteiligten ermitteln Wahl der am besten passenden Systeminstanz ggf. Anforderungen nachverhandeln vorhandene Instanz anpassen neue Instanz ausliefern
33
16.3 Konfiguration bei Produktlinien
Konfiguration zur Entwurfszeit Veränderungen im Kern der Produktlinie Einbringung kundenspezifischer Komponenten Konfiguration zum Bereitstellungszeitpunkt keine Veränderungen am Code Konfiguration durch Berater oder Kunden Konfigurationsdateien
34
16.3 Konfigurationswerkzeug
Komponentenauswahl Module mit erforderlicher Funktionalität Ablauf- und Regeldefinition Workflow für Information Validierung von Information Parameterdefinition von Systemparametern (z.B. Kenndaten der Hardware) bis zu Oberflächenparametern (z.B. Feldlänge in Formularen)
35
16.4 Wiederverwendung von COTS-Produkten
COTS = commercial of the shelf im Handel erhältliche Software-Produkte Anpassung für Kunden ohne Änderung am Quellcode Quellcode in der Regel nicht einsehbar (Ausnahme Open Source) umfangreiche generische Funktionalität einsetzbar in verschiedenen Umgebungen eingebaute Konfigurationsmechanismen Anpassung an spezielle Kundenbedürfnisse
36
16.4 Vorteile bei COTS-Wiederverwendung
kürzere Entwicklungszeit für ein zuverlässiges System nur Konfigurierung, nicht Programmierung leichtere Beurteilung der Funktionalität Referenzinstallationen weniger Ressourcen für IT im Unternehmen nötig Konzentration auf das Kerngeschäft Updates in Verantwortung des Anbieters z.B. bei Weiterentwicklung der Betriebsplattform
37
16.4 Probleme bei COTS-Wiederverwendung
Anpassung der Anforderungen an die Funktionalität was nicht vorhanden ist, kann nicht genutzt werden Vorgabe von Geschäftsprozessen durch die Software Software basiert auf Annahmen über Aktivitäten Schwierige Auswahl des passenden COTS-Produkts oft nicht ausreichende Dokumentation Fehlendes fachliches Wissen vor Ort Abhängigkeit von Kundenservice oder externen Beratern Abhängigkeit vom COTS-Anbieter z.B. Einstellung des Produkts, Übernahme, Konkurs
38
16.4 Arten der COTS-Wiederverwendung
COTS-Lösung COTS-Integration einzelnes Produkt mit vom Kunden benötigter Funktionalität Integration mehrerer heterogene Systemprodukte zur Erreichung der benötigten Funktionalität basierend auf generischer Lösung und standardisierten Prozessen flexible Lösungen für Kundenprozesse Entwicklung hauptsächlich Konfiguration Entwicklung hauptsächlich Integration Systemanbieter verantwortlich für die Wartung Systembesitzer verantwortlich für die Wartung Systemanbieter liefert die Plattform für das System Systembesitzer liefert die Plattform für das System
39
16.4 COTS-Lösungen Generische Anwendungssysteme zur Unterstützung von
Geschäftsaktivität Geschäftstyp Geschäftsunternehmen -> ERP Fachbereichsspezifische Funktionalität Nutzung durch möglichst viele potentielle Benutzer Annahmen über Arbeitsweise Konfiguration Einstellungen statt Programmierung schwierig zu testen
40
16.4 ERP-Systeme Enterprise Resource Planning Systeme
große integrierte Systeme generische Unterstützung für Geschäftsaktivitäten Auftragserteilung Rechnungswesen Lagerhaltung Produktionsplanung wohl häufigste Form der Software-Wiederverwendung Anpassung an Kundenbedürfnisse Auswahl benötigter Module Konfiguration der Module Definition von Geschäftsprozessen und –regeln Struktur der Systemdatenbank
41
16.4 Architektur eines ERP-Systems
Einkauf Lieferkette Logistik Kundenpflege Systemdatenbank Geschäftsregeln Prozesse
42
16.4 Architekturmerkmale von ERP-Systemen
Module zur Unterstützung von Geschäftsfunktionen große Module für komplette Geschäftsbereiche Festgelegter Satz von Geschäftsprozessen für jedes Modul Festlegung der Aktivitäten und Rollen Gemeinsame Datenbank Daten für alle Geschäftsfunktionen ohne Replizierung Festgelegte Menge von Geschäftsregeln Validierung und Konsistenz der Datenbank
43
16.4 Konfiguration von ERP-Systemen
Auswahl der erforderlichen Funktionalität Erstellung des Datenmodells der Systemdatenbank Definition von Geschäftsregeln für die Daten Definition der Interaktionen zu externen Systemen Entwurf der Eingabe- und Berichtsformulare Entwurf neuer passender Geschäftsprozesse Festlegung der Parameter für die Einsatzplattform
44
16.4 COTS-Integration Anwendungen aus zwei oder mehr COTS-Produkten oder Altanwendungen wenn kein einzelnes COTS-System alle Anforderungen erfüllt wenn neue Funktionalität in vorhandene Umgebung integriert werden soll Integration über Dienstschnittstellen oder APIs Verbindung von Ausgabe zu Eingabe Aktualisierungen der jeweiligen Datenbanken
45
16.4 COTS-Integration: Entwurfsentscheidungen
Welche COTS-Produkte eignen sich am besten? Funktionalität in mehreren Produkten häufig mehrere Kombinationsmöglichkeiten Wie werden Daten ausgetauscht? oft proprietäre Datenstrukturen und –formate Adapter zur Umwandlung erforderlich Welche Funktionen werden tatsächlich verwendet? häufig mehr Funktionalität als nötig oft gleiche Funktionalität redundant in mehreren Produkten nicht benötigte Funktionen als mögliche Fehlerquellen
46
16.4 Szenario zur COTS-Integration
Beschaffungen in einem Unternehmen Stand zentraler Einkauf nach Anforderung aus der Abteilung Nutzung eines Bestell- und Fakturiersystems Ziel Abwicklung der Bestellungen vor Ort dezentral über das Web Vorgehen Anbindung eines E-Commerce-Systems via Adapter Anbindung eines -Systems via Adapter Client mit Browser und Mail als COTS-System
47
16.4 Szenario zur COTS-Integration
Client Webbrowser -System Server E-Commerce-System -System Bestell- und Fakturiersystem Adapter
48
16.4 Serviceorientierte COTS Integration
Einfachere Integration durch Dienstschittstellen Standarddienstschnittstelle für Funktionalität jeweils ein Dienst für jede Funktionalitätseinheit Implementation einer Dienstschnittstelle Wrapper verbirgt Anwendung und stellt Dienste bereit insbesondere bei Altsystemen sinnvoll Dienste-Wrapper Anwendungssystem Dienst
49
16.4 Probleme der COTS-Integration
Mangel an Kontrolle über Funktionalität und Leistung Diskrepanz zwischen Beschreibung und Programmierung Probleme mit der Interoperabilität von COTS-Systemen unterschiedliche Modelle, fehlende Standards Keine Kontrolle über die Evolution des Systems neue Versionen nicht immer kompatibel Unsichere Unterstützung durch die Anbieter Einstellung oder Übernahme des Produkts
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.