Skip to main content

skip to main content

developerWorks  >  Rational  >

Next-generation model-driven development

developerWorks
Document options

Document options requiring JavaScript are not displayed


Rate this page

Help us improve this content


Level: Introductory

Gary Cernosek, Market Manager, IBM Software Group, IBM

15 Feb 2004

from The Rational Edge: This article traces the evolution of IBM Rational automated modeling tools, describes the advanced capabilities of IBM Rational Software Architect, and helps readers decide whether they can benefit from transitioning to this tool. It also discusses the advantages of using the integrated tools in IBM's Eclipse-based Software Development Platform.

illustrationIn October 2004, IBM launched a major release of the IBM® Software Development Platform, introducing a new generation of modeling and model-driven development (MDD) tools. Central to the design and construction category of that launch was IBM Rational® Software Architect, a comprehensive, integrated design-and-development product that supports MDD with the Unified Modeling Language (UML) for creating well-architected applications and services.

Rational Software Architect supports application and Web development (static and dynamic) using modern software industry technologies, including:

  • Java 2, Enterprise Edition™(J2EE) and Web services technologies
  • Object Management Group (OMG) Model Driven Architecture (MDA) initiative and Service Oriented Architecture (SOA) styles of development and their associated standards
  • JavaServer™Faces (JSF) capabilities that enable rapid application development
  • Reusable Asset Specification (RAS) for supporting asset-based development

Rational Software Architect includes all of the capabilities of IBM Rational Application Developer for WebSphere Software (the latest version of the IBM WebSphere® Studio Application Developer product) and augments them with the latest in MDD technology. The result: an integrated design and development solution packaged in a single product.

The purpose of this article is to discuss Rational Software Architect from an evolutionary perspective, as a next-generation MDD product that supports workflows and usage scenarios notably different from those supported by previous MDD products. Note that this is not a guide to using Rational Software Architect; IBM Rational plans to publish such a guide in the near future.

The evolution of IBM Rational modeling tools
To understand where Rational Software Architect falls on the evolutionary scale for modeling products, let's take a brief look at IBM Rational product history in this area.

Rational Rose
IBM Rational Rose® software has been, and continues to be, a market-leading visual modeling tool. A stand-alone tool, it integrates at the application programming interface (API) level with market-leading IDEs to support a variety of programming languages and other implementation technologies. However, despite the success of Rational Rose and advances in UML modeling practices, only a small fraction of developers use modeling on a routine basis, and Rational has been trying to educate more of them about its value proposition. But most developers don't want to leave their IDEs to use additional tools; they want visual modeling to be integrated inside their IDE.

Rational XDE
To respond to this desire, in 2002 IBM Rational launched Rational XDE™software, providing an extended development environment for the generation of programming technologies emerging at the time: Java and Microsoft .NET. We characterized Rational XDE as the next generation of Rational Rose; it was not, strictly speaking, a new version of Rose (hence the name change), and not necessarily a replacement for Rose, since we purposefully restricted Rational XDE to support only a select number of IDEs and implementation technologies.

By architecting Rational XDE as a plug-in to popular IDEs, we encouraged many developers to adopt modeling and model-driven development. Rational XDE also advanced the state of MDD by offering a very powerful engine to enable pattern-based development; this took software design-level reuse to new heights. Special customizations were later added to provide early support for an IBM Rational MDA initiative (see "Support for model-driven architecture" below).

In October 2003, following our acquisition by IBM, we consolidated the Rational Rose and Rational XDE product lines into a single family -- IBM Rational Rose XDE Developer -- so that whether customers wanted a stand-alone modeling tool or one that was integrated directly into their IDE, they could purchase one package and install the tool they needed.

Unprecedented integration opportunities with Eclipse
Even before IBM acquired Rational Software, these two organizations were partnering to develop a new and more powerful approach to integrating MDD capabilities into the Eclipse framework and Eclipse-based IDEs. An early result of this work was a code visualization and visual editing feature added to WebSphere Studio Application Developer in 2003 to serve as a lightweight, highly efficient means for developing Java implementation-level models.

