Download - Softwaretechnik- Praktikum: 5. Vorlesung
![Page 1: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/1.jpg)
Universität PaderbornFachgebiet Softwaretechnik
Softwaretechnik-Praktikum:5. Vorlesung
Jun.Jun.--ProfProf. Dr. Holger Giese. Dr. Holger GieseFachgebiet SoftwaretechnikFachgebiet SoftwaretechnikRaum E 3.165Raum E 3.165Tel. 60Tel. 60--33213321Email: Email: [email protected]@upb.de
![Page 2: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/2.jpg)
Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese
Universität PaderbornFachgebiet Softwaretechnik
V5-2
ÜbersichtI EinleitungII Ergänzungen zur Software-EntwicklungIII Software ManagementIV Software QualitätssicherungV Zusammenfassung
![Page 3: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/3.jpg)
Universität PaderbornFachgebiet Softwaretechnik
Softwaretechnikpraktikum:II Ergänzungen zur Software-Entwicklung
Jun.Jun.--ProfProf. Dr. Holger Giese. Dr. Holger GieseFachgebiet SoftwaretechnikFachgebiet SoftwaretechnikRaum E 3.165Raum E 3.165Tel. 60Tel. 60--33213321Email: Email: [email protected]@upb.de
![Page 4: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/4.jpg)
Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese
Universität PaderbornFachgebiet Softwaretechnik
V5-4
Typen von SoftwareprojektenNeuentwicklung (Engl. “Greenfield Engineering”)
Die Entwicklung beginnt ganz von vorne und es muss kein existierendes System berücksichtigt werden(heute eher seltener der Fall)
ReengineeringÜberarbeitung oder Neuimplementierung eines bestehenden Systems ausgelöst durch technischen Fortschritt oder durch neue Anforderungen.
Schnittstellenüberarbeitung (Engl. “Interface Engineering”)
Neugestaltung der Schnittstelle eines vorhandenen Systems, insbesondere der Benutzerschnittstelle.
![Page 5: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/5.jpg)
Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese
Universität PaderbornFachgebiet Softwaretechnik
V5-5
Legacy SystemeSoftwaresysteme, die speziell für eine Organisation entwickelt wurden, haben häufig
eine lange Lebensdauer,wurden mit inzwischen obsoleten Technologien entwickelt undsind für den wirtschaftlichen Betrieb der Organisation kritisch.Leider ist die Dokumentation solcher Systeme (falls überhaupt vorhanden) in der Regel nicht konsistent mit der Implementierung
“Large software systems that we don't know how to cope with but that are vital to our organization“
[Bennett1995] Keith Bennett, Legacy Systems: Coping With Success", IEEE Software 12(1):19-23, 1995
Wir werden im SWTPRA nicht nur die Neuentwicklung sondern das Reengineering eines existierenden Systems betrachten
![Page 6: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/6.jpg)
Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese
Universität PaderbornFachgebiet Softwaretechnik
V5-6
II Ergänzungen zur Software-Entwicklung & Vorgriff
II.1 MachbarkeitsstudieII.2 Versions- und KonfigurationsmanagementII.3 ReviewtechnikenII.4 TesttechnikenII.5 Reverse EngineeringII.6 Diskussion & ZusammenfassungII.7 Literaturhinweise
![Page 7: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/7.jpg)
Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese
Universität PaderbornFachgebiet Softwaretechnik
V5-7
II.5 Reverse EngineeringBeobachtung:
Software wird heute nicht mehr isoliert eingesetzt, sondern muss mit anderer Software interagieren Oft muß bestehende Software weiterentwickelt werden (Legacy Systeme)Die bestehende Software ist meist schlecht oder gar nicht dokumentiert
Problem: Bevor man bestehende Software nutzen oder ändern kann, muss man sie verstehen
![Page 8: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/8.jpg)
Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese
Universität PaderbornFachgebiet Softwaretechnik
V5-8
Aber …Anforderungsdefinition, Analysedokument, Entwurfsdokument und Benutzerhandbücher sind häufig
nicht vorhanden,nicht konsistent mit der Implementierung undunvollständig.
fehlende Information muss erstmal ermittelt werden aus den vorhandenen Artefakten (häufig nur das binäre, ausführbare Programm oder der Quellcode!)
![Page 9: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/9.jpg)
Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese
Universität PaderbornFachgebiet Softwaretechnik
V5-9
Was ist Reverse Engineering?
[Chikofsky&Cross1990] E. J. Chikofsky and J. H. Cross, Reverse Engineering and Design Recovery: A Taxonomy IEEE Software, vol. 7, pp. 13--17, Jan./Feb. 1990.
![Page 10: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/10.jpg)
Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese
Universität PaderbornFachgebiet Softwaretechnik
V5-10
DefinitionUnter Reverse-Engineering versteht man den Prozeß, die einem fertigen (und meist schlecht dokumentierten) Softwaresystem zugrundeliegenden Ideen und Konzepte aufzuspüren und zu dokumentierenDer Entwicklungsprozeß wird gewissermaßen rückwärts durchlaufen.
![Page 11: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/11.jpg)
Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese
Universität PaderbornFachgebiet Softwaretechnik
V5-11
ErgebnisDas Ergebnis des Reverse-Engineering ist (im Idealfall) eine Spezifikation des SoftwaresystemsBemerkung: Wir wollen im SOPRA nur soweit das System verstehen, dass die geforderten Erweiterungen sinnvoll integriert werden können.
Wichtig: Überblick gewinnen und dokumentierenAbstraktion und Konzentration auf das WesentlicheFokus auf das für die Aufgabe wichtige
![Page 12: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/12.jpg)
Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese
Universität PaderbornFachgebiet Softwaretechnik
V5-12
WerkzeugeWerkzeuge können das Reverse-Engineeringunterstützen!Aber sie können uns das Abstrahieren und die Auswahl des Wesentlichen nicht abnehmen. Dies ist die Aufgabe des Entwicklers.
Leider liefern heutige Werkzeuge oft „falsche“Ergebnisse. Die müssen von Hand korrigiert werden.
![Page 13: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/13.jpg)
Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese
Universität PaderbornFachgebiet Softwaretechnik
V5-13
Autom. generierte DiagrammeOft keine Kardinalitäten und Rollen
müssen manuell hinzugefügt werdenAttribute und Assoziationen redundant
sollten von Hand beseitigt werdenWichtige und unwichtige Informationen werden extrahiert
…
![Page 14: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/14.jpg)
Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese
Universität PaderbornFachgebiet Softwaretechnik
V5-14
Klassendiagramm
![Page 15: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/15.jpg)
Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese
Universität PaderbornFachgebiet Softwaretechnik
V5-15
Manuelle AbstraktionUnwesentliche Informationen
sollten beseitigt werdenViele Klassen mit vielen Details (Alle Informationen kann nur auf einer A3 bis A1 Seite gut lesbar ausgedruckt werden)
muss auf verschiedene Diagramme aufgeteilt werden…
![Page 16: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/16.jpg)
Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese
Universität PaderbornFachgebiet Softwaretechnik
V5-16
Klassendiagramm
![Page 17: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/17.jpg)
Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese
Universität PaderbornFachgebiet Softwaretechnik
V5-17
Weitere DokumentationenWichtigen Schnittstellen sollten durch geeignete Verhaltensdiagramme dokumentiert werdenManche Informationen lassen sich besser in Form von Tabellen darstellenDiagramme allein reichen nicht aus!
![Page 18: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/18.jpg)
Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese
Universität PaderbornFachgebiet Softwaretechnik
V5-18
II.6 Diskussion & Zusammenfassung (1/5)Die Machbarkeitsstudie führt zur Auswahl des Produktes, dessen Voruntersuchung sowie einer technischen, organisatorischen und ökonomischen Durchführbarkeitsuntersuchung. „stop or go“Alle Verfahren für die Aufwandsschätzungerfordern Erfahrung und/oder Aufwandsdaten aus vorangegangenen Softwareprojekten (in ähnlichem Anwendungsgebiet, mit ähnlichen Entwicklungsmethoden und mit ähnlicher Firmenkultur, da sonst die Hypothese mit der „konstanten“ Produktivität, die fast allen Verfahren zugrunde liegt, nicht stimmt).
![Page 19: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/19.jpg)
Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese
Universität PaderbornFachgebiet Softwaretechnik
V5-19
Diskussion & Zusammenfassung (2/5)Die Machbarkeitsstudie umfasst ein Lastenheft, eine Aufwandsschätzung sowie einen Projektplan.Für typische Softwareprojekte (große und verteilt arbeitende Teams) haben sich Versions- und Konfigurationsmanagement Ansätze, die optimistischen Konsistenzmechanismen einsetzte, als zweckmäßiger erwiesen, da das gleichzeitiges Arbeiten am selben Dokument möglich ist und In Kombination mit Verantwortlichkeiten und Zuständigkeiten Konflikte selten und meist einfach zu beheben sind.
![Page 20: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/20.jpg)
Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese
Universität PaderbornFachgebiet Softwaretechnik
V5-20
Diskussion & Zusammenfassung (3/5)Reviewtechniken wie (persönliche Reviews,) Walkthroughs, Inspections und formale technische Reviews sind sehr effektive und effiziente “LowTech” Techniken, die leider in der Praxis (und der Universität) viel zu wenig genutzt werden.Neben der hohen Effizienz ist es ein wesentlicher Vorteil der Reviewtechniken, dass diese schon frühzeitig eingesetzt werden können, wenn noch keine Implementierung für Tests verfügbar ist.
![Page 21: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/21.jpg)
Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese
Universität PaderbornFachgebiet Softwaretechnik
V5-21
Diskussion & Zusammenfassung (4/5)Die systematische Konstruktion der Tests kann bei Blackbox-Test mit Hilfe der Spezifikation erfolgen (ohne die Implementierung zu kennen). Beim (Whitebox) Glassbox-Test dagegen werden die Tests anhand der Implementierung abgeleitet.Selbst bei 100%iger Überdeckung durch aufwendigere Formen der Bedingungs- oder Pfadüberdeckung finden die Glassbox-Tests nicht immer alle Fehler. Trotzdem liefert der Kriterium und der Grad der Überdeckung ein gewisses Zutrauen in die „Richtigkeit“ (Qualitätsmerkmal) des Produktes.
![Page 22: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/22.jpg)
Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese
Universität PaderbornFachgebiet Softwaretechnik
V5-22
Diskussion & Zusammenfassung (5/5)Tests können auf den verschiedenen Stufen des V-Prozesses durchgeführt werden: Abnahmetest (vom/mit Auftraggeber), Systemtest, Integrationstest und Modultest.Unter Reverse-Engineering versteht man den Prozess, die einem fertigen (und meist schlecht dokumentierten) Softwaresystem zugrunde liegenden Ideen und Konzepte aufzuspüren und zu dokumentieren (dabei wird der Entwicklungsprozess gewissermaßen rückwärts durchlaufen).
![Page 23: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/23.jpg)
Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese
Universität PaderbornFachgebiet Softwaretechnik
V5-23
II.7 Literaturverzeichnis[Balzert1996] Helmut Balzert: Lehrbuch der
Software-Technik: Software-Entwicklung. Spektrum Akademischer Verlag 1996.
[Balzert1998] Helmut Balzert: Lehrbuch der Software-Technik: Software-Management, Software-Qualitätssicherung, Unternehmensmodellierung. Spektrum Akademischer Verlag 1998.
![Page 24: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/24.jpg)
Universität PaderbornFachgebiet Softwaretechnik
Softwaretechnikpraktikum:Aktuelle Aufgaben und Fragerunde
![Page 25: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/25.jpg)
Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese
Universität PaderbornFachgebiet Softwaretechnik
V5-25
Wiederholung: TestenFragen:
keine
Konsequenz:kurzer Bericht des Verantwortlichen per Email bis Mo. 23:59 Uhr wird ab jetzt Pflicht!
![Page 26: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/26.jpg)
Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese
Universität PaderbornFachgebiet Softwaretechnik
V5-26
Wiederholung: PrototypAuftraggeber/Endbenutzer formuliert Anforderungen des Systems nicht explizit/vollständig genugManche Anforderungen haben unterschiedliche LösungsmöglichkeitenFertiges Produkt Auftraggeber präsentieren, ohne Zwischenpräsentationen
Wahrscheinlichkeit groß, dass entwickeltes System von den tatsächlichen Anforderungen des Auftragsgebers abweicht
PrototypRelevante Anforderungen oder Entwicklungsprobleme klären
Experimentell erproben und mit Auftraggeber diskutierenDiskussionsbasis und helfen bei EntscheidungenExperimentieren und sammeln von praktischen Erfahrungen
![Page 27: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/27.jpg)
Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese
Universität PaderbornFachgebiet Softwaretechnik
V5-27
Aufgabe: PflichtenheftNur für den Simulationsalgorithmus!
Zusammenhängende Darstellung aller fachlichen Anforderungen an das Produkt (Sicht des Benutzers).Es sollte beschrieben, was das Produkt leisten sollte, nicht wie es das leistet
Bemerkungen:Umfang: Simulationsalgorithmus:max. 10 Seiten Reuse des Lastenhefts!
![Page 28: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/28.jpg)
Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese
Universität PaderbornFachgebiet Softwaretechnik
V5-28
Aufgaben: Reverse EngineeringReverse Engineering
Code des erworbenen Plugins analysierenDas erworbene Plugin ausprobierenDokumentation für das erworbene Plugin evaluieren
Hilfen im WWW:Hinweise zum Reverse Engineering(Anhand des Beispiels aus der Vorlesung)Vorgaben für das Reverse-Engineering(Anleitung zur Erstellung des internen Dokuments)
Aufgabe: Ende MaiVorbereitung durch den Verantwortlichen: jetzt!Tutorium: nächste Woche
![Page 29: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/29.jpg)
Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese
Universität PaderbornFachgebiet Softwaretechnik
V5-29
HinweisHeute 15 Uhr ct Tutorial zu Testtechniken (E3.327)Programmierberatung wöchentlich Mittwochs 14-15 Uhr ct in E3.327
![Page 30: Softwaretechnik- Praktikum: 5. Vorlesung](https://reader033.vdokument.com/reader033/viewer/2022052706/586902d21a28ab17578be3a9/html5/thumbnails/30.jpg)
Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese
Universität PaderbornFachgebiet Softwaretechnik
V5-30
Fragen?