II. Limitations of Intellectual Property

  • 1992 case of Computer Associates International, Inc., v. Altai, Inc. The court’s abstraction-filtration-comparison test recognized that an idea could exist at multiples levels of computer program and not solely at the abstract level. Moreover, it set the ultimate comparison not between the programs as a whole, but between the protectable elements of the plaintiff’s program and the allegedly infringing program. This is especially helpful when determining substantial similarity or similarities between the non-literal elements of two or more programs. Under this test, usually a computer program is dissected according to its varying levels of generality. Then each level of abstraction is examined to filter out the program elements that are unprotected. External factors such as interface specifications, de facto industry standards, and accepted programming practices are not protectable under copyright law. Finally, the remaining protected elements are compared with the allegedly infringing program to determine whether substantial elements of the plaintiff’s program have been misappropriated.[1]
  • Fair-Use Doctrine. Unlike a book, it is difficult to use just a small portion of a copyrighted computer software. However, under the fair-use doctrine the law allows portions of the copyrighted materials to be used without permission under certain circumstances. Title 17, 107 of the U.S. Code established that courts should consider four factors when deciding whether a particular use of copyrighted material is fair and can be allowed without penalty:[2]
  1. Purpose and character of the copier’s use of the copyrighted work. It states the types of uses considered to be potentially fair. The text of the first factor provision also makes clear that “whether the use is of commercial nature or is for non-profit educational purpose” is also important.
  1. The nature of the copy-righted work.
  1. The amount and substantiality of the portion used in relation to the work as a whole. Substantiality here is judged not only quantitatively but also qualitatively.
  1. The effect of the use upon the potential market for or the value of the copyrighted work. The court focuses on the “harm” factor as the most outcome-determinative.

Reverse Engineering. The process of taking something apart in order to understand it, built a copy of it, or improve it. Reverse engineering is usually used in computer hardware but has been increasingly applied to software as well. To reverse engineer a software, an individual has to work backwards from object code to source code. Software is analyzed to create a new representation of the system in a different form or at a higher level of abstraction. Often, reverse engineering begins by extracting Design details from the program code. Design-stage details about an information system are more conceptual and less defined than a program code. Another frequent use of reverse engineering for software is modifying an application than ran on one vendor’s database so that it can run on another's. Some database management systems use their own programming language for application development. As a result, organizations that want to change database vendors are faced with rewriting existing applications using the new vendor’s database programming. The cost as well as the length of time required for redevelopment can deter organization from changing vendors and deprive it from possible benefits of converting to a better improved database technology. Using reverse engineering in this case a developer can use the code of current database programming language to recover the design of the information system application.[3]

Reverse engineering ordinarily means, “to study or analyze in order to learn details of design, construction, and operation, and perhaps to produce a copy or a more improved version.”[4] Hence, an individual who acquired a computer software in a valid transaction can reverse engineer its source code to understand the composition of the program. Once understood, the individual can then create a new program that is interoperable or could work with the reverse engineered program, or a derivative program that competes with the original. 

Most litigation involving reverse engineering of software rely on the production by another party from a source code that was purchased legally. The investigation begins when the source code was made available for a small price. The source code makes up the plans for any type of software. Although the source code is not the actual product, it is however the blueprint. The source code is the main focus of software litigation. The litigation will focus on the original code that was written by a human programmer instead of the object code that is only understandable to a computer.

The ethics of using reverse engineering are debated. Many have acknowledged the positive impact that reverse engineering has on the computer software industry. In fact, the U.S. Supreme Court held that reverse engineering is an “essential part of innovation.”[5] However, this does not mean that [[Software Developer]]s is willing and interested in sharing the workings of their programs. Some people believe that reverse engineering should be illegal as a matter of copyright and trade law. The unauthorized copies of program made via reverse engineering uncovers software designs that someone who had taken great time and cost to develop, and unfairly robs the creator of future earnings and significantly reduces the business incentive for software development.

In the case of Atari Games Corp. v. Nintendo of America, the court ruled that reverse engineering an object code to discern the unprotectable ideas in a computer program is considered “fair-use.” The disassembly of object code in order to gain an understanding of the ideas and functional concepts embodied in the code is fair use that is privileged by section 107 of the Act.

Reverse engineering is “fair use” if it enables a company to create software that interoperates with another company’s software or hardware and provides a useful function. This is especially true if the software’s creator refuses to cooperate by providing documentation to help create interoperable software. From the consumer’s standpoint, such stifling of competition increases costs and reduces business options. Reverse engineering is also a useful tool in detecting software bugs and security holes.[6] One frequent use of reverse engineering for software is to modify an application that rans on one vendor’s database to make it run on another’s.

Database management systems use their own programming language for application development. As a result, may organizations that want to change database vendors are faced with rewriting existing applications using the new vendor’s database programming language. The cost and length of time required for this redevelopment can deter an organization from changing vendors and deprive it of the possible benefits of converting to an improved database technology. Using reverse engineering, a developer can use the code of the current database programming language to recover the design of the information system application. Thus, greatly reduces the time and cost needed to migrate the organization’s applications to the new database management system. In numerous cases the courts have ruled in favor of using reverse engineering to enable interoperability and promote innovation.[7]

 

References:

[1] Mennell, Harvard Journal of Law & Technology; Spring2018 page 331.

[2] 17 U.S.C. §107 (1988).

[3] Reynolds, “Ethics in Information Technology,” page 236.

[4] Bowers v. Baystate Techs., Inc., 320 F.3d 1317, 1326 (3d Cir. 2003) (quoting RANDOM

House Unabridged Dictionary (2d ed. 1993)).

[5] Boats, Inc. v. Thunder Craft Boats, Inc., 489 U.S. 141, 160 (1989).

Boats, Inc. v. Thunder Craft Boats, Inc., 489 U.S. 141, 160 (1989).

[6] Ibid page 238.

[7] Id.