Saturday, February 28, 2009

Implications of Software Reuse

If one person has written a component but others have revised it, who is responsible if the component fails? What are the legal and ethical implications of reusing someone else’s component?

After reading the question repeatedly, I think that it is somewhat vague and I was able to deduce a couple of different scenarios where different things may apply. I found the term “reusing” as somewhat diverse because it could mean reusing with permission or without.

Anyway, I will try my best to express my views on the question. First off, I will tackle the first part of the question. Since the question implied that the software component was revised, then the reuser or reviser bears the primary liability if the component fails.

The second part of the question asks about the legal and ethical implications of reusing someone else’s component. I found over the internet four legal issues that are involved in software component reuse. These are: (1) Trade secret protection, (2) Patent protection, (3) Copyright protection, and (4) Responsibilities and liabilities. Trade secret protection is an issue that software developers face when turning over a software or any component of it to someone else. Since most software is tailored to a company’s needs for competitive advantage, turning it over to someone else means that you are also going to turn over the company’s trade secrets or the “know-how’s” to the business. This can be done by having the reuser sign a nondisclosure agreement before delivering the components to be reused. If the reuser violates the agreement, then damages can be rightfully claimed. However, we still cannot stop others from using the knowledge. This is where patent protection can be employed. Patents are granted for technical inventions that are new and involve inventive steps. Patents are granted for processes or methods which describe how products work. The third issue is copyright protection. Copyrighting in software only protects the software itself and not the underlying principles and ideas. Simply, copyrighting protects the software from being illegally reproduced or “pirated”. It is also a matter of morality. Only the copyright owners have the right to reproduce, reuse and maintain their software. The last, but not the least, issue is responsibilities and liabilities. This is somewhat connected to the first part of the question wherein it involves asking who will be held responsible and liable for a particular reused software. According to what I read, software is usually reused at one’s own risk. So to prevent damages or failures, it is the reuser’s responsibility to have the software undergo quality assurance to check if the reused software fulfills quality standards.

As a conclusion, no matter what the circumstances are in software reuse and revision, it is always important to consider the legal and ethical implications of such an action. This is necessary in determining who will bear the responsibility if the component behaves unexpectedly or malfunctions.

No comments:

Post a Comment