SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
君達はまだ
Alloyの
本当のすごさ
を知らない
2016/3/11 社内LT大会 #2
Hideki Sugimoto
いきなりですが…
形式仕様記述って知ってますか?
いきなりですが…
形式仕様記述って知ってますか?
形式仕様記述とは
– 形式手法のひとつで、何らのシステムなどについて、その性質などの
仕様を形式的に記述する手法や、そういった手法による仕様の
記述である。
– 形式的な仕様を与えることにより、対象システムが仕様に照らして
正しいかどうかを形式的に判定することが可能となる(形式的検証)。
また、仕様策定の工程で仕様の不整合を検出することが可能となり、
実装工程のような開発の後半での仕様不備発覚、それに伴う手戻り
を防ぐという利点がある。
– Wikipedia
» https://ja.wikipedia.org/wiki/%E5%BD%A2%E5%BC%8F%E4%BB%95%E6%A7
%98%E8%A8%98%E8%BF%B0
( ゚д゚)ポカーン
ですよねぇ^^
安心してください。
今日は難しいことは言いません。
Alloyを使って形式仕様記述に
ふれてみましょう!
ところで「Alloy」って?
• ソフトウェア設計のための仕様記述言語の1つ。
• 記述と実行、検証を行うGUIアプリケーション
(Javaアプリ)が「無償で」提供されています。
• 記述した仕様のとりうるパターンを「瞬時に」
解析します。
• 解析結果の「視覚化」が超便利!
ではさっそく
お題はみなさんご存知 「ショッピングカート」です
仕様
– ショッピングカートが複数存在する。
– カートに入れる商品も複数存在する。
– 1つのカートには複数の商品を出し入れできる。
– 1度に出し入れできる商品は1つ。
完璧ですね!
ではさっそく
お題はみなさんご存知 「ショッピングカート」です
仕様
– ショッピングカートが複数存在する。
– カートに入れる商品も複数存在する。
– 1つのカートには複数の商品を出し入れできる。
– 1度に出し入れできる商品は1つ。
完璧ですね!
検証
Alloyでこの仕様を定義し、視覚化してみます。
検証(1つめ)
2つのカートにそれぞれ商品が1つずつ
検証(2つめ)
1つの商品を2つのカートが共有してる!!
お題
「ショッピングカート」
仕様
– ショッピングカートが複数存在する
– カートに入れる商品も複数存在する
– 1つのカートに複数の商品を出し入れできる
– 1度に入れたり出したりできる商品は1つ
– 商品はある時点で1つのカートにしか追加できない
お題
「ショッピングカート」
仕様
– ショッピングカートが複数存在する
– カートに入れる商品も複数存在する
– 1つのカートに複数の商品を出し入れできる
– 1度に入れたり出したりできる商品は1つ
– 商品はある時点で1つのカートにしか追加できない
もうほかに仕様漏れはない?
検証(時間を考慮)
カート$1の商品$2を
カート$0が強奪!! 次のステップ
検証結果
「ショッピングカート」
仕様
– ショッピングカートが複数存在する
– カートに入れる商品も複数存在する
– 1つのカートに複数の商品を出し入れできる
– 1度に入れたり出したりできる商品は1つ
– 商品はある時点で1つのカートにしか追加できない
– 追加できる商品は他のカートに入っていないもの
2つの仕様不備が見つかった!
素晴らしいですね!
ちなみに
Alloyで今回のショッピングカートの仕様を表現すると…
ちなみに
Alloyで今回のショッピングカートの仕様を表現すると…
Σ(゚Д゚;)ゲゲッ
以上!!

Contenu connexe

En vedette

なれる!デザイナー(ロゴ作りから始めるデザイン入門)
なれる!デザイナー(ロゴ作りから始めるデザイン入門)なれる!デザイナー(ロゴ作りから始めるデザイン入門)
なれる!デザイナー(ロゴ作りから始めるデザイン入門)hiroki tanaka
 
マイナーデスクトップOsたち
マイナーデスクトップOsたちマイナーデスクトップOsたち
マイナーデスクトップOsたちMasaki Matsumoto
 
なんちゃってIo tで朝活してみよう!
なんちゃってIo tで朝活してみよう!なんちゃってIo tで朝活してみよう!
なんちゃってIo tで朝活してみよう!Kazuhiko Kurimura
 
ぜんぶScalaでやってみた
ぜんぶScalaでやってみたぜんぶScalaでやってみた
ぜんぶScalaでやってみた力世 山本
 
