(57)【要約】      （修正有）【課題】多種多様なユーザのプログラミングを支援する解決策を提供する。【解決手段】プログラム支援システム１は、１または複数の端末装置１００と、１または複数の端末装置からアクセス可能な記憶手段を有するサーバ２００とを含む。端末装置は、プログラムの開発環境を提供する提供手段と、プログラムに発生した不具合事象の内容を示す情報を取得する取得手段と、予め定められた規則に従って不具合事象の内容を示す情報からアドレスを決定する決定手段とを含む。記憶手段は、不具合事象毎の情報（知識ベース２５０）を各不具合事象の内容を示す情報から決定されるアドレスに関連付けて保持する。【選択図】図１
2020190973.tif 000002
【特許請求の範囲】
【請求項１】
プログラム支援システムであって、
１または複数の端末装置と、
前記１または複数の端末装置からアクセス可能な記憶手段とを備え、
前記端末装置は、
プログラムの開発環境を提供する提供手段と、
前記プログラムに発生した不具合事象の内容を示す情報を取得する取得手段と、
予め定められた規則に従って前記不具合事象の内容を示す情報からアドレスを決定する決定手段とを備え、
前記記憶手段は、不具合事象毎の情報を各不具合事象の内容を示す情報から決定されるアドレスに関連付けて保持する、プログラミング支援システム。
【請求項２】
前記決定手段は、前記不具合事象の内容を示す情報をハッシュ関数に入力して、予め定められた長さのアドレスを決定する、請求項１に記載のプログラミング支援システム。
【請求項３】
前記記憶手段が保持する不具合事象毎の情報は、複数のユーザによる更新が可能になっている、請求項１または２に記載のプログラミング支援システム。
【請求項４】
前記取得手段は、バックトレースまたはスタックトレースの機能により、前記不具合事象の内容を示す情報を取得する、請求項１〜３のいずれか１項に記載のプログラミング支援システム。
【請求項５】
前記プログラムに発生した不具合事象は、プログラムの実行時エラーおよびプログラムのコンパイルエラーの少なくとも一方を含む、請求項１〜４のいずれか１項に記載のプログラミング支援システム。
【請求項６】
プログラムの開発環境において、いずれかのプログラムに発生した不具合事象の内容を示す情報を取得するステップと、
予め定められた規則に従って前記不具合事象の内容を示す情報からアドレスを決定するステップと、
前記決定されたアドレスに基づいて、当該アドレスに関連付けて保持されている対応する不具合事象の情報にアクセスするステップとを備える、プログラミング支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、プログラミング支援システムおよびプログラミング支援方法に関する。
【背景技術】
【０００２】
近年の情報通信技術（Information and Communication Technology：ＩＣＴ）の進歩は目覚ましく、インターネットなどのネットワークに接続されるデバイスは、従来のパーソナルコンピュータやスマートフォンといった情報処理装置に限らず、様々なモノ（things）に広がっている。このような技術トレンドは、「ＩｏＴ（Internet of Things；モノのインターネット）」と称され、様々な技術およびサービスが提案および実用化されつつある。将来的には、地球上の数十億人と数百億または数兆のデバイスとが同時につながる世界が想定されている。このようなネットワーク化された世界を実現するためには、よりシンプル、より安全、より自由につながることができるソリューションを提供する必要がある。
【０００３】
このようなデバイスのインテリジェント化に伴って、様々な種類のプログラムの作成が必要となっている。一方で、プログラムの作成にあっては、プログラム中に存在する様々な誤りを修正（いわゆる、デバッグ）する必要がある。このようなプログラムに含まれる誤りを修正する技術として、例えば、特開２００１−２４３０８９号公報（特許文献１）は、試験対象ソフトウェアの異常の原因追求を容易にする検査装置を開示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−２４３０８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記特許文献１は、試験プログラム停止後に試験プログラムの内部状態を得ることで障害原因を解析する手法を開示するにすぎず、得られた内部状態を用いてどのように障害原因を解析するのかについては、何ら教示するものではない。
【０００６】
本開示は、多種多様なユーザのプログラミングを支援する解決策を提供する。
【課題を解決するための手段】
【０００７】
本開示のある形態に従うプログラム支援システムは、１または複数の端末装置と、１または複数の端末装置からアクセス可能な記憶手段とを含む。端末装置は、プログラムの開発環境を提供する提供手段と、プログラムに発生した不具合事象の内容を示す情報を取得する取得手段と、予め定められた規則に従って不具合事象の内容を示す情報からアドレスを決定する決定手段とを含む。記憶手段は、不具合事象毎の情報を各不具合事象の内容を示す情報から決定されるアドレスに関連付けて保持する。
【０００８】
決定手段は、不具合事象の内容を示す情報をハッシュ関数に入力して、予め定められた長さのアドレスを決定するようにしてもよい。
【０００９】
記憶手段が保持する不具合事象毎の情報は、複数のユーザによる更新が可能になっていてもよい。
【００１０】
取得手段は、バックトレースまたはスタックトレースの機能により、不具合事象の内容を示す情報を取得してもよい。
【００１１】
プログラムに発生した不具合事象は、プログラムの実行時エラーおよびプログラムのコンパイルエラーの少なくとも一方を含んでいてもよい。
【００１２】
本開示の別の形態に従うプログラム支援方法は、プログラムの開発環境において、いずれかのプログラムに発生した不具合事象の内容を示す情報を取得するステップと、予め定められた規則に従って不具合事象の内容を示す情報からアドレスを決定するステップと、決定されたアドレスに基づいて、当該アドレスに関連付けて保持されている対応する不具合事象の情報にアクセスするステップとを含む。
【発明の効果】
【００１３】
本開示によれば、多種多様なユーザのプログラミングを支援できる。
【図面の簡単な説明】
【００１４】
【図１】本実施の形態に従うプログラミング支援システムの全体構成の一例を示す模式図である。
【図２】本実施の形態に従うプログラミング支援システムに含まれる端末装置のハードウェア構成例を示す模式図である。
【図３】本実施の形態に従うプログラミング支援システムにおけるプログラミングおよびバックトレースについて説明するための図である。
【図４】本実施の形態に従うプログラミング支援システムにおいて実行される処理の概要を説明するための模式図である。
【図５】本実施の形態に従うプログラミング支援システムにおいて提供される統合開発環境のユーザインターフェイススクリーンの一例を示す図である。
【図６】本実施の形態に従うプログラミング支援システムにおいてサーバが提供する情報の一例を示すユーザインターフェイススクリーンの一例を示す図である。
【図７】本実施の形態に従うプログラミング支援システムにおいて用いられるアドレスの形式の一例を示す図である。
【発明を実施するための形態】
【００１５】
本開示に係る実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００１６】
＜Ａ．プログラミング支援システム１の全体構成＞
まず、本実施の形態に従うプログラミング支援システム１の全体構成について説明する。プログラミング支援システム１は、１または複数のユーザ（プログラマー）に対して、プログラミングを支援するための情報を提供する。
【００１７】
図１は、本実施の形態に従うプログラミング支援システム１の全体構成の一例を示す模式図である。図１を参照して、プログラミング支援システム１は、１または複数のコンピュータからなるサーバ２００と、ネットワーク２を介してサーバ２００にアクセス可能な１または複数の端末装置１００とを含む。
【００１８】
端末装置１００の各々には、統合開発環境（ＩＤＥ：Integrated Development Environment）が提供されており、ユーザは統合開発環境上で任意のプログラムを作成できるものとする。
【００１９】
サーバ２００は、端末装置１００の統合開発環境上でのプログラム作成に係る情報を保持、管理および提供する記憶部に相当する。すなわち、サーバ２００は、１または複数の端末装置１００からアクセス可能な記憶部を有している。より具体的には、サーバ２００は、プログラム作成に係る不具合事象毎に知識ベース２５０を保持しており、いずれかの端末装置１００からのアクセスに応じて、要求された情報の提供および情報の更新などを行う。知識ベース２５０へのアクセスは、事象毎に対応付けられるユニークなアドレスによって実現される。
【００２０】
例えば、端末装置１００の統合開発環境上で作成した何らかのプログラム（ソースコード）をコンパイルした際にエラーが発生した場合、あるいは、コンパイル済のプログラム（オブジェクト形式）を実行した際にエラーが発生した場合を想定する。このような場合において、発生した不具合事象の内容を示す情報（例えば、バックトレースなどによって得られるエラーコンテキスト）が取得され、この取得された情報に基づいて、発生した不具合事象に関する知識ベース２５０を参照するためのアドレスが決定される。
【００２１】
一方、サーバ２００は、不具合事象毎の情報（知識ベース２５０）を各不具合事象の内容を示す情報から決定されるアドレスに関連付けて保持している。そのため、ユーザは、決定されたアドレスに基づいて、当該発生した不具合事象を解消するための情報を対応する知識ベース２５０に容易にアクセスできる。
【００２２】
発生した不具合事象の内容を示す情報（例えば、バックトレースにより得られたメッセージ）は、当該不具合事象に固有の情報であり、このような固有の情報を用いることで、どのような情報が必要であるかを一意に特定できる。例えば、複数のユーザが同一の不具合事象に出くわした場合には、実質的に同一の情報が出力されるので、その出力されるエラーコンテキストなどをキーにして、必要な情報へアクセスするためのアドレスを決定できる。
【００２３】
図１に示すように、プログラミング支援システム１では、プログラムの開発環境において、いずれかのプログラムに発生した不具合事象の内容を示す情報を取得する処理と、予め定められた規則に従って不具合事象の内容を示す情報からアドレスを決定する処理と、決定されたアドレスに基づいて、当該アドレスに関連付けて保持されている対応する不具合事象の情報にアクセスする処理とが実行される。
【００２４】
＜Ｂ．ハードウェア構成例＞
次に、本実施の形態に従うプログラミング支援システム１に含まれるデバイスのハードウェア構成例について説明する。
【００２５】
（ｂ１：端末装置１００）
端末装置１００は、典型的には汎用コンピュータで実現される。
【００２６】
図２は、本実施の形態に従うプログラミング支援システム１に含まれる端末装置１００のハードウェア構成例を示す模式図である。図２を参照して、端末装置１００は、主たるコンポーネントとして、プロセッサ１０２と、メインメモリ１０４と、入力部１０６と、ディスプレイ１０８と、ハードディスク１１０と、ネットワークインターフェイス１１８とを含む。これらのコンポーネントは、内部バス１２０を介して接続されている。
【００２７】
プロセッサ１０２は、例えば、ＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）などで構成される。複数のプロセッサ１０２が配置されてもよいし、複数のコアを有するプロセッサ１０２を採用してもよい。
【００２８】
メインメモリ１０４は、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）などの揮発性記憶装置で構成される。ハードディスク１１０は、プロセッサ１０２で実行される各種プログラムや各種データを保持する。なお、ハードディスク１１０に代えて、ＳＳＤ（Solid State Drive）やフラッシュメモリなどの不揮発性記憶装置を採用してもよい。ハードディスク１１０に格納されたプログラムのうち、指定されたプログラムがメインメモリ１０４上に展開され、プロセッサ１０２は、メインメモリ１０４上に展開されたプログラムに含まれるコンピュータ可読命令（computer-readable instructions）を順次実行することで、後述するような各種機能を実現する。
【００２９】
典型的には、ハードディスク１１０には、ユーザが任意に作成するソースプログラム１１２と、統合開発環境を実現するための開発プログラム１１４と、後述するようなサーバ２００へのアクセスを実現するためのアクセスプログラム１１６とが格納される。開発プログラム１１４は、プログラムの開発環境を提供するモジュールを含み、アクセスプログラム１１６は、予め定められた規則に従って不具合事象の内容を示す情報からアドレスを決定するモジュールを含む。
【００３０】
入力部１０６は、端末装置１００を操作するユーザの入力操作を受け付ける。入力部１０６は、例えば、キーボード、マウス、表示デバイス上に配置されたタッチパネル、端末装置１００の筐体に配置された操作ボタンなどであってもよい。
【００３１】
ディスプレイ１０８は、プロセッサ１０２での処理結果などを表示する。ディスプレイ１０８は、例えば、ＬＣＤ（Liquid Crystal Display）や有機ＥＬ（Electro-Luminescence)ディスプレイなどであってもよい。
【００３２】
ネットワークインターフェイス１１８は、ネットワーク２を介したサーバ２００との通信を担当する。ネットワークインターフェイス１１８は、例えば、イーサネット（登録商標）ポート、ＵＳＢ（Universal Serial Bus）ポート、ＩＥＥＥ１３９４などのシリアルポート、レガシーなパラレルポートといった有線接続端子を含む。あるいは、ネットワークインターフェイス１１８は、デバイス、ルータ、移動体基地局などと無線通信するための処理回路およびアンテナなどを含んでもよい。ネットワークインターフェイス１１８が対応する無線通信は、例えば、Ｗｉ−Ｆｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＺｉｇＢｅｅ（登録商標）、ＬＰＷＡ（Low Power Wide Area）、ＧＳＭ（登録商標）、Ｗ−ＣＤＭＡ、ＣＤＭＡ２００、ＬＴＥ（Long Term Evolution）、第５世代移動通信システム（５Ｇ）のいずれであってもよい。
【００３３】
なお、端末装置１００の全部または一部は、コンピュータ可読命令に相当する回路が組み込まれたＡＳＩＣ（Application Specific Integrated Circuit）などのハードワイヤード回路を用いて実現してもよい。さらにあるいは、ＦＰＧＡ（field-programmable gate array）上にコンピュータ可読命令に相当する回路を用いて実現してもよい。また、プロセッサ１０２およびメインメモリ、ＡＳＩＣ、ＦＰＧＡなどを適宜組み合わせて実現してもよい。
【００３４】
端末装置１００は、開発プログラム１１４およびアクセスプログラム１１６（コンピュータ可読命令）を格納する非一過性（non-transitory）のメディアから、当該格納しているプログラムなどを読み出すためのコンポーネントをさらに有していてもよい。メディアは、例えば、ＤＶＤ（Digital Versatile Disc）などの光学メディア、ＵＳＢメモリなどの半導体メディアなどであってもよい。
【００３５】
なお、開発プログラム１１４およびアクセスプログラム１１６は、メディアを介して端末装置１００にインストールされるだけではなく、ネットワーク上の配信サーバから提供されるようにしてもよい。
【００３６】
（ｂ２：サーバ２００）
サーバ２００についても、典型的には汎用コンピュータで実現される。サーバ２００の基本的なハードウェア構成については図２と同様であるので、詳細な説明は繰り返さない。但し、サーバ２００は、複数のコンピュータで構成される場合も多く、このような構成においては、コンピュータ間でデータを共通できるような仕組みが採用される。また、負荷に応じて、サーバ２００を構成するコンピュータの数を増減させるようにしてもよい。また、複数の地理的に離れた位置に配置された複数のコンピュータが仮想的に単一のサーバ２００として動作するようにしてもよい。
【００３７】
＜Ｃ．プログラミングおよびバックトレース＞
図３は、本実施の形態に従うプログラミング支援システム１におけるプログラミングおよびバックトレースについて説明するための図である。図３（Ａ）を参照して、ユーザがソースプログラム１１２を作成し、当該作成したソースプログラム１１２をコンパイルして生成されたオブジェクト形式のプログラムを実行すると、特定部位のコードにおいて不具合事象（典型的には、実行時エラー）が発生したとする（以下、そのようなコードを「不具合コード１５０」とも称す。）。
【００３８】
このような実行時エラーが発生したときに、バックトレース機能１６０を実行することで、図３（Ｂ）に示すような、エラーコンテキスト１６２を取得できる。バックトレース機能１６０は、発生した不具合事象の内容を示す情報を取得するための機能である。バックトレース機能１６０は、統合開発環境に含まれるデバッグ機能の一部として提供されてもよい。なお、バックトレースという名称に代えて、スタックトレースといった名称で呼ばれることもある。さらに、メモリダンプやコアダンプなどの機能を用いてもよい。
【００３９】
このように、端末装置１００は、プログラムに発生した不具合事象の内容を示す情報を取得する機能として、バックトレースまたはスタックトレースの機能を有している。すなわち、端末装置１００は、バックトレースまたはスタックトレースの機能により、不具合事象の内容を示す情報を取得する。
【００４０】
なお、ソースプログラム１１２をコンパイルした際に不具合事象（典型的には、コンパイルエラー）が発生する場合も同様に、発生した不具合事象の内容を示す情報（エラーコンテキスト１６２）を取得することができる。この場合には、発生した不具合事象の内容を示す情報を出力する機能は、統合開発環境に含まれるコンパイラやリンカなどに含まれてもよい。
【００４１】
本実施の形態に従うプログラミング支援システム１において、プログラムに発生した不具合事象は、プログラムの実行時エラーおよびプログラムのコンパイルエラーの少なくとも一方を含んでいてもよい。
【００４２】
＜Ｄ．処理の概要＞
次に、プログラミング支援システム１において実行される処理の概要について説明する。図４は、本実施の形態に従うプログラミング支援システム１において実行される処理の概要を説明するための模式図である。図４を参照して、ユーザが作成したソースプログラム１１２に対して何らかの不具合事象（実行時エラーあるいはコンパイルエラー）が発生して、エラーコンテキスト１６２が生成されたとする。
【００４３】
エラーコンテキスト１６２は、アドレス決定手段の一例としてのハッシュ関数１７０に入力されて、所定文字数のハッシュ値１７２が出力される。そして、ハッシュ値１７２から発生した不具合事象に対応するアドレス１７４が決定される。ハッシュ関数１７０としては、公知のアルゴリズム（例えば、ＳＨＡ５１２，ＳＨＡ３８４，ＷＨＩＲＬＰＯＯＬなど）を用いることができる。このように、不具合事象の内容を示す情報をハッシュ関数１７０に入力して、予め定められた長さのアドレスを決定できる。なお、アドレス決定手段としては、任意の文字列を所定数の文字列にマッピングできるものであれば、どのような変換式あるいはマッパーを用いてもよい。
【００４４】
図５は、本実施の形態に従うプログラミング支援システム１において提供される統合開発環境のユーザインターフェイススクリーン１８０の一例を示す図である。図５を参照して、ユーザインターフェイススクリーン１８０は、ソースプログラム１１２の作成および編集を行うエディタ領域１８２と、何らかの不具合事象が発生したときにバックトレース機能１６０を実行するためのバックトレースボタン１８４と、バックトレース機能１６０により得られるエラーコンテキストを表示するエラーコンテキスト表示領域１８６と、サーバ２００へのアクセスを実行するアクセスボタン１８８とを含む。
【００４５】
ユーザは、エディタ領域１８２において任意のソースプログラムを作成あるいは編集できる。作成したソースプログラムの実行あるいはコンパイルなどにおいて、何らかの不具合事象が発生した場合には、バックトレースボタン１８４を押下することで、発生した不具合事象についてのエラーコンテキスト１６２が取得され、エラーコンテキスト表示領域１８６に表示される。ユーザは、エラーコンテキスト表示領域１８６に表示される内容を確認しながら、ソースプログラム１１２をデバッグすることもできる。
【００４６】
さらに、ユーザがアクセスボタン１８８を押下すると、発生した不具合事象のデバッグを支援するための情報（知識ベース２５０）へアクセスすることができる（以下に説明する、図６参照）。
【００４７】
図６は、本実施の形態に従うプログラミング支援システム１においてサーバ２００が提供する情報の一例を示すユーザインターフェイススクリーン１９０の一例を示す図である。図５のアクセスボタン１８８が押下されることで、端末装置１００はサーバ２００の特定のアドレスにアクセスできる。アクセス先には、発生した不具合事象に対応する知識ベース２５０が関連付けられており、端末装置１００のユーザインターフェイススクリーン１９０では、アクセス先の知識ベース２５０の内容が表示される。
【００４８】
図６を参照して、ユーザインターフェイススクリーン１９０は、対象となる知識ベース２５０を参照するためのアドレス１７４と、知識ベース２５０に含まれる不具合情報１９２とが表示されている。
【００４９】
図６に示す不具合情報１９２としては、１または複数のユーザが任意にメッセージを投稿できる形式であってもよい。すなわち、サーバ２００が保持する不具合事象毎の情報は、複数のユーザによる更新が可能になっていてもよい。例えば、サポート担当のユーザ１９４が特定の不具合事象についてメッセージを投稿した後、一般のユーザ１９６が自身の経験に基づいて追加のメッセージを投稿するような運用形態が想定される。
【００５０】
このように、統合開発環境を開発あるいは保守するサポートエンティティに加えて、統合開発環境を利用する一般ユーザを含む複数のユーザがそれぞれ得ている知見を投稿することで、共通の不具合事象に対する知見を集約でき、当該不具合事象に対する解決策を容易に見つけることができる。
【００５１】
＜Ｅ．アドレスの形式＞
次に、知識ベース２５０にアクセスするためのアドレスの形式について説明する。基本的には、不具合事象毎に用意された知識ベース２５０にアクセスできれば、どのようなアドレスの形式を採用してもよい。
【００５２】
図７は、本実施の形態に従うプログラミング支援システム１において用いられるアドレスの形式の一例を示す図である。図７（Ａ）に示すように、アドレスの形式として、エラーコンテキスト１６２から算出されるハッシュ値１７２をそのままアドレスの一部に用いるようにしてもよい。
【００５３】
あるいは、図７（Ｂ）に示すように、ＨＴＴＰプロトコルのＧＥＴ型コマンドを利用して、エラーコンテキスト１６２から算出されるハッシュ値１７２を利用した識別情報をサーバ２００へ渡すようにしてもよい。
【００５４】
図７に示されるアドレスの形式に限られず、任意の形式で、発生した不具合事象に対応する特定の知識ベース２５０へアクセスできるように構成すればよい。
【００５５】
＜Ｆ．その他の形態＞
上述の説明においては、典型例として、生成されたエラーコンテキスト１６２の全部をハッシュ関数１７０に入力する処理例を示すが、このような処理例に限られず、エラーコンテキスト１６２に含まれる情報のうち、インスタンスとして決定される情報を除外した上で、ハッシュ関数１７０に入力するようにしてもよい。あるいは、インスタンスとして決定される情報の部分は、予め定められた数字あるいは文字でパディングした上で、ハッシュ関数１７０に入力するようにしてもよい。このような前処理を適用することで、実質的に同一の不具合事象について、同一のアドレスを決定でき、情報の共有を容易化できる。
【００５６】
また、上述の説明においては、１または複数の端末装置１００とサーバ２００とからなる、いわゆるサーバ・クライエントモデルを例示するが、端末装置１００間で情報を共有する、いわゆるサーバレスの構成を採用してもよい。この場合においても、発生した不具合事象の内容を示す情報を用いて決定されるアドレスを情報共有のためのキー（識別情報）として用いることができる。サーバレスの構成においては、端末装置１００の統合開発環境上でのプログラム作成に係る情報を保持、管理および提供する記憶部は、いずれかの端末装置１００あるいは複数の端末装置１００に実質的に設けられることになる。
【００５７】
＜Ｇ．利点＞
本実施の形態に従うプログラミング支援システム１によれば、複数のユーザが様々なプログラムを作成するにあたって生じ得る不具合事象に対する解決策へ容易にアクセスすることができる。また、実質的に同一の不具合事象について、サポート側の情報だけではなく、ユーザ側の情報についても集約することができ、知識ベースを充実化できる。
【００５８】
今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００５９】
１  プログラミング支援システム、２  ネットワーク、１００  端末装置、１０２  プロセッサ、１０４  メインメモリ、１０６  入力部、１０８  ディスプレイ、１１０  ハードディスク、１１２  ソースプログラム、１１４  開発プログラム、１１６  アクセスプログラム、１１８  ネットワークインターフェイス、１２０  内部バス、１５０  不具合コード、１６０  バックトレース機能、１６２  エラーコンテキスト、１７０  ハッシュ関数、１７２  ハッシュ値、１７４  アドレス、１８０，１９０  ユーザインターフェイススクリーン、１８２  エディタ領域、１８４  バックトレースボタン、１８６  エラーコンテキスト表示領域、１８８  アクセスボタン、１９２  不具合情報、１９４，１９６  ユーザ、２００  サーバ、２５０  知識ベース。
【図１】
2020190973.tif 000003
【図２】
2020190973.tif 000004
【図３】
2020190973.tif 000005
【図４】
2020190973.tif 000006
【図５】
2020190973.tif 000007
【図６】
2020190973.tif 000008
【図７】
2020190973.tif 000009