Erste Schritte Aufbau

19Beat99

Mitglied
Hallo zusammen
Mich würde wundernehmen wie ich ein Projekt am besten aufbaue. Also ich weis bereits das man dafür am Besten ein UML erstellt. Ich weis auch wie man ein UML erstellt, also wie man Klassen definiert usw. Ich weis jedoch nicht wie ich mein Javaprojekt am besten aufbaue. Also wie viele Klassen soll ich erstellen, welche klasse soll von welcher erben usw. Hat mir da jemand Tipps wie ich das am besten mache oder wo ich gute Lektüre dafür finde?
 

TM69

Bekanntes Mitglied
Hallo zusammen
  • Mich würde wundernehmen wie ich ein Projekt am besten aufbaue. Also ich weis bereits das man dafür am Besten ein UML erstellt. Ich weis auch wie man ein UML erstellt, also wie man Klassen definiert usw. Ich weis jedoch nicht wie ich mein Javaprojekt am besten aufbaue. Also wie viele Klassen soll ich erstellen, welche klasse soll von welcher erben usw. Hat mir da jemand Tipps wie ich das am besten mache oder wo ich gute Lektüre dafür finde?
Die beste, wie ich finde, Vorgehensweise ist indem du dir erstmal klar darüber wirst, was dein Projekt genau machen soll. Notiere dieses am besten in Sätzen

- Für wen (soll die Funktion sein)
- Für was (soll die Funktion dienen)
- Welchen Nutzwert hast du davon