IoTでアヒルを動かしてみました
IoTでアヒルを動かしてみましたIoTでアヒルを動かしてみました
IoTでアヒルを動かしてみましたKota Takebayashi
 
社内LT大会#3 2016-4-28 Vuls
社内LT大会#3 2016-4-28 Vuls社内LT大会#3 2016-4-28 Vuls
社内LT大会#3 2016-4-28 VulsKota Kanbe
 
競プロ、なんでお前たちやらないの?
競プロ、なんでお前たちやらないの?競プロ、なんでお前たちやらないの?
競プロ、なんでお前たちやらないの?Shota Tsukamoto
 
GISについてのお話
GISについてのお話GISについてのお話
GISについてのお話futureotsuka
 
未来太郎と未来花子
未来太郎と未来花子未来太郎と未来花子
未来太郎と未来花子ming li
 
Seleniumのモバイル版「Appium」を使ってみた
Seleniumのモバイル版「Appium」を使ってみたSeleniumのモバイル版「Appium」を使ってみた
Seleniumのモバイル版「Appium」を使ってみたyamapy black
 
AI(強化学習)でロボットに学習させてみた
AI(強化学習)でロボットに学習させてみたAI(強化学習)でロボットに学習させてみた
AI(強化学習)でロボットに学習させてみたakmtt
 
Spring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなしSpring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなしSatoshi Kisanuki
 
ログモニタリングツールを自作した話
ログモニタリングツールを自作した話ログモニタリングツールを自作した話
ログモニタリングツールを自作した話Hiroki Takeda
 

En vedette (20)

なれる!デザイナー(ロゴ作りから始めるデザイン入門)
なれる!デザイナー(ロゴ作りから始めるデザイン入門)なれる!デザイナー(ロゴ作りから始めるデザイン入門)
なれる!デザイナー(ロゴ作りから始めるデザイン入門)
 
マイナーデスクトップOsたち
マイナーデスクトップOsたちマイナーデスクトップOsたち
マイナーデスクトップOsたち
 
なんちゃってIo tで朝活してみよう!
なんちゃってIo tで朝活してみよう!なんちゃってIo tで朝活してみよう!
なんちゃってIo tで朝活してみよう!
 
ぜんぶScalaでやってみた
ぜんぶScalaでやってみたぜんぶScalaでやってみた
ぜんぶScalaでやってみた
 
IoTでアヒルを動かしてみました
IoTでアヒルを動かしてみましたIoTでアヒルを動かしてみました
IoTでアヒルを動かしてみました
 
社内LT大会#3 2016-4-28 Vuls
社内LT大会#3 2016-4-28 Vuls社内LT大会#3 2016-4-28 Vuls
社内LT大会#3 2016-4-28 Vuls
 
競プロ、なんでお前たちやらないの?
競プロ、なんでお前たちやらないの?競プロ、なんでお前たちやらないの?
競プロ、なんでお前たちやらないの?
 
GISについてのお話
GISについてのお話GISについてのお話
GISについてのお話
 
20161119 lt
20161119 lt20161119 lt
20161119 lt
 
未来太郎と未来花子
未来太郎と未来花子未来太郎と未来花子
未来太郎と未来花子
 
Spark CL
Spark CLSpark CL
Spark CL
 
Seleniumのモバイル版「Appium」を使ってみた
Seleniumのモバイル版「Appium」を使ってみたSeleniumのモバイル版「Appium」を使ってみた
Seleniumのモバイル版「Appium」を使ってみた
 
AI(強化学習)でロボットに学習させてみた
AI(強化学習)でロボットに学習させてみたAI(強化学習)でロボットに学習させてみた
AI(強化学習)でロボットに学習させてみた
 
Spring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなしSpring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなし
 
Grep
GrepGrep
Grep
 
Future_Lt20160810
Future_Lt20160810Future_Lt20160810
Future_Lt20160810
 
20160810-lt-cygwin
20160810-lt-cygwin20160810-lt-cygwin
20160810-lt-cygwin
 
20160811車載
20160811車載20160811車載
20160811車載
 
こじらせVBA
こじらせVBAこじらせVBA
こじらせVBA
 
ログモニタリングツールを自作した話
ログモニタリングツールを自作した話ログモニタリングツールを自作した話
ログモニタリングツールを自作した話
 

Dernier

【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 

Dernier (9)

【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 

君達はまだAlloyの本当のすごさを知らない