Release History
- Release 1.4 (18.11.2009) brings noticeable performance optimizations, lots of hot new features, massive
UI redesign, and usability improvements
- Performed optimizations in the model part, which allows now much faster building of code cities even
for very large systems (just look at how fast ArgoUML is built compared to the previous versions).
- Improved the filtering of non-model entities (now also it removes the package hierarchies), which
has also become very fast.
- Added support for exporting high-resolution pictures (in jpeg format) which allows the user to
specify the printing size (A5 to A0), both as single snapshots and as evolution snapshots (one picture
per version taken automatically). This will allow anyone to print and hang impressive posters of their
systems visualized in CodeCity!
- The age map button is now a switch button, which provides the possibility to remove the age map
(reapply the mapped colors) at any time and allows it to be persistent during time traveling.
- Added a tree view (currently available only in the single version visualization), which only expands
as necessary to show the selected items and which is synchronized with the city view in terms of
selection. The tree view can be show/hidden via a switch button.
- Added support for terms (thanks to the work of Adrian
Kuhn): hovering the mouse over a building shows the top terms of the class (extracted from the
names of the classes) and there is a new term-based search feature.
- Added a new default view configuration which builds on top of the previous coarse grained one, and
adds the number of lines of code mapped on the color of the buildings (dark gray to intense blue).
- Added basic support to adding edges on-the-fly for the selected classes.
- Added a browse source code button (however you need to place the source code of the system in a
particular folder relative to where you keep your application, check the FAQ section).
- Added support in the isometric perspective for placing the city at the most appropriate distance
which makes it best fit in the view. In the evolution visualization, the entire evolution is taken
into account in order to provide an initial position which best fits any version, to allow time
traveling without the need of adjusting the perspective.
- Added a second perspective, namely top-view, which allows one to see a satellite-view of the city.
- Completely redesigned the info panel, to show only the important information and to do it in a
pleasant way: formatted text and the metric values are human-readable.
- Redesigned the status bar.
- Changed the additive selection command key from SHIFT to CTRL, to match the majority of editors.
- Added the possibility to show or hide the information panel.
- Added a progress bar for the last part of the model importing process (the longest one).
- The default colors for the class-level disharmonies in the disharmony maps is now in the range of
yellow-orange-red-purple, and does not include blue anymore (to not be confusing with the new
configurations in which a blue class is one with a large LOC metric).
- The Disharmony Map UI now provides a color (gray by default) for the non-affected classes, which
allows one to apply a disharmony map on any view configuration without the risk of color clashing.
- Improved robustness during model import/export operations: an exception thrown during such an
operation does not cause CodeCity to exit anymore.
- Updated most of the icons in the toolbar to provide a consistent look and feel.
- Changed the system that appears in the preview pane to a fairly larger one.
- Fixed all the known bugs.
- Release 1.3 (1.12.2008) adds support for evolution analysis, support for scripting visualizations,
improved non-model filtering.
- There is now support for visualization of system evolution. In the launcher, there is a secondary
tab called Evolution, which allows building an evolution model from a sequence of single version
models, building an evolving city, etc. Caching elements will result in one single longer load time
before opening the view, but will improve the time travel to almost no load times. However, be aware
that this is not scalable because it is loaded in memory, which is why it is not recommended (by
default it is off) to use it in the case of larger systems and/or with many sampled versions and/or at
a finer level of granularity.
- Time traveling allows moving between system versions, which causes the city to evolve according to
the history of the system it depicts (to the first/last/next/previous version).
- Age maps are color depiction of the age of an element (in the evolution mode) which show how old the
elements are (how many versions have they been around in the system). The color goes from light yellow
(new) to dark blue (old).
- Timelines allows selecting a single element (class, package) and to follow its whole evolution in
one view. If you open a timeline on a class and the current view configuration is fine grained, you
will see the class and all its methods, if you open it on a package, you'll get the evolution of the
package with its subpackages and classes. You can also apply an age map in a timeline view.
- There is now a scripting graphical user interface (Easel) which allows to programmatically build 3D
city visualizations. However, one needs to have some Smalltalk programming skills, know a bit about
the FAMIX model implemented in Moose, and also about the visual model in CodeCity (glyphs, layouts,
mappers).
- Added a control which allows at any time to reset the view.
- When a single element is selected, its name appears in the status bar.
- Removed the mouse wheel control on orbiting (it is still available from the keyboard), because
sometimes one single rotation of the wheel would cause thosands of events, and thus precious seconds
of waiting for the scene to stop from rotating around.
- Polished the view configurations to match the new style: subtle grays for the districts, a blue for
the buildings, which makes a lot better contrast, the minimum difference in height between the
districts.
- Release 1.2 (2.07.2008) adds the disharmony maps feature, some 3D layouts, and some new view
configurations; it also brings massive improvements of the user interface.
- Disharmony maps. Design disharmonies are design problems at either the class (for example God Class)
or the method level (for example Shotgun Surgery). The best view configurations for disharmony maps
are classLevelTomography and methodLevelTomography, which color everything in gray tones. By applying
disharmony maps, the user can select the disharmony of interest, assign colors to them, and see how
many classes/methods are affected. Access this function by clicking on the broken "Yin and
yang" icon with the 3 RGB colors. To read more look for the Softvis 2008 paper on my Publication page.
- New 3D layouts. There are 2 new layouts, useful especially for classes to layout the methods and/or
attributes. The bricks layout builds the elements in a vertical plane in layers of 4 (to ensure the
access to any element for interaction). The progressive bricks increases the number of bricks in each
layer along the walls, depending on the number of bricks that need to be laid out.
- Enriched launcher. Instead of a simple list with only model names, you get one which shows the name
(editable) and a number of basic metrics which presents a brief characterization of the systems: LOC
(number of lines of code), NOC (number of classes), and NOP (number of packages). All the previously
apparently inexistent (which were in the popup menu of the list) options, such as the ones for
importing new models in the list (from Smalltalk or MSE files) are now explicitly available and
enriched with fly-by help (just rest the mouse pointer over any control, such as a button). Moreover,
there is a button which opens a Moose Browser, if you need to browse the models in a less visual, yet
powerful way. Modifying the model list in the Moose Browser (importing, removing models) will
automatically update the list in the CodeCity launcher.
- Restructured view configuration user interface. Added a preview pane, which shows the current view
configuration applied on a mock small system. This allows the user to get immediate feedback on the
impact of any configuration parameter change on the view. Added a number of view configurations which
can be loaded, besides the ones for the disharmony maps, such as: bricks or progressive bricks which
use the previously presented layouts for the classes. Plus now the label of the window shows the name
of the current view configuration and whether it has been modified, so that the user can start with a
saved configuration and modify it for his/her needs.
- Key mapping. Added a panel inside the view (lower right side), which shows the key map. This panel
can be resized to the bottom of the window until it gets invisible, which provides more space for the
information panel, showing detailed information on the figure over which the mouse pointer hovers. The
kay mapping is also available from the help menu.
- More eye candy. Modified some of the icons to more intuitive ones and added transparency to all
icons.
- Added support for the users of other operating systems.
- Release 1.1 (28.04.2008) fixes a bug with the linear mapping and adds 2D
class blueprints,
rendered using Mondrian.
- Release 1.0 of CodeCity is out (17.03.2008).