AS 0.3200 Automaatio ja systeemitekniikan projektityöt Projektisuunnitelma Syksy 2009 A09 05 OSGi IRC Bot For Coffee Maker Henri Nieminen Juha Sironen Palautettu: 21.9.2009 Nieminen, Sironen
Sisällysluettelo 1 JOHDANTO... 3 2 PROJEKTIN TAVOITTEET... 3 3 PROJEKTIN RAKENNE JA AIKATAULUTUS... 5 4 RISKIEN HALLINTA... 6 Nieminen, Sironen
1 Johdanto Tämä työ on toteutettu kurssilla Automaatio ja systeemitekniikan projektityöt (AS 0.3200) syksyllä 2009 Automaation ja systeemitekniikan laitoksella. Työssä toteutetaan Automaatiotekniikan laitoksella sijaitsevan kahvinkeittimen ohjaus IRC:n kautta, hyväksi käyttäen IRC bottia. Työ toteutetaan Java ohjelmoilla. Itse laite on jo fyysisesti liitetty verkkoon. Tässä raportissa esitellään työn sisältöä, tavoitteita, aikataulua ja riskien hallintaa projektissa. Projekti toteutetaan parityönä. 2 Projektin tavoitteet Projektin tavoitteena on saada ohjattua kahvinkeitintä, esitettynä kuvassa 1, IRC:n (Internet Relay Chat) kautta. Kahvinkeitin on jo valmiiksi automatisoitu siten että sillä on sovellus (Java) joka annostelee vedet ja kahvin sekä keittää kahvin. Keittimen suodattimen joutuu vaihtamaan käsin. Vaihdosta tehdään kuittaus keittimen vieressä olevasta painikkeesta aina kun kahvin juoja ottaa keiton jälkeen kahvia. Keitin on valmiiksi fyysisesti liitetty, joten työksi jää luoda sovellus, joka linkittää IRC:n keittimeen. Tavoitteena on siis luoda IRC botti, joka vastaa IRC kanavalle annettuihin käskyihin. Kanavalle liittynyt henkilö voi joko antaa käskyn suoraan IRC botille yksityis viestillä tai sitten kanavalle huutamalla. IRC botti ottaa yhteyden automaattisesti IRCkanavaan ja pysyy kanavalla. Jos yhteys katkeaa tulee Botin ottaa automaattisesti yhteys uudestaan. Botti välittää käskyt Coffeemaker sovellukselle ja palauttaa sieltä saadut tiedot IRC kanavan käyttäjälle. Lisäksi Botin tulee osata hallita käyttäjiä, jottei kuka tahansa voi liittyä IRC kanavalle ja keittää kahvia. Käyttäjien hallinta toteutetaan ensin alkuun käyttäjä rekisterillä, joka luodaan käsin. Lisätavoitteena on luoda Bottiin ominaisuus joka voi päivittää rekisteriä IRC kanavan kautta. Nieminen, Sironen 3
Kuva 1 Ohjattava kahvinkeitin Työssä avain sanoja ovat IRC, IRC Bot, OSGi, Knopflerfish, Bundle, Java. Iso osa työssä tulee menemään tekniikan opiskeluun sekä sovelluksen luontiin raportointia unohtamatta. Työmäärä tavoite on 4 5 opintopistettä molemmilta projektin jäseniltä. Nieminen, Sironen 4
3 Projektin rakenne ja aikataulutus Projekti on ositettu seuraaviin vaiheisiin: 1. IRC / OSGi / Bot / Bundle teoriaan tutustuminen 2. Projektisuunnitelman luonti 3. Suunnitelman esitys 4. IRC:n harjoittelu 5. IRC Bottiin tutustuminen 6. Knopflerfish alustaan tutustuminen 7. IRC kanavan luonti 8. Alkeellisen IRC botin luonti 9. Simulaattorin rajapintaan tutustuminen 10. Java sovelluksen luonti 11. Väliraportointi 12. Tilanteen tarkastus ominaisuuksien lisääminen 13. Dokumentointi 14. Loppuraportointi Kuvassa 2 esitetään projektityön vaiheiden aikataulutussuunnitelma. Kuva 2 Projektin aikataulutus Nieminen, Sironen 5
4 Riskien hallinta Projektin onnistumisen kannalta on olemassa muutama keskeinen riski. Riskeille on olemassa keinoja pienentää ja välttää niitä. Seuraavassa on esitetty keskeisiä riskejä. Kuvassa 3 on esitetty riskien todennäisyyksiä ja vaikutuksia. Sairastuminen: Syksyn aikana on mahdollista, että joko ryhmän jäsenet tai sitten ohjauksen puolelta tapahtuu sairastumisia. Pienellä flunssalla ei ole suurta merkitystä, mutta pidempi aikainen sairaus voi viivästyttää projektia. Keinoja välttää sairastapauksia ei ole ja riskin pienentäminen on vaikeata. Todennäköisyys riskillä on pieni. Simulaattorin toimimattomuus/puuttuminen: On mahdollista että työssä tarvittavaa simulaattoria ei ohjaaja saa valmiiksi, tai simulaattori toimii moitteellisesti. Puutteen voi estää omalla aktiivisella kyselyllä. Virhe simulaattorissa tulee todennäköisesti ilmi vasta itse kahvinkeitintä testattaessa, jolloin ohjelmointi voi pahimmassa tapauksessa mennä kokonaan korjaukseen. Riskin vaikutus on suuri, mutta todennäköisyys pieni. Ohjelmoinnin taitotaso: On mahdollista, että projektiryhmän ohjelmointi taidot eivät ole riittäviä projektin onnistumiseksi. Riskin voi välttää tiiviillä opiskelulla ja harjoittelulla. Tehtävän väärin ymmärtäminen: On mahdollista että annettu tehtävä on ymmärretty väärin. Riski on pieni ja sen voi välttää olemalla tiiviisti yhteydessä ohjaajaan. Kommunikointi: Ryhmän sisäinen ja ulkoinen kommunikointi voi johtaa vääriin johtopäätöksiin ja ratkaisuihin. Mikäli näin käy, tulee työtä lisää virheitä korjatessa ja viivästyminen on mahdollista. Riskiä voi pienentää sopimalla kommukointi sääntöjä. Kahvin keittimen hajoaminen: Kahvin keitin on kovassa käytössä ja kova käyttö voi johtaa sen vaurioitumiseen tavalla tai toisella. Jos keitin hajoaa ja sitä ei saada projektin aikana kuntoon, jää lopulliset kenttätestit suorittamatta ja Nieminen, Sironen 6
tuloksen toimillisuus jää vain simulointi asteelle. Keinoja välttää tai pienentää riskiä ei ole olemassa. Opiskelun muu kuorma: Projekti suoritetaan muun opiskelun yhteydessä ja ryhmän jäsenten kiireellisyydellä on suora vaikutus onnistumisen. Riskiä voidaan pienentää sopimalla tietyt kellonajat viikosta, jolloin projektia suoritetaan. Ohjauksen puute: Projektin onnistumisen kannalta ohjaajalla on keskeinen merkitys. Mikäli tiedon saanti syystä tai toisesta on puutteellista tai heikkoa ohjauksen suunnasta, on ryhmän kaivettava tietoa muista lähteistä entistä enemmän. Riski on äärimmäisen pieni. Kuva 3 Riskien todennäköisyys ja vaikutus Nieminen, Sironen 7