By Marc S. Friedman, Esq., Stanley H. Kremen, CDP, and Pauline L. Wen, Esq.


A major computer software company has retained the services of an attorney to represent it in litigation alleging that an up-and-coming software firm has pirated its software. The copyright, patent, trade secret, and software piracy issues associated with this litigation are complex and difficult for the attorney, the judge, and the jury to grasp. In order to adequately represent the client, an attorney requires the assistance of a computer expert to properly assess and evaluate the complex technical evidence. Regardless of the resolution of the matter through settlement, arbitration or litigation, a technical expert is necessary to properly evaluate the case and to deftly reduce complex technical concepts to simple terms so that attorneys, arbitrators, the parties, judges, and juries fully understand the issues. Technical experts are typically required to provide or defend issues arising from patent infringement, copyright infringement, trade secret misappropriation, and software piracy.

This article examines the critical role of the computer expert. The selection of a computer expert is crucial. Computer experts can be used by attorneys to help resolve computer-related intellectual property disputes without costly, time-consuming litigation. If litigation proves necessary, the services of a computer expert are essential during pretrial proceedings and at the trial itself.

What is the role of a Computer Expert?

A computer expert makes the technical aspects of a computer-related intellectual property dispute understandable to laypersons, including lawyers and their clients. For example, a technical expert may evaluate whether a competitor's software program is "substantially similar" to another's in a potential copyright infringement suit. At times, an expert may conclude that a threatened claim is weak or even baseless. As a result, a party may refrain from suit and, possibly, avoid serious Rule 11 sanctions. If a lawsuit is filed, the technical expert's assistance will be important to pre-filing preparation, pretrial discovery and the presentation of evidence at trial. A technical expert may be essential in a non-jury trial by presenting a case in terms understandable to the judge so that the judge can adequately assess the case.

Computer-Related Intellectual Property Disputes Which Require Technical Experts

Technical experts are typically required to prove or defend issues arising from patent infringement, copyright infringement, trade secret misappropriation, and software piracy.

Copyright Infringement

A technical expert must first investigate exactly what the plaintiff's copyright and what the defendant infringed upon protect. These elements are usually included within three general categories:

The expert must examine the original software and look for a copyright notice, as the software must clearly state that is a copyrighted work, who owns the work, and the creation date. Even though the copyright registration is not necessary for copyright ownership, in order to claim copyright infringement, the owner must have a valid copyright registration in the computer software. The expert must then examine the owner's version control system. He or she must determine whether the software was published or was in the public domain prior to the copyright date. Moreover, the expert must determine whether the defendant had sufficient access to enable him or her to copy the plaintiff's software.

The most important element of the expert's investigation is an examination of the defendant's software. If the source code is available, the expert should launch a full-scale investigation. Otherwise, the expert should examine the software for similarities in the overall design. Looking at screens, reports, menus and software logic hierarchy does this. The objective is to determine whether probable cause exists for a copyright infringement lawsuit. Once a lawsuit is instituted, the defendant's source code can be obtained during discovery, perhaps subject to the terms of a confidentiality order.

Patent Infringement

Like in the case of copyright infringement, the technical expert must first investigate exactly what is protected by the patent and what the defendant infringed. An examination of the patent claims and specifications is essential to this investigation. While patent protection is more difficult to obtain, patent protection can be broader than copyright protection. A patent can protect a:

In the case of computer software, a pure mathematical algorithm, without any specific end use, is not patentable. However, a new format type (e.g., a new spreadsheet concept) could be patentable. A patentable claim could include computer software that controls industrial processes or devices, even though such software utilizes mathematical algorithms. Diamond v. Diehr, 450 U.S. 175 (1981).

The technical expert must examine the patent to determine specifically what the claims and specifications protect. He or she must then look for public domain similarities to ascertain the validity of the claims. Finally, he or she must examine the defendant's software and determine the areas of infringement. Sometimes, examination of source code is not necessary, but it would not hurt.

Misappropriation of a Trade Secret

Trade secret law may provide the broadest protection against copying or misappropriation. This protection extends not only to the software itself but also to any derivative work. In this case, the expert must determine whether the software was sufficiently novel and whether it was treated by the plaintiff as a trade secret. The expert must determine whether the defendant knew that the software was a trade secret, had access to the secret, and used the secret in an unauthorized manner. The expert must examine the defendant's software to uncover areas of violation. However, to be thorough, the expert must also search the public domain, because if the software exists therein through no fault of the defendant, then the defendant did not violate the plaintiff's confidence.

Elements of Discovery Required by a Technical Expert

In order to complete a forensic investigation in an intellectual property dispute involving software piracy, a computer expert must have access to the following information:

Software Piracy

In order to establish software piracy, the computer expert must launch a full-scale forensic investigation. There are at least seven different instances of software piracy which would usually be investigated:

The forensic investigation is made by the expert using both object and source code. A comparison of source code is extremely difficult. Usually, software systems are very large. Often, a software system contains several hundred thousand lines of source code. In these cases, locating copied sections is very time consuming. As computer-related litigation can be very expensive, an attorney should carefully direct the expert's efforts in order to ensure that an expert produces the most ideal work and does not waste the client's money.

One tool that can be very useful in a forensic investigation is HIPO

(Hierarchy plus Input - Process - Output)

This is a documentation technique developed by IBM during the 1970's. It was developed as a structured analysis tool. It was intended that HIPO diagrams be created prior to actual software development. This would impose a structure upon the software created from these diagrams thereby insuring maintainability. However, it is possible to develop HIPO diagrams from already existing software using the source code. The hierarchy chart shows the relationship between various programs and modules. It appears similar to a corporate organization chart. One IPO diagram is then generated for each program or module on the hierarchy diagram. In other words, each box on the hierarchy chart generates its own IPO diagram. The IPO diagram shows the Input, Processing, and Output portions of each programming step within the program or module. Using HIPO enables an expert to see the forest through the trees, and makes his forensic investigation more manageable.

It is important to remember that an individual who develops software similar to existing software, even where the functionality is similar, is not necessarily guilty of software piracy. Copyright laws do not protect computer algorithms. Even where it can be shown that the individual had access to the original software, the new software may not have been copied. Similar functionality may have been created merely from the marketing needs of a particular industry or profession.

What follows is a methodology that a computer expert can use to establish software piracy:

Direct (Exact) Duplication of Object Code

Direct (exact) duplication of object code is the most common form of software piracy. The program is produced by making an exact magnetic copy of the original. It is very simple to accomplish using standard computer utilities. This type of piracy is prevalent among personal computer users. However, this type of copying can be performed on any computer. It is so widespread because it does not require the defendant to use the plaintiff's source code.

To establish software piracy resulting from direct duplication of object code, the technical expert would compare the file sizes and creation dates of both the plaintiff's and defendant's programs. If they are identical, the expert then performs a byte-by-byte comparison of the defendant's and the plaintiff's object code. If defendant's software was produced by direct duplication, then the object files would be identical. Another clue would be to look at a character dump of both object files. Most programmers put some character information into their programs. While object code is not usually understandable, the character information contained therein can often be recognized. If the defendant's software was copied from plaintiff's object code, the identifying character information should be recognizable. During discovery, source code should be demanded, as the defendant probably cannot produce source code.

Updated Derivative Software From Original Source Code

If the defendant has access to plaintiff's source code, he would be able to modify and improve the software to make it more marketable. He would want to make modifications to the original software to enable it to run on a different computer or with a different operating system. In addition, by making such modifications, he is able to disguise the software so as to make piracy less detectable.

The defendant would produce the new software by modifying the plaintiff's original source code. Probably, the original formats of the screens, reports and menus will also have been changed. New screens and reports will have been generated. Often, new functions will have been added. Possibly, some of the main logic will have been modified. However, there are limits to the logic modification, since severe modification would make a complete re-write more cost effective.

To establish this type of software piracy, a computer expert must compare source code of the defendant's software with that of the plaintiff's software. First, since the programming languages are the same, the expert should search for copied segments of program code (exact duplication). Next, he should examine the data file structures of both systems. They should be identical or substantially similar. Duplication of file structure is one of the telltale indications of software piracy. The expert should then examine the program logic. In this type of software piracy, large segments of logic would be identical. Variables would have the same or similar names, and identical constants would be used.

Direct (Exact) Translation from Original Source Code Into Another Programming Language

