|
|
PRODUCT FEATURES
|
 |
 |
Here are the Metamill main features. Click on the feature on the table below to
read more about the feature. Only the major features are listed here. Download the
evaluation version to see them all.
New features in version 6.0:
Support for UML 2.3
All 14 UML diagrams supported
RTF (Word) document generation
Java annotations support
Experimental sequence diagram reverse engineering
Drag and drop attributes and operations
Super-fast XMI model file loading
Improvements in code engineering and GUI
New features in version 5.0:
UML 2.1 and XMI 2.1 support
All 13 UML diagrams supported
Interaction overview and timing diagrams
Diagram layout algorithm
Support for generics in Java, C# and VB.Net
VB.Net round-trip engineering
Rose .mdl files import/export
Browse diagrams by diagram type
CPP preprocessor for C/C++ code import
|
For a list of miscellaneous features
click here.
|
back home.
|
 |
Use case diagrams
A use case diagram describes the behaviors of the system. When designing
a use case diagram, remember that it should describe what the system
should do, not how it should be done. Use case diagrams can be used
for capturing system requirements.
Note: behaviour of any system can be described. E.g. business processes
can be modeled with use cases.
|
back to top.
|
 |
Package diagrams
Package diagram is used for designing the software architecture of the system.
It consists of organizing the diagrams and elements in manageable groups and
declaring their dependencies. A package is a subsystem or a library of classes
that are semantically close to each other. A package diagram contains packages
and their interfaces and relationships between them.
|
back to top.
|
 |
Class diagrams
A class diagram illustrates the static design view of the system.
It is one of the most important diagrams used in object oriented
modeling. A class diagrams consist of classes and interfaces and
relationships between them. The classes in class diagram usually
have direct counter parties in implementation language. Of course,
you can design classes that are in very high level of abstraction,
just explaining their responsibilities. The high level approach
is usually used at the beginning of design.
|
back to top.
|
 |
Composite structure diagrams
A composite structure diagram illustrates the inner structure of an element, usually
a class or a component. In a composite structure diagram there can be ports on the
edge of the element to describe "gates" to the inner structure of the element.
Within the element itself you can visually explain the inner relationship of parts.
|
back to top.
|
 |
Object diagrams
An object diagrams shows a static design view or static process view of a system.
It freezes a point of time and shows objects and relationships between them at that
moment. Object diagrams can also be used to design static data structures.
|
back to top.
|
 |
Communication diagrams
A communication (collaboration) diagram is an interaction diagram that shows the
structural organisation of objects and messages between them. Communication diagrams
show dynamic aspects of the system. Going and coming messages can be shown on the links.
These describe the events sent and received by objects. A dependency from object to a
class can be used to show explicit class instantiation. Showing only links between
objects without messages you can show static set of objects.
|
back to top.
|
 |
Sequence diagrams
A sequence diagram describes the dynamic design view of the system.
It consists of objects and time ordered messages between them.
Focus of controls are used to describe the period of time during
which the object is performing an action. Asynchronous messages can
be used to describe events with time constraints.
|
back to top.
|
 |
State machine diagrams
With state machine diagram you can model dynamic aspects of the system.
For example you can model life-cycles of an object having different states.
A state machine diagram consist of states and transitions between them.
There are five different types of state: initial state, final state,
deep history, shallow history and normal state. Initial state shows the start
of life cycle and final state describes the end. History state presents
the previous substate in embedded states. All other states are normal
states between initial and end states. State transitions describe events
that cause an object to go from state to another.
|
back to top.
|
 |
Activity diagrams
An activity diagram describes the dynamic aspects of the system. In UML 2.0 activity model
was separated from state machines. It consists of activities containing actions and control flows
between them. Control nodes can used in describing the flow of execution.
With decision node you can specify alternate paths of control flows and with fork and join
you can describe parallel flows of execution. Swimlanes can be used to separate independent areas.
|
back to top.
|
 |
Component diagrams
A component diagram is used in modeling physical aspects of the system.
With component diagrams you can visualize the implementation of
component-based system.
A component is a physical part of the system that can realize a set of
interfaces. A component is easy to replace with another component as long as
it implements properly its interfaces. A component can be an executable,
a library, a source or data file or any other physical part of the system.
|
back to top.
|
 |
Deployment diagrams
A deployment diagram shows the configuration of run time system.
It shows the components and the nodes which the components belong to.
A node is usually understood as physical system, e.g. processor,
which executes the components it owns.
Deployment diagrams are useful describing complex distributed systems.
|
back to top.
|
 |
Interaction overview diagrams
Interaction Overview diagrams focus on the overview of the flow of control,
thus describing high level interaction flows between more complex interactions
shown only as icons. These interaction icons are called interaction use – elements.
They can be understood as shortcuts to interaction diagrams which describe each
interaction in detail.
|
back to top.
|
 |
Timing diagrams
Timing diagrams describe changes in a system’s state on linear time axis.
State lifelines are useful when illustrating discrete and continuous state changes,
such as temperature or density. Value lifeline focus on showing points in time
where the system’s state changes.
|
back to top.
|
 |
Profile diagrams
Profile diagram is used for explicitly describing how stereotypes extend metaclasses.
When a stereotype extends a metaclass the stereotype can be assigned to that metaclass.
E.g. metaclass Class can be extended by two stereotypes, <<activeitem>> and <<standardcontainer>>.
These both stereotypes will then be available in Class stereotype choice-menu.
|
back to top.
|
 |
