Slide 1

Slide 1 text

DeNA SWETでの インターンシップについて 品質本部品質管理部SWET第一グループ 中村 碧維

Slide 2

Slide 2 text

2 自己紹介 ● 中村碧維(なかむら あおい) ● 現在は大学四年生 ● SWETでインターンシップ中 ● 四月からDeNAへ新卒入社予定

Slide 3

Slide 3 text

今回の発表で話すこと 今回の発表では インターンシップを行なったSWETがどのような組織か伝えるために ● SWETのミッションや概要 について話し、SWETでのインターンシップがどのようなものか伝えるために ● SWETでどのようにインターンシップを進めたか ● インターンシップでどのような成果物を作成したか について話します。 3

Slide 4

Slide 4 text

SWETとは DeNA SWETとは、ソフトウェアテストを起点とした「DeNAサービス全般の品質向上」と「DeNAエンジニアの開発生産 性向上」をミッションとしているチーム。 特にSWET第一グループは、形式的に仕様を記述することにより仕様書に起因する問題を早期に発見し、解決できるよう にすることを目的としている。 仕様書に起因する問題を早期に発見できると... → 実装やテスト後からの手戻りが少なくなる → 開発効率アップ! 4

Slide 5

Slide 5 text

SWETでのインターンシップの進め方 SWETではインターンシップを進めるにあたって、PFD(Process Flow Diagram)を活用している。 PFDとは作業の流れを定義し、可視化するツール   → 作業の流れについて認識を揃えることができる → 進捗の共有が容易などのメリット 「プロセス」「成果物」「フロー」という3つの概念を用いて作業の流れを記述 5

Slide 6

Slide 6 text

PFDを用いたタスクの定義 インターンシップで行う作業の内容をPFDを用いて定義した。 図は作業内容をPFDを用いて定義したもの。 P1.3「CSPの実装」の作業内容はさらに詳細に、別のPFDに切り分けて定義している 6

Slide 7

Slide 7 text

成果物の紹介 CSP(Communicating Sequential Processes)をベースにモデリングするためのシステムを開発した。 CSPとは相互作用する複数のプロセスの振る舞いについての理論である。 モデリングとは、システムの振る舞いを抽象的に表現した「モデル」を作成することである。 モデリングする範囲を限定すれば実装に比べて低コスト → 実装前に行うことで、実装することなく動作を確認することができる。 今回開発したシステムには次のようなものが含まれる。 ● OCamlの型によるCSPの表現 (F1.2) ● ユーザが対話形式によりプロセスの動作を確認するためのシミュレータ (F1.4) ● CSPの表現を扱うためのインターフェース (F1.5) 型定義とインターフェースによりモデリングし、シミュレータによりモデルの動作確認をする。 7

Slide 8

Slide 8 text

8 成果物の実行例 自動販売機の振る舞いをモデリングし、シミュレート することを考える。 自動販売機は図のように振る舞うものとする。 coinを入れてからteaかcoffeeを選択して購入。 購入後は初期状態vmiへ戻る。

Slide 9

Slide 9 text

9 成果物の実行例 自動販売機の振る舞いはCSPで次のように記述できる。 vmi = coin → (tea → vmi) □ (coffee → vmi) □ はcoffeeかteaかの(外からの)選択(外部選択) a → Pはイベントaが起こったあとPという動作をすることを 表す(Prefix) 例として coin → Pはcoinを入れたあとPという動作をするこ とを表している。 CSPの記述をベースに、OCamlでの型定義とインターフェー スを用いて図のようにモデリングすることができる。

Slide 10

Slide 10 text

10 成果物の実行例 シミュレータを用いてモデルを動作させてみる。 → がPrefix, |*| が外部選択に対応 coinを入力してcoffee(tea)を入力すると初期状態に 戻っていることがわかる。 → 想定していた動作をすることが(システムを実装す ることなく)確認できた。 (ユーザの入力) (ユーザの入力) (ユーザの入力) (ユーザの入力)

Slide 11

Slide 11 text

まとめ ● SWET第一グループでインターンシップに取り組んだ。 ● SWET第一グループでは、PFDを活用して作業内容を定義している。 ● 成果物としてCSPのOCamlでの表現、シミュレータ、インターフェースを作成した。 インターンシップを行なって... ● PFDが非常に便利だと感じた。正社員としてこれから働く際も活用していきたい。 ● モデリングは実際のシステム開発で手戻りを防ぐのに幅広く活用できそう。 ● 自分で書いたシミュレータを用いて実際にプロセスの動作をシミュレートするのは楽しい。 参考文献 ● 並行システムの検証と実装 (磯部 祥尚 著) 11

Slide 12

Slide 12 text

ご清聴ありがとうございました 12