Irkkibotin arkkitehtuurin suunnittelu

Seitsemännen tapauksen oppimistavoitteena minulla oli miettiä IRC-botin arkkitehtuuri ja esitellä saavutukseni muille. Ajatuksien hahmottaminen joksikin konreettiseksi toi asiaan mielenkiintoista haastetta – käsien heiluttelu kun ei oikein tietokoneruudulla näytä niin hyvältä. Tavoitteenani oli saada arkkitehtuuri mahdollisimman joustavaksi siinä mielessä, että jokainen ryhmän jäsen voisi toteuttaa oman moduulinsa/luokkansa bottiin välittämättä siitä että miten toisten robotit sopivat sen kanssa yhteen. Jokaisen moduulin pitäisi olla irrallinen kokonaisuus ja samalla helppo koodata.

Esimerkki UML-diagrammista

UML-diagrammi Wikipediasta

Lähtökohtainen ajatukseni oli lähteä visualisoimaan suunnitelmaani UML-kaavion avulla. Monia eri vaihtoehtoja tutkailtuani päädyin siihen tulokseen, että UML on hyvin monimutkainen ja ehkä vähän overkill tähän tehtävään. Mikäli suurin osa esittelyajasta kuluisi siihen, että kerron, mitä kaavio edes koittaa selittää, ei se sovi tehtävään. UML oli siis nyt kuopattu.

Seuraavaksi tartuin päättäväisesti kaikkien Studio 1 phuksien rakastamaan työkaluun, CmapToolsiin. Aivan kuin huomaamattani sainkin aikaiseksi loogisen kokonaisuuden, jota oli (ainakin omasta mielestäni) helppo lukea ja joka sisälsi sopivasti tietoa. Värien kanssa en tällä kertaa kerennyt/jaksanut/viitsinyt lähteä pelleilemään, sillä se puoli käsitekarttojen teosta ei vielä oikein aukene minulle.

Irkkibotin yleinen toimintaidea näyttää alla olevalta (klikkaa kuva suuremmaksi):

Arkkitehtuurin ideasta tehty käsitekartta, pieni versio

Ideana on, että jokainen moduuli perii BottiPohja-luokan ja käyttävät sen määrittelemiä metodeita halutessaan kommunikoida IRCin välityksellä. Näin vain yläluokan tulee hallita PircBot-kirjaston kanssa kommunkointi ja yksittäiset moduulit pystyvät käyttämään yläluokan metodeita halutessaan. BottiPohja-luokka sisältää myös yhden staattisen metodin, johon alaluokkien alustus sijoitetaan. Ideaalissa tilanteessa pääluokkaan tarvitsee lisätä vain yksi koodirivi lisää, kun halutaan botin alkavan käyttää itse koodattua moduulia.

Itse BottiPohja-luokan konkreettisen toteutuksen visualisointi löytyy alla olevasta käsitekartasta. Kuvaa klikkaamalla saa auki kokoversion kuvasta.

BottiPohja-luokan rakenne käsitekarttana, pienoiskuva

2 thoughts on “Irkkibotin arkkitehtuurin suunnittelu

  1. Tää arkkitehtuuri oli oikeasti loistava! Tarpeeksi yksinkertainen, että kaikki pystyi pienen tutkailun jälkeen luomaan oman aliluokan Moduuli-luokalle ja toteuttamaan kaikki tarvittavat metodit🙂

  2. Päivitysilmoitus: Tapaus 7 – Botista, irkistä ja netistä | OLOwi

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out / Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out / Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out / Muuta )

Google+ photo

Olet kommentoimassa Google+ -tilin nimissä. Log Out / Muuta )

Muodostetaan yhteyttä palveluun %s