明細書作成のための情報収集工程

弁理士 遠山 勉


 明細書を作成するには、発明に関する情報を収集し、それを特許法の要求する様式に合う情報として分析し、それを明細書様式に合わせて文章化する必要があります。発明をどのように記載するかにあたり、以下のことを知っていただく必要があります。

INDEX


ソフトウェア発明の発掘

 発明が重要だ、もっと提案せよ、といってみても、「そう簡単にはいかない」とういのが実状でしょう。特に、ソフトウェアの分野は、新しい分野であってしかも特許になじみが少ないためか、ソフトウェアを発明として捉えることに不慣れな方が多いようです。そこで、どのようにすれば「発明」をすることができるか。できたとしてもどのようにそれを見い出すかが問題となります。この点から、ソフトウェア発明に意識を向けること、日常業務の中からソフトウェア発明を抽出することが必要となるでしょう。
(1)企業におけるソフトウェア発明の発現態様
 通常、企業における発明の発現形態としては、以下のような場合が一般的なようです。
 @研究テーマを掲げ、その結果生まれる発明(開発部における発明)
A他社からのシステム開発依頼に基づく発明
 B改善提案制度による発明(従来型QC運動、あるいは発明啓蒙キャンペーン  等の中から生まれる発明)

 ソフトウェア関連発明は、前記@やAの場面で開発されることが多く、Bの場合は少ないようですが、最近は趣味的にコンピュータに精通しシステムあるいはプログラム開発を行って、職場の業務改善を行う者も増えているようですので、Bの場合の発明もあり得ます。
 ソフトウェア関連発明では、上記いずれの場合でも、何が発明であったのかを評価しずらいという特性があるので、発明の抽出作業が重要となります。
 また、上記Aの場合、プログラム開発委託契約などにおいて、開発に伴う権利関係を明確にしておく必要があります。

INDEXに戻る


(2)発明の抽出(業務の中から発明を抽出する方法)
 <発明を発見する>
 ☆発明とは、特許法上は、「自然法則を利用した技術的思想の創作のうち高度のもの」(特許法第2条@)と定義されますが、ソフトウェア開発者は通常、このような技術的思想を創作しようとか、創作したという意識がないのが通常です。なぜなら、プログラム開発者は、公知のプログラム言語、開発モジュール等を使用し、通常公知のハードウェア資源を利用してシステムを構築するのが通常で、何らかの思想を具現化したという実感を伴わないからです。
 従って、特許的な目を通じて、ソフトウェア発明として自己の開発したプログラム等を見直す必要があります。
 ☆その場合、「発明を発見する」という感覚でプログラム等を見直すのが、よいと言えます。

INDEXに戻る


 <機能中心主義>
 では、どうすれば「発明を発見」できるかです。
 前に述べたように、ソフトウェア発明は、機能・作用を中心に発明の構成が特定されます。この点が他の分野の発明と大きくことなり、ソフトウェア発明の特質となっています。
 そこで、ソフトウェア発明を抽出するには、最小単位の「機能」でくくっていくことにより、「機能実現手段」あるいは「手順」を認識していくことが必要となります。
 この認識された「機能実現手段」自体が新しい機能を提供するとき、その部分を特徴とした発明が認識されますが、ソフトウェアの場合通常、個々の「機能実現手段」自体は公知である場合が多いかもしれません。しかし、それら公知の「機能実現手段」を複数組み合わせることで、新たな機能を生じるのであれば、それをもって発明として認識することが可能です。
 <構成異なれば別発明:権利一体の原則>

 別紙「権利解釈方法と明細書」で説明しているように、権利解釈の大原則として「権利一体の原則」があります。この原則は発明の発掘・認識の上で極めて重要です。この原則を利用した発明の発掘方法を以下説明します。
 例えば、
@ Aと、
  Bと、
  Cとを備えた装置
という発明や公知技術がすでにあったとします。
 これに対し、
A Aと、
  Bと、
  Cと、
  Dとを備えた装置

 あるいは、
B Aと、
  Bと、
  Dとを備えた装置

を新たに開発したとします。これらA、Bの発明は、@の発明と構成が異なるので別発明として特許され得ます。但し、Aの発明は@の発明のすべての構成要素を備えているので、いわゆる利用発明といいます。
 このように、従来技術、先行発明などに新たな構成を付加したり、構成を交換することで新たな発明とすることが可能です。
 ところで、第3者が、構成要素A、B、Cからなる装置を実施したら権利関係はどうなるでしょうか?
 この実施は、@の発明の特許権を侵害します。すべての構成を実施しているからです。
しかし、Aの発明の特許権を侵害することにはなりません。Dの構成を実施していないからです。このように、権利に抵触しているというためには、すべての構成要素を備えていることが必要であることを「権利一体の原則」といいます。
 この観点からすると、ABCDからなる発明の実施は、Aの発明のみならず、@の発明の特許侵害となります。この点はAの発明の特許権者も同様であり、Aの発明者は特許は取得できても実施すると@の特許発明を侵害する結果となります。これを解決するため、特許法ではクロスライセンス制度を設け、権利調整をしています。
 また、ABのみの実施はいずれの特許発明にも抵触しません。従って、構成要素の少ない発明の方が、権利範囲が広いということが言えます。
この権利一体の原則に基づき、構成の組み合わせを選択することで容易に発明が可能となるのです。

INDEXに戻る


 <日常業務の中で発明を見いだす>
 発明をするための特別な業務を新たに設けようとすると、それだけでおっくうになる。
いままで日常的にしていた業務の中で発明を見いだす工夫をする。たとえば、プログラム開発のシステム設計書を作成しながら、発明の認識作業を行う。
         ┌──────┐        日常業務を行いながら、別途
         │    日    │        の業務として、発明・提案を
         │    常    │        行うことは、困難     
┌─────┼──────┼─────┐     ↓
│ 発 明   │         │ 提 案   │  左図の交差部分、すなわち、
│        │         │        │  日常業務の枠内で発明・提案
└─────┼──────┼─────┘  をすればよい
         │    業    │           ↓
         │    務    │        システム設計と同時に提案書作
         └──────┘        成

 ソフトウェア開発者は通常、技術的思想を創作しようとか、創作したという意識がないのが通常です。なぜなら、プログラム開発者は、公知のプログラム言語、開発モジュール等を使用し、通常公知のハードウェア資源を利用してシステムを構築するのが通常で、何らかの思想を具現化したという実感を伴わないからです。
 従って、特許的な目を通じて、自己の開発したプログラム等をソフトウェア発明として見直す必要があります。
 なお、許されるのであれば、発明提案の日を設け、弁理士などの専門家を交え、複数の技術者で特定の技術につきブレーンストーミングを行って、発明の発掘をするというのも有効な手段であります。
INDEXに戻る


<ソフトウェアの開発工程と発明>
 ソフトウェアにつき例えば以下のような開発工程であったとします。
      ソフトの開発の流れ
   ┌────────────────────────────┐
   │1) 要求定義                                 │
   │ ソフトのユーザーの要求(ニーズ)を明確にし、その要求を      │
   │満足させるための、システムの目的、機能、性能、環境などを    │
   │決定する。                                  │
   └─────────────┬──────────────┘
                        │
   ┌─────────────┴──────────────┐
   │2) 基本設計                                │
   │ ソフト全体の機能、方式、構造、データ(ファイル、データ       │
   │ベース)、入力と出力の詳細等を設計する。               │
   └─────────────┬──────────────┘
                       │
   ┌─────────────┴──────────────┐
   │3) 詳細設計                                 │
   │ 詳細設計では、主として各プログラム毎にそのプログラムの    │
   │仕様を設計する。                              │
   └─────────────┬──────────────┘
                       │
   ┌─────────────┴──────────────┐
   │4) コーディング                               │
   │ コーディング過程では、実際のプログラム言語を用いてプロ     │
   │グラムを記述する。                             │
   └─────────────┬──────────────┘
                       │
   ┌─────────────┴──────────────┐
   │5) テスト                                  │
   │テストは、プログラムを実行させ、バグがないか、または仕様    │
   │の誤りがないか等につき行う。                      │
   └─────────────┬──────────────┘
                       │
   ┌─────────────┴──────────────┐
   │6) 運用・保守                               │
   │実際にソフトを用い、状況変化またはニーズに対応してソフト     │
   │の仕様変更・設計変更等を行う。                     │
   └────────────────────────────┘

 このソフトウェア開発工程でどのように発明を発見するかが問題となります。ソフトウェア関連発明においても、発明を発見するためには「機能」を発見すればよいことは同様です。前に述べたように、ソフトウェア発明は、機能・作用を中心に発明の構成が特定されます。この点が他の分野の発明と大きくことなり、ソフトウェア発明の特質となっています。
 そこで、ソフトウェア発明を抽出するには、最小単位の「機能」でくくっていくことにより、「機能実現手段」あるいは「手順」を認識していくことが必要となります。
 この認識された「機能実現手段」自体が新しい機能を提供するとき、その部分を特徴とした発明が認識されますが、ソフトウェアの場合通常、個々の「機能実現手段」自体は公知である場合が多いかもしれません。しかし、それら公知の「機能実現手段」を複数組み合わせることで、新たな機能を生じるのであれば、それをもって発明として認識することが可能です。
☆新たな機能が存在するところに必ず発明あり、ということです。
 このような「機能実現手段」を注出するため、具体的には、前記した開発工程の中で、明細書作成に必要な情報として、以下の情報を注出する必要があります。
 〔1〕要求定義の過程で作成したソフトの目的、機能、性能、環境などの決定事項を記載したドキュメント
 〔2〕基本設計の過程で作成したドキュメント類、特に、プログラム用ドキュメントとしてのフローチャート、このフローチャートによるソフト実行の動作説明を特にソフトの特徴的機能を必ず網羅するように記載
 〔3〕プログラム・リストは必要なし。
 〔4〕出願しようとするソフトについて機能・仕様の変更がある場合は、その変更箇所を示すドキュメント
 〔5〕 その他、ソフトウェアによる情報処理手段として用いられる場合等、ソフトを利用した具体例を少なくとも一つ挙げることが望ましい。
 〔6〕ソフトが実現する機能を、一つずつ機能ブロック図として表現する。各機能ブロックがコンピュータのどの部分で実現されるのかも示すとよい。
 以上の観点からすれば、基本設計(アイデア)段階で発明の認識が可能であり、明細書を作成することができます。この段階で出願を検討するのがよろしいでしょう。
 次に、ソフトウェア関連発明は、
 @研究テーマを掲げ、その結果生まれる発明(開発部における発明)
 A他社からのシステム開発依頼に基づく発明
 である場合が多く、
 B改善提案制度による発明(従来型QC運動、あるいは発明啓蒙キャンペーン等の中から生まれる発明)
 の場合は少ないようですが、最近は趣味的にコンピュータに精通しシステムあるいはプログラム開発を行って、職場の業務改善を行う者も増えているようですので、Bの場合の発明もあり得ます。
 ソフトウェア関連発明では、上記いずれの場合でも、何が発明であったのかを評価しずらいという特性があるので、発明の抽出作業が重要となります。
 また、上記Aの場合、プログラム開発委託契約などにおいて、開発に伴う権利関係を明確にしておく必要があります。

INDEXに戻る


<開発現場でのソフトウェア関連発明の発現形態>
 ソフトウェア関連発明が、ソフトウェアの開発現場でどのように発現・認識されるのかを予め知っておくことは、ソフトウェア関連発明を把握し、発掘し、さらに明細書を作成するにあたって、極めて重要です。

先に説明したように(発明の種類の項)、ソフトウェア関連発明では、大きくわけて  (1) コンピュータの外部ハードウェアに対する制御
 (2) コンピュータの内部ハードウェアに対する制御
 (3) ハードウェアの存在を意識できない発明
として発現する場合があります。
 このような分け方で捉えると、現場での実際にマッチししかも産業上利用性を満たす発明として明細書に記載しやすくなるというメリットがあります。
 なお、(1)と(2)については、制御対象に対して何をしているのか?という観点から発明の構成(特徴点)を捉えることが比較的容易にできますが、(3)の場合は、どのような構成を備えているのかなかなか捉えにくいという特徴があります。
 しかし、いずれの場合でも、「機能」からその構成を特定していくことで、発明の全体が見えてきます。

INDEXに戻る


 <コンピュータ・アーキテクチャとソフトウェア関連発明の発現形態>
 ソフトウェア関連発明は、既存のハードウェア(コンピュータ)の上で動くものです。従って、発明を把握するとともに、産業上利用可能性を満足する発明として明細書に記載する上で、開発したソフトウェアがコンピュータのハードすなわちアーキテクチャにどのような関わりをもっているのかを認識しておくことは重要です。
 添付図面にコンピュータ・アーキテクチャを示します。ソフトウェア関連発明はこれら図のどこかに必ず係わってきます。
INDEXに戻る
表紙へ戻る