Vorteile von UML und wie modularisiere ich am besten?

Diskutiere Vorteile von UML und wie modularisiere ich am besten? im Developer Network Forum im Bereich Hardware & Software Forum; Welche Vorteile habe ich, wenn ich UML-Notationen verwende? Habe ich es richtig verstanden, kann ich mit UML-Notationen den ("Spaghetti")Code...
  • Vorteile von UML und wie modularisiere ich am besten? Beitrag #1
Prinzessin Lea

Prinzessin Lea

Bekanntes Mitglied
Dabei seit
09.01.2003
Beiträge
2.139
Reaktionspunkte
4
Ort
Eternity
Welche Vorteile habe ich, wenn ich UML-Notationen verwende?

Habe ich es richtig verstanden, kann ich mit UML-Notationen den ("Spaghetti")Code einer Software modularisieren, sprich in viele kleine Module gruppieren? Oder bilde ich mit UML "nur" den Prozess meiner Software ab?

Was brauche ich dafür? Welche Informationen? Brauche ich so etwas wie Coding Guidelines?
 
  • Vorteile von UML und wie modularisiere ich am besten? Beitrag #2
Okraml

Okraml

Bekanntes Mitglied
Dabei seit
02.11.1999
Beiträge
1.687
Reaktionspunkte
0
Ort
Ossi
Da Objektorientierte Programmierung (inkl. UML-Diagramme) eines meiner Seminarthemen ist, versuche ich mal dir zu antworten:

Welche Vorteile habe ich, wenn ich UML-Notationen verwende?
Vorteile von UML: es ist standardisiert und man kann alle Anforderungen und Abläufe der objektorientierten Software darstellen. Je nach Diagramm auch für "Programmierlaien".

Habe ich es richtig verstanden, kann ich mit UML-Notationen den ("Spaghetti")Code einer Software modularisieren, sprich in viele kleine Module gruppieren? Oder bilde ich mit UML "nur" den Prozess meiner Software ab?
Weder noch :grins:
Modularisieren daher nicht, da es Module nur in prozeduraler Programmierung gibt, aber UML für Objektorientierte Softwareentwicklung da ist. Du kannst aber etwas ähnliches der OOP abbilden und strukturieren: Packete (Package diagramm).
Nur den Prozess einer Software bildet man auch nicht ab, da es z.B. auch Package diagramme (für Packages), Klassendiagramme etc. gibt.

Was brauche ich dafür? Welche Informationen? Brauche ich so etwas wie Coding Guidelines?
Als erstes solltest du das Prinzip der OOP incl. objektorientierte Analyse und objektorientiertes Design (dies erfolgt dann in der Regel in UML) verinnerlichen. Dann solltest du natürlich die Diagramme kennen, die du verwenden willst und gut ist auch immer noch eine UML-Software, mit der du die Diagramme erstellen kannst (ich verwende im Seminar "Violet", da es Open Source ist).

Ich hoffe, dass ich dir damit helfen konnte.

:) Okraml
 
  • Vorteile von UML und wie modularisiere ich am besten? Beitrag #3
Prinzessin Lea

Prinzessin Lea

Bekanntes Mitglied
Dabei seit
09.01.2003
Beiträge
2.139
Reaktionspunkte
4
Ort
Eternity
Vielen herzlichen Dank, dass Du Dir die Zeit nimmst einen DAU wie mir, die Grundlagen von UML zu erklären!!! :grins:

Als erstes solltest du das Prinzip der OOP incl. objektorientierte Analyse und objektorientiertes Design (dies erfolgt dann in der Regel in UML) verinnerlichen.

ok, dann fangen wir mal an....:grins:

Welche wesentlichen Informationen brauche ich, um das Prinzip der OOP incl. objektorientierte Analyse und des objektorientierten Designs zu verinnerlichen?

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?

Dann solltest du natürlich die Diagramme kennen, die du verwenden willst

D.h. ich muss wissen, welche der folgenden Diagramme ich benutze...

  • Class diagrams
  • Sequence diagrams
  • State diagrams
  • Object diagrams
  • Use case diagrams



und gut ist auch immer noch eine UML-Software, mit der du die Diagramme erstellen kannst (ich verwende im Seminar "Violet", da es Open Source ist).

Theoretisch könnte ich aber auch Viso oder PowerPoint verwenden, oder?

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?

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?





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:
 
  • Vorteile von UML und wie modularisiere ich am besten? Beitrag #4
Prinzessin Lea

Prinzessin Lea

