Skip to main content

By clicking Submit, you agree to the developerWorks terms of use.

The first time you sign into developerWorks, a profile is created for you. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

All information submitted is secure.

  • Close [x]

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerworks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

By clicking Submit, you agree to the developerWorks terms of use.

All information submitted is secure.

  • Close [x]

Build your SOA, Part 1: Maturity and methodology

Introduction to the basics

Kunal Mittal (kunal@kunalmittal.com), Portal/J2EE Architect, Consultant
Author photo
Kunal Mittal is a consultant specializing in Java, J2EE, and Web services technologies. He is the co-author of and has contributed to several books on these topics. Kunal is currently working on a portal project for Sony Pictures Entertainment. For more information, visit his Web site at http://www.soaconsultant.com.

Summary:  Learn a new process and methodology for building a Service-Oriented Architecture (SOA) model in your organization. The author explains and ties the Capability Maturity Model (CMM) to SOA and introduces the IBM® Rational® Unified Process and Extreme Programming (XP) as two very successful methodologies for SOA development.

View more content in this series

Date:  20 May 2005
Level:  Introductory

Activity:  3652 views
Comments:  

Introduction

SOA projects tend to be large initiatives with a lot of risk and potential reward associated with them. The Return on Investment (ROI) on a SOA project is sometimes very hard to quantify (and thus hard to sell), which brings about the need for a solid process and methodology to ensure the success of a SOA project.

SOA is a set of tools, technologies, frameworks, and best practices that enable the quick and easy implementation of services. In addition, the process of developing SOA uses methodology for identifying reusable services in your applications and organization. SOA is not a product or a standard.

The architecture is focused on allowing enterprises to identify, build, exchange, and maintain their business processes as services rather than as large, monolithic applications -- applications that today are often termed instant legacy. SOA existed well before Web services. (If you think back, CORBA and IDL were just variations of SOA.) However, as Gartner put it in 2003, "Through 2008, SOA and Web services will be implemented together in more than 75 percent of new SOA or Web services projects (0.7 probability)."

The technologies that enable SOA are targeted at reducing the complexities involved in software development. They address issues with distributed software, multiple platforms, and application integration. SOA provides an application architecture in which you define processes as services that have well-defined interfaces. These services can be dynamically invoked over a network. For the Chief Information Officer (CIO), SOA enables faster time-to-delivery of business processes and cost reduction resulting from reductions in development and maintenance costs.

This three-part series is designed to tie industry-adopted processes and methodologies to SOA and demonstrate how you can use them together. This article introduces you to the process (namely, the Capability Maturity Model (CMM)) and methodology (namely, Rational Unified Process) underlying SOA and lays the groundwork for how and why they can benefit your organization's SOA project.


Software process

The Software Engineering Institute introduced Version 1.0 of the CMM in 1991. A model used to describe the principles and practices of software process maturity, the CMM is a recognized benchmark for assessing software process maturity. The model’s aim is to increase the effectiveness of information technology (IT) organizations to deliver software products or projects by making the software process more predictable and repeatable.

Process repeatability is important, because the software process has to be applied consistently and methodically for organizations to deliver high-quality products or projects on time and on budget. Best practices that are defined need to be shared across software teams and be adaptable to the needs of individual groups.

The CMM defines a model that organizations can use to assess their software process maturity, but it also defines a model that you can use to advance from one level to another. The five maturity levels that the CMM describes can be characterized by the primary process changes made at each level:

  1. Initial: At this level, the software process is characterized as ad hoc and chaotic. Success is individual-based, because very few, if any, processes are defined.
  2. Repeatable: Basic processes are defined and repeated consistently by an individual project team on similar applications.
  3. Defined: The process is well-defined, documented, and standardized. All projects within the organization use the same software process, tailored to their specific needs.
  4. Managed: The software process is managed in terms of applicability and quality. The process has been examined quantitatively and controlled.
  5. Optimizing: Continuous process improvement is enabled by quantitative management. New technologies and processes are incorporated to respond to the changing technology and business marketplace.

Why should CMM be applied to a SOA project?

The application of a process maturity model such as CMM for software development can help you identify the need for SOA in your organization. Doing so can also help you quantify the costs and benefits of SOA for purposes of establishing a solid ROI for the project.

In the second article in this series, I will actually introduce a new version of CMM that I call the SOA Maturity Model. The SOA Maturity Model allows you to apply the CMM to the IT architecture of your organization. Similarly, by using this model, you will quickly be able to build a vision, scope, and plan for your SOA project as well as determine key performance indicators for its success.

Product companies and consulting firms can also leverage the SOA Maturity Model to line up their products and services so that organizations can get from a lower level of architectural maturity to a higher level.

After you have a process and have determined the need for SOA, the next step is to identify a methodology that you will use to build your SOA. You also need a methodology for the ongoing maintenance of the SOA project after you have rolled it out to your organization.


Software methodology

A software methodology is a systematic approach and control of how to develop software. Basically, a software methodology addresses the "hows" of software development, while the CMM process addresses the quality of that methodology and the software produced using the methodology.

Two distinctly different methodologies can be used with SOA: Rational Unified Process and Extreme Programming (XP). Rational Unified Process is a more traditional, heavyweight technology that’s particularly appropriate for large and complex projects. In contrast, XP is a more lightweight, agile methodology that is particularly suited for Internet-based development.

