プログラミングツール
プログラミングツールまたはソフトウェア開発ツールとは、ソフトウェア開発者がプログラムやアプリケーションを作成・デバッグ・保守・サポートするためのソフトウェアである。一般に比較的単純なプログラムを指し、それらを複数組み合わせて作業を行う。
目次 |
歴史 [編集]
その起源は1950年代の初期のコンピュータの時代にさかのぼる。1970年代初期には、UNIXが grep、awk、make といったツールを多用し、それらをパイプで連結して使ったことでよく知られるようになった。ソフトウェアツールという言葉は、ブライアン・カーニハンらの同名の著書(日本語版は『ソフトウェア作法』)に由来する。
ツールは本来、単純で軽量なものである。一部のツールは保守されていく過程で、より強力な統合開発環境 (IDE) へと統合されていった。IDEなどの環境は、各種機能を一カ所に集めたもので、単純さや生産性を向上させる場合もあるが、柔軟性と拡張性が犠牲になる場合もある。IDEの作業手順は固定される傾向があり、UNIXのシェル上のツール群やエディタ(VimやEmacs)を組み合わせた環境の方が柔軟さがある。
ツールとアプリケーションの境界は曖昧である。例えば、開発者は単純なデータベース(重要な値の一覧を格納したファイルなど)をツールとして使うことが多い。しかし、完全なデータベース製品はアプリケーションと見なされる。
長年に亘って、Computer Aided Software Engineering (CASE) ツールが求められてきたが、理想的なCASEツールはほとんどない。見方によっては、UML関連ツールなどは設計やアーキテクチャを中心としたCASEツールと言えるかもしれない。ただし、そのようなツールはIDEの形態となっていることがほとんどである。
生産的に各種ツールを使いこなす能力は、熟練したソフトウェア技術者の証明とも言える。
分類 [編集]
ソフトウェア開発ツールは大まかに以下のようなカテゴリに分類できる。
ツール一覧 [編集]
ソフトウェアツールには様々な形態がある。
- バグ管理システム: gnats、Bugzilla、Trac、JIRA、LibreSource、SharpForge
- ビルドツール: make、automake、Apache Ant、SCons、Rake、cmake、qmake
- コード網羅率: gcov、EMMA
- コード共有サイト: Freshmeat、Krugle、SourceForge.net、ByteMyCode
- コンパイラ、リンケージエディタ: GNUツールチェーン、gcc、Microsoft Visual Studio、CodeWarrior、Xcode、ICC
- デバッガ: gdb、GNU Binutils、Valgrind
- 逆アセンブラ: リバースエンジニアリングツール
- ドキュメンテーションジェネレータ: Doxygen、help2man、POD、Javadoc、Pydoc/Epydoc
- 形式手法: 数学に基づく仕様記述・開発・検証の技法
- GUIインタフェースジェネレータ: Qt Designer、Cocoa InterfaceBuilber、Windows Forms Visual Studio
- ライブラリインタフェースジェネレータ: SWIG
- メモリ使用量/リーク/破壊検出: dmalloc、Electric Fence、DUMA、Insure++。
- パーサジェネレータ: Lex、Yacc、Parsec
- 性能解析(プロファイラ)
- リファクタリングブラウザ
- バージョン管理システム: Bazaar、BitKeeper、Bonsai、ClearCase、CVS、Git、GNU arch、Mercurial、Monotone、RCS、SCCS、SourceSafe、Subversion、LibreSource Synchronizer
- スクリプト言語: AWK、Perl、Python、REXX、Ruby、シェル、Tcl
- 検索: grep、find
- コード重複検出: CCFinderX
- 自動プログラミングツール
- 静的コード解析: lint、Splint、PMD、Findbugs、AdLint
- テキストエディタ: Emacs、vi、vim
IDE [編集]
統合開発環境 (IDE) は、多数のツールの機能を組み合わせて1つのパッケージにしたものである。一般に、あるプロジェクト内のファイル群の内容を検索するなどといった単純な作業をより簡単にできる。
IDE は企業レベルのアプリケーションの開発によく使われる。
以下に主なIDEを挙げる。
- Delphi
- C++ Builder
- Microsoft Visual Studio
- Xcode
- IBM Rational Application Developer
- Eclipse
- NetBeans
- IntelliJ IDEA
- WinDev
- Code::Blocks
関連項目 [編集]
参考文献 [編集]
- Software Development Tools for Petascale Computing Workshop 2007
- CASE Tools
- CASE tool index
- UML CASE tools
- Agile CASE Tool
- Kernighan, Brian W.; Plauger, P. J. (1976年), Software Tools, Addison-Wesley, pp. 352, ISBN 020103669X