In computer software development, it is not common that a project will be completed developed since the beginning, with its developers writing every line of code and coming up with this complete solution.
Since the first modern programming language, there is the possibility of importing and including code from other developers, something very common while developing computer software.
For instance, if the programmer is writing a software to download a file from another computer in an internet server, this programmer will not have the need of writing all the low-level structures to access the network card, dealing with sockets or dealing with the HTTP protocol, since network drivers are installed on the operating system, sockets are already implemented by a provided API, and the HTTP protocol have thousands of implementations available.
Even the programming languages like C, Ada, Lisp, Smalltalk, and ML where not threated as examples of software re-use in the literature, however the goals and achievements for high-level languages have strong parallels to the current-day aspirations of software reuse researchers (Krueger, 1992).
BENEFITS OF THE SOFTWARE REUSE
According to the Lombard Hill Group (2017), some of the benefits of the software reuse are listed below:
Shorten-time-to-market: with the reuse of software companies have reported a short time to market, something enables better competitivity;
Improve software quality: software that have been used multiple times will have a big probability of having less failure than fresh developed software;
SOFTWARE REUSE AND THE FREE SOFTWARE IDEOLOGY
The software reuse is very common and associated with the free software or open source ideology. Richard Stallman founded in 1985, the Free Software Foundation which has a philosophy of allowing developers to copy, redistribute or modify libraries and software of other people. (Stallman, 1985)
Richard Stallman, makes an analogy of the free software philosophy in the Linux Documentary entitled The Code where he explains that
Program is a lot like a recipe, each of one has steps to be carried out, with rules which tells you when you are done or when to go back and at the end, there is a certain result. If you cook, you probably exchange recipes with your friends, and you probably change recipes too, and if you made changes and you like the result, then you might give your friends the change of the recipe. So, imagine a world where you can’t change a recipe because somebody went gone out of his way to set it up that it is impossible to change it and imagine that if you share the recipe with your friends, they will call you a pirate and try to put you in prison for years (The Code Documentary, 2001)
W. KRUEGER, C, 1992. Software Reuse. ACM Computing Surveys (CSUR), [Online]. Vol 4. Issue 2., 131-183. Available at: https://dl.acm.org/citation.cfm?id=130856 [Accessed 2 July 2017].
What is Software Reuse?. 2017. Lombard Hill Group. [ONLINE] Available at: http://www.lombardhill.com/what_reuse.htm. [Accessed 2 July 2017].
Richard Stallman. 1985. Free Software Foundation. [ONLINE] Available at: https://www.gnu.org/philosophy/free-sw.en.html. [Accessed 2 July 2017].
Hannu Puttonen. (2001). The Code Documentary. [Online Video]. 2001. Available from: http://topdocumentaryfilms.com/the-code/. [Accessed: 2 July 2017].