Vertiefung Softwaretechnik

 

Vorlesung Vertiefung Softwaretechnik (INJE06)
0401015, SS 2008

Whitepage Icon Prof. Dr. Jürgen Ebert

Modulbeschreibung - Aktuelles - Gliederung - Literatur und Links - Leistungsnachweis - Termine

Aktuelles

  • (11.06.08) Die Klausur zur Vorlesung findet am Montag, 14. Juli 2008, von 10:00-12:00 Uhr in Raum K 101 statt. Hier geht es direkt zur MeToo-Anmeldung.
     
  • (09.05.08) Weitere Angebote der Firma sd&m sind: ein Infotag am 25. Juni 2008 und ein Softskill-Seminar am 27. Juni 2008. Beides findet in Troisdorf statt.
     
  • Die Modulbeschreibung findet man hier
     
  • Diese Veranstaltung wird in den Diplomstudiengängen als Softwaretechnik 2 anerkannt (mit 5 Leistungspunkten).
     

 

Übersicht

  1. Vorgehensmodelle, detailliert (z.B. RUP, XP)
  2. Qualitätssicherungsmaßnahmen (testen, messen, bewerten)
  3. Modellgetriebene Softwareentwicklung
  4. Postobjektorientierte Entwicklungsansätze (z.B. Komponentenorientierung, Produktlinien, Serviceorientierung, Aspektorientierung)
  5. Wartung und Reengineering
  6. Middleware (z.B. Corba)

 

Gliederung mit Stichworten und Beilagen

Teil 1: Weitere Grundlagen

§ 1 Wartung

§ 1.1 Grundlagen

Wartung - Bezug zu evolutionären Modellen - korrektiv, adaptiv, perfektiv, präventiv - bedarfsgetrieben, projektbasiert -
Lehmansche Gesetze - continuing change, increasing complexity - Entropiezuwachs -
Probleme der Wartung - Bedeutung der Wartbarkeit - Konsequenzen für die Softwareentwicklung -
1/3:2/3-Regel

§ 1.2 Wartungsmanagement

Regel von Boehm - Wartungsaufwand -
Methoden, Prozesse, Tools -
Ruf der Wartungstätigkeit - Ratschläge für den Personaleinsatz -
Änderungsanforderungen (modification request, MR) - Änderungswunsch, Fehlermeldung - Inhalt und Aufbau eines MR - Ergänzung für Fehlermeldungen - Lebenslauf eines MR - Beispiel: Bugzilla - Architektur - Rollen - Lebenslauf - Demo -
Änderungsprozess (request control, change control, release control) - Unterstützungssystem

§ 1.3 Korrektive Wartung

