“Software modules are often specified in functional terms and the details of the underlying algorithms are left to implementation. While this level of description is generally enough to guide software development, it is not enough to support a means-plus-function claim in a patent application.”
How much detail is needed in a patent application for a software-based invention? Software patents present some unique challenges that many other kinds of patent applications do not need to contend with, one of them being the level of disclosure and care in drafting needed to avoid indefiniteness issues. While source code is not required in most cases, a growing body of case law indicates that insufficient detail about the algorithms underpinning the invention could render the patent claims indefinite, meaning that the scope of the claimed invention is too ambiguous. If the patent examiner deems the disclosure to be inadequate during examination, indefiniteness could prevent a patent from issuing. In the case of an already-issued patent, indefiniteness could render the claims unenforceable.
Getting Down to Details
Indefiniteness is a particular risk for software patents when a claim identifies a software module that performs a particular function without indicating how the function is performed. A claim might include “an encryption module configured to encrypt a packet,” without indicating how the encryption is performed. These “means-plus-function” claims are considered indefinite if the body of the patent application fails to disclose the structure that performs the function, which in software patents means the algorithm performed by the claimed module. In the recent case of Rain Computing, Inc. v. Samsung Electronics America, Inc., 989 F.3d 1002 (2021), Samsung successfully argued that Rain Computing’s claims to software package delivery techniques were indefinite because the specification did not disclose the algorithm by which the claimed “user identification module” performed the function of controlling access to a software package.
Many software patent applications do, in fact, include claims that identify modules without providing sufficient descriptions of the algorithms performed by those modules. This shortcoming is a natural consequence of how software modules are specified during the software design process. A software module provides a layer of abstraction so that a programmer only needs to provide the required input in order to receive the expected output. The programmer generally is not concerned with how the module produces the output, so long as it is done correctly and efficiently. For this reason, modules are often specified in functional terms and the details of the underlying algorithms are left to implementation. While this level of description is generally enough to guide software development, it is not enough to support a means-plus-function claim in a patent application.
Describing an algorithm in sufficient detail to avoid indefiniteness generally does not require source code, which in any event would be challenging for the patent examiner to review and might not even be available at the time the patent application is filed. The courts have indicated that an algorithm could instead be expressed as a mathematical formula, a textual description, a flowchart, or in some other way that goes sufficiently beyond mere functional descriptions. Drawings might include a detailed flowchart of operations, along with written descriptions of each step. A Uniform Modeling Language (UML) behavior diagram also can be used to describe an algorithm, provided that the accompanying description includes enough detail about what each component does. Pseudocode is another good option for describing an algorithm, and can be expressed at a high enough level to cover many different implementations. The level of detail needed to describe an algorithm for a patent application can often be found in whitepapers, architectural diagrams, use cases, simulations, models, etc. Conversely, if material seems well-suited for a marketing slide deck, then it is probably not detailed enough.
Improve Your Chances
Because of the risk of indefiniteness, best practice suggests that means-plus-function claims should be avoided in software patent applications. However, there is always a risk that an examiner will construe a claim as invoking means-plus-function requirements, even when it was not intended as such. By providing details of the algorithms performed by key software modules in the invention, the patent application stands a significantly better chance of being both allowable and enforceable.
Rights acquired by 123RF.com