Vorlesung Informatik 1

Vorlesung Informatik 1 Fachhochschule für Technik Esslingen Studiengang Wirtschaftsinformatik Projektspielregeln Dr. rer. nat. Andreas Rau http://www...
Author: Helene Vogel
9 downloads 0 Views 90KB Size
Vorlesung Informatik 1 Fachhochschule für Technik Esslingen Studiengang Wirtschaftsinformatik

Projektspielregeln Dr. rer. nat. Andreas Rau http://www.hs-esslingen.de/~rau [email protected] Andreas Rau, 20.03.09

D:\home\ar\fhte\vorlesungen\informatik2\folien\informatik2-projektspielregeln.sdd

#1

Ziel des Projekts Ziel des Projekts ist es, die in Informatik 1 erworbenen und in Informatik 2 vertieften Kenntnisse im Rahmen zu Nutzen, um gemeinsam im Team ein sinnvolles und funktionierendes Programm zu entwickeln. Dabei sind neben programmiertechnischen Aspekten auch die Erfahrung bzgl. Zusammenarbeit im Team wichtig (in der Industrie gibt es keine Einzelgänger). Die Projektaufgaben werden so gestaltet, dass am Ende der Mühen aller Wahrscheinlichkeit ein Erfolg steht. Dadurch soll neben der Sicherung der Motivation (Spass durch kleine Erfolgserlebnisse) auch Vertrauen in die eigenen Fähigkeiten aufgebaut werden. Jeder Student sollte am Ende auf sein Ergebnis stolz sein. Soft-Skills werden zusätzlich durch die Rollenverteilung im Projekt, insbesondere die Festlegung eines Projektleiters, sowie die Abschlusspräsentation gefördert (es reicht nicht gut zu sein, man muss es auch rüberbringen!). Aufgabe des Dozenten ist es einerseits, in der Rolle des Kunden Anforderungen vorzugeben oder zu steuern und andererseits in der Rolle des Coaches bei Problemen mit Rat und Tat zur Stelle zu sein um den Projekterfolg zu sichern. Andreas Rau, 20.03.09

D:\home\ar\fhte\vorlesungen\informatik2\folien\informatik2-projektspielregeln.sdd

#2

Teamstruktur Jedes Team sollte idealerweise aus 2-3 Personen bestehen. Oberhalb dieser Zahl ist eine sinnvolle Verteilung und Koordination der Aufgaben schwierig, darunter schwindet der Teamaspekt und die Arbeitslast steigt. Die Aufgabe wird dem Kenntnisstand des Teams angepasst, sollte aber in keinem Fall zu trivial sein (Fairness und fehlender Stolz am Ende). Nach oben sind dem Ehrgeiz dagegen (fast) keine Grenzen gesetzt... Besonders in gemischten Teams aus starken und schwachen Mitgliedern ist auf eine gleichmäßige Aufgabenverteilung zu achten. Starke Programmierer stehen ihren schwachen Kollegen mit Rat und Tat zur Seite, nehmen Ihnen aber nicht das Programmieren ab (es sitzt immer der Schwache an der Tastatur damit er das Tempo bestimmen kann und mitkommt, notfalls gibt es "Programmierverbot"!). Schwache Programmierer arbeiten am Besten zu zweit (4 Augen sehen mehr). Die Aufgaben jedes Teammitglieds müssen definiert sein. Jedes Teammitglied muss am Ende über sein Arbeitsergebnis berichten können (wird geprüft). Andreas Rau, 20.03.09

D:\home\ar\fhte\vorlesungen\informatik2\folien\informatik2-projektspielregeln.sdd

#3

Organisation Anforderungen, Zeitplan, ...

Gesamtsystem (3-Tier)

Andreas Rau, 20.03.09

Benutzeroberfläche (MVC) Swing, Java2D, Listener Aufruf lokal oder über Netzwerk

Programmlogik Daten, Events, Threads Aufruf lokal oder über Netzwerk

