TIE-20200 Ohjelmistojen suunnittelu. Luento 2: protot sun muut



Samankaltaiset tiedostot
TIE Ohjelmistojen suunnittelu. Luento 2: protot sun muut

TIE Ohjelmistojen suunnittelu. Luento 3: käyttöliittymien toteutustekniikat, QML

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

TIE Ohjelmistojen suunnittelu

TIE Ohjelmistojen suunnittelu

T Johdatus käyttäjäkeskeiseen tuotekehitykseen. suunnitteluprosessissa. Käyttäjän huomiointi. Iteroitu versio paljon kirjoitusvirheitä

Käyttäjäkeskeinen suunnittelu

Työkalut ohjelmistokehityksen tukena

QT tyylit. Juha Järvensivu 2008

Projektinhallintaa paikkatiedon avulla

Valikot ja työkalupalkit. 2008

KÄYTETTÄVYYDEN PERUSTEET 1,5op. Käytettävyyden arviointi paperiprototyypeillä Kirsikka Vaajakallio TaiK

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

TIE Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely

Mobiilimaailma murroksessa 2011 Tommi Teräsvirta, Tieturi

Yhteisöllisen tuotekehyksen avoin verkkolaboratorio. Asta Bäck

SEPA-päiväkirja: Käytettävyystestaus & Heuristinen testaus

Graafisen käyttöliittymän ohjelmointi Syksy Luento 13 QML Antti Nieminen

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ohjeita. Datan lukeminen

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

AS C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

Lisätehtävät. Frantic 2015 sivu 1

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Johdantoluento. Ohjelmien ylläpito

CQRS, -ES, PACS, DICOM, WTF?

OHJ-3010 Ohjelmistotuotannon perusteet, kesä 2012

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

LUKU 17 MUUTAMIA JAVA FX -SOVELLUKSIA. Tässä dokumentissa esitellään muutamia Java FX -sovelluksia.

Simulaattoriavusteinen ohjelmistotestaus työkoneympäristössä. Simo Tauriainen


Testaussuunnitelma PULSU. Syksy 2008 Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

TIE Ohjelmistojen suunnittelu

TIE Ohjelmistojen suunnittelu

Testausoppeja toimialavaihdoksesta

Tietokannat II -kurssin harjoitustyö

TIE Ohjelmistojen suunnittelu

Salasanojen turvallinen tallentaminen KeePass ohjelmalla

Helia Ohjelmointitaito Tuomas Kaipainen Mermit Business Applications Oy Mermit Business Applications

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Vinkkejä Balsamiq Mock-Up työkalun käyttöön

Ohjelmoinnin perusteet Y Python

Semanttinen Web. Ossi Nykänen Tampereen teknillinen yliopisto (TTY), DMI / Hypermedialaboratorio W3C Suomen toimisto

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe T1. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T1

Tilastokeskuksen rajapintapalveluiden käyttöönotto MapInfo - ohjelmistossa Ohjeita laatiessa on käytetty MapInfon versiota 11.5.

PLA Mobiiliohjelmointi. Mika Saari

Automaattinen yksikkötestaus

12 Mallit (Templates)

ADE Oy Hämeen valtatie TURKU. Tuotekonfigurointi. ADE Oy Ly Tunnus:

Ohjelmiston toteutussuunnitelma

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0

Chapel. TIE Ryhmä 91. Joonas Eloranta Lari Valtonen

Advanced Test Automation for Complex Software-Intensive Systems

TIE Ohjelmistojen suunnittelu

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

SOLIDPDM 6 Plus uudet ominaisuudet osa 2

Automaattinen regressiotestaus ilman testitapauksia. Pekka Aho, VTT Matias Suarez, F-Secure

TIE Principles of Programming Languages CEYLON

Heuristisen arvioinnin muistilista - lyhyt versio

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

1. KÄYTTÖKONTEKSTI. jamkad VAATIMUSMÄÄRITTELY. Liite1_Vaatimusmaarittely_Elainklinikka.doc Filename: Last saved:

Ohjelmoinnin peruskurssien laaja oppimäärä, kevät

Digitaalisen median tekniikat. Luento 4: JavaScript

Muuttujien määrittely

Lakki. Lisää ot sik k o osoit t am alla. Nöyrästi vain lakki kourassa... Jussi Vänskä Espotel Oy. vierailuluentosarja OTM kurssi 2010

TOIMIJAREKISTERIN TOTEUTUKSEN JA YLLÄPIDON HANKINTA - HANKINNAN YKSI- LÖINTI HUOM!

Toiminnallisen määrittelyn tarina. Esimerkki Reaktorin tavasta tehdä toiminnallista määrittelyä.

H T M L eli kuinka laadin itselleni päheät kotisivut. Janne Käki

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen

Poweria analytiikkaan

Miksi käytettävyys on tärkeää

Ohjelmiston testaus ja laatu. Testausmenetelmiä

Ohjelmiston testaus ja laatu. Testaus käytettävyys

HTML & CSS. HTML (HyperText Markup Language) Antti Koivisto. ! HTML on sivujen kuvauskieli.

Flash ActionScript osa 4

Yksikkötestaus. Kattava testaus. Moduulitestaus. Ohjelman testaus. yksikkotestaus/ Seija Lahtinen

Testauksen hallintaa teekkareille (ja muille kiinnostuneille) Arto Stenberg

Qt perusteet. Juha-Matti Vanhatupa. (vanhan kurssin Graafisen käyttöliittymän ohjelmointi materiaalia)

Ohjelmointi 2 / 2010 Välikoe / 26.3

Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä?

Opiskelija osaa määritellä ohjelmiston tiedot ja toiminnot, suunnitella ohjelmiston rakenteen ja laatia ohjelmiston teknisen spesifikaation.

GroupDesk Toiminnallinen määrittely

Ohjelmoinnin perusteet, syksy 2006

VisualStudio Pikaopas, osa 1: WEB-sivujen suunnittelu

Tavallisen videomainoksen sijasta Ruudussa voidaan mainostauolla esittää dynaamisia spotteja.

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

Alustavia käyttökokemuksia SAS Studiosta. Timo Hurme Maa- ja elintarviketalouden tutkimuskeskus MTT (v alusta Luonnonvarakeskus / Luke)

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Metsälamminkankaan tuulivoimapuiston osayleiskaava

Scrum is Not Enough. Scrum ei riitä. Ari Tanninen & Marko Taipale. Nääsvillen oliopäivä 2009 Tampereen teknillinen yliopisto 9.12.

Ohjelmoinnin perusteet Y Python

Tietojärjestelmän osat

Lehmanin ja Dijkstran lait

Windows Server 2012 asentaminen ja käyttöönotto, Serverin pyörittämisen takia tarvitaan

Yhteisöllinen mallintaminen ja hajautetut mallit Ari Jolma Aalto-yliopisto. Mallinnusseminaari 2011 Lahti. Ari Jolma 1

CODEONLINE. Monni Oo- ja Java-harjoituksia. Version 1.0

EUREFin vaikutukset organisaatioiden tietojärjestelmiin

S09 04 Kohteiden tunnistaminen 3D datasta

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa

Transkriptio:

TIE-20200 Ohjelmistojen suunnittelu Luento 2: protot sun muut 1

Tämän päivän ohjelmaa Ryhmääntymistä, viimeksi unohtui Työohje julkaistu! Elinaikajuttujen loppurutistusta, viipaloitumisasiaa Prototyypeistä sananen Qt ja QML lyhyesti, jos keretään Presemo? 2

Mikä on prototyyppi? 3

Mikä on prototyyppi? Kirjaimellisemmin alkuperäinen, ensimmäinen versio Teollinen tuotekehitys, ensimmäinen testiversio Luokittelua teollisuudessa: Ensimmäinen prototyyppi, konseptin toimivuuden tarkastaminen Toinen proto, valmistettavuuden tutkiminen Nollasarja, ensimmäinen tuotantosarja Prototyyppien käyttötarkoitus määrää myös mitä prototyyppi on 4

Prototyypit, mallikappaleet ja ohjelmistomaailma Mitä prototyypit ovat ohjelmistomaailmassa? 5

Prototyypit, mallikappaleet ja ohjelmistomaailma Epätäydellisiä versioita ohjelmasta Simuloidaan joitakin osa-alueita tuotteesta Tavoitteita: Asiakaspalaute Realistisemmat arviot resursseista, projektin kestosta jne. Frederick P. Brooks: The Mythical Man Month (1975), No Silver Bullet klassikkojutut puhuivat jo protoista 6

Prototyyppi? Erilaisia käyttötarkoituksia: Tekniikan testaaminen/uuteen tutustuminen Myyntiproto asiakkaalle sisäinen proto uudesta tuotteesta tutkimus Vertikaali: jonkun ominaisuuden tai osakokonaisuuden testaaminen läpileikkausmaisesti 7

Horisontaali prototyyppi ~Käyttöliittymäproto: tarkoitus esitellä ohjelman toimintaa/käyttöliittymää laajemmin, ei mennä syvälle toimintaan (tietokantaa, laskentaa, jne.) Käyttökohteita: Käyttäjäpalaute Demoversio, jolla saadaan tehtyä kaupat Saadaan paremmin arvioitua projektin kestoa/hintaa (tekniikkaan tutustuminen 8

Vertikaali prototyyppi Jonkun ominaisuuden, alijärjestelmän tai osakokonaisuuden testaaminen läpileikkausmaisesti. Hyötyjä: Toteutusvaatimuksien tarkentuminen Resurssitarpeet, paljonko liikennettä, tietoa (tietokannat) Selventää monimutkaisempia vaatimuksia, päästään oikeaan toiminnallisuuteen, voidaan varmistua että ollaan tekemässä oikeaa asiaa & mitä työ vaatii (osaamispuoli) 9

Erilaisia prototyyppejä Throw-away protot: Tärkeintä nopeus. Ei pitkää suunnittelua (vaatimukset/ohjelman rakenne), nopeasti toteuttamaan mock-up. Nopeasti palautetta asiakkaalta, päästään keskustelemaan paremmin vaatimuksista, muutokset vaatimuksiin eivät ongelma (proto menossa roskiin). Vaatimusten nopea tunnistaminen, simulointi, testaus 10

Erilaiset evolutionary prototyping lähestymistavat Tuotetaan uusia protoja/väliversioita tuotteesta ja annetaan asiakkaalle/käyttäjille testattavaksi, saadaan palautetta Tehdään ominaisuuksia lisäillen aina uusia Operational prototyping jne. 11

Prototyypit, plussaa Nopeasti töihin ja tekniikoihin Mahdolliset säästöt ajassa ja kuluissa, saadaan todelliset asiakasvaatimukset aiemmin ja paremmin Käyttäjien ja asiakkaiden parempi integrointi projektiin, halutut ominaisuudet ja käyttöliittymäpuoli ja toiminnallisuus paremmin sidottuna Tekniikkoihin tutustuminen, uusien asioiden nopea käyttöönotto tai hylkääminen 12

Prototyyppien ongelmia Työtä hukkaan, esim. jos myyntiä varten tehty eikä synny kauppoja Kiintyminen, protoa ei raaskita heittää pois vaan koitetaan tehdä oikeaa projektia päälle, (purkkaa purkan päälle) Rajalliset protot, osa vaatimuksista jää kokonaan huomaamatta Kustannukset Ajan tärvääminen, yritetään tehdä liian hienoa (tarkat aikarajat prototyypeille) 13

Prototyyppi kurssilla Käyttöliittymäproto Ei paperi-protoa, jotain koneella väkästeltyä 14

QML 15

QML Qt meta language / Modeling language, deklaratiivinen skriptikieli Helppo eriyttää käyttöliittymä ja sen logiikka varsinaisesta ohjelmakoodista Skriptitiedostoja ei käännetä, nopea protoilla, melko yksinkertaista vaihtaa käyttöliittymä JavaScript koodi voidaan kirjoittaa suoraan QML:n tiedostoon, tai lisätä importein JavaScript tiedostoja. Esim: import jstiedosto.js" as AnimationFunctions 16

QML Syntaksi muistuttaa CSS-tyylimäärittelyjä. Elementtejä (Elements), joilla ominaisuuksia (property) Property-arvo parit määrittelyissä (esim. x = 100) Rectangle { width: 200; height: 100; x: 100; y: 150; color: "yellow" Text { text: "Hei ohjsuun!"; font.pointsize: 20 } } 17

Lisää määrittelyistä Elementeille voi antaa tunnisteen (id) Propertyn arvo voi riippua toisesta propertystä (esim. id:n tai parent-suhteen perusteella Rectangle { visible: true id: another width: hellorect.width + 100 height: hellorect.height + 100 color: "#0500ff" z: 1 x: hellorect.x - 50 y: hellorect.y - 50 } Item { width: 300; height: 300; Rectangle { width: parent.width - 50; height: 100 color: "yellow" } } 18

QML:n tyypeistä lisää Ominaisuuksien määrittely, perustietotyypit, esim. int, string, real Tyyppiturvallisuus ( x = moi! virhe) http://qt-project.org/doc/qt-5/qtqml-typesystem-basictypes.html Qt Quick QML:n tietotyyppejä, esimerkiksi ruudulla näkyvät (Rectangle, Item, Image, Text), kontrollit (Button), tapahtumat (MouseEvent) http://qt-project.org/doc/qt-5/qtquick-qmltypereference.html 19

QML ja tilat Elementeillä oletuskonfiguraatio joka määritellään (yleensä) propertyillä Uusien tilojen määrittely states propertyllä, niissä määritellään erot oletuskonfiguraatioon 20

Tiloilla on propertyjä kuten muillakin elementeillä. changes name extend when states: State { name: "resized"; when: mousearea.pressed PropertyChanges { target: myrect; height: container.height } } 21

Linkkejä http://qt-project.org/doc/qt-5/qtquickindex.html http://qt-project.org/doc/qt- 5/qmlreference.html 22

Yhteenvetoa Viipaloituminen, kopiointi ja rakennuttajat Prototyyppien idea Vertikaali ja horisontaalit protot Prototyyppien eri käyttötarkoitukset Qt ja QML: perusasiat QML:stä Rakenne Elementit, propertyt Tilat Tulossa QML ja C++, Javascript & QML, jotain kevyttä animaatioista yms. 23