korrektive Wartung - Schwierigkeiten dieser Aufgabe -
Fehlverhalten vs. Fehler - Gründlichkeitsprinzip - Arten von Fehlern (syntaktische Fehler, algorithmische Fehler, Umsetzungsfehler -
Debugging Tools - Vorgehensweise beim Debugging - beobachten, unterbrechen, inspizieren, korrigieren - statisch vs. dynamisch - Programmdomäne vs. Problemdomäne -
Beispiel: Eclipse - Java-IDE - debug-Perspektive - einzelne Views - Debugging-Aktionen - Breakpoints - Demo

§ 1.4 Präventive und perfektive Wartung (Reengineering) (Beilagen)

Reengineering - Synonyme - Trennung von Entwicklung und Renovierung - Altsoftware (legacy software) -
Fallunterscheidung (Portfolioanalyse) - Charakterisierung von Chikofsky/Cross - Charakterisierung von Byrne - Reengineering = Reverse Engineering + Delta + Forward Engineering -
Vorgehensweise (Prozess) - Reverse-Engineering-Aufgaben - Werkzeugarchitektur - extract-transform-rebuild

§2 Konfigurationskontrolle

§ 2.1 Grundlagen

Problemstellung - mehrere Personen - mehrere Varianten - Definition -
Artefakte - editierbar vs. abgeleitet - editierte abgeleitete Artefakte - Attribute -
Version - Revision - Variante - Einfrieren -
Repository - Checkin/checkout - optimistisch/pessimistisch -
Schnappschuss - Referenzkonfiguration (baseline) - Systemversion (release)

§ 2.2 Versionskontrolle

Nummerierung - Haupt-/Nebennummer vs. Revisionsmummer -
Delta - Vorwärts-/Rückwärtsdelta - Änderungslog -
Differenzberechnung auf Texten - Levenshtein-Distanz (Edit-Distanz) - - Regeln - Tableau - Beispiel - dynamischen Programmierung - Aufwand - diff-Ergebnis - Ausgabeformat, patch-Kommandos - Vorwärts- und Rückwärtsdelta -
Werkzeuge - subversion (svn) - Eigenschaften - Struktur der svn-Verzeichnisse

§ 2.3 Konfigurationskontrolle i.e.S.

Konfiguration - Erstellung abgeleiteter Prozesse - Ableitung eines Dokuments - Betriebssystem(BS)-Kommandos - BS-spezifische vs. BS-unabhängige Tools -
Beispiel: make - Abhängigkeitsgraph - Makefile - Beispiel - Kommandos - Zeitstempel -
Beispiel: ant - Projekt, Target, Task - Beispiel - Versionierung der Build-Dokumente

§ 3 Messen und Schätzen

§ 3.1 Grundlagen des Messens

Ziele des Messens - Definition Softwaremetrik - Beispiele - - Anforderungen an Metriken - Zweck von Metriken - Visualisierung von Metriken - Balkendiagramme, Kiviatgraphen (radar plots), polymetric views - Beispiel: lines of code - Beispiel: fog-Index

§ 3.2 Softwaremetriken, Übersicht

(A) Größenmaße (Volumenmaße) - Definition - Beispiele -
(B) Quotientenmaße (Dichtemaße) - Definition - Beispiele -
(C) Strukturmaße - McCabe - zyklomatische Komplexität - Rückführung auf ein Größenmaß -
(D) Halsteadmaße - Informationstheorie - Operator, Operand - Basismaße n1, n2, N1, N2 - abgeleitete Maße: Größe des Vokabulars, Größe des Programms, Programmvolumen, Programmniveau

§ 3.3 Metriksuite von Chidamber und Kemerer

[Chidamber1994AMS] - Einordnung - mittlere Granularitätsstufe - Metamodell - Metriken: WMC, DIT, NOC, CBO, RFC, LCOM - Metamodell - Übersicht

§ 3.4 GQM

Idee - Goal-Question-Metrics - Beispiel

§ 3.5 Grundlagen des Schätzens

Schätzen - projekt-relevante Größen -
Aufwand - Personenjahr - Aufteilbarkeit - Kommunikation -
Leistung - Produktivität -
Einflussgrößen: Produkte - Personal - Umgebung - Prozess

§ 3.6 Schätzverfahren

Gefahren des Schätzens - Parkinson's Prinzip - Price-To-Win-Prinzip - Schätzstrategien - Bottom-Up, Top-Down, Analogie, Experten-Urteil -
(A) Lineares Schätzmodell - Kosten, Aufwand, Fehlerquellen -
(B) CoCoMo - [Albrecht1983SFS] - Ansatz - Formel - Entwicklungsmodi - Konstante c und k - Kurven - Verfeinerung des Modells - cost drivers

§ 3.7 Function Points

[Albrecht1983SFS] - IFPUG - Function Points vs. Object Points - [Albrecht1983SFS] - strukturierte Analyse - Zählen und Bewerten - Eingabe, Ausgabe, Dateien, Anfragen, Referenzdaten - Formular - Beziehung FP und dsi - Vorgehen

§ 3.8 Object Points

[Sneed1996SDE] - Objektmodell/Kommunikationsmodell/Prozessmodell - Vorgehensweise - Beziehung OP und dsi - Vorgehen

wird fortgeführt

 

Literatur und Links

[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.

[Chidamber1994AMS] Shyam R. Chidamber and Chris F. Kemerer. A metrics suite for object oriented design. IEEE-TSE, 20(6):476–493, 1994.

[Sneed1996SDE] Harry M. Sneed. Schätzung der Entwicklungskosten von objektorientierter Software. Informatik-Spektrum, 19(3):133–140, 1996.

 

Bedingungen für den Leistungsnachweis

Einen Leistungsnachweis (5 LP) in Vertiefung Softwaretechnik erhält, wer die Abschlussklausur besteht.

Anmeldepflicht

Für die Klausur und die Nachklausur gilt eine Anmeldepflicht. Wer sich nicht firstgerecht anmeldet, kann nicht an der Klausur teilnehmen. Wer sich angemeldet hat, aber nicht erscheint, gilt als durchgefallen.

 

Termine

Vorlesung:

Klausur:

  • Die Klausur zur Vorlesung findet am Montag, 14. Juli 2008, von 10:00-12:00 Uhr in Raum K 101 statt. Hier geht es direkt zur MeToo-Anmeldung.
     

Nachklausur:

  • t.b.a.