13/20: Kierrätys kannattaa koodaamisessakin

Samankaltaiset tiedostot
8/20: Luokat, oliot ja APIt

7/20: Paketti kasassa ensimmäistä kertaa

17/20: Keittokirja IV

Ohjelmointi 1 / syksy /20: IDE

19/20: Ikkuna olio-ohjelmoinnin maailmaan

11/20: Konepelti auki

5/20: Algoritmirakenteita III

Ohjelmistojen mallintaminen. Luento 11, 7.12.

12/20: Bitit talteen

Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest).

14/20: Keittokirja I

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Java-API, rajapinnat, poikkeukset, UML,...

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T

9/20: Puhu mun stdinille

Ohjelmoinnin peruskurssien laaja oppimäärä

Solidity älysopimus ohjelmointi. Sopimus suuntautunut ohjelmointi

1. Olio-ohjelmointi 1.1

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op

812341A Olio-ohjelmointi, I Johdanto

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

D-OHJELMOINTIKIELI. AA-kerho, 33. Antti Uusimäki. Arto Savolainen

DESCA-sopimuksen ohjelmistomoduuli ja avoimen lähdekoodin ohjelmistot

Ohjelmointi 2 / 2010 Välikoe / 26.3

6/20: Tietorakenteita

Soveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olioorientoituneeseen

TIE Principles of Programming Languages CEYLON

Interfacing Product Data Management System

4/20: Algoritmirakenteita II

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. II Johdanto olio-ohjelmointiin

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

15. Ohjelmoinnin tekniikkaa 15.1

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 30. marraskuuta 2015

ohjelman arkkitehtuurista.

Järjestelmäarkkitehtuuri (TK081702)

Pakkauksen kokoaminen

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

Sopimuspohjainen olio-ohjelmointi

Avoimen lähdekoodin ohjelmistot julkisessa hallinnossa

Android ohjelmointi. Mobiiliohjelmointi 2-3T5245

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

TIE Tietorakenteet ja algoritmit 1. TIE Tietorakenteet ja algoritmit

Uudelleenkäytön jako kahteen

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

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

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

LIITE 1 HANKITTAVAT KOULUTUKSET POHJOIS-POHJANMAAN ELY-KESKUS Koulutuksen nimi ja koulutuskuvauksen numero Paikkakunta

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 3. lokakuuta 2016

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

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

WINE API ja Virtualisointiohjelmistot

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

Johdatus ohjelmointiin

3. Komponentit ja rajapinnat

17. Javan omat luokat 17.1

15. Ohjelmoinnin tekniikkaa 15.1

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Älysopimusten kehittäminen. Sopimus suuntautunut ohjelmointi

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat

Ohjelmoinnin peruskurssien laaja oppimäärä

AVOIN LÄHDEKOODI JA SEN MERKITYS LIIKETOIMINNASSA

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

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Kieliversiointityökalu Java-ohjelmistoon. Ohje

JWT 2016 luento 11. to klo Aulikki Hyrskykari. PinniB Aulikki Hyrskykari

12. Kehysarkkitehtuurit

Antitammirobotti. Antti Meriläinen Martin Pärtel 29. toukokuuta 2009

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?

Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin

Katsaus tietoarkkitehtuurityöhön

Software product lines

Testivetoinen ohjelmistokehitys

Verso-projekti. Tero Hänninen Juho Nieminen Marko Peltola Heikki Salo Jyväskylän yliopisto

Kesäkurssi Opettaja: Paavo Nieminen Tervetuloa!

T harjoitustyö, kevät 2012

opetussuunnitelma- rakenne

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Suunnittelumallien käyttö ohjelmistosuunnittelussa

Omatietovaranto tilannekatsaus

Valppaan asennus- ja käyttöohje

17. Javan omat luokat 17.1

4. Luokan testaus ja käyttö olion kautta 4.1

Tutoriaaliläsnäoloista

Attribuuttikieliopit

UCOT-Sovellusprojekti. Asennusohje

Mikä on avoimen tuotteen hallintamalli perustiedot ja taustoitus. Jukka Kääriäinen, Tapio Matinmikko, Raija Kuusela

5. HelloWorld-ohjelma 5.1

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

20. Javan omat luokat 20.1

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

AS Automaatio ja systeemitekniikan projektityöt Projektisuunnitelma Syksy 2009 A09 05 OSGi IRC Bot For Coffee Maker

Kuutioiden pakkaus - Teoria

Transkriptio:

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 2007 p.1/8

Tämän luennon rakenne Eilisestä pari juttua vielä: RunTimeException vs. Exception throws Jotakin API-dokumentaatiossa Tiedostoon tallentaminen Tämän päivän asia (melko lyhyt): Moduulit ja yleiskäyttöisyys Paketit ja ohjelman hierarkia API javadoc Ohjelmointi 1 / syksy 2007 p.2/8

Kierrätys kannattaa: Moduulit Aliohjelmia kannattaa koota moduuleiksi (Javassa luokiksi), joissa sijaitsee aina samankaltaiseen tarkoitukseen sopivia aliohjelmia. Moduuli on yleisnimi, joka soveltuu riippumatta ohjelmointikielestä ja -alustasta. Olio-ohjelmoinnin luokka on moduuli siinä mielessä, että olion idea on tarjota sekä tietorakenne että algoritmit jonkun tietyn asiakokonaisuuden mallintamiseen. Instantoitava olioluokka on kuitenkin monipuolisempi käsite kuin silkka aliohjelmakirjasto Ohjelmointi 1 / syksy 2007 p.3/8

Kierrätys kannattaa: Yleiskäyttöisyys Modulaarisuudesta saatavia hyötyjä: Ohjelma jäsentyy selkeämmin. sama moduuli saattaa käydä sellaisenaan uusien sovellusten tekemiseen! Siis työmäärä vähenee! Mitä hyötyjen saanti edellyttää: Ohjelman parempi jäsentyminen edellyttää vain sitä, että moduulijako ylipäätään tehdään Selkeyden parantamiseksi moduulien keskinäisiä riippuvuuksia kannattaa välttää. Esim. A voi tarvita B:tä mutta silloin B:n ei tule tarvita A:ta. Uudelleenkäyttö edellyttää, että moduulien rajapinta ei juurikaan muutu päivityksen yhteydessä (muuten moduulia käyttävät ohjelmat menevät rikki ). Uudelleenkäytettävä moduuli on siis hiukan pidempiaikaisen kehityksen tulosta! Kuitenkin jokainen uusi toiminnallisuus on jo hyvä sijoittaa sopivimpaan moduuliin, vaikka tietäisi rajapinnan vielä pari kertaa muuttuvan! Ohjelmointi 1 / syksy 2007 p.4/8

Hierarkkinen mallintaminen tässäkin Luokkia (moduuleita) voi koota paketeiksi. Olennaisesti ne ovat isompia moduuleja, joissa on sisällä pienempiä moduuleja. Tällainen ns. moduulijako voi sisältää useita hierarkiatasoja. Ks. esim. Javan APIn paketit ja niiden jäsentyminen. Selkeätä on, jos lähdekoodien hakemistorakenne vastaa moduulihierarkiaa. Tämä on normaalisti käytäntö kielestä riippumatta; Javassa työkalut jopa pakottavat noudattamaan sitä. Ohjelmointi 1 / syksy 2007 p.5/8

Kirjasto Puhutaan apukirjastoista (joko aliohjelma- tai luokkakirjastoista), joilla on API (Application Programming Interface) eli rajapinta. Javan laaja peruskirjasto on esimerkki tällaisesta. Muita on paljon. Kirjasto tarjoaa yleiskäyttöistä (moneen eri tarkoitukseen soveltuvaa) toiminnallisuutta, jota tietty sovellus käyttää tarjotakseen jonkun tietyn palvelun loppukäyttäjälle. Järkevä sovellus on sellainen, joka käyttää valmiita kirjastoja apunaan, ja joka itsekin jakautuu hierarkkisesti kirjastoiksi toiminnallisten osioidensa mukaan. Ohjelmointi 1 / syksy 2007 p.6/8

API ja dokumentaatio Kirjasto koostuu siis tietorakenteiden, luokkien, aliohjelmien, vakioarvojen, ym. määrittelyistä API on kirjaston rajapinta: Julkiset asiat, joita voidaan käyttää ja kutsua. (Kirjastossa voi hyvin olla paljonkin sisäistä, piilotettua, toiminnallisuutta; API on se julkinen puoli, jonka käyttäytymisestä on sopimus eli rajapinta ) Kaoottisen kirjaston käyttö ja ylläpito on vaikeata, joten suunnittelu ja dokumentointi on tärkeää. APIn dokumentointiin on hyvä käyttää aputyökaluja; Javassa tämä on nimeltään javadoc ja se on sisäänrakennettu työkalustoon. Ohjelmointi 1 / syksy 2007 p.7/8

Käytännön esimerkki Muutetaan pari aiemmin nähtyä koodia sellaisiksi, että ne hyödyntävät yleiskäyttöistä moduulia. Tehdään javadoc -dokumentaatio myös. Ohjelmointi 1 / syksy 2007 p.8/8