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 (you can read about them in Michele Lanza's papers 1, 2), rendered using Mondrian.
  • Release 1.0 of CodeCity is out (17.03.2008).