HT-2021-000363 - [2025] EWHC 532 (TCC)
Technology and Construction Court

HT-2021-000363 - [2025] EWHC 532 (TCC)

Fecha: 10-Mar-2025

Applicable legal principles

Applicable legal principles

240.

The parties adopted the convention of making submissions by reference to the provisions in the Software Directive. For the purpose of the issues in dispute in this case, the key principles that can be derived from the Software Directive are as follows:

i)

Computer programs are protected as literary works within the meaning of the Berne Convention.

ii)

The restricted rights of a copyright owner include loading, displaying, running, transmission, storage, translation, adaptation or distribution of part, or all, of a computer program by any means and in any form.

iii)

Copyright protection for computer programs extends to expression of the program but not to ideas and principles underlying functionality of the program.

iv)

Exceptions to the restricted rights include observation, study and testing of the functioning of a program to determine its underlying ideas and principles; and decompilation where necessary for the purpose of interoperability.

v)

Contractual terms and conditions that seek to circumvent the above exceptions are null and void.

vi)

A further exception to the restricted rights is error correction but that is subject to any term or condition of an agreement prohibiting such use.

vii)

The limitations and exceptions to the copyright protection should be interpreted restrictively having regard to the right of the copyright owner to exploit the work and the legitimate interests of the author. See also: Infopaq International A/S v Danske Dagblades Forening (Case C-5/08) [2009] ECR I-6569 at [56] and [57].

241.

The above principles were considered by Pumfrey J in Navitaire Inc v easyJet Airline Company & Another [2004] EWHC 1725 (Ch). The claim in that case was an action for infringement of copyright in computer software implementing an airline booking system, known as “OpenRes”. It was common ground that the defendants did not have any access to the source code of OpenRes; the main allegation was that they had carried out “non-textual copying” of the user interface so that an agent or private individual seeking to make an airline booking would experience the screen displays and response to key commands as if they were using OpenRes. The court rejected the claim that copyright subsisted in the command names or their syntax on the basis that this amounted to a computer language:

“[86] I consider that … it is not possible to infringe the copyright that subsists either in the source code for a parser or in the source code for a parser generator by observing the behaviour of the final program and constructing another program to do the same thing…

[94] Copyright protection for computer software is a given, but I do not feel that the courts should be astute to extend that protection into a region where only the functional effects of a program are in issue. There is a respectable case for saying that copyright is not, in general, concerned with functional effects, and there is some advantage in a bright line rule protecting only the claimant's embodiment of the function in software and not some superset of that software.”

242.

The court held that the character-based VT100 screen displays amounted to ideas underlying the software interfaces in the sense used in Article 1(2) of the Software Directive, providing the static framework for the display of the dynamic data which it was the task of the software to produce. As such, they were not subject to copyright protection. In contrast, the user interface provided by the GUI screens, which interacted with the COBOL server module, was found to be subject to copyright protection because it was the product of intellectual creativity:

“The GUI screens stand in a different position. The Directive is concerned only with the protection of computer programs as literary works, and I do not read it as having any impact on relevant artistic copyrights. It is certainly possible to view the GUI screens as tables, because they are 'drawn' by selecting from a palette of available objects things such as command buttons, toggle buttons, checkboxes, scrolling lists and so forth and moving them around on a form until a satisfactory layout is concerned. The 'interface builder' program provides 'stubs' for the routines that will be executed when the user selects or clicks on one of these objects, and it is the task of the programmer to provide the necessary code to ensure that the right thing happens when the user presses (for example) the OK button. Although composed of elements made available by the manufacturer of the interface builder program, I can see that the screen resulting from such an operation might properly be considered to be an artistic work. What the programmer ultimately produces is code that depends upon a large number of complex graphic routines that draw the background, the boxes and the shading in the places selected, and act appropriately when the mouse moves over them or they are selected. The programmer does not write this code: it is the scaffolding for his or her own window design.”

243.

The court rejected Navataire’s argument that the business logic of the software had been appropriated by non-textual copying:

“[112] I shall return to first principles. For present purposes, a computer running a particular program is a deterministic machine. A particular input to the machine will produce a predictable result derived from all previous inputs to the machine. If therefore one studies a machine in operation, it should be possible to identify the machine's response to all possible sequences of inputs, and so construct a new machine that operates to give the same outputs for the same sequences of inputs by writing an appropriate program. Navitaire contend that if this is done, it follows axiomatically that any copyright in the source code for the first machine must be infringed in writing the second program. Indeed, it was urged on me at an earlier hearing that it was unnecessary to consider any of the source code for the OpenRes system in determining whether there had been copying of a substantial part of the copyright(s) subsisting in the source code for it.

[129] The questions in the present case are both a lack of substantiality and the nature of the skill and labour to be protected. Navitaire's computer program invites input in a manner excluded from copyright protection, outputs its results in a form excluded from copyright protection and creates a record of a reservation in the name of a particular passenger on a particular flight. What is left when the interface aspects of the case are disregarded is the business function of carrying out the transaction and creating the record, because none of the code was read or copied by the defendants. It is right that those responsible for devising OpenRes envisaged this as the end result for their program: but that is not relevant skill and labour. In my judgment, this claim for non-textual copying should fail.

[130] I do not come to this conclusion with any regret. If it is the policy of the Software Directive to exclude both computer languages and the underlying ideas of the interfaces from protection, then it should not be possible to circumvent these exclusions by seeking to identify some overall function or functions that it is the sole purpose of the interface to invoke and relying on those instead. As a matter of policy also, it seems to me that to permit the 'business logic' of a program to attract protection through the literary copyright afforded to the program itself is an unjustifiable extension of copyright protection into a field where I am far from satisfied that it is appropriate.”

244.

Pumfrey J’s reasoning in Navataire was approved as correct by the Court of Appeal in Nova Productions Ltd v Mazooma Games Ltd [2007] EWCA Civ 219.

245.

These issues were considered in detail by Arnold J (as he then was) in SAS Institute Inc v World Programming Ltd  [2010] EWHC 1829 (“SAS No 1”). SAS was a developer of analytical software programs (“the SAS System”), which enabled users to carry out a wide range of data processing and analysis tasks, and in particular statistical analysis. The core component of the SAS System was Base SAS, which enabled users to write and run application programs written in the SAS language to manipulate data. The functionality of Base SAS could be extended by the use of additional SAS components, providing enhanced features, such as statistical analysis, graph plotting and third-party data sources. SAS published detailed technical manuals, documenting the functionality of the SAS System and the SAS components but not the internal behaviour of the same. It was common ground that each of the SAS components was an original computer program in which copyright subsisted; further, that each of the SAS manuals was an original literary work in which copyright subsisted.

246.

WPL was a competitor of the claimant and developed alternative software (“WPS”), which could execute application programs written in the SAS Language by emulating the functionality of the SAS Components as closely as possible with a view to ensuring that the same inputs would produce the same outputs.

247.

The claim included allegations by SAS that WPL infringed copyright and acted in breach of contract when creating WPS by: (i) copying the SAS manuals; (ii) copying indirectly the SAS components; and (iii) using the learning edition of the SAS System outside the scope of the applicable licence.

248.

SAS did not allege that WPL had access to the source code of the SAS components, or decompiled any SAS object code, or that WPL copied any of the text or structural design of the source code of the SAS components.

249.

The court found that WPL used the SAS manuals to emulate functionality of the SAS System in WPS but did not reproduce the SAS source code by going beyond reproduction of its functionality. Further, WPL copied elements of the SAS source code into the source code of WPS by examining log files produced during use of the SAS learning edition. WPL also ran SAS test scripts through the SAS learning edition to observe the output produced and then through WPS to check whether WPS produced the same output or failed.

250.

Having carried out a full and detailed analysis of the legislative background, Software Directive and relevant authorities, including Navitaire, Nova Productions and Infopaq, Arnold J stated:

“[206]… it is necessary to distinguish between “expressions” on the one hand and “ideas, procedures, methods of operation and mathematical concepts as such” on the other. What is protected by copyright in a literary work is the form of expression of the literary work itself. Other things which are conveyed by or described in the literary work, of which “ideas, procedures, methods of operation and mathematical concepts” is evidently a non-exhaustive list, are not protected. Thus these provisions draw a line between copyright protection and the public domain…

[217] I am not persuaded that Pumfrey J was wrong to conclude that programming languages are not protected. While I acknowledge that recital [14] can be read in the manner contended for by counsel for SAS Institute, it should not be construed as if it were an operative provision in an English statute. It is there to guide courts as to the purpose of Article 1(2). It must be read in its context between recitals [13] and [15] (a point which is reinforced in the codified version by the fact that all three have been combined in one recital, recital (11)). Read in that context, the words "to the extent that" can be understood as meaning "in as much as". As for the legislative history, I do not agree that this demonstrates, as counsel for SAS Institute argued, that an exclusion of programming languages was deliberately not included in the Software Directive. To the contrary, I consider that it indicates that Article 1(2) is to be broadly interpreted. Furthermore, I think that the distinction which Pumfrey J drew between a computer program and the language it is written in is, despite his hesitancy on the point, perfectly consistent with the distinction between expressions and ideas, procedures, methods of operation and mathematical formulae.

[226] Again, I am not persuaded that Pumfrey J was wrong to conclude that interfaces as described in recital [15] of the Software Directive are not protected by the copyright in a computer program. In my judgment the legislative history supports this interpretation. The inclusion of Article 6 in the Software Directive does not support the opposite interpretation. It can be seen from the passages quoted above that the purpose of Article 6 is to entitle third parties to obtain information about interfaces by decompiling the object code of a program where the necessary information is not available from either (i) published sources such as manuals, (ii) common standards or (iii) observation, study or testing of the program. Where information about an interface can be obtained in one or more of those ways, it is evident that the Commission considered that competitors would be free to copy the interface anyway.

[232] Even leaving aside the decision of the Court of Appeal in Nova, I am not persuaded that Pumfrey J was wrong to hold that it is not without more an infringement of the copyright in a computer program to create another computer program which has the same functionality. I accept that copyright protection is not limited to the text of the source code of the program, but extends to protecting the design of the program, that is, what has been referred to in some cases as its "structure, sequence and organisation". If there were any doubt about this, then the conferring of protection on "preparatory design material" confirms it. But there is a distinction between protecting the design of the program and protecting its functionality. It is perfectly possible to create a computer program which replicates the functionality of an existing program, yet whose design is quite different.

[233] In my judgment Pumfrey J was right to say that at [129] the key question is "the nature of the skill and labour"… Copyright in the computer program (including any preparatory design material) protects the skill, judgement and labour in devising the form of expression of the program (including any preparatory design material), that is to say, its design and source code.

[236] Accordingly, I consider that the functionality of a computer program falls on the wrong side of the line drawn by Article 1(2) of the Software Directive, Article 9(2) of TRIPS and Article 2 of the WIPO Copyright Treaty.

[237] In any event, Pumfrey J's judgment on this point was upheld by the Court of Appeal in Nova, and that decision is binding on me unless and until overruled by either the Supreme Court or the Court of Justice.

[294] SAS Institute contends that Article 5(3) is a "for the avoidance of doubt" provision, which simply confirms that acts of observing, studying and testing a computer program are not infringements provided that the user is licensed to use the program in the manner in question…

[302] WPL contends that the words "the acts … which he is entitled to do" in Article 5(3) refer to the kind of acts which the user is entitled to do, not to their purpose. Thus WPL contends that the kinds of acts in question are those referred to immediately before the words "which he is entitled to do", namely "loading, displaying, running, transmitting or storing the program". Thus if the licence does not entitle the user to transmit the program, Article 5(3) does not permit transmission; but if the licence entitles the user to load and run the program, then the user can observe, study and test while loading and running…

[311] My view is that WPL's interpretation is to be preferred for the reasons given by counsel for WPL. I would add two points. First, the starting point is that Article 5(3) is expressed to be an exception to the restricted acts referred to in Article 4. In my opinion it follows that it should be interpreted as a positive defence to a claim of copyright infringement and not merely a "for the avoidance of doubt" provision with no substantive effect. This is a pointer against SAS Institute's interpretation.

[312] Secondly, Article 5(3) must be read together with the last sentence of Article 9(1). That makes it clear that the copyright proprietor cannot override Article 5(3) by contract. To allow copyright proprietors to override Article 5(3) by the use of standard form licence terms of the kind relied on by SAS Institute in the present case would make it very easy for the proprietors to circumvent Article 5(3). That would be contrary to the important public interest which underlies Article 5(3).

