Software Engineering - Requirements
Allgemeines
- Letzte Vorlesung: 8.12.
- Klausur: 12.12.
Hilfreiches
- Definition Pflichtenheft: http://www.sts.tu-harburg.de/~r.f.moeller/lectures/se-ss-05/04-Definition.pdf
27.10.2005
- Pascal aus Algol, nachdem Algol68 nicht wirklich zu gebrauchen
- Spezialentwicklung fuer damals aufkommende Mikrocomputer
- Prozess-Periode: kleine Programme, Korrektheit noch durch Verstaendnis pruefbar
- Formale Periode: Korrektheit durch Berechnung
- Leitidee Dijkstra: Man muss zuerst wissen, was das Programm tun soll
- Strukturierte Programmierung ab 1982
- saubere Programmierung bei manchen Programmiersprachen schlichtweg unmoeglich (z.B. nur eine Answeisung bei if ⇒ daraus resultierende goto-Schlachten)
- “GOTO considered harmful” → grundsaetzliche Konstruktion der Sprache = Bloecke mit Ein- und Ausgang
- frueher Abbildung auf vorgegebene Datenstrukturen
- dann Objektorientierung: Definition der Funktion
- Beherrschung der Komponenten: AUfgabe ist Verdrahtung vorhandener Komponenten
- Programme frueher selten korrekt, Zeit/Kostenabschaetzungen falsch
- Anforderungsanalyse: Fehlertraechtig, richtig verstanden? Realisation korrekt?
- Dahl/Nygaard: 1967 OOP erfunden, aber kein Durchbruch
- Dijkstra/Hoare/Wirth: OOP (unabhaengig von und spaeter als Dahl/Nygaard, Durchbruch)
- Parnas: Geheimnisprinzip (definierte Schnittstellen, wurscht was innen ablaeuft)
- Ritchie/Thompson: C
- Kay: UI
- Booch: Spezifikation und Umschreibung von OOP ⇒ UML
- Jacobson: skandinavisches Modell, Nutzer muss mitbestimmen, iterative Releases, Rational Unified Process
- Gamma et al: Design Patterns
- Pflichtenheft definiert auch Qualitaetsmerkmale der Software
- Fehlerursache ↔ Fehlerwirkung zu diskrepant bei selbstmodifizierendem Quellcode, darum Pfui
- Wissenschaft: Menge von Methoden um ein Ziel so zu erreichen, wie es auch geplant war (Ingenieurswissenschaft)
- nicht praezise
- keine partielle Ordnung zw. Loesungen, kein “richtig”
- Kunde mit Test zufrieden → Kunde mit Programm zufrieden: geht nicht, da zuviele Tests
- Chancen in Sekundaerbranche hoeher als in Primaerbranche
- Outsourcing grosses Problem (Stellenabbau)
3.11.2005
- Pflichtenheft: Merkmale, Indikatoren, Prozess
- jeder testet sein eigenes Modul → aber auch “globale” Systemtests
- wichtig → welche Usecases sieht der Auftraggeber als Erfolgsdefinition an?
- Daten vom Auftraggeber nötig für Systemtestprogrammierung
- Meilenstein: Bestimmter Grad von Funktionalität/Korrektheit zu einem bestimmten Zeitpunkt attestiert
- interne Meilensteine zeitlich etwas vor den offiziellen ansetzen
- im Pflichtenheft: Anforderungen an Meilensteinen an einzelne Teilnehmer (Coder, Auftraggeber, …), z.B. Bereitstellung von Daten, Software, Funktionalität
- “Welche Meilensteine garantieren Sie zu welcher Zeit?”
- bei Changerequests muss immer ein Kompromiss zwischen Verwertung und Zeit getroffen werden
- Durchführung nur nach Abwägung und Einigung bzgl. Durchführbarkeit vs. Aufwand vs. Zeit
- Architektur nicht Ziel von XP, sie entsteht einfach
7.11.2005
- Pflichtenheft:
- Leitthema: Projekt planen
- Planung wird je Iteration besser
- Zeitplanung und Zeiterhebung
- Schätzmethode: Function Points
- 1. Meilenstein: 1-2 seitiges Paper “Was bringt das Produkt, was gibt es schon?” → Etwa bis Ende November
- 2. Meilenstein: 2-3 Seiten Featureliste
- 3. Meilenstein: Gespräch eingeflossen, 2. Version
- Divide and conquer
- heute: Kunde redet mit, inkrementelle Entwicklung
- Funktionsumfang als einzige wirkliche Variable → nächste Version
- Dreiteilung: essentielle, gewünschte, “Kür”-Features
- Planung: Am Anfang nur schätzen
- Eichkurven
- Zwischenprodukte mit 2-3 Tagen Entwicklungszeiten
10.11.2005
- “Unterstützung der Zeitplanung und Kontrolle”
- Zeiterfassung:
- Benutzerfreundliche Zeiterfassung
- Ausgerichtet am Unified Process
- Adaptierbar bzgl. der Iterationen
- Zeitplanung:
- Überprüfung von inTime (z.B. Berechnung von “Leistungsverbesserung” pro Function Point, …)
- Verknüpfung mit der Zeiterfassung
- 1. Geschäftsmodell, 2. Einzelne Schritte
- ISO-Norm: Ablauf, Qualitätssicherung offen
- Meilenstein: Wann, was, wer, Wann und wie erfüllt?
- Projektstrukturplan: Verfeinerung des Produktplanes mit internen Zwishcenprodukten und den zugehörigen Arbeitsprozessen
- Vorbedingung, Ist-Zustand
- Anwenderwünsche ermitteln, Doku der gewünschten Funktionen
- Ergebnis: Liste der geplanten Funktionen (Namen, Kurzbeschreibungen, Status)
- Function Point, Delphi Methode, Erfahrungsdatenbank
14.11.2005
XP in SE
- Refactoring
- Simple Design: Mach das einfachste was irgendwie funktioniert
- Pair Programming: Zwei Leute, ein PC, Vier Augen
- Coding Standards: Layout, Namenskonventionen
- Collective Ownership: Jeder darf am ganzen Code Änderungen vornehmen
- 40h-Week
- On-site Customer: Sitzt mit im Team, kann immer Entscheidungen treffen → geht aber praktisch nicht, dass Auftraggeber eigenen Mann während der Durchführung des Projekts fürs Rumsitzen und Fragenbeantworten bezahlt
- Metaphor: Abstrahierung, Modellbildung
- Beispiel:
- Kosten: 5M (8M)
- Zeit: 31.3.06 (31.12.06)
- Features: MUMBA (MIMBA)
- Qualität: 100% (90%)
- ⇒ Darum: Kunde kann nur drei Variablen festlegen, d.h. eigentlich nur zwei, denn Qualität ist nicht verhandelbar
- schwierig: Erstauftrag
- Pläne sind im Grunde nutzlos, das Planen ist aber dennoch wichtig (schon allein, um später aus Fehler lernen zu können)
- Release early, release often
- Releases = Ausliefern, Iterationen intern
- user stories: Kleine Funktionalitätseinheiten, nach Möglichkeit unabhängig voneinander, testbar
- Release Neuplanung ⇒ zuviele Tasks, keine Tasks, Gruppenänderungen
- Grundlagen Schätzungen immer vergangene Ergebnisse
- Aufschreiben, wie lange für einen Task braucht
- (Fehl-)Schätzungen = Erfahrung
- Konstantes Timetracking während der Iteration
- auch dann releasen, wenn noch nicht alles fertig
- Testwerkzeug: schnelle Ausführung, umfassend
- Fortlaufende Integration: Jeden Abend nach erfolgreichem (!) Test ⇒ Checkin, wenn broken → reparieren, dann checkin, IMMER checkin
- Erst Test, dann richtig coden
- Test = Doku, definiert Komponente
- großer Wert auf Kommunikation
- Mut: z.B. auch mal Rückschritte in Kauf nehmen, um am Ende besser vorwärts zukommen (bsp. Rewrite)
- Pflichtenheft: Ist, Soll, Stories, Rechtekapitel (Urheber, Vervielfältigung)
- geplante Releases bzw Milestones
- Schalenmodell: Core, nette Features, theoretische Konzepte
17.11.2005
Abschätzungsverfahren Function Point
- Gliederung:
- Beschreibung
- Voraussetzungen und Annahmen
- Funktionskriterien
- Einflussfaktoren
- Beispiel
- Fazit
- erdacht von Allan Albrecht, IBM
- schnelle effiziente Abschätzung des Projektaufwands
- vorher: LOC-Verfahren
- beruht auf Schwierigkeit/Umfang
- Analyse des Projekts in seiner Gesamtheit → Pflichtenheft!
- Funktionen des Projektes klassifiziert in leicht, mittel, komplex
- Summe der Funtion Points → abstrakte Zahl, nach Erfahrung Aussage über AUfwand in Mitarbeitermonaten (MM)
- Erfahrung fürht zu besserer Klassifikation
- → Functionpointkurve erstellen, iterativ warten
- Projektanfang → Klassifizierung → Analyse von Aufwand
- Voraussetzungen:
- Lastenheft, genaue Anforderungen!
- aus Sichtweise des Auftraggebers
- Bewertung durch erfahrene Mitarbeiter
- Auswertende (Punktevergeber) → kein Detailwissen über Verfahren, sonst Beeinflussung des Ergebnisses
- Kriterien: Eingaben, Ausgaben, Anwenderdateien, Referenzdateien, Abfragen
- Eingaben:
- Transaktionen, Abfragen mit vielen Zwischenschritten
- Bildschirmeingaben, CD-ROM, sequentielle Datenbestände, Belegleser, …
- Klassifikation → Tabelle
- Ausgaben
- bereitgestellte Daten
- Bildschirmausgaben, Fehlermeldungen, Abfragen mit vielen Verarbeitungsschritten
- Anwenderdateien
- Datenbanken, Tabellen, Textfiles, …
- Referenzdateien
- externe Informationsträger, unveränderbar
- Server, Festplatten, …
- Anfragen → Daten
- Kundendatenbank, Textdateien
- Abfragen
- Suchen nach Informationen
- viele Zwischenschritte → Ein/Ausgabe!
- Ermittlung von Kundendaten, Austausch von Daten mit anderen Anwendungen, …
- Schlüsselwörter ⇒ Folien
- unterschiedliche Gewichtung je Kriterium
- Grad des Einflusses → Skala 0-5
- Einflussfaktoren
- Verflechtung mit anderen Systemen
- dezentrale Verwaltung/Verarbeitung
- hohe Transaktionsrate
- komplexe Rechenoperationen, umfangreiche Kontrollverfahren, viele Ausnahmeregelungen, komplexe Logik
- Wiederverwertbarkeit → je mehr desto schwerer
- Datenbestandskonvertierungen → Maßnahmen bei Entwurf, Programmierung und Systemtests
- Vereinfachung des Wechsels bei Änderungen → variable Logik u.ä. ⇒ Erweiterungsfähigkeit
- FP = E1 * (E2/100 + 0.65) (E1 = Summe FP der Kriterien, E2 = Summe FP der Einflussfaktoren
- Auswertungstabelle FP/MM
- Nachteil des Verfahrens: Nicht strukturierbar, also keine Gewichtung von Entwicklungsphasen
uni/mitschriften/sereq.txt · Last modified: 2008/03/26 12:35 (external edit)







Discussion