Vertiefung Softwaretechnik (INJE06)
Aktuelles - Inhalte - Literatur - Zielgruppe - Leistungsnachweis - Termine
Inhalte
§ 1 Softwarewartung (Beilagen Teil 1 und Teil 2)
§ 1.1 Grundlagen
(12. April 2010 -->) Definition: Wartung - Entwicklung vs. Wartung vs. iterative und inkrementelle Evolution - Entropiezuwachs - Lehmans Gesetze - ISO/IEC 12207: korrektiv / adaptiv / perfektiv / präventiv - bedarfsgetrieben vs. projektgetrieben - 1/3:2/3-Regel - Wartungsaufwand: Regel von Boehm- Bedeutung der Wartbarkeit (Verständlichkeit, Flexibilität, Korrigierbarkeit,...)
§ 1.2 Wartungsmanagement
Dienstgütevereinbarung (SLA) - Änderungsauftrag (CR) - Fehlermeldung vs. Änderungswunsch i.e.S. - Aufbau eines CR - Status eines CR - Workflow beim Änderungsmanagement: Meldungsmanagement / Änderungsmanagement i.e.S. / Einsatzmanagement - Aufgaben eines CR-Managementtools
Beispiel Bugzilla: www.bugzilla.org- Architektur - Anwendungsfälle - Eigenschaften - Lebenslauf
§ 1.3 Spezialfall: Korrektive Wartung
(19. April 2010 -->) Korrektive Wartung - Fehlverhalten vs. Fehler - Gründlichkeitsprinzip - Fehlerarten - Workflow beim Debugging - Aufgaben eines Debuggingtools - Ablaufbeobachtung, Statusbeobachtung - Beispiel: Eclipse-Debugger - Änderung des Laufzeitverhaltens
§ 1.4 Reengineering
Reengineering - Treiber für Reengineering - bedarfsgetriebene Tätigkeit vs. Projekt - Sanierung vs. Migration - keine Änderung der Funktionalität - Portfolie-Analyse - Modelle (Chikofsky-Cross, Byrne) - Software-Sanierung -
§ 2 Konfigurationskontrolle (Beilagen Teil 1 und Teil 2)
Notwendigkeit von Konfigurationskontrolle
§ 2.1 Grundlagen
Konfigurationskontrolle (i.w.S.) - Artefakt (Softwareelement) - editierbar vs. abgeleitet - Artefakt vs. Version - Revision vs. Variante - Konsistenz von Versionen zueinander - Konfiguration (i.e.S.)
§ 2.2 Versionsmanagement
(26. April 2010 -->) Aufgaben des Versionsmanagements - Repository - checkIn/checkOut - Sicherung der operationalen Integrität - pessimistisch vs. optimistisch - Versionsnummerieung (Dewey-Numbering, Nummerung) - Revionsnummerierung - Deltaspeicherung - Delta - diff/patch - Repräsentation von Deltas (state-based/operation-based) - Beispiel - Visualisierung Vorwärts-/Rückwärtsdeltas - Edit-Distanz (Levenshtein-Distanz) - Berechnungsverfahren - Aufwand O(m*n) - Beispiel: diff - Output von diff - patch - Beispiel: svn - Kurzcharakterisierung
§ 2.3 Konfigurationsverwaltung i.e.S.
(3. Mai 2010 -->) Aufgaben der Konfigurationsverwaltung i.e.S. - Rekonstruktion der abgeleiteten Artefakte - build-Tools - Abhängigkeitsgraph - datei-orientiert vs. operations-orientiert -
(A) Beispiel: ant - plattformunabhängig - operations-orientiert - Metaschema - Build-Files - Targets vs. Tasks -
(B) Beispiel: make - plattformabhängig - datei-orientiert - Metaschema - Zeitstempel - Make-Files
§ 3 Softwaremessung (Beilagen Teil 1 und Teil 2)
§ 3.1 Grundlagen des Messens
Softwaremetrik - Bezug zum mathematischen Begriff - Anforderungen an Metriken - Visualisierung von Messungen (Tabellen, polymetrische Darstellungen, Balkendiagramme, Kiviat-Graphen (radar plots))
§ 3.2 Arten von Metriken
Beschreibung von Metriken - Zweck von Messungen
(A) Größenmaße - Definition - Beispiele - Lines of Code (loc, sloc, dsi) - Bezug zum Metamodell
(B) Quotientenmaße - Definition - Beispiele
(C) Komplexitätsmaße - Codeebene/Architekturebene - zyklomatische Komplexität (McCabe-Maß) - Bezug zu Größenmaßen - (10. Mai 2010 -->) Henry-Kafura-Maß - fanIn/fanOut - Metrik-Suite von Chidamber & Kemerer - [Chidamber1994AMS] - Messung der Komplexität - Schema - Maße (WMC, DIT, NOC, CBO, RFC, LCOM)
§ 3.4 Herleitung von Metrik-Suites
Top-Down-Vorgehen - GQM-Methode - goal/question/metrics - Beispiel - Phasen
§ 3.5 Sonderfall: Halstead-Metriken
Software Science - [Halstead1977EOS] - Operator, Operand - Basismaße - abgeleitete Maße - Programmvolumen - Programmniveau
§ 3.6 Function Points
[Albrecht1983SFS] - IFPUG - Vorgehensweise - Eingaben/Ausgaben/Anfragen/interne Daten/externe Daten - Gewichtung - Bewertung durch ACMs - adjusted function points - Bezug zu Zeilenzahlen
§ 3.8 Object Points
(17. Mai 2010 -->) [Sneed96SDE] - Vorgehensweise - Klassenmodell/Kommunikationsmodell/Prozessmodell - Beziehung zu Zeilenzahlen und Function Points
§ 4 Schätzverfahren (Beilagen)
§ 4.1 Grundlagen
Definition: Schätzen - Aufwand - Leistung - Produktivität - durchschnittliche Werte - Kommunikationsaufwand - optimale Gruppengröße - Einflussgrößen (Produkteigenschaften, Personaleigenschaften, Projektorganisation, Umgebung (Environment) )
§ 4.2 Schätzverfahren
(A) Bottom-Up-Verfahren
(B) Top-Down-Verfahren
(C) Analogie-Verfahren
(D) Expertenurteile -Workshop - Mittelwertbildung - Delphi-Methode
§ 4.3 Methodische Schätzverfahren
(A) Lineares Schätzmodell - Ansatz - Beispiel
(B) COCOMO - [Boehm1984SEE] - Ansatz, Vorgehensweise - Schätzformel - organic/semi-detached/embedded - Kostentreiber - Kalibrierung - Schätzung der Dauer
§ 5 Vorgehensmodelle (Beilagen1 und Beilagen2)
§ 5.1 Grundlagen
(31. Mai 2010 -->) Code-and-Fix - Vorgehensmodelle - Historie - Artefakte/Rollen/Tätigkeiten/Abläufe - prozess- vs. produkt-orientiert - Anpassbarkeit von Vorgehensmodellen - Balance zwischen Standardisierung und Freiheit
§ 5.2 Phasenmodelle
Charakterisierung - Zwischenprodukte (deliverables) - Meilensteine - Vor-/Nachteile
(A) Wasserfallmodell - Sequenzielle Ausführung - Übergreifende Aktivitäten
(B) V-Modell - V-Modell des Bundes - V-Modell XT(www.v-modell-xt.de)
§ 5.3 Inkrementelle Modelle
inkrementell vs. iterativ - Charakterisierung - Spiralmodell [Boehm1988ASM] - Vor-/Nachteile - evolutionäre Entwicklung
() IBM-Rational-Unified-Process (RUP) - Literatur: [Kruchten2000TRU] - inkrementell, produktorientiert - Vorgehensmodell als Software - Werkzeug - iterativ, inkrementell, anwendungsfall-getrieben, architektur-zentriert -
(A) statische Struktur - Artefakte - Rollen - Aktivitäten - Workflows
(B) dynamische Struktur - (7. Juni 2010 -->) Zyklen - Phasen - Iterationen - Releases
§ 5.4 Agile Modelle
agil - prozess-orientiert - 'Agile Manifesto' - 'Principles'
(A) Extreme Programming - Literatur [Beck2000EPE] - Schlagworte: Kommunikation/Einfachheit/Feedback/Mut - Teamstruktur - Iterationen - user stories - spikes - Regeln (Practices) - iterativ/inkrementell - Iterationsdauer - Releases
(B) Scrum - Literatur [Schwaber2002ADW] - Rollen (pig roles vs. chicken roles) - iterativ/inkrementell - Sprints - Artefakte - Regeln (Practices) - Meetings - Eignung
§ 5.5 Nachtrag: CMM
(14.6.2010 -->) Beurteilung von Entwicklungprozessen - Capability Maturity Model (CMM) - Software Engineering Instistute (SEI) - Reifegrade
§ 6 Produktlinien (Beilagen)
§ 6.1 Grundlagen
Beispiele für Produktlinien - Software-Produktlinien - Seiten des SEI - Variabilität/Wiederverwendung/Konfigurierbarkeit/Nachverfolgbarkeit - Produktlinie - Asset - Produkt - Variationspunkte, Varianten -
§ 6.2 Productline Engineering
[Pohl2005SPL] - www.softwareproductlines.com - domain engineering vs. product engineering
(A) Domain Engineering - Workflow - Features - Variationspunkte
(B) Product Engineering - Workflow
§ 6.3 Features und Variationspunkte
Feature - Attribute von Features - Variationspunkt - Variation - Feature-Diagramme - und/oder-Strukturen - Beispiele - FODA-Bäume mit Constraints - Syntax
§ 6.4 Umsetzung von Variabilität
(21.6.2010-->) Variabilität - Variationspunkt - Vorgehen - Bindungszeitpunkt - Implementation von Variationen - Artefakte - Mechanismen: Plugins, Präprozessoranweisungen, Spezialisierung, Templates/Generics, Manifest-Files, Patterns (Visitor, Strategy)
§ 6.5 Einführung von Produktlinien
Tradeoff-Punkt - Granularität - Umfang der Assetmenge - proaktive Entwicklung - reaktive Entwicklung
§ 6.6 Werkzeuge
Beispiel: pure::variants - Überblick - Feature Model - Family Model - Feature Selection - Building
§ 7 Modell-getriebene Software-Entwicklung
§ 7.1 Grundlagen
Definition: Modell - Verwendung von Modellen - modell-getriebene Software-Entwicklung (MDSD) - Domänenwissen vs. Lösungswissen - Integration der Sichten vs. Verfeinerung des Abstraktionsniveaus
§ 7.2 OMG und MDA
OMG - Historie - Zusammensetzung - Spezifikationen der OMG - (28.6.2010-->) MDA (Model-driven Architecture) - Trennung von Anwendungswissen und Entwicklungswissen - CIM / PIM / PSM / ISM - Vorteile
§ 7.3 Modell-Transformationen
Modell-Sequenzen - Modellbeschreibungssprachen - Transformationssprachen - Modelltransformationen - Bedeutung der Metamodelle
§ 7.4 Transformationstechnologien
direkte Manipulation / template-basierter Generator / Veränderung einer Serialisierung / Verwendung einer Transformationssprache - Beispiele -
§ 7.5 Exkurs: OCL
OCL (Object Constraint Language) - Historie - Beispiele (Invariante, Ableitung, Initialisierung)- Ausdruckssprache - Kontext - Annotationen: Invarianten/Vorbedingungen/Nachbedingungen/Ableitungen/Initialisierungen/Anfragen - Typsystem - Operationen für Objekte - Operationen für Kollektionen
§ 7.6 ATL
ATL (ATLAS Transformation Language) - user guide - (12.7.10 -->) hybrid (deklarativ und imperativ) - ATL-Expressions - Bezug zu OCL - .atl-Dateien - Module - Eclipse - ATL-Plugins - ATL-Perspektive - EMF - Ecore - km3 - Beispiel: Families2Persons
§ 7.7 GReTL
GReTL (Graph Repository Transformation Language) - Historie - Strategie-Objekte - Kontext - execute()/transform() - Erzeugung des Zielschemas - Erzeugung des Zeilmodells - Beispiel: Families2Genealogy - Vorbildmengen
Literatur
[Albrecht1983SFS] A. Albrecht and J. Gaffney. Software functions, source lines of codes, and development effort prediction: A software science validation. IEEE-SE, 9(6):639–647, 1983.
[Beck2000EPE] Kent Beck. Extreme Programming Explained. Addison-Wesley, Boston, 2000.
[Boehm1984SEE] B.W. Boehm. Software engineering economics. IEEE-SE, 10(1):10–21, 1984.
[Boehm1988ASM] B. W. Boehm. A spiral model of software development. IEEE Computer, 21(5):61–72, 1988.
[Boehm2000SCE] B.W. Boehm. Software cost estimation with COCOCMO II. Prentice Hall, Englewood Cliffs, NJ, 2000.
[Chidamber1994AMS] Shyam R. Chidamber and Chris F. Kemerer. A metrics suite for object oriented design. IEEE-TSE, 20(6):476–493, 1994.
[Halstead1977EOS] M. Halstead. Elements of Software Science. Elsevier, New York, 1977.
[Kruchten2000TRU] Philippe Kruchten. The Rational Unified Process: An Introduction (2nd Ed.). Addison-Wesley, Boston, 2000.
[Petrasch2006MDA] Roland Petrasch and Oliver Meimberg. Model Driven Architecture. dpunkt.verlag, 2006.
[Pohl2005SPL] Klaus Pohl, Günter Böckle, and Frank von der Linden. Software
Product Line Engineering. Springer, Berlin, 2005
[Schwaber2002ADW] Ken Schwaber and Mike Beedle. Agile Development with Scrum. Prentice Hall, 2002.
[Sneed96SDE] Harry M. Sneed. Schätzung der Entwicklungskosten von objektorientierter Software. Informatik-Spektrum, 19(3):133–140, 1996.
Zielgruppe und Voraussetzungen
Die Veranstaltung ist eine Pflichtveranstaltung
- im Masterstudiengang Informatik.
Sie ist eine Wahlpflichtveranstaltung (Informatik)
- in den Masterstudiengängen Computervisualistik, Wirtschaftsinformatik und Informationsmanagement.
- Die Vorlesung setzt die Inhalte der Grundvorlesung INJE03: Grundlagen der Softwaretechnik voraus.
Leistungsnachweis
Zum Erhalt eines Leistungsnachweises (5 LP) ist eine zweistündige Abschlussklausur zu bestehen. Für die Klausur gilt eine Anmeldepflicht.
Termine
Kontakt