[313] On the assumption that Article 5(3) is to be construed as WPL contends, it follows the licence terms for the Learning Edition are null and void to the extent that they make it an infringement for the user to observe, study and test the Learning Edition in order to determine the ideas and principles which underlie any element of the program…”

251.

The conclusions reached by Arnold J included at [332]:

i)

Although the court was not persuaded that Pumfrey J was wrong to conclude in Navitaire that, on the true interpretation of Article 1(2) of the Software Directive, copyright in computer programs does not protect from copying (a) programming languages, (b) interfaces (where achievable without decompilation of the object code) and (c) the functions of the programs, these were questions on which guidance from the ECJ was required.

ii)

On the assumption that Pumfrey J’s interpretation of Article 1(2) of the Software Directive was correct, WPL did not infringe SAS copyright in the SAS components or the SAS manuals by producing or testing WPS.

iii)

On the court’s interpretation of Article 5(3) of the Software Directive, a question on which guidance from the ECJ was required, WPL’s use of the SAS learning edition was within Article 5(3); to the extent that the licence terms sought to prevent this, they were null and void. As a result, none of WPL’s acts complained of was a breach of contract or an infringement of copyright, save that there was substantial reproduction of the SAS manuals in the WPL manual, thereby infringing copyright.

252.

The CJEU gave its judgment on 2 May 2012: Case C-406/10 [2012] ECR I-0000. In response to the questions posed regarding the interpretation of Article 1(2) of the Software Directive, the court stated:

“[39] … it must be stated that, with regard to the elements of a computer program which are the subject of Questions 1 to 5, neither the functionality of a computer program nor the programming language and the format of data files used in a computer program in order to exploit certain of its functions constitute a form of expression of that program for the purposes of Article 1(2) of Directive 91/250.

[40] As the Advocate General states in point 57 of his Opinion, to accept that the functionality of a computer program can be protected by copyright would amount to making it possible to monopolise ideas, to the detriment of technological progress and industrial development.

[41] Moreover, point 3.7 of the explanatory memorandum to the Proposal for Directive 91/250 [COM (88) 816] states that the main advantage of protecting computer programs by copyright is that such protection covers only the individual expression of the work and thus leaves other authors the desired latitude to create similar or even identical programs provided that they refrain from copying.

[42] With respect to the programming language and the format of data files used in a computer program to interpret and execute application programs written by users and to read and write data in a specific format of data files, these are elements of that program by means of which users exploit certain functions of that program.

[43] In that context, it should be made clear that, if a third party were to procure the part of the source code or the object code relating to the programming language or to the format of data files used in a computer program, and if that party were to create, with the aid of that code, similar elements in its own computer program, that conduct would be liable to constitute partial reproduction within the meaning of Article 4(a) of Directive 91/250.

[44] As is, however, apparent from the order for reference, WPL did not have access to the source code of SAS Institute's program and did not carry out any decompilation of the object code of that program. By means of observing, studying and testing the behaviour of SAS Institute's program, WPL reproduced the functionality of that program by using the same programming language and the same format of data files.”

253.

In response to the questions posed regarding the interpretation of Article 5(3) of the Software Directive, the court stated:

“[50] The Court observes that, from the wording of that provision, it is clear, first, that a licensee is entitled to observe, study or test the functioning of a computer program in order to determine the ideas and principles which underlie any element of the program.

[51] In this respect, Article 5(3) of Directive 91/250 seeks to ensure that the ideas and principles which underlie any element of a computer program are not protected by the owner of the copyright by means of a licensing agreement.

[52] That provision is therefore consistent with the basic principle laid down in Article 1(2) of Directive 91/250, pursuant to which protection in accordance with that directive applies to the expression in any form of a computer program and ideas and principles which underlie any element of a computer program are not protected by copyright under that directive.

[53] Article 9(1) of Directive 91/250 adds, moreover, that any contractual provisions contrary to the exceptions provided for in Article 5(2) and (3) of that directive are null and void.

[54] Second, under Article 5(3) of Directive 91/250, a licensee is entitled to determine the ideas and principles which underlie any element of the computer program if he does so while performing any of the acts of loading, displaying, running, transmitting or storing that program which he is entitled to do.

