|
|
|
|
実践的UML入門 IIOSSで始める新世紀プログラミング |
|
|
|
具志堅隆児 垣花一成 倉骨彰 著、山田正樹 鈴木重徳 監修 |
|
|
価格:2,100円 (本体2,000円) |
|
|
発売日:2002/03/07 |
|
|
形態:B5変 (200ページ) |
|
|
付属品:CD-ROM1枚 |
|
|
ISBN:4-7561-4048-3 (978-4-7561-4048-7) |
|
|
 |
内容 |
 |
|
|
UMLはソフトウェアの設計図を書くための言語である。本書では、オープンソースの開発環境であるIIOSSを利用して、UMLを使ったソフトウェア開発の進め方を具体的なサンプルを通して解説する。 |
|
|
| 担当編集者より |
 |
|
|
最近注目されているUMLというものをご存じでしょうか。UMLは「Unified Modeling
Language」の略で、「統一モデリング言語」と訳されます。しかし、言語といっても、
プログラミング言語のように文字列を使って記述するわけではありません。UMLでは
図を使ってソフトウェアの動作や構成を記述するのです(「言語」と呼ぶにはちょっ
と違和感があるかもしれませんね)。UMLは、いわばソフトウェアの設計図なのです。
ソフトウェアの動作をことばで説明する方法では、どうしても記述があいまいにな
り、また矛盾や見逃しがあっても簡単には分かりません。フローチャートでプログラ
ムの動作を記述するというやり方もありましたが、あまりうまくいきませんでした。
そのような反省や、オブジェクト指向に関する方法論の研究から生まれたのがUMLで
す。UMLは、今ではOMG(Object Management Group、http://www.omg.org/、日本語サ
イトはhttp://www.omgj.org/)という非営利の標準化団体で規格化されています。
上でもちょっと触れたように、UMLはオブジェクト指向に基づいています。そのた
めUMLでは、フローチャートのように1つの図でプログラム全体を表すのではなく、ク
ラス(またはオブジェクト)を単位として、クラス同士の関係やクラスの振る舞いな
どの図を描くことになります。
UMLで使われる図(ダイアグラムと呼ばれます)をいくつか紹介しましょう。
・ユースケース図
ソフトウェアシステムがどんな機能を提供するかを表します。
・クラス図
ソフトウェアで使用されるクラスの定義とクラス間の依存関係を表します。
・シーケンス図
オブジェクト間のメッセージのやり取りを時系列で表します。
・ステートチャート図
オブジェクトの状態の変化を表します。
もっとも、このような規格があっても、図をいちいち手書きしていたのでは手間が
かかりますし、修正も面倒で、間違いも入り込みやすくなります。実際には「UMLモデ
ルエディタ」と呼ばれるプログラムを使って、コンピュータ上で操作します。UMLモデ
ルエディタには、高価な市販パッケージがいくつもありますが、この本で使っている
IIOSS(「イーオス」と読みます)はオープンソースで開発されているフリーソフトウ
ェアで、GPLに準拠したライセンスで公開されています。現在はIIOSSコンソーシアム
(http://www.iioss.org/)で開発が続けられています。
IIOSSはすべてJavaで記述されているので、JDK 1.3.xが動作する環境なら、OSに関係
なく動作します(動作確認がとれているのは、各種Linux、Sun OS、Windows 98/Me/2000
です)。フリーソフトウェアだからといって機能が限定されていることはなく、UMLの
各ダイアグラムの作成に加えて、ダイアグラムが正しいかどうか診断したり、ダイアグ
ラムに沿って動作をシミュレーションしたり、ダイアグラムからJavaのソースを生成し
たりする機能を持っています。ただし、ソースの生成といっても何から何までやってく
れるわけではありません。作ってくれるのは「このボタンが押されたらこのメソッドを
呼び出す」「このイベントが起きたらこのメソッドを呼び出す」という動作の枠組みだ
けです。メソッドの中身は自分でコーディングしないといけません。
このように便利なIIOSSとUMLなのですが、新しい開発環境の常として「で、その機能
を具体的にどう使ってプログラムを作ればいいの?」という疑問が出てきます。そこで
本書では、5つの例題を通してIIOSS/UMLを使った開発過程を具体的に見ていきます。各
例題について、ユーザーの要求をもとに仕様を決定する「要求分析」、ダイアグラムを
徐々に具体化しながらソフトウェアの動作や構成を詰めていく「設計」、コーディング
してソフトウェアを完成する「実装」という3つの工程をステップバイステップで解説し
ているので、UMLを使った開発スタイルがどういうものか理解していただけるでしょう。
|
|