VERSIO 0.1 LUONNOS Mallintarkistus ja sen soveltaminen PLCohjelmien verifioinnissa AS-0.3200 Automaatio- ja systeemitekniikan projektityöt -projektisuunnitelma Markus Hartikainen 2/1/2009
Sisältö 1. Projektityön tavoite... 3 2. Työn rakenne ja aikataulu... 4 3. Riskien hallinta... 5
1. Projektityön tavoite Tarkoituksena on tutustua mallintarkastuksen teoriaan yhtenä osa-alueena formaaleissa menetelmissä sekä verifioida pieni PLC - ohjelma NuSMV ja UPPAAL mallintarkastustyökaluja käyttäen. Projekti jaetaan kahteen isompaan työpakettiin. Ensimmäinen osa selvittää mallintarkastuksen taustalla olevaa teoriaa. Samalla on tarkoitus selvittää miten mallintarkastusta voidaan käyttää PLCohjelmien verifioinnissa. Tarkoituksena on kirjoittaa tätä teoriaosuutta koko ajan rinnakkain käytännön osuuden kanssa. Projektin toisen osuuden tarkoituksena on tutustua olemassa olevien lähteiden avulla PLCohjelmille sopiviin mallintarkastustyökaluihin (NuSMV ja UPPAAL, joista jälkimmäinen on reaaliaikasovellusten mallintarkistin). Osuuden tarkoituksena on tehdä spesifikaatio pienelle logiikkasovellukselle ja saada sovelluksen malli (design) tehdyksi ja verifioiduksi mallintarkastustyökalua käyttäen. Tutkin esimerkissäni kurssin AS-116.1100 Kappaletavaratuotannon automaatio harjoitustyön toimilohko-ohjelmien verifiointia. Tarkoituksena on selvittää verifiointiprosessin vaiheita ja sen mahdollisuuksia ja ongelmia (onko ohjelmassa muita tiloja kuin spesifikaatiossa tai päästäänkö jokaiseen suunniteltuun tilaan ohjelman ajon aikana jne.). Lisäksi vertaillaan valittujen mallintarkastimien tehokkuutta ja sopivuutta esimerkkiohjelman verifioinnissa. Ohjelmaan voidaan myös lisätä tahallaan suunnitteluvirhe/virheitä, jotka halutaan mallintarkastuksella löytää. Työn tuloksena on tarkoitus oppia mallintarkastusta formaalina verifiointivälineenä niin teoriassa kuin käytännössä. Tuloksina halutaan erityisesti saada informaatiota mallintarkistuksesta PLC - ohjelmien osalta. Mitä ongelmia mallintarkastuksessa ilmenee / voi ilmetä? Mitä kaikkea on otettava huomioon sovellettaessa mallintarkastusta verifioinnissa? Mitä hyviä ja huonoja puolia siinä on? Minkälainen on mallintarkistuksen tulevaisuus PLC - ohjelmien vaatimusten ja suunnittelumallien verifioinnissa. Arvioin työpakettien laajuudeksi noin 2 (teoria) + 2 (käytäntö + tulokset) opintopistettä.
2. Työn rakenne ja aikataulu 1. Projektisuunnitelma 2. Johdanto mallintarkastukseen 3. Mallintarkastuksen taustalla oleva teoria 3.1 Automata ja äärelliset tilakoneet (FSM) 3.2 Temporaalinen logiikka 3.3 Symbolinen mallintarkistus 3.4 Ajoitetut tilakoneet ja reaaliaikavaatimusten verifiointi 4. Järjestelmäominaisuuksien spesifiointi 5. PLC-ohjelmien mallintarkistus 6. CASE-esimerkit (NuSMV, UPPAAL): liukuhihnan hissiohjelman mallintarkastus 7. Tulokset ja vertailu 8. Mallintarkastuksen tulevaisuus Työvaiheen nimi Aloituspäivämäärä Arvioitu lopetuspvm. 1. Projektisuunnitelma 21.1.2009 5.2.2009 2. Johdanto 2.2.2009 15.4.2009 3 ja 5. Teoria ja PLCohjelmien 2.2.2009 15.4.2009 mallintarkastus 4. Spesifiointi 20.2.2009 1.3.2009 6. CASE-esimerkki NuSMV 2.2.2009 15.3.2009 6. CASE-esimerkki UPPAAL 1.3.2009 1.4.2009 7. Tulokset ja vertailu 1.4.2009 15.4.2009 8. Mallintarkastuksen tulevaisuus 1.4.2009 15.4.2009 TODO: Tee janakaavio aikataulusta! Projektityön kestoksi on arvioitu noin 3 kuukautta. Neljälle opintopisteelle kohdistettuna viikkokohtainen työtuntimäärä on siis 10 tuntia. Työpaketit sisältävät itsessään dokumentoinnin. Työ alkaa projektisuunnitelman kirjoituksella (tämä dokumentti) sekä taustalla olevan teorian sekä johdannon kirjoittamisella. Myös CASEesimerkin rakentaminen alkaa heti NuSMV-mallintarkastimella. Ominaisuuksien spesifioinneista kirjoittaminen voi alkaa, kun on opittu tarvittava määrä teoriaa. Teoriaa on tarkoitus opetella alussa nopeaan tahtiin, jotta itse kokeellinen osuus voi alkaa. UPPAAL-mallintarkastimeen tutustuminen alkaa heti, kun ensimmäinen CASE-esimerkki on valmis tai melkein valmis. Tulosten ja mallintarkastuksen tulevaisuudensuuntausten arviointi jää luonnollisesti viimeiseksi vaiheeksi projektissa. Teoriaa on tarkoitus opiskella koko projektin ajan ja soveltaa sitä esimerkkiohjelman verifiointiin. Muutoinkin kirjoitusprosessia ja tulosten dokumentointia on tarkoitus tehdä rinnakkain kokeellisen osuuden kanssa.
3. Riskien hallinta Ennustan projektin onnistuvan hyvin, sillä hyviä lähteitä mallintarkistuksesta löytyy useita. Lähteiden taso ja laatu on yleisesti ottaen huippuluokkaa, sillä aihe on ollut viimeisten 30 vuoden aikana kovan kiinnostuksen kohteena yliopistojen tietojenkäsittelytieteiden laitoksilla sekä myös teollisuudessa. Mallintarkastusta on sovellettu käytäntöön onnistuneesti ja lupaavia tuloksia on saatu monilla eri osa-alueilla, myös logiikka-ohjelmien verifioinnissa. Kaikista näistä positiivista asioista huolimatta on myös hyvä varautua ongelmiin etukäteen, jotta nämä voidaan joko välttää tai minimoida. Alla on siis tunnistettu projektin keskeisimmät riskit ja hahmoteltu näiden toteutuessa tehtäviä toimenpiteitä. Suurimpia riskejä tavoitteiden saavuttamiselle ovat: 1. Muut kurssit vievät myös paljon aikaa, koska niissäkin on harjoitustöitä 2. Tuntematon tekniikka hankaloittaa aikataulun suunnittelua ja siinä pysymistä Keinot riskien välttämiseksi: 1. Teorian opiskelu aloitettava heti 2. Työkalujen löytäminen ja käytön opiskelu aloitettava mahdollisimman nopeasti Riskien minimointi ja toimenpiteet mikäli riski toteutuu: 1. CASE-esimerkeissä verifioidaan ensin vain yksi osa ohjelmasta (esim. paletin ottaminen hissiin). Myöhemmin voidaan verifioida useampia ohjelmia, jos aikaa jää