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

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

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

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

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 Ϧʔμʔͷਓࣄൃྩ೔͕ೖྗ͞Ε͍ͯͳ͍
 γεςϜ͸ɺ”ਓࣄൃྩ೔͸ඞਢೖྗͰ͢”ϝοηʔδΛνʔϜొ࿥ը໘ʹදࣔ͢Δɻ