EurekaMoments

ロボットや自動車の自律移動に関する知識や技術、プログラミング、ソフトウェア開発について勉強したことをメモするブログ

PlantUMLを通じてシーケンス図の描き方を学ぶ

目次

  • 目次
  • はじめに
  • シーケンス図とは
  • 設計プロセスにおけるシーケンス図の立ち位置
  • シーケンス図の描き方についてのヒント
    • ヒント1
    • ヒント2
  • シーケンス図を構成する要素
    • メッセージ
    • 自己メッセージ
    • 外部とのメッセージのやり取り
    • ライフライン
    • 実行仕様(イベント)の表現
    • シーケンス図の例: ログイン
    • 複合フラグメント
      • alt 分岐処理の表現例
      • ref 相互作用使用 別参照
      • opt 条件による実行の表現
      • delay 非同期の遅延処理
      • par 並列処理
      • loop 繰り返し処理
      • break 中断処理
      • critical 排他制御処理
      • グループ化
    • 作成と消滅
    • 上下でメッセージ間でスペースを空ける
    • 分離線
    • ボックス
    • ノート
      • メッセージのノート
  • GitHub
  • 参考資料

はじめに

ソフトウェアの仕様書、設計書の作成や管理を効率化するために、Markdown + PlantUMLによる作成方法を日々模索しています。 しかしながら、そもそもUML図の正式な書き方というものをちゃんと分かっていないというのが正直なところなので、PlantUMLを通じてUMLの各種図の書き方を勉強していきます。

  • 本稿のテーマは、「UMLによるシーケンス図の書き方」です。
  • 本稿におけるUML図の作成は、Markdown + PlantUMLがベースであることを前提とします。

シーケンス図とは

  • シーケンス図とは、クラスやオブジェクト間のやり取りを時間軸に沿って表現するものである。
  • 詳細設計の成果物の中で最も重要な図。描く際はいきなりゼロから描くのではなく、ロバストネス図を参考にしながら描く。
続きを読む

PlantUMLを通じてユースケース図の書き方を学ぶ

目次

  • 目次
  • はじめに
  • ユースケース記述とユースケース図
  • ユースケースを洗い出す際のポイント
  • 基本コースと代替コース
  • ユースケース図を構成する要素
    • アクター
    • ユースケース
    • 対象
  • ユースケース図を描く流れ
    • 1. アクターを列挙する
    • 2. アクター毎のユースケースを列挙する
    • 3. 対象に収める
    • 4. ユースケースを整理する
  • ユースケースの表現パターン
    • パターン1: 汎化(Generalization)
    • パターン2: 包含(Include)
    • パターン3: 拡張(Extend)
    • パターン4: パッケージ
  • GitHub
  • 参考資料

はじめに

ソフトウェアの仕様書、設計書の作成や管理を効率化するために、Markdown + PlantUMLによる作成方法を日々模索しています。
しかしながら、そもそもUML図の正式な書き方というものをちゃんと分かっていないというのが正直なところなので、PlantUMLを通じてUMLの各種図の書き方を勉強していきます。

  • 本稿のテーマは、「UMLによるユースケース図の書き方」です。
  • 本稿におけるUML図の作成は、Markdown + PlantUMLがベースであることを前提とします。
続きを読む

Gitによる複数人でのバージョン管理をSourceTreeを使って体験してみる

目次

  • 目次
  • はじめに
  • 前提条件
  • 作業対象とするGitHubリポジトリ
  • SourceTreeについて
  • 今回のシナリオ
  • Step1: リモートリポジトリをローカルにクローンする
  • Step2: 3人それぞれのブランチをmasterから作成して作業開始
  • Step3: Bの作業が先に完了→プルリクを作成してマージ
  • Step4: Shisatoの作業ブランチにBの完了分をマージして作業継続→完了したらプルリクを作成してマージ
  • Step5: Aの作業ブランチにShisatoとBの完了分をマージして作業継続→完了したらプルリクを作成してマージ
  • Step6: 追加作業でブランチ作成してマージしようとしたらコンフリクト→コンフリクトを解消してマージ
  • 最終的なコミット履歴
    • SourceTreeで可視化した履歴
    • GitHubで可視化した履歴
    • Visual Studio Codeで可視化した履歴
    • 比較した感想
  • 参考資料

はじめに

今の職場におけるバージョン管理システムをSVNからGitに変更することを提案したいと考えており、それの参考にと思い上記の書籍を読みました。
インストールや初期設定の手順から、実際にブランチを切りながらバージョン管理していく流れまで述べられていて大変参考になりました。ただし、これらは全てGit bashからのコマンド操作によるものがメインであり、今後職場で導入提案をするならGUIツールを使った場合の操作手順を把握しておきたいと考えました。
今回の記事では、GitのGUIツールとして人気の高いSourceTreeを使いながら、Gitでの複数人バージョン管理を一人で自作自演しながら体験してみた流れを紹介していきます。

続きを読む

PlantUMLを通じてドメインモデル図の書き方を学ぶ

