Unterstützung evolutionärer Softwareentwicklung durch Merkmalmodelle und Traceability-Links Matthias Riebisch Technische Universität Ilmenau, matthias.riebisch@tu-ilmenau.de Arbeitsgruppe Software-Wartung Stuttgart, 15.10.2004 Software-Evolution im Staged Lifecycle Model Initial Development Evolutionäre Veränderungen Erste lauffähige Version Evolution Verlust an Wartbarkeit Servicing Service Patches Quelle: Rajlic, Bennett: A Staged Model for the Software Life Cycle. Computer, July 2000. Ende der Unterstützung Phaseout Abschaltung Closedown M. Riebisch: Merkmalmodelle und Traceability-Links - Modellierung04 2
Architectural Decay Taligent Dependency Graph: Veränderungen führen zu einem Verlust an Wartbarkeit M. Riebisch: Merkmalmodelle und Traceability-Links - Modellierung04 3 Traceability-Links Verstehen und Ändern Verbindung Anforderung Entwurf Implementierung Auswirkungen von Änderungen verfolgbar Vollständigkeit prüfbar Konsistenz der Links als Voraussetzung Prüfung erfordert Verstehen manuell Hohe Anzahl: 10 3..10 4 Aufwand Nutzen Anforderung Entwurfs- Element Quell Code M. Riebisch: Merkmalmodelle und Traceability-Links - Modellierung04 4
Merkmalmodell als Mittler: benötigte Eigenschaften Mittler-Rolle bezüglich Detaillierung Abstraktion Unschärfe Formalisierung Sichten Kunde Entwickler 1 Anforderung 1(..*) Merkmal Auswertbarkeit: definierte Syntax und Semantik Traceability-Links besser strukturiert Konsistenzprüfungen vereinfacht 1(..*) Entwurfs- Element Quell Code M. Riebisch: Merkmalmodelle und Traceability-Links - Modellierung04 5 Beispiel: Merkmalmodell Digitales Videosystem Bedienung Funktionen Ausstattung PDA Fernbedienung Aufnahme IR Fernbedienung EPG- Steuerung Bibliothek Zeitsteuerung EPG- Verwaltung IrDA Port IR Port RAM size= Legende: gemeinsames Merkmal requires-beziehung variables Merkmal excludes-beziehung m..n M. Riebisch: Vielfachheit Merkmalmodelle und Traceability-Links -Formel-Beziehung Modellierung04 6
Sichten und Kommunikation Detailgrad Verständnisgrad Kunde, Produktmanager... Sichten: Kunde Technik M. Riebisch: Merkmalmodelle und Traceability-Links - Modellierung04 7 Sichten und Kommunikation Detailgrad Verständnisgrad Architekt, Entwickler... Sichten: Kunde Technik M. Riebisch: Merkmalmodelle und Traceability-Links - Modellierung04 8
Sichten und Kommunikation Detailgrad Architektur Quellcode Sichten: Kunde Technik M. Riebisch: Merkmalmodelle und Traceability-Links - Modellierung04 9 Merkmalmodell als Mittler: benötigte Eigenschaften Mittler-Rolle bezüglich Detaillierung Abstraktion Unschärfe Formalisierung Sichten Kunde Entwickler 1 Anforderung 1(..*) Merkmal Auswertbarkeit: Syntax und Semantik Traceability-Links besser strukturiert Konsistenzprüfungen vereinfacht 1(..*) Requirement Featuremodell Entwurfs- Element Quell Code M. Riebisch: Merkmalmodelle und Traceability-Links - Modellierung04 10
Link-Erstellung während Entwicklung Entwurfsentscheidung Link erstellen Beschreibung an Link anhängen Bezug zu Glossar-Begriffen erhalten Verfeinerung Link aufteilen: Gesamt Ausgang >= gesamt Eingang Typ-abhängige Regeln M. Riebisch: Merkmalmodelle und Traceability-Links - Modellierung04 11 Link-Aktualisierung bei Änderung von Anforderungen Merkmal-Zuordnung unverändert Veränderung der Entwurfselemente dieses Merkmals Veränderung der Entwurfsentscheidungen, Prüfung anhand Glossar-Bezügen M. Riebisch: Merkmalmodelle und Traceability-Links - Modellierung04 12
Link-Aktualisierung bei Refactoring Entwurfsentscheidung verändert Link anpassen Beschreibung an Link ändern Bezug zu Glossar-Begriffen erhalten Aufteilung eines Elements Links aufteilen Typ-abhängige Regeln M. Riebisch: Merkmalmodelle und Traceability-Links - Modellierung04 13 Invarianten und Constraints durch OCL-Regeln ausdrücken Basis: Semantik und Syntax der Modelle Klares Ergebnis: gültig ungültig Anzahl und Einsatzbereich begrenzt begrenzte Definition von Syntax und Semantik Natürlich-sprachliche Ausdrücke Beschreibung durch OCL Ein Merkmal ist mindestens einem Entwurfselement zugeordnet Mindestens ein Entwurfselementdeckt das Risiko des übergeordneten Elements ab M. Riebisch: Merkmalmodelle und Traceability-Links - Modellierung04 14
Heuristiken für Best Practice und guten Stil Verdacht & Vorschläge: Bad Smells Umfassender als Regeln Style Guide für Modellierung und Entwurf Entwurfsmethoden Erfahrungswerte, häufige Fehler Beschreibung durch OCL Ein Qualitätsmerkmal ist ohne Parameterangabe mit Entwurfselementen verbunden Eine Anforderung und ein Merkmal haben keine gemeinsamen Bezüge zu Glossar-Begriffen M. Riebisch: Merkmalmodelle und Traceability-Links - Modellierung04 15 Zusammenfassung, Ausblick Wichtiger Beitrag zu evolutionärer Entwicklung Mitwirkung in allen Bereichen notwendig: Entwurfsmethoden und Architekturen für Separation of Concerns 1:n statt m:n Vorgehensmodell: Vereinfachungen, Iterationen Projektmanagement: Qualifikation, Motivation und Kontrolle Werkzeugunterstützung als Einsatz-Voraussetzung M. Riebisch: Merkmalmodelle und Traceability-Links - Modellierung04 16