This technology now represents the basis for IBM's approach to MDD tooling. Instead of simply integrating with Eclipse, we are building new MDD capabilities on top of Eclipse. This provides an unprecedented level of support for Java and C/C++ development, as well as a whole new dimension of capability for integrating additional lifecycle tools. With the new tools we launched in October 2004, the vision of an Eclipse-based IBM Software Development Platform is becoming a reality. We now provide a complete and fully integrated platform for software development, optimized for each role across the development team. With the benefits this provides, software development can truly be a core business process that delivers a competitive advantage and provides new revenue and market opportunities for our customers.

With Eclipse, we can now accomplish deeper and wider integrations for our modeling products. We can leverage role-based user interfaces and tool extensibility; we can better integrate modeling with other facets of the lifecycle, such as requirements management. Rational Software Architect transforms the silos that previously defined modeling, development, and code analysis into an integrated and unified design and development experience. Working within an open, rather than proprietary, environment, users of all types can more easily customize their toolset to suit their needs.

Rational Software Architect: Integrated design and development
Our new, Eclipse-based Rational Software Architect is a complete design and development tool solution. As we noted earlier, it includes all the capabilities of Rational Application Developer for WebSphere Software (the new version of WebSphere Studio Application Developer), which encompasses code visualization and visual editing features; this makes it a great entry-point for customers just starting out with MDD. It also includes the full, updated capabilities of Rational Web Developer for WebSphere Software (formerly WebSphere Studio Site Developer).

Building upon the features of Rational Application Developer, Rational Software Architect adds full support for MDD, including UML Version 2 (UML 2) modeling, code generation, patterns, and model transformations, and a new approach to implementing the MDA style of development. This next-generation offering is not an entirely new product. Representing a natural evolution and merging of capabilities found in existing IBM Rational tools, it is packaged specifically for customers seeking to apply MDD in the broadest sense of the term.

Structural review and control
As we have learned from our customers, no matter how well you design and architect an application, during implementation it will undergo code-level evolution that, left unchecked, will result in architectural degradation that can severely affect software quality.

To combat this syndrome, software architects review existing code before implementation to assess its actual architecture and quality. In doing so, they typically find a variety of problems: incorrect mapping from design to code; code-level changes that caused design and architectural dependencies; violations of coding standards, rules, and style issues; and more. Ultimately, an application's architecture is represented by deployed code, so software architects must analyze the code to assess its maintainability and govern the evolution of the architecture with the assistance of rules.

To provide more automated support for such analyses, Rational Software Architect introduces a feature called "Java application structural review and control" that is built right into the tool. It supports template-based rule authoring and enables users to discover the architecture for J2EE and J2SE implementations, using high-level software visualization technology. Users can more easily detect architectural weak spots, or "anti-patterns," such as cyclic dependencies, hubs, or breakables that have crept into the application source code.

Through automated structural reviews and control via code visualization and developer-level testing, software architects can significantly improve the quality of applications they design and deploy. The advances we have introduced in Rational Software Architect will start to change the way architects and developers think about their development process.

Runtime support and language support
Our customers have also told us what an important role design and development tools can play in enabling an application's runtime support environment. Rational Software Architect represents a significant step toward optimizing runtime support for Java applications on the WebSphere Application Server; it also enables multiplatform execution support by virtue of Java Virtual Machines and data interoperability by virtue of its support for open industry standards. Moreover, since Rational Software Architect includes Rational Application Developer, which supports BEA WebLogic Server, applications deployed using Rational Software Architect are implicitly multiplatform as well. The Eclipse C/C++ Development Tool (CDT) that is packaged as part of IBM Rational Software Architect also expands support for C and C++ development. The Eclipse-based solution allows us to reuse some features in Rational Software Architect to support MDD across both these languages and Java.

Fostering a modern modeling ecosystem
Also in our recent launch was a variant of Rational Software Architect that focuses on modeling, designed for users who do not need code generation or visualization. Rational Software Modeler supports all the UML 2 modeling features found in Rational Software Architect and offers advanced extensibility features via the Eclipse Modeling Framework (EMF). The openness and robust extensibility this Eclipse foundation affords makes Rational Software Modeler well-suited to support a modeling "ecosystem" of customer and third-party extensions similar to the ecosystem that has contributed to Rational Rose's success.

