Moore's Law essentially states that the processor speed for chips doubles every 18 months, and it's proved to be a fundamental tenet of the high-tech industry. Milbery's Law, on the other hand, has been less rigorously proved. It states that developers have to double their output with fewer resources every time they're asked to do so. Machines get faster and faster and developers get further and further behind. One solution to this endless cycle is to aggressively model and analyze your business requirements before you start slinging code. Ideally, the closer you track your software requirements with the needs of the business, the more likely it is that your code will match the business requirements on time and on budget. Toward that end I had the chance to look at Ensemble Systems' Ensemble Streams Professional 3.2, a business-process tool for communicating workflow models to end users, analysts and teams of software developers.
Ensemble Streams Overview
Ensemble Systems was founded in 1995 as a consulting services company with a specialization in object-oriented technology. They offer a number of software products in addition to providing consulting services to clients. As software consultants they have first-hand experience working closely with business analysts and client sponsors within corporations. I expect the idea for Streams grew out of their own experiences helping these clients design and implement complex applications.
Ensemble positions Streams as a tool for bridging the gap between business and software professionals. While you'll frequently use it to model software applications, it can be used to model any type of business process. The interface is designed to allow business analysts to model out the workflow of business process scenarios. Professional developers can use this same "business analyst" model as the basis for building a complete technical software solution. Streams can bridge the gap between business analysts and programmers by providing tools that allow analysts to include business terminology and workflows directly within a UML (Unified Modeling Language) model. This model can include actors, classes and use cases, which can be transferred into Rational Software's Rational Rose tool where it can be enhanced by professional developers and used to generate complete applications.
Application designers and systems analysts have rallied around the Object Management Group's UML. Ensemble supports standard UML 1.3 modeling, but also lets you extend the model with custom symbols and notations. Streams allows you to add documents and screenshots to your models, making them much more than just UML diagrams. Despite these additions, the product is a UML tool at its core. Whether you're a business analyst or a professional programmer, you'll need to have some familiarity with UML modeling to work successfully with Streams.
Ensemble provides a downloadable version of Streams on their Web site, but I installed the product using a CD-ROM provided with the press package from JDJ. Streams supports Windows-based operating systems and uses Demo Shield for installation. After viewing a short presentation from the CD, I installed and configured Streams Professional in just a few minutes. Streams is licensed on either a fixed license basis or by a series of floating licenses (all provided by Globetrotter's FlexLM). However, the demo version comes equipped with a 30-day trial license, so you can get started without having to deal with licensing issues. The Streams interface is clean and well designed, as shown in Figure 1.
Seven basic elements are part of the Streams user interface. The various functions and commands are organized into three layers: menu bar, toolbar and toolbox. The toolbar serves as a shortcut for options available within the menu, while the toolbox contains all the notational elements that can be placed within a diagram. You're free to rearrange elements of the toolbar and toolbox to match your preferences.
The three main elements of the interface are the drawing area, the browser and the documentation panel. Notational elements can be selected from the toolbox and placed on the drawing area, as shown in Figure 1. As you add elements to your model, they'll appear in the browser window in an outline control, and detailed descriptions of each selected element are displayed in the documentation editor. By default, these three views appear as docked panels, but you can undock them into separate panels if you wish. Status information and messages are displayed in the status bar at the bottom of the panel.
Ensemble doesn't provide a tutorial for Streams, but they do provide product documentation in Adobe PDF format and a white paper that details the process of using Streams with a fictional specialty sneaker store. I used the "Runners" sample case and example model (see Figure 1) to get my bearings with Streams, but the document isn't a tutorial in the classic sense of the word. The installation CD also comes equipped with several additional white papers and PowerPoint presentations - I wasn't overly impressed with the written materials. It's my guess that most business analysts would have some trouble with Streams unless they were already familiar with the basics of UML modeling. Don't get me wrong. The interface is well designed, and it's certainly easier to start modeling with Streams as compared to jumping directly into the Rational Rose 2000 product (from a business-analyst perspective that is). However, Streams still makes use of UML and you'll need to know UML modeling before working with the product.
The folks at Ensemble have added some clever features that make Streams useful as a tool for defining workflows and business rules. For example, a business analyst typically designs a workflow or a set of business rules and then works with end users to validate the model. To facilitate this process Streams allows the analyst to include extra elements on the activity diagrams such as notes, hyperlinks, documents and even sample screen designs. Thus the diagram becomes much more than a standard UML model. When it's time to actually build software from the model, Streams exports the UML portions directly into Rational Rose (see Figure 2).
Ensemble provides additional products, one of which connects Rational Rose to a number of leading Java development environments such as Oracle's JDeveloper. Theoretically you can then take a project all the way "from concept to code" using Streams, Rational and the Java IDE.
However, you can also use Streams to output your project into a series of HTML pages (see Figure 3) that can be shared with users across an intranet. Although the HTML add-in isn't unique to Streams, I found it to be a nice addition to the interface. Streams generates a hierarchical HTML index page with links for each activity and subactivity as defined in the model. I can easily envision a business analyst working with Streams to define workflows, then using the company intranet to share the work-in-process with business sponsors. If you require a more rigorous tool for walking users through the model, Streams provides a "storyboarding" facility. Through this interface you can add some basic animation and extra description for the model. As the product description states, Streams isn't limited to software development; it can be used with almost any business process. The CD even includes a presentation that describes the use of Streams to build an activity-based costing (ABC) model of a business flow. Thus those organizations looking to optimize some of their business processes using methodologies such as ABC and Six Sigma can also benefit from a product like Streams.
I found Streams to be a clever product for designing workflows and software processes, and I liked the concept of working at a higher level of abstraction from the model. You'll need to purchase companion products to implement these models as software, but I didn't find this a burdensome requirement. If you're not familiar with UML modeling, however, I'd suggest you invest in some UML training before diving into Streams.
Jim Milbery is a software consultant with Kuromaku Partners LLC (
www.kuromaku.com), based in Easton, Pennsylvania. He has over 16 years of experience in application development and relational databases. He can be contacted at: