- Process; this is typified by the RUP and provides a set of disciplines, workflows and activities to be performed by all stakeholders in the development of solutions. The RUP today is delivered as a pre-defined set of content and a set of tools to allow customers to add new content, remove content and deliver a tailored process.
- Guidance; usually in the form of documentation that describes guidelines for the development of a certain artifact, or the execution of a process activity. Guidance can delivered as simply descriptive text, or as active content in the form of Eclipse cheat sheets. This guidance frequently describes how an artifact or activity may be tailored for a particular environment, for example the differences between design models for embedded device and SOA business application development.
- Examples; small, pre-built examples of artifacts described by the guidance above. Based on the assumption that most people learn more effectively by dissecting a working prototypical solution these samples provide a concrete way to consume and understand the guidance.
- Templates; pre-built starting points, these are not complete solutions but partial solutions with the user adds here identified extension points. Templates again are a useful way to get users over the blank screen problem of many tools and getting them started, we are all used to templates in tools such as MS Office, we aim to provide richer and richer sets of templates in all of the SDP.
- Patterns; pre-built solutions to a common problem, these are elements of a model or solution and typically have variability points or arguments to the pattern to integrate them into a design or implementation. Patterns can be applied at different levels of models (business, analysis, design) as well to implementation artifacts and can be woven together.
- Recipes; a set of patterns and guidance that provides a higher level of automation in a given domain, so allows the user to describe a higher level requirement and the recipe can instantiate the correct patterns, in conjunction, to move closer to a given solution.
- Solutions; a set of recipes focused around a given solution architecture where the solution has a framework into which components fit, these components can be built (or configured) using recipes which in turn use patterns and guidance in the completion of the framework. Solutions can be built around both technical frameworks or industry frameworks (such as IAA).
Now, as for packaging both the Rational Software Modeler and Rational Software Architect come with a pre-configured instance of the RUP which is not only accessible from the Process Browser but also we provide a view called the Process Advisor which is a context sensitive presentation of topics from the RUP according to the activities you are performing in the tools. For example if you create a use-case diagram you will see the process advisor list all topics to do with the creation of use cases, requirements and also guidelines on good use case design. This guidance from the RUP is also being augmented using the Cheat Sheet capabilities which is now available as part of the Eclipse platform and allows for automated step-by-step instructions on performing a given set of tasks within the tool. Obviously we provide samples and templates as a matter of course, check out the the Samples Gallery and Tutorial Gallery in the product, and expect those extending the products to provide such samples and templates with their extensions (for an example, check out the RSA plug-in for Software Services which includes a profile, template model and sample gallery entries).
Patterns have been a very key part of our modeling products since the original launch of XDE and the pattern authoring and application process have become far more powerful and usable in the RSM and RSA products (we have also included the ability to develop both model-to-model and model-to-text transformations). The work done to-date on patterns is being extended right now to include tool support for recipes and solution templates - for those who attended RSDC you should be able to download the Design and Construction Keynote and the talk by Grant and Alan Service-Oriented Architecture for Mere Mortals: Practical Lessons for Migrating Your Organization to Service-oriented Solutions and Technologies which include discussions on solution templates. Overall it is this focus on Asset-Based Development (ABD), that along with SOA, I see as one of the most important challenges and most interesting opportunities in the tool space in the near term.
Oh, and interestingly all of these elements lend themselves to being packaged, described with metadata, searched and instantiated in RSM/RSA allowing users to significantly customize the products to their environment and needs. In this regard the Reusable Asset Specification (RAS) is a key element of this value proposition in providing a common way to describe and categorize assets either delivered by IBM, 3rd parties or harvested from projects by the users themselves. The delivery, in RSM/RSA, of the RAS browser and other RAS tooling allows for the capture, description and publication of assets from models and code as well as the browsing, downloading and instantiation of assets from RAS repositories.
We live in interesting times ...