What are the drawbacks of software reuse? Explain.

 Software Reuse 

- Software reuse is a term used for developing software by using the existing software components. Some of the components that can be reused are as follows;

• Source code

• Design and interfaces

• User manuals

• Software Documentation

- Software reuse is the process of implementing or updating software systems using existing software assets.

- In most engineering disciplines, systems are designed by composing existing components that have been used in other systems.

- Software engineering has been more focused on original development but it is now recognized that to achieve better software, more quickly and at a lower cost, we need a design process that is based on systematic software reuse.

- There has been a major switch to reuse-based development over the past 10 years.


Drawbacks of software reuse

The drawbacks of software reuse are described below:-

  • Increased maintenance costs: 

If the source code of a reused software system or component is not available, then maintenance costs may be higher because the reused elements of the system may become increasingly incompatible with system changes. 

  • Lack of tool support:

Some software tools do not support development with reuse. It may be difficult or impossible to integrate these tools with a component library system. The software process assumed by these tools may not take reuse into account. This is particularly true for tools that support embedded systems engineering, less so for object-oriented development tools.


  • Not-invented-here syndrome

Some software engineers prefer to rewrite components because they believe they can improve on them. This is partly to do with trust and partly to do with the fact that writing original software is seen as more challenging than reusing other people's software. 

  • Creating, maintaining, and using a component library: 

Populating a reusable component library and ensuring the software developers can use this library can be expensive. Development processes have to be adapted to ensure that the library is used.

  • Finding, understanding, and adapting reusable components: 

Software components have to be discovered in a library, understood, and, sometimes, adapted to work in a new environment. Engineers must be reasonably confident of finding a component in the library before they include a component search as part of their normal development process.


Comments

Popular posts from this blog

Suppose that a data warehouse for Big-University consists of the following four dimensions: student, course, semester, and instructor, and two measures count and avg_grade. When at the lowest conceptual level (e.g., for a given student, course, semester, and instructor combination), the avg_grade measure stores the actual course grade of the student. At higher conceptual levels, avg_grade stores the average grade for the given combination. a) Draw a snowflake schema diagram for the data warehouse. b) Starting with the base cuboid [student, course, semester, instructor], what specific OLAP operations (e.g., roll-up from semester to year) should one perform in order to list the average grade of CS courses for each BigUniversity student. c) If each dimension has five levels (including all), such as “student < major < status < university < all”, how many cuboids will this cube contain (including the base and apex cuboids)?

Suppose that a data warehouse consists of the four dimensions; date, spectator, location, and game, and the two measures, count and charge, where charge is the fee that a spectator pays when watching a game on a given date. Spectators may be students, adults, or seniors, with each category having its own charge rate. a) Draw a star schema diagram for the data b) Starting with the base cuboid [date; spectator; location; game], what specific OLAP operations should perform in order to list the total charge paid by student spectators at GM Place in 2004?

Discuss classification or taxonomy of virtualization at different levels.