Datenhaltung JDBC, Serialisierung

Dokumentation Entwürfe, Kommentare, Handbuch

Rahmenwerk

D:\home\ar\fhte\vorlesungen\informatik2\folien\informatik2-projektspielregeln.sdd

#4

Zeitlicher Ablauf(1) Für den zeitlichen Ablauf werden ca. 14-tägige Meilensteine vorgegeben um die Projekte "einheitlich zu takten", Verschleppungen zu vermeiden und frühzeitig auf Verzug reagieren zu können. Geplante Aktivitäten sollen ca. 14-Tage im voraus festgelegt werden Durchgeführte Aktivitäten sollen im Kalender nachdokumentiert werden Eine wöchentliche Regelkommunikation wird dringend empfohlen Die Planung/Nachdokumentation ist wichtig für die Projektsteuerung bzw. die Nachgelagerte Analyse (Soll/Ist-Vergleich) und die daraus abzuleitenden Erkenntnisse. Ziel ist, Schritt für Schritt von der Idee zum fertigen System zu kommen und dabei immer ein greifbares und funktionsfähiges Zwischenergebnis zu haben. Neue Erkenntnisse aus der Vorlesung sollen zuerst mit Hilfe von Übungen gesichert werden bevor sie in das Projekt übernommen werden (keine Experimente / Technologiebaustellen im Produkt!). Andreas Rau, 20.03.09

D:\home\ar\fhte\vorlesungen\informatik2\folien\informatik2-projektspielregeln.sdd

#5

Zeitlicher Ablauf(2) GUI Theorie 1 GUI Theorie 2 Threads Datenbanken Netzwerke

GUI Übung 1 GUI Übung 2 Technologie Übung 1

Themenfindung Technologie Recherche GUI Entwurf

Technologie Übung 2

Preview Version (nur GUI)

Technologie Übung 3

Alpha Version (Grundfunktion)

Vertiefung

Beta Version (Gesamtfunktion)

Coaching

Finale Version (Gesamtfunktion)

Andreas Rau, 20.03.09

D:\home\ar\fhte\vorlesungen\informatik2\folien\informatik2-projektspielregeln.sdd

#6

Zeitlicher Ablauf(3) Vorbereitung

Steckbrief, Anforderungen, Arbeitspakete,Zeitplan, GUI Entwurf, Entwurf

Experimente

Neue Technologien vor Einbau separat und einzeln evaluieren

Umsetzung

Programm (Stil, Javadoc, ...) Pflege Arbeitspakete/Zeitplan

Implementierung der Funktionen in mehreren Schritten

Nachbereitung

Handbuch, Präsentation, CD

Andreas Rau, 20.03.09

D:\home\ar\fhte\vorlesungen\informatik2\folien\informatik2-projektspielregeln.sdd

#7

Zeitlicher Ablauf(4) Ich hab schon drei Tage vorher gelernt! Huch, warum sind die 90min schon um?

Prüfung!

Die Prüfungen waren anstrengend Die Ferien sind viel zu kurz Das Nachholen fällt noch kürzer aus Projekt fängt gemütlich an "Wird schon nicht so schwer" Aber Achtung: Das Ganze ist mehr als die Summe der Teile

In der Praxis ist es doch nicht so einfach. Erste Probleme aber noch kein Stress (wird schon).

Januar

Prüfungen? Ich hab doch mein Buch dabei. Trotzdem: Informatik ist irgendwie anders

Dezember November

Februar

WS

März

Abgabetermin rückt näher, die Prüfung(en) auch. Verdammt, wie ging das nochmal. Jetzt wird es langsam doch stressig. Aua!

September

August

Mai Juni

Stress und Blutdruck steigen. Die Tage werden länger, die Nächte kürzer. Der Kaffeekonsum steigt, die Augenringe werden größer. Andreas Rau, 20.03.09

Orientierung im Studienalltag Grau ist alle Theorie

you are here

SS

April

Oktober

Die Übungen klappen nicht oder sind weniger lustig als die Spiele im Pool. Macht nix, die Prüfung ist noch weit.

Juli

Prüfung!

Noch ne Prüfung Wo war das noch gleich im Skript? Hätte ich doch mehr geübt...

I have long enjoyed asking candidate programmers, "Where is next November?". [...] The really good programmers have strong spatial senses; they usually have geometric models of time [...] Frederick P. Brooks "No Silver Bullet" Refired

D:\home\ar\fhte\vorlesungen\informatik2\folien\informatik2-projektspielregeln.sdd

#8

Geforderte Inhalte Folgende Inhalte müssen am Ende des Projekts vorliegen (Checkliste!) Planung: Projektsteckbrief, ca. 1 DIN A4 Seite mit Beschreibung Thema / Kernfunkt. Planung: Anforderungen, mind. 10 Anforderungen Planung: Arbeitspakete, mind. 3 Arbeitspakete pro Teammitglied Planung: Zeitplan, siehe vorhergehende Folien bzw. Vorlage Planung: GUI Entwurf, elektronisch oder Papier (später einscannen) Planung: Entwurf, Zerlegung des Systems als UML, Blockschaltbild oder Text Programm: Funktionalität, Hauptfunktionen ohne Absturz Programm: Ergonomie, z.B. Oberfläche und Benutzerführung Programm: Strukturierung, z.B. Trennung zwischen Logik und Oberfläche Programm: Formatierung/Stil, Einrückung und Namensgebung Dokumentation: JavaDoc, für Klassen und public-Methoden Dokumentation: Handbuch, mit Screenshots und ggf. Installationsanleitung Dokumentation: Präsentation, Foliensatz Projekt: CD-Modul, Verzeichnisse und HTML-Dateien Andreas Rau, 20.03.09

D:\home\ar\fhte\vorlesungen\informatik2\folien\informatik2-projektspielregeln.sdd

#9

Abnahmekriterien Neben der Abgabe der geforderten Artefakte am Ende müssen folgende Kriterien zum Erwerb des Scheins erfüllt werden: Einhaltung der Meilensteine (3x verpasst = verpatzt!) Vorlage vor-/nachausgefüllter Zeitplan (Leistungsnachweis!) bei jedem Meilenstein Beantwortung von allgemeinen Fragen zum Programm (jeder soll alles verstehen!) Beantwortung von speziellen Fragen zum eigenen Arbeitspaket Hinweis: Die aktive Teilnahme am Projekt ist maßgeblich für den Schein und außerdem eine gute Vorbereitung auf die Prüfung (Programmiererfahrung!). Gegenstand der Prüfung ist jedoch nicht das Projekt, sondern der behandelte Lehrstoff, der in den Projekten je nach gewählter Aufgabenstellung mehr oder weniger stark zum Tragen kommt. Übungszeiten können für Besprechungen und Arbeiten zum Projekt genutzt werden. Es wird jedoch empfohlen, auf jeden Fall die Übungsaufgaben zum Vorlesungsstoff durchzuarbeiten, ggf. eben zuhause.

Andreas Rau, 20.03.09

D:\home\ar\fhte\vorlesungen\informatik2\folien\informatik2-projektspielregeln.sdd

#10

Abschlusspräsentation Die Abschlusspräsentation soll die folgenden Inhalte abdecken Vorstellung der Aufgabe Hintergrund / Quelle der Idee Beschreibung der Idee Rückblick über Projektverlauf Vorgehensweise bei der inhaltlichen Planung Vorgehensweise bei der Abstimmung im Team Vorgehensweise bei der technischen Umsetzung Was hat besonders gut geklappt ( ca. 3 Punkte ) Was hat nicht so gut geklappt ( ca. 3 Punkte ) Vorstellung des Endprodukts Kurze Vorführung oder Screenshots Vergleich mit der ursprünglichen Planung / Design Ausblick ( Weiterenwicklung, Nutzung, ...? )

