MB: UML Darstelllung im nicht OOP Code

Moin Zusammen,

Ich würde gerne wissen, wie man nicht OOP basierenden Code in einem OOP Framework im UML Klassendiagramm darstellt

vlg MB

  1. Hallo MB,

    Ich würde gerne wissen, wie man nicht OOP basierenden Code in einem OOP Framework im UML Klassendiagramm darstellt

    In einem Klassendiagramm wird überhaupt kein Code dargestellt.

    Bis demnächst
    Matthias

    --
    Rosen sind rot.
    1. Hallo Matthiass,

      ich drück mich anders aus mit einem Beispie. Der Code ist selbst erklärend mit paar Metasyntaktischen Variablen. Ich möchte das Konzeptionelle Problem verdeutlichen:

      somecode.php

      include 'bar.class.php';
      if( $foo ) {
        $bar = new Bar( $foo );
      }
      

      bar.class.php

      class Bar {
        private $foo;
        public funktion __construct( $foo = null );
          $this->foo = $foo;
        }
        public getFoo() {
          return $foo;
        }
      }
      

      Dieser Code ist ein paradebeispiel für mein Problem. Der Code von Bar Class lässt sich ganz einfach in einem UML CD ausdrücken. Aber wie soll ich somecode.php ohne eine Klasse in diesem CD darstellen 😕? Verstehst du mich jetzt besser?

      vlg MB

      1. Tach!

        Der Code von Bar Class lässt sich ganz einfach in einem UML CD ausdrücken. Aber wie soll ich somecode.php ohne eine Klasse in diesem CD darstellen 😕?

        Warum willst du etwas mit einem Klassendiagram darstellen, das keine Klasse ist? UML bietet auch noch andere Diagramme an, auch welche, die einen Ablauf darstellen können.

        dedlfix.

        1. Hi dedlfix,

          Der Code von Bar Class lässt sich ganz einfach in einem UML CD ausdrücken. Aber wie soll ich somecode.php ohne eine Klasse in diesem CD darstellen 😕?

          Warum willst du etwas mit einem Klassendiagram darstellen, das keine Klasse ist?

          nur ein kleiner Teil des Frameworks welches sich nicht klassenspezifisch beschrieben lässt z.B. der Aufruf einer Klasse.

          UML bietet auch noch andere Diagramme an, auch welche, die einen Ablauf darstellen können.

          Ich weis. 15 verschiedene Diagramme ink. CD. steht alles in meinem Büchlein.

          vlg MB

          1. Tach!

            Warum willst du etwas mit einem Klassendiagram darstellen, das keine Klasse ist?

            nur ein kleiner Teil des Frameworks welches sich nicht klassenspezifisch beschrieben lässt z.B. der Aufruf einer Klasse.

            Ein Klassendiagramm beschreibt die Mitglieder von Klassen und die Beziehungen untereinander. Das ist ein statisches Konstrukt, einsortiert in UML unter Strukturdiagramme. Ich sehe keinen Sinn darin, ein Klassendiagramm für etwas zu verwenden, das nicht diese statische Beziehungen beschreiben soll.

            UML bietet auch noch andere Diagramme an, auch welche, die einen Ablauf darstellen können.

            Ich weis. 15 verschiedene Diagramme ink. CD. steht alles in meinem Büchlein.

            Ja, und wo ist jetzt das Problem, ein passendes UML-Verhaltensdiagramm zu verwenden? Zumindest sehe ich in somecode.php einen Ablauf. Oder was daran möchtest du dokumentieren?

            dedlfix.

            1. Also: Wenn ich ein PHP Framework habe, das ausschließlich nur aus PHP Klassen besteht, es aber nur eine PHP Datei gibt ohne Klassenbezug, würde es kaum Sinn machen, das UML CD nicht zuverwenden.

              Mein Plan ist, ein CD zu verwenden, welches unter Ausschluss aller nicht Klassen auskommt. Jedoch ist der nicht klassenbasierende Code ncht enthalten, welcher wichtig für das Framework ist. Deswegen meine Frage. Verstehtst du meinen Gedankengang?

              vlg MB

              1. Tach!

                Also: Wenn ich ein PHP Framework habe, das ausschließlich nur aus PHP Klassen besteht, es aber nur eine PHP Datei gibt ohne Klassenbezug, würde es kaum Sinn machen, das UML CD nicht zuverwenden.

                Kommt auf die Zielstellung an. Ein Klassendiagramm zur Darstellung der Klassen, deren Mitglieder und den Beziehungen zwischen den Klassen ist nur ein Aspekt, den man mit UML dokumentieren kann. Prozesse und Abläufe sind ein ebenso wichtiger Teil für das Verständnis.

                Mein Plan ist, ein CD zu verwenden, welches unter Ausschluss aller nicht Klassen auskommt. Jedoch ist der nicht klassenbasierende Code ncht enthalten, welcher wichtig für das Framework ist. Deswegen meine Frage. Verstehtst du meinen Gedankengang?

                Nein, ich verstehe nicht, warum du dich auf Klassendiagramme festlegen willst. Vielleicht habe ich aber eine andere Vorstellung von dem, was der Nicht-Klassen-Code macht. Und vor allem, was an diesem Code du konkret dokumentieren möchtest. Beziehungen zwischen Variablen und anderen Teilen? Oder den Ablauf? Wenn ersteres: ist denn der Teil so umfangreich, dass man die Beteiligten nicht auch aus einem Activity oder Sequence Diagram entnehmen kann?

                dedlfix.

                1. Hallo dedlfix,

                  Prozesse und Abläufe sind ein ebenso wichtiger Teil für das Verständnis.

                  exakt.

                  Verstehtst du meinen Gedankengang?

                  Nein, ich verstehe nicht, warum du dich auf Klassendiagramme festlegen willst.

                  Ok, Danke für die AW. Hilft mir weiter.

                  Vielleicht habe ich aber eine andere Vorstellung von dem, was der Nicht-Klassen-Code macht

                  wahrscheinlich

                  ist denn der Teil so umfangreich, dass man die Beteiligten nicht auch aus einem Activity oder Sequence Diagram entnehmen kann?

                  ist es. Deswegen meine Eingangsfrage

                  vlg MB

                  1. Tach!

                    ist denn der Teil so umfangreich, dass man die Beteiligten nicht auch aus einem Activity oder Sequence Diagram entnehmen kann?

                    ist es. Deswegen meine Eingangsfrage

                    Warum ist der denn so umfangreich, und warum ist der dann nicht (größtenteils) objektorientiert gelöst?

                    Ansonsten nimm doch eine Pseudoklasse "Global" mit den globalen Variablen als Eigenschaften. Und vielleicht dazu noch die Funktionen als Methoden. Oder teil es in mehrere einzelne Pseudoklassen auf.

                    Am Ende hast du dann auch gleich noch einen schönen Bauplan für das objektorientierte Refaktoring.

                    dedlfix.

                    1. Hallo Dedlfix,

                      Warum ist der denn so umfangreich, und warum ist der dann nicht (größtenteils) objektorientiert gelöst?

                      Wie bereits gesagt ist das PHP Framework mit ausnahmen objektorientiert.

                      Ansonsten nimm doch eine Pseudoklasse "Global" mit den globalen Variablen als Eigenschaften. Und vielleicht dazu noch die Funktionen als Methoden. Oder teil es in mehrere einzelne Pseudoklassen auf.

                      Danke für deine AW.

                      vlg MB