Autor Thema: OO - Definition für Neueinsteiger  (Gelesen 16731 mal)

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:OO - Definition für Neueinsteiger
« Antwort #20 am: 17.04.04 - 01:16:40 »
Jens,
Zitat
aber das gehört nicht in die Programmierung sondern ist Architektur und Design, wie gesagt, die Aufwände verlagern sich, in der Summe bleiben sie anfänglich etwa gleich, später reduzieren sie sich im OO-Ansatz gegenüber dem prozeduralen Ansatz ....... sofern richtig eingesetzt, dazu gehört natürlich auch, dass man ein typisch "von Hause aus prozedurales" Problem eben nicht mit OO-Ansätzen löst.
Du hast das genau auf eben den Punkt gebracht, den ich wohl nicht richtig formulieren konnte. OOP verlangt mehr "Grips", mehr Gedanken über die Architektur. Es handelt sich auch aus meiner Erfahrung "nur" (!) um eine Verlagerung. Richtig eingesetzt, erspart man sich aber um Grössenordnungen unnötige Aufwände. Und das schon in LS v4 mit seinen beschränkten Möglichkeiten.

Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:OO - Definition für Neueinsteiger
« Antwort #21 am: 17.04.04 - 08:58:16 »
Genau so ist es, und mehr Grips zu investieren, hat noch nie geschadet  :D

Es ist tatsächlich so, dass man Objekte in der Regel nicht einfach aus dem Handgelenk schüttelt. Die zwangsweise bessere Planung führt zu besserem Code (was ja eigentlich eine Binsenwahrheit ist und nicht wirklich OO-spezifisch) und damit zu späterem Profit.

Und genau das ist der springende Punkt: selbst die beschränkten Möglichkeiten von OO in LS genügen, um davon profitieren zu können, nebst der Vorbereitung für die Zukunft, wie Du das weiter oben sehr schön dargestellt hast.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Hernan Cortez

  • Gast
Re:OO - Definition für Neueinsteiger
« Antwort #22 am: 17.04.04 - 14:31:54 »
Es ist tatsächlich so, dass man Objekte in der Regel nicht einfach aus dem Handgelenk schüttelt.

... deshalb kommt man auch bei OO-Programmierung zu bestimmten Prozessen der Projektdurchführung.
Also mehr Planung. Es gibt da verschiedene Schulen (z.B. RUP oder xTreme Programming).
Man sollte das aber gerade als Anfänger nicht so ernst nehmen. Es gibt verschiedene Arten die konkrete Objektstruktur zu "entdecken".
Man braucht da auch kein Tool für. Ich prduziere zum Beispiel gerade höchst heterodoxes UML mit Bleistift auf Rechenkästchen basierend auf einem noch persönlicheren Prozess und kann kein Radiergummi finden und muss bald wohl einen Kiosk suchen, der sowas hat  ::)

buy-a-book

Axel
« Letzte Änderung: 17.04.04 - 14:35:08 von Hernan Cortez »

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:OO - Definition für Neueinsteiger
« Antwort #23 am: 17.04.04 - 15:52:17 »
Richtig, es braucht mehr Planung, ein Prozess kann nützlich sein, es muss aber nicht unbedingt ein bestimmter sein. Mit Uebung lässt sich bei kleinen Sachen OOA und OOD durchaus auch im Kopf machen, aber gemacht werden muss es, und den Kopf kann man ganz gut mit Papier, Bleistift, Radiergummi, und wer mag Kaugummi oder Cervisia unterstützen.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:OO - Definition für Neueinsteiger
« Antwort #24 am: 22.04.04 - 13:47:41 »
**************************
Ich kann zu dieser Diskussion leider nicht viel beitragen
und will Sie auch in keine andere Richtung lenken, aber
ich lese Sie mit großem Interesse und die
Fragen von -Michael- hätte ich auch gerne
gestellt, mich aber nie getraut.
Würde mich freuen, wenn dieser Thread noch eine
Weile existiert.
Ciao
Don Pasquale
****************************

Hernan Cortez

  • Gast
Re:OO - Definition für Neueinsteiger
« Antwort #25 am: 22.04.04 - 14:33:49 »
Wenn dir beim Warten langweilig wird, kannst du ja in der Zwischenzeit hier ein bischen schmökern.  ;D

http://c2.com/cgi/wiki?ObjectOrientation

grossartiger Grusel to deepen your angst :o

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:OO - Definition für Neueinsteiger
« Antwort #26 am: 22.04.04 - 17:05:48 »
einige kurze und nicht so tiefe Erklärungen und Erzählungen gibts auch bei uns auf der Homepage (link ist unter meinem Avatar). Dort im Menü auf Fachliches klicken und dann auf Objektorientierung. Und dann gibts da noch eine Menüebene drunter, die evtl. ein paar erste Fragen beantwortet.
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Hernan Cortez

  • Gast
Re:OO - Definition für Neueinsteiger
« Antwort #27 am: 28.04.04 - 09:53:34 »
Mit Uebung lässt sich bei kleinen Sachen OOA und OOD durchaus auch im Kopf machen, aber gemacht werden muss es, und den Kopf kann man ganz gut mit Papier, Bleistift, Radiergummi, und wer mag Kaugummi oder Cervisia unterstützen.