[55] It follows that the determination of those ideas and principles may be carried out within the framework of the acts permitted by the licence.

[56] In addition, the 18th recital in the preamble to Directive 91/250 states that a person having a right to use a computer program should not be prevented from performing acts necessary to observe, study or test the functioning of the program, provided that these acts do not infringe the copyright in that program.

[57] As the Advocate General states in point 95 of his Opinion, the acts in question are those referred to in Article 4(a) and (b) of Directive 91/250, which sets out the exclusive rights of the rightholder to do or to authorise, and those referred to in Article 5(1) thereof, relating to the acts necessary for the use of the computer program by the lawful acquirer in accordance with its intended purpose, including for error correction.

[58] In that latter regard, the 17th recital in the preamble to Directive 91/250 states that the acts of loading and running necessary for that use may not be prohibited by contract.

[59] Consequently, the owner of the copyright in a computer program may not prevent, by relying on the licensing agreement, the person who has obtained that licence from determining the ideas and principles which underlie all the elements of that program in the case where that person carries out acts which that licence permits him to perform and the acts of loading and running necessary for the use of the computer program, and on condition that that person does not infringe the exclusive rights of the owner in that program.

[60] As regards that latter condition, Article 6(2)(c) of Directive 91/250 relating to decompilation states that decompilation does not permit the information obtained through its application to be used for the development, production or marketing of a computer program substantially similar in its expression, or for any other act which infringes copyright.

[61] It must therefore be held that the copyright in a computer program cannot be infringed where, as in the present case, the lawful acquirer of the licence did not have access to the source code of the computer program to which that licence relates, but merely studied, observed and tested that program in order to reproduce its functionality in a second program.

[62] In those circumstances, the answer to Questions 6 and 7 is that Article 5(3) of Directive 91/250 must be interpreted as meaning that a person who has obtained a copy of a computer program under a licence is entitled, without the authorisation of the owner of the copyright, to observe, study or test the functioning of that program so as to determine the ideas and principles which underlie any element of the program, in the case where that person carries out acts covered by that licence and acts of loading and running necessary for the use of the computer program, and on condition that that person does not infringe the exclusive rights of the owner of the copyright in that program.”

254.

In the context of a discussion concerning reproduction of the SAS manuals, the Court stated:

“[66] In the present case, the keywords, syntax, commands and combinations of commands, options, defaults and iterations consist of words, figures or mathematical concepts which, considered in isolation, are not, as such, an intellectual creation of the author of the computer program.

[67] It is only through the choice, sequence and combination of those words, figures or mathematical concepts that the author may express his creativity in an original manner and achieve a result, namely the user manual for the computer program, which is an intellectual creation…

[68] It is for the national court to ascertain whether the reproduction of those elements constitutes the reproduction of the expression of the intellectual creation of the author of the user manual for the computer program at issue in the main proceedings.”

255.

On the basis of the guidance set out in that judgment, save for the court’s finding in respect of infringement of copyright in the SAS manuals, Arnold J dismissed the claims by SAS in SAS Institute Inc. v World Programming Ltd [2013] EWHC 69 (Ch).

256.

The Court of Appeal upheld those findings and dismissed the appeal at [2013] EWCA Civ 1482 per Lewison LJ:

“[33] What seems to me to be clear … is (a) that if expression is dictated by technical function then the criterion of originality is not satisfied; and (b) that, where that is the case, the product is not an intellectual creation of the author at all. It is of importance to note that this emphasis on questions of function applies to the Information Society Directive and not just to the Software Directive...

[39] In the course of the reference in our case both the Advocate-General and the court discussed the distinction between ideas and the expression of ideas. The Advocate-General began his discussion at [42] to [44] concluding at that point that the originality "of a work" lies not in an idea, but in the expression of an idea. At this point the Advocate-General was dealing with works generally, not limited to computer programs. However, at [47] to [50] he recognised that elements of creativity, skill and inventiveness manifest themselves in the way in which a program is put together; and that copyright protection for a program is conceivable from the point at which the selection and compilation of its elements are indicative of the creativity and skill of the author. He concluded that the protection of a computer program was not confined to the source code and object code but extended to any other element expressing the creativity of its author.

