Advertisment

What’s New in SW Components?

author-image
DQI Bureau
New Update

In the software industry, "com-ponent" is a heavily overloaded

term. The world of components has many evolving threads.

Advertisment

Software components and associated technology currently manifest the long

search for reusing software efficiently.

Component-based development processes and tools offer the opportunity to

achieve higher efficiencies and enable software development to scale. And, at

the enterprise level, architecture methodologies use component concepts to

structure their IT strategy.

This writeup explores each of these threads with an example of the direction

that technology is taking. It concludes with some speculation on the

implications for the future of software development and the Indian IT industry.

Advertisment

"Component

concepts and technologies could well change the way firms–and the

Indian infotech



industry–view software"

S Ramadorai

Software components



Software components have ‘plug-and-play’ potential. They offer packaged

functionality, exposed in some form, for reuse.

The application that uses these components must integrate them in order to

manifest the business process that the software is designed to support. The

technology for delivering software components has been evolving rapidly, with

Web services being the latest in component delivery architecture.

Advertisment

A components’ model of an application defines its structure in terms of a

set of interacting components. These can be developed or sourced, with each

component performing a set of tasks that it publishes for use by the

application. Components are deployed using appropriate technology so that

network transparency, platform independence, programming language independence

and, now, with Web services, organizational independence, are achieved.

Web services are another step in the evolution distributed computing. Data

exchange using XML-based standards has enabled heterogeneous computing

environments to share information over the Internet. XML itself has evolved from

the structured representation of information to the structured representation of

inter-application messaging. Web services take this evolution a step further

with XML-based mechanisms for invoking services of software components using

SOAP. These services can be deployed across any number of physical machines

connected to the Net.

The components’ architecture view of application development, therefore,

first defines components and their planned interaction and then builds

individual components that are finally glued together into an application. The

evolution of the application then becomes a question of changing the behavior of

its components or replacing one or more of them. While this view is valuable, it

begs the question of how these components are finally glued together and how

changes in the components and their interactions are treated. Process-based

architecture, another key emerging trend, addresses the issue through process

model-based technologies that provide a framework into which components can be

‘plugged’ in.

Advertisment

A critical part of software specifications (apart from components and their

functions) are business processes, which can be instantiated in the software

architecture within user interface elements or in process components.

Post-software implementation, it is the business process that is most subject to

change. Formally modeling the process helps structuring the software so that it

is easy to change.

Take this further–make the processes configurable within the architecture

and change them–by merely configuring the software rather than change

programs.

Business process modeling language and related languages such as xlang (used

in Microsoft’s BizTalk framework) are examples of this trend. Messaging and

workflow technologies are moving towards supporting a process model-based

approach that uses Web services, where each component within or outside the

organization merely provides functions strung together by the model-based

framework. This is an emerging area–standardization is underway.

Advertisment

Tools



The effective use of software development tools is critical in

industrializing the development. Tools can significantly accelerate the

development process. They can automate programming tasks and help manage the

process itself. Using tools such as error-trapping code, memory management

calls, etc reduces the probability of defects in the software. Tools also have

the potential to deliver software into a technical architecture. When the

software platform or architecture needs to be changed, re-configuring the tools

alone can usually allow the same application to be deployed on the new

architecture without expending additional development effort.

Many software tools are in the market today although several of them are

programming aids and not life-cycle development tools. Adding features such as

multi-user support, configuration management, application modeling,

component-based development support, application maintenance support and

architectural independence results in a spectrum of capability. For large-scale

or complex software development, components need to be integral to software

development tools; specification, development and testing need to be

component-based.

In practice, however, although very few truly component-based life-cycle

development tools are available today, significant strides have been made in

India, with TCS’s MasterCraft development environment. The evolution of

components as a way of life for software development has thrown up the need for

component repositories where components can be catalogued for search, discovery,

and systematic management. For a number of years, TCS has been supporting

research in this area at the University of Wisconsin, where an enterprise

components repository is being developed.

Advertisment

Enterprise components



Beyond the evolution of component technology, and the emergence of component

based automated software development and repositories, as outlined above, at the

enterprise level, component concepts are acting as methodologies that enable

organizations to articulate their information systems strategies.

Enterprise architecture must articulate the components an organization

requires. For an information systems strategy, stakeholder needs should be

analyzed. Processes that need software application support should be identified.

A component is a group based on functionality, e.g. business changes impact

the functionality of business components; changes in application affect

application components; and technical components are those that change depending

on purely technical features of software (rather than of architecture).

Advertisment

So business components are purely logical entities; application components

are logical but with manifestations also in software applications (a software

application may have more than one application component); and technical

components are those that are implemented directly in software as ‘infrastructure’

layers or as part of a software platform–they help run applications.

Application components correspond to one or more design-level components.

Each design-level component is realized using component technology, tools and

process models and maintained using a component repository.

Although the consulting world is just beginning to use enterprise-level

components, TCS, with its iMpact methodology for architecture consulting, has

already used them for strategic engagements. iMpact, one of the world’s few

such methodologies to be published so far, uses a totally component-based

approach from enterprise level down to design and development.

India must lead



Component concepts and technologies could well change the way organizations–and

the Indian IT industry–view software.

The evolution of component technology could usher in scenarios where business

chains–rather than mere organizations–become the ‘enterprise’ for which

solutions should be designed. As software tools come of age, significant

improvements in productivity, flexible IT strategies and higher RoI for IT

departments will be a reality.

Partnering with academic and industry bodies, TCS has, for long, taken the

route of developing its own products, methodologies and frameworks. But India,

too, has been playing an increasingly important role in IT and it is high time

that Indian industry, as a whole, should drive this change.

S Ramadorai



The author is chief executive officer of Tata Consultancy Services, Asia’s

largest software and services company.

Advertisment