├── .gitignore ├── README.md └── docs ├── Makefile └── source ├── basic-concepts.rst ├── conf.py ├── editing-elements-and-diagrams.rst ├── getting-started.rst ├── images ├── color-dialog.png ├── extension-manager.png ├── font-dialog.png ├── line-style.png └── stereotype-display.png ├── index.rst ├── introduction.rst ├── managing-extensions.rst ├── managing-project.rst ├── modeling-with-uml ├── modeling-with-uml.rst ├── organizing-project.rst ├── working-with-activity-diagram.rst ├── working-with-class-diagram.rst ├── working-with-communication-diagram.rst ├── working-with-component-diagram.rst ├── working-with-composite-structure-diagram.rst ├── working-with-deployment-diagram.rst ├── working-with-object-diagram.rst ├── working-with-package-diagram.rst ├── working-with-profile-diagram.rst ├── working-with-sequence-diagram.rst ├── working-with-statechart-diagram.rst └── working-with-use-case-diagram.rst ├── reference ├── dialogs.rst ├── keyboard-shortcuts.rst ├── quick-edits.rst ├── reference.rst ├── uml-validation-rules.rst └── user-interface.rst ├── settings.rst └── writing-extensions └── writing-extensions.rst /.gitignore: -------------------------------------------------------------------------------- 1 | docs/build 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | staruml-docs 2 | ============ 3 | 4 | Documentation for StarUML 5 | -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | PAPER = 8 | BUILDDIR = build 9 | 10 | # User-friendly check for sphinx-build 11 | ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) 12 | $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) 13 | endif 14 | 15 | # Internal variables. 16 | PAPEROPT_a4 = -D latex_paper_size=a4 17 | PAPEROPT_letter = -D latex_paper_size=letter 18 | ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source 19 | # the i18n builder cannot share the environment and doctrees with the others 20 | I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source 21 | 22 | .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext 23 | 24 | help: 25 | @echo "Please use \`make ' where is one of" 26 | @echo " html to make standalone HTML files" 27 | @echo " dirhtml to make HTML files named index.html in directories" 28 | @echo " singlehtml to make a single large HTML file" 29 | @echo " pickle to make pickle files" 30 | @echo " json to make JSON files" 31 | @echo " htmlhelp to make HTML files and a HTML help project" 32 | @echo " qthelp to make HTML files and a qthelp project" 33 | @echo " devhelp to make HTML files and a Devhelp project" 34 | @echo " epub to make an epub" 35 | @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" 36 | @echo " latexpdf to make LaTeX files and run them through pdflatex" 37 | @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" 38 | @echo " text to make text files" 39 | @echo " man to make manual pages" 40 | @echo " texinfo to make Texinfo files" 41 | @echo " info to make Texinfo files and run them through makeinfo" 42 | @echo " gettext to make PO message catalogs" 43 | @echo " changes to make an overview of all changed/added/deprecated items" 44 | @echo " xml to make Docutils-native XML files" 45 | @echo " pseudoxml to make pseudoxml-XML files for display purposes" 46 | @echo " linkcheck to check all external links for integrity" 47 | @echo " doctest to run all doctests embedded in the documentation (if enabled)" 48 | 49 | clean: 50 | rm -rf $(BUILDDIR)/* 51 | 52 | html: 53 | $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html 54 | @echo 55 | @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." 56 | 57 | dirhtml: 58 | $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml 59 | @echo 60 | @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." 61 | 62 | singlehtml: 63 | $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml 64 | @echo 65 | @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." 66 | 67 | pickle: 68 | $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle 69 | @echo 70 | @echo "Build finished; now you can process the pickle files." 71 | 72 | json: 73 | $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json 74 | @echo 75 | @echo "Build finished; now you can process the JSON files." 76 | 77 | htmlhelp: 78 | $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp 79 | @echo 80 | @echo "Build finished; now you can run HTML Help Workshop with the" \ 81 | ".hhp project file in $(BUILDDIR)/htmlhelp." 82 | 83 | qthelp: 84 | $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp 85 | @echo 86 | @echo "Build finished; now you can run "qcollectiongenerator" with the" \ 87 | ".qhcp project file in $(BUILDDIR)/qthelp, like this:" 88 | @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/StarUML.qhcp" 89 | @echo "To view the help file:" 90 | @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/StarUML.qhc" 91 | 92 | devhelp: 93 | $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp 94 | @echo 95 | @echo "Build finished." 96 | @echo "To view the help file:" 97 | @echo "# mkdir -p $$HOME/.local/share/devhelp/StarUML" 98 | @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/StarUML" 99 | @echo "# devhelp" 100 | 101 | epub: 102 | $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub 103 | @echo 104 | @echo "Build finished. The epub file is in $(BUILDDIR)/epub." 105 | 106 | latex: 107 | $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex 108 | @echo 109 | @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." 110 | @echo "Run \`make' in that directory to run these through (pdf)latex" \ 111 | "(use \`make latexpdf' here to do that automatically)." 112 | 113 | latexpdf: 114 | $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex 115 | @echo "Running LaTeX files through pdflatex..." 116 | $(MAKE) -C $(BUILDDIR)/latex all-pdf 117 | @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." 118 | 119 | latexpdfja: 120 | $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex 121 | @echo "Running LaTeX files through platex and dvipdfmx..." 122 | $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja 123 | @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." 124 | 125 | text: 126 | $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text 127 | @echo 128 | @echo "Build finished. The text files are in $(BUILDDIR)/text." 129 | 130 | man: 131 | $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man 132 | @echo 133 | @echo "Build finished. The manual pages are in $(BUILDDIR)/man." 134 | 135 | texinfo: 136 | $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo 137 | @echo 138 | @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." 139 | @echo "Run \`make' in that directory to run these through makeinfo" \ 140 | "(use \`make info' here to do that automatically)." 141 | 142 | info: 143 | $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo 144 | @echo "Running Texinfo files through makeinfo..." 145 | make -C $(BUILDDIR)/texinfo info 146 | @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." 147 | 148 | gettext: 149 | $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale 150 | @echo 151 | @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." 152 | 153 | changes: 154 | $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes 155 | @echo 156 | @echo "The overview file is in $(BUILDDIR)/changes." 157 | 158 | linkcheck: 159 | $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck 160 | @echo 161 | @echo "Link check complete; look for any errors in the above output " \ 162 | "or in $(BUILDDIR)/linkcheck/output.txt." 163 | 164 | doctest: 165 | $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest 166 | @echo "Testing of doctests in the sources finished, look at the " \ 167 | "results in $(BUILDDIR)/doctest/output.txt." 168 | 169 | xml: 170 | $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml 171 | @echo 172 | @echo "Build finished. The XML files are in $(BUILDDIR)/xml." 173 | 174 | pseudoxml: 175 | $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml 176 | @echo 177 | @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." 178 | -------------------------------------------------------------------------------- /docs/source/basic-concepts.rst: -------------------------------------------------------------------------------- 1 | ============== 2 | Basic Concepts 3 | ============== 4 | 5 | .. _concept-project: 6 | 7 | Project 8 | ======= 9 | 10 | *Project* is a top-level element stored as a single file. 11 | 12 | Modeling a software system requires describing multiple models because it is not enough to describe the system with a single perspective, so we typically make multiple models such as *Use-Case Model*, *Design Model*, *Component Model*, *Deployment Model*, or others in a *Project*. 13 | 14 | Typically *Project* is organized as a set of *UMLModels*, *UMLPackages*, or *UMLSubsystems*. If you want to know more about UML Elements, please refer to OMG UML Specification. 15 | 16 | .. seealso:: 17 | :ref:`organizing-project` 18 | See the Organizing Project section. 19 | 20 | .. _concept-element: 21 | 22 | Model vs. Diagram 23 | ================= 24 | 25 | Many users are confusing the difference between *diagramming or drawing* tools such as Microsoft Visio and *modeling* tools such StarUML or Rational Software Architect. First you need to understand a diagram is not a model. 26 | 27 | *Model* or *software model* is a description of any aspect of a software system such as structure, behavior, requirement, and so on. A software model can be represented in textual, mathmatical or visual form. A *Model element* is a building block of a software model. 28 | 29 | A *Diagram* is a visual geometric symbolic representation of a software model. A software model can be represented in one or more diagrams with different aspects. For example, a diagram can focus on class hierarchical structure while another diagram can focus on interaction between objects. Diagrams consists of *view elements*, which are visual representations of a *model element*. 30 | 31 | A *model element* typically has multiple corresponding *view elements*. A model element has its own data such as *name*, *stereotype*, *type*, etc. A view element just renders the corresponding model element in a diagram. View elements may exists multiple times in a diagram or in different diagrams. If the *name* of a model element changed, all corresponding view elements reflect the changes in their diagrams. 32 | 33 | .. _concept-fragment: 34 | 35 | Fragment 36 | ======== 37 | 38 | A fragment is a part of a project saved as a separate file with the extension name ``.mfj``. Any element can be exported as a fragment, but typically *UMLPackage*, *UMLModel*, and *UMLSubsystem* are the candidates. Once a fragment is exported as a file, the fragment can be reused by importing in a project. 39 | 40 | .. seealso:: 41 | :ref:`import-fragment` 42 | To import a fragment file. 43 | 44 | :ref:`export-fragment` 45 | To export an element to a fragment file. 46 | 47 | .. _concept-profile: 48 | 49 | Profile 50 | ======= 51 | 52 | UML (Unified Modeling Language) is so general-purpose modeling language that could be used to express any kinds of software-intensive systems. In this reason, using UML for a specific domain or platform is not sufficient, so you may need to define UML Profile. StarUML provides UML profiles which can be used to expand UML. For example, UML profiles can be used for the following purposes. 53 | 54 | * Profiles for specific programming languages (C/C++, Java, C#, Python, etc.) 55 | * Profiles for specific development methodologies (RUP, Catalysis, UML Components, etc.) 56 | * Profiles for specific domains (EAI, CRM, SCM, ERP, etc.) 57 | 58 | 59 | .. _concept-extension: 60 | 61 | Extension 62 | ========= 63 | 64 | An extension is a package which adds new features to StarUML. For example, an extension can extend menus, UIs, dialogs, modeling notations, preferences, etc. An extension can be written in JavaScript, CSS3, and HTML5 and can use Node.js integrated in StarUML. Extensions can be easily installed, uninstalled, and updated via the main extension registry. 65 | 66 | .. seealso:: 67 | :doc:`managing-extensions` 68 | To use extensions. 69 | -------------------------------------------------------------------------------- /docs/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # StarUML documentation build configuration file, created by 4 | # sphinx-quickstart on Thu Aug 14 00:23:58 2014. 5 | # 6 | # This file is execfile()d with the current directory set to its 7 | # containing dir. 8 | # 9 | # Note that not all possible configuration values are present in this 10 | # autogenerated file. 11 | # 12 | # All configuration values have a default; values that are commented out 13 | # serve to show the default. 14 | 15 | import sys 16 | import os 17 | 18 | # If extensions (or modules to document with autodoc) are in another directory, 19 | # add these directories to sys.path here. If the directory is relative to the 20 | # documentation root, use os.path.abspath to make it absolute, like shown here. 21 | #sys.path.insert(0, os.path.abspath('.')) 22 | 23 | # -- General configuration ------------------------------------------------ 24 | 25 | # If your documentation needs a minimal Sphinx version, state it here. 26 | #needs_sphinx = '1.0' 27 | 28 | # Add any Sphinx extension module names here, as strings. They can be 29 | # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom 30 | # ones. 31 | extensions = [] 32 | 33 | # Add any paths that contain templates here, relative to this directory. 34 | templates_path = ['_templates'] 35 | 36 | # The suffix of source filenames. 37 | source_suffix = '.rst' 38 | 39 | # The encoding of source files. 40 | #source_encoding = 'utf-8-sig' 41 | 42 | # The master toctree document. 43 | master_doc = 'index' 44 | 45 | # General information about the project. 46 | project = u'StarUML' 47 | copyright = u'2014, MKLab' 48 | 49 | # The version info for the project you're documenting, acts as replacement for 50 | # |version| and |release|, also used in various other places throughout the 51 | # built documents. 52 | # 53 | # The short X.Y version. 54 | version = '2.0.0' 55 | # The full version, including alpha/beta/rc tags. 56 | release = '2.0.0' 57 | 58 | # The language for content autogenerated by Sphinx. Refer to documentation 59 | # for a list of supported languages. 60 | #language = None 61 | 62 | # There are two options for replacing |today|: either, you set today to some 63 | # non-false value, then it is used: 64 | #today = '' 65 | # Else, today_fmt is used as the format for a strftime call. 66 | #today_fmt = '%B %d, %Y' 67 | 68 | # List of patterns, relative to source directory, that match files and 69 | # directories to ignore when looking for source files. 70 | exclude_patterns = [] 71 | 72 | # The reST default role (used for this markup: `text`) to use for all 73 | # documents. 74 | #default_role = None 75 | 76 | # If true, '()' will be appended to :func: etc. cross-reference text. 77 | #add_function_parentheses = True 78 | 79 | # If true, the current module name will be prepended to all description 80 | # unit titles (such as .. function::). 81 | #add_module_names = True 82 | 83 | # If true, sectionauthor and moduleauthor directives will be shown in the 84 | # output. They are ignored by default. 85 | #show_authors = False 86 | 87 | # The name of the Pygments (syntax highlighting) style to use. 88 | pygments_style = 'sphinx' 89 | 90 | # A list of ignored prefixes for module index sorting. 91 | #modindex_common_prefix = [] 92 | 93 | # If true, keep warnings as "system message" paragraphs in the built documents. 94 | #keep_warnings = False 95 | 96 | 97 | # -- Options for HTML output ---------------------------------------------- 98 | 99 | # The theme to use for HTML and HTML Help pages. See the documentation for 100 | # a list of builtin themes. 101 | html_theme = 'default' 102 | 103 | # Theme options are theme-specific and customize the look and feel of a theme 104 | # further. For a list of options available for each theme, see the 105 | # documentation. 106 | #html_theme_options = {} 107 | 108 | # Add any paths that contain custom themes here, relative to this directory. 109 | #html_theme_path = [] 110 | 111 | # The name for this set of Sphinx documents. If None, it defaults to 112 | # " v documentation". 113 | #html_title = None 114 | 115 | # A shorter title for the navigation bar. Default is the same as html_title. 116 | #html_short_title = None 117 | 118 | # The name of an image file (relative to this directory) to place at the top 119 | # of the sidebar. 120 | #html_logo = None 121 | 122 | # The name of an image file (within the static path) to use as favicon of the 123 | # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 124 | # pixels large. 125 | #html_favicon = None 126 | 127 | # Add any paths that contain custom static files (such as style sheets) here, 128 | # relative to this directory. They are copied after the builtin static files, 129 | # so a file named "default.css" will overwrite the builtin "default.css". 130 | html_static_path = ['_static'] 131 | 132 | # Add any extra paths that contain custom files (such as robots.txt or 133 | # .htaccess) here, relative to this directory. These files are copied 134 | # directly to the root of the documentation. 135 | #html_extra_path = [] 136 | 137 | # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, 138 | # using the given strftime format. 139 | #html_last_updated_fmt = '%b %d, %Y' 140 | 141 | # If true, SmartyPants will be used to convert quotes and dashes to 142 | # typographically correct entities. 143 | #html_use_smartypants = True 144 | 145 | # Custom sidebar templates, maps document names to template names. 146 | #html_sidebars = {} 147 | 148 | # Additional templates that should be rendered to pages, maps page names to 149 | # template names. 150 | #html_additional_pages = {} 151 | 152 | # If false, no module index is generated. 153 | #html_domain_indices = True 154 | 155 | # If false, no index is generated. 156 | #html_use_index = True 157 | 158 | # If true, the index is split into individual pages for each letter. 159 | #html_split_index = False 160 | 161 | # If true, links to the reST sources are added to the pages. 162 | #html_show_sourcelink = True 163 | 164 | # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. 165 | #html_show_sphinx = True 166 | 167 | # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. 168 | #html_show_copyright = True 169 | 170 | # If true, an OpenSearch description file will be output, and all pages will 171 | # contain a tag referring to it. The value of this option must be the 172 | # base URL from which the finished HTML is served. 173 | #html_use_opensearch = '' 174 | 175 | # This is the file name suffix for HTML files (e.g. ".xhtml"). 176 | #html_file_suffix = None 177 | 178 | # Output file base name for HTML help builder. 179 | htmlhelp_basename = 'StarUMLdoc' 180 | 181 | 182 | # -- Options for LaTeX output --------------------------------------------- 183 | 184 | latex_elements = { 185 | # The paper size ('letterpaper' or 'a4paper'). 186 | #'papersize': 'letterpaper', 187 | 188 | # The font size ('10pt', '11pt' or '12pt'). 189 | #'pointsize': '10pt', 190 | 191 | # Additional stuff for the LaTeX preamble. 192 | #'preamble': '', 193 | } 194 | 195 | # Grouping the document tree into LaTeX files. List of tuples 196 | # (source start file, target name, title, 197 | # author, documentclass [howto, manual, or own class]). 198 | latex_documents = [ 199 | ('index', 'StarUML.tex', u'StarUML Documentation', 200 | u'MKLab', 'manual'), 201 | ] 202 | 203 | # The name of an image file (relative to this directory) to place at the top of 204 | # the title page. 205 | #latex_logo = None 206 | 207 | # For "manual" documents, if this is true, then toplevel headings are parts, 208 | # not chapters. 209 | #latex_use_parts = False 210 | 211 | # If true, show page references after internal links. 212 | #latex_show_pagerefs = False 213 | 214 | # If true, show URL addresses after external links. 215 | #latex_show_urls = False 216 | 217 | # Documents to append as an appendix to all manuals. 218 | #latex_appendices = [] 219 | 220 | # If false, no module index is generated. 221 | #latex_domain_indices = True 222 | 223 | 224 | # -- Options for manual page output --------------------------------------- 225 | 226 | # One entry per manual page. List of tuples 227 | # (source start file, name, description, authors, manual section). 228 | man_pages = [ 229 | ('index', 'staruml', u'StarUML Documentation', 230 | [u'MKLab'], 1) 231 | ] 232 | 233 | # If true, show URL addresses after external links. 234 | #man_show_urls = False 235 | 236 | 237 | # -- Options for Texinfo output ------------------------------------------- 238 | 239 | # Grouping the document tree into Texinfo files. List of tuples 240 | # (source start file, target name, title, author, 241 | # dir menu entry, description, category) 242 | texinfo_documents = [ 243 | ('index', 'StarUML', u'StarUML Documentation', 244 | u'MKLab', 'StarUML', 'One line description of project.', 245 | 'Miscellaneous'), 246 | ] 247 | 248 | # Documents to append as an appendix to all manuals. 249 | #texinfo_appendices = [] 250 | 251 | # If false, no module index is generated. 252 | #texinfo_domain_indices = True 253 | 254 | # How to display URL addresses: 'footnote', 'no', or 'inline'. 255 | #texinfo_show_urls = 'footnote' 256 | 257 | # If true, do not generate a @detailmenu in the "Top" node's menu. 258 | #texinfo_no_detailmenu = False 259 | -------------------------------------------------------------------------------- /docs/source/editing-elements-and-diagrams.rst: -------------------------------------------------------------------------------- 1 | ============================= 2 | Editing Elements and Diagrams 3 | ============================= 4 | 5 | .. contents:: 6 | 7 | 8 | 9 | Editing Diagrams 10 | ================ 11 | 12 | Create Diagram 13 | -------------- 14 | 15 | To create a Diagram: 16 | 17 | 1. Select first an element where a new Diagram to be contained as a child in **Explorer**. 18 | 2. Select **Model | Add Diagram | ** in Menu Bar or select **Add Diagram | ** in Context Menu. 19 | 20 | 21 | Delete Diagram 22 | -------------- 23 | 24 | To delete a Diagram: 25 | 26 | 1. Select a Diagram to delete in **Explorer**. 27 | 2. Press :kbd:`Ctrl+Delete` or select **Edit | Delete from Model** in Menu Bar or **Delete from Model** in Context Menu. 28 | 29 | 30 | Open Diagram 31 | ------------ 32 | 33 | To open a diagram, double-click a diagram in **Explorer**. 34 | 35 | Close Diagram 36 | ------------- 37 | 38 | To close a diagram, click the close icon (``x`` mark) of a diagram in **Working Diagrams** or press :kbd:`F4` or select **View | Close Diagram** in Menu Bar. 39 | 40 | To close other diagram except a active diagram, press :kbd:`Ctrl+F4` or select **View | Close Other Diagrams** in Menu Bar. 41 | 42 | To close all diagrams, press :kbd:`Shift+F4` or select **View | Close All Diagrams** in Menu Bar. 43 | 44 | 45 | Change Active Diagram 46 | --------------------- 47 | 48 | To change active diagram, select a diagram in **Working Diagram**. 49 | 50 | To activate the next diagram, press :kbd:`Ctrl+Shift+]` or select **View | Next Diagram**. 51 | 52 | To activate the previous diagram, press :kbd:`Ctrl+Shift+[` or select **View | Previous Diagram**. 53 | 54 | Zoom In and Out 55 | --------------- 56 | 57 | To zoom in the diagram, press :kbd:`Ctrl++` or select **View | Zoom In** in Menu Bar. 58 | 59 | To zoom out the diagram, press :kbd:`Ctrl+-` or select **View | Zoom Out** in Menu Bar. 60 | 61 | To set zoom level to actual size, press :kbd:`Ctrl+0` or select **View | Actual Size** in Menu Bar. 62 | 63 | You can check the current zoom level in **StatusBar**. 64 | 65 | Editing Elements 66 | ================ 67 | 68 | Create Element 69 | -------------- 70 | 71 | You have following options to create Model Elements and View Elements. 72 | 73 | To create an Element from **Toolbox**: 74 | 75 | 1. Select **** in **Toolbox**. 76 | 2. Drag on the diagram as the size of element, or link two elements if the element is a kind of relationship. 77 | 78 | .. note:: 79 | In most cases, creating an element from **Toolbox** means creating the both Model Element and View Element. For example, if you create a Class in a Diagram from Toolbox, a Class Model Element and a Class View Model which referencing the Model Element will be created. See :ref:`concept-element` 80 | 81 | If you have already Model Elements, you can create View Elements referencing the Model Element on a Diagram. 82 | 83 | 84 | To create a View Model by Drag-and-Drop: 85 | 86 | 1. Select a Model Element in **Explorer**. 87 | 2. Drag the Model Element and drop on a Diagram. 88 | 89 | 90 | To create a Model Element in **Explorer**: 91 | 92 | 1. Select first an element where a new Model Element to be contained as a child in **Explorer**. 93 | 2. Select **Model | Add | ** in Menu Bar or select **Add | ** in Context Menu. 94 | 95 | 96 | .. _edit-delete: 97 | 98 | Delete Elements 99 | --------------- 100 | 101 | .. seealso:: 102 | :ref:`concept-element` 103 | Before deleting elements, you need to distinguish the difference of Model Element, View Element, and Diagram. 104 | 105 | 106 | To delete View Elements in a Diagram. 107 | 108 | 1. Select View Elements to be deleted in a Diagram. 109 | 2. Press :kbd:`Delete` or Select **Edit | Delete** in Menu Bar or **Delete** in Context Menu. 110 | 111 | .. note:: 112 | Deleting View Elements do not delete Model Elements. 113 | 114 | 115 | To delete Model Elements: 116 | 117 | 1. Select Elements to be deleted in a Diagram or in **Explorer**. 118 | 2. Press :kbd:`Ctrl+Delete` or Select **Edit | Delete from Model** in Menu Bar or **Delete from Model** in Context Menu. 119 | 120 | .. note:: 121 | Model Elements are always deleted with corresponding View Elements. 122 | 123 | 124 | .. _edit-select-elements: 125 | 126 | Select Elements 127 | --------------- 128 | 129 | To select view elements in **Diagram Editor**: 130 | 131 | You can select an Element in Diagram just by clicking on an Element. If you want to select additional elements while keeping current selections, click on element with pressing :kbd:`Shift`. 132 | When you drag an area, Elements overlaps the area will be selected. Pressing :kbd:`Shift` also work with dragging. 133 | 134 | If you want to select all elements in the Diagram, press :kbd:`Ctrl+A` or select **Edit | Select All** in Menu Bar or **Select All** in Context Menu. 135 | 136 | .. note:: 137 | Selecing an Element on a Diagram means selection of the both Model Element and View Element. 138 | 139 | 140 | To select a model element in **Explorer**: 141 | 142 | In **Explorer**, you can select a Model Element by clicking on an Element. 143 | 144 | If you want to select an element in **Explorer** corresponding to the a selected element in Diagram, press :kbd:`Ctrl+E` or select **Edit | Select In Explorer** in Menu Bar or **Select In Explorer** in Context Menu. 145 | 146 | 147 | .. _edit-copy-paste: 148 | 149 | Copy and Paste 150 | -------------- 151 | 152 | When copying or cutting elements for pasting, a clear distinction has to be made between model elements and view elements. If a model element is copied, it has to be pasted under a model element. In this case, all the sub-elements contained in the selected element are copied together. View elements can be copied within the same diagram or to different diagrams. Copied view elements can be pasted in diagrams only; they cannot be pasted to model elements. Copying and pasting may also be restricted depending on the view element types and diagram types. 153 | 154 | To copy and paste view elements in **Diagram Editor** 155 | 156 | 1. Select view elements in a diagram to copy. (You can select multiple elements. See :ref:`edit-select-elements`) 157 | 2. Press :kbd:`Ctrl+C` or select **Edit | Copy** in Menu Bar or **Copy** in Context Menu. (To cut view elements, press :kbd:`Ctrl+X` or select **Edit | Cut** in Menu Bar or **Cut** in Context Menu) 158 | 3. Open the diagram where the copied view elements to be pasted. (See open diagram??) 159 | 4. Press :kbd:`Ctrl+V` or select **Edit | Paste** in Menu Bar or **Paste** in Context Menu. The copied view elements will be pasted to the active diagram. 160 | 161 | 162 | To copy and paste a model element in **Explorer**: 163 | 164 | 1. Select a model element to copy in **Explorer**. 165 | 2. Press :kbd:`Ctrl+C` or select **Edit | Copy** in Menu Bar or **Copy** in Context Menu. (To cut view elements, press :kbd:`Ctrl+X` or select **Edit | Cut** in Menu Bar or **Cut** in Context Menu) 166 | 3. Select a model element where the copied element will be pasted in **Explorer**. 167 | 4. Press :kbd:`Ctrl+V` or select **Edit | Paste** in Menu Bar or **Paste** in Context Menu. The copied view elements will be pasted to the active diagram. The copied model element can be pasted in where an element is able to contain. 168 | 169 | 170 | .. note:: 171 | Some elements are not allowed to copy, cut, and paste. 172 | 173 | .. _edit-undo-redo: 174 | 175 | Undo and Redo 176 | ------------- 177 | 178 | To undo an action, press :kbd:`Ctrl+Z` or select **Edit | Undo** in Menu Bar. 179 | 180 | To redo an undo-ed action, press :kbd:`Ctrl+Y` or select **Edit | Redo** in Menu Bar. 181 | 182 | 183 | .. _edit-edit-properties: 184 | 185 | Edit Properties 186 | --------------- 187 | 188 | You can edit properties of model elements in :ref:`ui-property-editor`. 189 | 190 | 191 | .. _edit-documenting-elements: 192 | 193 | Documenting Elements 194 | -------------------- 195 | 196 | You can edit documentation of model elements in :ref:`ui-documentation-editor`. 197 | 198 | 199 | .. _format: 200 | 201 | Formatting View Elements 202 | ======================== 203 | 204 | .. _format-font: 205 | 206 | Change Font 207 | ----------- 208 | 209 | To change font face, size, and color of view elements: 210 | 211 | 1. Select view elements in diagram. 212 | 2. Show **FontDialog** by pressing :kbd:`Ctrl+Shift+F` or selecting **Format | Font...** in Menu Bar or Context Menu. 213 | 3. Select font face, size or color and press **OK** button. 214 | 215 | .. image:: images/font-dialog.png 216 | 217 | 218 | You can also use :ref:`ui-style-editor` to change Font face, size, and color. 219 | 220 | .. _format-line-color: 221 | 222 | Change Line Color 223 | ----------------- 224 | 225 | To change line color of view elements: 226 | 227 | 1. Select view elements in diagram. 228 | 2. Show **ColorDialog** for line color by pressing :kbd:`Ctrl+Shift+L` or selecting **Format | Line Color...** in Menu Bar or Context Menu. 229 | 3. Select line color and press **OK** button. 230 | 231 | .. image:: images/color-dialog.png 232 | 233 | You can also use :ref:`ui-style-editor` to change line color. 234 | 235 | 236 | .. _format-fill-color: 237 | 238 | Change Fill Color 239 | ----------------- 240 | 241 | To change fill color of view elements: 242 | 243 | 1. Select view elements in diagram. 244 | 2. Show **ColorDialog** for fill color by pressing :kbd:`Ctrl+Shift+I` or selecting **Format | Fill Color...** in Menu Bar or Context Menu. 245 | 3. Select fill color and press **OK** button. 246 | 247 | You can also use :ref:`ui-style-editor` to change fill color. 248 | 249 | 250 | .. _format-line-style: 251 | 252 | Change Line Style 253 | ------------------ 254 | 255 | .. image:: images/line-style.png 256 | 257 | To change line style of view elements: 258 | 259 | 1. Select view elements in diagram. 260 | 2. Select one of line styles. 261 | * Rectilinear - Press :kbd:`Ctrl+L` or select **Format | Line Style | Rectilinear** in Menu Bar or Context Menu. 262 | * Oblique - Press :kbd:`Ctrl+B` or select **Format | Line Style | Oblique** in Menu Bar or Context Menu. 263 | 264 | You can also use :ref:`ui-style-editor` to line style. 265 | 266 | 267 | .. _format-auto-resize: 268 | 269 | Set Auto Resize 270 | --------------- 271 | 272 | To set view elements always resize automatically: 273 | 274 | 1. Select view elements in diagram. 275 | 2. Press :kbd:`Ctrl+Shift+R` or check (or uncheck) **Format | Auto Resize** in Menu Bar or Context Menu. 276 | 277 | You can also use :ref:`ui-style-editor` to line style. 278 | 279 | 280 | .. _format-word-wrap: 281 | 282 | Set Word Wrap 283 | ------------- 284 | 285 | To allow text can be shown in multiple lines: 286 | 287 | 1. Select view elements in diagram. 288 | 2. Press :kbd:`Ctrl+Shift+W` or check (or uncheck) **Format | Word Wrap** in Menu Bar or Context Menu. 289 | 290 | 291 | .. _format-stereotype-display: 292 | 293 | Stereotype Display 294 | ------------------ 295 | 296 | An element has six alternative representations based on the stereotype. To change stereotype display: 297 | 298 | 1. Select view elements in diagram. 299 | 2. Press :kbd:`Ctrl+Shift+0` ~ :kbd:`Ctrl+Shift+5` or select **Format | Stereotype Display | ** in Menu Bar or Context Menu. 300 | 301 | Supported stereotype display kinds are follow: 302 | 303 | * None (:kbd:`Ctrl+Shift+0`) : Do not show stereotype. 304 | * Label (:kbd:`Ctrl+Shift+1`) : Show stereotype as a label. 305 | * Decoration (:kbd:`Ctrl+Shift+2`) : Show stereotype as a decorated icon on the top left. 306 | * Decoration with Label (:kbd:`Ctrl+Shift+3`) : Show stereotype as a label with a decorated icon. 307 | * Icon (:kbd:`Ctrl+Shift+4`) : Show element as a icon. 308 | * Icon with Label (:kbd:`Ctrl+Shift+5`) : Show element as a icon with label. 309 | 310 | .. image:: /images/stereotype-display.png 311 | 312 | 313 | .. _format-show-visibility: 314 | 315 | Show Visibility 316 | --------------- 317 | 318 | To show (or hide) visibilities: 319 | 320 | 1. Select view elements in diagram. 321 | 2. Press :kbd:`Ctrl+Shift+V` or check (or uncheck) **Format | Show Visibility** in Menu Bar or Context Menu. 322 | 323 | 324 | .. _format-show-namespace: 325 | 326 | Show Namespace 327 | -------------- 328 | 329 | To show (or hide) namespace: 330 | 331 | 1. Select view elements in diagram. 332 | 2. Press :kbd:`Ctrl+Shift+N` or check (or uncheck) **Format | Show Namespace** in Menu Bar or Context Menu. 333 | 334 | 335 | .. _format-show-property: 336 | 337 | Show Property 338 | ------------- 339 | 340 | To show (or hide) properties: 341 | 342 | 1. Select view elements in diagram. 343 | 2. Press :kbd:`Ctrl+Shift+P` or check (or uncheck) **Format | Show Property** in Menu Bar or Context Menu. 344 | 345 | 346 | .. _format-show-type: 347 | 348 | Show Type 349 | --------- 350 | 351 | To show (or hide) types: 352 | 353 | 1. Select view elements in diagram. 354 | 2. Press :kbd:`Ctrl+Shift+Y` or check (or uncheck) **Format | Show Type** in Menu Bar or Context Menu. 355 | 356 | 357 | .. _format-show-multiplicities: 358 | 359 | Show Multiplicity 360 | ----------------- 361 | 362 | To show (or hide) multiplicities: 363 | 364 | 1. Select view elements in diagram. 365 | 2. Press :kbd:`Ctrl+Shift+M` or check (or uncheck) **Format | Show Multiplicity** in Menu Bar or Context Menu. 366 | 367 | .. _format-show-operation-signature: 368 | 369 | Show Operation Signature 370 | ------------------------ 371 | 372 | To show (or hide) operation signature: 373 | 374 | 1. Select view elements in diagram. 375 | 2. Press :kbd:`Ctrl+Shift+G` or check (or uncheck) **Format | Show Operation Signature** in Menu Bar or Context Menu. 376 | 377 | .. _format-suppress-attributes: 378 | 379 | Suppress Attributes 380 | ------------------- 381 | 382 | To suppress attributes: 383 | 384 | 1. Select view elements (e.g. Class) in diagram. 385 | 2. Press :kbd:`Ctrl+Shift+A` or check (or uncheck) **Format | Suppress Attributes** in Menu Bar or Context Menu. 386 | 387 | 388 | .. _format-suppress-operations: 389 | 390 | Suppress Operations 391 | ------------------- 392 | 393 | To suppress operations: 394 | 395 | 1. Select view elements (e.g. Class) in diagram. 396 | 2. Press :kbd:`Ctrl+Shift+O` or check (or uncheck) **Format | Suppress Operations** in Menu Bar or Context Menu. 397 | 398 | 399 | .. _format-suppress-literals: 400 | 401 | Suppress Literals 402 | ----------------- 403 | 404 | To suppress literals: 405 | 406 | 1. Select Enumeration view elements in diagram. 407 | 2. Press :kbd:`Ctrl+Shift+T` or check (or uncheck) **Format | Suppress Literals** in Menu Bar or Context Menu. 408 | 409 | 410 | .. _format-align-views: 411 | 412 | Aligning View Elements 413 | ---------------------- 414 | 415 | To bring view elements on the front: 416 | 417 | 1. Select view elements in diagram. 418 | 2. Select **Format | Alignment | Bring to Front** in Menu Bar or **Alignment | Bring to Front** in Context Menu. 419 | 420 | Or, to send view elements to the back: 421 | 422 | 1. Select view elements in diagram. 423 | 2. Select **Format | Alignment | Send to Back** in Menu Bar or **Alignment | Send to Back** in Context Menu. 424 | 425 | And, you can align two or more view elements: 426 | 427 | 1. Select view elements in diagram. 428 | 2. Select **Format | Alignment | ** in Menu Bar or **Alignment | ** in Context Menu. 429 | * Align Left : Align selected view elements to the left. 430 | * Align Right : Align selected view elements to the right. 431 | * Align Middle : Center selected view elements horizontally. 432 | * Align Top : Align selected view elements to the top. 433 | * Align Bottom : Align selected view elements to the bottom. 434 | * Align Center : Center selected view elements vertically. 435 | 436 | .. _format-layout-diagram: 437 | 438 | Layout Diagram 439 | -------------- 440 | 441 | To layout diagram automatically: 442 | 443 | 1. Open the diagram to be layout. 444 | 2. Select **Format | Layout | Auto** in Menu Bar. 445 | 446 | If you want to layout diagram in a particular direction: 447 | 448 | 1. Open the diagram to be layout. 449 | 2. Select **Format | Layout | ** in Menu Bar. Supported directions are **Top to Bottom**, **Bottom to Top**, **Left to Right** and **Right to Left**. 450 | 451 | .. _extend-elements: 452 | 453 | Extending Elements 454 | ================== 455 | 456 | .. _extend-assign-stereotype: 457 | 458 | Assign Stereotype 459 | ----------------- 460 | 461 | To assign defined stereotype to elements (e.g. defined in UML Standard Profile): 462 | 463 | 1. Select model elements to assign stereotype. 464 | 2. Click the magnifier icon on the right side of `stereotype` property in :ref:`ui-property-editor`. 465 | 3. Select a stereotype in :ref:`ui-element-picker-dialog`. 466 | 467 | 468 | To assign temporal stereotype to elements: 469 | 470 | 1. Select model elements to assign stereotype. 471 | 2. Enter stereotype name in `stereotype` property in :ref:`ui-property-editor`. 472 | 473 | .. _extend-add-constraints: 474 | 475 | Add Constraints 476 | --------------- 477 | 478 | To add a Constraint to an element: 479 | 480 | 1. Select model elements to add a constraint. 481 | 2. Select **Model | Add | Constraint** in Menu Bar or select **Add | Constraint** in Context Menu. 482 | 3. Edit constraint in `specification` property in :ref:`ui-property-editor`. 483 | 484 | 485 | .. _extend-add-tags: 486 | 487 | Add Tags 488 | -------- 489 | 490 | Tag is an element to add extended properties to Model Elements 491 | 492 | To add a Tag to an element: 493 | 494 | 1. Select an Element in **Explorer** or in a Diagram. 495 | 2. Select **Model | Add | Tag** in Menu Bar or select **Add | Tag** in Context Menu. 496 | 497 | Properties of Tag: 498 | 499 | ``name`` 500 | Name of Tag 501 | 502 | ``kind`` 503 | Kind of Tag. ``kind`` could be one of ``string``, ``reference``, ``boolean``, ``number``, or ``hidden``. if ``hidden`` is chosen, this Tag will not be shown on View Element. 504 | 505 | ``value`` 506 | Value of Tag when ``kind`` is ``string``. 507 | 508 | ``reference`` 509 | Reference value of Tag when ``kind`` is ``reference``. 510 | 511 | ``checked`` 512 | Boolean value of Tag when ``kind`` is ``boolean``. 513 | 514 | ``number`` 515 | Number value of Tag when ``kind`` is ``number``. 516 | 517 | To show or hide Tags on View Elements, see :ref:`format-show-property`. 518 | 519 | .. _find-elements: 520 | 521 | Finding Model Elements 522 | ====================== 523 | 524 | To find model elements by keyword: 525 | 526 | 1. Press :kbd:`Ctrl+F` or Select **Model | Find...** in Menu Bar. 527 | 2. Enter keyword in Edit Box. 528 | 3. Check **Case sensitive** if you want to find keyword case sensitively, and check **Find in documentation** if you want to find keyword in documentation of elements. 529 | 4. Matched elements will be shown on a Bottom Panel. 530 | 531 | -------------------------------------------------------------------------------- /docs/source/getting-started.rst: -------------------------------------------------------------------------------- 1 | =============== 2 | Getting Started 3 | =============== 4 | 5 | Installation 6 | ============ 7 | 8 | Run 9 | ==== 10 | 11 | User-Interface 12 | ============== 13 | 14 | Create Project 15 | ============== 16 | 17 | Create Diagram 18 | ============== 19 | 20 | -------------------------------------------------------------------------------- /docs/source/images/color-dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklauslee/staruml-docs/442cda895743d89641a9d9636301b0f904cade50/docs/source/images/color-dialog.png -------------------------------------------------------------------------------- /docs/source/images/extension-manager.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklauslee/staruml-docs/442cda895743d89641a9d9636301b0f904cade50/docs/source/images/extension-manager.png -------------------------------------------------------------------------------- /docs/source/images/font-dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklauslee/staruml-docs/442cda895743d89641a9d9636301b0f904cade50/docs/source/images/font-dialog.png -------------------------------------------------------------------------------- /docs/source/images/line-style.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklauslee/staruml-docs/442cda895743d89641a9d9636301b0f904cade50/docs/source/images/line-style.png -------------------------------------------------------------------------------- /docs/source/images/stereotype-display.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklauslee/staruml-docs/442cda895743d89641a9d9636301b0f904cade50/docs/source/images/stereotype-display.png -------------------------------------------------------------------------------- /docs/source/index.rst: -------------------------------------------------------------------------------- 1 | .. StarUML documentation master file, created by 2 | sphinx-quickstart on Thu Aug 14 00:23:58 2014. 3 | You can adapt this file completely to your liking, but it should at least 4 | contain the root `toctree` directive. 5 | 6 | StarUML 2 Documentation 7 | ======================= 8 | 9 | .. note:: 10 | This documentation is a work in progress. 11 | 12 | Contents: 13 | 14 | .. toctree:: 15 | :maxdepth: 2 16 | 17 | basic-concepts 18 | managing-project 19 | editing-elements-and-diagrams 20 | Modeling with UML 21 | managing-extensions 22 | Reference 23 | 24 | 25 | Indices and tables 26 | ================== 27 | 28 | * :ref:`genindex` 29 | * :ref:`modindex` 30 | * :ref:`search` 31 | 32 | -------------------------------------------------------------------------------- /docs/source/introduction.rst: -------------------------------------------------------------------------------- 1 | ============ 2 | Introduction 3 | ============ 4 | 5 | 6 | UML 2 Compatible 7 | ================ 8 | 9 | UML metamodel of StarUML 2 is newly defined. It is not only compatible with UML 2.x standard but also simplified to access to model data much easier. StarUML supports totally 11 kinds of UML diagrams (Class, Object, Use Case, Component, Deployment, Composite Structure, Sequence, Communication, Startchart, Activity and Profile Diagram). 10 | Do you want to extend UML? Then, you don't need to defined complicated XML documents or to write codes. UML Profiles could be defined easily using Profile Diagram. The user-defined profile can be embeded within the user's model so as to share models without distribution of profile in a separate way. 11 | 12 | Extensibility 13 | ============= 14 | 15 | StarUML 2 is developed using modern Web Technologies, so anyone can write extensions using HTML5, CSS, and JavaScript. Adding a new menu, accessing to model data, adding a new user interfaces or dialogs, and even new modeling languages (e.g., ERD, BPMN) could be defined as an extension. In addition, the model file (.mdj) is stored in JSON (JavaScript Object Notation) format which can be parsed and accessed easily in many programming languages. 16 | One interesting point of StarUML 2 is Node.js integration. This allows you to access local files, many kinds of Databases, and interoperating with various Servers. Moreover, you can utilize more than 50,000 Node.js packages to write extensions. 17 | 18 | Enhanced UX 19 | =========== 20 | 21 | StarUML 2 provide completely new platform-neutral user interfaces (Dark Theme, Quick Edit, Dialogs) while keeping usability, simplicity, and modern design trends. 22 | Diagram representation is much improved via anti-alising and direct use of Web Fonts. Diagrams can be exported in PNG, JPEG, and SVG formats. 23 | 24 | -------------------------------------------------------------------------------- /docs/source/managing-extensions.rst: -------------------------------------------------------------------------------- 1 | =================== 2 | Managing Extensions 3 | =================== 4 | 5 | Install Extension 6 | ================= 7 | 8 | To install an extension from Extension Registry: 9 | 10 | 1. Show Extension Manager by selecting **Tools | Extension Manager...**. 11 | 2. Select **Registry** button. 12 | 3. Find an extension to install by search. 13 | 4. Press **Install** button of the extension. 14 | 15 | To install an extension directly from Github repository: 16 | 17 | 1. Show Extension Manager by selecting **Tools | Extension Manager...**. 18 | 2. Select **Install From Url** button. 19 | 3. Enter Url of the Github project on input box 20 | 4. press **Install** button. 21 | 22 | To install an extension manually: 23 | 24 | 1. Get an extension as a ``.zip`` file. 25 | 2. Extract the file on the extensions path. 26 | * :file:`/Users//Library/Application Support/StarUML/extensions/user` for Mac OS. 27 | * :file:`C:\\Users\\\\AppData\\Roaming\\StarUML\\extensions\\user` for Windows. 28 | 3. Check a folder in the extensions path and :file:`main.js` file in the folder. 29 | 4. Restart StarUML. 30 | 31 | Uninstall Extension 32 | =================== 33 | 34 | To uninstall an extension: 35 | 36 | 1. Show Extension Manager by selecting **Tools | Extension Manager...**. 37 | 2. Select **Installed** button. 38 | 3. Find an extension to uninstall by search. 39 | 4. Press **Remove** button of the extension. 40 | 41 | To install an extension manually: 42 | 43 | 1. Go to the extensions path. 44 | * :file:`/Users//Library/Application Support/StarUML/extensions/user` for Mac OS. 45 | * :file:`C:\\Users\\\\AppData\\Roaming\\StarUML\\extensions\\user` for Windows. 46 | 2. Remove the extension folder to uninstall. 47 | 3. Restart StarUML. 48 | 49 | 50 | Update Extension 51 | ================ 52 | 53 | To uninstall an extension: 54 | 55 | 1. Show Extension Manager by selecting **Tools | Extension Manager...**. 56 | 2. Select **Registry** button. 57 | 3. **Update** button will be shown if the extension has updates. 58 | 4. Press **Update** button of the extension. 59 | 60 | To update an extension manually: 61 | 62 | 1. Uninstall extension of old version manually. 63 | 2. Install extension of new version manually. 64 | 3. Restart StarUML. 65 | -------------------------------------------------------------------------------- /docs/source/managing-project.rst: -------------------------------------------------------------------------------- 1 | 2 | .. _managing-project: 3 | 4 | ================ 5 | Managing Project 6 | ================ 7 | 8 | .. _new-project: 9 | 10 | New Project 11 | =========== 12 | 13 | To create a modeling project, press :kbd:`Ctrl+n` or select **File | New**. If you want create a project from templates, select a template under **File | New From Template | **. 14 | 15 | 16 | .. _open-project: 17 | 18 | Open Project 19 | ============ 20 | 21 | If you have model files (``.mdj``), you can open it in StarUML. To open a model file, press :kbd:`Ctrl+o` or select **File | Open...** and then select a file in Open Dialog. 22 | 23 | 24 | .. _open-v1-file: 25 | 26 | Open StarUML V1 File 27 | ==================== 28 | 29 | If you have StarUML V1 model files (``.uml``), you can import by selecting **File | Import | StarUML 1 File (.uml)..**. 30 | 31 | 32 | .. _save-project: 33 | 34 | Save Project 35 | ============ 36 | 37 | You can save the working project into a file by pressing :kbd:`Ctrl+s` or selecting **File | Save**. If you want to save as another file, press :kbd:`Ctrl+Shift+s` or select **File | Save As...**. 38 | 39 | 40 | .. _close-project: 41 | 42 | Close Project 43 | ============= 44 | 45 | To close working project, select **File | Close**. If you didn't saved the project, you will be asked to save or not. 46 | 47 | 48 | .. _export-fragment: 49 | 50 | Export Fragment 51 | =============== 52 | 53 | To export a part of the project as a fragment, select **File | Export | Fragment...** and then select an element to export in **Element Picker Dialog**. 54 | 55 | 56 | .. _import-fragment: 57 | 58 | Import Fragment 59 | =============== 60 | 61 | To import a fragment into the project, select **File | Import | Fragment...**. The fragment will be included as a child of the project. 62 | -------------------------------------------------------------------------------- /docs/source/modeling-with-uml/modeling-with-uml.rst: -------------------------------------------------------------------------------- 1 | ================= 2 | Modeling with UML 3 | ================= 4 | 5 | .. toctree:: 6 | :maxdepth: 2 7 | 8 | organizing-project 9 | working-with-class-diagram 10 | working-with-package-diagram 11 | working-with-composite-structure-diagram 12 | working-with-object-diagram 13 | working-with-component-diagram 14 | working-with-deployment-diagram 15 | working-with-use-case-diagram 16 | working-with-sequence-diagram 17 | working-with-communication-diagram 18 | working-with-statechart-diagram 19 | working-with-activity-diagram 20 | working-with-profile-diagram 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /docs/source/modeling-with-uml/organizing-project.rst: -------------------------------------------------------------------------------- 1 | .. _organizing-project: 2 | 3 | ================== 4 | Organizing Project 5 | ================== 6 | 7 | A system is typically described in multiple perspectives. 8 | 9 | Start from Template 10 | ------------------- 11 | 12 | You can start a modeling project by selecting a template. To start a project with a template, select **File | New From Template | **. StarUML supports 4 default templates: 13 | 14 | * **UMLMinimal** - A single model with UML Standard Profile. 15 | * **UMLConventional** - Use Case Model, Analysis Model, Design Model, Implementation Model, and Deployment Model with UML Standard Profile. 16 | * **4+1 View Model** - Pilippe Kruchten's `4+1 Architectural View Model `_. 17 | * **Rational** : Approach of Rational Rose Tool. 18 | 19 | If you don't want to use pre-defined templates, you need to make your own project structure. 20 | 21 | Applying Profiles 22 | ----------------- 23 | 24 | To include UML Standard Profile, select **Model | Apply Profile | UML Standard Profile (v2)** in Menu Bar. 25 | -------------------------------------------------------------------------------- /docs/source/modeling-with-uml/working-with-activity-diagram.rst: -------------------------------------------------------------------------------- 1 | .. _uml-activity-diagram: 2 | 3 | ============================= 4 | Working with Activity Diagram 5 | ============================= 6 | 7 | To create a Activity Diagram: 8 | 9 | 1. Select first an element where a new Activity Diagram to be contained as a child. 10 | 2. Select **Model | Add Diagram | Activity Diagram** in Menu Bar or select **Add Diagram | Activity Diagram** in Context Menu. 11 | 12 | In Activity Diagram, you can use following elements. 13 | 14 | * :ref:`uml-action` 15 | * :ref:`uml-event` 16 | * :ref:`uml-initial-node` 17 | * :ref:`uml-activity-final-node` 18 | * :ref:`uml-fork-node` 19 | * :ref:`uml-join-node` 20 | * :ref:`uml-merge-node` 21 | * :ref:`uml-decision-node` 22 | * :ref:`uml-swimlane` 23 | * :ref:`uml-input-pin` 24 | * :ref:`uml-output-pin` 25 | * :ref:`uml-send-signal` 26 | * :ref:`uml-accept-signal` 27 | * :ref:`uml-flow-final` 28 | * :ref:`uml-object-node` 29 | * :ref:`uml-control-flow` 30 | * :ref:`uml-object-flow` 31 | 32 | .. seealso:: 33 | `UML Activity Diagram `_ 34 | For more information about UML Activity Diagram. 35 | 36 | 37 | .. _uml-action: 38 | 39 | Action 40 | ====== 41 | 42 | To create an Action: 43 | 44 | 1. Select **Action** in **Toolbox**. 45 | 2. Drag on the diagram as the size of Action. 46 | 47 | To edit an Action, you can do following actions: 48 | 49 | * Use :ref:`quick-edit-action` by double-click or press :kbd:`Enter` on a selected Action. 50 | * Add Trigger - See :ref:`uml-event`. 51 | 52 | 53 | .. _uml-event: 54 | 55 | Event 56 | ===== 57 | 58 | To add an Event: 59 | 60 | 1. Select an Action. 61 | 2. Select **Model | Add | Trigger** in Menu Bar or **Add | Trigger** in Context Menu. 62 | 63 | 64 | .. _uml-initial-node: 65 | 66 | Initial 67 | ======= 68 | 69 | To create an Initial: 70 | 71 | 1. Select **Initial** in **Toolbox**. 72 | 2. Click at the position on the diagram. 73 | 74 | .. _uml-activity-final-node: 75 | 76 | Activity Final 77 | ============== 78 | 79 | To create an Activity Final: 80 | 81 | 1. Select **Activity Final** in **Toolbox**. 82 | 2. Click at the position on the diagram. 83 | 84 | 85 | .. _uml-fork-node: 86 | 87 | Fork 88 | ==== 89 | 90 | To create a Fork: 91 | 92 | 1. Select **Fork** in **Toolbox**. 93 | 2. Drag on the diagram as the size of Fork. 94 | 95 | 96 | .. _uml-join-node: 97 | 98 | Join 99 | ==== 100 | 101 | To create a Join: 102 | 103 | 1. Select **Join** in **Toolbox**. 104 | 2. Drag on the diagram as the size of Join. 105 | 106 | 107 | .. _uml-merge-node: 108 | 109 | Merge 110 | ===== 111 | 112 | To create a Merge: 113 | 114 | 1. Select **Merge** in **Toolbox**. 115 | 2. Click at the position on the diagram. 116 | 117 | 118 | .. _uml-decision-node: 119 | 120 | Decision 121 | ======== 122 | 123 | To create a Decision: 124 | 125 | 1. Select **Decision** in **Toolbox**. 126 | 2. Click at the position on the diagram. 127 | 128 | 129 | .. _uml-swimlane: 130 | 131 | Swimlane (Partition) 132 | ==================== 133 | 134 | To create a Swimlane (Vertical or Horizontal): 135 | 136 | 1. Select **Swimlane (Vertical)** or **Swimlane (Horizontal)** in **Toolbox**. 137 | 2. Drag on the diagram as the size of Swimlane. 138 | 139 | 140 | .. _uml-input-pin: 141 | 142 | Input Pin 143 | ========= 144 | 145 | To create an Input Pin: 146 | 147 | 1. Select **Input Pin** in **Toolbox**. 148 | 2. Click on an Action where Input Pin to be attached. 149 | 150 | 151 | .. _uml-output-pin: 152 | 153 | Output Pin 154 | ========== 155 | 156 | To create an Output Pin: 157 | 158 | 1. Select **Output Pin** in **Toolbox**. 159 | 2. Click on an Action where Output Pin to be attached. 160 | 161 | 162 | .. _uml-send-signal: 163 | 164 | Send Signal 165 | =========== 166 | 167 | To create a Send Signal: 168 | 169 | 1. Select **Send Signal** in **Toolbox**. 170 | 2. Drag on the diagram as the size of Send Signal. 171 | 172 | .. _uml-accept-signal: 173 | 174 | Accept Signal 175 | ============= 176 | 177 | To create an Accept Signal: 178 | 179 | 1. Select **Accept Signal** in **Toolbox**. 180 | 2. Drag on the diagram as the size of Accept Signal. 181 | 182 | 183 | .. _uml-flow-final: 184 | 185 | Flow Final 186 | ========== 187 | 188 | To create a Flow Final: 189 | 190 | 1. Select **Flow Final** in **Toolbox**. 191 | 2. Click at the position on the diagram. 192 | 193 | 194 | .. _uml-object-node: 195 | 196 | Object Node 197 | =========== 198 | 199 | To create a Object Node: 200 | 201 | 1. Select **Object Node** in **Toolbox**. 202 | 2. Drag on the diagram as the size of Object Node. 203 | 204 | 205 | .. _uml-control-flow: 206 | 207 | Control Flow 208 | ============ 209 | 210 | To create a Control Flow: 211 | 212 | 1. Select **Control Flow** in **Toolbox**. 213 | 2. Drag from a node and drop on another node. 214 | 215 | 216 | .. _uml-object-flow: 217 | 218 | Object Flow 219 | =========== 220 | 221 | To create a Object Flow: 222 | 223 | 1. Select **Object Flow** in **Toolbox**. 224 | 2. Drag from a node and drop on another node. 225 | 226 | -------------------------------------------------------------------------------- /docs/source/modeling-with-uml/working-with-class-diagram.rst: -------------------------------------------------------------------------------- 1 | .. _uml-class-diagram: 2 | 3 | =========================== 4 | Working with Class Diagrams 5 | =========================== 6 | 7 | To create a Class Diagram: 8 | 9 | 1. First select an element where a new Class Diagram to be contained as a child. 10 | 2. Select **Model | Add Diagram | Class Diagram** in the Menu Bar or select **Add Diagram | Class Diagram** in Context Menu. 11 | 12 | In Class Diagram, you can use following elements. 13 | 14 | * :ref:`uml-class` 15 | * :ref:`uml-attribute` 16 | * :ref:`uml-operation` 17 | * :ref:`uml-parameter` 18 | * :ref:`uml-template-parameter` 19 | * :ref:`uml-interface` 20 | * :ref:`uml-association` 21 | * :ref:`uml-aggregation` 22 | * :ref:`uml-composition` 23 | * :ref:`uml-dependency` 24 | * :ref:`uml-generalization` 25 | * :ref:`uml-interface-realization` 26 | * :ref:`uml-signal` 27 | * :ref:`uml-data-type` 28 | * :ref:`uml-primitive-type` 29 | * :ref:`uml-enumeration` 30 | * :ref:`uml-association-class` 31 | * :ref:`uml-package` 32 | * :ref:`uml-model` 33 | * :ref:`uml-subsystem` 34 | * :ref:`uml-containment` 35 | 36 | .. seealso:: 37 | `UML Class Diagram `_ 38 | For more information about UML Class Diagram. 39 | 40 | 41 | .. _uml-class: 42 | 43 | Class 44 | ===== 45 | 46 | To create a Class: 47 | 48 | 1. Select **Class** in **Toolbox**. 49 | 2. Drag on the diagram as the size of Class. 50 | 51 | To create a Class (model element only) by Menu: 52 | 53 | 1. Select an Element where a new Class to be contained. 54 | 2. Select **Model | Add | Class** in Menu Bar or **Add | Class** in Context Menu. 55 | 56 | To edit a Class, you can do following actions: 57 | 58 | * Use :ref:`quick-edit-classifier` by double-click or press :kbd:`Enter` on a selected Class. 59 | * Add Attribute - See :ref:`uml-attribute`. 60 | * Add Operation - See :ref:`uml-operation`. 61 | * Add Template Parameter - See :ref:`uml-template-parameter`. 62 | 63 | To suppress Attributes, see :ref:`format-suppress-attributes`. 64 | 65 | To suppress Operations, see :ref:`format-suppress-operations`. 66 | 67 | To hide Operation signatures, see :ref:`format-show-operation-signature`. 68 | 69 | .. _uml-attribute: 70 | 71 | Attribute 72 | ========= 73 | 74 | To add an Attribute: 75 | 76 | 1. Select a Classifier. 77 | 2. Select **Model | Add | Attribute** in Menu Bar or **Add | Attribute** in Context Menu. 78 | 79 | To edit an Attribute, you can do following actions: 80 | 81 | * Use :ref:`quick-edit-attribute` by double-click or press :kbd:`Enter` on a selected Attribute. 82 | 83 | .. _uml-operation: 84 | 85 | Operation 86 | ========= 87 | 88 | To add an Operation: 89 | 90 | 1. Select a Classifier. 91 | 2. Select **Model | Add | Operation** in Menu Bar or **Add | Operation** in Context Menu. 92 | 93 | To edit an Operation, you can do following actions: 94 | 95 | * Use :ref:`quick-edit-operation` by double-click or press :kbd:`Enter` on a selected Operation. 96 | * Add Parameter - See :ref:`uml-parameter`. 97 | 98 | To hide Operation signatures, see :ref:`format-show-operation-signature`. 99 | 100 | 101 | .. _uml-parameter: 102 | 103 | Parameter 104 | ========= 105 | 106 | To add a Parameter: 107 | 108 | 1. Select an Operation. 109 | 2. Select **Model | Add | Parameter** in Menu Bar or **Add | Parameter** in Context Menu. 110 | 111 | 112 | .. _uml-template-parameter: 113 | 114 | Template Parameter 115 | ================== 116 | 117 | To add a Template Parameter: 118 | 119 | 1. Select an Element. 120 | 2. Select **Model | Add | Template Parameter** in Menu Bar or **Add | Template Parameter** in Context Menu. 121 | 122 | To edit an Template Parameter, you can do following actions: 123 | 124 | * Use :ref:`quick-edit-template-parameter` by double-click or press :kbd:`Enter` on a selected Template Parameter. 125 | 126 | 127 | .. _uml-interface: 128 | 129 | Interface 130 | ========= 131 | 132 | To create an Interface: 133 | 134 | 1. Select **Interface** in **Toolbox**. 135 | 2. Drag on the diagram as the size of Interface. 136 | 137 | To create an Interface (model element only) by Menu: 138 | 139 | 1. Select an Element where a new Interface to be contained. 140 | 2. Select **Model | Add | Interface** in Menu Bar or **Add | Interface** in Context Menu. 141 | 142 | To edit an Interface, you can do following actions: 143 | 144 | * Use :ref:`quick-edit-classifier` by double-click or press :kbd:`Enter` on a selected Interface. 145 | * Add Attribute - See :ref:`uml-attribute` 146 | * Add Operation - See :ref:`uml-operation` 147 | * Add Template Parameter - See :ref:`uml-template-parameter` 148 | 149 | To show an Interface as Lollipop notation, Interface should be realized (See :ref:`uml-interface-realization`) and then change Stereotype Display to Icon or Icon with Label (See :ref:`format-stereotype-display`). 150 | 151 | To show an Interface as Socket notation, Interface should have dependants (See :ref:`uml-dependency`) and then change Stereotype Display to Icon or Icon with Label (See :ref:`format-stereotype-display`). 152 | 153 | To suppress Attributes, see :ref:`format-suppress-attributes`. 154 | 155 | To suppress Operations, see :ref:`format-suppress-operations`. 156 | 157 | To hide Operation signatures, see :ref:`format-show-operation-signature`. 158 | 159 | .. _uml-generalization: 160 | 161 | Generalization 162 | ============== 163 | 164 | To create a Generalization: 165 | 166 | 1. Select **Generalization** in **Toolbox**. 167 | 2. Drag from an element (to be special) and drop on another element (to be general). 168 | 169 | 170 | .. _uml-association: 171 | 172 | Association 173 | =========== 174 | 175 | To create an Association (or Directed Association): 176 | 177 | 1. Select **Association** (or **Directed Association**) in **Toolbox**. 178 | 2. Drag from an element and drop on another element. 179 | 180 | 181 | .. _uml-aggregation: 182 | 183 | Aggregation 184 | =========== 185 | 186 | To create an Aggregation: 187 | 188 | 1. Select **Aggregation** in **Toolbox**. 189 | 2. Drag from an element (to be a part) and drop on another element (to be whole). 190 | 191 | .. note:: 192 | Aggregation is an association whose ``aggregation`` propery is ``shared``. 193 | 194 | .. _uml-composition: 195 | 196 | Composition 197 | =========== 198 | 199 | To create a Composition: 200 | 201 | 1. Select **Composition** in **Toolbox**. 202 | 2. Drag from an element (to be a part) and drop on another element (to be whole). 203 | 204 | .. note:: 205 | Composition is an association whose ``aggregation`` propery is ``composite``. 206 | 207 | .. _uml-dependency: 208 | 209 | Dependency 210 | ========== 211 | 212 | To create an Dependency: 213 | 214 | 1. Select **Dependency** in **Toolbox**. 215 | 2. Drag from an element (client) and drop on another element (supplier). 216 | 217 | 218 | .. _uml-interface-realization: 219 | 220 | Interface Realization 221 | ===================== 222 | 223 | To create an Interface Realization: 224 | 225 | 1. Select **Interface Realization** in **Toolbox**. 226 | 2. Drag from an element (realizing) and drop on an interface (to be realized). 227 | 228 | 229 | .. _uml-signal: 230 | 231 | Signal 232 | ====== 233 | 234 | To create a Signal: 235 | 236 | 1. Select **Signal** in **Toolbox**. 237 | 2. Drag on the diagram as the size of Signal. 238 | 239 | To create a Signal (model element only) by Menu: 240 | 241 | 1. Select an Element where a new Signal to be contained. 242 | 2. Select **Model | Add | Signal** in Menu Bar or **Add | Signal** in Context Menu. 243 | 244 | To edit a Signal, you can do following actions: 245 | 246 | * Use :ref:`quick-edit-classifier` by double-click or press :kbd:`Enter` on a selected Signal. 247 | * Add Attribute - See :ref:`uml-attribute` 248 | * Add Operation - See :ref:`uml-operation` 249 | * Add Template Parameter - See :ref:`uml-template-parameter` 250 | 251 | 252 | .. _uml-data-type: 253 | 254 | DataType 255 | ======== 256 | 257 | To create a DataType: 258 | 259 | 1. Select **DataType** in **Toolbox**. 260 | 2. Drag on the diagram as the size of DataType. 261 | 262 | To create a DataType (model element only) by Menu: 263 | 264 | 1. Select an Element where a new DataType to be contained. 265 | 2. Select **Model | Add | DataType** in Menu Bar or **Add | DataType** in Context Menu. 266 | 267 | To edit a DataType, you can do following actions: 268 | 269 | * Use :ref:`quick-edit-classifier` by double-click or press :kbd:`Enter` on a selected DataType. 270 | * Add Attribute - See :ref:`uml-attribute` 271 | * Add Operation - See :ref:`uml-operation` 272 | * Add Template Parameter - See :ref:`uml-template-parameter` 273 | 274 | 275 | .. _uml-primitive-type: 276 | 277 | PrimitiveType 278 | ============= 279 | 280 | To create a PrimitiveType: 281 | 282 | 1. Select **PrimitiveType** in **Toolbox**. 283 | 2. Drag on the diagram as the size of PrimitiveType. 284 | 285 | To create a PrimitiveType (model element only) by Menu: 286 | 287 | 1. Select an Element where a new PrimitiveType to be contained. 288 | 2. Select **Model | Add | PrimitiveType** in Menu Bar or **Add | PrimitiveType** in Context Menu. 289 | 290 | To edit a PrimitiveType, you can do following actions: 291 | 292 | * Use :ref:`quick-edit-classifier` by double-click or press :kbd:`Enter` on a selected PrimitiveType. 293 | * Add Attribute - See :ref:`uml-attribute` 294 | * Add Operation - See :ref:`uml-operation` 295 | * Add Template Parameter - See :ref:`uml-template-parameter` 296 | 297 | 298 | .. _uml-enumeration: 299 | 300 | Enumeration 301 | =========== 302 | 303 | To create an Enumeration: 304 | 305 | 1. Select **Enumeration** in **Toolbox**. 306 | 2. Drag on the diagram as the size of Enumeration. 307 | 308 | To create an Enumeration (model element only) by Menu: 309 | 310 | 1. Select an Element where a new Enumeration to be contained. 311 | 2. Select **Model | Add | Enumeration** in Menu Bar or **Add | Enumeration** in Context Menu. 312 | 313 | To edit a Enumeration, you can do following actions: 314 | 315 | * Use :ref:`quick-edit-enumeration` by double-click or press :kbd:`Enter` on a selected Enumeration. 316 | * Add EnumerationLiteral - See :ref:`uml-enumeration-literal` 317 | * Add Attribute - See :ref:`uml-attribute` 318 | * Add Operation - See :ref:`uml-operation` 319 | * Add Template Parameter - See :ref:`uml-template-parameter` 320 | 321 | To suppress Literals, see :ref:`format-suppress-literals`. 322 | 323 | 324 | .. _uml-enumeration-literal: 325 | 326 | Enumeration Literal 327 | =================== 328 | 329 | To add an Enumeration Literal: 330 | 331 | 1. Select a Classifier. 332 | 2. Select **Model | Add | Enumeration Literal** in Menu Bar or **Add | Enumeration Literal** in Context Menu. 333 | 334 | To edit an Enumeration Literal, you can do following actions: 335 | 336 | * Use :ref:`quick-edit-enumeration-literal` by double-click or press :kbd:`Enter` on a selected Enumeration Literal. 337 | 338 | 339 | .. _uml-association-class: 340 | 341 | AssociationClass 342 | ================ 343 | 344 | To create an Association Class by linking two Classifiers: 345 | 346 | 1. Select **Association Class** in **Toolbox**. 347 | 2. Drag from an element and drop on another element. 348 | 3. An Association and a Class connected to the association will be created. 349 | 350 | 351 | To create an Association Class by linking Association and Class: 352 | 353 | 1. Select **Association Class** in **Toolbox**. 354 | 2. Drag from an Association (or Class) and drop on a Class (or Association). 355 | 3. The Class will be connected to the Association. 356 | 357 | -------------------------------------------------------------------------------- /docs/source/modeling-with-uml/working-with-communication-diagram.rst: -------------------------------------------------------------------------------- 1 | .. _uml-communication-diagram: 2 | 3 | ================================== 4 | Working with Communication Diagram 5 | ================================== 6 | 7 | To create a Communication Diagram: 8 | 9 | 1. Select first an element where a new Communication Diagram to be contained as a child. 10 | 2. Select **Model | Add Diagram | Communication Diagram** in Menu Bar or select **Add Diagram | Communication Diagram** in Context Menu. 11 | 12 | In Communication Diagram, you can use following elements. 13 | 14 | * :ref:`uml-lifeline` 15 | * :ref:`uml-comm-connector` 16 | * :ref:`uml-forward-message` 17 | * :ref:`uml-reverse-message` 18 | 19 | .. seealso:: 20 | `UML Communication Diagram `_ 21 | For more information about UML Communication Diagram. 22 | 23 | .. _uml-comm-connector: 24 | 25 | Connector 26 | ========= 27 | 28 | To create an Connector (or Self Connector): 29 | 30 | 1. Select **Connector** (or **Self Connector**) in **Toolbox**. 31 | 2. Drag from a Lifeline and drop on another Lifeline. (Just click on a Lifeline if you want to create a Self Connector.) 32 | 33 | 34 | .. _uml-forward-message: 35 | 36 | Forward Message 37 | =============== 38 | 39 | To create a Forward Message: 40 | 41 | 1. Select **Forward Message** in **Toolbox**. 42 | 2. Click on a Connector. 43 | 44 | To edit a Message, you can do following actions: 45 | 46 | * Use :ref:`quick-edit-message` by double-click or press :kbd:`Enter` on a selected Message. 47 | 48 | 49 | .. _uml-reverse-message: 50 | 51 | Reverse Message 52 | =============== 53 | 54 | To create a Reverse Message: 55 | 56 | 1. Select **Reverse Message** in **Toolbox**. 57 | 2. Click on a Connector. 58 | 59 | To edit a Message, you can do following actions: 60 | 61 | * Use :ref:`quick-edit-message` by double-click or press :kbd:`Enter` on a selected Message. 62 | 63 | -------------------------------------------------------------------------------- /docs/source/modeling-with-uml/working-with-component-diagram.rst: -------------------------------------------------------------------------------- 1 | .. _uml-component-diagram: 2 | 3 | ============================== 4 | Working with Component Diagram 5 | ============================== 6 | 7 | To create a Component Diagram: 8 | 9 | 1. Select first an element where a new Component Diagram to be contained as a child. 10 | 2. Select **Model | Add Diagram | Component Diagram** in Menu Bar or select **Add Diagram | Component Diagram** in Context Menu. 11 | 12 | In Component Diagram, you can use following elements. 13 | 14 | * :ref:`uml-component` 15 | * :ref:`uml-artifact` 16 | * :ref:`uml-interface` 17 | * :ref:`uml-dependency` 18 | * :ref:`uml-interface-realization` 19 | * :ref:`uml-component-realization` 20 | * :ref:`uml-node` 21 | * :ref:`uml-deployment` 22 | * :ref:`uml-communication-path` 23 | * :ref:`uml-object` 24 | * :ref:`uml-artifact-instance` 25 | * :ref:`uml-component-instance` 26 | * :ref:`uml-node-instance` 27 | * :ref:`uml-link` 28 | 29 | .. seealso:: 30 | `UML Component Diagram `_ 31 | For more information about UML Component Diagram. 32 | 33 | 34 | .. _uml-component: 35 | 36 | Component 37 | ========= 38 | 39 | To create a Component: 40 | 41 | 1. Select **Component** in **Toolbox**. 42 | 2. Drag on the diagram as the size of Component. 43 | 44 | To create a Component (model element only) by Menu: 45 | 46 | 1. Select an Element where a new Component to be contained. 47 | 2. Select **Model | Add | Component** in Menu Bar or **Add | Component** in Context Menu. 48 | 49 | To edit a Component, you can do following actions: 50 | 51 | * Use :ref:`quick-edit-classifier` by double-click or press :kbd:`Enter` on a selected Component. 52 | * Add Attribute - See :ref:`uml-attribute`. 53 | * Add Operation - See :ref:`uml-operation`. 54 | 55 | To suppress Attributes, see :ref:`format-suppress-attributes`. 56 | 57 | To suppress Operations, see :ref:`format-suppress-operations`. 58 | 59 | To hide Operation signatures, see :ref:`format-show-operation-signature`. 60 | 61 | 62 | .. _uml-artifact: 63 | 64 | Artifact 65 | ======== 66 | 67 | To create a Artifact: 68 | 69 | 1. Select **Artifact** in **Toolbox**. 70 | 2. Drag on the diagram as the size of Artifact. 71 | 72 | To create a Artifact (model element only) by Menu: 73 | 74 | 1. Select an Element where a new Artifact to be contained. 75 | 2. Select **Model | Add | Artifact** in Menu Bar or **Add | Artifact** in Context Menu. 76 | 77 | To edit a Artifact, you can do following actions: 78 | 79 | * Use :ref:`quick-edit-classifier` by double-click or press :kbd:`Enter` on a selected Artifact. 80 | * Add Attribute - See :ref:`uml-attribute`. 81 | * Add Operation - See :ref:`uml-operation`. 82 | 83 | To suppress Attributes, see :ref:`format-suppress-attributes`. 84 | 85 | To suppress Operations, see :ref:`format-suppress-operations`. 86 | 87 | To hide Operation signatures, see :ref:`format-show-operation-signature`. 88 | 89 | 90 | .. _uml-component-realization: 91 | 92 | Component Realization 93 | ===================== 94 | 95 | To create an Component Realization: 96 | 97 | 1. Select **Component Realization** in **Toolbox**. 98 | 2. Drag from an element (realizing) and drop on a Component (to be realized). 99 | 100 | 101 | -------------------------------------------------------------------------------- /docs/source/modeling-with-uml/working-with-composite-structure-diagram.rst: -------------------------------------------------------------------------------- 1 | .. _uml-composite-structure-diagram: 2 | 3 | ======================================== 4 | Working with Composite Structure Diagram 5 | ======================================== 6 | 7 | To create a Composite Structure Diagram: 8 | 9 | 1. Select first an element where a new Composite Structure Diagram to be contained as a child. 10 | 2. Select **Model | Add Diagram | Composite Structure Diagram** in Menu Bar or select **Add Diagram | Composite Structure Diagram** in Context Menu. 11 | 12 | In Composite Structure Diagram, you can use following elements. 13 | 14 | * :ref:`uml-class` 15 | * :ref:`uml-interface` 16 | * :ref:`uml-association` 17 | * :ref:`uml-aggregation` 18 | * :ref:`uml-composition` 19 | * :ref:`uml-dependency` 20 | * :ref:`uml-generalization` 21 | * :ref:`uml-interface-realization` 22 | * :ref:`uml-signal` 23 | * :ref:`uml-data-type` 24 | * :ref:`uml-primitive-type` 25 | * :ref:`uml-enumeration` 26 | * :ref:`uml-association-class` 27 | * :ref:`uml-collaboration` 28 | * :ref:`uml-port` 29 | * :ref:`uml-part` 30 | * :ref:`uml-connector` 31 | * :ref:`uml-collaboration-use` 32 | * :ref:`uml-role-binding` 33 | 34 | .. seealso:: 35 | `UML Composite Structure Diagram `_ 36 | For more information about UML Composite Structure Diagram. 37 | 38 | 39 | .. _uml-collaboration: 40 | 41 | Collaboration 42 | ============= 43 | 44 | To create a Collaboration: 45 | 46 | 1. Select **Collaboration** in **Toolbox**. 47 | 2. Drag on the diagram as the size of Collaboration. 48 | 49 | To create a Collaboration (model element only) by Menu: 50 | 51 | 1. Select an Element where a new Collaboration to be contained. 52 | 2. Select **Model | Add | Collaboration** in Menu Bar or **Add | Collaboration** in Context Menu. 53 | 54 | To edit a Collaboration, you can do following actions: 55 | 56 | * Use :ref:`quick-edit-general` by double-click or press :kbd:`Enter` on a selected Collaboration. 57 | * Add Template Parameter - See :ref:`uml-template-parameter`. 58 | 59 | .. _uml-port: 60 | 61 | Port 62 | ==== 63 | 64 | To create a Port: 65 | 66 | 1. Select **Port** in **Toolbox**. 67 | 2. Click on the element (e.g. Class) where Port to be contained. 68 | 69 | To create a Port (model element only) by Menu: 70 | 71 | 1. Select an Element where a new Port to be contained. 72 | 2. Select **Model | Add | Port** in Menu Bar or **Add | Port** in Context Menu. 73 | 74 | To edit a Port, you can do following actions: 75 | 76 | * Use :ref:`quick-edit-general` by double-click or press :kbd:`Enter` on a selected Port. 77 | 78 | 79 | .. _uml-part: 80 | 81 | Part 82 | ==== 83 | 84 | To create a Part: 85 | 86 | 1. Select **Part** in **Toolbox**. 87 | 2. Click on the element (e.g. Class) where Part to be contained. 88 | 89 | To edit a Part, you can do following actions: 90 | 91 | * Use :ref:`quick-edit-general` by double-click or press :kbd:`Enter` on a selected Part. 92 | 93 | .. note:: 94 | Actually, Part is equivalent to Attribute but represented differently on diagrams. 95 | 96 | 97 | .. _uml-connector: 98 | 99 | Connector 100 | ========= 101 | 102 | To create an Connector: 103 | 104 | 1. Select **Connector** in **Toolbox**. 105 | 2. Drag from an element (e.g. Port) and drop on another element (e.g. Part). 106 | 107 | .. _uml-collaboration-use: 108 | 109 | Collaboration Use 110 | ================= 111 | 112 | To create a Collaboration Use: 113 | 114 | 1. Select **Collaboration Use** in **Toolbox**. 115 | 2. Drag on the diagram as the size of Collaboration Use. 116 | 117 | To edit a Collaboration Use, you can do following actions: 118 | 119 | * Use :ref:`quick-edit-general` by double-click or press :kbd:`Enter` on a selected Collaboration Use. 120 | 121 | .. _uml-role-binding: 122 | 123 | Role Binding 124 | ============ 125 | 126 | To create an Role Binding: 127 | 128 | 1. Select **Role Binding** in **Toolbox**. 129 | 2. Drag from a Collaboration Use and drop on an element (e.g. Part). 130 | 131 | -------------------------------------------------------------------------------- /docs/source/modeling-with-uml/working-with-deployment-diagram.rst: -------------------------------------------------------------------------------- 1 | .. _uml-deployment-diagram: 2 | 3 | =============================== 4 | Working with Deployment Diagram 5 | =============================== 6 | 7 | To create a Deployment Diagram: 8 | 9 | 1. Select first an element where a new Deployment Diagram to be contained as a child. 10 | 2. Select **Model | Add Diagram | Deployment Diagram** in Menu Bar or select **Add Diagram | Deployment Diagram** in Context Menu. 11 | 12 | In Deployment Diagram, you can use following elements. 13 | 14 | * :ref:`uml-component` 15 | * :ref:`uml-artifact` 16 | * :ref:`uml-interface` 17 | * :ref:`uml-dependency` 18 | * :ref:`uml-interface-realization` 19 | * :ref:`uml-component-realization` 20 | * :ref:`uml-node` 21 | * :ref:`uml-deployment` 22 | * :ref:`uml-communication-path` 23 | * :ref:`uml-object` 24 | * :ref:`uml-artifact-instance` 25 | * :ref:`uml-component-instance` 26 | * :ref:`uml-node-instance` 27 | * :ref:`uml-link` 28 | 29 | .. seealso:: 30 | `UML Deployment Diagram `_ 31 | For more information about UML Deployment Diagram. 32 | 33 | 34 | .. _uml-node: 35 | 36 | Node 37 | ==== 38 | 39 | To create a Node: 40 | 41 | 1. Select **Node** in **Toolbox**. 42 | 2. Drag on the diagram as the size of Node. 43 | 44 | To create a Node (model element only) by Menu: 45 | 46 | 1. Select an Element where a new Node to be contained. 47 | 2. Select **Model | Add | Node** in Menu Bar or **Add | Node** in Context Menu. 48 | 49 | To edit a Node, you can do following actions: 50 | 51 | * Use :ref:`quick-edit-classifier` by double-click or press :kbd:`Enter` on a selected Node. 52 | * Add Attribute - See :ref:`uml-attribute`. 53 | * Add Operation - See :ref:`uml-operation`. 54 | 55 | To suppress Attributes, see :ref:`format-suppress-attributes`. 56 | 57 | To suppress Operations, see :ref:`format-suppress-operations`. 58 | 59 | To hide Operation signatures, see :ref:`format-show-operation-signature`. 60 | 61 | 62 | .. _uml-deployment: 63 | 64 | Deployment 65 | ========== 66 | 67 | To create an Deployment: 68 | 69 | 1. Select **Deployment** in **Toolbox**. 70 | 2. Drag from an element (to be deployed) and drop on a Node. 71 | 72 | 73 | .. _uml-communication-path: 74 | 75 | Communication Path 76 | ================== 77 | 78 | To create an Communication Path: 79 | 80 | 1. Select **Communication Path** in **Toolbox**. 81 | 2. Drag from a Node and drop on another Node. 82 | 83 | 84 | -------------------------------------------------------------------------------- /docs/source/modeling-with-uml/working-with-object-diagram.rst: -------------------------------------------------------------------------------- 1 | .. _uml-object-diagram: 2 | 3 | =========================== 4 | Working with Object Diagram 5 | =========================== 6 | 7 | To create a Object Diagram: 8 | 9 | 1. Select first an element where a new Object Diagram to be contained as a child. 10 | 2. Select **Model | Add Diagram | Object Diagram** in Menu Bar or select **Add Diagram | Object Diagram** in Context Menu. 11 | 12 | In Object Diagram, you can use following elements. 13 | 14 | * :ref:`uml-object` 15 | * :ref:`uml-slot` 16 | * :ref:`uml-artifact-instance` 17 | * :ref:`uml-component-instance` 18 | * :ref:`uml-node-instance` 19 | * :ref:`uml-link` 20 | 21 | .. seealso:: 22 | `UML Object Diagram `_ 23 | For more information about UML Object Diagram. 24 | 25 | .. _uml-object: 26 | 27 | Object 28 | ====== 29 | 30 | To create a Object: 31 | 32 | 1. Select **Object** in **Toolbox**. 33 | 2. Drag on the diagram as the size of Object. 34 | 35 | To edit a Object, you can do following actions: 36 | 37 | * Use :ref:`quick-edit-instance` by double-click or press :kbd:`Enter` on a selected Object. 38 | * Add Slot - See :ref:`uml-slot`. 39 | 40 | 41 | .. _uml-slot: 42 | 43 | Slot 44 | ==== 45 | 46 | To add an Slot: 47 | 48 | 1. Select an Instance. 49 | 2. Select **Model | Add | Slot** in Menu Bar or **Add | Slot** in Context Menu. 50 | 51 | To edit an Slot, you can do following actions: 52 | 53 | * Use :ref:`quick-edit-slot` by double-click or press :kbd:`Enter` on a selected Slot. 54 | 55 | 56 | .. _uml-artifact-instance: 57 | 58 | Artifact Instance 59 | ================= 60 | 61 | To create a Artifact Instance: 62 | 63 | 1. Select **Artifact Instance** in **Toolbox**. 64 | 2. Drag on the diagram as the size of Artifact Instance. 65 | 66 | To edit a Artifact Instance, you can do following actions: 67 | 68 | * Use :ref:`quick-edit-instance` by double-click or press :kbd:`Enter` on a selected Artifact Instance. 69 | * Add Slot - See :ref:`uml-slot`. 70 | 71 | 72 | .. _uml-component-instance: 73 | 74 | Component Instance 75 | ================== 76 | 77 | To create a Component Instance: 78 | 79 | 1. Select **Component Instance** in **Toolbox**. 80 | 2. Drag on the diagram as the size of Component Instance. 81 | 82 | To edit a Component Instance, you can do following actions: 83 | 84 | * Use :ref:`quick-edit-instance` by double-click or press :kbd:`Enter` on a selected Component Instance. 85 | * Add Slot - See :ref:`uml-slot`. 86 | 87 | 88 | .. _uml-node-instance: 89 | 90 | Node Instance 91 | ============= 92 | 93 | To create a Node Instance: 94 | 95 | 1. Select **Node Instance** in **Toolbox**. 96 | 2. Drag on the diagram as the size of Node Instance. 97 | 98 | To edit a Node Instance, you can do following actions: 99 | 100 | * Use :ref:`quick-edit-instance` by double-click or press :kbd:`Enter` on a selected Node Instance. 101 | * Add Slot - See :ref:`uml-slot`. 102 | 103 | 104 | .. _uml-link: 105 | 106 | Link 107 | ==== 108 | 109 | To create an Link (or Directed Link): 110 | 111 | 1. Select **Link** (or **Directed Link**) in **Toolbox**. 112 | 2. Drag from an instance and drop on another instance. 113 | 114 | -------------------------------------------------------------------------------- /docs/source/modeling-with-uml/working-with-package-diagram.rst: -------------------------------------------------------------------------------- 1 | .. _uml-package-diagram: 2 | 3 | ============================ 4 | Working with Package Diagram 5 | ============================ 6 | 7 | To create a Package Diagram: 8 | 9 | 1. Select first an element where a new Package Diagram to be contained as a child. 10 | 2. Select **Model | Add Diagram | Package Diagram** in Menu Bar or select **Add Diagram | Package Diagram** in Context Menu. 11 | 12 | In Package Diagram, you can use the following elements: 13 | 14 | * :ref:`uml-package` 15 | * :ref:`uml-model` 16 | * :ref:`uml-subsystem` 17 | * :ref:`uml-containment` 18 | * :ref:`uml-dependency` 19 | 20 | .. seealso:: 21 | `UML Package Diagram `_ 22 | For more information about UML Package Diagram. 23 | 24 | 25 | .. _uml-package: 26 | 27 | Package 28 | ======= 29 | 30 | To create a Package on a diagram: 31 | 32 | 1. Select **Package** in **Toolbox**. 33 | 2. Drag on the diagram as the size of Package. 34 | 35 | To create a Package (model element only) by Menu: 36 | 37 | 1. Select an Element where a new Package to be contained. 38 | 2. Select **Model | Add | Package** in Menu Bar or **Add | Package** in Context Menu. 39 | 40 | To edit a Package, you can do following actions: 41 | 42 | * Use :ref:`quick-edit-general` by double-click or press :kbd:`Enter` on a selected Class. 43 | 44 | .. _uml-model: 45 | 46 | Model 47 | ===== 48 | 49 | To create a Model on a diagram: 50 | 51 | 1. Select **Model** in **Toolbox**. 52 | 2. Drag on the diagram as the size of Model. 53 | 54 | To create a Model (model element only) by Menu: 55 | 56 | 1. Select an Element where a new Model to be contained. 57 | 2. Select **Model | Add | Model** in Menu Bar or **Add | Model** in Context Menu. 58 | 59 | To edit a Model, you can do following actions: 60 | 61 | * Use :ref:`quick-edit-general` by double-click or press :kbd:`Enter` on a selected Class. 62 | 63 | 64 | .. _uml-subsystem: 65 | 66 | Subsystem 67 | ========= 68 | 69 | To create a Subsystem on a diagram: 70 | 71 | 1. Select **Subsystem** in **Toolbox**. 72 | 2. Drag on the diagram as the size of Subsystem. 73 | 74 | To create a Subsystem (model element only) by Menu: 75 | 76 | 1. Select an Element where a new Subsystem to be contained. 77 | 2. Select **Model | Add | Subsystem** in Menu Bar or **Add | Subsystem** in Context Menu. 78 | 79 | To edit a Subsystem, you can do following actions: 80 | 81 | * Use :ref:`quick-edit-general` by double-click or press :kbd:`Enter` on a selected Class. 82 | 83 | 84 | .. _uml-containment: 85 | 86 | Containment 87 | =========== 88 | 89 | To show an Containment: 90 | 91 | 1. Select **Containment** in **Toolbox**. 92 | 2. Drag from an element (to be contained) and drop on a container element. 93 | 94 | .. note:: 95 | There is no Containment model element. The Containment view element only show the containment relationship between two elements. (Contained elements are shown as children in **Explorer**) 96 | -------------------------------------------------------------------------------- /docs/source/modeling-with-uml/working-with-profile-diagram.rst: -------------------------------------------------------------------------------- 1 | .. _uml-profile-diagram: 2 | 3 | ============================ 4 | Working with Profile Diagram 5 | ============================ 6 | 7 | To create a Profile Diagram: 8 | 9 | 1. Select first an element where a new Profile Diagram to be contained as a child. 10 | 2. Select **Model | Add Diagram | Profile Diagram** in Menu Bar or select **Add Diagram | Profile Diagram** in Context Menu. 11 | 12 | In Profile Diagram, you can use following elements. 13 | 14 | * :ref:`uml-profile` 15 | * :ref:`uml-metaclass` 16 | * :ref:`uml-stereotype` 17 | * :ref:`uml-extension` 18 | * :ref:`uml-generalization` 19 | 20 | .. seealso:: 21 | `UML Profile Diagram `_ 22 | For more information about UML Profile Diagram. 23 | 24 | 25 | .. _uml-profile: 26 | 27 | Profile 28 | ======= 29 | 30 | To create a Profile (model element only) by Menu: 31 | 32 | 1. Select an Element where a new Profile to be contained. 33 | 2. Select **Model | Add | Profile** in Menu Bar or **Add | Profile** in Context Menu. 34 | 35 | 36 | .. _uml-metaclass: 37 | 38 | MetaClass 39 | ========= 40 | 41 | To create a MetaClass: 42 | 43 | 1. Select **MetaClass** in **Toolbox**. 44 | 2. Drag on the diagram as the size of MetaClass. 45 | 46 | To create a MetaClass (model element only) by Menu: 47 | 48 | 1. Select an Element where a new MetaClass to be contained. 49 | 2. Select **Model | Add | MetaClass** in Menu Bar or **Add | MetaClass** in Context Menu. 50 | 51 | To edit a MetaClass, you can do following actions: 52 | 53 | * Use :ref:`quick-edit-general` by double-click or press :kbd:`Enter` on a selected MetaClass. 54 | 55 | 56 | .. _uml-stereotype: 57 | 58 | Stereotype 59 | ========== 60 | 61 | To create a Stereotype: 62 | 63 | 1. Select **Stereotype** in **Toolbox**. 64 | 2. Drag on the diagram as the size of Stereotype. 65 | 66 | To create a Stereotype (model element only) by Menu: 67 | 68 | 1. Select an Element where a new Stereotype to be contained. 69 | 2. Select **Model | Add | Stereotype** in Menu Bar or **Add | Stereotype** in Context Menu. 70 | 71 | To edit a Stereotype, you can do following actions: 72 | 73 | * Use :ref:`quick-edit-classifier` by double-click or press :kbd:`Enter` on a selected Stereotype. 74 | * Add Attribute - See :ref:`uml-attribute`. 75 | * Add Operation - See :ref:`uml-operation`. 76 | 77 | To suppress Attributes, see :ref:`format-suppress-attributes`. 78 | 79 | To suppress Operations, see :ref:`format-suppress-operations`. 80 | 81 | To hide Operation signatures, see :ref:`format-show-operation-signature`. 82 | 83 | 84 | .. _uml-extension: 85 | 86 | Extension 87 | ========= 88 | 89 | To create a Extension: 90 | 91 | 1. Select **Extension** in **Toolbox**. 92 | 2. Drag from a Stereotype and drop on a MetaClass. 93 | -------------------------------------------------------------------------------- /docs/source/modeling-with-uml/working-with-sequence-diagram.rst: -------------------------------------------------------------------------------- 1 | .. _uml-sequence-diagram: 2 | 3 | ============================= 4 | Working with Sequence Diagram 5 | ============================= 6 | 7 | 8 | To create a Sequence Diagram: 9 | 10 | 1. Select first an element where a new Sequence Diagram to be contained as a child. 11 | 2. Select **Model | Add Diagram | Sequence Diagram** in Menu Bar or select **Add Diagram | Sequence Diagram** in Context Menu. 12 | 13 | In Sequence Diagram, you can use following elements. 14 | 15 | * :ref:`uml-lifeline` 16 | * :ref:`uml-message` 17 | * :ref:`uml-endpoint` 18 | * :ref:`uml-gate` 19 | * :ref:`uml-state-invariant` 20 | * :ref:`uml-continuation` 21 | * :ref:`uml-combined-fragment` 22 | * :ref:`uml-interaction-use` 23 | 24 | .. seealso:: 25 | `UML Sequence Diagram `_ 26 | For more information about UML Sequence Diagram. 27 | 28 | 29 | .. _uml-lifeline: 30 | 31 | Lifeline 32 | ======== 33 | 34 | To create a Lifeline: 35 | 36 | 1. Select **Lifeline** in **Toolbox**. 37 | 2. Drag on the diagram as the size of Lifeline. 38 | 39 | To create a Lifeline from a Classifier (Class, Interface, etc.) by Drag-and-Drop: 40 | 41 | 1. Drag a Classifier from **Explorer**. 42 | 2. Drop on the diagram. 43 | 44 | To edit a Lifeline, you can do following actions: 45 | 46 | * Use :ref:`quick-edit-lifeline` by double-click or press :kbd:`Enter` on a selected Lifeline. 47 | 48 | 49 | .. _uml-message: 50 | 51 | Message 52 | ======= 53 | 54 | To create a Message (or Self Message): 55 | 56 | 1. Select **Message** (or **Self Message**) in **Toolbox**. 57 | 2. Drag from a Lifeline and drop on another Lifeline. (Just click on a Lifeline if you want to create a self message.) 58 | 59 | You can change the kind of message by setting `messageSort` property in **Property Editor**: 60 | 61 | * `synchCall` : Synchronous Call 62 | * `asynchCall` : Asynchronous Call 63 | * `asynchSignal` : Asynchronous Signal 64 | * `createMessage` : Create Message 65 | * `deleteMessage` : Delete Message 66 | * `reply` : Reply Message 67 | 68 | To edit a Message, you can do following actions: 69 | 70 | * Use :ref:`quick-edit-message` by double-click or press :kbd:`Enter` on a selected Message. 71 | 72 | 73 | .. _uml-endpoint: 74 | 75 | Endpoint 76 | ======== 77 | 78 | To create an Endpoint: 79 | 80 | 1. Select **Endpoint** in **Toolbox**. 81 | 2. Click at the position on the diagram. 82 | 83 | 84 | .. _uml-gate: 85 | 86 | Gate 87 | ==== 88 | 89 | To create a Gate: 90 | 91 | 1. Select **Gate** in **Toolbox**. 92 | 2. Click at the position on the diagram. 93 | 94 | 95 | .. _uml-state-invariant: 96 | 97 | State Invariant 98 | =============== 99 | 100 | To create a State Invariant: 101 | 102 | 1. Select **State Invariant** in **Toolbox**. 103 | 2. Click on a Lifeline where the State Invariant to be attached. 104 | 105 | 106 | .. _uml-continuation: 107 | 108 | Continuation 109 | ============ 110 | 111 | To create a Continuation: 112 | 113 | 1. Select **Continuation** in **Toolbox**. 114 | 2. Drag on the diagram as the size of Continuation. 115 | 116 | 117 | .. _uml-combined-fragment: 118 | 119 | Combined Fragment 120 | ================= 121 | 122 | To create a Combined Fragment: 123 | 124 | 1. Select **Combined Fragment** in **Toolbox**. 125 | 2. Drag on the diagram as the size of Combined Fragment. 126 | 127 | To edit a Combined Fragment, you can do following actions: 128 | 129 | * Use :ref:`quick-edit-combined-fragment` by double-click or press :kbd:`Enter` on a selected Combined Fragment. 130 | 131 | 132 | .. _uml-interaction-use: 133 | 134 | Interaction Use 135 | =============== 136 | 137 | To create a Interaction Use: 138 | 139 | 1. Select **Interaction Use** in **Toolbox**. 140 | 2. Drag on the diagram as the size of Interaction Use. 141 | 142 | 143 | -------------------------------------------------------------------------------- /docs/source/modeling-with-uml/working-with-statechart-diagram.rst: -------------------------------------------------------------------------------- 1 | .. _uml-statechart-diagram: 2 | 3 | =============================== 4 | Working with Statechart Diagram 5 | =============================== 6 | 7 | To create a Statechart Diagram: 8 | 9 | 1. Select first an element where a new Statechart Diagram to be contained as a child. 10 | 2. Select **Model | Add Diagram | Statechart Diagram** in Menu Bar or select **Add Diagram | Statechart Diagram** in Context Menu. 11 | 12 | In Statechart Diagram, you can use following elements. 13 | 14 | * :ref:`uml-state` 15 | * :ref:`uml-internal-activity` 16 | * :ref:`uml-region` 17 | * :ref:`uml-initial-state` 18 | * :ref:`uml-final-state` 19 | * :ref:`uml-choice` 20 | * :ref:`uml-join` 21 | * :ref:`uml-fork` 22 | * :ref:`uml-junction` 23 | * :ref:`uml-shallow-history` 24 | * :ref:`uml-deep-history` 25 | * :ref:`uml-entry-point` 26 | * :ref:`uml-exit-point` 27 | * :ref:`uml-terminate` 28 | * :ref:`uml-connection-point-reference` 29 | * :ref:`uml-transition` 30 | 31 | .. seealso:: 32 | `UML Statechart Diagram `_ 33 | For more information about UML Statechart Diagram. 34 | 35 | 36 | .. _uml-state: 37 | 38 | State 39 | ===== 40 | 41 | To create a Simple State: 42 | 43 | 1. Select **Simple State** in **Toolbox**. 44 | 2. Drag on the diagram as the size of Simple State. 45 | 46 | To create a Composite State: 47 | 48 | 1. Select **Composite State** in **Toolbox**. 49 | 2. Drag on the diagram as the size of Composite State. 50 | 51 | To create a Submachine State: 52 | 53 | 1. Select **Submachine State** in **Toolbox**. 54 | 2. Drag on the diagram as the size of Submachine State. 55 | 3. Select a StateMachine in **Element Picker Dialog**. 56 | 57 | To create an Orthogonal State: 58 | 59 | 1. Select **Orthogonal State** in **Toolbox**. 60 | 2. Drag on the diagram as the size of Orthogonal State. 61 | 62 | To edit a State, you can do following actions: 63 | 64 | * Use :ref:`quick-edit-state` by double-click or press :kbd:`Enter` on a selected State. 65 | * Add Entry Activity - See :ref:`uml-internal-activity`. 66 | * Add Do Activity - See :ref:`uml-internal-activity`. 67 | * Add Exit Activity - See :ref:`uml-internal-activity`. 68 | * Add Region - See :ref:`uml-region`. 69 | 70 | 71 | .. _uml-internal-activity: 72 | 73 | Internal Activity 74 | ================= 75 | 76 | To add an Entry Activity: 77 | 78 | 1. Select a State. 79 | 2. Select **Model | Add | Entry Activity** in Menu Bar or **Add | Entry Activity** in Context Menu. 80 | 3. Select a kind of Activity to create. 81 | 82 | To add a Do Activity: 83 | 84 | 1. Select a State. 85 | 2. Select **Model | Add | Do Activity** in Menu Bar or **Add | Do Activity** in Context Menu. 86 | 3. Select a kind of Activity to create. 87 | 88 | To add an Exit Activity: 89 | 90 | 1. Select a State. 91 | 2. Select **Model | Add | Exit Activity** in Menu Bar or **Add | Exit Activity** in Context Menu. 92 | 3. Select a kind of Activity to create. 93 | 94 | 95 | .. _uml-region: 96 | 97 | Region 98 | ====== 99 | 100 | To add a Region: 101 | 102 | 1. Select a State. 103 | 2. Select **Model | Add | Region** in Menu Bar or **Add | Region** in Context Menu. 104 | 105 | 106 | .. _uml-initial-state: 107 | 108 | Initial State 109 | ============= 110 | 111 | To create a Initial State: 112 | 113 | 1. Select **Initial State** in **Toolbox**. 114 | 2. Click at the position on the diagram. 115 | 116 | 117 | .. _uml-final-state: 118 | 119 | Final State 120 | =========== 121 | 122 | To create a Final State: 123 | 124 | 1. Select **Final State** in **Toolbox**. 125 | 2. Click at the position on the diagram. 126 | 127 | 128 | .. _uml-choice: 129 | 130 | Choice 131 | ====== 132 | 133 | To create a Choice: 134 | 135 | 1. Select **Choice** in **Toolbox**. 136 | 2. Click at the position on the diagram. 137 | 138 | 139 | .. _uml-join: 140 | 141 | Join 142 | ==== 143 | 144 | To create a Join: 145 | 146 | 1. Select **Join** in **Toolbox**. 147 | 2. Drag on the diagram as the size of Join. 148 | 149 | 150 | .. _uml-fork: 151 | 152 | Fork 153 | ==== 154 | 155 | To create a Fork: 156 | 157 | 1. Select **Fork** in **Toolbox**. 158 | 2. Drag on the diagram as the size of Fork. 159 | 160 | 161 | .. _uml-junction: 162 | 163 | Junction 164 | ======== 165 | 166 | To create a Junction: 167 | 168 | 1. Select **Junction** in **Toolbox**. 169 | 2. Click at the position on the diagram. 170 | 171 | 172 | .. _uml-shallow-history: 173 | 174 | Shallow History 175 | =============== 176 | 177 | To create a Shallow History: 178 | 179 | 1. Select **Shallow History** in **Toolbox**. 180 | 2. Click at the position on the diagram. 181 | 182 | 183 | .. _uml-deep-history: 184 | 185 | Deep History 186 | ============ 187 | 188 | To create a Deep History: 189 | 190 | 1. Select **Deep History** in **Toolbox**. 191 | 2. Click at the position on the diagram. 192 | 193 | 194 | .. _uml-entry-point: 195 | 196 | Entry Point 197 | =========== 198 | 199 | To create a Entry Point: 200 | 201 | 1. Select **Entry Point** in **Toolbox**. 202 | 2. Click at the position on the diagram. 203 | 204 | 205 | .. _uml-exit-point: 206 | 207 | Exit Point 208 | ========== 209 | 210 | To create a Exit Point: 211 | 212 | 1. Select **Exit Point** in **Toolbox**. 213 | 2. Click at the position on the diagram. 214 | 215 | 216 | .. _uml-terminate: 217 | 218 | Terminate 219 | ========= 220 | 221 | To create a Terminate: 222 | 223 | 1. Select **Terminate** in **Toolbox**. 224 | 2. Click at the position on the diagram. 225 | 226 | 227 | .. _uml-connection-point-reference: 228 | 229 | Connection Point Reference 230 | ========================== 231 | 232 | To create a Connection Point Reference: 233 | 234 | 1. Select **Connection Point Reference** in **Toolbox**. 235 | 2. Click on a State where Connection Point Reference to be contained. 236 | 237 | 238 | .. _uml-transition: 239 | 240 | Transition 241 | ========== 242 | 243 | To create a Transition (or Self Transition): 244 | 245 | 1. Select **Transition** (or **Self Transition**) in **Toolbox**. 246 | 2. Drag from a State and drop on another State. (Just click on a State if you want to create a Self Transition.) 247 | 248 | To edit a Transition, you can do following actions: 249 | 250 | * Use :ref:`quick-edit-transition` by double-click or press :kbd:`Enter` on a selected Transition. 251 | 252 | -------------------------------------------------------------------------------- /docs/source/modeling-with-uml/working-with-use-case-diagram.rst: -------------------------------------------------------------------------------- 1 | .. _uml-use-case-diagram: 2 | 3 | ============================= 4 | Working with Use Case Diagram 5 | ============================= 6 | 7 | To create a Use Case Diagram: 8 | 9 | 1. Select first an element where a new Use Case Diagram to be contained as a child. 10 | 2. Select **Model | Add Diagram | Use Case Diagram** in Menu Bar or select **Add Diagram | Use Case Diagram** in Context Menu. 11 | 12 | In Use Case Diagram, you can use following elements. 13 | 14 | * :ref:`uml-package` 15 | * :ref:`uml-use-case-subject` 16 | * :ref:`uml-actor` 17 | * :ref:`uml-use-case` 18 | * :ref:`uml-extension-point` 19 | * :ref:`uml-association` 20 | * :ref:`uml-dependency` 21 | * :ref:`uml-generalization` 22 | * :ref:`uml-include` 23 | * :ref:`uml-extend` 24 | 25 | .. seealso:: 26 | `UML Use Case Diagram `_ 27 | For more information about UML Use Case Diagram. 28 | 29 | .. _uml-use-case-subject: 30 | 31 | Use Case Subject 32 | ================ 33 | 34 | To create an Use Case Subject: 35 | 36 | 1. Select **Use Case Subject** in **Toolbox**. 37 | 2. Drag on the diagram as the size of Use Case Subject. 38 | 39 | 40 | .. _uml-actor: 41 | 42 | Actor 43 | ===== 44 | 45 | To create an Actor: 46 | 47 | 1. Select **Actor** in **Toolbox**. 48 | 2. Drag on the diagram as the size of Actor. 49 | 50 | To create an Actor (model element only) by Menu: 51 | 52 | 1. Select an Element where a new Actor to be contained. 53 | 2. Select **Model | Add | Actor** in Menu Bar or **Add | Actor** in Context Menu. 54 | 55 | To edit an Actor, you can do following actions: 56 | 57 | * Use :ref:`quick-edit-classifier` by double-click or press :kbd:`Enter` on a selected Actor. 58 | * Add Attribute - See :ref:`uml-attribute` 59 | * Add Operation - See :ref:`uml-operation` 60 | 61 | To suppress Attributes, see :ref:`format-suppress-attributes`. 62 | 63 | To suppress Operations, see :ref:`format-suppress-operations`. 64 | 65 | To hide Operation signatures, see :ref:`format-show-operation-signature`. 66 | 67 | .. _uml-use-case: 68 | 69 | Use Case 70 | ======== 71 | 72 | To create an Use Case: 73 | 74 | 1. Select **Use Case** in **Toolbox**. 75 | 2. Drag on the diagram as the size of Use Case. 76 | 77 | To create an Use Case (model element only) by Menu: 78 | 79 | 1. Select an Element where a new Use Case to be contained. 80 | 2. Select **Model | Add | Use Case** in Menu Bar or **Add | Use Case** in Context Menu. 81 | 82 | To edit an Use Case, you can do following actions: 83 | 84 | * Use :ref:`quick-edit-usecase` by double-click or press :kbd:`Enter` on a selected Use Case. 85 | * Add Extension Point - See :ref:`uml-extension-point`. 86 | 87 | To suppress Attributes, see :ref:`format-suppress-attributes`. 88 | 89 | To suppress Operations, see :ref:`format-suppress-operations`. 90 | 91 | To hide Operation signatures, see :ref:`format-show-operation-signature`. 92 | 93 | .. _uml-extension-point: 94 | 95 | Extension Point 96 | =============== 97 | 98 | To add an Extension Point: 99 | 100 | 1. Select an Use Case. 101 | 2. Select **Model | Add | Extension Point** in Menu Bar or **Add | Extension Point** in Context Menu. 102 | 103 | To edit an Extension Point, you can do following actions: 104 | 105 | * Use :ref:`quick-edit-extension-point` by double-click or press :kbd:`Enter` on a selected Extension Point. 106 | 107 | 108 | .. _uml-include: 109 | 110 | Include 111 | ======= 112 | 113 | To create an Include: 114 | 115 | 1. Select **Include** in **Toolbox**. 116 | 2. Drag from a Use Case and drop on another Use Case (to be included). 117 | 118 | .. _uml-extend: 119 | 120 | Extend 121 | ====== 122 | 123 | To create an Extend: 124 | 125 | 1. Select **Extend** in **Toolbox**. 126 | 2. Drag from a Use Case (to be extended) and drop on another Use Case. 127 | -------------------------------------------------------------------------------- /docs/source/reference/dialogs.rst: -------------------------------------------------------------------------------- 1 | ======= 2 | Dialogs 3 | ======= 4 | 5 | 6 | .. _ui-font-dialog: 7 | 8 | Font Dialog 9 | =========== 10 | 11 | .. image:: /images/font-dialog.png 12 | 13 | 14 | .. _ui-color-dialog: 15 | 16 | Color Dialog 17 | ============ 18 | 19 | .. image:: /images/color-dialog.png 20 | 21 | 22 | .. _ui-element-picker-dialog: 23 | 24 | Element Picker Dialog 25 | ===================== -------------------------------------------------------------------------------- /docs/source/reference/keyboard-shortcuts.rst: -------------------------------------------------------------------------------- 1 | ================== 2 | Keyboard Shortcuts 3 | ================== 4 | 5 | -------------------------------------------------------------------------------- /docs/source/reference/quick-edits.rst: -------------------------------------------------------------------------------- 1 | =========== 2 | Quick Edits 3 | =========== 4 | 5 | Quick Edit is a dialog to support editing elements quickly. To show Quick Edit, double-click or press :kbd:`Enter` on a selected Class. 6 | 7 | .. _quick-edit-general: 8 | 9 | Quick Edit for General Element 10 | ============================== 11 | 12 | Quick Edit for General Element allows following actions: 13 | 14 | * Change ``visibility`` - Select visibility in the dropdown button. 15 | * Edit name expression - Refer to :ref:`syntax-name-expression`. 16 | 17 | 18 | 19 | .. _syntax-name-expression: 20 | 21 | Syntax of Name Expression 22 | ------------------------- 23 | 24 | .. code:: 25 | 26 | [ "<<" stereotype ">>" ] [ visibility ] name 27 | 28 | ``stereotype`` 29 | Stereotype name of element. 30 | 31 | ``visibility = "+" | "#" | "-" | "~"`` 32 | ``+`` (public), ``#`` (protected), ``-`` (private), or ``~`` (package). 33 | 34 | ``name`` 35 | Name of element. 36 | 37 | 38 | .. _quick-edit-classifier: 39 | 40 | Quick Edit for Classifier 41 | ========================= 42 | 43 | Applicable to Classifier element (Class, Interface, Signal, DataType, PrimitiveType, Enumeration, Component, Node, Artifact, Use Case, and Actor). 44 | 45 | Support following actions: 46 | 47 | * Change ``visibility`` - Select visibility in the dropdown button. 48 | * Edit name expression - Refer to :ref:`syntax-name-expression`. 49 | * Add Attribute - Click Add Attribute button. 50 | * Add Operation - Click Add Operation button. 51 | 52 | 53 | .. _quick-edit-attribute: 54 | 55 | Quick Edit for Attribute 56 | ======================== 57 | 58 | * Change ``visibility`` - Select a visibility kind in the dropdown. 59 | * Edit attribute expression 60 | * Add - Press Add button or press :kbd:`Ctrl+Enter`. 61 | * Delete - Press Delete button or press :kbd:`Ctrl+Delete`. 62 | * Move Up - Press Move Up button or press :kbd:`Ctrl+Up`. 63 | * Move Down - Press Move Down button or press :kbd:`Ctrl+Down`. 64 | 65 | 66 | .. _quick-edit-operation: 67 | 68 | Quick Edit for Operation 69 | ======================== 70 | 71 | * Change ``visibility`` - Select a visibility kind in the dropdown. 72 | * Edit operation expression 73 | * Add - Press Add button or press :kbd:`Ctrl+Enter`. 74 | * Delete - Press Delete button or press :kbd:`Ctrl+Delete`. 75 | * Move Up - Press Move Up button or press :kbd:`Ctrl+Up`. 76 | * Move Down - Press Move Down button or press :kbd:`Ctrl+Down`. 77 | 78 | 79 | .. _quick-edit-template-parameter: 80 | 81 | Quick Edit for Template Parameter 82 | ================================= 83 | 84 | * Change ``visibility`` - Select a visibility kind in the dropdown. 85 | * Edit template parameter expression 86 | * Add - Press Add button or press :kbd:`Ctrl+Enter`. 87 | * Delete - Press Delete button or press :kbd:`Ctrl+Delete`. 88 | * Move Up - Press Move Up button or press :kbd:`Ctrl+Up`. 89 | * Move Down - Press Move Down button or press :kbd:`Ctrl+Down`. 90 | 91 | 92 | .. _quick-edit-enumeration: 93 | 94 | Quick Edit for Enumeration 95 | ========================== 96 | 97 | Applicable to Enumeration. 98 | 99 | Support following actions: 100 | 101 | * Change ``visibility`` - Select visibility in the dropdown button. 102 | * Edit name expression - Refer to :ref:`syntax-name-expression`. 103 | * Add Enumeration Literal - Click Add Literal button. 104 | 105 | 106 | .. _quick-edit-enumeration-literal: 107 | 108 | Quick Edit for Enumeration Literal 109 | ================================== 110 | 111 | Applicable to Enumeration Literals. 112 | 113 | Support following actions: 114 | 115 | * Change ``visibility`` - Select a visibility kind in the dropdown. 116 | * Edit name expression 117 | * Add - Press Add button or press :kbd:`Ctrl+Enter`. 118 | * Delete - Press Delete button or press :kbd:`Ctrl+Delete`. 119 | * Move Up - Press Move Up button or press :kbd:`Ctrl+Up`. 120 | * Move Down - Press Move Down button or press :kbd:`Ctrl+Down`. 121 | 122 | 123 | .. _quick-edit-instance: 124 | 125 | Quick Edit for Instance 126 | ======================= 127 | 128 | Applicable to Instances (Object, ArtifactInstance, ComponentInstance, NodeInstance). 129 | 130 | Support following actions: 131 | 132 | * Change ``visibility`` - Select visibility in the dropdown button. 133 | * Edit name expression - Refer to :ref:`syntax-name-expression`. 134 | * Add Slot - Click Add Slot button. 135 | 136 | 137 | .. _quick-edit-slot: 138 | 139 | Quick Edit for Slot 140 | =================== 141 | 142 | Applicable to Slots. 143 | 144 | Support following actions: 145 | 146 | * Change ``visibility`` - Select a visibility kind in the dropdown. 147 | * Edit name expression 148 | * Add - Press Add button or press :kbd:`Ctrl+Enter`. 149 | * Delete - Press Delete button or press :kbd:`Ctrl+Delete`. 150 | * Move Up - Press Move Up button or press :kbd:`Ctrl+Up`. 151 | * Move Down - Press Move Down button or press :kbd:`Ctrl+Down`. 152 | 153 | 154 | .. _quick-edit-use-case: 155 | 156 | Quick Edit for Use Case 157 | ======================= 158 | 159 | Applicable to Use Case. 160 | 161 | Support following actions: 162 | 163 | * Change ``visibility`` - Select visibility in the dropdown button. 164 | * Edit name expression - Refer to :ref:`syntax-name-expression`. 165 | * Add Extension Point - Click Add Extension Point button. 166 | 167 | .. _quick-edit-extension-point: 168 | 169 | Quick Edit for Extension Point 170 | ============================== 171 | 172 | Applicable to Extension Points. 173 | 174 | Support following actions: 175 | 176 | * Change ``visibility`` - Select a visibility kind in the dropdown. 177 | * Edit name expression 178 | * Add - Press Add button or press :kbd:`Ctrl+Enter`. 179 | * Delete - Press Delete button or press :kbd:`Ctrl+Delete`. 180 | * Move Up - Press Move Up button or press :kbd:`Ctrl+Up`. 181 | * Move Down - Press Move Down button or press :kbd:`Ctrl+Down`. 182 | 183 | 184 | .. _quick-edit-lifeline: 185 | 186 | Quick Edit for Lifeline 187 | ======================= 188 | 189 | Applicable to Lifeline. 190 | 191 | Support following actions: 192 | 193 | * Edit lifeline expression 194 | * Select Type - Press Select Type button. 195 | * Create Type - Press Create Type button. 196 | 197 | 198 | .. _quick-edit-message: 199 | 200 | Quick Edit for Message 201 | ====================== 202 | 203 | Applicable to Message. 204 | 205 | Support following actions: 206 | 207 | * Edit message expression 208 | * Select Operation - Press Select Operation button. 209 | * Create Operation - Press Create Operation button. 210 | * Select Signal - Press Select Signal button. 211 | * Create Signal - Press Create Signal button. 212 | 213 | 214 | .. _quick-edit-combined-fragment: 215 | 216 | Quick Edit for Combined Fragment 217 | ================================ 218 | 219 | Applicable to Combined Fragment. 220 | 221 | Support following actions: 222 | 223 | * Edit name expression 224 | * Add Operand - Press Add Operand button. 225 | 226 | 227 | .. _quick-edit-state: 228 | 229 | Quick Edit for State 230 | ==================== 231 | 232 | Applicable to State. 233 | 234 | Support following actions: 235 | 236 | * Edit name expression 237 | * Add Region - Press Add Region button. 238 | * Add Entry Activity - Press Add Entry Activity button. 239 | * Add Do Activity - Press Add Do Activity button. 240 | * Add Exit Activity - Press Add Exit Activity button. 241 | 242 | 243 | .. _quick-edit-transition: 244 | 245 | Quick Edit for Transition 246 | ========================= 247 | 248 | Applicable to Transition. 249 | 250 | Support following actions: 251 | 252 | * Edit name expression 253 | * Add Trigger Event - Press Add Trigger Event button. 254 | * Add Behavior Effect - Press Add Behavior Effect button. 255 | 256 | 257 | .. _quick-edit-action: 258 | 259 | Quick Edit for Action 260 | ===================== 261 | 262 | Applicable to Action. 263 | 264 | Support following actions: 265 | 266 | * Edit name expression 267 | * Add Trigger Event - Press Add Trigger Event button. 268 | -------------------------------------------------------------------------------- /docs/source/reference/reference.rst: -------------------------------------------------------------------------------- 1 | ========= 2 | Reference 3 | ========= 4 | 5 | .. toctree:: 6 | :maxdepth: 2 7 | 8 | quick-edits 9 | uml-validation-rules -------------------------------------------------------------------------------- /docs/source/reference/uml-validation-rules.rst: -------------------------------------------------------------------------------- 1 | ==================== 2 | UML Validation Rules 3 | ==================== 4 | 5 | UMLModelElement 6 | =============== 7 | 8 | **(UML001) Name expected.** 9 | 10 | - Element should have a name. 11 | - Applies to: ``UMLModelElement``. 12 | - Exceptions: ``UMLParameter (only if direction === 'return')``, ``UMLDirectedRelationship``, ``UMLRelationshipEnd``, ``UMLUndirectedRelationship``, ``UMLAssociationClassLink``, ``UMLRegion``, ``UMLPseudostate``, ``UMLFinalState``, ``UMLControlNode``, ``UMLEndpoint``, ``UMLGate``, ``UMLImage``. 13 | 14 | **(UML002) Name is already defined.** 15 | 16 | - If element has a name, then it should be unique in the namespace. 17 | - Applies to: ``UMLModelElement``. 18 | - Exceptions: ``UMLOperation``. 19 | 20 | 21 | UMLAttribute 22 | ============ 23 | 24 | **(UML003) Conflict with inherited attributes.** 25 | 26 | - Applies to: ``UMLAttribute``. 27 | 28 | UMLOperation 29 | ============ 30 | 31 | **(UML004) Signature conflict.** 32 | 33 | - Same signature is not allowed in a classifier. 34 | - Applies To: ``UMLOperation``. 35 | 36 | UMLClassifier 37 | ============= 38 | 39 | **(UML006) Final and leaf element must not have child.** 40 | 41 | - If ``isFinalSpecifiction`` or ``isLeaf`` is true, then it should not have child. 42 | - Applies to: ``UMLClassifier``. 43 | 44 | **(UML007) Duplicated generalizations.** 45 | 46 | - Do not make duplicated generalizations from the same element. 47 | - Applies to: ``UMLClassifier``. 48 | 49 | **(UML008) Circular generalizations.** 50 | 51 | - Do not generalize from one of the children. 52 | - Applies to: ``UMLClassifier``. 53 | 54 | **(UML009) Duplicated realizations.** 55 | 56 | - Applies to: ``UMLClassifier``. 57 | 58 | **(UML010) Duplicated role names of associated classifiers.** 59 | 60 | - Applies to: ``UMLClassifier``. 61 | 62 | UMLInterface 63 | ============ 64 | 65 | **(UML011) All attributes and operations of interface must be public.** 66 | 67 | - All attributes and operations of an interface should have public visibility. 68 | - Applies to: ``UMLInterface``. 69 | 70 | UMLAssociation 71 | ============== 72 | 73 | **(UML012) Aggregation must be one in an association.** 74 | 75 | - Applies to: ``UMLAssociation``. 76 | 77 | 78 | UMLArtifactInstance 79 | =================== 80 | 81 | **(UML013) Type of an artifact instance must be an artifact.** 82 | 83 | - Applies to: ``UMLArtifactInstance``. 84 | 85 | UMLComponentInstance 86 | ==================== 87 | 88 | **(UML014) Type of a component instance must be a component.** 89 | 90 | - Applies to: ``UMLComponentInstance``. 91 | 92 | UMLNodeInstance 93 | =============== 94 | 95 | **(UML015) Type of a node instance must be a node.** 96 | 97 | - Applies to: ``UMLNodeInstance``. 98 | 99 | UMLMetaClass 100 | ============ 101 | 102 | **(UML016) A metaclass must have name defined in metamodel.** 103 | 104 | - Applies to: ``UMLMetaClass`` 105 | 106 | UMLStereotype 107 | ============= 108 | 109 | **(UML017) A stereotype must inherits from stereotype.** 110 | 111 | - Applies To: ``UMLStereotype`` 112 | 113 | **(UML018) A stereotype must contained by a profile.** 114 | 115 | - Applies To: ``UMLStereotype`` 116 | 117 | UMLActor 118 | ======== 119 | 120 | **(UML019) An actor only can associate with use cases, components, and classes.** 121 | 122 | - Applies To: ``UMLActor`` 123 | 124 | UMLUseCase 125 | ========== 126 | 127 | **(UML020) A use case cannot include use cases that directly or indirectly include it.** 128 | 129 | - Applies To: ``UMLUseCase`` 130 | 131 | UMLPseudostate 132 | ============== 133 | 134 | **(UML021) An initial vertex can have at most one outgoing transition.** 135 | 136 | - Applies To: ``UMLPseudostate (kind = 'initial')`` 137 | 138 | **(UML022) The outgoing transition from an initial vertex must not have a trigger or guard.** 139 | 140 | - Applies To: ``UMLPseudostate (kind = 'initial')`` 141 | 142 | **(UML023) History vertices can have at most one outgoing transition.** 143 | 144 | - Applies To: ``UMLPseudostate (kind = 'deepHistory' | 'shallowHistory'`` 145 | 146 | **(UML024) A join vertex must have at least two incoming transitions and exactly one outgoing transition.** 147 | 148 | - Applies To: ``UMLPseudostate (kind = 'join')`` 149 | 150 | **(UML025) A fork vertex must have at least two outgoing transitions and exactly one incoming transition.** 151 | 152 | - Applies To: ``UMLPseudostate (kind = 'fork')`` 153 | 154 | **(UML026) A junction vertex must have at least one incoming and one outgoing transition.** 155 | 156 | - Applies To: ``UMLPseudostate (kind = 'junction')`` 157 | 158 | **(UML027) A choice vertex must have at least one incoming and one outgoing transition.** 159 | 160 | - Applies To: ``UMLPseudostate (kind = 'choice')`` 161 | 162 | UMLState 163 | ======== 164 | 165 | **(UML028) Only submachine states can have connection point references.** 166 | 167 | - Applies To: ``UMLState`` 168 | 169 | **(UML029) A state is not allowed to have both a submachine and regions.** 170 | 171 | - Applies To: ``UMLState`` 172 | 173 | UMLRegion 174 | ========= 175 | 176 | **(UML030) A region can have at most one initial vertex.** 177 | 178 | - Applies To: ``UMLRegion`` 179 | 180 | **(UML031) A region can have at most one deep history vertex.** 181 | 182 | - Applies To: ``UMLRegion`` 183 | 184 | **(UML032) A region can have at most one shallow history vertex.** 185 | 186 | - Applies To: ``UMLRegion`` 187 | 188 | 189 | UMLFinalState 190 | ============= 191 | 192 | **(UML033) A final state cannot have any outgoing transitions.** 193 | 194 | - Applies To: ``UMLFinalState`` 195 | 196 | **(UML034) A final state cannot have regions.** 197 | 198 | - Applies To: ``UMLFinalState`` 199 | 200 | **(UML035) A final state cannot reference a submachine.** 201 | 202 | - Applies To: ``UMLFinalState`` 203 | 204 | **(UML036) A final state has no entry behavior.** 205 | 206 | - Applies To: ``UMLFinalState`` 207 | 208 | **(UML037) A final state has no exit behavior.** 209 | 210 | - Applies To: ``UMLFinalState`` 211 | 212 | **(UML038) A final state has no state (doActivity) behavior.** 213 | 214 | - Applies To: ``UMLFinalState`` 215 | 216 | 217 | UMLTransition 218 | ============= 219 | 220 | **(UML039) A fork segment must not have guards or triggers.** 221 | 222 | - Applies To: ``UMLTransition`` 223 | 224 | **(UML040) A join segment must not have guards or triggers.** 225 | 226 | - Applies To: ``UMLTransition`` 227 | 228 | **(UML041) A fork segment must always target a state.** 229 | 230 | - Applies To: ``UMLTransition`` 231 | 232 | **(UML042) A join segment must always originate from a state.** 233 | 234 | - Applies To: ``UMLTransition`` 235 | 236 | **(UML043) Transitions outgoing pseudostates may not have a trigger (except for those coming out of the initial pseudostate).** 237 | 238 | - Applies To: ``UMLTransition`` 239 | 240 | 241 | UMLStateMachine 242 | =============== 243 | 244 | **(UML044) The classifier context of a state machine cannot be an interface.** 245 | 246 | - Applies To: ``UMLStateMachine`` 247 | 248 | 249 | UMLDecisonNode 250 | ============== 251 | 252 | (UML045) A decision node has one or two incoming edges and at least one outgoing edge. 253 | 254 | _ Applies To: ``UMLDecisionNode`` 255 | 256 | 257 | UMLMergeNode 258 | ============ 259 | 260 | (UML046) A merge node has one outgoing edge. 261 | 262 | - Applies To: ``UMLMergeNode`` 263 | 264 | (UML047) The edges coming into and out of a merge node must be either all object flows or all control flows. 265 | 266 | - Applies To: ``UMLMergeNode`` 267 | 268 | 269 | UMLInitialNode 270 | ============== 271 | 272 | **(UML048) An initial node has no incoming edges.** 273 | 274 | - Applies To: ``UMLInitialNode`` 275 | 276 | **(UML049) Only control edges can have initial nodes as source.** 277 | 278 | - Applies To: ``UMLInitialNode`` 279 | 280 | 281 | UMLFinalNode 282 | ============ 283 | 284 | **(UML050) A final node has no outgoing edges.** 285 | 286 | - Applies To: ``UMLFinalNode`` 287 | 288 | 289 | UMLForkNode 290 | =========== 291 | 292 | **(UML051) A fork node has one incoming edge.** 293 | 294 | - Applies To: ``UMLForkNode`` 295 | 296 | **(UML052) The edges coming into and out of a fork node must be either all object flows or all control flows.** 297 | 298 | - Applies To: ``UMLForkNode`` 299 | 300 | 301 | UMLJoinNode 302 | =========== 303 | 304 | **(UML053) A join node has one outgoing edge.** 305 | 306 | - Applies To: ``UMLJoinNode`` 307 | 308 | **(UML054) The edges coming into and out of a join node must be either all object flows or all control flows.** 309 | 310 | - Applies To: ``UMLJoinNode`` 311 | 312 | 313 | UMLObjectNode 314 | ============= 315 | 316 | **(UML055) All edges coming into or going out of object nodes must be object flow edges.** 317 | 318 | - Applies To: ``UMLObjectNode`` 319 | 320 | 321 | UMLControlFlow 322 | ============== 323 | 324 | **(UML056) Control flows may not have object nodes at either end, except for object nodes with control type.** 325 | 326 | - Applies To: ``UMLControlFlow`` 327 | 328 | UMLObjectFlow 329 | ============= 330 | 331 | **(UML057) Object flows may not have actions at either end.** 332 | 333 | - Applies To: ``UMLObjectFlow`` 334 | -------------------------------------------------------------------------------- /docs/source/reference/user-interface.rst: -------------------------------------------------------------------------------- 1 | ============== 2 | User Interface 3 | ============== 4 | 5 | 6 | .. _ui-diagram-editor: 7 | 8 | Diagram Editor 9 | ============== 10 | 11 | 12 | .. _ui-sidebar: 13 | 14 | Sidebar 15 | ======= 16 | 17 | .. _ui-working-diagram: 18 | 19 | Working Diagram 20 | --------------- 21 | 22 | .. _ui-toolbox: 23 | 24 | Toolbox 25 | ------- 26 | 27 | 28 | .. _ui-navigator: 29 | 30 | Navigator 31 | ========= 32 | 33 | 34 | .. _ui-explorer: 35 | 36 | Explorer 37 | -------- 38 | 39 | 40 | .. _ui-style-editor: 41 | 42 | Style Editor 43 | ------------ 44 | 45 | 46 | .. _ui-property-editor: 47 | 48 | Property Editor 49 | --------------- 50 | 51 | 52 | .. _ui-documentation-editor: 53 | 54 | Documentation Editor 55 | -------------------- 56 | 57 | 58 | .. _ui-toolbar: 59 | 60 | Toolbar 61 | ======= 62 | 63 | 64 | .. _ui-statusbar: 65 | 66 | StatusBar 67 | ========= 68 | -------------------------------------------------------------------------------- /docs/source/settings.rst: -------------------------------------------------------------------------------- 1 | ======== 2 | Settings 3 | ======== 4 | 5 | 6 | -------------------------------------------------------------------------------- /docs/source/writing-extensions/writing-extensions.rst: -------------------------------------------------------------------------------- 1 | ================== 2 | Writing Extensions 3 | ================== 4 | 5 | 6 | Getting Started 7 | =============== 8 | 9 | 10 | 11 | Accessing Elements 12 | ================== 13 | 14 | 15 | Handling Selection 16 | ================== 17 | 18 | File System 19 | =========== 20 | 21 | 22 | 23 | Extending Menus 24 | =============== 25 | 26 | 27 | Add Preferences 28 | =============== 29 | 30 | 31 | Adding Dialogs 32 | ============== 33 | 34 | Adding User Interface 35 | ===================== 36 | 37 | Unit Test 38 | ========= 39 | 40 | --------------------------------------------------------------------------------