Andreas Rau, 20.03.09

D:\home\ar\fhte\vorlesungen\informatik2\folien\informatik2-projektspielregeln.sdd

#11

Tipps zum Vorgehen 1. Klare Arbeitsteilung im Team (z.B. GUI, Datenbank, Handbuch, ...) und Aufteilung des Systems in Klassen / Dokumente so dass jeder sein "eigenes" Teil hat und Konflikte bei Änderungen vermieden werden. 2. Von Anfang an auf sprechende Namen, saubere Einrückung und klare Schnittstellen achten. Jede Minute die hier investiert wird kommt später doppelt wieder rein (leichteres Verständnis, besserer Überblick, leichtere Integration, ...). Nachbessern ist schwer! 3. GUI fertigstellen (die Oberfläche muss eigentlich alle Anforderungen wiederspiegeln bzw. "einen Knopf für jede Funktion" haben – jedoch erstmal ohne Wirkung). 4. Funktionen Zug um Zug einbauen, Kernfunktionen zuerst. Es wird nix implementiert ohne dass eine entsprechende Anforderung vorliegt (Anforderungen ggf. nachziehen). 5. Das Programm muss zu jedem Zeitpunkt lauffähig sein; keine Grossbaustelle Ein Mitarbeiter (der PL?) ist verantwortlich für das zusammenführen der Teile zu einem Ganzen. Nich funktionierende Teile werden abgelehnt. 6. Neue Technologien zuerst anhand von Beispielen/Übungsaufgaben und mit kleineren Prototypen ausprobieren, dann erst einbauen (copy-paste ist dabei erlaubt bzw. normal). Andreas Rau, 20.03.09

D:\home\ar\fhte\vorlesungen\informatik2\folien\informatik2-projektspielregeln.sdd

#12

Kriterien zur Themenwahl Pflicht (Kopf - Technik) 1. Grafische Oberfläche Windows (J2SE) Webbrowser (J2EE) Handy/PDA (J2ME) 2. Datenspeicherung bzw. Datentransfer Verwaltung in einer Datenbank oder in Dateien Transfer über ein Netzwerk 3. Algorithmischer Anteil Umwandlung bzw. Aufbereitung von Daten, z.B. als HTML Report oder Grafik Kür (Herz - Leidenschaft, Motivation) 4. Ein Programm für den eigenen Einsatz Kenntnis des Anwendungsbereichs 5. Ein cooles Programm (zum vorzeigen!) Eigene Aha-Effekte, Entwicklerstolz und positives Feedback von Dritten Andreas Rau, 20.03.09

D:\home\ar\fhte\vorlesungen\informatik2\folien\informatik2-projektspielregeln.sdd

#13

Rollen(verteilung) im Projekt Im Projekt gibt es vielfältige Aufgaben zu erfüllen. Entscheidend für den Projekterfolg ist u.a. die richtige Rollenverteilung der Projektmitglieder. Dabei gilt es unterschiedliche Charaktertypen zu beachten. Beispiele: Visionär – kann andere für Ideen begeistern und Leidenschaft entfachen ● Organisator – sorgt für Ordnung, Abstimmung und Einhaltung von Terminen ● Tüftler – liebt es Probleme auf elegante Weise zu lösen, auch wenn es dauert ● Kreativer Gestalter – erstellt mit Hingabe Benutzeroberflächen und Dokumente ● Sachlicher Denker – hält Produkt und Spezifikation zusammen, bleibt cool ● Bastler – liebt schnelle Lösungen (die aber nicht immer 100%ig funktionieren) ● Perfektionist – baut und testet langsam aber sorgfältig ● ... ●

Aufgabe: Führen Sie eine (geheime) Selbsteinschätzung durch und besprechen sie anschließend die Rollenverteilung im Projekt und bewerten beides am Ende.

Andreas Rau, 20.03.09

D:\home\ar\fhte\vorlesungen\informatik2\folien\informatik2-projektspielregeln.sdd

#14