Wie tief sollte ein Programmierer sein Verständnis des Unified Process und der UML entwickeln? [geschlossen]

8

Ich weiß, dass viele Orte UML und den einheitlichen Prozess als Entwicklungsmodell verwenden ... aber es gibt viele, die dies nicht tun. Wäre es wichtig, mehr als ein grundlegendes und funktionales Verständnis dieser Themen zu haben, oder wäre es besser, sich auf die Entwicklung von Programmierkenntnissen in anderen Bereichen (z. B. Sprachentwicklung, IDEs usw.) zu konzentrieren?

Kenneth
quelle
9
+1 wirklich, wie viele Entwickler verwenden UML tatsächlich als Teil ihres Entwicklungsprozesses?
Aditya P
Es schien, als ob viele von ihnen es tun ... zumindest in den Bereichen, in denen ich mich um Jobs beworben habe ...
Kenneth
1
Es ist definitiv eine Sache von Branche zu Branche. Ich bin mir nicht sicher, in welchen Bereichen Sie suchen, aber ich habe keinen Zweifel daran, dass es Bereiche gibt, in denen UML häufig verwendet wird. Persönlich habe ich in 16 Jahren beruflicher Entwicklung noch nie ein Gerücht von jemandem gehört, der es benutzt. :-)
Carson63000
3
Tief genug, um zu wissen, warum es oft keine gute Idee ist, es zu verwenden.
Biziclop
4
@Kenneth Unified Process funktioniert gut, wenn alle Anforderungen im Voraus bekannt sind, sich keine der Anforderungen wesentlich ändern wird, Ihr Entwicklerteam ziemlich groß und diszipliniert ist und Sie viel Zeit haben, um die Schritte des Prozesses ordnungsgemäß auszuführen. Dies schließt die überwiegende Mehrheit der Entwicklungsprojekte aus, es schließt sicherlich jedes einzelne aus, an dem ich gearbeitet habe.
Biziclop

Antworten:

11

Ignorieren Sie den einheitlichen Prozess, es sei denn, Sie glauben, dass es eine gute Zeit ist, Farbe trocken zu sehen, während sie tief im Abwasser liegt. Warten Sie, es reicht nicht aus, es zu ignorieren. Fürchte es. Soweit ich weiß, wird es heutzutage nur von riesigen Orten genutzt, die keine Hoffnung auf Effizienz, Qualität oder Vernunft haben.

UML hingegen kann eine praktische Notation für wichtige Programmierkonzepte sein. Holen Sie sich Martin Fowlers UML Distilled , überfliegen Sie es und üben Sie das Skizzieren von Diagrammen, während Sie über Design nachdenken. Es ist eine Fähigkeit, die ich regelmäßig benutze und ich bin froh, dass ich sie habe.

Beachten Sie, dass Benutzer versuchen, UML zu stark zu verwenden. Whiteboard UML während der Diskussion ist fantastisch. Ein gelegentliches Diagramm in der veröffentlichten Dokumentation kann hilfreich sein. Die Suche nach einer Dokumentation Ihrer gesamten Codebasis in UML ist jedoch sinnlos und verschwenderisch. Und der Wunsch, "in UML zu programmieren", ist idiotisch. Wenn Sie auf solche Leute stoßen, fliehen Sie. Aber zuerst brandmarken Sie ihre Stirn mit einem Sequenzdiagramm, damit der Rest von uns richtig gewarnt wird.

William Pietri
quelle
Ich bin ROTFLOL !!! hahaha ... es ist so lustig, dass Sie die Leute erwähnen sollten, die die Möglichkeit des Programmierens in UML in Betracht ziehen ... einige meiner Klassenkameraden begannen mit dieser Diskussion und ich dachte, sie würden ein wenig rausgehen! hahaha
Kenneth
2
Danke, Kenneth. Die Leute haben über das Programmieren in Diagrammen gesprochen, seit man Diagramme auf dem Computer zeichnen konnte. Es funktioniert nie für ernsthaften Code, aber Leute, die es nicht durchdacht haben, versuchen es weiter.
William Pietri
6

Verbringen Sie nicht zu viel Zeit mit UML. In meinem Team bin ich der einzige, der UML wirklich gut kennt und daher Anwendungsfälle, Komponenten, Status, Bereitstellung und andere Diagramme erstellt. Die anderen Teammitglieder sind besser als ich für das Codieren, aber nicht so gut für das UML-Diagramm.

Der Trick, den wir verwenden, besteht darin, sich auf das Klassendiagramm auf Modellierungsebene zu konzentrieren, um die Struktur der Anwendung zu definieren, und den Entwickler / Architekten zuzulassen, nach Belieben zu codieren. Anschließend führen wir das Modell mit dem neuen Code zusammen und aktualisieren das Modell bei jeder Iteration. Wirklich einfach und sehr effizient. Wir entwickeln in Java mit Omondo EclipseUML.

Ich würde empfehlen, kein MDD zu verwenden, was für mich ein echter Mist ist !! Modeler wird versuchen, mehr Leistung in den Entwicklungsprozess einzubeziehen, aber dies schafft keinen Wert, wenn versucht wird, den gesamten Code aus dem Modell zu generieren. Der Code gehört dem Entwickler / Architekten, aber nicht dem Modellierer. UML sollte nur eine Ansicht der Projektanforderungen (z. B. Anwendungsfall, Sequenz usw.), des Prozesses (z. B. Status- oder Aktivitätsdiagramm), der Bereitstellung (Bereitstellung, Komponentendiagramme) sein. Das Klassendiagramm sollte eine Ansicht des Codes sein, und das UML-Klassendiagramm sollte nur als Viewer des Codes verwendet werden. Java-Codierung sollte den Objektansatz respektieren und UML, das auch eine Objektsprache ist, ist wirklich hilfreich, um Mist und dummes Codieren zu vermeiden.

Das wichtigste sind die Klassendiagrammiterationen zwischen Modell zu Code und Code zu Modell. Ich meine nicht wirklich Live-Synchronisation, sondern Code und Modell bei jeder Iteration zusammenführen zu können. Ich verwende Omondo EclipseUML und denke, dass sie die einzigen sind, die Java, Datenbankentitäten und Modell-IDs zusammenführen. Die ID-Zusammenführung ist wirklich ein leistungsstarkes Konzept und perfekt für unsere agilen Projekte.

Meine Empfehlung ist, kein Buch zu kaufen. Sie sollten einen Objektansatz haben und die Klassendiagrammsprache verwenden, um Ihre Objekte zu visualisieren, um bessere Architekturen zu erstellen. Wenn eines der Teammitglieder UML kennt, verwenden Sie die anderen Diagramme. Andernfalls wäre das Klassendiagramm ausreichend.

UML_GURU
quelle
3

Der Unified Process und UML sind eine Reihe strukturierter Denk- und Kommunikationsinstrumente. Diese Tools helfen auf verschiedene Weise. sowohl durch die Definition einer Art, über Designs zu sprechen, als auch durch die Unterstützung bei der Bearbeitung der Details und Facetten unserer Designs.

Die Verbesserung Ihres eigenen Denkens ist entscheidend, um die Details eines Entwurfs zu vervollständigen und den Weg zu einem vernünftigen und kohärenten Produkt zu finden. Persönliche Disziplinen helfen Ihnen, sich zu konzentrieren, Details im Auge zu behalten, die Ränder zu durchdenken und sich Monate später daran zu erinnern, was Sie denken.

Die Verbesserung der Art und Weise, wie über das Design gesprochen und es verbessert wird, ist entscheidend, um eine Gruppe von Designern schneller und weiter zu bringen. Gruppendisziplinen helfen dabei, mehr aus der Gruppe herauszuholen.

Denken Sie jedoch daran, dass UML und der einheitliche Prozess nur eines von vielen Denkwerkzeugen sind. Sie sind vernünftig, aber sie passen möglicherweise zu Ihnen oder Ihrer Gruppe (was genauso wichtig ist wie jeder andere Faktor).

Bruce Alderson
quelle
1
Wäre es sicher zu sagen, dass ich zum größten Teil, solange ich in der Lage bin, strukturiert wie oder ähnlich wie beim einheitlichen Prozess zu arbeiten, lernen kann, welcher Prozess im Job verwendet wird und daher sollte stattdessen meine Programmierkenntnisse entwickeln?
Kenneth
Sogar ich werde dazu gebracht, dasselbe zu glauben.
Aditya P
Nein, ich denke, es lohnt sich, ein paar strukturierte Methoden zu lernen und dann auszuwählen, was für Sie funktioniert. Sie können mit Ihrem eigenen Prozess enden, aber es gibt viel zu lernen von denen, die vor Ihnen kamen. Ich persönlich verwende Teile einer Reihe von Prozessen: agile, einheitliche und sogar einige ältere Teile (wie RFC-Spezifikationen, Timing-Diagramme usw.).
Bruce Alderson
3

