(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024179831
(43)【公開日】2024-12-26
(54)【発明の名称】ソフトウェア開発支援装置、及びソフトウェア開発支援装置の制御方法
(51)【国際特許分類】
G06F 8/30 20180101AFI20241219BHJP
G06F 8/77 20180101ALI20241219BHJP
G06F 11/36 20060101ALI20241219BHJP
【FI】
G06F8/30
G06F8/77
G06F11/36 120
G06F11/36 104
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023099041
(22)【出願日】2023-06-16
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000176
【氏名又は名称】弁理士法人一色国際特許事務所
(72)【発明者】
【氏名】下沢 拓
(72)【発明者】
【氏名】大島 訓
(72)【発明者】
【氏名】大島 敬志
(72)【発明者】
【氏名】湊 崇晃
【テーマコード(参考)】
5B042
5B376
【Fターム(参考)】
5B042HH08
5B376BC07
5B376BC38
5B376BC69
(57)【要約】
【課題】レビュワーの適任度を適切に評価し、適任度に応じた権限をレビュワーに付与した上でソフトウェアの変更許否を決定する。
【解決手段】ソフトウェア開発支援装置であって、ソフトウェアの変更許諾に関する判断権限を有するレビュワー毎に判断権限の強さを表す権限レベルを記憶する権限レベル記憶部と、ソフトウェアの変更が許諾されるための判定基準を記憶する判定基準記憶部と、ソフトウェアの変更内容を特定したソフトウェアの変更要求を取得する変更要求取得部と、変更要求に対する一人以上のレビュワーによるコメント及び変更許諾に関する判断結果を取得する判断結果取得部と、各レビュワーの判断結果及び権限レベルと判定基準とに基づいてソフトウェアの変更許否を決定するソフトウェア変更決定部と、レビュワーによるコメントの内容を元にレビュワーの権限レベルを更新する権限レベル更新部と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ソフトウェアの開発を支援するソフトウェア開発支援装置であって、
プロセッサ及びメモリを備え、
前記ソフトウェアの変更許諾に関する判断権限を有するレビュワー毎に、前記判断権限の強さを表す権限レベルを記憶する権限レベル記憶部と、
前記ソフトウェアの変更が許諾されるための判定基準を記憶する判定基準記憶部と、
前記ソフトウェアの変更内容を特定した前記ソフトウェアの変更要求を取得する変更要求取得部と、
前記ソフトウェアの変更要求に対する一人以上の前記レビュワーによるコメント及び前記ソフトウェアの変更許諾に関する判断結果を取得する判断結果取得部と、
前記各レビュワーの判断結果及び権限レベルと、前記判定基準と、に基づいて、前記ソフトウェアの変更許否を決定するソフトウェア変更決定部と、
前記レビュワーによるコメントの内容を元に、前記レビュワーの権限レベルを新たな権限レベルに更新する権限レベル更新部と、
を備える、ソフトウェア開発支援装置。
【請求項2】
請求項1に記載のソフトウェア開発支援装置であって、
前記権限レベルは、前記判断権限が強いほど大きな値となる数値データであり、
前記ソフトウェア変更決定部は、前記ソフトウェアの変更を許諾する旨の判断を行った各レビュワーの権限レベルの総和が、前記判定基準として定められる所定の判定値以上となる場合に、前記ソフトウェアの変更を許諾する、
ソフトウェア開発支援装置。
【請求項3】
請求項1に記載のソフトウェア開発支援装置であって、
前記権限レベルは、前記判断権限が強いほど大きな値となる数値データであり、
前記ソフトウェア変更決定部は、前記ソフトウェアの変更を許諾する旨の判断を行った各レビュワーの権限レベルの総和から、前記ソフトウェアの変更を却下する旨の判断を行った各レビュワーの権限レベルの総和を減じて求まる算定値が、前記判定基準として定められる所定の判定値以上となる場合に、前記ソフトウェアの変更を許諾する、
ソフトウェア開発支援装置。
【請求項4】
請求項3に記載のソフトウェア開発支援装置であって、
前記ソフトウェア変更決定部は、前記ソフトウェアの変更を却下する旨の判断を行った第1レビュワーよりも強い権限レベルを有する第2レビュワーが、前記ソフトウェアの変更を許諾する旨の判断を行っている場合には、前記算定値に、前記第1レビュワーの権限レベルに応じた値を加算することで前記算定値を補正する、
ソフトウェア開発支援装置。
【請求項5】
請求項1に記載のソフトウェア開発支援装置であって、
前記権限レベルは、前記判断権限が強いほど大きな値となる数値データであり、
前記コメントの適性度を評価するためのキーワードと、前記キーワードに応じて定められるポイントと、をキーワード毎に対応付けて記憶したキーワード記憶部と、
をさらに備え、
前記権限レベル更新部は、前記レビュワーから得られたコメントに含まれている前記キーワードに対応するポイントの総和と、前記レビュワーの現在の権限レベルと、に基づいて、前記レビュワーの権限レベルを前記新たな権限レベルに更新する、
ソフトウェア開発支援装置。
【請求項6】
請求項5に記載のソフトウェア開発支援装置であって、
前記権限レベル更新部は、前記レビュワーの現在の権限レベルに前記ポイントの総和を加算することにより、前記新たな権限レベルを計算する、
ソフトウェア開発支援装置。
【請求項7】
請求項5に記載のソフトウェア開発支援装置であって、
前記権限レベル更新部は、前記レビュワーの現在の権限レベルと、前記現在の権限レベルに前記ポイントの総和を加算した暫定権限レベルと、を所定比率で按分することにより、前記新たな権限レベルを計算する、
ソフトウェア開発支援装置。
【請求項8】
請求項5に記載のソフトウェア開発支援装置であって、
前記権限レベルの段階毎に、当該段階の権限レベルを獲得するために必要な前記ポイントの値を対応付けて記憶した権限レベル管理テーブルと、
をさらに備え、
前記権限レベル更新部は、前記レビュワーの最新のコメントから算出される前記ポイントの総和を、前記レビュワーのそれ以前のコメントから算出される前記ポイントの累積値に加算することにより、前記ポイントの累積値を最新の累積値に更新した上で、前記ポイントの最新の累積値と、前記権限レベル管理テーブルと、を元に、前記レビュワーの権限レベルを前記新たな権限レベルに更新する、
ソフトウェア開発支援装置。
【請求項9】
請求項1に記載のソフトウェア開発支援装置であって、
前記コメントには、前記レビュワーによって作成されたテキストデータ、及び前記レビュワーの発言内容を録音した音声データの少なくともいずれかが含まれる、
ソフトウェア開発支援装置。
【請求項10】
ソフトウェアの開発を支援する、プロセッサ及びメモリを備えたソフトウェア開発支援装置の制御方法であって、
前記ソフトウェア開発支援装置が、
前記ソフトウェアの変更許諾に関する判断権限を有するレビュワー毎に、前記判断権限の強さを表す権限レベルを記憶し、
前記ソフトウェアの変更が許諾されるための判定基準を記憶し、
前記ソフトウェアの変更内容を特定した前記ソフトウェアの変更要求を取得し、
前記ソフトウェアの変更要求に対する一人以上の前記レビュワーによるコメント及び前記ソフトウェアの変更許諾に関する判断結果を取得し、
前記各レビュワーの判断結果及び権限レベルと、前記判定基準と、に基づいて、前記ソフトウェアの変更許否を決定し、
前記レビュワーによるコメントの内容を元に、前記レビュワーの権限レベルを新たな権限レベルに更新する、
ソフトウェア開発支援装置の制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェア開発支援装置、及びソフトウェア開発支援装置の制御方法に関する。
【背景技術】
【0002】
近年のソフトウェア開発は、アジャイル型の手法に従って行われることが多い。
【0003】
アジャイル型でソフトウェア開発を行う場合は、かつて主流であったウォーターフォール型のように、プロジェクトの初期段階で要件定義や設計の全体構成を詳細に決定し、綿密な計画を立ててから開発を進めるのではなく、小規模の開発を行いながら、仕様変更や要件変更をその都度採り入れるようにして柔軟に開発を進めていく。
【0004】
そのためアジャイル型の場合、効率的なチーム内でのコラボレーション環境とソフトウェアのバージョン管理機能を提供するシステムが重要となる。そしてこのようなシステムとして、GitHubやGitLab、Gerritのような様々なプラットフォームが開発され、多くの企業や団体、個人に利用されている。
【0005】
これらのプラットフォームでは、クラウド上に設けられたリポジトリ上に、開発中のソースコードやライブラリ等のソフトウェアが保存され、プロジェクトチームのメンバーで共有される。
【0006】
そしてソフトウェア開発者は、ソフトウェアの変更を希望する場合、プルリクエストと呼ばれるソフトウェアの変更部分を特定したレビュー依頼を行う。そしてレビュワーにアサインされている担当者がこの変更部分に対するレビューを行い、一定数のレビュワーから承認が得られるなどの所定の条件が満たされると、この変更部分がソフトウェアに正式に反映(マージ)される。
【0007】
このようなソフトウェアのレビュー技術に関しては、様々な技術が開発されている(例えば特許文献1、特許文献2参照)。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2016-133946号公報
【特許文献2】特開2012-138032号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、レビュワーにアサインされる担当者は様々であり、例えばソフトウェア開発の経験年数や、これまでに経験してきた開発プロジェクトの内容や役割などが一人ひとり異なる。
【0010】
このため、例えばアジャイル型の手法でソフトウェア開発を行っているプロジェクトであるにも関わらず、アジャイル型のソフトウェア開発手法に不慣れな担当者がレビュワーにアサインされている場合、適切なレビューが行われていない可能性もある。この場合、不適切な観点でなされたレビューによって無駄な再レビュー依頼が増加し、ソフトウェア開発効率を低下させてしまう可能性もある。
【0011】
本発明はこのような課題を鑑みてなされたものであり、レビュワーの適任度を適切に評価し、適任度に応じた権限をレビュワーに付与した上で、ソフトウェアの変更許否を決定することが可能なソフトウェア開発支援装置、及びソフトウェア開発支援装置の制御方法を提供することを目的の一つとする。
【課題を解決するための手段】
【0012】
本発明の一実施形態に係るソフトウェア開発支援装置は、ソフトウェアの開発を支援するソフトウェア開発支援装置であって、プロセッサ及びメモリを備え、前記ソフトウェアの変更許諾に関する判断権限を有するレビュワー毎に、前記判断権限の強さを表す権限レベルを記憶する権限レベル記憶部と、前記ソフトウェアの変更が許諾されるための判定基準を記憶する判定基準記憶部と、前記ソフトウェアの変更内容を特定した前記ソフトウェアの変更要求を取得する変更要求取得部と、前記ソフトウェアの変更要求に対する一人以上の前記レビュワーによるコメント及び前記ソフトウェアの変更許諾に関する判断結果を取得する判断結果取得部と、前記各レビュワーの判断結果及び権限レベルと、前記判定基準と、に基づいて、前記ソフトウェアの変更許否を決定するソフトウェア変更決定部と、前記レビュワーによるコメントの内容を元に、前記レビュワーの権限レベルを新たな権限レベルに更新する権限レベル更新部と、を備える。
【0013】
その他、本願が開示する課題、及びその解決方法は、発明を実施するための形態の欄の記載、及び図面の記載等により明らかにされる。
【発明の効果】
【0014】
レビュワーの適任度を適切に評価し、適任度に応じた権限をレビュワーに付与した上で、ソフトウェアの変更許否を決定することが可能になる。
【図面の簡単な説明】
【0015】
【
図1】ソフトウェア開発システムの全体構成を示す図である。
【
図2】ソフトウェア開発支援装置、レビュイー端末、レビュワー端末のハードウェア構成を示す図である。
【
図5】マージ判定基準管理テーブルを示す図である。
【
図7】ソフトウェアの変更要求の入力画面例を示す図である。
【
図9】ソフトウェア開発支援装置の機能構成を示す図である。
【
図10】レビュイー端末の機能構成を示す図である。
【
図11】レビュワー端末の機能構成を示す図である。
【
図12】ソフトウェアの変更を行う際の処理の流れを示すフローチャートである。
【
図13】レビュワーの権限レベルを更新する際の処理の流れを示すフローチャートである。
【
図17】マージ判定基準管理テーブルを示す図である。
【
図18】ソフトウェア開発システムの全体構成を示す図である。
【発明を実施するための形態】
【0016】
本明細書および添付図面の記載により、少なくとも以下の事項が明らかとなる。以下、本発明をその一実施形態に即して添付図面を参照しつつ説明する。
==全体構成==
図1に、本発明の一実施形態に係るソフトウェア開発支援装置100、レビュイー端末200、及びレビュワー端末300を含むソフトウェア開発システム1000の全体構成を示す。ソフトウェア開発システム1000は、ソフトウェア開発支援装置100、レビュイー端末200、及びレビュワー端末300が、インターネットやLAN(Local Area Network)、電話網等のネットワーク500を介して通信可能に接続されて構成される。
【0017】
レビュワー端末300は、ソフトウェア開発プロジェクトチームの中で、レビュワーにアサインされているメンバーによって操作されるコンピュータである。レビュワーは、ソフトウェアの変更許諾に関する判断権限を有するQA(品質管理)担当者などで構成されており、チーム内で一人以上がレビュワーにアサインされる。レビュワーは、以下に説明するレビュイーから、ソフトウェアの変更内容を特定したソフトウェアの変更要求があった際に、この変更要求に対するレビューを行って、コメントと共にソフトウェアの変更許諾に関する判断結果(レビュー結果)を返答する。
【0018】
レビュワーにより返答されるレビュー結果を示す画面例を
図8に示す。レビュー結果には、少なくとも、ソフトウェアの変更を承諾するか否かの判断結果が含まれている。またレビュワーによって作成されたコメントも記入されている。またレビュー結果には、
図8に示すように、保留するとの判断結果が含まれていてもよい。
【0019】
なお、本実施形態では、各レビュワーにはソフトウェアの変更許諾に関する判断権限の強さを表す権限レベルが付与されている。この権限レベルは、レビュワーが作成したコメントの内容を元にソフトウェア開発支援装置100によって評価されたレビュワーの適任度に応じて設定及び更新される。例えばソフトウェアの開発効率を向上させるようなコメントを作成したレビュワーに対してはより強い権限レベルが付与され、開発効率を低下させるようなコメントを作成したレビュワーに対してはより弱い権限レベルが付与される。
【0020】
レビュイー端末200は、ソフトウェアの開発プロジェクトチームの中で、プログラマなどのソフトウェアの開発を担当するメンバーによって操作されるコンピュータである。このメンバー(レビュイー)は、ソフトウェアの変更(ソースコードの変更)を行いたい場合、ソフトウェアの変更内容を特定したソフトウェアの変更要求(レビュー依頼)を行う。レビュイーがレビュー依頼を行う際の入力画面例を
図7に示す。そしてレビュワーからの判断結果が所定の判定基準を満たした場合には、ソフトウェアの変更が許諾され、変更内容がソフトウェアに正式に取り込まれる。
【0021】
この判定基準は開発プロジェクトチーム内で適宜定めることができる。例えば「ソフトウェアの変更を許諾した各レビュワーの権限レベルの合計値が所定値以上である場合に変更が許諾される」や、「所定レベル以上の権限レベルを有する所定人数以上のレビュワーから変更が許諾された場合に、ソフトウェアの変更が許諾される」等と定めることができる。また後述するように、ソフトウェアの変更の種類(例えば、マイナーバグの修正のような軽微な変更や、新規機能追加のような大きな変更など)に応じて、それぞれ異なる判定基準を設定してもよい。
【0022】
ソフトウェア開発支援装置100は、ソフトウェア開発を支援するコンピュータであり、
図18に示すように、レビュイー端末200からソフトウェアのレビュー依頼(変更要求)を取得すると共に、このレビュー依頼に対するレビュワーからのレビュー結果(変更許諾に関する判断結果)及びコメントをレビュワー端末300から取得して、各レビュワーによるソフトウェアの変更許諾の判断結果と各レビュワーの権限レベルを元に、ソフトウェアの変更許否を決定する処理を行う。
またソフトウェア開発支援装置100は、レビュワーから得られたコメントの内容を元にレビュワーの適任度を評価し、レビュワーの権限レベルを新たな権限レベルに更新する。
【0023】
このような態様により、レビュワーの適任度を適切に評価し、適任度に応じた権限をレビュワーに付与した上で、ソフトウェアの変更許否を決定することが可能になる。これにより、例えばアジャイル型の手法でソフトウェア開発を行っているプロジェクトであるにも関わらず、従来のウォーターフォール型のソフトウェア開発手法の観点でコメントを作成したレビュワーの権限レベルを低下させることで、このレビュワーのソフトウェアの変更許諾に関する判断結果の影響度を小さくし、ソフトウェア開発効率の低下を防止するようなことが可能となる。また各レビュワーに、レビュワーとしての適任度に関する評価結果をフィードバックすることが可能になり、適任度が低いレビュワーに対して技術のキャッチアップの必要性を認識させるなどの行動変容を促すことも可能となる。
==装置構成==
次に、ソフトウェア開発支援装置100、レビュイー端末200及びレビュワー端末300が物理的なコンピュータにより実現されている場合のハードウェア構成について説明する。なおソフトウェア開発支援装置100、レビュイー端末200及びレビュワー端末300の構成は同じとは限らないが、基本的な構成は共通しているので、重複を避けるために
図2にまとめて示す。
<ソフトウェア開発支援装置>
ソフトウェア開発支援装置100は、CPU(Central Processing Unit)110、メモリ120、通信装置130、記憶装置140、入力装置150、出力装置160及び記録媒体読取装置170を有して構成される。
【0024】
CPU110はソフトウェア開発支援装置100の全体の制御を司るもので、記憶装置140に記憶される本実施形態に係る各種の動作を行うためのコードから構成されるソフトウェア開発支援装置制御プログラム700や各種データをメモリ120に読み出して実行あるいは処理することにより、ソフトウェア開発支援装置100としての各種機能を実現するプロセッサである。
【0025】
例えば、CPU110によりソフトウェア開発支援装置制御プログラム700及び各種データが実行あるいは処理され、メモリ120や通信装置130、記憶装置140等のハードウェア機器と協働することにより、後述する権限レベル記憶部101、判定基準記憶部102、変更要求取得部103、判断結果取得部104、ソフトウェア変更決定部105、権限レベル更新部106、キーワード記憶部107、権限レベル管理テーブル108などの機能が実現される。
【0026】
CPU110は、例えば、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)、AI(Artificial Intelligence)チップ等を用いて構成されていてもよい。
【0027】
ソフトウェア開発支援装置制御プログラム700は、ソフトウェア開発支援装置100が有する機能を実現するためのプログラムを総称しており、例えば、ソフトウェア開発支援装置100上で動作するアプリケーションプログラムやOS(Operating System)、ミドルウェア、種々のライブラリ等を含む。
【0028】
メモリ120は例えば半導体記憶装置により構成することができる。メモリ120は、プログラムやデータを記憶する装置であり、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、不揮発性メモリ(NVRAM(Non Volatile RAM))等である。
【0029】
記憶装置140は各種プログラムやデータ、テーブル等を記憶するための物理的な記憶領域を提供する装置である。記憶装置140は、例えば、SSD(Solid State Drive)、ハードディスクドライブ、光学式記憶装置(CD(Compact Disc)、DVD(Digital Versatile Disc)等)、ストレージシステム、ICカード、SDカードや光学式記録媒体等の非一時的な記録媒体の読取/書込装置、クラウドサーバの非一時的な記憶領域等である。記憶装置140には、記録媒体の読取装置や通信装置130を介して、非一時的な記録媒体や非一時的な記憶装置を備えた他の情報処理装置からプログラムやデータを読み込むことができる。記憶装置140に格納(記憶)されているプログラムやデータはメモリ120に随時読み込まれる。
【0030】
本実施形態では、
図3に示すように、記憶装置140にはソフトウェア開発支援装置制御プログラム700の他、レビュワー管理テーブル600、マージ判定基準管理テーブル620、キーワード管理テーブル630、管理リポジトリ640などの各種データが記憶されている。
【0031】
記憶装置140は、ソフトウェア開発支援装置100に内蔵されている形態とすることもできるし、外付されている形態とすることもできる。
【0032】
記録媒体読取装置170は、CD-ROMやDVD等の記録媒体800に記録されたプログラムやデータを読み取り、記憶装置140に格納する。
【0033】
通信装置130は、他の装置との間の通信を実現する装置である。通信装置130は、ネットワーク500を介して、所定の通信プロトコルに準拠した他の装置との間の通信を実現する、有線方式又は無線方式の通信インタフェースであり、例えば、NIC(Network Interface Card)、無線通信モジュール等である。
【0034】
例えば通信装置130は、インターネットやLAN(Local Area Network)等のネットワーク500を介してレビュイー端末200やレビュワー端末300等の他のコンピュータとデータやプログラムの授受を行う。例えば不図示の他のコンピュータに、上述したソフトウェア開発支援装置制御プログラム700を格納しておき、ソフトウェア開発支援装置100がこのコンピュータからソフトウェア開発支援装置制御プログラム700をダウンロードして実行するようにすることができる。
【0035】
またソフトウェア開発支援装置100は記憶装置140を備えずに、ネットワーク500を通じて通信可能に接続された不図示の他のコンピュータに記憶されている上記のプログラムやテーブル等の各種データを用いてソフトウェア開発支援装置100としての機能を実現する形態も可能である。
【0036】
入力装置150は、オペレータ等によるソフトウェア開発支援装置100へのデータ入力等のために用いられる装置でありユーザインタフェースとして機能する。入力装置150としては例えばキーボードやマウス、タッチパネル、カードリーダ、ペン入力方式のタブレット、マイク等を用いることができる。
【0037】
出力装置160は、情報を外部に出力するための装置でありユーザインタフェースとして機能する。出力装置160は、例えば、上記の各種情報を可視化する表示装置(液晶モニタ、LCD(Liquid Crystal Display)、グラフィックカード等)、上記の各種情報を音声化する装置(音声出力装置(スピーカ等))、上記の各種情報を文字化する装置(印字装置等)である。尚、例えば、ソフトウェア開発支援装置100が通信装置130を介して他の装置との間で情報の入力や出力を行う構成としてもよい。
【0038】
なお、入力装置150と出力装置160は、ユーザとの間の対話処理(情報の受け付け、情報の提供等)を実現するユーザインタフェースを構成する。
【0039】
ソフトウェア開発支援装置100には、例えば、オペレーティングシステム、ファイルシステム、DBMS(DataBase Management System)(リレーショナルデータベース、NoSQL等)、KVS(Key-Value Store)等が導入されていてもよい。
<レビュイー端末>
レビュイー端末200は、CPU210、メモリ220、通信装置230、記憶装置240、入力装置250、出力装置260及び記録媒体読取装置270を有して構成される。
【0040】
CPU210はレビュイー端末200の全体の制御を司るもので、記憶装置240に記憶される本実施形態に係る各種の動作を行うためのコードから構成される不図示のレビュイー端末制御プログラムや各種データをメモリ220に読み出して実行あるいは処理することにより、本実施形態で説明するレビュイー端末200としての各種機能を実現するプロセッサである。
【0041】
例えば、CPU210によりレビュイー端末制御プログラム及び各種データが実行あるいは処理され、メモリ220や通信装置230、記憶装置240等のハードウェア機器と協働することにより、変更要求送信部201などの各機能が実現される。
【0042】
レビュイー端末制御プログラムは、レビュイー端末200が有する機能を実現するためのプログラムを総称しており、例えば、レビュイー端末200上で動作するアプリケーションプログラムやOS(Operating System)、ミドルウェア、種々のライブラリ等を含む。
【0043】
なお上述した様に、レビュイー端末200はソフトウェア開発支援装置100と共通の構成を有しているので、重複する説明を省略する。
<レビュワー端末>
レビュワー端末300は、CPU310、メモリ320、通信装置330、記憶装置340、入力装置350、出力装置360及び記録媒体読取装置370を有して構成される。
【0044】
CPU310はレビュワー端末300の全体の制御を司るもので、記憶装置340に記憶される本実施形態に係る各種の動作を行うためのコードから構成される不図示のレビュワー端末制御プログラムや各種データをメモリ320に読み出して実行あるいは処理することにより、本実施形態で説明するレビュワー端末300としての各種機能を実現するプロセッサである。
【0045】
例えば、CPU310によりレビュワー端末制御プログラム及び各種データが実行あるいは処理され、メモリ320や通信装置330、記憶装置340等のハードウェア機器と協働することにより、判断結果送信部301などの各機能が実現される。
【0046】
レビュワー端末制御プログラムは、レビュワー端末300が有する機能を実現するためのプログラムを総称しており、例えば、レビュワー端末300上で動作するアプリケーションプログラムやOS(Operating System)、ミドルウェア、種々のライブラリ等を含む。
【0047】
なお上述した様に、レビュワー端末300はソフトウェア開発支援装置100と共通の構成を有しているので、重複する説明を省略する。
【0048】
なお、ソフトウェア開発支援装置100、レビュイー端末200及びレビュワー端末300を実現するコンピュータの例として、パーソナルコンピュータ、オフィスコンピュータ、サーバ装置、スマートフォン、タブレット、汎用機(メインフレーム)等がある。
【0049】
またこのコンピュータは、その全部又は一部が、例えば、クラウドシステムによって提供される仮想サーバのように、仮想化技術やプロセス空間分離技術等を用いて提供される仮想的な情報処理資源を用いて実現されるものであってもよい。また、このコンピュータによって提供される機能の全部又は一部は、例えば、クラウドシステムがAPI等を介して提供するサービスによって実現してもよいし、SaaS(Software as a Service)、PaaS(Platform as a Service)、IaaS(Infrastructure as a Service)等を利用して実現されるものであってもよい。
【0050】
ソフトウェア開発支援装置100、レビュイー端末200及びレビュワー端末300がハイパーバイザ型の仮想コンピュータにより実現される場合は、
図2に示すような構成をソフトウェアにより実現するための不図示の仮想化ソフトウェアを不図示の物理的なコンピュータが実行している。その場合、この物理的なコンピュータの構成は、
図2に示す構成と同様である。
【0051】
次に、
図3に示した記憶装置140に記憶されているレビュワー管理テーブル600、マージ判定基準管理テーブル620、キーワード管理テーブル630、管理リポジトリ640について説明する。
【0052】
まずレビュワー管理テーブル600の一例を
図4に示す。レビュワー管理テーブル600は、各レビュワーに付与されているソフトウェアの変更許諾に関する判断権限の強さを表す権限レベルをレビュワー毎に記憶するテーブルである。
【0053】
権限レベルは、本実施形態では判断権限が強いほど大きな値となる数値データとしているが、「A」「B」「C」のようなアルファベットや、「金」「銀」「銅」のような色を表す文字データであってもよい。
【0054】
次にマージ判定基準管理テーブル620の一例を
図5に示す。マージ判定基準管理テーブル620は、ソフトウェアの変更が許諾されるための判定基準を記憶するテーブルである。
【0055】
本実施形態では、ソフトウェアの変更の種類毎に判定基準が設定されている。また各判定基準は、
図5に示すように、変更を許諾する旨の回答を行ったレビュワーの権限レベルの合計値で規定されており、「マイナーバグ」の場合は40以上、「メジャーバグ」の場合は120以上、「機能追加」の場合は200以上と規定されている。
【0056】
判定基準は、その他にも、例えば、変更を許諾する旨の回答を行ったレビュワーの権限レベルの総和から、変更を却下する旨の回答を行ったレビュワーの権限レベルの総和を減じて求まる算定値が所定の判定値以上である、のように定めてもよいし、所定レベル以上の判断権限を有する所定人数以上のレビュワーが変更を許諾した、のように定めてもよいし、変更を却下したレビュワーの人数が所定人数以下、のように定めてもよい。
【0057】
次にキーワード管理テーブル630の一例を
図6に示す。キーワード管理テーブル630は、レビュワーから得られたコメントの適性度を評価するためのキーワードと、キーワードに応じて定められるポイントと、をキーワード毎に対応付けて記憶したテーブルである。
【0058】
図6に示す例では、「カバレッジ100%」及び「バグ曲線」は、ウォーターフォール型でソフトウェアを開発する場合に考慮すべき概念であり、コメント内でこれらのキーワードが使われている場合には、それぞれ-5ポイントが付与(5ポイント減点)することとしている。一方「ユーザーストーリー」というキーワードの場合は、+3ポイントが付与されることとしている。
【0059】
キーワード管理テーブル630に設定されるキーワード及びポイントは、プロジェクト毎に定めることができる。例えばウォーターフォール型でソフトウェアを開発するプロジェクトであれば、上記の「カバレッジ100%」及び「バグ曲線」に対するポイントを正の値にすればよい。またプロジェクト開始後にキーワード及びポイントを適宜見直すようにしてもよい。
【0060】
またキーワード管理テーブル630に設定しておくキーワードには、任意の文字あるいは文字列を表すワイルドカード(?や*)を使用できるようにしてもよい。このような態様により、レビュワーから得られたコメントに誤記や表記ゆれがあってもキーワードを正しく拾い上げることが可能となる。
【0061】
管理リポジトリ640は、特に図示はしないが、開発中のソフトウェアを変更履歴と共にバージョン毎に保存している。そのためソフトウェア開発支援装置100は、リクエストに応じて、最新バージョンのソフトウェアだけでなく、指定された過去のバージョンのソフトウェアも管理リポジトリ640から読みだして出力することが可能である。
==機能構成==
次に、ソフトウェア開発支援装置100の機能構成の一例を
図9に示す。ソフトウェア開発支援装置100は、権限レベル記憶部101、判定基準記憶部102、変更要求取得部103、判断結果取得部104、ソフトウェア変更決定部105、権限レベル更新部106、キーワード記憶部107、権限レベル管理テーブル108の各機能を有する。
【0062】
これらの各機能は、ソフトウェア開発支援装置100のハードウェアによって本実施形態に係るソフトウェア開発支援装置制御プログラム700が実行されることにより実現される。
【0063】
権限レベル記憶部101は、レビュワー毎に、ソフトウェアの変更許諾に関する判断権限の強さを表す権限レベルを記憶する。権限レベルは、本実施形態では判断権限が強いほど大きな値となる数値データとしているが、上述した様に「A」「B」「C」のようなアルファベットや、「金」「銀」「銅」のような色を表す文字データであってもよい。本実施形態では、権限レベル記憶部101は上述したレビュワー管理テーブル600として具現化されている。
【0064】
判定基準記憶部102は、ソフトウェアの変更が許諾されるための判定基準を記憶する。判定基準は、プロジェクトチーム内で適宜定めることができ、例えば、変更を許諾する旨の回答を行ったレビュワーの権限レベルの合計値が所定の判定値以上である、と定めてもよいし、変更を許諾する旨の回答を行ったレビュワーの権限レベルの総和から、変更を却下する旨の回答を行ったレビュワーの権限レベルの総和を減じて求まる算定値が所定の判定値以上である、のように定めてもよい。さらには、所定レベル以上の判断権限を有する所定人数以上のレビュワーが変更を許諾した、のように定めてもよいし、変更を却下したレビュワーの人数が所定人数以下である、のように定めてもよい。
【0065】
なお本実施形態では、判定基準記憶部102は、マージ判定基準管理テーブル620として具現化されている。
【0066】
変更要求取得部103は、ソフトウェアの変更内容を特定したソフトウェアの変更要求を取得する。ソフトウェアの変更要求の一例を
図7に示す。
図7に示す例では、ソフトウェアの変更要求には、「変更要求番号」、「変更要求種類」、「対応するイシュー番号」、「説明」、「変更内容」が含まれている。
【0067】
「変更要求番号」欄には、各変更要求を一意に識別するための番号が記載されている。
【0068】
「変更要求種類」欄には、レビュイーによって入力される変更要求の種類を特定するための情報が記載される。変更要求種類は、予め登録されている選択肢の中から選ぶことで特定され、例えば「マイナーバグ」「メジャーバグ」「機能追加」などである。上述した様に、本実施形態では、変更要求種類によって変更が許諾されるために必要な判定基準が異なっている。
【0069】
「対応するイシュー番号」欄には、ソフトウェアの変更を行う契機となった情報(不具合の報告など)を特定するための番号が記載される。
【0070】
「説明」欄には、ソフトウェアの変更内容を具体的に説明する情報が記載される。
【0071】
「変更内容」欄には、具体的なソースコードの変更部分が記載されている。
【0072】
変更要求取得部103は、上記のような情報を含むソフトウェアの変更要求をレビュイー端末200から取得する。そうすると、ソフトウェア開発支援装置100は各レビュワーのレビュワー端末300に、ソフトウェアの変更要求が届いた旨の通知を行う。そして各レビュワーによってこのソフトウェア変更要求が参照され、レビューが行われる。
【0073】
レビュワーがレビューを行う際に入力する画面の例を
図8に示す。
図8に示すレビュー画面には、「対象の変更要求番号」、「レビュワー」、「レビュー結果」、「コメント」の各欄を有する。
【0074】
「対象の変更要求番号」欄には、レビューの対象となっている変更要求の識別番号が記載される。
【0075】
「レビュワー」欄には、レビュワーの氏名、ID等のレビュワーを特定するための情報が記載される。
【0076】
「レビュー結果」欄には、ソフトウェアの変更許諾に対するレビュワーの判断結果が記載される。本実施形態では、判断結果は「許諾」、「却下」、「保留」から選択可能である。
【0077】
「コメント」欄には、判断結果に至った理由などの情報が記載される。
【0078】
レビュワーが上記の各欄への記入を行ってレビューを完了すると、これらの情報がレビュワー端末300からソフトウェア開発支援装置100に送信される。
【0079】
そして判断結果取得部104は、ソフトウェアの変更要求に対する一人以上のレビュワーによるコメント及びソフトウェアの変更許諾に関する判断結果を取得する。
【0080】
またソフトウェア変更決定部105は、各レビュワーの判断結果及び権限レベルと、判定基準と、に基づいて、ソフトウェアの変更許否を決定する
例えばソフトウェア変更決定部105は、ソフトウェアの変更を許諾する旨の判断を行った各レビュワーの権限レベルの総和が、判定基準として定められる所定の判定値以上となる場合にソフトウェアの変更を許諾する。このような態様によれば、変更を許諾するとの判断を行った各レビュワーの判断結果を、各レビュワーの権限レベルに応じた重みづけをした上で集約することができるので、各レビュワーの適任度を加味してソフトウェアの変更許否を判断することが可能となる。
【0081】
あるいはソフトウェア変更決定部105は、ソフトウェアの変更を許諾する旨の判断を行った各レビュワーの権限レベルの総和から、ソフトウェアの変更を却下する旨の判断を行った各レビュワーの権限レベルの総和を減じて求まる算定値が、判定基準として定められる所定の判定値以上となる場合にソフトウェアの変更を許諾するようにしてもよい。このような態様によれば、ソフトウェアの変更を許諾するとの判断結果と、変更を却下するとの判断結果と、を考慮してソフトウェアの変更許否を判断することができる上、各レビュワーの判断結果を権限レベルに応じて重みづけをして集約することが可能となる。
【0082】
権限レベル更新部106は、レビュワーによるコメントの内容を元に、レビュワーの権限レベルを新たな権限レベルに更新する。例えばソフトウェアの開発効率を向上させるようなコメントを作成したレビュワーはより強い権限レベルに更新され、開発効率を低下させるようなコメントを作成したレビュワーはより弱い権限レベルに更新される。コメントの内容の解析は、AI(人工知能)を用いて行ってもよいし、本実施形態のように、コメントに対してキーワードマッチングを行い、マッチングしたキーワードに応じて定められているポイントを累積加算するようにして行ってもよい。
【0083】
キーワード記憶部107は、コメントの適性度を評価するためのキーワードと、キーワードに応じて定められるポイントと、をキーワード毎に対応付けて記憶する。コメントの適性度は開発プロジェクトによって異なるので、キーワード記憶部107に記憶されるキーワード及びポイントの内容は、開発プロジェクトごとに定められる。キーワード記憶部107は、本実施形態においてはキーワード管理テーブル630として具現化されている。
【0084】
なお、権限レベル更新部106は、キーワード記憶部107を参照することで、レビュワーから得られたコメントに含まれているキーワードに対応するポイントの総和と、レビュワーの現在の権限レベルと、に基づいて、レビュワーの権限レベルを新たな権限レベルに更新することができる。このような態様により、レビュワーのコメントからレビュワーの適性度を判断し、権限レベルに反映することが可能となる。
【0085】
例えば権限レベル更新部106は、レビュワーの現在の権限レベルにポイントの総和を加算することにより、新たな権限レベルを計算する。例えば
図4に示すレビュワーCCCが作成したコメントに「ユーザーストーリー」「バグ曲線」と書かれていた場合には、
図6のキーワード管理テーブル630から、それぞれ「+3ポイント」「-5ポイント」となるので、これらの総和である「-2ポイント」を、CCCの現在の権限レベル「14」に加算して、新たな権限レベルを「12」とする。このような態様により、レビュワーが作成したコメントから計算したポイントを直ちに権限レベルに反映することが可能となる。
【0086】
また権限レベル更新部106は、レビュワーの現在の権限レベルと、現在の権限レベルにポイントの総和を加算した暫定権限レベルと、を所定比率で按分することにより、新たな権限レベルを計算するようにしてもよい。例えば上述したレビュワーCCCの例で所定比率を1対1とした場合について説明すると、CCCの現在の権限レベル「14」と暫定権限レベル「12」とを1対1で按分して、新たな権限レベルは「13」となる。このような態様により、レビュワーの現在の権限レベルからの急激な変動を抑制しつつ、レビュワーが作成したコメントの適性度に応じて権限レベルを更新していくことが可能となる。
【0087】
権限レベル管理テーブル108は、権限レベルの段階毎に、当該段階の権限レベルを獲得するために必要なポイントの値を対応付けて記憶する。上述した様に、例えば権限レベルが「A」「B」「C」や、「金」「銀」「銅」のように段階に分けて設定されている場合には、各段階の権限レベルを得るための基準を別途定める必要があるが、権限レベル管理テーブル108は、このような場合の基準を定めるためのテーブルである。
【0088】
権限レベルが段階に分けて設定される場合については後述するが、
図16に示す権限レベル管理テーブル610として具現化されている。
図16に示す例では、権限レベルは「1」「2」「3」のように定められているが、これらの各段階の権限レベルを得るためには、それぞれ「5ポイント」「30ポイント」「100ポイント」を獲得する必要がある。このように、権限レベル管理テーブル108(610)を設けることにより、権限レベルの難易度を柔軟に調節することが可能となる。
【0089】
なお、この場合、権限レベル更新部106は、レビュワーの最新のコメントから算出されるポイントの総和(上記のCCCの例では「-2ポイント」)を、レビュワーのそれ以前のコメントから算出されるポイントの累積値(上記のCCCの例では「14ポイント」)に加算することにより、ポイントの累積値を最新の累積値(上記のCCCの例では「12ポイント」)に更新した上で、ポイントの最新の累積値と、権限レベル管理テーブル108と、を元に、レビュワーの権限レベルを新たな権限レベルに更新するようにするとよい。
【0090】
図16に示す例で説明すると、あるレビュワーの現在の累積ポイントが「95ポイント」であり、権限レベルが「2」であるとした場合に、このレビュワーが新たに作成したコメントから計算したポイントが「20ポイント」であったとすると、新たな累積ポイントは「115ポイント」になるので、このレビュワーは権限レベルが「3」に更新される。
【0091】
次に、レビュイー端末200の機能構成の一例を
図10に示す。レビュイー端末200は、変更要求送信部201の機能を有する。この機能は、レビュイー端末200のハードウェアによって本実施形態に係るレビュイー端末制御プログラム(不図示)が実行されることにより実現される。
【0092】
変更要求送信部201は、レビュイーによって作成された
図7に例示した変更要求を、ソフトウェア開発支援装置100に送信する。これにより、ソフトウェアの変更を希望するレビュイーは、レビュワーに対してソフトウェアの変更許否に関するレビューを依頼することができる。
【0093】
次に、レビュワー端末300の機能構成の一例を
図11に示す。レビュワー端末300は、判断結果送信部301の機能を有する。この機能は、レビュワー端末300のハードウェアによって本実施形態に係るレビュワー端末制御プログラム(不図示)が実行されることにより実現される。
【0094】
判断結果送信部301は、レビュワーによって作成された
図8に例示したレビュー結果及びコメントを、ソフトウェア開発支援装置100に送信する。
==処理の流れ==
次に、本実施形態に係るソフトウェア開発システム1000における処理の流れについて、
図12及び
図13を参照しながら説明する。
【0095】
まずレビュイー端末200においてソフトウェア(ソースコード)の改良が行われると(S1000)、レビュイー端末200からソフトウェアの変更要求が送信される(S1010)。
【0096】
ソフトウェア開発支援装置100は、レビュイー端末200からソフトウェアの変更要求を取得すると、レビュワー端末300に対してレビュー依頼を送信する(S1020)。
【0097】
レビュワーがソースコードをチェックし、コメントを作成すると(S1030)、レビュワー端末300は、コメント及びソフトウェアの変更許諾に関する判断結果をソフトウェア開発支援装置100に送信する(S1040)。
【0098】
そうすると、ソフトウェア開発支援装置100は、コメントの内容を元にレビュワーの権限レベルを更新する(S1050)。
【0099】
そしてソフトウェア開発支援装置100は、レビュワーの判断結果が「許諾」であった場合はそのレビュワーの権限レベルを、所定の変数(ここでは算定値と呼ぶ)に加算し(S1080)、レビュワーの判断結果が「却下」であった場合はそのレビュワーの権限レベルを算定値から減算し(S1070)、レビュワーの判断結果が「保留」であった場合は算定値を変更しない。
【0100】
ソフトウェア開発支援装置100は、各レビュワーのレビュワー端末300から判断結果を取得するたびに、上記の算定値を更新していき、算定値(権限レベルの総和)が所定の判定値以上となった場合、ソフトウェアの変更を許諾する(S1090)。
【0101】
例えば、
図5の例で説明すると、変更内容が「マイナーバグ」である場合は、算定値が40点以上となった場合に変更が許諾される。
【0102】
次に、上記のS1050における各レビュワーの権限レベルを更新する処理について
図13を参照しながら説明する。
【0103】
まずソフトウェア開発支援装置100は、レビュワーが作成したコメントに対して字句解析を行う(S2000)。
【0104】
そのあとソフトウェア開発支援装置100は、キーワード管理テーブル630に掲載されているキーワードをコメントから抽出し、各キーワードに対応するポイントの総和を計算する(S2010)。
【0105】
そしてソフトウェア開発支援装置100は、ポイントの総和をそのレビュワーの現在の権限レベルに加算し、新たな権限レベルに更新する(S2020)。
【0106】
このような処理を行うことにより、レビュワーの適任度を適切に評価し、適任度に応じた権限をレビュワーに付与した上で、ソフトウェアの変更許否を決定することが可能になる。
【0107】
なお、
図12に示した例では、レビュワーの権限レベルを新たな権限レベルに更新してから(S1050)、算定値を更新する処理を行っているが(S1070、S1080)、先に算定値を更新する処理を行ってからレビュワーの権限レベルを更新するようにしてもよい。
【0108】
また
図12に示した例では、レビュワーの判断結果が却下だった場合に、そのレビュワーの権限レベルを算定値から減算しているが、却下だった場合は保留の場合と同様に、算定値を変更しないようにしてもよい。このような態様によれば、許諾の判断結果のみに基づいてソフトウェアの変更許否が決定されるので、ソフトウェアの変更が認められやすくなり、開発スピードを向上させることが可能となる。どのような開発スタイルを採用するかは、各開発チームの運用方針に基づいて決めることができる。
【0109】
またさらに、
図12において、ソフトウェアの変更を却下する旨の判断を行った第1レビュワーよりも強い権限レベルを有する第2レビュワーが、ソフトウェアの変更を許諾する旨の判断を行っている場合には、ソフトウェア開発支援装置100は、第1レビュワーの権限レベルに応じた値を算定値に加算することで、第1レビュワーの判断結果(却下)に起因して算定値から減算した分を帳消しにするようにしてもよい。このような態様により、2人のレビュワーの判断結果が異なる場合に、権限レベルの強いレビュワーの判断結果を優先させることが可能となる。
【0110】
同様に、
図12において、ソフトウェアの変更を許諾する旨の判断を行った第1レビュワーよりも強い権限レベルを有する第2レビュワーが、ソフトウェアの変更を却下する旨の判断を行っている場合には、ソフトウェア開発支援装置100は、第1レビュワーの権限レベルに応じた値を算定値に減算することで、第1レビュワーの判断結果(許諾)に起因して算定値に加算した分を帳消しにするようにしてもよい。このような態様によっても、2人のレビュワーの判断結果が異なる場合に、権限レベルの強いレビュワーの判断結果を優先させることが可能となる。
==段階的な権限レベル==
なお、上記のソフトウェア開発支援装置100は、
図14に示すように、記憶装置140に権限レベル管理テーブル610を有していてもよい。権限レベル管理テーブル610の例を
図16に示す。
【0111】
権限レベル管理テーブル610は、権限レベルの段階毎に、当該段階の権限レベルを獲得するために必要なポイントの値を対応付けて記憶するテーブルである。
図16に示す例では権限レベルは「1」「2」「3」のように数値で表されているが、権限レベルは「A」「B」「C」や、「金」「銀」「銅」のように表してもよい。いずれにしても、権限レベルが段階に分けて設定されている場合には、各段階の権限レベルを得るための基準を別途定める必要があるが、権限レベル管理テーブル610は、この基準を定めるためのテーブルである。このような権限レベル管理テーブル610を設けることにより、権限レベルの難易度を柔軟に調節することが可能となる。
【0112】
また権限レベルが段階別に設定されている場合には、レビュワー管理テーブル600は例えば
図15のように設定される。
【0113】
図15に示す例では、レビュワー毎に、レビュワーがこれまでに獲得した累計ポイントと、権限レベルがレビュワー管理テーブル600に記憶されている。
【0114】
累計ポイントは、レビュワーがコメントを作成する毎に、コメント内のキーワードに応じて更新されていく。そして累計ポイントが権限レベル管理テーブル610に規定された必要ポイント以上になると、そのレビュワーの権限レベルは、現在よりも一段階上位の権限レベルに移行し、権限レベル管理テーブル610に規定された必要ポイントを下回ると、現在よりも一段階下位の権限レベルに移行する。
【0115】
また各レビュワーの権限レベルが
図15のように「1」「2」「3」のように表された場合のマージ判定基準管理テーブル620の例を
図17に示す。
【0116】
図17に示す例では、変更内容が「マイナーバグ」の場合は、許諾の判断を行ったレビュワーの権限レベルの合計が2以上である場合に、そのマイナーバグの変更が許諾される。また変更内容が「メジャーバグ」の場合は、許諾の判断を行ったレビュワーの権限レベルの合計が3以上である場合に、そのメジャーバグの変更が許諾される。さらに変更内容が「機能追加」の場合は、許諾の判断を行ったレビュワーの権限レベルの合計が4以上である場合に、その機能追加の変更が許諾される。
【0117】
このような態様によれば、権限レベル管理テーブル610の内容を変更することで各レビュワーの権限レベルを調節することができるので、マージ判定基準管理テーブル620の内容を変えることなく、ソフトウェアの変更許否の判定基準を実質的に調節することが可能となる。
【0118】
以上、本実施形態に係るソフトウェア開発支援装置100及びソフトウェア開発支援装置100の制御方法について説明したが、本実施形態によれば、無駄な再レビューを防止し、ソフトウェアの開発効率を向上できる。またコードレビューにおいて、レビュワーに対するフィードバックを行い、行動変容を促すことが可能となる。またレビュワーのコメントや発言内容のスコアリングを行い、その結果によってレビュワーの権限を調整し、それに基づいてマージの有無を判定することによって、動的にレビュワー権限を調整できるとともに、レビュワーに対する行動変容を促す効果が得られる。
【0119】
なお、上述した実施の形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明はその趣旨を逸脱することなく変更、改良され得るとともに、本発明にはその等価物も含まれる。
【0120】
例えば、上記実施形態では、ソフトウェアの変更要求に対するレビューを行う際にレビュワーがコメントとしてレビュワー端末300に入力したテキストデータに基づいて、レビュワーの権限レベルを新たな権限レベルに更新することとしたが、このコメントは音声データであってもよい。あるいはテキストデータと音声データの両方が含まれていてもよい。例えば
図18に示すように、複数のレビュワーがウェブミーティングシステムを用いて合同でレビューを行う場合などには、ソフトウェア開発支援装置100は、各レビュワーの発言内容を録音した音声データをコメントとして用いることが可能である。
【0121】
このような態様によれば、ソフトウェア開発手法に対する各レビュワーの習熟度がリアルタイムに言葉として現れるので、各レビュワーの適任度をより正確に判断することが期待できる。
【符号の説明】
【0122】
100 ソフトウェア開発支援装置
101 権限レベル記憶部
102 判定基準記憶部
103 変更要求取得部
104 判断結果取得部
105 ソフトウェア変更決定部
106 権限レベル更新部
107 キーワード記憶部
108 権限レベル管理テーブル
110 CPU
120 メモリ
130 通信装置
140 記憶装置
150 入力装置
160 出力装置
170 記録媒体読取装置
200 レビュイー端末
201 変更要求送信部
210 CPU
220 メモリ
230 通信装置
240 記憶装置
250 入力装置
260 出力装置
270 記録媒体読取装置
300 レビュワー端末
301 判断結果送信部
310 CPU
320 メモリ
330 通信装置
340 記憶装置
350 入力装置
360 出力装置
370 記録媒体読取装置
500 ネットワーク
600 レビュワー管理テーブル
610 権限レベル管理テーブル
620 マージ判定基準管理テーブル
630 キーワード管理テーブル
640 管理リポジトリ
700 ソフトウェア開発支援装置制御プログラム
800 記録媒体
1000 ソフトウェア開発システム