<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">JSEA</journal-id><journal-title-group><journal-title>Journal of Software Engineering and Applications</journal-title></journal-title-group><issn pub-type="epub">1945-3116</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/jsea.2020.139014</article-id><article-id pub-id-type="publisher-id">JSEA-103273</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Computer Science&amp;Communications</subject></subj-group></article-categories><title-group><article-title>
 
 
  Current Issues in Software Re-Usability: A Critical Review of the Methodological &amp; Legal Issues
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Tariq</surname><given-names>Saeed</given-names></name><xref ref-type="aff" rid="aff1"><sub>1</sub></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib></contrib-group><aff id="aff1"><label>1</label><addr-line>Department of Information Science, College of Computer Science and Engineering, Taibah University,
Madinah Almunwarah, Kingdom of Saudi Arabia</addr-line></aff><pub-date pub-type="epub"><day>21</day><month>09</month><year>2020</year></pub-date><volume>13</volume><issue>09</issue><fpage>206</fpage><lpage>217</lpage><history><date date-type="received"><day>4,</day>	<month>January</month>	<year>2020</year></date><date date-type="rev-recd"><day>7,</day>	<month>June</month>	<year>2020</year>	</date><date date-type="accepted"><day>30,</day>	<month>September</month>	<year>2020</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
   
   The main objective of this research is to discuss the current legal and methodological issues in the field of software Re-Usability. Though there are enormous online forums discussing such issues via Q&amp;A but this paper is an attempt to raise the awareness about the legal issues, which a software engineer may trap into. The paper discussed the current issues with software reusability within the legal and methodological context. This paper applied an extensive literature review to critically appraise the past studies to come to a collective conclusion. Prior to discussing the issues, the benefits of reuse were mentioned, including the saving of time and cost for users. But legally the reuse of software assets creates complexities for the user in relation to meeting all the licensing requirements and dealing with the liability in case of a breach. Methodologically, there are major barriers to reused software when it comes to technical competence and managerial issues such as a lack of resources. Even when reusing software to save time, and leverage off the specialization of other authors, the end-user must also have the technical expertise to search, adapt and merge these reusable assets into the larger software infrastructure. The review ultimately shows the high barriers still remain to software reuse which could mean that smaller developers and businesses will still be reluctant to fully utilize open-source components to the best advantage. 
  
 