[40] The Advocate-General then turned to consider what counts as an idea, rather than the expression of an idea; in particular the functionality of a computer program. He defined that expression at [52] as follows: "The functionality of a computer program can be defined as the set of possibilities offered by a computer system, the actions specific to that program. In other words, the functionality of a computer program is the service which the user expects from it."

[41] He then gave an example taken from the facts in Navitaire Inc v easyJet Airline Co Ltd [2004] EWHC 1725 (Ch) [2006] RPC 3. In short he said that the functionalities of a computer program are dictated by a specific and limited purpose: "In this, therefore, they are similar to an idea. It is therefore legitimate for computer programs to exist which offer the same functionalities."

[42] But he added at [55] that: "There are, however, many means of achieving the concrete expression of those functionalities and it is those means which will be eligible for copyright protection under [the Software Directive]. As we have seen, creativity, skill and inventiveness manifest themselves in the way in which the program is drawn up, in its writing. The programmer uses formulae, algorithms which, as such, are excluded from copyright protection because they are the equivalent of the words by which the poet or the novelist creates his work of literature. However, the way in which all of these elements are arranged, like the style in which the computer program is written, will be likely to reflect the author's own intellectual creation and therefore be eligible for protection."

[74] … What is protected is the form of expression of an intellectual creation. The intellectual creation itself is not protected; and the functionality of a computer program does not count as a form of expression. The functionality of a computer program (in the sense of what it does and how it responds to particular inputs) falls on the ideas side of the line.”

257.

From the above authorities, the following principles relevant to the dispute in these proceedings can be drawn.

258.

First, copyright protection for computer programs extends to expression of the program but not to ideas and principles underlying functionality of the program. Expression of the author’s creativity may include the choice, sequence and combination of words, figures or mathematical concepts selected by the author of the program. This can be contrasted with functionality of a computer program, which is the service which the user expects from it.

259.

Second, exceptions to the restricted rights of a copyright owner include observation, study and testing of the functioning of a program by a lawful user to determine its underlying ideas and principles. This allows a lawful user to observe the output of a program in response to a given input in order to determine its behaviour and reproduce the same functionality in another program. However, this does not extend to circumstances in which the user gains access to the source or object code of the computer program and reproduces the expression of the intellectual creation of the copyright owner.

260.

Third, where necessary for the purpose of interoperability, a lawful user of a computer program is entitled to decompile and/or reproduce that part of the program known as the interface, described in the Software Directive as the logical and physical interconnection and interaction required to permit all elements of software and hardware to work with other software and hardware and with users in all the ways in which they are intended to function. This entitlement is not without limit, however, and is subject to the legitimate interests of the copyright owner; if the source code or object code is used to create another computer program that is substantially similar in its expression, such conduct is likely to constitute partial reproduction in breach of copyright.

261.

This brings into sharp focus a dispute between the parties as to the extent to which the Software Directive grants any right to a lawful user of licensed software to reverse engineer an interface and, in that context, what is meant by an interface.

262.

A useful starting point is the IBM published documentation, which provides the following definitions:

“Application Programming Interface:

A functional interface supplied by the operating system or by a separately orderable licensed program that allows an application program written in a high-level language to use specific data or functions of the operating system or the licensed program.”

“Customer programming interface:

Any product method that lets a customer-written program obtain the services of the product (for example, CSECT names, data areas or control blocks, data sets or files, exits, macros, parameter lists, and programming languages).”

263.

The defendants’ position is that the effect of the decisions in SAS v WPL and the terms of the Software Directive is that the ICA is incapable of prohibiting or restricting Winsopia’s observation, study and testing of any element of the interfaces utilised and relied upon by customer applications because such elements are unprotectable ideas and principles. They adopt a broad definition of such interfaces to include IBM CSECTs bound into customer applications from the Language Environment or the compiler, initialisation data structures generated by the compiler, the CICS EXEC interface, macros, copybooks, network communication protocols and user configuration data structures.

264.

Leaving to one side the fact-specific arguments on interoperability, the defendants submit that these interfaces share a number of common features, namely: (i) the interface exists separately to, and does not itself provide, the functionality of the ICA Program that is requested by the customer application; (ii) although the interface may contain multiple elements, some of which are located in the runtime environment or middleware, the relevant part for the purposes of this dispute is limited to the interface within the compiled and/or bound object code of the customer application; (iii) the interface is an interconnection between the customer application and the runtime environment or middleware; and (iv) the interface is necessary for the customer application to run and/or to request or receive callable services from z/OS Base or from other IBM Programs upon which the customer application depends.

