Computers Today..

May 1-15, 1999                                                                       TECH TRENDS 

Computers Today Home
Politics
BusinessEntertainment and the Arts
People
About UsWhat's New

Master File

Country Buzz

Chief Guest

PC User

The Net

Networking

Telecom

Columns

Circuit

SOFTWARE REUSE
Why Reinvent the Wheel?

The concept of software reuse is slowly dawning among Indian developers. The short time to market products and demand for high reliability is pushing more and more companies to opt for componentised programming.

By Sudha Nagaraj

IllustrationWith the "better, faster, cheaper" principle catching on in systems development the world over, the concept of component based development (CBD) is gradually becoming the norm in software development circles. CBD is the practice of authoring software in the form of components which when put together forms a whole. Consequently, certain chunks of the program or codes can be picked up and "reused" for a different product or service software.

In India, where the software sector is every bodyshopper's haven and where braindrain is a reality, the concept of software reuse comes as a blessing in disguise for ever restrictive budgets and priorities. Programming no longer means tinkering away on COBOL and PASCAL for days on; it is the era of Object Oriented Programming (OOP), Rapid Application Development (RAD) and Visual Studio. For it has been found that traditional methods of developing software, however good, are unable to meet present day demands of zero defects and 100 percent reliability. While the idea of reusage is no doubt catching on, software firms are wary about revealing how they have adapted it to suit their needs. Understandably, the more innovative the reuse, the better edge a software house gets over the other.

At the highest level, software reuse can mean ideas, designs comes only second while the code or software is a distant third. Obviously, reuse and componentisation go hand in hand. The trend these days is to build software components that can be reused-using the classic LEGO model. This permits them to be used repeatedly, often with modest refinements from one project to the next and occasionally in the same form.

The Indian Building Block

