Skip to main content

skip to main content

developerWorks  >  SOA and Web services  >

Upgrade to the system requirements engineering framework in SOA

developerWorks
Document options
PDF format - Fits A4 and Letter

PDF - Fits A4 and Letter
32KB

Get Adobe® Reader®

Document options requiring JavaScript are not displayed

Discuss


Rate this page

Help us improve this content


Level: Intermediate

Judith Myerson (jmyerson@bellatlantic.net), Systems Engineer and Architect

15 May 2008

Want to know how to move up to the system requirements engineering framework (REF) in Service-Oriented Architecture (SOA)? Learn about issues related to shifting to the framework, soft-goal operationalization, and completing the framework with constraints, risks, and changes. Regular developerWorks author Judith Myerson gives you examples of developing soft goals and suggests ways to operationalize one goal.

Introduction

"Close enterprise system gaps with multiple SOAs" (developerWorks, Feb 2005) explores how you can reuse Web services—data-centric and business logic—from one or more SOAs and combine them into a composite application. "Tight coupling Web services in the SOA " (developerWorks, Jan 2008) looks at the pros and cons of both tight and loose coupling Web services, and the resulting change in scale that comes from tight coupling.

These articles address various aspects of SOA development. This article covers how you should adapt the system REF to individual Web services that comprise an SOA application as a way of closing system gaps with multiple SOAs. Learn about how business and system requirements engineering can improve performance and system security of an SOA application comprised of SLA Web services loosely coupled to the greater extent and tightly coupled to the lesser extent.



Back to top


Traditional requirements engineering

Traditional requirements engineering, the first step in the software development process, determines the functional and nonfunctional needs or conditions that must be met for a new product or system:

  • Functional requirements specify the behavior or functions that a system or product must have.
  • Nonfunctional requirements specify quality criteria you use to determine how the system should behave or function.

Defining requirements engineering doesn't explain the whys of its process; it only tells you what you need to do and how you should proceed in the elicitation, analysis, validation, and documentation of requirements engineering.

Shifting to system requirements engineering framework

To explain the processes, shift to the system REF. This framework starts with system context and goals as inputs to requirements, and completes its run with constraints and risks to requirements. It repeats the processes in response to major changes in system context, goals, constraints, and risks.

Not to be overlooked in the framework is the stakeholder participation in designing one or more goals. Stakeholder participation lets analysts weigh different goal opinions from different stakeholders on formulating requirements in response to changes in SOA constraints and risks.

System context considers requirements sources that are necessary for the elicitation, negotiation, and documentation of requirements on building SLA Web services. Changes in system context might necessitate changes in goals. Some examples of system context changes include:

  • High-speed bandwidth upgrade for faster response.
  • Enterprise network expansion as a result of mergers and acquisitions.
  • Adding an SOA to close enterprise-system gaps.
  • Tight-coupled SLA Web service components.
  • Grid computing to harness unused resources.

All changes must be versioned, validated, documented, and monitored.



Back to top


Operationalizing soft goals

Goals aren't always hard and measurable; some are soft as well. The analysts need to operationalize soft goals into implementable requirements. In the framework, you can incorporate new changes before you turn soft goals into implementable requirements after you've implemented, validated, and versioned the requirements or after new constraints are imposed on system context. Traditional requirements engineering doesn't let you incorporate new changes after you implement the requirements.

For instance, you specify a hard goal that a Web service must make service available; it acts as an automatic SLA Web service. At the same time, the goal originator or an agreement between the agents focuses on, say, three soft goal variables that the analysts can turn into implementable requirements. They include uptime availability, exceptions, and availability variables. You can make changes later on.

First soft goal: uptime availability

The first soft goal specifies uptime availability that must be guaranteed to achieve, say, 99% or more of the time. The goal originator or analyst decides what penalties to impose when the availability time falls below the guaranteed time, and what incentives to offer when the availability time remains at least guaranteed time within a given period of time.

Second soft goal: exceptions

The second soft goal specifies exceptions, such as planned failures, denial of service, scheduled maintenance, network outages, and network issues within the control of a service provider. The goal originator or analyst includes these exceptions after determining which penalties for service downtime by the provider are unfair and unreasonable. When conditions for the first soft goal significantly change, the analyst can add new exceptions or subtract existing exceptions from the second goal.

For some exceptions, the goal originator may specify the client companies get reasonable recompensation. Too many exceptions can cause a client to choose a competitor's SLA Web services that offer fewer exceptions, more uptime in business operations, and better service guarantees. The soft goal should give the client the opportunity to choose exceptions as permitted by the service provider.

Third soft goal: availability variables

The third soft goal specifies service availability variables. Table 1 shows a list of the variables with an explanation for each.


Table 1. Service availability variables
Availability variableExplanation
StatefulnessServer must respond correctly in the subsequent states.
AccessUnauthorized user successfully accesses a control that only the administrators are authorized to use.
Response timeWeb service is available and responds reliably and quickly, otherwise impatient users will go to competing service. Exceeding maximum number of response interruption thresholds will adversely impact response time.
VersioningA new build won't break an existing Web service's functions. If the functions are broken, they're restored with versioning procedures.
Time outThe steps the Web service needs to take if it times out. It can go to another Web service with the same or different sets of tasks or functionalities. Alternatively, it can send an alert to the user that the SLA Web service has timed out.

When the first and second soft goals change, the types of availability variables change.



Back to top


Operationalization example

Let's take a look at an example of how you can operationalize a soft goal on an access availability variable. To turn this soft goal into an implementable requirement, you need to build a quality model and then populate the model.

For example in building the model, the analyst should let the stakeholder judge how promptly a service is available. The stakeholder can recognize the time required for a service to make a service available to the organization and the time to download the document as long as the service isn't interrupted.

Then the analyst populates the quality model with the data about the system behavior the stakeholders desire. The stakeholders who have the proper access authorizations can require that the service be available 99% of the time and that the download time per page of the document be no more than four seconds. Similarly, for a document to be accessible, stakeholders might require that they be able to access the document for no more than 20 seconds.

The stakeholders and the goal analyst must agree on what data on exceptions to include in the quality model if the stakeholders find service availability penalties to be unfair and unreasonable, such as scheduled maintenance, denial of service, and network outages not within the control of a provider. In addition, quality model data should include data on statefulness, access, response time, versioning, time out, and other SLA Web service availability variables.



Back to top


Constraints, risks, and changes

To complete the framework in the first round, you need to perform a few more steps. First, you validate requirements to ensure they work properly as originally intended, assuming that constraints on system context haven't changed. As part of the validation process, you need to assess risks of service availability if you intend to offer SOA applications consisting of tightly coupled and loosely coupled SLA Web services over the Internet. If the results show high probability of risks, you might want to change goals and requirements to mitigate the risks to more acceptable levels.

However, if monitoring shows new environmental constraints emerged after the validation process is completed and risks have been mitigated, the constraints may adversely impact or limit the requirements. This means you need to re-evaluate what new constraints on system context are, what current constraints are no longer applicable, and what part of goals and requirements can be reused.

Then you add, delete, and change goals as new inputs into implementable requirements, and repeat the validation and risk mitigation processes in the framework. Just make sure all processes of change are documented in each stage of the framework to let the analyst and those in other roles do impact analysis if needed.



Back to top


Conclusion

You need a project team of developers, system administrators, and requirement developers to collaborate on moving up to system REF in the SOA. Plan ahead for shifting to the REF and turning soft goals into implementable requirements. Resolving the issues around completing the framework with constraints, risk mitigation, and change management makes shifting to the framework much easier.

Your team can use IBM® Rational® RequisitePro® to manage their requirements, improve traceability, strengthen collaboration, reduce project risk, and increase quality. You can integrate this software with IBM Rational Portfolio Manager to provide business case management and the periodic management and strategic reviews of initiatives. You can also use IBM Rational Method Composer to amend the processes when changes are identified and IBM Rational ClearQuest® to increase productivity by reducing testing time.



Resources

Learn

Get products and technologies
  • Innovate your next development project with IBM trial software, available for download or on DVD.


Discuss


About the author

Judith M. Myerson is a systems architect and engineer. Her areas of interest include middleware technologies, enterprise-wide systems, database technologies, application development, network management, security, RFID technologies, and project management.




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


IBM, the IBM logo, ClearQuest, Rational, Redbooks, RequisitePro, and WebSphere are registered trademarks of IBM in the United States, other countries or both. Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States, and/or other countries. Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of others.