Tero Karvinen - Articles - Downloads - Courses - Contact

Table of Contents

Ohjelmistotuotekehitysprosessi 1 syksyllä 2010

Ohjelmistotuotekehitysprosessi pidetään ensimmäistä kertaa syksyllä 2010. Toteutusta opettavat Tero Karvinen, Aki Lassila ja Ismo Harjunmaa.

Palaute pyS60-ohjelmoinnista - ohjelmistotuotekehitysprosessi 1

Opintojakson suoritettuaan opiskelija

Kuvaus opinto-oppaassa. Tavoitteita on päivitetty opinto-oppaasta.

Kurssin Moodle-sivu.

Projekti

Yksilötyö tai pareittain. Olemassaolevan työn jatkamiseksi voidaan harkita kolmen hengen ryhmää.

Aikataulu

Tero vetää ensimmäiset viisi kertaa, w34-w38.

1. Orientaatio. Mobiilit ohjelmointialustat. PyS60 yleiskuva. w34

Läksy

Tee ja raportoi: Hei maailma kännykkääsi, helpoimmin pys60. Vaihtoehtoisesti pySide/pyQT-ohjelma tietokoneella, hieman haastavampi kuin “hei maailma”, esim. painoindeksi. Julkaise vuorokautta ennen seuraavia tunteja.

Lue: Sulautetut, 1ed: Nyrkkeilykello (alku) s. 231-254. (edit: nyrkkeilykello kännykässä -video)

Palauta tehtävän Moodle-sivulle linkki vastaukseesi. Voit julkaista vastauksen weppisivuna missä haluat. Jos et uskalla tai muuten halua julkaista raporttiasi, voit kirjoittaa sen suoraan Moodleen - mutta julkaisu on toki paras vaihtoehto.

Muistiinpanoja

Luokan kännyköistä ylivoimaisesti suurin osa oli s60. Mukana oli yksi s80, yksi iPhone ja yksi s40.

Tunnilla tarkasteltiin tärkeimpien kännykkäalustojen markkinaosuuksia, levinneisyyttä, kehitystyökaluja, etuja ja haittoja. Kehitysalustoja s60, Android, iPhone, Maemo, s40; HTML, Qt. Sivusimme myös monialustaisia työkaluja. Ja HTML on tietysti helpoin monialustainen kehitystyökalu.

Komentoja ja linkkejä:

$ hcitool scan
$ obexftp -b 00:11:22:F0:00:0D --chdir e: --mkdir python --put heisulautetut.py

http://sulautetut.fi/pys60

import appuifw
appuifw.note(u"Visit Sulautetut.fi!", "info")

2. Johdatus nopeaan prototyypitykseen Pythonilla w35

Läksy 2

Tee kännykkäohjelma, joka tekee yksinkertaisen laskutoimituksen. (Esimerkiksi painoindeksi, huoneen tilavuus, paljonko 50 EUR/kk säästettynä on 10 vuodessa, jos tuotto on 7%). Laita ohjelma puhumaan tulos ääneen englanniksi (tai lisää ohjelmaasi jokin muu yllättävä multimediaominaisuus). Palauta tehtävän Moodle-sivulle linkki vastaukseesi.

Valitse projektisi aihe. Päätä myös, haluatko tehdä sen yksin vai parin kanssa. Aihetta valitessa on hyvä tarkastella, että sovellus on mahdollista toteuttaa pys60:lla. Tässä auttavat Sulautetut-kirja, Mobilenin, pyS60 API sekä Mobile Python -kirja. Jos osaat palvelinohjelmointia (Ruby on Rails, Django, PHP...), voit toki ottaa sovelluksellasi yhteyttä myös palvelimeesi. Projektin aihe-ehdotus tai linkki Moodleen.

Muistiinpanoja tunnilta

Esiteltiin kotitehtäviä. Niiden taso oli hyvä. Monet olivat myös julkaisseet ratkaisunsa wepissä, mikä onkin suositeltavaa. Tyypillisin ratkaisu oli softat http://sulautetut.fi/pys60 , “print(’hello sulautetut world’)” ja tiedostojen siirto obexftp:llä. Tiedostoja oli siirretty myös USB:n yli Windowsista ja Linuxista asettamalla puhelin USB Mass Storage tilaan. Windowsin PC Suitea oli kokeiltu vaihtelevalla menestyksellä.

Erikoisempia kokeiluja kotitehtävien yhteydessä:

Opeteltiin kokeilemaan uusia pyS60-ominaisuuksia. Apuna käytettiin MobiLenin-tutoriaalia; myös pys60 API-kuvaukset ja Scheiblen kirja mainittiin. Tunnilla tehtyjä ohjelmia oli esimerkiksi “Hei Nimi” peräkkäisillä (blokkaavilla) query:llä ja kolmiulotteinen kuutio. Eräässä esimerkissä käytettiin pääsilmukkaa.

