+ All Categories
Home > Documents > Softwaretechnik- Praktikum: 5. Vorlesung

Softwaretechnik- Praktikum: 5. Vorlesung

Date post: 01-Jan-2017
Category:
Upload: vudien
View: 230 times
Download: 3 times
Share this document with a friend
30
Universität Paderborn Fachgebiet Softwaretechnik Softwaretechnik- Praktikum: 5. Vorlesung Jun. Jun. - - Prof Prof . Dr. Holger Giese . Dr. Holger Giese Fachgebiet Softwaretechnik Fachgebiet Softwaretechnik Raum E 3.165 Raum E 3.165 Tel. 60 Tel. 60 - - 3321 3321 Email: Email: [email protected] [email protected]
Transcript
Page 1: Softwaretechnik- Praktikum: 5. Vorlesung

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

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

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

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

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

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

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

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

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

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

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

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

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

Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese

Universität PaderbornFachgebiet Softwaretechnik

V5-14

Klassendiagramm

Page 15: Softwaretechnik- Praktikum: 5. Vorlesung

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

Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese

Universität PaderbornFachgebiet Softwaretechnik

V5-16

Klassendiagramm

Page 17: Softwaretechnik- Praktikum: 5. Vorlesung

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

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

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

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

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

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

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

Universität PaderbornFachgebiet Softwaretechnik

Softwaretechnikpraktikum:Aktuelle Aufgaben und Fragerunde

Page 25: Softwaretechnik- Praktikum: 5. Vorlesung

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

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

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

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

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

Softwaretechnikpraktikum 2006 – 5. VorlesungJun.-Prof. Dr. Holger Giese

Universität PaderbornFachgebiet Softwaretechnik

V5-30

Fragen?


Recommended