Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!



Samankaltaiset tiedostot
Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Tietojärjestelmän osat

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

UML-kielen formalisointi Object-Z:lla

Ohjelmistotekniikan menetelmät, UML

UML- mallinnus: Tilakaavio

Ohjelmistojen suunnittelu

Dynaaminen analyysi II

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

TOIMINNALLINEN MÄÄRITTELY MS

Computing Curricula raportin vertailu kolmeen suomalaiseen koulutusohjelmaan

Collaborative & Co-Creative Design in the Semogen -projects

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

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

LAINAUSJÄRJESTELMÄ. Kyllä. Vihermetsän lukion kirjastossa on samankaltainen, mutta monimutkaisempi lainausjärjestelmä:

Laadukas vaatimustenhallinta. Pekka Mäkinen Copyright SoftQA Oy

Dynaaminen analyysi II Luento 4 Antti-Pekka Tuovinen

7. Product-line architectures

Toimilohkojen turvallisuus tulevaisuudessa

Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio Harri Laine 1

Ohjelmistotekniikan menetelmät, käyttötapauksiin perustuva vaatimusmäärittely

Joku hauska otu-aiheinen kuva (no ei oo pakko olla hauska) OHJ-3010 Ohjelmistotuotannon perusteet, kesä 2012

Ohjelmistoprojektien hallinta Vaihejakomallit

VH5, JOTU, MagicDraw:n käyttö

Ohjelmiston vaatimusmäärittely. tietoteknisen järjestelmän osat

Suunnitteluvaihe prosessissa

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Prosessiajattelu. Organisaation prosessikuvaus - CMMI. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessien määritys CMMI käytänteet

Johdanto. TIE303 Formaalit menetelmät, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos.

VBE2 Työpaketit Jiri Hietanen / TTY

Ohjelmistojen mallintaminen, mallintaminen ja UML

UML:n yleiskatsaus. UML:n osat:

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1

Mallinnus. 5. Järjestelmämallit. Abstraktiot. Mallinnuksen etuja. Arkkitehtuurimalli. Yhteysmallit. Ohjelmistotuotanto, järjestelmämallit Kevät 2005

Formaalit menetelmät: Kirjaston formalisointi Z-kuvauskielellä

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012

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

5. Järjestelmämallit. Mallinnus

Esimerkki 1: Kahviautomaatti.

Käyttötapausanalyysi ja testaus tsoft

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

MagicDraw-pikaohje (VH5)

Tietokannan suunnittelu

Vaatimusten hallinta ja vaatimusmäärittely

Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia.

Standardi IEC Ohjelmisto

Ohjelmistojen mallintaminen, kesä 2010

Prosessiajattelu. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessikuvaus - CMMI. Sami Kollanus TJTA330 Ohjelmistotuotanto 3.4.

Toiminnallinen turvallisuus

T Testitapaukset TC-1

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Tilakaaviot, sekvenssikaaviot (Haikala, Märijärvi ss , )

Sisällys. Kaavioiden rakenne. Kaavioiden piirto symboleita yhdistelemällä. Kaavion osan toistaminen silmukalla. Esimerkkejä. 2.2

TIE = JOTU. VH5 - MagicDraw

Ohjelmistotuotanto, prosessit Syksy Ohjelmistotuotantoprosessi. Prosessimalli. Prosessimallien perustehtävät. Prosessimallin vaihejako

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 22. toukokuuta 2013

TIEKE Verkottaja Service Tools for electronic data interchange utilizers. Heikki Laaksamo

Avoimen lähdekoodin kaksitasokielioppikääntäjä

Software engineering

Teollisuusautomaation standardit Osio 9

Ontologiat merkitysten mallintamisessa: OWL. Eeva Ahonen

Vaatimusmäärittely- ja hallinta. Peruskäsitteet. Syyt aikataulun ja budjetin ylitykseen. TJTA330 Ohjelmistotuotanto

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

ALKEIS-kielen semantiikan aksiomaattinen määrittely

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään

Ohjelmistotekniikan menetelmät, mallintaminen ja UML

Ohjelmistojen mallintaminen, mallinnustekniikat käytännössä

TietoEnator Pilot. Ari Hirvonen. TietoEnator Oyj. Senior Consultant, Ph. D. (Economics) presentation TietoEnator 2003 Page 1

ITK130 Ohjelmistojen luonne

Ohjelmistojen vaatimusmäärittely Helsingin yliopisto, TKTL, s2013. Harri Laine 1. Tietovuokaaviot (data flow diagrams)

4. Vaatimusanalyysi. Vaatimusanalyysin tavoitteet

JOHDANTO KURSSIN AIHEPIIRIIN

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

Projektityö

Konstruktiokielioppi ja osittaisen produktiivisuuden arvoitus

Määrittelyvaihe. Projektinhallinta

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Eero Hyvönen. Semanttinen web. Linkitetyn avoimen datan käsikirja

21~--~--~r--1~~--~--~~r--1~

Automaattiteoria diskreetin signaalinkäsittelyn perusmallit ja -menetelmät ( diskreettien I/O-kuvausten yleinen teoria)

Toimintokaavio. UML-Toimontokaavio 1

Ohjelmistoarkkitehtuuri

Prosessien kehittäminen. Prosessien parantaminen. Eri mallien vertailua. Useita eri malleja. Mitä kehitetään?

2_1----~--~r--1.~--~--~--,.~~

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Projektin tavoitteet

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

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

2. Ohjelmistotuotantoprosessi

Laboratorion näkökulma muuttuvaan standardiin 15189: 2012 mikä muuttuu?

Ohjelmistojen mallintaminen, käyttötapauksiin perustuva vaatimusmäärittely

Ohjelmistojen testaus

HITSAUKSEN TUOTTAVUUSRATKAISUT

Vaatimusmäärittely- ja hallinta

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton

Ohjelmistojen mallintaminen Olioperustainen ohjelmistomalli Harri Laine 1

FORMAALI SYSTEEMI (in Nutshell): aakkosto: alkeismerkkien joukko kieliopin määräämä syntaksi: sallittujen merkkijonojen rakenne, formaali kuvaus

Yhteenveto. Menettelytavat

Transkriptio:

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

SPSIFIKAATIO spesifikaatio implementaatio mitä tehtään? miten toteutetaan? 1. Are we building the right product? 2. Are we building the product right? VAATIMUSLUOKITTLU Toiminnalliset vaatimukset: mitä ohjelma tekee? laskutoimitukset, rakenne, pohjatiedot, rajapinnat,... i-toiminnalliset vaatimukset: miten ohjelma tekee? käytettävyys, tekniset ratkaisut, suorituskyky, luotettavuus, turvallisuus, siirrettävyys,... Rajoitteet: mista ei saa tinkiä? hinta, lainsäädäntö, standardit, aikataulut, työkalut,...

VAATIMUSTN KRÄÄMINN: i): käyttäjäkyselyt ii): olemassaolevien ratkaisujen mallit iii): asiakasjärjestelmän piirteiden selvittäminen iv): prototyypitys user user requirements requirements specification feedback models to be validated elicitation kwledge request more kwledge specification requirements model validation results validation domain kwledge problem domain domain kwledge VAATIMUSTN LAATUKRITRJÄ: oikeellisuus (correctness) kattavuus (completeness) luokiteltavuus (rankness) muutettavuus (modifiability) yksiselitteisyys (unambiquity) johdonmukaisuus (consistency) todennettavuus (verifiability) jäljitettävyys (traceability)

KÄYTTÖTAPAUS = SANALLINN KUVAUS + KÄYTTÖTAPAUSKAAVIO

Käyttötapauskaavio: Order goods initiator initiator Confirm order Buyer initiator Seller Pay order << extent >> Accounting system Make transaction Pay overdraft fee Kaavion rakenne ja käytetyt merkinnät: Osa: Symboli: Merkitys: käyttötapaus ellipsi&nimi järjestelmän toiminnan kuvaus tekijä (aktori) tikku-ukko käyttäjän, laitteen tai toisen järjestelmän suorittava rooli kommunikointisuhde yhtenäinen viiva aktorien ja käyttötapausten liittäminen toisiinsa (yhteydettaja = initiator) yleistyssuhde yhtenäinen nuoli nuolen alkupään käyttötapaus yleistyy nuolen loppupään vastaavaksi sisältymissuhde katkoviivanuoli nuolen alkupään käyttötapaus sisältyy nuolen loppupään tapaukseen laajennussuhde katkoviivanuoli nuolen alkupään käyttötapaus laajentaa nuolen loppupään tapausta

SPSIFIKAATIOT JA KUVAUSKILT spesifikaatioilla monia tehtäviä (ongelmat, kommunikointi, dokumentointi; lähtökohta V&V:lle, implementoinnille ja ylläpidolle sekä laajennuksille) spesifikaatio esitetään kuvauskielen avulla ei yhtenäistä standardia KUVAUSKILTN RYHMITTLY päformaalit menetelmät luonteeltaan kuvailevia esim. seimätaulutekniikat eksaktia kuvausta vaikea tehdä Puoliformaalit menetelmät semantiikka ei tarkasti määrätty mahdollisuuksia määrätä formaalisuuden aste esimerkiksi OMT(++)-menetelmä Formaalit menetelmät tarkka syntaksi, eksakti spesifikaatio perusteina esim. joukko-oppi ja matemaattinen logiikka esimerkkejä: Z, B, LOTOS, STLL, SDL, VDM

Nimi Päätöstaulu R Vuokaaviot Tilakone JSD JSP LCP Meta IV OBJ OOD PDL Petriverkot SA/SD SA/WM SADT SSADM Tilakaaviot Yleiskuvaus Decision Table. Matriisimuotoinen esitys tilasiirtymien logiikasta. ntity-relationship Model. Tietoalkioiden koostumusta ja niiden välistä rakennetta esittävä diagrammitekniikka. Flowcharts. Diagrammitekniikoiden perhe, joiden avulla kuvataan kontrollin muutoksia ohjelman eri osissa ja niiden välillä. FSM = Finite State Machine. Järjestelmän kuvaaminen sen tilojen ja niiden välisten siirtymien (= tilasiirtymien) avulla. Jackson System Development. Järjestelmän kuvaaminen rakenteellisten (Jackson) diagrammien (sekvenssi, iteraatio, valinta) ja pseudokoodin avulla. Jackson Structured Programming. JSD:tä edeltänyt programming-in-thesmall tekniikka tietorakenteiden pohjalta tehtävälle kuvaukselle. Logical Construction of Programs/Warnier-Orr method. JSP:tä vastaava myös tietorakenteisiin perustuva tekniikka. Mallipohjainen VDM-menetelmän käyttämä kuvauskieli. Algebrallinen kuvausmenetelmä. Object-oriented Design. Program Design Language. Rakenteiseen luonlliseen kieleen perustuva tapa esittää ohjelmaa eri abstraktiotasoilla. Petri nets. Graafinen, erityisesti rinnakkaisprosessien esittämiseen käytetty menetelmä, jossa järjestelmä kuvataan joukkona tiloja ja niiden välisiä siirtymiä. Tilasiirtymät tapahtuvat siirtymäehtojen lauetessa, jolloin eri prosesseja voidaan synkroida keskenään (lisätietoja TTKK). Structured Analysis/Design. Tietovuon kuvaustekniikka. Ward-Mellon xtension of Structured Analysis. SA:n laajennus reaaliaikaisuuden huomioottamiseksi. Structured Analysis and Design Technique. Graafinen kuvauskieli erityisesti hierarkisten suhteiden esittämiseksi. Structured Systems Analysis and Design Method. dellisiä käyttämä ohjelmistosuunnittelumenetelmä. Statecharts. Tilansiirtokaaviotekniikat, joita on usein laajennettu rinnakkaisuuden ja eri abstraktiotasojen kuvaamista varten.

FORMAALI KUVAUSKILI Formaali kuvauskieli on kolmikko (Syn, Sem, Sat), missä Syn ja Sem ovat joukkoja ja Sat Syn Sem on niiden välinen relaatio. Joukkoa Syn sataan kuvauskielen syntaktiseksi alueeksi (syntactic domain), joukkoa Sem sen semanttiseksi alueeksi (semantic domain) ja relaatiota Sat sen merkitysrelaatioksi (satisfies relation). FORMAALIN MNTLMIN LUOKITTLU Mallipohjaiset menetelmät: joukko-opillinen mallistruktuuri, jossa toiminta kuvataan joukolla loogisia rakenteita ja näiden välisiä operaatioita. sim. Z, B ja VDM. tiedonhallintarakenteet (esim. tietokannat). Ominaisuuspohjaiset menetelmät: järjestelmän epäsuora kuvaus sille asetettujen (toiminnallisten) ominaisuuksien (rajoitteiden) kautta. Voidaan edelleen jakaa Algebrallisiin: ohjelman käyttämien tietotyyppien esitys algebrallisina kokonaisuuksina, esim. STLL, LOTOS, SDL, CSP, Petriverkot, Raise, jne. rinnakkaisjärjestelmät&ajastus (tietoliikenne) Aksiomaattisiin: ohjelman funktionaalisuuden määritys esi- ja jälkiehtojen sekä näiden välisen loogisen muunksen avulla. esim. Floyd-Hoaren logiikka, Dijkstran WP-calculus, Leslie Lamportin TLA, jne. perintöä ohjelmien oikeaksi todistamisesta

Phase R Q U I R M N T D S I G N I M P L M N T A T I O N A N A L Y S I S Customer (validation) customer s need valid? (behaviorally acceptable?) analysts s need valid? (behaviorally equivalent?) designer s need valid? (behaviorally adequate?) animate prove prove (informal) statement of requirements formal spesification design proposal implementation proposal Supplier (verification) analysts s theory (formal) model analytically adequate? designer s theory (formal) architecture analytically adequate? (and realizable?) builder s theory blueprint analytically adequate? (and fabricable?)

SPSIFIKAATIOSIMRKKI (I) Ongelman kuvaus: Tarkastellaan pientä kirjastotietokantaa seuraaville transaktioille: 1. Lainaa kirjan kopio. Palauta kirjan kopio. 2. Lisää kirjan kopio kirjastotietokantaan. Poista kirjan kopio tietokannasta. 3. Muodosta lista tietyn kirjoittajan kirjoista tietyltä aihealueelta. 4. Muodosta lista tietyn lainaajan lainaamista kirjoista. 5. Palauta tieto siitä, kuka lainaaja on viimeksi lainannut tietyn kirjan kopion. Kirjastotietokantaa käyttävävät kahden tyyppiset käyttäjät: henkilökunta ja lainaajat. Transaktiot 1, 2, 4, 5 on rajoitettu vain henkilökunnan käyttöön, paitsi että tavalliset lainaajat voivat suorittaa transaktion 4 selvittääkseen omat lainansa. Tietokannan toimintaa rajoittavat seuraavat ehdot: Kaikkien kirjojen kopioiden tulee olla lainattavissa tai lainassa. Mikään kirjan kopio ei saa olla samaan aikaan lainattavissa ja lainassa. Yhdellä lainaajalla saa olla korkeintaan ennalta määrätty määrä laija.

SPSIFIKAATIOSIMRKKI (II) Wing jaottelee spesifikaatiomenetelmiä orientaation: operaatio- vai tieto-orientoitunut modulaarisuuden: tukeeko vai ei luettavuuden: diagrammeja vai ei mukaisesti. Hän vertailee toisiinsa myös annettujen spesifikaatioiden monimerkityksellisyyttä: Ovatko kirjasto, käyttäjä, kirja/kopio, saatavuus ja viimeiseksi lainattu -käsitteet yksikäsitteisesti määritelty? epätäydellisyyttä alustuksen, puuttuvien operaatioiden, virheiden käsittelyn, puuttuvien rajoitteiden, tilanmuutosten spesifioinnin ja ei-toiminnallisen käyttäytymisen (UI) suhteen. Loppupäätelmänä Wing toteaa, että sovellusalueen kokonaisvaltainen huomioottaminen tekee yksinkertaisestakin järjestelmästä monimutkaisen. Spesifikaatioiden puutteita/ongelma-alueita olivat mm. rinnakkaisuuden hallinta luotettavuus virheistä toipuminen turvallisuus versionhallinta, vaihedokumenttien muoto ja projektin ohjaus