Dieses bildet in der IT ein User Story.
Dann sortiere diese am besten in der Reihenfolge (absteigend) welches dir am schnellsten du mit (z.B. Geld) generien kannst. In der IT spricht man dieses bezüglich auch von einem Product Backlog. (http://www.produktmanager-blog.de/backlog-user-story-und-co-die-halbe-miete-fuer-agile-sprints/)
 

TM69

Bekanntes Mitglied
Nachtrag:
UML kann richtig eingesetzt dir einen Überblick verschaffen. Allerdings bedenke, dass du durch erzeugen von Dokumenten, kein z.B. Geld generierst.
Aus diesem Grund ist einer der Leitsätze in der, heutig gängigen Vorgehensweise, aus dem agilen Manifest (https://agilemanifesto.org/iso/de/manifesto.html)

Funktionierende Software ist wichtiger als umfassende Dokumentation

und wenn du, nicht disziplinierst arbeitet, verhedderst du dich ganz, ganz schnell darin, dass du mehr Arbeit ins erstellen von UML steckst, als in der Erstellung von funktionierender Software.
 

MoxxiManagarm

Top Contributor
Also wie viele Klassen soll ich erstellen, welche klasse soll von welcher erben usw.
Wenn es um die Objektorientierte Modellierung geht, dann versuch es möglichst domain-nah nachzubilden. Besonders wichtig sind dabei die Begriffe "hat ein" (Composition) und "ist ein" (Inheritence). Außerdem kannst du weitestgehend Verben in deiner Modellierung als Methoden abbilden. Dabei ist die Frage wer macht was und wen oder was benötigt er dafür.
 

TM69

Bekanntes Mitglied
Noch etwas zum Thema:
Ich weis jedoch nicht wie ich mein Javaprojekt am besten aufbaue. Also wie viele Klassen soll ich erstellen, welche klasse soll von welcher erben usw. Hat mir da jemand Tipps wie ich das am besten mache oder wo ich gute Lektüre dafür finde?
Wenn du mit UML arbeitst, denke daran, dass Klassen ein Substantiv beschreibt.
z.B.
Code:
class Auto {
    public void bremsen();
    public void anfahren();
    ....
}
Die Funktionen beschreiben hingegen Verben, die auf das Substantiv (ich nenne es mal) Verbindung stehen.
Zu den Funktionen noch ein Wort. Im Software Engineering benutzt man das, von Onkel Bob, veröffentlictte SOLID Prinzip. (https://martinfowler.com/articles/dipInTheWild.html). SOLID ("Single Responstiblity", "Open-Closed", "Liskovsche Substitution, Interface Segregation und Dependency inversion) dient der höhren Wartbarkeit, Testbarkeit und Anpassung bzgl. Hinblick auf spätere Veränderungen).
Kurz zusammengefasst:
- S = eine Funktion sollte nur eine Aufgabe erfüllen (nicht mehrere)
- O = entwickle deine Funktionen so, dass die Klasse, Methoden und Module einfach zu erweitern sind, ohne das ihr Aufgabe verändert wird
- L = eine geerbte Subklasse sollte immer die Aufgaben der Funktionen der Superklasse erfüllen
- I = lasse Interfaces nicht zu groß werden
- D = hierachie der Funktionen. D.h. Funktionen, die andere Funktionen, die wiederum andere Funktionen, .... aufrufen werden je spezifischer desto tiefer du in hinabsteigst.

So ich hoffe ich konnte dich mit dem Wissen erschlagen :D:D:D:D
 

White_Fox

Top Contributor
Ich würde noch dazu raten, sich gewisse Kniffe anzueignen.

Befasse dich mal etwas mit Entwurfsmustern, das ist sehr erhellend und macht OOP sehr viel verständlicher.
 

LimDul

Top Contributor
Ich kann meinen Vorrednern größtenteils zustimmen.

Ich halte es nicht für sinnvoll oder zielführend ein UML der Klassen als ersten Schritt zu malen. Das führt zu nichts außer so einer Tapete, die am Ende nix mehr mit dem dann umgesetzen Code zu tun hat.

Das wichtigste ist, eine klare Struktur im Programm zu haben auf allen Ebenen - dabei kann UML helfen diese Struktur zu visualisieren, aber dann bitte jeweils in einem angemessenen Detailgrad. Denn ein zu hoher Detailgrad ist keine hilfreich Visualisierung mehr sondern nur noch ein unlesbares Diagramm.

Struktur heißt z.B.
- Welche fachlichen Komponenten hat dein Programm, wie kann man die Trennen?
- Welche Ebenen gibt es im Programm (UI, Fachlogik, Schnittstellen, etc.)
- Wie hängen die alle zusammen, wer kennt wenn (Hier sollte man z.B. tunlichst zirkuläre Abhänigkeiten vermeiden)

und für da alles kann man UML zum visualisieren nutzen.

Die Klassen kommen dann als letzter Schritt am Ende relativ natürlich raus - dadurch, dass du dein Programm schon in kleine Teile zerhackt hast, weißt du was du in dem jeweiligen Teil umsetzen willst - und dann legst du entsprechend Klassen einfach an. Wenn es mal komplexere Dinge sind (kommt in der Regel auf der Ebene des Modells vor), dann kann man wieder ein UML malen wo man die Klassen abbildet - aber auch hier - im angemessenen Detailgrad.

Das Ziel sollte nicht sein, dass das UML am Ende nochmal genau deinen Code beschreibt. Sondern das UML soll so sein, dass man sich im Code hinter zurechfindet und die Konzepte, die dahinter stehen im Code, versteht.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Mein erstes eigenes Projekt - Aufbau und Strukturierung Java Basics - Anfänger-Themen 6
B fragen zu Aufbau eines UML-Klassendiagramm Java Basics - Anfänger-Themen 1
L Best Practice Code Refactoring für Methoden mit fast gleicher Aufbau Java Basics - Anfänger-Themen 6
D regex Aufbau Frage Java Basics - Anfänger-Themen 4
R Theoretischer aufbau einer Messenger App? Java Basics - Anfänger-Themen 10
U Erste Schritte Aufbau eines kleinen Matrizen-Programms(MVC; OOP) Java Basics - Anfänger-Themen 20
R Erste Schritte Grundsätzlicher Aufbau Java Basics - Anfänger-Themen 127
T Java Projekt aufbau Java Basics - Anfänger-Themen 5
D Best Practice String aufbau - Char Array oder Anhängen Java Basics - Anfänger-Themen 11
A System.out.println() - Aufbau Java Basics - Anfänger-Themen 1
T System.out.print : Frage zu Aufbau Java Basics - Anfänger-Themen 4
T Verständnisfragen zum Aufbau Java Basics - Anfänger-Themen 6
P Systematischer Aufbau einer Klasse Java Basics - Anfänger-Themen 6
M Aufbau der Klassenbibliothek und Referenzvariable Java Basics - Anfänger-Themen 5
D Klassen Aufbau Kartenspiel Java Basics - Anfänger-Themen 20
S DateiSuche - Aufbau der SuFu Java Basics - Anfänger-Themen 2
A Jtree Aufbau Java Basics - Anfänger-Themen 5
T Desktop Anwendung Aufbau Java Basics - Anfänger-Themen 5
7 Interfaces - Aufbau Java Basics - Anfänger-Themen 9
G Aufbau MVC-Pattern Java Basics - Anfänger-Themen 6
G Aufbau Paketstruktur Java Basics - Anfänger-Themen 3
J Tutorials oder Sourcen über den Aufbau kleinerer Apps Java Basics - Anfänger-Themen 2
B Klasse nach Aufbau und Struktur checken? Java Basics - Anfänger-Themen 15
B Aufbau eines Programms Java Basics - Anfänger-Themen 10
J Aufbau von Klassen und zugriff auf alle Variablen Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben