Comments
Richard Davies wrote: The UK has a good crop of technology pioneers in cloud computing - for example ElasticHosts, FlexiScale, Flexiant, OnApp - and also some strong government initiatives such as G-Cloud. We will have to see whether this kind of technical leadership converts into swift mass-market adoption or not.
Cloud Expo on Google News

SYS-CON.TV
Cloud Expo & Virtualization 2009 East
PLATINUM SPONSORS:
IBM
Smarter Business Solutions Through Dynamic Infrastructure
IBM
Smarter Insights: How the CIO Becomes a Hero Again
Microsoft
Windows Azure
GOLD SPONSORS:
Appsense
Why VDI?
CA
Maximizing the Business Value of Virtualization in Enterprise and Cloud Computing Environments
ExactTarget
Messaging in the Cloud - Email, SMS and Voice
Freedom OSS
Stairway to the Cloud
Sun
Sun's Incubation Platform: Helping Startups Serve the Enterprise
POWER PANELS:
Cloud Computing & Enterprise IT: Cost & Operational Benefits
How and Why is a Flexible IT Infrastructure the Key To the Future?
Click For 2008 West
Event Webcasts
Small Worlds 1.5
Small Worlds 1.5

It takes more than a group of keen developers coding like mad to create a software system that meets requirements yet is robust to change. As new requirements are discovered, new code must be written and existing code maintained. Without careful consideration of code structure, packaging, and component dependencies, a large system can quickly turn into a "big ball of mud."

Managing dependencies between components becomes critical if a software team is to maintain the level of agility required in today's environment, where customers are demanding increasingly complex business systems delivered faster and cheaper. If component and package dependencies are not well managed, the code base becomes fragile and unmaintainable, a common cause of a software project failure.

Currently, tool support to help developers and architects prevent system degradation is poor. The type of support required is where the feature set of most CASE tools stops. Luckily for us a new breed of tool is now available ­ Small Worlds.

Product Description
Small Worlds provides insight into the structure of Java or C++ software systems through a variety of innovative visual models and statistics. These include views for managing component and package dependencies, tracking the effects of change, system coherency, and summary reports. The views help identify problem areas of the code that may need system-level refactoring.

There's also a plug-in API that allows integration into other tools (Forte being the first), and several export options that save visual representations of the system in GIF or HTML format.

Small Worlds supports three modeling notations, or "skins": UML, Small Worlds, and Global. The UML skin does what you would expect. The Small Worlds skin focuses on the code "flow" rather than the containment hierarchy (i.e., the direction of change rather than associations). The Global skin removes visual decorations to simplify complex diagrams.

The Review
To see how Small Worlds handles a large system, I decided to import the source code from my current project ­ a J2EE-based application with 230,000 lines of Java code in 1,320 files. On my modest laptop it took three minutes for the compiled code to be imported and then another two for the views to be created.

Reading through the informative Small Worlds user manual pays off! There are so many features and ways information is presented that you can easily lose sight of what you need to accomplish. There is a big "wow" factor with this tool, which makes it easy to get sidetracked. Therefore, it's very important that you have a clear understanding of the questions you want answered before you start navigating though your code.

The heart of Small Worlds is the Explorer window that presents a visual representation of system components; convenient navigation between components; and a set of fine-grained filter controls to hide abstractions, implementation, different kinds of dependencies (uses, extends), packages, and classes. Changing to the Small Worlds skin provides a view that illustrates the flow of the code, which is useful for depicting the effects of change.

Apart from the Explorer, the feature I was most eager to look at was the summary report. There I was told that our system was 98% stable, but that there were problem areas (no surprise there), two possibly serious. The first is a Local Hub, a component that has many immediate dependencies and dependents. The component in question was one I suspected was a problem, and now I had evidence. Drilling into the "What If" view immediately demonstrated the rippling effect this component causes when modified. Lowering the threshold of hub dependencies by using the "Show run play" option exposed other hubs I would have to deal with next.

The next problem I investigated was a tangle, a cyclic loop between components. Nothing good ever comes from cyclic dependencies, especially if they're between classes. Drilling into the Explorer view showed me that the tangle was package-based and needed investigating (see Figure 1).

Viewing the details of the tangle exposed 24 loops that could be broken. Each loop has a weight associated with it that suggests if the dependency is a weak or strong link. With this information and the powerful "What If" feature, I can make educated recommendations to the development team as to how to make this section of the code more robust to change.

Summary
There is no other tool on the market that deals with the complexity of managing component dependencies as completely as Small Worlds. You can reverse-engineer class diagrams in many visual UML tools, and even purchase some plug-ins for Rational Rose, but none provide a feature set anywhere close to that of Small Worlds.

To take full advantage of the insights provided by the tool and apply them to a large software system, you need an expert user and a strong individual who has the commitment of the entire development organization. However, novice or intermediate-level developers may take advantage of the Visualizer edition that removes the analysis tools and concentrates on navigating through the system structure. For example, the "Random explore all" feature from the Explorer is a great way for new developers to get a feel for the system.

I found this to be an exciting tool and one that I've already used to good effect. The ROI is somewhat intangible unless you're into tracking metrics in your development process, but Small Worlds can help with that too. I do have some minor usability issues with the tool, and the user manual bundled with the installation was not current, but none of this prevents me from highly recommending Small Worlds to others.

References

  • Foote, B., and Yoder, J. (1999). "Big Ball Of Mud." Department of Computer Science, University of Illinois at Urbana-Champaign.
  • Churchett, D., and Burhdorf, R. (2002). "The Salion Development Approach: Post Iteration Inspections for Refactoring (PIIR)." The Rational Edge.

    Small Worlds Snapshot
    Target Audience: Architects, component developers, test engineers
    Level: Medium to expert

    Pros:

  • Concentrates on being an analysis tool, not an IDE
  • Works well out of the box
  • Provides insights not currently available with existing tools in one unified solution
  • Great graphical representation offering visual clues to system structure
  • Good context-sensitive help

    Cons:

  • The .avi tutorial did not work
  • The Windows batch script to increase heap size did not work
  • Potentially steep learning curve/high barrier to entry for Analyzer Edition
  • Would need to be installed into the development process to track progress over time
  • User manual not in sync with installed version, but good enough

    Information Laboratory, Inc.
    E-mail: info@thesmallworlds.com
    Web: www.thesmallworlds.com
    Phone: 917 494-0840

    Specifications
    Platforms: Java 1.3 and 1.4 applications on Windows 98, NT, 2000, and XP; Linux; Solaris; and any Java-enabled platform Pricing: Small Worlds Analyzer Edition for Java is $1,750. Small Worlds Visualizer Edition for Java is $750

    Test Platforms
    Computer: Dell Inspiron Laptop 7500
    Processors: 400MHz Intel, Red Hat Linux 7.1 Dual 800MHz Intel
    Memory: 128MB RAM, 512MB RAM
    Platform: Windows 2000

    About Dale Churchett
    Dale Churchett is the Senior Software Architect at Salion, Inc., with extensive software development expertise including component-based development and high volume database driven applications. Prior to joining Salion, Churchett worked at Excite for three years on a number of their portal products. He is a proponent of agile development practices and recently appeared on an Agile Development user panel at the GIGA Application Development Conference.

  • In order to post a comment you need to be registered and logged in.

    Register | Sign-in

    Reader Feedback: Page 1 of 1

    Latest Cloud Developer Stories
    Rackspace Hosting, the service leader in cloud computing, on Thursday announced its acquisition of SharePoint911, an industry leader in SharePoint consulting, training, and "JumpStart" services within SharePoint. The unification of both companies provides capabilities to deliver ...
    With Cloud Expo 2012 New York (10th Cloud Expo) now under four months away, what better time to start introducing you in greater detail to the distinguished individuals in our incredible Speaker Faculty for the technical and strategy sessions at the conference... We have techn...
    Nimble, the social CRM platform has announced the launch of Nimble 2.0, billed as the “most social” CRM platform on the market today. Nimble was designed entirely with social CRM in mind and is the first social business platform that empowers companies with the ability to get clo...
    2011 was a year of rapid adoption for public and private cloud services. Instant and on-demand server provisioning was the driving force behind the massive growth. On top, cloud server templates and script automation simplified application installation for simple and pre-defined ...
    "Having been in the IT field for many years, I believe the cloud computing chapter in the industry is an exciting one and I am proud to be a part of it," said National Reconaissance Office (NRO) Chief Information Officer Jill T. Singer Tuesday, as it was announced that she was on...
    Subscribe to the World's Most Powerful Newsletters
    Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
    Click to Add our RSS Feeds to the Service of Your Choice:
    Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
    myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
    Publish Your Article! Please send it to editorial(at)sys-con.com!

    Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021

    SYS-CON Featured Whitepapers
    ADS BY GOOGLE

    Breaking Cloud Computing News
    Joyent Cloud, the highest performance public cloud, and Amplify, a startup accelerator focused on su...