シーケンくん 〜UMLシーケンス図作成〜

 

上へ
output
obj
async
sync
create
destroy
space
message.startnumber
message.color
sd
cf
elcf
ref
//コメント
処理 ;
\n、\"
エラーメッセージ
補足

 

3.機能一覧

命令 説明
output シーケンス図を出力する、シート名を指定する。

書式:output "シート名";

obj オブジェクト宣言する。

書式:obj 宣言名 = "表示名";

async 非同期メッセージを作成する。

書式:obj/ref宣言名.async("説明","戻り値説明"[,定数]){・・・};

「定数」はメッセージを表示するかを表し、省略時は0となる。
0:表示、2:復帰のみ非表示、3:全非表示

sync 同期メッセージを作成する。

書式:obj/ref宣言名.sync("説明","戻り値説明"[,定数]){・・・};

「定数」はメッセージを表示するかを表し、省略時は0となる。
0:表示、2:復帰のみ非表示、3:全非表示

create createメッセージを作成する。

書式:obj/ref宣言名.create("説明","戻り値説明"[,定数]){・・・ };

「定数」はメッセージを表示するかを表し、省略時は0となる。
0:表示、2:復帰のみ非表示、3:全非表示

destroy destroyメッセージを作成する。

書式:obj/ref宣言名.destroy("説明","戻り値説明"[,定数]){・・・ };

「定数」はメッセージを表示するかを表し、省略時は0となる。
0:表示、2:復帰のみ非表示、3:全非表示

space 説明文を作成する

書式:obj/ref宣言名.space("文字列");

message.startnumber メッセージにシーケンス番号を付けることを始める。

書式:message.startnumber();

message.color メッセージに色をつける。

書式:message.color(色番号);

sd sd(sequence diagram)を使う。

書式:sd(名前,インデント){ ・・・ };
 名前(文字列):sdの表示名
 インデント(正整数):sdをインデントする ※省略可能
 ・・・:シーケンス図作成の文を書く(sd以外)

cf 複合フラグメントを使う。

書式:cf(名前,ガード条件){・・・};
 名前(文字列):複合フラグメントの名前。例:alt,opt
 ガード条件(文字列):ガード条件。
 ・・・:シーケンス図作成の文を書く(sd以外)

elcf 複合フラグメントのelse部分

書式:elcf(ガード条件);
 ガード条件(文字列):ガード条件。
  ※cfのブロックの中で使う。
 ・・・:シーケンス図作成の文を書く(sd以外)

ref 相互作用オカレンスを使う。

書式:ref  ref宣言名 (表示名);
 ref
宣言名(英数文字列):コード上で使う宣言名
 表示名(文字列):ref内に表示される文字列

処理 ; C++のようにセミコロン「;」で処理を区切ります。
文字列 文字列を使う

書式:"文字列"
 文字列:"で文字列を囲うと文字列として扱う。
 例:「obj phone = "電話";」の「"電話"」の部分

定数 定数を使う

書式:整数
 例:「a.sync("","",3);」の「3」の部分

\n "で囲われた\nは改行となります。

書式:"文字列\n文字列"

\"

"で囲われた\"は"文字となります。

書式:"文字列\"文字列"

エラーメッセージ

エラーメッセージはメッセージボックスで表示します。

「描画」ボタンをクリックしたときに、コードに間違いあると表示されます。

■表示例

「obj宣言で「;」がありません。エラー文字列:message」 

注意:「エラー文字列」はエラーのあった箇所の次の単語を表示します、

エラー文字列で検索してその文字の前にエラーがあります。

補足 字句解析、構文解析

※オブジェクト名の命名規則などを参考にしてください。

 

構文例

//組み合わせて使う
sd("電話帳から発信")
{
	output "出力シート";
	obj adrbook = "電話帳";
	obj phone = "電話";
	obj phonesub = "電話サブ";

	adrbook.sync("ユーザー操作 発信","成功"){
		cf("alt","電話!=NULL"){
			phone.create("<<create>>","true");
		elcf("else");
			phone.create("<<create>>","!NULL or NULL");
			cf("opt","create=NULL"){
				phone.space("フェータル処理");
			};
		};

		ref ref1("発信処理",phone,phonesub);
		ref1.sync("発信要求","true"){
		};
	};

	adrbook.sync("ユーザー操作 終了","成功"){
		phone.destroy("<<destroy>>","");
	};
};

sd("発信処理",1)
{
	output "出力シート";
	obj phone = "電話";
	obj phonesub = "電話サブ";

	phone.sync("発信要求","true"){
		phonesub.sync("発信サブ機能","成功"){
		};
	};
};

構文構造

シーケンス図

 

 

 

Copyright (C) 2011 Excelのオートシェープでシーケンス図を描く All Rights Reserved.