8
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

明日から現場で使える!便利なHCPチャートのすゝめ

Posted at

#HCPチャートとは
日本電信電話公社(現NTT)の横須賀電気通信研究所で開発された
プログラムの視覚的記法です。今の現場で使う事が多いのですが、便利なのでアウトプットします。

HCPチャートは、以下のような記号を使って書きます。
image.png

参照 : https://ja.wikipedia.org/wiki/HCPチャート

#HCPチャートの使いどころ
クラスの概要を説明するときはクラス図を
処理の流れを説明するときはシーケンス図を利用します。

では、関数仕様を説明するときはどうしてますか?
私は、この手法を知る前はフローチャートを書いていました。

フローチャート・・・素晴らしい記法ですよね。
ただ、書くのが非常にめんどくさい大変です。

#フローチャートとの比較

たとえば、お金を投入した後の自販機の処理をフローチャートで書いた場合、以下のイメージで書きますよね。

※フローチャートのイメージを説明しているだけなので、処理の抜け等は見逃して下さい(_ _)
※商品の最低単価が100円という想定です。
image.png
フローチャートを書く専門のツール等もありますが現場レベルでさくっと書く場合
大抵エクセルの図形オブジェクトを駆使して描きます。が・・・図形を並べる作業って結構手間です。

このフローチャートをHCPチャートで書いた場合、以下のように書けます。

┬
○ 自販機の処理
┴└┐
  @│投入金 > ¥100
  │ └┐
  │  ○ 買える商品のボタンを光らせる
  │  │
  │  ◆│商品購入ボタンが押された
  │  │ └┐(真)
  │  │  │
  │  │  ○ 投入金から商品価格分を引く 
  │  │  │
  │  │  ○ 商品を出す
  │  │  ┴
  │  │
  │  ◆│返金ボタンが押された
  │  │ └┐(真)
  │  │  │
  │  │  ○ 残金を出す  
  │  │  ┴
  │  ┴
  ▼ 終了
  ┴

なんと、記号と日本語だけで関数仕様を書く事ができます!

一部、公式の記号とは違う記号(ループが@でifが◆など)も使っていますが、僕らの現場では
エクセルに張り付ける前提なので、この記号はどういった意味だ。という共通認識をもって作業しています。
正式文章としては、微妙かも知れませんが現場レベルのやり取りでは最適だと思います。

また、上記で使っているHCPチャートはQiitaのコードブロックに直で書いたものですが
実際に使う場合は、VIMや秀丸など罫線を書くためのマクロを持つエディタで記述してから
エクセルに貼っつけるという流れで行うと、大分作業性が良くなります。

フォントはMSゴシックなどの等幅フォントで 9ポイント程で記述するのがオススメです。

#サクラエディタでHCPチャート
私は、サクラエディタユーザーなので、サクラでHCPチャートを書く方法を記載します。
サクラエディタにはスムーズに罫線を書く方法がないので、罫線マクロを準備します。

以下MITライセンスで罫線マクロを作ってくれている方がいます。
https://github.com/pekopeko1/sakura2-keisen

このマクロを登録します。
image.png

あとは、キー割り当てで登録したマクロを割り振れば
image.png

Shift + Ctrl + 矢印 で自由に線が引けます。
image.png

最初こそ手間ですが一度マクロを登録してしまえば自由に使えるので、とっても便利です!!

8
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?