Laden...

Darstellung eines kompletten Softwareprojekts in UML

Erstellt von genuin vor 7 Jahren Letzter Beitrag vor 7 Jahren 2.288 Views
G
genuin Themenstarter:in
41 Beiträge seit 2014
vor 7 Jahren
Darstellung eines kompletten Softwareprojekts in UML

Hi!

Ich möchte das Softwaredesign eines Projekts von mir in UML vorstellen (inklusive SQL-Design, etwas über 4000 Zeilen, also entsprechend etwas mehr Inhalt an Klassen, Funktionen und Variablen). Das Projekt habe ich in C# geschrieben, inkludiert eine GUI und ist verzahnt mit MS SQL (Datenbank, Programmability, Functions).

Die Darstellung soll nicht detailliert und ausführlich sein, sondern soll einen guten Überblick verschaffen und nicht ewig dauern. Möchte es aber dennoch professionell darstellen. Einzelne Klassen, Interfaces etc. sind ja kein Problem, aber das ganze Projekt?

Meine Idee wäre jetzt gewesen, sich über die "Class Diagramm" in Visual Studio das Projekt anzeigen zu lassen und sich dabei auf das Zusammenspiel der Klassen und die Idee dahinter zu beschränken. Dabei würde ich natürlich einige Inhalte der Klassen weglassen. Würde dies aber dennoch einer professionelle Darstellung in UML genügen? Bin mir da nicht ganz sicher.

Hat jemand vielleicht einen Denkanstoß für mich, wie ich hier am besten ansetzen könnte?

Überleg ich mir noch

16.835 Beiträge seit 2008
vor 7 Jahren

In der Visual Studio 2015 Enterpriseversion kann man sich die Architekturdiagramme erstellen lassen.
Die Flughöhe ist eigentlich bei größeren Projekten gängig. Vermutlich meinst Du das.

Ob das genügt kommt ja auf die genaue Anforderung und den Einsatzzweck an.
Meine Erfahrung: je agiler das Vorgehen, desto weniger UML ist im Einsatz.

Solche Diagramme sind spätestens nach einem Tag wieder veraltet.

G
genuin Themenstarter:in
41 Beiträge seit 2014
vor 7 Jahren

Die Flughöhe ist eigentlich bei größeren Projekten gängig. Vermutlich meinst Du das.

Du meinst, dass je größer das Projekt, desto wenig detaillierter das UML Diagramm?

Überleg ich mir noch

16.835 Beiträge seit 2008
vor 7 Jahren

Ich zweifle UML Diagramme in diesem Maßstab im Generellen an.
Wer soll das dauerhaft überblicken und aktuell halten?

Riecht danach, dass ihr einen riesigen Monolithen habt.
Das Gegenteil also, was man in einer modernen, modularen Umgebung haben möchte 😉

3.003 Beiträge seit 2006
vor 7 Jahren

Ob du mit dem Klassendiagramm gut fährst, hängt davon ab, was du, und wem du es preäsentieren möchtest. Für eine Präsentation der Gesamtarchitektur wäre zB Informationsfluss gut geeignet - abhängig vom Publikum kann man die beteiligten Klassenstrukturen detaillierter oder weniger detailliert abbilden. Wenn es mehr darum geht, das Verhalten der Software darzustellen (anstatt die technischen Komponenten zu beschreiben, die in der Architektur vorkommen), bietet UML auch dafür die entsprechenden Sprachelemente.

Hier eine allgemeingültige Aussage zu treffen, ist schwer. Bei 4k loc würde ich jetzt auch nicht von einem übermäßig komplexen Koloss ausgehen - der Klassendesigner kann da durchaus helfen, erst einmal ein Grundmodell zu erstellen, mit dem man dann weiter arbeiten kann.

Im Gegensatz zu Abt halte ich UML für mächtig genug, auch verteilte, große Systeme darzustellen (und das auch aktuell zu halten). Eine vollständige Bibliothek von modellierten Anwendungsfällen zB kann die Entwicklung wahnsinnig erleichtern. Du solltest dich aber noch einmal ausgiebig damit beschäftigen - UML ist eine eigene Welt, in der sehr, sehr viel geht. So, wie ich das aus deinem Ursprungsposting entnehme, bist du, wie gesagt, mit dem Klassendesigner vorerst gut bedient. Solang du nicht einfach alle Klassen reinziehst, ein paar Pfeile reinbastelst und glaubst, dass du fertig bist 😉.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

