UML (長田研アドベントカレンダー4日目)

こんにちは。 安里悠矢@長田研(仮)B4です。

何を書くか結構迷ったんですが
自分がETロボコンに参加してたので、UMLについて書きたいと思います。



UML (Unified Modeling Language)とは?

簡単に言うと「プログラムの設計書」です。
1990年代の初めは、プログラムの設計書の表記法が統一されていなくて、複数の表記法が乱立していました。
複数の表記法が乱立していると、表記法について毎回勉強しないといけないし、プログラム作るのも大変だし…
ってことでUMLという統一された表記法が確立されました。



UMLってそんな大事?プログラム書けりゃいいじゃん!

自分も初めはそう思ってました。
UMLがなぜ必要なのか?
教科書見てみると大抵は以下のことが書いてある
  • システムに求められる要求の高度化と多様化
  • システムの大規模化と複雑化に対応するため
  • 関係者間でのコミュニケーションの難しさ
….うん?って感じですね。
いろいろな教科書を見てきましたが、もっと難しいこと書いてある教科書もありました。
実際、UMLとか使って仕事している人にはこの意味が分かるかもしれないけど、
勉強し始めの頃は何を言ってるかわかりませんでした(多分今でもよく分かってない)
少し話は変わりますが….
もし、あなたが誰かに自分の作ったシステム(アプリケーションとか、プログラムとか)をレビュー(評価)してもらいたいとき、どうしますか?

プログラムを見せる!

それもありでしょう。
相手がプログラムをバリバリ書ける人なら適切なレビューが貰えるかもしれません。
しかし、相手がそのプログラム言語についての理解が浅かった場合、適切なレビューを得られないでしょう。
もしかしたらレビューすら貰えないこともあるかもしれません。

UMLを見せる!

相手がそのプログラム言語について理解している必要はほとんどありません(理解してることにこしたことはないですが)。
表記法については多少理解している必要があることもありますが
UMLの表記法は意外と簡単なので、分からない人にもすぐ説明できるでしょう。
プログラムよりもレビューは得られやすい。
また、そのレビューしてもらいたいシステムが本当に動くものなのか。
一緒に考えてもらえるきっかけにもなります。



UMLがなぜ必要なのか?

一番はこういうことだと思っています。
プログラムをガッツリ書けない人とでも、システムの妥当性を一緒に検証できる(考える)場を得られるから必要だと感じています。
やっぱり動くものを作るプログラマーは偉いと思います(実際にシステムを作っているし)
ですが、UMLも書けてこそできるプログラマーになれるのではないかなと感じます。


実際にUML書いてレビューさせるとダメ出しが多いし
プログラムみたいに動くものではないから達成感もなかなか得られないし
心折れることのほうが多いかもしれませんが
やっぱり大事な気がします



今回は技術的なことは一切触れてませんが、次回からやっていこうと思います。