.. |
May 1-15, 1999 TECH TRENDS |
||||
| 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
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.
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
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.
|
Issue Contents Write to us Subscriptions Syndication INDIA
TODAY | BUSINESS
TODAY | INDIA TODAY PLUS | TEENS TODAY © Living Media India Ltd |