3.2.1
October, 24th 2007
- Previous version modify the position of the
labels in the diagrams in some cases, fixed.
- When you edited operation body through shortcut or context
menu with add operation profile on body edition set,
the operation profile was not be showed, fixed.
3.2
October, 21th 2007
- The SVG produced for a component diagram
contained floating point numbers. Depending on the settings
associated to your country, the representation of a float can
uses a ',' rather than a '.', not compatible
with SVG. Now all the produced numbers are integers.
- Add xml:space="preserve" in the SVG text forms, at least
to indent arguments given on several lines in a
sequence diagram.
- It was not possible to add a state diagram icon and an
activity diagram icon in a state diagram,
component diagram, sequence diagram,
collaboration diagram, object diagram,
use case diagram, deployment diagram
and activity diagram. Fixed.
- The interfaces provided and required by a nested subcomponent
are automatically provided and required by the direct
container component, but this didn't work for more levels,
fixed.
- In a sequence diagram, the arguments given on several
lines are shown pseudo centered, fixed.
- It was not possible for a component to require and
provide the same interface, this limitation is removed.
- Modify the component dialog to set the realizing classes
(wrongly labeled realized classes in previous releases)
in a dedicated tab rather than to set them with the
provided classes.
- Plug-out upgrade 1.10.1
Since Bouml 2.28 the activities are not added,
fixed.
Rename the operation UmlBaseComponent::realizedClasses to
realizingClasses.
Warning, doesn't modify the exiting calls of realizedClasses.
Rename the parameter realized of the operation
UmlBaseComponent::set_AssociatedClasses to realizing
Add operation PhpSettings::classUmlStereotype.
Add operations UmlBaseItem::isMarked, UmlBaseItem::set_isMarked,
UmlBaseItem::markedItems, UmlBaseItem::referencedBy,
UmlBaseState::set_AssociatedDiagram,
UmlBasePackage::loadProject, UmlBasePackage::saveProject
and UmlBasePackage::isProjectModified
if they are not defined.
- Html documentation Generator 2.13.1
Plug-out empty
Upgraded by plug-out upgrade.
- .pro Generator 2.1.3
Add WITHPHP if at least two WITH*
are defined. Note : compatible with old
plug-outs without Php.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
3.1
October, 14th 2007
- Since the 3.0 when you load a project Java management and default definition
is forced to false if Php management and default definition
is not set, fixed.
- Add force body generation flag on the operations to allow to
generate their body even if preserve operation's body is set.
Usefull to generate the implementation of the state machines
in all the cases.
- Java Generator 2.13
C++ Generator 2.10
Fixe the indent of the first item of an enum itself
embeded in an other class.
To manage operations having their body generated even
if preserve operation's body is set.
- Php Generator 1.1
To manage operations having their body generated even
if preserve operation's body is set.
- State machine generator 1.4
To set force body generation on the produced operations.
Upgraded by plug-out upgrade.
- Roundtrip body 1.5
To not change the body of the operations having
force body generation set.
- Global change 1.1
To manage Php definitions.
Upgraded by plug-out upgrade.
- Html documentation Generator 2.13
To generate Php definitions.
Upgraded by plug-out upgrade.
- Plug-out upgrade 1.10
To add missing vector allocations in Java definitions.
To add Php management and force body generation.
Note : you must define WITHPHP when
your plug-out is implemented in C++ and you
defined WITHCPP WITHJAVA and WITHIDL.
- Plug-out empty
Upgraded by plug-out upgrade.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
3.0.2
October, 9th 2007
- Since 2.32.1 Bouml crash when you add a non self
transition, fixed.
- Since 3.0 moving or copying an operation from
a class to another class may destruct its body, fixed.
- Roundtrip body 1.4
Plug-out upgrade 1.9
Fixe a problem in the new API between the modeler and the plug-outs
(doesn't concern the other plug-outs nor the users ones).
- State machine generator 1.3.3
Management of consecutive pseudo states
(for instance choices) was wrong,
fixed.
3.0.1
October, 8th 2007
- Previous releases may crash during a save,
fixed.
- Php Reverse 1.0.1
The name of the produced artifact contained the
reversed file extension, fixed.
To manage file names containing a dot, ie
having more than the dot separating the name
and the extension.
- Java Reverse 2.10.1
Java Catalog 2.10.1
C++ Reverse 2.7.1
Project synchro 1.1.2
Project control 1.1.1
To manage file names containing a dot, ie
having more than the dot separating the name
and the extension.
3.0
October, 7th 2007
- Add management of PHP 4 and 5
Currently the scope of PHP is not as large as it is
for C++ and Java, for instance there is no PHP definitions
in the state machine and activities because this seems useless.
- Now the tabs dedicated to a given language are not shown in the
dialogs when you don't ask for its management through the
menu Languages.
- Java Reverse 2.10
Java Catalog 2.10
Since Bouml 2.31.2 the simple inheritances produce realization
stereotyped bind, fixed.
Follow the new API.
- Php Generator 1.0
New plug-out generating code for PHP.
To produce definition without visibility compatible
with PHP 4, remove ${visibility} in the
generation settings and in the definitions
made before, or set the visibility to package
at the UML level.
Refer to the documentation.
- Php Reverse 1.0
New plug-out reversing PHP code.
Refer to the documentation.
To test the reverse I applied it on the sources of
Joomla 1.5RC2,
this produces almost 600 classes.
- Roundtrip body 1.3
To roundtrip Php bodies.
Follow the new API.
- Java Generator 2.12
C++ Generator 2.9
C++ Reverse 2.7
Idl Generator 2.8
Follow the new API.
- Plug-out upgrade and the other Plug-outs will
be upgraded later to manage Php.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.32.1
September, 29th 2007
- To distinguish external and internal self transitions
(unfortunatelly drawn outside the state),
the internal self transitions are now drawn with dot lines.
- Optimal window size may produces a too small
window when Bouml is compiled with a Qt 3, fixed.
- In the previous releases when an attribute was duplicated
the multiplicity was not copied, fixed.
2.32
September, 23th 2007
- In the previous releases the lines are always drawn
in the diagrams between the center of their extremities.
Now it is possible to decenter them to have for instance
.
For that do a mouse click
near the beginning or the end of a line and move the mouse
with the click down.
It is not possible to decenter a line having its geometry
set through the line menu geometry (
,
,
or
).
When you change the relative position of its extremities,
a line may go to an other edge like when the line is
not decenter, but the offset with the top or
the left of the edge is unchanged.
Unfortunatelly the angle of a decenter line may change
when the zoom is modified, because it is not always possible
to have exactly the desired font size. This is mainly the
case when the size of the extremities is linked to the font
size, for instance for classes.
To come back to a centered drawing, use the submenu
Geometry of the line menu and choose recenter begin
or recenter end.
- It is now possible to add state machines and activities
under use cases and use case views.
- I consider you have a multiple screens configuration if the desktop width
is greater than 2000 pixels or two times its height. In this case
a message box is shown when Bouml starts, speaking about BOUML_LIMIT_DESKTOP.
To help users having a multiple screen
configuration whose unfortunatelly don't read the
FAQ or the
documentation.
- XMI2 Import 1.2.4
To allow state machines and activities
under use cases and use case views rather than
to place them on upper level or dedicated class views.
- State machine generator 1.3.2
To manage state machines under use cases and
use case views. Because the C++ code generation is not
made for classes under use case or use case view
the state machine generator produces an error when it
is applied on a state machine place in a use cases
or a use case views.
- Plug-out upgrade 1.7.3
To remove ${throw} if present in the default
C++ definition and declaration of the created operations
(Java operations have exception RuntimeException
not existing in C++).
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.31.3
September, 16th 2007
- Now, when you add an item to an enumeration
(class stereotyped enum or enum_pattern),
the item's type is set to the enumeration. Note : this
is also done when the item is added by a plug-out.
- Plug-outs can't add a flow from an
expansion node, fixed.
- XMI2 Generator 1.5.3
To produce the type of the enumeration items, even
if it is not set.
To produce subvertex rather than connectionPoint
for the pseudo states.
To produce transitions out of the regions,
else Eclipse is not able to import them.
To add a missing '>' on activity control node export
- XMI2 Import 1.2.3
To import class instances.
- Html documentation Generator 2.12.1
Modify produced style.css to indent html page
contain.
- Plug-out upgrade 1.7.2
The first parameter of the operation UmlBaseClassInstance::add_Relation
is an UmlRelation rather than an UmlAttribute.
The first parameter of the operation UmlBaseClassInstance::remove_Relation
is an UmlRelation rather than an UmlAttribute.
- Plug-out empty
Upgraded by plug-out upgrade.
2.31.2
September, 11th 2007
- Previous releases crash when you open a diagram
referencing a modeled instance deleted in a previous session
(this means you didn't open the considered diagram
after the deletion of the instance in the same session),
fixed.
- Previous releases crash when you edit a read-only
modeled instance, fixed.
- XMI2 Generator 1.5.2
Modify export of template classes for Uml 2.1
to allow import by Eclipse.
When you export for Eclipse, ask for Uml 2.1 export
and use the file extension xmi.
- XMI2 Import 1.2.2
To be able to import a file produced by the new export for Uml 2.1,
of course Bouml is able to import old files.
- C++ Reverse 2.6.2
Java Reverse 2.9.2
Java Catalog 2.9.1
To create a realization stereotyped bind rather than
a generalization when a class inherits a template class.
2.31.1
September, 2th 2007
- Add a button in the IDL tab of the dialog for attributes
allowing to specify a constant.
- Java Reverse 2.9.1
In the previous releases, when the body of an operation
was not on several lines, this one was directly placed
in the definition of the operation, without using
${body}. This optimization is removed because
this is a problem when you want to generate code with
preserve operations's body.
- C++ Generator 2.8.3
Text artifacts was generated with an unexpected extention,
fixed.
- State machine generator 1.3.1
Fixe bug associated to transitions without trigger.
Instrumented code for the final state was wrong, fixed.
- XMI2 Generator 1.5.1
XMI2 Import 1.2.1
Fixe management of association classes.
- File Control 1.0.4
Add %dironly corresponding to %dir without
the drive.
- C++ utilities 1.1.1
To allow to add constructor declared explicit.
2.31
August, 26th 2007
- In the previous releases, when you move a state only
the substates follow. Now the pseudo states and line breaks
of associated transitions are also moved.
- In the previous releases the self transition was
considered internal (the exit and enter
behaviors was not executed by the code produced
by the state machine generator), now editing
a self transition you can set it external.
By default a self transition is still internal.
- Add the stereotype text for the artifacts.
An artifact having this stereotype doesn't have
associated classes nor artifacts, and the code generators
produce the source definition without any change (there is
no C++ header for them). The extension of the
generated file must be specified in the name of the artifact.
This allows to produce any text file, for instance for
yacc/bison. In a plug-out the definition depending
on the language is accessible though the existing operations.
When you load an artifact
saved by a previous release of Bouml having the stereotype
text, this one is replaced by _text.
- State machine generator 1.3
To manage external self transitions.
In the class corresponding to the state machine
all the sub classes are declared friend allowing
them to access to its protected members. Recall : the
class instance corresponding to the state machine is
given through the operation parameter stm.
Instrument parts of code using the stdio puts
function protected by #ifdef VERBOSE_STATE_MACHINE,
to help you to debug your machine. To add the
instrumentation you must delete the class(es) realizing
your state machine made by the previous releases of
the state machine generator.
- Html documentation Generator 2.12
XMI2 Generator 1.5
XMI2 Import 1.2
To distinguish external and internal self transitions.
- C++ Generator 2.8.2
Java Generator 2.11.2
Idl Generator 2.7.2
To manage text artifacts
To indicate the number of errors and warnings at the end of the trace
- Roundtrip body 1.2.1
To indicate the number of errors and warnings at the end of the trace
- Plug-out upgrade 1.7.1
To add operations isExternal
and set_isExternal on UmlBaseTransition.
- Plug-out empty
Upgraded by plug-out upgrade.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.30.2
August, 12th 2007
- The already opened diagrams was not always updated when
draw all relation is true and a relation/flow/transition
is added on an element, fixed.
- C++ Generator 2.8.1
Java Generator 2.11.1
Idl Generator 2.7.1
Code generation is not done when a class view contains
class instances, fixed.
- XMI Generator 1.4.5
In the previous releases a nested class was generated
as an actor, fixed.
2.30.1
August, 4th 2007
- Previous releases crash when you duplicated
a class instance using the marks, fixed.
- Previous releases crash under Windows
because of a C++ compiler bug in optimize speed
mode, when you ask for some actions through the menu
of a link between two instances in an object diagram.
This occured for instance when you changed the geometry
of the link. Fixed.
- Add the entry duplicate in the menu of the
class instances in the browser. Warning : when an
instance is duplicated, the value of the attributes are copied
but the value of the relations are not copied in the new
instance.
- Add the entry geometry in the menu of the link between
class instances in a collaboration diagram.
- C++ reverse 2.6.1
Several improvements in the management of the namespaces
and the template forms.
2.30
July, 29th 2007
- Sometimes after closing a diagram or dialog the keyboard shortcut
was not taken into account until you click some where on the Bouml
window, fixed.
- It was not possible to duplicate an attribute through
a shortcut, fixed.
- Add management of the multiplicity for the attributes.
The generation settings are modified to be able to
set the default definition of an attribute depending on
the multiplicity.
When you load a project, the attributes defined by previous
releases have an empty multiplicity.
- Java Reverse 2.9
Java Catalog 2.9
When the return value type of an operation was a generic
form referencing a class, the type of the operation was
set to the generic without the form between < >,
fixed.
To manage attribute multiplicity.
- C++ reverse 2.6
When a directory contains several classes having
the same name but placed in different namespaces,
only one of these classes was reversed, fixed.
To manage attribute multiplicity.
- C++ Generator 2.8
Java Generator 2.11
Idl Generator 2.7
Html documentation Generator 2.11
XMI2 Generator 1.4
XMI2 Import 1.1
To manage attribute multiplicity.
- Roundtrip body 1.2
Follow the new API
- Plug-out upgrade 1.7
Do the following modifications :
- In the classes CppSettings, IdlSettings
and JavaSettings, the operation
relationStereotype is renamed
relationAttributeStereotype, the operation
set_RelationStereotype is renamed
set_RelationAttributeStereotype, and the
operation relationUmlStereotype is renamed
relationAttributeUmlStereotype.
If you call these operations you have to modify
your code to use the new names.
- In the classes CppSettings, IdlSettings
and JavaSettings, the operation
attributeDecl has now a parameter giving
the multiplicity (like relationDecl),
and the operation set_AttributeDecl
has a new parameter giving
the multiplicity (like set_RelationDecl).
You have to modify your code to give the multiplicity
if you call these operations.
- In the class IdlSettings, the operations
valuetypeAttributeDecl, unionItemDecl
and constDecl have now a parameter giving
the multiplicity (like relationDecl),
and the operation set_ValuetypeAttributeDecl,
set_UnionItemDecl and set_ConstDecl
have a new parameter giving
the multiplicity (like set_RelationDecl).
You have to modify your code to give the multiplicity
if you call these operations.
This upgrade is not mandatory : old plug-outs
are compatible with this new releases of BOUML.
- .pro Generator 2.1.2
Previous releases don't take into account a generation
root directory relative to the project, done.
To be able to specify a text generated at the end of the .pro file.
- Plug-out empty
Upgraded by plug-out upgrade.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.29.1
July, 17th 2007
- Add new consistency checks when you load a project. Bouml signals
when several elements share the same internal identifier and how
it fixe this. This problem may occurs when you change the project
file by hand or a tool (for instance to merge modifications), or
when you don't follow the mandatory rules allowing to use
Project synchro, or may be an unknown bug in Bouml.
- In the previous releases, the browser search
applyied only on the name of the elements.
Now you may also search for a string in the documentation of the elements
or in their declaration/definition/body.
- C++ reverse 2.5.2
In the previous releases you select one directory to reverse it.
Now you are able to select several directories to reverse them both,
press 'cancel' in the file dialog to start the reverse of the
selected directories.
Recall : all the classes read during the reverse are created
even if a class having the same name already exist in the model.
When you select several directories in a reverse, all the classes are
supposed to be part of the same application.
So, to reverse the directory d1 then to reverse the directory
d2 (two separated reverse) doesn't have the same behavior as
to reverse d1 and d2 at the same time (reverse called
one time, selecting the two directories).
- Plug-out upgrade 1.6.3
Do the following modifications :
- UmlTypeSpec become a user classes and
inherit on the new system classes UmlBaseTypeSpec.
- UmlParameter become user a classes and
inherit on the new system classes UmlBaseParameter.
- Add system class UmlBaseView and user class UmlView.
UmlView inherits UmlBaseView whose inherits UmlItem.
UmlBaseClassView, UmlBaseComponentView, UmlBaseDeploymentView
and UmlBaseUseCaseView inherits UmlView rather than
directly UmlItem.
This upgrade is not mandatory : old plug-outs
are compatible with this new releases of BOUML.
- Plug-out empty
Upgraded by plug-out upgrade.
2.29
July, 1th 2007
- Previous release may crash, fixed.
- Referenced by management take into account the class instances.
- Modify the class instance management : don't create
class instances in the model when you open a sequence diagram
or collaboration diagram coming from a release less than 2.28.
- In a sequence diagram or collaboration diagram it is possible
to replace a class instances part of the model by a clone not part
of the model (only graphical). On the opposite it is possible
to transform an instance to insert it in the model, or to replace it by an
already existing instance part of the model and having the same type.
- Add inner class notation in the class diagrams
, depending
on the drawing setting draw all classes relations.
- C++ reverse 2.5.1
To reverse a reference to a class as a relation rather than an attribute.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.28
June, 24th 2007
- Since release 2.21.3 you may loose template actuals when you
load a project depending on class order in the browser, fixed.
- Default stereotypes defined for relations between non classes
was not proposed in edition since release 2.26.2, fixed.
- The template actuals are now written as a label
attached to a realization in a class diagram.
Recall : the stereotype bind is not automatically
set on the realization of a bound class, it is
your responsability to use it or not.
- New browser element : the class instances
.
When you open an object diagram coming from a
previous release, a new class instances
is created in the view containing the diagram for each drawn instance
even if a class instances having the same name already exist
in the same view.
When you open a sequence diagram or collaboration diagram
coming from a previous release, a new class instances
is created in the view containing the diagram for each drawn instance except if a
class instances having the same name already exist in the same view.
To create all the class instances you have to open all the diagrams, this is
done (temporary) when you generate the HTML documentation (however, the
first HTML code generation may not export all the class instances even
all of them are created, depending on the order of the elements).
- New default stereotypes {complete,disjoint}, {incomplete,disjoint},
{complete,overlapping} and {incomplete,overlapping}
for the generalizations (set only when you create a new project).
- New default stereotype executionEnvironment for the deployment nodes
(set only when you create a new project).
- Previous releases use a default name when you create a
Package, a view or a diagram. Now Bouml
ask for a name.
- Add drawing setting named drawing mode on
the instances in a sequence diagram, equivalent to
the same drawing setting already existing on the
classes in a class diagram.
- The stereotypes of the use case are now
written in the use case diagrams (except
the special stereotype realization).
- It is now possible to unset the preferred size and scale
for a diagram, to set only the preferred scale and to
unset it.
- The name substitution of the 'external' classes is now taken
into account by the dialogs in the previews (Result after
substitution).
- Idl Generator 2.6.1
Add the management of the 'external' classes, managing name
substitutions.
- Html documentation Generator 2.10
Fixe Java definition of UmlBaseParameterSet.read_uml_().
To produce class instances.
The references to any element, and the name of the files corresponding
to the diagrams and to the classes (except if -flat) are know
constant and doesn't change each time you generate the document
(thanks to the new operation UmlBaseItem::getIdentifier()).
Follow the new API.
- XMI2 Generator 1.3
Fixe a bug in the generation of expansion region.
Produce class instances.
- Plug-out upgrade 1.6.2
To add class instances management though the new classes
UmlBaseClassInstance and UmlClassInstance,
and to add UmlBaseItem::getIdentifier().
This upgrade is not mandatory : old plug-outs
are compatible with this new releases of BOUML.
- Plug-out empty
Upgraded by plug-out upgrade.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.27
May, 29th 2007
- New drawing setting named show members stereotype
allowing to write attribute and operation stereotype in a
class picture in a class diagram. By default this setting
is set to false.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.26.3
May, 22th 2007
- Project synchro 1.1
Operation bodies and diagrams was not correctly managed, fixed.
2.26.2
May, 20th 2007
- When Bouml was compiled with a Qt 3, the SVG export
produced fonts with a negative size, fixed.
- Add default stereotype import for the dependencies.
In Java, when a class depend on other classes or a packages and
these dependency are stereotyped import, the
${imports} now produces the corresponding import forms.
- Java Generator 2.10.1
A ',' was missing to separate several exceptions after
throws in the code produced for an
operation, fixed.
To replace ${imports} by imports forms specified
by the dependencies stereotyped import.
- C++ Generator 2.7.2
Generation of friend didn't take into account
force namespace prefix generation, fixed.
- State machine generator 1.2
Improvement to delete classes, operations and
attributes produced by a previous state machine
definition but now useless.
Warning : if a state or other element is renamed or
was moved to have a new parent,
the corresponding class or class member
is deleted and a new one is created.
If you add classes or class members, these ones
will not be deleted by State machine generator
while their container is not itself deleted, and
if they don't have a user property named
STM generated (so,
don't duplicate elements created by the
State machine generator to not have this
property or remove it after).
Note : the automatic deletion doesn't apply on
elements created by previous releases of the
State machine generator and not confirmed
by the new release.
Follows the new API.
- Plug-out upgrade 1.6.1
Add operation UmlbaseItem::deleteIt()
to delete an element from the model. Doesn't delete
the associated element in the plug-out
but this one must not be used anymore.
This upgrade is not mandatory : old plug-outs
are compatible with this new releases of BOUML.
- Plug-out empty
Upgraded by plug-out upgrade.
2.26.1
May, 13th 2007
- In the previous release it was not possible to send
a message from an existing activity bar, fixed.
- Java Reverse 2.8.1
An import java.lang.*; was forced in the artifact
definition produced by the reverse,
it is not any more the case.
- C++ Generator 2.7.1
The code generated for a template class inheriting
a template class declared external was wrong
because the actuals was missing. fixed.
2.26
May, 8th 2007
- Add constraint on class, operation, attribute and relation.
Constraints may be shown in a class diagram depending on the
drawing settings named show information note
and valuing false by default.
To limit the needed surface, all the constraints including the
inherited and the ones of the members are shown in the
same note attached to the class, rather than to produce a note
for each constraint. By default all the constraints are shown
when show information note is true, but you can choose
which constraint must be visible through the constraint-note
editor. If show information note is true but there is
no constraint or you ask for hide them, the constraint-note
is present but empty.
Note : you must enter the {} in the constraints
to respect the UML notation because Bouml is not able to know where
a constraint start and finish.
- ${comment} produced comments starting by // in C++.
Now you may ask for Javadoc style comment
through the generation settings.
- ${comment} produced comments starting by // in Java
when the description used only one line.
Now you may ask for Javadoc style comment
through the generation settings in any case, this
is the default, else the comments use //.
When you load an old project this setting is set to true.
- Now almost all the diagram elements can be connected by anchor.
- C++ Generator 2.7
Java Generator 2.10
To produce Javadoc style comments depending on generationsettings.
Follow new API.
- Plug-out upgrade 1.6
To upgrade plug-out to manage new generation setting associated to
the Javadoc style comment and constraints. Follow new API.
This upgrade is not mandatory : old plug-outs
are compatible with this new releases of BOUML.
- C++ reverse 2.5
Java Catalog 2.8
Java Reverse 2.8
Idl Generator 2.6
Roundtrip body 1.1
Follow new API.
- Html documentation Generator 2.9
To produce constraints.
Follow the new API.
- Plug-out empty
Upgraded by plug-out upgrade.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.25.2
May, 1th 2007
- When you edited an operation defined in an enumeration
(Java specific) and you to toggle abstract or class operation
Bouml crashed , fixed.
- Add Multi pages printing. Now when you ask for print the current
diagram and you valid the printer choice, a menu appears to allow
you to choose a print on one, four or nine pages.
2.25.1
April, 29th 2007
- The C++ generation setting was set to #include with root relative path
when you ask for #include with relative path, fixed.
- When a class inherits other class itself nested directly or indirectly
in template class, it was not possible to set the corresponding
actuals though the class dialog. This is now possible.
Known problem : can't manage correctly the case
of a template class referenced several times in the inheritances
(for instance class C1 : public C2<int>, public C2<char>::SC2 ...).
In this case, while this problem is not solved you must replace ${type}
in the generalizations definition by the right definition.
- When the environment variable BOUML_TEMPLATE is defined, the
project menu propose the entry Create from Template. When you
select this entry the project specified by BOUML_TEMPLATE
is load and a save as is automatically done. BOUML_TEMPLATE
must values the pathname of a project file (a file having the extension prj).
This help you to create a project where all the settings are set as you want.
Generally the template project is empty and only defined to set the settings.
- Now the size of the font used for the menus and dialogs
is the one set through the menu Miscellaneous.
- C++ Generator 2.6.1
When you ask for #include with relative path
or #include with root relative path and you #include a header
file which artifact is placed in a package specifying an absolute
path for the headers, the relative path to this absolute path was
produced. Now in this case the absolute path is produced.
Since the release 2.22, in C++, the template header was not
produced for the definition of static attributes or relations
of a template class, when the member has an empty description, fixed.
To manage inheritances to a class nested directly or indirectly in
template class. Same problem when a template class is referenced
several times.
- XMI Generator 1.4.4
A </UML:Namespace.ownedElement> was missing in the
generation of use case dependencies and generalizations,
fixed.
- Java Generator 2.9.1
References to nested classes didn't contain
container class, fixed.
- Java Catalog 2.7.1
Java Reverse 2.7.1
Improvement to try to produce a relation rather than an attribute
when a Java attribute's type is a generic form.
2.25
April, 22th 2007
- In the previous releases the class dialog had a button to
specify Java public visibility on class, this one is removed :
now the Java visibility is the Uml one, like for the operations for
instance.
Add visibility on non nested class at UML level (nested classes already
had visibility).
When an old project is load
- for the nested classes :
if the Java visibility was public
the Uml visibility is set to public,
else to package. If the C++ visibility
followed Uml this one if changed to the desired
visibility if needed.
- for the non nested classes :
if the Java visibility was public
the Uml visibility is set to public,
else to package.
Default class visibility is package
Recall : package visibility is translated to public
in C++.
- In the new project the default class definition in Java
contains ${visibility} rather than ${public}.
- In the previous releases it was not possible to set the
multiplicity in the two roles of an undirectional relation.
This is possible now and of course the two multiplicities
are visible in a class diagram when there are not empty.
Note : a plug-out can't access to the second multiplicity
of an undirectional relation because in this case the
UmlRelation instance doesn't exist.
- Now the C++ generation settings allow to
ask for auto generated C++ #include relative to
the root directory (the root directory is specified
through the last tab of the generation settings).
I hope four modes to generate #include is enough to
satisfy everyone !
- New drawing setting called show parameter name
allowing to choose to hide or to show the operation parameters name
when a class is drawn in a class diagram.
Only active when show classes members full definition
values yes. Values yes by default at project level and
default at other levels to be compatible with the previous releases.
- Now the drawing setting called show parameter direction
is also active when the drawing language is UML.
- Java Generator 2.9
Previous releases may crash, fixed
To manage ${visibility}, ${public} still managed.
In the previous releases the code generation for an operation
defined in an @interface stop when a { was reached,
still now this is not true when default is written after
the parameter list, to allow annotation type with a default value
using {}.
Follow the new API.
- Rose project import 2.1.1
To manage ${visibility}, ${public} still managed.
- Java Catalog 2.7
Java Reverse 2.7
To reverse class visibility.
To fixe the reverse of an annotation type with a default value
using {}.
This allows to reverse all the Java version 6 (update 1) sources
without warning nor error, producing 9425 classes, 48506 properties
(attributes and relations) and 85939 operations.
On my old PC under Windows XP, Pentium 4, CPU clock 3Ghz and
512 Mb of memory, this reverse is done in less than 7 minutes and the process size
when all is reversed is 172 Mo.
Follow the new API.
- C++ Generator 2.6
To produce #include with pathname relative to root directory
if asked through the generation settings
Follow the new API.
- Html documentation Generator 2.8
To produce Uml definition or operations, attributes and relations
To produce class visibility.
To produce index of public attributes and relations
Follow the new API.
- Plug-out upgrade 1.5
To upgrade plug-out to manage new generation settings
and to manage new class visibility
Note : the operations isJavaPublic and
set_IsJavaPublic defined on UmlBaseClass are deprecated,
use the operations visibility and set_Visibility.
Follow the new API.
This upgrade is not mandatory : old plug-outs
are compatible with this new releases of BOUML.
- Idl Generator 2.5
C++ reverse 2.4
Follow the new API.
- Roundtrip body 1.0
New plug-out, can be applied on an artifact,
a deployment view, a package, or the project.
Only active when preserve operations's body is set.
Allows to update the operation's bodies in the model
from the sources using the marks inserted by a code generation
made with preserve operations's body set.
Known problem : the bodies are updated like they are
in the files, this means with an extra indent when the code generation
was made with spaces before ${body} in the operations definitions.
- XMI2 Generator 1.2.1
Fixe a bug in the generation of input pins.
- Plug-out empty
Upgraded by plug-out upgrade.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.24
April, 15th 2007
- There is no element selected in the browser when
you just created a new project or after some cases of
drag & drop inside the browser, at this time to hit a key (which may be
or not a shortcut) crash Bouml, fixed.
- Deployment node name and type was not correctly written in a
deployment node diagram since release 2.22.1, fixed.
- Add facilities in some editors :
- When you edit a link from an object diagram you can ask
for an association creation through the button New.
Note : when you create an association this one is automatically
edited, but this editor is unreachable until you close the link
editor.
- When you edit a message from a sequence diagram or
a collaboration diagram you can ask for an
operation creation through the button message:.
- When you edit a call behavior action part of an
activity you can ask for an activity
or state machine creation through the button behavior:.
In this case the behavior is created in the view containing
the activity.
- When you edit a call operation action part of an
activity you can ask for an operation creation
through the button operation:.
- When you edit a read / write / clear / add / remove variable action
part of an activity you can ask for an attribute creation
through the button variable:.
- When you edit an activity object,
an activity parameter or an activity action pin,
you can ask for a class creation through the button type:.
In this case the class is created in the view containing
the activity.
- When you edit an attribute
you can ask for a class creation through the button type:.
In this case the class is created in the view containing
the class owning the attribute.
- When you edit an operation
you can ask for a class creation through the button value type:.
In this case the class is created in the view containing
the class owning the operation.
- When you edit a class instance from a diagram
you can ask for a class creation through the button class:.
In this case the class is created in the view containing the diagram.
- When you edit a deployment node instance from a
deployment diagram
you can ask for a deployment node creation
through the button node:.
In this case the node is created in the view containing the diagram.
- In the previous releases, the getter and setters was named
get_${name} and set_${name} by default in UML.
Now, through the generation settings, you may ask for
using the rule defined in C++, Java, Idl or to follows the current rule,
depending on the new toggles added near the getter and setters
specifications for each language.
- Add extension points in use cases.
- Html documentation Generator 2.7
Upgraded by plug-out upgrade, to produce extension points.
- Plug-out upgrade 1.4.1
to upgrade plug-out to manage new generation settings
and use case extension points.
This upgrade is not mandatory : old plug-outs
are compatible with this new releases of BOUML.
- Plug-out empty
Upgraded by plug-out upgrade.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.23.1
April, 9th 2007
- Bouml 2.23 crashed when a static association is not
drawn as a straight line, fixed.
- In a sequence diagram an activity bar may be
drawn as a coregion.
2.23
April, 8th 2007
- Previous releases allow to produce auto generated C++
#include without path or with an absolute pathname.
Now it is also possible to ask for relative pathname
through the C++ generation settings. Note : this
doesn't apply for external types and external classes.
- force namespace prefix generation is a new generation settings
for C++ : in the previous
releases the namespace was generated before a class
name only when this class was not in the current namespace.
This flag allows you to ask for namespace generation in all
the cases. Set to false by default.
- When you create a new project, the default C++ header definition
now contains #ifndef ${NAMESPACE}_${NAME}_H and
#define ${NAMESPACE}_${NAME}_H, and the default IDL source definition
now contains #ifndef ${MODULE}_${NAME}_H and
#define ${MODULE}_${NAME}_H.
- In a class diagram the role's name of a static
association is now underlined.
- C++ Generator 2.5
To use synonymous classes through namespaces may produced
incomplete list of class declarations and #include, fixed.
To force namespace prefix generation if asked through the
generation settings
To produce #include with relative pathname if asked through the
generation settings
In an artifact definition ${namespace} is replaced by
the full namespace where :: become _. ${NAMESPACE}
produces the same thing in uppercase. Allows to generate
#ifdef forms taking the namespace into account.
Follow the new API.
- Idl Generator 2.4
In an artifact definition ${module} is replaced by
the full module where :: become _. ${MODULE}
produces the same thing in uppercase. Allows to generate
#ifdef forms taking the module into account.
Follow the new API.
- Plug-out upgrade 1.4
to upgrade plug-out to manage new generation settings.
This upgrade is not mandatory : old plug-outs
are compatible with this new releases of BOUML.
Follow the new API.
- C++ reverse 2.3
Java Generator 2.8
Java Catalog 2.6
Java Reverse 2.6
Follow the new API.
- Plug-out empty
Upgraded by plug-out upgrade.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.22.2
April, 2th 2007
- Since the release 2.22, in C++, the template header was not
produced for the definition of the operations of a template
class, when the operation has an empty description, fixed.
- C++ Generator 2.4.7
Fixe the same bug.
2.22.1
April, 1th 2007
- In the previous release the relations may be duplicated
in the diagrams when you load them, fixed.
When you load a diagram made or modified
by the previous release, the redondant relation drawn are
removed to have only one representation of each relation.
- It was not possible to add activity and state diagram
icon in the diagrams, fixed.
- In the previous releases it may be not possible to load
a project when its directory is read-only because
it is not possible to create the lock directory.
Now, when the lock directory can't be created but
don't yet exist, the full project if considered read-only.
- Add diagram export in SVG 1.1
- Set the focus in one of the text sub-editor when you edit elements.
- When you add a note in a diagram this note is immediatly edited,
if you cancel the edition the note is still created but without text
inside.
- Improvements on diagram print : set orientation to landscape
when the diagram's format is a landscape one.
Memorize parameters color mode, page size and
full page from a print to the next one in the same session.
Note : depending on your printer and your operating system
this may no work.
- Classes stereotyped enum_pattern : in the Java
definition the attribute value is now declared final
by default in the generation settings of the new projects.
- The Java getter and setter operations are now
named get${Name} and set${Name} by default
in the generation settings of the new projects.
- Now it possible to unset the association
of an element with a diagram.
- Plug-out API
When the extension of the file name given in parameter to the operation
UmlBaseDiagram::saveIn is svg the diagram is saved as an SVG
picture, else a PNG picture.
This upgrade is not mandatory : old plug-outs
are compatible with this new releases of BOUML.
- Html documentation Generator 2.6.3
To allow to produce SVG files rather than PNG ones, using the
new option -svg
In the new projects the HTML production using SVG is added in the tools list,
you may modify the settings of the old projects to add this option.
The HTML now accept the following arguments (in order) :
- -flat, optional, to produce the class definitions in
index.html rather than in separate files.
- -svg, optional, to produce SVG pictures rather than PNG ones.
- generated Html files directory (must not contains space)
mandatory if the next arguments are given (except the port
number given by BOUML itself)
- -del_html, optional, to remove already existing HTML files
in the specified directory
- -del_css, optional, to replace the file style.css
if it already exists in the specified directory, do not
use this option if you have your own styles.
Of course in all the cases style.css is created
if it doesn't exist
- Idl Generator 2.3.3
A ';' was missing at the end of module definition, fixed.
2.22
March, 10th 2007
- Previous releases allow to define an association from a source artifact
(artifact stereotyped source) to another artifact and forbid to do
that from a non source artifact. This was wrong, the goal is to define
association from a non source artifact to another artifact, not the
reverse. Fixed.
- New toggle add operation profile on body edition in the
menu miscellaneous, it is exclusive with
preserve operations's body, and not set by default.
When you edit an operation's body and this toggle is set,
the C++ or Java operation's definition you see behind
result after substitution in the operation
dialog is added before the operation body. This allows you to
know which operation is edited and to see the operation profile.
Of course the added header is removed when the (may be) new operation's
body is taken into account.
- New drawing setting called show parameter direction
allowing to choose to hide or to show the operation parameters
direction and default value when a class is drawn in a class diagram.
Only active when show classes members full definition
values yes and when the drawing language is UML. Values yes
by default at project level and default at other levels
to be compatible with the previous releases.
- Modification of the drawing setting called draw all classes relations :
- in the previous releases it concerned only the relations between classes
in a class diagram, now it applies on relations between any element
in any diagram.
- in the previous releases it was possible to set this settings at class
level, this means for a given class drawing. This is not possible anymore.
To don't disturb old class diagrams, when a class has this setting set to no
this setting is forced to no at diagram level.
To don't disturb old other diagrams, this setting is forced to no
for them.
- of course it is renamed draw all relations.
- The getter and setter operations was updated each time
the edition of the corresponding attribute or relation was confirmed.
It is now possible to freeze their definition through a check box added
in the C++, Java and IDL tab of the getter and setter operation
dialog. By default their are not frozen to be compatible with previous
releases.
- In the generation settings it is now possible to ask for
a C++ setter operation to receive its argument by reference.
By default the argument is still given by value to be compatible with
previous releases.
- In the previous releases the generation directories specified in the
generation settings was to be absolute. It is now possible to
enter relative paths, relative to the project path.
- MacOS X for intel : in the previous release the dot lines
was not drawn correctly, fixed.
- C++ Generator 2.4.6
In the previous releases the description of a static attribute was only
generated for the attribute declaration but not for its definition, done.
To generate the template header of an operation definition
or a static relation definition after the description associated to
${comment} or ${description} rather than before.
To manage relative path in the generation settings.
- Java Generator 2.7.3
Idl Generator 2.3.2
To manage relative path in the generation settings.
- XMI2 Import 1.0.1
Little modifications to be less strict and import files produced
by more tools.
- Plug-out upgrade 1.3.5
to upgrade plug-out to manage new drawing setting show parameter direction
and new getter and setter properties.
This upgrade is not mandatory : old plug-outs
are compatible with this new releases of BOUML.
- Plug-out empty
Upgraded by plug-out upgrade.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.21.7
March, 3th 2007
- Previous release doesn't allow to have project's name
containing dots, fixed.
- It was not possible to add generalization or
dependency in a package through a
plug-out, fixed.
- To use the
buttons
or
before loading a projet crash Bouml, fixed.
Remark : these buttons are usefull only after loading a
project and the selection of at least two elements in
the browser.
- Information, warning and critical message boxes
are now placed taken into account the optional screen
subpart specified by the environment variable
BOUML_LIMIT_DESKTOP.
- XMI2 Import 1.0
New plug-out, must be applied on a package,
or the project.
Allows to import an XMI 2.1 file for UML 2.0 or 2.1,
please refer to the
documentation.
This plug-out is configured by default
in the new projects. The name of the executable to
add it to the plug-outs list of the existing
projects is ixmi2.
- C++ Generator 2.4.5
Java Generator 2.7.2
Idl Generator 2.3.1
Previous releases rewrite unnecessarily the files
containing at least a character of code > 127, fixed.
Error messages are written in red.
- XMI2 Generator 1.2
Add generation of association classes.
Modify the generation of a trigger associated to an activity accept event action.
Modify the generation of a signal associated to an activity send signal action
and activity broadcast signal action.
The transition's name was not generated, fixed.
2.21.6
February, 18th 2007
- When you edited a relation drawn from a non read-only class to a read-only class,
the kind of the relation indicated in the dialog was wrong, fixed.
- The name of a directory containing a project must be equal to the
project's name. Produces a dedicated message when you try to open
a project whose doesn't follow this rule.
- Add an historic of the selected elements in the browser,
navigation is done through the
buttons
and
.
- XMI2 Generator 1.1
uml: was missing before the activity node type, the deployment
node and the artifact,
in forms xmi:type="uml:<the type>", fixed.
Modify the generation of the default value of a formal parameter
2.21.5
February, 5th 2007
- Bouml crashed when you edit a class having
a dependency to a package, fixed.
- Management of deleted but still referenced
objects was not always done when a project was loaded
and may produced a crash,
fixed.
- In an operation declaration, ${class} was not
substituted by the class's name, this is done now. Because
${class} is normally not used in an operation
declaration, the goal is probably to place it in the
documentation.
- In the previous releases a dependency not
stereotyped friend produced an #include
in the header file in C++. Now you are able to choose
where the #include must be generated, and the default
is now in the source file. Of course the already existing
dependencies continue tu produce the #include in
the header file while you don't modify them.
- In the previous releases when a class A was duplicated to
the class B only the constructor and destructor operations
was renamed to use B rather than A.
Now the operations and attributes are also modified
to replace the references of A to B (
the texts containing A are unchanged, for
instance an attribute of type A&
and the body of the operations are unchanged).
- C++ Generator 2.4.4
To substitute ${class} by the class's name
in an operation declaration.
Improvement in the computing of the type dependency
used to generate declaration and #include.
To follow the new rule concerning the dependencies
- C++ Reverse 2.2.6
Forms like typedef class C1 {...} C2; and
typedef struct S1 S2; was not reversed, done.
- XMI2 Generator 1.0.1
Generates xmi:version rather than xmi.version,
xmi:idref rather than xmi.idref and
xmi:id rather than xmi.id.
2.21.4
January, 29th 2007
- C++ Reverse 2.2.5
When an enumeration item having a specified value was reversed
the '=' was missing in the corresponding attribute default value,
fixed.
Complete fixing of operation parameter default value
(previous fixing work only for inline operations defined
inside their class).
2.21.3
January, 28th 2007
- it was not possible to read a project containing a send signal
or broadcast signal activity action with a non empty signal
specified in the Ocl tab (produced the error message
'end' expected rather than 'uml'),
fixed.
- It was not possible to edit the body of an operator '/' or '/='
using the external editor specified through BOUML_EDITOR under
Linux because I didn't replace the '/'. Now the special characters
are replaced by '_' not only for Windows.
- Project synchro 1.1
Project control 1.1
The revision of the project files not created nor modified by a release
of Bouml greater or equal than 2.21 is now 0 rather than 1.
- C++ Reverse 2.2.4
When an operation's parameter has a default value
the UML parameter definition in Bouml contains this
default value but it was not inserted in the C++
definition, fixed.
- XMI2 Generator 1.0
New plug-out, must be applied on the project.
To produce XMI 2.1 for UML 2.0 or 2.1, please refer to the
documentation.
Note : the old XMI 1.2 generator is still present.
This plug-out is configured by default
in the new projects. The name of the executable to
add it to the plug-outs list of the existing
projects is gxmi2.
- Plug-out upgrade 1.3.4
Add the missing operations isStream and
set_IsStream in the class UmlBasePinParameter.
Fixe the definition of the operation reading the definition
of a UmlBaseRemoveVariableValueAction and
UmlBaseAddVariableValueAction.
UmlParameterSet inherits UmlActivityItem.
You must upgrade the plug-outs accessing to the
activity elements.
- Plug-out empty
Upgraded by plug-out upgrade.
2.21.2
January, 10th 2007
- In locations where the default character
set is not ISO_8859-1 (latin1) some
key combinaisons like control-shift may produce
unexpected character code and crash Bouml.
Fixed.
2.21.1
December, 27th 2006
- Add buttons ok and cancel in the dialog of the
note and text, mainly to help MacOS X users
because under this OS the dialog sub window doesn't propose
a way to close it.
- Project synchro 1.0
This new tool is not a plug-out, the
executable named projectSynchro (with or without
an extension depending on the operating system) is
installed with BOUML.
This tool helps several persons to work on the same
project when they don't access to the same shared project
files, in case each user has his own copy of these files
and works only on this copy.
The tool automatizes the copy of the right files
from an image of the project into an other one using
the revision numbers. The project files are not
merged, a given project file is supposed not modified
by several users, for instance thanks to the use
of project control. Because the tool use the revision,
it is not possible to use it to synchronize projects modified
by the previous releases of Bouml. Warning, if all the previous
conditions are not followed, the tool must not be used, else
the result is hazardeous.
Refer to the
documentation,
the chapter multi users considerations
is also updated.
2.21
December, 17th 2006
- Modifications to help several persons to work on the same project :
- A revision number and the BOUML_ID and name of the person
doing the last modification are now saved in the file
associated to the package.
Note : the revision doesn't grow each time a
package file is saved, the number saved is the
value of the revision when the file was read more one.
- When you are the owner of a package (see Project control)
and you add to it a new sub-package, Bouml proposes you
to be the owner of this new sub-package.
- A project under the control or Project control or
Project synchro is opened in read-only mode
by Bouml (a message warns you).
- Project control 1.0
This new tool is not a plug-out, the
executable named projectControl (with or without
an extension depending on the operating system) is
installed with BOUML.
This tool helps several persons to work on the same
project by choosing who is able to modify a given
package and its elements. Project control is
usefull when you don't use a file control to modify
the write permission of the project files. Please, refer to the
documentation.
Note : a second tool named project synchro coming soon
will allows to synchronize a project developed in
parallel by several persons.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.20
December, 10th 2006
- In the previous releases, when you set the individual
attribute visibility or individual operation visibility
for a class in a class diagram, you indicated which members
must be hidden. This means that when you add a member, it was visible.
Now the dialog allows you to choose to set the visible or
hidden members list.
- It is now possible to add separators in the fragments.
- it was already not possible to draw several times an activity, activity action,
activity node, activity object, activity region, state or
pseudo state in a diagram, now it is not possible to paste
these elements when they are already drawn.
- Modify the shortcut dialog to take into account
the Mac specificities : the control key is
replaced by the key
,
and the alt key is sometimes named option.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.19.5
December, 3th 2006
- Complete shortcut management not yet done for some graphical
elements.
- In the previous releases, the trace sub window is
shown and raise each time something is added
by a plug-out by calling UmlCom::trace()
operation. Now this is not mandatory, and two
UmlCom static operations are added :
- void showTrace() : to show and raise the
trace sub window
- void traceAutoRaise(bool y) :
if y is true, the next times
trace() will be called the
trace sub window will be automatically
shown and raised if needed.
if y is false, the trace sub
window will not be forced to be
visible
To be compatible with the previous behavior,
each time you start a plug-out
the auto raise is set to true
- C++ Generator 2.4.3
C++ Reverse 2.2.3
Java Generator 2.7.1
Java Reverse 2.5.3
Java Catalog 2.5.4
Force the trace sub window to be visible only
for the first and last messages, this means not during
the execution.
- Plug-out empty
Upgraded to add new UmlCom operations.
- Plug-out upgrade 1.3.3
Upgrade the plug-outs to add the operations
UmlCom::showTrace and UmlCom::traceAutoRaise.
This upgrade is not mandatory : old plug-outs
are compatible with this new releases of BOUML.
2.19.4
November, 28th 2006
- By default to hit a return in the browser call
the menu of the selected browser item, so
is similar to a right mouse click done on the selected
browser item. Note : if the last event was not
made in the browser it is necessary to first
activate it through a mouse click. Recall : the arrows
allows to navigate through the browser, or through
a menu.
- The shortcut for the C++ code generation is now
Control-g to avoid conflict with the shortcut
for copy in a diagram (Control-c).
- Now, by default the key Suppr has no
effect in the browser, to delete an element
hit Control-d.
- The following shortcuts are removed :
- Control-n (new project), hit Alt-p then n
- Control-o (open project), hit Alt-p then o
- Control-w (close project), hit Alt-p then w
- Control-q (quit), hit Alt-p then q
- Control-t (show trace window), hit Alt-t then t
- The entry Edit shortcuts in the menu
Miscellaneous allows to edit the shortcuts.
A shortcut applies on the selected element in the
browser or the elements in the the diagram
sub-windows. The shortcuts allow to execute a
command available through a menu (like New operation)
or to run a plug-out (for that you must
enter the display string associated to the plug-out
in the second tab of the shortcut editor).
The commands are similar to the menu entries,
edits the shortcuts to see them.
The shortucuts are saved in the file
.bouml_shortcuts_<BOUML_ID>
where <BOUML_ID> is replaced by its value,
this file is located in the home directory and
is created when you validate the shortcut edition.
- Now, when you add an attribute or operation in
a class through the browser, the added element is
edited.
- C++ Generator 2.4.2
Improvement in the computing of the type dependency
to not generate useless #include
in the header files.
2.19.3
November, 19th 2006
- Bouml crashed when you open an
object diagram having a link between two objects where
the relation is not specified. Fixed.
- In a message dialog called from a sequence diagram or
a collaboration diagram the label 'message :'
is replaced by a button, this one shows a menu
proposing :
- if the current message is an operation :
to select this operation in the browser
- if the message is not read-only and if an operation
compatible with the object type is selected in the
browser : to set the message to be this operation
- In a class instance dialog the label class :
is replaced by a button, this one shows a menu
proposing :
- if the class is set :
to select this class in the browser
- if the instance is not read-only and if a class
is selected in the browser : to set
the class to be this class
- In a diagram, when several elements having drawing settings
are selected and have the save type (for instance all are class
or component etc), the menu appearing on a right mouse click
now proposes to edit the drawing settings. By default in the
drawing settings editor, all the settings are set to <unchanged>
meaning that the value must not ne changed, all other value will be set for all
the selected diagram's elements if you valid the edition.
- C++ Generator 2.4.1
The keyword ${association} was not replaced by the associated type
in the static relation definitions (the substitution was done
in the declaration), fixed.
- C++ Reverse 2.2.2
Previous releases was not able to reverse forms like
template <void fonction()> class C {...} or
template <template <class T> class U> class C {...},
fixed.
2.19.2
November, 12th 2006
- Global change 1.0
New plug-out, must be applied on the project, or
a package, class view, deployment view or an Operation.
Allows to do global modification of the artifact, classes, operations, attributes
and relations definitions, working recursively from the browser element
on which it is applied.
May be used to propagate a change done on the generation settings to the
already existing elements.
See Global change.
This plug-out is automatically configured on the
new project, to use it in your already existing project :
the name of the executable is global_change, and
the targets are the project, the package, class view, deployment view and
Operation.
2.19.1
November, 6th 2006
- Bouml produced an error message
(like public//activity is not a visibility)
when it read a project
where a class view has a class setting set
to a value different than default.
This bug introduced in release 2.17 is fixed.
2.19
November, 5th 2006
- Adds toggle preserve operations's body in the
Miscellaneous menu, see code generation below.
- Adds new colors.
- C++ Generator 2.4
Java Generator 2.7
If the toggle preserve operations's body is set,
the generators do not modify the body of the operations
protected by dedicated delimiters. This means that for them
the body definition set through BOUML is not used.
The first time you generate the code with the toggle set,
because the delimiters are not yet present in the
generated code, the operations's body will be updated
depending on their definition under BOUML.
After, while the toggle is set and the delimiters present,
the bodies will not change, allowing you to modify them
out of BOUML.
Notes :
- In case the file containing a body definition is
not consistent with the artifact under
BOUML, the body will be regenerated by the code
generation, using its definition under the model.
Of course in C++ an operations
becoming inline or stopping to be
inline is not a problem.
- When you import a project, the body of
the imported operations must be the right one
in the imported model. The preserved bodies
of the imported operations will not be find
because the identifier of an operation used
to mark its body changes during the import.
- The bodies under the model are not updated
by the code generation (a new plug-out
must be made for that).
- Only the operations using the keyword
${body} may have a preserved body.
- The only modification you can do in the lines
containing the delimiters is the indent.
- The toggle is saved in the file associated to
the project, be sure the save is done when you
change this toggle !
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.18.1
November, 1th 2006
- When you start to draw a segmented relation in a diagram, and you
don't abort its construction (for instance by a double click),
and you do some specific action like to drag & drop
a class from the browser to the diagram, BOUML may crash,
Fixed.
- Rename if needed the name of the setter operation's parameter
when the associated attribute or relation role is renammed.
2.18
October, 22th 2006
- The optional relation's name and stereotype are now shown in an
object diagram.
- The position of the required or provided interface's
name in a component diagram was not saved, resetting
their position when a diagram is reopen, fixed.
- Modify the tools dialog to allow to attach a plug-out
on any browser element.
- The operation's menu in the browser proposes to directly
edit the C++ and/or Java body when the corresponding operation's
definition contains the keyword ${body}.
- Java Catalog 2.5.3
JavaCatWindow::windows_style() was not compilable
when Qt doesn't manage the windows style,
fixed.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.17.2
October, 15th 2006
- It is now not possible to draw two times the same state or
pseudo state in a state diagram (but the
already existing diagrams are not modified), warning : this check
is not done when you do a paste.
- It is now not possible to draw two times the same activity,
activity node or region in an
activity diagram (but the already existing diagrams are
not modified), warning : this check
is not done when you do a paste.
- The description of the relations is now show/editable in the bottom right
sub windows like for the other browser elements. Note : concern only
the role 'a' of a bidirectional relation, to see/edit the documentation
of the role 'b' you have to edit the relation.
- Now two activity object nodes may have the same name
in the browser because an activity object nodes
is in fact a use of an activity object where you are able
to specify its state.
- Improve the computation of the initial size of a dialog.
- Force modal dialogs to be upper to solve problem under
MacOS X.
- Linux
The toplevel Makefile is modified to help
Gentoo Linux (at least) to package BOUML.
A bouml.desktop file is now installed
(by default in /usr/share/applications),
icons are also installed (by default in
/usr/share/icons/hicolor/ZxZ/apps/ where Z is a size,
see the toplevel Makefile) allowing you
to call BOUML through the sub menu development or
through an icon placed on your desktop.
- XMI Generator 1.4.3
Fixe a bug in the generation of a class having no
attribute nor operation but only
only relation(s).
Replace the default encoding ISO-8859 by ISO-8859-1,
and add BOUML_CHARSET value if set.
- Plug-out empty
Upgraded to manage activities.
- Html documentation Generator 2.6.2
Fixe a problem in the computation of the generated files
path under MacOS X.
Upgraded to manage activities.
- Sort 1.2
Upgraded to manage activities (but they are not sorted).
To avoid a conflict the operation weight is
renamed orderWeight.
- Plug-out upgrade 1.3.2
Upgrade the plug-outs to manage the
activities.
This upgrade is not mandatory : old plug-outs
are compatible with this new releases of BOUML.
2.17.1
September, 21th 2006
- When you defined a get or set operation
on an attribute or a relation, then you deleted it
(but not the attribute or relation) and saved the
project, then you reload the project, this one was
unconsistent and its usage may produce a crash,
fixed.
- It was not possible to empty a non empty message in a sequence diagram,
fixed.
- Now when you add a new text in a diagram through
the button text the text is immediatly edited,
and the text is resized depending on your input.
The resize is not done after the next editions,
and the text element is deleted if it becomes empty.
2.17
September, 17th 2006
- Add activities
and activity diagram.
Activities are allowed in class views, like for
the states the activity diagrams are under the
activities. Note : partitions will be available
later.
- In the previous releases a transition trigger,
guard and activity was not shown in a
state diagram while the transition had a name.
The new drawing setting named show transition
definition valuing false by default allows
to choose between the name and the definition.
- The default call of the HTML generator to generate
a flat definition was ghtml - flat rather than
ghtml -flat (ie had an extra space between the
the minus and flat), fixed.
Note : this wrong configuration is automatically
fixed by BOUML.
- When the class of a class instance is specified the menu
of the class instance in a diagram (for instance a
sequence diagram) has the entry select class
in browser
- When the message in a sequence diagram is an
operation the menu of the message has the entry
select operation in browser
- It is now possible to have a dependency between a
class and a package, in both directions.
A package may now depend on a component
or an artifact (the reverse dependencies
was already possible).
- In an attribute dialog the label type :
is replaced by a button, this one shows a menu
proposing :
- if the current type of the attribute is a class :
to select this class in the browser
- if the attribute is not read-only and if a class
is selected in the browser : to set
the type to be this class
The same button replace the label indicating the
value type in an operation dialog.
- Plug-out API
Warning : a class having a dependency
on a package has a children of type UmlNcRelation
which is not a UmlClassItem, you may have
to adapt your plug-outs to manage this case.
- C++ Generator 2.3
Java Generator 2.6
Idl Generator 2.3
Singleton 2.1
Manage UmlNcRelation in classes.
- XMI Generator 1.4.2
Fixe the generation of a bidirectional relation.
Manage UmlNcRelation in classes.
- Html documentation Generator 2.6.1
Fixe some bugs to generate valid XHTML 1.0
transitional.
Indicate the dependencies
- State machine generator 1.1.1
The C++ definition of the inheritances to AnyState
was GENERATED rather than ${type},
fixed.
The behaviors doActivity, entry and exit
may now access to the state machine through the
variable stm.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.16
July, 19th 2006
- Add object diagram, they are allowed in
use case views, use cases and class views.
- Add subject (drawn as a rectangle) in the
use case diagrams.
- A package may be drawn in a collaboration diagram.
- C++ Generator 2.2.3
Indicate the end of a namespace by a comment
placed after '}'
- Idl Generator 2.2.2
Indicate the end of a module by a comment
placed after '}'
- Html documentation Generator 2.6
To manage object diagrams,
Follows the new API.
- Plug-out upgrade 1.3.1
Upgrade the plug-outs to manage the
object diagrams.
This upgrade is not mandatory : old plug-outs
are compatible with this new releases of BOUML.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.15.4
July, 2th 2006
- Fixe the drawing of a node in a deployment
diagram to write first the optional stereotype.
- To allow to define default stereotypes using
non ISO_8859-1 (latin1) characters
- The dialog tab User is renamed Properties,
recall : it allows to set tagged values.
2.15.3
June, 26th 2006
- In the previous releases, when you enter non ISO_8859-1
(latin1) characters in a dialog or documentation
part, these ones was replaced on ok by a space
because of a conversion from 16 bits Unicode to
8 bits latin1 character.
Now you may specify how to do the conversion (still to a
8 bits character) through the environment variable
BOUML_CHARSET.
When this variable is undefined or
has an empty value, the character set is ISO_8859-1.
If its value is not a known character set's name,
a dialog appears when you start BOUML giving the available
names. So, to know the possible character sets, set
BOUML_CHARSET to wrong for instance and call
BOUML.
Examples (the list depends on the release of Qt) :
- ISO_8859-1 (latin1) for English, French, Italien, German ...
- ISO_8859-7 for Greek
- KOI8-R or KOI8-RU or CP_1251 to allow Cyrillic
- JIS7 for Japan
The specified encoding is used for :
- the description of every elements,
- the user keywords and associate values of every elements,
- the stereotype of every elements,
- the definition of the artifacts, classes,
operations, attributes, relations and
extra members,
- the state action behavior
- the state entry / exit / do behavior
- the transition trigger / guard / do behavior
- the notes and text in the diagrams
It is not used else where, for instance you can't use non ISO_8859-1
characters to name the elements or in a message of a
sequence or collaboration diagram.
The specified encoding is followed in the project's
files and for the exchanges with the plug-out,
this means for instance that Cyrillic characters
may be used in the comments and are generated unchanged
by the code generators.
- Html documentation Generator 2.5.3
To be compatible with non ISO_8859-1 character sets,
remove the special management of accentued characters,
for instance the character 'é' is generated
unchanged rather than replaced by 'é'
The information specified through the plug-out use
case wizard are now produced.
- Use case wizard 1.1 (C++ version)
To manage non ISO_8859-1 character sets, get the desired
encoding through the environment variable BOUML_CHARSET.
2.15.2
June, 18th 2006
- Add the sub menu edit in the menu Project to edit
the generation settings, default stereotypes,
class settings at the project level, and drawing settings at
the project level.
- It is now possible to give arguments to the plug-out
executed when BOUML is started. These arguments are given after
the plug-out specification and before the optional
-exit whose must be the last parameter of
BOUML if present.
For instance :
- "C:\Program Files\Bouml\bouml" "D:\...\aze\aze.prj" -exec C:\Progra~1\Bouml\gxmi -uml c:\aze.xmi windows-1252 -exit
- bouml .../qsd/qsd.prj -exec -flat /usr/lib/bouml/ghtml /tmp/qsd_html -del_html -exit
- Html documentation Generator 2.5.2
Now use a css file to define used styles, allowing you to
modify them
Classes descriptions was produced in separated files, now
you may ask to produce them in index.html, helping
to print the result or produce a pdf file,
see -flat below. Now when you create a new project
by default the two ways are set in the Tools settings,
you may modify the settings of the old projects to add this option.
Accept the following arguments (in order) :
- -flat, optional, to produce the class definitions in
index.html rather than in separate files.
- generated Html files directory (must not contains space)
mandatory if the next arguments are given (except the port
number given by BOUML itself)
- -del_html, optional, to remove already existing HTML files
in the specified directory
- -del_css, optional, to replace the file style.css
if it already exists in the specified directory, do not
use this option if you have your own styles.
Of course in all the cases style.css is created
if it doesn't exist
In case the generated files directory is specified the dialogs don't
appears, this allows to generate the HTML documentation
without any manual action.
- XMI Generator 1.4.1
Accept the following arguments (in order) :
- -uml or -c++ or -java
to specify the target language, mandatory
if other arguments are given (except the port
number given by BOUML itself)
- generated XMI file path (must not contains space)
- encoding, for instance windows-1252
- -view, optional, to generate views as package
- -simpleTv to generate tagged values
with the simple form, -complexTv to generate tagged values
with the complex form, else the tagged values
are not generated
In case these arguments are given the dialog doesn't
appears, this allows to export a project in XMI without
any manual action.
2.15.1
June, 11th 2006
- Since the 2.14.5 the modification of a relation
between classes shown in a class diagram produces an infinite loop if the line
is segmented, fixed.
- Generalize the management in the diagrams of the self-relations from
the classes to the packages, components etc ..., i.e. to move the self
relations with the object, to automatically add two break line points
when you draw a self relation.
- To follows the norme : when you ask to hide class's attributes or operations
through to the drawing setting "hide attributes" or
"hide operations" the corresponding separators are not drawn.
If you hide attributes / operations individualy the separators are drawn
even if you hide all the attributes / operations.
The computing of the size of a class in a class diagram is unchanged
(space taken by a hidden separator is still present) to not deteriorate
the vertical alignments of the classes in your already existing diagrams.
- Java Catalog 2.5.2
Java Reverse 2.5.2
Since the 2.14 the visibility is not set for the reversed operations and
relations, fixed.
2.15
June, 4th 2006
- It is now possible to apply a plug-out on the project
when BOUML is started :
- bouml <project file> -exec <plug out> -exit
- <project file> indicates the model to load as usual.
- <plug out> indicates the plug-out to apply
on the project. The C++ generator is named cpp_generator,
the Java generator java_generator, the Idl generator
idl_generator, the HTML generator ghtml, the XMI
generator gxmi. If necessary the full path of the plug-out
have to be done, warning : under Windows this path must not
contain space.
- -exit is optional and allows to exit from BOUML when the
plug-out execution is done.
For instance :
- "C:\Program Files\Bouml\bouml" "D:\...\aze\aze.prj" -exec C:\Progra~1\Bouml\cpp_generator
- bouml .../qsd/qsd.prj -exec "java -cp /tmp/wxc Main" -exit
- Add the new drawing settings 'draw shadow' to show or not the shadow introduced
in the release 2.14.4, it may be set on project, packages,
views and diagrams levels, not on a diagram element.
By default the shadows are shown, if you don't like
shadows set the drawing settings on the project level as usual to
globaly specify your choice.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.14.5
May, 28th 2006
- Under Windows the path of the file edited by the editor
specified by BOUML_EDITOR is now a Windows path
rather than a Unix path (i.e. with '\' rather than '/')
to not disturb editor like PsPad.
- In a class diagram the class associations are now
automatically shown using an anchor between the relation
and the associated class, except if the drawing setting
draw all classes relation is set to no. This is done
then the relation is added in the diagram and the associated
class is present, or when you edit the relation to set/remove
the association and the relation and class are present.
- Drawing an anchor between a relation and a class
now updates the class association. Deleting the anchor
doesn't remove the class association from the model, for that
you must edit the relation.
- Java Generator 2.5.3
Fixe a bug on the generation of the enum pattern items
introduced in the previous release.
- Html documentation Generator 2.5.1
Manage the actuals of a Java generic instantiation.
2.14.4
May, 21th 2006
- The default position of a transition's label was wrong
when the trigger, guard and activity are
written verticaly, fixed.
- Change the default definition of an enum item
in Java to move ${@} before ${name}
rather than after.
- An actor is now drawn with its icon in a sequence
diagram.
- Add a shadow to some elements in the diagrams. Note :
a transparent element doesn't have shadow.
- Add the button
in the diagrams helping to do an Optimal windows size
without using the menu of the diagrams menu
- Modify the plug-out API to add on the class
UmlBaseRelation the operation side,
if its argument is true returns the relation
associated to the role A, else the relation associated
to the role B or 0/null if the relation is non
bi-directional.
- Java Generator 2.5.2
Like in C++, when a class inherits or realizes a generic
class the tab Instantiate of the class dialog is the standard
way to specify the actuals. Now these actuals are generated
when the generalization/realization definition contains ${type}.
When the class is undefined or is not known as a generic
because of the current environment the actuals have to be set directly
the relation's definition as I said in the historic of the release
2.13
Annotation was not generated for an enum_pattern, fixed.
- Java Catalog 2.5.1
Java Reverse 2.5.1
Management of the generics
- C++ Generator 2.2.2
Produce '> >' rather than '>>' in a template
class instantiation, adding a space before '>' after the generation
of the last actuals being itself a template class.
- C++ Reverse 2.2.1
The namespace containing reversed enum
and typedef was forgotten, fixed.
- XMI Generator 1.4
Stop to generate a bi-directional relation as two
distinct relations.
For the C++ generation, in some cases when a type being
an operation return value is defined, its name contains
the keyword $<inline>, fixed.
Follows the new API
- Plug-out upgrade 1.3
Upgrade the plug-outs to add the operation
side on UmlbaseRelation.
This upgrade is not mandatory : old plug-outs
are compatible with this new releases of BOUML.
- Plug-out empty
Upgraded by Plug-out upgrade
- Sort
To avoid a conflict under Linux, the executable is
renamed from sort to browsersort.
- Deploy 1.0
New plug-out, must be applied on a class view.
This plug-out automatizes the creation of the
artifact for all the classes of the class view
on which the plug-out ins applied :
- If the class view doesn't have an associated
deployment view, an associated deployment view
having the name of the class view is created
in the same package.
- An artifact with the stereotype source is
created and associated to all the classes of the
class view without associated artifact,
the name of the artifact is the name of the
class.
This plug-out is automatically configured on the
new project, to use it in your already existing project :
the name of the executable is deplcl, and
the target is a class view.
2.14.3
May, 1th 2006
- Add the commands save optimal picture part and
copy optimal picture part in the diagram's menu.
These commands do an optimal window size before
the corresponding save/copy visible picture part,
then restore the window size. This allows to get all the
elements of the diagram more easily.
- The plug-out operation UmlBaseDiagram::saveIn
did an optimal scale when the diagram doesn't have
a preferred size and scale. Now the optimal scale
is replaced by an optimal window size.
When the saved diagram is already opened, the current
scale is unchanged and an optimal window size is
done even if the diagram has a preferred size and scale.
This impacts the behavior of the plug-out
Html documentation Generator
- Note : the behavior of the command print done through
the icon is unchanged, to print all the elements of the
active diagram do first an optimal window size.
2.14.2
April, 29th 2006
- When the scale is not 100%, the automatic
update of the position of the two intermediate points of a
line having the geometry
or
may crash BOUML depending on the position of the
elements ending the line. Fixed
2.14.1
April, 24th 2006
- Java Generator 2.5.1
C++ Generator 2.2.1
Idl Generator 2.2.1
Fixe a bug in the code generation of get/set
operations applied on a relation.
2.14
April, 23th 2006
- Add the management of the visibility package.
In C++ or Idl the visibility package is
translated to public.
- A relation's stereotype starting by the character '{'
is now not written between < < and >>,
this allows to specify the constraints through the
stereotype and to see them as desired.
- C++ Reverse 2.2
To manage more Qt pre-processor identifiers and
the visibility package.
- Java Catalog 2.5
Java Reverse 2.5
Java Generator 2.5
C++ Generator 2.2
Idl Generator 2.2
To manage the visibility package.
- Html documentation Generator 2.5
Manage the class associations and the visibility package.
Follows the new API
- XMI Generator 1.3
Manage the visibility package.
Follows the new API
- Plug-out upgrade 1.2
Upgrade the plug-outs to manage class association
and the visibility package.
This upgrade is not mandatory : old plug-outs
are compatible with this new releases of BOUML,
they receive the visibility public rather than
package even in Java.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.13
April, 17th 2006
- Starting to draw a relation and doing an undo
before to reach the target has undesired effect depending
on the next action,
including a crash, fixed.
- Add the possibility to set the geometry of the lines
in the diagram (except for the messages in a
sequence diagram) to have a right angle
(
or
) or a crank
(
or
).
While you do not change by hand the position of the
central line of a crank the geometry is preserved
when you move one of the extremity of the crank, else
the central line stop to be automatically moved.
To set / unset the geometry of a line you may select the
line and press Control l as many time as necessary,
or call the menu of the line and use the sub-menu
geometry.
- Change the way to specify a generalisation or
realization.
In the previous releases these relations are generated
when they are specified as Generated through the
button Generated in or by default thanks to the
toggle default definition in the menu
Miscellaneous.
From now the button Generated is replaced by the
button Default declaration and the default form
became ${type} which is replaced during the code
generation by the name of the generalised or
realized class. This allows to modify the code
generated, for instance in Java to replace the inheritance
to Sequence by Sequence<int> replacing
the default declaration by ${type}<int>.
Of course when you load an old project the form
Generated is automatically changed to
${type}.
- Add the management of the class associations. The
relation dialog is modified to allow to specify the
associated class or type, this one is generated through
the new keyword ${association}.
Note : you must add the keyword ${association} by
hand in the declaration, for instance in C++ if you
have a relation to the class C and the associated class
is K and you want to specify a stl map having the
key K and the value C, set the stereotype
to map, specify a multiplicity like *,
ask for the default declaration, and replace the form
<${type}> by <${association}, ${type}>
Note : the management of the class associations is not yet
done in the class diagrams
- In java a class member has a package visibility
when the keyword ${visibility} is not present in
its definition. In a class diagram, when the drawing
language is Java, the visibility marker (+, - or #)
is now not shown for the class's members having a
package visibility.
- Change the way to compute the 'get_' and 'set_' operations
to manage cases where the default operation definition
contains additional '}' after the '}' ending the body
(for instance because of a comment containing a keyword).
Manage class associations
- Add the landscape formats corresponding
to the already existing formats of diagram.
- C++ Reverse 2.1
In the previous releases an own artifact was created
for each reversed class. From now the classes defined in
the same header file will be associated to the same
artifact named like the reversed file. Of course this
is possible only if all the classes are in the same
namespace or are not in a namespace, else one artifact
per namespace will be created in different packages.
The classes defined in a source file rather than a
header file are associated to an artifact having the
name of the class. Note that if the classes A
and B are reverse from the file C.h, and if a
source file in the same directory define the class C,
and if the three classes are defined in the same namespace
or are not defined in a namespace, the three classes will
associated to the same artifact C, whatever the name
of the source file defining the class C.
To manage the new definition of the generalisation
and realization.
Note : the class associations are not yet used by
the reverse.
- Java Catalog 2.4.1
Java Reverse 2.4.1
To manage the new definition of the generalisation
and realization.
- C++ Generator 2.1.1
Java Generator 2.4.1
Idl Generator 2.1.1
To manage the new definition of the generalisation
and realization.
To manage the class associations.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.12.2
April, 9th 2006
- The code generations are now made in non verbose mode by default,
to set / unset the verbose mode use the corresponding toggle in
the menu Miscellaneous. Note : this toggle is saved
in the session file
- Plug-out upgrade 1.1
Upgrade the plug-outs mainly to manage the Java JDK 5,
this upgrade is not mandatory : old plug-outs
are compatible with this new releases of BOUML.
To use the new features on an existing plug-out,
because of the renamings explain below, you must
upgrade the plug-out before modifying your
sources to call new operations.
In case the upgrade is done :
- Some operations of the class
JavaSettings are renamed :
enumDecl become enumPatternDecl,
set_EnumDecl become set_EnumPatternDecl,
enumItemDecl become enumPatternItemDecl,
set_EnumItemDecl become set_EnumPatternItemDecl,
enumItemCase become enumPatternItemCase, and
set_EnumItemCase become set_EnumPatternItemCase.
- The Internal API base enums items corresponding to the
corresponding commands and the attributes memorizing the
corresponding java settings are also renamed.
- The body of all the operations are
updated to use the renamed operations of JavaSettings,
there is no update for the artifact definition, state
entry/exit behavior, transition trigger etc ...
- The new operations enumDecl, set_EnumDecl,
enumItemDecl and set_EnumItemDecl are added
to JavaSettings.
- The new operations javaAnnotations and set_JavaAnnotations
are added to UmlBaseClassMember
- Other internal API base addings are also made.
- On the class UmlBasePackage
the operation associatedDiagram is modified to return a
UmlDiagram rather than a UmlClassDiagram,
and the operation set_AssociatedDiagram is modified
to get a UmlDiagram rather than a UmlClassDiagram.
- Fixe a bug in the Java definition of the operation read_
of UmlBaseActualParameter.
- C++ Generator 2.1
Java Generator 2.4
Idl Generator 2.1
Limit the number of messages produced in the trace windows
when the code generation is non verbose, in this case there
is no message when a class doesn't have a definition
or an associated artifact, or when a generated file
is not modified (when both the source and header files are
unchanged in C++). Follows the new API
- Java Catalog 2.4
Java Reverse 2.4
Follows the new API. Remark : the management of the
generics is not yet done.
- Html documentation Generator 2.4
Manage the Java annotations and generics.
Fixe writting of C++ template (< and > was not quoted).
Follows the new API
- XMI Generator 1.2
Produces the Java annotations as tagged value.
Follows the new API
- Plug-out empty
Upgraded by Plug-out upgrade
2.12.1
April, 4th 2006
- Since the release 2.11 the edition of
a read-only class, operation, attribute or relation
crashes BOUML, fixed.
2.12
April, 2th 2006
- After setting a default color for the class instances
at a sequence diagram or collaboration diagram
level it was not possible to reload the project (produced
the error message 'end' expected
rather than 'class_instance'), fixed.
- Fixe bugs in the computing of minimum size or the
resizeable diagram elements (package, node etc ...)
depending on the zoom.
- The drawing settings show packages name in tab
was not always correctly managed, fixed.
- Management of the Java JDK 5 generics. The tab
Parametrized of the class dialog is modified. In
Java only the columns name and optionaly extends
are used. The definition of a class is not modified (this
means that there is no new keywords), if the class has
parameters they are generated after the class's name
by ${name}.
- New font management helping Qt to use a font
corresponding to the scale. Note : the improvement depends on the
OS and the Qt release : there is no change with Qt 2.3 under Linux,
small fonts are now used with Qt 3 under Linux and with Qt 2.3 under
windows.
- Adds new colors including white.
- In the annotation dialog indicates the member's name
when you add an annotation having at least two members.
- Java Generator 2.3
Adds the management of the generics.
- Java Catalog 2.3
Java Reverse 2.3
Adds the management of the annotations's operations
with a default value. Remark : the management of the
generics is not yet done.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.11
March, 26th 2006
- Management of the Java JDK 5 annotations.
Adds the class stereotype @interface, when you
ask for the default annotation definition in Java, the
default interface definition is used then '@' is
added before interface.
The new keyword ${@} is allowed in the Java definition
of the classes, attributes, associations and operations,
of course this keyword is replaced by the annotations by
the code generator. When you create a new project this keyword
is placed after ${comment}.
In the dialogs the button Edit annotation is added
to modify the annotations through a dedicated dialog.
The proposed annotations are the pre-defined Java annotations
@Deprecated, @Documented, @Inherit, @Override, @Retention,
@SuppressWarnings and @Target
more the classes having the stereotype @interface,
but any annotation may be enter by hand in the multi-lines
editor.
Obviously the button Edit annotation is only active
when the definition contains the keyword ${@},
you have to add the keyword in the definitions of the old
projects to be able to set the annotations
- Java Generator 2.2
Adds the management of the annotations.
- Java Catalog 2.2
Java Reverse 2.2
Adds the management of the annotations.
Manage class's members without specified visibility
- Html Generator 2.3.2
XMI Generator 1.1.3
To bypass ${@} in the definitions.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.10
March, 21th 2006
- Deployment nodes was improperly resized in some
cases, fixed.
- The resize of a resizeable element (package, note...)
was wrongly managed by undo / redo, fixed.
- When a move is done through the keyboard arrows using the auto
repeat, the complete move is saved in the historic rather than
each individual move.
- Add a button edit in the diagram's toolbar to call the
diagram's menu like with a right mouse click done out of
all the elements.
- Add new format of diagrams : Iso A0 and A1, US D and E.
- When you move a package in a diagram, the
artifact, class, component, deployment node, package and
use cases defined in the package (not through an
other one) and in collision with the package
at the beginning of the move are also moved. If you want to
also move the connected elements, do a very short move
(for instance use the keyboard arrows to do a move and its opposite)
then ask for select linked items and restart the move.
Note : contrarilly to the states> when you
resize a package the sub-elements are not moved to stay
in it.
- C++ Reverse 2.0.9
Adds the management of the template friend in C++.
Other improvements
- File Control 1.0.3
Your command is applied on the auxiliairy files cpp_includes,
generation_settings, idl_includes, java_imports, stereotypes
and tools when the Plug-out in applied on the project.
Check if a file exists before applying the command.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.9.7
March, 14th 2006
- File Control 1.0.2
Do the save before applying the command on
the files ! Two errors on a so small program, grrrrrr :-(
2.9.6
March, 13th 2006
- File Control 1.0.1
Fixe a bug in the computing of %dir, sorry.
2.9.5
March, 12th 2006
- Adds Undo Redo in the diagrams, the shortcuts are
Control-z and Control-u for undo,
Control-y and Control-r for redo.
The depth of the historic is 20, it is emptied
on the editions (including the drawing setting edition),
the browser element deletion/undeletion, the change of scale
or diagram format, etc ... The undoable operations are moving,
removing from view, element adding.
- The menu of a class diagram (shown on a right mouse
click done in the diagram out of any diagram element)
proposes the new entry add classes of the selected
class view when the selected browser element is
a class view containing class(es) not already
shown in the class diagram.
- C++ Generator 2.0.16
Fixe a bug in the calculation of the dependencies.
- XMI Generator 1.1.2
Do not place several UML:TaggedValue in the same
ModelElement.taggedValue
- Java Catalog 2.1.3
Java Reverse 2.1.2
It was not possible to reverse a nested enum, fixed
- Html Generator 2.3.1
Rename the generated files index_X where X is
a character, replacing this one by its ascii code to not have
illegal filenames under Windows.
- Plug-out empty
Fixe the profile of UmlBasePackage::getProject()
to return a UmlPackage rather than a
UmlBasePackage.
- File Control 1.0
New plug-out, must be applied on the project
or a package.
This plug-out is written to do check-in
or check-out on the files of a project.
Because I don't know what file control you use (CVS ...)
this plug-out asks for the command to be made on
each file. The command is executed through the function
system, don't forget to give the option -nc for
clear case. Of course in case you don't use
a file control you may use this plug-out to set
the file permissions using chmod
in the commands under Linux etc ...
This plug-out is automatically configured on the
new project, to use it in your already existing project :
the name of the executable is file_control, you must
specify a first parameter being ci or co
(so this plug-out is declared two times), and
the target is the project or a package. Create a
new project and look at the tool settings to have an example
of configuration.
2.9.4
February, 27th 2006
- Adds the management of the template operations in C++.
A template operation has an empty declaration and
the actuals are directly specified in the definition (of course
between ${class} and ::).
- C++ Reverse 2.0.8
Adds the management of the template operations in C++.
Adds a progress bar, the progress is based on the number
of files, not on the time
- C++ Generator 2.0.15
Adds the management of the template operations in C++.
- Java Catalog 2.1.2
Java Reverse 2.1.1
Adds a progress bar, the progress is based on the number
of files, not on the time
- XMI Generator 1.1.1
Allows to choose how the tagged values are generated,
because some tools don't accept some form.
tagged values are used to produce description (may be
on several lines), stereotypes, user properties
and type definition.
2.9.3
February, 22th 2006
- duplicate marked after could
have dramatic effects, for instance crashing
operation's definition, fixed.
- It was not possible to edit the description or something
else from the class dialog using the Editor button
with BOUML_EDITOR unset : the internal editor didn't
have the focus, fixed.
- Plug-out empty
Add a missing 't' in the Java definition of
UmlBaseClass::setAssociatedClasses()
- C++ Generator 2.0.14
Adds the management of the 'external' classes
(see here)
- Java Generator 2.1.1
Adds the management of the 'external' classes
(see here)
- Java Catalog 2.1.1
When a JDK 5 enum is scanned this one is created in
the modeler, fixed.
- Sort
This is a new plug-out, allowing to re-order elements
in packages, views and use cases.
Its realization both in C++ and Java is detailled in the new
tutorial about plug-out writting.
2.9.2
February, 13th 2006
- Little improvements made in conjontion with the writing of
the
tutorial of BOUML.
2.9.1
February, 4th 2006
- Previous releases crash when you confirm
the edition of an enum_pattern's item, fixed.
- Use case wizard 1.0
This is a new plug-out, allowing to set properties like
pre-conditions etc ... on use case.
Must be applied on a use case.
This plug-out is configured by default
in the new projects. The name of the executable to
add it to the plug-outs list in of the existing
projects is usecasewizard.
This plug-out is defined in C++ and Java, like the
Html Generator, allowing you to modify it in your prefered
language. I give it as an example to show you how to
simply extend the BOUML features.
2.9
January, 22th 2006
- Previous releases crash on duplicate
marked into when a marked item is a diagram, an artifact,
a component, a deployment node, a view,
a package or a use case, fixed.
When you duplicate an artifact the new one doesn't
have associated artifacts or classes.
When you duplicate a component the new one doesn't
have associated classes.
When you duplicate a deployment node the new one doesn't
have relation.
When you duplicate a package, a use case or a
view the new one doesn't have relation nor sub items.
- When a browser item is duplicated its description is now
also copied.
- In all the pro files replace CONFIG = by
CONFIG +=, to help to compile BOUML under MacOS X
- In a class diagram, the visibility of the class's members
was shown only when the drawing setting show classes
member full definition was set to yes (directly or indirectly).
The new drawing setting show visibility is introduced
to show or not the members visibility independently of
the writting of the full definitions. When you load an old
project the value of show visibility is the value
of the corresponding show classes member full definition.
- C++ Reverse 2.0.7
Fixes on the management of the scope (namespace or
upper class).
The Package unknown is not any more created in case
of problems, it is replaced by the usage of explicit types (i.e.
a string rather than a relation to a class defined under unknown),
or typedefs (named typedef<n>, where n
is a number), or extra class members.
- C++ Generator 2.0.12
Fixe a bug on the management of the scope (namespace or
upper class) of inherited classes
- .pro Generator 2.1.1
Generate CONFIG += rather than CONFIG =
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.8
January, 7th 2006
- Management of the Java JDK 5 enums.
Generics and annotations will be added later.
When you load a project made by a previous release :
-
The may be existing class stereotype enum_pattern
is renamed (the new name is context dependent and
is given in a message box), and the classes having
this stereotype are modified to have the new one
-
Except for the class stereotype enum, the
class stereotypes valuing enum in Java are
modified to become enum_pattern in Java
(one suposes this stereotype didn't exist because
it has not special meaning for Java).
-
The class stereotype enum_pattern is created
from the class stereotype enum replacing
the Java stereotype enum with enum_pattern.
-
The classes having the stereotype enum and
a non empty Java definition receive the stereotype
enum_pattern
-
In case at least one class is read-only BOUML
ask you to save the upgraded project in a new one
The classes having the stereotype enum_pattern
are managed like the old Java pseudo enum.
The classes having the stereotype enum
are managed like the Java enum introduced by the JDK 5.
Because a Java JDK 5 enum may have attributes, relations
and operations, it is now possible to add these kinds
of members to a class having the stereotype enum, but
the their default definitions are empty in C++ and Idl.
The keyword ${items} is introduced in the Java definition
of a JDK 5 enum, it has no meaning is the other cases,
during the Java code generation it is replaced by the enum
constants and the keyword ${members} is replaced by
the other members.
To distinguish the attributes corresponding to the enums
constants and the other attributes, the stereotype
attribute is introduced, this one indicates a non
enum constant. So, the attributes having the stereotype
attribute are generated by ${members}, the
others by ${items}
New generation settings are added to specify the
code generated for the JDK 5 enums.
To be still compatible with the Java JDK 1.x the Java definition
of the API of the plug-outs don't and will not use
the Java JDK 5 enums.
- Little changes to compile under Mac OS X.
- Java Generator 2.1
Java Reverse 2.1
Java Catalog 2.1
Manage the Java JDK 5 enums.
- XMI Generator 1.1
Allows to choose the encoding.
Upgrade for the Java JDK 5 enums
- Html Generator 2.3
Escape html special characters. Manage the new enum
definition.
Upgrade for the Java JDK 5 enums.
- C++ utilities 1.1
.pro Generator 2.1
Rose project import 2.1
State machine generator 1.1
Upgrade for the Java JDK 5 enums.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.7.8
December, 22th 2005
- Fixe a bug on the management of deleted items still
referenced during the project reading.
Previous releases may crash on this
case of non consistency.
- Now when you ask for referenced by on a class,
the attributes, operations and classes referencing the target
class at the UML level are also given. Note : the
operations's bodies are not taken into acount.
- Management of ${h_value} in the C++ declaration of
attributes and relations, see below. Because only the
C++ declaration is showed in the C++ tab of the attribute and
relation dialogs, the initial value is only shown when the
keyword ${h_value} is used.
- C++ Generator 2.0.11
For a given artifact, when the header file definition contains
${all_includes} no declaration are produced
in the header file and all the #includes are produced in
the header file, except the #includes of the header file
in the source file of course.
The already existing keyword ${value} is still replaced
in the definition of a static attribute or
relation by the initial value.
The new keyword ${h_value} is replaced in the
declaration of a static attribute or
relation by the initial value.
- C++ Reverse 2.0.6
Management of ${h_value} : when the initial value of a
static attribute or relation is specified in the declaration,
force the attribute or relation specification to contain
${h_value} else ${value}.
- Html Generator 2.2.1
Management of ${h_value}
- XMI Generator 1.0.6
Add generation of the C++ and Java definition. When you
start the XMI generator, this one ask you to choose between
the UML, C++ or Java exported definitions.
2.7.7
December, 4th 2005
- In the class and operation dialog, when you edited something
in a table (for instance the name of an operation's parameter)
and you went directly in an other tab, the change in the
table was not taken into account. It was necessary to
click elsewhere in the table before went in another tab, fixed.
- XMI Generator 1.0.5
The user properties are exported and produce tagged values.
2.7.6
December, 3th 2005
- The Windows version didn't allow to use an editor
(specified by BOUML_EDITOR) placed in a directory having a path
containing spaces, fixed.
- The extension of the auto generated file's
name edited by the editor specified through BOUML_EDITOR
is now the one specified through the generation settings.
For the Windows version : set the filename to contains
only valid characters.
- In the Java and Idl tabs of the artifact dialog the '$' is
just replaced by '@' and the user keywords are not
replaced by their values (in fact BOUML tries to manage a
user keywords when it finds a '$' rather than a '@'
because of a typing error), fixed.
- When a class or its members was changed, its self
relations moved a little bit in the class diagrams
without true reason, fixed.
- The stereotype of a duplicated marked browser item may not be
visible even this is asked, fixed.
- In the previous releases an operation could not be
virtual and inline at the same time, fixed.
- In the sub-menu add inherited operations the
abstract operations are now written in italic. In the
associated dialog used when there are too many inherited
operations, the abstract operations's profile has the
header [a] (to use italic is not possible).
- When an operation is duplicated (even through
add inherited operations), its C++ and Java bodies
are also copied.
- In the previous releases a class could not be provided/realized by
several components, remove this limitation. Change the browser
class menu select associated component by the sub menu
select associated components allowing to select a
component provided or realizing the class when several components
do that. The API with the
Plug-outs is modified, the operation associatedComponent
defined on UmlBaseClass is renamed associatedComponents
and now returns a vector of components.
Old Plug-outs may be used with this release, in this case
only one component chosen randomly is returned by
associatedComponent.
- New C++ and Java default operation definition according
to their body indent (2 spaces by default), see below
- C++ Generator 2.0.10
Java Generator 2.0.4
New way to specify the indent of the operations body. In the previous releases it was
necessary to indent all the lines. Now an indent added to
each line may be specified, this indent is the spaces and tabs
placed between ${body} and the first previous
character not equal to a space and a tab.
In C++ : when the last characters of a line are '\' followed by
an optional carriage return then a newline, the next line
is not indented; When the first character of a line is '#'
this line is not indented; These two rules are applied
whatever the context, the code generator doesn't check if
the characters are in a comment, a string or a literal
character.
When the body is empty the spaces and tabs placed before
${body} are not output.
The right way is just to add spaces or tabs before the keyword
${body}, itself followed by '}'. This is the new default
definition of a C++ operation for new projects
Because the keyword ${body} was a priori not
indented in the definition of the operations for the
previous releases, this new feature doesn't have undesired
effect on old operations.
- C++ Reverse 2.0.5
Java Reverse 2.0.4
Because the bodies of the operation is already indented,
remove the indent of the keyword ${body} in the
reversed operations's definition
- Idl Generator 2.0.4
Fixe a bug in the generation of the operations's exceptions
Add a missing ';' at the end of a module definition
- Plug-out upgrade 1.0.3
Upgrade the operation associatedComponent
defined on UmlBaseClass to return several components.
- Html Generator 2.2
Plug-out empty
Upgraded to manage several components realizing/providing a class.
They can't be used this previous releases of BOUML
- XMI Generator 1.0.4
Manage characters " & < and > in strings
2.7.5
November, 16th 2005
- All the generation settings was not read with
release 2.7.4, fixed.
- Under Linux with a QT release 3.x it was not possible to
edit the user properties value. Partially fixed,
currently return goes to another cell and doesn't
insert a newline.
- Set the size of the diagrams under Windows as it was
already made under Linux when a session is restored.
- Stop to save / restore the browser's scroolbars position,
but force the selected browser item to be visible when
a session is restored. However the session files created by
the previous release of BOUML are managed by this release.
2.7.4
November, 13th 2005
- When a project is closed the current session (opened
diagrams list, browser view etc ...) is saved to be
restored the next time the project will be load.
The file used to save the sessions is placed among the
other files of the projects and is named
<uid>.session, where <uid> is the value
of BOUML_ID to allow each user to have his own
session. This feature is not provided when BOUML_ID
is not defined.
The size of the diagrams sub-windows
is restored (except under Windows else the program goes
in an infinite loop inside Qt), not their position because
this information is not available (private in Qt classes).
The scroolbar position is not restored in the browser
(even I ask for).
- Improve the displacement of the objects in a diagram
when the scale is changed, moving their center rather
than their top-left corner (yes, at last !).
- Hide the limits of the diagram canvas when you print it
- When the drawing of a class is modified in a class diagram,
its center is unchanged, and the line breaks of the class's
self relations are moved if needed to not have them under
the class picture. Before when a self relation was hidden
because the class picture grew it was not easy to show it
again manually.
2.7.3
November, 7th 2005
- Add some checks concerning the state machine
- Indicate why a relation can't be added
- New dialog to help C++ programmers to manage the parameters
of the operations, called through the new buttons placed
in the tab C++ of the operation dialog
- State machine generator 1.0.2
Add entry point, terminate management
2.7.2
November, 3th 2005
- Take immediatly into account the new value of the
user keywords for the forms @{...}
in the dialogs to show the result after
substitution.
- C++ Generator 2.0.9
A non defined user keyword associated to
a form @{...} may produced an infinite loop,
fixed.
- State machine generator 1.0.1
Add completion transition management
2.7.1
November, 1th 2005
- XMI generator 1.0.3
Fixe class's relations generation
- C++ Generator 2.0.8
Fixe a bug associated to the nested classes
- Html Generator 2.1.4
Write transition's name
- State machine generator 1.0
This is a new plug-out, produce the classes
implementing a state machine.
Must be applied on a state machine.
This plug-out is configured by default
in the new projects. The name of the executable to
add it to the plug-outs list in of the existing
projects is stmgen.
It is under development, the pseudo states fork, join,
entry point, terminate, deep history, shallow history and the
regions are not yet managed, nor the completion
(you must specify triggers). Currently this
Plug-out is implemented in C++ and
produce C++ definition, it will be also implemented in Java
to produce Java definition (why not !).
When you apply this plug-out on a state machine
a class having the same name (removing non legal characters)
is created in the same class view to implement it.
This class doesn't contain static attributes and may
have several instances. Each sub-state is managed through an own
sub-class, the tree of the states and the associated classes
is the same. For each trigger, whatever the
state waiting for it, an operation having the same name
(the C++ trigger must have a legal C++ name, the
C++ guards must be legal C++ forms etc ...) is
defined. Currently the triggers can't have parameters,
and a transition can't have several triggers.
You must apply these operations on the instance of the
class implementing the state machine to simulate the event,
the returned value is true until the final
state is reached. The operation starting the execution
is named create (the only legal trigger for
a transition from an initial pseudo state).
A trigger's name can't start by the character '_', allowing
me to produce operations and attributes starting by '_'
without collision.
2.7
October, 27th 2005
- BOUML wasn't compilable with GCC 4.0.x, fixe this problem
even I don't really trust on these GCC releases (see
message).
- The files generation_settings, tools, stereotypes,
cpp_includes, java_imports and idl_includes
are now re-written only when they are really modified.
Note that for performance purpose this check is not done for
all the other files, for instance when you do a change, thus
undo it, the corresponding files will be re-written.
- Nested class visibility is editable
- When a form @{xyz} is found by the
code generators and the associated dialogs, and xyz
is a key of a user property, this one is replaced by the
corresponding value. The user property is seached
first in the item for which the code is generated, if not
found in its parent, if not found in its grand-parent
etc ...
- Java Generator 2.0.3
Idl Generator 2.0.3
Add management of @{xyz} forms.
- Html Generator 2.1.3
Add management of @{xyz} forms.
Does substitutions of the ${abx} forms in the
comments introduced in BOUML 2.6
- C++ Generator 2.0.7
Add management of @{xyz} forms.
Doesn't generate the full definition of an initialized
static const attribute only in the header file,
the attribute is defined and initialized in the
source file.
- XMI generator 1.0.2
The generation of a package for the views is
optional. Memorize the filename used for the previous
XMI generation to propose it by default.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.6.4
October, 21th 2005
- When you quit BOUML closing its window through your window
manager capabilities rather than using project > quit
and the project is modified, BOUML will ask you to confirm.
- When a class, use case, use case view or a package
is moved by drap-and-drop in the browser and may be placed
in or after the destination, BOUML ask for you to choose.
The class menu entries set it nested in and extract
from becoming useless are removed.
- Add management of the keyword ${inline} in the
declaration of the operations in C++.
- C++ Generator 2.0.6
C++ Reverse 2.0.4
Html Generator 2.1.2
Add management of the keyword ${inline} in the
declaration of the operations in C++.
- Plug-out upgrade 1.0.2
To add the operation UmlBaseItem::moveAfter allowing to change
the order of the items in the browser (staying under the
same parent), and to access / modify the new
generation settings managing the default description
and the default return type forms introduced in the 2.6
2.6.3
October, 16th 2005
- Phantoms non class relations could remained after
destruction of item target, may crash BOUML, fixed
- XMI generator 1.0.1
Fixe indentation of </Generalization>.
In an operation's parameter whose type is a class,
replace UML:DataType by UML:Classifier.
The dependency's client and supplier was reversed,
fixed.
Some tools doesn't accept "*" in a mulplicity specification,
replace "*" by "0..-1", "2..*" by "2..-1" etc ...
Classes defined under a use case or a use case
view are generated as actor, their operations,
attributes and relations are not generated except
dependencies and generalizations.
Use case / class / component / deployment view are
generated as a package adding the view king in the
name.
Adds use cases generation.
Adds component generation (without UML2.0 features).
Adds node generation.
2.6.2
October, 13th 2005
- It was not possible to read a project containing
an extra member having a stereotype (produced
the error message 'end' expected
rather than 'stereotype'), fixed.
- The extra member dialog forgot to set the stereotype,
fixed.
- XMI generator 1.0
New plug-out, must be applied at the project
level.
Actually only the UML definition of the packages,
classes, attributes, relations and operations
are saved in the produced file.
To be compatible with existing tools, the format is
xml 1.0, xmi 1.2 for UML 1.4.
This plug-out is configured by default
in the new projects. The name of the executable to
add it to the plug-outs list in of the existing
projects is gxmi.
2.6.1
October, 2th 2005
- After changing the rank of messages in a collaboration
diagram, some of them are not shown sorted, fixed.
- In a collaboration diagram, when you edit a message which
doesn't correspond to an operation, this message was
not included in the message list, fixed.
- Changing the format of a diagram didn't have the
expected behavior when the zoom was not 100%, fixed
- Change the default Z position of the relations and other
lines in the diagrams to be dependent on the Z position
of the extremities
- Show the limits of the diagram canvas
2.6
September, 26th 2005
- Unfortunately it was possible to draw an anchor from a
class to a line break point in a class diagram, with
dramatic consequences, fixed.
- Since the release 2.5.4, in the sequence and class diagrams the full
operations displaying was wrong in C++ mode, fixed.
- When a plug-out can't be lauch under Windows
because the executable can't be found (PATH problem etc ...)
a message box is displayed from now on.
- The definition of a set_ operation was wrong in C++
and Java when the attribute / relation name is not the
UML name (definition of the get_ operation was right),
fixed.
- In the operation dialog, add buttons default definition
and default declaration for the get_ and
set_ operations.
- New generation settings to specify default description
for artifacts, classes, operations, attributes
and relations.
A new tab is added in the generation settings dialog
to set them, by default they are empty.
Add the button default to fill the description with
the default value in the corresponding dialogs.
From now on, keyword substitutions are
made in the description of the corresponding objects
as for their declarations / definitions. This
feature is under construction.
- New generation settings for C++ allowing to set the
default form specifying the operation return type form.
The affected tabs of the generation settings dialog
are the first one and the fourth C++ tab.
- Change a little the UML tab of the relation dialog to save
height, and a splitter is placed between the two
roles to choose their respective height.
- C++ Generator 2.0.5
The path generated for an #include was wrong
when #include with pathname is set in the generation
settings and the header files are generated in different
directories, fixed.
Fixe carriage return / line feed problem in code
generation under Windows.
When the name of a static attribute or relation
is not the same in UML and C++ the definition of the C++
variable was wrong (the declaration was correct), fixed.
Do keywords substitution in the comments (to be completed).
- Java Generator 2.0.2
Idl Generator 2.0.2
Fixe carriage return / line feed problem in code
generation under Windows
Do keywords substitution in the comments (to be completed).
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.5.5
September, 18th 2005
- When the browser sub-window is scrolled horizontally the
drag & drop of a browser's item was not always
possible, fixed
- With BOUML compiled with Qt3, resizing a graphic item
using the mouse had a strange behavior except for the
bottom right corner, fixed. Note : the delivered version
of BOUML for Windows use QT2 and didn't have this bug.
- When you rename a class, the contructors and destructor
are now automatically renamed
- Add UML 2 standard stereotypes
- C++ Generator 2.0.4
When an artifact is associated to several classes
some of them could miss in the declaration list produced
for ${declarations}, fixed
- Plug-out empty
Updated to rename the contructors and destructor
when their class is renamed
- Plug-out upgrade 1.0.1
Add the renaming of the contructors and destructor
when their class is renamed
- C++ utilities 1.0
New plug-out for C++ modeling. Actually this
one works on class to help to add contructor (without
parameter), destructor (virtual or not), copy
constructor (with parameter const or not) and
assignment operator (with parameter const or not),
of course all these operations have an empty body.
This plug-out is defined in C++ and will be
extended depending on your requests. The name of the
executable is cpp_util
Because I am not a Java developer, I don't know what may
be usefull for Java, don't hesitate to ask for a Java
utilities plug-out
2.5.4
September, 11th 2005
- Previous releases may crash when you close
a dialog without closing the sub editions lauched through
the button editor with BOUML_EDITOR not defined,
fixed. Furthemore now when you do it, BOUML ask you to confirm
the loss of the modifications made through the sub editions not
yet closed.
- When you created a dependency between two components
the result was a generalization, fixed.
- The size of a closed dialog is saved to be re-used
the next time a dialog of the same type will be opened.
- Force the drawing name of a use case to be on
the top of the use case picture
- The keyword ${description} is added for the code
generation. This one similar to ${comment} except
that the code generators produce the description part
without adding "//" or /* .. */. This allows you to choose
between the two ways to produce the comments. This new
keyword is of course managed by the reverse in case it is
used in the defaults set through the generation settings.
When this new keyword is used, the reverse doesn't remove
the "//" or "/*...*/" from the reverse form to set the
description in the model.
- C++ Reverse 2.0.3
Previous releases produced a syntax error when
the visibility is not specified in an inheritance,
fixed (default visibility is private).
Add management of ${description}
- C++ Generator 2.0.3
Java Generator 2.0.1
Java Catalog 2.0.3
Java Reverse 2.0.3
Idl Generator 2.0.1
Html Generator 2.1.1
Add management of ${description}
2.5.3
September, 4th 2005
- Drag and drop inside the browser may produced an
infinite loop when an item is finally not moved (placed
under itself), fixed.
2.5.2
August, 24th 2005
- C++ Reverse 2.0.2
Fixe bugs.
2.5.1
August, 21th 2005
- The API with the Plug-outs is extended to
manage the states.
- Html documentation Generator 2.1
Updated to manage the states, must not be used with
the previous releases of BOUML.
- Plug-out empty
Updated to manage the states, must not be used with
the previous releases of BOUML.
- Plug-out upgrade 1.0
This is a new plug-out, its goal is to upgrade
the (old) plug-outs not made from the last up to
date version of the plug-out empty, adding the
missing features.
It is applied through the entry plug-out upgrade of
the menu Tools (this entry doesn't appears while a
dialog is opened or when the project is not a
plug-out).
This first release add the management of the states
and associated features.
- C++ Generator 2.0.2
Remove a wrong check concerning inheritance.
2.5
August, 9th 2005
- Add state actions (
,
and
).
- It was not possible to drag nested classes from the browser
into a sequence or collaboration or use case diagram. Fixed
- This the previous releases, when you try to open a sequence
diagram you may have the error message
'end' expected rather than 'show_full_operations_definition'
and a part of the diagram is not load. Fixed
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.4.1
August, 5th 2005
- Old releases of BOUML crash when you add a message
in a sequence diagram from a life line
to a class instance (this is forbidden : the
target must be a life line or a duration bar)
because the check was incomplete, fixed.
- C++ Reverse 2.0.1
Java Reverse 2.0.2
Java Catalog 2.0.2
Fixe a bug on the concatenation of the comments
during the reverses
2.4
July, 31th 2005
- Add state regions. Note : the regions are
not visible as long as the drawing of the state
is not enough increased
- Now, when you move or resize a state in a
state diagram, the position of its sub states
is updated
- The new sub-menu Diagram default format of the
Miscellaneous menu allows to set the default format
of the diagrams (Iso A2/A3/A4/A5, or US A/B/C)
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.3.2
July, 24th 2005
- To save the project is not allowed when a least a dialog
is opened. Now a message box is shown when the shortcut
Control-s is hit or the project's menu is asked
but a dialog is opened.
- Add the entry save visible picture part
near copy visible picture part in the diagram's
menu. This one allows to chooze a file to save the visible
part of the diagram using the PNG format.
- Rename column from "*" to "do" in some dialogs hopping this
is more visible, because some people ask me to know how
to remove operation's parameter etc...
- The optional environment variable BOUML_LIMIT_DESKTOP
allows to specify a sub-part of all the desktop, its value
must be x0,y0,x1,y1 without any spaces, where
x0,y0 specify the top-left corner and x1,y1
the bottom-right corner. These limits are taken into account
only for the initial size and position of the BOUML's
windows and when a dialog is opened, after that you are
able to go out of these limits up to the true desktop
limits. Usefull mainly for the users having a multiple
monitors (side by side) configuration, see the
the post Bugs > Window placement and sizing (multiple monitors)
on the forum
2.3.1
July, 18th 2005
- minor change on the way to set a diagram's item upper/lower
(see my respons for the post Bugs > state diagrams
on the forum)
2.3
July, 17th 2005
- Fixes concerning the colors in the sequences diagrams.
For the old release since the 2.2, editing the
drawing settings of a sequence diagram under Linux may
crash BOUML !
- Fixes in the Java definition of the empty
plug-out
- After a cut here made on a duration bar in a
sequence diagram, the color of the new duration bar
was not set, fixed
- Add behavioral state machine. Still on going, must be
done : to add region, to update empty plug-out
to access to the states. Activity diagrams
will be added too.
- A state machine is a state defined under a
class view, by default it has the stereotype
machine, these are only differences with the other
states.
- A sub machine is a state having
the stereotype submachine, this is only
difference with the other states. Theorycally
a sub machine is defined under a machine,
but BOUML doesn't check the usage of the stereotypes.
- Any state may contain sub states, pseudo
states, transitions and state diagram.
- When you add a state or a pseudo state
in a diagram out of any drawing state, the new
one is added to the state containing the diagram.
So in the example
it is useless to draw the state machine ReadAmount
to add sub states and pseudo states.
- An example
of a state machine and a state diagram
is given in the screenshots.
- In the dialog's User tab the value is now
edited through a multiline editor
- On the diagrams the keyboard's arrows Up, Down, Left
and right move the selected items.
- Html documentation Generator 2.0.1
ask for to remove or not all the already existing HTML
files in the target directory prior to generate the new ones
- C++ Generator 2.0.1
old releases crash on an empty enum, fixed
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.2.2
June, 15th 2005
- This release only exist for the Linux distribution,
some users have compilation problem associated with the
files Labeled.h, JavaCatWindow.cpp and
UmlWindow.cpp, fixed
2.2.1
June, 8th 2005
- Depending on your configuration the encoding of the
accentued characters in the BOUML files could be wrong.
Fixed
- Documentation still referred components rather
than artifacts, fixed
2.2
June, 5th 2005
- Add fragments (
),
available in all the diagrams.
- Add continuations (
),
available in the sequence diagrams.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
- Java Reverse 2.0.1
Java Catalog 2.0.1
Fixe the same bug in these two plug-outs
2.1
June, 2th 2005
- It is not still possible to draw association between
components, the already defined ones are removed,
the right way is to use dependency.
- Improve the component's drawing settings
to allows to write the component's compartments
(required and provided interfaces and the
realizations), for the components not drawn
as an icon.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
2.0
May, 23th 2005
- First version associated to UML 2.0.
- The sources, libraries and executables, are now supported by
artifacts rather than Components. The behavior of an
artifact is exactly the behavior which a component had.
- I suppose that all the components previously defined are used to produce
sources, libraries or executables, so :
-
When you load a project saved with a release less or
equal to 1.5.1, all the components become artifacts,
all the component views become deployment views and
all the component diagrams become deployment diagrams.
-
Furthermore, in case this project is a plug out, the
UmlBaseComponent class is modified with its members to
become the UmlBaseArtifact class, and the
UmlComponent class is modified to become the UmlArtifact
class updating only its default members. New
UmlBaseComponent and UmlComponent classes are created.
Obviously this may be not enough and you should have to do manually
some additional changes. The modified plug out doesn't allow
to fully manage components, for that you have to create a new
plug out from the new definition of the plug out named
empty.
- BOUML force a save as, then the project is closed.
- The only way to have components, component views and
component diagrams is to create new ones.
- A new drawing setting is added allowing to drawn the components
as an icon (old drawing) or following the UML 2.0 specifications.
Nethertheless when a component not drawn as an icon has a stereotype, this
least is written rather than <<component>>
the same rule is followed for the artifacts. The non icon drawing
is resizeable.
- The drawing of the required and provided interfaces
doesn't follow exactly the UML 2.0 specifications : to minimize
the number of labels, the interface's name is attached to the line
termination rather than to the line(s).
- C++ Generator 2.0
C++ Reverse 2.0
Java Generator 2.0
Java Reverse 2.0
Java Catalog 2.0
Idl Generator 2.0
Html documentation Generator 2.0
.pro Generator 2.0
Rose project import 2.0
Singleton 2.0
empty 2.0
Update plug-outs to follows the new API
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
1.5.1
May, 11th 2005
- Fixe a bug on the duration color saving.
- In case you can't reload a project because you have the
error ...expected rather than 'duration'
, acknowledge the message and exit from BOUML,
edit the specified file at the given line with any text editor and
replace duration by
duration_color. Retry : the same error may exist
several times.
1.5
May, 5th 2005
- The deletion of the labels in the diagrams is not
possible any more.
- Update the window title when the corresponding diagram
is renamed.
1.4.10
April, 24th 2005
- Do not re-open diagrams modified then closed to save
them, to decrease saving time.
1.4.9
April, 23th 2005
- Release 1.4.5 up to 1.4.7
may crash under Windows due to a C++ compiler bug in
optimize speed mode. Bypassed by having
one operation compiled with optimize speed off.
- Release 1.4.5 up to 1.4.8
doesn't save link and self link of the
collaboration diagram. Fixed
1.4.8
April, 17th 2005
- Release 1.4.5 up to 1.4.7
may crash under Windows due to a C++ compiler bug.
This delivery contains the debug version of BOUML
to mask the bug, because I do not have time to understand
what is append until the next week end, for professional
reasons.
- C++ Reverse 1.0.3
Adds management of Q_EXPORT, QM_EXPORT,
etc... present into Qt definition.
Little fixings.
1.4.7
April, 10th 2005
- Remove the management of the font associated to the screen
size introduced in the 1.4.5, because this is required by a
user.
- Add a progress bar appearing when a saving need time
1.4.6
April, 7th 2005
- New drawing settings dialog, using tabs
to reduce its size.
1.4.5
April, 6th 2005
- Add copy/cut/paste commands for
the diagrams. A paste is only possible in a
diagram whose type is the one of the diagram where the
copy/cut was made. The shortcuts are
Control c for copy,
Control x for cut and
Control v for paste.
The cut is equivalent to a copy followed
by a remove from view, this means that the corresponding
browser items are not deleted.
- Little modification to compute the default size of the
generation settings dialog.
- In case the default font point size is greater than 10
and the screen width is lower or equal to 1024 or its
height is lower or equal to 768, the default font point
size is set to 10.
1.4.4
April, 3th 2005
- Decrease the size of the drawing settings dialogs.
- The API base packages was read only. Now when the
associated file is writable, all may be changed except
the name. This allows to change the namespace/package/module
or the directories where the code generation are made.
- Add diagram's element alignement, the reference is the
first selected element.
- Fixe a bug concerning the undo changes in a diagram
and on the a bi-directional relation's role b
drawing in a diagram.
1.4.3
March, 31th 2005
- import Rose 1.1.2
Manage the components, note that the Rose tree of
components is not reproduced because the
components are too differents under Rose and BOUML,
and because BOUML recommends to place each component
view near the corresponding class view
- Html generator 1.1
Ask for the directory where the html and pgn files
will be produced rather than use a directory under /tmp
1.4.2
March, 28th 2005
- Drag and Drop from the browser to a diagram forgot to
map viewport position to content position due to
scrollbars position, fixed.
- Change positionning of the relation's role name and
multiplicity (correct it for a quarter of turn) in the
diagrams.
1.4.1
March, 23th 2005
- C++ Reverse 1.0.2
oupsss, C++ reverse loops on the first reversed file,
fixed.
1.4
March, 22th 2005
- Through the miscellaneous menu the size of the base font
used for the browser and the diagrams may be specified.
Note that sometimes changing the size does nothing because
the desired font is not available. A had introduced this
feature mainly because the default size under Linux and
Windows is not the same, this may change the relative
position of the objects and a relation drawn vertically
with one font will be inclined with an other.
This size is memorized in the file memorizing the project,
but I allow to change the font size even when the file
is read only (the new font size can't be saved).
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
1.3.2
March, 20th 2005
- Now all the sequence diagram items may be placed upper/lower.
1.3.1
March, 16th 2005
- import Rose 1.1.1
little change
1.3
March, 13th 2005
- Release 1.1 & 1.2 contains a major bug
linked to the diagrams saving, fixed.
- Add import of a bouml project into a package.
- Under Windows the optimal window size command may
produce an infinite resizing loop, fixed.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous releases of BOUML.
1.2
March, 8th 2005
- import Rose 1.1
correction when a file path is specified through
a variable ($var form into the rose model files)
1.1
March, 6th 2005
- Now the identifier of an item in a diagram is fixed and
the order of the item definitions is also fixed in the
*.diagram generated files. This may help to merge diagram
files !
- C++ Generator 1.1
C++ Generated code was wrong in case a referenced class is
nested in an other one or sometimes when it is defined
in an other namespace, fixed.
C++ Generated code for a friend to a template class was
wrong, fixed.
- Because the format of the BOUML files is changed,
the previous releases of BOUML cannot read a project
saved with this version. Obviously this release is
able to read the projects made by previous release of BOUML.
1.0
February, 26th 2005