ソフトウェア開発ツール
開発ツールの分類
ソフトウェア開発ツールとは,ソフトウェア開発者がプログラムを作成・デバッグ・保守・サポートする際に利用するソフトウェアである.プログラムの開発,保守過程における各種作業を効率化するために利用される.
ソフトウェア開発ツールは,利用目的から以下のようなカテゴリに分類できる.
- プログラム開発基本ツール
- テキストエディタ
- コンパイラ,リンケージエディタ (リンカ)
- シェル(スクリプト言語)など
- プログラム開発支援ツール
- プログラム生成支援(ビルドツール)
- 静的コード解析,形式的検証,ソースコード整形
- ドキュメント生成,プログラム自動生成 など
- プログラム開発管理ツール
- プログラム試験ツール
- デバッグ
- ソフトウェアテスト (コード網羅率など)
- メモリリーク検出 など
- プログラム評価ツール
- 性能測定・解析
- メトリクス計測
- メモリ使用量測定 など
- 統合開発環境 (IDE : Integrated Development Environment)
対話型のプログラム開発操作環境
主な開発ツール
- プログラム開発支援
- ビルドツール
複数のソースコードファイルからコンパイル,リンクなどの処理を介して実行ファイルに変換する一連のプロセスを実行する.
(make,Cmake,
Ant,Maven など)
- ドキュメント生成
特別なコメントが記述されたソースコードファイルから,関数 (API) 仕様書やモジュール設計書などのドキュメントを自動生成する.
(
Doxygen,Javadoc,POD など)
- プログラム自動生成
入力情報を処理する構文解析器 (パーサジェネレータ) や言語の構文定義からコンパイラを生成するコンパイラジェネレータなどプログラムの自動生成を行う.
(lex,yacc,
Bison など)
- 静的コード解析
ソフトウェアの解析手法の一種であり,ソースファイルを解析することにより,文法チェックやあいまいな記述のチェックなどを行う.
(lint,
Splint,FindBugs など)
- ソースコード整形
ソースコードのコーディングスタイルを統一するツールであり,オプションで指定したスタイルにソースコード整形する.
(
Artistic Style,Indent など)
- マークアップ言語
組版指定に使われ,文章を構造化するための言語である.視覚表現や文章構造などを記述するための形式言語であり,テキストファイルであることが多いが,バイナリデータによる形式もある.
ソフトウェア開発においても,設計書やマニュアルの記述などに利用される.
代表的なマークアップ言語
- Roff:UNIX上の組版ソフトウェア
- TeX:学術分野(理数系の出版物・論文など)のデファクトスタンダード
- SGML (Standard Generalized Markup Language)
- HTML (HyperText Markup Language)
- XML (Extensible Markup Language)
- XHTML (Extensible HyperText Markup Language)
- Markdown:軽量マークアップ言語.HTML や TeX などに変換されて使われる.
- プログラム開発管理
- プログラム試験
- デバッガ
プログラムのデバッグを支援するツールである.対話的にプログラムを動作させたり,プログラムが使っている変数等を表示させる機能がある.
(gdb,GNU Binutils,Valgrind など)
- メモリリーク検出
プログラミングにおけるバグである確保したメモリの一部または全部の解放忘れ(メモリーリーク) を検出するツールである.
(dmalloc,
Valgrind など)
- プログラム評価
- 性能測定,解析
動的プログラム解析の一種であり,プログラムの実行を通して情報を収集することでプログラムの性能を解析する.性能解析の目的は,実行時間やメモリ使用量を最適化するためにプログラムのどの部分を改良すべきかを判断することである.
(gprof,
Valgrind,JProfiler など)
- メトリクス計測
ソフトウェアの品質を評価することを目的として,ソースコードより各種メトリクス情報 (規模,複雑度など) を取得する.
(Eclipse Metrics Plugin,SourceMonitor など)
- 統合開発環境
コンパイラ,テキストエディタ,デバッガなどのソフトウェア開発ツールをそれぞれ個別に操作する代りに統一した対話型操作環境から利用できるようにしたものである.
(
Eclipse, Xcode, Visual Studio, Delphi など)