265.

IBM’s position is that there is no free-standing right in the Software Directive to reverse engineer interfaces. This is clear from the terms of both Articles 5(3) and 6, neither of which mention interfaces. Article 5(3) permits ‘black-box’ testing to derive the ideas and principles underlying interfaces. It does not permit decompilation, disassembly or any other ‘white-box’ analysis to derive information about interfaces. In practice, this means that internal component to component interfaces cannot be analysed under Article 5(3) as, at the very least, some study of disassembled code or pseudo-assembly language in compiler listings (where applicable) is required to derive insight into these interfaces. Article 6 permits decompilation or disassembly but only where this is “necessary to achieve interoperability between an independently created program with other programs.” This in practice means that the Software Directive envisages that there will be interfaces in a software product that cannot be accessed through Article 6.

266.

IBM identifies interfaces for the purpose of the Software Directive as user interfaces (commands that a user can input into a software product to obtain particular results), APIs (source code statements that can be used in a program to request services from a separate program) and programming languages. IBM submits that these interfaces share a number of common features, namely: (i) they are used by program users and/or application developers to access functionality provided by a program or runtime execution environment without knowledge as to how the functionality is provided; (ii) they consist of a syntax or series of rules specifying what statements and parameters are needed to request the relevant functionality or services; and (iii) a competing product utilising the same command interfaces, programming language or APIs can be created without any knowledge or understanding of the internal implementation or the architecture of the original product utilising them.

267.

Professor Weissman and Professor Donaldson agree that an operating system makes its services available to software applications via a number of interfaces. When a software application requires a service from the operating system, the software application invokes the required service via the appropriate interface. In some cases, the software application invokes the operating system service directly. In other cases, the software application calls a routine provided by the programming language runtime environment, and the runtime environment invokes an operating system service. The interface can be considered as comprising (i) code that calls, or invokes, the required service, making the connection between the customer application and the relevant API; (ii) code that declares or specifies the function required, including the name of the function, its form, parameters and constraints; and (iii) code that implements the computation(s) required, which may require calls to other library functions in order to complete the task. It is a matter of choice by the designer of the interface as to how and when each component part is activated and processed. Professor Weissman and Professor Donaldson agree that almost all non-trivial programs are built not as a single large component but as multiple separate components that are bolted together and that the connection between the components is accomplished through interfaces. This is known as modularity and is a basic principle of software design, because it allows modules to be maintained and updated separately from the customer applications provided that their interfaces remain the same.

268.

In his second expert report, Professor Weissman draws a distinction between external interfaces (the perimeter of a unit of software which can be used to interact with another piece of software), say A and B, and internal interfaces (inside the perimeter of a unit of software that is a result of architectural design choices within that unit of software about how that software is internally implemented), say B and C. Professor Donaldson quibbles with this definition as confusing; he notes, correctly, that it oversimplifies the arrangements between components and does not address the possibility that the interface of component C might be available directly to A but simply not needed. Nonetheless, the principle identified by Professor Weissman is sound, namely, that the interconnection and interaction that is required to permit the user application to work with other independently created programs (i.e. interoperability) is that between A and B. It is a matter of choice by the designer, in respect of which the user does not need any knowledge, as to whether, when and how the functionality requested by A is provided directly by B, indirectly by C and/or by any other component.

269.

Thus, the relevant question in each case is not whether the interaction can be described as an interface on any level, nor how the software designer has chosen to arrange the calling code, the declaring code and the implementation code; rather, it is whether the particular code under scrutiny can be properly categorised as falling within “ideas and principles” or “expression” for the purpose of Article 5(3); or “information necessary to achieve interoperability” for the purpose of Article 6.

270.

Finally, it is important to appreciate that the Software Directive is framed in very general language; no doubt, this reflects the negotiation process of a number of EU States and recognition that it would need to be applied in a variety of circumstances. Its application to any given set of facts requires careful analysis of the technical and factual context in which the issue is to be determined.