In meinen Augen gibt es jetzt einen Weg um UML herum. Holen Sie sich ein Buch und lernen Sie es. Sie brauchen es, um:

  • Lesen Sie technische Bücher, die UML verwenden (es gibt viele)
  • Verwenden Sie es als Skizzierwerkzeug, um Ideen / Lösungen mit Hochschulen zu diskutieren.
  • Geben Sie sich eine schnelle Möglichkeit, die Lösung, an die Sie denken, zu visualisieren und darüber nachzudenken.
  • Lesen / Begründen Sie technische / funktionale Designs in bestimmten Unternehmen

Der einheitliche Prozess ist meiner Meinung nach eine andere Geschichte. Er hängt vom Arbeitgeber ab, bei dem Sie tätig sind. Ich würde zumindest ein Buch lesen, um zu wissen, was es ist und wenn es soweit ist, dass Sie es wirklich brauchen, studieren Sie es.

Hoffe das hilft.

KeesDijk
quelle
2

Ich denke nicht, dass Sie extrem gründliche Kenntnisse über UML benötigen, aber Sie sollten auf jeden Fall in der Lage sein, ein Diagramm zu betrachten und zu sagen, was los ist. Was Sie versuchen sollten, um ein detailliertes Wissen zu erlangen, sind verschiedene Designmuster (kaufen Sie ein Buch). Wenn Sie Ihre eigenen Entwürfe erstellen, können Sie sowohl das Entwurfsmuster als auch das UML-Muster kennen, auch wenn Sie es nicht tatsächlich zeichnen. Es hilft Ihnen auch dabei, ein UML-Diagramm zu verstehen, wenn Sie es sehen, da Sie möglicherweise etwas besser verstehen, warum die UML so aussieht.

WuHoUnited
quelle
Empfehlen Sie Designmusterbücher?
Kenneth
Ich habe Java Design Patterns von James Cooper aus dem Jahr 2000 gelesen, weil meine Bibliothek es hatte. Ich habe das bekommen, was ich brauchte, aber ich denke, es hätte viel besser geschrieben werden können. "Welche Bücher / Websites würden Sie zum Erlernen von Designmustern empfehlen?" klingt nach einer großartigen Frage für diese Website (ich persönlich bevorzuge Bücher).
WuHoUnited
Wirst du es fragen? Wenn nicht, werde ich mich freuen! lol
Kenneth
2

Ich bin seit 1987 in diesem Geschäft und das einzige Mal, dass ich mich mit UML und dem Unified Process befasst habe, war ein paar Mal, als ein missgeborener Berater ein sehr großes Geld dafür bekam, das Personal mit all den Kleinigkeiten dieser überhypten zu zwingen. übertriebene und tendenziöse Methoden. Nach jedem Versuch, diesen unverfälschten Mist anzuwenden, haben wir genug fast sofort veraltete Dokumentation erstellt, um die Kongressbibliothek bis zum Überlaufen und darüber hinaus zu füllen und gleichzeitig das Design und die Entwicklung unserer Projekte unbeschreiblich zu verlangsamen.

Wenn Ihr Geschäftsprodukt in Pfund Papier und / oder in der Größe der Dokumentation gemessen werden soll, wird es nie mehr als einmal gelesen (wenn es so viele sind) und wird für immer danach veraltet sein, und das wird die Grundlage sein, auf der Sie sich befinden bezahlt werden, dann auf jeden Fall mit diesem Mist das ganze Schwein gehen.

Wenn nicht, laufen Sie bei der ersten Erwähnung von UML und UP schreiend nach den Hügeln. Oder besser, schlagen Sie die erste Person, die es zu Brei ausspricht.

Cyberherbalist
quelle
1

Sie können erwähnen, dass Sie UML OHNE den einheitlichen Prozess verwenden können. Ich benutze viel UML gleichzeitig mit dem Programmieren, aber für mich ist es wichtig, auf praktische Weise zu sein, nicht nur, weil "es ein glänzendes neues Werkzeug ist".

Klassendiagramme, Anwendungsfälle und sequentielle Diagramme sind meine Favoriten. Ich muss nicht so oft andere Arten von Diagrammen verwenden wie diese.

Viele Unternehmen verwenden den Unified / Rational-Prozess nicht.

umlcat
quelle