Tutustuttiin graafisen, tapahtumapohjaisen käyttöliittymän perusominaisuuksiin, kuten funktioiden takaisinkutsuihin ja pääsilmukaan. Vertailtiin Pythonia aiemmin opeteltuun Javaan ohjelman rakenteen, atribuuttien suoran muokkaamisen ja Unicoden käsittelyn suhteen. Opeteltiin etsimään vastauksia yksilöityihin ohjelmointikysymyksiin, esimerkkinä eksplisiittinen tyyppimuunnos Pythonissa. Käytettiin tietokoneen Python-tulkkia niiden ominaisuuksien nopeaan kokeiluun, joihin se soveltuu.

Teoriaa ja projektia opettava Ismo Harjunmaa kävi esittäytymässä.

Omien kännyköiden lisäksi lainalaitteen UbiOfficen Nokia e71, jonka Marko lainasi ilman SIM-korttia. Olisi hyvä saada ainakin kaksi s60 lainapuhelinta lisää.

3. Käyttöliittymän osat pyS60 w36

Tutustuttiin apuifw -kirjaston käyttöliittymän osiin. Käytiin läpi nyrkkeilykellon animaatiota ja ajastusta. Kerrattiin muutamia ohjelmoinnin alkeita ja suositeltiin alkeiden oppikirjaksi “Dive into Python”. Tarkasteltiin, mistä ohjeita löytyy. Esimerkiksi kännykän graafista käyttöliittymää ohjelmoidessa kannattaa käyttää pyS60 API-kuvauksia (apuifw), ja Pythonin yleisiä asioita kannattaa katsoa python.org:sta.

Löydettiin yksi s60 kännykkä lisää, ja Patrik lainasi sen tarvikkeineen suoraan Jounilta.

Läksy: 3a) Tee liikkuva pallo kännykälle. Parempi, jos se pomppii. Vielä parempi, jos siihen voi jotenkin vaikuttaa, esimerkiksi muuttaa nopeutta. Voit halutessasi tehdä myös ponnahdusäänen. Todella hieno: tee ping pong, jossa näytön alareunaa pitkin liikutellaan mailaa pallon alle.

3b) Näin helppoa se on. Etsi valitsemaltasi ohjelmien kauppapaikalta 3 oikein yksinkertaista ohjelmaa. Erityisen hauskaa on, jos löydät aivan triviaalin mutta hyvin myyvän ohjelman. Kauppapaikkoja ovat esimerkiksi Nokia Ovi, iPhone App Store ja Android Market. Voit selata ohjelmien arvosteluja myös muilta sivuilta tai lehdistä.

4. Animaatio w37

Käytiin läpi animointia esimerkkien perusteella. Tarkasteltiin ajastimia.

Läksynä oli etsiä yksinkertaisia, mutta kaupaksi käyneitä ohjelmia. Ohjelmoitiin tuntitehtävänä kilpailija taskulampulle.

5. Näppäinohjaus, kamera ja pyS60 yhteenveto w38

Reagoitiin näppäimistöön Canvas.bind() avulla. Verrattiin muihin tapoihin hallita näppäimistöä.

Otettiin kameralla kuvaa ja piirrettiin kuvien päälle.

Kerrattiin Pythonin yleiskuva.

Läksy: 5a) Projektin hiominen: tee projektistasi jännittävämpi tavalliselle tallaajalle! Tee ohjelma, joka on jännä satunnaisesta vastaantulijasta - sellaisestakin, joka ei osaa ohjelmoida. Hyödynnä multimediaa.

5b) Tee ohjelma, joka hyödyntää jotain seuraavista: kamera, video, kiihtyvyysanturi (axyz).

Kerättiin palaute Teron pitämästä ensimmäisestä viidestä kerrasta. Palaute pyS60-ohjelmoinnista - ohjelmistotuotekehitysprosessi 1

6. Valittujen ominaisuuksien mallintaminen w39

Aki ja Ismo pitävät loput 10 kertaa vuoroviikoin. Ismo pitää parilliset viikot.

Opiskelija ymmärtää ja osaa kuvata valitut ominaisuudet.

7. Valitun toiminnallisuuden toteuttaminen w40

Opiskelija osaa toteuttaa valitut ominaisuudet käytettävillä toteutustekniikoilla tehtyjen kuvausten perusteella.

8. Prototyypin kehittämistä w41

(w42 intensiiviviikko, ei lähiopetusta)

9. Ohjelmistoalan liiketoiminta-näkökulmaa: liiketoimintamalleista, tuote ja/tai palvelu w43

10. Prototyypin kehittämistä teoriaan pohjautuen w44

11. Tuotekehityksen perustaa: tarpeet, ympäristö, toteutus, organisointi w45

12. Prototyypin kehittämistä teoriaan pohjautuen w46

13. Ohjelmistoalan tuotekehityksen perustaa: platformit ja portfoliot w47

14. Prototyypin kehittämistä teoriaan pohjautuen w48

15. Kokemusten purku w49

16. Esitykset w50

Last modified: 2010-11-19. Permanent url: http://www.iki.fi/karvinen/ohjelmistotuotekehitysprosessi.html

Tero Karvinen www.iki.fi/karvinen - Top - Validate HTML - Validate CSS