# Wie funktioniert Projektplanung?



## CheckervomNecka (13. Okt 2012)

Hallo liebe Java-Gemeinde

Ich stelle bei mir in letzter Zeit immer wieder das Problem fest, dass ich mir viel zu wenig Gednaken über ein Projekt mache, weil mir dann während der Entwicklung wieder wieter Möglichkeiten einer Implementierung einfallen, die ich zuvor vergessen habe, z.B. Welches Objekt besitz die Referenzen auf jenes, welcher is der Wertebereich bei bestimmten situationen, wie soll die Gui aussehen, wo sollen die Komponenten hin, wer ist der Listener, und wieviele brauche ich, reicht einer?Was können für berechnungsfehler aufstreten(Exceptions, sinnfreie Ergebnisse etc.) Wie beeinflussen sich die Komponenten gegenseitig, dann gibts häufig noch viele Flüchtigkeitsfehler, soll das Menu, die liste, die Table eine eigene Klasse sein oder brauche ich das nicht, wie werden sie dme Frame hinzugefügt, wenn ich von einem Model erbe und kein Interface beuntze(MEhrfachvererbung geht ja nicht) usw., ich denke sowas kennt fast jeder hier. Wie geht man am besten an so was ran? Die Planung ist anscheinend mehr als nur die halbe Miete wenn etwas erfolgreich werden soll. Hat da jemand Tips für mich, gibt es evtl. schon Konzepte, sowas wie Entwurfsmuster nur halt neben dem Computer in der Planung.

Vielen Dank schonmal.


----------



## MrClave (13. Okt 2012)

UML ist hier das Stichwort. (Unified Modelling Language)
Damit kannst diverse Diagramme erstellen, bei denen du im Vorfeld alles festlegen und überschauen kannst.

Braucht man für Datenbanken und Programme als solches.
Wie genau diese funktionieren, kannst auf YouTube, Google, etc. suchen


----------



## CheckervomNecka (13. Okt 2012)

Danke 
nach genau sowas hab  ich gesucht.


----------



## Fab1 (13. Okt 2012)

Es gibt für eclipse ein Plugin, mit welchem du UML Diagramme direkt in eclipse erstellen kannst. Daraus kann man dann auch den Quellcode erzeugen lassen. Weiß den Namen leider gerade nicht, aber kannst dich ja einfach mal im Marketplace umsehen.


----------



## Campl3r (14. Okt 2012)

UML ist nicht nur das einzigste, je nach Projekt solltest du dir auch umfassendere Gedanken zum Projekt machen, die vor UML eingreifen.


----------



## MrClave (14. Okt 2012)

Campl3r hat gesagt.:


> UML ist nicht nur das einzigste, je nach Projekt solltest du dir auch umfassendere Gedanken zum Projekt machen, die vor UML eingreifen.



Für gewöhnlich fängt man kein Projekt an, ohne zu wissen, worum das Projekt handeln sollte.
Während der erstellen der Diagramme, fallen einem sowieso die meisten Dinge ein.
Aber hast natürlich recht. Man sollte z.B. vorher am besten Brainstorming machen, damit man die Dinge schon mal grob im Kopf hat.

Und man macht nicht nur ein Diagramm, sondern Version 1, dann Version 2, Version 3 usw., bis man dann zufrieden ist.
Und wenn das Projekt für eine Firma gemacht wird, schauen sowieso noch mal andere Leute drauf, denen dann auch wieder was einfällt.

Für ein einfaches Eigenprojekt, benötigt man meist nicht so streng strukturierte Vorbereitungen. 


Eine wichtige Sache könnte ich noch hinzufügen.
Denk' dir immer, dass Endnutzer dumm ist. D.h., dass er viele klare Infos benötigt.
Aber dies ist nur bei Gewerblichen Projekten von Nöten.


----------



## sturzpilot (15. Okt 2012)

Hallo,

es gibt unheimlich viele Bücher zum Thema Planung von Softwareprojekten. Gerade in den letzten Jahren haben sich viele neue Entwicklungsansätze ergeben (Agile Development, Scrum, Extreme Programming, um nur mal einige Stichworte zu nennen).

Wichtig ist vor allem zunächst zu wissen, wieviele Projektbeteiligte es gibt und ob diese alle am gleichen Ort sitzen. Davon abhängig plant man den Einsatz der geeigneten Softwaretools zur Umsetzung des Vorhabens.

Selbst bei einem ganz kleinen Projekt würde ich mindestens drei Phasen vorsehen und mit folgenden Werkzeugen dabei arbeiten:
- Welche Anforderungen habe ich? -> z.B. Excel-Liste
- Umsetzung / Implementation -> UML, IDE-Umgebung - und ganz wichtig: Versionsverwaltung!
- Testen 
    -> Defect Management System / Bugtracker zum Sammeln der Probleme
    -> Automatisches Testen: xUnit-Tests, Automatisierung
