Vertiefung Softwaretechnik (INJE06)

Prof. Dr. Jürgen Ebert

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

 

last modified Aug 24, 2011 09:36

Kontakt