<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Uml on すてきな太陽になりたい</title><link>https://blog.sei-yo.jp/tags/uml/</link><description>Recent content in Uml on すてきな太陽になりたい</description><generator>Hugo</generator><language>ja-JP</language><lastBuildDate>Thu, 26 Dec 2019 23:52:26 +0000</lastBuildDate><atom:link href="https://blog.sei-yo.jp/tags/uml/index.xml" rel="self" type="application/rss+xml"/><item><title>「入門 UML 2.0」を読んだ</title><link>https://blog.sei-yo.jp/engineer/2019/12/posts/_uml_20/</link><pubDate>Thu, 26 Dec 2019 23:52:26 +0000</pubDate><guid>https://blog.sei-yo.jp/engineer/2019/12/posts/_uml_20/</guid><description>&lt;p&gt;「入門 UML 2.0」を読んだ。 UMLってユースケースを表現するためのものでしょ？と思っていて、図を使ってユースケースを書く必要に迫られることも無かったのであまり勉強する気にもなっていなかったのですが、&lt;a href="https://plantuml.com/"&gt;Plant UML&lt;/a&gt;というテキストでUMLを既述できるものを知り、図を描くのにテキストで記述できるのは便利そうということで読んでみることにしました。&lt;/p&gt;
&lt;p&gt;読んでみると、そもそもユースケース図を描くたものものという認識が誤りで、ユースケース図を表現することにも使えるが、それ以外の様々なものを表現するために使えるものであるということがわかりました。また、表現の仕方が定義されていて、UMLを知っている人であれば書き方を説明せずに記述できるということもよく分かりました。そのため、記述ルールについての凡例を書く必要もないのです。&lt;/p&gt;
&lt;p&gt;UMLは既述したい目的毎に図の書き方がいくつも用意されています。そして、その目的や使い分けについて説明しています。しかし、その使い方は限定的ではありません。ある特定の種類の図ですべてを表現する必要はなく、その図で表現したい箇所だけをその図で表現し、そのほかの場所は異なる種類の図で表現しても良いとされています。結局は表現すべき重要な事柄を、それを表現するのに適切な図を使って表現すべきとしています。 つまり、何を表現すべきかを考えて使い分けるということです。&lt;/p&gt;
&lt;p&gt;この本を読むことで、システム設計においてどのような情報を表現するべきかということがわかると思います。全体の概要を示したい場合や、特定部分の詳細について説明したい場合がありますが、それらがどのような種類の情報であるか、また混ぜるべきではない情報というのはどういうものかというのがなんとなくわかると思います。実際に書いて表現することを繰り返すことで、システムのどの部分をどのように表現するべきかというのがより直感的にわかるようになってくるのだと思います。&lt;/p&gt;
&lt;p&gt;ところで、Plant UMLはテキストで記述したものをUML図に変換する仕組み（Webサービス、Javaプログラムとして提供されています）ですが、テキストをエディタで変更すると即座にその結果のUML図が変更されるという使い方ができます。&lt;/p&gt;
&lt;p&gt;Vimでは、&lt;a href="https://github.com/previm/previm"&gt;previm&lt;/a&gt;というpluginを使うことで実現できます。 previmはそもそもMarkdownに対してのプレビューを提供するものでしたが、PlantUMLにも対応したのです。&lt;/p&gt;
&lt;p&gt;これを使いたかったという気持ちもあります。&lt;/p&gt;
&lt;p&gt;そんなわけで、今後、図を記述する必要がある場合にはPlantUMLを積極的に使っていきたいと思っています。&lt;/p&gt;</description></item></channel></rss>