Ohjelmistoarkkitehtuurit Komponentit Kevät 2014
|
|
- Santeri Oksanen
- 6 vuotta sitten
- Katselukertoja:
Transkriptio
1 Ohjelmistoarkkitehtuurit Komponentit Kevät 2014 (Samuel Lahtinen Johannes Koskinen) 1
2 Yleistä Harkkaryhmien viimeistely tapahtuu tänään 2
3 Aikataulua luento: komponentit, komponenttien dokumentaatio yms. luento: suunnittelumallit, komponenttien vuorovaikutus vierailuluento: Mika Siikarla - arkkitehdin arkipäivää luento: harjoitustyön esittely, arkkitehtuurityylit luento: arkkitehtuurityylit paperi luettavaksi/sessio katseltavaksi: lääketieteellistä tietojärjestelmää...? luento: ripaus pilveä, viestipohjaisuutta, vähän liikkuvaa konetta jne. paperi luettavaksi/sessio katseltavaksi: pattern-settiä Janne Sinivirta: Lean Architecture luento: arkkitehtuurin arvionti, DCAR & ATAM harjoitustyön välinäyttö/välipalautus, ei viikkoharjoituksia paperi luettavaksi/sessio katseltavaksi:? luento: muunneltavuuden hallinta, ylläpito
4 Komponentit ja rajapinnat Komponenttien idea: ohjelmistotuotannon rationalisointi Mikä on ohjelmistokomponentti? Komponentit ohjelmistoyksikköinä Rajapinnat Komponenttien räätälöinti Yhteenvetoa 4
5 Komponenttien idea: ohjelmistotuotannon rationalisointi Tuotteiden rakentaminen komponenteista tuotteista tulee luotettavampia tuotteita on nopeampi rakentaa rakentajia on helpompi kouluttaa komponenttimarkkinat ja kilpailu alentavat hintoja Sovelletaan lähes kaikilla tekniikan aloilla 5
6 Harjoitus: Anna 5 ominaisuutta, jotka ovat hyvällä ohjelmistokomponentilla 6
7 Sovellusten koostaminen komponenteista Visio: sovellus kootaan olemassaolevista komponenteista Työkaluja: skriptit, XML, visuaaliset koostamistyökalut 7
8 Jotain muuta 8
9 Metson työkalu prosessiautomaatioon Mika Karaila 9
10 3.2 Mikä on ohjelmistokomponentti? Komponentti = itsenäinen ohjelmistoyksikkö, joka tarjoaa palveluja hyvin määritellyn rajapinnan kautta Szyperski: A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third parties. 10
11 Komponenttien ominaisuuksia Itsenäisyyden aste Komponentit yleensä olettavat jonkin infrastruktuurin/ajoaikaisen tuen Komponentti voi olettaa tietyn palveluympäristön (vaaditut rajapinnat) Käyttöönottotapa Voidaan ottaa käyttöön kehitysaikana, linkitysaikana, käynnistysaikana tai käytön Koko aikana (lähdekoodisena tai binäärisenä) Vaihtelee oliosta alijärjestelmään Standardointi Rajapintojen standardointi sovellusalueella, infrastruktuurin standardointi Teknologia-spesifit ominaisuudet Esimerkiksi reflektio-ominaisuudet, metadata 11
12 x.3 Komponentit ohjelmistoyksikköinä Arkkitehtuurin perusyksikkö: Toiminnallisuuden yksikkö mikä osa vastaa tietystä toiminnallisuudesta? Uudelleenkäytön yksikkö mikä osat ovat yhteisiä eri tuotteissa? Tuotekonfiguraation yksikkö mitä osia kuuluu tuotteeseen? Käyttöönoton yksikkö mitkä osat voidaan ottaa erikseen käyttöön? Muuntelun yksikkö mitkä osat voidaan vaihtaa toisiksi? Ulkopuolisen kehityksen yksikkö mitkä osat voidaan saada muualta? Työnjaon yksikkö mitkä osat tuotetaan tietyillä henkilöillä/yksiköillä? 12
13 Rajapinnat Komponentti/rajapinta-käsitteen kehittyminen olioparadigmaan Aliohjelmat: toiminnan abstrahointi Moduulit: tiedon piilotus Luokat: laajennettavat moduulit Abstraktit luokat: luokat ilman toteutusta Moniperiytyminen: useita abstraktioita samalle toteutukselle Komponentit: erilliset rajapinnat 13
14 Aliohjelmat: toiminnan abstrahointi A B C kutsu kutsu kutsu aliohjelmakirjasto Palvelun kutsumuoto (signature) Palvelun toteutus 14
15 Moduulit: tiedon piilotus rajapinta kutsu M tietorakenteet A B C Esim. Ada 15
16 Luokat: laajennettavat moduulit M2 T1 M2 D T2 M1 A B C T1 A B C D T2 E F M2 sisältää myös M1-osan: E F 16
17 Abstraktit yliluokat: luokat ilman toteutusta M1 M2 T2 M2 D T2 Ei toteutusta D E F E F 17
18 Moniperiytyminen: useita abstraktiota samalle toteutukselle M0 M1 Ei toteutusta M2 T2 Ei toteutusta D E F 18
19 Komponentit: erilliset rajapinnat M1 M2 T2 D E F 19
20 Rajapinnat itsenäisinä ohjelmayksikköinä Komponentti A Komponentti B Rajapinta 1 Rajapinta 2 Rajapinta 3 Rajapinta 4 20
21 Kysyttävää?
22 Tarjotut ja vaaditut rajapinnat Komponentti voi olla kahdessa eri suhteessa rajapintaan: Komponentin tarjottu rajapinta Komponentti tarjoaa rajapinnan mukaiset palvelut Komponentin vaadittu rajapinta Komponentti tarvitsee rajapinnan mukaiset palvelut 22
23 Tarjotut ja vaaditut rajapinnat UML 2.x:ssa Car PowerSource vaadittu rajapinta PowerSource tarjottu rajapinta Engine PowerSource Car Engine 23
24 Tarjotut ja vaaditut rajapinnat UML 2.x:ssa Car PowerSource vaadittu rajapinta PowerSource tarjottu rajapinta Engine PowerSource Car Engine 24
25 Toteutus Javalla interface PowerSource { void start(); int temperature(); void stop(); } class Engine implements PowerSource... {... public void start() {...} public int temperature() {...} public void stop() {...} } class Car... {... private PowerSource eng;... public void seteng(powersource e) { eng = e; } public void run() {... eng.start();... eng.stop();... } } 25
26 Portit UML 2.x:ssa Vuorovaikutuksen mahdollistava kontaktipiste komponentin ja sen ympäristön välillä PowerSource PowerSource Portti Engine host Engine Warnings Warnings 26
27 Portit UML 2.x:ssa Porteilla voi olla lukumääräsuhteita ja nimi (kertoo, että kullakin komponentin instanssilla voi olla lukumääräsuhteen osoittama määrä portteja) request Portti port_name [multiplicities] Server response 27
28 Komponenttikaavioista Komponentin sisäisen toteutuksen kuvaaminen, komponentteja komponentissa (voidaan kuvata riippuvuuksien avulla kutsurakennettakin). 28
29 Rajapintojen sopimuspohjainen määrittely esiehto(tuloehto): täytyy päteä kun palvelua kutsutaan palvelun rajapinta design-by-contract Palvelun pyytäjä Palvelun tarjoaja Esi- ja jälkiehdot (Tulo- ja jättöehdot) määrittelevät palvelun merkityksen sallivat osapuolten vaihtamisen, kunhan tulo- ja jättöehdot pysyvät voimassa määräävät tarkistusvastuun osapuolten välillä palvelun tarjoaja joko täyttää sopimuksen tai aiheuttaa poikkeuksen Jälkiehto(jättöehto): täytyy päteä kun palvelu on suoritettu, olettaen että tuloehdot olivat voimassa kun palvelu aloitettiin 29
30 Periytyminen & tulo- ja jättöehdot pre' post' pre post A public oper(...) pre post pre' pre post' post B public oper(...) pre' post' pre pre' post' post C pre post' pre' post D Mikä on oikea vaihtoehto (A,B,C,D)? 30
31 Esimerkki Oletetaan, että teet sopimuksen verhoilijan kanssa: sinä toimitat kankaan, tuolin, maksun ja viinapullon, ja verhoilija toimittaa kuukauden kuluessa verhoillun tuolin tietyin laatukriteerein. Verhoilija sairastuu ja hän ehdottaa että työn tekee toinen verhoilija. Tällä on kuitenkin erilaiset toimintatavat. Millaisia voivat olla uuden verhoilijan toimintatavat, jotta verhoilijan vaihto olisi sinulle merkityksetön? 31
32 Esimerkki (jatkuu) Esimerkiksi: Onko ok, että uusi verhoilija haluaa tuolin, kankaan ja maksun, ja toimittaa verhoillun tuolin viikon sisään? Onko ok, että uusi verhoilija haluaa tuolin, kankaan, maksun,viinapullon ja lipun Tapparan matsiin, ja toimittaa verhoillun tuolin kahden kuukauden kuluttua? 32
33 Esi- ja jälkiehdoista Oliosuunnittelusta tuttuja SOLID-sääntöjä voi soveltaa myös komponenttien kanssa. (esim. Liskov s substitution Principle, Open-closed P., interface segregation P, Dependency Inversion) Komponentin kuvauksessa mukana myös riippuvuudet rajapintoihin (+palvelun kuvaus, mitä ja milloin käytetään). Ei-toiminnalliset vaatimukset, kuten suorituskyky (vasteaika, kokonaissuorituskyky, kuormituksen kesto), tärkeitä, jos komponentteja aiotaan käyttää tai erikoistaa. 33
34 Kysyttävää?
35 3.6 Komponenttien räätälöinti komponentin (alku)tilan muuttaminen vaadittujen rajapintojen toteutuksen antaminen tai muuttaminen aliluokittaminen 35
36 Komponentin alkutilan muuttaminen Client :Comp ServicesI setproperty(...) Comp create setproperty(...) use Komponentin käyttäjä asettaa komponentin alkutilan käyttötilanteen mukaiseksi ennen käyttöä 36
37 Vaadittujen rajapintojen toteutuksen antaminen tai muuttaminen Host str.part( ); operation operation StrategyA StrategyInterface part() Komponentin käyttämä palvelu vaihdetaan toiseksi kehitys- tai ajoaikana (staattisesti tai dynaamisesti) part() 37
38 Operaatiokohtainen räätälöinti display Button display brd.borderdrawing( ); CompanyBorder BorderStrategy borderdrawing borderdrawing koskee yksittäistä toimintoa voidaan vaihtaa ajoaikana (jos haluttu toteutus on olemassa) 38
39 Strategia (Strategy) suunnittelumalli operation Host operation part() str.part( ); StrategyInterface part() StrategyA 39
40 Aliluokittaminen Button Komponenttiluokka erikoistetaan aliluokittamalla sovelluksen tarpeiden mukaisesti (staattinen räätälöinti) CompanyButton 40
41 Särkyvän yliluokan ongelma Kirjasto komponentti Comp Viaton" muutos alkuperäiseen komponenttiin voi tehdä räätälöidystä komponentista toimimattoman Räätälöity komponentti Custom Fragile base class problem 41
42 Esimerkki (1) <<interface>> Container addelement(object) addcontainer(container) List addcontainer: {...addelement(...);... } <<interface>> CountedContainer getcount() CountedList addelement: { super.addelement(...); counter++; } 42
43 Esimerkki (2) <<interface>> Container addelement(object) addcontainer(container) List addelement:iä ei enää kutsuta! addcontainer: {...} <<interface>> CountedContainer getcount() CountedList addelement: { super.addelement(...); counter++; } 43
44 Haittoja Särkyvän yliluokan ongelma: komponentin periyttäminen voi olla riskialtista Lisensointiongelmat (Open Source-lisenssit vs. kaupalliset) Rajapinnan muuttuminen voi rikkoa rajapintaa käyttävät komponentit Muutoksia komponentteihin vaikea saada, vaikkei rajapintaa muutettaisikaan Järjestelmän muuttaminen ei ole ketterää Komponenttien käyttötapa voi poiketa toteuttajan visiosta muutos toteutuksessa voi särkeä sitä käyttäviä ohjelmistoja 44
45 3.7 Yhteenvetoa Komponentit ovat arkkitehtuurin perusyksiköitä, jotka liitetään toisiinsa tarjottujen ja vaadittujen rajapintojen kautta Rajapintojen tulisi määritellä paitsi kutsumuoto myös sopimus rajapinnan käytöstä (tulo- ja jättöehdot) Komponentteja voidaan räätälöidä sen alkutilaa muuttamalla, vaihtamalla sen vaadittuihin rajapintoihin liittyviä muita komponentteja tai periyttämällä siitä erikoistettu komponentti 45
46 Kysyttävää?
3. Komponentit ja rajapinnat
3. Komponentit ja rajapinnat 3.1 Komponenttien idea: ohjelmistotuotannon rationalisointi 3.2 Mikä on ohjelmistokomponentti? 3.3 Komponentit ohjelmistoyksikköinä 3.4 Rajapinnat 3.6 Komponenttien räätälöinti
LisätiedotOhjelmistoarkkitehtuurit kevät
Ohjelmistoarkkitehtuurit Kevät 2011-2012 Johannes Koskinen http://www.cs.tut.fi/~ohar/ 3. Komponentit ja rajapinnat 3.1 Komponenttien idea: ohjelmistotuotannon rationalisointi 3.2 Mikä on ohjelmistokomponentti?
LisätiedotKomponentit ja rajapinnat
Ohjelmistoarkkitehtuurit Kevät 2012-2013 Johannes Koskinen http://www.cs.tut.fi/~ohar/ 1 Komponentit ja rajapinnat 3.1 Komponenttien idea: ohjelmistotuotannon rationalisointi 3.2 Mikä on ohjelmistokomponentti?
LisätiedotOhjelmistoarkkitehtuurit kevät
Ohjelmistoarkkitehtuurit Kevät 2012-2013 Johannes Koskinen http://www.cs.tut.fi/~ohar/ 1 3. Komponentit ja rajapinnat 3.1 Komponenttien idea: ohjelmistotuotannon rationalisointi 3.2 Mikä on ohjelmistokomponentti?
LisätiedotOhjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1
3. Komponentit ja rajapinnat 3.1 Komponenttien idea: ohjelmistotuotannon rationalisointi 3.2 Mikä on ohjelmistokomponentti? 3.3 Komponentit ohjelmistoyksikköinä 3.4 Rajapinnat 3.6 Komponenttien räätälöinti
LisätiedotOhjelmistoarkkitehtuurit Komponentit Kevät 2016
Ohjelmistoarkkitehtuurit Komponentit Kevät 2016 Samuel Lahtinen http://www.cs.tut.fi/~ohar/ 1 Komponentit ja rajapinnat Komponenttien idea: ohjelmistotuotannon rationalisointi Mikä on ohjelmistokomponentti?
Lisätiedot3. Komponentit ja rajapinnat
3. Komponentit ja rajapinnat 3.1 Komponenttien idea: ohjelmistotuotannon rationalisointi 3.2 Mikä on ohjelmistokomponentti? 3.3 Komponentit ohjelmistoyksikköinä 3.4 Rajapinnat 3.5 Rajapintojen sopimuspohjainen
Lisätiedot3. Software components and interfaces
3. Software components and interfaces 3.1 The component vision: rationalizing software development 3.2 The component concept 3.3 Components as software units 3.4 Interfaces 3.5 Specifying interfaces 3.6
LisätiedotOhjelmistoarkkitehtuurit, syksy
Ohjelmistoarkkitehtuurit 2 Rajapinnat 24.9.2012 1 Arkkitehtonisen näkymän esittäminen Luonnollinen kieli + vapaamuotoinen grafiikka taustalla on oltava joku malli, jonka mukaisia asioita kuvaukseen otetaan
LisätiedotOhjelmistoarkkitehtuurit. Kevät
Ohjelmistoarkkitehtuurit Kevät 2012-2013 Johannes Koskinen http://www.cs.tut.fi/~ohar/ Tervetuloa Oulun yliopisto, Tampereen yliopisto, Turun yliopisto, Tampereen teknillinen yliopisto 2 Kurssin tavoitteet
LisätiedotOhjelmistoarkkitehtuurit Kevät käytäntöjä
Ohjelmistoarkkitehtuurit Kevät 2014 -käytäntöjä Samuel Lahtinen http://www.cs.tut.fi/~ohar/ 8.1.2014 1 Tervetuloa Oulun yliopisto, Tampereen yliopisto, Turun yliopisto, Tampereen teknillinen yliopisto
LisätiedotSisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki
Sisällys JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta Abstrakti luokka ja metodi Rajapintamäärittely (interface) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E.
LisätiedotTIE-20200 Ohjelmistojen suunnittelu. Luento 8..9: moniperintä
TIE-20200 Ohjelmistojen suunnittelu Luento 8..9: moniperintä 1 Ajankohtaista Harjoitustyön suunnittelusessiot pidetty, työt jatkuvat, välivaiheen esittely seuraavana Viimeinen viikkoharjoituskerta, palataan
LisätiedotOhjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1
Ohjelmistoarkkitehtuurit Syksy 2009 Kai Koskimies Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1 Tervetuloa Kuopion yliopisto, Oulun yliopisto (Kajaani), Tampereen yliopisto, Turun yliopisto,
LisätiedotTIE-20200 Ohjelmistojen suunnittelu
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
LisätiedotTIE Ohjelmistojen suunnittelu
TIE-20200 Ohjelmistojen suunnittelu Luento 10: olioiden rakentelumalleja ja SOLID TIE-20200 Samuel Lahtinen 1 Ajankohtaista Harjoitustyössä välinäyttöjen ajanvaraus auki Viikkoharjoitukset ohi Ohjelmassa
LisätiedotTenttikysymykset. + UML-kaavioiden mallintamistehtävät
Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä
LisätiedotTIE-20200 Ohjelmistojen suunnittelu
TIE-20200 Ohjelmistojen suunnittelu Luento 7: SOLID ja olioiden rakentelumalleja TIE-20200 Samuel Lahtinen 1 Ajankohtaista Harjoitustyössä suunnittelusessioiden ajanvaraus auki Viikkoharjoituksissa tehtaaseen/rakennuttajiin
LisätiedotRajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.
11. Rajapinnat 11.1 Sisällys Johdanto. Abstrakti luokka vai rajapinta? Rajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen
Lisätiedot13/20: Kierrätys kannattaa koodaamisessakin
Ohjelmointi 1 / syksy 2007 13/20: Kierrätys kannattaa koodaamisessakin Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy
LisätiedotRajapinta (interface)
1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä
LisätiedotOpintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat Rajapinnat Java-kieli ei tue luokkien moniperintää. Jokaisella luokalla voi olla vain yksi välitön yliluokka. Toisinaan olisi
LisätiedotOhjelmistoarkkitehtuurit. Syksy 2008
Ohjelmistoarkkitehtuurit Syksy 2008 Kai Koskimies 1 Tervetuloa Kuopion yliopisto, Oulun yliopisto, Tampereen yliopisto, Teknillinen korkeakoulu, Turun yliopisto, Vaasan yliopisto, Tampereen teknillinen
LisätiedotSisällys. 11. Rajapinnat. Johdanto. Johdanto
Sisällys 11. ajapinnat. bstrakti luokka vai rajapinta? ajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen avulla.
LisätiedotOhjelmistoarkkitehtuurit. Syksy 2010
Ohjelmistoarkkitehtuurit Syksy 2010 Kai Koskimies Tervetuloa Oulun yliopisto, Tampereen yliopisto, Turun yliopisto, Tampereen teknillinen yliopisto, Vaasan yliopisto Kurssin tavoitteet Arkkitehtuurin roolin
LisätiedotOhjelmistoarkkitehtuurit 2016. Kevät 2016 -käytäntöjä
Ohjelmistoarkkitehtuurit Kevät 2016 -käytäntöjä Samuel Lahtinen http://www.cs.tut.fi/~ohar/ 13.1.2016 1 Tervetuloa Tampereen teknillinen yliopisto, Oulun yliopisto, Turun yliopisto 13.1.2016 2 Tiedonvälitys
Lisätiedot812347A Olio-ohjelmointi, 2015 syksy 2. vsk. II Johdanto olio-ohjelmointiin
812347A Olio-ohjelmointi, 2015 syksy 2. vsk II Johdanto olio-ohjelmointiin Sisältö 1. Abstraktiosta 2. Olio-ohjelmoinnin historiaa 3. Olioparadigmasta 4. Peruskäsitteiden esittely 2 II.1 Abstraktiosta
Lisätiedot2 Ohjelmistoarkkitehtuurien kuvaus
2 Ohjelmistoarkkitehtuurien kuvaus 2.1 Arkkitehtuurikuvauksen merkityksestä 2.2 Arkkitehtuurin kuvaukseen liittyvät käsitteet 2.3 Arkkitehtuurikuvaukset eri tasoilla 2.4 Arkkitehtuurinäkymät ja kuvaustyypit
LisätiedotKoodimalli Code Model
Koodimalli Code Model Luento 6 10.10.2017 CSM14101 Ohjelmistoarkkitehtuurit 1 Oppimistavoitteet Koodimalli Arkkitehtuurisuunnittelun ja implementaation välinen kuilu ja sen hallitseminen Arkkitehtuuria
LisätiedotOhjelmistojen mallintaminen. Luento 11, 7.12.
Ohjelmistojen mallintaminen Luento 11, 7.12. Viime viikolla... Oliosuunnittelun yleiset periaatteet Single responsibility eli luokilla vain yksi vastuu Program to an interface, not to concrete implementation,
Lisätiedot12. Kehysarkkitehtuurit
12. Kehysarkkitehtuurit Johdanto Kehystyypit Kehysten osittaminen Kehykset ja suunnittelumallit Kehysten etuja ja ongelmia Yhteenvetoa Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1 Johdanto
Lisätiedot11. Kehysarkkitehtuurit
11. Kehysarkkitehtuurit Johdanto Kehystyypit Kehykset ja arkkitehtuuri Kehykset ja suunnittelumallit Kehyspohjainen ohjelmistokehitys Esimerkkikehys Kehysten toteutuksesta Kehysten etuja ja ongelmia Yhteenvetoa
LisätiedotOhjelmistojen suunnittelu
Ohjelmistojen suunnittelu 581259 Ohjelmistotuotanto 154 Ohjelmistojen suunnittelu Software design is a creative activity in which you identify software components and their relationships, based on a customer
LisätiedotViestinvälitysarkkitehtuurit Lähtökohta:
Ohjelmistoarkkitehtuurit Kevät 2012-2013 Johannes Koskinen http://www.cs.tut.fi/~ohar/ 1 Viestinvälitysarkkitehtuurit Lähtökohta: Järjestelmä koostuu keskenään kommunikoivista komponenteista, mahdollisesti
LisätiedotOsittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit
6. Arkkitehtuurityylit Osittavat arkkitehtuurityylit Kerrosarkkitehtuurit Tietovuoarkkitehtuurit Palveluihin perustuvat arkkitehtuurityylit Asiakas-palvelin arkkitehtuurit Viestinvälitysarkkitehtuurit
LisätiedotOhjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja
582104 Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja 1 Arkkitehtuurisuunnittelu Ohjelmistoarkkitehtuurin määritelmä & arkkitehtuurisuunnittelun lähtökohta ja tavoitteet Kerrosarkkitehtuuri
LisätiedotInteraktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.
Malli-näkym kymä-ohjain arkkitehtuurit (Model-View View-Controller, MVC) Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Lähtökohdat: Sovelluksen
LisätiedotTIE-20200 Ohjelmistojen suunnittelu
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
LisätiedotHuonon suunnittelun oireita. Hajuja ja sääntöjä. Hyvän suunnittelun periaatteet. Paha haju
Hajuja ja sääntöjä OA2005 Huonon suunnittelun oireita Kankeus suunnitelmaa on vaikea muokata. Hauraus suunnitelma on helppo rikkoa. Liikkumattomuus suunnitelmaa on hankala uudelleenkäyttää. Viskositeetti
Lisätiedot812341A Olio-ohjelmointi Peruskäsitteet jatkoa
812341A Olio-ohjelmointi 2106 Peruskäsitteet jatkoa Luokkakohtaiset piirteet n Yhteisiä kaikille saman luokan olioille n Liittyvät luokkaan, eivät yksittäiseen olioon n Kaikki ko. luokan oliot voivat käyttää
LisätiedotOhjelmistoarkkitehtuurin suunnittelu
Ohjelmistoarkkitehtuurin suunnittelu Luento 3 10.9.2014 581358 Ohjelmistoarkkitehtuurit 1 Oppimistavoitteet Arkkitehtuuritietämyksen lähteet Yleisiä suunnitteluperiaatteita Kaunis arkkitehtuuri 10.9.2014
LisätiedotOhjelmistoarkkitehtuurit. Kevät 2014 Kertausta
Ohjelmistoarkkitehtuurit Kevät 2014 Kertausta Samuel Lahtinen http://www.cs.tut.fi/~ohar/ 1 Sisältöä Hieman uutta asiaa/kertausta harjoitustöiden pohjalta Kurssin avainasioiden pikakelaus Tentin rakennetta,
LisätiedotTIE-20200 Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely
Lyhyt UML-opas UML -pikaesittely UML, Unified Modeling Language Standardoitu, yleiskäyttöinen mallinnuskieli, jota ylläpitää/hallitsee (Object Management Group) OMG Historiaa: 90-luvulla oli paljon kilpailevia
LisätiedotOhjelmistoarkkitehtuurit Kevät 2016 Johdantoa
Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa Samuel Lahtinen http://www.cs.tut.fi/~ohar/ 8.1.2014 1 1 Johdanto 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Ohjelmistoarkkitehtuuri ja laatuvaatimukset 1.3
LisätiedotViestinvälitysarkkitehtuurit
Viestinvälitysarkkitehtuurit Lähtökohta: Järjestelmä koostuu keskenään kommunikoivista komponenteista, mahdollisesti hajautettuja Komponenttien palveluja ei tiedetä tarkasti etukäteen Komponentteja ja
LisätiedotUudelleenkäytön jako kahteen
Uudelleenkäyttö Yleistä On pyritty pääsemään vakiokomponenttien käyttöön Kuitenkin vakiokomponentit yleistyneet vain rajallisilla osa-alueilla (esim. windows-käyttöliittymä) On arvioitu, että 60-80% ohjelmistosta
LisätiedotTIE-20200 Ohjelmistojen suunnittelu
TIE-20200 Ohjelmistojen suunnittelu Luento 6: suunnittelua Samuel Lahtinen TIE-20200 Samuel Lahtinen 1 Ajankohtaista Harjoitustyö Protosessioita tällä viikolla Ohjelmassa tänään Ohjelmistojen suunnittelujuttuja
Lisätiedot812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VII Suunnittelumallit Adapter ja Composite
2015 syksy 2. vsk VII Suunnittelumallit Adapter ja Composite Sisältö 1. Johdanto rakennemalleihin 2. Adapter (Sovitin) 3. Composite (Rekursiokooste) Suunnittelumallit Adapter ja Composite 2 VII.1 Johdanto
LisätiedotTIE Ohjelmistojen suunnittelu. Viimeinen luento: kertaus
TIE-20200 Ohjelmistojen suunnittelu Viimeinen luento: kertaus 1 Ajankohtaista Harjoitustyön dedis 7.12. klo 06:00 Demoilusessiot samalla/seuraavalla viikolla Harjoitustyön neuvontapäivystystä KE 15-16
LisätiedotOhjelmistoarkkitehtuurit. Syksy 2007
Ohjelmistoarkkitehtuurit Syksy 2007 Kai Koskimies 1 Tervetuloa Tampereen yliopisto, Teknillinen korkeakoulu, Turun yliopisto 2 Kurssin tavoitteet Arkkitehtuuritason peruskäsitteiden ymmärtäminen Arkkitehtuurien
LisätiedotJärjestelmäarkkitehtuuri (TK081702) Pilvipalvelut. Pilvipalvelut - lähtökohtia
Järjestelmäarkkitehtuuri (TK081702) Pilvipalvelut Pilvipalvelut Nouseva toteutustekniikka ja trendi Kuluttajat edellä, yritykset perässä Paino sanalla Palvelu Yhtenäisyyksiä vuosikymmenten taakse, sovelletaan
LisätiedotTenttikysymykset. + UML- kaavioiden mallintamistehtävät
Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä
LisätiedotUML:n yleiskatsaus. UML:n osat:
UML:n yleiskatsaus - voidaan hyödyntää hyvin laajasti. - sopii liiketoimintamallinnukseen, ohjelmistomallinnukseen sen jokaiseen vaiheeseen tai minkä tahansa pysyviä ja muuttuvia ominaisuuksia sisältävän
LisätiedotP e d a c o d e ohjelmointikoulutus verkossa
P e d a c o d e ohjelmointikoulutus verkossa Java-kielen jatkokurssi Teoria ja ohjelmointitehtävät Java-kielen jatkokurssi 3 YLEISKATSAUS KURSSIN SISÄLTÖIHIN... 8 JAVA-KIELEN JATKOKURSSI... 8 OPISKELUN
Lisätiedot815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.
LisätiedotDigi-tv vastaanottimella toteutetut interaktiiviset sovellukset
Tekninen määrittely: Editori Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset Sisällysluettelo 1. Johdanto...4 1.1. Tarkoitus ja kattavuus...4 1.2. Tuote ja ympäristö...4 1.3. Määritelmät,
Lisätiedot10. Muunneltavuuden hallinta: variaatiopisteet
Ohjelmistoarkkitehtuurit Kevät 2012-2013 Johannes Koskinen http://www.cs.tut.fi/~ohar/ 1 10. Muunneltavuuden hallinta: variaatiopisteet Muunneltavuuden hallinta (Variability management): Tekniikat ja työtavat,
LisätiedotOhjelmistoarkkitehtuurit. Kevät 2014
Ohjelmistoarkkitehtuurit Kevät 2014 Samuel Lahtinen (Johannes Koskinen) http://www.cs.tut.fi/~ohar/ 1 Yleisiä asioita Luennot keskiviikkoisin 10:15- Viikkoharjoitukset jatkuvat taas 8.4. Arviointien paikat
LisätiedotOhjelmistokehykset ohjelmistorunkoja uudelleenkäyttö olioperustaisista ohjelmistorunko
Ohjelmistokehykset Määritelmä & tavoitteet, taustaa & peruskäsitteitä, kehykset vs. suunnittelumallit, erikoistamisrajapinnat & kontrollinkulku, kehystyypit, kehysten rakenne ja evoluutio, esimerkki: JHotDraw,
LisätiedotInteraktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.
Malli-näkym kymä-ohjain arkkitehtuurit (Model-View View-Controller, MVC) Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Lähtökohdat: Sovelluksen
Lisätiedot9. Muunneltavuuden hallinta
9. Muunneltavuuden hallinta Muunneltavuuden hallinta (Variability management): Tekniikat ja työtavat, jotka auttavat kuvaamaan, toteuttamaan ja hyödyntämään tuoterungon mahdollistamaa ohjelmistotuotteiden
LisätiedotSisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1.
Sisällys Ratkaisumallien historia Jaakko Vuolasto 25.1.2001! Ratkaisumalli! Christopher Alexander! Ohjelmistotuotannosta arkkitehtuuriin! Henkilöhistoriaa! Ensimmäisiä käyttökokemuksia! Yhteenveto 25.1.2001
LisätiedotOhjelmistojen mallintaminen luokkamallin lisäpiirteitä
582104 Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä 1 Luokkamallin lisäpiirteitä Erilaiset yhteystyypit kooste kompositio Muita luokkien välisiä suhteita riippuvuudet periytyminen eli luokkahierarkia
LisätiedotKehyspohjainen ohjelmistokehitys
Kehyspohjainen ohjelmistokehitys Sovellusalueen käsitemalli, piirremalli Yhteiset vaatimukset Kehyksen suunnittelu Suunnittelumallit Vaatimusmäärittely Muunneltavuusvaatimukset Kehysarkkitehtuuri Erikoistamisrajapinta
Lisätiedot8. Kehysarkkitehtuurit
8. Kehysarkkitehtuurit Johdanto Kehystyypit Esimerkki: Simulointikehyksen malleja Kehyspohjainen ohjelmistokehitys Kehykset ja suunnittelumallit Esimerkkikehys Kehysten toteutuksesta Kehysten etuja ja
Lisätiedot1. Olio-ohjelmointi 1.1
1. Olio-ohjelmointi 1.1 Sisällys Olio-ohjelmointi on eräs ohjelmointiparadigma. Olio-ohjelmoinnin muotoja. Ohjelmiston analyysi ja suunnittelu. Olioparadigman etuja ja kritiikkiä. 1.2 Ohjelmointiparadigmoja
LisätiedotGraafisen käyttöliittymän ohjelmointi Syksy 2013
TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Syksy 2013 Luento 8 Suunnittelumallit käyttöliittymäohjelmoinnissa Juha-Matti Vanhatupa Yleistä Suunnittelumalli on
LisätiedotSisällys. Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö. 8.2
8. Periytyminen 8.1 Sisällys Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö. 8.2 Mitä on periytyminen? Periytyminen (inheritance) tarkoittaa luokan piirteiden
LisätiedotOsio 4: Graafinen käyttöliittymä
Javan Swing-tekniikan perusteet: Muistutus: Tarvitset seuraavia komponentteja harjoituksissa: otsikkoteksti (label) muokkausruutu (text field) komentopainike (button) yhdistelmäruutu (combo box) paneeli
LisätiedotSisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto
Sisällys 18. bstraktit tietotyypit Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.1 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:
LisätiedotTarjolla tänää: Ohjelmiston toteutuksesta. Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit. Testilähtöinen kehittäminen JOT2007. Uudelleenrakentaminen
Tarjolla tänää: Ohjelmiston toteutuksesta JOT2007 CRC-kortit Testilähtöinen kehittäminen Uudelleenrakentaminen Voisiko ohjelmointi olla sittenkin suunnittelua? Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit
LisätiedotMitä on periytyminen?
8. Periytyminen 8.1 Sisällys Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Filosofinen ja käytännönläheinen näkökulma periytymiseen. Periytymisen soveltaminen. 8.2 Mitä
LisätiedotOhjelmistoarkkitehtuurit kevät
Ohjelmistoarkkitehtuurit Kevät 20-202 Johannes Koskinen http://www.cs.tut.fi/~ohar/ Viestinvälitysarkkitehtuurit Lähtökohta: Järjestelmä koostuu keskenään kommunikoivista komponenteista, mahdollisesti
LisätiedotOhjelmistojen mallintaminen, mallintaminen ja UML
582104 Ohjelmistojen mallintaminen, mallintaminen ja UML 1 Mallintaminen ja UML Ohjelmistojen mallintamisesta ja kuvaamisesta Oliomallinnus ja UML Käyttötapauskaaviot Luokkakaaviot Sekvenssikaaviot 2 Yleisesti
LisätiedotXPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy
IBM Collaboration Forum ٨.٣.٢٠١١ XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy ٢٠١١ IBM Corporation Domino-sovelluskehitys Nopea kehitysympäristö (Rapid application development,
LisätiedotSuunnittelumalleja, MVC. Juha Järvensivu 2008
Suunnittelumalleja, MVC Juha Järvensivu juha.jarvensivu@tut.fi 2008 Sisältö Tarkkailija Strategia Rekursiokooste Tehdas-metodi MVC Tarkkailija suunnittelumalli Tarkkailijamalli (Observer) Määrittelee olioiden
LisätiedotJärjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet
Järjestelmäarkkitehtuuri (TK081702) Integraation tavoitteita Lähtökohta Web-palvelut Asiakasrekisteri ERP, Tuotannon ohjaus Tuotanto Myynti Intranet Extranet? CRM Johdon tuki Henkilöstö Kirjanpito Palkanlaskenta
Lisätiedot10. Muunneltavuuden hallinta: variaatiopisteet
10. Muunneltavuuden hallinta: variaatiopisteet Muunneltavuuden hallinta (Variability management): Tekniikat ja työtavat, jotka auttavat kuvaamaan, toteuttamaan ja hyödyntämään ohjelmistotuotteiden variaatiota.
LisätiedotOhjelmistojen mallintaminen, kesä 2010
582104 Ohjelmistojen mallintaminen, kesä 2010 1 Ohjelmistojen mallintaminen Software Modeling Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön tuntemus Ohjelmoinnin
Lisätiedot815338A Ohjelmointikielten periaatteet
815338A Ohjelmointikielten periaatteet 2015-2016 V Abstraktit tietotyypit ja olioohjelmointi Sisältö I. Abstraktit tietotyypit II. 1. Johdatus abstrakteihin tietotyyppeihin 2. Abstraktit tietotyypit Adassa
LisätiedotOhjelmistoarkkitehtuurin suunnitteluperiaatteita
Ohjelmistoarkkitehtuurin suunnitteluperiaatteita Luento 2 12.9.2017 581358 Ohjelmistoarkkitehtuurit 1 Oppimistavoitteet Arkkitehtuuritiedon lähteet Yleisiä suunnitteluperiaatteita Information hiding Single
LisätiedotOhjelmointi 2 / 2010 Välikoe / 26.3
Ohjelmointi 2 / 2010 Välikoe / 26.3 Välikoe / 26.3 Vastaa neljään (4) tehtävään ja halutessa bonustehtäviin B1 ja/tai B2, (tuovat lisäpisteitä). Bonustehtävät saa tehdä vaikkei olisi tehnyt siihen tehtävään
LisätiedotOhjelmistoarkkitehtuurit
Ohjelmistoarkkitehtuurit Kevät 2012-2013 Johannes Koskinen http://www.cs.tut.fi/~ohar/ 1 Viestinvälitysarkkitehtuurit Lähtökohta: Järjestelmä koostuu keskenään kommunikoivista komponenteista, mahdollisesti
LisätiedotYksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }
Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin testattaviin toiminnallisuuksiin, kuten olion tarjoamiin metodeihin.
LisätiedotOhjelmistojen mallintaminen viikon 4 laskareiden mallivastauksia
Ohjelmistojen mallintaminen viikon 4 laskareiden mallivastauksia Tehtävä 1 Tehtävässä 1 mallinnettiin Monopolipeliä. Alla olevassa esimerkissä peliin liittyy aina 2 noppaa, peliä pelataan pelilaudalla,
Lisätiedotwww.solita.fi solita@solita.fi
www.solita.fi solita@solita.fi JAVA-SOVELLUSTEN RAKENTAMINEN INTEGROITUUN YMPÄRISTÖÖN Jarno Peltoniemi Solita Oy 10.5.2005 Aiheet Johdanto Portaalit, portletit Oracle Portal Java-sovelluksen rakentaminen
Lisätiedot18. Abstraktit tietotyypit 18.1
18. Abstraktit tietotyypit 18.1 Sisällys Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:
LisätiedotKADA (Drupal 7) migraatio uuteen (versioon) webiin
KADA (Drupal 7) migraatio uuteen (versioon) webiin Hallittu elinkaaren siirto suoran migraation sijaan Mikko Malmgren & Antti Tuppurainen Mikko Malmgren / Kuntaliitto Antti Tuppurainen / Industry62 @mikko_malmgren
LisätiedotAalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1. Oliot ja luokat Javaohjelmoinnissa
Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1 Oliot ja luokat Javaohjelmoinnissa Vesa Laakso 22.9.2012 Sisällysluettelo Sisällysluettelo... 1 Johdanto... 2 1. Luokka... 2 2. Olio... 2 3. Luokan
LisätiedotCopyright Observis Oy All rights reserved. Observis Oy Ville Kanerva, CTO Heikki Isotalus, COO Datasta tietoa
Observis Oy Ville Kanerva, CTO Heikki Isotalus, COO Datasta tietoa Platform Tuotekehityksen haasteita ja ratkaisuja Haaste: Massiivisten tietomäärien hallinta Ratkaisu: Pilvipalvelun skaalautuvuus Haaste:
LisätiedotMuunneltavuuden hallintaa Kevät 2016 Samuel Lahtinen. Ohjelmistoarkkitehtuurit 2016
Ohjelmistoarkkitehtuurit Muunneltavuuden hallintaa Kevät 2016 Samuel Lahtinen http://www.cs.tut.fi/~ohar/ 1 Tulevaa luentosettiä Vierailuluentokausi seuraavan periodin alkupuolella, Veli-Pekka Eloranta,
LisätiedotOliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä
Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä
LisätiedotRutiinin muodostaminen. 2. Rutiinin muodostaminen. specification) Määrittely (specification( Määrittelyn osapuolet. Hyvän ohjelman tunnusmerkit
2. Rutiinin muodostaminen Rutiinin muodostaminen roolit 1. Rutiinin määrittely 2. Sopimuspohjainen ohjelmointi 3. Määrittelyjen kirjoittaminen 4. Erikoistilanteiden hallinta analysointi luokat rutiinit
LisätiedotOA:n kanoninen malli I
OA:n kanoninen malli I Luento 7 27.9.2013 581385 Ohjelmistoarkkitehtuurit 1 Oppimistavoitteet Sovellusalueen mallintaminen Tietomalli, invariantit, toiminnalliset skenaariot Suunnittelun mallintamisen
LisätiedotOhjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus
Yhteenveto Ohjelmistotuotanto vs. muut insinööritieteet Monimutkaisuus Näkymättömyys (Usein näennäinen) luotettavuus ja edullisuus Muunnettavuus Epäjatkuvuus virhetilanteissa Skaalautumattomuus Copyright
Lisätiedot10. Tuoterunkoarkkitehtuurit
10. Tuoterunkoarkkitehtuurit Johdanto Näkökulmat tuoterunkoihin perustuvaan ohjelmistokehitykseen: liiketoiminta, organisaatio, prosessi, tekninen Tuoterunkojen etuja ja ongelmia 1 Uudelleenkäytt yttö
LisätiedotT740103 Olio-ohjelmointi Osa 5: Periytyminen ja polymorfismi Jukka Jauhiainen OAMK Tekniikan yksikkö 2010
12. Periytyminen Johdantoa Käytännössä vähänkään laajemmissa ohjelmissa joudutaan laatimaan useita luokkia, joiden pitäisi pystyä välittämään tietoa toisilleen. Ohjelmien ylläpidon kannalta olisi lisäksi
LisätiedotMuutamia peruskäsitteitä
Muutamia peruskäsitteitä Huom. 1: nämä peruskäsitteet eivät muodosta hyvin määriteltyä keskenään yhteensopivien käsitteiden joukkoa, vaan käsitteet ovat osittain päällekkäisiä ja eri yhteyksissä niillä
LisätiedotHELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu
HELIA 1 (14) Luento 7 Käyttöliittymäolio... 2 Olioajattelun perusteet... 3 Tavoitteet... 3 Peruskäsitteet... 4 Olio / Olioinstanssi / Olion esiintymä... 4 Ominaisuudet... 4 Toiminnot... 4 Olioluokka /
LisätiedotTIE-20200 Ohjelmistojen suunnittelu
TIE-20200 Ohjelmistojen suunnittelu Luento 1: Virtuaalifunktiot, Template method 1 Yleistä asiaa Muistakaa harkkatyöilmoittautuminen 23 ryhmää (mm. lihansyöjäkirahvi), vajaita ryhmiäkin on 44 henkeä vielä
Lisätiedot