</p></abstract><kwd-group><kwd>Software Engineering</kwd><kwd> Software Re-Usability</kwd><kwd> Legal Issues</kwd><kwd> Methodological Issues</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>The paper considers the reuse of software components as a primary criterion for successful future software development. As a result, previous studies have been directed towards evaluating the extent to which a software component is reusable, taking into account both the benefits and issues related to reuse. These studies can be broken down into two main categories, firstly the studies which follow an expert-based approach as their methodology, and second where researchers rely on the data driven methodologies which focus mainly on open-source software systems [<xref ref-type="bibr" rid="scirp.103273-ref1">1</xref>] [<xref ref-type="bibr" rid="scirp.103273-ref2">2</xref>]. The discussion of software reuse started with Douglas Mcllroy in 1968, who proposed the mass production of software using reusable components [<xref ref-type="bibr" rid="scirp.103273-ref3">3</xref>]. Though, Mcllroy at the time was not able to forecast that the software market would become dominated by several technology bemouths such as HP, Microsoft and Apple. Recently the expansion of open-source software (OSS) forums has presented developers with an opportunity to share their code, and assets among each other to collaborate and improve their software [<xref ref-type="bibr" rid="scirp.103273-ref4">4</xref>].</p><p>Reusability of software has grown in importance as technological development increases the complexity of B2B and B2C technology products. Customers are demanding more functionality, pushing businesses to invest heavily into the digitalization of their business models [<xref ref-type="bibr" rid="scirp.103273-ref5">5</xref>]. To allow such a process to be viable for smaller businesses with little technical knowledge, software reusability has allowed systems to be created by piecing together already developed components from other authors. It shows that reusability has major advantages when it comes to speed and reduced cost, and ultimately expands the potential for non-technical businesses to leverage the expertise of others to offer new, digital solutions to users. But this comes with several issues which can be combined into two groups in this study; namely (1) legal, and (2) methodological which will be evaluated.</p></sec><sec id="s2"><title>2. Software Re-Use</title><p>Software components are parts of a system or application. Components are a means of breaking the complexity of software into manageable parts. Each component hides the complexity of its implementation behind an interface. Components can be swapped in and out like the interchangeable parts of a machine. Software reuse is regularly discussed in the form of assets, and throughout this piece the term assets will be used frequently to refer to software reuse. These reusable assets can also be referred to as building blocks [<xref ref-type="bibr" rid="scirp.103273-ref4">4</xref>]. Assets can be work products of any kind, and do not just encompass the source code, but also includes interfaces, test plans, architectures. Businesses are attracted to software reuse as it allows for collaboration which ultimately can be used to create value-added potential [<xref ref-type="bibr" rid="scirp.103273-ref6">6</xref>]. Assets can be split into several categories, from technical or management nature, long grained or fine-grained, simple to composite. Leverage is a term which is also referred to in several past studies [<xref ref-type="bibr" rid="scirp.103273-ref7">7</xref>] [<xref ref-type="bibr" rid="scirp.103273-ref8">8</xref>]. Leverage is said to occur when the reuse of one asset allows for the reuse of a chain, or other assets which are downstream in the development process [<xref ref-type="bibr" rid="scirp.103273-ref4">4</xref>] and [<xref ref-type="bibr" rid="scirp.103273-ref8">8</xref>] showcased how reuse within the APP market was prevalent between smaller developers, studying APP’s on the Android store. The authors noted that “thousands of mobile apps across five different categories in the Android Market” [<xref ref-type="bibr" rid="scirp.103273-ref8">8</xref>] were considered, showing that almost 23% of the classes inherit from a base class in the Android API, and 27% of the classes inherit from a domain specific base class. Most importantly, it was concluded that 61% of all mobile APP’s had similarities with another, while 217 APP’s are reused completely by another mobile APP in the same category.</p><p>In another paper the authors noted how the number of APP’s had increased exponentially between 2007 and 2012, reaching over 1 Million at the time. However, the main reason behind such was the widespread reuse of underlying APP infrastructure which allowed non-experts to release their own APP’s. This environment was supported by the increasingly open-access nature of APP software, allowing all to access and use. But this made developers more dependent on the quality of the apps and libraries that they reuse [<xref ref-type="bibr" rid="scirp.103273-ref9">9</xref>].</p><p>Prior to discussing the issues of software reuse a quick summary of the main benefits should be mentioned to showcase why software reuse continues to grow in popularity and is worthwhile the study. The main benefits are related to cost and time savings by reusing specific components rather than building them from the beginning [<xref ref-type="bibr" rid="scirp.103273-ref10">10</xref>]. To summarize reuse can increase productivity, shorten time-to-market for developments, improve software quality by reusing components developed by specialists, reduce maintenance cost, leverage technical skills and knowledge, and improve system functionality [<xref ref-type="bibr" rid="scirp.103273-ref11">11</xref>]. Apart from productivity gains, component reuse allows a business to reduce the critical path in the delivery information systems applications, reducing the time to market, moving into a stage of revenue generation sooner. Pitney Bowes became an early adopted of reused components in their applications and in 1996 documented tremendous labor savings from reusing software as opposed to developing all in-house [<xref ref-type="bibr" rid="scirp.103273-ref12">12</xref>].</p></sec><sec id="s3"><title>3. Legal Issues</title><p>Reuse is a common and mostly advocated practice for software development. Significant efforts have been invested into facilitating it, leading to the widespread integration of open source components into proprietary software systems. But there are vulnerabilities which can increase as reusability increases especially into systems with insecure coding practices, or when an asset is reused more and more, creating a larger surface area for a cyber-attack [<xref ref-type="bibr" rid="scirp.103273-ref13">13</xref>]. The counterargument to this is that reused software can become more secure through its maturity and extensive vetting by other users. [<xref ref-type="bibr" rid="scirp.103273-ref14">14</xref>] investigated 301 open-source projects through a holistic multiple case-study methodology. What was concluded was that security vulnerabilities increase as the project size of the reusable software increases, especially when the user doesn’t have a deep technical understanding over what they are necessarily using; i.e. code, infrastructure. Many may use reused assets for convenience and with such fail to properly understand the code which has created them, or the process involved within their construction. Thus, the new user opens vulnerabilities in their system, especially if multiple reusable components are used and adapted for their final version. Security vulnerabilities ultimately link to legal issues as any cyber-attack, and subsequent loss of customer data, or business continuity may lead to legal challenges from customers, and thus a financial cost [<xref ref-type="bibr" rid="scirp.103273-ref15">15</xref>]. [<xref ref-type="bibr" rid="scirp.103273-ref14">14</xref>] summarized their findings with the comment “code reuse is neither a frightening werewolf introducing an excessive number of vulnerabilities nor a silver bullet for avoiding them”. Legal issues surrounding software reuse can be summarized into three types of protection, namely patents, trademarks and author law. All three of these protections can be used in different forms to protect the intellectual property of the creator.</p><p>Ownership has always remained an issue to greater software re-usability. Major technology businesses are keen to keep their ecosystems under their own control, because their future financial performance could be hindered by their components becoming open source. To protect their assets businesses such as Apple place patents over the technology, over their software components. It places legal protection over their software making it impossible to be re-used within other businesses. Author law is discussed given the protection that it provides over creative elements of someone’s work. While patents may be used to protect intellectual property and innovation, author law can be used to protect creative processes such as a poem, a song, or even source code for software. Though, globally, there is no set guidelines which define all components of software and thus there is confusion over issues such as how long author law lasts after a product is released; can it be adapted; who is liable among other [<xref ref-type="bibr" rid="scirp.103273-ref16">16</xref>].</p><p>Open-source software (hereafter OSS) also has complexities when it comes to the licenses which are attached to a specific component. There are several licenses which could be attached to OSS; from the Apache License 2.0 to the MIT License among many others. Many of these licensing regimes share the same elements (see Thompson &amp; Jena, 2005), such as no royalties to be paid; no restrictions on the application of the software and creation of modifications or derivatives work permitted. The entire purpose of open source licensing is to limit restrictions and promote public availability; accordingly, there is no restriction on OSS being used for commercial purposes [<xref ref-type="bibr" rid="scirp.103273-ref17">17</xref>] [<xref ref-type="bibr" rid="scirp.103273-ref18">18</xref>]. But in using the OSS within their software, the developer becomes obliged under certain licensing terms which were attached to the utilized OSS components. This study has presented several theoretical examples, the main being that the user of the reused component may be required to display certain copyright notices related to the components reused in their version. To add, the user may also be required to make available certain code which could show their modifications and allow others to then use this.</p><p>These issues are a serious barrier for many developers seeking to build-upon reused components to create their own modified software. While they are willing to use reused software to build the base for their own version, many developers may then be reluctant to share their own intellectual property with others, essentially make that OSS in the process. In some cases, it means the developers that use OSS may require legal assistance to ensure they comply with all the licensing agreements. Failure to do this can result in legal action from the original author, and so OSS assets should be caveated with the note that they are still under the legal ownership of the author who has the right to take legal action if deemed necessary [<xref ref-type="bibr" rid="scirp.103273-ref19">19</xref>]. This can be a time-consuming process when a developer uses several reused components in their final version from several different authors. Many may steer away from OSS, instead choosing to develop the components in-house as this is then their own intellectual property under their own control and subject only to their regulation. As well as copyright rules, [<xref ref-type="bibr" rid="scirp.103273-ref20">20</xref>] also noted copyleft. Copyleft, also cited in [<xref ref-type="bibr" rid="scirp.103273-ref21">21</xref>] and [<xref ref-type="bibr" rid="scirp.103273-ref22">22</xref>] is the process of granting the right to freely use the intellectual property under the assumption that the user will do the same with their modifications. It supports the argument from [<xref ref-type="bibr" rid="scirp.103273-ref19">19</xref>] that a legal issue with greater adoption of reusing is licensing agreement which may force the user to share their modifications, something which they look to protect for business success.</p><p>Legal issues also incorporate liability [<xref ref-type="bibr" rid="scirp.103273-ref23">23</xref>]. Software does not also perform as expected and given the rising issue of cyber security and theft, businesses are increasingly looking at components which can be added to their technology to improve security, especially around the holding of consumer-related data given GDPR regulation. OSS has become a way for businesses to improve their own security quickly and in a cost-effective manner, noted by several authors including [<xref ref-type="bibr" rid="scirp.103273-ref24">24</xref>]. But if the security assets put in place fail the main issue is who will be liable, the business which is using the asset in their software, or the original author of that asset [<xref ref-type="bibr" rid="scirp.103273-ref25">25</xref>]. Trust is also an important concept to note. A user needs to have trust that the assets they are reusing are compliant with all licensing conditions. Given that these assets can be taken and modified and modified further means that open-source forums can have multiple versions available to use all tied up within a web of modifications and multiple developers being involved [<xref ref-type="bibr" rid="scirp.103273-ref24">24</xref>]. It becomes hard to understand whether all these modifications have been done legally and in compliance with all licensing requirements. Ultimately for a user to reuse this they need to have significant trust that the asset is legal or have a significant team of people able to check the origin of the code, and its modifications over time. It is having the resources available to ensure that there is no unlawful plagiarism within the software being reused which could lead to legal challenges, costs and implications within the future (<xref ref-type="table" rid="table1">Table 1</xref>).</p></sec><sec id="s4"><title>4. Methodological Issues</title><p>While the main benefit of software reuse is the reduction in time needed to successfully bring software to fruition a methodological issue to such may be that the software being reused may not be designed in a manner conductive to the task it is required for, requiring that ad hoc modification is applied [<xref ref-type="bibr" rid="scirp.103273-ref26">26</xref>]. Many of the studies cited here used a methodology in which they study the code in</p><table-wrap id="table1" ><label><xref ref-type="table" rid="table1">Table 1</xref></label><caption><title> Legal issues of software re-usability</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Legal Issue</th><th align="center" valign="middle" >Literature Summary</th></tr></thead><tr><td align="center" valign="middle" >Ownership</td><td align="center" valign="middle" >Making software available for open-source usage has benefitted businesses in reducing their workload, costs, and need for knowledge, expertise and resources during the development process [<xref ref-type="bibr" rid="scirp.103273-ref24">24</xref>] . Though without tracking past ownership, and enhancements to OSS a user may be reluctant to use themselves. There is also an issue related to whether the end user, after enhancing the OSS to meet their own specifications would need to then make this openly available, potentially impacting on their business competitive advantage [<xref ref-type="bibr" rid="scirp.103273-ref17">17</xref>] [<xref ref-type="bibr" rid="scirp.103273-ref18">18</xref>] .</td></tr><tr><td align="center" valign="middle" >Licensing Regimes of OSS</td><td align="center" valign="middle" >The main issues around licensing are 1) Copyleft [<xref ref-type="bibr" rid="scirp.103273-ref21">21</xref>] [<xref ref-type="bibr" rid="scirp.103273-ref22">22</xref>] , 2) Caveats attached to OSS and the potential for the owner, or author to take legal action if any are violated [<xref ref-type="bibr" rid="scirp.103273-ref25">25</xref>] [<xref ref-type="bibr" rid="scirp.103273-ref26">26</xref>] .</td></tr><tr><td align="center" valign="middle" >Liability</td><td align="center" valign="middle" >While reused software can help businesses expand their capabilities beyond their own knowledge by leveraging of others developments, there are significant gaps over who would be liable if something went wrong within the business due to a software asset which has been reused [<xref ref-type="bibr" rid="scirp.103273-ref23">23</xref>] . Businesses may be reluctant to use reused components without full assurance then are protected, though studies from [<xref ref-type="bibr" rid="scirp.103273-ref8">8</xref>] [<xref ref-type="bibr" rid="scirp.103273-ref9">9</xref>] show strong growth in the usage of reused components suggesting that while liability is an issue to overcome, it is being overcome in most cases, mainly by the risk being accepted by the business as the benefits are greater than the costs.</td></tr></tbody></table></table-wrap><p>software to find similarities which prove reuse. [<xref ref-type="bibr" rid="scirp.103273-ref27">27</xref>] choose to survey 128 developers over their experience with software reuse. It was found that 72% of the developers questioned cited complexity as a key barrier to software reuse. The complexity of old code essentially made it unusable.</p><p>An emergent pattern within software reuse has been that developers are only writing the visible application code which forms the tip of the APP, which differentiates the design and the way in which the APP or software interacts within the user [<xref ref-type="bibr" rid="scirp.103273-ref28">28</xref>]. The bulk of the back-office code and components are now reused in multiple APP’s, in a mix-and-match fashion [<xref ref-type="bibr" rid="scirp.103273-ref28">28</xref>]. The process of software reuse is not simple. There is high technical need for any developer seeking to reuse software within their application. The developer would need to undergo a process of component searching, understanding and adaption to their own needs. For an entry-level developer with little understanding over programming this can be a daunting experience and the logistical challenges involved with searching and adapting an asset to reuse could be a significant issue [<xref ref-type="bibr" rid="scirp.103273-ref29">29</xref>] [<xref ref-type="bibr" rid="scirp.103273-ref30">30</xref>].</p><p>The availability of open-source software has increased exponentially which had led to the creation of large repositories where software could be stored and viewed by others [<xref ref-type="bibr" rid="scirp.103273-ref31">31</xref>]. However, while [<xref ref-type="bibr" rid="scirp.103273-ref32">32</xref>] cites this as a major benefit to software reuse in general, [<xref ref-type="bibr" rid="scirp.103273-ref33">33</xref>] discusses how the expansion of different product variants is a challenge for developers, crowding out the market with multiple options confusing a would-be developer on which makes the best option (<xref ref-type="fig" rid="fig1">Figure 1</xref>). Reuse might also hinder new ideas and the making of innovations. Balance between innovation and reuse should be determined by the company’s strategy. Earlier work from [<xref ref-type="bibr" rid="scirp.103273-ref34">34</xref>] had created a list of obstacles to software reuse, summa</p><p>rized into nine key problems; namely technical (structure mismatch, steep learning curves), managerial problems (infrastructure clash, turf battles, inadequate resources) and cultural or psychological issues (apathy, fear, “not invented here syndrome”, ivory tower). It must be remembered that even if software is developed through reusing specific components, they still need to be maintained and updated accordingly. Reuse can add complexity by creating dependencies between developers and businesses [<xref ref-type="bibr" rid="scirp.103273-ref35">35</xref>]. Some of the mentioned problems with the dependencies identified by one of the respondents are web of dependencies, coordination cost, process and tool divergence and integration cost.</p><p>[<xref ref-type="bibr" rid="scirp.103273-ref36">36</xref>] summarized the difficulties in fully utilizing OSS as meeting the necessary pre-conditions. These included proper training of all software developers and testers to deal with OSS, including documentation, thorough programming guidelines, testing and programming and software design. The user of the asset needed to ensure they had the resources able to take these reusable components and merge them into their own infrastructure successfully. It has been noted that most reusable assets need to be changed once then are with another user to meet their individual specifications, meaning that technical knowledge is vital [<xref ref-type="bibr" rid="scirp.103273-ref37">37</xref>]. [<xref ref-type="bibr" rid="scirp.103273-ref38">38</xref>] also supported the findings of Kim (2005), focusing their study into the use of software reuse within SME’s. The key findings were while increase reuse rates among SME’s increased productivity and reduce total costs, it had little impact on the time to market given that SME’s needed significant time to ensure that they were: 1) compliant with all legal aspects of using the reusable assets, and 2) they had developed the technical knowledge internally to adapt and maintain this software. Though the current literature is positive over OSS and shows that many of the methodological issues are overcome due to the developer community which is created by sharing software. The main factors that make OSS more reliable are: 1) that developers are usually also users of the software, as well as members of a community of developers, 2) public availability of the source code and fast bug removal practices since thousands of independent programmers testing and fixing bugs of the software [<xref ref-type="bibr" rid="scirp.103273-ref39">39</xref>].</p><p>The development environment is also a potential issue restricting access to reusing software [<xref ref-type="bibr" rid="scirp.103273-ref40">40</xref>]. Well documented software/system architectures are essential to support decision-making about reuse, required to correctly integrate the different assets, thus reducing testing time [<xref ref-type="bibr" rid="scirp.103273-ref40">40</xref>]. Reuse is still possible without documentation as long as domain expertise within the team remains adequate, though without documentation there are legacy issues if key members of the development team leave the business, taking with them their knowledge and expertise. This is an important unsolved issue with legacy systems where experts have left and business and the documentation is out of sync, leaving a significant gap within the team over how to maintain and evolve the system [<xref ref-type="bibr" rid="scirp.103273-ref40">40</xref>] [<xref ref-type="bibr" rid="scirp.103273-ref41">41</xref>] [<xref ref-type="bibr" rid="scirp.103273-ref42">42</xref>]. The stability of the business and its software must be considered here, with stability vital to ensure business continuity [<xref ref-type="bibr" rid="scirp.103273-ref43">43</xref>] (<xref ref-type="table" rid="table2">Table 2</xref>).</p><table-wrap id="table2" ><label><xref ref-type="table" rid="table2">Table 2</xref></label><caption><title> Methodological issues of software re-usability</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Methodological Issue</th><th align="center" valign="middle" >Literature Summary</th></tr></thead><tr><td align="center" valign="middle" >In-house Expertise</td><td align="center" valign="middle" >While reusing software allows a business to leverage off the expertise of others, there is still the need for in-house expertise to understand, adapt and implement these reused components cited in [<xref ref-type="bibr" rid="scirp.103273-ref35">35</xref>] [<xref ref-type="bibr" rid="scirp.103273-ref37">37</xref>] [<xref ref-type="bibr" rid="scirp.103273-ref38">38</xref>] [<xref ref-type="bibr" rid="scirp.103273-ref39">39</xref>] showing agreement among researchers.</td></tr><tr><td align="center" valign="middle" >Meeting pre-conditions for utilizing OSS</td><td align="center" valign="middle" >Proper training of all software developers and testers to deal with OSS, including documentation, thorough programming guidelines, testing and programming and software design [<xref ref-type="bibr" rid="scirp.103273-ref36">36</xref>] , with elements of this noted by [<xref ref-type="bibr" rid="scirp.103273-ref29">29</xref>] [<xref ref-type="bibr" rid="scirp.103273-ref30">30</xref>] . Again there is agreement within the literature that these issues will impact all users of reused software components.</td></tr><tr><td align="center" valign="middle" >Crowded OSS Market</td><td align="center" valign="middle" >Open-source software has increased exponentially which had led to the creation of large repositories where software could be stored and viewed by others. Makes it harder to search through all options and make a choice [<xref ref-type="bibr" rid="scirp.103273-ref31">31</xref>] [<xref ref-type="bibr" rid="scirp.103273-ref33">33</xref>] .</td></tr><tr><td align="center" valign="middle" >Not-invented-here-syndrome</td><td align="center" valign="middle" >Stance adopted by some that avoids using or buying already existing products, research, standards, or knowledge because of their external origins [<xref ref-type="bibr" rid="scirp.103273-ref5">5</xref>] [<xref ref-type="bibr" rid="scirp.103273-ref43">43</xref>] .</td></tr></tbody></table></table-wrap></sec><sec id="s5"><title>5. Conclusions</title><p>This piece has provided a systematic review of past literature related to software reuse; specifically summarizing legal and methodological issues. Many studies agree that the expansion of software reuse has supported the expansion of software options, as well as the number of APP’s available to consumers. Reusing software reduces the resources needed to create an APP; i.e. resources such as time and cost.</p><p>Legally the main challenge for software reuse is ensuring compliance with global regulation related to patents, trademarks and author law. While patents and trademarks largely follow an accepted practice of registered intellectual property, author’s law is more complex and there is confusion over what it applies to, for how long, and how this would impact on legal issues such as liability. Methodologically there are several issues to wider adoption of software reuse such as have the internal expertise to fully understand the code, or asset being used; however, many of the studies considered in this piece are largely positive over using OSS to spur innovation and improve the productivity and security of assets, benefitting all who use OSS (<xref ref-type="table" rid="table3">Table 3</xref>).</p><table-wrap id="table3" ><label><xref ref-type="table" rid="table3">Table 3</xref></label><caption><title> Summary of literature into software reuse issues</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Study</th><th align="center" valign="middle" >Methodology</th><th align="center" valign="middle" >Key Findings</th></tr></thead><tr><td align="center" valign="middle" >[<xref ref-type="bibr" rid="scirp.103273-ref43">43</xref>]</td><td align="center" valign="middle" >Surveys</td><td align="center" valign="middle" >Effective reuse depends not only on finding and reusing components, but also on the ways those components are combined. The researcher refers to this process as “packaging”, noting how it can be technical difficult to match up the packaging and ensure a system using reused components works as intended. Unfortunately, these styles and packaging distinctions are often implicit; as a consequence, components with appropriate functionality may fail to work together.</td></tr><tr><td align="center" valign="middle" >[<xref ref-type="bibr" rid="scirp.103273-ref44">44</xref>]</td><td align="center" valign="middle" >Surveys (51 Questions)</td><td align="center" valign="middle" >Well documented software/system architectures are essential to support decision-making about reuse, required to correctly integrate the different assets, thus reducing testing time. A business needs to be well prepared to identify, handle and adapt reused software for their own business needs. There needs to be that technical expertise within the business, or there is the risk that a business is using reused components which they do not fully understand; leading to issues related to reliability, legal protection, security and performance.</td></tr><tr><td align="center" valign="middle" >[<xref ref-type="bibr" rid="scirp.103273-ref44">44</xref>]</td><td align="center" valign="middle" >Testing reliability of reused software components</td><td align="center" valign="middle" >Highlighted that some software components used in software are not fully functional, and used in a way which was not intended. Issue is that those using these reused components or assets may not fully understand them.</td></tr><tr><td align="center" valign="middle" >[<xref ref-type="bibr" rid="scirp.103273-ref45">45</xref>]</td><td align="center" valign="middle" >Analysis of 24 software reuse projects between 1994-1997 in European countries</td><td align="center" valign="middle" >A third of the projects tracked ultimately failed. Three main causes of failure were 1) not introducing reuse-specific processes, 2) not modifying non-reuse processes, and 3) not considering human factors. The root cause of these issues was a lack of commitment from top management along with the belief that the business did not need to further adapt or engineer these reused components to fit their business needs; instead believing they could simply be taken from a repository and used.</td></tr><tr><td align="center" valign="middle" >[<xref ref-type="bibr" rid="scirp.103273-ref21">21</xref>]</td><td align="center" valign="middle" >Extensive literature review</td><td align="center" valign="middle" >Legal issues surrounding software reuse can be summarize into three types of protection, namely patents, trademarks and author law. Businesses may shy away from using reused components because of the legal risks, and the financial repercussions there could be.</td></tr></tbody></table></table-wrap></sec><sec id="s6"><title>Acknowledgements</title><p>The author would like to express his cordial thanks to Prof. M. Z. Khanand Dr. Wadi Boulila for their valuable comments on the initial drafts.</p></sec><sec id="s7"><title>Conflicts of Interest</title><p>The author declares no conflicts of interest regarding the publication of this paper.</p></sec><sec id="s8"><title>Cite this paper</title><p>Saeed, T. (2020) Current Issues in Software Re-Usability: A Critical Review of the Methodological &amp; Legal Issues. Journal of Software Engineering and Applications, 13, 206-217. https://doi.org/10.4236/jsea.2020.139014</p></sec></body><back><ref-list><title>References</title><ref id="scirp.103273-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Frakes, W.B. and Fox, C.J. (1995) Sixteen Questions about Software Reuse. Communications of the ACM, 38, 75-67. https://doi.org/10.1145/203241.203260</mixed-citation></ref><ref id="scirp.103273-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Coulange, B. (2012) Software Reuse. Springer Science &amp; Business Media, London.</mixed-citation></ref><ref id="scirp.103273-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Mcllroy, M.D. (1968) Mass Produced Software Components. Proceedings of NATO Software Engineering Conference, Garmisch, Germany, October 1968, 138-155.</mixed-citation></ref><ref id="scirp.103273-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Ezran, M., Morisio, M. and Tully, C. (2012) Practical Software Reuse. Springer Science &amp; Business Media, London.</mixed-citation></ref><ref id="scirp.103273-ref5"><label>5</label><mixed-citation publication-type="book" xlink:type="simple">Walton, P. and Maiden, N., Eds. (2019) Integrated Software Reuse: Management and Techniques. Routledge, London. https://doi.org/10.4324/9780429455520</mixed-citation></ref><ref id="scirp.103273-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">Keswani, R., Joshi, S. and Jatain, A. (2014) Software Reuse in Practice. Proceedings of the 2014 Fourth International Conference on Advanced Computing &amp; Communication Technologies, Rohtak, India, 8-9 February 2014, 159-162. https://doi.org/10.1109/ACCT.2014.57</mixed-citation></ref><ref id="scirp.103273-ref7"><label>7</label><mixed-citation publication-type="book" xlink:type="simple">Land, R., Sundmark, D., Lüders, F., Krasteva, I. and Causevic, A. (2009) Reuse with Software Components—A Survey of Industrial State of Practice. In: Edwards, S.H. and Kulczycki, G., Eds., Formal Foundations of Reuse and Domain Engineering. ICSR 2009. Lecture Notes in Computer Science, Springer, Berlin, Heidelberg, 150-159. https://doi.org/10.1007/978-3-642-04211-9_15</mixed-citation></ref><ref id="scirp.103273-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">Ruiz, I.J.M., Nagappan, M., Adams, B. and Hassan, A.E. (2012) Understanding Reuse in the Android Market. 2012 20th IEEE International Conference on Program Comprehension (ICPC), Passau, Germany, 11-13 June 2012, 113-122.https://doi.org/10.1109/ICPC.2012.6240477</mixed-citation></ref><ref id="scirp.103273-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">Mojica, I.J., Adams, B., Nagappan, M., Dienst, S., Berger, T. and Hassan, A.E. (2013) A Large-Scale Empirical Study on Software Reuse in Mobile Apps. IEEE Software, 31, 78-86. https://doi.org/10.1109/MS.2013.142</mixed-citation></ref><ref id="scirp.103273-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">Hauge, &amp;#216;., Ayala, C. and Conradi, R. (2010) Adoption of Open Source Software in Software-Intensive Organizations—A Systematic Literature Review. Information and Software Technology, 52, 1133-1154. https://doi.org/10.1016/j.infsof.2010.05.008</mixed-citation></ref><ref id="scirp.103273-ref11"><label>11</label><mixed-citation publication-type="other" xlink:type="simple">Morisio, M., Ezran, M. and Tully, C. (2002) Success and Failure Factors in Software Reuse. IEEE Transactions on Software Engineering, 28, 340-357.https://doi.org/10.1109/TSE.2002.995420</mixed-citation></ref><ref id="scirp.103273-ref12"><label>12</label><mixed-citation publication-type="other" xlink:type="simple">Mandal, A. and Pal, S.C. (2012) Emergence of Component Based Software Engineering. International Journal of Software Engineering and Knowledge Engineering, 2, 311-315.</mixed-citation></ref><ref id="scirp.103273-ref13"><label>13</label><mixed-citation publication-type="other" xlink:type="simple">Ayala, C.P., Cruzes, D., Hauge, O. and Conradi, R. (2011) Five Facts on the Adoption of Open Source Software. IEEE Software, 28, 95-99.https://doi.org/10.1109/MS.2011.32</mixed-citation></ref><ref id="scirp.103273-ref14"><label>14</label><mixed-citation publication-type="book" xlink:type="simple">Gkortzis, A., Feitosa, D. and Spinellis, D. (2019) A Double-Edged Sword? Software Reuse and Potential Security Vulnerabilities. In: Peng, X., Ampatzoglou, A. and Bhowmik, T., Eds., Reuse in the Big Data Era. ICSR 2019. Lecture Notes in Computer Science, Springer, Cham, 187-203.https://doi.org/10.1007/978-3-030-22888-0_13</mixed-citation></ref><ref id="scirp.103273-ref15"><label>15</label><mixed-citation publication-type="other" xlink:type="simple">Von Krogh, G., Haefliger, S., Spaeth, S. and Wallin, M.W. (2012) Carrots and Rainbows: Motivation and Social Practice in Open Source Software Development. Management Information Systems Quarterly, 36, 649-676. https://doi.org/10.2307/41703471</mixed-citation></ref><ref id="scirp.103273-ref16"><label>16</label><mixed-citation publication-type="other" xlink:type="simple">Succi, G., Succi, G. and Ronchetti, M. (1996) Legal Issues Regarding Software Use and Reuse within the European Union Legislation. Journal of Computing and Information Technology, 4, 179-186.</mixed-citation></ref><ref id="scirp.103273-ref17"><label>17</label><mixed-citation publication-type="other" xlink:type="simple">Lim, W.C. (1996) Legal and Contractual Issues in Software Reuse. Proceedings of Fourth IEEE International Conference on Software Reuse, Orlando, FL, 23-26 April 1996, 156-164.</mixed-citation></ref><ref id="scirp.103273-ref18"><label>18</label><mixed-citation publication-type="other" xlink:type="simple">German, D. and Di Penta, M. (2012) A Method for Open Source License Compliance of Java Applications. IEEE Software, 29, 58-63. https://doi.org/10.1109/MS.2012.50</mixed-citation></ref><ref id="scirp.103273-ref19"><label>19</label><mixed-citation publication-type="other" xlink:type="simple">Kashima, Y., Hayase, Y., Yoshida, N., Manabe, Y. and Inoue, K. (2011) An Investigation into the Impact of Software Licenses on Copy-and-Paste Reuse among OSS Projects. 2011 18th Working Conference on Reverse Engineering, Limerick, Ireland, 17-20 October, 2011, 28-32. https://doi.org/10.1109/WCRE.2011.14</mixed-citation></ref><ref id="scirp.103273-ref20"><label>20</label><mixed-citation publication-type="other" xlink:type="simple">Kennedy, D.M. (2001) A Primer on Open Source Licensing Legal Issues: Copyright, Copyleft and Copyfuture. Saint Louis University Public Law Review, 20, Article 7.</mixed-citation></ref><ref id="scirp.103273-ref21"><label>21</label><mixed-citation publication-type="book" xlink:type="simple">Fitzgerald, B. and Bassett, G., Eds. (2003) Legal Issues Relating to Free and Open Source Software. Essays in Technology Policy and Law, 11-36.</mixed-citation></ref><ref id="scirp.103273-ref22"><label>22</label><mixed-citation publication-type="other" xlink:type="simple">Rosen, L. (2005) Open Source Licensing. Vol. 692, Prentice Hall, London.</mixed-citation></ref><ref id="scirp.103273-ref23"><label>23</label><mixed-citation publication-type="other" xlink:type="simple">McGowan, D. (2001) Legal Implications of Open-Source Software. University of Illinois Law Review, 241. https://doi.org/10.2139/ssrn.243237</mixed-citation></ref><ref id="scirp.103273-ref24"><label>24</label><mixed-citation publication-type="other" xlink:type="simple">Wu, Y. (2019) Large-Scale Analysis of Software Reuse for Code and License Changes. Osaka University, Osaka.</mixed-citation></ref><ref id="scirp.103273-ref25"><label>25</label><mixed-citation publication-type="other" xlink:type="simple">Singh, S., Singh, S. and Singh, G. (2010) Reusability of the Software. International journal of computer applications, 7, 38-41. https://doi.org/10.5120/1338-1703</mixed-citation></ref><ref id="scirp.103273-ref26"><label>26</label><mixed-citation publication-type="other" xlink:type="simple">Holmes, R., and Walker, R.J. (2013). Systematizing Pragmatic Software Reuse. ACM Transactions on Software Engineering and Methodology (TOSEM), 21, 1-44.https://doi.org/10.1145/2377656.2377657</mixed-citation></ref><ref id="scirp.103273-ref27"><label>27</label><mixed-citation publication-type="other" xlink:type="simple">Agresti, W.W. (2011) Software Reuse: Developers’ Experiences and Perceptions. Journal of Software Engineering and Applications, 4, 48-58. https://doi.org/10.4236/jsea.2011.41006</mixed-citation></ref><ref id="scirp.103273-ref28"><label>28</label><mixed-citation publication-type="other" xlink:type="simple">Frakes, W.B. and Tortorella, M. (2008) Foundational Issues in Software Reuse and Reliability. Department of Industrial and Systems Engineering, Rutgers University, Working Paper 04-002.</mixed-citation></ref><ref id="scirp.103273-ref29"><label>29</label><mixed-citation publication-type="other" xlink:type="simple">Mikkonen, T. and Taivalsaari, A. (2019) Software Reuse in the Era of Opportunistic Design. IEEE Software, 36, 105-111. https://doi.org/10.1109/MS.2018.2884883</mixed-citation></ref><ref id="scirp.103273-ref30"><label>30</label><mixed-citation publication-type="other" xlink:type="simple">Hooper, J.W. and Chester, R.O. (1991) Software Reuse: Guidelines and Methods, Springer Science and Business Media, London. https://doi.org/10.1007/978-1-4615-3764-9</mixed-citation></ref><ref id="scirp.103273-ref31"><label>31</label><mixed-citation publication-type="book" xlink:type="simple">Deshpande, A. and Riehle, D. (2008) The Total Growth of Open Source. In: Russo, B., Damiani, E., Hissam, S., Lundell, B. and Succi, G., Eds., Open Source Development, Communities and Quality. OSS 2008. IFIP—The International Federation for Information Processing, Springer, Boston, MA, 197-209.https://doi.org/10.1007/978-0-387-09684-1_16</mixed-citation></ref><ref id="scirp.103273-ref32"><label>32</label><mixed-citation publication-type="other" xlink:type="simple">AlMarzouq, M., Zheng, L., Rong, G. and Grover, V. (2005) Open Source: Concepts, Benefits and Challenges. Communications of the Association for Information Systems, 16, 756-784. https://doi.org/10.17705/1CAIS.01637</mixed-citation></ref><ref id="scirp.103273-ref33"><label>33</label><mixed-citation publication-type="other" xlink:type="simple">Thompson, C.W. and Jena, R. (2005) Digital Licensing [Software Reuse]. IEEE Internet Computing, 9, 85-88. https://doi.org/10.1109/MIC.2005.77</mixed-citation></ref><ref id="scirp.103273-ref34"><label>34</label><mixed-citation publication-type="other" xlink:type="simple">Joshua, J.V., Alao, D.O., Okolie, S.O. and Awodele, O. (2013) Software Ecosystem: Features, Benefits and Challenges. International Journal of Advanced Computer Science and Applications, 4, 242-247.</mixed-citation></ref><ref id="scirp.103273-ref35"><label>35</label><mixed-citation publication-type="book" xlink:type="simple">Reifer, D.J. (2001) Implementing a Practical Reuse Program for Software Components. In: Heineman, G.T. and Councill, W.T., Eds., Component-Based Software Engineering: Putting the Pieces Together, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 453-466.</mixed-citation></ref><ref id="scirp.103273-ref36"><label>36</label><mixed-citation publication-type="other" xlink:type="simple">Shiva, S.G. and Abou Shala, L. (2007) Software Reuse: Research and Practice. Fourth International Conference on Information Technology (ITNG’07), Las Vegas, NV, 2-4 April 2007, 603-609. https://doi.org/10.1109/ITNG.2007.182</mixed-citation></ref><ref id="scirp.103273-ref37"><label>37</label><mixed-citation publication-type="other" xlink:type="simple">Kim, W. (2005) On Issues with Component-Based Software Reuse. The Journal of Object Technology, 4, 45-50. https://doi.org/10.5381/jot.2005.4.7.c5</mixed-citation></ref><ref id="scirp.103273-ref38"><label>38</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Khalid</surname><given-names> H. </given-names></name>,<etal>et al</etal>. (<year>2017</year>)<article-title>Software Reuse: Component-Based Development Issues</article-title><source> International Journal of Scientific &amp; Engineering Research</source><volume> 8</volume>,<fpage> 201</fpage>-<lpage>205</lpage>.<pub-id pub-id-type="doi"></pub-id></mixed-citation></ref><ref id="scirp.103273-ref39"><label>39</label><mixed-citation publication-type="other" xlink:type="simple">Ha, W., Sun, H. and Xie, M. (2012) Reuse of Embedded Software in Small and Medium Enterprises. 2012 IEEE International Conference on Management of Innovation &amp; Technology (ICMIT), Sanur Bali, 11-13 June 2012, 394-399. https://doi.org/10.1109/ICMIT.2012.6225838</mixed-citation></ref><ref id="scirp.103273-ref40"><label>40</label><mixed-citation publication-type="other" xlink:type="simple">Pandey, R.K. and Tiwari, V. (2011) Reliability Issues in Open Source Software. International Journal of Computer Applications, 34, 34-38.</mixed-citation></ref><ref id="scirp.103273-ref41"><label>41</label><mixed-citation publication-type="other" xlink:type="simple">Jha, M. and O’Brien, L. (2009) Identifying Issues and Concerns in Software Reuse in Software Product Lines. International Conference on Software Reuse, Springer, Berlin, Heidelberg, 181-190.</mixed-citation></ref><ref id="scirp.103273-ref42"><label>42</label><mixed-citation publication-type="other" xlink:type="simple">Jha, S., Jha, M., O’Brien, L. and Wells, M. (2014) Integrating Legacy System into Big Data Solutions: Time to Make the Change. Asia-Pacific World Congress on Computer Science and Engineering, Nadi, 4-5 November, 2014, 1-10.https://doi.org/10.1109/APWCCSE.2014.7053872</mixed-citation></ref><ref id="scirp.103273-ref43"><label>43</label><mixed-citation publication-type="other" xlink:type="simple">Dantas, F. and Garcia, A. (2010) Software Reuse versus Stability: Evaluating Advanced Programming Techniques. 2010 Brazilian Symposium on Software Engineering, Salvador, Bahia, 27 September-1 October 2010, 40-49. https://doi.org/10.1109/SBES.2010.13</mixed-citation></ref><ref id="scirp.103273-ref44"><label>44</label><mixed-citation publication-type="other" xlink:type="simple">Griss, M.L. (1993) Software Reuse: From Library to Factory. IBM Systems Journal, 32, 548-566. https://doi.org/10.1147/sj.324.0548</mixed-citation></ref><ref id="scirp.103273-ref45"><label>45</label><mixed-citation publication-type="other" xlink:type="simple">Jha, M., O’Brien, L. and Maheshwari, P. (2008) Identify Issues and Concerns in Software Reuse. Proceedings of Second International Conference on Information Processing, Banglore, India, 8-10 August 2008, 307-314.</mixed-citation></ref></ref-list></back></article>