The refactoring browser module is the latest extension of the cognitive support for Poseidon. It provides a very handy set of functions to change the structure of your design for the better, without changing the functional outcome. The refactoring is actively assisted according to acknowledged rules, so that with bigger projects you still don't run the risk of side effects that ruin hitherto working models.
To put it in a nutshell, refactoring your program means cleaning up your program's internal structure without implementing new features or introducing side effects. The term "refactoring" was coined by the famous thesis “Refactoring Object-Oriented Frameworks" by William Opdyke in 1992. Nowadays, refactoring is an important practice within eXtreme Programming (XP). In contrast to the popular saying "Never change a running system", XP advises developers to routinely refactor their programs in order to prevent them from deteriorating. Further information about refactoring in general can be found on Ward Cunningham's extraordinary Wiki-Web.
To refactor a program, you don't need a tool as everything may be done manually. But a dedicated tool can save you a lot of time (and trouble) by automating much of the work and relieving you of tedious routine checks. The aim of the "Refactoring Browser for Poseidon" is to aid developers in refactoring not "just" code but also UML models. Currently 13 refactorings for class, state, and activity diagrams are supported — with far more to come.
Using the Refactoring Browser is easy. Every time you select a model's element, the browser checks its list of refactorings. If a refactoring is applicable for the current selection, you may select and customize it. Before performing the refactoring, the browser issues warnings if the refactoring is likely to alter your model's behavior. Error messages are generated if a modification will result in a defective model. You perform the refactoring by a final click of the mouse.