ソフトウェア工学Ⅱ - 小テスト

窓(ペイン)の構造

Q1. 構造を表現したダイアグラム(クラス図やオブジェクト図など)を「astah* community」を用いて書きなさい。

クラス関係を表した図
クラス関係を表した図
Exampleクラス
Exampleクラス
PaneModelクラス
PaneModelクラス
PaneViewクラス
PaneViewクラス
PaneControllerクラス
Exampleクラス

Q2. 構造の小テストで身に付いたことや感想などを1000字以上で。

 今までクラス図を書くとき、すべてのクラスに瓶詰めしていたので、クラス関係が大分わかりづらい物になっていました。そのため、プロジェクト演習(荻原教授)のときも1つの画像ファイルに瓶詰めして、プロジェクトメンバーがクラス図を読むのをためらうほどのクラス図となってました。しかし、スコープの当たっているクラスごとにそれぞれ瓶詰めをすることによって、昔よりも今回のクラス図の方が断然読みやすくなり、クラス同士の関係を把握することが出来るように設計できました。ただ、気がかりなのが、paneパッケージ内にmvcパッケージとutilityパッケージを入れるべきかどうかということでした。パッケージごとに分けて書くと、クラス関係の線がはびこって美しくないですが、外部ファイルのパッケージから取ってきていると考えて、結局分けました。また、外部ファイルからとってきたパッケージ(mvcとutility)も瓶詰めして書くのかどうかも少し迷いましたが、ライブラリを使っていると考えて、瓶詰めしませんでした。そして、樹状整列のプロジェクトで、Forestパッケージ以外にパッケージを作っていなかったので、もう少し、体裁を整えるべきだと思いました。また、ExampleでpaneModel、paneView、paneControllerのインスタンス生成をしていたので、Exampleを集約していると思っていましたが、そういう動的なものは表現していないと知って、クラス図は静的な物であるということを理解しました。
 それから、「astah* community」に関して徐々になれてきて、缶詰と瓶詰めの使い分けなどがわかってきて、集約や関係の感覚を徐々につかめてきました。そして、「astah* community」のデフォルトの設定を普段自分が使う設定に調整して、効率化をはかれるようになってきました。ただ、やりたい操作が有料版にしかなかったり、ショートカットキーがあまり備わってなかったり、設定したときにその設定が新たなファイルを作ったときしか更新されないため、不便な面も多々あります。もちろん、有料版にバージョンアップしたいのですが、なかなか学生には手が届かない値段(3万円)であるので、迷っています。しかし、青木さんの言うように自己投資は大事だと思うので、別の有料UMLツールで良さそうなのも見てみようと思います。