Custom Search

7/23/2551

Software Reuse

Software ReuseSoftware component reuse does not just indicate the reuse of application code. It is possible to reuse specification and designs. The potential gains from reusing abstract product of development process such as specifications may be grater than those from reusing code components. In most engineering disciplines the developed process is based on components reuse. Software system design usually consider that all component to be designed specially for the system being developed. There is no common base apart from libraries such as windows system libraries of reusable software components. By using widespread and systematic software reuse demands for lower software design and maintain costs along with increased quality can only be met.
Software components are not designed to one system but are tried and tested in a number of different environments. Design and implementations fault are discovered and removed so that reusable component contains few errors. It is impossible to achieve absolute reliability specification but reusable components may have an associated quality explanation. This permits users to integrate them with confidence in their systems.
Software component reuse does not just indicate the reuse of application code. It is possible to reuse specification and designs. The potential gains from reusing abstract product of development process such as specifications may be grater than those from reusing code components.
The reuse of software can be divided at a number of levels:
1)Application system reuse: It is possible to reuse the whole application system. The major problem here is to ensure that the software is portable. It should run on variety different platforms.
2)Sub-system reuse: It is possible to reuse major sub-systems of an application.
3)Module or object reuse: It is possible to reuse components of a system representing a collection of function.
4)Function reuse: It is possible to reuse software components, which implement a single function such as a mathematical function.
Application system reuse is widely used in software companies to implement their systems across a range of machines. Function reuse is widely used in standard libraries of reusable function such as graphics and mathematical libraries. Sub-system and module reuse are less usable.
Four aspects of software reuse are: 1)Software development with reuse: Software development with reuse is an approach which tries to maximize the reuse of existing software components. Benefit of this approach is that overall development costs of the software are decreased. Cost reduction is only one potential benefit of software reuse. Systematic reuse in the development offers further advantages: i)System reliability is increased: By using reused components in working systems should be more reliable than new components. These components have been tested in variety of operational systems environment and have therefore been exposed to realistic operating conditions.
ii)Overall process risk is reduced: If we use a function which is already exists, there is less uncertainty in the cost of reusing that component than in the costs of development. For project management this is important factor as it decreases uncertainty in project cost elimination. If relatively large components such as sub-stems are reused then this becomes true.
iii)Effective use can made of specialists : Application specialists doing the same work on different project environment instead these specialists can develop reusable components which encapsulate their knowledge.
iv)Organizational standards can be embodies in reusable components: We can reuse some standards such as user interface standard which can be implemented as a set of standard components.
v)Software development time can be reduced: It is necessary to bring a system to market as early as possible is more important than overall development costs. Reusing software components speeds up system production because both development and validation time should be reduced.
2)Software development for reuse: Component reuse may involve making different types of changes.
i)Name generalization: the component name should be modified so that they are neutral rather than a direct reflection of some specific application entity. ii)Operation generalization: This involves adding operations to a component or removing operation which are very specific to some application domain. iii)Exception generalization: This involves checking each component to see which exceptions it might throw and including these exceptions in the component interface.
3)Generator based reuse: An alternative way to reuse component is the generator view. In this approach reusable knowledge is confined in a program generator system which can be programmed in a domain oriented language.
High-level language compliers are most widely used ‘program generator’, where the reusable components are fragmented of object code corresponding to high level language construct. The reused elements are abstraction related to programming language statements. When a domain specific notation is used to describe the application, larger domain abstraction can be reused. Abstract approaches are: i)Application generator for business data processing: ii)Parser generator for language processing iii)Code generators in CASE tools
4)Application system reuse: A special case of software reuse is application system reuse where a whole application system is reused by a implementing it over a range of different computers and operating systems.
By Ravi Kumar
PaluriPublished: 9/5/2004

ไม่มีความคิดเห็น: