For many years, there have been concerns in the Unites States (US) about the possibilities to patent ``trivial'' software techniques and business methods. The patenting laws in the European Union (EU) have always been more restrictive than their US counterparts, but in the discussion about the recently rejected EU directive about patenting computer implemented inventions (CII), or software patents for short, the level of triviality of a software patent has become a focal point in the debate: does a patent lay claims on techniques that are generally considered to be common knowledge or does the patent claim a real invention?
One should be carefull with the term ``trivial patent'' itself. Informally, it means a patent that describes a small but insignificant advance over the state of the art, but in a strict, legal, sense it means ``novel, but obvious'' (US) or ``novel, but lacking an inventive step'' (Europe). As we will see, many software patents that are usually called trivial are not even that: they are non-novel and are anticipated by prior art.
As part of a 3 year European Commission (EC) study1 on the effects of software patents on innovation we are involved in a multi-disciplinary effort to understand the effects of software patents. These effects are studied from legal, economical, and computer science perspectives. The goal of the current paper is to study trivial software patents from a computer science perspective and to make a contribution to the discussion among experts from the three disciplines just mentioned. For economic effects we refer to [19,11] and for legal aspects to [30,5].
Software patenting is a relatively new topic for both authors, as it probably is for most software engineers and computer scientists. For completeness, we mention that both signed a petition to the European Parliament . The second author has acted as speaker on a conference about the topic  (later adopted as point of view of the Royal Dutch Academy of Sciences) and has written a column about it . Our professional interest in the topic stems from a long involvement in software engineering research ranging from study of the software life cycle , concepts of programming languages , theory, design and use of software components [6,7,8], generic language technology  and program analysis . Both authors have cooperated in setting up the MSc curriculum in Software Engineering at the University of Amsterdam, now organized in cooperation with Mark van de Brand of the Hogeschool van Amsterdam and taught in cooperation with Hans van Vliet from the Vrije Universiteit in Amsterdam. Software patenting is therefore a major concern for us.
The plan of the paper is as follows. First, we start exploring how what seems to be a huge distance between the world of patents and the world of software engineering can be bridged. First we design in Section 2 a life cycle for the patenting process and next we make a connection between patents and software engineering by designing a patent-based software engineering life cycle (Section 3).
Given this conceptual framework, we study recent examples of software patents in order to get a better perspective on the implications for these software life cycles. In Section 4 we describe a recent patent application that might be a candidate for the predicate ``trivial software patent''. In Section 5 we present various views on this application. In Section 6 we briefly analyze a European patent on memory allocation and conclude that its novelty is strongly debatable. Next, we mention in Section 7 other trivial patents, both from the US and from Europe. A discussion (Section 8) and conclusions (Section 9) complete the paper.