Rational Software Architect and Rational Software Modeler are but two examples that illuminate the strategy behind the IBM Software Development Platform: to help businesses automate and integrate software development as a business process. Our vision is to have practitioners in all roles share a consistent user experience and a common definition and management of the assets they create or harvest. Every person on team can simply choose the products that best match their role and responsibilities. The IBM Software Development Platform is all about team and organizational productivity.

Support for model-driven architecture
While MDD represents a number of styles for using models to develop software, Model Driven Architecture, or MDA, is a particular style set forth by the Object Management Group (OMG).1 MDA is based on several OMG standards, including Version 2 of the Unified Modeling Language (UML 2), along with an emerging philosophy about how best to apply modeling to the software development process. MDA defines models at distinct levels of abstraction, and then defines the transformations that map and manage the relationships among those models and various implementation technologies.

Here is a useful, albeit imprecise, definition of MDA levels of modeling:

  • Computation-Independent Model (CIM) -- Addresses the system's environment and requirements without considering its structure or processing.
  • Platform-Independent Model (PIM) -- Addresses the system's operation without details related to a particular platform.
  • Platform-Specific Model (PSM) -- Combines the PIM with details related to a particular platform.
  • Platform Model (PM) -- Defines, for use with a PIM, the technical concepts, elements, and services that compose a specific platform.
  • Transformation Model (TM) -- Defines and specifies the transformation required to go from a specific PIM to a specific PSM.

Although MDA is not a standard, it does explicitly call for the use of several OMG standards already in place. MDA specifies that:

  • Meta-Object Facility (MOF) is used for defining meta-models.
  • UML 2 is used to specify application development models and transformations.
  • MOF Query / View / Transform (QVT) is used to specify transformations (once it becomes formalized).

Some of our customers say they have already been applying MDA "in spirit" for a long time, and IBM Rational staff members have worked with many of them -- and the OMG -- to evolve MDA to its present state. Rational Software Architect supports both the principles of MDA as well as the standards upon which MDA is based.

However, we do not classify Rational Software Architect as an MDA tool, in part because MDA is not a standard, and there remains debate on compliance criteria. More important, Rational Software Architect actually supports a broad spectrum of code-centric, wizard-based, model-driven, design and development paradigms. In other words, it supports MDA plus these other styles of development.

Is Rational Software Architect right for you?
Rational Software Architect is IBM's most complete and robust solution for modeling and model-driven development. But is it right for you? This section will help you answer that question.

Do you work on software architecture?
Our recent product releases distinguish the role of software architect from that of software developer, and also make finer distinctions between software architects and data architects, for example. This greater granularity is reflected across all tools in the IBM Software Development Platform, which are highly role-oriented. The role definitions and distinctions built into our product names can help customers determine which tools are best for various staff members, based on their activities and responsibilities. But role names vary across industry, organization, and even project lines. So you should consider our new product names simply as a starting point for determining what tools are most useful for which development team members.

Software architects are those members of a development team who are responsible for driving major technical decisions, which are often expressed through an application architecture. In some cases, responsibility for this function resides with one person -- sole proprietor of the system vision. This person is often referred to as the project's lead developer. In other cases, several staff members share this role, perhaps with one member acting as chief architect. In still other cases, all developers on a team operate at one time or another in an architectural capacity -- a growing trend. Often, the notion of architect relates more to what developers do than to their job title.

Responsibilities of a software architect include identifying and documenting the architecturally significant aspects of the application, including requirements, design, implementation, and deployment. These aspects require distinct but interrelated views of the application. Of course, there is also a distinction between the originating architectural design and the as-built architecture -- the one that actually runs in the code. We believe that software architects need a tool that helps them define a desired architecture, allows them to discover the application's real architecture, and helps them reconcile the two views.

Rational Software Architect accomplishes all of these things. It includes capabilities that help in developing and viewing the implementation, and also in maintaining and controlling the implementation to preserve architectural integrity.

As we noted above, staff members who do architectural work often do not have the title of architect. Among the team members who can benefit from using Rational Software Architect are:

  • Software architects who also develop code.
  • Developers who need to understand and work with both code and models.
  • Model-savvy developers who want to apply the full power of MDD.
  • Any staff developer who reviews and validates existing architectures, or who wants to see how the implementation has forced the architecture to evolve.
  • C++ developers who want to apply MDD on top of Eclipse.

Keep in mind that Rational Software Architect includes all the capabilities of Rational Application Developer, a full-scale IDE. Customers get a complete design and construction solution packaged into one product. For those who desire full UML 2 modeling capabilities but are not developing architects, we offer Rational Software Modeler.

How much UML support do you need?
Full-scale MDD is not for everyone. Many developers still do not apply modeling to their development process. Others use only a few diagram types, typically those most closely associated with the actual code. And many use diagrams only for visualizing the code as it has been built -- so that they can better understand and change it.

It is for these types of developers that we chose to incorporate select UML features into Rational Application Developer. The tool provides just enough UML capability to get developers started with the technology -- a level we refer to as code visualization and visual editing. Rational Application Developer visualizes classes of code, their member data and functions, and their relationships to each other. It also allows you to visualize member function body information via UML 2 sequence diagrams. And it supports the visualization of data in several notations (UML, IE, and IDEF0), as well as the visualization of Web page hierarchies.

These powerful, yet easy-to-use features provide immediate value to mainstream developers, and those not yet ready for a full MDD solution will find Rational Application Developer to be an ideal starting point. If they want additional MDD capabilities later on, they can upgrade to Rational Software Architect for a discounted charge.

Do you use other IBM Rational modeling products?
If you are already an IBM Rational customer, we encourage you to consider migrating or trading up to Rational Software Architect or Rational Software Modeler where and when it makes sense. The advantages of these new products include:

  • Eclipse integration
  • Advanced model and tool extensibility via EMF
  • Improved ease of use
  • UML 2, the latest in modeling technology
  • New structural review and control features (in Rational Software Architect)
  • MDD with C++ on top of Eclipse
  • Ability to create sophisticated custom transformations
  • Ability to visualize code as static sequence diagrams
  • Code review capabilities
  • Use of both a Java IDE and an MDD tool (in Rational Software Architect)

If your team currently uses Rational Rose or Rational XDE, it also might make sense for you to migrate to Rational Application Developer. The code visualization and visual editing features in WebSphere Studio Application Developer have been upgraded for UML 2 and continue to reside in Rational Application Developer. Although it does not support general-purpose modeling or full-scale MDD, Rational Application Developer does support entry-level use of UML. If you are now using Rational Rose or Rational XDE primarily for extracting graphical documentation from code, then this level of UML support may be sufficient for your needs.

For Java and Web development, we strongly encourage our customers to transition from their current modeling products to Rational Software Architect. In addition to the compelling technical advantages of moving to Eclipse-based tooling, IBM offers a series of migration and trade-up paths. See http://www-306.ibm.com/software/awdtools/architect/swarchitect/support/index.html for the latest in upgrade support information.

Additional information
If you have questions about IBM Rational Software Architect, visit http://www-306.ibm.com/software/awdtools/architect/swarchitect/index.html. This article was based on a whitepaper posted at that site.

Notes
1 OMG, MDA, and their expanded expressions are all trademarked by the OMG, have specific needs to be designated as such, and require specific usage regarding capitalization and punctuation. See www.omg.org/mda for detailed legal guidelines.



About the author

author photo

Gary Cernosek is currently a market manager for the Rational software brand within IBM Software Group. He is responsible for analyzing and responding to software development market trends, with a focus on software design and development technology, particularly in the visual modeling and model-driven development areas. Previously, he held positions in Rational field sales, field technical training, and customer consulting. Prior to joining Rational, he worked as a software developer in the NASA community on space shuttle and space station systems for more than eight years. He holds a B.S. in electrical engineering from the University of Texas at Austin and an M.S. in computer system design from the University of Houston at Clear Lake, where he concentrated on object-oriented software engineering.




Rate this page


Please take a moment to complete this form to help us better serve you.



 


 


Not
useful
Extremely
useful
 


Share this....

digg Digg this story del.icio.us del.icio.us Slashdot Slashdot it!



Back to top