G
genuin Themenstarter:in
41 Beiträge seit 2014
vor 7 Jahren

Vielen Dank für Eure Antworten! Die Präsentation soll das Projekt nur kurz zusammenfassen und 5 Minuten dauern. Das Softwaredesign soll ich in dieser Zeit an einer Tafel skizzieren. Dann schau ich mal, was ich in dieser Zeit daraus machen kann und berichte Euch anschließend hier

Überleg ich mir noch

2.298 Beiträge seit 2010
vor 7 Jahren

Moment, du sollst Komplexe Software in 5 Minuten vorstellen und das Design an der tafel skizzieren? Gewagte Aufgabe für einen 5 Minuten-Zeitraum.

Für das beschriebene würde ich nur die Teilkomponenten beschreiben. Also eine Grafik an die Tafel mit den einzelnen Komponenten und wie die zusammen spielen. - Dazu erzählen welche Aufgaben durch welche Komponenten erfüllt werden.

  • Damit wirst du zwar schon 5 Minuten sprengen. - Aber detaillierter geht in 5 Minuten garnicht. -

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

3.003 Beiträge seit 2006
vor 7 Jahren

Klingt eher nach erdnaher Umlaufbahn als "Flughöhe" 😉.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

F
10.010 Beiträge seit 2004
vor 7 Jahren

Naja, bei etwas über 4000 Zeilen ( incl SQL ) würde ich noch nicht so wirklich von komplexer SW reden, insofern kann man da auch noch von Flughöhe reden und das in 5 Minuten erklären.

Mein aktuelles Projekt ist bei 700.000 Zeilen, da wird das mit den 5 Minuten eng.

2.298 Beiträge seit 2010
vor 7 Jahren

Selbst bei 4000 Zeilen würde es mehr als 5 Minuten in Anspruch nehmen. - Bei 4000 Zeilen reden wir ja schon von mehreren Klassen mit einigen Methoden.

Gibt auch Ausnahmen wo eine Methode so viele Zeilen hat, aber darauf gehen wir hier besser nicht ein, weils ein Graus ist

An meiner Aussage die einzelnen Komponenten für die Vorstellung zu nutzen ändert sich allerdings aus meiner Sicht nichts. Meinetwegen halt runter geprügelt auf Klassenebene. - Ich nehme bei 4K LoC einfach mal an wir reden hier von etwa 10 Klassen? - Je nach Umfang auch mehr.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

G
genuin Themenstarter:in
41 Beiträge seit 2014
vor 7 Jahren

Richtig, 12 Klassen sind es insgesamt. Keine Methode geht über eine Bildschirmseite. SQL beansprucht eine Klasse mit knapp 200 Zeilen. Innerhalb des SQL-Servers sind es durch TableValuedFunctions, ScalarValuedFunctions, Programmability und Trigger noch einiges an mehr Zeilen, die zähle ich aber jetzt nicht.

Es geht ja im Endeffekt darum, das Projekt ein paar Leuten vorzustellen, die nicht wissen, worum es bei dem Projekt geht. Darum tendiere ich momentan stark zu folgendem:
Anstatt eine Übersicht, auch wenn es in Flughöhe ist, über die wichtigsten Klassen mit Methoden darzustellen, erkläre ich in UML, was das Programm macht. Also WOFÜR das Programm gedacht ist, anstatt eine pure Darstellung und Zusammenhang von Klassen.
Dies kann man übersichtlicher in UML darstellen und erklärt das Projekt in diesen fünf Minuten wesentlich besser meines Erachtens nach. Was denkt Ihr?

So etwa nach folgendem Beispiel (mir fällt grad nichts besseres ein): Man kann einerseits die Elektronik und Funktionsweise einer Herdplatte beschreiben, oder einfach wie man sie ein und ausschaltet und was dann passiert (sie wird heiß).

Überleg ich mir noch

3.003 Beiträge seit 2006
vor 7 Jahren

Mach das. Und gib die Klassenstruktur als Handout raus (falls das Publikum damit was anfangen kann 😉 )

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

W
955 Beiträge seit 2010
vor 7 Jahren

Also ich würde dann die Prozesse die die Software abarbeitet darstellen und als Modelliersprache würde ich BPMN verwenden das kapiert eigentlich jeder.