ITK130 Ohjelmistojen luonne



Samankaltaiset tiedostot
Sytyke ry:n laivaseminaari Software Technology Transfer Pekka Forselius

Laatukustannukset. Laadun hallinta. Laadun kustannuksista

Laadun hallinta. Laatukustannukset. Laadun kustannuksista. Sami Kollanus TJTA330 Ohjelmistotuotanto

Laadun hallinta. Laatukustannukset. Sami Kollanus TJTA330 Ohjelmistotuotanto

Yleiskuvaus - LVpalvelukerroksen. laadulliset vaatimukset Jari Kokko & Vesa Mettovaara LUVAT JA VALVONTA -KÄRKIHANKE

Käytettävyyslaatumallin rakentaminen verkkosivustolle

ISO/IEC sarja (SQUARE)

Ohjelmistotuotanto, s /27/2003

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmistojen testaus

Tietojärjestelmän osat

9. Ohjelmistoarkkitehtuurien arviointi

Ohjelmistoarkkitehtuurit kevät

Ohjelmistoarkkitehtuurit

Ohjelmistoprosessit ja ohjelmistojen laatu Kevät Ohjelmistoprosessit ja ohjelmistojen. Antti-Pekka Tuovinen (Jukka Paakki et al.

Kevät Ohjelmistoarkkitehtuurit 2014

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmistoarkkitehtuurien arviointi

Testaus osana ohjelmistojen elinkaarta II

TOIMINNALLINEN MÄÄRITTELY MS

Johdantoluento. Ohjelmien ylläpito

Testaaminen ohjelmiston kehitysprosessin aikana

OHJELMISTOJEN LAATU. Ohjelmistoprosessit ja ohjelmistojen laatu Kevät Laatu. Ohjelmistoprosessit ja ohjelmistojen. Neljä näkökulmaa laatuun

Ohjelmistoprosessit ja ohjelmistojen laatu Kevät Ohjelmistoprosessit ja ohjelmistojen. Antti-Pekka Tuovinen (Jukka Paakki et al.

Johdatusta ohjelmistotekniikkaan

OHJELMISTOJEN LAATU. Ohjelmistoprosessit ja ohjelmistojen. Laatu. Laatu. Neljä näkökulmaa laatuun. Ohjelmisto

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

Uudelleenkäytön jako kahteen

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen

Kevät 2016 Arkkitehtuurin arviointi, ATAM. Ohjelmistoarkkitehtuurit 2016

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

$$$ Raha ratkaisee. $$$ Raha ratkaisee. Ohjelmistotuote. Ohjelmistotekniikan määritelmä

Toimilohkojen turvallisuus tulevaisuudessa

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

Oleelliset vaikeudet OT:ssa 1/2

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

8. Laadunvalvonta. Mitä laatu on?

Aluksi. Riskien hallinta. Riskityyppejä. Riskillä on kaksi ominaisuutta. Reaktiivinen strategia. Proaktiivinen strategia

Ohjelmistotekniikka - Luento 2

Testaus-tietoisku: Tärkeimpiä asioita testauksesta projektityökurssilaisille

Ohjelmistotuotanto Laatu & laatujärjestelmät

1.3 Katsaus ohjelmistotuotannon kehittymiseen

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Koekysymyksiä. Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistojen suorituskyky

TIETOKANNAN SUUNNITTELU

Ohjelmistojen vaatimusmäärittely Helsingin yliopisto, TKTL, s2013. Harri Laine 1. Vaatimusmäärittely. Vaatimusmäärittely. Vaatimusmäärittely

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

Ohjelmistotuotteen hallinnasta

Luento 12. Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila

Käytettävyyslaatumallin rakentaminen web-sivustolle. Oulun yliopisto tietojenkäsittelytieteiden laitos pro gradu -suunnitelma Timo Laapotti 28.9.

ITK130 Ohjelmistoprosessi

Laadukkaiden ja luotettavien ohjelmistojen vaatimukset ja miten ne täytetään?

1. Johdanto. Ohjelmistotuotannon ongelmia

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Ketterä vaatimustenhallinta

Ohjelmistojen suunnittelu

Software engineering

Suunnitteluvaihe prosessissa

Hieman lisää malleista ja niiden hyödyntämisestä

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi

Järjestelmäarkkitehtuuri (TK081702) Pilvipalvelut. Pilvipalvelut - lähtökohtia

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

KÄYTETTÄVYYSPÄIVÄ

Onnistunut SAP-projekti laadunvarmistuksen keinoin

JHS 182 ICT-palvelujen kehittäminen: Laadunvarmistus Liite 3 Mittareita

Koulutuksen suhdannevaihtelut. Zeppeliinistä suihkukoneaikaan

HELIA 1 (19) Outi Virkki Käyttöliittymät ja ohjelman suunnittelu

Luento 6. Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila

Ohjelmistotuotanto, syksy laatu Ohjelmiston laatu

7. Koneenohjausjärjestelmien suunnittelumallit. OhAr Veli-Pekka Eloranta

Projektinhallinta: kustannusarvio

Juha Taina, Marko Salmenkivi ja Kjell Lemström,

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Ohjelmiston testaus ja laatu. Testaustasot

Ohjelmistotuotanto, laadunvalvonta Syksy Laadunvalvonta. Mitä laatu on? Laadun komponentit. Laatuvaatimukset.

IBM Iptorin pilven reunalla

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Market. Need Market Research New Needs. Technical Research. Current Technological Level

Käyttövaltuushallinnan hyödyt tehokkaasti käyttöön. Johanna Lampikoski, RM5 Software Juha Arjonranta, TeliaSonera Finland

OHJ-4301 Sulautettu Ohjelmointi

Tapahtuipa Testaajalle...

Tutkittua tietoa. Tutkittua tietoa 1

Pilvilaskennan perusteet ja sanasto (ISO/IEC 17788) sekä jatkotyöstö. SFS SR-310 Pasi Mäkinen, Open Source Lead, Microsoft

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

Käytettävyys verkko-opetuksessa Jussi Mantere

Ohjelmistojen laatu asiakkaan näkökulmasta

Käytettävyyden testaus

Standardi IEC Ohjelmisto

Käytettävyyssuunnittelu. Kristiina Karvonen Käytettävyysasiantuntija Nokia Networks

KÄYTETTÄVYYSPÄIVÄ Meeri Mäntylä (sis. osia Anne Pirisen esityksestä) KÄYTETTÄVYYS. Mitä merkitystä sillä on?

Projektityö

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

Käytettävyydestä bisnestä: Tutkimuksesta tuotekehityksen kilpailutekijäksi

Suunnitteluratkaisut ja niiden arviointi sulautetuissa järjestelmissä

1510 Ihminen ja tietoliikennetekniikka

Käyttäjäkeskeinen suunnittelu

Ohjelmistotekniikka: Luento 6

Vikasietoisuus ja luotettavuus

Ohjelmistojen mallinnus, s2008 HY/TKTL, 28/10/2008. Harri Laine 1. Ohjelmisto

Transkriptio:

ITK130 Ohjelmistojen luonne Luennon sisältö Ohjelmistotekniikka ja vaatimukset Ohjelmistotuote Ei-toiminnallisten vaatimusten luokittelu Sisäiset ja ulkoiset vaatimukset Oikeellisuus Luotettavuus Kestävyys Suorituskyky Käytettävyys Testattavuus Ylläpidettävyys Uudelleenkäytettävyys Siirrettävyys Ymmärrettävyys Yhteentoimivuus Tyypillisiä prosessien luonteenpiirteitä Oikea-aikaisuus Sovellusriippuvaiset laatuvaatimukset Esimerkkejä laatuvaatimuksista McCall laatumalli ISO 9126 Bachin laatukriteerijako Ei-toiminnallisten ominaisuuksien mittaaminen

Projektin hallinta Ohjelmointi Tuotteen hallinta Työkalut Menetelmät Toteutus Suunnittelu Testaus Laatu Ylläpito Vaatimukset Ohjelmistotekniikka Prosessi (process) Ihmiset (people) Projekti (project) Tuote (product) Ohjelmistotekniikka ja vaatimukset Ohjelmistotekniikka on tiedollista ja ihmiskeskeistä toimintaa Ohjelmistot rakennetaan täyttämään tietyt toiminnalliset vaatimukset ja ei-toiminnalliset, laadulliset, vaatimukset Ohjelmistoprosessinkin tulee täyttää tietyt eitoiminnalliset vaatimukset

Ohjelmistotuote Eroaa perinteisistä tuotteista Abstrakti Mukautuvainen Ihmiskeskeinen Ohjelmistotuotteen ominaisuuksia voivat olla esimerkiksi Käyttäjän kannalta Luotettavuus Tehokkuus Helppokäyttöisyys Kehittäjän kannalta Testattavuus Ylläpidettävyys Laajennettavuus Projektipäällikön kannalta Tuottavuus Ennustettavuus Kontrolloitavuus Ei-toiminnallisten vaatimusten luokittelu Sisäinen - Ulkoinen Ulkoinen -> näkyy käyttäjälle Sisäinen -> koskettaa kehittäjiä Tuote - Prosessi Päämäärä on kehittää tuotteita Prosessin avulle tehdään tuote Sisäiset vaatimukset vaikuttavat ulkoisiin vaatimuksiin Prosessin vaatimukset vaikuttavat tuotteen vaatimuksiin

Sisäiset ja ulkoiset vaatimukset Ylläpidettävyys Luotettavuus Siirrettävyys Käytettävyys Toimintoparametrien määrä Syklomaattinen kompleksisuus Ohjelman koko koodiriveinä Virheilmoitusten määrä Käyttäjän oppaan pituus Oikeellisuus Ohjelmisto toimii oikein jos se täyttää toiminnalliset vaatimukset Olettaen, että vaatimukset ovat olemassa Jos määrittelyt ovat formaaleja, oikeellisuus voidaan määritellä järjestelmällisesti Voidaan todistaa teoreeman avulla tai hyljätä vastaesimerkeillä (testaus)

Oikeellisuuden rajoitukset Se on absoluuttinen (kyllä/ei) piirre Ei ole olemassa oikeellisuuden määrä käsitettä Ei ole olemassa poikkeuksen vakavuus käsitettä Mitä jos määrittelyt ovatkin väärässä Väärät vaatimukset Virheet sovellusaluetietämyksessä Luotettavuus Luotettavuus Epävirallisesti: käyttäjä voi luottaa ohjelmiston toimivuuteen Matemaattisesti: todennäköisyys sille, että ohjelmistossa ei tapahdu vikoja tietyn ajan kuluessa Jos määrittelyt ovat oikeita, oikeelliset ohjelmat ovat luotettavia, mutta ei toisin päin Käytännössä kuitenkin määrittelyt voivat olla vääriä Reliability Correctness ideaalitilanne

Kestävyys Kestävyys Ohjelmisto toimii järkevästi ennakoimattomissakin tilanteissa (esim. väärä syöte, laitteiston kaatuminen) Suorituskyky Resurssien tehokas käyttö Muisti, prosessointiaika, kommunikointi Voidaan todistaa Kompleksisuus analyysi Suorituskykyarviointi (mittaus, malli tai simulointi) Suorituskyky vai vaikuttaa skaalautuvuuteen Sovellus, joka toimii hyvin pienessä paikallisessa verkossa, ei ehkä toimi isossa intranetissä.

Käytettävyys Tiedetyt käyttäjäryhmät pitävät järjestelmää helppokäyttöisenä Toisin sanoen: käyttäjäystävällisyys Subjektiivista, vaikea arvioida Käyttöliittymässä eniten huomioitava Visuaalinen vs. tekstuaalinen Testattavuus Miten helppo on testata ominaisuuksia Enimmäkseen sisäinen piirre Voi olla ulkoinenkin, esim. turvallisuuskriittisissä sovelluksissa

Ylläpidettävyys Ylläpidon helppous Ylläpito: julkaisun jälkeiset muutokset Ylläpitokustannukset ylittävät 60% ohjelmistotuotannon kokonaiskustannuksista Ylläpidon luokittelu korjaava: poistetaan jäljelle jääneitä vikoja (20%) mukautuva: ympäristön muutoksiin mukautuminen (20%) parantava:laadulliset parannukset (>50%) Voidaan jakaa Korjattavuuteen Ylläpidettävyys Mahdollisuus korjata vikoja järkevässä ajassa Kehittämiseen Mahdollisuus mukautua ohjelmistoympäristön muutoksiin ja parantaa ohjelmistoa järkevässä ajassa

Uudelleenkäytettävyys Olemassa olevaa tuotetta (tai komponentteja) käytetään pienin muutoksin rakentamaan uutta tuotetta Pätee myös prosessiin Standardiosien uudelleenkäyttö on alan kypsyysmittari Siirrettävyys Ohjelmisto toimii erilaisilla laitteistoalustoilla tai ohjelmistoympäristöissä Merkityksellinen kun uusia alustoja ja ympäristöjä otetaan käyttöön Merkityksellinen kun ohjelmisto otetaan käyttöön heterogeenisessä tietoverkkoympäristössä

Ymmärrettävyys Ohjelmiston ymmärtämisen helppous Ohjelmaan tehtävät muutokset edellyttävät ohjelman ymmärtämistä Yhteentoimivuus Järjestelmän kyky toimia rinnakkain ja yhdessä toisten järjestelmien kanssa Tyypillisiä prosessien luonteenpiirteitä Tuottavuus Tehokkuus ja suorituskyky Oikea-aikaisuus Kyvykkyys toimittaa tuote ajoissa Näkyvyys Kaikki vaiheet ja nykyinen tila on dokumentoitu selkeästi Kestävyys, oikeellisuus ja luotettavuus Uudelleenkäytettävyys

Prosessin oikea-aikaisuus Usein kehitysprosessi ei seuraa käyttäjän vaatimusten kehitystä Yhteensopimattomuus tapahtuu käyttäjän vaatimusten ja tuotteen statuksen välillä Function User needs Actual system capabilities t 0 t 1 t 2 t t 3 4 Time Sovellusriippuvaiset laatuvaatimukset Tietojärjestelmä Tiedon eheys Turvallisuus Tiedon saatavuus Tapahtuman suorituskyky Käytettävyys Reaaliaikajärjestelmä Oikeellisuus Luotettavuus Turvallisuus Käytettävyys

Esimerkkejä laatumalleista McCall laatumalli Tuotteen muuntautumiskyky Ylläpidettävyys Joustavuus Testattavuus Tuotteen sopeutuminen uusiin ympäristöihin Siirrettävyys Uudelleenkäytettävyys Yhteensopivuus Tuotteen toiminnalliset ominaisuudet Oikeellisuus Käytettävyys Luotettavuus Tehokkuus Tietoturvallisuus

ISO 9126 Toiminnallisuus (Functionality) Suitability Accuracy Interoperatibility Security Luotettavuus (Reliability) Maturity Fault tolerance Recoverability Käytettävyys (Usability) Understandibility Learnability Operatibility Attractiveness

ISO 9126 Tehokkuus (Efficiency) Time behaviour Resource utilization Ylläpidettävyys (Maintainability) Analyzable Changeability Stability Testability Siirrettävyys (Portability) Adaptability Installability Coexistence Replaceability Bachin laatukriteerijako Kyvykkyys Luotettavuus Käytettävyys Suorituskyky Asennettavuus Yhteensopivuus Tuettavuus Testattavuus Ylläpidettävyys Siirrettävyys Lokalisoitavuus Bach J. 1999 Heuristic Risk-based Testing, Software Testing & Quality Engineerinng, no 11

Ei-toiminnallisten ominaisuuksien mittaaminen Jotta pystytään mittaamaan, on ominaisuudet pystyttävä määrittelemään tarkasti Monet ominaisuuksista ovat subjektiivisia Useimmille ominaisuuksille ei standardimittareita määritelty Luentotehtävä 2 Kirjaa millaisia laadullisia vaatimuksia voisit asettaa toimiville, kaupallisille www-sivuille. Selitä myös lyhyesti mitä vaatimuksilla tarkoitetaan tässä yhteydessä. Käytättävyyden lisäksi pitäisi löytyä ainakin 5 vaatimusta.