PlantUML Editor の要求/要件定義

細々と作っていた PlantUML Editor ですが、公式アカウント?から「Nice」を頂いたので、改めて要求や要件などを必要最低限まとめておきたいと思います

概要

PlantUML Editor はブラウザ上で PlantUML を試すことができるWebアプリです

背景

  • esaKibelaDocBase などの情報共有サービスや、Crowi、GitLab など PlantUML 対応が充実してきている
  • エディターについても atomvscode の PlantUML プラグインが普及している
  • フロントエンド分野でも DDD の機運が高まりつつあり(国内)、今後も UML の需要が維持もしくは向上することが見込める

一方、課題も見えてきている

  • 未経験者が手軽に PlantUML を試せる環境がない
  • 各種情報共有サービスが利用できない。あるいは Crowi、GitLab などの運用もままならない場合
    • 小規模、社内規定、予算都合 etc

技術的な要因等は Qiita にまとめています。
vue-cli (vuex) で PlantUML エディターを作ってみた - Qiita

コンセプト

  • 未経験者、初心者が手軽に PlantUML を試せること
  • 各種情報共有サービス等に移行しやすいこと
  • 小規模、個人の場合は継続して利用できること
  • PlantUML の良さを広めることに寄与できること
    • 上司、チームメンバー etc

対象ユーザー

  • PlantUML 未経験者、初心者
  • 各種情報共有サービス等の導入を検討している人
  • 個人アプリ制作などで PlantUML を利用したい人
  • これから PlantUML を社内で広めていきたい人

ユースケース

PlantUML Editor ユースケース図

競合

機能要求

  • テンプレートを準備する
    • 新規作成をできるだけ簡単にする
  • チートシート機能
    • note や direction など
  • 画面サイズを超える UML にも対応
    • 拡大縮小
    • 画像スクロール(縦横)
  • 出力は SVGPNG に対応
  • UML の出力はキーバインドとボタンを用意する
    • 最初はボタン。慣れてきたらキーバインドと使い分ける
    • リアルタイム処理は PlantUML サーバーへの負荷が怖いので避ける
  • 保存機能(履歴機能)
    • 継続利用するため。オリジナルのテンプレートとしても使える
  • SVG, PNG のダウンロードに対応
    • Excel 添付などしやすいようにする
  • Gist 投稿機能
    • secret 対応し共有しやすくする

非機能要求

個人アプリなので、運用に費用や労力を掛けることができない。できる範囲で運用を行う

  • 永続化
    • localStorage, indexedDB
    • DBサーバーなどは用意しない
  • アプリケーションサーバ
    • GitHub Pages で運用する。リポジトリGitHub に準備するので、デプロイも効率化される
    • HTTPS 対応するため Netlify で運用する。GitHub 連携機能があるので、デプロイも効率化される
  • PlantUML サーバー
    • PaaS の無料範囲内で運用する。今回は Heroku を採用する

テスト

これから準備していく

  • 複雑な業務ロジック等がないため、単体テストより E2E テストを整備していく
  • UML図(画像)の比較も行いたい

最後に

2017年8月末で6年勤めた現職を退職し、個人事業主になります。
2018年には宮崎から地元の熊本へ拠点を移し活動予定です。(退職理由は引っ越しです。)
少しでも興味をもって頂けましたら、ご連絡いただけると幸いです。
宜しくお願い致します。