Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DeNA SWETでのインターンシップについて【DeNA TechCon 2023】

DeNA SWETでのインターンシップについて【DeNA TechCon 2023】

youtube:https://youtu.be/-Hajlh9LMf4

概要:
DeNA TechCon 2021 Winter での Lightning Talks です。

◆ You Tube チャンネル登録はこちら↓
https://youtube.com/c/denatech?sub_confirmation=1

◆ Twitter
https://twitter.com/DeNAxTech

◆ DeNA Engineering
https://engineering.dena.com/

◆ DeNA Engineer Blog
https://engineering.dena.com/blog/

◆ DeNA TechCon 2022 公式サイト
https://techcon2022.dena.dev/spring/

DeNA_Tech

March 06, 2023
Tweet

More Decks by DeNA_Tech

Other Decks in Technology

Transcript

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide