Infosüsteemid: Loeng 11-12 Infosüsteemid MTAT.03.139 2017 sügis Indrek Sander 1
Suur pilt Tarkvarasüsteemide omavaheline suhe Andmed andmevoodiagramm (AVD) keskne (vaatlusalune) tarkvarasüsteem Initsiatiiv vastandina võimekusele serveerida Tehnika (protokollid, formaadid) Sisemised vs välised tarkvarasüsteemid arendusõigus vs paigaldus (häälestus ja juuredepääs) 2
Kontekstidiagramm (AVD 1.tase) Pank RR EHIS Rahvastikuregister Finantstehingud Haridusregistrid Muudatused Elukoht Suhted (vanem-laps) Õppemuudatused Koosseis Puudumus ARNO Maksekorraldus Makse, Laekumine Söögikord Maksekohustus Pank PMen Haridusteenused Finantstehingud Raamatupidamine E-Kool E-Päevik (õppetöö) Piiksu Söömise loendamine 3
Pank RR EHIS Rahvastikuregister Finantstehingud Haridusregistrid anna Muudatused anna Elukoht anna Suhted võta Muudatused E-Kool E-Päevik (õppetöö) Suhtlusinitsiatiiv anna Koosseis ARNO võta Puudumus võta Makse anna Laekumised võta Maksekohustus võta Söögikord Piiksu Söömise loendamine Pank PMen Haridusteenused Finantstehingud Raamatupidamine 4
Sõnade tähenduse ohud Riiklik dokumendivahetus, DVK -> DHX SendDocument() Arhitektuur muutus "Sõnad" jäid samaks => Eksimise võimalus 5
Protokollid Pank RR Rahvastikuregister Finantstehingud x-tee ARNO SOAP fail (ISO PAIN) Pank Finantstehingud EHIS Haridusregistrid x-tee SOAP Haridusteenused REST (JSON) fail (PMen CSV) PMen Raamatupidamine E-Kool E-Päevik (õppetöö) Piiksu Söömise loendamine 6
Andmebaasi ühiskasutus Operatiivne vs analüütiline ehk Raportid operatiivandmete pealt spetsiaaltarkvaraga alternatiiv: ETL/ELT lahendused Andmevahetussõnumi asemel otse andmebaasi/-ist Aegunud lähenemine! Päringud (read/only) - masside ja määramatuse korral ok Muudatused - riskantne 7
Majasisene vaade (noolteta) Seadmetarkvara Seadmetarkvara Personaliregister Operatiivtöö tarkvara Operatiivtöö tarkvara Operatiivtöö tarkvara Raamatupidamine Dokumendiregister Analüütiline tarkvara 8
Tarkvarasüsteemi suhtlusvõimekus Lähtepunkt: iga tarkvarasüsteemi kohta kirjeldada: mida pakub teenustega (kuulab) [teenusliides] milliseid andmeid võimaldab kasutajaliidese kaudu välja salvestada (mis kujul, mis filtritega) [eksport] milliseid andmeid võimaldab kasutajaliidese kaudu sisse tõmmata [import] Annab aluse teiste toodete kavandamiseks ilma vaatlusalust muutmata (ehk õnnestub) 9
Tarkvarasüsteemi sõltuvused Milliseid teenuseid ta kasutab ja mis juhtub, kui mingi teenus (ajutiselt) kaob? Nt, tihti on kriitilisteks autentimisteenused Milliseid avalikke ja muid väliseid klassifikaatoreid kasutab (ja mis juhtub kui need muutuvad)? NT, EHAK ja Haldusreformi mõju sellele 10
Tarkvarasüsteemi arhitektuur Monoliitne Klient/Server (paks klient, thick) Veebirakendused (õhuke klient, thin) Software-as-a-Service (SaaS) Cloud (vastandina on-premises / Self-hosted) Veebiteenused (SOA) front-end vs back-end Platvormid ja pluginad 11
Tarkvaratoote sees Monoliitne (<div><?php echo(1+2)?></div>) programmikood on segiläbi visuaaliga (HTML-iga), embedding Code-View (<div>{{{summa}}}</div>) visuaali hoitakse eraldi, sisaldab abimärgendeid, programmikood võtab malli ja asendab märgendid andmetega, andmed leiab programmikood jooksvalt Model-View-Controller programmikood (Controller) saab andmed eraldi klassidest (Model) ja näitab neid View abil 12
Raamistikud Ühe programmeerimiskeele jaoks mingit laadi eesmärkide kergemaks saavutamiseks Java: Spring, JSF, Struts, GWT Javascript: NodeJS, AngularJS, Express.js, Meteor PHP: CakePHP, Laravel, Symphony, Yii, Zend, Nette Python: Django Ruby: Ruby On Rails, Sinatra Lihtsus vs Võimekus Kriteerium: aktiivne kogukond ja rohke dokumentatsioon 13
Veebiserver HTTP protokolli toetav server Apache Web Server, nginx, Microsoft IIS Serveerib valmis HTML, pilte, faile Tema tarbijaks üldjuhul brauser (IE, FF, Chrome) Pakub võimalust genereerida HTML mingi programmeerimiskeele abil (vajab häälestamist) PHP, Ruby, Python, C# [sii-šaarp] WAMP ja LAMP komplektid arendajatele 14
Erijuhud Tavaliselt pannakse Java abil toodetud kood kompileerituna spetsiaalse tarkvara juurde Application Server Tomcat, JBoss/WildFly C# ja VB (Visual Basic) vajavad IIS-i (Microsoft) JavaScript serveris on tihti ilma eraldi veebiserverita (porti 80 kuulab JS ise) server-side JavaScript 15
Programmeerimiskeeled Kompileeritavad peale kirjutamist ja enne kasutamist on vajalik vahetegevus, mida kutsutakse kompileerimiseks (võtab aega) masinkoodiks võimalus käivitada siht-op.süsteemis vahekoodiks vajab käivituskeskkonda, nt JRE,.NET Java, C# Interpreteeritavad kood käivitatav kohe, vajab programeerimiskeele installimist PHP, Python, Ruby, JavaScript,... 16
IDE Integrated Development Environment Visual Studio, Eclipse,... nn Programmeerija-redaktorid Notepad++, UltraEdit, EditPlus,... Võimalused formaatida selgemaks, toimetusabid, käivitamised, Koodirepositooriumiga suhtlus 17
Koodirepositoorium Versioonihaldus (släng: Versioonikontroll) Version Control Systems (VCS) Tasuta tooted: CVS, Subversion (SVN), Git,... pane hoiule, lae muutunud, leia erinevused harud (branch), integreerimine (merge) Hostingu süsteemid GitHub, BitBucket 18
19
Toimesüsteemi kirjeldus On taustsüsteemiks tarkvarasüsteemide kirjeldusele Tööprotsessid, Töörutiinid, Töötegijad, Partnerid Kasutajate/kasutajagruppide võimekus Tehnoloogiline võimekus, Arvutipark (infra), IT isikud Deklaratsioonid (mõistlikud ootused) 20
Kasutajad Kasutajagrupid (rollid) Võtmekasutajad Kasusaajad (ei tarvitse olla kasutajad) Juhtkond ja omanikud SaaS lahendustel toote rentija Portaalidel-kodulehtedel reklaamija Vahendatav (e-poes kauba omanik või looja)..... 21
Tarkvarasüsteemi kirjeldamine Eesmärk Kasutaja(grupi)d Andmed Kontekst (AV partnerid) Omadused (funktsioonid) Toetatavad äriprotsessid Suhtlusvõimekus Sõltuvused Arhitektuur Litsentsid Paigaldus Kasutajajuhendid 22
Elav dokumentatsioon Loetav ilma täiendavate tööriistadeta veebileht Linkimine, et levitada URL konkreetsele artiklile või selle osale Lihtsasti muudetav (ilma täiendavate vahenditeta) Vea/aegumise avastamisel kohe parandatav Maksimaalne kogukond Kommenteerimine, Hindamine 23
Kirjelduse säilitamine Failid (tekstifailid) tegelik kättesaadavus on nõrk Joonistamistarkvara halb valik, jääb puudu tekstist Modelleerimistarkvara, CASE probleeme tekstiga, samuti oskustega ja tihti ka litsentsidega Wiki hästi kättesaadav, hästi muudetav MediaWiki, DocuWiki, OneNote, Confluence Spetsiaalandmebaas (koos kasutajaliidesega) paljude süsteemide (seotud) säilitamine ja otsitavus 24
RIHA Riigi Infosüsteemi haldussüsteem RIS = tarkvarasüsteemid, mis on kasutuses KOV-ides, ametites ja ministeeriumites. Uus RIHA avati novembris ilusam id-kaardi tugi kogub vähem andmeid loobuti lennukatest ideedest üldistab nt põhiandmete lihtdeklareerime puudub õiguste isehaldus RIA-le meeldib käsitöö ;) ei realiseerunud mõte saada ülevaadet suhtlustest 25