Wiederverwendung[Ludewig & Lichter: SoftwareEngineering, Heidelberg 2010²,Kapitel 24]
Alexander Bazo                        Wiederverwendung von Software-Einheiten                        Ludewig & Lichter, So...
Alexander Bazo                                   Wiederverwendung von Software-Einheiten                                  ...
Alexander Bazo                                 Wiederverwendung von Software-Einheiten                                 Lud...
Alexander Bazo                                  Wiederverwendung von Software-Einheiten                                  L...
Alexander Bazo                                Wiederverwendung von Software-Einheiten                                Ludew...
Alexander Bazo                                 Wiederverwendung von Software-Einheiten                                 Lud...
Alexander Bazo                              Wiederverwendung von Software-Einheiten                              Ludewig &...
Alexander Bazo                                 Wiederverwendung von Software-Einheiten                                 Lud...
Alexander Bazo                                 Wiederverwendung von Software-Einheiten                                 Lud...
Alexander Bazo                        Wiederverwendung von Software-Einheiten                        Ludewig & Lichter, So...
Alexander Bazo                               Wiederverwendung von Software-Einheiten                               Ludewig...
Alexander Bazo                       Wiederverwendung von Software-Einheiten                       Ludewig & Lichter, Soft...
Alexander Bazo                               Wiederverwendung von Software-Einheiten                               Ludewig...
Alexander Bazo                       Wiederverwendung von Software-Einheiten                       Ludewig & Lichter, Soft...
Alexander Bazo                             Wiederverwendung von Software-Einheiten                             Ludewig & L...
Alexander Bazo                                Wiederverwendung von Software-Einheiten                                Ludew...
Alexander Bazo                                  Wiederverwendung von Software-Einheiten                                  L...
Alexander Bazo                                Wiederverwendung von Software-Einheiten                                Ludew...
Alexander Bazo                               Wiederverwendung von Software-Einheiten                               Ludewig...
Alexander Bazo                        Wiederverwendung von Software-Einheiten                        Ludewig & Lichter, So...
Alexander Bazo                              Wiederverwendung von Software-Einheiten                              Ludewig &...
Alexander Bazo                           Wiederverwendung von Software-Einheiten                           Ludewig & Licht...
Alexander Bazo                             Wiederverwendung von Software-Einheiten                             Ludewig & L...
Alexander Bazo                             Wiederverwendung von Software-Einheiten                             Ludewig & L...
Alexander Bazo                               Wiederverwendung von Software-Einheiten                               Ludewig...
Alexander Bazo                   Wiederverwendung von Software-Einheiten                   Ludewig & Lichter, Software Eng...
Alexander Bazo                                 Wiederverwendung von Software-Einheiten                                 Lud...
Alexander Bazo                                Wiederverwendung von Software-Einheiten                                Ludew...
Alexander Bazo                               Wiederverwendung von Software-Einheiten                               Ludewig...
Alexander Bazo                               Wiederverwendung von Software-Einheiten                               Ludewig...
Alexander Bazo                             Wiederverwendung von Software-Einheiten                             Ludewig & L...
Alexander Bazo                               Wiederverwendung von Software-Einheiten                               Ludewig...
Alexander Bazo                                Wiederverwendung von Software-Einheiten                                Ludew...
Alexander Bazo                              Wiederverwendung von Software-Einheiten                              Ludewig &...
Alexander Bazo                              Wiederverwendung von Software-Einheiten                              Ludewig &...
Alexander Bazo                                  Wiederverwendung von Software-Einheiten                                  L...
Alexander Bazo                               Wiederverwendung von Software-Einheiten                               Ludewig...
Alexander Bazo                                   Wiederverwendung von Software-Einheiten                                  ...
Alexander Bazo                              Wiederverwendung von Software-Einheiten                              Ludewig &...
Nächste SlideShare
Wird geladen in …5
×

Wiederverwendung

955 Aufrufe

Veröffentlicht am

Wiederverwendung als Methode im Softwareengineering.Die Präsentation stellt eine Zusammenfassung des Kapitels 24 aus dem bekannten Lehrbuch "Software
Engineering" von Ludewig & Lichter dar.

