JP7478011B2 - プロジェクト管理システムにおける管理サーバ、管理方法及びプログラム - Google Patents

プロジェクト管理システムにおける管理サーバ、管理方法及びプログラム Download PDF

Info

Publication number
JP7478011B2
JP7478011B2 JP2020062442A JP2020062442A JP7478011B2 JP 7478011 B2 JP7478011 B2 JP 7478011B2 JP 2020062442 A JP2020062442 A JP 2020062442A JP 2020062442 A JP2020062442 A JP 2020062442A JP 7478011 B2 JP7478011 B2 JP 7478011B2
Authority
JP
Japan
Prior art keywords
source code
program
evaluation
quality
maintenance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020062442A
Other languages
English (en)
Other versions
JP2021163035A (ja
Inventor
佳樹 太田
玲 稲垣
寛之 瀬戸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Japan Research Institute Ltd
Original Assignee
Japan Research Institute Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Japan Research Institute Ltd filed Critical Japan Research Institute Ltd
Priority to JP2020062442A priority Critical patent/JP7478011B2/ja
Publication of JP2021163035A publication Critical patent/JP2021163035A/ja
Application granted granted Critical
Publication of JP7478011B2 publication Critical patent/JP7478011B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、プロジェクト管理システムにおける管理サーバ、管理方法及びプログラムに関する。
近年、ソフトウェア開発において、プログラムのソースコードを解析し、プログラマのスキルを評価する方法やプログラマのスキルに基づいて精度の高い開発計画を立案する方法が知られている。
例えば、特許文献1には、ITエンジニアのプログラミングスキルを評価するためのプログラミングスキル評価装置が開示されている。この技術によれば、プログラミングスキルの被評価者である求職者に対して課題となるプログラミング要件を求人情報提供サーバから送信し、被評価者が作成したプログラムのソースコードを受信して、プログラム評価サーバでこれを実行して実行速度等からプログラミングスキルを評価する。多数の被評価者の中に悪意のある者が紛れ込み、ウィルス等の有害なプログラムが送信されるリスクに対応するために、ソースコードをプログラム評価サーバの隔離された仮想実行環境で実行し、実行後には仮想実行環境を廃棄する。
また、例えば、特許文献2には、作業フェーズに開発環境の使用能力(保有スキル)を有する開発者を割り当て、より精度の高い計画を立案することを目的とする計画生成装置等が開示されている。この方法によれば、複数の作業フェーズを含むソフトウェア開発を行うプロジェクトの計画を生成する計画生成装置において、ソフトウェア開発の開発環境の運用計画を表す開発環境計画情報を記憶する開発環境計画記憶部と、ソフトウェアを開発する開発者に対し、開発者のスケジュールと、ソフトウェア開発の開発環境の使用能力とを含む属性とを対応付けた担当者属性情報を記憶する担当者属性記憶部と、開発環境計画情報と担当者属性情報とに基づいて、複数の作業フェーズの各作業フェーズを実施する予定の期間に、作業フェーズに用いられる開発環境の使用能力を有する開発者を担当開発者として割り当てることの可否を判定し、担当開発者を割り当てることができる場合に、予定の期間に担当開発者を割り当てた計画情報を生成する計画情報生成部を備えている。
また、AI(Artificial Intelligence)の技術を活用して、複数のソースコードを機械学習させ、ソースコードの読みやすさを評価する方法も知られている。例えば、非特許文献1に記載の技術は、ソースコードのレビュー作業の効率化と精緻化を支援するツールであり、画像化されたソースコードを基に、AIが主にソースコードの可読性を診断する。このツールで可読性が低い箇所に当たりを付け、該当箇所を集中的にレビューすることによって、レビューワは、作業の効率化と精緻化が見込めるようにしている。
特開2015-143890号公報 特開2018-142264号公報
日経xTECH(クロステック)、"ソースコードの不備をAIで見つける富士通、新しい診断ツールの中身"、[online]、[令和2年2月25日検索]、インターネット、< https://xtech.nikkei.com/it/atcl/column/14/346926/122501258/#>
しかしながら、人間は日々成長するものであるので、定期的に評価を更新し開発計画も更新できるようにする必要がある。特に、大型のシステム開発は、非常に多くのプログラマ(数百人規模)が関わり、完成後も長期にわたり保守が続くため、ソースコードの見易さやメンテナンスのしやすさは、非常に重要であり、プロジェクトの成功か否かを左右するといっても過言ではない。
上記の特許文献1,2の技術は、ソースコードの解析を通じてプログラマのスキルを評価したり、開発計画を生成したりするものではあるが、プログラム自体の評価だけでなく、見易さやメンテナンスのしやすさを主な判定基準に開発担当者の保守性の高いソースコードの作成能力を評価するものではなかった。また、プログラムが実環境で使用される利用頻度の観点から品質の評価値を求めるものではなかった。ソースコードの保守性は、特許文献1に係る発明がスキルの評価項目とする少なくとも「ソースコードの実行速度」や「ソースコード実行時の使用メモリ量」よりも重視要素である。
したがって、本発明は、上記の非特許文献1に記載のAIツールも活用し、プログラマ別にソースコードの作成スキルを評価しつつも、プログラムの機能単位であるモジュールごとの保守性を、プログラムの実環境での利用頻度を考慮して、客観的・定量的に評価できるシステムを提供することを目指している。より具体的には、プログラムの開発時におけるソースコードの評価において、プログラムの実際の利用環境で想定されるモジュールごとの利用頻度を指標として、評価基準を設定することを第1の目的とする。
また、開発が終了し、プログラムのリリース後の保守の際には、既存のモジュールに対してロジックを後付けで追加することで機能強化が行われることが多いため、一般的に、保守が行われるたびにソースコードの見易さが低下することが多い。その結果、保守性が低下し、長年にわたって使用されるプログラムは、いずれ全面的な改定が必要となる更改時期を迎えることになる。従来、この更改時期は、サーバ等の更改時期、すなわち、ハードウェアの寿命に併せて行われることが多かったが、それとは別に、プログラムそのものの更改時期を客観的・定量的に判定できれば「プログラムの寿命」を知ることができる。したがって、本発明の第2の目的は、長期にわたるプログラムの保守期間において、プログラムの更改時期を客観的・定量的に判定できるシステムを提供することである。
上記第2の目的を達成するため、本発明は、以下のような解決手段を提供する。
(1)プログラムの保守管理システムにおける管理サーバであって、前記プログラムの機能単位であるモジュールの識別子に、当該モジュールのソースコード及び当該ソースコードの変更日時を対応付けて格納するソースコードライブラリと、前記ソースコードライブラリのソースコードを解析し、その解析結果に基づいて、当該ソースコードの保守性に関する品質の評価値を算出するソースコード品質評価部と、前記プログラムの保守期間において、前記保守性に関する品質の評価値が所定の基準値を下回ることが予想される場合、前記プログラムの全面的な改定が必要となる更改のタイミングを判定する保守品質判定部と、を備えることを特徴とする。
(2)上記(1)の構成において、前記保守期間における品質評価方法は、開発時において用いられた保守性の品質評価方法と同じとすることを特徴とする。
(3)上記(1)又は(2)の構成において、前記保守期間における品質の評価値の算出は、前記モジュールごとの変更の頻度に応じて行われることを特徴とする。
(4)上記(1)から(3)のいずれかの構成において、前記更改の要否は、前記モジュールごとの評価値の加重平均が所定の基準値を下回ったときに判定することを特徴とする。
(5)プログラムの保守管理における管理方法であって、前記プログラムの機能単位であるモジュールの識別子に、当該モジュールのソースコード及び当該ソースコードの変更日時を対応付けてソースコードライブラリに格納するステップと、前記ソースコードライブラリのソースコードを解析し、その解析結果に基づいて、当該ソースコードの保守性に関する品質の評価値を算出するステップと、前記プログラムの保守期間において、前記保守性に関する品質の評価値が所定の基準値を下回ることが予想される場合、前記プログラムの全面的な改定が必要となる更改のタイミングを判定するステップと、をコンピュータが実行することを特徴とする。
(6)コンピュータのプログラムであって、上記(5)に記載の各ステップをコンピュータに実行させることを特徴とする。
本発明によれば、プログラムの保守期間において、プログラムムの更改時期を客観的・定量的に判定できるシステムを提供することができる。
本発明の実施形態に係る保守管理システムのシステム構成を示す図である。 上記保守管理システムの管理サーバの機能ブロックを示す図である。 本発明の実施形態に係るシステムの開発期間における品質評価手順を示す図である。 本発明の実施形態に係るシステムの保守期間における品質評価手順を示す図である。 本発明の実施形態に係るシステムの開発期間における開発品質管理テーブルの概略を示す図である。 本発明の実施形態に係るシステムの保守期間における保守品質管理テーブルの概略を示す図である。
以下、添付図面を参照して、本発明を実施するための形態(以下、実施形態)について詳細に説明する。以降の図においては、実施形態の説明の全体を通して同じ要素には同じ番号又は符号を付している。また、機能構成の図において、機能ブロック間の矢印は、データの流れ方向、又は処理の流れ方向を表す。
図1は、本発明の実施形態に係る保守管理システム(以下、本システムと呼ぶ)のシステム構成を示す図である。本システムは、発明者らの別出願である開発時におけるソースコードの評価システムを保守管理に応用したものである。
本システムは、特に大規模プロジェクトにおいて、数十人~数百人規模の開発プログラマが作成したソースコードの保守を管理するため、保守担当のプログラマに割り当てられたプログラマ端末10と、変更されたソースコードを集積し、管理するための管理サーバ100と、システムを監視し、管理するための管理者端末20とがネットワークを介して接続される。
管理サーバ100は、データベースとして、ソースコードライブラリ101と、機械学習データ102と、利用頻度データ103と、運用実績データ104と、開発計画データ105と、保守計画データ106とが交信可能に接続される。
ソースコードライブラリ101は、プログラマによって作成又は変更されたソースコードファイルを、プログラムの機能単位であるモジュールの識別子(ID)に、当該モジュールのソースコード及び当該ソースコードの作成日時又は変更日時を対応付けて格納するデータベースである。また、ソースコードライブラリ101は、作成者のプログラミングスキル(対応可能なプログラミング言語、経験年数、過去のプロジェクトにおける役割等)を格納した個人別情報をモジュールIDに関連付けてもよい。
機械学習データ102は、AI技術を活用して、ソースコードを解析するための機械学習データを格納するデータベースである。
利用頻度データ103は、実環境で想定される利用頻度(画面のユーザのアクセス頻度又は画面以外の装置若しくは他のモジュールとのアクセス頻度)をモジュールごとに格納したデータベースである。利用頻度は、設計者の想定値、及び過去の類似モジュールがあれば、その実績データに基づいて決定される。利用頻度について詳しくは後述する。
運用実績データ104は、開発を終了し、リリース後の実際の利用頻度(アクセス頻度)のデータをモジュールごとに格納したデータベースである。運用実績データ104は、過去の類似プロジェクトの実績データを含む。
開発計画データ105は、プロジェクトの開発計画を格納するデータベースである。開発計画にはモジュール単位の開発計画も含む。
保守計画データ106は、プログラムのリリース後の保守計画とその実績を格納したデータベースである。
ただし、このようなシステム構成に限定されるものではなく、例えば、管理サーバ100が複数で構成されてもよいし、管理サーバ100からデータベースを分離し、データベース及びそのデータベースサーバが別に構成されてもよい。
図2は、本システムの管理サーバ100の機能ブロックを示す図である。この実施形態では、管理サーバ100に、上記のデータベース(データ格納手段)が接続され、各データベースを参照しながら個々の機能を実行する機能実行部(機能実行手段)が示されている。機能実行部としては、ソースコード解析部110と、ソースコード品質評価部111と、評価基準設定部112と、開発品質判定部113と、開発計画更新部114と、保守品質判定部115と、保守計画更新部116とを備えている。ただし、このような構成に限定されるものではない。
ソースコード解析部110は、プログラマが作成したソースコードを、定期的又は指示されたタイミングでソースコードライブラリ101から読み出し、その時点までに作成されたソースコードを、モジュール(1つの機能を有するプログラム単位)ごとに解析する。特に、コメントの適切さ、ネストの深さなどが解析される。
ソースコード品質評価部111は、ソースコード解析部110の解析結果に基づいて、場合によっては機械学習データ102も参照し、前述の品質評価値を算出する評価ツールである。一つのモジュールを複数のプログラマが担当する場合は、プログラマごとの評価も行う。ただし、モジュールのソースコードが前回の品質評価時から変更されていない場合は、そのモジュールの評価をスキップするようにしてもよい。このようにすることで、効率的な判定ができる。また、ここでの評価項目は、開発時だけでなく保守時にも適用できるように同じものを用いてよく、その場合はソースコードの可読性などの保守性に関する評価項目とすることが望ましい。なお、評価項目に対する各モジュールの評価値を算出する方法は公知の技術を活用してもよい。すなわち、このときの評価ツールは、前述したように、既存のソースコード評価システムを利用してもよい。例えば、非特許文献1のAIを活用したソースコード評価ツールを用いて、ソースコードの読み易さ(可読性)を評価項目としてもよい。さらに、別の評価ツールを併用してもよい。ソースコードの可読性には、適切なコメントがあるか、ネストの深さが適切か、その他プログラミングのルールに沿っているかなどが評価項目としてあげられる。
また、ソースコード品質評価部111は、ソースコードライブラリ101の個人別情報を用いて以下の活用も可能である。
(個人別の複数の時点の評価の活用)
評価は、通常、ソースコードライブラリ101に記憶されたソースコードをある程度まとまった単位で評価するが、同一の個人識別情報が対応付けられたソースコードを抽出して評価することで、個人別作業の評価が可能となる。また、個人別作業の評価である2時点間の評価を比較したときに、以前よりも評価が高くなっていれば、評価を上げるための術を習得していると評価できる。つまりは保守性の高いソースコードを作る技術を習得していると言える。このような個人別の評価は、開発計画の中での人員配置(再配置)の判断指標とすることができる。
(開発予定期間終了日とソースコードの作成・更新日の活用)
期限より早く完了した者同士を比較したときに、早くて保守性の高いソースコードを作れる者と、早いが保守性の低いソースコードになってしまう者とに線引きができる。同様に、期限ぎりぎりに完了した者同士、期限超過した者同士でも、同じ線引きが可能となる。このように分析することで、いうなれば個人の特性と能力に基づいた人員計画への反映が可能となる。なお、開発期間終了日に限らず、所定の基準日を設けて同様に評価することも可能である。
(ソースコードの履歴情報の活用)
作成日付及び更新日付を複数時点で記憶し、当該複数時点ごとのソースコードが管理されている場合(または履歴上の日付ごとの評価を記憶していてもよい)は、全ソースコードを同じタイミングで評価するのではなく、例えば最初の作成日直後の評価と最終更新日直後の評価を比較することも可能となる。つまり、ソースコードの評価をある日時(2020年3月31日)基準に一括評価するのではなく、最初の作成日と1回目の更新の期間で評価がどう変わったか、また完了直前の評価と完了後の評価でどの程度違いがあるかなどをソースコードごとに知ることが可能である。何度修正を加えても評価が変わらない者(高い評価のままと低い評価のままが考えられる)、更新を経るごとに評価が高くなる者、更新を経るごとに評価が下がってしまう者などが考えられる。このように、同一基準日でなく、個別のソースコードの更新履歴を追うことできめ細かい評価ができる。
また、上記の評価の変化を検出し、総合的に評価することできめ細かな人員計画も可能となる。
評価基準設定部112は、ソースコード品質評価部111が評価を行った結果を定量的に判定するための評価基準を設定する。ここでは、モジュールごとの、場合によってはプログラマごとも、品質基準値及び更改基準値を設定する。この設定は、通常はプロジェクトの管理者が行う。ここで、品質基準値とは、開発時におけるソースコード品質の合否の基準値を定めるものであり、リリースしてよいかの判断基準である。具体的には、評価の最高値(理想的なパーフェクト値)を100とすれば、各プログラムがリリース時に最低クリアすべき評価値を、例えば、70~80のように設定する。モジュールごとに作成難易度、実環境で利用される頻度が異なるので、モジュールごとに品質評価値を定める。ここで、モジュールが利用される頻度が高いものほど(例えば、そのモジュールの機能を利用するときの画面のアクセス頻度が高いもの)、他のモジュールより品質基準値を高くする。画面のアクセス頻度(例えば、1日の画面表示の想定回数)は、過去の類似のモジュールのデータから予想したものを利用頻度データ103に格納しておく。また、モジュールの機能が画面以外の入出力装置又は他のモジュールとの直接又は間接のアクセスを伴う場合は、そのアクセスの想定頻度をアクセス頻度としてもよい。
また、プログラムのロジックが複雑で作成の難易度が高いと判断されるモジュールは、品質基準値を他のモジュールより下げるようにしてもよい。その場合は、過去のプロジェクトの統計データを用いて、評価値を、評価ツールが出力したそのままの値(Raw Score)ではなく、スコアの同一化(Equating)と呼ばれる統計処理によって算出された換算値(Scaled Score)を用いるようにしてもよい。このようにすることで、評価値がプログラムの難易度に依存しないようにすることもできる。
また、評価基準値は、プログラムが稼働する企業の業種別に基準値が異なるようにしてもよい。保守作業が定期的、頻繁に行われる企業、例えば、金融機関においては基準値を高くするなどである。
更改基準値とは、保守開始後の将来の更改時期(プログラムを全面的に見直して改定が必要な時期であり、例えば、7年~15年後)を判定するための基準値である。前述したように、プログラムは修正を繰り返すと、コードが複雑になり、リリース直後よりも多くの場合、保守性に関する評価値が下がる傾向がある。したがって、本システムでは、リリース後も所定のタイミングで、例えば半年ごと、あるいは小規模な変更が実施された直後などに、同じ評価ツールを用いて評価を繰り返す。そして、設定された更改基準値より評価が下回りそうな時点を更改必要と判断する。具体的には、リリース開始直後の各モジュールの品質評価値が70~80であるとすると、品質評価値が例えば60~70を下回ると予想された時期までに更改が必要と判断する。すなわち、このようにすることで、モジュールごとの品質評価値の下降傾向に基づいて、加重平均を取るなどして、総合評価値を算出し、プログラム全体の更改基準値を下回る時期を判定し、更改計画の作成・更新に利用することができる。
開発品質判定部113は、ソースコード品質評価部111が開発期間において算出した品質評価値を、その判定時期ごとに判定する。このとき、開発期間におけるモジュールごとの品質の判定は、利用頻度データ103を参照し、モジュールごとの変更の頻度に応じて行なうようにしてもよい。そうすることで、より効率的に判定の時期を決定できる。そして、開発計画データ105に格納されたデータを参照し、開発計画の更新(開発プログラマの入れ替え、リリース時期の更新)が必要と判定した場合は、開発計画更新部114に処理を渡す。また、開発品質判定部113は、プログラマごと、モジュールごとに、品質評価値の推移と傾向を表示する手段を備える。
開発計画更新部114は、プロジェクト管理者の判断を仰ぎながら、更新された開発計画を開発計画データ105に格納する。また、開発計画更新部114は、更新前のデータと更新後のデータを比較してグラフ化して表示する手段を備える。
保守品質判定部115は、ソースコード品質評価部111が保守期間において算出した品質評価値を、その判定時期ごとに算出する。このとき、保守期間におけるモジュールごとの評価値の算出は、運用実績データ104を参照し、モジュールごとの変更の頻度に応じて行なうようにしてもよい。そうすることで、より効率的に判定の時期を決定できる。そして、保守計画データ106に格納されたデータを参照して、保守性に関する品質が所定の基準値を下回ることが予想される場合、プログラムの全面改定が必要となる更改のタイミングを判定する。さらに、保守計画の更新(保守プログラマの入れ替え、更改時期の更新)が必要と判定した場合は、保守計画更新部116に処理を渡し、保守計画を更新させる。また、保守品質判定部115は、モジュールごと、プログラマごとに、品質評価値の推移と傾向を表示する手段を備える。
保守計画更新部116は、リリース後の保守期間全般にわたって、ソースコード品質評価部111が算出した品質評価値を、その判定時期ごとに判定し、保守計画データ106に格納されたデータ及び運用実績データ104を参照し、保守計画の更新(場合によっては、保守を担当する人員の増加、保守時期の変更など)が必要と判定した場合は、保守計画を更新する。ここで、運用実績データ104には、モジュールごと、及び/又は、モジュールが提供する画面ごとに、ユーザが実際に利用した回数、頻度などのデータが格納されている。なお、保守品質判定部115は、モジュールごとに、品質評価値の推移(特に保守が入った後)と傾向をグラフ化して表示する手段も備える。
以上で本システムの管理サーバ100の機能構成の説明を終わるが、上記の機能構成は、あくまで一例であり、一つの機能ブロック(データベース及び機能実行部)を分割したり、複数の機能ブロックをまとめて一つの機能ブロックとして構成したりしてもよい。各機能実行部は、装置に内蔵されたCPU(Central Processing Unit)が、ROM(Read Only Memory)、フラッシュメモリ、SSD(Solid State Drive)、ハードディスク等の記憶装置に格納されたコンピュータ・プログラムを読み出し、CPUにより実行されたコンピュータ・プログラムによって実現される。すなわち、各機能実行部は、このコンピュータ・プログラムが、記憶装置に格納されたデータベース(DB;Data Base)やメモリ上の記憶領域からテーブル等の必要なデータを読み書きし、場合によっては、関連するハードウェア(例えば、入出力装置、表示装置、通信インターフェース装置)を制御することによって実現される。また、本発明の実施形態におけるデータベース(DB)は、商用データベースであってよいが、単なるテーブルやファイルの集合体をも意味し、データベースの内部構造自体は問わないものとする。
(品質評価手順)
以下、本システムにおける開発期間及び保守期間における評価手順について説明する。なお、以降の処理フロー図(フローチャート)においては、各ステップの入力と出力の関係を損なわない限り、各ステップの処理順序を入れ替えてもよい。
図3は、開発期間における品質評価(開発品質評価)の手順を示す図である。まずステップS10において、モジュールID、及びそのモジュールを作成したプログラマIDを取得する。次にステップS11において、そのモジュールの目標として設定された品質評価値を取得し、更に、当該モジュールのアクセス頻度を利用頻度データ103から取得する。
続いて、ステップS12において、アクセス頻度が所定値以上(例えば10万回/日以上)のモジュールか否かが判定される。アクセス頻度が所定値以上の場合は、ステップS14において、目標とする評価基準値を、アクセス頻度が所定値未満の場合のモジュールよりも高く設定する。アクセス頻度が所定値未満の場合は、ステップS13において、標準の評価基準値を設定する。ここでは、簡単のためアクセス頻度が高いか低いかによって基準値を二段階に設定しているが、アクセス頻度に応じて多段階で設定してもよい。
最後に、ステップS15において、評価基準値の未設定の別のモジュールがあるか否かを判定し、未設定のモジュールがあれば、ステップS10~S14の処理を繰り返す。
図4は、保守期間における品質評価(保守品質評価)の手順を示す図である。まずステップS20において、保守計画をデータ格納手段である保守計画データ106から取得する。次にステップS21において、保守作業が所定日後(例えば、5日~10日程度)に終了する予定か否かを判断する。その結果、所定日内に終了する予定の場合は、ステップS22において、保守作業が終了後、保守品質評価の判定を行う。この判定は保守対象のすべてのモジュールに対して実行する。また、所定日内に保守作業が終了しない場合は、いったん以降の処理を終わらせるか、図示のように、所定日が来るまで待機するようにしてもよい。ここで、ステップS22で用いられる保守品質の評価方法は、開発時における評価方法と同じにすれば、次の開発時にも保守時の評価判定の結果を実績データとして利用できる。
保守品質判定の実行が終わると、続いて、ステップS23において、各モジュールの判定結果が基準値よりも下回ったか否かを判定する。判定結果が基準値よりも下回った場合は、ステップS24において、過去の判定結果の推移を参照し、次の更改が必要となる更改時期を判定する。例えば、全面的な改修となる更改の判定基準である品質基準値が70と設定されていたとすると、70未満のモジュールの数の推移から、更改時期を1年後、2年後などと判定する。判定結果が基準値を下回らなかった場合は、いったん処理を終了し、次回の判定時期(例えば数か月後~半年後など)が来たら再開する。また、判定結果によっては、全体的な更改までは必要ないが、モジュールごとの比較的小規模な保守が必要な時期を判定するようにしてもよい。
図5は、システム開発期間における開発品質管理テーブルの概略を示す図である。この表は、モジュールIDごとに、品質基準値が設定され、品質評価を行った判定日ごとに、判定の結果である評価点が示されている。ただし、ここでは説明を簡単にするため、一つのモジュールは一人のプログラマが担当しているものとしている。
前述したように、モジュールごとに想定される利用頻度(アクセス頻度)が異なるので、品質基準値は、アクセス頻度の高いモジュールほど、その他のモジュールよりも高く設定する。アクセス頻度は、一般的な銀行システムを例にとると、入出金明細機能、振込・振替機能、投資信託に関する機能などを処理する画面は、他の画面よりもアクセス頻度が高いとすると、それらの画面に対応する品質基準値を、アクセス頻度の比較的低い画面よりも高くする。画面ごとのアクセス頻度は、過去の類似のプロジェクトの実績値から予測することができる。ただし、過去の類似例にない新機能の画面の場合は、まずはアクセス頻度が高いと仮定してもよい。
このようにすることで、プログラムの開発時におけるソースコードの評価において、プログラムの実際の利用環境で想定されるモジュールごとのアクセス頻度を考慮して、評価基準を設定することができる。その結果、一律の基準を設けることに比べて、より有効な評価をすることができる。
図5の開発品質管理テーブルでは、モジュールごとの機能が示され、品質基準値は、説明を簡単にするため、アクセス頻度が高いモジュールは80、アクセス頻度が低いモジュールは70と設定している。また、品質評価の判定時期は、ここでは、開発がスタートしてから半年ごとと設定しているが、このような定期的な判定だけでなく、仕様変更、スケジュール変更、プログラマの変更などのイベントの後にも行うなど柔軟に設定してもよい。
また、この例の開発品質管理テーブルでは、開発が進むにつれて評価点が上がっていく、すなわち、品質が向上していく様子が示されているが、一般的には、開発初期の段階では、プログラムのコードの完成度が低く、コードが完成していくにつれて、評価点は上がったり下がったりする。そのため、図示は省略しているが、各判定日ごとに異なる品質基準値を設けてもよい。ただし、少なくともリリース前には、あらかじめ定められた品質基準値をすべてのモジュールがクリアしているか否かを判定する必要がある。そのためには、定められた判定日だけでなく、各プログラマは、定期診断の前のプレ診断として、自分が作成したプログラムの評価を個々に自発的に行なうように奨励してもよい。
このように、開発品質管理テーブルを作成し、各判定日の評価値を記録していくことで、開発品質の推移を定期的又は不定期に、客観的・定量的に把握することができる。また、開発したプログラムがリリースの基準に達しているかも判断することができる。万一、所定の基準に達していない場合は、開発計画を見直したり、遅れているモジュールのプログラマを増員又は再配置したり、リリース時期を再検討したりすることができる。
図6は、システム保守期間における保守品質管理テーブルの概略を示す図である。この表は、開発時の品質評価テーブルを保守時にも拡張したもので、保守を担当したプログラマIDとモジュールIDごとに、品質評価を行った判定日ごとに、判定の結果である評価点が示されている。一般に開発時のプログラマが保守を担当するとは限らない。また、一つのモジュールに対して複数のプログラマが担当することもあるし、途中でプログラマが交代する場合もある。図の例ではモジュールM00150は、判定日1の段階からプログラマPM2035が増員され、モジュールM00350は、判定日2の段階でプログラマPM2120からプログラマPM2125に交代したことが示されている。
この例の保守品質管理テーブルでは、保守期間が進むにつれて判定日ごとに評価点が下がっていく様子が示されている。これは前述したように、保守時には障害対処の他、小規模な機能拡張が行われることも多いので、その結果、既存のモジュールにロジックが追加され、その結果プログラムが肥大化し、見易さという点では品質が徐々に低下していくことがよくあるからである。
また、保守期間が長期化し、全面的な更改が必要となるタイミングを予想するため、更改基準値が設定される。この更改基準値もモジュールごとに設定され、更改が必要か否かも所定の時期に判定が行われる。モジュールごとの結果を総合判定し、システム全体の更改の必要な時期を予想する。
このようにすることで、長期にわたる保守期間においても、プログラムの更改時期を客観的・定量的に判定することができる。より具体的には、保守品質管理テーブルを作成し、各判定日の評価値を記録していくことで、保守品質の推移を定期的又は不定期に、客観的・定量的に把握することができる。また、保守しているプログラムの保守品質が、更改が必要となるレベルまで落ち込んでいるか否かも判断することができる。品質の低下が予想よりも早く、あらかじめ計画された更改時期よりも早める必要があったり、逆に品質の低下が少なく、更改を延期してもよいと判断される場合は、保守計画を見直したり、次のバージョンの開発計画を見直したりすることができる。
(実施形態の効果)
本システムによれば、長期にわたる保守期間においても、プログラムの更改時期を客観的・定量的に判定することができる。
また、保守期間における品質評価方法は、開発時において用いられた保守性の品質評価方法と同じとすることで、保守時のデータを開発時にもフィードハックすることができる。
また、保守期間における品質の判定は、モジュールごとの保守の頻度に応じて行なえば、より効率的に判定の時期が決定できる。
また、更改の要否は、モジュールごとの評価値の加重平均が所定に基準値を下回ったときに判定すれば、プログラム全体の更改の要否が容易に判定できる。
なお、上記の実施形態では、主に大規模プロジェクトを念頭にプロジェクト管理システムについて説明したが、中小規模のプロジェクトにも適用が可能である。
また、本発明は、物の発明として、プロジェクト管理システムにおける管理サーバとして主に説明したが、本発明は、管理方法の発明又はコンピュータ・プログラムの発明としても捉えることができる。
以上、実施形態を用いて本発明を説明したが、本発明の技術的範囲は上記実施形態に記載の範囲に限定されないことは言うまでもない。上記実施形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。また、そのような変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
10 プログラマ端末
20 管理者端末
100 管理サーバ
101 ソースコードライブラリ
102 機械学習データ
103 利用頻度データ
104 運用実績データ
105 開発計画データ
106 保守計画データ
110 ソースコード解析部
111 ソースコード品質評価部
112 評価基準設定部
113 開発品質判定部
114 開発計画更新部
115 保守品質判定部
116 保守計画更新部

Claims (5)

  1. プログラムの保守管理システムにおける管理サーバであって、
    前記プログラムの機能単位であるモジュールの識別子に、当該モジュールのソースコード及び当該ソースコードの変更日時を対応付けて格納するソースコードライブラリと、
    前記ソースコードライブラリのソースコードを解析し、その解析結果に基づいて、当該ソースコードの保守性に関する品質の評価値を算出するソースコード品質評価部と、
    前記プログラムの保守期間において、前記保守性に関する品質の評価値が所定の基準値を下回ることが予想される場合、前記プログラムの全面的な改定が必要となる更改のタイミングを判定する保守品質判定部と、
    を備えることを特徴とする管理サーバ。
  2. 前記保守期間における品質評価方法は、開発時において用いられた保守性の品質評価方法と同じとすることを特徴とする請求項1に記載の管理サーバ。
  3. 前記更改の要否は、前記モジュールごとの評価値の加重平均が所定の基準値を下回ったときに判定することを特徴とする請求項1又は2に記載の管理サーバ。
  4. プログラムの保守管理における管理方法であって、
    前記プログラムの機能単位であるモジュールの識別子に、当該モジュールのソースコード及び当該ソースコードの変更日時を対応付けてソースコードライブラリに格納するステップと、
    前記ソースコードライブラリのソースコードを解析し、その解析結果に基づいて、当該ソースコードの保守性に関する品質の評価値を算出するステップと、
    前記プログラムの保守期間において、前記保守性に関する品質の評価値が所定の基準値を下回ることが予想される場合、前記プログラムの全面的な改定が必要となる更改のタイミングを判定するステップと、
    をコンピュータが実行することを特徴とする管理方法。
  5. 前記請求項に記載の各ステップをコンピュータに実行させることを特徴とするプログラム。
JP2020062442A 2020-03-31 2020-03-31 プロジェクト管理システムにおける管理サーバ、管理方法及びプログラム Active JP7478011B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020062442A JP7478011B2 (ja) 2020-03-31 2020-03-31 プロジェクト管理システムにおける管理サーバ、管理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020062442A JP7478011B2 (ja) 2020-03-31 2020-03-31 プロジェクト管理システムにおける管理サーバ、管理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2021163035A JP2021163035A (ja) 2021-10-11
JP7478011B2 true JP7478011B2 (ja) 2024-05-02

Family

ID=78003390

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020062442A Active JP7478011B2 (ja) 2020-03-31 2020-03-31 プロジェクト管理システムにおける管理サーバ、管理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP7478011B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003050723A (ja) 2001-08-03 2003-02-21 Toshiba Corp 計算機プログラム品質管理装置、計算機プログラムエディタ、プログラム、計算機プログラム品質管理方法、計算機プログラムエディット方法
JP2019079312A (ja) 2017-10-25 2019-05-23 クラリオン株式会社 ソースコード解析装置、ソースコード解析方法、ソースコード解析プログラム
US10423410B1 (en) 2017-08-30 2019-09-24 Amazon Technologies, Inc. Source code rules verification method and system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03288226A (ja) * 1990-04-04 1991-12-18 Hitachi Ltd ソフトウエア評価方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003050723A (ja) 2001-08-03 2003-02-21 Toshiba Corp 計算機プログラム品質管理装置、計算機プログラムエディタ、プログラム、計算機プログラム品質管理方法、計算機プログラムエディット方法
US10423410B1 (en) 2017-08-30 2019-09-24 Amazon Technologies, Inc. Source code rules verification method and system
JP2019079312A (ja) 2017-10-25 2019-05-23 クラリオン株式会社 ソースコード解析装置、ソースコード解析方法、ソースコード解析プログラム

Also Published As

Publication number Publication date
JP2021163035A (ja) 2021-10-11

Similar Documents

Publication Publication Date Title
US11755319B2 (en) Code development management system
JP6467264B2 (ja) 計画作成支援装置および計画作成支援方法
JP2008517385A (ja) プロセスのオートメーションおよび実施のためのシステムおよび方法
Feyh et al. Lean software development measures and indicators-a systematic mapping study
JP7040788B2 (ja) 情報処理装置、プログラム、情報処理方法及び学習済みモデル
Framinan et al. Guidelines for the deployment and implementation of manufacturing scheduling systems
US20230117225A1 (en) Automated workflow analysis and solution implementation
Weeks et al. Minimizing facility corrective maintenance: Benchmarking preventative-to-corrective maintenance ratios using maintenance data and building age in dormitories
JP7478011B2 (ja) プロジェクト管理システムにおける管理サーバ、管理方法及びプログラム
US8812341B2 (en) Method and system for optimizing process models
JP7547066B2 (ja) ソースコードの保守性を評価するシステムにおける管理サーバ、管理方法及びプログラム
JP2000039904A (ja) プロジェクト管理システム
WO2017103996A1 (ja) 生産計画立案装置、及び生産計画立案方法
CN115471215A (zh) 一种业务流程处理方法及装置
Shahmirzadi et al. Analyzing the impact of various parameters on job scheduling in the Google cluster dataset
US11501226B1 (en) Monitoring and creating customized dynamic project files based on enterprise resources
Pfeiffer et al. Simulation as one of the core technologies for digital enterprises: assessment of hybrid rescheduling methods
JP2009301341A (ja) サービシステム、サービスシステム管理方法、及びプログラム
Keynezhad et al. A multi-purpose model for optimising project selection and activities scheduling by balancing resource allocation
JP7348827B2 (ja) 情報処理装置および情報処理方法
JPH0876992A (ja) ソフトウェア品質評価管理装置及びその方法
JP2022066799A (ja) 管理装置、管理方法
US20150149239A1 (en) Technology Element Risk Analysis
JP2003050723A (ja) 計算機プログラム品質管理装置、計算機プログラムエディタ、プログラム、計算機プログラム品質管理方法、計算機プログラムエディット方法
US11244269B1 (en) Monitoring and creating customized dynamic project files based on enterprise resources

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240122

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240409

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240419

R150 Certificate of patent or registration of utility model

Ref document number: 7478011

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150