I have chosen these two methodologies because I believe that a SOA project has two high-level phases. The first phase is initial SOA rollout, in which you actually build your SOA. This phase requires a methodology like Rational Unified Process. The second phase is SOA maintenance, in which new projects build on top of the initial SOA. This phase can benefit from a lighter methodology such as XP. (More on this later.)

What is the Rational Unified Process?

The Rational Unified Process is an IBM product offering that provides an out-of-the-box software implementation methodology. The first iterations of RUP were focused more on requirement gathering and less on software development. Now, Rational Unified Process requires the use the Unified Modeling Language (UML) for system design and also encourages creation of a full prototype during the initial phases of a project that includes all functional and technical layers for the final target system. Building such a prototype can become complex as developers attempt to solve all the nonfunctional requirements during the prototype phase.

Although Rational Unified Process is adaptable to fit the methodology of any organization, it is a very prescriptive, heavy, methodology designed around the software implementation process. It breaks software development into four distinct phases:

  • Inception
  • Elaboration
  • Construction
  • Transition

The Inception phase is generally where you define the vision and scope for the project and develop the initial ROI. You complete the requirement-gathering and design processes in the Elaboration phase. The most time-intensive phase is the Construction phase, which corresponds to the traditional development phase of a project. In the Transition phase, you deploy the system to production and manage the first round of support. It is important to realize that almost every organization that is using the Rational Unified Process has probably tailored it somewhat. For example, you could do all requirement-gathering in the Inception phase and make the Elaboration phase the phase in which you do your design work. Regardless of how your organization might have tailored the Rational Unified Process, the fundamental concepts remain the same.

The Rational Unified Process is well supported by the IBM Rational Software Development Platform toolset. The IBM Rational Software Development Platform and the IBM Rational Suite have built-in features to support Web services and SOA development. IBM Rational Software Architect and Rational Software Modeler allow you to quickly model your SOA, and the development tools in the Rational Suite allow you to build and deploy your SOA.

What is Extreme Programming?

XP is a relatively new software development methodology (about seven years old) that gained tremendous momentum during the Internet boom. XP encompasses concepts such as short iterations, pair programming, and test before coding. XP is being used in major companies like Credit Swiss Life, DaimlerChrysler, and Ford Motor Company. XP has been successful because it stresses customer satisfaction. The methodology is designed to deliver the software your customers need when it’s needed.

XP empowers you to respond confidently to changing customer requirements, even late in the project life cycle. It introduces the concept of defining small user stories using the Class-Responsibility-Collaborator (CRC) cards technique or other definition methodologies. (User stories are the XP equivalent of use cases.) XP is a quick and effective method of capturing requirements and organizing them into logical iterative builds, assigning priorities, and developing the user stories. However, XP does not cover validation of the requirements. Yes, XP presents an optimized methodology to develop requirements, but if the quality of the requirements is not addressed, the result might not be satisfactory. This is exactly why, in the upcoming third paper in this series, I will distinguish between when to use XP and when to use Rational Unified Process as part of your SOA rollout.


Conclusion

This paper introduced the basics of SOA and skimmed the surface of concepts such as the Capability Maturity Model (CMM), Rational Unified Process, and Extreme Programming (XP). In the next two papers in this series, the author will combine these concepts to provide a framework and methodology for building your enterprise SOA vision.

In the second paper in this series, the author will use the CMM to define a SOA Maturity Model, which can help you grade your organization in terms of architecture maturity and define a series of steps to get to a higher level of maturity (with a true SOA being the highest level of maturity).

In the third paper in this series, he will introduce a new software development methodology that is a hybrid of the Rational Unified Process and XP: Service-Oriented Unified Process (SOUP). SOUP breaks up the software-development process into two phases: It uses the Rational Unified Process to build your SOA, then switches to XP to maintain it.


Resources

About the author

Author photo

Kunal Mittal is a consultant specializing in Java, J2EE, and Web services technologies. He is the co-author of and has contributed to several books on these topics. Kunal is currently working on a portal project for Sony Pictures Entertainment. For more information, visit his Web site at http://www.soaconsultant.com.

Report abuse help

Report abuse

Thank you. This entry has been flagged for moderator attention.


Report abuse help

Report abuse

Report abuse submission failed. Please try again later.


developerWorks: Sign in


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

Choose your display name

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


Rate this article

Comments

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=SOA and Web services
ArticleID=83762
ArticleTitle=Build your SOA, Part 1: Maturity and methodology
publish-date=05202005
author1-email=kunal@kunalmittal.com
author1-email-cc=flanders@us.ibm.com

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

For articles in technology zones (such as Java technology, Linux, Open source, XML), Popular tags shows the top tags for all technology zones. For articles in product zones (such as Info Mgmt, Rational, WebSphere), Popular tags shows the top tags for just that product zone.

For articles in technology zones (such as Java technology, Linux, Open source, XML), My tags shows your tags for all technology zones. For articles in product zones (such as Info Mgmt, Rational, WebSphere), My tags shows your tags for just that product zone.

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Try IBM PureSystems. No charge.

Special offers