Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,331 views

Published on

社内のLT大会で発表した形式仕様記述言語 Alloy の紹介

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

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

×