Ich stimme damit nicht überein.
An eine Anwendung werden Anforderungen aus der realen Welt gestellt (business cases).
Ein OO-Analyst bildet diese business cases in einem Objektmodell ab.
Mit UML Diagrammen kann man verschiedene Sichten dieses Objektmodells darstellen.

Genau diese Sichten liefern etwas, woran es heute in vielen Unternehmens-ITs mangelt: Eine übersichtliche, menschenlesbare Dokumentation der Anwendungen.
Vielleicht sehe ich das aber auch nur stärker als Problem als andere Kinder, da ich eben oft in Notes Projekte kam, die vor die Wand gelaufen waren und die Java/J2EE Projekte im Team entwickle (so ungewöhnlich auch nicht, d.h. viele von euch werden sich da wiedererkennen). Für beide Aufgaben stellt eine vernünftige Dokumentation einen hohen Wert dar.    
Diagramme stellen Information wesentlich übersichtlicher dar als Source code dar. Tool (z.B. Rational Rose) erzeugte Diagramme sind leichter zu lesen als menschenerzeugte (v.a. wenn ich es zeichne). Trotzdem haben diese Tools ein...

<exkurs>
Problem: Die vom OO-Analyst gezeichneten Diagramme stellen Prognosen für eine effiziente programmatische Lösung der business cases dar. Bei der Umsetzung in code kann sich herausstellen, dass es anders als gezeichnet eben besser geht.
Die UML-Sichten müssten also neu gezeichnet werden. Dies läuft auf eine mehrfache Pflege von "source code" hinaus. Eine Lösung aus diesem Dilemma wären roundtrip engineering tools, wo aus Source code UML Modelle generiert werden können. Dies erfordert aber einen hohen UML- und OO-Design-Tool Sachverstand.
</exkurs>


Für einen OO-Anfänger sind solche Tools wie Rational Rose sicher nichts. Ich benutze Rose seit 2 Wochen, aber nur Teile und bislang mehr intuitiv. Hat meine Erwartungen übererfüllt, aber ich beschäftige mich schon länger mit diesem OO/UML Zeugs und ich war skeptisch.

Aber OOD/A im Kopf? Dadurch verliert man dieses wichtige Dokumentations-Feature. Überhaupt... Mein Kopf reicht für meine OO-Aufgabenstellungen nicht aus. Ich bezweifele stark, dass der Kopf von irgendjemand für OO/A Aufgabenstellung, die eine gewisse Trivialitätsschranke überschreiten, ausreicht.
Ich meine: Ein Warenkorb besteht aus einer Menge an zu kaufenden Items. O.k.. Aber jemand einen Vorschlag für die Objektmässige Darstellung des Spielplans der EM 2004 in Portugal. Im Kopf?
Ich nehm dafür lieber Rational Rose.

Gruß Axel
« Letzte Änderung: 28.04.04 - 10:01:37 von El tio loco »

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:OO - Definition für Neueinsteiger
« Antwort #28 am: 28.04.04 - 10:04:48 »
Axel: Du hast etwas ganz wichtiges Ueberlesen:

für KLEINE SACHEN

Du redest definitiv nicht von kleinen Sachen, wenn Du von Team(s) redest.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Hernan Cortez

  • Gast
Re:OO - Definition für Neueinsteiger
« Antwort #29 am: 28.04.04 - 12:12:31 »
für KLEINE SACHEN

Hi,

Das müssen aber schon sehr kleine Sachen sein.
Hier ist eine Sache, die ich neben der Arbeit, mit mir selber ausmache:
Das ist eine statische Klassenstruktur der Objekte des Spielplans wie ich sie für ein Tippspiel benötige. Das Ergebnis von 2 Stunden mässig fokussierter Arbeit (inklusive nachdenken) von 1 tio loco:



Wenn ich es nicht in Rose (oder mit Papier und Bleistift) persistiert hätte, hätte ich es heute vergessen.
Und das ist bei weitem noch nicht fertig. Im Grunde fehlen da sogar Kommentare (und zwar dringend).
Bevor ich anfange zu coden, brauche ich sowieso ausserdem noch eine dynamisches Modell für bestimmte Anwendungsfälle.

Wenn Leute eine Relationale Datenbank neu planen, malen sie doch auch ein Entity Relationship Model. Warum soll das mit Objekten anders sein ???

Ich bleibe dabei: Gezeichnetes UML ist für reale Welt OO unverzichtbar.
Alles andere ist a-bit-to-rapid-application-development mit den nachteiligen Folgen:
- unzureichende Dokumentation
- oft fällt einem während des Zeichenprozesses ein, wie man es besser machen kann

Axel
« Letzte Änderung: 28.04.04 - 12:14:04 von El tio loco »

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:OO - Definition für Neueinsteiger
« Antwort #30 am: 28.04.04 - 12:33:53 »
Es hat auch niemand gesagt, man soll es machen .....
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz