TIE-20200 Ohjelmistojen suunnittelu

Samankaltaiset tiedostot
TIE Ohjelmistojen suunnittelu

Graafisen käyttöliittymän ohjelmointi Syksy 2013

OHJ-7400 Graafisen käyttöliittymän ohjelmointi 4/6op

T Ohjelmistojen määrittely- ja suunnittelumenetelmät

Ohjelmistoarkkitehtuurit Kevät käytäntöjä

Ohjelmistoarkkitehtuurit. Syksy 2008

Ohjelmistoarkkitehtuurit. Kevät

PLA Mobiiliohjelmointi. Mika Saari

Kandidaatintyö Elektroniikan laitoksella

Vastuuopettaja. Kurssiesite Olio-ohjelmoinnin perusteet Kevät Olio-ohjelmoinnin perusteet (5 op) Tavoitteena

Ohjelmistojen suunnittelu - harjoitustyö

TIE Ohjelmistojen suunnittelu. Viimeinen luento: kertaus

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

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit Kevät käytäntöjä

Tik Ohjelmistoprojektien Hallinta

Kon HYDRAULIIKKA JA PNEUMATIIKKA

PLA Mobiiliohjelmointi. Mika Saari

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

TIE Ohjelmistojen suunnittelu

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

TIE Ohjelmistojen suunnittelu

Kurssin käytännön järjestelyt. Tuotantotalous 1 Joel Kauppi

Kurssijärjestelyt. ME-C2300 Verkkojulkaisemisen perusteet (5 op) Mari Hirvi Informaatioverkostot / Mediatekniikan laitos

TIE Ohjelmistojen suunnittelu

Tietokoneverkot. T Tietokoneverkot (4 op) viimeistä kertaa CSE-C2400 Tietokoneverkot (5 op) ensimmäistä kertaa

Ohjelmistotekniikan menetelmät, kesä 2008

T Harjoitustyöluento

Alkupiiri (5 min) Lämmittely (10 min) Liikkuvuus/Venyttely (5-10min) Kts. Kuntotekijät, liikkuvuus

T Harjoitustyöluento

TIE Ohjelmistojen suunnittelu. Viimeinen luento: kertaus

Ohjelmistoarkkitehtuurit. Syksy 2010

Kurssikäytännöt ja opintojen suunnittelu. Leikola

T Käyttäjäkeskeisen tuotekehityksen harjoitustyö kevät 2005

T Loppukatselmus

Digitaalisen median tekniikat Luento 1: Intro

A4.1 Projektityö, 5 ov.

Kurssiesite Olio-ohjelmoinnin perusteet Kevät Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto

TIE Ohjelmistojen suunnittelu. Luento 8..9: moniperintä

Tähtitieteen käytännön menetelmiä Kevät 2009

T harjoitustyö, kevät 2012

Kurssin käytännön järjestelyt. Tuotantotalous 1 Tuomo Tanila

Ohjelmistojen mallintaminen, kesä 2009

Harri Eskelinen, puh , Konetekniikan koulutusohjelman johtaja Tekniikan tohtori vuonna 1999 Dosentti

Ohjelmistojen mallintaminen, kesä 2010

Ajankohta Johdatus WP7-sovelluskehitykseen: WP7-sovelluskehityksen perusteet:

Kurssijärjestelyt. CS-1180 Verkkojulkaisemisen perusteet (5 op) Hanna Hämäläinen Informaatioverkostot / Mediatekniikan laitos

TIE Ohjelmistojen suunnittelu

Kurssin tavoitteista uennot. 4.1 Projektityö, 5 ov. Esitietovaatimukset

opiskelun suunnittelujärjestelmä, kurki ja ilmo käyttävät kaikki samaa tietokantaa, ja uusi järjestelmä tulee osaksi tätä.

T harjoitustehtävät, syksy 2011

ENG3042.Kand Kandidaatintyö ja seminaari (10 op) ENY ENG3044.Kand Kandidaatintyö ja seminaari (10 op) RYM Saija Toivonen

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Talousmatematiikan perusteet: Johdanto. Kurssin tavoitteet Käytännön järjestelyt Suosituksia suorittamiseen

Vastuuopettaja. Kurssiesite Olio-ohjelmoinnin perusteet Kevät Olio-ohjelmoinnin perusteet (TIEA2.1)

Kurssiesite Olio-ohjelmoinnin perusteet Kevät Jorma Laurikkala Tietojenkäsittelytieteet Luonnontieteiden tiedekunta Tampereen yliopisto

19/20: Ikkuna olio-ohjelmoinnin maailmaan

Aalto CHEM Kandidaattiseminaari (+ BTT/KEM/MTE seminaarit)

Kurssin aloitus. AS XML-kuvauskielten perusteet Janne Kalliola

Sopimuspohjainen olio-ohjelmointi