Je nach Ansatz kann man diese Phasen dann in kleine oder große Einheiten unterteilen und iterieren, bzw. miteinander vermischen usw.

In Großprojekten werden Projekte natürlich noch viel aufwendiger geplant.

Gruß,

  Stefan


----------



## Aiwendil (16. Okt 2012)

Das Thema Projektplanung ist ein gigantisches Thema zu dem auch extrem viel geforscht wird. Daher würd ich mich mal bei einer Uni umschaun, und die entsprechenden Vorlesungsfolien lesen. Fächer wie Software Engineering oder Softwaretechnik sind in aktuellen Informatik/Informationswirtschaft/etc im Grundstudium angesiedelt, daher sollte das auch ohne weiteren Uni-Hintergrund verständlich sein (sofern die Folien halbwegs tauglich sind). Per Websuche nach Schlagwörtern wie "Software technik uni folien" sollte sich da etwas finden lassen, gibt mittlerweile genug Unis die ihr Vorlesungsmaterial online auch für die Allgemeinheit bereitstellen.


----------



## CheckervomNecka (17. Okt 2012)

Wie kommt man denn an solche Folien? Kann man als nicht-Student eigentlich an Vorlesungen teilnehmen,wenn der Saal nicht voll ist? Schließlich fanegn ja jetzt die neuen Erstsemester an  und können wohl genauso viel/wenig wie ich und eine Abneigung gegen ein Informatikstudium habe ich (im Moment?) auch nicht.


----------



## HimBromBeere (17. Okt 2012)

Komt ein wenig auf die UNI an, aber gerade bei Erstsemestlern dürfte es wohl kaum auffallen, wenn da ein Nicht-Student drin sitzt (hab ich früher sehr oft gemacht, mittlerweile brauch ich mich nicht mehr als Nicht-Student fühlen ). Wenn die Vorlesung nicht gerade aus nur 15 Leuten besteht, sollte es problemlos machbar sein...
An Vorlesungsunterlagen heranzukommen kann dagegen ein wenig schwieriger werden, weil du dafür häufig den Zugriff auf die Ressourcen benötigst (v.a. wenn es zur Vorlesung dann auch nich Tutorien o.ä. gibt, bei denen man sich anmelden muss). Am besten du lachst dir innerhalb der Vorlesung einfach einen Freund an, der die das Zeuch das weiterleitet  hat bei mir jedenfalls immer funktioniert


----------



## Firephoenix (17. Okt 2012)

Ein paar Unis bieten ihr Material auch offen an, ansonsten kannst du dich auch registrieren und hier im Forum mal nachfragen ob jemand brauchbares Material hat, im Forum sind auch einige Studenten unterwegs :meld:

Weiterhin schadet ein Blick hier sicherlich auch nicht: Bücher, Tutorials und Links - java-forum.org

Gruß


----------



## KuhTee (18. Okt 2012)

MrClave hat gesagt.:


> Und man macht nicht nur ein Diagramm, sondern Version 1, dann Version 2, Version 3 usw., bis man dann zufrieden ist.


Ja, so sieht das in der Theorie an der Uni aus. In der Praxis merken die meisten dann, dass es so nicht funktioniert. UML kann ein helfendes Werkzeug sein, aber man "macht" sicher keine Projektplanung und Softwaredesign nur in UML (Projektplanung sowieso nicht). Am Ende machen UML Diagramme auch nur einen recht geringen Teil der Projektplanung und Konzept aus.

Der größte Denkfehler bei so einer Herangehensweise ist der, dass man meint, man könnte ein >100k LoC Programm vorneweg per UML fertig durchdesignen. Leider sagt einem an der Uni keiner, dass das nicht geht. Wahrscheinlich, weil den Tutoren da einfach die Praxiserfahrung fehlt.


----------



## schalentier (18. Okt 2012)

UML ist doch in erster Linie ein Mittel zur Kommunikation. Wenn ich mal eben nem Kollegen erklaeren will, was ich grad mache, geht das super mit nem Stift und Zettel. Da mal ich dann die beteiligten Klassen oder Zustaende oder whatever auf. Und damit man nicht jedesmal erklaeren muss, wie man nun eine Klasse genau zeichnet, gibts UML als Standard.

Die ganzen Punkte die der TO aufgezaehlt hat, sind Fragen die tagtaeglich auftauchen. Am besten is da, den Kollegen zu fragen, ihm das Problem zu erklaeren (oftmals liegt dann die Antwort schon in der Luft) oder eben gemeinsam eine Loesung suchen.

Das geht natuerlich nicht immer, deswegen hab ich mir angewoehnt in solchen Faellen ein 

```
// TODO das folgende sollte man mal diskutieren ;-)
```
zu schreiben. 

Die TODOs sieht man in einer vernuenftigen IDE in einer Liste zum durchklicken. Man sollte sie trotzdem zeitnah abarbeiten ;-)


----------



## Warrior7777 (19. Okt 2012)

Bin grad beim Erstellen eines Webprojektes in PHP mit MySQL, nichts Grosses, nur ein kleines Reservierungssystem für meinen Sportclub. Da habe ich mal angefangen und jetzt merk ich, dass von der Struktur her noch Vieles zu verbessern ist, v. A. weil das mein erstes Php/dB Projekt ist (und php ist halt nicht so schön strukturiert und geordnet wie Java ). Nun bin ich auf dieses Tutorial gestossen, das mir, der Programmieren nur aus Büchern ohne Kurse lernt, sehr hilft und eine geordnete Vorgehensweise zeigt: Highscore - Der moderne Softwareentwicklungsprozess mit UML
Für professionelle Programmierer ist das natürlich viel zu wenig, aber als Einstieg m. E. sehr gut. 

Nun ja, das Thema Softwaredesign kann man ja sogar studieren... (glaub ich zumindest)


----------



## maki (19. Okt 2012)

KuhTee hat gesagt.:


> Ja, so sieht das in der Theorie an der Uni aus. In der Praxis merken die meisten dann, dass es so nicht funktioniert. UML kann ein helfendes Werkzeug sein, aber man "macht" sicher keine Projektplanung und Softwaredesign nur in UML (Projektplanung sowieso nicht). Am Ende machen UML Diagramme auch nur einen recht geringen Teil der Projektplanung und Konzept aus.
> 
> Der größte Denkfehler bei so einer Herangehensweise ist der, dass man meint, man könnte ein >100k LoC Programm vorneweg per UML fertig durchdesignen. Leider sagt einem an der Uni keiner, dass das nicht geht. Wahrscheinlich, weil den Tutoren da einfach die Praxiserfahrung fehlt.


Sehe ich genauso, verstehe nicht wie man UML empfehlen kann wenn es um Projektplanung geht.

Dass man mit UML/sonstwas alles Designen kann bevor man codet ist auch so ein ein Gerücht, genauso wie dass der Kunde wirklich weiss was er will... letzteres ist etwas, dass man durch dikutieren und fragen festlegt.


----------



## MrClave (20. Okt 2012)

KuhTee hat gesagt.:


> Ja, so sieht das in der Theorie an der Uni aus. In der Praxis merken die meisten dann, dass es so nicht funktioniert. UML kann ein helfendes Werkzeug sein, aber man "macht" sicher keine Projektplanung und Softwaredesign nur in UML (Projektplanung sowieso nicht). Am Ende machen UML Diagramme auch nur einen recht geringen Teil der Projektplanung und Konzept aus.
> 
> Der größte Denkfehler bei so einer Herangehensweise ist der, dass man meint, man könnte ein >100k LoC Programm vorneweg per UML fertig durchdesignen. Leider sagt einem an der Uni keiner, dass das nicht geht. Wahrscheinlich, weil den Tutoren da einfach die Praxiserfahrung fehlt.



Da hast du wohl recht. 
Eigentlich meinte ich auch das Software designen, aber ist ja auch Wurst.
Hab' das Wort "Projektplanung" nicht gut genug betrachtet und nachgedacht :bahnhof:

Naja, hab' ja gerade erst mit dem Studium angefangen, und letzt Endlich wird man sowas wohl eh erst beim richtigen Arbeiten lernen.


----------



## ssoul26 (22. Okt 2012)

Mich wundert es, wieso nicht Stichwörter wie "Wasserfallmodell" oder "V-Modell" gefallen sind. In den meisten Uniskripten zu Projektplanung, wird nie exzessiv auf UML eingegangen.


----------



## maki (22. Okt 2012)

Bei Vorgehensmodellen gibt es ja 2 Schulen, die Phasenmodelle (Wasserfall-, V-Modell) und die Agilen (Scrum, etc. pp.).

Projektplanung selber ist zumindest theoretisch recht trivial: Anforderungen analysieren, Aufwände schätzen, Ressourcen einplanen, Termine/Meilensteine festlegen, etc. pp.

Je nach Vorgehensmodell heisst das entweder man muss das für alles (!!!) planen (Phasenmodelle), oder eben die nächste Iteration planen (agile modelle).
Was da einfacher & genauer zu schätzen ist sollte jedem einleuchten.


----------



## TryToHelp (22. Okt 2012)

Ich würde sagen eine klassische Variante ist noch das Spiralmodell, bzw die Itterative Entwicklung. Das wird heufig verwendet und ist eher eine zwischenform von Wasserfall zu Agil.
Dann ist Prototyping noch ein Wichtiger Punkt ;-)


----------

