Getting Started
User Manual Basics
noreferences
@@tooltip How can Umple be used?

@@description
<p>Umple is a technology for Model-Oriented Programming.</p>

<p>The Umple home page is <a href="https://www.umple.org">https://www.umple.org</a>. To download Umple for the command line or an IDE, go to <a href="https://umple.org/dl">https://umple.org/dl</a>. To use Umple online as a web app, go to <a href="https://try.umple.org">https://try.umple.org</a></p>

<p>Umple allows you to do the following things: </p>

<ol>

<li><b>Create UML models textually</b>. Rather than drawing diagrams, it can often be faster to create UML 
<a href="ClassDefinition.html">class</a> diagrams and <a href="BasicStateMachines.html">state machines</a> using Umple's textual format that looks 
just like programming-language code. Editing, comparing and many other 
tasks can often be done faster using this textual form. Umple has <a href="UmpleTools.html">tools</a> that 
allow you to edit the model textually (and see changes appear in a UML 
diagram) or to edit a UML diagram (and see changes appear in the textual 
code)</li>

<br />

<li><b>Add UML modeling constructs directly into your programs, when you 
are programming in Java, Python, PHP, C++ or  Ruby</b>. For example, when programming in 
Java, you can directly add a UML <a href="BasicStateMachines.html">state machine</a> into your code. This can 
save you a lot of coding. The Umple compiler acts as a pre-processor, 
first compiling the state machine to Java, and then compiling the Java 
into an executable program. Java methods found in the Umple code will be unchanged in the generated output.
The same works for languages like  Python and C++, although methods have to be tagged with the relevant language. See the <a href="HelloWorldExamples.html">Hello World examples</a>
to see how to do this.</li>

<br />


<li><b>Generate high quality code from UML models</b>. The Umple 
compiler creates code in languages like Java, C++ and PHP that is of top 
quality. It is a goal of the Umple team to create the best open-source 
code-generation tool available. The generated code never needs to be 
edited and never should be edited, since You can always embed native methods  (i.e. 
Java, Php, etc.) in the Umple, or else use Umple's <a href="BeforeandAfterStatements.html">aspect oriented</a> 
capabilities to alter the effects of generated code. As a result the concept of 'round 
tripping' is obsolete in Umple. You should treat Umple-generated code just 
like you would treat bytecode-or machine code, i.e. as a development 
artifact that can be thrown away and recreated. Nevertheless, we have 
endeavoured to make the generated code as clean and readable as possible 
so you can verify its correctness and learn how it works.</li>

<br />

<li><b>Incrementally Umplify a program.</b> A program in a base 
language like Java should pass through the Umple compiler unchanged. As a 
result you can incrementally refactor such a program, stripping off 
complex code for such things as associations, state machines and certain patterns, 
and replacing it by simple Umple code. This can be done bit-by-bit, while 
testing thoroughly at each step. When you are done, you will have a 
program that should not only be more compact, but also more reliable and 
more maintainable. In addition, you have the benefit of being able to view 
UML diagrams of your program.</li>

</ol>

<p>The term "Umple" derives from "UML Programming Language", "Simple" 
and "Ample".</p>

<p>The quickest way to get started with Umple is to go to <a 
href="https://try.umple.org/">UmpleOnline</a>, and 
select an example listed under 'EXAMPLES'. Each of the user manual
pages also allows you to instantly load the examples into UmpleOnline.</p>

<p>To learn more about Umple, read the links on the left of this page, or 
go to the <a href="https://www.umple.org">Umple Home page</a>. In 
particular, you should browse the <a 
href="https://github.com/umple/Umple/wiki/Tutorials">tutorials and videos 
about Umple</a></p>

<hr />

<p><a href="PrivacyandRisks.html">See here for the statement regarding <b>privacy and other risks when using Umple</b>.</a></p>

<hr />

<i>If you are an ordinary user and notice an error in this manual, <a href="https://github.com/umple/Umple/issues">please report it using our issue tracking system here</a> Flag it as a defect in the user documentation. If you still have trouble after reading this manual, please contact our <a href="mailto:umple-help@googlegroups.com"> help mailing list and post a request for help</a>. If you are a contributer, you can click on the link &apos;edit in github&apos; found at the bottom left of each manual page; also <a href="https://github.com/umple/Umple/wiki/Deploying">instructions on how to edit this manual are here</a>.</i>

@@videoURL https://www.youtube.com/embed/xD-zTpB_zyQ