Tata TechnologyTurbo Analyst is a state-of-the-art CASE (Comp`uter-Assisted Software Engineering) tool from Tata Technologies India Ltd that aids system developers in all stages of the application development life cycle-planning, analysis, logical and physical design, construction and maintenance. Continuing its initiative in promoting CASE culture, the company launched Object Analyst lately. This represents the first effort towards development of a software engineering tool for Object Oriented Analysis and Design supporting the Unified Modelling Language (UML) in the country and one of the early tools globally.

Object Analyst is designed to aid software professionals meet the challenges of application development in the new environment based on client-server technology, networked distributed systems, object languages and libraries, stored procedures and triggers in databases and has received a good response in the domestic as well as the global market. Owing to the layered architecture of Turbo Analyst which comprises of basic tools, enablers and applications built over the same, a large amount of code for user interfaces and drivers could be reused for the development of Object Analyst.

This enabled the company to conceive and develop the product within just 12 months, while an effort from scratch would easily have taken at least double the time. Reuse of code also ensured that the payback for the new product was lesser in terms of the time taken and licences sold-which enables any organisation to focus on continuous development to keep pace with technology and add new features to the products.

Saugat Sen, director, research and development, Cadence Design Systems, says, "It is rare today for any reasonably large-sized software to be built from scratch. Reuse is a mandate given by software development managers today-the reasons being the short time to market products, and the high level of software quality required."

Taken at face value, this implies that software reuse can be effectively practised mostly by those companies which have gained experience and expertise in one area of technology. Take for instance, the Noida-based Cadence itself, which is an electronic design automation company. It builds software that is used to solve complex problems by electronic designers across the globe who build state-of-the-art systems on a chip. It is imperative for the company to deliver to their customers in a short time, usable and quality software. To assist programmers to reuse software judiciously, the company has created a centrally available global resource of guidelines, best practices, systemic checks and balances.

The most prevalent form of software reuse is in devising common interfaces for files and services. With an eye on quick and easy operability, Cadence has standardised files and interfaces and set up libraries of common enabling technologies within each division across their family of products, software and different departments.

Naresh Chand Gupta, managing director, Adobe Systems India Pvt. Ltd, stresses it is simply not possible to reinvent the wheel again and again. All the same, software building is a time-consuming task, which cannot be speeded up merely by adding people to projects. Companies are learning to build on core components and use it at multiple places. A good example is the Adobe Dialog Manager-a common user interface seen across a product-range like the Photoshop, Illustrator and the PageMaker.

Bringing Obvious Benefits

IllustrationSoftware reuse helps to shorten development cycles, and ensures better quality as what is being put to use again is something that has already been validated and probably exists in a customer environment. For a client-conscious company, it is of utmost importance that new and tested functionality can be given to customers faster. That such functionality as well as problem fixes can be installed in the customer's workplace with zero to minimal disruption in his normal course of work is an added incentive.

Reusable components however, call for greater caution while building-consequently increasing the typical time and money spent on such a component when built the first time. The payoffs in the long run: a drop in the cost curve.

Apart from cutting down on team size drastically, software reuse also ushers in a new trend towards standardisation. For a firm like Philips Software Centre Pvt. Ltd, with four divisions-namely Philips Consumer Electronics, Philips Semiconductors, Philips Business Electronics and Philips Medical Systems-it is imperative to develop highly reliable software at low cost. "The solution," as M.S. Sriram, project manager, DTV, Philips Software Centre, points out, "like in any other engineering field, lies in re-engineering the system where software can be developed from off-the-shelf components which are pre-defined, standardised and are highly interchangeable." For this, use of layered architecture is encouraged: each layer provides an abstraction of services which other layers can use.

This implies that a new version of a product can be built on components of the older version. Parts of the program can hence be standardised for all future improvements. But the same is not the case with services. For what appears to be the same on the outside, is not so on delving deeper. Take, for instance, computation of sales tax. The procedure is the same, but a financial accounting solutions provider cannot standardise it for the simple reason that Mumbai has 243 categories while New Delhi has 123 categories for the same. Therefore when it comes to software reuse in the service sector, the reusability is restricted to a certain organisation or a region.

Still there is scope for countless applications such as accounting, where software can be reused. For instance, the accounts divisions of organisations deal with the same operations like voucher preparation, approval, check preparation, signature, payment receipt and posting into the general ledger. If we have components for each activity, then each organisation can define its most preferred process and assemble the components in the desired order. The components have to be rearranged without rewriting the code.

Usual Dose of Pitfalls

Like any good concept, if not applied right, there are pitfalls. Reusable technology, if embedded in static libraries, often calls for rebuilding of most user applications. Hence the need for a dynamic library where work on the core component should be ongoing. (See Developing the reuse culture) If the need assessment for a reusable component has not been done rightly, the extra effort to make it reusable is wasted, as it is like a product with no customers. If the reused code has not been well tested then all products using it will be of inferior quality. Among the various enablers of software reuse, most important is strategic thinking while doing architecture and design of products and product-families. It is, therefore, equally important to lay down good and practical ground rules and a culture of discipline to follow these rules. Then there are some technological enablers, like Microsoft's Common Object Model (COM) and Object Management Group's Common Object Request Broker Architecture (CORBA). Both help solve problems in designing component software, thereby enhancing reusability and installability.

The challenges in India, however, remain acute for multi-platform software product developers, where complex products have to function interoperably across NT and Unix workstations. For that's where it requires engineering minds to abstract the concepts articulated in distributed computing technologies and apply them to build reusable multi-platform software.

Nurturing the Secondhand Culture

IllustrationDespite the slant towards reuse, there are some major impediments which are more social and cultural than financial and technical. Foremost is the mindblock that programmers have against someone else's creation. Seen as a form of plagiarism, "patching" together previously written program modules is seen as a come-down by many programmers. But as functions get standardised, software reuse is bound to become a focussed activity rather than a by-product. The shift in paradigm is towards the "one-shoe-fits-all" approach, though at present it could be just the lace that fits all!

Consequently, it is not uncommon to find a parallel team that is forever working on improving the "core component." At Adobe, the core component (which is reusable) is getting bigger and catering to a variety of needs like processing, documentation and conflict resolution. What was used for basic applications-say date validation routine-is fast becoming the norm for other features in a product.

Yet, even within an organisation, the competition and distrust between different project teams is so high that the reuse of a component-however basic-by another team is resented. Abroad, a system of monetary rewards based on the number of modules a team reuses, and a royalty scheme to pay those who build reusable components whenever it is reused, encourages programmers to design for reusability and shed inhibitions on reuse.

In India, Srinivas Raju, CEO of of Satyam Computer Services, has mooted the proposal of setting up software labs where like-minded companies can come together to invest towards the development of core components. Any firm can use these components in developing their solutions after paying a royalty. "Two other large companies have readily accepted my proposal and I wish to start the ball rolling," reveals Raju.

Meanwhile, in order to foster reuse, several companies have gotten into the habit of going through all the reusable data available and selecting which can be put to reuse, in the initiation phase of a project. Once the architecture is defined, a list of reusable components on the Web or in common database is provided, so that if others need the same component, they can take it from the team which is already developing it. To avoid duplication, information on the software components like design patterns, resource and abstraction layers for different operating systems are also shared. The different strategies and tools for testing, scripts to update Web pages and generate software metrics as well as some general guidelines on domain knowledge and estimation techniques are also dwelt upon.

With the Web as a ready-to-use pool of reusable components, many companies divide their intranet into different sections based on the areas of reuse. A central repository, consisting of a brief of various projects and components available within each of them, are provided with the name of the person concerned and the associated search engine. But a central library of component-based applications can mean a return to the days of the mainframe in a glass house. A natural corollary is: are real programmers fast vanishing?

Quips Saugat Sen, director, research and development, Cadence Design Systems, "Labelling it as software reuse is calling a spade a spade. We could also choose to look as it as a progress of moving to 'programming at a higher level."

 

India Today Group Online

Top

Issue Contents    Write to us    Subscriptions    Syndication

INDIA TODAY | BUSINESS TODAY | INDIA TODAY PLUS | TEENS TODAY
NEWS TODAY | MUSIC TODAY | ART TODAY | SYNDICATIONS TODAY

© Living Media India Ltd

Back Forward