Upload
others
View
11
Download
0
Embed Size (px)
Citation preview
Auswertung Softwaretechnik-Praktikum 2007
Internes Praktikum
Frage 1.1 Wie schätzen Sie den zeitlichen Einarbeitungsaufwand
in das Framework gemessen am Gesamtaufwand für das
Praktikum ein?
Der mittlere Einarbeitungsaufwand in das Framework
betrug: 27,6 % (Vorjahr: 23%)
Frage 1.2 Bewerten Sie nachfolgende Einarbeitungsquellen zum
Framework unter dem Gesichtspunkt des Grades der
Hilfestellung / Häufigkeit der Nutzung!
Frage 1.3 Wie hoch war der zeitliche Anteil der einzelnen
Entwicklungsphasen?
Frage 1.4 Ließen sich die einzelnen Entwicklungsphasen sauber
trennen?
Ja 42,86 % (Vorjahr: 64,71 % Ja) Nein 53,57 %
Frage 1.5 Wie viele Entwicklungszyklen haben Sie bis zum
Endprodukt durchlaufen?
Im Schnitt wurden 2,52 (Vorjahr: 2,97) Entwicklungszyklen
durchlaufen.
Frage 1.6 Wie hoch war der durchschnittliche wöchentliche
Arbeitsaufwand pro Student?
a) für Teamabsprachen durchschnittlich 3,57 h (Vorjahr: 3,09 h)
b) für Teilaufgaben durchschnittlich 16,37 h (Vorjahr: 10,78 h)
Frage 1.7 War der Praktikumsaufwand über das Semester etwa
gleichverteilt?
Ja 14,29 % (Vorjahr: 5,88 % Ja) Nein 85,71 %
Wenn nein, warum?
- Die Implementierungsphase war wesentlich
zeitaufwendiger als die anderen Phasen (15)
- Zu wenig Zeit für Einarbeitung uns Framework
- Analyse war zu aufwendig im Vergleicht dazu was es
gebracht hat
- Fehleinschätzung des Arbeitsaufwandes zum Anfang.
Unterschätzter Einarbeitungsaufwand in Java, SalesPoint
- Zu viel Zeit nach Vorgabe, für Analyse und Entwurf „
verschwendet“. Zu wenig Zeit für Test und Wartung.
- OOA und OOD war wenig, Implementierung plötzlich sehr
stressig (3)
Frage 1.8 War der Praktikumsaufwand für die Teammitglieder etwa
gleichverteilt?
Ja 48,15 % (Vorjahr: 64,71 % Ja) Nein 51,85 %
Frage 1.9 Wünsche zu SalesPoint?
Doku
Beispielcode in JavaDoc
weitgehenderes Bsp. als Videoautomat
Teilweise schlecht erläutert wie man an
bestimmt Values ran kommt
Bessere Strukturierung der Tutorials
Bessere / ausführlichere Kommentare
Bessere und ausführlichere How-Tos
Mehr Informationen bzgl. Serialisierung
Technischer Überblick ist zu allgemein. „Großmarkt“
ist zu komplex.
Codeklassen sollten mitgeliefert werden
Glossar wäre hilfreich
Bessere Erklärung der Zusammenhänge der Klassen
Infrastruktur
CountingStock und StoringStock verknüpfen
Teilweise inkonsistenter Aufbau
GUI:
Graphische Oberfläche verbessern(3)
Besserer Zugriff auf GUI-Komponenten -> gut währe
eine redraw()-Methode
das Standard-Layout ist unzureichend
Datumsdarstellung schlecht (sehr umständlich)
Implementationsdetails:
Bugs ausbessern
OptionPanel verursacht manchmal Probleme
Weniger Wert auf Multitaskingfähigkeit
Verbesserung der SalesProcess-
Funktionalitäten
Im CountingStock fehlen isEmpty() und clear()
Standardfunktionalität (z.B. Logout-Action,
TransitWith-Action, Stop-
Action,...) sollte ins
Framework aufgenommen
werden
Generics besser nutzen (2)
TimeListener sollte serializable sein
Allgemeines:
getCurrentSalesPoint() funktioniert nicht wie
beschrieben, keine
Prozesse, die Prozesse
starten möglich –> führt zu
Bugs
Datenbankanbindung
Da WebPoint voraussichtlich nicht weiterentwickelt
wird, könnte man überlegen
an der TU-Dresden eine
entsprechende Gruppe
einzurichten
Vorgehensweise nicht immer klar erkennbar
Man sieht dem Framework an, dass es nacheinander von
unterschiedlichen Leuten
bearbeitet wurde.
Frage 2.1 Versuchen Sie Ihr Praktikumsergebnis zu bewerten!
Die Aufgabenstellung wurde im Schnitt voll erfüllt (2,09). (Vorjahr 2,29)
Frage 2.2 Ermitteln Sie folgende Metriken zur Komplexität
Ihrer Anwendung!
Durchschnitt Minimum Maximum VorjahresØ Veränderung
Codezeilen 11545,36 2315 23500 10135,59 1409,77
Klassenanzahl 168,18 33 273 140,21 27,97
Methoden pro Klasse
durchschnittlich 5,02 3 13 29,84 -24,82
maximal 41,54 12 189 42,36 -0,82
LOC pro Methode
durchschnittlich 18,06 4 85 -- --
maximal 323,93 42 860 -- --
Vererbung
maximale Tiefe 5,39 2 7 4,85 0,54
maximale Breite 5,92 0 36 12,18 -6,26
Frage 3.1 Versuchen Sie Ihre Teamarbeit zu bewerten!
Die Teamarbeit wurde im Schnitt mit gut (1,8)
bewertet. (Vorjahr: 1,9)
Begründungen (Auswahl)
Negatives
Es war schwierig die Arbeitsgewohnheiten auf
eine Teamarbeit einzustellen
Anfängliche Kommunikationsprobleme, lösten sich
aber später auf
Probleme in der Zusammenarbeit
Persönliche Differenzen
Probleme aufgrund unterschiedlicher
Programmierkenntnisse
Unausgewogene Arbeitsverteilung (2)
Anfängliche Kommunikationsschwierigkeiten (3)
Praktikum wurde von einigen Teammitgliedern
nicht ernst genug genommen
Positives
gute Kommunikation mit Forum, ICQ und IRC (3)
Jeder hat zur vereinbarten Zeit qualitativ gute
Ergebnisse produziert
Gute Zusammenarbeit (4)
Motivierte und engagierte Teammitglieder (2)
Recht klare Absprachen, kaum Missverständnisse
Unterstützung innerhalb der Gruppe
konstruktive Kritik
Jeder hat seine Stärken eingebracht
Wir haben uns insgesamt gut verstanden (2)
Frage 3.2 Aus wie vielen Mitgliedern bestand die
Praktikumsgruppe?
a) zum Praktikumsbeginn durchschnittlich 4,71
b) zum Zeitpunkt der Abgabe durchschnittlich 4,75
Das entspricht einem Zuwachs um einen Studenten.
Es sind alle Gruppen, bis auf eine, gleichstark
geblieben (Vorjahr Rückgang: 11,3 %)
Grund für Differenzen:
Nachträgliche Nominierung eines Teammitgliedes
durch den Lehrstuhl
Frage 3.3 Wurde das Prinzip des Chefprogrammierers angewendet?
Ja 74,07 % (Vorjahr: 67,65 %) Nein 25,93 %
Alternativlösungen:
Autonome Entwicklung einzelner Module durch
jeweils ein Teammitglied
Fließende Grenzen zw. Aufgaben & Rollen (3)
Durch die geringe Mitgliederanzahl wurden von
allen mehrere Aufgaben wahrgenommen.
Gemeinsame Entscheidungsfindung, gleichverteilte
Aufgaben
Aufgaben wurden dynamisch verteilt
Es gab so direkt keine Chef-Rolle. Meistens wurde
demokratisch entschieden.
keine feste Hierarchie, Aufgaben wurden
gemeinsam, beim Gruppen- oder Tutortreffen
verteilt.
Frage 3.4 Hat sich die im Projektplan festgeschriebene
Teamorganisation während des Praktikums bewährt?
Ja 77,78 % (Vorjahr: 70,6 %) Nein 22,22 %
Frage 3.5 Konnte eine klare Aufgabenabgrenzung für jeden
Studenten erreicht werden?
Ja 66,67 % (Vorjahr: 58,8%) Nein 33,33 %
Frage 3.6 Wie erfolgte die Softwareentwicklung?
Wo?
privater PC/zu Hause (28/28)
im FRZ (15/28)
Wie?
Kommunikation über E-Mail (7)
Kommunikation über Forum (5)
Kommunikation über ICQ (7)
Kommunikation über Skype
Kommunikation über IRC (2)
FTP für Dokumentenaustausch (4)
CVS (5)
Wiki
Gruppenprogrammierung im FRZ: (4)
Gruppentreffen (5)
Pair-Programmierung
StudentenLabor
eigene Projektwebsite (2)
Probleme?
Keine Probleme (7)
CVS-Probleme (4)
SVN-Probleme (3)
CVS mit Together nicht erwartungsgemäß funktioniert (3)
Eclipse war nicht immer auf jedem Rechner im FRZ
richtig installiert
Auswahl und Einarbeitung in Tools nahmen viel Zeit ein
Eclipse-Plugins lassen sich nicht im FRZ
installieren (2)
Schlechte Performance von Together
(Hauptspeicherverbrauch) (3)
Unterschiedlicher Leistungsstand zw. den
Teammitgliedern
Barierre beim Lesen von JavaDoc für Blinde.
Strutsversionskonflikte
Zu wenig Speicherplatz im FRZ (Quota)
Anfängliche Motivationsschwierigkeiten
Gelegentlich Verständnisprobleme (2)
In fremden Code schreiben
Probleme mit Mac
FRZ-Öffungszeiten zu kurz
kein FatJar im FRZ installiert
Frage 3.7 Welche Erfahrungen haben Sie mit CVS gemacht?
Positives
praktisch/hilfreich/nützlich (7)
sehr gute Eclipse-Integration
im Allgemeinen sehr sinnvoll, jedoch kleine und
große Ärgernisse (4)
Server war immer gut erreichbar
große Hilfe für das Praktikum (3)
Negatives
Sehr umständlich
Probleme beim neuauschecken -> keine Main-Methode
Gefunden
teilweise verwirrende Fehler beim committen, wenn es
Konflikte gab
ein FTP-Server bietet fast das gleiche
Mergen ist Müll
leider wurde vergessen, die Rechte im CVS zu setzen,
so dass jede Gruppe auf jede Andere zugreifen konnte
Probleme im Zusammenhang mit Together (4)
veraltet
Mergen erfordert Erfahrung
Probleme mit dem Konfliktmodus (2)
Bezüglich SVN
SVN wäre besser
SVN dringed empfohlen
gute Erfahrung, sehr Hilfreich
4 Gruppen nutzen SVN statt CVS und waren damit
überwiegend zufrieden.
Frage 3.8 Welche Konflikte und Probleme traten in der
Teamarbeit auf?
Keine Probleme (10)
Abstimmungsprobleme mit zeitl. Umsetzung einzelner
Teilaufgaben
Durch geringe Gruppengröße musste einer die Arbeit
von 2en machen
Auftretende Probleme wurden schnell gelöst (meist
mündlich), Chefprogrammierer sorgte für endgültige
Entscheidung
Es wurden teilweise zu unterschiedliche Zeiten
gearbeitet. So wurden teilweise Aufgaben schubweise
gelöst und nicht konstant über einen längeren
Zeitraum, sodass voneinander abhängige Aufgaben
angepasst werden mussten.
Ungleichgewichtete Aufgabenverteilung (3)
Eine mangelnde Absprache wurde durch ein klares
Gespräch gelöst (3)
Anfängliche Kommunikationsprobleme. Gelöst durch
strikte Aufgabenverteilung und genauere
Terminabsprachen
Unterschiedliche Erfahrungen führten zu Konflikten.
Eine gemeinsame Lösung wurde zur Not vom Chef
festgelegt
Kennen-Lernen überschattete Produktivität
Änderungen an fremden Code anfangs zu leichtsinnig
vorgenommen
ein Teammitglied übernahm weniger Aufgaben
Ein Mitglied kam mit der Programmierung nicht so
klar, so dass seine Aufgaben übernommen werden
mussten. Dafür bekam dieser Student in anderen
Aufgabengebieten mehr Arbeit (Anw.-Doku)
manchmal Absprache ineffizient/nicht eindeutig
Verständigungsprobleme, gelöst mit Hilfe des Tutors
und Teamgesprächen
Zu Beginn des Praktikums fand kaum Teamarbeit statt.
Dies führte zu einem Krisengespräch mit dem
Lehrstuhl. Das Gespräch wirkte als Alarmsignal für
unsere Gruppe, woraufhin sich die Teamarbeit
kontinuierlich verbesserte.
Entscheidungen wurden hauptsächlich durch
mehrheitliche Abstimmung getroffen
Frage 3.9 Welche wichtigen Erfahrungen in der Teamarbeit
wurden gemacht?
Als wichtige Kriterien erfolgreicher Teamarbeit wurden
genannt:
Zusammenarbeit
Definierte Schnittstellen (3)
Kompromissfähigkeit (2)
Hilfsbereites Team
Lernen im Umgang mit Kritik
Intensivere Abstimmung durch mehr Treffen
Auf die Teammitglieder einstellen
Gruppentreffen wichtig
lockere Atmosphäre, aber ergebnisorientiert sein
Konkrete, gerechte Arbeitsteilung (2)
Arbeitsteilung an individuellen Fähigkeiten
orientieren
Jeder muss mitziehen (2)
Kommunikation (4)
Organisation
Klare Zeitpläne
Zielstrebigen Projektleiter mit Erfahrung
Mit fremden Code umgehen können
Weitere Erfahrungen während der Teamarbeit:
Aufgabe fair verteilt,
alle müssen an einem
Strang ziehen
Mit den nötigen Tools
(Eclipse, CVS) und guter
Teamkommunikation
(besonders zur API) lässt
sich ein Programm gut in
einer Gruppe entwickeln
Teamarbeit wichtig für so
ein Projekt, alleine nicht
schaffbar
Viele Hände schaffen
schnelles Ende
Pair Programming macht
Spaß
Jedes Mitglied hat
unterschiedliche
Erwartungen und jeder
sollte Kompromisse machen
Man sollte vielleicht
strenger mit denjenigen
sein, die nicht so
mitziehen
Wenn jeder mitzieht, kann
die Arbeit sehr gut
vorangehen (2)
Anfangs viel Organisation
/ Planung, dann weniger,
klappte trotzdem
Vorherige Absprache besser
als jeder versucht sich
dran -> dann passt es
nicht mehr zusammen
Es braucht viel Zeit bis
das Team auf einander
„eingespielt“ ist und
bestmögliche Leistung
bringen kann.
keine neuen Erfahrungen
Gleichmäßige
Arbeitsaufteilung/Aufgaben
verteilung zu erreichen
ist schwer
Frage 4.1 Bewerten Sie das Softwarepraktikum als
Lehrveranstaltung!
1,0 trifft zu
5,0 trifft nicht zu
OOSE Objektorientierte Software-Entwicklung
Frage 4.2 Haben Ihnen die Vorlesung SWT und die Übungen die
nötigen Grundlagen für das Praktikum vermittelt?
Ja 28,57 % (Vorjahr: 32,4% Ja) Nein 7,14 %
Teilweise 57,14 % k.A. 7,14 %
Was sollte man in dieser Hinsicht künftig anders
machen?
Die Grundlagen waren höchstens für die Analyse- und
Entwicklungsphase nützlich (4)
Die Übungen in Hinblick auf das Praktikum gestalten
Eine Praktikumsveranstaltung für Java wie Praktikum
Programmierung für Java wäre sehr gut
Mehr Frameworkbeispiele (3)
Übungsergebnisse bitte online (sollte kein Geheimnis
sein), zur Vertiefung gibt es das Praktikum
Auf SalesPoint eingehen (2)
Praktomat erweitern
Es sollte mehr auf Java eingegangen werden
Umgang mit der Java-API sollte etwas mehr behandelt
werden
GUI-Programmierung kam zu kurz
Das SWT-Projekt ist zu umfangreich, als dass ein
Semester SWT ausreichen würde
Das Programmieren mit Java oder einem Framework
wurde nicht ausreichend gelehrt
Allein die Vorlesung/Übung vermittelt kaum das, was
man im Praktikum braucht
mehr Java-Kenntnisse (Swing) (2)
praktische Beispiele (2)
Projektmanagement-Grundlagen
Sequenzdiagramme
Workshop zu Eclipse, CVS und SalesPoint wären gut
(freiwillig, siehe Bomberman-Programmierung)
Frage 4.3 In welcher Rechnerumgebung haben Sie Ihre Anwendung
entwickelt?
Betriebssystemplattform:
- Windows (35), davon
- Windows 2000 (2)
- Windows XP (14)
- Windows Vista (6)
- unbekannt (13)
- Linux (14)
- MacOSX (5)
Java-Entwicklungsumgebung:
- Eclipse (27)
- BlueJ
- Kate
- Notepad 2
- vim
- emacs
CASE-Tools:
Together (20)
OjectiF (3)
ArgoUml (3)
MagicDraw (2)
Umbrello (2)
Jude (2)
Sonstige (7)(NetBeans, Dia, Enterprise Architect, Altova, Fujaba, Pacestar UML Diagrammer, Jigloo)
Textverarbeitung:
Microsoft Word (16)
OpenOffice (16)
Latex (7)
Texteditor (2)
Acrobat (2)
InDesign
Andere (10) (PDF-Latex, Vim, emacs, GoogleDocs, Kile, Kate, NeoOffice, CoralDraw, StarOffice)
Projektmanagement:
CVS (4)
Wiki (4)
ICQ (2)
Mail (3)
Subversion (3)
MS Project (4)
Forum
Sonstige (7) (IRC, Doodle, Google Calendar, BugTracker, TimeTracker, OmniPlan (OSX), Planner)
Testtools:
Junit (15)
Eclipse Debugger (1)
Kopf
Sonstige Tools:
ICQ (3)
Photoshop (3)
Apache Tomcat (2)
Dreamweaver (2)
WinSCP (2)
Browser (2)
Sonstige (11) (Winamp, Proton, iWeb, Paint,
Gimp, ircsi, mIRC, Phase5, Putty, TC, Psi)
Frage 4.4 Wie beurteilen Sie die technische Ausstattung im FRZ
zur Unterstützung des Softwarepraktikums?
Verbesserungsvorschläge?
Reply-To-Header bei Mails sollte auf die
Gruppenadresse gesetzt werden
funktionierende Eclipse-Installationen
Metrics für Eclipse fehlt
größere Bildschirme, bessere Tastaturen
Subclipse fehlt (3)
Generelle Plugin-Installationen für Eclipse (4)
Zugriff auf Quellcode anderer Gruppen sollte
verhindert werden (2)
Tomcat installieren
Zu wenig Hauptspeicher für Together (3)
Eclipse und CVS vorkonfigurieren
Plugins sind im Together nicht einzufügen
kein FatJar im FRZ installiert
Öffungszeiten zu kurz
Mehr PCs mit Dual-Monitoren
Frage 4.5 Meinung zu Java als Entwicklungssprache:
sehr gut (4)
gut (12)
ok (9)
Schlecht (3)
Positives:
Sehr komfortabel
Schnell zu erlernen (2)
Dokumentation ist perfekt (3)
Bietet sehr viele Funktionen
Viele kostenlose Entwicklungswerkzeuge und
Ressourcen im Web
Mächtig (2)
Flexibel
Plattformunabhängig (2)
Anzahl Bibliotheken
Gute Programmierung ist schnell und einfach
möglich
Wenig fehleranfällig
Unterstützung durch Eclipse
Übersichtlich und gut strukturiert (2)
Negatives:
C++ wäre besser (3)
Langsam (7)
Nerviges Casten
Klobig (2)
Unnötig kompliziert (2)
Keine Mehrfachvererbung möglich
Umständliche GUI-Entwicklung
Neigung aber zum schlechten Code
Unausgereiftes GUI-Framework
Frage 4.6 Verbesserungsvorschläge für die Durchführung des
Praktikums?
Zeitaufwand
Besseres Verhältnis zw. 2SWS für Praktikum und
eigentl. Aufwand
Mehr Zeit für IST-Studenten einplanen
Weniger Arbeitsumfang -> nur Schein (2)
Weniger umfangreiche Aufgabe
mehr Zeit für Implementierung und Wartung
einplanen (2)
Projekt verbraucht zu viel Zeit vom Semester
SalesPoint
Einschränkung auf Framework ungünstig
in der Praxis verwendbares Framework nutzen
Framework up-to-date bringen -> Generics in
Filtern in Ordnung bringen
WebPoint-Tutorial verbesser: Minimalbeispiele
statt eines großen
Organisation
Einheitliches Auftreten der Tutoren
Nur 5er Gruppen (2)
Programmierung in Java als Vorlesung
Mehr Tutorials für z.B. DataBasket
Praxinähere Aufgaben
Mehr Unterstützung beim Konzeptentwurf
Statt Übung für SWT, bereits Analyse und
Entwurfsphase für das Praktikum
Geldpreise einführen
Wir sind für mehr WebPoint-Gruppen
Strutseinführung
SalesPointeinführung für WebPoint-Gruppen hat sehr
geringe Sinnhaftigkeit
Nicht das Produkt sollte im Mittelpunkt stehen
Praktikumssemester
Alternativen zu Java anbieten und in Vorlesung
darauf eingehen
Teams ausgewogener gestalten
Ablauf
1 Woche weniger Wartung, dafür 1 Woche mehr
Analyse
Mehr Unterstützung beim Konzeptentwurf
Einarbeitung in SalesPoint vor Praktikum
Hinweise geben falls eine spätere Implementierung
zu komplex werden könnte
Für genauere Analyse war Aufgabenstellung und
Vorgaben vom Tutor unzureichend
Eine Zwischenstufe zw. Vorlesung und Praktikum,
z.B. ein Ferienkurs
Mehr Möglichkeiten zur Einarbeitung in SalesPoint
geben, evtl. durch Übungen
Ein Entwicklungszyklus ist zu wenig
Praktikumsplan vorher noch genauer
Allgemeines
event. mehr systemnah
Einführungsveranstaltung für Tutoren ins
SalesPoint-Framework
Es sollte eine Paketstruktur empfohlen werden
Weblink zur Serialisierung
Frage 4.7 Bewertung der Praktikumsleistungen gewünscht?
Ja 55,56 % (Vorjahr: 50,0 % Ja) Nein 44,44 %
Wenn ja, dann Bewertung für:
Team 73,33 %
Student 20,00 %
Team und Student 6,67 %
Vergleich der Aufgabenstellungen bzgl. des Aufwandes
Aufgabe LOC Ø Anzahl
Klassen Ø Bemerkungen
Buchmesse 9950,0 167,0 Ausreißer mit 7374 LOC
Vinothek 10413,0 176,5
Reinigungsfirma 9399,0 117,0
Fotoatelier 11976,7 190,0 Ausreißer mit 8106 LOC
Mikroskopverleih 11307,3 170,7
Autohaus 13608,0 194,0
Versandhausagentur 4193,5 89,0 GUI größtenteils in JSP-Seiten
Fußballstadion 12124,5 191,0 Große Differenz: 17289, 6860 LOC
Pizzaservice 11472,3 187,3
Apotheke 10324,7 171,0 Ausreißer mit 15887 LOC
Fluglinie 17112,0 153,0 Große Differenz: 22777, 11447 LOC
Möbelgeschäft 17213,5 188,5 Große Differenz: 23500, 10927 LOC
Durchschnitt 11591,21 166,25
Ausreißer über Durchschnitt Differenz
Autohaus 2017
Fluglinie 5521
Ausreißer unter Durchschnitt Differenz
Reinigungsfirma -2192
Versandhausagentur -7398
SWP-Auswertung 2007
erstellt von:
Falk Huber
S1027088