Factors Hinder Software Reuse

Abstract

Software reuse benefits any organization and software projects as it reduces project costs, development time, effort required and increases the team productivity, and the software quality. One of the ways to promote the benefits of the reuse software within any organization is for such organization to attain the component-based software development (Amin and Oxley, 2011).

The Advantage of Software Reuse

The main desire of the software industry is to develop software with high quality with an affordable cost within a reasonable time. One way to achieve such goal is by implementing software reusability where the process of creating new software can implement the existing software artefacts, source code and other reusable software components (Amin and Oxley, 2011).

Studies show various evidences that the software reusability can contribute in software quality, productivity, and reduces time and cost and efforts in developing software. It is imperative for software engineers and developers to treat the software reuse as part of the development discipline that can be based on science and engineering.  Amin and Oxley (2011) explained that software reusability can be measured through the following categories: maturity assessment, cost-benefits model, the amount of reuse, the reusability metrics, the failure modes, and the reuse library metrics.

Implementing reuse software within any organization required initial investment to start the software reuse process; however such investment will pays off in a few reuses of such software. The development of a repository, and reuse process produces a base of knowledge that improves the quality of the software and the amount of development work required for the future projects (Jalender and Premchand, 2011).

Factors Hinder Software Reuse

Banker and Kauffman (1990) explained that having a repository for code reuse for previously written objects and other source code is a good approach to promote reusability, however the search mechanism doesn’t allow programmers to find what they need quickly, and it requires more effort from them to find what they need by identifying the right keyword that can bring a good results from the search engines.

One of the serious problems that hinder the software reuse is the existence of the incentives, and the lack of the managerial monitoring that can help promote such approach within any organization (Banker and Kauffman, 1990). That said, software reuse required the organizational mindset that can promote the software reusability, and also implementing the methodical processes that can be directed at the construction and the design level to promote the software reusability (Griss, 1995).

Griss (1995) explained that implementing a systematic reuse needs a systematic approach that requires organizational changes, and business process and management changes to achieve the following:

  • Fund the product development within the organization that can decrease inter-product compatibility, and development cost.
  • Implementing a long-term plan to maintain, manage, and repository reusable assets.
  • Promote and deliver training to the new technology, and tools within the organization.
  • Change the organization culture to recognize, and encourage through incentives and training the new processes of software reuse within the organization.

Conclusion

Software reuse is the process of developing software system from existing software instead of re-inventing the wheel, and building such software from scratch (Jalender and  Premchand, 2011). Building the software the can promote reusability is imperative approach to reduce cost, and development time in the software development projects. A good example of reusability is what Microsoft implemented within the .Net Framework where such framework contains generic classes libraries, APIs, and other components that can be reused during the software development. One of the reusable components we used in our organization in addition to what already exist in the .Net Framework is Microsoft Enterprise Library where it provides developers with various ready made classes, and assemblies (called blocks) that can be used for many software layers. Some of these common blocks that usually used in almost every application is the Data Access Block, Security Block, and Data Encryption Block.

Finally, reusability is the key component in developing a rapid application development, and the future of the software development will be for the reusable components that can plug-play to the architecture of the software to increase software development productivity, and enhance the software quality (Smith, n.d.).

References

Amin, A. & Oxley, A. (2011) A Review of Software Component Reusability Assessment Approaches [Online]. Available from: http://www.scialert.net/fulltext/?doi=rjit.2011.1.11&org=10 (Accessed: 09 June 2011).

Smith, L. (n.d.) Reusability of Data Access Code in ADO.Net Application [Online]. Available from: http://www.knowdotnet.com/articles/cdataaccess.html (Accessed: 09 June 2011).

Jalender, B. & Premchand, P. (2011) Breaking the Boundaries for Software Component Reuse Technology [Online]. Available from: http://www.ijcaonline.org/volume13/number6/pxc3872458.pdf (Accessed: 09 June 2011).

Banker, R. & Kauffman, R. (1990) Factors Affecting Code Reuse [Online]. Available from: http://www.google.ca/url?sa=t&source=web&cd=6&ved=0CEcQFjAF&url=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi%3D10.1.1.89.4049%26rep%3Drep1%26type%3Dpdf&ei=gWXuTYf5LYfHgAeunfCUDw&usg=AFQjCNGmu-NXr_u6MH_2991hzvSszC4r6w (Accessed: 09 June 2011).

Griss, M. (1995) Software Reuse: Objects and Frameworks are not Enough [Online]. Available from: http://www.hpl.hp.com/techreports/95/HPL-95-03.pdf (Accessed: 09 June 2011).

Advertisements

2 Comments »

  1. 1

    I wanted to post a simple word in order to thank you for all of the stunning facts you
    are posting at this site. My rather long internet research has
    at the end been rewarded with good quality facts to share with my friends and classmates.
    I would assume that many of us visitors are very much lucky
    to live in a wonderful network with many perfect individuals with good concepts.
    I feel quite happy to have seen your webpages and look forward to many more enjoyable minutes reading here.
    Thank you again for everything.

  2. Hello! I just wish to offer you a huge thumbs up for the excellent information you have here on this post.
    I’ll be coming back to your web site for more soon.


RSS Feed for this entry

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: