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

ユースケース駆動開発入門 (理論・実践編)

Avatar for s10myk4 s10myk4
March 26, 2018

ユースケース駆動開発入門 (理論・実践編)

社内勉強会のワークショップで使用した資料です

Avatar for s10myk4

s10myk4

March 26, 2018
Tweet

More Decks by s10myk4

Other Decks in Programming

Transcript

  1. ΞδΣϯμ • Ϣʔεέʔεۦಈ։ൃͱ͸ʁ • ICONIXͱ͸ʁ • ͳͥϢʔεέʔεۦಈ։ൃ͕ඞཁͳͷ͔ʁ • Ϣʔεέʔεهड़ͷ໾ׂͱ͸ʁ •

    ϩόετωε෼ੳͷ໾ׂͱ͸ʁ • શମͷྲྀΕΛΠϝʔδ͢Δ • ݱঢ়ͷ՝୊ • ·ͱΊ • Ͳ͏΍ͬͯॻ͘ͷʁ ~ೖ໳ฤ~ • Ϣʔεέʔεهड़ • ॻ͖ํ/ϙΠϯτ • ԋश • ϩόετωεਤ • ॻ͖ํ/ϙΠϯτ • ԋश • HaKaSeͰͷ۩ମతͳ࣮ફྫ • ಋೖ͢Δ্Ͱߟ͑Δ͜ͱ ཧ࿦ฤ ࣮ફฤ
  2. ICONIXϓϩηεͱ͸ʁ • ཁٻ • ػೳཁٻ • υϝΠϯϞσϦϯά • ৼΔ෣͍ཁٻ •

    ཁٻϨϏϡʔ • ෼ੳ/༧උઃܭ • ϩόετωε෼ੳ • Ϣʔεέʔεهड़Λߋ৽ / υϝΠϯϞσϧΛߋ৽ • ༧උઃܭϨϏϡʔ • ৄࡉઃܭ • γʔέϯεਤɺ੩తϞσϧߋ৽(Ϋϥεਤ) • ࣮૷ ίʔυ/ςετ
  3. ݱঢ়ͷ՝୊ • ීஈϦʔμʔ͕ઃܭͷٞ࿦Λओಋ͍ͯͯ͠ɺ൴͕͍ͳ͍ͱಉ͡඼࣭ͷΞ΢τϓο τ͕Ͱ͖ͳ͍ɻ • ઃܭΛϝΠϯͰߟ͑ͯͳ͍ਓ͕࣮૷͢ΔͱϨϏϡʔ͕ߥΕͨΓɺग़໭Γ͕ൃੜ • ػೳཁٻΛ෼ੳͤͣʹ࣮૷ͯ͠ɺཁٻͱҧ͏΋ͷ͕Ͱ͖ͨɻ • ౷߹ςετͰཁ݅࿙Ε/ؒҧ͍ʹؾͮ͘ɻ·ͨ͸ؾ͔ͮͳ͍ɻ

    • ౷߹ςετΛߦ͏λΠϛϯάͰςετέʔεΛॻ͖ى͜͠ɺେٱอ͘Μ͕ඃࡂ ͨ͠ • ͨ·ʹϓϧϦͷϨϏϡʔͰϞσϦϯάͷ࿩ͯͯ͠ɺܰ͘Ԍ্ͯ͠Δ • ৽ਓʹΦϒδΣΫτࢦ޲Λ࣮ફͰ͖ΔΑ͏ʹڭҭ͢Δͷ೉͍͠
  4. ↓ ԾͷυϝΠϯϞσϧ ↓ GUIϞοΫΞοϓ ↓ ॳ൛ͷϢʔεέʔεهड़ ↓ ଐੑ(ό΢ϯμϦɺΤϯςΟςΟɺίϯτϩʔϥ)Λ໌֬Խ ↓ ϩόετωεਤΛ࡞੒/෼ੳ

    ↓ ෆ໌ྎͳ෦෼ΛͲΜͲΜमਖ਼ Ϣʔεέʔεهड़ͱϩόετωεਤΛҰகͤ͞Δ ↓ ཁٻΛ࣮ݱ͢Δํ๏Λ໌֬Խ / ΦϒδΣΫτϞσϧͱৼΔ෣͍ཁٻ Λؔ࿈෇͚Δ
  5. GUIϓϩτλΠϓɺը໘ϞοΫΞοϓΛ ࢖͏΂͠ • ͩ͜ΘΓ͗͢Δͳ(look & feel) • ϝϦοτ • γεςϜڥք͕໌ࣔ͞Ε͍ͯΔͷͰɺϢʔεέʔεهड़Λ

    ߦ͍΍͍͢ • UIͷό΢ϯμϦɺγεςϜͷΠϕϯτ(xxը໘Λදࣔ͢ Δ)ɺϢʔβʔԠ౴(xxը໘ͷhogeϘλϯΛΫϦοΫ͢Δ) Λଊ͑Δ্ͰޮՌత
  6. جຊίʔε: • γεςϜ͸ɺϩάΠϯը໘Λදࣔ͢Δɻ • Ϣʔβʔ͸ɺϝʔϧΞυϨεͱύεϫʔυΛೖྗ͠ϩάΠϯϘλϯΛΫϦο Ϋ͢Δɻ • γεςϜ͸ɺϝʔϧΞυϨεΛݩʹର৅ͷϢʔβʔΞΧ΢ϯτ͕ଘࡏ͢Δ ͔֬ೝ͢Δɻ •

    ଘࡏ͢Δ৔߹͸ϢʔβʔΞΧ΢ϯτΛऔಘ͢Δɻ • γεςϜ͸ɺϢʔβʔΞΧ΢ϯτͷύεϫʔυͱೖྗ͞Εͨύεϫʔυ͕ Ұக͍ͯ͠Δ͔֬ೝ͢Δɻ • γεςϜ͸ɺ֘౰ͷϢʔβʔΞΧ΢ϯτͷೝূͨ͠ηογϣϯΛ։࢝͢Δ • γεςϜ͸ɺXXը໘Λදࣔ͠ɺϩάΠϯʹ੒ޭ͠·ͨ͠ͱϝοηʔδΛ දࣔ͢Δɻ
  7. جຊίʔε: • Ϣʔβʔ͸ɺදࣔ͞Ε͍ͯΔҿ৯ళͷϨϏϡʔϘλϯΛΫϦο Ϋ͢Δɻ • γεςϜ͸ɺϨϏϡʔ౤ߘը໘Λදࣔ͢Δɻ • Ϣʔβʔ͸ɺҿ৯ళධՁΛ5ஈ֊͔Βબ୒͠ɺҿ৯ళϨϏϡʔ ίϝϯτΛೖྗ͠ɺ׬ྃϘλϯΛΫϦοΫ͢Δɻ •

    γεςϜ͸ɺҿ৯ళϨϏϡʔίϝϯτ͕400จࣈҎ಺͔ɺҿ৯ ళධՁ͕બ୒͞Ε͍ͯΔ͔Λ֬ೝ͢Δɻ • γεςϜ͸ɺҿ৯ళϨϏϡʔΛอଘ͢Δɻ • γεςϜ͸ɺҿ৯ళϨϏϡʔ౤ߘ׬ྃը໘Λදࣔ͢Δɻ
  8. ୅ସίʔε: • Ϣʔβʔ͕ϩάΠϯͯ͠ͳ͍ • γεςϜ͸ɺϨϏϡʔ౤ߘը໘͔ΒϦμΠϨΫτͯ͠ϩάΠϯը໘Λදࣔ͢Δ • ϩάΠϯ͕੒ޭͨ͠ΒɺγεςϜ͸ϨϏϡʔ౤ߘը໘Λදࣔ͢Δɻ
 • ҿ৯ళϨϏϡʔίϝϯτ͕400จࣈҎ্ •

    γεςϜ͸ɺҿ৯ళϨϏϡʔ͕400จࣈҎ্Ͱෆਖ਼ͱ͍͏ϝοηʔδΛҿ৯ళ ϨϏϡʔը໘ʹදࣔ͢Δɻ
 • ҿ৯ళධՁ͕બ୒͞Ε͍ͯͳ͍ • γεςϜ͸ɺҿ৯ళධՁ͕ෆਖ਼ͱ͍͏ϝοηʔδΛҿ৯ళϨϏϡʔը໘ʹදࣔ ͢Δɻ
  9. ୅ସίʔεɿ • ࿑຿୲౰ऀ͕ϩάΠϯͯ͠ͳ͍
 γεςϜ͸ɺνʔϜొ࿥ը໘͔ΒϦμΠϨΫτͯ͠ϩάΠϯը໘Λදࣔ͢Δɻ
 ϩάΠϯ͕੒ޭͨ͠ΒɺγεςϜ͸νʔϜొ࿥ը໘Λදࣔ͢Δɻ • νʔϜ໊͕ॏෳ
 γεςϜ͸ɺ”ೖྗ͞ΕͨνʔϜ໊͸͢Ͱʹར༻͞Ε͍ͯͯઃఆͰ͖·ͤ Μ”ϝοηʔδΛνʔϜొ࿥ը໘ʹදࣔ͢Δɻ •

    νʔϜ໊͕ೖྗ͞Εͯͳ͍
 γεςϜ͸ɺ”νʔϜ໊͸ඞਢೖྗͰ͢”ϝοηʔδΛνʔϜొ࿥ը໘ʹද ࣔ͢Δɻ • Ϧʔμʔ͕બ୒͞Ε͍ͯͳ͍
 γεςϜ͸ɺ”ϦʔμʔΛ1ਓબ୒͍ͯͩ͘͠͞”ϝοηʔδΛνʔϜొ࿥ը ໘ʹදࣔ͢Δɻ
  10. جຊίʔεɿ γεςϜ͸ɺνʔϜొ࿥ը໘Λදࣔ͢Δɻ ࿑຿୲౰ऀ͸ɺνʔϜ໊Λೖྗ͢Δɻ invoke → ࿑຿୲౰ऀ͸ɺࣾһΛݕࡧͰ͖Δ ࿑຿୲౰ऀ͸ɺࣾһҰཡ͔ΒϝϯόʔΛબ୒͢Δɻ ࿑຿୲౰ऀ͸ɺࣾһҰཡ͔ΒϦʔμʔΛબ୒͢Δɻ ࿑຿୲౰ऀ͸ɺ࣍΁ϘλϯΛΫϦοΫ͢Δɻ γεςϜ͸ɺਓࣄൃྩ೔ઃఆը໘Λදࣔ͢Δɻ

    ࿑຿୲౰ऀ͸ɺ֤ϝϯόʔͱϦʔμʔʹਓࣄൃྩ೔Λೖྗ͠ɺOKϘλϯΛΫϦοΫ͢Δɻ γεςϜ͸ɺϝϯόʔ͕2ਓҎ্͔Λ֬ೝ͢Δɻ γεςϜ͸ɺϦʔμʔ͕1ਓͰ͋Δ͔Λ֬ೝ͢Δɻ γεςϜ͸ɺϦʔμʔ͸ɺϝϯόʔʹબ୒͞Ε͍ͯͳ͍͔Λ֬ೝ͢Δɻ γεςϜ͸ɺνʔϜΛ࡞੒͠ɺอଘ͢Δɻ γεςϜ͸ɺ"νʔϜͷొ࿥ʹ੒ޭ͠·ͨ͠"ϝοηʔδΛSnackbarͰը໘ʹදࣔ͢Δɻ γεςϜ͸ɺ̑ඵޙνʔϜҰཡը໘Λදࣔ͢Δɻ
  11. ୅ସίʔεɿ • ࿑຿୲౰ऀ͕ϩάΠϯͯ͠ͳ͍
 γεςϜ͸ɺνʔϜొ࿥ը໘͔ΒϦμΠϨΫτͯ͠ϩάΠϯը໘Λදࣔ͢Δɻ
 ϩάΠϯ͕੒ޭͨ͠ΒɺγεςϜ͸νʔϜొ࿥ը໘Λදࣔ͢Δɻ • νʔϜ໊͕ॏෳ
 γεςϜ͸ɺ”ೖྗ͞ΕͨνʔϜ໊͸͢Ͱʹར༻͞Ε͍ͯͯઃఆͰ͖·ͤΜ”ϝοηʔδΛνʔϜొ࿥ը໘ʹදࣔ͢Δɻ • νʔϜ໊͕ೖྗ͞Εͯͳ͍


    γεςϜ͸ɺ”νʔϜ໊͸ඞਢೖྗͰ͢”ϝοηʔδΛνʔϜొ࿥ը໘ʹදࣔ͢Δɻ • Ϧʔμʔ͕બ୒͞Ε͍ͯͳ͍
 γεςϜ͸ɺ”ϦʔμʔΛ1ਓબ୒͍ͯͩ͘͠͞”ϝοηʔδΛνʔϜొ࿥ը໘ʹදࣔ͢Δɻ • ϝϯόʔ͕બ୒͞Ε͍ͯͳ͍
 γεςϜ͸ɺ”ϝϯόʔΛ2ਓҎ্બ୒͍ͯͩ͘͠͞”ϝοηʔδΛνʔϜొ࿥ը໘ʹදࣔ͢Δɻ • ϝϯόʔʹબ୒͞Εͨਓ͕ɺϦʔμʔʹ΋બ୒͞Ε͍ͯΔ
 γεςϜ͸ɺ”ϝϯόʔʹબ୒͞ΕͨਓΛϦʔμʔʹબ୒Ͱ͖·ͤΜ”ϝοηʔδΛνʔϜొ࿥ը໘ʹදࣔ͢Δɻ • Ϧʔμʔ͕2ਓҎ্
 γεςϜ͸ɺ”νʔϜ಺ʹϦʔμʔ͸1ਓ͔͠ଘࡏͰ͖·ͤΜ”ϝοηʔδΛνʔϜొ࿥ը໘ʹදࣔ͢Δɻ • ϝϯόʔ͕2ਓະຬ
 γεςϜ͸ɺ”νʔϜʹ͸ϝϯόʔ͕2ਓҎ্ଘࡏ͢Δඞཁ͕͋Γ·͢”ϝοηʔδΛνʔϜొ࿥ը໘ʹදࣔ͢Δɻ • ϝϯόʔ or Ϧʔμʔͷਓࣄൃྩ೔͕ೖྗ͞Ε͍ͯͳ͍
 γεςϜ͸ɺ”ਓࣄൃྩ೔͸ඞਢೖྗͰ͢”ϝοηʔδΛνʔϜొ࿥ը໘ʹදࣔ͢Δɻ