IIOSS
オープンソースなオブジェクト指向の設計支援ツール
書誌
| tag | Java |
| text | 唯野 |
| author | 佐野元之, 鈴木重徳, 倉骨彰 |
| publisher | 五橋研究所 |
| year | 『Linux Japan 2001.8』p.50-57 |
履歴
| 2001.6.25 | 読了 |
| 2001.6.25 | 公開 |
| 2002.4.21 | 修正 |
| 2012.1.17 | タグ追加 |
感想
少し前 UML の勉強ついでにフリーな CASE ツールを探してみたのだが意外と選択肢がなく(Algo/UML くらい ? もちろん Rational Rose などは高嶺の花)、UML の話題性の割にはツールの広がりとの間にギャップを感じていた。しかし、この記事で IIOSS (Integrated Inter-exchangeable Object-Modeling and Simulation System for Open Source Software Environment、イーオスと読む。それにしても名前が長ーい :-)) という国産の UML モデリングのサポートしたツールを知ったので簡単に紹介する。(但し、モデル編集機能では上述の Algo/UML などをベースとしているらしい。個人的には C++ に対応して欲しかったが、現状は Java 1.2.2 相当 + Linux (カーネル 2.0 以降、要 POSIX 及び TCP/IP) が想定環境のようだ。)
追記
その後、いくつかのフリーで利用できる UML モデリングツールを試してみた。コンセプトとしてはオブジェクト指向開発全般を視野に入れた IIOSS は非常に興味深いのだが、現状だと(私は Windows 版を利用してみたが)、1) 非常に重い 2) モデル編集ファシリティ(MEF)の日本語化はありがたいがフォントが読みづらい 3) C++ でのコード生成/リバースエンジニアリングに対応していない――という点で完成度的にいまいちに映った。
そのため個人的に現状でおすすめなのは、Pattern Weaver か MagicDraw である。いずれも Java ベースだが IIOSS より動作も軽くワークスペースも洗練されている。特に MagicDraw は海外製のソフトウェアだがヘルプ以外のメニューなどは日本語対応しており、$499 (Professional Edition)で、C++/Java/IDL のコード生成/リバースエンジニアリング/UML の内容チェックまで可能というのが個人にはありがたい。何しろ Visio for Enterprise Architect (Visual Studio .net Enterprise Architect に同梱)にせよ Rational Rose にせよ、個人でおいそれと買える値段ではないからである。(2002.4.21)
抄録
ソフトウェア工学(入門編)
ソフトウェア・プロセス。以下を見ても分かるように、工程全体から見るとプログラミングの比重というのは一部分に過ぎない。
- 要求分析 (顧客が何を要求しているのかの記述)
- システム設計 (モジュールレベルの設計)
- 詳細設計 (個々のモジュールについての詳細な設計)
- 実装 (プログラミング、単体テスト、詳細設計書に沿ったモジュールの実装)
- 結合テスト (全てのモジュールをコンパイル・リンクしたテスト)
- 総合テスト (実地検証、実際のマシン上でのテスト)
- 保守 (開発したソフトウェアの保守作業)
従来のソフトウェア・プロセスでは「ウォーターフォールモデル」(各工程を後戻りせず逐次的に実施)と「構造化プログラミング」(プログラムの構造をデータ構造とアルゴリズムから階層化)が主流だった。しかし、ソフトウェアの肥大化などに伴って問題(あるフェーズで発見されなかった問題が後のフェーズで重大なトラブルとして顕在化するなど)が指摘されるようになり、その解決策のひとつとして登場したのがオブジェクト指向ということになる。
オブジェクト指向ソフトウェア・プロセスでは、1) システムが自律的かつ能動的にふるまうオブジェクトの集合で 2) オブジェクト同士はメッセージをやりとりする――という考え方に特徴を持つ。特に最近では開発工程全体に対してオブジェクト指向アプローチを取ることへの有効性が認識されてきた。これをプログラミングの観点から見ると 1) データと処理をひとまとめにしたモジュール化 2) モジュールの部品化(カプセル化) 3) ソフトウェア部品の抽象化と隠蔽――が挙げられる。また、OOPL を世代から捉えると、第 1 世代 : Sumila、Smalltalk (1970's 後半)、第 2 世代 : C++、Objective-C、Object-Pascal、Ada、Modula-2 (1980's 半ば)、第 3 世代 : Java、Python、Ruby (1990's 半ば) という分類が成り立つ。
そして、コンポーネント指向ソフトウェア開発とは、複数のコンポーネント(オブジェクト指向に基づくソフトウェア部品)の組み合わせによるシステム構築を指し、近年急速に広がりを見せている。その場合には、システムの抽象化 = モデリングがポイントとなるが、最近ではその具体的な手段として UML が広がりつつある。しかし、オブジェクト指向での恩恵を受けるには、ソフトウェアのきちんとした構成を把握しなければならない。
IIOSS について
IIOSS では、上記に加えて最近の新しいパラダイムのひとつといえるオープンソースを取り入れている。IIOSS は IPA (情報処理振興事業協会)の支援の元に開発が進められている。(IPA のプロジェクトとしてもオープンソースのものが増えつつある。) IPA 自体が政府機関系であることにより税金による成果物をオープンソースとして公開することには意義があるのではないかということ。そのため実装は 100% Pure Java となっている。
そして、IIOSS 自身はコンポーネント構築支援及び開発で必要になると考えられる以下の 6 つのツール(ファシリティ)より構成されている。これによって開発者は仕様や設計を図式化されたモデルとして記述し、それを元にしたシミュレーション、デバッグ、Java のコード生成などを行うことができる。
- モデル編集ファシリティ (MEF : Model Editing Facility) UML 1.1 に準拠したエディタ機能
- モデル検証ファシリティ (MDF : Model Debugging Facility) UML モデルをベースにしたシミュレーション/動的デバッグ機能
- インターフェイス構築ファシリティ (IBF : Interface Building Facility) GUI、ネットワーク、データベースのインターフェイス構築機能
- フォーマット変換ファシリティ (FCF : Format Conversion Facility) MEF によるクラス図を入力データとして Java コードの出力 (逆も可能)
- データベースファシリティ (DBF : Data Base Facility) IIOSS 全体のリソースを管理するオブジェクト指向データベース
- 統合開発環境 (IDE : Integrated Development Environment) IIOSS を使ったソフトウェア開発プロジェクトの管理機能
また、IIOSS 自身の開発は主にインターネットを通じて行われ、ソース管理には CVS が使われている。
