(57)【要約】【課題】利用目的に応じたルールを動的に切り替えてソースプログラムを整形する。【解決手段】ソースプログラムに対する操作を受け付ける操作受付部１１と、操作受付部１１により受け付けられた操作が登録されているか否かを判定する登録判定部１２と、登録判定部１２により操作が登録されていると判定された場合に、当該操作に対応する整形ルールを適用してソースプログラムを整形する整形部１３と、整形部１３により整形された後のソースプログラムを用いて、操作受付部１１により受け付けられた操作を実行する操作実行部１４と、を備える。【選択図】図１
2012174173.tif 000002
【特許請求の範囲】
【請求項１】
ソースプログラムに対する操作を受け付ける操作受付部と、
前記操作受付部により受け付けられた前記操作が登録されているか否かを判定する登録判定部と、
前記登録判定部により前記操作が登録されていると判定された場合に、当該操作に対応する整形ルールを適用して前記ソースプログラムを整形する整形部と、
前記整形部により整形された後の前記ソースプログラムを用いて、前記操作受付部により受け付けられた前記操作を実行する操作実行部と、
を備えることを特徴とするソースプログラム整形装置。
【請求項２】
前記操作実行部により前記操作が実行された後に、整形後の前記ソースプログラムを元に戻すか否かを確認する確認部を、さらに備え、
前記整形部は、前記確認部により元に戻すことが確認された場合に、整形後の前記ソースプログラムを整形前の状態に戻す、
ことを特徴とする請求項１記載のソースプログラム整形装置。
【請求項３】
ソースプログラムに対する操作を受け付ける操作受付ステップと、
前記操作受付ステップにおいて受け付けられた前記操作が登録されているか否かを判定する登録判定ステップと、
前記登録判定ステップにおいて前記操作が登録されていると判定された場合に、当該操作に対応する整形ルールを適用して前記ソースプログラムを整形する整形ステップと、
前記整形ステップにおいて整形された後の前記ソースプログラムを用いて、前記操作受付ステップにおいて受け付けられた前記操作を実行する操作実行ステップと、
を含むことを特徴とするソースプログラム整形方法。
【請求項４】
請求項３に記載の各ステップをコンピュータに実行させるためのソースプログラム整形プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソースプログラム整形装置、ソースプログラム整形方法およびソースプログラム整形プログラムに関する。
【背景技術】
【０００２】
ソフトウェア開発ではソースプログラムを読み易くして保守性を向上させるために、ソースプログラムをプロジェクトごとに決められたルールで整形することが推奨されている。下記特許文献１〜３には、ソースプログラムをプログラマが希望する形式に整形する方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平２−１０５９３２号公報
【特許文献２】特開平３−２９２５３０号公報
【特許文献３】特開平１０−１４９２７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記特許文献１〜３に記載の整形方法では、予め設定した一種類のルールに基づいてソースプログラムを整形しているため、異なるルールで整形する場合には、その都度ルールを設定し直す必要がある。
【０００５】
本発明は、上述した課題を解決するためになされたものであり、利用目的に応じたルールを動的に切り替えてソースプログラムを整形することができるソースプログラム整形装置、ソースプログラム整形方法およびソースプログラム整形プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明のソースプログラム整形装置は、ソースプログラムに対する操作を受け付ける操作受付部と、前記操作受付部により受け付けられた前記操作が登録されているか否かを判定する登録判定部と、前記登録判定部により前記操作が登録されていると判定された場合に、当該操作に対応する整形ルールを適用して前記ソースプログラムを整形する整形部と、前記整形部により整形された後の前記ソースプログラムを用いて、前記操作受付部により受け付けられた前記操作を実行する操作実行部と、を備える。
【０００７】
本発明のソースプログラム整形方法は、ソースプログラムに対する操作を受け付ける操作受付ステップと、前記操作受付ステップにおいて受け付けられた前記操作が登録されているか否かを判定する登録判定ステップと、前記登録判定ステップにおいて前記操作が登録されていると判定された場合に、当該操作に対応する整形ルールを適用して前記ソースプログラムを整形する整形ステップと、前記整形ステップにおいて整形された後の前記ソースプログラムを用いて、前記操作受付ステップにおいて受け付けられた前記操作を実行する操作実行ステップと、を含む。
【０００８】
本発明のソースプログラム整形プログラムは、上記ソースプログラム整形方法に含まれる各ステップをコンピュータに実行させる。
【発明の効果】
【０００９】
本発明によれば、利用目的に応じたルールを動的に切り替えてソースプログラムを整形することができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態におけるソースプログラム整形装置の構成を例示するブロック図である。
【図２】操作情報テーブルのデータ構成を例示する図である。
【図３】整形ルール情報テーブルのデータ構成を例示する図である。
【図４】マッピング情報テーブルのデータ構成を例示する図である。
【図５】本発明を適用しない場合のエラー内容を例示する図である。
【図６】本発明を適用した場合のエラー内容を例示する図である。
【図７】ソースプログラムを整形する際の処理手順を説明するためのフローチャートである。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して、本発明に係るソースプログラム整形装置、ソースプログラム整形方法およびソースプログラム整形プログラムの好適な実施形態について説明する。本実施形態におけるソースプログラム整形装置には、例えばVisual StudioやEclipse等のような統合開発環境が組み込まれている。
【００１２】
まず、図１を参照して、実施形態におけるソースプログラム整形装置の構成について説明する。ソースプログラム整形装置１は、ネットワーク３を介して整形ルールサーバ２と接続される。
【００１３】
整形ルールサーバ２は、ソースプログラム整形装置１からの要求を受信する受信部２１と、受信した要求に基づいてルールＤＢ２５を検索する検索部２２と、検索結果をソースプログラム整形装置１に送信する送信部２３とを有する。
【００１４】
ルールＤＢ２５は、図２に示す操作情報テーブルと、図３に示す整形ルール情報テーブルと、図４に示すマッピング情報テーブルとを含む。
【００１５】
図２を参照して、操作情報テーブルのデータ構成について説明する。操作情報テーブルは、データ項目として、例えば、操作ＩＤ項目および操作名項目を有する。操作ＩＤ項目には、操作を一意に特定する識別情報が格納される。操作名項目には、例えば、“コミット”、“デバッグ”、“保存”等のように、操作内容を表現する名称が格納される。
【００１６】
図３を参照して、整形ルール情報テーブルのデータ構成について説明する。整形ルール情報テーブルは、データ項目として、例えば、整形ルールＩＤ項目および整形ルール項目を有する。整形ルールＩＤ項目には、整形ルールを一意に特定する識別情報が格納される。整形ルール項目には、適用される整形ルールの内容が格納される。
【００１７】
図４を参照して、マッピング情報テーブルのデータ構成について説明する。マッピング情報テーブルは、データ項目として、例えば、マッピングＩＤ項目、操作ＩＤ項目、操作名項目、整形ルールＩＤ項目、整形ルール項目、および戻すフラグ項目を有する。マッピングＩＤ項目には、操作情報と整形ルール情報との対応関係を一意に特定する識別情報が格納される。操作ＩＤ項目および操作名項目は、操作情報テーブルの各データ項目に対応する。整形ルールＩＤ項目および整形ルール項目は、整形ルール情報テーブルの各データ項目に対応する。戻すフラグ項目は、整形後のソースプログラムを元の状態に戻すか否かを示すフラグ情報を格納する。
【００１８】
図１に示すソースプログラム整形装置１は、物理的には、例えば、ＣＰＵ（Central Processing Unit）と、記憶装置と、入力装置と、ディスプレイと、入出力インターフェースとを含んで構成される。記憶装置には、例えば、ＣＰＵで処理されるプログラムやデータを記憶するＲＯＭ（Read Only Memory）やＨＤＤ（Hard Disk Drive）、主として制御処理のための各種作業領域として使用されるＲＡＭ（Random Access Memory）等の要素が含まれる。入力装置には、例えば、マウスやキーボードが含まれる。これらの要素は、互いにバスを介して接続されている。ＣＰＵが、ＲＯＭに記憶されたプログラムを実行し、入出力インターフェースを介して受信されたメッセージや、入力装置から入力されたデータ、ＲＡＭに展開されたデータを処理することで、後述するソースプログラム整形装置１における各部の機能を実現することができる。
【００１９】
図１を参照して、実施形態におけるソースプログラム整形装置１の機能構成について説明する。ソースプログラム整形装置１は、機能的には、例えば、操作受付部１１と、登録判定部１２と、整形部１３と、操作実行部１４と、確認部１５とを有する。
【００２０】
操作受付部１１は、ソースプログラムに対する操作を受け付ける。ソースプログラムに対する操作としては、例えば、ソースプログラムのデバッグを開始する操作や、ソースプログラムのバージョン管理へのコミット操作等が該当する。操作受付部１１は、統合開発環境の一機能であってもよいし、統合開発環境のプラグインとして実現してもよい。
【００２１】
登録判定部１２は、操作受付部１１によって受け付けられた操作がルールＤＢ２５に登録されているか否かを判定する。具体的に、登録判定部１２は、操作受付部１１によって受け付けられた操作に対応する操作名を含む検索要求を整形ルールサーバ２に送信し、整形ルールサーバ２から送信される検索結果を受信することで、登録の有無を判定する。
【００２２】
整形ルールサーバ２に送信する操作名としては、例えは、“デバッグ”や“コミット”が該当する。整形ルールサーバ２から送信される検索結果には、例えば、操作名の登録の有無や、操作名に対応する整形ルールＩＤおよび戻すフラグ等が含まれる。
【００２３】
整形部１３は、登録判定部１２によって上記操作がルールＤＢ２５に登録されていると判定された場合に、この操作に対応する整形ルールを適用してソースプログラムを整形する。整形ルールは予め統合開発環境に登録されており、整形ルールＩＤを統合開発環境に付与してソースプログラムの整形を依頼することで、統合開発環境下でソースプログラムが整形される。例えば、操作名が“デバッグ”である場合には、図５（ａ）に示すプログラムを図６（ａ）に示すプログラムに整形する整形ルールが適用される。
【００２４】
ここで、図５（ａ）に示すプログラムは、Ｊａｖａ（登録商標）言語のソースプログラムであり、Ｊａｖａ（登録商標）言語の一般的な整形ルールが適用されている状態である。このソースプログラムは、実行時に“ｇｅｔＡ”、“ｇｅｔＢ”、“ｇｅｔＣ”、“ｇｅｔＤ”、“ｇｅｔＥ”の順に呼び出して計算を行う。この計算の最中にエラーが発生すると、図５（ｂ）に示すエラーメッセージが出力される。このエラーメッセージでは、ソースプログラムの３１行目でエラーが発生したことを示しているだけなので、どのｇｅｔ命令を計算しているときにエラーが発生したのかまでは特定できない。
【００２５】
これに対して、図６（ａ）に示すソースプログラムは、本発明を適用することでエラーの発生箇所を特定し易い状態に整形されている。このような整形ルールは、Ｊａｖａ（登録商標）言語では、一般的ではないが、デバッグを目的にした場合には、効率的な整形ルールとなる。これにより、例えば、“ｇｅｔＣ”の計算をしている最中にエラーが発生した場合には、図６（ｂ）に示すように、ソースプログラムの３４行目でエラーが発生したことを示すエラーメッセージが出力されるため、エラー箇所を容易に特定することが可能となる。
【００２６】
また、操作名が“コミット”である場合には、プロジェクトで定めた整形ルールを実行することで、ソースプログラムの書式の標準化を強制的に徹底させることが可能となるため、ソースプログラムの可読性を向上させ、属人的なミスを減少させることができる。
【００２７】
整形部１３は、確認部１５によって、整形後のソースプログラムを元に戻すことが確認された場合に、整形後のソースプログラムを整形前の状態に戻す。これにより、図６（ａ）に示すソースプログラムに整形してデバッグをした後に、図５（ａ）に示す一般的な整形ルールを適用したソースプログラムに戻すことが可能になる。
【００２８】
操作実行部１４は、整形部１３によって整形された後のソースプログラムまたは未整形のソースプログラムを用いて、操作受付部１１によって受け付けられた操作を実行する。操作は、統合開発環境下で実行される。
【００２９】
確認部１５は、操作実行部１４によって操作が実行された後に、整形後のソースプログラムを元に戻すか否かを確認する。具体的に、確認部１５は、整形ルールサーバ２から受信した検索結果に含まれる戻すフラグが“Ｔｒｕｅ”であるか否かを確認することで、元に戻すか否かを確認する。
【００３０】
次に、図７を参照して、ソースプログラムを整形する際の処理手順について説明する。
【００３１】
最初に、開発者が統合開発環境下でソースプログラムに対する操作を行うと、ソースプログラム整形装置１の操作受付部１１は、その操作を受け付ける（ステップＳ１０１）。
【００３２】
続いて、ソースプログラム整形装置１の登録判定部１２は、上記ステップＳ１０１で受け付けられた操作に対応する操作名を含む検索要求を整形ルールサーバ２に送信する（ステップＳ１０２）。これにより、整形ルールサーバ２の受信部２１が、検索要求を受信する。
【００３３】
続いて、整形ルールサーバ２の検索部２２は、検索要求に含まれる操作名をキーにしてルールＤＢ２５を検索（ステップＳ１０３）し、操作名に対応する整形ルールＩＤおよび戻すフラグをルールＤＢ２５から取得する。
【００３４】
続いて、整形ルールサーバ２の送信部２３は、整形ルールＩＤおよび戻すフラグ、または検索失敗等を含む検索結果をソースプログラム整形装置１に送信する（ステップＳ１０４）。
【００３５】
続いて、ソースプログラム整形装置１の登録判定部１２は、検索結果の内容に基づいて、上記ステップＳ１０１で受け付けられた操作がルールＤＢ２５に登録されているか否かを判定する（ステップＳ１０５）。この判定がＮＯである場合（ステップＳ１０５；ＮＯ）に、ソースプログラム整形装置１の操作実行部１４は、未整形のソースプログラムを用いて、上記ステップＳ１０１で受け付けられた操作を実行する（ステップＳ１１０）。その後、本処理手順を終了する。
【００３６】
一方、上記ステップＳ１０５の判定で操作がルールＤＢ２５に登録されていると判定された場合（ステップＳ１０５；ＹＥＳ）に、ソースプログラム整形装置１の整形部１３は、その操作に対応する整形ルールを適用してソースプログラムを整形する（ステップＳ１０６）。
【００３７】
続いて、ソースプログラム整形装置１の操作実行部１４は、上記ステップＳ１０６で整形されたソースプログラムを用いて、上記ステップＳ１０１で受け付けられた操作を実行する（ステップＳ１０７）。
【００３８】
続いて、ソースプログラム整形装置１の確認部１５は、検索結果に含まれる戻すフラグが“Ｔｒｕｅ”であるか否かを確認する（ステップＳ１０８）。この判定がＮＯである場合（ステップＳ１０８；ＮＯ）には、本処理手順を終了する。
【００３９】
一方、上記ステップＳ１０８の判定で戻すフラグが“Ｔｒｕｅ”であると判定された場合（ステップＳ１０８；ＹＥＳ）に、ソースプログラム整形装置１の整形部１３は、上記ステップＳ１０６で整形したソースプログラムを整形前の状態に戻す（ステップＳ１０９）。そして、本処理手順を終了する。
【００４０】
上述したように、本実施形態におけるソースプログラム整形装置１によれば、デバッグやコミット等の利用目的に応じた整形ルールを動的に切り替えてソースプログラムを整形することができる。
【００４１】
これにより、開発者が意識することなく、デバッグに特化した整形ルールを適用することができるため、エラー原因の特定が容易になり、ソフトウェア開発に要する時間を削減することが可能となる。それゆえに、生産性を向上させることができる。
【００４２】
また、開発者の操作ごとに、きめ細かなルールを適用することができるため、作業ごとに標準ルールを適用し易くなり、作業を標準化することが可能となる。それゆえに、生産性を向上させることができる。
【００４３】
また、バージョン管理へのコミット操作時に整形を強制的に行うことができるため、読み易く保守しやすいソースプログラムをバージョン管理システムに蓄積することが可能となる。それゆえに、ソフトウェア全体の保守性や品質性を向上させることができる。
【００４４】
また、例えば、図６（ａ）に示すように、エラー発生箇所を特定し易い状態に整形したソースプログラムを用いて製品を製作することで、障害発生時の原因特定時間を短縮することができるため、製品出荷後の保守性を向上させることが可能となる。
【００４５】
[変形例]
なお、上述した実施形態は、単なる例示に過ぎず、実施形態に明示していない種々の変形や技術の適用を排除するものではない。すなわち、本発明は、その趣旨を逸脱しない範囲で様々な形態に変形して実施することができる。
【００４６】
例えば、上述した実施形態では、ソースプログラム整形装置１と整形ルールサーバ２とをネットワーク３を介して接続しているが、ソースプログラム整形装置１にルールＤＢを備えることで、整形ルールサーバ２やネットワーク３を省略することもできる。
【００４７】
また、上述した実施形態では、ソースプログラムを整形する場合について説明しているが、統合開発環境が整形機能を提供している構造化文書を整形する場合にも本発明を適用することができる。
【００４８】
上記の実施形態の一部または全部は、以下の付記のようにも記載され得るが、本発明を以下に限定するものではない。
【００４９】
（付記１）  ソースプログラムに対する操作を受け付ける操作受付部と、前記操作受付部により受け付けられた前記操作が登録されているか否かを判定する登録判定部と、前記登録判定部により前記操作が登録されていると判定された場合に、当該操作に対応する整形ルールを適用して前記ソースプログラムを整形する整形部と、前記整形部により整形された後の前記ソースプログラムを用いて、前記操作受付部により受け付けられた前記操作を実行する操作実行部と、を備えることを特徴とするソースプログラム整形装置。
【００５０】
（付記２）  前記操作実行部により前記操作が実行された後に、整形後の前記ソースプログラムを元に戻すか否かを確認する確認部を、さらに備え、前記整形部は、前記確認部により元に戻すことが確認された場合に、整形後の前記ソースプログラムを整形前の状態に戻す、ことを特徴とする付記１記載のソースプログラム整形装置。
【００５１】
（付記３）  ソースプログラムに対する操作を受け付ける操作受付ステップと、前記操作受付ステップにおいて受け付けられた前記操作が登録されているか否かを判定する登録判定ステップと、前記登録判定ステップにおいて前記操作が登録されていると判定された場合に、当該操作に対応する整形ルールを適用して前記ソースプログラムを整形する整形ステップと、前記整形ステップにおいて整形された後の前記ソースプログラムを用いて、前記操作受付ステップにおいて受け付けられた前記操作を実行する操作実行ステップと、を含むことを特徴とするソースプログラム整形方法。
【００５２】
（付記４）  付記３に記載の各ステップをコンピュータに実行させるためのソースプログラム整形プログラム。
【符号の説明】
【００５３】
１…ソースプログラム整形装置、２…整形ルールサーバ、３…ネットワーク、１１…操作受付部、１２…登録判定部、１３…整形部、１４…操作実行部、１５…確認部、２１…受信部、２２…検索部、２３…送信部、２５…ルールＤＢ。
【図１】
2012174173.tif 000003
【図２】
2012174173.tif 000004
【図３】
2012174173.tif 000005
【図４】
2012174173.tif 000006
【図５】
2012174173.tif 000007
【図６】
2012174173.tif 000008
【図７】
2012174173.tif 000009