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

仕様漏れ実装漏れをなくすトレーサビリティAI基盤のご紹介

 仕様漏れ実装漏れをなくすトレーサビリティAI基盤のご紹介

欠陥の少ない割合に仕様漏れや実装漏れを原因とするものがあります。これらを見つける技術はトレーサビリティと呼ばれます。コインチェック株式会社では Gemini を大規模に活用したトレーサビリティ基盤を運用しており、日々の進捗管理や漏れの早期発見、変更管理に活用しています。この発表ではコンテキストウィンドウの圧迫による生成AIの忘却を予防する仕組みや取り組みの成果をご紹介します。

https://jasst.jp/tokyo/26-about/

Avatar for Kuniwak

Kuniwak PRO

March 20, 2026
Tweet

More Decks by Kuniwak

Other Decks in Programming

Transcript

  1.  ੒Ռ෺Λཁૉͱ͠ɺ೿ੜઌͱ೿ੜݩΛลͰ݁ͿͱάϥϑΛ ߏ੒Ͱ͖·͢ɻ͜ΕΛ೿ੜؔ܎ͷάϥϑͱݺͼ·͢ɻ ໰୊" ໰୊# ໰୊$ ϢʔβʔετʔϦʔ" γʔέϯεਤ" ίϯϙʔωϯτ࢓༷" ໰୊ͷೝࣝ

    ཁٻఆٛॻ ࢓༷ॻ ઃܭॻ ࣮૷ ϢʔβʔετʔϦʔ# ϢʔβʔετʔϦʔ$ γʔέϯεਤ# γʔέϯεਤ$ ίϯϙʔωϯτ࢓༷# ίϯϙʔωϯτ࢓༷$ ςετέʔε" ςετέʔε ςετέʔε# ςετέʔε$ ίϯϙʔωϯτ࣮૷" ࣮૷ ίϯϙʔωϯτ࣮૷# ίϯϙʔωϯτ࣮૷$
  2.  ໰୊" ໰୊# ໰୊$ ϢʔβʔετʔϦʔ" γʔέϯεਤ" ίϯϙʔωϯτ࢓༷" ໰୊ͷೝࣝ ཁٻఆٛॻ ࢓༷ॻ

    ઃܭॻ ࣮૷ ϢʔβʔετʔϦʔ# ϢʔβʔετʔϦʔ$ γʔέϯεਤ# γʔέϯεਤ$ ίϯϙʔωϯτ࢓༷# ίϯϙʔωϯτ࢓༷$ ςετέʔε" ςετέʔε ςετέʔε# ςετέʔε$ ίϯϙʔωϯτ࣮૷" ࣮૷ ίϯϙʔωϯτ࣮૷# ίϯϙʔωϯτ࣮૷$ άϥϑΛ໼ҹͷํ޲΁ਐΉͱબ୒͞Εͨखஈ͕Θ͔Γɺ ໼ҹΛٯͷํ޲΁ḪΔͱཧ༝͕Θ͔Γ·͢ɻ
  3.  ໰୊" ໰୊# ໰୊$ ϢʔβʔετʔϦʔ" γʔέϯεਤ" ίϯϙʔωϯτ࢓༷" ໰୊ͷೝࣝ ཁٻఆٛॻ ࢓༷ॻ

    ઃܭॻ ࣮૷ ϢʔβʔετʔϦʔ# ϢʔβʔετʔϦʔ$ γʔέϯεਤ# γʔέϯεਤ$ ίϯϙʔωϯτ࢓༷# ίϯϙʔωϯτ࢓༷$ ςετέʔε" ςετέʔε ςετέʔε# ςετέʔε$ ίϯϙʔωϯτ࣮૷" ࣮૷ ίϯϙʔωϯτ࣮૷# ίϯϙʔωϯτ࣮૷$ ೿ੜݩͱ೿ੜઌ͸ͷؔ܎ʹͳΔͱ͸ݶΓ·ͤΜɻ ໨త͸ෳ਺͋Δ͜ͱ͕͋Γɺखஈ΋ෳ਺͋Δ͜ͱ͕͋Γ·͢ɻ
  4. ೿ੜઌ͕ଘࡏ͠ͳ͍  1 ໰୊" ໰୊# ໰୊$ ϢʔβʔετʔϦʔ" γʔέϯεਤ" ίϯϙʔωϯτ࢓༷" ໰୊ͷೝࣝ

    ཁٻఆٛॻ ࢓༷ॻ ઃܭॻ ࣮૷ ϢʔβʔετʔϦʔ# ϢʔβʔετʔϦʔ$ γʔέϯεਤ# γʔέϯεਤ$ ίϯϙʔωϯτ࢓༷# ίϯϙʔωϯτ࢓༷$ ςετέʔε" ςετέʔε ςετέʔε# ςετέʔε$ ίϯϙʔωϯτ࣮૷" ࣮૷ ίϯϙʔωϯτ࣮૷# ίϯϙʔωϯτ࣮૷$ ࣮ݱ͞Ε͍ͯͳ͍ɺߟྀ͔Β࿙Ε͍ͯΔͱ͍͏͜ͱͰ͢ɻ
  5.  ໰୊" ໰୊# ໰୊$ ϢʔβʔετʔϦʔ" γʔέϯεਤ" ίϯϙʔωϯτ࢓༷" ໰୊ͷೝࣝ ཁٻఆٛॻ ࢓༷ॻ

    ઃܭॻ ࣮૷ ϢʔβʔετʔϦʔ# ϢʔβʔετʔϦʔ$ γʔέϯεਤ# γʔέϯεਤ$ ίϯϙʔωϯτ࢓༷# ίϯϙʔωϯτ࢓༷$ ςετέʔε" ςετέʔε ςετέʔε# ςετέʔε$ ίϯϙʔωϯτ࣮૷" ࣮૷ ίϯϙʔωϯτ࣮૷# ίϯϙʔωϯτ࣮૷$ ೿ੜઌ͕ଘࡏ͠ͳ͍ ϢʔβʔετʔϦʔ#͸Ͳͷγʔέϯεਤʹ΋೿ੜ͠ͳ͍ͨΊ࢓༷࿙Εɻ 1
  6. ೿ੜઌ͕ଘࡏ͠ͳ͍  1 ໰୊" ໰୊# ໰୊$ ϢʔβʔετʔϦʔ" γʔέϯεਤ" ίϯϙʔωϯτ࢓༷" ໰୊ͷೝࣝ

    ཁٻఆٛॻ ࢓༷ॻ ઃܭॻ ࣮૷ ϢʔβʔετʔϦʔ# ϢʔβʔετʔϦʔ$ γʔέϯεਤ# γʔέϯεਤ$ ίϯϙʔωϯτ࢓༷# ίϯϙʔωϯτ࢓༷$ ςετέʔε" ςετέʔε ςετέʔε# ςετέʔε$ ίϯϙʔωϯτ࣮૷" ࣮૷ ίϯϙʔωϯτ࣮૷# ίϯϙʔωϯτ࣮૷$ ίϯϙʔωϯτ࢓༷$΋೿ੜઌ͕ͳ͍ͨΊ࣮૷࿙Εɻ
  7. ೿ੜݩ͕ଘࡏ͠ͳ͍  1 ໰୊" ໰୊# ໰୊$ ϢʔβʔετʔϦʔ" γʔέϯεਤ" ίϯϙʔωϯτ࢓༷" ໰୊ͷೝࣝ

    ཁٻఆٛॻ ࢓༷ॻ ઃܭॻ ࣮૷ ϢʔβʔετʔϦʔ# ϢʔβʔετʔϦʔ$ γʔέϯεਤ# γʔέϯεਤ$ ίϯϙʔωϯτ࢓༷# ίϯϙʔωϯτ࢓༷$ ςετέʔε" ςετέʔε ςετέʔε# ςετέʔε$ ίϯϙʔωϯτ࣮૷" ࣮૷ ίϯϙʔωϯτ࣮૷# ίϯϙʔωϯτ࣮૷$ ೿ੜઌ੒Ռ෺ͷཧ༝Λઆ໌Ͱ͖·ͤΜɻయܕతʹ͸ෆཁͳ੒Ռ෺Ͱ͢ɻ
  8. ೿ੜݩ͕ଘࡏ͠ͳ͍  1 ໰୊" ໰୊# ໰୊$ ϢʔβʔετʔϦʔ" γʔέϯεਤ" ίϯϙʔωϯτ࢓༷" ໰୊ͷೝࣝ

    ཁٻఆٛॻ ࢓༷ॻ ઃܭॻ ࣮૷ ϢʔβʔετʔϦʔ# ϢʔβʔετʔϦʔ$ γʔέϯεਤ# γʔέϯεਤ$ ίϯϙʔωϯτ࢓༷# ίϯϙʔωϯτ࢓༷$ ςετέʔε" ςετέʔε ςετέʔε# ςετέʔε$ ίϯϙʔωϯτ࣮૷" ࣮૷ ίϯϙʔωϯτ࣮૷# ίϯϙʔωϯτ࣮૷$ Ͳ͏ͯ͜͠ͷςετέʔε͕͋ΔͷʁΛઆ໌Ͱ͖·ͤΜɻ
  9.  1 ೿ੜݩ੒Ռ෺ͷߏ੒ཁૉʹ*%Λ͚ͭΔ ࣗൢػͷ׆ੑ ࣗൢػʹചΓ੾ΕͰ͸ͳ͍੡඼"ͷ Ձ֨ΑΓ૯ֹ͕ଟ͘ͳΔΑ͏ʹ՟ฎΛ ౤ೖ͢Δͱ੡඼"͕ߪೖՄೳʹͳΓɺ ͔ͭ͜ͷͱ͖੡඼"ͷϘλϯΛԡԼ͢Δͱ ੡඼"ΛऔΓग़͠ޱ͔Βड͚औΕΔɻ ࣗൢػͷ҆શੑ

    ࣗൢػʹ౤ೖ͞Ε͍ͯΔ՟ฎͷ૯ֹΑΓ Ձ֨ͷߴ͍͢΂ͯͷ੡඼͸ߪೖՄೳʹ ͳΒͳ͍ɻ ࣗൢػͷ׆ੑʢ&9".1-&3&2ʣ ࣗൢػʹചΓ੾ΕͰ͸ͳ͍੡඼"ͷ Ձ֨ΑΓ૯ֹ͕ଟ͘ͳΔΑ͏ʹ՟ฎΛ ౤ೖ͢Δͱ੡඼"͕ߪೖՄೳʹͳΓɺ ͔ͭ͜ͷͱ͖੡඼"ͷϘλϯΛԡԼ͢Δͱ ੡඼"ΛऔΓग़͠ޱ͔Βड͚औΕΔɻ ࣗൢػͷ҆શੑʢ&9".1-&3&2ʣ ࣗൢػʹ౤ೖ͞Ε͍ͯΔ՟ฎͷ૯ֹΑΓ Ձ֨ͷߴ͍͢΂ͯͷ੡඼͸ߪೖՄೳʹ ͳΒͳ͍ɻ
  10.  ࣗൢػͷ׆ੑʢ&9".1-&3&2ʣ ࣗൢػʹചΓ੾ΕͰ͸ͳ͍੡඼"ͷ Ձ֨ΑΓ૯ֹ͕ଟ͘ͳΔΑ͏ʹ՟ฎΛ ౤ೖ͢Δͱ੡඼"͕ߪೖՄೳʹͳΓɺ ͔ͭ͜ͷͱ͖੡඼"ͷϘλϯΛԡԼ͢Δͱ ੡඼"ΛऔΓग़͠ޱ͔Βड͚औΕΔɻ ࣗൢػͷ҆શੑʢ&9".1-&3&2ʣ ࣗൢػʹ౤ೖ͞Ε͍ͯΔ՟ฎͷ૯ֹΑΓ Ձ֨ͷߴ͍͢΂ͯͷ੡඼͸ߪೖՄೳʹ

    ͳΒͳ͍ɻ ࣗൢػͷ׆ੑʢ&9".1-&3&2ʣ ࣗൢػʹചΓ੾ΕͰ͸ͳ͍੡඼"ͷ Ձ֨ΑΓ૯ֹ͕ଟ͘ͳΔΑ͏ʹ՟ฎΛ ౤ೖ͢Δͱ੡඼"͕ߪೖՄೳʹͳΓɺ ͔ͭ͜ͷͱ͖੡඼"ͷϘλϯΛԡԼ͢Δͱ ੡඼"ΛऔΓग़͠ޱ͔Βड͚औΕΔɻ ࣗൢػͷ҆શੑʢ&9".1-&3&2ʣ ࣗൢػʹ౤ೖ͞Ε͍ͯΔ՟ฎͷ૯ֹΑΓ Ձ֨ͷߴ͍͢΂ͯͷ੡඼͸ߪೖՄೳʹ ͳΒͳ͍ɻ ೿ੜݩ੒Ռ෺Λ෼ղ͢Δ 2
  11.  *% ϢʔβʔετʔϦʔ &9".1-&64 9͸:Ͱ͖Δ &9".1-&64  &9".1-&64  *%

    ϢʔβʔετʔϦʔ &9".1-&64 9͸:Ͱ͖Δ ೿ੜݩ੒Ռ෺Λ෼ղ͢Δ 2 *% ϢʔβʔετʔϦʔ &9".1-&64  *% ϢʔβʔετʔϦʔ &9".1-&64 
  12. { "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "RelevanceResult", "type": "object", "additionalProperties": false, "required":

    ["relevance", "reason"], "properties": { "relevance": { "type": "number", "description": "派生元のセクションの内容と派生先のセクションに関連度に 応じた0、0.25、0.5、1.0のいずれかの浮動小数点数。0は無関係、0.25は主要では ない部分に関係がある、0.5は主要部分に関係がある、1.0は全体にわたって関係がある" }, "reason": { "type": "string", "description": "そう判断した理由。", "minLength": 1 } } } +40 /  4DIFN B
  13. { "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "ViolationsResult", "type": "object", "additionalProperties": false, "required":

    ["violations", "reason"], "properties": { "violations": { "type": "string", "description": "ユーザーストーリー内で使用される機能のうち、機能の概要に 記述されていないもの。ユーザーストーリーがシステムに関与しない場合、空文字列。" }, "reason": { "type": "string", "description": "そう判断した理由。", "minLength": 1 } } } +40 /  4DIFN B
  14. { "violations": "", "reason": "ユーザーストーリー「X したい」は、 機能 Y、機能 Z など、様々な機能の実行フローが

    シーケンス図で詳細に定義されています。また、A、B、C、に 関する業務要件も含まれており、ユーザーストーリーの意図が 十分に実現されていると判断しました。" } --.  ͔ Β ͷ Ԡ ౴