Bekanntes Mitglied
Dabei seit
09.01.2003
Beiträge
2.139
Reaktionspunkte
4
Ort
Eternity
Weder noch :grins:
Modularisieren daher nicht, da es Module nur in prozeduraler Programmierung gibt, aber UML für Objektorientierte Softwareentwicklung da ist. Du kannst aber etwas ähnliches der OOP abbilden und strukturieren: Packete (Package diagramm).
Nur den Prozess einer Software bildet man auch nicht ab, da es z.B. auch Package diagramme (für Packages), Klassendiagramme etc. gibt.

Ich hatte in einem Paper direkt im ersten Abschnitt folgendes gelesen
"In recent years, UML has become a standard language for modeling software requirements and design." Quelle
Daher dachte ich, dass man mit UML den Software Code modularisiert! *tztztz*
hmmm, was ist der Unterschied zwischen "modeling software requirements and design" und "code modularization"? :hmmm:
 
  • Vorteile von UML und wie modularisiere ich am besten? Beitrag #5
Okraml

Okraml

Bekanntes Mitglied
Dabei seit
02.11.1999
Beiträge
1.687
Reaktionspunkte
0
Ort
Ossi
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
 
  • Vorteile von UML und wie modularisiere ich am besten? Beitrag #6
Okraml

Okraml

Bekanntes Mitglied
Dabei seit
02.11.1999
Beiträge
1.687
Reaktionspunkte
0
Ort
Ossi
hmmm, was ist der Unterschied zwischen "modeling software requirements and design" und "code modularization"? :hmmm:

Also so spontan würde ich sagen, dass die Modellierung von Software Anforderungen OOA bedeutet und das Design dann logischerweise OOD. Code Modularisierung ist die Unterteilung von Code in Module bzw. in wiederverwendbare Abschnitte, also z.B. aus einer riesigen Funktion Unterfunktionen auslagern.
 
  • Vorteile von UML und wie modularisiere ich am besten? Beitrag #7
T

TrµMAn

Bekanntes Mitglied
Dabei seit
23.10.2006
Beiträge
4.882
Reaktionspunkte
2
Ort
Wuppertal
Modularisieren daher nicht, da es Module nur in prozeduraler Programmierung gibt

also z.B. aus einer riesigen Funktion Unterfunktionen auslagern.

Warum sollte soetwas nicht in der OOP funktionieren? Ich würde vielleicht statt einfachen Funktionen ganze Teile der Klasse auslagern. Und bezeichnet man das unterteilen eines Softwareprojektes in einzelne, von einander unabhängig einsetzbaren "Modulen" nicht auch als Modularisierung?

Sry, dass ich hier so zwischen quatsche, aber du wirfst grad all das übern Haufen, was unser Programmier-Lehrer uns beibringt :gähnen:
 
  • Vorteile von UML und wie modularisiere ich am besten? Beitrag #8
Okraml

Okraml

Bekanntes Mitglied
Dabei seit
02.11.1999
Beiträge
1.687
Reaktionspunkte
0
Ort
Ossi
Warum sollte soetwas nicht in der OOP funktionieren? Ich würde vielleicht statt einfachen Funktionen ganze Teile der Klasse auslagern. Und bezeichnet man das unterteilen eines Softwareprojektes in einzelne, von einander unabhängig einsetzbaren "Modulen" nicht auch als Modularisierung?
Du hast Recht. Ich wollte vor allem auf den Unterschied von OOP zur prozeduralen Programmierung hinaus, aber die Methoden in der OOP sollten natürlich auch unterteilt werden, wenn dies Möglich ist. Und die Unterteilung in Verschiedene Klassen wie eine Art Baukastensystem könnte man auch als Modularisierung bezeichnen.
Ich habe halt die Nomenklatur in der OOP mit Klassen und ihren Methoden, welche in Packete zusammengepackt werden und in der prozeduralen Programmierung die Funktionen, welche in Modulen zusammengefasst werden, genutzt.

Sry, dass ich hier so zwischen quatsche ...
Wieso? Ist doch keine private Unterhaltung, sondern eine öffentliche Diskussion.

...aber du wirfst grad all das übern Haufen, was unser Programmier-Lehrer uns beibringt :gähnen:
Mache ich doch gerne :grins:

:) Okraml
 
Thema:

Vorteile von UML und wie modularisiere ich am besten?

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.179
Beiträge
1.579.171
Mitglieder
55.876
Neuestes Mitglied
RamiroGarn
Oben