0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
955
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
2
Aktionen
Geteilt
0
Downloads
6
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Wiederverwendung

  1. 1. Wiederverwendung[Ludewig & Lichter: SoftwareEngineering, Heidelberg 2010²,Kapitel 24]
  2. 2. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Wiederverwendung von Software-Einheiten(1) Definition von Wiederverwendung und Wiederverwendbarkeit(2) Kosten & Nutzen, Vorteile & und Nachteile(3) Rahmenbedingungen(4) Entwicklungstechniken für wiederverwendbare Software-Einheiten(5) Codierung vs. Komposition
  3. 3. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Definition von Wiederverwendung (1)WiederverwendungDie Verwendung bereits existierender musikalischer WerkeDie Reproduktion von Werken der bildenden KünsteDas Zitat und das Plagiat in der Literatur
  4. 4. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Definition von Wiederverwendung (2)Wesentliche Merkmale der WiederverwendungAufwand wird reduziertImplikation von sozialem Gefälle zwischen ursprünglichen Urheber und WiederverwenderMöglichkeit zur günstigen Beeinflussung der Qualität des Neuen durch die Wiederverwendung
  5. 5. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Definition von Wiederverwendung (3)Im Software Engineering findet keine Wiederverwendung physischer Artefakte statt.Kauf einer kopierten Software (Wiederverwendung der gesamten Software)Verwendung von Routinen des Betriebssystems (Wiederverwendung einer bestimmten Prozedur)Wiederverwendung eigener Erfahrungen mit bereits geschriebenen Programmen (Wiederverwendung eines Algorithmus)
  6. 6. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Definition von Wiederverwendung (4)Erneutes Nutzen vorhandener Vorlagen zur Erstellung von Dokumenten (Wiederverwendung von Strukturen)Übersetzen eines Programms in eine andere Programmiersprache (Wiederverwendung von Code)Vererbung in der Objektorientierten Programmierung (Wiederverwendung eines bestehenden Typ)Prüfen eines neuen Programms mit alten Testdatensätzen (Wiederverwendung von Testdaten)
  7. 7. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Definition von Wiederverwendung (5)„ Software reuse is the process whereby an organization defines a set of systematic operating procedures to specify, produce, classify, retrieve, and adapt software artifacts for the purpose of using them in its development activities“ [Mili et al. (2002)]
  8. 8. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Definition von Wiederverwendung (6)Wiederverwendung ist im weiten Sinne die erneute Verwendung vonSoftware-ProduktenLösungsstrukturen, Methoden und SprachenKomponenten von Betriebssystem, Compiler oder BibliothekenIm engeren Sinne besteht bei der Wiederverwendung Wahlfreiheit zwischen Neuentwicklung und Anpassung von bestehenden Komponenten
  9. 9. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Definition von Wiederverwendbarkeit (1)„ reusability – The degree to wich a software module or other work product can be used in more than one computer program or software system.“ [IEEE Std. 610.12 (1990)]
  10. 10. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Definition von Wiederverwendbarkeit (2)Unterschieden werden kann zwischen geplanter und ungeplanter WiederverwendungDie Wiederverwendbarkeit (reusability) einer Software-Einheit hängt von deren Einsatzspektrum und dem nötigen Anpassungsaufwand ab
  11. 11. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Definition von Wiederverwendbarkeit (3) [Ludewig et al., 2010]
  12. 12. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Kosten der Wiederverwendung (1)Mehraufwand bei der Entwicklung wiederverwendbarer Software-Einheiten [55% (Tracz) bis 100% (Margono und Rhoads)]Kosten für die Verwaltung der Software-Einheiten in einem RepositoryKosten für die Recherche, Anpassung und Integration der Software-Einheit
  13. 13. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Kosten der Wiederverwendung (2) [Ludewig et al., 2010]
  14. 14. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Nutzen der Wiederverwendung (1)Merkmale des Nutzen sind die gesparten Entwicklungskosten (E) und die bessere Qualität (Q) der wiederverwendeten Software-EinheitenZu berücksichtigen sind die Anpassungskosten (A) und die Entwicklungs- und Verwaltungskosten (EV)
  15. 15. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Nutzen der Wiederverwendung (2) K = K EV  ∑ i K A N = ∑i N E  N Q
  16. 16. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Nutzen der Wiederverwendung (3)BeispielrechnungMehraufwand bei Entwicklungskosten: 80% der EntwicklungskostenKosten für Recherche und Anpassung: 20% der EntwicklungskostenNutzen durch höhere Qualität: 10% der Entwicklungskosten
  17. 17. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Nutzen der Wiederverwendung (4)Unter der Bedingung, dass der Nutzen die Kosten übersteigt ergibt sich:Nach der 1. Wiederverwendung: Kosten und Nutzen halten sich die WaageNach der 2. Wiederverwendung: Nutzen überwiegt
  18. 18. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Vorteile der WiederverwendungSenkung von Entwicklungskosten und Verkürzung von Entwicklungszeit durch Einsparung von EntwicklungsarbeitPräzisere Kalkulation von anfallenden Kosten, durch bessere Abschätzbarkeit von Anpassungs- und IntegrationskostenHöhere Qualität der entwickelten Software durch wiederverwendete, ausgereiftere Software-EinheitenBessere Wartung durch zentral verwaltete RepositoriesSchnelleres Auffinden von Fehlern durch mehrfach eingesetzte Software-Einheiten in unterschiedlichen Systemen
  19. 19. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Nachteile der WiederverwendungEntwicklung und Einsatz von wiederverwendbaren Software- Einheiten stehen hohe Investitionskosten gegenüberOhne die Möglichkeit zur langfristigen Planung bleibt die Entwicklung wiederverwendbarer Software-Einheiten unrentabel.Zwingende Voraussetzung ist die Stabilität der eingesetzten Software-Einheiten.
  20. 20. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Wiederverwendbarkeit nach Programmklassen(Lehman)S-Programme mit stabilen Spezifikationen Wiederverwendung von Programm-BibliothekenP-Programme auf der Grundlage stabiler Modelle Wiederverwendung als Lösungspaket oder Wiederverwendung von Teilen als S-ProgrammeMeist instabile E-Programme Wiederverwendung nur durch massive Anpassung möglich
  21. 21. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Rahmenbedingungen (1) [Ludewig et al., 2010]
  22. 22. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Rahmenbedingungen (2)Wiederverwendung muss belohnt werden!Mehraufwand rechtfertigenNutzen des Einsatzes von Software-Einheiten ersichtlich machen
  23. 23. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Rahmenbedingungen (3)Der Nutzen der Wiederverwendung muss durch Metriken belegt sein!Messbarkeit zentraler Aspekte der Wiederverwendung wie Kosten und Nutzen sicherstellen
  24. 24. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Rahmenbedingungen (4)Die Qualitätssicherung muss Wiederverwendung unterstützen!Höhere Qualitätsanforderungen an wiederverwendbare Software stellenSystematische und intensive Prüfung der Software- EinheitenPrüfung im Kontext der zu Anwendung
  25. 25. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Rahmenbedingungen (5)Standards und Richtlinien müssen definiert und eingehalten werden!
  26. 26. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Rahmenbedingungen (6)Bibliotheken von Standardkomponenten müssen zur Verfügung stehen und auch genutzt werden!Auf vorhandene Datenstrukturen und Funktionen zurückgreifenSicherstellen, dass bereitgestellte Bibliotheken auch in der Entwicklung eingesetzt werden
  27. 27. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Entwicklungstechniken (1) [Ludewig et al., 2010]
  28. 28. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Entwicklungstechniken (2)ProzedurenBefehlssequenzen können erneut aufgerufen und durch Parameter angepasst werdenKonkrete Implementierung der Funktionalität wird irrelevant
  29. 29. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Entwicklungstechniken (3)Module, Information Hiding [Ludewig et al.: 17.3.3]Modulkonzept ermöglicht Trennung von Schnittstelle und ImplementierungGekapselte Datenstrukturen und abstrakte Datentypen fördern WiederverwendungSicherheit in der Implemetierung durch Information Hiding
  30. 30. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Entwicklungstechniken (4)Objekte, Vererbung [Ludewig et al.: 17.4.1]Vererbung ermöglicht Anpassung wiederverwendeter Software-EinheitenEinbindung in Klassenhierarchie erschwert Wiederverwendung einzelner Software-Einheiten
  31. 31. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Entwicklungstechniken (5)ProgrammgeneratorenWisse über Funktionsweise und Aufbau bestimmter Anwendungen kann in Programmgeneratoren abgelegt werdenDer Entwickler kann die Anwendung auf hohem Abstraktionsniveau beschreiben und generieren lassen
  32. 32. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Entwicklungstechniken (6)Rahmenwerke [Ludewig et al.: 17.5.3]Anwendungen auf der Basis von Rahmenwerken können deren Architektur und bestimmte Code-Komponenten wiederverwenden
  33. 33. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Entwicklungstechniken (7)Muster [Ludewig et al.: 17.5.1/2]Möglichkeit der Wiederverwendung abstrakter Bestandteile des Software-Engineerings
  34. 34. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Entwicklungstechniken (8)KomponentenWiederverwendung abgeschlossener, unveränderbarer Software-Einheiten innerhalb eines bestimmten KomponentenmodellLoslösung von der Klassenhierarchie der Objektorientierung
  35. 35. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Entwicklungstechniken (9)ProduktlinienProduktion und Einsatz wiederverwendbarer Einzel- Komponenten zur Entwicklung von sich ähnelnden Anwendungen (Produktreihen)
  36. 36. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Entwicklungstechniken (10)Model Driven Architecture [Ludewig et al.: 15.4]Wiederverwendung technologisch unabhängiger, abstrakter Modell die die fachlichen Anforderungen spezifizierenWiederverwendung von Transformationsvorgängen zwischen abstraktem Modell und Zieltechnologie
  37. 37. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Codierung vs. Composition (1)„ [...] one aspect of this weakness is the absence of a software components subindustrie … [that] will offer families of routines for any given job [...] He [the customer] will consult a catalog offering routines in varying degrees of precision, robustness, time-space performance, and generality [… ] he should be able safely to regard components as black-boxes.“ [M.D. McIlroy (1969)]
  38. 38. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24 Codierung vs. Composition (2)[http://www.knowledgerush.com/wiki_image/9/95/Software_components_lecture_large.jpg]
  39. 39. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Codierung vs. Composition (3)Methaper der Software-ICs [Cox, (1986)]ICs haben präzise SpezifikationICs haben einfache, standardisierte SchnittstellenICs sind ausreichende universellICs lassen sich spezialisierenICs zuverlässig und billig
  40. 40. Alexander Bazo Wiederverwendung von Software-Einheiten Ludewig & Lichter, Software Engineering Kapitel 24Codierung vs. Composition (4)Die Methaper der Software-ICs beschreibt einen möglichen Softwaremarkt der Zukunft anhand der heutigen Vermarktung Integrierter SchaltungenGewöhnliche Programmierer würde ihre Programme dann nicht mehr codieren, sondern aus einer Reihe, auf dem Markt erhältlicher Software-Einheiten komponieren

×