Työkalujen yleinen arkkitehtuuri. Ylläpitoon liittyvät työkalut. Ylläpitotehtävien mukaiset työkalut. Työkalujen jaotteluperusteita



Samankaltaiset tiedostot
Arkkitehtuuriperustainen. Tuoterunkoihin perustuva ohjelmistotuotanto. Tuoterunkoarkkitehtuurien hyödyntäminen uudistamisessa

Johdantoluento. Ohjelmien ylläpito

Testaustyökalut. Luento 11 Antti-Pekka Tuovinen. Faculty of Science Department of Computer Science

Ohjelmien analysointi. ER-kaaviot

Ohjelmiston testaus ja laatu. Testaus yleistä

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 3. lokakuuta 2016

Työkalut ohjelmistokehityksen tukena

Ongelma(t): Miten jollakin korkeamman tason ohjelmointikielellä esitetty algoritmi saadaan suoritettua mikro-ohjelmoitavalla tietokoneella ja siinä

Suunnitteluvaihe prosessissa

Yhteydettömän kieliopin jäsennysongelma

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 30. marraskuuta 2015

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Ohjelmistoarkkitehtuuri

11/20: Konepelti auki

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Ylläpito. Ylläpidon lajeja

Sukupuu -ohjelma. Ossi Väre ( ) Joni Virtanen ( )

Ylläpito. Ylläpito. Ylläpidon lajeja Ohjelmistotuotanto, syksy 1998 Ylläpito

Työkalujen merkitys mittaamisessa

Algoritmit 1. Luento 3 Ti Timo Männikkö

Ohjelmointi 1 / syksy /20: IDE

Hakemistojen sisällöt säilötään linkitetyille listalle.

Teknillinen korkeakoulu T Tietojenkäsittelyopin ohjelmatyö. Testitapaukset - Koordinaattieditori

Oleelliset vaikeudet OT:ssa 1/2

Linkitetystä listasta perittyä omaa listaa käytetään muun muassa viestiin liittyvien vastausten säilömiseen.

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

ITKP102 Ohjelmointi 1 (6 op)

Testisarja Materiaali- ja valaistusparametrit

Ohjelmistojen mallintaminen Luokkakaaviot Harri Laine 1

5. HelloWorld-ohjelma 5.1

Mat Systeemien identifiointi

TimeEdit henkilökunnan ohje

Tavoite. Monitorit. Monitori Hoare Monitori. Minimoi virhemahdollisuuksia. Monitori Synkronointimenetelmiä Esimerkkejä

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori

4. Lausekielinen ohjelmointi 4.1

KOULUTUSPOLKU - KOULUTTAUDU LUOKKAKURSSEILLA MEPCO-OSAAJAKSI

Attribuuttikieliopit

Jäsennys. TIEA341 Funktio ohjelmointi 1 Syksy 2005

TIEA341 Funktio-ohjelmointi 1, kevät 2008

Verkkojulkaisuesittely

Muodolliset kieliopit

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

käännösprosessi Kääntäjä Konekielikääntäjä (Assembler) Yhdistelijä (linker) Lataaja (loader)

Prosessit etyön kehittämisessä

Testaussuunnitelma. Asdf. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Kriittisen polun hallinta CRIPMAN (CRItical Path MANagement) Pekka Maijala & Jaakko Paasi

Antti Ylä-Jarkko. Miten oppijan palveluita rakennetaan

7. Näytölle tulostaminen 7.1

Web-teknologiat. XML-datan kysely Topi Sarkkinen

Harjoitus 3: Matlab - Matemaattinen mallintaminen

Ulkoiset mediakortit Käyttöopas

Ohjelma-analysaattorit

Määrittelyvaihe. Projektinhallinta

815338A Ohjelmointikielten periaatteet Harjoitus 7 Vastaukset

Sisällys. 12. Monimuotoisuus. Johdanto. Alityypitys. Johdanto. Periytymismekanismi määrittää alityypityksen.

Automatisoinnilla tehokkuutta mittaamiseen

Finnan trendiraportti 2015 Yhteenvedot

Chapel. TIE Ryhmä 91. Joonas Eloranta Lari Valtonen

Tekoälyä testauksessa ja hyvän softan teossa

Toinen harjoitustyö. ASCII-grafiikkaa

Aluksi Kahden muuttujan lineaarinen epäyhtälö

Tietojärjestelmän osat

Staattinen testaus. Luento 5 Antti-Pekka Tuovinen. Faculty of Science Department of Computer Science

Suomi toisena kielenä -ylioppilaskoe. FT Leena Nissilä Opetusneuvos, yksikön päällikkö OPETUSHALLITUS

Sivuston tiedotprintersupportnu mbercare.com

58160 Ohjelmoinnin harjoitustyö

Jäsennysaiheesta lisää Täydentäviä muistiinpanoja TIEA241 Automaatit ja kieliopit, syksy 2016

4. Luokan testaus ja käyttö olion kautta 4.1

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

VirtuaaliKYLÄ. Työtur vallisuusanaly ysi.»

Matkahuolto lisäosa WooCommerce alustalle (c) Webbisivut.org

PROJEKTIN OHJAUS JA SEURANTA JOUNI HUOTARI, ESA SALMIKANGAS

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

LaCRIS-ohjeet tiedekuntien ja yksiköiden henkilöstöhallinnolle Liisa Hallikainen

ARVO - verkkomateriaalien arviointiin

Projektin suunnittelu

Ohjelmistotekniikan menetelmät, kesä 2008

Projektin suunnittelu. CMMI-käytänteet. Projektin suunnittelu CMMI-käytänteet

Tuotetietopankin alustanvaihdon muutostöiden luokittelu

Ohjelmoinnin perusteet Y Python

TIE Ohjelmistojen testaus 2016 Harjoitustyö Vaihe 3. Antti Jääskeläinen Matti Vuori

17/20: Keittokirja IV

Kokemuksia ja haasteita ASCOT -mittarin kääntämisestä ja soveltamisesta Suomessa. Ismo Linnosmaa Terveyden ja hyvinvoinnin laitos/chess

TIE Ohjelmistojen suunnittelu

Ohjelmistotuotteen hallinnasta

Aalto-yliopiston sähköisen asioinnin ja asiankäsittelyn alusta Apply-palvelu

Ohjelmistojen testaus ja hallinta. Gradle

Toinen harjoitustyö. ASCII-grafiikkaa 2017

Tieteelliset lehdet ja takautuva digitointi. Digitointirahaa onko sitä? -seminaari Jyrki Ilva

14/20: Keittokirja I

Johnson, A Theoretician's Guide to the Experimental Analysis of Algorithms.

Yhteiset konseptit ja periaatteet julkishallinnon palvelukehittämisen edistäjinä Kuntien avoin data hyötykäyttöön seminaari 27.1.

Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa k

Puheenkäsittelyn menetelmät

Testausdokumentti. Sivu: 1 / 10. Ohjelmistotuotantoprojekti Sheeple Helsingin yliopisto. Versiohistoria

Luento 5. Timo Savola. 28. huhtikuuta 2006

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

12. Monimuotoisuus 12.1

Opetussuunnitelma uudistui mikä muuttui? Tietoja Linnainmaan koulun huoltajille syksy 2016

Transkriptio:

Ylläpitoon liittyvät työkalut Käyttötarkoituksia ohjelman ymmärtäminen visualisointi etsintä dokumentointi muutosten hallinta koodin muotoilu (pretty printer) erikoistuneet editorit metriikkoihin liittyvät työkalut Muita työkaluja tuotteenhallinta versionhallinta testaus virheenetsintä (debuggeri) Järjestelmä ja sen dokumentit Työkalujen yleinen arkkitehtuuri Jäsennys, semanttinen analyysi Kerätyt tiedot Näkymien kokoonpano Uudet näkymät järjestelmästä muotoilu grafiikka dokumentti metriikka logiikka raportti Ylläpitotehtävien mukaiset työkalut Työkalujen jaotteluperusteita Testaus, virheen etsintä 8 % 5 % Kääntäminen, konvertointi Tuotteenhallinta, versionhallinta Uudelleenrakentaminen Takaisinmallinnus 47 % Ymmärtäminen Muutoksen toteuttaminen Testaus Tehtävän mukaan takaisinmallinnus uudelleenrakentaminen muutosten hallinta Staattiset ja dynaamiset työkalut utomaattiset ja käyttäjän ohjaamat Selaamiseen ja jäsentämiseen perustuvat 4 Staattiset vs. dynaamiset työkalut Esim. muutosten hallinnassa mihin ohjelman kohtiin muutos vaikuttaa Staattiset työkalut perustuvat kontrollivuohon ja aliohjelmien kutsusuhteisiin ynaamiset työkalut perustuvat testiajoihin (tiedustelut) jako herättäviin ja poissulkeviin testeihin tutkitaan, mitkä koodikomponentit tulivat suoritettua herättävillä testiajoilla mutta ei poissulkevilla Ohjelmien ylläpidon työkalut Monissa ylläpitotyökaluissa tarvitaan kääntäjätekniikkaa Kääntäjät korkeamman tason kieleltä siirrytään matalamman tason toteutukseen Ylläpitotyökalut (takaisinmallinnustyökalut) matalamman tason toteutuksesta siirrytään korkeammalle abstraktiotasolle 5 6

Yhteisiä toimintoja Selaaminen, leksikaalianalyysi (scanning) Jäsentäminen, syntaksianalyysi (parsing) Tyyppitarkistus Tietovuoanalyysi Kontrollivuoanalyysi Viipalointi Selaaminen Kääntäjän leksikaalianalyysi merkkijonosta (ohjelmasta) tuotetaan kielen symboleita (token) Ylläpidossa selaamisen tarkoitus voi olla ohjelman ymmärtäminen voidaan esim. paikallistaa tietyn muuttujan esiintymiä Selaajageneraattorit 7 8 Jäsentäminen Kääntämisen jäsennysvaiheessa tarkistetaan, voiko kielen kielioppi tuottaa annetun symbolijonon (ohjelman) Ylläpidossa ja uudistamisessa käytetään jäsentäjän tuottamia jäsennyspuita ohjelman kompleksisuuden ja muutoskustannusten mittaaminen Jäsentäjägeneraattorit Jäsentämisen ongelmia ylläpidossa Liian tarkat tarkistukset esim. puuttuvat ohjelman osat Ohjelmien erikieliset osat Eri työkalut voivat tuottaa erilaisen jäsennyksen 9 Tyyppitarkistus Kääntämisessä tarkistetaan tyyppien yhteensopivuus kielen sääntöjen mukaisesti esim. sijoituslauseet, parametrien välitys Ylläpidossa ja uudistamisessa tyyppitarkistuksen tulokset voidaan tallentaa jäsennyspuuhun myöhempää tarkastelua varten esim. samaa tyyppiä olevien muuttujien etsiminen Tyyppitarkistuksen määrittelyyn voidaan käyttää syntaksiohjattuja käännösmekanismeja esim. attribuuttikielioppeja Tietovuoanalyysi Kääntämisessä tietovuoanalyysi kertoo muuttujien arvojen muutoksista, arvojen säilymisestä ja muuttujaviittauksista Ylläpidossa saadaan tietoa muuttujien välisistä riippuvuuksista esimerkiksi määrittely-käyttö suhteet voidaan esimerkiksi paikallistaa kaikki muuttujat, jotka ovat riippuvaisia jostakin tietystä muuttujasta

Kontrollivuoanalyysi Kääntämisessä kontrollivuoanalyysi selvittää kontrollin kulkemisen ohjelmassa tarvitaan tietovuon tarkastelussa tarvitaan koodin optimoinnissa Ylläpidossa tukee ohjelman ymmärtämistä, koska ohjelman rakenne saadaan paremmin esiin Viipalointi Etsitään pienin mahdollinen määrä koodia niin, että tietty muuttuja saa arvonsa voidaan määrittää ohjelman osat, jotka riippuvat annetusta muuttujasta Voidaan käyttää virheiden etsinnässä, ohjelmien ymmärtämisessä, koodin rinnakkaistamisessa 4 Toimintojen vertailu Leksikaalianalyysi Syntaksianalyysi identtisiä vaiheita Semanttinen analyysi Koodin generointi erilaista Koodin optimointi perustuu kontrolli- ja tietovuon tarkasteluun ohjelman rakennetta ja muuttujien välisiä riippuvuuksia selvennetään näin tapahtuu myös, kun koodista tehdään ymmärrettävämpää Erilaisia ylläpitotyökaluja Kielestä riippumattomat työkalut eivät tarvitse sisäänrakennettua tietoa mistään ohjelmointikielestä esim. grep Kielestä riippuvat työkalut käyttävät sisäänrakennettua tietoa ohjelmointikielestä esim. -kääntäjä Geneeriset (parametroidut) työkalut ohjelmointikieli annetaan parametrina 5 6 Geneeriset työkalut Työkalut Käyttötarkoituksia: ohjelman analysointi visualisointi uudelleenrakentaminen automaattinen kielikonversio Vanhat ohjelmat voivat olla monikielisiä Tietovuoanalyysi 7 8

Rigi Rigi main listnext mylistprint listid listfirst listinsert listinit main listcreate list 9 oderawler UPLO Esimerkkejä metriikoista: - attribuuttien määrä (leveys) - operaatioiden määrä (korkeus) -LO (väri) Ovation Versioiden väliset erot Tiedosto 7 9 7 ika 4 4

ali - työkalupakki Työkalujen tarpeellisuus Tietojen kerääminen Selaus Yhdistely Jäsennys Profilointi Tietovarasto Ulkoinen manipulointi Visualisointi nalyysi ikaa kuluu: työkalun kehittämiseen työkalun opettelemiseen työkalun räätälöintiin, mukauttamiseen tilanteeseen sopivaksi Toisaalta ilman työkaluja tapahtuva koodin analysointi (ymmärtäminen) on vaikeaa tehtävän alussa 5 6 5