ソフトウェア診断(ソフトウェア診断とも呼ばれる) とは、ソフトウェア システムとその実装、構成、動作、進化に関する調査結果、結論、評価を取得できるようにする概念、手法、ツールを指します。ソフトウェア システム特有のビジネス インテリジェンスアプローチの意味で、ソフトウェア開発、ソフトウェア保守、ソフトウェア再エンジニアリングを監視、誘導、観察、最適化する手段として機能します。一般的に、ソフトウェア システムの対応する情報ソースの自動抽出、分析、視覚化に基づいています。自動ではなく手動で行うこともできます。
アプリケーション
ソフトウェア診断は、ソフトウェアエンジニアリングのすべての分野、特にプロジェクト管理、品質管理、リスク管理、実装とテストをサポートします。その主な強みは、ソフトウェアプロジェクトのすべての関係者をサポートし(特にソフトウェアメンテナンス中およびソフトウェアリエンジニアリングタスク中[1] )、ソフトウェア開発プロジェクトに効果的なコミュニケーション手段を提供することです。たとえば、ソフトウェア診断は、「管理と開発の間の重要な情報ギャップを埋め、認識を向上させ、早期リスク検出手段として機能します」。[2]ソフトウェア診断には、「完璧なメンテナンス」の評価方法が含まれており、たとえば、「コードの複雑さやシステムの他の部分との絡み合い、コードに適用された最近の変更など、保守性の低さを示す複数の指標を組み合わせる視覚分析手法」を適用します。[3]
特徴
ソフトウェア エンジニアリングにおける多様なアプローチや手法とは対照的に、ソフトウェア診断はプログラミング言語、モデリング手法、ソフトウェア開発プロセス、またはソフトウェア開発プロセスのさまざまな段階で使用される特定の手法に依存しません。代わりに、ソフトウェア診断は、主観的または潜在的に古い情報ソース (初期のソフトウェア モデルなど) を回避して、システム生成情報に基づいてソフトウェア システムを現状のままで分析および評価することを目的としています。そのために、ソフトウェア診断では、通常は直接リンクされていない情報ソースを組み合わせて関連付けます。例:
- ソースコードメトリクスはソフトウェア開発者の活動と関連しており、開発者固有のソフトウェアコード品質への影響についての洞察を得ることができます。[4]
- システム構造と実行時の実行トレースは相関しており、ソフトウェア保守タスクにおける動的解析を通じてプログラムの理解を容易にします。[5]
原則
ソフトウェア診断の核となる原則は、ソースコードベース、プロジェクトリポジトリ、コードメトリクス、実行トレース、[6]テスト結果など、特定のソフトウェアプロジェクトの利用可能なすべての情報ソースから情報を自動的に抽出することです。情報を結合するために、ソフトウェア固有のデータマイニング、分析、および視覚化技術が適用されます。その強みは、さまざまな理由の中でも、典型的なソフトウェアプロジェクトの範囲内で分離された情報空間、たとえば開発と開発者の活動(リポジトリによって記録される)とコードと品質メトリクス(ソースコードを分析することによって得られる)または主要業績評価指標(KPI)を統合することから生まれます。
例
ソフトウェア診断ツールの例には、ソフトウェア マップやソフトウェア メトリックなどがあります。
批評家
ソフトウェア診断は、ソフトウェア エンジニアリングの多くのアプローチとは対照的に、開発者の能力、開発方法、プログラミング言語またはモデリング言語が正しいか間違っているか (または、互いに比較して優れているか劣っているか) を想定しません。ソフトウェア診断の目的は、システムの作成と保守に使用される方法、言語、またはモデルに関係なく、特定のソフトウェア システムとその状態に関する洞察を提供することです。
関連テーマ
- ソフトウェアエンジニアリングにおけるコスト見積り
- プログラミングの生産性
- 迅速なアプリケーション開発
- ソフトウェア設計
- ソフトウェア開発
- ソフトウェアドキュメント
- ソフトウェアマップ
- ソフトウェアリリースライフサイクル
- システム設計
- システム開発ライフサイクル
参考文献
- ^ Beck, M.; Trümper, J.; Döllner, J. (2011). 「ソフトウェア再エンジニアリングを計画するための視覚分析および設計ツール」。2011第 6 回国際ワークショップ「ソフトウェアの理解と分析のための視覚化に関するワークショップ( VISSOFT)」。IEEE コンピュータ ソサエティ。pp. 1–8。doi :10.1109 / VISSOF.2011.6069458。ISBN 978-1-4577-0822-0.S2CID 16326080 。
- ^ Bohnet, J.; Döllner, J. (2011). 「ソフトウェア マップによるコード品質と開発アクティビティの監視」。技術的負債の管理に関する IEEE ACM ICSE ワークショップの議事録。Association for Computing Machinery。pp. 9–16。doi : 10.1145/ 1985362.1985365。ISBN 9781450305860. S2CID 17258620。
- ^ Trümper, J.; Beck, M.; Döllner, J. (2012). 「完璧主義ソフトウェアメンテナンスをサポートする視覚分析アプローチ」 2012第16 回国際情報視覚化会議IEEE コンピュータ ソサエティ。pp. 308–315。doi :10.1109/ IV.2012.59。ISBN 978-1-4673-2260-7. S2CID 5988716。
- ^ Limberger, D.; Wasty, B.; Trümper, J.; Döllner, J. (2013). 「Web ベースのソースコード分析のためのインタラクティブ ソフトウェア マップ」。第 18 回 3D Web テクノロジー国際会議の議事録。pp. 91–98。doi : 10.1145 /2466533.2466550。ISBN 9781450321334. S2CID 3040005。
- ^ Trümper, Jonas; Telea, Alexandru; Döllner, Jürgen (2012)。「ViewFusion: 実行トレースの構造とアクティビティの相関ビュー」。コンピュータグラフィックス理論と実践。ユーログラフィックス協会。pp. 45–52。doi :10.2312/LocalChapterEvents/TPCG/TPCG12/045-052。ISBN 978-3-905673-93-7。
- ^ Bohnet, J. (2010). 実行トレースの視覚化とソフトウェア保守への応用 (PhD). ハッソ・プラットナー研究所、ポツダム大学。
外部リンク
- Software Diagnostics によるソフトウェア マップに基づくツール セット (2014)
- ソースコード分析のためのインタラクティブ ソフトウェア マップのデモ ビデオ、2013