目次

  • 目次
  • はじめに
  • プロジェクトの開始時にやるべきこと
  • ドメインモデル図とは
  • ドメインモデル図を描く手順
    • 1. 「名詞」の抽出
    • 2. モデル同士の関係を線と矢印で表す
    • 3. 中心となるモデルに色を付ける
  • ドメインモデル図を用いる際の注意点
  • ドメインモデル図の活用方法
  • ドメインモデル図の作成例
    • 例1. 認証システムの場合
    • 例2. 課金システムの場合
    • 例3. 本屋の場合
    • 例4. 投稿システムの場合
  • GitHub
  • 参考資料

はじめに

ソフトウェアの仕様書、設計書の作成や管理を効率化するために、Markdown + PlantUMLによる作成方法を日々模索しています。
しかしながら、そもそもUML図の正式な書き方というものをちゃんと分かっていないというのが正直なところなので、PlantUMLを通じてUMLの各種図の書き方を勉強していきます。

  • 本稿のテーマは、「UMLによるドメインモデル図の書き方」です。
  • 本稿におけるUML図の作成は、Markdown + PlantUMLがベースであることを前提とします。
続きを読む

PlantUMLを通じてロバストネス図の書き方を学ぶ

目次

  • 目次
  • はじめに
  • ロバストネス分析の目的
  • ロバストネス図とは
  • ロバストネス図のシンボル
    • アクター
    • バウンダリ(インターフェース)
    • エンティティ
    • コントロール
  • PlantUMLでの記述例
  • ロバストネス図とその周囲のダイアグラムの整合性
  • ロバストネス図の秘密
    • コントロールは何から生まれて何になるのか?
    • コントロールはユニットテストの良い対象
  • GitHub
  • 参考資料

はじめに

ソフトウェアの仕様書、設計書の作成や管理を効率化するために、Markdown + PlantUMLによる作成方法を日々模索しています。
しかしながら、そもそもUML図の正式な書き方というものをちゃんと分かっていないというのが正直なところなので、PlantUMLを通じてUMLの各種図の書き方を勉強していきます。

  • 本稿のテーマは、「UMLによるロバストネス図の書き方」です。
  • 本稿におけるUML図の作成は、Markdown + PlantUMLがベースであることを前提とします。

このロバストネス図を描く工程は、下記の記事にて述べたクラス図を描くための準備段階にあたります。

www.eureka-moments-blog.com

続きを読む

PlantUMLを通じてクラス図の書き方を学ぶ

目次

  • 目次
  • はじめに
  • クラス図とは
  • クラス図を作るまでの流れ
  • クラス図を構成する要素
    • クラス(Class)
    • クラス間の関係と線種
    • 関連(Association)
    • 汎化(Generalization)と特化(Specialization)
    • 実現(Realization)
    • 集約(Aggregation)と合成(Composition)
    • 依存(Dependency)
    • ロール名(Role name)
    • 多重度(Multiplicity)
    • ステレオタイプ(Stereotype)
    • 制約(Constraint)
    • 特殊クラス
    • ロリポップ
  • パッケージ
    • パッケージの定義
    • パッケージスタイル
    • ネームスペース
  • ノート
    • クラスに対するノート
    • 関係を使ったノート
    • リンクへのノート
  • オブジェクト図
  • パッケージ図
  • GitHub
  • 参考資料

はじめに

ソフトウェアの仕様書、設計書の作成や管理を効率化するために、Markdown + PlantUMLによる作成方法を日々模索しています。
しかしながら、そもそもUML図の正式な書き方というものをちゃんと分かっていないというのが正直なところなので、PlantUMLを通じてUMLの各種図の書き方を勉強していきます。

  • 本稿のテーマは、「UMLによるクラス図の書き方」です。
  • 本稿におけるUML図の作成は、Markdown + PlantUMLがベースであることを前提とします。

Markdown + PlantUMLでドキュメントを作成する環境の構築方法については、下記の記事を参照ください。

www.eureka-moments-blog.com

続きを読む

MarkdownとPlantUMLでソフトウェアの仕様書や設計書を書くための環境構築手順

目次

  • 目次
  • はじめ
  • Markdownで書くメリット
  • Markdown記法一覧
  • 環境構築手順
    • 1. Visual Studio Codeをインストールする
    • 2. PlantUMLをインストールする
    • 3. Javaをインストールする
    • 4. Graphvizをインストールする
    • 5. Markdown Preview Enhancedをインストールする
  • 環境構築後の動作確認
  • Markdownでドキュメントを書く際に便利な拡張機能
    • 1. Paste Image
    • 2. markdown-index
  • 作成したドキュメントをHTMLやPDFに変換する
  • 今回参考にさせていただいた記事

はじめ

自分はこれまでソフトウェア開発において仕様書や設計書を作成する際、Enterprise ArchitectというGUIで操作するソフトウェア設計支援ツールを用いてUML図を描いてきました。
必要なコンポーネントをドラッグアンドドロップするだけでUML図を作成できるので簡単なのですが、図のレイアウトは自分の手で微調整しなければならないので少々面倒です。また、それらの図を挿入する先のドキュメント本体はWordやExcelで作成するのですが、ドキュメント本体もUML図も同じ環境で一度に作成する方法はないかと思っていました。
今回いろいろ調べたところ、自分が愛用するエディタであるVisual Studio Codeであれば、Markdownでドキュメントを書くのとUML図の作成を一度にできるということを知ったので、その方法についてメモしておこうと思います。

続きを読む