説明

進捗管理システム及び進捗度計算方法

【課題】プログラマが実装した作業の進捗度が客観的に算出され、プログラマが仕様書を参照するだけで現在のソースコードが満たしている仕様の進捗度を把握することができる進捗管理システムを提供する。
【解決手段】仕様書データ及び進捗計算データを格納する仕様書進捗管理データベース105を備えたコンピュータ100から成る進捗管理システムであって、前記コンピュータ100は、仕様書から仕様書に定義した仕様を情報として持つソースコードを生成するソースコード生成手段と、プログラマの入力によってソースコード内の仕様の情報に上書きしてコードを実装するコード実装手段と、ソースコードに残っている上書きされていない仕様の情報の残数によって進捗度を計算し、計算された進捗度を仕様書に表示する進捗度計算・表示手段とを具備している。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、個々が進めるべき作業項目が記述された仕様書を作成し、その作業項目に対する仕事が終了した際にその結果を仕様書に自動的に反映させ、個々の進捗状況を確認できる進捗管理システム及び進捗度計算方法に関するものである。
【背景技術】
【0002】
システム開発などの生産活動をする場合、期限を設けたいくつかの作業項目に分け、並行して開発を進めていく場合が多い。そのように開発を進める場合、決められた期限内に作業を終えているかどうかを管理し、期限より遅れている作業を発見した場合、開発人員を投入したりするなどの対策をすることがシステム全体の開発をうまく進めるために重要である。
【0003】
近年、その作業の管理を行うためのシステムとして、様々な進捗管理システムがある。特許文献1は、対象のシステムを複数の作業に分けて開発を進める際に、それぞれの作業の進捗状況を把握し、またそれぞれの作業間でのデータ転送の実績から、それぞれの作業間の連携の進捗状況を把握することを目的としたものである。
【特許文献1】特開2004−21744号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
然しながら、従来の特許文献1等の進捗管理システムでは、開発するシステムで必要な機能を実現するための作業項目の進捗状況は把握することはできても、開発作業を行うプログラマに対してどのような作業があるかを把握させたり、どの作業が未作業であるかを把握させたりすることはできないという問題がある。
【0005】
上記の問題を解決すれば、プログラマがどの作業を進めればよいかを把握でき、より効率的に作業を進めることができる。
【0006】
以上の現状に鑑み、本発明は、プログラマが実装した作業の進捗度が客観的に算出され、プログラマが、仕様書を参照するだけで現在のソースコードが満たしている仕様の進捗度を把握することができる進捗管理システム及び進捗度計算方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記の課題を解決すべく、本発明は以下の構成を提供する。
請求項1に係る発明は、仕様書データ及び進捗計算データを格納する仕様書進捗管理データベースを備えたコンピュータから成る進捗管理システムであって、
前記コンピュータは、作成するシステムの機能の仕様を定義する仕様書を、前記仕様書進捗管理データベースに格納する仕様書データを抽出して編集する仕様書編集手段と、
前記仕様書から前記仕様書に定義した仕様を情報として持つソースコードを生成するソースコード生成手段と、
プログラマの入力によって前記ソースコード内の仕様の情報に上書きしてコードを実装するコード実装手段と、
前記仕様書進捗管理データベースから抽出された前記進捗計算データに基づき、前記ソースコードに残っている上書きされていない仕様の情報の残数によって進捗度を計算し、計算された進捗度を仕様書に表示する進捗度計算・表示手段とを具備することを特徴とする進捗管理システムを提供するものである。
【0008】
請求項2に係る発明は、請求項1記載の進捗管理システムに於いて、前記コンピュータが、前記仕様書に定義した仕様を一意に表すIDに関連付けられた仕様の情報を、テンプレートソースコード内にコメントとして出力することにより、仕様の情報を持つソースコードを生成するソースコード生成ステップと、
プログラマの入力によって前記ソースコード内のコメントに上書きしてコードを実装するコード実装ステップと
前記仕様書進捗管理データベースから抽出された前記進捗計算データに基づき、前記仕様書に対応するソースコードにある上書きされていないコメントの残数によって進捗度を計算する進捗度計算ステップとを実行することを特徴とする進捗度計算方法を提供するものである。
【発明の効果】
【0009】
請求項1記載の発明によれば、仕様書進捗管理データベースから抽出された進捗計算データに基づき、ソースコードに残っている上書きされていない仕様の情報の残数によって進捗度を計算し、計算された進捗度を仕様書に表示する進捗度計算・表示手段を具備する進捗管理システムを提供するので、プログラマが実装した作業の進捗度が客観的に算出され、プログラマが、仕様書を参照するだけで現在のソースコードが満たしている仕様の進捗度を把握することができる。
【0010】
即ち、前記仕様書進捗管理システムによって、仕様書に記述された仕様を実装するプログラマは、仕様書を参照するだけで現在のソースコードが満たしている仕様の進捗度を把握することができるため、その仕様に対するソースコードの実装が全て終了したかどうかソースコードを参照する作業が不要となる。
又、通常、プログラマの主観によってどのくらい作業が終えたかという進捗度は異なってしまうが、前記仕様書進捗管理システムを使用することによりプログラマが実装した作業の進捗度が客観的に算出されるので、プロジェクト全体の進捗を把握しなければならない管理者は遅れの出ている作業を早期に発見することができ、プロジェクトを円滑に進めることが出来る。
【0011】
請求項2記載の発明によれば、請求項1記載の進捗管理システムに於いて、コンピュータが、各ステップを実行することによって、プログラマが実装した作業の進捗度が客観的に算出され、プログラマが、現在のソースコードが満たしている仕様の進捗度を把握することができる。
【0012】
即ち、前記仕様書進捗管理システムによって、仕様書に記述された仕様を実装するプログラマは、現在のソースコードが満たしている仕様の進捗度を把握することができるため、その仕様に対するソースコードの実装が全て終了したかどうかソースコードを参照する作業が不要となる。
又、プログラマが実装した作業の進捗度が客観的に算出されるので、プロジェクト全体の進捗を把握しなければならない管理者は遅れの出ている作業を早期に発見することができ、プロジェクトを円滑に進めることが出来る。
【発明を実施するための最良の形態】
【0013】
以下、実施例を示した図面を参照しつつ本発明の実施の形態を説明する。
図1は本発明の進捗管理システムの構成図である。
図1に於いて、100は、本発明の進捗管理システムを構成するコンピュータであり、コンピュータ100は、以下の構成要素(101〜106)を備えている。
101は、ブラウン管や液晶によるディスプレイから成る表示装置である。
102は、メモリ領域にデータを保持する機能を持つ演算装置である。
103は、キーボードやマウスから成る入力装置である。
【0014】
104は、仕様書を編集するための機能(仕様書編集手段)と、仕様書から仕様書に定義した仕様を情報として持つソースコードを生成するための機能(ソースコード生成手段)と、プログラマの入力によってソースコード内の仕様の情報に上書きしてコードを実装する機能(コード実装手段)と、ソースコード内へのコード実装の進捗状況である進捗度を計算し、仕様書に進捗状況を表示するための機能(進捗度計算・表示手段)とを持った仕様書進捗管理プログラムである。
105は、仕様書進捗管理プログラム104で表示する仕様書のデータや、進捗を計算するためのデータなどを格納する仕様書進捗管理データベースである。
106は、仕様書進捗管理プログラム104により生成され、プログラマによって実装されるソースコードである。本実施例に於けるソースコード106は、前処理と業務処理を実行するメソッドを持ったJava(登録商標)のソースコードとする。
【0015】
図2は、仕様書進捗管理プログラム104を起動したときに表示される画面の例であり、表示のテンプレートを示すものである。実際に入力された図面は後述の図16で説明する。
図2に於いて、201は、仕様書進捗管理プログラム104を起動したときに表示される仕様書編集画面である。この仕様書編集画面201を使用して、設計者は仕様書を作成する。
202は、仕様書の名前を定義するテキストフィールドである。
203は、生成されるソースコード106のクラス名を定義するテキストフィールドである。
204は、仕様書で定義した仕様に対する実装の進捗度を表示するラベルである。
【0016】
205は、生成されるソースコード106で実装する業務処理を定義するリストである。リスト205は、1つの行に1つの業務処理の仕様を定義する。
206は、リスト205に定義した仕様を一意に表すためのIDを定義するテキストフィールドである。
207は、リスト205に定義した仕様の内容を定義するテキストフィールドである。
208は、生成されるソースコード106で実装する前処理を定義するリストである。リスト208は、1つの行に1つの前処理の仕様を定義する。
209は、リスト208に定義した仕様を一意に表すためのIDを定義するテキストフィールドである。
210は、リスト208に定義した仕様の内容を定義するテキストフィールドである。
211は、既に定義した仕様書を開くためのボタンである。
212は、定義した仕様書のデータを保存するためのボタンである。
213は、定義した仕様書からソースコード106を生成するためのボタンである。
【0017】
図3は仕様書編集画面201のボタン211をクリックしたときに起動するダイアログであり、表示のテンプレートを示すものである。実際に入力された図面は後述の図12で説明する。
図3に於いて、301は、仕様書編集画面201のボタン211をクリックしたときに起動する仕様書選択ダイアログである。
302は、保存されている仕様書の一覧を表示するためのリストである。このリスト302は、クリックすることで行を選択することができる。
303は、リスト302で選択されている仕様書を仕様書編集画面201に表示するためのボタンである。
【0018】
図4は、仕様書進捗管理プログラム104でソースコード106を生成する際に使用されるソースコードテンプレートである。
図4に於いて、401は、仕様書進捗管理プログラムでソースコード106を生成する際に使用されるソースコードテンプレートである。このソースコードテンプレート401は、データを出力する箇所を3つ持ったテンプレートファイルであり、仕様書生成機能はソースコードテンプレート401にデータを埋め込んでソースコード106を生成する。
402は、クラス名を出力するための出力箇所である。
403は、前処理の仕様をコメントで出力するための出力箇所である。
404は、業務処理の仕様をコメントで出力するための出力箇所である。
【0019】
図5は、仕様書進捗管理データベース104のテーブルの1つである仕様書名テーブルであり、表示のテンプレートを示すものである。この仕様書名テーブルは仕様書の仕様書名とクラス名を格納するデータ列を持つ。
図5に於いて、501は、仕様書名テーブルである。502は、仕様書の名前を格納するデータ列である。503は、仕様書の対応するクラスの名前を格納するデータ列である。
【0020】
図6は、仕様書進捗管理データベース104のテーブルの1つである仕様テーブルである。
図6に於いて、601は、仕様テーブルである。この仕様テーブル601の1つの行が1つの仕様となる。
602は、仕様を一意にあらわすIDを格納するデータ列である。
603は、この仕様の種別を格納するデータ列である。データ列603には本実施例では前処理と業務処理のいずれかが格納される。
604は、この仕様を持つ仕様書名を格納するデータ列である。
605は、この仕様の内容を格納するデータ列である。
【0021】
図7は、仕様書進捗データベース104のテーブルの1つである進捗比率テーブルである。
図7に於いて、701は、進捗比率テーブルである。この進捗比率テーブル701は、仕様の各種別を全て実装したときに得られる進捗率(進捗計算データ)を各行に定義するものである。尚、進捗率は0以上1以下とし、各行の合計が1になるようにする。
702は、仕様の種別を格納するデータ列である。
703は、データ列702で定義した仕様を全て実装したときに得られる進捗率を格納するデータ列である。
704は、前処理の仕様を全て実装したときに30%の進捗が進むことを表した進捗比率データである。
705は、業務処理の仕様を全て実装したときに70%の進捗が進むことを表した進捗比率データである。
【0022】
図8は、仕様書進捗データベース104のテーブルの1つである出力先テーブルである。
図8に於いて、801は、出力先テーブルである。この出力先テーブル801は、ソースコードの出力先を定義するテーブルである。
802は、ソースコードの出力先を格納するデータ列にあるカラムである。このカラム802にはソースコードの出力先として本実施例ではC:\out\srcを設定する。
【0023】
図9は、図5に示した仕様書名テーブル501にデータを格納した例である。仕様書名502とクラス名503を対応させ格納している。
図10は、図6に示した仕様テーブル601にデータを格納した例である。
任意指定した仕様ID602に前処理、業務処理のいずれかの種別603を決めて仕様605を記述しておく。
【0024】
図11は、進捗度を計算するためのメモリ領域を表したものである。
図11に於いて、1101は、進捗度を計算するためのメモリ領域である。
1102は、1件当たりの業務処理の仕様を実装した時の進捗度を保持するためのメモリ領域である。
1103は、1件当たりの前処理の仕様を実装した時の進捗度を保持するためのメモリ領域である。
【0025】
図12は、図9に示す仕様書名テーブル501のようにデータが格納されているときに、図2に示す仕様書編集画面201のボタン211をクリックしたときに表示される仕様書選択画面301である。
図13は、図12の仕様書選択画面301に於ける仕様書リスト302で「ログイン」を選択してボタン303をクリックしたときに表示される仕様書編集画面201である。
【0026】
図14は、図13の仕様書編集画面201でボタン213をクリックしたときに生成されるソースコード1401である。
図14に於いて、1402は、ソースコード1401のクラス名である。
1403は、ソースコード1401の前処理を行うbeforeメソッドに記述されたコメントである。
1404は、ソースコード1401の業務処理を行うexecuteメソッドに記述されたコメントである。
【0027】
図15は、ソースコード1401をプログラマが一部分実装したときの例である。
図15に於いて、1501は、ソースコード1401に対してプログラマがコードを一部分実装したソースコードである。
1502は、プログラマがソースコード1401のコメント1403に上書きして実装したコードである。
【0028】
図16は、ソースコード1501のように実装した後で、図12の仕様書選択画面301の仕様書リスト302で「ログイン」を選択してボタン303をクリックしたときに表示される仕様書編集画面1601である。
図16に於いて、1602は、図15に於いてソースコード1501で実装した箇所に対する仕様が記述された行である。
1603は、ソースコード1501に対して変更されたラベルである。
【0029】
以下、図17、18、19、20、21のフローチャートに従い、本実施例の詳細を説明する。尚、本実施例では仕様書進捗管理データベース104の各種テーブルは、図7、図8、図9、図10のようにデータが格納されているものとする。
【0030】
図17は、図2に示す画面編集画面201でボタン211をクリックしたときのフローチャートである。
先ず、ステップ1701に於いて、図9の仕様書名テーブル501から全ての仕様書名502を取得し、メモリ領域に保持する。
次にステップ1702に於いて、図12に示す仕様書選択ダイアログ301の表示項目を設定する。ここでは、ステップ1701で取得した全ての仕様書名502を仕様書選択ダイアログ301のリスト302に設定する。次にステップ1703に於いて、表示項目を設定した仕様書選択ダイアログ301を起動する。
【0031】
図18は、図12に示す画面選択ダイアログ301でボタン303をクリックしたときのフローチャートである。
ステップ1801に於いて、仕様書選択ダイアログ301のリスト302で選択されている仕様書名を取得し、メモリ領域に保持する。
次にステップ1802に於いて、図13に示す仕様書編集画面ステップ201のテキストフィールド202にステップ1801で取得した仕様書名を設定する。
次にステップ1803に於いて、仕様書名テーブル501のデータ列502からステップ1801で取得した仕様書名と同じ値を持つ行を取得する。
【0032】
次にステップ1804に於いて、仕様書編集画面201のテキストフィールド203にステップ1803で取得した行のデータ列503を設定する。
次にステップ1805に於いて、図10に示す仕様テーブル601のデータ列604からステップ1801で取得した仕様書名と同じ値であり、かつデータ列603の値が「業務処理」である行を取得する。
【0033】
次にステップ1806に於いて、仕様書編集画面201のリスト205のテキストフィールド206と207に、ステップ1805で取得した行の数だけ仕様ID602と仕様605の値を設定する。
次にステップ1807に於いて、仕様テーブル601のデータ列604からステップ1801で取得した仕様書名と同じ値であり、かつデータ列603の値が「前処理」である行を取得する。
【0034】
次にステップ1808に於いて、仕様書編集画面201のリスト208のテキストフィールド209と210に、ステップ1807で取得した行の数だけ仕様ID602と仕様605の値を設定する。
次にステップ1809に於いて、出力先テーブル801のカラム802からソースコードの出力先を取得する。
次にステップ1810に於いて、ステップ1809で取得したソースコード出力先にステップ1803で取得したデータ列503に定義されているクラス名のファイルがあるかどうかをチェックする。もしファイルがなければ、ステップ1811に進み、ファイルがあればステップ1812に進む。
【0035】
ステップ1811に於いて、ラベル204に「0%」を設定し、ステップ1813に進む。
ステップ1812に於いて、進捗計算処理を実行し、ステップ1813に進む。尚、進捗計算処理のフローチャートは図19で説明する。ステップ1813に於いて、仕様書選択ダイアログ301を消す。
【0036】
図19は、ステップ1812で実行される進捗計算処理のフローチャートを示す。
先ず、ステップ1901に於いて、図11に示すメモリ領域1101に「0」を設定する。
次にステップ1902に於いて、進捗比率テーブル701の行704のデータ列703の値を取得する。
次にステップ1903に於いて、ステップ1902で取得した値を、ステップ1805で取得した行の数で割った値をメモリ領域1102に格納する。
次にステップ1904に於いて、ステップ1805で取得した行の中から1つの行を取り出す。
【0037】
次にステップ1905に於いて、ステップ1904で取得した行のデータ列602の値と同じ値がステップ1810で取得したソースコード106の中でコメントとして記述されているかを検索する。もし検索して見つかった場合はステップ1906に進む。もしなかった場合はステップ1908に進む。
ステップ1906に於いて、メモリ領域1102に格納された値をメモリ領域1101の値に加算する。
次にステップ1907に於いて、ステップ1904で取得した行に対応する仕様書編集画面201のリスト205のテキストフィールド206、207の色を変色する。
【0038】
ステップ1908に於いて、ステップ1805で取得した行でまだ処理を行っていない行があるかどうかをチェックする。まだ処理をしていない行があればステップ1904に戻り、なければ、ステップ1909に進む。
ステップ1909に於いて、進捗比率テーブル701の行705のデータ列703の値を取得する。
次にステップ1910に於いて、ステップ1909で取得した値を、ステップ1807で取得した行の数で割った値をメモリ領域1103に格納する。
次にステップ1911に於いて、ステップ1807で取得した行の中から1つの行を取り出す。
【0039】
次にステップ1912に於いて、ステップ1911で取得した行のデータ列602の値と同じ値がステップ1810で取得したソースコード106の中でコメントとして記述されているかを検索する。もし検索して見つかった場合はステップ1913に進む。もしなかった場合はステップ1916に進む。
ステップ1913に於いて、メモリ領域1103に格納された値をメモリ領域1101の値に加算する。
【0040】
次にステップ1914に於いて、ステップ1911で取得した行に対応する仕様書編集画面201のリスト208のテキストフィールド209、210の色を変色する。
ステップ1915に於いて、ステップ1807で取得した行でまだ処理を行っていない行があるかどうかをチェックする。まだ処理をしていない行があればステップ1911に戻り、なければ、ステップ1916に進む。
ステップ1916に於いて、ラベル204にメモリ領域1101の値に100を乗算したものを設定する。
【0041】
図20は、図13に示す仕様書編集画面201でボタン212をクリックしたときに実行される処理のフローチャートである。
ステップ2001に於いて、仕様書名テーブル501に、テキストフィールド202の値、テキストフィールド203の値の順で格納した行を追加する。
次にステップ2002に於いて、リスト205にある1行分のデータを取得する。
次にステップ2003に於いて、仕様テーブル601に、ステップ2002で取得した行のテキストフィールド206の値、「業務処理」、テキストフィールド202の値、ステップ2002で取得した行のテキストフィールド207の値の順で格納した行を追加する。
【0042】
次にステップ2004に於いて、リスト205にまだ処理をしていない行があるかどうかをチェックし、あればステップ2002に戻り、なければステップ2005に進む。
ステップ2005に於いて、リスト208にある1行分のデータを取得する。
次にステップ2006に於いて、仕様テーブル601に、ステップ2005で取得した行のテキストフィールド209の値、「前処理」、テキストフィールド202の値、ステップ2005で取得した行のテキストフィールド210の値の順で格納した行を追加する。
次にステップ2007に於いて、リスト208にまだ処理をしていない行があるかどうかをチェックし、あればステップ2005に戻り、なければ処理を終了する。
【0043】
図21は図13に示す仕様書編集画面201でボタン213をクリックしたときに実行される処理のフローチャートである。
ステップ2101に於いて、ソースコードテンプレート401を取得する。次にステップ2102に於いて、テキストフィールド202の値を出力箇所402に埋め込む。
次にステップ2103に於いて、リスト205にある1行分のデータを取得する。次にステップ2104に於いて、出力箇所403にステップ2103で取得した行のテキストフィールド206、207の値をコメントとして埋め込む。次にステップ2105に於いて、リスト205にまだ処理をしていない行があるかどうかをチェックし、あればステップ2103に戻り、なければステップ2106に進む。
【0044】
ステップ2106に於いて、リスト208にある1行分のデータを取得する。
次にステップ2107に於いて、出力箇所404にステップ2106で取得した行のテキストフィールド209、210の値をコメントとして埋め込む。
次にステップ2108に於いて、リスト208にまだ処理をしていない行があるかどうかをチェックし、あればステップ2106に戻り、なければステップ2109に進む。
ステップ2109に於いて、出力箇所を埋め込まれたソースコードテンプレート401を、出力先テーブル801のカラム802に設定された出力先に出力し、テキストフィールド203の値をファイル名として出力する。
【図面の簡単な説明】
【0045】
【図1】本発明による進捗管理システムの構成図である。
【図2】本発明による仕様書編集画面である。
【図3】本発明による仕様書選択ダイアログである。
【図4】本発明によるソースコードテンプレートである。
【図5】本発明による仕様書名テーブルである。
【図6】本発明による仕様テーブルである。
【図7】本発明による進捗比率テーブルである。
【図8】本発明による出力先テーブルである。
【図9】本発明による仕様書名テーブルの例である。
【図10】本発明による仕様テーブルの例である。
【図11】本発明による進捗度の計算で使用されるメモリ領域である。
【図12】本発明による仕様書選択ダイアログの例である。
【図13】本発明による仕様書編集画面の例である。
【図14】本発明による生成されたソースコードである。
【図15】本発明による生成されたソースコードにコードを一部実装したソースコードである。
【図16】図15のように実装したときの仕様書編集画面の例である。
【図17】本発明による仕様書編集画面で「開く」ボタンをクリックした時に実行される処理のフローチャートである。
【図18】本発明による仕様書選択ダイアログで「開く」ボタンをクリックした時に実行される処理のフローチャートである。
【図19】本発明による進捗度の計算処理のフローチャートである。
【図20】本発明による仕様書編集画面で「保存」ボタンをクリックした時に実行される処理のフローチャートである。
【図21】本発明による仕様書編集画面で「ソースコード生成」ボタンをクリックした時に実行される処理のフローチャートである。
【符号の説明】
【0046】
100 コンピュータ
105 仕様書進捗管理データベース

