Slide 1

Slide 1 text

UMLͳΜͯ ࠓߋॻ͘ඞཁͳ͍ͱࢥ͍ͬͯͨ… Scrum Fest Kanazawa 2024 ΫϦΤʔγϣϯϥΠϯɹ໼ాਐ೭հ 1

Slide 2

Slide 2 text

ࣗݾ঺հ { ँࡑ: “جௐߨԋͷԻ੠τϥϒϧͷݪҼ͸ࢲͰ͢ɻਃ͠༁͋Γ·ͤΜͰͨ͠ɻ”, ໊લ: {࿨໊: ໼ాɹਐ೭հ, ϩʔϚࣈ: Yata Shinnosuke, X: @yatakeke”}, ॅॴ: [“ࡾՏ”, “ࡳຈ”, “ߔͷޱ”, “ֶܳେֶ”, “ࡾՏ”, ”ྲྀࢁ”], ձࣾ: “ΫϦΤʔγϣϯϥΠϯגࣜձࣾ”, ৬ۀ: [“σʔλαΠΤϯςΟετ”, “ΞϓϦέʔγϣϯΤϯδχΞ”], ݴޠ: {Python: “8೥”, JavaScript: “3೥”, Java: “2೥”}, ڵຯ: [“ϖΞɾϞϒϓϩ”, “ϦϑΝΫλϦϯά”, “ΦϒδΣΫτࢦ޲”, “ܶஂCL”], ෆ҆: “ΦϒδΣΫτࢦ޲ք۾ͷਓͨͪɺා͍͔ΒԌ্͠ͳ͍͔ͳ…” } 2

Slide 3

Slide 3 text

νΣοΫΠϯ 3 ※ϗςϧͷνΣοΫΠϯͰ͸͋Γ·ͤΜ UnsplashͷMar Ko͕ࡱӨͨࣸ͠ਅ

Slide 4

Slide 4 text

Q1. UMLΛ࢖͍ͬͯ·͔͢ʁ 1. ଘࡏ͸஌͍ͬͯΔ͚Ͳ΄ͱΜͲ࢖ͬͨ͜ͱ͸ͳ͍ 2. աڈʹ࢖ͬͨ͜ͱ͕͋Δ͚Ͳɺࠓ͸࢖͍ͬͯͳ͍ 3. ͹Γ͹Γ࣮ۀ຿Ͱ࢖͍ͬͯΔ 4

Slide 5

Slide 5 text

Q2. Ͳ͏΍ͬͯઃܭ͍ͯ͠·͔͢ʁ 1. ࣮૷͠ͳ͕ΒઃܭΛߟ͑Δ 2. ॳख࣮૷ʂԾ࣮૷Λͨ͠Β࠶ઃܭ࣮ͯ͠૷͢Δ 3. ιʔείʔυΛݟͳ͕ΒɺϝϞͱ͔ʹॻ͖ग़͢ 4. UMLͱ͔ΫϥεਤΛॻ͍ͯϞσϦϯά͍ͯ͠Δ 5. ্هҎ֎ͷԿ͔ 5

Slide 6

Slide 6 text

͜ͷηογϣϯʹ͍ͭͯ λʔήοτͱΞ΢τΧϜ • ීஈɺ։ൃͰUMLΛ࢖͍ͬͯͳ͍ਓ͕UMLΛॻ͖࢝ΊΔɻ • ීஈɺ࣮૷͠ͳ͕Βઃܭ͍ͯͨ͠ਓ͕ϞσϦϯάͷੈք΁Ұา౿Έͩ͢ɻ ࿩͞ͳ͍͜ͱ • ͋͘·Ͱ΋ࣗ෼ͷܦݧஊͳͷͰɺ٬؍తࣄ࣮ͱֶज़తͳ஌ݟͰ͸ͳ͍ • UMLͱݴͬͯ΋ɺجຊతʹclass diagramͷ࿩͔͠͠·ͤΜ 6

Slide 7

Slide 7 text

ΞδΣϯμ • νΣοΫΠϯ • Ҏલ·ͰͷUMLͷΠϝʔδͱࣗ෼ͷ࣮૷ελΠϧ • UMLΛॻ͖࢝ΊΔ͖͔͚ͬ • UMLͱϞσϦϯάͷੈք΁଍Λ౿ΈೖΕΔ • ΍ͬͯΈͯΘ͔ͬͨ͜ͱ • νΣοΫΞ΢τ 7

Slide 8

Slide 8 text

Ҏલ·ͰͷUMLͷΠϝʔδͱ ࣗ෼ͷ։ൃελΠϧ 8

Slide 9

Slide 9 text

UML࢖͍ͬͯ·͔͢ʁˠ Ҏલ͸1Ͱͨ͠ ଘࡏ͸஌͍ͬͯΔ͚Ͳ΄΅࢖ͬͨ͜ͱ͕ͳ͔ͬͨ • ϦϦʔεલ΍ೲ඼લͳͲͷ۠੾ΓͰॻ͚͘Ͳ݁ہಡ·Εͳ͍ҹ৅ • ໼ҹͷछྨʢू໿/Ҡৡ/ܧঝʣͱ͔ه๏͕֮͑ΒΕͳ͍ • Ұ౓͚ͩɺGoogle Drive ͷdraw.ioΛ࢖ͬͨ͜ͱ͸͋Δ͕… • ϖΞϞϒϓϩͰ࣮૷͠ͳ͕Βઃܭ͍ͯ͠ΔͷͰඞཁੑΛײ͡ͳ͍ 9

Slide 10

Slide 10 text

Ͳ͏΍ͬͯઃܭʁˠ2ϝϞॻ͖+࣮૷த৺Ͱઃܭ ࣗ෼͕։ൃ͢Δ࣌ͷ͓͓·͔ͳྲྀΕ(TDDʹ͍ۙ) 1. ৽͘͠௥Ճ͍ͨ͠࢓༷Λཧղ͢Δ 2. ඞཁͳΫϥεΛ໊લఔ౓Ͱચ͍ग़͠ʢMiro΍௚઀ϑΝΠϧʹॻ͘ʣ 3. צͱܦݧͰϢχοτςετΛॻ͘ 4. ࣮૷͠ͳ͕ΒઃܭΛߟ͑ͯɺϦϑΝΫλϦϯάςΫΛۦ࢖͍ͯ͘͠ 10

Slide 11

Slide 11 text

ͳͥ͜ͷελΠϧʁ • ص্ͷٞ࿦Ͱઃܭ͢ΔΑΓ΋ίʔυΛॻ͖ͳ͕Βઃܭ͍ͯͬͨ͠ํ͕ ໌֬Ͱۭதઓ΋গͳͯ͘ɺ݁Ռతʹૣ͍ͱߟ͍͔͑ͯͨΒ • ϦϑΝΫλϦϯάຊͷςΫχοΫΛਖ਼࣮͘͠ફ͍ͯ͠Ε͹҆શʹมߋ ͠ͳ͕ΒઃܭΛҭ͍͚ͯͯΔͱߟ͍͔͑ͯͨΒ • IDEΛ࢖ͬͨ։ൃͱίʔσΟϯάʹ׳Ε͍ͯΔͨΊɺਤΛॻ͘ΑΓ΋ ίʔσΟϯάͪ͠Όͬͨํ͕ૣ͍ͱߟ͍͔͑ͯͨΒ 11

Slide 12

Slide 12 text

ͨͩ͠ɺͨ·ʹى͜Δ͜ͱ • Ϋϥε͕૿͑ͯ͘ΔͱɺίʔυΛॻ͖ͳ͕Βઃܭ͢Δ࣌ʹ ʮ͋ͷΫϥε͸ͲΜͳҾ਺͚ͩͬʁʯΈ͍ͨͳख໭Γ͕૿͑Δ • ϦϑΝΫλϦϯάʹཔΓ͍͗ͯ͢Δ͕ނʹɺͲ͜·Ͱ΍Δ͔ʹΑͬͯ ઃܭͷ࣭͕มΘͬͯ͘ΔͷͰ fi ndAndDoAnotherΈ͍ͨͳࡶͳϝιου͕ ੜ·Ε͕ͪɻ 12

Slide 13

Slide 13 text

UMLΛॻ͖࢝Ί͖͔͚ͨͬ 13

Slide 14

Slide 14 text

͖͔͚ͬ͸̎ͭͷࣾ֎Πϕϯτ ΦϒδΣΫτࢦ޲ΧϯϑΝϨϯε ʢҎԼɺOOCʣ ΦϒδΣΫτࢦ޲ͷ͜͜Ζ ಡॻձ 14

Slide 15

Slide 15 text

ΦϒδΣΫτࢦ޲ͷ͜͜Ζ, Ξϥϯɾγϟϩ΢ΣΠ ୈ2ষ UML౷ҰϞσϦϯάݴޠ, P39 “UMLʹ͸ɺઃܭΛ࿅Γ্͛Δͱͱ΋ ʹɺίϛϡχέʔγϣϯΛԁ׈ʹ͢Δ ͱ͍͏໨త͕͋Γ·͢ɻਤͷʮਖ਼͠ ͍ʯඳ͖ํʹ͍ͭͯ͸ɺ͋·Γؾʹ͠ ͳͯ͘΋ߏ͍·ͤΜɻ” 15 จ๏͸͋·Γؾʹ͠ͳͯ͘Α͍

Slide 16

Slide 16 text

ΦϒδΣΫτࢦ޲ͷ͜͜ΖΛಡΜͩ͜ͱͰ จ๏ͬͯͦΕ΄Ͳॏཁ͡Όͳ͍ 16 ϓϩάϥϜͱҧͬͯΤϥʔ͕ग़ΔΘ͚Ͱ΋ͳ͍͠ͳ͋

Slide 17

Slide 17 text

ΦϒδΣΫτࢦ޲ΧϯϑΝϨϯεͰͷֶͼ ࣗ෼ͷཱͪҐஔ͕·ͩ·ͩͰ͋Δ͜ͱʹؾͮ͘ɻϞσϦϯάͰදهΛ౷ Ұ͍ͨ͠ͷͰ͋Ε͹UML͕ແ೉ɻͨͩ͠ɺࡉ͔͍ه๏͸ؾʹ͠ͳ͍ 17 ΦϒδΣΫτࢦ޲ͷϦɾΦϦΤϯςʔγϣϯ 3ͱ4ͷؒ 1ͱ2ͷؒ

Slide 18

Slide 18 text

UMLΛॻ͖࢝Ί͖͔͚ͨͬ UMLΛਖ਼͘͠ॻ͘͜ͱ << ϞσϦϯάΛ͢Δ ʹ͖͚ͮͨ 18

Slide 19

Slide 19 text

UMLͱϞσϦϯάͷ ੈք΁଍Λ౿ΈೖΕΔ 19

Slide 20

Slide 20 text

ϞσϦϯάͷ࿅शΛ࢝ΊͯΈͨ ೔ৗੜ׆ʹ͋Δ΋ͷΛϞσϦϯάͯ͠ΈΔͱ࿅शʹͳΔͱ͍͏࿩Λฉ͍ ͯɺษڧձͷҰ؀ͱͯ͠΍ͬͯΈͨ ΍ͬͨ͜ͱ͸ɺίʔσΟϯάͤͣʹUMLͰΫϥεਤΛॻ͚ͩ͘ 20 ࣗಈվࡳػ ΤΞίϯ Πϕϯτϒʔε

Slide 21

Slide 21 text

ஏ͔͍͚ͣ͠Ͳ࿅शͷ੒ՌͷҰ෦Λެ։ʂ 21 OOCͷεϙϯαʔϒʔεͷϞσϦϯά • ࢀՃऀ͸શһελϯϓΧʔυ͕഑ΒΕΔ • ϒʔεΛ๚ΕΔͱελϯϓ͕΋Β͑Δ • ΦϑΟγϟϧϒʔεͱεϙϯαʔϒʔε͕͋Δ • ελϯϓ͕6ݸஷ·Δ͝ͱʹܠ඼Ψνϟ 3݄࣌఺ͳͷͰࠓͳΒ΋ͬͱ্ख͘… X͔Βऔಘ͕ͨ͠ɺͲͳ͔ͨͷࣸਅ͔͕Θ͔Βͳ͘ͳΓ·ͨ͠ɻ͢Έ·ͤΜ

Slide 22

Slide 22 text

ϞσϧΛඳ͍ͨ͜ͱͰ࣮૷Πϝʔδ͕มΘͬͨ 22 ϞσϦϯά͔ΒಘΒΕͨؾ͖ͮ • ΫϥεͰ͸ͳͯ͘ɺ;Δ·͍ʹର͢ΔϢχοτς ετΛ͔͜͜Βॻ͜͏ͱ͍͏ࣗ৴͕࣋ͯͨ ɹˠ εϙϯαʔϒʔεʹߦ͘ͱελϯϓ͕΋Β͑Δ • ໾ׂͷҠৡ͕Ͱ͖͍ͯͦ͏ͳײ͡ ɹˠ ελϯϓΧʔυͷ੹຿ ɹɹɾελϯϓΛԡͤΔ͔ ɹɹɾΨνϟ͕ճͤΔ͔ • ֓೦͔͠ߟ͑ΒΕͳ͍ͷͰ໋໊͕͍ͭ΋ΑΓγϯ ϓϧʹͳͬͨ ϞσϦϯάͤͣʹ࣮૷ͨ͠Βҧ͏݁ՌʹͳΓͦ͏

Slide 23

Slide 23 text

΍ͬͯΈͯΘ͔ͬͨ͜ͱ 23

Slide 24

Slide 24 text

ΦϒδΣΫτࢦ޲ͷ͜͜Ζ, Ξϥϯɾγϟϩ΢ΣΠ ୈ8ষ ࢹ໺Λ޿͛Δ, P105 “ΦϒδΣΫτ͸੹຿Λඋ࣮͑ͨମͰ͋Δͱఆٛ Ͱ͖·͢ɻ͜͏͍ͬͨ੹຿ʹΑͬͯɺΦϒδΣ ΫτͷৼΔ෣͍͕ఆٛ͞ΕΔͷͰ͢ɻ·ͨɺ৔ ߹ʹΑͬͯ͸ɺΦϒδΣΫτ͸ಛఆͷৼΔ෣͍ Λอ࣮࣋ͨ͠ମͰ΋͋Δͱߟ͑ΒΕ·͢ɻ͜͏ ͍ͬͨఆٛʹΑͬͯɺΦϒδΣΫτ͕Ͳ͏࣮૷ ͞ΕΔͷ͔Ͱ͸ͳ͘ɺΦϒδΣΫτ͕ԿΛ࣮ߦ ͢Δ͔ʹண໨Ͱ͖ΔΑ͏ʹͳΔΘ͚Ͱ͢ɻ” 24 ͦ΋ͦ΋ʮϞσϦϯά͢Δʯͱ͸ʁ

Slide 25

Slide 25 text

ϞσϦϯάͱઃܭͷҧ͍ 25 ΍ͬͯΈͯײͨ͡ ※͋͘·Ͱ΋ݱ࣌఺ͷࣗ෼ͷ·ͱΊͨ΋ͷ

Slide 26

Slide 26 text

ઃܭ͢Δ ≠ ϞσϦϯά͢Δ • ʮઃܭ͢Δʯ͸Ͳ͏࣮૷͢Δ͔Λߟ͑ɺ໭Γ஋͸ίʔυͰ͋Δ • ʮϞσϦϯά͢Δʯ͸ɺͲ͏࣮ߦ͢Δ͔Λߟ͑ɺ໭Γ஋͸૬ޓؔ܎ͷ ΞΠσΞͰ͋Δ 26 ൃදऀओ؍ͷݴޠԽͰ͕͢ ʮઃܭʯ͸ϞσϦϯάͬΆ͍Կ͔Λ಺แ͍ͯ͠Δ͕ ʮϞσϦϯάʯ͸ʮઃܭʯʹஔ͖׵ΘΒͳ͍

Slide 27

Slide 27 text

ϞσϦϯάͨ͠Β͜͏ͳΔʢ͸ͣʣ 27 astah iPadͰઃܭɺϞσϦϯάͷҧ͍͚ͩʹண໨ͯ͠

Slide 28

Slide 28 text

UMLΛॻ͘͜ͱ΁ͷҙࣝͷมԽ • ϦϦʔεલ΍ೲ඼લͳͲͷ۠੾ΓͰॻ͚͘Ͳಡ·Εͳ͍ҹ৅ ɹɹˠ ࣮૷ޙͰ͸ͳ͘ɺ࣮૷લʹϞσϦϯά͢ΔͨΊʹॻ͍ͨ΄͏͕Α͍ • ໼ҹͷछྨʢू໿/Ҡৡ/ܧঝʣͱ͔ه๏͕֮͑ΒΕͳ͍ ɹɹˠ ϞσϦϯά͢Δ্Ͱ͸͋·Γ໰୊ʹͳΒͳ͍ • Ҏલ͸Google Drive ͷdraw.io͔͠࢖ͬͨ͜ͱͳͯ͘… ɹɹˠ ࣗ෼͸PlantUMLΛ࢖͏ͷ͕͘͢͝ϑΟοτ͍ͯ͠Δɻastah iPad΋αΫαΫ͔͚Δ • ϖΞϞϒϓϩͰ࣮૷͠ͳ͕Βઃܭ͍ͯ͠ΔͷͰඞཁੑΛײ͡ͳ͍ ɹɹˠ ϞϒϓϩͰͰ͖ΔͷͰɺ΍ͬͯΈ͍ͨʂ 28

Slide 29

Slide 29 text

΍ͬͯΈ͔ͨΒΘ͔ͬͨ͜ͱ ͜Μͳ͔Μ͕͡ཧ૝త͔΋ʂ 29 ౰ͨΓલͰ͕͢ςετ͸࣮૷ʹؚ·Ε·͢

Slide 30

Slide 30 text

༨ஊɿ PlantUML͸࢖͍΍͍͢ class TrainGate { +work() -enter(Ticket t) -enter(ElectricMoney e) -open() -close() } TrainGate *-right- ICReader TrainGate *-left- TicketReader class TicketReader { +enter(Ticket t) +exit(ticket t) } TicketReader o-- Ticket abstract class Ticket { +getStartPlace() +getPrice() +isSeasonTicket() } Ticket <|-- PriceTicket: imp Ticket <|-- RideTicket: imp Ticket <|-- SeasonTicket: imp class PriceTicket { startPlace price +getStartPlace() +getPrice() +isSeasonTicket() } class RideTicket { startPlace endPlace +getStartPlace() +getPrice() +isSeasonTicket() } class SeasonTicket { startPlace endPlace +getStartPlace() +getPrice() +isSeasonTicket() } class ICReader { +enter(ElectricMoney m) +exit(ElectricMoney m) } Interface ElectricMoney { } ICReader o-- ElectricMoney • جຊతʹίʔυ͚ͩॻ͚͹Α͍ • ϩʔϧόοΫͰ͖Δ • ഑ஔΛ͋·Γؾʹ͠ͳͯ͘΋Α͍ 30 ։ൃऀͳΒ޷Ή͸ͣʂ

Slide 31

Slide 31 text

࣮຿Ͱ໾ཱ͍ͬͯΔ͜ͱ • ࣮͸·࣮ͩۀ຿ͰUML·ͰΛॻ͍͔ͯΒ࣮૷͢Δɺ͸Ͱ͖͍ͯͳ͍ • θϩ͔ΒઃܭΛߟ͑ΔΈ͍ͨͳ͜ͱ͕ͳ͔ͬͨͷͰ…(͜Ε͔Βػ ձ͕;͑Δ) • ͨͩɺUMLϞσϦϯάΛ࿅श͢Δ͜ͱͰɺ૬ޓ࡞༻ʹର͢Δҙ͕ࣝม Θͬͯঃʑʹ࣮૷͕มΘ͖ͬͯͨ(͜Ε͸·ͨͲ͔͜ͷػձͰ) 31

Slide 32

Slide 32 text

͜ͷηογϣϯʹ͍ͭͯ λʔήοτͱΞ΢τΧϜ • ීஈɺ։ൃͰUMLΛ࢖͍ͬͯͳ͍ਓ͕UMLΛॻ͖࢝ΊΔɻ • ීஈɺ࣮૷͠ͳ͕Βઃܭ͍ͯͨ͠ਓ͕ϞσϦϯάͷੈք΁Ұา౿Έͩ͢ɻ ࿩͞ͳ͍͜ͱ • ͋͘·Ͱ΋ࣗ෼ͷܦݧஊͳͷͰɺ٬؍తࣄ࣮ͱֶज़తͳ஌ݟͰ͸ͳ͍ • جຊతʹɺclass diagramͷ࿩͔͠͠·ͤΜ 32

Slide 33

Slide 33 text

࢖ͬͨ͜ͱ͕ͳ͍ਓ΁ͷϝοηʔδ • ཧղͰ͸ͳ͘ɺ࣮૷Λॿ͚ΔͨΊʹUMLΛॻ͘ • ਖ਼͍͠จ๏ͷUMLΛॻ͘ << ϞσϦϯάΛ͢Δ • ʢຊ౰͸࣮຿Ͱ΋΍ͬͨ΄͏͕͍͍͚Ͳʣ࢓ࣄҎ֎ͰUMLϞσϦϯά Λ࿅शͯ͠ΈΔ͚ͩͰ΋࣮૷ͷ෯͕޿͕ΔΑʂ 33

Slide 34

Slide 34 text

End 34

Slide 35

Slide 35 text

35 ຊ౰͸ୈ3൛

Slide 36

Slide 36 text

Ҿ༻͸TBD “σʔλՄࢹԽ͸ʮσʔλΛݟ΍͘͢ ͢ΔֆΛඳ͚ͩ͘ͷ࡞ۀʯͱࢥΘΕ ͕ͪͰ͕͢ɺ࣮ࡍʹ͸ͦ͜·Ͱͷॲ ཧ΍ม׵ɺ͞Βʹ͸શମతͳ࿦ཧ΋ ؚΊͯਖ਼͍͠ղऍ΍ҙࢥܾఆΛߦ͏ ͜ͱ͕ਅͷ໨తͰ͔͢Βɺʢུʣ” 36 ՄࢹԽͷҙਤͱ͸ཧղˠߦಈʹܨ͛Δ ʮਤΛॻ͘ʯ㲈ʮσʔλՄࢹԽʯͱଊ͑Δͱ

Slide 37

Slide 37 text

·ͱΊ • ਖ਼͍͠จ๏ͷUMLΛॻ͘ << ϞσϦϯάΛ͢Δ • UML ͷclass diagramΛॻ͖ͳ͕Β࣮૷Λߟ͑Δ͚ͩͰ ࣗવͱϞσϦϯάʹͳ͍ͬͯ͘ • ʢຊ౰͸࣮຿Ͱ΋΍Γ͍͚ͨͲʣ࿅शͰԿݸ͔UMLϞσϦϯάͯ͠Έ Δ͚ͩͰ΋ߟ͑ํͷ෯͕޿͕ΔΑʂͥͻҰา໨Λʂ 37

Slide 38

Slide 38 text

ਤͱ͸ͳΜͷͨΊʹ͋Δͷ͔ʁ 38 ൃදऀओ؍

Slide 39

Slide 39 text

UML (class diagram) Λॻ͘͜ͱ΁ͷؾ͖ͮ • ̏࣍ݩʢΦϒδΣΫτ໊ɺϝιου໊ɺΫϥεͷؔ܎ੑʣʹয఺Λ ஔ͍ͯՄࢹԽ͞ΕΔͷͰϞσϦϯά͠΍͍͢ • PlantUML͸͘͢͝ॻ͖΍ͯ͘͢ɺߟ͑Δ͜ͱʹूதͰ͖Δ • UMLͷจ๏ͷਖ਼͠͞͸ɺϞσϦϯά͢Δ্Ͱ͸ؔ܎ͳ͍ɻ ࣗ෼͕Θ͔͍ͬͯΕ͹Α͍ 39 ൃදऀओ؍

Slide 40

Slide 40 text

ΦϒδΣΫτࢦ޲ͷ͜͜Ζ • Certi fi ed Scrum Developer(CSD)ݚम Ͱ͓͢͢Ί͞Εͨ • σβΠϯύλʔϯͷཧղͱͱ΋ʹ ΧϓηϧԽʹؔ͢Δଊ͑ํ͕มΘΔຊ • CSDݚमˠΦϒδΣΫτࢦ޲ͷ͜͜Ζ ͸͓͘͢͢͢͝Ίʂ 40