Welche wesentlichen Informationen brauche ich, um das Prinzip der OOP incl. objektorientierte Analyse und des objektorientierten Designs zu verinnerlichen?
Grundsätzlicher Unterschied zwischen prozeduraler Programmierung und objektorientierter Programmierung ist, dass bei der prozeduralen der Ablauf des Programmes im Vordergrund steht und in der OOP die Daten und wie diese miteinander interagieren. (Kurzzusammenfassung)
Am Besten du fängst mit den Begriffen an wie:
- Vererbung
- Objekt
- Klasse
- Attribut
- Methode
- Package
- Polymorphie
- Interface
- abstrakte Klasse/Methode
- überladen von Methoden
- Konstruktor/Destruktor
- ...
Die Begriffe (und vor allem was dahinter steckt) braucht man vor allem im Klassendiagramm.
Zwischen OOA und OOD ist fast ein fließender Übergang, da es sich z.B. beim Klassendiagramm nur dadurch unterscheidet, dass bei der Analyse im Klassendiagramm nur die direkt erkennbaren Attribute und Methoden eingetragen werden und beim Design dann noch Dinge wie Multiplizitäten, Abhängigkeiten, Vererbung ... im Diagramm hinzugefügt werden.
Von der Reihenfolge der Diagramme beim Planen neuer Software fängt man normalerweise mit dem Use Case Diagram an, um alle Anwendungsfälle zu erfassen, die von der Software abgedeckt werden. Dann würde man teilweise die Anwendungsfälle mit Use Case Schablonen etwas detailierter beschreiben und dann wenn benötigt (weil der Ablauf komplexer ist und Verzweigungen enthält) noch mit einem Activity Diagram den Ablauf innerhalb des Anwendungsfalls darstellen.
Dann würden Klassendiagramm und evtl. Packetdiagramm folgen und bei Bedarf (z.B. komplexeres Zusammenspiel von verschiedenen Klassen) Sequenzdiagramme. Zustanddiagramme benötigt man eher selten.
Muss ich in diesem Zusammenhang auch die Notationen definieren, sprich Rahmenbedingen festlegen. Festsetzen wann ich ein Rechteck, Kreis etc. pp verwende? Gibt es da auch Standards?
Die Notation ist in der UML für die einzelnen Diagramme festgelegt (aktuelle Version 2.3 glaub ich). Daher brauchst du nix festlegen.
Woher weiß ich eigentlich, dass jemand eine "object-oriented" software entwickelt hat? In dem ich weiß, mit welcher Sprache die Software programmiert wurde?
Ist R und WinBUGS objektorientiert?
Am fertig compilierten Programm kann man das nicht erkennen. Auch nicht an der Programmiersprache, da man auch mit einer objektorientieren Programmiersprache (wie z.B. Java) prozedural programmieren kann. Im Quelltext könnte man es evtl. sehen, wenn alles nur aus Klassen mit Attributen und Methoden besteht und es nur eine kleine Startroutine gibt.
R und WinBUGS kenne ich nicht.
D.h. ich muss wissen, welche der folgenden Diagramme ich benutze...
- Class diagrams
- Sequence diagrams
- State diagrams
- Object diagrams
- Use case diagrams
Siehe oben. Jedes der Diagramme ist für einen anderen Zweck und einige der UML-Diagramme verwendet man öfter, andere fast nie (je nachdem, wofür die Software sein soll und was man mit dem Diagramm darstellen kann).
Theoretisch könnte ich aber auch Viso oder PowerPoint verwenden, oder?
Theoretisch ja. Wenn Viso auch direkt UML-Diagramme unterstützt und direkt die Symbole zur Verfügung stehen, sollte es auch gut gehen. Bei Professionellerer Software (z.B. Innovator nutzen wir @Work) kann man vom UML-Klassendiagramm sich direkt Java-Quelltext erzeugen lassen.
Wie setze ich die ganzen Requirements, die ich in Textform habe am besten in Diagramme um? Wie fange ich an und woher weiß ich welches Diagramm am besten passt?
Siehe oben, ich hoffe das Beantwortet schon die meisten Fragen. Im normalfall musst du entscheiden, ob es dir etwas bringt ein bestimmtes Diagramm zu verwenden. Dazu musst du wissen, was du damit darstellen kannst und dann entscheiden je nach Software.
Kann ich Dein Seminar auch belegen? :grins:
Wann ist das? Ich müsste mich dann aber online einwählen, denn ich wohne jetzt in der Schweiz. :zwinker:
Wenn du dich bei uns als Fachinformatiker-Azubine bewirbst, könnte das klappen :grins:
Dann würdest du von mir auch noch die Seminare Programmiergrundlagen, Java Grundlagen, Java Aufbau und Dynamische Webseiten bekommen.
Okraml