2016-06-08 16 views
3

Ich versuche, UML-Dokumentation für PHP-Site zu erstellen. Ja, ich weiß, das ist nicht der übliche Weg - aber diese Seite ist bereits in Produktion und jetzt brauchen wir UML-Dokumentation :)UML-Klassendiagramm für PHP-Site ohne Klasse

Programmierer, der diese Seite gemacht hat, ist überhaupt kein OOP - er hat keinen benutzt PHP-Klasse zum Erstellen dieser Site. Stattdessen hat er viele PHP-Dateien erstellt. Ich glaube an PHP World ist ziemlich beliebt Ansatz.

Jetzt frage ich mich, wie kann ich Klassendiagramm für diesen Code erstellen? Wie ich weiß, ist Klassendiagramm nur eine Möglichkeit, Systemarchitektur und Programmierkonzept zu zeigen. Ich glaube in diesem Fall kann ich einzelne PHP-Datei als eine Klasse und Variablen in dieser Datei als Klassenattribut vorgestellt. Wenn irgendeine Datei eine andere Datei enthält, kann ich dies als eine Klassenbeziehung darstellen. Ist es richtig?

Antwort

0

Nun, Sie könnten so anfangen. Das wäre wahrscheinlich das gleiche wie ein VanGogh den Picasso-Weg zu malen.

Natürlich hängt es von vielen Faktoren ab, aber wenn möglich, würde ich den Code ausgeben und ihn richtig gestalten. Aber das ist wahrscheinlich in den meisten Fällen unmöglich (zu teuer, höre ich die Manager sagen, ja, ja). Also der richtige Ansatz in diesem Fall: Halte den Zombie am Leben, aber vergiss UML. Es wird dir hier nicht viel helfen.

Sie könnten auch versuchen, nur kleine Teile neu zu gestalten. Wenn ja, dann fangen Sie auch hier bei Null an.

Interessanterweise erreichte das alte indische Sprichwort "Wenn Sie finden, dass Sie ein totes Pferd reiten, auszusteigen" hat nie viele Manager erreicht.

Ok. Lasst uns ein paar Wege versuchen, das tote Pferd zu reiten.

  • Zuerst eine UC-Dokumentation erstellen. Das würde sogar mit Nicht-OO-Software funktionieren.
  • Finden Sie die wenigen Teile, die OO sind, und fügen Sie diese in eine UML-Dokumentation ein (statische Klassendiagramme und ggf. einige SDs)
  • Erstellen Sie eine Objektabhängigkeitsstruktur der vorhandenen PHP-Dateien. Verwenden Sie einfach ein Objekt für jede Datei und zeichnen Sie eine Abhängigkeitsbeziehung. Das erschreckt Manager in den meisten Fällen genug, um ein Re-Design zu fahren.
  • Wo erkennbar isolieren Schnittstellen und bringen Sie sie in Ihrem Klassendiagramm bis jetzt zu beleuchten.
  • Wo immer möglich, weisen Sie auf das vorhandene Chaos hin und bestehen Sie auf einem Refactoring.
  • Machen Sie den Kadaver offensichtlich. Je mehr es riecht, desto wahrscheinlicher wird es Geld für Refactoring geben.
  • Versuchen Sie Subsysteme zu isolieren, die einzeln bearbeitet werden können.

Endlich:

  • Viel Glück!
+1

Dump-Code und Redesign ganz oder teilweise dieser Website ... ist nicht möglich. Warum? Weil die Anwendung funktioniert und niemand sich darum kümmert. Wie Sie geschrieben haben - das ist in der Regel Management-Ansatz. Lassen Sie uns diese Situation akzeptieren und versuchen, eine "faire" Lösung zu finden. Ich denke, ist ein sehr beliebtes Problem - ein Teil des Codes ist OPP und ein anderer Teil ist ein "einfacher" Funktionscode in JS oder PHP. Wie beschreibt man diese Art von Code im Klassendiagramm? Sehr oft ist funktionaler (nicht OPP) Code ein wichtiger Teil der Anwendung und sollte auch im Sequenzdiagramm dokumentiert werden. – ortep

+0

Ich werde ein wenig darauf eingehen. Tricky, um dies in eine kurze Antwort zu bekommen. –