............................................................................ 7 1.4 Töös kasutatavad meetodid................................................................8 1.5 Realiseeritava infosüsteemi analüüs..................................................9 1.5.1 Nõuded......................................................................................... 9 1.5.2 Süsteemi tegijad........................................................................10 1.6 Arendusvahendid ja tehnoloogiad....................................................10 1.6.1 PHP............................................................................................. 11 1.6.2 JavaScript................................................................................... 11 1.6.3 jQuery......................................................................................... 11 1.6.4 MySQL....................................................................................
2. Näiteid mõlemast tarkvara alaliigist 1) Süsteemitarkvara: · operatsioonisüsteemid, nt Linux, Windows Vista, Symbian OS mobiilsetes seadmetes kasutatav operatsioonisüsteem, Unix · draiverid, nt printeri draiver · failihaldusprogrammid 2) Teenindus- /abiprogrammid. rakendustarkvara · Kontoritööpaketid o tekstitöötlusprogrammid o tabelarvutusprogrammid o esitlusprogrammid · Arendusvahendid o assemblerid o kompilaatorid o interpretaatorid o versioonihaldusprogrammid · infohaldusrakendused o ettevõtte ressursiplaneerimispaketid (ERP) o raamatupidamispaketid o kliendisuhtehalduspaketid (CRM) o otsustusi toetavad süsteemid (DSS) o projektihalduspaketid · inseneri töövahendid o CAD-programmid 3
klientide arusaamaga; · milline on erinevus unistuse ja reaalsuse vahel; · kuidas unistust ellu viia, kellest ja millistest tegevustest sõltub unistuse täitumine; · selgita, millest tuleneb praegune erinevus hinda oma organisatsioonikultuuri; · loo sild organisatsioonisiseste tegevuste ja välistele sihtrühmadele suunatud tegevuste vahel; · leia arenguvõimalused; · planeeri arendusvahendid, · kasuta arendusvahendina siseturundust: otsusta objektid sõnumid ja kanalid. 5 Joosep Kruusmaa Ettevõtte ja kliendi suhted Klient on kõige tähtsam külaline meie valdustes. Ta ei sõltu meist, meie sõltume temast. Ta pole kõrvalseisja meie äris, ta on osa sellest
riistvarast ja lähemale arvutiga suhtlevale kasutajale, mis aitab otseselt kasutaja eesmärke täita. Rakendustarkvara on üldiselt soetud graafilise kasutajaliidesega. 3 Kasutatavaimad rakendustarkvarad on: · Kontoritööpaketid: tekstitöötlusprogrammid, tabelarvutusprogrammid, esitlusprogrammid. · Arendusvahendid: assemblerid, kompilaatorid, interpretaatorid, versioonihaldusprogrammid. · Infohaldusrakendused: ettevõtte ressursiplaneerimispaketid (ERP), raamatupidamispaketid, kliendisuhtehalduspaketid (CRM); otsustusi toetavad süsteemid (DSS), projektihalduspaketid. · Inseneri töövahendid: CAD-programmid, statistilise analüüsi programmid, geoinfosüsteemid. · Kirjastamine ja multimeedia: trükiste kujundusprogrammid,
o riistvaralised komponendid, füüsiline võrk o tarkvaralised komponendid riistvaralähedane kiht - operatsioonisüsteemi tuum, seadmete draiverid, ... operatsioonisüsteem, selle poolt pakutavad teenused, ressursside haldamine: mälu, protsessid, s/v, ... süsteemitarkvara - kompilaatorid, süsteemi haldamine, arendusvahendid, ... rakendustarkvara - üldotstarbeline (näit. kontoripakett) või eriotstarbeline (näit. kassaaparaadi tarkvara) o organisatsioonilised jm. mittetehnilised asjad - kasutajad, koolitus, ... (need on rohkem infosüsteemi aspektid, praegu meid ei huvita) Vajalikke lühendeid: IDE - Integrated Development Environment. Arenduskeskkond programmide koostamiseks,
ühtib klientide arusaamaga; · milline on erinevus unistuse ja reaalsuse vahel; · kuidas unistust ellu viia, kellest ja millistest tegevustest sõltub unistuse täitumine; · selgita, millest tuleneb praegune erinevus hinda oma organisatsioonikultuuri; · loo sild organisatsioonisiseste tegevuste ja välistele sihtrühmadele suunatud tegevuste vahel; · leia arenguvõimalused; · planeeri arendusvahendid, · kasuta arendusvahendina siseturundust: otsusta objektid sõnumid ja kanalid. Tänapäeva hinnatuim loodusvara on vaba aeg. Võib oletada, et paljudel juhtudel võidab see turundaja, kes jõuab kliendile võimalikult lähedale, olgu siis aja, koha või suhete mõttes. Suhete puhul mõjutatakse klienti tema isiklike arvamusliidrite kaudu. On ju teada, et parim reklaam on kuulujutt ja sõbra soovitus läheb rohkem korda kui objektiivsed andmed
seletused (nn süsteemi sõnastik), viited teistele dokumentidele, dokumendi struktuuri kirjeldus; · toote kirjeldus; · kasutajate ja huvipoolte profiilid, eesmärgid, vajadused, kogemused. Kasutajate kirjeldamine aitab paremini mõista kasutajate vajadusi ning oskusi loodava tootega ümber käia; · piirangud: kasutajatest või ümbritsevast keskkonnast lähtuvad piirangud, nt olemasolevate süsteemidega seostamine, arendusvahendid, õigusaktid; · eeldused ja sõltuvused: toote loomine võib eeldada teatud tingimuste täitmist, nt et peatselt jõustatakse õigusakt; kolmas osapool loob liidestatava süsteemi; · käitluskeskkond - kirjeldab platvormid, millel toode peab töötama, sh operatsioonisüsteemid, riistvaraplatvormid, andmebaasimootorid, veebiserverid, rakendusserverid, monitooringuliidesed jms;
...........................................31 9.6 TOIMIMISE ETAPP........................................................................................................................31 10. KASUTATAVAD SÜSTEEMI MODELLEERIMISE VAHENDID........................................31 11. KASUTATAV ANDMEBAASISÜSTEEM..................................................................................31 2 12. KASUTATUD ARENDUSVAHENDID.......................................................................................31 13. ESIMESE ARENDUSETAPI AJAKAVA....................................................................................31 3 1. Üldvaade 1.1 Taust ja üldkontseptsioon Firma tegeleb reisijate (klientide) transpordiga. Bussijaama infosüsteem on mõeldud töö paremaks organiseerimiseks ja ühtseks infovahetuseks. Bussijaama
loomiseks, mis töötavad autonoomselt või koos teiste programmidega. Praegusel ajal on levinud järgmised üldised programmeerimiskeeled C, ++, Visual ++, Visual Basic, Java, Pascal, Fortran, Cobol. C# Spetsialiseeritud keel on tavaliselt otseselt seotud kindla rakendusprogrammiga või -süsteemiga ning selle keele abil saab luua ja käsutada tarkvara ainult antud süsteemi jaoks. Enamiku nüüdisaegsete rakendusprogrammide juurde kuuluvad arendusvahendid, milles käsutatakse ühte või mitut spetsialiseeritud keelt. Programmeerimiskeeled on formaalsed keeled, mis on ette nähtud arvutiprogrammide koostamiseks. Keel määrab kindlad reeglid programmi võimaliku struktuuri, selle komponentide ning töödeldavate andmete ja objektide jaoks. Programm koosneb tavaliselt mitmest suhteliselt sõltumatust osast ehk programmiüksusest. Keeled nimetavad neid mitmeti ja programmiüksustel võib olla erinev struktuur ja töökorraldus.
seletused (nn süsteemi sõnastik), viited teistele dokumentidele, dokumendi struktuuri kirjeldus; toote kirjeldus; kasutajate ja huvipoolte profiilid, eesmärgid, vajadused, kogemused. Kasutajate kirjeldamine aitab paremini mõista kasutajate vajadusi ning oskusi loodava tootega ümber käia; piirangud: kasutajatest või ümbritsevast keskkonnast lähtuvad piirangud, nt olemasolevate süsteemidega seostamine, arendusvahendid, õigusaktid; eeldused ja sõltuvused: toote loomine võib eeldada teatud tingimuste täitmist, nt et peatselt jõustatakse õigusakt; kolmas osapool loob liidestatava süsteemi; käitluskeskkond - kirjeldab platvormid, millel toode peab töötama, sh operatsioonisüsteemid, riistvaraplatvormid, andmebaasimootorid, veebiserverid, rakendusserverid, monitooringuliidesed jms; kõikide funktsionaalsete ja tehniliste (turva-, kasutatavus- jm) nõuete detailne kirjeldus,
TTÜ Raadio ja sidetehnika 22 instituut. 11 FPGA-st ASIC-usse Xilinx Kasutatakse nn. katkisi FPGA-sid, mis sobiksid siiski konkreetse projekti tarbeks (Easypath) Altera Asendanda programmeeritavad struktuurid ASIC moodulitega (HardCopy) FPGA-l baseeruva süsteemi projekteerimine on siiski kallim võrreldes ASIC-uga kuna Arendusvahendid võivad olla väga kallid (kuni 500 milj) Chipi tootmise kulud, vigade parandus läheb kalliks Keerukusest ja tehnoloogiast tulenev pikem arengutsükkel Toomas Ruuben. TTÜ Raadio ja sidetehnika 23 instituut. FPGA-de eelkäiad PLA ja PLD PLA (Programmable Logic Array) omab: Kahte programmeeritavat tasapinda Võimaldab koostada suvalise kombinatsiooni AND/OR lülitustest
See on maailmas tunnustatud kui keerukas ülesanne. Ideaalis, selle ülesande sisendiks on tarkvara spetsifikatsioon ning väljundiks - arenduse maksumus või arenduseks vajalike inimkuude (- päevade, -aastate) arv. Kahjuks pole head spetsifikatsiooni alati olemas, ka on palju parameetreid peale funktsionaalsuse, mis maksumust mõjutavad, näiteks mittefunktsionaalsed nõuded (töökindlus, turvalisus jne), arenduskeskkond, arendusvahendid, arendajate tase ja nii edasi. Et paljusid neist suurustest ei saa lihtsal viisil mõõta, on nende hinnangud paratamatult kogemuslikku laadi. Teades orienteeruvat tarkvara mahtu, on võimalik prognoosida arenguks vajalikku töömahtu. Selleks kasutatakse mitmesuguseid mudeleid, enamlevinud on COCOMO mudel. Tarkvara arendusmaksumuse prognoosi kokkuvõtteks: · Tarkvara maksumuse prognoosi enamlevinud meetodid kasutavad tarkvara mahu prognoosi ja selle baasil töökulu prognoosi
C, C++ Andmetöötlus ja skriptid ilma kasutajaliideseta: Python, Java, C, Perl, Ruby, Windowsi kasutajaliidesega rakenduste programmeerimine: C#, VisualBasic, C, (Java) Maci ja iPhone programmeerimine: Objective-C Androidi programmeerimine: Java, (C) Veebibrauseri programmeerimine: Javascript Veebirakenduse programmeerimine: PHP, Python, Ruby, Java, Javascript, C , Perl .. Spetsiifilised rakendused: vastavalt vajadusele Arendusvahendid Programmi töötamiseks: Kompilaator Interpretaator Programmi kirjutamiseks: Sobivad tekstiredaktorid Visuaalsed arendusvahendid Suure hulga lähtekoodi halduseks: Versioonikontroll (subversion, git jne) Kompileerimissüsteemid (make, automake, Ant, ...) Testimiseks ja monitoorimiseks: Testimise abivahendid ja automaattestide süsteemid (Valgrind, Jtest, ...) Automaatmonitoorimise süsteemid Priorities for software development
loomiseks, mis töötavad autonoomselt või koos teiste programmidega. Praegusel ajal on levinud järgmised üldised programmeerimiskeeled C, ++, Visual ++, Visual Basic, Java, Pascal, Fortran, Cobol. Spetsialiseeritud keel on tavaliselt otseselt seotud kindla rakendusprogrammiga või -süsteemiga ning selle keele abil saab luua ja käsutada tarkvara ainult antud süsteemi jaoks. Enamiku nüüdisaegsete rakendusprogrammide juurde kuuluvad arendusvahendid, milles käsutatakse ühte või mitut spetsialiseeritud keelt. Programmeerimiskeeled on formaalsed keeled, mis on ette nähtud arvutiprogrammide koostamiseks. Keel määrab kindlad reeglid programmi võimaliku struktuuri, selle komponentide ning töödeldavate andmete ja objektide jaoks. Programm koosneb tavaliselt mitmest suhteliselt sõltumatust osast ehk programmiüksusest. Keeled nimetavad neid mitmeti ja programmiüksustel võib olla erinev struktuur ja töökorraldus.
· Saadaval erinevad variandid, kogemuse puudumisel raske otsustada. Võimalik · Uurida sarnaseid süsteeme · Uurida erinevate RTSO-de käitumist teiste andmete põhjal (näit. Internetist) · Püüda hinnata objektiivsete kriteeriumite alusel] ??? Kas on õige? 44. Ostetud ja kirjutatud opsüsteemide eelised ja puudused. Kommertsiaalselt saadaval suur vali RTOS-e · PLUSS 1. Standardsete seadmete tugi 2. Võrguprotokollide tugi 3. Arendusvahendid saadaval 4. Multiplatvormsed 5. Kerge kasutada 6. Tootetugi · MIINUS 1. Liiga funktsionaalne (palju tarbetut) 2. Hind võib olla liiga suur osa seadme hinnast 3. Halvima juhu (worst case) käitumine pole teada tavaliselt 4. Võimalikud vead kriitilistes osades 45. Milliseid reegleid (kriteeriume) kasutatakse opsüsteemi valikul erinevate opsüsteemide võrdlemiseks? 1. Timeliness ajalise käitumise sobivus 2
töökiirus Päringu tegemisel ei tohi vastuse kuvamine võtta aega rohkem kui 5 sekundit. Andmete muudatuse salvestamine süsteemi poolt ei tohi võtta aega rohkem kui 5 sekundit. kasutajaliides klientidele mõeldud kasutajaliides peab olema igal juhul veebipõhine. kujundus Kasutada tuleb silmale pehmeid värve. arendusvahendid Arendusvahendina tuleks kasutada organisatsioonile hangitud CASE tarkvara Rational Rose. usaldusväärsus Tellimuste haldamise süsteemi tõrgeteta töö on hädavajalik organisatsiooni tõrgeteta töötamiseks. Tõrked tekitaksid suurt finantsilist kahju ja ka moraalset kahju. varukoopiad Kuna hallatavad andmed on organisatsiooni jaoks olulised ning sellepärast tuleb vähemalt kord nädalas teha
Näiteks mingid litsensi kommentaarid. Mõnikord on oluline koodiga kaasa öelda, miks see on tehtud. Kui tehakse workaround, mis ei ole omaette mõistlik, siis tuleks sinna kommentaari juurde panna. Mõnikord on rõhutamine, mis puudutab mitmes lõimes kasutamist või kui mingi asi on väga resurssi mahukas, siis see on asi, mida tuleks kommenteerida. Javadoc ehk avaliku api kirjeldus, mis töötab kõige paremini siis, kui ta on koodi juures: moodsad arendusvahendid kontrollivad ise, kas dokumentatsioonis kirjeldatud viited on õiged, kas parameetrid on õiged jne. The boyscout rule: “Leave the campground cleaner than you found it”. Seda põhimõtet peaks järgima koodi kirjutamisel. Design Patterns: Common solutions to frequent problems arising in object-oriented design. A systematized catalog of solutions by skilled and experienced developers. Simplifies communication between developers – “we are using the Strategy pattern”.
o Nõuete olemasolu/puudumine annab plaanidele uue mõõtme o Resursside olemasolu/puudumine o Plaane tuleb ümber vaadata ja muuta vastavalt olukorrale o Plaan on realistlik kuni 2 nädalat ette o Vahendid: Paber, pliiats, whiteboard Excel MS Project JIRA, Pivotal Tracker o HEA VAHEND ON OSA NÕUETE HALDUSEST Arendusvahendid o Notepad o Vi/vim o Eclipse o NetBeand o IntelliJ IDEA o XCode o AppCode o Visual Studio o +100 muud vahendit lisaks o Õigesti valitud vahend võib tõsta arendaja produktiivsust väga palju o Õpi oma vahendit kasutama ja tunne selle võimalusi o Kasuta shortcute o Ära aja pilti liiga suureks Versioonihaldus o Ajalugu. Seotus nõuetehaldusega o Muudab arenduse paindlikumaks
• Resursside olemasolu/puudumine • Plaane tuleb ümber vaadata ja muuta vastavalt olukorrale • Plaan on realistlik kuni 2 nädalat ette Planeermise vahendid : • Paber, pliiats. Whiteboard • Excel • MS Project • JIRA, Pivotal Tracker ! Hea vahend on osa nõuete haldusest. 99 Arendusvahendid : • “notepad” • vi/vim • Eclipse • NetBeans • IntelliJ IDEA • XCode • AppCode • Visual Studio • + 100 muud vahendit lisaks • Õigesti valitud vahend võib tõsta arendaja produktiivsust väga palju • Õpi oma vahendit kasutama ja tunne selle võimalusi • Kasuta shortcute • Ära aja pilti liiga kirjuks Planeerimise ajal mõtle:
•High cohesion .A module should encapsulate some coherent piece of functionality •Low coupling .Minimize the amount of dependencies between modules ITK 2007, Kalev Pihl Sissejuhatus informaatikasse 6 Süsteemide arhitektuur ja perekonnad ITK 2007, Kalev Pihl Sissejuhatus informaatikasse 7 Arhitektuurifaasid ajaloos 1945-1970 1970 -1995 1995-... Süsteemid Suurarvutid Mikroarvutid Võrgusüsteemid Tarkvara- platvormid Assembler, puhtad keeled Teegid, arendusvahendid, komponendid Komponentide sidumine Tootmise organiseerimine Suurfirma, avatud Väikefirma, suletud Vabad komponendid, sidumine, hooldus ITK 2007, Kalev Pihl Sissejuhatus informaatikasse 8 Tarkvara arhitektuur kui uurimisvaldkond •Edsger Dijkstra ja David Parnas olid esimesed teadlased, kes näitasid, kui suur on arhitektuuri mõju lõpptulemusele •Alates 1990 on uuringud laienenud tegeletakse: .Arhitektuuri mustritega .Arhitektuuri kirjelduskeeltega