My experiences as a testifying expert witness in numerous lawsuits involving software and source code have taught me a thing or two about the various intellectual property protections that are available to the creators of software. These are areas of the law that you, as an embedded software engineer, should probably know at least a little about. Hence, this primer.
Broadly speaking, software is protectable under three areas of intellectual property law:
- patent law,
- copyright law, and
- trade secret law.
Each of these areas of the law protects your software in a different way and you may choose to rely on none, some, or all three such protections. (The name of your product may also be protectable by trademark law, although that has nothing specifically to do with software.)
Embedded software and patent law
Patent law can be used to protect one or more innovative IDEAS that your product uses to get the job done. If you successfully patent a mathematical algorithm specific to your product domain (such as an algorithm for detecting or handling a specific arrhythmia used in your pacemaker) then you own a (time-limited) monopoly on that idea. If you believe another company is using the same algorithm in their product then you have the right to bring an infringement suit (such as in the ITC or U.S. District Court).
In the process of such a suit, the competitor’s schematics, source code, and design documents will generally be made available to independent expert witnesses (i.e., not to you directly). The expert(s) will then spend time reviewing the competitor’s source code to determine if one or more of the claims of the asserted patent(s) is infringed. It is a useful analogy to think of the claims of a patent as a description of the boundaries of real property and of infringement of the patent as trespassing.
Patents protect ideas regardless of how they are expressed. For example, you may have heard about (purely) “software patents” being new and somewhat controversial. However, the patents that protect most embedded systems typically cover a combination of at least electronics and software. Patent protection is typically broad enough to cover purely hardware, purely software, as well as hardware-software. Thus the protection can span a range of hardware vs. software decompositions and provides protection within software even when the programming languages and/or function and variable names differ.
To apply for a patent on your work you must file certain paperwork with and pay registration fees to the U.S. Patent and Trademark Office. This process generally begins with a prior art search conducted by an attorney and takes at least several years to complete. You should expect the total cost (not including your own time), per patent, to be measured in the tens of thousands of dollars.
Embedded software and copyright law
Copyright law can be used to protect one or more creative EXPRESSIONS that the authors of the source code employed to get the job done.Unlike patent law, copyright law cannot be used to protect ideas oralgorithms. Rather, copyright can only protect the way that youspecifically creatively choose to implement those ideas. Indeed if thereis only one or a handful of ways to implement a particular algorithm,or only one way to do so efficiently or in your chosen language, you maynot be able to protect that aspect of your software with copyright.
The attorneys in a source code copyright infringement lawsuit wind uparguing over two primary issues. First, they argue which individualparts of the source code (such as function prototypes in an API) areprotectable because they are sufficiently creative. The judge generallydecides this issue, based on expert analysis. Second, they argue how theselection and arrangement of these individually protectable “islands”together shows a pattern of “substantial similarity.” The jury decidesthat.
Source code copyright infringement is easiest to prove when the twoprograms have source code that looks similar in some important way. Thatis, when the programming languages are the same and the function andvariable names are similar. However, it is rare that the programs areidentical in every detail. Thus, due to the possibility of the accusedsoftware developers independently creating something similar bycoincidence rather than malfeasance, the legal standard for provingcopyright infringement is much higher when it cannot be shown that thedefendants had “access” to some version of the source code.
Unlike patents, copyrights do not need to be awarded. You, or youremployer, own a copyright in your work merely by creating it. (Whetheryou write “Copyright (c) 2013 by MyCompany, Inc.” at the top of everysource code file or not.) However, there are some advantages toregistering your copyright (by submitting a sample) in a work ofsoftware with the U.S. Copyright Office before any alleged infringementoccurs. Even if you outsource it to an attorney, the cost of registeringa copyright should only be about a thousand dollars at most.
As source code frequently changes and new versions will inevitably bereleased, you should be reassured that a single copyright extends to”derivative works,” which generally includes later versions of thesoftware. You don’t have to keep registering every minor release withthe Copyright Office. And, very importantly, the binary executableversion of your software (e.g., the contents of Flash or a library ofobject code) is extended copyright protection as a derivative work ofthe source code. Thus someone who copies your binary can also be foundto have infringed your copyright.
Interestingly, both patent law and copyright law are called for in theU.S. Constitution. However, of course, the extension of these areas oflaw to software is a modern development.
Embedded software and trade secret law
Unlike patent and copyright law, which each at best protects only aportion (“islands”) of your source code, trade secret law can be used toprotect the entirety of the SECRETS within the sourcecode. Secrets need not be innovative ideas nor creative expressions. Thekey requirement for this area of law to apply is that you takereasonable steps to keep the source code “secret”. So, for example,though open source software may be protectable by patent law andcopyright law it cannot be protected by trade secret law due to the lackof secrecy.
You may think that there is a fundamental conflict between registeringthe copyright in your software, which requires submitting a copy to thegovernment, and keeping your source code secret. However, the U.S.Copyright Office only requires that a small portion of the source codeof your program be filed to successfully identify the copyrightedsoftware and its owner; the vast majority of the source code need not besubmitted.
Preserving this secrecy is one of the reasons for the inconveniencessoftware developers often encounter at the companies that employ them(e.g., not being able to take source code home). (And certain terms oftheir employment agreements.) Protecting software like the secretformula for Coca-Cola or Krabby Patties helps an owner prove that thesource code is a trade secret and thus opens the door to this additionallegal basis for bringing a lawsuit against a competitor. Trade secretscases I have been involved with as an expert have involved allegationsthat one or more insiders left a company and subsequentlymisappropriated it’s software secrets to compete via a startup orexisting competitor.
In my work as an expert, I always look to the attorneys for more precisedefinitions of legal terms. Importantly, there are many terms andconcepts I have purposefully avoided using here to keep this at anintroductory level of detail. You should, of course, always consult withan attorney about your specific situation. You should never simply relyon what you read on the Internet. Hopefully, there is enoughinformation in this primer to help you at least understand the types ofprotections potentially available to you and to find a lawyer whospecializes in the right field.
Michael Barr is the author of three books and over 65 articles about embedded systems design, as well as a former editor-in-chief of Embedded Systems Programmingmagazine. Michael has also been a popular speaker, track chair, andmember of the advisory board at the Embedded Systems Conference for overa decade and is the president of Barr Group.He holds B.S. and M.S. degrees in electrical engineering and haslectured in the Department of Electrical and Computer Engineering at theUniversity of Maryland, from which he also earned an MBA, and in theComputer Science Department of the Johns Hopkins University. He hasassisted in the design and implementation of products ranging fromsafety-critical medical devices to satellite TV receivers. You can reachhim via e-mail at or read more of what he has to say at his blog ().
This article first appeared on Embedded Gurus and is used with permission.