Softwareprojekt - Einführung
FG System- und Software-EngineeringProf. Armin Zimmermann
SoftwareprojektSSE Götte Einführung – 3
Ablauf
■ Einführung▸ Softwareprojekt
▸ Werkzeuge
▸ Beispiel
■ Pflichtenheft
■ Entwurf
■ Implementierung
■ Validierung
SoftwareprojektSSE Götte Einführung – 4
Einführung: Softwareprojekt
■ Pflichtveranstaltung im 3./4. Fachsemester▸ 3. Semester = vorbereitend
▸ 4. Semester = Durchführung
■ Ziele▸ Praktische Anwendung des erlernten
▸ Zielbezogen Programmiererfahrung sammeln
▸ Durchlaufen aller Phasen der SW-Entwicklung
▸ Praxisnahe Projekterfahrung
▸ Teamfähigkeit erlernen
▸ Präsentationstechniken
SoftwareprojektSSE Götte Einführung – 5
Ablauf des Softwareprojekt
SoftwareprojektSSE Götte Einführung – 6
Einführung: Vorbereitung
■ Freiwillige Veranstaltung
■ Vorbereitend für Softwareprojekt 4. Semester
■ Vorstellung von nützlichen Werkzeugen
■ Exemplarische Durchführung eines SWP▸ Gemeinsam
▸ Kein Ersatz für richtiges SWP
SoftwareprojektSSE Götte Einführung – 7
Ablauf
■ Einführung▸ Softwareprojekt
▸ Werkzeuge
▸ Beispiel
■ Pflichtenheft
■ Entwurf
■ Implementierung
■ Validierung
SoftwareprojektSSE Götte Einführung – 8
Werkzeuge
■ Versionsverwaltung▸ Git, Subversion, Mercurial, …
■ Dokumentation▸ LaTex, JavaDoc, Doxygen, …
■ Collaboration▸ Bugzilla, Wiki, dotProject …
■ IDE▸ Eclipse, Netbeans, …
■ UML▸ Umbrello, BOUML, ArgoUML, ...
SoftwareprojektSSE Götte Einführung – 9
Subversion
■ Monolithisch
■ Globale Revisionen des Projekts
■ Verteiltes gemeinsames arbeiten
■ Projekt ↔ Lokale Änderungen
■ Unterschiedliche clients▸ Kommandozeile
▸ Grafisch
– TortoiseSVN (Windows)– RapidSVN (verschiedene BS)
▸ IDE
SoftwareprojektSSE Götte Einführung – 10
Subversion
■ Gängige Ordnerstruktur▸ Trunk
– Aktuelle entwicklung
▸ Branches
– Alternative entwicklung
▸ Tags
– Festhalten von versionen
SoftwareprojektSSE Götte Einführung – 11
Subversion: Befehle
■ checkout – Projekt laden
■ update – Projekt aktualisieren
■ commit – Änderungen in das Projekt einpflegen
■ add – Datei/Ordner zum Projekt hinzufügen
■ revert – lokale Änderungen rückgängig
■ diff – lokale Änderungen anzeigen
SoftwareprojektSSE Götte Einführung – 12
Subversion: Befehle
■ lock – Datei/Ordner sperren
■ unlock – Datei/Ordner entsperren
■ delete – Datei/Ordner aus Projekt entfernen
■ Blame – anzeige: zeile – autor – revision
■ Propset – Datei/Ordnereigenschaften setzen▸ Zeilenumbrüche
▸ Externe projekte
▸ ...
■ Copy, move ...
SoftwareprojektSSE Götte Einführung – 13
Subversion: Workflows
■ Beginn: checkout
■ Hinzufügen: update – diff – commit▸ Diff zeigt „?“: add
▸ Update/diff zeigt „C“: manuelle Konfliktbehebung
▸ Update/diff zeigt „L“: Datei ist geblockt
▸ Commit Nachricht - aussagekräftig
■ Löschen▸ Lokale Änderungen: revert
▸ Globale Änderungen: diff - delete
■ Lokale Änderungen sind quatsch: revert
■ Datei blockieren: lock – unlock
■ Wer ist Schuld: blame
SoftwareprojektSSE Götte Einführung – 14
LaTeX
■ Textsatzsystem▸ WYGIWYM – WYSIWG
▸ Makrosammlung
▸ Ausgereift
▸ Komplex
▸ Plattform unabhängig
SoftwareprojektSSE Götte Einführung – 15
LaTeX
■ Eigentlicher text in \begin{document}...\end{document}
■ Auflistung: \begin{itemize}▸ \item listeneintrag
■ \it kursiv, {\bf fett}, \underline{text}
■ Listen generieren (index, abbildungsverzeichnis, …)
■ Zeilenumbruch erzwingen: \\
■ Backslash: \textbackslash
SoftwareprojektSSE Götte Einführung – 16
LaTeX
■ \usepackage{graphicx} + \includegraphics{Bild.jpg}
■ Tabellen▸ \begin{tabular}{l | c r}
– Spalte1 & spalte2 & spalte3 \\ \hline– Spalte1 & spalte2 & spalte3 \\– … & … & … \\
▸ \end{tabular}
spalte1 spalte2 spalte3
spalte1 spalte2 spalte3
... ... ...
SoftwareprojektSSE Götte Einführung – 17
Ablauf
■ Einführung▸ Softwareprojekt
▸ Vorstellung Werkzeuge
▸ Beispiel
■ Pflichtenheft
■ Entwurf
■ Implementierung
■ Validierung
SoftwareprojektSSE Götte Einführung – 18
Beispielprojekt
■ Kleines Beispielprojekt
■ Anlehnung an reales SWP
■ Realisierung im Seminar
■ Wasserfallmodell
SoftwareprojektSSE Götte Einführung – 19
Beispielprojekt: Ablauf
■ 15.12. Pflichtenheft
■ 05.01. Entwurf
■ 12.01 & 19.01. Implementierung
■ 26.01. Validierung
■ 02.02. Präsentation
SoftwareprojektSSE Götte Einführung – 20
Seminar
■ Hilfe bei behandelten Themen
■ Eure Fragen
■ Offen für Vorschläge