Ohjelmistoarkkitehtuurit Komponentit Kevät 2014

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

Vastuu- ja tehtäväalueet sekä tiedonvälitys OSCu-kursseilla

PROJEKTITOIMINTA Tietoa käytännöistä

Tietokonearkkitehtuuri 2 TKT-3201 (5 op)

TIE Ohjelmistojen suunnittelu

Ohjelmistoarkkitehtuurit. Syksy 2007

TIE Ohjelmistojen suunnittelu. Luento 2: protot sun muut

Kypsyysnäyte- ja kielentarkastusprosessi sähköisissä kypsyysnäytteissä (EXAM) Marjut Anderson

35C00250 Hankintojen johtaminen Kurssin esittely

Vastuuopettaja. Kurssiesite Lausekielinen ohjelmointi Syksy Tavoitteet ja keinot. Lausekielinen ohjelmointi (10 op)

KOKEMUKSIA JATKUVASTA ARVIOINNISTA JA KOTITENTISTÄ. Jari Hannu

Kurssiesite Lausekielinen ohjelmointi Syksy Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt


2. luento. CS-C2110 Ohjelmointistudio 1: mediaohjelmointi Syksy 2016 [Studio 1] Antti Tolppanen, Sanna Suoranta, Lauri Savioja


TIES474 Pelinkehityshaaste Syksy 2016 Jukka Varsaluoma

AS Automaation käyttöliittymät L Opetussuunnitelma

Java Runtime -ohjelmiston asentaminen

Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistoprosessit ja ohjelmistojen laatu (4op)

WebOodin opinto-opas ja ilmoittautuminen

Ohjelmointi II. Erkki Pesonen Luennot ja harjoitukset. Itä-Suomen yliopisto Tietojenkäsittelytieteen laitos 2015

OHJ-2710 Peliohjelmointi. Syksy 2012 Timo Kellomäki

YRITYSVASTUU JA -ETIIKKA: KNOWING, DOING, BEING

Korkealämpötilakemia

Markkinoitten mallintaminen ja Internet-markkinat

AS Automaation käyttöliittymät L Opetussuunnitelma

A35C00250 Hankintojen johtaminen Kurssin esittely

TIE Ohjelmistojen suunnittelu

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

LC-8011 Työelämän venäjän perusteet 1. Aalto-yliopisto Kielikeskus Alexandra Belikova

Versionhallinta MIKSI?


Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmoinnin peruskurssi Y1

Elektroniikka (&säätötekniikka) Elektroniikka II (& Analoginen säätö) 5+(3+2)

OHJ-3010 Ohjelmistotuotannon perusteet, kesä 2012

Orientaatiotilaisuus Avoimen yliopiston opintoihin

Opettajatuutorointi-kurssin syksyn 2006 kyselyjen tulokset

Transkriptio:

TIE-20200 Ohjelmistojen suunnittelu Luento 0: Kurssin esittely TIE-20200 Samuel Lahtinen 1

Mitäs tänään on tarjolla? Käytännön juttuja: Mistä tietoa löytyy Kurssin henkilökunta Kurssin rakenne Käytännönjärjestelyt Oppimistavoitteet Mitä kurssin läpäiseminen vaatii? Varsinaista asiaa: Tentti! TIE-20200 Samuel Lahtinen 2

Kurssin henkilökunta vastuuhenkilö: Samuel Lahtinen (luennot, harkkatyöt, pääassarointi) Assarit: Hannu Ranta, Toni Korpela Aki Hänninen TIE-20200 Samuel Lahtinen 3

TIE-20200 yleistiedot Järjestetään toista kertaa, esitietokurssit muuttuvat, joten myös tämä kurssi elää Olio-ohjelmoinnin jatkokurssin korvaaja Kurssin koko 5 op, 133 tuntia ~28 tuntia luentoja (+itseopiskelu 0,5t /luentotunti) 12 tuntia viikkoharjoituksia (esitehtävät) ~70 tuntia budjetoitu harjoitustyölle TIE-20200 Samuel Lahtinen 4

Mistä löydän tietoa kurssista? Kurssin kotisivu: http://www.cs.tut.fi/~ohjsuun IDLE (viikkoharkka- & harkkatyörekisteröinnit) Materiaali myös versiohallinnassa, työohjeet jne. Käyttäkää tut-sähköpostia, ei mitään hotmalesähköposteja (suorituksiin liittyviä asioita ei saa lähetellä muualle kuin koulun osoitteisiin) Kurssin virallinen sähköposti, yleiset kurssiin liittyvät kysymykset tänne: ohjsuun@cs.tut.fi Näin kysyt -ohjeistus: http://www.cs.tut.fi/~ohjsuun/sahkopostiohje.shtml

