Tietojärjestelmät ja Systeemisuunnittelu

Slides:



Advertisements
Samankaltaiset esitykset
Tuloksellinen Java-ohjelmointi Luku 3 Luokkien käyttäminen
Advertisements

Palvelut ja tiedot käyttöön: Palveluväylä
18. Abstraktit tietotyypit
Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Tietokoneen käyttöjärjestelmä
1 Heli Lepomäki Yritysten ja muiden organisaatioiden käyttöön sähköinen työpöytä on jo leviämässä, koska niiden toiminta ja asiakaspalvelu.
Luokkakaaviot Luokkakaaviot Tekninen suunnittelu.
Tietojärjestelmät ja Systeemisuunnittelu
Olio-ohjelmointi. Mitä olio-ohjelmointi on ?  Pyritään mallintamaan jotain reaalimaailman kohdetta tietokoneohjelman avulla  Olio on luokan ilmentymä.
EXtensible Markup Language
Johdetun luokan määrittely tMyn1 Johdetun luokan määrittely •Kun johdettu luokka periytetään kantaluokasta, saadaan kantaluokan jäsenet enemmän tai vähemmän.
Power Point – esitysgrafiikkaohjelma lyhyesti
Olio-mallinnus Tietojärjestelmien suunnittelu KYAMK, Liiketalous, Kouvola Jarkko Ansamäki, 2002.
Valitse sanomapalkissa Ota muokkaus käyttöön,
Perintä. Yleistä Olio-ohjelmoinnin menetelmä muodostaa uusia luokkia aiemmin määriteltyjen luokkien avulla Luokka saa automaattisesti käyttöönsä kaikki.
OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT. LUOKKA JAVA ohjelma koostuu luokista LUOKKA sisältää metodeja molemmat sisältävät attribuutteja eli muuttujia.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Olio-ohjelmoinnin perusteet luento 3
2/2001 Tietojärjestelmät ja Systeemisuunnittelu Luennoitsija: Tapio Lammi
Tietojärjestelmät ja Systeemisuunnittelu
Oliomallittaminen ja UML
SE-02 Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo perustuu Kai Koskimiehen Oliokirjaan ja kurssin aiempiin materiaaleihin.
© Lammi-Niskala-Kossarev ADT:n toteutus Imperatiivinen paradigma Imperatiivinen paradigma toimenpiteet aktiivisia, tiedot passiivisia toimenpiteet.
Virtuaaliset jäsenfunktiot tMyn1 Virtuaaliset jäsenfunktiot Virtuaalinen jäsenfunktio on esiteltävä monimuotoisessa kantaluokassa. Virtuaalisen jäsenfunktion.
© Jukka Harju, Jukka Juslin
Vaasan yliopisto Tietojenkäsittely TiTe.1020 Ohjelmat.
Johdatus ohjelmointiin Ohjelmistosuunnittelu Jaana Holvikivi.
Luokan määrittely class-määreellä tMyn1 Luokan määrittely class-määreellä Luokan määrittely tarkoittaa luokan tietojäsenten esittelyä ja jäsenfunktioiden.
GNU-ohjelmointityökalut Jussi Raunio TI09OHJ
Ohjelmistojen suunnittelumenetelmät ja –työkalut
Koodistopalvelu. Mikä? Palvelu, jonka avulla koodistoja voidaan jakaa ja hallinnoida keskitetysti. Perustuu JHS-työryhmän suositusluonnokseen ja sen yhteydessä.
Onnistunut IT-projekti - Haaveesta totta? Tiken näkemys
Kuinka tehdä blogi o365:ssä
© 2010 IBM Corporation1 Objektien käyttöoikeudet  Kaikilla sisällönhallinnan objekteilla on käyttöoikeudet. Käyttöoikeudet on jaoteltuina Lukuoikeuksiin,
Projektisuunnitelma A12-08 Beckhoff-teollisuustietokoneen käyttöönotto Lauri Lötjönen Mikko Pulkki.
10. Abstrakti luokka Johdanto Abstrakti luokka (abstract class) poikkeaa konkreettisesta luokasta (ei-abstrakti luokka) siten, että siitä ei.
C 1. Testaus on ”sarja toimintoja” Itse asiassa, testaus on vuorovaikutusta, jota rytmittää ohjelmiston arviointi. Vaikka on hyödyllistä tunnistaa sarja.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Uudentyyppinen opiskelijaa tavoitteellisesti ohjaava opinto- ohjelma (O 4 ) Juha Paavola, Juha Hartikainen, Insinööritieteiden korkeakoulu, Rakennustekniikan.
17. Kooste Kooste Kooste (aggregation) on luokkien A ja B välinen suhde, joka tarkoittaa “A on B:n osa” tai “A kuuluu B:hen”. − Koostesuhteessa.
Rinnakkaisuus Järjestelmässä, jossa voi olla useita prosesseja rinnakkain suorituksessa voi tulla tilanteita, joissa prosessien suoritusta täytyy kontrolloida.
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö
Vesa Ollikainen & Outi Grotenfelt
11. Rajapinnat Sisällys Mitä rajapinnat ovat? Kuinka ne määritellään ja otetaan käyttöön? Moniperiytyminen rajapintojen avulla. Varoituksen.
Component diagram– Komponenttikaavio J. Pätsi & H. Malmihuhta
Monimuotoinen luokka tMyn1 Monimuotoinen luokka Monimuotoinen luokka mahdollistaa saman jäsenfunktion toteutuksen monella tavalla. Tällöin puhutaan virtuaalisesta.
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
Graafinen käyttöliittymä, osa 1
Kantaluokan määrittely tMyn1 Kantaluokan määrittely Perinnän käyttöön liittyvät varatut sanat private, protected, public, final ja abstract. Ne tarkoittavat.
Ydinpalveluiden (käyttäjä, käyttöoikeus, potilas).NET-palvelutoteutus: CoreServiceDemo PlugIT-loppuseminaari Koulutustyöpaja 1: Avoimet ohjelmistorajapinnat.
Palvelun käyttöliittymätasonpalvelun toteutus osaksi TIPTOP portaalia prosessin kulku EduGUI komponenttikirjasto on käytettävissä open sourcena, Eduix.
1 © Jukka Juslin Luokat, attribuutit ja metodit Yleistietoa: seuraavalla koulutusviikolla tarkempi käsittely.
8. Periytyminen Sisällys Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö.
XSL Teppo Räisänen
Software product lines. Suomeksi ohjelmistotuotelinja Kuvaa metodeja ja työkaluja tuottaa yhteiskäytettävää koodia samankaltaisissa sovelluksissa Tarkoituksena.
Koostekaavio– composite structure diagram Mikko Näpänkangas.
Miika Kuusinen LTY/Tietoliikenteen laitos 2003
2/2001 Tietojärjestelmät ja Systeemisuunnittelu Luennoitsija: Tapio Lammi
Tietojärjestelmät ja Systeemisuunnittelu
2/2001 Tietojärjestelmät ja Systeemisuunnittelu Luennoitsija: Tapio Lammi
VARMUUSKOPIOINTI Näin tehdään Varmuuskopiointi Mac OS X 10.5 Leopard Serverillä, mutta varmuuskopiointi tehdään samalla tavalla myös muissa Mac OS X- käyttöjärjestelmissä,
1.0 TE DiplomityöEsitelmä/ / JT Soveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olio- orientoituneeseen ohjelmointiin Jukka.
Yksikkötestaus ● Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin.
Kansallinen palveluväylä PERTIVA-kokous
Ohjelmistotuotantoprojekti Osuma
Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Kantaluokan määrittely
8. Periytyminen.
4. Luokan testaus ja käyttö olion kautta
2. Olio-ohjelmoinnin perusteita
Esityksen transkriptio:

Tietojärjestelmät ja Systeemisuunnittelu 2/2001 Tietojärjestelmät ja Systeemisuunnittelu 010557001 Luennoitsija: Tapio Lammi e-mail: tapi@iki.fi 1

Suunnittelumallit (Design Patterns)

Suunnittelumallit Suunnittelumallit ovat valmiita ratkaisumalleja teityntyyppisiin usein toistuviin ongelmiin Tavoitteena: Tarjota luettelo valmiista ratkaisuista ongelmatilanteisiin Yhtenäistää suunnittelukäytäntöjä Tarjota yhtenäinen käsitteistö toteutustavoille

Suunnittelumallit Suunnittelumallit voidaan jakaa kolmeen eri ryhmään: Olion luontia kontrolloivat mallit Olioiden rakennetta ja rajapintoja kontrolloivat mallit Olioiden käyttäytymistä kontrolloivat mallit

Olion luontia kontrolloivat mallit Abstract Factory - Toteutusmalli rajapinnalle jolla luodaan samaan ryhmään kuuluvia olioita, ilman että niiden varsinaisesta luokasta on tietoa. Builder - Mahdollistaa samalaisen luontiprosessin eri tyyppisille olioille Factory Method - tarjoaa rajapinnan olion luomiselle, mutta jättää aliluokkien tehtäväksi päättää lopullinen olion luokka Prototype - Mahdollistaa uuden olion luonnin kopioimalla sen ominaisuudet jo valmiista oliosta Singleton - Varmistaa että luokasta on olemassa ainoastaan yksi olio, ja tarjoaa sille sovelluksenlaajuisen luontirajapinnan

Abstract Factory Abstract Factory on käyttökelpoinen kun: Järjestelmän toteutuksessa käytettävät työkalut ja 3. Osapuolen tuotteet saattavat vaihtua Järjestelmän tulee olla konfiguroitavissa erilaisiin ympäristöihin Tietyntyyppiset olion on sidottava toimimaan yhdessä Toteutetaan työkalukirjastoa josta julkaistaan ainoastaan rajapinta

Abstract Factory - rakenne

AbstractFactory - komponentit AbstractFactory - Määrittelee olioiden luontiin käytetyn rajapinnan ConcreteFactory - Toteuttaa olion luontiin liittyvät varsinaiset operaatiot AbstractProduct - Määrittelee olion rajapinnan ConcreteProduct - Toteuttaa olion operaatiot jotka on määritelty AbstractProduct rajapinnassa Client - Käyttää ainoastaan AbstractFactory- ja AbstractProduct rajapinnan operaatioita

Abstract Factory - Esimerkki

Builder Builder mallia käytetään kun: järjestelmän täytyy mahdollistaa monimutkaisten olioiden luonnin ilman tietoa kaikista olion osista ja niiden luonnista Luontiprosessin täytyy mahdollista eri rajapinnat luotavalle oliolle

Builder - Rakenne

Builder - Komponentit Builder - Tarjoaa rajapinnan Product-olioiden luonnille ConcreteBuilder - Toteuttaa Builder-olion määrittämän rajapinnan olioiden luonnille ja tarjoaa rajapinnan luodun Product-olion käsittelylle Director - Luo oliot käyttäen Builder-rajapintaa Product - Luotava olio. Sisältää toteutettavien operaatioiden implementatiot ja luokkarakenteet

Builder - esimerkki Builders

Kontrollin eteneminen Builder-mallissa

Factory Method Factory Method on käyttökelpoinen kun: Luokka ei voi ottaa kantaa luomaansa olioon Luokka haluaa aliluokkiensa määrittelvän luotavan olion (impelementaatio ja rajapinta erotettu toisistaan)

Factory Method - Rakenne

Factory Method - Esimerkki

Prototype Protype mallia voidaan käyttää kun: Luotavat oliot ladataan dynaamisesti ajon aikana Halutaan välttää monikerroksiset Factory-hierarkiat Kun luotavat oliot ovat tilallisia, ja halutaan automatisoida olion tilan asetus sen sijaan että se tehtäisiin joka kerta käsin.

Prototype - Rakenne

Prototype - Komponentit Prototype - Määrittää rajapinnan olion kopioinnille ConcretePrototype - Toteuttaa kopiointirajapinnan toiminnallisuuden Client - Luo uuden olion pyytämällä prototyyppiä kopioimaan itsensä

Singleton Singleton mallia voidaan käyttää kun: Luokasta saa olla sovelluksessa käytössä vain ja ainoastaan yksi olio ja tälle oliolle halutaan sovelluksen laajuinen rajapinta Kun luokkaa jolla on vain yksi instanssi, pitää voida laajentaa periyttämällä, eikä luokan palveluita käyttävään koodiin haluta tehdä muutoksia

Singleton - Rakenne

Singleton - Komponentit Tarjoaa metodin, jolla olio palauttaa ainoan sovellukessa olevan instanssin itsestään Huolehtii itse olion luonnista ja sen käytön kirjanpidosta

Rakenteelliset Mallit Adapter - Kuorruttaa olion rajapinnan oliota käyttävien järjestelmän osien muotoon Bridge - Erottaa rajapinnan ja toteutuksen toisistaan niin, että molempia voidaan vaihtaa Composite - Mahdollistaa olioiden hierarkisen toteutuksen niin, että kutakin oliopuuta voidaan käsitellä yhtenä oliona Decorator - Mahdollistaa lisätoiminnallisuuksien lisäämisen olioon Façade - Tarjoaa yhtenäisen rajapinnan alijärjestelmän tarjoamille toiminnallisuuksille Flyweight - Mahdollistaa luotujen olioiden jakamisen järjestelmän osien kesken Proxy - Tarjoaa välirajapinnan jolla olion käyttöä voidaan kontrolloida

Adapter Adapter-mallia käytetään kun: Olion tarjoama rajapinta ei vastaa tarvittua rajapintaa Rakennetaan uudelleenkäytettäviä komponentteja joissa käytetyt luokkahierarkiat saattavat vaihdella työkaluista riippuen Järjestelmässä käytetään useita aliluokkia, mutta on epäkäytännöllistä sovittaa niitä rajapintaan periyttämällä

Adapter - Rakenne

Adapter - Komponentit Target - Määrittelee sovelluskohtaisen rajapinnan jota Client käyttää Client - käyttää toiminnassaan Target-rajapintaa Adaptee - Toteuttaa rajapinnan joka on sovitettava Target rajapintaan Adapter - Sovittaa Adaptee rajapinnan Target rajapintaan

Bridge Bridge-mallia käytetään kun: Halutaan välttää sidonta olion toteutuksen ja sen tarjoaman rajapinnan välillä Sekä rajapinnan että toteutuksen on oltava perittävissä olevia Toteutuksen vaihdon on oltava läpinäkyvä sitä käyttäville järjestelmän osille Halutaan jakaa olio useiden järjestelmänosien kesken ja toteuttaa esimerkiksi reference-counting kirjanpito niiden käytöstä

Bridge - Rakenne

Bridge - Komponentit Abstraction - Tarjoaa ulkoisen rajapinnan olion palveluun ja ylläpitää viitettä olion implementaatioon RefinedAbstraction - Laajentaa Abstraction rajapinnan toiminnallisuuksia Implementor - Määrittelee olion toteutuksen rajapinnan ConcreteImplementor - Toteuttaa olion tarjoaman toiminnallisuuden

Composite Composite mallia käytetään kun: Halutaan yksi access-piste joukolle samankaltaisia olioita Halutaan piilottaa palvelun käyttäjältä olioiden välinen hierarkinenr rakenne

Composite - Rakenne

Composite - Komponentit Component - Määrittelee rajapinnan hierarkian olioille, määrittelee oletustoteutuksen, sekä määrittelee rajapinnan lapsiolioiden käytölle Leaf - Toteuttaa olion, joka ei voi enää koostua muista Component olioista Composite - Määrittelee tominnallisuuden koosteolioille, säilyttää lapsikomponentit, sekä toteuttaa lasten käsittelyt Client - Käyttää olioiden palveluite Component rajapinnan kautta

Decorator Decorator mallia käytetään kun: Halutaan lisätä olion toiminnallisuutta ilman että muutetaan sen toteutusta Vähentämään periyttämisen tarvetta suurissa järjestelmissä Toteuttamaan ominaisuuksia joista voidaan myöhemmin haluta luopua

Decorator - Rakenne

Decorator - Komponentit Component - Määrittelee rajapinnan olioille joille voidaan lisätä ominaisuuksia ConcreteComponent - Olio, johon voidaan lisätä ominaisuuksia Decorator - Säilyttää viitteen Component-tason olioon ja toteuttaa sen rajapinnan ConcreteDecorator - Lisää toiminnallisuuksia Component - olioon

Facade Façade mallia käytetään kun: Halutaan yksinkertainen rajapinta monimutkaisiin operaatioihin Halutaan vähentää eri alijärjestelmiin kuuluvien olioiden riippuvuutta toisistaan Halutaan rakentaa järjestelmä kerroksittain, siten että kukin kerros tarjoaa tietyn rajapinnan ulospäin

Façade - Rakenne Alijärjestelmä

Façade - Komponentit Façade - Tuntee alijärjestelmän rakenteen ja ohjaa palvelukutsut kulloinkin oikealla oliolle Alijärjestelmän luokat: Toteuttavat alijärjestelmän toiminnallisuuden Ottavat palvelupyynnöt vastaan Façade oliolta Eivät ole riippuvaisia Façade oliosta

FlyWeight Flyweight mallia käytetään kun: Järjestelmä koostuu suuresta määrästä olioita Olioiden määrää pienentämällä voidaan pienentää resurssikulutusta Oliot ovat tilattomia Ohjelman toiminta ei ole riippuvainen olion identiteetistä

FlyWeight - Rakenne

FlyWeight - Komponentit Flyweight - Määrittelee rajapinnan jonka oliot tarjoavat muille järjestelmän osille ConcreteFlyweight - Toteuttaa Flyweight rajapinnan jaetuille olioille UnsharedConcreteFlyweight - Toteuttaa rajapinnan aliluokille joita ei voi jakaa Flyweight Factory - Luo Flyweight oliot ja pitää niistä kirjaa Client - Käyttää jaettuja Flyweight olioita ja hakee ne Flyweight Factoryltä

Proxy Proxy-Mallia käytetään kun: Halutaan tarjota paikallinen rajapinta toisessa järjestelmässä olevaan olioon (remote Proxy) Kun halutaan luoda raskaat oliot vasta ajon aikana tarvittaessa (virtual Proxy) Kun halutaan kontrolloida olioiden palvelun käyttöä (protection Proxy) Kun halutaan toteuttaa kuorman jakoa tai vikasietoisuutta (smart Proxy)

Proxy - Rakenne

Proxy - Komponentit Proxy: Pitää yllä viitettä palvelun toiminnallisuuden toteuttavaan olioon Tarjoaa varsinaisen olion kanssa identtisen rajapinnan Kontrolloi varsinaisen olion palveluiden käyttöä Subject - Määrittelee rajapinnan jonka palvelu toteuttaaa RealSubject - Toteuttaa varsinaisen palvelun toiminnallisuuden