  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.

  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 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 inner class ,
       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 left button or right button 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 left button and right button .
     * 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 'e' is generated unchanged rather than replaced by
       '&eacute;'
       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
     * First release
