home
download
install
FAQ
tutorial
howto
screenshots
jenkins
This shows you the differences between two versions of the page.
start [2015/05/19 14:45] thomas [implementation] |
start [2015/05/19 14:47] (current) thomas [implementation] |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Astade, a UML tool for the complete C or C++ development process ====== | ||
+ | |||
+ | =====design===== | ||
+ | <format dot> | ||
+ | digraph G { | ||
+ | rankdir=LR; | ||
+ | node [fontname=arial, fontsize=10] | ||
+ | |||
+ | AstadeDraw [shape=record, style=filled, fillcolor=grey80, color=black]; | ||
+ | idea [label="an idea"]; | ||
+ | components [label="component diagram"]; | ||
+ | usecases [label="usecase diagram"]; | ||
+ | idea -> AstadeDraw; | ||
+ | AstadeDraw -> usecases; | ||
+ | AstadeDraw -> components; | ||
+ | } | ||
+ | </format> | ||
+ | |||
+ | =====architecture===== | ||
+ | <format dot> | ||
+ | digraph G { | ||
+ | rankdir=LR; | ||
+ | node [fontname=arial, fontsize=10] | ||
+ | |||
+ | Astade [shape=record, style=filled, fillcolor=grey80, color=black]; | ||
+ | components [label="component diagram"]; | ||
+ | usecases [label="usecase diagram"]; | ||
+ | object [label="object model"]; | ||
+ | user [label="programmer input"]; | ||
+ | usecases -> Astade; | ||
+ | components -> Astade; | ||
+ | user -> Astade; | ||
+ | Astade -> object; | ||
+ | } | ||
+ | </format> | ||
+ | |||
+ | =====implementation===== | ||
+ | <format dot> | ||
+ | digraph G { | ||
+ | rankdir=LR; | ||
+ | node [fontname=arial, fontsize=10] | ||
+ | |||
+ | astade [label="Astade Coder", shape=record, style=filled, fillcolor=grey80, color=black]; | ||
+ | statedraw [label="state chart drawer", shape=record, style=filled, fillcolor=grey80, color=black]; | ||
+ | objectdraw [label="object model drawer", shape=record, style=filled, fillcolor=grey80, color=black]; | ||
+ | doxygen [label="Doxygen", shape=record, style=filled, fillcolor=grey80, color=black]; | ||
+ | compiler [label="compiler ", shape=record, style=filled, fillcolor=grey80, color=black]; | ||
+ | object [label="object model"]; | ||
+ | source [label="source code"]; | ||
+ | bin [label="executable binaries"]; | ||
+ | doc [label="documentation"]; | ||
+ | statediagram [label="state chart"]; | ||
+ | classdiagram [label="class diagram"]; | ||
+ | object -> astade; | ||
+ | object -> statedraw; | ||
+ | object -> objectdraw; | ||
+ | source -> doxygen; | ||
+ | statediagram -> doxygen; | ||
+ | classdiagram -> doxygen; | ||
+ | astade -> source; | ||
+ | source -> compiler -> bin | ||
+ | doxygen -> doc | ||
+ | statedraw -> statediagram | ||
+ | objectdraw -> classdiagram | ||
+ | } | ||
+ | </format> | ||
+ | |||
+ | ====== Some features in catchwords ====== | ||
+ | * Drawing tool for [[screenshots:usecase|use case diagrams]] | ||
+ | * Drawing tool for [[screenshots:component|component diagrams]] | ||
+ | * Drawing tool for [[screenshots:sequence|sequence diagrams]] | ||
+ | * Code generator for C++ | ||
+ | * Code generator for C (e.g. for implementing Linux kernel drivers) | ||
+ | * Input dialogue for statecharts | ||
+ | * Code generators for statecharts (C and C++) | ||
+ | * Frameworks for statecharts (generic, wxWidgets, ACF/ACF++) | ||
+ | * Automatically generated [[screenshots:objectmodel|class diagrams]] | ||
+ | * Built-in trace tool for generating [[screenshots:sequence|sequence diagrams]] | ||
+ | * [[screenshots:astade|IDE]] for compiling and debugging | ||
+ | * Works with any code editor | ||
+ | * Automatic code generation for constraints | ||
+ | * Automatic code generation for member initialisation | ||
+ | * Interface to [[http://wxglade.sourceforge.net/ |wxGlade]] for GUI development | ||
+ | * Interface to [[http://www.doxygen.org/ |Doxygen]] for documentation | ||
+ | * Interface to repositories (SVN, GIT, MKS) | ||
+ | * Available for [[install:installinwindows|Windows]] and [[install:installinubuntu|Linux]] operating systems | ||
+ | |||
+ | For all features you miss here use our [[design:wishlist|wishlist]]. | ||
+ | |||
+ | ====== Mission ====== | ||
+ | The goal of developing Astade was to develop a UML tool where you can develop at model level and automatically generate source code for C/C++. | ||
+ | |||
+ | The Astade program is a complete front-end (GUI) for software development (in C and C++) which can be customised for any compiler (the GNU compiler is the default). | ||
+ | |||
+ | At first glance this seemed to be a big deal. But Astade combined some tools, already available, and so it was possible! | ||
+ | |||
+ | The main ideas to minimise effort are: | ||
+ | |||
+ | * the model tree is built in the directory structure of the operating system. | ||
+ | * most graphics are done with Graphviz except sequence charts. They are done with Trace2UML | ||
+ | * the documentation is done with Doxygen | ||
+ | * GUI design we do with a wxGlade integration. | ||
+ | |||
+ | So we end up with a little "user dialogue" and a good "code generator"; it's a great tool, try it! | ||
+ | |||
+ | ====== Why we reinvented the wheel ====== | ||
+ | |||
+ | After working with a UML tool for over a year at my job I'd learned: | ||
+ | |||
+ | * It's great to work with a UML tool. You'll never want to write source code by hand after that experience! | ||
+ | * Commercial tools are expensive! Really! | ||
+ | * Open source tools are not really usable (at least at the time we started with Astade) :-( | ||
+ | * Both the commercial and the open source ones are too complicated. A UML tool must be so easy to use that a developer wants to use it, without being forced to. Astade is! ;-) | ||
+ | |||
+ | ====== License ====== | ||
+ | Astade is published under the GPL. If you'd like to read the complete license text, look [[gpltext|here]] | ||
+ | |||
+ | ====== Impressum ====== | ||
+ | This site is maintained by the Astade developer team.\\ | ||
+ | If you have questions concerning the use of the tool, and you didn't find the answers on this website, | ||
+ | mail to //users (at) astade.tigris.org//.\\ | ||
+ | If you want to contact the developers, mail to //dev (at) astade.tigris.org//. | ||
+ | |||
+ | |||