Software pirates are usually very clever. Translation of the original source code into another programming language accomplishes three things. First, it can disguise the final product. Second, it can permit the software to run more efficiently on a different computer or operating system. Third, it can enable the software to be produced from original source code by translating from one programming language into another. This is usually performed on a line-by-line basis.

To establish software piracy in this instance, the expert must run both the plaintiff's and defendant's software to demonstrate identical operation. In addition, he or she must compare both plaintiff's and defendant's source code. If the defendant's software was produced by direct translation of plaintiff's source code, then the screens, reports and menus should be identical, the file structure should be identical, the constants should be identical, and there should be a one-to-one correspondence between the variables across both systems. To further establish this type of software piracy, the expert should develop HIPO charts from both plaintiff's and defendant's source code. The hierarchical charts should be identical. The IPO charts should show that the same logic was used to create both systems.

Updated Derivative Software from Translated Source Code

After a software pirate has translated software into a new programming language, he would probably perform modifications to the software. This would be done to further disguise the software and to improve the software following translation. Extensive modification to translated software could make software piracy virtually undetectable. Once again, screens, reports and menus would be changed significantly. New screens and reports as well as new functions would be added. There might also be some modification of the main logic.

Software piracy can be established by a computer expert both from examination of source code of both systems and from observing software operation of both systems. The expert should examine the file structures of both systems. They should be identical or, at least, very similar. He or she should search the source code for constants. Many would be the same. Finally, the expert should develop HIPO charts. He or she should find that large sections of the hierarchy are identical or similar. In those cases where the hierarchy is identical, the expert should examine the corresponding IPO diagrams. They should also be identical or similar.

Exact Duplication of Software Using a 4GL

The late 1970's and early 1980's witnessed the development of fourth generation software development systems. With such 4GL systems, a software analyst could potentially create entire software systems at a terminal without having to write a single line of program code. Thus, software piracy acquired a new dimension. Rather than copying object modules or translating original source code, the pirate could easily duplicate the exact external functionality of someone else's software. Copying using a 4GL is much simpler than translation, and it provides ease of subsequent modification. It can be done with or without the pirate having original source code available. If he has the source code available, he would duplicate the original data file structure as well as the data flow. On the other hand, he could derive a new file structure without source code that would function just as well. The pirate can copy the software merely by reading the user manuals and by observing software operation. Essentially, he duplicates the design of the original software.

The technical expert can establish this type of software piracy both by observation of software operation and from examination of the source code. If the plaintiff's source code was available to the defendant when he copied the software, the data file structures should be identical or extremely similar. If the source code was not available to him, the file structure should contain the same elements (fields) which have the same specifications, but which are in a different order. Screens, reports and menus should be identical. This can be observed from software operation as well as source code. Finally, the expert should prepare HIPO diagrams. They should be identical.

Updated Derivative Software from 4GL Translation

Once a program has been duplicated using a 4GL, a software pirate would probably update and modify the software. Piracy in the resulting software would be extremely difficult to detect. Such modifications would be simple to generate.

A technical expert would have difficulty establishing software piracy in this instance. Where sufficient modification has been performed, the resulting software is virtually new and original. The expert should examine the source code and observe software operation. He or she should examine the data file structures for similarities. The expert should examine the design of the system for investigating screens, reports, menus and program logic. Finally, he or she should develop HIPO diagrams and search for similarities in logic.

Newly Developed Software Where Only the Design Was Copied

There have been many instances of software copyright infringement where the program code was completely new (not copied), but where there was a deliberate effort to duplicate the design of an existing system. This was usually done to enhance the marketability of a newly developed product, especially when the original software was very popular among consumers.

This issue demands that an expert be able to show striking similarities in structure, function and organization. Menus, screens, reports and logic should be similar. Specific methods of accomplishing certain tasks should be identical. An example of this would be the use of all the same function keys to accomplish specific tasks. Copyright infringement is demonstrated by observation of software operation. Nothing would be gained by examination of source code. If the software has been sufficiently modified, proving copyright infringement would be very difficult.

Using an Expert to Resolve Computer-Related Intellectual Property Claims Without Litigation