【特許請求の範囲】
【請求項1】
仕様書データ及び進捗計算データを格納する仕様書進捗管理データベースを備えたコンピュータから成る進捗管理システムであって、
前記コンピュータは、作成するシステムの機能の仕様を定義する仕様書を、前記仕様書進捗管理データベースに格納する仕様書データを抽出して編集する仕様書編集手段と、
前記仕様書から前記仕様書に定義した仕様を情報として持つソースコードを生成するソースコード生成手段と、
プログラマの入力によって前記ソースコード内の仕様の情報に上書きしてコードを実装するコード実装手段と、
前記仕様書進捗管理データベースから抽出された前記進捗計算データに基づき、前記ソースコードに残っている上書きされていない仕様の情報の残数によって進捗度を計算し、計算された進捗度を仕様書に表示する進捗度計算・表示手段とを具備することを特徴とする進捗管理システム。
【請求項2】
請求項1記載の進捗管理システムに於いて、前記コンピュータが、前記仕様書に定義した仕様を一意に表すIDに関連付けられた仕様の情報を、テンプレートソースコード内にコメントとして出力することにより、仕様の情報を持つソースコードを生成するソースコード生成ステップと、
プログラマの入力によって前記ソースコード内のコメントに上書きしてコードを実装するコード実装ステップと
前記仕様書進捗管理データベースから抽出された前記進捗計算データに基づき、前記仕様書に対応するソースコードにある上書きされていないコメントの残数によって進捗度を計算する進捗度計算ステップとを実行することを特徴とする進捗度計算方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate