Nekoya Press

UMLも捨てたもんじゃない

UML、最近はあまり名前を聞くこともなくなってきた感があります。

UMLなんていらない」なんてスレもあったりして、どうにも廃れた物と見る向きもあるようです。

UML」タグではてブの人気エントリを探しても、2005〜2007年ぐらいのものが目立つので、注目度という意味では流行ではないのは確かなのかなぁとは思います。

が、このところ有用性を改めて実感することが多いので「UMLいいよ」というエントリを書きます。

上記のスレは賛否両論併せてなかなかいい具合に意見が出ていて面白いのですが、以下を抑えていれば認識としてはいいのではないかと思います。

  • UMLは設計の技法ではない
  • 頭の中を整理するため、あるいは人と共有する際の表現技法である

弊社では、新しく入社したメンバーにプロダクトの設計を共有したり、新機能の開発をする際の社内レビューなどの際に、シーケンス図っぽいものやクラス図っぽいものを使うことがよくあります。

いきなりコードを読み書きしたり、文章に落とすよりも意志の共有がうまくいく感があって、このところ特に積極的に使うようにしているのですが、手応えは強く感じています。

UMLの厳密な書式ルールには全くこだわりはなく、大まかなイメージだけ伝われば、細かい部分は口頭でフォローすれば十分だと考えていています。そういう意味ではUMLを正しく使っているとは言えないのかも知れませんが、それはそれでいいんじゃないのと。

「廃れた」というよりはある程度のところまで浸透して、ふつうに使われるようになったので、大々的に取り沙汰されることがなくなってきただけではないかという気もしますが、それにしてもWeb+DBやSDで見かけないのはどうなのかなぁ…

UMLと併せて「オブジェクト指向で設計する」みたいなのもあまり目にしない印象があります。自分としてはプログラマとしての根幹を支えるとても大切な技術だと思うのですが、最近は雑誌などでもあまり目にすることがなくて寂しい限りです。

若いエンジニアが責務の切り分けや命名に苦心しているのを見るにつけ、この手の話題はもっと定期的に取り沙汰されてもいいのになぁと思うことがままあります。

面接の時にもこのあたりの質問をするべきか、最近はそんなに重視されないのか迷ったこともありましたが、一頃話題になったCracing The Coding Interviewを読むと、多くの企業が採用に際してオブジェクト指向設計についての技術的な質問項目を設けているというエピソードがあり、それ以来迷うことなく、面接時に積極的にこの手の質問を振るようにしています。

あまり細かい部分を追いかける必要はないし、使えば皆が幸せになれるとか言うつもりもないけど、このへんのテーマは知識として身につけておくとお得なので是非。

nekoya.github.io