Extensibility mechanisms
Extensibility mechanisms consists of stereotypes, tagged values and constraints.
Using stereotypes you can create new meta-elements by "stereotyping", i.e. giving new roles to
existing ones. Tagged values are additional information for elements, e.g.
implementation specific guidelines. Textual constraints can be added anywhere in
the model to present limitations in the system behavior.
|
back to top.
|
 |
Managed Packages
A managed package is an otherwise normal package, but which is stored in its
own XMI file. Single packages can be versioned under the version management system.
The main model may be write-protected and only the packages under development
can be made changeable.
|
back to top.
|
 |
Generate C++ code
C++ code can be generated from models. The generated code contains user-blocks which mark
areas the designer can make changes that are not overwritten when the code is re-generated.
It is good practice to always make changes to UML models and then generate the code.
|
back to top.
|
 |
Generate Java code
Java code can be generated from models. The generated code contains user-blocks which mark
areas the designer can make changes that are not overwritten when the code is re-generated.
It is good practice to always make changes to UML models and then generate the code.
|
back to top.
|
 |
Generate C# code
C# code can be generated from models. The generated code contains user-blocks which mark
areas the designer can make changes that are not overwritten when the code is re-generated.
It is good practice to always make changes to UML models and then generate the code.
|
back to top.
|
 |
Generate C code
C code can be generated from models. The generated code contains user-blocks which mark
areas the designer can make changes that are not overwritten when the code is re-generated.
Each class corresponds one C file and methods become global C - functions.
|
back to top.
|
 |
Generate VB.Net code
VB.Net code can be generated from models. The generated code contains user-blocks which mark
areas the designer can make changes that are not overwritten when the code is re-generated.
It is good practice to always make changes to UML models and then generate the code.
|
back to top.
|
 |
Reverse engineer C++ code
C++ code can be reverse engineered from source files. Code can be imported to
a Metamill class diagram using reverse engineering. The models created this way
can be used in code generation and the generated code can be analyzed i.e.
reverse engineered again. This is called round-trip engineering.
|
back to top.
|
 |
Reverse engineer Java code
Java code can be reverse engineered from source files. Code can be imported to
a Metamill class diagram using reverse engineering. The models created this way
can be used in code generation and the generated code can be analyzed i.e.
reverse engineered again. This is called round-trip engineering.
|
back to top.
|
 |
Reverse engineer C# code
C# code can be reverse engineered from source files. Code can be imported to
a Metamill class diagram using reverse engineering. The models created this way
can be used in code generation and the generated code can be analyzed i.e.
reverse engineered again. This is called round-trip engineering.
|
back to top.
|
 |
Reverse engineer C code
C code can be reverse engineered from source files. Code can be imported to
a Metamill class diagram using reverse engineering. Code can be generated from these
models in C, C++, Java or C#. Reverse engineering C is best used for understanding
old legacy code.
|
back to top.
|
 |
Reverse engineer VB.Net code
VB.Net code can be reverse engineered from source files. Code can be imported to
Metamill model and class diagrams using reverse engineering. VB.Net code generation
is also supported.
|
back to top.
|
 |
Reverse engineer sequence diagrams
Experimental sequence diagram reverse engineering helps to understand existing code. You can
automatically create sequence diagrams for operations. It will consider only objects and operations
known to the model, this also avoids unnecessary clutter. Currently supports C++ and Java.
|
back to top.
|
 |
UML 2.3 metamodel system
Metamill metamodel system has been partially re-written to support latest standard,
UML 2.3. Enhanced metamodel support allows easier and more detailed metaelement management.
|
back to top.
|
 |
XMI 2.1 support
Metamill model files are standard XMI 2.1 files. i.e. XML files. This
allows access by external XML tools. Metamill also imports and export XMI 1.2 and 1.1.
There is also limited import support for older XMI 1.0.
|
back to top.
|
 |
HTML document generation
Metamill can generate HTML documentation from the model. This allows other
users to easily browse the model. Also plain text generation is possible.
|
back to top.
|
 |
RTF document generation
Metamill can generate RTF documentation from the model. Generated document can be
opened with Word or OpenOffice word processor and further edited.
|
back to top.
|
 |
MetamillScript scripting language
MetamillScript is a simple scripting language that can be used to manipulate
metaelements in the model. The core language is implemented and basic access methods
for model elements are available. Also recursive subroutines are supported. MetamillScripts
are executed from the Metamill GUI.
|
back to top.
|
 |
Export Rose .mdl model files
Metamill can export .mdl model files which can be opened by Rose tool. Also diagrams are
exported as much as possible.
|
back to top.
|
 |
Import Rose .mdl model files
Metamill can import .mdl model files written by Rose tool. Also diagrams are
imported as much as possible.
|
back to top.
|
 |
Model templates
Model templates can be defined for use when new models are created. Templates may contain any
structures that normal model contain. Usually it contains domain specific stereotypes,
source language primitive datatypes (void, int, long etc.). Model template may also
contain a package structure which is common to many designs.
|
back to top.
|
 |
Miscellaneous features
export diagram to metafile or bitmap
copy/paste to clipboard
parameterized class (templates)
notes and note-links
tabbed dialogs for settings
multiple source file import
mouse right click short-cuts
project tree for easy diagram access
vertical tool-palette
multi-page printing
undo/redo commands
element type color-settings
autosize elements
diagram panning
all this and more..
|
back to top.
|