Freeware Case-Tool gesucht (C++)
-
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 MethodDazu 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:
-
UML Diagramme sind doch eher Design, Planung und vor allem dann Dokumentation. Wenn mir ein CASE Tool von einem Klassendiagramm die Klassen dann erzeugt, bin ich schon zufrieden. Aber Details sollte man doch lieber per Hand schreiben.
@volkard: 2min für ein simples Rename? Wieso hat man nach dem Rename Compilerfehler? Die IDE kann doch sofort anzeigen ob der Name schon existiert.