Freeware Case-Tool gesucht (C++)



  • Hallo!

    Gibt's ein gutes freeware Casetool für C++ (Windows)? Ich will eher weniger Diagramme zeichnen, geht mir halt mehr darum, dass ich meine Software elegant in Pakete strukturieren kann (mit namespaces) und das alle Dateien ein genormtes Aussehen haben.

    So dass ich z.B. einfach sagen kann "hm Klasse x gehört doch eher zu Package y" und dann kann ich das elegant verschieben, generiere den C++-Code und alles stimmt einfach, ohne das man händisch anfangen muss überall was zu ändern.





  • Das ist nicht wirklich das was ich suche :xmas2:

    Auf Grund der Resonanz sei mir folgende Frage gestattet: Nutzt ihr alle keine Case-Tools oder gibt es keine (guten) Freeware-Programme?

    Erstellt ihr wirklich noch per Hand Quellcodedateien und ist das höchste der Gefühle ein Template für sowas?

    Seitdem ich richtig mit einem Case-Tool auf der Arbeit arbeite, will ich's privat eigentlich auch gar nicht mehr missen. Design eben anpassen: Kein Problem, ich verschiebe die Klassen im Diagramm und alles passt. Kein rumwurschteln in irgendwelche Dateien mehr, alles wird einfach neu generiert.



  • Ich hacke mir alles 🙂
    Natürlich wird code wiederverwendet wenn es sich ergibt, is ja klar .. klassen usw.

    🙂



  • NewSchool schrieb:

    Das ist nicht wirklich das was ich suche :xmas2:

    Auf Grund der Resonanz sei mir folgende Frage gestattet: Nutzt ihr alle keine Case-Tools oder gibt es keine (guten) Freeware-Programme?

    Erstellt ihr wirklich noch per Hand Quellcodedateien und ist das höchste der Gefühle ein Template für sowas?

    Seitdem ich richtig mit einem Case-Tool auf der Arbeit arbeite, will ich's privat eigentlich auch gar nicht mehr missen. Design eben anpassen: Kein Problem, ich verschiebe die Klassen im Diagramm und alles passt. Kein rumwurschteln in irgendwelche Dateien mehr, alles wird einfach neu generiert.

    Und welches Tool ist das, das ihr bei der Arbeit verwendet?



  • Will ungerne aus dem Nähkästchen plaudern, aber es gehört zu den drei Großen, die leider nicht umsonst zu haben sind:

    Telelogic Rhapsody
    Rational Rose
    Innovator

    Am Anfang verteufelt, aber mittlerweile kann ich mir eine Entwicklung ohne CASE-Tool nicht mehr vorstellen.



  • Ist CASE-Tool eigentlich das gleiche wie IDE und falls nein, wozu braucht man überhaupt CASE-Tools für die Softwareentwicklung? 🤡



  • byto schrieb:

    Ist CASE-Tool eigentlich das gleiche wie IDE und falls nein, wozu braucht man überhaupt CASE-Tools für die Softwareentwicklung? 🤡

    Es gibt bestimmt Arten von Anwendungen, die im Wesentlichen immer gleich implementiert werden. Sowas von gleich, daß man für einen großen Teil des Codes einen Roboter einsetzt. Use-Cases spezifizieren, UML-Klassendiagramme malen, Datenbank anpassen, Statemachines malen, Dialoge malen, ein paar mal make klicken und hin und wieder ein Funktiönchen per Hand nachtragen und fertig ist die Sportvereinsverwaltung mit Kassenführung, Mahnwesen und Geburtstagsspammer. :xmas1:



  • Ich dachte, MDA wurde schon vor 5 Jahren als Totgeburt entlarvt!? :xmas1:



  • volkard schrieb:

    byto schrieb:

    Ist CASE-Tool eigentlich das gleiche wie IDE und falls nein, wozu braucht man überhaupt CASE-Tools für die Softwareentwicklung? 🤡

    Es gibt bestimmt Arten von Anwendungen, die im Wesentlichen immer gleich implementiert werden. Sowas von gleich, daß man für einen großen Teil des Codes einen Roboter einsetzt. Use-Cases spezifizieren, UML-Klassendiagramme malen, Datenbank anpassen, Statemachines malen, Dialoge malen, ein paar mal make klicken und hin und wieder ein Funktiönchen per Hand nachtragen und fertig ist die Sportvereinsverwaltung mit Kassenführung, Mahnwesen und Geburtstagsspammer. :xmas1:

    Uäh, zum Glück muss ich nicht sowas anspruchsloses programmieren ... und wenn dann schreibt man sich eine gescheite Klasse.



  • volkard schrieb:

    byto schrieb:

    Ist CASE-Tool eigentlich das gleiche wie IDE und falls nein, wozu braucht man überhaupt CASE-Tools für die Softwareentwicklung? 🤡

    Es gibt bestimmt Arten von Anwendungen, die im Wesentlichen immer gleich implementiert werden. Sowas von gleich, daß man für einen großen Teil des Codes einen Roboter einsetzt. Use-Cases spezifizieren, UML-Klassendiagramme malen, Datenbank anpassen, Statemachines malen, Dialoge malen, ein paar mal make klicken und hin und wieder ein Funktiönchen per Hand nachtragen und fertig ist die Sportvereinsverwaltung mit Kassenführung, Mahnwesen und Geburtstagsspammer. :xmas1:

    Gerade dir hätte ich viel mehr zugetraut. Meinst du das ernst? Falls ja, dann frage ich mich gerade, wieso ich die argumentative Schiene beginne. Vlt. weil ich am Anfang auch dachte, dass solche Tools zu nichts nütze sind, behindern und man nur bunte Bildchen malen kann die nichts bringen.

    Bis ich die Vorteile gesehen habe. Von wegen malen und hier klicken und dann ist die Sportvereinsverwaltung fertig. Genau genommen wird relativ wenig "gemalt". Was viel zum Zuge kommt sind Klassendiagramme. Und da hat man wirklich unbestreitbare Vorteile. EIn einfaches Beispiel: Man will eine Klasse umbennen.

    Per Hand würde man die Klassen umbennen, evtl. Refactor-Anwenden (Eclipse) und muss mühsam prüfen ob das jetzt alles passt. Im case-tool benennt man die Klasse um, generiert den Code und alles passt.

    Anderes Beispiel: Die Vererbungsstruktur soll doch anders sein: Im Case-Tool hab ich alles auf einem Blick, verschiebe die Vererbungspfeile, generiere den Code und fertig.

    Na ja, vermutlich eh vergebene Müh hier.



  • NewSchool schrieb:

    Bis ich die Vorteile gesehen habe.

    Das zusammen mit dem Eindruck von Dir lasse ich mir als Pluspunkt für CASE einsickern.

    NewSchool schrieb:

    Man will eine Klasse umbennen.
    Per Hand würde man die Klassen umbennen, evtl. Refactor-Anwenden (Eclipse) und muss mühsam prüfen ob das jetzt alles passt. Im case-tool benennt man die Klasse um, generiert den Code und alles passt.

    Gelegentlich nenne ich auch Klassen um. Danach gibts eine F7(make)-F4(show first error)-Schleife per Hand, die aber selten länger als ein paar Minuten dauert.

    NewSchool schrieb:

    Anderes Beispiel: Die Vererbungsstruktur soll doch anders sein: Im Case-Tool hab ich alles auf einem Blick, verschiebe die Vererbungspfeile, generiere den Code und fertig.

    Wenn noch keine Funktionen da sind, die Basisklassenmethoden benutzen und so.

    NewSchool schrieb:

    Na ja, vermutlich eh vergebene Müh hier.

    Ja.

    Ich habe es auch auf die Spitze getrieben. Naja, im Studium hatte ich zwei Semester "Software Engeneering mit Praktikum", AFAIR zusammen 8 SWS, da haben wir so ein Ding zusammengeklickt, das hatte mich ein wenig enttäuscht. Mag aber vielleicht auch dran liegen, daß man mit 30 eher desinteressierten Studenten nicht anständig Software entwickeln kann. Wir hatten auch ein CASE-Tool, das sehr nach Java aussah und plante und haben damit C++-Code gepreßt.

    Wie oft fühlst Du Dich von deinem CASE-Tool in Deinen Ausdrucksmöglichkeiten beeinträchtigt?
    Kann es mit Templates umgehen, mit mehrfacher Erblichkeit, mit normaler Funktionsüberladung?



  • NewSchool schrieb:

    Was viel zum Zuge kommt sind Klassendiagramme. Und da hat man wirklich unbestreitbare Vorteile. EIn einfaches Beispiel: Man will eine Klasse umbennen.

    Per Hand würde man die Klassen umbennen, evtl. Refactor-Anwenden (Eclipse) und muss mühsam prüfen ob das jetzt alles passt. Im case-tool benennt man die Klasse um, generiert den Code und alles passt.

    Sorry aber sehe überhaupt keinen Vorteil ggü. Refactorings der IDE. Refactorings sind absolut rock solid. Die funktionieren im Grunde immer. Geht aus irgendeinem Grund mal was schief, dann siehst Du das sofort an den Compilerfehlern. Die lassen sich dann idR durch Quick Fix direkt automatisiert beseitigen.

    Sehe eher Nachteile beim CASE Tool. Dort muss ich jedes mal erst mühsam prüfen, ob das Tool nun korrekten Code generiert hat.

    Habe früher mal ein paar Monate mit Rhapsody gearbeitet. Hat teilweise sogar funktioniert für einfache State Machines. Aber der erzeugte Code war grausam und Gnade Dir Gott, wenn der Code Generator einmal ungnädig wird und Mist erzeugt. Dann hast Du im Grunde keine Chance, weil Du den Code nicht manuell ändern kannst, ohne dass er beim nächsten Step wieder überschrieben wird.

    Anderes Beispiel: Die Vererbungsstruktur soll doch anders sein: Im Case-Tool hab ich alles auf einem Blick, verschiebe die Vererbungspfeile, generiere den Code und fertig.

    Auch hier: Wozu braucht man das, wenn man Refactorings in IDEs hat?

    Hier mal die komplette Liste der Refactorings von Intellij IDEA - da bleiben keine Wünsche offen:

    * Extract Method Object
    * Type Migration
    * Extract Class
    * Inline Superclass
    * Introduce Parameter Object
    * Remove Middleman
    * Wrap Return Value
    * XML-aware dedicated refactorings
    * Drag-and-drop items in the Project View bar
    * Invert Boolean
    * Safe Delete
    * Move Instance Method
    * Inline Constant
    * Extract Subclass
    * Replace Method Code Duplicates
    * Convert To Instance Method
    * Renaming of packages, classes, methods, fields, method parameters and local variables with reference correction
    * Moving classes and packages with reference correction
    * Moving static members with reference correction
    * Move Inner Class to Upper Level
    * Change Method Signature
    * Make Method Static
    * Copy/Clone Class
    * Extract Method
    * Introduce Variable
    * Introduce Field
    * Introduce Constant
    * Introduce Parameter
    * Extract Interface
    * Extract Superclass
    * Use Interface Where Possible
    * Pull Members Up
    * Push Members Down
    * Replace Inheritance with Delegation
    * Inline Local Variable
    * Inline Method
    * Convert Anonymous Class to Inner
    * Encapsulate Fields
    * Replace Temp With Query
    * Replace Constructor With Factory Method

    Dazu noch dieses Plugin und Du hast auch Deine grafische Übersicht, wenn der Code mal zu unübersichtlich wird: http://bwinterberg.blogspot.com/2009/08/great-code-navigation-plugin.html

    MDA braucht kein Mensch! 🤡



  • Deswegen nur Case Tools mit "round-trip code engineering" wie VP SDE for Eclipse,Netbeans, IntellJ oder Visual Studio. 😉



  • NewSchool schrieb:

    Das ist nicht wirklich das was ich suche :xmas2:

    Auf Grund der Resonanz sei mir folgende Frage gestattet: Nutzt ihr alle keine Case-Tools oder gibt es keine (guten) Freeware-Programme?

    Erstellt ihr wirklich noch per Hand Quellcodedateien und ist das höchste der Gefühle ein Template für sowas?

    Seitdem ich richtig mit einem Case-Tool auf der Arbeit arbeite, will ich's privat eigentlich auch gar nicht mehr missen. Design eben anpassen: Kein Problem, ich verschiebe die Klassen im Diagramm und alles passt. Kein rumwurschteln in irgendwelche Dateien mehr, alles wird einfach neu generiert.

    StarUML ist das beste freie UML und Case-Tool das ich kenne, aber ich weiß nicht, ob man damit automatisch C++ Code generieren lassen kann.
    Leider wird StarUML schon lange nicht mehr weiterentwickelt, da die Codebasis auf Delphi basiert und dafür gibt's wohl keine OSS Programmierer.



  • NewSchool schrieb:

    Per Hand würde man die Klassen umbennen, evtl. Refactor-Anwenden (Eclipse) und muss mühsam prüfen ob das jetzt alles passt. Im case-tool benennt man die Klasse um, generiert den Code und alles passt.

    Falsch, per Hand würde man eine "Find & Replace" Suche machen und das paßt dann garantiert, darauf kannst du wetten!

    Anderes Beispiel: Die Vererbungsstruktur soll doch anders sein: Im Case-Tool hab ich alles auf einem Blick, verschiebe die Vererbungspfeile, generiere den Code und fertig.

    Und dann?
    Wie füllst du die Schablonen mit Inhalt?

    Spätestens hier mußt du dann wieder von Hand nachprogrammieren.



  • Ich wurde im Studium mit Case 4.0 und Objectif gefoltert. Also wirklich, so viel Dreck auf einem Haufen sieht man selten. Interface wie aus Win 3.11 Zeiten, verbuggt und absturzfreudig, inkl. zerschossener Projekte - natürlich alles so einfach reproduzierbar, dass jeder mittelmäßige Programmierer ahnt, was die da verbockt haben.
    Und sowas wird dann für ein paar Tausend Euro verkauft - Einzelplatzlizenz versteht sich 🙄



  • Mein Favorit ist und bleibt Visual Paradigm. Man kann ich eine expres oder eine Demo runter laden, für 30 Tage. Danach kann man sich unter eine neuen Email Adresse anmelden und wieder 30 Tage lang benutzen.



  • Auf die anderen Beiträge hier will ich gar nicht eingehen, nur auf den folgenden:

    volkard schrieb:

    Ich habe es auch auf die Spitze getrieben. Naja, im Studium hatte ich zwei Semester "Software Engeneering mit Praktikum", AFAIR zusammen 8 SWS, da haben wir so ein Ding zusammengeklickt, das hatte mich ein wenig enttäuscht. Mag aber vielleicht auch dran liegen, daß man mit 30 eher desinteressierten Studenten nicht anständig Software entwickeln kann. Wir hatten auch ein CASE-Tool, das sehr nach Java aussah und plante und haben damit C++-Code gepreßt.

    Wie oft fühlst Du Dich von deinem CASE-Tool in Deinen Ausdrucksmöglichkeiten beeinträchtigt?
    Kann es mit Templates umgehen, mit mehrfacher Erblichkeit, mit normaler Funktionsüberladung?

    Wie bereits geschrieben, am Anfang dachte ich genauso wie alle anderen hier. Ich wollte meinen Code schreiben, hatte meine IDE (Eclipse, Visual Studio) und war zufrieden. Alles andere empfand ich als Behinderung.

    Dann kam das Case-Tool. Am Anfang verflucht, jetzt nicht mehr wegzudenken. Die Einarbeitung war, wie bei jedem neuen Tool, die größte Umstellungsschwierigkeit. Jetzt wo man sich aber auskennt, wird man nicht beinträchtigt. Es beherrscht alle sprachlichen Mittel und ein weiterer Vorteil ist z.B., dass man an einer Stelle einfach auswählen kann, ob er jetzt Java oder C++-Quellcodedateien generieren soll.

    Ich will hier auch niemanden bekehren, aber wer irgendwann mal die Gelegenheit hat, sich damit auseinander zu setzen (oder es zu müssen), der sollte sie auch Nutzen und das nicht als Spielerei oder unnützen Kram verteufeln.

    Offen sein für Neues



  • NewSchool schrieb:

    Es beherrscht alle sprachlichen Mittel

    und

    NewSchool schrieb:

    und ein weiterer Vorteil ist z.B., dass man an einer Stelle einfach auswählen kann, ob er jetzt Java oder C++-Quellcodedateien generieren soll.

    zusammen werfen aber einen Schlagschatten auf den Benutzer. :xmas1:


Anmelden zum Antworten