[製品紹介]
開発の全フェイズ支援を試みるTogetherの戦略製品 Together ControlCenter Ver.6
仕様変更にツールが対応 |
TCCにおいてUMLダイアグラムの描画のための情報は、位置情報を除いて、すべてオンデマンドでソースコードから取得しています。よってダイアグラムの作成はソースコードのテンプレート作成に直結しますし、エディタ上でのソースコードの変更もすべてその場でダイアグラムへ反映されます。このようなアーキテクチャは、既存のソースコードをTCCのプロジェクトへインポートする際にも有効に働きます。すなわちTCCは基本的にソースコードの解釈によって設計情報を生成しているので、TCCのプロジェクトのディレクトリに既存コードをドロップインするだけでインポートが可能です。ドキュメントが不十分なプロジェクトを保守フェイズから担当するような場合においても、TCCのインポート機能とドキュメント作成機能とを組み合わせることで、よりスムーズな移行が可能というわけです。
TCCのドキュメント作成機能はソースコードをベースにしているため、ドキュメント管理のオーバーヘッドを最小限にすることができます。TCCがデフォルトで対応しているドキュメント形式はJavaアプレットによるナビゲーション機能の付いたHTML文書、RichTextFormat(RTF)です。このドキュメント生成機能はバッチ形式で起動させることも可能であり、定期的にプロジェクトのHTML文書を再生成するようなスケジューラを走らせることで、最新のドキュメントをネットワーク上で共有することができます。
画面7 HTMLによるドキュメントの例 (画面をクリックすると拡大します) |
このように、仕様変更の情報はすべてソースに集約されているため、設計情報、ドキュメント、実装の間の食い違いや同期の不徹底を防ぐことができます。これによりプログラミング工程と設計工程との間でのギャップを最小にすることができます。また「繰り返し」型の開発プロセスを取った場合でも、変更に対して全工程の成果物の修正を最小限の労力で行うことができるようになっています。
コードの品質管理機能を用意 |
TCCはソフトウェアの品質管理を行うためにテスト支援、品質保証、構成管理の機能を備えています。
■テスト支援の機能
TCCはオープンソースのテスティング・フレームワークであるJunitとシームレスに統合されています。Junit対応のテストケース・スケルトンの自動生成から実行、結果の取り込みおよびHTMLによるレポート出力までをサポートしています。
画面8 テスティング機能 (画面をクリックすると拡大します) |
またCactusやHTTPUnitといったサーバサイドのテスティング・フレームワークとの統合もなされておりServletやEJBのテストなどについてもTCC上からの実行が可能です。
SwingやAWTといったGUIアプリケーションに対するテスティングについては、GUI上の操作を記録し再生して自動操作させるためのVisualTesting機能を提供しています。
これらのテスト支援機能全体がTestingFrameworkModuleによって統合されており、テストプランの作成から実行、結果記録、レポーティングまでの一連の作業を統一的に行うことが可能です。
画面9 テスト結果のレポート作成 (画面をクリックすると拡大します) |
■品質保証(QA)の機能が充実
品質保証(QualityAssurance:QA)機能は、計測(Metrics)と検査(Audit)からなります。計測機能によってプロジェクトの特性値を計算・測定することで量や品質について客観的指標を得ることができるので、プロジェクト管理の根拠として活用することが可能です。また検査機能を利用することで、チーム内のプログラミングスタイルの統一を自動化したり、EJBのプログラミング規約のチェック、効率の悪いコードスタイルの修正を自動的に行うことが可能となります。
計測機能には、一般的な量的指標であるコメントを除いたコード行数(LineOfCode:LOC)やクラス数(NumberOfClasses:NOC)や古典的な複雑度の指標であるサイクロマティック複雑度(CyclomaticComplexity)から、オブジェクト指向デザインを改良する視点から研究されてきたChidamber & Kemerer's Metics SuiteやMOODといった指標値を得ることができます(オブジェクト指向メトリクスについては以下のサイトを参照してください(http://yunus.hun.edu.tr/~sencer/oom.html)。
画面10 計測機能 (画面をクリックすると拡大します) |
検査機能については一般的なコーディングスタイルからSunEJB仕様準拠のチェックまでをカバーしています。チェック項目の組み合わせは保存可能であり、あらかじめSun Javaコーディング標準の検査セットも提供されています。
画面11 検査機能 (画面をクリックすると拡大します) |
さらに計測、検査の項目はTCCのユーザーが拡張および追加が可能なので、例えば社内的なコーディング標準について新たな機能を加えることも可能です。
■構成管理機能
「繰り返し」開発やXP開発のリファクタリングにおいて一貫した品質を保持するためには、構成管理ツールを用いた変更管理が欠かせません。TCCは構成管理のクライアントとしてIDEに統合されたフロントエンドを提供しているので、現在編集中のプロジェクトから構成管理用のプロジェクトリポジトリに対して透過的なアクセスが可能です。
画面12 構成管理 (画面をクリックすると拡大します) |
TCCは構成管理機能(VersionControlSystem:VCS)のバックエンドとして、標準的にはCVSを提供しています。なお、TCCをWindows上で利用している場合、Win32SCCprovider'sAPIに準拠している構成管理ツールを利用することも可能です。例えばClearCase、Visual SourceSafe、PVCSが利用可能です。
この製品に今後求めること |
■多機能であることと使いやすさの両立
TCCはシステム開発の全工程をサポートする機能をすべて備えていますが、これらの機能をどのように利用するかについては、ユーザー側に任されている側面があります。しかし、これだけ多機能なツールになると「利用の仕方、手順」といった点においてもシステム側でのサポートが必要となるでしょう。
例えば、TCCに求める機能は備わっていても、それをどこから起動してよいのか、迷うことがあります。これは、機能のメニュー表現が比較的フラットになっており、直感的でシンプルなユーザーインターフェイスに十分なっていないことに起因しています。
現状でもワークスペースやロールに応じて機能の表示/非表示の設定は可能になっていますが、IDEからメニュー構造自体を変更する方法は提供されていません。カスタマイズについてはConfigファイルを編集する必要があります。
この点については、標準的なシステム開発の工程(分析、設計、実装など)に沿った形でのメニューの整理がなされると、より使いやすくなると思われます。さらに欲をいえば、XPやRUP、FDDといったメソドロジーに連携した形で、IDEのメニューやビューがカスタマイズできると素晴らしいと思います。オールインワンを標ぼうするツールであればこそ、工程のマネジメントをサポートする機能も求められているともいえるでしょう。
■製品およびライセンスのラインアップの充実
TCCのプロダクトラインは、現状ではフル機能版のControlCenterと、機能限定版であるSoloの2系統になります。また、ライセンスについては、マシン限定のノードロックと、ライセンスサーバが存在するネットワーク上での同時起動数で制限するフローティングの2種類が存在します。
現状のTCCのラインアップに対しては、ツールを導入する立場からすれば、役割に応じた機能範囲のみを導入したい場合には選択肢が少ない、またフル機能版ではオーバースペックになってしまう、といった懸念があります。特に、規模の大きな開発の場合、役割分担を厳密にするケースが多く、担当の役割ごとに必要な機能だけをアクティベートしてその分のフィーのみを負担することで対費用効果を高めたいという要望もあるでしょう。
TCCは、確かに、オールインワンであることによって最大限の効用を発揮できるプラットフォームですが、導入形態に多くの選択肢があれば、ユーザーにとっても初期導入の敷居を低くするメリットが生まれることでしょう。
◆
TCCでは、ユーザーはTCCの内部で保持しているデータ構造やIDEの機能要素に対してJava言語による公開されたAPIを通じてアクセスできるので、ユーザーが独自の機能モジュールを追加してゆくことが可能です。実際にTCCのコミュニティーサイトにおいてユーザーによる拡張モジュールが公開されています。その点でも、TCCは、ビジネス環境の変化スピードに対応するため、柔軟な開発の基盤づくりをサポートするツールであると評価できるでしょう。
|
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|