Aikataulutusta Luennot ma 14:15-16 TB109 periodit 1 & 2 HUOM, OBS, ACHTUNG, ATTENTION! Ensi viikon luento poikkeuksellisesti klo 16:15-18:00 Viikkoharjoitukset alkavat syyskuussa 15.9. alkavalla viikolla (viikko 38) Ilmoittautuminen aukeaa tällä viikolla, POP-spämmiä asiasta 6 viikkoharjoituskertaa, pidetään tietokoneluokassa Tentit 16.12.2014, 9.2.2015, 1.4.2015 Harkkatyön vaiheistusta: Prototyyppi syyskuun viimeinen viikko Suunnitelma, lokakuun alku 1.-10.10. Osatoteutuksen esittely, suunnitelmassa luvattuja asioita marraskuu Lopullinen palautus, työn esittely jne. joulukuun alku Vertaisarviointi, joulukuun lopussa

Kurssimateriaali Kurssin kotisivuilta löytyy http://www.cs.tut.fi/~ohjsuun/kurssikirjallisuus.shtml

Kurssin ja luentojen aihealueita Perintää ja perintähierarkioita, perinnän suunnittelu, virtuaalifunktiot syvällisemmin Kopiointi ja sijoittelu, viipaloituminen, rakennuttajat yms. Luokkataso vs. oliotaso Moniperiytyminen Rajapintasuunnittelu Geneerisyydestä (templatet sun muut) Olio-ohjelmoinnin periaatteita SOLID: (Single responsibility principle, Open/closed principle, Liskov substitution principle, Interface segregation, Dependency inversion principle) Ohjelmistojen suunnittelu luokkatason yläpuolella Kirjastot: käännösaikaiset, ajoaikaiset. liitännäiset ja niiden toteuttaminen Ohjelmistojen asennusasioita Suunnittelumallit/toteutusmallit (Design patterns): MVC/MVVM/MVP, abstraktit tehtaat, kompositio jne. Erilaisia lähestymistapoja oliomaailman ulkopuolelta : Entity component system (komponentti-orientoitunut lähestyminen), single page application, funktionaaliset jutut hieman uutta asiaa graafisista käyttöliittymistä toteutusprosessiin liittyviä asioita (versiohallinta ja isommat ohjelmistoprojektit)

Viikkoharkat Neljä kertaa ykkösperiodin aikana, kaksi kakkosperiodilla Yksi kerta normiluokassa, muuten tietokoneluokassa, koodataan/käytellään Qt:ta Ennen harkkaan könyämistä erittäin suositeltavaa vilkaista läpi luentokalvot/käydyt asiat & harkka-aihe niin tapahtumassa pystyy keskittymään varsinaiseen harjoituksen aiheeseen eikä asioiden uudelleen opetteluun

Viikkoharjoitusten alustavat aiheet 1.Suunnitteluharkka 2.Qt-kali osa 2: oma erikoistettu komponentti 3.Kopioinnit, sijoitukset, siirtosemantiikkaa yms. C++ -aiheista 4.Kirjasto/plugin 5.Abstrakti tehdas

Harjoitustyön vaiheet 1. Prototyyppi ja tuotteen esittely 2. Suunnitelma, rakenne, vastuualueet, työnjakoa jne. 3. Ensimmäinen toteutusosa, toteutettuna suunnitteluvaiheessa valittuja ominaisuuksia 4. Lopullinen valmis työ ja sen esittely 5. Vertaisarviointi

Harjoitustyön vaiheet, prototyyppi Ensimmäisessä vaiheessa toteutetaan ohjelman prototyyppi, jonka tarkoituksena on esitellä tuotetta tilaajalle ja saada todellinen kauppa syntymään. Prototyypin esittelyn lomassa ja sen jälkeen asiakas kertoo tarkemmin mitä tuotteelta haluaa. (eli vaatimukset voivat muuttuja ja tarkentua hieman projektin aikana). Prototyyppitoteutus sisältää jotain demottavissa olevaa käyttöliittymätason toimintaa ja antaa kuvan siitä, millainen lopullinen tuote voisi olla.

Harjoitustyön vaiheet, suunnitelu Seuraavassa vaiheessa luodaan tarkempi suunnitelma toteutettavasta pelistä. Miltä peli suunnittelutasolla näyttäisi? Mitä eri osakokonaisuuksia siihen tulee? Miten käyttöliittymä ja muu ohjelma on erotettu toisistaan? Minkälaista työnjakoa eri osien välille on mietitty? Jne.

Harjoitustyön vaiheet, valittujen ominaisuuksien toimittaminen Kolmannessa vaiheessa käydään esittelemässä työtä, jossa on toteutettuna ainakin suunnitteluvaiheessa toimitettavaksi luvatut ominaisuudet (suunnitteluvaiheessa assarin kanssa sovitaan mitä ollaan toteuttamassa). Lisäksi tässä vaiheessa on mahdollisuus kysellä assarilta käytetyistä ratkaisuista ja varmistua siitä, että työssä ollaan menossa oikeaan suuntaan.

Harjoitustyön vaiheet, lopullinen palautus Neljännessä osassa tavataan loppudemon merkeissä oman assarin kanssa. Joko pidetään tapahtuma oman assarin kanssa kahden kesken, jolloin opiskelijat uskaltavat varmasti kertoa ohjelmastaan vapaammin tai sitten järjestetään demotapahtuma saman assarin kaikkien ryhmien kanssa, jolloin pääsee näkemään muiden toteutuksia ja tulee paineita tehdä vähän parempaa jälkeä kun tietää, että työtä saa esitellä puolijulkisesti.

Harjoitustyön vaiheet, vertaisarviointi Vertaisarvioinnissa käydään läpi toisen ryhmän työ ja annetaan siitä palautetta. Tähän on oma erillinen lyhyt ohjeensa. (versiohallinnassa)

Harjoitustyöstä lisää Toteutuskieli C++, ympäristö Qt (5 ) Mahdollisuus käyttää virtuaalikonetta, voi säästää asentelutuskaa Tietokoneluokka käytössä Saa toteuttaa C#:lla tai esim. Javalla, jos haluaa Tehdään parityönä tai kolmen hengen ryhmässä SVN tutusti mukana harkkatyössä Aiheena taas peli(suunnittelua ja toteutusta: samoja ratkaisuja ei löydy suoraan googlaamalla)

Qt:sta Tuttu keväällä ohjelmoinnin tekniikat tai alkuolion käyneille Jolla valloittaa ihan just maailman, voi sitten koodailla sille ohjelmistoja Alustariippumaton (tai toimii Window, Mac, Linux ympäristöissä)

Toteutuspuolesta lisää Käyttöliittymän saa halutessaan toteuttaa kokonaan itse (normitilanteessa peruskäyttöliittymä tarjotaan valmiina, harjoitustyössä toteutetaan pieni osa kalista) Qt:n omia tietotyyppejä käytössä (merkkijono)

Työkaluista lisää Qt:n kirjastot ja IDE http://qt-project.org/downloads,qt 5.1.1 Visual Studio 2010, 2012, 2013... https://www.dreamspark.com/ Piirtelyohjelmia, MagicDraw (http://www.cs.tut.fi/software/win32/magicdraw/) SVN (Subversion) http://tortoisesvn.net/ --Windowsille, exploreriin intergroituva http://subversiondownload.com/ --listaa ohjelmista kaikille käyttöjärjestelmille Googlella löytää lisää

Kurssin sisällöstä Ohjelmistojen suunnittelu Koodaillaan joo Vähän ohjelmistotuotantoakin kyllä Hivenen kurssin edeltäjää, olio-ohjelmoinnin jatkokurssia Vähän arkkitehtuurijuttuja Hippunen yleisestä suunnittelua Kohtuullisen paljon vähän isomman oman ohjelman rakenteen suunnittelua ja toteuttamista Tavoitteena antaa kuva ohjelman rakenteen ja suunnitelman ja varsinaisen toteuttamistyön välisestä suhteesta

Oppimistavoitteista Opitaan suunnittelemaan ja toteuttamaan sovellus kera graafisen käyttöliittymän Osataan jakaa ohjelma osakokonaisuuksiin Saadaan yleissivistävää tietoa erilaisista tavoista toteuttaa ohjelmistoja ja erilaisista ratkaisuista, joita ohjelmien rakentelussa käytetään

Kurssin arvostelu Hyväksytty suoritus harjoitustyöstä ja tentistä Viikkoharjoituksiin osallistumalla voi kerätä maksimissaan yhden arvosanan verran pisteitä Arvosana määräytyy tentti-, viikkoharkka ja harjoitustyöpisteiden kokonaissummana. Tentistä ja harkkatyöstä pitää päästä läpi. 0-15 pts tentti, 0-15pts harkkatyö, 0-5 pts viikkoharkat, alustavat pisterajat: 1 15-2 18-3 21-4 27-5 30-

Harjoitustyön arvostelu Pisteytyksestä: 9 pistettä lopullinen palautus 2 pistettä vertaisarviointi 4 pistettä välivaiheet Arviointiperusteista: Toteutusaikataulu, suunnittelu, laajennettavuus/muokattavuus (vaadituissa asioissa), tyyli, rajapinnat, dokumentaatio jne.

Yleistä oppimistapahtumista Luennot, jonkin verran viikkoharkkatehtävän kaltaisia juttuja Viikkoharkat, koodausta Harjoitustöiden palautukset: Suunnitteluvaihe, tapaaminen assarin kanssa Ensimmäinen pyrähdys, tapaaminen assarin kanssa Lopullinen palautus, demotaan omalle assarille

Kysymyksiä käytännönjärjestelyistä?