Thursday 29 December 2011

What is Software Reuse?


Software reuse: Ad hoc code reuse has been practiced from the earliest days of programming. Programmers have always reused sections of code, templates, functions, and procedures. Software reuse as a recognized area of study in software engineering, however, dates only from 1968 when Douglas McIlroy of Bell Laboratories proposed basing the software industry on reusable components.

Code reuse is the idea that a partial or complete computer program written at one time can be, should be, or is being used in another program written at a later time. The reuse of programming code is a common technique which attempts to save time and energy by reducing redundant work.
The software library is a good example of code reuse. Programmers may decide to create internal abstractions so that certain parts of their program can be reused, or may create custom libraries for their own use. Some characteristics that make software more easily reusable are modularity, loose coupling, high cohesion, information hiding and separation of concerns.


The general practice of using a prior version of an extant program as a starting point for the next version, is also a form of code reuse.
Some so-called code "reuse" involves simply copying some or all of the code from an existing program into a new one. While organizations can realize time to market benefits for a new product with this approach, they can subsequently be saddled with many of the same code duplication problems caused by cut and paste programming.
Many researchers have worked to make reuse faster, easier, more systematic, and an integral part of the normal process of programming. These are some of the main goals behind the invention of object-oriented programming, which became one of the most common forms of formalized reuse. A somewhat later invention is generic programming.
Another, newer means is to use software "generators", programs which can create new programs of a certain type, based on a set of parameters that users choose..
Since the early 1990’s, the “common” notion of software reuse has gone through the all-too-familiar cycle in software engineering of great hype followed by great cynicism. “Common” in this case refers to the notion of software reuse by placing reusable chunks of software on a shelf in a reuse library and then hoping that someone will later reuse these already written, already tested, already commercially hardened chunks of code in other applications, with great savings in cost and time.
These bad experiences have led many software developers to the conclusion that software reuse simply doesn't work. It is clearly time for a better approach.
Definition:
 Integration and use of software assets from a previously developed system”. Reuse is the use of previously acquired concepts and objects in a new situation. In other words, it is a matching process between new and old situations. When the matching succeeds, the same actions are duplicated.
Software reuse provides a basis for dramatic improvements in quality and reliability - and reduced costs for software development and maintenance.

No comments:

Post a Comment