  4.22.2

   July 14th 2010
     * When IDL was the alone selected language in the global menu
       languages and you added parameter(s) through the UML tab when
       editing an operation, random characters was inserted in the IDL
       declaration of the operation, fixed. (cf.)
     * In the previous releases the default definition of a class in Php
       wrongly contained the keywords ${visibility} producing an invalid
       form in case the visibility is not package. This keywords isn't any
       more present when you create a new project, nor managed by code
       generator and reverse. (cf.)
     * In the previous releases when you edited a relation the definition
       for the target languages was implicitly reinitialized to the
       default definition specified through the generation settings only
       when you changed the kind of the relation. Now this is the case
       each time the default definition associated to the new couple
       kind/multiplicity is not the same as the previous couple. (cf.)
       In the previous releases when you edited an attribute the
       definition for the target languages was never implicitly
       reinitialized. Now this is the case each time the default
       definition associated to the new multiplicity is not the same as
       the previous.
     * It is now possible to move a state machine into an other state
       machine or a sub state of an other state machine. If the moved
       state machine is stereotyped machine the stereotype becomes
       submachine. (cf.)
     * Php Generator 1.10.1
       The generalizations / realizations and dependencies wasn't taken
       into account to compute the needed required_once list, this is the
       case now (when they have a non empty definition in Php). (cf.)
       Remove management of ${visibility} at class level. (cf.)
     * Php Reverse 1.8.1
       Remove management of ${visibility} at class level. (cf.)
     * XMI2 Generator 1.14.1
       In the previous releases the BOUML project-package produced both a
       XMI model and a package, now an option allows you to not generate
       the model level. (cf.)

  4.22.1

   June 23th 2010
     * In release 4.22 the state activities wasn't written in the state
       diagrams, fixed. (cf.)

  4.22

   June 22th 2010
     * It was not possible to reload a project where the associated
       diagram of a component is a deployment diagram, fixed.
     * Each time you edited a dependency between a class and a package,
       import was again added in the proposed list of stereotypes, fixed.
       (cf.)
     * Add Php 5.3 namespace management. (cf.)
       Like for the other language the namespace is specified at package
       level.
       The generation of the namespace declaration in Php is done by an
       artifact containing ${namespace} in its Php definition, looking at
       the namespace may be specified in the package containing the
       deployment view containing the artifact (this is the case for the
       new projects, you have to add ${namespace} by yourself if you want
       this feature in your existing projects).
       By default the Php code generator try to not generate namespace
       prefixes, if you want to always generate them set the generation
       setting option force namespace prefix generation.
     * Add submachine state reference management. Only states without
       child except transitions and entry or exit pseudo states can be
       transformed into state reference or allow to change the referenced
       state by an other one. The referenced state is set/changed/removed
       by editing the (future) submachine state reference.
       To add a connection point reference to a submachine state reference
       add an entry or exit point then edit it to specify the reference.
     * Enter and Exit points can now be placed on the border of their
       state.
     * The profiles of the operations proposed in a list now contain the
       container classes of the referenced nested classes. Previously it
       was not possible to differentiate for instance the operations void
       C1::f(C2::C) and void C1::f(C3::C) because they was both written
       void C1::f(C). (cf.)
     * The shortcuts associated to the commands Edit and Menu are now
       active in diagrams. By default the shortcut to show the menu is the
       key return/enter, so if you select one element in a diagram and hit
       return/enter the menu associated to this element is shown, and if
       you select several elements in a diagram and hit return/enter the
       multiple selection menu is shown.
       Add the shortcut command Diagram menu to ask for the menu of a
       diagram inside a diagram, this command do the same as if you
       unselect all elements in the diagram by doing a left mouse click
       out of any element then doing a right mouse click out of any
       element.
       This changes are mainly dedicated to persons working with
       visioboard and having difficuties to do a double mouse click and to
       use the mouse right click (left click directly usable).
     * It was not allowed to have several activity actions or activity
       nodes or activity objects or activity partitions or class instances
       or expansion nodes or expansion regions or flows or interruptible
       activity regions or parameter sets or pins or pseudo states or
       state actions or state regions or transitions having the same non
       empty name in the same container, this limitation is removed. (cf.)
     * In the previous releases in C++ the visibility specifiers was
       indented with two spaces. Now you are able to set the expected
       indent through the generation settings. (cf.)
     * You can now save the content of the trace window in a HTML file.
     * Through the global menu miscellaneous you can now specify a root
       directory for the icons associated to the stereotypes or directly
       put in diagram. (cf.)
     * Previously the icon associated to the stereotypes was specified
       through an absolute path or had to be find through the current
       directory whose depend on the way Bouml is started.
       Now you are able to specify a path relative to the root directory
       for the icons or relative to the project directory. In case the
       path of an icon is not absolute, the icon are searched first using
       the root directory for the icons, then for compatibility reason
       using the current directory, then using the project directory.
       (cf.)
     * You can now put icons in diagram independently of the use of
       stereotypes. (cf.)
     * Php Generator 1.10
       To manage namespace.
     * Php Reverse 1.8
       Previous releases didn't expect to read Php block(s) before the
       block containing classes, fixed.
       To manage namespace, warning when a file define classes in several
       namespaces only the classes of the first namespace are reversed.
     * C++ Generator 2.18
       To produce the expected indent for the visibility specifiers.
       Follow the new API.
     * C++ Reverse 2.15
       C++ Roundtrip 1.3
       The comments placed before the definition of an attribute in a
       class was lost, fixed. Follow the new API.
     * XMI2 Generator 1.14
       Some activity flows was wrongly generated as object flow rather
       than control flow, fixed. (cf.)
       To manage the submachine state reference
     * XMI2 Import 1.9
       To manage the submachine state reference To manage virtual desktop
       (multiple screens configuration).
     * Java Generator 2.22
       Java Reverse 2.18
       Java Roundtrip 1.5
       Idl Generator 2.15
       Python Generator 1.5
       Roundtrip body 1.13
       Follow the new API.
     * Java Catalog 2.17
       To manage virtual desktop (multiple screens configuration). Follow
       the new API.
     * Project control 1.2.5
       Project synchro 1.2.4
       Uml projection 1.1.3
       .pro Generator 2.1.6
       C++ utilities 1.1.2
       Use case wizard 1.1.2 (C++ version)
       File Control 1.0.6
       Global change 1.2.1
       To manage virtual desktop (multiple screens configuration).
     * Html documentation Generator 2.20
       To produce a valid XHTML. (cf. and cf.)
       To manage submachine state reference.
     * Plug-out upgrade 1.18
       Add operations phpNamespace, set_PhpNamespace and findPhpNamespace
       on class UmlBasePackage.
       Add operations isForceNamespacePrefixGeneration and
       set_IsForceNamespacePrefixGeneration on class PhpSettings.
       Add operations visibilityIndent and set_VisibilityIndent on class
       CppSettings.
       Add operations reference and set_Reference on classes UmlBaseState,
       UmlBaseEntryPointPseudoState, and UmlBaseExitPointPseudoState.
     * Plug-out empty
       Upgraded by plug-out upgrade.
     * fr.lang updated.
     * 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.

  Php Generator 1.9 patch (Windows)

   June 10th 2010
     * Under Windows the Php generator terminated its execution when
       managing ${require_once} because of a missing compilation option.
       The Php generator compiled with the right options is available here
       (cf.)

  4.21

   May 12th 2010
     * In the previous releases only the operations whose name started by
       operator could contain non alphanumeric characters, this
       restriction is removed. (cf.)
     * require_once forms are now auto generated in Php when the Php
       definition of an artifact contains ${require_once} (this is the
       case for the new projects, you have to add it by yourself if you
       want this feature in your existing projects).
       The definition of an external class for Php is extended, if a
       second line is present this one is considered to contain the
       expected require_once form to produce.
       New generation settings to choose how the path of the required
       files are generated : without path, with absolute paths, with
       relative paths, with path relative to the root directory.
     * Add Reverse/roundtrip settings with a dedicated edition dialog to
       specify through a regular expression the files and/or directories
       whose must not be taken into account during a reverse and
       roundtrip, allowing for instance to not reverse test programs.
       (cf.)
     * When you edit an attribute or an operation of a parametrized class
       or nested in parametrized class(es) the name of the formal
       parameters are now inserted in the list of proposed types. (cf.)
     * When several elements of the same type are selected in a diagram
       the multiple selection menu allows you to use the drawing settings
       of the first selected element for the other selected elements. Have
       associated shortcut command Same drawing settings. (cf.)
     * Extension of the drawing setting show context (cf.) :
          + In diagrams the context of nested classes now contains the the
            container class when you ask for to indicate the namespace or
            java package or python package or module through the drawing
            setting show context or equivalent. Warning, this affects
            existing class diagrams
          + New drawing setting show context in members definition for
            classes in class diagrams. Only active when you also ask for
            to show the full members definition. To indicate or not the
            context of class(es) referenced in the declaration of an
            attribute or an operation like the context is indicated for
            the classes depending on show context or show classes and
            packages context.
          + In sequence diagrams add new drawing settings show classes
            context for class instances, and show context in messages for
            messages (only active when you also ask for to show the full
            operations definition).
          + In communication diagrams the drawing settings show packages
            context is renamed show classes and packages context and now
            also apply on class instances. To not change the already
            existing diagrams, when you open an old diagram this setting
            is set to no on the class intances.
            New drawing settings show context in messages for messages
            (only active when you also ask for to show the full operations
            definition).
          + In object diagram the drawing settings show packages context
            is renamed show classes and packages context and now also
            apply on class instances. To not change the already existing
            diagrams, when you open an old diagram this setting is set to
            no on the class intances.
     * Add a button Apply in the drawing settings dialog to apply the new
       settings without exiting the dialog. Warning, the already applyied
       settings are not canceled through the button cancel. (cf.)
     * The list of opened non modal dialogs is now given by the dynamic
       menu Windows after the list of opened diagrams. This allow you to
       raise one of them, or to close all of them with the diagrams
       through the menu entry close all.
     * Php Generator 1.9
       To automatically generate the require_once forms when the Php
       definition of an artifact contains ${require_once}.
     * C++ Reverse 2.14
       C++ Roundtrip 1.2
       Java Catalog 2.16
       Java Reverse 2.17
       Java Roundtrip 1.4
       Php Reverse 1.7
       To not reverse/roundtrip unexpected directories and/or files
       specified through regular expressions. (cf.)
     * C++ Generator 2.17
       Java Generator 2.21
       Idl Generator 2.14
       Roundtrip body 1.12
       Follow the new API.
     * Plug-out upgrade 1.17
       Add operations requireOnceWithPath, set_RequireOnceWithPath,
       isRelativePath, set_IsRelativePath, isRootRelativePath and
       set_IsRootRelativePath on class PhpSettings to acces to the new
       generation settings relative to the generation of the require_once
       in Php.
       Add operations reverseRoundtripDirRegExp,
       isReverseRoundtripDirRegExpCaseSensitive,
       set_ReverseRoundtripDirRegExp, reverseRoundtripFileRegExp,
       isReverseRoundtripFileRegExpCaseSensitive and
       set_ReverseRoundtripFileRegExp on classes CppSettings, JavaSettings
       and PhpSettings.
     * Plug-out empty
       Upgraded by plug-out upgrade.
     * fr.lang updated.
     * 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.

  4.20

   April 18th 2010
     * Remark : under Windows the png/svg exports of the diagrams don't
       work when they are done by a plug-out launched by -execnogui (they
       work with -exec)
     * Add constraint on activity and activity action. (cf.)
     * Java Generator 2.20.1
       Python Generator 1.4.1
       when a nested class reference was produced the container class(es)
       name was missing and only the nested class's name was generated,
       fixed.
     * State machine generator 1.4.2
       Add the operation doActivity() on the class representing the state
       machine, when you apply this operation the do activity of the
       current state is executed if it is not empty.
     * Html documentation Generator 2.19
       XMI2 Generator 1.13
       XMI2 Import 1.8
       To manage constraint on activities and activity actions.
     * Plug-out upgrade 1.16.1
       Previous release missed to change the call of UmlCom::bye in
       internal operation UmlBaseItem::read_(), fixed. (cf.)
       To manage constraint on activities and activity actions.
     * Plug-out empty
       Upgraded by plug-out upgrade.
     * 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.

  4.19.3

   April 11th 2010
     * Add the new keyword ${inverse_name} producing the name of the
       inverse role of a bi directional relation between classes.
     * When you apply a plug-out when Bouml is started with the option
       -exit, the return value of Bouml is the argument of the operation
       UmlCom::bye(). This value is 0 when you apply an old plug-out where
       bye doesn't have a parameter.
       The return value is -1 if the plug-out execution can't be done or
       if the plug-out doesn't connect to the modeler in less than 30
       seconds.
     * New option -execnogui, use it in place of -exec when you don't want
       to see the GUI when you apply a plug-out when Bouml is started.
       In this case the messages normally written in the trace window are
       produced on stdout.
       You have to kill the process Bouml by yourself if you use
       -execnogui without -exit. (cf.)
     * Python Generator 1.4
       Extends the auto generated import to the classes referenced by the
       attributes, associations and operations. Previously only the
       inherited classes and dependencies stereotyped import or from was
       taken into account. (cf.)
       Returns the number of errors through UmlCom::bye().
     * C++ Generator 2.16
       C++ Reverse 2.13
       C++ Roundtrip 1.1
       Java Generator 2.20
       Java Catalog 2.15
       Java Reverse 2.16
       Java Roundtrip 1.3
       Idl Generator 2.13
       Php Generator 1.8
       Php Reverse 1.6
       Roundtrip body 1.11
       Returns the number of errors through UmlCom::bye()
     * Plug-out upgrade 1.16
       To add a parameter of type int to UmlCom::bye, it will be managed
       as the return value of the plug-out, 0 means no error.
       You have to add by yourself an argument to the calls of UmlCom::bye
     * Plug-out empty
       Upgraded by plug-out upgrade.

  4.19.2 patch 1 (Windows)

   March 29th 2010
     * This release only exists for Windows.
     * Since release 4.19 a crash could occurred because of Microsoft
       Visual C++ compiler bug when a nested relation was drawn in a class
       diagram and changes was made concerning the drawn elements or the
       diagram itself (including the case where a new nested relation has
       to be drawn) , fixed.

  4.19.2

   March 28th 2010
     * A crash could occurred when you opened a component diagram
       referencing through a required or provided relation a class deleted
       in a previous session, fixed.
     * When you closed Bouml though a shortcut (control-w by default)
       while an additional window like an artifact source windows was
       still open, Bouml crashed (without true consequence because if
       needed the previously load project was already saved), fixed.
     * fr.lang de.lang es.lang updated.

  4.19.1

   March 14th 2010
     * Since release 4.17.1 a crash could occurred when you did some
       changes on a state present in an opened diagram but never visible
       because of the diagram dimensions and the position of the
       scrollbars, fixed.
     * C++ Roundtrip 1.0.4
       Java Roundtrip 1.2.3
       To not empty the stereotypes when this is possible. (cf.)
     * Java Generator 2.19.2
       To not duplicate imports both defined in artifact definition and
       through dependencies.

  4.19

   February 27th 2010
     * The message written to signal a message can't be added in a
       sequence diagram contained wrong characters, fixed. (cf.)
     * Add lost/found messages in sequence diagram.
     * Add interface icon using a simple circle, extends drawing mode with
       it for classes in a class diagram, instances in a sequence diagram
       and actors in a use case diagram.
       To not change the already existing diagrams, when you open an old
       diagram showing classes stereotyped interface or instances of
       classes stereotyped interface, their drawing mode is forced to
       class when it values natural (even indirectly).
     * In a sequence diagram, when an instance doesn't send nor receive
       message the menu of the instance proposes to hide/show the life
       line. To allow to draw a multiple instance with only one visible
       life line. (cf.)
     * XMI2 Generator 1.12.3
       To manage lost/found messages.
     * Plug-out API
       The operation from() returns null for a UmlBaseMessage
       corresponding to a found message.
       The operation to() returns null for a UmlBaseMessage corresponding
       to a lost message.
     * fr.lang updated.
     * 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.

  4.18.2

   February 13th 2010
     * The class instances wasn't colored when you asked to not draw the
       shadow in a sequence or communication diagrams, fixed. (cf.)
     * C++ Reverse 2.12.4
       To set the C++ source and header directory for the additional
       packages created during the reverse because all classes defined in
       a given directory are not defined in the same namespace or some are
       defined in a namespace and some others are defined out of a
       namespace, try to use path relative to root directory if it is
       defined in the generation settings.
     * C++ Roundtrip 1.0.3
       The roundtrip was perturbed by the use of namespaces and produced a
       wrong and inconsistent result, fixed.
       In the previous releases of C++ reverse/roundtrip the C++ directory
       of source and header files wasn't set for additional packages
       created to manage several namespaces (see remark concerning the
       reverse above), because of that the roundtrip may propose to delete
       classes defined under these packages. If you used previous releases
       of C++ reverse/roundtrip to reverse source codes using namespaces
       you need to check the packages having empty C++ source and header
       directory specifications to set them if needed.
       To discard \r when comparing two strings to update or not an
       element.
     * Java Roundtrip 1.2.2
       To discard \r when comparing two strings to update or not an
       element.
     * Uml projection 1.1.2
       Projection to C++ missed to set C++ header definition on already
       existing artifacts, fixed.

  4.18.1

   February 6th 2010
     * A crash could occurred when you did some changes on relations used
       by 'modeled' class instances (non pure graphical class instances)
       or reload a project defining 'modeled' class instances, fixed.
       (cf.)
     * In a class diagram when the drawing setting draw all relations was
       false the only way to show not yet drawn nesting relations was to
       set draw all relations to true, then to remove undesired shown
       relations. Now the menu of a nested class proposes to show the
       nesting relation when it is not yet drawn and the container class
       is present. (cf.)
     * XMI2 Import 1.7.2
       To replace newline by space in relations's name.
     * C++ Reverse 2.12.3
       C++ Roundtrip 1.0.2
       The name of the parameters of the operations must be the name
       specified in the definition when it is not empty, rather than the
       name given in the declaration (regression introduced when I added
       roundtrip).
       The instantiation of a template class inside the declaration or the
       definition of its operations was reversed as the class itself
       (without actuals), fixed.
     * fr.lang updated.

  4.18

   January 24th 2010
     * In the previous release changes done in an activity diagram may
       crashed the memory under Windows because of a bug in Microsoft
       Visual C++ compiler, this problem potentially also existed in other
       cases, bypassed. (cf.)
     * I was forbidden to add a flow from an action to an object whose is
       control was false, fixed.
     * When you added a shortcut the indications control/shift/alt was
       removed when you specified the key in case the current line was the
       last (generally the case), fixed. (cf.)
     * Add the new shortcut commands Open project, Print and Save as,
       default shortcuts are control o, control p and control shift s.
       Also add default shortcut control p printing the active shown
       diagram.
       Warning, the default shortcut to generate Php source is now control
       h rather than control p. (cf.)
     * XMI2 Generator 1.12.2
       Improvement to know if a flow is a control or an object flow.
     * C++ Generator 2.15.2
       C++ Reverse 2.12.2
       C++ Roundtrip 1.0.1
       Java Generator 2.19.1
       Idl Generator 2.12.1
       Python Generator 1.3.1
       Project control 1.2.4
       Project synchro 1.2.3
       XMI2 Import 1.7.1
       File Control 1.0.5
       Uml projection 1.1.1
       Modified to not be potentially affected by Microsoft Visual C++
       compiler bug.
     * fr.lang, de.lang and es.lang updated.
     * 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.

  4.17.1

   January 9th 2010
     * A crash may occurred when drawing a class instances non transparent
       and without drawing the shadows, fixed.
     * Under Windows the default language was wrongly set to Spanish in
       case you previously used a release older than the 1.15.1 and the
       environment variables LANG and LCID don't specify English or
       French, fixed.
     * Add related elements did nothing in a use case or deployment
       diagram, fixed.
     * When you manually resized an element in a diagram its self
       relations may be hidden depending on the position of the self
       relation and the used corner, fixed.
     * In a state diagram, when you added an element and it was
       automatically moved to be placed in its container, its self
       relations didn't follow it and their cut points was poorly placed,
       fixed.
     * When you add a container in a state or activity diagram and its
       possible container wasn't drawn but its sub elements was drawn, now
       the added container is automatically resized to contain its sub
       elements. To try to not poorly move already placed elements to
       force them to be inside the added container.

  es.lang

   January 3th 2010
     * Complete version of es.lang to use Bouml in Spanish, this version
       is newer than Bouml 4.17 and can be used with any releases since
       4.15.1 (useless before). Download es.lang and indicate where you
       place it through the "Miscellaneous / Edit environment" dialog.
       Many Thanks to Paulo Cesar Coronado.

  4.17

   January 1th 2010
     * A crash occurred when you load an inconsistent model where two
       operations share the same internal identifier, fixed. (cf.)
     * The optional parameters wasn't given to the init/check plug-outs
       associated to the stereotypes part of profiles, fixed.
     * The boxes representing the class instances was not produced in SVG
       when you didn't ask for to draw the shadows and they aren't
       transparent, fixed. (cf.)
     * Add the new shortcut commands Optimal scale, Optimal window size,
       Zoom +, Zoom - and Zoom 100% for diagrams.
       Also add control mouse wheel up/down management to increase /
       decrease the zoom.
     * In a diagram to move the mouse with the mid click pressed moves the
       viewport accordingly.
     * In a diagram add shift mouse wheel up/down management to scroll
       left/right (mouse wheel up/down already did scroll up/down).
     * Add the new shortcut commands Close and Quit to close the project
       or quit, default shortcuts are control w and control q.
     * When several resizable elements are selected in a diagram the
       multiple selection menu allows you to resize them to have the same
       width and/or height of the first selected element. Have associated
       shortcut commands (Same width, Same height and Same size)
     * It is now possible to have a class diagram under a use case or a
       use case view, this allows to define Iconix robustness diagram
       throw class diagram. (cf.)
     * XMI2 Generator 1.12.1
       The post condition of an activity actions was not exported, and the
       pre conditions wasn't exported when the post condition was empty,
       fixed. (cf.)
     * C++ Roundtrip 1.0
       New plug-out, please refer to the documentation.
     * C++ Reverse 2.12.1
       For compatibility with the roundtrip now the #file property is get
       from the project package rather than in the package where you start
       a reverse.
       To set the C++ source and header directory for the packages created
       during the reverse, try to use path relative to root directory if
       it is defined in the generation settings.
     * Java Roundtrip 1.2.1
       Fixe bugs.
       To set the Java directory for the packages created during the
       reverse even without associated Java package, try to use path
       relative to root directory if it is defined.
     * Java Reverse 2.15.1
       Java Catalog 2.14.1
       To set the Java directory for the packages created during the
       reverse even without associated Java package, try to use path
       relative to root directory if it is defined.
     * Plug-out upgrade 1.15.2
       To allow to create a class diagram under a use case or use case
       view
     * Plug-out empty
       Upgraded by plug-out upgrade.
     * es.lang added allowing to use the modeler in Spain, this work is in
       progress and some translations are still missing (in this case the
       English is used). Many thanks to Paulo Cesar Coronado for the
       translation. So you can currently choose between English, French
       German and Spain.
     * Recall : if you are volunteer to add the translation for a new
       language contract me. The work consists to translate more than 2000
       short sentences with a tool I developped for that (of course you
       don't have to change the sources of Bouml).
     * 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.

  4.16.4

   November 25th 2009
     * Facilitates the adding in a diagram of a incoming/outgoing line
       (transition, flow ...) to/from a small item already having lines.
       (cf.)
     * When you moved a decentered line having a geometry ( , , or ), the
       attached labels (name, stereotype ...) could be moved more than
       expected, fixed. (cf.)

  4.16.3

   November 18th 2009
     * Facilitates the selection in diagrams of small items having
       incoming and/or outgoing lines.
     * When you add an element in a state diagram and its state container
       is already drawn, force the added element to be inside its state
       container or region. When you add a state the already draw sub
       elements are moved to be inside the added state, but because the
       added state is small this poorly place them. (cf.)
     * You can now decenter lines (relations, transition ...) having a
       geometry ( , , or ), when you change the geometry the line is first
       recentered on both extremities. (cf.)
     * C++ Generator 2.15.1
       A space was missing between the two last > in an inheritance of a
       template class when the last actual is also a template class,
       fixed. (cf.)

  4.16.2

   November 8th 2009
     * Except few exceptions when you resized element like classes the
       edge didn't follow the cursor, fixed. (cf.)
     * It was difficult to select a line drawn between an element to an
       other element placed inside the first one (for instance between a
       state machine and a sub state drawn inside its state machine),
       fixed. (cf.)
     * In activity diagrams the stereotype of an action is now written,
       except for opaque actions when you ask for to show their definition
       through the drawing settings. (cf.)
     * You can now change the parent of a state, pseudo state and region
       through drag&drop in the browser while you stay inside the
       container state machine. (cf.)
     * de.lang added allowing to use the modeler in German, this work is
       in progress and some translations are still missing (in this case
       the English is used). Many thanks to Oliver Rudolph for the
       translation. So you can currently choose between English, French
       and German.
     * Recall : if you are volunteer to add the translation for a new
       language contact me. The work consists to translate more than 2000
       short sentences with a tool I developped for that (of course you
       don't have to change the sources of Bouml).

  4.16.1

   October 26th 2009
     * In all the previous releases an import project or import as library
       or import tools crashed the memory under Windows because of a bug
       in Microsoft Visual C++ compiler, bypassed. (cf.)
     * The tools dialog had wrong/random wording due to illegal memory
       accesses and some translation cases was missing, fixed.
     * fr.lang updated

  4.16

   October 25th 2009
     * The buttons show/edit body of the operation dialog had a
       wrong/random wording due to illegal memory accesses and some
       translation cases was missing, fixed.
     * In the previous release in a use case diagram a class was
       represented as an actor even its stereotype was part of a profile
       and has an associated icon. Now like for in a class diagram the
       icon associated to the stereotype is used when the drawing setting
       values natural. (cf.)
     * It is now possible to show/hide the visibility of the relations
       between classes depending on the value of the drawing settings show
       relation visibility. By default the visibility of the relations of
       not shown. (cf.)
     * Messages in a sequence diagram can now be stereotyped (by textual
       stereotype out of profile). Default message stereotypes can be set
       through the default stereotype dialog. (cf.)
     * It is now possible to ask for to draw a decomposition indicator
       icon in a state in a state diagram. By default the icon is not
       shown. The fact the icon is drawn or not is under your
       responsability, Bouml doesn't check if this is consistent or not.
       (cf.)
     * Plug-out upgrade 1.15.1
       To manage stereotype on messages in a sequence diagram.
     * XMI2 Generator 1.12
       To export stereotype of messages through an extension.
     * Plug-out empty
       Upgraded by plug-out upgrade.
     * fr.lang updated
     * 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.

  4.15.1

   October 21th 2009
     * Internationalization of the modeler's menus and dialogs using a
       translation files specified through the environment dialog. If you
       don't specify a translation file the English is used. Note : when
       you change the language some global menus are unchanged and
       description of buttons of already opened diagram too, to follow the
       new language for all exist then restart the modeler. Currently only
       the translation file fr.lang is available to use French because I
       only speak French and English
       If you are volunteer to add a new translation contact me and I will
       send you the small tool I made for that and how to do. I do not
       deny that it is quite laborious to translate more that 2000
       sentences, be sure you will have the courage to do that before
       contacting me ;-)

  4.15

   September 26th 2009
     * Allows to import a project as a library. A project imported as a
       library can't be modified in the importing project, but it can be
       updated to follow changes done in the imported project.
       In case the project imported as library contains others projects
       imported as library this ones are not considered like that, this
       means you can't update these sub projects separately but you have
       to ask for to update the container project you directly imported.
       To simplify management you can't update a project imported as
       library while the project is modified, this means you have to save
       first your project or to reload it to forget changes you don't
       want, and at the end of the update the project is saved, so you
       can't undo an update.
       This feature is dedicated to use projects defining librairies, not
       to work at several on the same project, for that see Project
       control and Project synchro
     * Project control 1.2.3
       To manage case of projects imported as library
     * 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.

  4.14

   September 12th 2009
     * When you deleted a package through a plug-out the container package
       was not marked modified and was not saved without an other reason
       marking it modified, and an error occurred when you reload the
       project, fixed.
     * Under Windows, after exiting from Bouml using the [X] button in the
       title bar (rather than through the menu), the main window is closed
       but it is possible to have the bouml.exe process still alive and
       looping indefinitely (problem not reproducted signaled by only one
       user), bypassed. (cf.)
     * In a class diagram it is now possible to resize the classes drawn
       with the standard representation (not using an icon)
     * New drawing setting hide get/set operations applying on 'official'
       get and set operations in class diagrams. By default get and set
       operations are shown.
     * New C++ generation setting inline force include in header, when it
       is set the types referenced in the profile of the inline operations
       produce includes in the header like this was obligatory the case
       with the previous releases, else the code generator doesn't take
       care if there are inline operations to compute dependencies. This
       setting values true by default for the already existing projects to
       not perturbate them, but false by default when you create a new
       project.
     * C++ Generator 2.15
       a space was missing between the two last > in the definition of a
       template class whose last formal has a default value being a
       template form (i.e. finishing by a >) and also in the instantiation
       of a template class where the last actual is a template form but
       doesn't correspond to the last formal (next formals having default
       value) (cf.)
       To manage new generation setting inline force include in header
       To avoid a crash on exit when bouml exits before.
       Follow the new API.
     * C++ Reverse 2.12
       Java Generator 2.19
       Java Reverse 2.15
       Java Roundtrip 1.2
       Java Catalog 2.14
       Php Generator 1.7
       Php Reverse 1.5
       Python Generator 1.3
       Idl Generator 2.12
       Roundtrip body 1.10
       To avoid a crash on exit when bouml exits before, mainly for java
       catalog because other plug-outs finish automatically.
       Follow the new API.
     * Plug-out upgrade 1.15
       To manage new generation setting inline force include in header
       To avoid a crash on exit when bouml exits before.
       Follow the new API.
     * XMI2 Generator 1.11.1
       To export transition's description and tagged values. (cf.)
     * Plug-out empty
       Upgraded by plug-out upgrade.
     * 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.

  4.13.1

   July 8th 2009
     * Improvement to diminuish the needed time to load a project, mainly
       in case of projects containing Php definition obtained by a reverse
       producing artifacts having a long Php definition
     * C++ Reverse 2.11.1
       Java Reverse 2.14.1
       Java Roundtrip 1.1.1
       Java Catalog 2.13.1
       Php Reverse 1.4.1
       speed improvement

  4.13

   July 3th 2009
     * Add active on activity, class and state
     * Add type specification of function's parameters and return values
       (pep-3107).
       When a return type is specified (it is not empty) the keyword
       ${type} produces the return type prefixed by ' -> '
       When the type of a parameter is specified (it is not empty) the
       corresponding ${<n>} produces the type prefixed by ': ' if the
       keyword is part of the parameter list definition (between ${(} and
       ${)})
       The code generator doesn't place the types between two string
       delimiters by itself, to produce a string with delimiters you have
       to enter these delimiters in the type definition at UML level.
       By default when you add a parameter the keyword ${<n>} is absent,
       it is added only if you set the new generation setting operation of
       Python 3 (pep-3107) (generation settings dialog Python[2]), and you
       have to change by yourself the default operation definition in the
       generation settings to add ${type} between ${)} and ':'
     * Plug-out upgrade 1.14
       Add operations isActive and set_isActive on UmlBaseActivity,
       UmlBaseClass and UmlBaseState.
       Add operations isPython_3_operation and set_IsPython_3_operation on
       PythonSettings
     * Python Generator 1.2
       To manage type specification of function's parameters and return
       values
     * C++ Generator 2.14
       C++ Reverse 2.11
       Java Generator 2.18
       Java Reverse 2.14
       Java Roundtrip 1.1
       Java Catalog 2.13
       Idl Generator 2.11
       Php Generator 1.6
       Php Reverse 1.4
       Roundtrip body 1.9
       Follow the new API.
     * Html documentation Generator 2.18
       To import/export isActive.
       To manage type specification of function's parameters and return
       values Fixe the generation of the description of the elements
       defined in Java and/or Php and/or Python
     * XMI2 Generator 1.11
       XMI2 Import 1.7
       To import/export isActive.
     * Plug-out empty
       Upgraded by plug-out upgrade.
     * 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.

  4.12.4

   June 11th 2009
     * Browser search allows now to search for elements depending on their
       stereotype.
     * The menu miscellaneous has the new toggle completion in dialog, it
       is set by default to be compatible to the behavior of the previous
       releases. When it is set and you enter a string in a list of
       choices (combo box) in a dialog, an auto completion/search is done,
       note this one is non case sensitive (Qt limitation). If you don't
       like this auto completion/search, unset the toggle.
     * Internal extension of the Plug-out API for Java Roundtrip.
     * C++ Generator 2.13
       A dependency stereotyped friend produced a wrong code in case the
       target class was a template, fixed.
       Follow the new API.
     * Plug-out upgrade 1.13
       A crash occurred when you upgraded an old plug-out without Python
       management, fixed. (cf.)
       Follow the new API.
     * Java Roundtrip 1.0
       New plug-out, please refer to the documentation.
     * C++ Reverse 2.10
       Java Generator 2.17
       Java Reverse 2.13
       Java Catalog 2.12
       Idl Generator 2.10
       Php Generator 1.5
       Php Reverse 1.3
       Python Generator 1.1
       Roundtrip body 1.8
       Follow the new API.
     * XMI Generator 1.4.6
       When a parameter of an operation doesn't have type the token
       UML:Parameter wasn't closed, fixed. (cf.)
     * XMI2 Generator 1.10.2
       The base type of a class stereotyped typedef is now produced in an
       extension form supposing you ask for them

  Import Interface

   May 5th 2009
   New user contribution, please refer to contributions

  4.12.3

   April 29th 2009
     * Since 4.12 because of change concerning the z-dimension of lines in
       diagrams it was difficult to select small elements connected to a
       line in diagram and to connect required '(' and provided 'O'
       representations in a component diagram, fixed. (cf.)
     * You can now close all the opened diagrams through the entry Close
       all added in the global menu Windows

  4.12.2

   April 18th 2009
     * When you duplicated a state Bouml could crash, fixed. (cf.)
     * When you deleted attribute or operation of a class through a
       plug-out the drawing of the class wasn't updated in already opened
       diagrams, (the deleted members was still visible), fixed.
     * Python Generator 1.0.9
       In the previous releases the first line of a docstring was
       indented, then the next lines was produced without adding the
       current indentation. Now all the lines of a docstring are indented
       to follow pep-0257.
     * Plug-out upgrade 1.12.11
       Add the operation importProject on UmlBasePackage, returns the
       UmlPackage corresponding to the imported project or 0/null in case
       of an error.
     * Plug-out empty
       Upgraded by plug-out upgrade.

  4.12.1

   March 28th 2009
     * When a class is associated to a relation (for instance in case of a
       class relation) and you deleted the class, the plug-out API
       operation UmlRelation::association() wrongly returned the deleted
       class, fixed.
     * In a diagram when two elements was link by a line (whatever it
       represented) and one the element contained the other one, the line
       was not drawn. This was mainly a problem in case of high-level
       transition from a composite state with a target inside the
       composite state. Fixed.
     * An auto scroll is now made if necessary when you move in a diagram
       the mouse with the center or right click down.
     * Python Generator 1.0.8
       When a class referenced an other one placed in the same python
       package, the python code generator wrongly produced <artifact
       name>.<class name> rather than <package name>.<artifact
       name>.<class name>, fixed.
       In the special case of the artifact is named __init__ this one is
       now not generated, this means <package name>.<class name> is
       produced
     * XMI2 Generator 1.10.1
       When you defined an association between a class and an actor an
       unexpected and inconsistent attribute was generated, fixed.

  4.12

   March 15th 2009
     * In a communication diagram, when you used the menu to change the
       geometry of a junction between two instances without supporting yet
       a message, Bouml crashed, fixed.
     * When you duplicate an activity Bouml may crash, fixed.
     * In an activity diagram, when an activity partition was in
       horizontal display mode, and you assigned any colour to it, then
       close the diagram and re-open it, you got an error message and a
       part of the diagram was lost, fixed.
     * In a state diagram it was possible to resize choices by selecting
       them with other elements and doing a rezise, same thing for
       decision and merge in an activity diagram, fixed.
     * The virtual desktop set through the environment dialog was not
       taken into account when you started Bouml, fixed.
     * Add new US diagram formats : Letter, Legal, Tabloid, Letter
       landscape, Legal landscape and Ledger.
     * Search and referenced by dialogs are now not modal, also add
       buttons to mark/unmark found elements.
     * It is now possible to add marked elements in class, use case,
       component and deployment diagrams though the diagram menu entry add
       marked elements.
     * It is now possible to ask for to add related elements in diagram
       for a class, use case, package, component, artifact and deployment
       node. A related element is an element having a relation with the
       current element whose can be shown in the current diagram and part
       of the browser.
     * 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.

  4.11

   February, 15th 2009
     * Add specification on activity and state, used to indicate an
       implemented operation. Add entries in menu of operation to create
       an implementing activity or state, or to access to them.
     * XMI2 Import 1.6
       Import specification on activity and state.
       The previous releases force the roles of the relation, regions and
       entry/exit pseudo states to not be anonymous, not done anymore.
     * XMI2 Generator 1.10
       Html documentation Generator 2.17
       Export specification on activity and state.
     * Plug-out upgrade 1.12.10
       Add the operations specification and set_Specification on
       UmlBaseActivity and UmlBaseState. Add the operation methods on
       UmlBaseOperation.
     * Plug-out empty
       Upgraded by plug-out upgrade.
     * 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.

  4.10

   February, 7th 2009
     * Add accept call, reply, create object, destroy object, test
       identify, raise exception and reduce activity actions.
     * For Python a default definition of __init__ is now specified
       through the generation settings, this one is used when a class
       inherits other class(es), the definition asks for mother class(es)
       initialization through the form super(classname, self).__init__()
     * In diagrams, now when you move a fragment the textes in collision
       follow it.
     * Python Generator 1.0.7
       when a class inherits other class(es) without defining __init__ its
       auto generated definition now contains super(classname,
       self).__init__()
     * Plug-out upgrade 1.12.9
       Bypass a bug on QVector assignment in Qt 2.3 (release used for
       Windows) by modifying UmlBaseComponent::set_AssociatedClasses(),
       UmlBaseArtifact::set_AssociatedClasses() and
       UmlBaseParameterSet::set_Pins()
       Add accept call, reply, create object, destroy object, test
       identify, raise exception and reduce activity actions management.
       To access/modify the new Python generation settings giving the
       default __init__ definition.
     * XMI2 Import 1.5
       XMI2 Generator 1.9
       Forms produced / expected for provided and required interface and
       for realizing classes was not the right ones, fixed. Warning, the
       import of the forms produced by the previous releases is not
       managed.
       Import / export of added activity actions.
     * Html documentation Generator 2.16
       Generate added activity actions
       Produce the initialization of the attributes, relations and
       operation's parameters at UML level.
     * Plug-out empty
       Upgraded by plug-out upgrade.
     * 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.

  4.9.3

   January, 25th 2009
     * To confirm the edition of a relation whose target was a read-only
       class and without properties on the first role produced an error
       message, the only solution was to cancel the edition, fixed.
     * Extends the referenced by command searching for elements in
       diagrams. To be find in a diagram an element must be directly
       represented, this means for instance an operation nor an attribute
       can't be find in a class diagram.
     * Add management of ${type} for Php in operation, attribute and
       relation dialogs, a priori used in comment for instance php-comment
       forms. Note ${t<n>} was already managed.
       To establish through the generation settings a default description
       for the class, operation, attribute and relation using @return,
       @var and @access forms helps you to generate php-comments. Of
       course it is also possible to write a plug-out modifying the
       description to use these forms including @param depending on the
       element definition.
     * Php Generator 1.4.6
       Add management of ${type} in operation generation (other cases
       already managed), a priori used in comment for instance php-comment
       forms.
     * Php Reverse 1.2.2
       Parse comments to search for @param, @return, @var and @access
       forms.
     * Java Generator 2.16.6
       In the previous releases, for an operation declared abstract of
       defined in an interface, when the '{' corresponding to the start of
       the body was reached a ';' was produced and the generation of the
       operation was done.
       Now a ';' is produced and the generation continues after the first
       '}' placed after ${body}.
     * Html documentation Generator 2.15.1
       The description of an operations or a class stopped when a '{' was
       reached, and the description of an attribute or a relations stopped
       when a ';' was reached, fixed.

  4.9.2

   January, 11th 2009
     * A crash may occurred when you changed the drawing setting depending
       on the changes made before, fixed.
     * The Plug-out operation UmlBaseClass::isPythonExternal() returned if
       the class was external for Php rather then for Python, fixed.
     * Add management of ${association} in Python for relations and
       getters/setters associated to a relation.
     * Fill in white the part containing the name/type of a combined
       fragment when its color is transparent and its name/type is not
       empty.
     * Python Generator 1.0.6
       To manage ${association}.

  4.9.1

   January, 5th 2009
     * In an activity, when you created an element through an activity
       diagram placing the element directly on a partition, this element
       was wrongly nested in the partition in the browser, and it was
       impossible to reload the project., fixed.
       When you load a project the elements wrongly nested in a partition
       are automatically extracted to come back to a consistent project.
     * Java Reverse 2.12.5
       Java Catalog 2.11.5
       The last character of a comment may not be placed in the
       description, fixed.
     * XMI2 Generator 1.8.1
       To export state entry, do behavior and exit.
     * XMI2 Import 1.4.1
       To import state entry, do behavior and exit.
       Some changes to import file produced by AndroMDA
     * State machine generator 1.4.1
       A C++ virtual destructor with an empty body is now defined on each
       class created by the generator.

  4.9

   December, 23th 2008
     * The modeler entered in an infinite loop when you tried to change
       the geometry of an extension (uni directional association from a
       stereotype-class to a meta class), fixed.
     * When a class was present in at least two of the provided required
       and realizing lists of a component and you deleted the class, saved
       the model then reload it, the model was inconsistent and a crash
       can occurred, fixed.
     * Operation's parameters using accentued characters in their name or
       type was wrong written in diagrams and some dialogs and menus,
       fixed.
     * Add activity partitions (swimlanes), please refer to the
       documentation.
     * In state and activity diagrams it is now possible to resize forks
       and joins.
     * Check a property (tagged value) is present only one time when you
       valid the edition of an element.
     * Now Add inhnerited operations doesn't propose getter and setter
       operations of mother classes.
       When you move an attribut or relation by drag&drop the associated
       getter and setter operations are now deleted (the marks allow to
       move an attribut or relation and its associated getter and setter
       operations).
     * Java Generator 2.16.5
       In the previous releases a dependency stereotyped import to a
       nested class produced an import form concerning the top container
       class. Now the import form concerns the nested class.
     * Java Reverse 2.12.4
       Java Catalog 2.11.4
       When the default definition of an element doesn't use
       ${description}, remove the first/last line in the comment when it
       is empty or only contains spaces or tabs
       The comments placed before the first package or import form in a
       reversed file are associated to the corresponding artifact.
     * Plug-out upgrade 1.12.8
       To fixe definition of operations set_AssociatedDiagram to take into
       account the case where you unassign the association (diagram is
       null)
       To add activity partitions
     * Html documentation Generator 2.15
       XMI2 Generator 1.8
       XMI2 Import 1.4
       To manage activity partitions.
     * Plug-out empty
       Upgraded by plug-out upgrade.
     * 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.
     * Note : Reference manual up to date

  4.8.4

   December, 7th 2008
     * To validate the edition of a relation whose first role is read only
       and without property (tagged value) produced a crash, fixed.
     * It is now possible to associate an icon to the stereotypes defined
       in a profile by specifying a picture file.
       In a diagram the image is used without modification when the scale
       is 100%, else it is resized. This image is used in the diagrams for
       classes when the drawing mode is natural, components when you ask
       for to use an icon, packages (context not written), state actions
       (behavior not written), activity object nodes, deployment nodes and
       artifacts. In this case the name of the element is written under
       the icon. These icons are not exported in SVG.
       The picture is also used in the browser when the element is not
       deleted, the image is resized to have its width and weight less or
       equal to 16.
       For a plug-out the picture path is attached to the property (tagged
       value) stereotypeIconPath of the class-stereotype.
     * It is possible to define a shortcut to do a browser search.
     * C++ Generator 2.12.9
       Java Generator 2.16.4
       Idl Generator 2.9.5
       Php Generator 1.4.5
       Change in the generated indents to take into account a class
       definition whose definition is indented (definition starts by
       spaces or tabs).
     * C++ Reverse 2.9.3
       To not produce a syntax error on a forward declaration of a struct,
       union or enum inside the definition of a class, struct or union.
       Like it was already made for a class, these forward declarations
       produce an extra member in the model.
     * XMI2 Generator 1.7.2
       XMI2 Import 1.3.2
       To manage stereotype icons.
     * Roundtrip body 1.7.2
       Indicate the line number where an invalid preserved block starts.
     * Rose project import 2.1.2
       Fixe a possible crash.

  4.8.3

   November, 16th 2008
     * Fixe problems concerning the duplication of getters and setters
     * C++ Generator 2.12.8
       Java Generator 2.16.3
       Idl Generator 2.9.4
       Php Generator 1.4.4
       Bypass a bug in the Qt operation QCString::remove whose can
       indirectly produces a crash
     * Global change 1.2
       To manage Python
     * Note : Reference manual up to date

  4.8.2

   November, 11th 2008
     * Html documentation Generator 2.14.2
       To also produce Python definitions.
       Under Windows, for the C++ version, an extra dot may be added at
       the end of the selected directory's name returned by
       QFileDialog::getExistingDirector() (problem detected by a user when
       the directory path starts by //), add a hack to manage that.
     * .pro Generator 2.1.5
       Add the hask concerning the extra dot like for the Html generator.
     * Deploy 1.1
       Add Python management.
       A class is deployed for a given language only when it is non
       external and has a non empty definition.
       Classes stereotyped stereotype or metaclass are not deployed.
       An associated artifact is created for a class only when it is
       deployed for at least one language.
     * Uml projection 1.1
       To manage Python
     * Plug-out upgrade 1.12.7
       To add operations to access / modify Python definitions.
       Note : you must define the C++ preprocessor variable WITHPYTHON
       when your plug-out is implemented in C++ and you defined WITHCPP
       WITHJAVA WITHPHP and WITHIDL.
     * Plug-out empty
       Upgraded by plug-out upgrade.

  4.8.1

   November, 3th 2008
     * To modify through a plug-out some generation settings can produce a
       crash, fixed. You also have to fixe your plug-outs with plug-out
       upgrade.
     * Add meta classes management. A meta class is a class stereotyped
       metaclass.
       The path of a meta class (by default
       http://schema.omg.org/spec/UML/2.0/uml.xml or
       http://schema.omg.org/spec/UML/2.1/uml.xml depending on the XMI
       generation) is memorized through the property (tagged value)
       metaclassPath.
     * Modify the way a stereotype extends a meta classe.
       In the previous releases you used the stereotype tab of the class
       editor, and the extending classes was memorized in the property
       (tagged value) stereotypeExtension.
       Now an extension is suported by an uni directional association from
       the stereotype (class stereotyped stereotype) to a meta class
       (class stereotyped metaclass). The explicit multiplicity 1
       indicates the extension is required.
       When you load a project the properties stereotypeExtension of the
       stereotype are converted to extensions, the needed meta classes are
       created.
       You have to modify your plug-outs to use the meta classes and
       extensions rather than the properties stereotypeExtension on the
       stereotypes.
     * Plug-out upgrade 1.12.6
       To fixe some setter operations on UmlSettings, CppSettings,
       JavaSettings, IdlSettings and PhpSettings.
     * XMI2 Generator 1.7.1
       XMI2 Import 1.3.1
       Html documentation Generator 2.14.1
       To manage meta classes and extension.
     * Deploy 1.0.1
       To not deploy classes stereotyped stereotype nor metaclass. Of
       course to apply it on a class view part of a profile seems strange.
     * Uml projection 1.0.2
       To not project classes stereotyped stereotype nor metaclass nor
       placed under a package stereotyped profile.
     * Plug-out empty
       Upgraded by plug-out upgrade.

  4.8 patch 1

   October, 26th 2008
     * Since the release 4.6 a crash occurred when only one language is
       selected and you modified the parameters list of an operation
       defined for an actor placed in a use case or a use case view,
       fixed.
     * To manage the special form used to initialize an enum item in Java
       (value given in parameter rather than throw an assignment).
     * On attribute and relation add the property modifiers derived, union
       (only active when derived is set), ordered and unique.
     * New drawing settings show attribute modifiers and show relation
       modifiers to how / hide property modifiers in class diagrams. By
       default property modifiers are not shown.
     * Java Generator 2.16.2 patch 1
       To manage the special form used to initialize an enum item (already
       managed by Java Reverse and Java Catalog).
     * Python Generator 1.0.5
       In the previous release the code generation was done for Python 2.2
       (explicit object inheritance) depending on the 2.2 flag at the
       generation setting level rather than at the classes level, fixed.
       In an operation definition ${class} produces the name of the class
       containing the operation.
     * Plug-out upgrade 1.12.5
       To add the operations isDerived(), isDerivedUnion(), isOrdered(),
       isUnique() set_isDerived() (set both if the property is derived and
       if yes if it is derived union), set_isOrdered() and set_isUnique.
       on UmlBaseAttribute and UmlBaseRelation
     * Html documentation Generator 2.14
       Export new property modifiers.
       Upgraded by plug-out upgrade.
     * XMI2 Generator 1.7
       XMI2 Import 1.3
       To manage new property modifiers.
       To manage stereotypes extending several meta classes.
       Upgraded by plug-out upgrade.
     * Plug-out empty
       Upgraded by plug-out upgrade.
     * 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.

  4.7

   October, 10th 2008
     * The default screen set through the environment dialog is not taken
       account account when it is invalid (for instance when the left
       coordinate is greater than the right coordinate). Bouml now warns
       you in this case, and the environment dialog now doesn't allow
       wrong values.
     * A state region can now contain states (including initial and
       final), pseudo states and state actions.
     * Import generation settings now also import C++ include, Java
       import, Python import and Idl include definitions
     * Plug-out upgrade 1.12.4
       Modify the type of the first parameter of the operation
       UmlBaseStateAction::create() to UmlItem.
     * Plug-out empty
       Upgraded by plug-out upgrade.
     * 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.

  4.6.1

   September, 24th 2008
     * Fixe a bug in the API with plug-outs occuring when you ask for a
       sequence diagram definition where an interaction use cover several
       life lines.
       Because of this bug the XMI2 generator can crash in when used with
       the previous release of the modeler.

  4.6

   September, 22th 2008
     * Under Windows, when the user configuration is wrong and designates
       a non writable home directory contrarilly to the directory given
       the environment variable USERPROFILE, the environment dialog is
       show each time you start the modeler, fixed.
     * When only one target language is selected and you edit an
       operation, a modification of a parameter impacting the default
       definition of the operation was only done when you finish the cell
       edition by clicking in an other cell of the parameters table. Now
       this is also done when you go in an other tab or validate the
       operation edition (to click on an other cell isn't necessary).
     * A fragment can now reference a diagram, mainly to define
       interaction use in sequence diagram. Arguments and return value can
       also be specified through a string (you have to give the full form
       containing parenthesis and ':' if expected).
     * XMI2 Generator 1.6
       Export interaction uses, instance destructions, and continuations.
       Upgraded by plug-out upgrade.
     * .pro Generator 2.1.4
       Add WITHPHP and WITHPYTHON if at least two WITH* are defined. Note
       : compatible with old plug-outs without Php nor Python.
     * Plug-out upgrade 1.12.3
       On JavaSettings add operations isForcePackagePrefixGeneration and
       set_IsForcePackagePrefixGeneration.
       On CppSetting add operations builtinIn, builtinOut, builtinInOut
       and builtinReturn taking a string in argument, if the argument is a
       type defined in the first tab of the 'generation setting' dialog
       the returned value is the parameter definition depending on the
       direction, else a empty string/null. Also add setter operations
       set_BuiltinIn, set_BuiltinOut, set_BuiltinInOut and
       set_BuiltinReturn taken in argument the type and the new parameter
       definition, add the type if it is not yet defined through the first
       tab of the 'generation setting' dialog. On UmlBaseFragment add
       operations refer returning the diagram referenced by the fragment
       or null, arguments, covered returning the list of covered instances
       (life lines).
       On UmlBaseFragmentCompartment add operations startContinuation and
       endContinuation.
       Add two pseudo message kinds in aMessageKind : aDestruction and
       anInteractionUse. The pseudo message corresponding to an
       interaction use is produced in the corresponding fragment and for
       only one of the covered instances. In these two new cases the
       operation to() returns as from()
       Note : even the python management is not done in plug-outs, you
       must define WITHPYTHON when your plug-out is implemented in C++ and
       you defined WITHCPP WITHJAVA WITHPHP and WITHIDL.
     * Plug-out empty
       Upgraded by plug-out upgrade.
     * 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.

  4.5.1

   September, 8th 2008
     * Some files like .boumlrc are created into your home directory,
       unfortunatelly under Windows some users have a wrong configuration
       (for instance the value of the environment variable HOMEPATH is
       empty) and the home directory is not writable. In this case the
       value of the environment variable USERPROFILE is used to specify
       the home directory.
     * In the previous releases, to hide all the attributs/operations of a
       class in a class diagram through individual attribute/operation
       visibility and setting specify visible member rather than hidden
       ones didn't have effect, fixed.
     * Fixing in the operation dialog similar to the one made in the Java
       generator, see below
     * When only one target language is selected, when you modify the
       operation parameters through the associated dialog, the definition
       for the target language is now also updated (in the previous
       versions you had to add/remove/modify parameters by hand in the tab
       associated to the target language). However I encourage you to
       continue to check the definition for the target language after
       modifying the parameters (mainly for C++ where modifiers are
       produced depending on the parameter types and directions).
       If you don't like this feature, just set another language through
       the menu Languages.
     * Java Generator 2.16.1
       In the previous releases, when the description or the definition of
       an operation defined in an interface or an @interface contains a
       '{', this character was replaced by a ';' and the code generation
       of the operation was stopped even when this '{' didn't correspond
       to the beginning of the body. Now this management is done only for
       the first '{' placed after ${)}.
     * XMI2 Generator 1.5.9
       Fixings concerning sequence and communication diagram export
     * Global change 1.1.1
       A tab can be specified (out of stereotype) through \t like a return
       is specified through a \n.
     * Project synchro 1.2.2
       Project control 1.2.2
       Java Reverse 2.12.3
       Java Catalog 2.11.3
       To use USERPROFILE when the user configuration specify an invalid
       home directory under Windows.

  4.5

   August, 26th 2008
     * Previous releases may crashs when you load a project containing a
       modeled class instance (part of the browser) having a relation
       valuing a deleted modeled class instance (deletion was made in a
       previous session) , fixed.
     * Add Java generation setting force package prefix generation. This
       setting is set by default for compatibility with previous releases.
     * Java Generator 2.16
       In the previous releases the name of a referenced class was
       prefixed by its package when it is not part of the current package
       even if you asked for import generation through dependencies
       stereotyped import.
       Now a referenced class is not prefixed by its package when the
       class or its package is imported and force package prefix
       generation is not set.
     * 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.

  4.4.3

   August, 16th 2008
     * Previous releases may crashs when you load a project containing
       modeled class instances (part of the browser) specifying value for
       relation(s) , fixed.
     * Add keywords ${v<n>} to generate operation parameter default value
       in Python like for C++ and Php.
     * Modify management of asynchronous call in sequence diagrams using
       overlapping activity bars : an activity bars is now created on the
       receiver side like for synchronous calls.
     * Sometimes the width of some duration bars in sequence diagrams
       became too fine, fixed.
     * Python Generator 1.0.4
       To manage keywords ${v<n>}
     * XMI2 Generator 1.5.8
       To generate communication diagrams (not managed by XMI import).
       To generate sequence diagrams (not managed by XMI import). The
       result is unspecified in case of non consistent diagrams or
       diagrams not using overlapping activity bars or when an
       asynchronous call doesn't create a new overlapping activity bars on
       the receiver side.
       Bug fixed by Plug-out upgrade.
     * Html documentation Generator 2.13.5
       Spelling (attribute)
     * Plug-out upgrade 1.12.2
       In C++ the operation UmlBaseFragment::container() of the plug-outs
       may return a non initialized value, fixe this problem.
     * Plug-out empty
       Bug fixed by plug-out upgrade.

  4.4.2

   July, 14th 2008
     * Improve performances of the modeler to diminuish execution time of
       deletions.
     * XMI2 Generator 1.5.7
       To generate import and extend forms rather than dependencies
       between use cases if needed (already managed by XMI import).
       To generate extension points.
       To generate associations between use cases and actors extracted
       from use case diagrams (not managed by XMI import).
     * XMI2 Import 1.2.11
       To import extension points.

  4.4.1

   June, 29th 2008
     * Add keywords ${v<n>} to generate operation parameter default value
       in C++ and Php.
     * Improve performances of the modeler to diminuish execution time of
       some operations.
     * C++ Generator 2.12.7
       C++ Reverse 2.9.2
       Php Generator 1.4.3
       Php Reverse 1.2.1
       Uml projection 1.0.1
       Html documentation Generator 2.13.4
       To manage keywords ${v<n>}
     * Use case wizard 1.1.1 (C++ version)
       Get character set from file .boumlrc rather than from environment
       variable BOUML_CHARSET.

  4.4

   June, 10th 2008
     * To manage case of users strangly killing Bouml execution the first
       time it asks for environment definition. Yes, some users did that
       ... sigh.
     * New drawing setting named Show stereotype properties allowing to
       show or not the tagged values associated to a stereotype. By
       default they are not shown.
       The values are shown in a note attached to the stereotyped element,
       except for the attributes and operations of classes in a class
       diagram whose are shown inside the class itself.
     * new macro ${nAME} producing artifact's name converted to lower
       case.
     * Php Generator 1.4.2
       Python Generator 1.0.3
       Idl Generator 2.9.3
       To manage ${nAME}
     * Java Generator 2.15.2
       To manage ${nAME}.
       Now the dependencies stereotyped import also apply on the classes
       declared external.
     * C++ Generator 2.12.6
       To manage ${nAME}.
       To not generate extra ',' when actual(s) are missing for
       parameterized class binding (formal(s) have default value)
     * Java Reverse 2.12.2
       Java Catalog 2.11.2
       In the previous releases a form T<...X...> produces a relation to
       the generic T when it is part of the reverse classes or known
       through a catalog. Now the form produces a relation to X if X is a
       known class and T is defined through the generation setting as the
       translation in Java of a relation/attribute stereotype (this is the
       case by default for List for instance)
     * Roundtrip body 1.7.1
       Explain why the body of an operation can't be updated.
     * 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.

  4.3.5

   May, 26th 2008
     * The class diagram menu entry Add classes of the selected class view
       now also add the nested classes.
     * Unselect elements in diagram before a copy into the clipboard.
     * C++ Generator 2.12.5
       fixe bug concerning classes declared external.

  4.3.4

   May, 18th 2008
     * Bugs fixing concerning the attribute in class-stereotype.
     * The files .bouml .boumlrc and .bouml_shortcut can't be read when
       the pathname of your homedir contains non latin1 characters, for
       instance under Linux when your login name use Cyrillic characters.
       Fixed.
     * When a class instance is drawn in a diagram, : is now written even
       if the instance is anonymous.
       In an object diagram the instance name and class are now
       underlined.
     * Java Reverse 2.12.1
       Java Catalog 2.11.1
       Project synchro 1.2.1
       Project control 1.2.1
       To manage homedir containing non latin1 characters.

  4.3.3

   May, 9th 2008
     * To set the default screen through the environment dialog in case of
       a multiple screens usage wasn't effect, fixed
     * Fixe problem in the help dialog.
     * When a class stereotyped typedef is read-only and you edit it, the
       base type is empty in the tab UML and the code preview in C++ tab
       doesn't show the base type too. Fixed
     * The forms @{...} are now substituted in the code generated for the
       generalizations/realizations.
     * Python Generator 1.0.2
       Fixe a bug in the computation of the dependencies to generate the
       import forms.
       To substitute forms @{...} in the code generated for the
       generalizations/realizations.
     * C++ Generator 2.12.4
       Java Generator 2.15.1
       Php Generator 1.4.1
       Idl Generator 2.9.2
       To substitute forms @{...} in the code generated for the
       generalizations/realizations.

  4.3.2

   May, 5th 2008
     * Modify the attribution of the socket port number used to exchange
       data between the modeler and the plug-outs. The goal is to solve
       problems with firewall sometimes blocking the plug-outs.
     * In the previous releases some information was get from environment
       variables, for instance BOUML_ID. Now these informations are
       memorized in the file .boumlrc placed into the home directory, and
       set through a dedicated dialog called through the entry Set
       environment in the menu Miscellaneous.
       This dialog is automatically called in case .boumlrc doesn't exist,
       and of course the values set through the defined environment
       variables are proposed.
       The shortcuts are now saved in the file .bouml_shortcuts
     * The chapter of the reference manual corresponding to the type of
       the element selected in the browser is now shown by using the F1
       key or the help menu (About dialog is now associated to the F2
       key).
       The chapter starting is used if no project is load, if nothing is
       selected in the browser the chapter browser items is used.
       The directory where the documentation is placed can be specified by
       setting the environment (see above), you can also indicate which
       navigator will be used to show the HTML pages.
       Two setups are now distributed for Windows, one of them install the
       documentation.
     * When you add an inherited operation the new operation is set not
       abtract. If it is not empty the Php definition is now forced to
       contain ${body}, to help in case the inherited operation is
       abstract.
     * In the diagrams add go up/down to change a little the level of an
       element contrarilly to upper and lower.
       Of course you can define shortcuts to these new commands.
     * XMI2 Import 1.2.10
       Little improvements.
     * Project synchro 1.2
       Project control 1.2
       To not use environment variables. You must use the new release of
       the modeler to create the file .boumlrc before using these tools.

  4.3.1

   April, 27th 2008
     * When a plug-out is launch from an other one the trace is not
       cleared. It is also not cleared before the executions of the
       check/init plug-out associated to the stereotype.
     * When an element stop to be stereotyped by a stereotype part of a
       profile, the properties associated to the stereotype are now
       removed.
     * XMI2 Generator 1.5.6
       To generate profile imports associated to dependencies stereotyped
       import between profiles.
       Upgraded by Plug-out upgrade.
     * XMI2 Import 1.2.9
       To manage import of profiles defined in another XMI file.
       Other little improvements.
       Upgraded by Plug-out upgrade.
     * C++ Generator 2.12.3
       Except if you explicitly ask for, the code generator tries to
       produce declarations in the header files and includes in the source
       files. Unfortunatelly this was also true for the template classes,
       fixed.
     * Plug-out upgrade 1.12.1
       Fixe operation isToolRunning defined on UmlBaseItem.
     * Plug-out empty
       Upgraded by plug-out upgrade.

  4.3

   April, 20th 2008
     * When a diagram is read-only it is now possible to do some
       operations like to save it in a picture.
     * In the previous releases the header file of a C++ class declared
       external in C++ was always included in the header file of the other
       classes whatever it is used (by reference or pointer, or by value).
       Now it is included in the source file if you explicitly ask for
       through a dependency, whatever it is used. Note this is the reverse
       for the classes non declared external.
       To not modify the behavior of the already existing dependencies to
       classes declared external, their definition is forced to #include
       in header.
     * XMI2 Generator 1.5.5
       To produce constraints
     * XMI2 Import 1.2.8
       To import constraints
     * C++ Generator 2.12.2
       To manage new behavior of dependencies to classes declared
       external.
     * Plug-out upgrade 1.12
       In the class UmlBasePackage the operation findNamespace is renamed
       findCppNamespace, the operation findPackage is renamed
       findJavaPackage and the operation findModule is renamed
       findIdlModule, If you call these operations you have to modify your
       code to use the new names.
       In the class UmlBaseOperation add the operations
       cppContextualBodyIndent, set_CppContextualBodyIndent,
       javaContextualBodyIndent, set_JavaContextualBodyIndent,
       phpContextualBodyIndent and set_PhpContextualBodyIndent.
       In the class PhpSettings add the static operations
       isGenerateJavadocStyleComment and
       set_IsGenerateJavadocStyleComment.
       In the class UmlBaseClass add the static operation findStereotype.
       In the class UmlBasePackage add the static operation
       updateProfiles.
       In the class UmlBaseItem add the operation applyStereotype.
       In the class UmlBaseFragmentCompartment modify the C++ definition
       texts() to bypass Microsoft Visual C++ limitation.
     * Plug-out empty
       Upgraded by plug-out upgrade.
     * 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.

  4.2.1

   April, 5th 2008
     * In the previous release the python body of an operation was set
       when a plug-out asked for to set the Php body. Of course this was
       also the case for php reverse and roundtrip body. Fixed.
     * In all the previous releases, when Bouml was compiled with a Qt3,
       when you opened a dialog from an other one, the first dialog was
       lowered, bypassed.
     * Add profile management, refer to the documentation.
       The profile imports from an other one are not yet managed.
       Warning : only the properties associated to the profile can have a
       name containing two ':', the others will be removed.
     * When you import a project into an other one, the plug-outs,
       attribute and relation stereotype correspondences and the class
       stereotype correspondences between the languages are now also added
       when they don't yet exist.
     * In the shortcut definition the key Suppr is renamed Delete. In the
       previous releases some shortcut definitions may be lost when you
       reload a project, fixed.
     * Modify the header added (then remove) when you set add operation
       profile on body edition through the menu languages to help external
       editor (BOUML_EDITOR) to compute the indent.
     * Idl Generator 2.9.1
       To prefix the class names by their module if necessary.
       To not produce the ',' after the name of the last enumeration item
     * Python Generator 1.0.1
       Artifact's name was missing in some cases in the code generated to
       reference classes, fixed.
       Auto generation of import forms based on generalization, this means
       a generalization is also implicitly a dependency stereotyped
       import.
     * XMI2 Import 1.2.7
       In the previous releases nested components was imported out of the
       container component, fixed.
       To import profiles and stereotypes.
       To import manifestations.
       To manage files produced by Eclipse (aggregate definition on other
       relation side)
     * XMI2 Generator 1.5.4
       To produce profiles and stereotypes.
       To produce the associations between artifacts and other artifact or
       classes through manifestations.
       To optionaly generate relation as Eclipse (aggregate definition on
       other relation side)
       To allow to place <xmi:Documentation exporter="Bouml" ...> in
       comment else some tools refuse to import produced XMI or have
       problem after the import(for instance Rational Software Architech)
     * Html documentation Generator 2.13.3
       To produce Profile/Stereotype rather than Package/Class if needed.

  4.2

   February, 17th 2008
     * Since the 4.0 it was not possible to modify the Php definition of
       an operation through a Plug-out without blocking it (including the
       Php reverse), fixed.
     * New drawing setting named show attribute initialization allowing to
       write attribute initialization in a class picture in a class
       diagram. This setting have sense only when you also ask for to show
       the full members definition. By default this setting is set to
       false.
     * Default operation parameter direction is now in rather than inout.
     * XMI2 Import 1.2.6
       Improve management of primitive types.
     * C++ Reverse 2.9.1
       To read anonymous namespaces (however they are not reported in the
       model).
     * Uml projection 1.0
       New plug-out setting the definitions/declarations with their
       default value according to the generation settings. Create also the
       necessary deployment views and artifacts.
       Typically used after an XMI import to project the imported model in
       the desired language.
       Refer to the documentation.
     * 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.

  4.1

   February, 3th 2008
     * When several artifacts have the same name and you edit a class, the
       shown artifact may not the right one, and if you change it the
       class may not be associated to the desired one, fixed.
     * New drawing setting named show members multiplicity allowing to
       write attribute multiplicity in a class picture in a class diagram.
       This setting have sense only when you also ask for to show the full
       members definition and when the drawing language is UML. By default
       this setting is set to false.
     * New drawing setting named max members width allowing to limit
       attribute and operation width to a given number of characters. When
       the number of characters needed by an attribute or an operation is
       greater than max members width, the string is cut to max members
       width characters and "..." is added. Note : the optionally written
       visibility and stereotype are not taken into in the member width.
     * XMI2 Import 1.2.5
       Spaces are replaced by '_' in the name of an imported class,
       attribute or relation.
       Fixe bug on operation parameter multiplicity reading.
     * 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.

  4.0

   January, 27th 2008
     * In the previous releases the position of the use cases in a use
       case diagram may not be the right one when you re-open the diagram
       and the zoom is not 100%, or when you change the zoom later, fixed.
     * It was possible to move in the browser an element by drag&drop into
       a read-only one, fixed.
     * Add management of Python
       Currently the scope of Python is not as large as it is for C++ and
       Java, for instance there is no Python definitions in the state
       machine and activities because this seems useless.
     * In the previous releases a class was always drawn as an actor in a
       use case diagram, now this is just the default and a class can be
       drawn as a class (without members), or using boundary, control or
       entity icon.
       The name of use case is not anymore a separated label and the size
       of an actor now depend on its name, so, the position of the
       incoming and outgoing arrows and the position of the name will be
       impacted.
     * Python Generator 1.0
       New plug-out generating code for Python.
       Refer to the documentation.
     * Roundtrip body 1.7
       To roundtrip Php bodies.
       Follow the new API.
     * C++ Generator 2.12
       C++ Reverse 2.9
       Java Generator 2.15
       Java Reverse 2.12
       Java Catalog 2.11
       Php Generator 1.4
       Php Reverse 1.2
       Idl Generator 2.9
       Plug-out upgrade 1.11
       Follow the new API.
     * Plug-out upgrade and other Plug-outs will be upgraded later to
       manage Python.
       A reverse for Python will be available later.
     * Because the format of the BOUML files is changed, the previous
       releases of BOUML cannot read a project saved with this version.
       Obviously this release is able to read the projects made by
       previous releases of BOUML.

  3.5

   January, 14th 2008
     * When Qt is compiled with g++ option -fno-exception BOUML may crash
       on exit after an error, or after the execution of a plug-out in
       batch mode when the option -exit is given. Bypassed.
     * Extra comment was produced in getter and setter when the associated
       attribute or relation definition contents a comment (this means
       comment marks are directly placed in the definition), fixed.
     * In the previous releases ${value} doesn't produce the '=' in an
       attribute or relation initialisation. The '=' is now produced
       except if :
          + the value starts by '=' (may be after spaces)
          + a '=' is placed before ${value} (may be with spaces between
            them)
          + in C++ if the value starts by '=' (may be after spaces) to
            take into account a call of a constructor
     * New generation setting allowing to produce javadoc style comments
       in Php.
     * Php Generator 1.3
       To produce javadoc style comments.
     * C++ Generator 2.11.2
       Java Generator 2.14.2
       Idl Generator 2.8.3
       To follow the new behevior of ${value}
     * Java Reverse 2.11.1
       Java Catalog 2.10.3
       In the previous releases the default visibility for the members of
       an interface was package like for the 'standard' classes rather
       than public, fixed.
     * C++ Reverse 2.8.1
       In previous releases a typedef used a realization rather than a
       dependency to reference a base class, fixed.
       To accept an extra comma after the last item of an enum.
     * Because the format of the BOUML files is changed, the previous
       releases of BOUML cannot read a project saved with this version.
       Obviously this release is able to read the projects made by
       previous releases of BOUML.

  3.4.1

   December, 31th 2007
     * Default getter and setter definition was wrong in Java and C++ when
       the associated attribute/relation produces an array (because of its
       multiplicity), fixed.
       Furthermore in this case the setter definition in C++ stops to use
       a memcpy, and now copy the elements one by one.
     * In the relation dialog the new button association allows to create
       a new class and set the value with it, or in case the value is a
       class to select it in the browser (like for the button type in the
       attribute dialog).
     * C++ Generator 2.11.1
       Java Generator 2.14.1
       Php Generator 1.2.1
       Idl Generator 2.8.2
       When a class or an artifact have an empty definition the message
       contained the name of the element without its kind, this was
       disturbing in case the class and the artifact have the same name.
       Now the message indicates if the problem concerns the class or the
       artifact.

  3.4

   December, 16th 2007
     * Previous releases crash when you start to draw an association part
       of the model (not an anchor for instance) in a diagram and you use
       one of the buttons allowing to change the zoom, fixed.
     * It is now possible to ask for to not add the indent dependent on
       the context when the body of an operation is produced. This feature
       is mainly added to simplify the work of the reverses and to
       preserve the original indent of the reversed operations.
       By default the indent depend on the context, this means for
       instance depend on the indent of its class.
     * C++ Reverse 2.8
       Java Reverse 2.11
       Php Reverse 1.1
       Roundtrip body 1.6
       To ask for to not add the indent dependent on the context when the
       body of an operation is produced.
     * C++ Generator 2.11
       Java Generator 2.14
       Php Generator 1.2
       To manage body indent not dependent on the context.
     * Remark : Bouml is now also available on source forge
     * Because the format of the BOUML files is changed, the previous
       releases of BOUML cannot read a project saved with this version.
       Obviously this release is able to read the projects made by
       previous releases of BOUML.

  3.3.5

   December, 10th 2007
     * The stereotype of an attribute was not copied to its getter and
       setter, fixed.
     * Now when you create a new project the generation settings in Java
       use generics, for that by default :
          + the UML stereotypes list, set and map produce List, Set and
            Map in Java,
          + the attributes and relation definition in Java contains
            ${stereotype}<${type}> when the multiplicity is * or a form
            a..b whatever a and b are.
     * C++ Reverse 2.7.2
       Previous releases may crash reaching a premature end of file,
       fixed.
       Fixing in the reverse of an operation having at least one parameter
       being a pointer to an operation having itself one parameter being
       an array.
     * Java Reverse 2.10.2
       Java Catalog 2.10.2
       Previous releases may crash reaching a premature end of file,
       fixed.
     * C++ Generator 2.10.1
       Java Generator 2.13.1
       Php Generator 1.1.1
       Idl Generator 2.8.1
       An extra line break was generated at the end of a non null comment
       when the form ${comment} or ${description} is placed at the end of
       the declaration/definition, fixed.

  3.3.4

   November, 21th 2007
     * Previous releases crash on undo when the diagram contains a
       constraint, fixed.
     * A plug-out can now access to semantic informations not present in
       the model out of the drawing in use case, collaboration and
       sequence diagrams.
          + use case diagram : access to
               o the uses cases, actors, subjects and fragments present in
                 the diagram,
               o the association between actor and uses case indicating if
                 the actor is a primary or secondary actor in the
                 association,
               o the subject and fragment compartment where the uses cases
                 is drawn if this is the case
            Note that other data like inheritance between use cases are
            part of the model.
          + collaboration diagram : access to
               o the class instances present in the diagram,
               o the messages between instances, ordered on the rank
          + sequence diagram : access to
               o the class instances and fragments present in the diagram,
               o the messages between instances ordered on the sending
                 time (vertical position in the diagram),
               o the fragment compartment where a message is sent,
               o the fragment compartment where the fragments may be drawn
                 and the text may be placed in the fragments compartment
                 (corresponding to a guard of a fragment alt for instance)
     * Plug-out upgrade 1.10.2
       To access to the semantic informations from a use case,
       collaboration and sequence diagrams, through the new operation
       definition defined on UmlBaseCollaborationDiagram,
       UmlBaseSequenceDiagram and UmlBaseUseCaseDiagram.
       A new package named Diagram is created to place the new classes
       supporting these informations under the packages API BASE and API
       USER
     * Plug-out empty
       Upgraded by plug-out upgrade.

  3.3.3

   November, 21th 2007
     * Previous releases crash when you add a reflexive message on a life
       line in a sequence diagram (this means not on a duration bar),
       fixed.

  3.3.2

   November, 11th 2007
     * Add missing relations when you open a diagram having the drawing
       settings 'draw all relations' valuing yes.
     * In a component diagram when you move a containing component its
       nested components which intersect with it are also moved.
     * In a use case diagram when you move a subject or a fragment the
       contained elements are also moved.
     * If the element selected in the browser appears in the current
       diagram, the menu of the diagram (called by a right mouse click out
       of any element in the diagram) proposes to find the browser element
       in the diagram, this allows to select the representation(s) of the
       element in the diagram.
     * Html documentation Generator 2.13.2
       Export properties (tagged values)

  3.3.1

   November, 5th 2007
     * Previous release crashes when you transform a sequence diagram
       containing fragment separator to use flat/overlapping activity
       bars, fixed.

  3.3

   November, 4th 2007
     * Previous releases may crash when you ask for replace a class
       instance in a sequence or collaboration diagram but there is no
       available class instance, fixed.
     * Default getter and setter definition was wrong in Java when the
       corresponding attribute is initialized, fixed.
     * dependency and C++ :
          + When you edit a dependency just after its creation, the C++
            definition was shown as #include in source but the #include
            was produced in the header file (supposing you don't edit the
            relation or don't valid the edition), fixed.
          + In the previous releases, when you created a dependency the
            C++ definition produced the #include in the header file, but
            by default when you edit a relation to be a dependency the C++
            definition produces the #include in the source file. Now, a
            newly created dependency produces the #include in the source
            file to follow the same rule in all the cases.
     * sequence diagram :
          + Add explicit reflexive return
          + Add overlapping activity bars
          + By default the newly created sequence diagrams use the
            overlapping activity bars, but of course the existing diagrams
            don't use them.
          + A diagram using overlapping activity bars can be transformed
            to use flat activity bars, and vice versa. The overlapping
            level introduced by a reflexive message is propaged to the
            next messages, you may have to add explicit returns before
            transforming flat activity bars to overlapping ones. Known
            problem : the fragments 'alt' are not taken into account by
            the transformation, cutting first the activity bars crossing
            over the separators may help for. The transformation is not
            undoable, to save the project before may be a good idea !
          + in a diagram using overlapping activity bars, the reception of
            a synchronous message create a new overlapping activity bars,
            this is not the case for the reception of an asynchronous
            message (but you can ask for to create an overlapping activity
            bars through the menu of the message).
          + in a diagram using overlapping activity bars, a reflexive
            synchronous messages is always at the beginning of an activity
            bars and a reflexive returns at the end, you can't move them.
          + Like for the previous releases, I prefer to offer a high level
            of flexibility in the construction of the sequence diagrams,
            rather than to limit the available modifications or to modify
            the diagram may be by deleting messages in order to always
            have a consistent diagram. To quickly modify a diagram, may be
            to fixe unconsistencies, several facilities are available to
            change the start or end of a message to the parent activity
            bars or a new overlapping activity bars, or to collapse an
            activity bars with its parent activity bar.
     * Add C++/Java/Php roundtrip operation body in the available
       shortcuts
     * Character and background color for texts in diagrams (button abc)
       can be changed. By default a text is written in black and doesn't
       have background (it is transparent).
       Warning : in an SVG export the background color applied on all the
       rectangle sizing the text rather than on the background of the
       characters.
     * The color of the character for the notes in diagrams can be
       changed. By default a note is written in black.
     * Because the format of the BOUML files is changed, the previous
       releases of BOUML cannot read a project saved with this version.
       Obviously this release is able to read the projects made by
       previous releases of BOUML.

  3.2.1

   October, 24th 2007
     * Previous version modify the position of the labels in the diagrams
       in some cases, fixed.
     * When you edited operation body through shortcut or context menu
       with add operation profile on body edition set, the operation
       profile was not be showed, fixed.

  3.2

   October, 21th 2007
     * The SVG produced for a component diagram contained floating point
       numbers. Depending on the settings associated to your country, the
       representation of a float can uses a ',' rather than a '.', not
       compatible with SVG. Now all the produced numbers are integers.
     * Add xml:space="preserve" in the SVG text forms, at least to indent
       arguments given on several lines in a sequence diagram.
     * It was not possible to add a state diagram icon and an activity
       diagram icon in a state diagram, component diagram, sequence
       diagram, collaboration diagram, object diagram, use case diagram,
       deployment diagram and activity diagram. Fixed.
     * The interfaces provided and required by a nested subcomponent are
       automatically provided and required by the direct container
       component, but this didn't work for more levels, fixed.
     * In a sequence diagram, the arguments given on several lines are
       shown pseudo centered, fixed.
     * It was not possible for a component to require and provide the same
       interface, this limitation is removed.
     * Modify the component dialog to set the realizing classes (wrongly
       labeled realized classes in previous releases) in a dedicated tab
       rather than to set them with the provided classes.
     * Plug-out upgrade 1.10.1
       Since Bouml 2.28 the activities are not added, fixed.
       Rename the operation UmlBaseComponent::realizedClasses to
       realizingClasses. Warning, doesn't modify the exiting calls of
       realizedClasses. Rename the parameter realized of the operation
       UmlBaseComponent::set_AssociatedClasses to realizing
       Add operation PhpSettings::classUmlStereotype.
       Add operations UmlBaseItem::isMarked, UmlBaseItem::set_isMarked,
       UmlBaseItem::markedItems, UmlBaseItem::referencedBy,
       UmlBaseState::set_AssociatedDiagram, UmlBasePackage::loadProject,
       UmlBasePackage::saveProject and UmlBasePackage::isProjectModified
       if they are not defined.
     * Html documentation Generator 2.13.1
       Plug-out empty
       Upgraded by plug-out upgrade.
     * .pro Generator 2.1.3
       Add WITHPHP if at least two WITH* are defined. Note : compatible
       with old plug-outs without Php.
     * Because the format of the BOUML files is changed, the previous
       releases of BOUML cannot read a project saved with this version.
       Obviously this release is able to read the projects made by
       previous releases of BOUML.

  3.1

   October, 14th 2007
     * Since the 3.0 when you load a project Java management and default
       definition is forced to false if Php management and default
       definition is not set, fixed.
     * Add force body generation flag on the operations to allow to
       generate their body even if preserve operation's body is set.
       Usefull to generate the implementation of the state machines in all
       the cases.
     * Java Generator 2.13
       C++ Generator 2.10
       Fixe the indent of the first item of an enum itself embeded in an
       other class.
       To manage operations having their body generated even if preserve
       operation's body is set.
     * Php Generator 1.1
       To manage operations having their body generated even if preserve
       operation's body is set.
     * State machine generator 1.4
       To set force body generation on the produced operations.
       Upgraded by plug-out upgrade.
     * Roundtrip body 1.5
       To not change the body of the operations having force body
       generation set.
     * Global change 1.1
       To manage Php definitions.
       Upgraded by plug-out upgrade.
     * Html documentation Generator 2.13
       To generate Php definitions.
       Upgraded by plug-out upgrade.
     * Plug-out upgrade 1.10
       To add missing vector allocations in Java definitions.
       To add Php management and force body generation.
       Note : you must define WITHPHP when your plug-out is implemented in
       C++ and you defined WITHCPP WITHJAVA and WITHIDL.
     * Plug-out empty
       Upgraded by plug-out upgrade.
     * Because the format of the BOUML files is changed, the previous
       releases of BOUML cannot read a project saved with this version.
       Obviously this release is able to read the projects made by
       previous releases of BOUML.

  3.0.2

   October, 9th 2007
     * Since 2.32.1 Bouml crash when you add a non self transition, fixed.
     * Since 3.0 moving or copying an operation from a class to another
       class may destruct its body, fixed.
     * Roundtrip body 1.4
       Plug-out upgrade 1.9
       Fixe a problem in the new API between the modeler and the plug-outs
       (doesn't concern the other plug-outs nor the users ones).
     * State machine generator 1.3.3
       Management of consecutive pseudo states (for instance choices) was
       wrong, fixed.

  3.0.1

   October, 8th 2007
     * Previous releases may crash during a save, fixed.
     * Php Reverse 1.0.1
       The name of the produced artifact contained the reversed file
       extension, fixed.
       To manage file names containing a dot, ie having more than the dot
       separating the name and the extension.
     * Java Reverse 2.10.1
       Java Catalog 2.10.1
       C++ Reverse 2.7.1
       Project synchro 1.1.2
       Project control 1.1.1
       To manage file names containing a dot, ie having more than the dot
       separating the name and the extension.

  3.0

   October, 7th 2007
     * Add management of PHP 4 and 5
       Currently the scope of PHP is not as large as it is for C++ and
       Java, for instance there is no PHP definitions in the state machine
       and activities because this seems useless.
     * Now the tabs dedicated to a given language are not shown in the
       dialogs when you don't ask for its management through the menu
       Languages.
     * Java Reverse 2.10
       Java Catalog 2.10
       Since Bouml 2.31.2 the simple inheritances produce realization
       stereotyped bind, fixed.
       Follow the new API.
     * Php Generator 1.0
       New plug-out generating code for PHP.
       To produce definition without visibility compatible with PHP 4,
       remove ${visibility} in the generation settings and in the
       definitions made before, or set the visibility to package at the
       UML level.
       Refer to the documentation.
     * Php Reverse 1.0
       New plug-out reversing PHP code.
       Refer to the documentation.
       To test the reverse I applied it on the sources of Joomla 1.5RC2,
       this produces almost 600 classes.
     * Roundtrip body 1.3
       To roundtrip Php bodies.
       Follow the new API.
     * Java Generator 2.12
       C++ Generator 2.9
       C++ Reverse 2.7
       Idl Generator 2.8
       Follow the new API.
     * Plug-out upgrade and the other Plug-outs will be upgraded later to
       manage Php.
     * Because the format of the BOUML files is changed, the previous
       releases of BOUML cannot read a project saved with this version.
       Obviously this release is able to read the projects made by
       previous releases of BOUML.

  2.32.1

   September, 29th 2007
     * To distinguish external and internal self transitions
       (unfortunatelly drawn outside the state), the internal self
       transitions are now drawn with dot lines.
     * Optimal window size may produces a too small window when Bouml is
       compiled with a Qt 3, fixed.
     * In the previous releases when an attribute was duplicated the
       multiplicity was not copied, fixed.

  2.32

   September, 23th 2007
     * In the previous releases the lines are always drawn in the diagrams
       between the center of their extremities. Now it is possible to
       decenter them to have for instance . For that do a mouse click near
       the beginning or the end of a line and move the mouse with the
       click down.
       It is not possible to decenter a line having its geometry set
       through the line menu geometry ( , , or ).
       When you change the relative position of its extremities, a line
       may go to an other edge like when the line is not decenter, but the
       offset with the top or the left of the edge is unchanged.
       Unfortunatelly the angle of a decenter line may change when the
       zoom is modified, because it is not always possible to have exactly
       the desired font size. This is mainly the case when the size of the
       extremities is linked to the font size, for instance for classes.
       To come back to a centered drawing, use the submenu Geometry of the
       line menu and choose recenter begin or recenter end.
     * It is now possible to add state machines and activities under use
       cases and use case views.
     * I consider you have a multiple screens configuration if the desktop
       width is greater than 2000 pixels or two times its height. In this
       case a message box is shown when Bouml starts, speaking about
       BOUML_LIMIT_DESKTOP. To help users having a multiple screen
       configuration whose unfortunatelly don't read the FAQ or the
       documentation.
     * XMI2 Import 1.2.4
       To allow state machines and activities under use cases and use case
       views rather than to place them on upper level or dedicated class
       views.
     * State machine generator 1.3.2
       To manage state machines under use cases and use case views.
       Because the C++ code generation is not made for classes under use
       case or use case view the state machine generator produces an error
       when it is applied on a state machine place in a use cases or a use
       case views.
     * Plug-out upgrade 1.7.3
       To remove ${throw} if present in the default C++ definition and
       declaration of the created operations (Java operations have
       exception RuntimeException not existing in C++).
     * Because the format of the BOUML files is changed, the previous
       releases of BOUML cannot read a project saved with this version.
       Obviously this release is able to read the projects made by
       previous releases of BOUML.

  2.31.3

   September, 16th 2007
     * Now, when you add an item to an enumeration (class stereotyped enum
       or enum_pattern), the item's type is set to the enumeration. Note :
       this is also done when the item is added by a plug-out.
     * Plug-outs can't add a flow from an expansion node, fixed.
     * XMI2 Generator 1.5.3
       To produce the type of the enumeration items, even if it is not
       set.
       To produce subvertex rather than connectionPoint for the pseudo
       states.
       To produce transitions out of the regions, else Eclipse is not able
       to import them.
       To add a missing '>' on activity control node export
     * XMI2 Import 1.2.3
       To import class instances.
     * Html documentation Generator 2.12.1
       Modify produced style.css to indent html page contain.
     * Plug-out upgrade 1.7.2
       The first parameter of the operation
       UmlBaseClassInstance::add_Relation is an UmlRelation rather than an
       UmlAttribute.
       The first parameter of the operation
       UmlBaseClassInstance::remove_Relation is an UmlRelation rather than
       an UmlAttribute.
     * Plug-out empty
       Upgraded by plug-out upgrade.

  2.31.2

   September, 11th 2007
     * Previous releases crash when you open a diagram referencing a
       modeled instance deleted in a previous session (this means you
       didn't open the considered diagram after the deletion of the
       instance in the same session), fixed.
     * Previous releases crash when you edit a read-only modeled instance,
       fixed.
     * XMI2 Generator 1.5.2
       Modify export of template classes for Uml 2.1 to allow import by
       Eclipse.
       When you export for Eclipse, ask for Uml 2.1 export and use the
       file extension xmi.
     * XMI2 Import 1.2.2
       To be able to import a file produced by the new export for Uml 2.1,
       of course Bouml is able to import old files.
     * C++ Reverse 2.6.2
       Java Reverse 2.9.2
       Java Catalog 2.9.1
       To create a realization stereotyped bind rather than a
       generalization when a class inherits a template class.

  2.31.1

   September, 2th 2007
     * Add a button in the IDL tab of the dialog for attributes allowing
       to specify a constant.
     * Java Reverse 2.9.1
       In the previous releases, when the body of an operation was not on
       several lines, this one was directly placed in the definition of
       the operation, without using ${body}. This optimization is removed
       because this is a problem when you want to generate code with
       preserve operations's body.
     * C++ Generator 2.8.3
       Text artifacts was generated with an unexpected extention, fixed.
     * State machine generator 1.3.1
       Fixe bug associated to transitions without trigger.
       Instrumented code for the final state was wrong, fixed.
     * XMI2 Generator 1.5.1
       XMI2 Import 1.2.1
       Fixe management of association classes.
     * File Control 1.0.4
       Add %dironly corresponding to %dir without the drive.
     * C++ utilities 1.1.1
       To allow to add constructor declared explicit.

  2.31

   August, 26th 2007
     * In the previous releases, when you move a state only the substates
       follow. Now the pseudo states and line breaks of associated
       transitions are also moved.
     * In the previous releases the self transition was considered
       internal (the exit and enter behaviors was not executed by the code
       produced by the state machine generator), now editing a self
       transition you can set it external. By default a self transition is
       still internal.
     * Add the stereotype text for the artifacts. An artifact having this
       stereotype doesn't have associated classes nor artifacts, and the
       code generators produce the source definition without any change
       (there is no C++ header for them). The extension of the generated
       file must be specified in the name of the artifact. This allows to
       produce any text file, for instance for yacc/bison. In a plug-out
       the definition depending on the language is accessible though the
       existing operations.
       When you load an artifact saved by a previous release of Bouml
       having the stereotype text, this one is replaced by _text.
     * State machine generator 1.3
       To manage external self transitions.
       In the class corresponding to the state machine all the sub classes
       are declared friend allowing them to access to its protected
       members. Recall : the class instance corresponding to the state
       machine is given through the operation parameter stm.
       Instrument parts of code using the stdio puts function protected by
       #ifdef VERBOSE_STATE_MACHINE, to help you to debug your machine. To
       add the instrumentation you must delete the class(es) realizing
       your state machine made by the previous releases of the state
       machine generator.
     * Html documentation Generator 2.12
       XMI2 Generator 1.5
       XMI2 Import 1.2
       To distinguish external and internal self transitions.
     * C++ Generator 2.8.2
       Java Generator 2.11.2
       Idl Generator 2.7.2
       To manage text artifacts
       To indicate the number of errors and warnings at the end of the
       trace
     * Roundtrip body 1.2.1
       To indicate the number of errors and warnings at the end of the
       trace
     * Plug-out upgrade 1.7.1
       To add operations isExternal and set_isExternal on
       UmlBaseTransition.
     * Plug-out empty
       Upgraded by plug-out upgrade.
     * Because the format of the BOUML files is changed, the previous
       releases of BOUML cannot read a project saved with this version.
       Obviously this release is able to read the projects made by
       previous releases of BOUML.

  2.30.2

   August, 12th 2007
     * The already opened diagrams was not always updated when draw all
       relation is true and a relation/flow/transition is added on an
       element, fixed.
     * C++ Generator 2.8.1
       Java Generator 2.11.1
       Idl Generator 2.7.1
       Code generation is not done when a class view contains class
       instances, fixed.
     * XMI Generator 1.4.5
       In the previous releases a nested class was generated as an actor,
       fixed.

  2.30.1

   August, 4th 2007
     * Previous releases crash when you duplicated a class instance using
       the marks, fixed.
     * Previous releases crash under Windows because of a C++ compiler bug
       in optimize speed mode, when you ask for some actions through the
       menu of a link between two instances in an object diagram. This
       occured for instance when you changed the geometry of the link.
       Fixed.
     * Add the entry duplicate in the menu of the class instances in the
       browser. Warning : when an instance is duplicated, the value of the
       attributes are copied but the value of the relations are not copied
       in the new instance.
     * Add the entry geometry in the menu of the link between class
       instances in a collaboration diagram.
     * C++ reverse 2.6.1
       Several improvements in the management of the namespaces and the
       template forms.

  2.30

   July, 29th 2007
     * Sometimes after closing a diagram or dialog the keyboard shortcut
       was not taken into account until you click some where on the Bouml
       window, fixed.
     * It was not possible to duplicate an attribute through a shortcut,
       fixed.
     * Add management of the multiplicity for the attributes.
       The generation settings are modified to be able to set the default
       definition of an attribute depending on the multiplicity.
       When you load a project, the attributes defined by previous
       releases have an empty multiplicity.
     * Java Reverse 2.9
       Java Catalog 2.9
       When the return value type of an operation was a generic form
       referencing a class, the type of the operation was set to the
       generic without the form between < >, fixed.
       To manage attribute multiplicity.
     * C++ reverse 2.6
       When a directory contains several classes having the same name but
       placed in different namespaces, only one of these classes was
       reversed, fixed.
       To manage attribute multiplicity.
     * C++ Generator 2.8
       Java Generator 2.11
       Idl Generator 2.7
       Html documentation Generator 2.11
       XMI2 Generator 1.4
       XMI2 Import 1.1
       To manage attribute multiplicity.
     * Roundtrip body 1.2
       Follow the new API
     * Plug-out upgrade 1.7
       Do the following modifications :
          + In the classes CppSettings, IdlSettings and JavaSettings, the
            operation relationStereotype is renamed
            relationAttributeStereotype, the operation
            set_RelationStereotype is renamed
            set_RelationAttributeStereotype, and the operation
            relationUmlStereotype is renamed
            relationAttributeUmlStereotype. If you call these operations
            you have to modify your code to use the new names.
          + In the classes CppSettings, IdlSettings and JavaSettings, the
            operation attributeDecl has now a parameter giving the
            multiplicity (like relationDecl), and the operation
            set_AttributeDecl has a new parameter giving the multiplicity
            (like set_RelationDecl). You have to modify your code to give
            the multiplicity if you call these operations.
          + In the class IdlSettings, the operations
            valuetypeAttributeDecl, unionItemDecl and constDecl have now a
            parameter giving the multiplicity (like relationDecl), and the
            operation set_ValuetypeAttributeDecl, set_UnionItemDecl and
            set_ConstDecl have a new parameter giving the multiplicity
            (like set_RelationDecl). You have to modify your code to give
            the multiplicity if you call these operations.
       This upgrade is not mandatory : old plug-outs are compatible with
       this new releases of BOUML.
     * .pro Generator 2.1.2
       Previous releases don't take into account a generation root
       directory relative to the project, done.
       To be able to specify a text generated at the end of the .pro file.
     * Plug-out empty
       Upgraded by plug-out upgrade.
     * Because the format of the BOUML files is changed, the previous
       releases of BOUML cannot read a project saved with this version.
       Obviously this release is able to read the projects made by
       previous releases of BOUML.

  2.29.1

   July, 17th 2007
     * Add new consistency checks when you load a project. Bouml signals
       when several elements share the same internal identifier and how it
       fixe this. This problem may occurs when you change the project file
       by hand or a tool (for instance to merge modifications), or when
       you don't follow the mandatory rules allowing to use Project
       synchro, or may be an unknown bug in Bouml.
     * In the previous releases, the browser search 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