Most computer-related intellectual property claims never go to court. Due to the high cost of litigation and the uncertainty of outcome, they are either settled or abandoned. A technical expert can be used to increase the chance of reaching a favorable settlement quickly. With an enhanced technical perspective, an expert will work with an attorney to help him or her prepare an imposing argument of the merits of his case and the weaknesses of the opposition's case. In such instances, the attorney and the expert, working as a team, often convince the opposing side that litigation would accomplish nothing.

Use of Computer Experts in Pretrial Proceedings

Computer-related intellectual property litigation requires one or more independent technical experts. An expert's report is usually submitted to the adversary during pretrial discovery. At a minimum, the report is required to set forth the opinions that the expert will offer at trial and the basis for these opinions. However, many reports are more substantial. They often become treatises that attempt to prove whether or not infringement occurred. At times, because of the overwhelming nature of an expert's technical report, the opposition offers to settle or withdraw from the proceedings. If the attorney hopes to settle the matter without a trial, this type of report is desirable. However, where the attorney knows that a settlement is unlikely, only a minimal report should be produced. Why should an expert over-prepare the opposition for trial?

During pretrial preparation, an expert should review pleadings for factual accuracy and suggest changes. A computer expert should assist in preparing the complaint or, where required, counterclaim. The expert should also help prepare interrogatories, document requests, and requests for admission addressing the technical aspects of the case.

With intellectual property litigation, the expert should attend depositions of all technical witnesses. In preparation for such depositions, the expert prepares questions for the attorney to ask. At depositions the expert can provide ad hoc information to an attorney that could make the depositions more meaningful or less damaging. Normally, the expert is deposed as a part of pretrial discovery. An expert helps to evaluate the technical reports generated by opposing technical experts. Often, an expert is asked to investigate an opposing expert in an effort to impeach that expert's credibility.

Sometimes, just prior to a trial, an attorney will ask for a computer expert's help with jury selection. The expert assists the attorney in preparing a list of questions to ask prospective jurors during the voir dire. Such questions should reveal a potential juror with expert knowledge of computers so that he or she may be challenged and excluded. This is important because other jurors would look to this expert juror for guidance during deliberations.

Use of Technical Experts in Trial Proceedings

A technical expert is essential at trial. This individual is the most important witness in the case. Establishment of software piracy is difficult because judges and juries have insufficient knowledge of the technical elements required to prove the case. During direct examination, the expert must educate the fact finder. He or she must effectively explain complex technical evidence to lay people. The expert normally uses exhibits and materials prepared before trial. It is important that exhibits be presented because they are placed in the jury room at the end of the trial, and remain as a constant explanation and reminder to the jury during its deliberations. Sometimes, an expert witness provides a hands-on demonstration of the software to the court during direct examination.

In any matter of this type, both litigants present expert witnesses. This is very confusing to judges and juries since their testimony will invariably conflict. The jury does not know which one to believe. Consequently, during cross-examination, attorneys challenge every fact and every opinion of the opposing expert. One expert will always state that a sufficient number of similarities exist between two software products so as to establish copying or derivation. The other expert will always testify that the first expert's investigation was inconclusive. An attorney must sort out the logic that separates these two witnesses and create a technical position that would be clear to the fact finder. This can only be done with the expert's assistance. A technical expert must be able to anticipate the answers of the opposing expert. This can usually be accomplished if he or she is familiar with the opposing expert's deposition. The expert then establishes a series of questions or question categories designed to prove the point.


Technical experts are essential in computer-related intellectual property litigation. They are needed because the complex technical issues are beyond the knowledge and understanding of the average layperson. Initially, the expert performs a forensic investigation. He or she helps with discovery. Establishment of infringement is only possible with expert assistance.

In order to establish software piracy, an expert must examine and analyze both the software of the plaintiff and defendant. This software is normally very large, and similarities are very difficult to find. This article presents a methodology that simplifies the task of the expert.

Not only are experts essential in cases that go to trial, but they can be valuable in attaining satisfactory pretrial settlements. Experts are as important during pretrial proceedings as they are during the trial itself.



  1. The United States Supreme Court has recently affirmed a First Circuit decision that held that Lotus' menu command hierarchy is not copyrightable subject matter. Lotus Devel. Corp. v. Borland Inter., Inc., 116 S.Ct. 1062 (1996), aff'g, 49 F.3d 807 (1st Cir. 1995). The impact of this decision on computer software copyrights remains to be seen.