TIE-20200 Ohjelmistojen suunnittelu



Samankaltaiset tiedostot
TIE Ohjelmistojen suunnittelu

T Ohjelmistojen määrittely- ja suunnittelumenetelmät

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

Graafisen käyttöliittymän ohjelmointi Syksy 2013

Ohjelmistojen suunnittelu - harjoitustyö

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

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

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

Ohjelmistoarkkitehtuurit. Kevät

T harjoitustyö, kevät 2012

Ohjelmistoarkkitehtuurit. Syksy 2008

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

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Kon HYDRAULIIKKA JA PNEUMATIIKKA

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

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

Digitaalisen median tekniikat Luento 1: Intro

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

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

TIE Ohjelmistojen suunnittelu. Viimeinen luento: kertaus

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

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

T harjoitustehtävät, syksy 2011

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

Ohjelmistotekniikan menetelmät, kesä 2008

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

TIE Ohjelmistojen suunnittelu. Luento 2: protot sun muut

OHJ-3010 Ohjelmistotuotannon perusteet, kesä 2012

A4.1 Projektityö, 5 ov.

TIE Ohjelmistojen suunnittelu

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

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

Tik Ohjelmistoprojektien Hallinta

Kandidaatintyö Elektroniikan laitoksella


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

Ohjelmistojen mallintaminen. Luento 11, 7.12.

AS Automaation käyttöliittymät L Opetussuunnitelma

Kurssin aloitus. AS XML-kuvauskielten perusteet Janne Kalliola

TIE Ohjelmistojen suunnittelu

AS Automaation käyttöliittymät L Opetussuunnitelma

TIE Ohjelmistojen suunnittelu

TIE Ohjelmistojen suunnittelu

T Harjoitustyöluento

Ohjelmistojen mallintaminen, kesä 2009

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

TIE Ohjelmistojen suunnittelu

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaiheet 1 ja 2. Antti Jääskeläinen Matti Vuori

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

T Loppukatselmus

T Harjoitustyöluento

TIE Ohjelmistojen suunnittelu

Fysiikan opinnot Avoimen yliopiston opiskelijoille

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

Harjoitustyöinfo kevät TU-A1100 Tuotantotalous 1

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaihe 3. Antti Jääskeläinen Matti Vuori

PLA Mobiiliohjelmointi. Mika Saari

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

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

Kurssiesite. Rakentamisen tekniikat RAK-C3004

TIE Ohjelmistojen suunnittelu

PROJEKTITOIMINTA Tietoa käytännöistä

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

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

PLA Mobiiliohjelmointi. Mika Saari

YRITYSVASTUU JA -ETIIKKA: KNOWING, DOING, BEING

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

OHJ-7400 Graafisen käyttöliittymän ohjelmointi, Harjoitustyö

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

TIE Ohjelmistojen suunnittelu. Luento 2: protot sun muut

Agenda. Läpäisyvaatimukset Henkilökunta Luennot ja aikataulu Kurssimateriaali Harjoitustyöt Demoharjoitus Tentti ja arvostelu Muuta?

Anarâškielâ máttááttâs

Sopimuspohjainen olio-ohjelmointi


ELEC-C1210 Automaatio 1 ELEC-C1220 Automaatio 2. Kurssien esittely lukukausi

Harjoitustyöinfo kevät TU-A1100 Tuotantotalous 1


MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

Tik Ohjelmistotuoteliiketoiminta

1510 Ihminen ja tietoliikennetekniikka

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

TU-A Itsensä tunteminen ja johtaminen Tervetuloa kurssille!

Tik Harjoitustyö

Abien vanhempainilta Tervetuloa!

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

OHJ-2710 Peliohjelmointi. Syksy 2012 Timo Kellomäki

Matopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö

A&O:n käyttöohje. 1. Rekisteröityminen ja kurssille ilmoittautuminen. 2. Sisäänkirjautuminen. (Lisää löydät osoitteesta:

Ohjelmistoarkkitehtuurit. Syksy 2010

S11-09 Control System for an. Autonomous Household Robot Platform

Tik Harjoitustyö

Sisäinen tarkastus ja atk-avusteinen tarkastus (22C00600, 6 op)

Ohjelmistojen mallintaminen, kesä 2010

Korkealämpötilakemia

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

TIES474 Pelinkehityshaaste Syksy 2016 Jukka Varsaluoma

ELEC-C1210 Automaatio 1 ELEC-C1220 Automaatio 2. Kurssien esittely lukukausi

Markkinoitten mallintaminen ja Internet-markkinat

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,jne) Assarit: Sampo Suonsyrjä Aki Hänninen Henri Terho TIE-20200 Samuel Lahtinen 3

TIE-20200 yleistiedot Kolmas versio kurssista, esitiedot jatkavat edelleen väistelyä 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 Materiaali myös versiohallinnassa, työohjeet jne. Slack tulossa käyttöön 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 Viikkoharjoitukset alkavat syyskuussa 14.9. alkavalla viikolla (viikko 38) Ilmoittautuminen aukeaa tällä viikolla, POP-spämmiä asiasta 6 viikkoharjoituskertaa, pidetään tietokoneluokassa Tentit???, ehkä joku arpoo tämmöset kurssille (spämmään ku selviää) Harkkatyön vaiheistusta: Prototyyppi syyskuun lopulla, 22.9- Suunnitelma, lokakuun alku 7.-14.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, siirtosemantiikka yms. Luokkataso vs. oliotaso, UML-käppyrä vs. koodi Moniperiytyminen Rajapintasuunnittelu Geneerisyyttä (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 Koodin katselmoinnit, aikaisemman koodin päivittäminen Ohjelmistojen asennusasioita Suunnittelumallit/toteutusmallit (Design patterns): MVC/MVVM/MVP, abstraktit tehtaat, kompositio jne. Erilaisia lähestymistapoja perusoliomaailman ulkopuolelta : Entity component system (komponentti-orientoitunut lähestyminen), single page application, funktionaaliset jutut hieman 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

Viikkoharkka-ajat, alustavat TI 14:15-16 KE 9:15-11, kakkosperiodin harkat 10:15-12 To 12:15-14 PE 12:15-14

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ä Tai sit ihan millä tahansa muulla kielellä ja ympäristöllä Tehdään parityönä tai kolmen hengen ryhmässä Git versiohallintana 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 toteuttaminen itse Qt:n omia tietotyyppejä käytössä (merkkijono)

Työkaluista lisää Qt:n kirjastot ja IDE http://qt-project.org/downloads,qt 5.5 (tällä hetkellä uusin) Visual Studio 20xx https://www.dreamspark.com/ Piirtelyohjelmia, MagicDraw (http://www.cs.tut.fi/software/win32/magicdraw/) Online,esimerkiksi https://www.draw.io Git Slack

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 Opitaan jakamaan ohjelma osakokonaisuuksiin Saadaan yleissivistävää tietoa erilaisista tavoista toteuttaa ohjelmistoja ja erilaisista ratkaisuista, joita ohjelmien rakentelussa käytetään Oppia tekemään jotain muuta kun esim

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ä?