Oppimistavoitteet. Sovellusaluemalli Domain Model. Esimerkkiohjelmisto Yinzer 1. Sovellusaluemallin käyttö. Sovellusaluemallin käyttö 24.9.
|
|
- Ari-Matti Alanen
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 Oppimistavoitteet Sovellusaluemalli Domain Model Luento 8 Sovellusalueen mallintaminen Tietomalli, invariantit, toiminnalliset skenaariot Suunnittelun mallintamisen perusteet Komponentit, konnektorit, rajapinnat ja portit Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit 2 Esimerkkiohjelmisto Yinzer 1 Yinzer on internetissä toimiva sosiaalisen median palvelu, joka tarjoaa jäsenilleen työhön liittyvää verkostoitumista ja työpaikkailmoittelua Pittsburghin alueella. Jäsenet voivat lisätä toisia palvelun jäseniä kontakteihinsa, julkaista työpaikkailmoituksia, ehdottaa jotain kontaktiaan avoimeen työpaikkaan ja vastaanottaa sähköpostiilmoituksia itselleen sopivista työpaikoista. 1 Yinzer = slanginimitys henkilölle, joka on kotoisin Pittsburghista (PA, U.S.A.) Ohjelmistoarkkitehtuurit 3 SOVELLUSALUEMALLI Ohjelmistoarkkitehtuurit 4 Sovellusaluemallin käyttö Sovellusaluemallinnuksen tehtävä on varmistaa, että toteutettavan ohjelmiston kannalta oleelliset sovellusalueen piirteet on ymmärretty oikein Tuloksena suppeampi malli kuin koko liiketoiminnan mallinnuksessa (business modelling), jonka tarkoitus on kattavasti kuvata jonkin yrityksen liiketoiminnan tavoitteet ja päätöksentekoprosessit (enterprise architecture) Liiketoimintamallin perusteella voidaan päättää, mitä liiketoiminnan prosesseja automatisoidaan, ja sovellusaluemallin avulla kuvataan automatisoitavan osuuden piirteet Sovellusaluemallin käyttö Sovellusaluemalli auttaa pitämään ohjelmistototeutukseen liittyvät suunnittelupäätökset erillään sovellusalueen käsitteistä (vastaavuussuhde) Suhteellisen yksinkertaisia sovellusaluemalleja voidaan käyttää kommunikoinnissa sovellusalueen asiantuntijoiden (ja asiakkaiden) kanssa tuloksellisemmin kuin suunnittelumalleja Mallin pohjalta rakentuu yhteinen kieli ohjelmistokehittäjien ja sovellusasiantuntijoiden välille Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit 6 1
2 Sovellusaluemallin käyttö Sovellusaluemalleista on eniten hyötyä järjestelmissä, joiden sovellusalue on suhteellisen monimutkainen ja jota kehittäjät eivät vielä hallitse Esimerkiksi laiteajureiden kehittäjillä on tyypillisesti paljon teknisiä haasteita ja hankalia laatuominaisuuksia toteutustyössä, mutta sovellusalue on suhteellisen suppea Sovellusaluemallista on heille vähemmän hyötyä He ovat usein itse alueen parhaita asiantuntijoita Ennen pitkää projektissa kuin projektissa tulee kuitenkin vastaan ongelma, jossa sovellusaluemalli voi auttaa Sovellusalueen puutteellinen ymmärtäminen on monien ITprojektien epäonnistumisen perimmäisiä syitä Epäilyksiä Sovellusalue on jo tunnettu miksi mallintaa sitä? Näin osittain onkin, ainakin kuumilla uutuusaloilla, mutta tylsät business-jutut voivat olla huonosti ymmärrettyjä, missä piilee riski Sovellusalue on niin simppeli, ettei sitä kannata mallintaa Ymmärtävätkö kehittäjät ja käyttäjät käyttäjien tarpeet varmasti samalla tavalla? Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit 8 Epäilyksiä Sovellusalue on yhdentekevä arkkitehtuurin suunnitteluratkaisujen kannalta Järjestelmien integroinnissa tulee tilanteita, joissa integroitavien (osa-)järjestelmien erilaiset tulkinnat samoista sovellusalueen käsitteistä johtavat yhteensopivuusongelmiin. Myös arkkitehtuurit ovat tällöin yleensä yhteensopimattomia. On jonkun toisen homma määritellä vaatimukset Ehkä, mutta näillä henkilöillä ei välttämättä ole ymmärrystä, mitkä asiat voivat aiheuttaa ongelmia arkkitehtuurin kannalta, ja heitä joutuu joka tapauksessa muutenkin avustamaan Epäilyksiä Sovellusalueen oppi parhaiten vähitellen, koodatessa Varmasti näin on, kaikissa tilanteissa tämä ei vain ole mahdollista, esimerkiksi evaluoitaessa valmiita ohjelmistoja integroitavaksi osaksi isompaa järjestelmää Suurissa projekteissa yksittäisten kehittäjien käsitykset sovellusalueesta voivat haitallisesti erkaantua Sovellusaluemallinnus on itseään ruokkiva prosessi, joka ei lopu koskaan (analysis paralysis) Tämä on todellinen riski! Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit 10 Analysis paralysis Paras lääke tähän tautiin on miettiä ensin, mihin sovellusalueeseen liittyviin kysymyksiin todennäköisesti tarvitaan vastauksia suunnittelu- ja toteutustyön aikana Kun vastaukset on saatu, mallinnus voidaan lopettaa Kysymykset riippuvat projektin riskeistä, tyypillisiä ovat käytettävyyteen ja yhteensopivuuteen (interoperability) liittyvät riskit On nähtävä, milloin mallinnuksen jatkamisesta ei enää saada lisäarvoa verrattuna muihin aktiviteetteihin - esimerkiksi prototyypin tekemiseen Sovellusaluemallin osat Tietomalli (Information model) Invariantit ja rajoitteet (Invariants, constraints) Tilannekuva (snapshot) Toiminnallinen skenaario (functionality scenario) Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit 12 2
3 Tietomalli Helpoimmin tehtävä ja kaikkein hyödyllisin sovellusaluemallin osa, joka määrittelee sovellusalueen asiat ja niiden väliset suhteet Tietomalli voidaan määritellä tekstuaalisesti (ikään kuin sanastona) tai graafisesti UMLkaavioina (käsite- eli luokkakaaviot) UML:n käytössä noudatettava pidättyvyyttä, että myös sovellusalueen asiantuntijat ymmärtäisivät ne (SME = subject matter expert) Tarkoitus on kuvata sovellusaluetta, ei suunnitteluratkaisuja! Tyyppi Ad (mainos) Company (yhtiö) Contact(kontakti) Employment (työsuhde) Job (työ, toimi) Job Match (rekrytointiehdotus) Person (henkilö) Tekstimuotoinen tietomalli Määritelmä Ilmoitus, jolla haetaan henkilöä (Person) yhtiössä (Company) olevaan avoimeen työpaikkaan (Job) Työnantaja, joka tarjoaa töitä (Job) henkilöille (Person) Kahden henkilön (Person) välinen suhde, joka tarkoittaa, että henkilöt tuntevat toisensa Suhde, joka ilmaisee, että henkilö on tai on ollut töissä (Job) yhtiössä (Company) Yhtiön (Company) toimi tai toimen kuvaus Toimen (Job) ja henkilön (Person) välinen suhde, joka tarkoittaa, että henkilö voi olla sopiva toimeen toisen henkilön mielestä Joku,joka voidaan ottaa työsuhteeseen Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit 14 Tietomalli UML-kaaviona Tyyppien (luokat) väliset suhteet (assosiaatiot) ja suhteisiin liittyvät määrälliset rajoitukset ovat suoraan näkyvissä Ohjelmistoarkkitehtuurit 15 Invariantit ja rajoitteet Tietomalli määrittelee sovellusalueen mallinnuksessa käytettävän sanaston Invariantit eli rajoitteet ilmaisevat väitteitä tai ehtoja (predicate), joiden pitää aina olla tosia Osa rajoitteista voidaan ilmaista suoraan kaavioissa (assosiaatioiden roolien määrälliset rajoitteet) Muu rajoite voidaan liittää UML-kaavioon huomautuksena (note) tai kirjata se johonkin erilliseen dokumenttiin Formaalilla OCL-kielellä voidaan ilmaista täsmällisiä UMLmallia koskevia rajoitteita, assosiaatioketjuja pitkin navigoiden Ohjelmistoarkkitehtuurit 16 Invariantit Tilannekuva Tietomalli kuvaa sovellusalueen asioita tyyppien tasolla, ei konkreettisten olioiden Tilannekuva taas kuvaa jossakin konkreettisessa tilanteessa muodostuvan olioiden eli tyyppien instanssien ja niiden välisten yhteyksien konfiguraation UML:n oliokaaviota käytetään olioiden ja niiden välisten linkkien (suhteiden eli assosiaatioiden instanssien) kuvaamiseen tilannekuvassa Jokainen kaavion olio kuuluu johonkin tyyppiin ja jokainen kaavion linkki on jonkin tyyppien välisen suhteen yksittäinen ilmentymä Tilannekuvia voi käyttää apuna rajoitteita mietittäessä, esimerkiksi voiko henkilö olla oma kontaktinsa Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit 18 3
4 Tilannekuva Toiminnalliset skenaariot Tilannekuvat näyttävät, minkälaisia olioita ja niiden välisiä linkkejä jollain tietyllä ajan hetkellä on olemassa Tietomalli ja invariantit kuvaavat taas kaikki mahdolliset tilanteet Yksittäisten tilanteiden on oltava tietomallin asettamien rajoitteiden mukaisia (esim. assosiaatioiden kardinaliteetit) Nämä eivät kuitenkaan kuvaa, miten sovellusalueen tila muuttuu ajanhetkestä toiseen Skenaariot kuvaavat tapahtumasarjoja, jotka aiheuttavat muutoksia tilanteista toisiin Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit 20 Skenaarioesimerkki Skenaarioista Nimi Alkutila Toimijat Owen saa töitä Widgetronista Bradleyon töissä Widgetron -yhtiössä Owen, Bradley, Widgetron Askelet 1. Owen ja Bradleytapaavat ammatillisessa konferenssissa, vaihtavat käyntikortteja ja liittyvät toistensa verkostoon (Contact) 2. Bradleyn työnantaja (Company) Widgetron julkaisee hakuilmoituksen (Ad) sovelluskehittäjän toimeen (Job) 3. Bradley ehdottaa (Job Match) Owenia sopivaksi henkilöksi Widgetronille 4. Widgetron palkkaa (Employment) Owenin sovelluskehittäjäksi On tärkeää laatia skenaario niin, että jokainen skenaarion askel aiheuttaa tilanteen muuttumisen Auttaa keskittymään tietomallin kuvaamiin asioihin ja jättää turhan yksityiskohdat ja rönsyt pois On hyvä ajatella tilannekuvaa ennen ja jälkeen jokaisen askelen, mikä auttaa kytkemään käyttäytymisen tiukasti tietomalliin Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit 22 Skenaarion tilannekuvat - alkutila 1. Askeleen jälkeen Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit 24 4
5 2. Askelen jälkeen 3. Askelen jälkeen Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit Askelen jälkeen Kysymys SME:lle : Ovatko Job ja Ad transientteja vai jääkö niistä pysyvämpi muisto sovellusalueelle? Skenaarioista Skenaario kertoo reaalimaailman asioista, eikä ota kantaa, miten ne ohjelmistossa toteutetaan Skenaario kuvaa yhden mahdollisen tapahtumien polun ja siihen liittyvät tilanteet Useimmiten muutama skenaario perustapauksista riittää UML:n tilakaaviot (State diagram) ja aktiviteettikaaviot (Activity diagram) sopivat yleisempiin kuvauksiin, jotka määrittelevät kaikkien mahdollisten polkujen joukon Vaativat myös enemmän työtä Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit 28 Yhteenveto Sovellusaluemalli auttaa pitämään suunnittelupäätökset erillään sovellusalueen ymmärtämiseen liittyvistä kysymyksistä Sovellusaluemalli määrittelee yhteisen kielen SME:iden ja kehittäjien välille Mallin laajuus ja syvyys on syytä päättää etukäteen miettimällä mihin kysymyksiin sen avulla pitää voida vastata ja minkälaisia erikoistilanteita ja outouksia on käsiteltävä Malli on väistämättä todellisuuden yksinkertaistus mutta sen pitää olla silti täsmällinen Nyrkkisääntö: jos jonkin sovellusalueen piirteen ymmärtämättä jääminen aiheuttaa riskin, se pitää mallintaa, muuten ei Huomautus Entity-Relationship mallinnus on yleisesti käytetty tietojärjestelmien tietosisällön analysointi ja määrittelyformalismi nship_model Menetelmä on erityisesti tarkoitettu relaatiotietokantojen rakenteen suunnittelun apuvälineeksi ja tarjoaa hieman UML:stä poikkeavan semantiikan Kokonaisuutena UML tarjoaa monipuolisemman joukon kaaviotyyppejä sovellusalueen mallinnukseen, mutta ER-malleissa on omat vahvat puolensa Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit 30 5
6 Arkkitehtuuriajattelun elementtejä SUUNNITTELUMALLIN PERUSELEMENTTEJÄ Ennen varsinaista suunnittelumalliin perehtymistä, käydään läpi peruskäsitteitä, joilla on merkittävä käytännöllinen ja myös käsitteellinen rooli arkkitehtuurisuunnittelussa Komponentti Konnektori Portit ja rajapinnat Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit 32 Komponentti KOMPONENTTI Komponentti on arkkitehtuurielementti, joka kapseloi osan järjestelmän toiminnallisuutta ja/tai dataa rajoittaa pääsyn tähän osaan tarkoin määritellyn rajapinnan kautta tapahtuvaksi ja jolla on eksplisiittisesti määritellyt riippuvuudet suoritusympäristöönsä. Voi olla iso (osajärjestelmä tai koko järjestelmä) tai pieni (yksittäinen operaatio) Voi koostua muista komponenteista, joiden avulla toteuttaa tarjoamansa palvelun (component assembly) Näkyy ulospäin vain rajapintansa kautta = tarjoaa rajapinnan muille elementeille: määrittelee, miten elementin palveluja käytetään, mutta ei niiden toteutusta Rajapinnan toteuttava olio (tai muutama) edustaa komponenttia ulospäin Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit 34 Komponentti Eksplisiittisesti määritellyt riippuvuudet vaatimukset komponenteille, joiden kanssa toimii yhteistyössä ns. vaadittu rajapinta (required interface) tarvittavat resurssit esimerkiksi tiedostot tai hakemistot ohjelma-alusta laitteistoalusta Määrittely metadatana, pakettiriippuvuuksina, dokumentteina Komponentit voivat olla Sovellusriippuvia kehitetty tietyn sovelluksen tarpeisiin Sovellusalueriippuvia - uudelleenkäytettävissä sovellusalueen sisällä (domain specific) Yleiskäyttöisiä käytettävissä useilla sovellusalueilla Komponentti CBD komponentti (CBD = Component Based Development) Aikoinaan tavoiteltiin komponenttimarkkinoita, joilta olisi voitu hankkia tarvittavia ohjelmistojen binäärisiä rakennuspalikoita samaan tapaan kuin elektroniikkakomponentteja - ajatus ei toteutunut Nykyään voi kuitenkin hankkia erilaisia web-apien kautta käytettäviä palveluita (melkein sama asia): tunnistaminen, maksupalvelut jne. Niinpä nykyään useimmat komponentit jaellaan paketteina lähdetai käännettynä koodina, josta suoritusaikainen komponentin ilmentymä instantioidaan (jonkin standardin määräämällä tavalla) Esim. ladataan pakkauksen sisältämä Java-luokka ja luodaan siitä olio, joka puolestaan luo olioita muista pakkauksen sisältämistä luokista muodostaen näiden kanssa suoritusaikaisen komponentti-instanssin Vaadin komponenttikirjasto Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit 36 6
7 Komponentit UML 2.0:ssa KONNEKTORI Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit 38 Konnektori Konnektori (connector) Arkkitehtuurielementti, jonka tehtävänä on mahdollistaa ja hallita komponenttien vuorovaikutusta Esimerkkejä konnektorityypeistä: proseduurikutsu, etäproseduurikutsu, jaetun datan käyttö, sanomanvälitys, jne Vastuita Kontrollin siirto Tiedon siirto Tuki- ja alustapalvelut (facilities) esim. toiminnon käynnistys, viestinvälitys, transaktiot, persistenssi, jne Konnektorien tehtäviä Tyypillisiä palveluita Kommunikointi tiedonsiirto (communication) esim. sanomanvälitys Koordinointi kontrollin siirto (coordination) esim. yksinkertainen proseduurikutsu - monimutkainen kuormantasauslliittymä Konversio komponenttien vuorovaikutustapojen yhteensovitus (conversion) esim. tietomuotokonversiot, kääreet (wrappers) Toiminnan mahdollistaminen tukitoiminta (facilitation) esim. ajastus, samanaikaisuuden hallinta Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit 40 Konnektorityyppejä Konnektorityypit Proseduurikutsu (procedure call) Tapahtuma (event) Tietokytkös (data access) Linkitys (linkage) Tietovuo (stream) Välittäjä (arbitrator) Sovitin (adaptor) Välityspalvelu (distributor) Konnektorin toteutus Komponentit sovelluskohtaisia palveluita, konnektorit sovellusriippumattomia vuorovaikutustapoja Ohjelmistojen toteutuksessa konnektoreilla Ei usein ole omaa koodia eikä identiteettiä Ei käännösyksikkövastaavuutta Toteutus on hajautettu useaan moduuliin ja useaan vuorovaikutusmekanismiin Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit 42 7
8 Konnektorit ja arkkitehtuurityylit Käsitteellisellä tasolla Keskeisiä identiteetin omaavia arkkitehtuurielementtejä Kuvaavat kaiken vuorovaikutuksen komponenttien välillä Tarvitsevat omat määritykset Konnektoreilla on usein tärkeä rooli arkkitehtuurityyleissä ja ratkaisumalleissa Vaatteet tekevät henkilön ja konnektori tyylin Mahdollistavat sovellusriippuvan toiminnallisuuden eriyttämisen komponentteihin RAJAPINNAT JA PORTIT Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit 44 Komponenttien rajapinnoista Ohjelmistorakennetta voidaan tarkastella komponentteina Komponentti muodostaa toiminnallisen kokonaisuuden, joka tarjoaa joukon loogisesti toisiinsa liittyviä palveluja Palvelut käyttävät samoja tietorakenteita Palveluja käytetään tyypillisesti samassa yhteydessä Toiminnallisuus peruste komponentin olemassaololle Komponentti on työnjaon perusyksikkö kaikissa kehitystyön vaiheissa Komponenttien rajapinnoista Yleinen ohjelmistosuunnittelun periaate: erotetaan se mitä halutaan tehdä siitä miten toiminta toteutetaan Komponentin ei pitäisi riippua tietyistä toisista komponenteista, vaan joukosta (abstrakteja) palveluja, joita muut komponentit tarjoavat Abstrakti palvelu määritellään rajapintana (interface) Minimaalinen rajapintamäärittely: palveluiden kutsumuodot (signatures) kutsu voi olla muutakin kuin paikallinen tai etäproseduurikutsu Esim. viesti-/tapahtumapohjainen protokolla Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit 46 Komponenttien rajapinnoista Rajapinnat määräävät tavat, joilla komponentit kommunikoivat keskenään Myös suurin osa arkkitehtuurityyleistä ja suunnittelumalleista perustuu rajapintojen käyttämiseen Huolellinen rajapintasuunnittelu edellytys Työn järkevälle jakamiselle Ohjelmiston keskeisten laatuominaisuuksien, kuten testattavuuden, ylläpidettävyyden ja muunneltavuuden varmistamiselle Rajapintasuunnittelu alkaa tyypillisesti heti keskeisten arkkitehtuuriratkaisujen tekemisen (esim. arkkitehtuurityylien valitsemisen) jälkeen Rajapinnan suunnittelu How to Design a Good API and Why it Matters Joshua Bloch, Google Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit 48 8
9 Komponenttien rajapinnoista Vaadittu ja tarjottu rajapinta Komponentti voi joko tarjota (eli toteuttaa) tai vaatia rajapinnan -> tarjotut ja vaaditut rajapinnat (provided and required interfaces) Tietty nimetty rajapinta on yleensä toisen komponentin vaatima ja toisen tarjoama Ohjelmointikielet, kuten Java tai C++, eivät tarjoa välineitä vaadittujen rajapintojen eksplisiittiseen kuvaamiseen komponenttien (pakkausten) tasolla (pitää kuvata eiformaalilla dokumentaatiolla) Eräät komponenttiarkkitehtuurit ja sovelluskehykset taas tukevat riippuvuuksien konfigurointia ja automaattista instantiointia komponentteihin liitetyn metadatan perusteella Javan annotaatiotia voi käyttää riippuvuuksien injektointia varten (kieli ei määrittele kuitenkaan injektointimekanismia) Sorter Vaadittu rajapinta (required interface) Collection List Tarjottu rajapinta (provided interface) Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit 50 Portti Portti Portti Liitoskohta, jonka kautta komponentti on yhteydessä ulospäin Mekanismi, jolla voidaan koota yhteen rajapintoja liittämällä ne samaan porttiin, esim. roolirajapinnaksi Portteja ei välttämättä tarvitse käyttää mallinnuksessa jokaisella rajapinnalla implisiittisesti oma porttinsa Porttiin voi liittyä oma protokollansa ja tilakoneensa Riippuu porttiin kytketyistä konnektoreistaja rajapintojen semantiikasta Ohjelmistoarkkitehtuurit 51 Konnektori (connector) Portti (port) Ohjelmistoarkkitehtuurit 52 9
OA: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
Ohjelmistoarkkitehtuurit
Ohjelmistoarkkitehtuurit Konnektorit ohjelmistoarkkitehtuurissa 18.9.2012 1 Konnektorit (connectors) Konnektori (connector) (liitos) Arkkitehtuurielementti, jonka tehtävänä on mahdollistaa ja hallita komponenttien
Sovellusalue- ja suunnittelumallit Domain Model, Design Model
Sovellusalue- ja suunnittelumallit Domain Model, Design Model Luento 5 10.10.2017 CSM14101 Ohjelmistoarkkitehtuurit 1 Oppimistavoitteet Sovellusalueen mallintaminen Tietomalli, invariantit, toiminnalliset
Ohjelmistoarkkitehtuurit, 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
Ohjelmistojen 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
Ohjelmistojen 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
Ohjelmistotekniikan menetelmät, UML
582101 - Ohjelmistotekniikan menetelmät, UML 1 Sisältö DFD- ja sidosryhmäkaavioiden kertaus Oliomallinnus UML:än kaaviotyypit 2 Tietovuokaaviot Data flow diagrams, DFD Historiallisesti käytetyin kuvaustekniikka
Koodimalli 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
OA:n kanoninen malli II
OA:n kanoninen malli II Luento 8 27.9.2013 581385 Ohjelmistoarkkitehtuurit 1 Suunnittelumalli Oppimistavoitteet Rajapintamalli, sisärakennemallit 27.9.2013 581385 Ohjelmistoarkkitehtuurit 2 1 SUUNNITTELUMALLI
Luokka- ja oliokaaviot
Luokka- ja oliokaaviot - tärkeimmät mallinnuselementit : luokat, oliot ja niiden väliset suhteet - luokat ja oliot mallintavat kuvattavan järjestelmän sisältöä ja niiden väliset suhteet näyttävät, kuinka
Oppimistavoitteet. Suunnittelumalli Design Model. Suunnittelumalli. Suunnittelumalli. Suunnittelumalli SUUNNITTELUMALLI.
Oppimistavoitteet Design Model Rajapintamalli, sisärakennemallit Luento 9 29.9.2015 581385 Ohjelmistoarkkitehtuurit 1 29.9.2015 581385 Ohjelmistoarkkitehtuurit 2 SUUNNITTELUMALLI sisältää arkkitehtuurin
UML- mallinnus: Tilakaavio
UML- mallinnus: Tilakaavio Karkea kuvaus UML- kaavioiden käytöstä ohjelmistonkehityksen eri vaiheissa ja tehtävissä. Mallinnus tilakaavioilla Tilakaaviolla kuvataan yhden luokan olioiden tilan muuttumista
Ohjelmistojen mallintaminen Unified Modeling Language (UML)
582104 Ohjelmistojen mallintaminen Unified Modeling Language (UML) 1 Olioperustaisuus Olio toimii mallinnuksen perusyksikkönä eri abstraktiotasoilla Järjestelmän rajaus, suunnittelu, ohjelmointi, suoritus..
Ohjelmistojen mallintaminen kertausta Harri Laine 1
kertausta 5.12.2008 Harri Laine 1 Ohjelmiston elinkaari, elinkaarimallit Yleinen puitemalli (reference model) - abstrakti kokonaiskuva ei etenemiskontrollia, ei yksityiskohtia Ohjelmistoprosessimallit
2. Olio-ohjelmoinnin perusteita 2.1
2. Olio-ohjelmoinnin perusteita 2.1 Sisällys Esitellään peruskäsitteitä yleisellä tasolla: Luokat ja oliot. Käsitteet, luokat ja oliot. Attribuutit, olion tila ja identiteetti. Metodit ja viestit. Olioperustainen
TIE-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
Rajapinnasta 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
Ohjelmistoarkkitehtuurit 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
13/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
Arkkitehtuurin mallintaminen
Arkkitehtuurin mallintaminen Luento 6 19.9.2013 581385 Ohjelmistoarkkitehtuurit 1 Oppimistavoitteet Miksi ja milloin ohjelmistoarkkitehtuurista kannattaa laatia malleja? Ohjelmistoarkkitehtuurin kanoninen
Tenttikysymykset. + 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ä
Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?
Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin? Avoin verkkoalusta ihmisen ja koneen ymmärtämien tietomääritysten tekemiseen Riitta Alkula 20.3.2019 Esityksen sisältö
Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja
582104 Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja 1 Arkkitehtuurisuunnittelu Ohjelmistoarkkitehtuurin määritelmä & arkkitehtuurisuunnittelun lähtökohta ja tavoitteet Kerrosarkkitehtuuri
Tenttikysymykset. + 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ä
812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton
2015 syksy 2. vsk IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton Sisältö 1. Johdanto luontimalleihin 2. Proxy 3. Factory Method 4. Prototype 5. Singleton Suunnittelumallit Proxy et.
UML-kielen formalisointi Object-Z:lla
UML-kielen formalisointi Object-Z:lla Kalvot ja seminaarityö WWW:ssä: http://users.jyu.fi/~minurmin/opiskelu/form/ UML UML == Unified Modelling Language. OMG:n standardoima kieli ohjelmistojärjestelmien,
Ohjelmistotekniikan menetelmät, kesä 2008
582101 - Ohjelmistotekniikan menetelmät, kesä 2008 1 Ohjelmistotekniikan menetelmät Methods for Software Engineering Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön
Sisä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.
UML: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
ohjelman arkkitehtuurista.
1 Legacy-järjestelmällä tarkoitetaan (mahdollisesti) vanhaa, olemassa olevaa ja käyttökelpoista ohjelmistoa, joka on toteutettu käyttäen vanhoja menetelmiä ja/tai ohjelmointikieliä, joiden tuntemus yrityksessä
Ohjelmistotekniikan menetelmät, kevät 2008
582101 - Ohjelmistotekniikan menetelmät, kevät 2008 1 Ohjelmistotekniikan menetelmät Methods for Software Engineering Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön
Arkkitehtuurin mallintaminen
Arkkitehtuurin mallintaminen Luento 7 25.9.2014 581385 Ohjelmistoarkkitehtuurit 1 Oppimistavoitteet Miksi ja milloin ohjelmistoarkkitehtuurista kannattaa laatia malleja? Ohjelmistoarkkitehtuurimallin ohjeellinen
Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys
Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty
Uudelleenkä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
Hieman lisää malleista ja niiden hyödyntämisestä
Hieman lisää malleista ja niiden hyödyntämisestä Ohjelmistojen mallintaminen Kesä 2012 (Avoin yliopisto) Toni Ruokolainen, 23.8.2012 Mallit Mallit ovat todellisuuden abstraktioita, jotka on muodostettu
Ohjelmistojen 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
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
Ohjelmistojen mallintaminen, kesä 2009
582104 Ohjelmistojen mallintaminen, kesä 2009 1 Ohjelmistojen mallintaminen Software Modeling Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön tuntemus Ohjelmoinnin
Ohjelmistojen 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
Joskus yleistäminen voi tapahtua monen ominaisuuden pohjalta. Myös tällöin voi tulla moniperintätilanteita.
Moniperintä 2 Joskus yleistäminen voi tapahtua monen ominaisuuden pohjalta. Myös tällöin voi tulla moniperintätilanteita. Oliomallinnus TITE.2040 Hannu K. Niinimäki 1 Delegointi 1 Moniperinnän toteuttaminen
Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu
Liite 1: skenaariot ja PoC tulokset 1. Palvelun kehittäjän näkökulma Tilanne Vaatimus Ongelma jos vaatimus ei toteudu Palvelun uusi versio on Palveluiden kehittäminen voitava asentaa tuotantoon vaikeutuu
2. Olio-ohjelmoinnin perusteita 2.1
2. Olio-ohjelmoinnin perusteita 2.1 Sisällys Luokat ja oliot. Käsitteet, luokat ja oliot. Attribuutit, olion tila ja identiteetti. Metodit ja viestit. 2.2 Luokat ja oliot Olio-ohjelmoinnin keskeisimpiä
OA:n kanoninen malli III
OA:n kanoninen malli III Luento 9 1.10.2013 581385 Ohjelmistoarkkitehtuurit 1 Näkymätyypit Koodimalli Oppimistavoitteet Arkkitehtuurisuunnittelun ja implementaation välinen kuilu Arkkitehtuurin tekeminen
Järjestelmäarkkitehtuuri (TK081702)
Järjestelmäarkkitehtuuri (TK081702) yleistyvät verkkopalveluissa Youtube Google... Avaavat pääsyn verkkopalvelun sisältöön. Rajapintojen tarjoamia tietolähteitä yhdistelemällä luodaan uusia palveluja,
Tietojärjestelmän osat
Analyysi Yleistä analyysistä Mitä ohjelmiston on tehtävä? Analyysin ja suunnittelun raja on usein hämärä Ei-tekninen näkökulma asiakkaalle näkyvien pääkomponenttien tasolla Tietojärjestelmän osat Laitteisto
Digi-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,
Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1
Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri 2 28.11.2008 Harri Laine 1 Ohjelmistoarkkitehtuuri Rajapinta UML:ssä piirteiden (attribuuttien ja operaatioiden) kokoelma, josta ei voi suoraan luoda ilmentymiä
Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä
www.niksula.cs.hut.fi/~jjkankaa// Demosovelluksen tekninen määrittely v. 0.6 Päivitetty 11.12.2000 klo 20:26 Mickey Shroff 2 (12) Dokumentin versiohistoria Versio Päivämäärä Tekijä / muutoksen tekijä Selite
Oppimistavoitteet. Arkkitehtuurin mallintaminen. Malleista ja niiden käytöstä. Malleista ja niiden käytöstä. Kommutatiivinen kaavio 22.9.
Oppimistavoitteet Arkkitehtuurin Miksi ja milloin ohjelmistoarkkitehtuurista kannattaa laatia malleja? mallin ohjeellinen rakenne Luento 7 22.9.2015 581385 Ohjelmistoarkkitehtuurit 1 22.9.2015 581385 Ohjelmistoarkkitehtuurit
Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:
Dokumentaatio, osa 1 Tehtävämäärittely Kirjoitetaan lyhyt kuvaus toteutettavasta ohjelmasta. Kuvaus tarkentuu myöhemmin, aluksi dokumentoidaan vain ideat, joiden pohjalta työtä lähdetään tekemään. Kuvaus
Yhteydelle voi antaa nimen kumpaankin suuntaan Sille ei tarvise antaa lainkaan nimeä Yhteysnimen asemasta tai lisäksi voidaan käyttää roolinimiä
DO NOT PRINT THIS DOCUMENT DO NOT PRINT THIS DOCUMENT Olioiden väliset yhteydet Yhteyden nimi Nimen lukusuunta pankkitili 0..10 Omistaja-> 1..3 asiakas
Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1
Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa 14.11.2008 Harri Laine 1 Oliot ohjelmiston mallinnuksessa käyttötapaus käyttää Käyttämämme oliokeskeinen perusmalli ohjelmistojen
Oppimistavoitteet. Koodimalli Code Model. Näkymätyypit. Näkymätyypit Yksi arkkitehtuuri monta näkymää NÄKYMÄTYYPIT
Oppimistavoitteet Koodimalli Code Model Luento 10 Näkymätyypit (suunnittelumalliasiaa) Koodimalli Arkkitehtuurisuunnittelun ja implementaation välinen kuilu Arkkitehtuurin tekeminen näkyväksi koodissa
Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki
Malliperustainen ohjelmistokehitys - MDE 25.9.2007 Pasi Lehtimäki MDE Miksi MDE? Mitä on MDE? MDA, mallit, mallimuunnokset Ohjelmistoja Eclipse, MetaCase Mitä jatkossa? Akronyymiviidakko MDE, MDA, MDD,
HELIA 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 /
Suunnitteluvaihe prosessissa
Suunnittelu Suunnitteluvaihe prosessissa Silta analyysin ja toteutuksen välillä (raja usein hämärä kumpaankin suuntaan) Asteittain tarkentuva Analyysi -Korkea abstraktiotaso -Sovellusläheiset käsitteet
Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.
Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita. Arkkitehtuuriin vaikuttavat ympäristötekijät Jo kehittämisen alkuvaiheessa on tarpeellista hahmotella arkkitehtuurin perusratkaisu. Lähtökohdat
Paikkatietojen tietotuotemäärittely
Paikkatietojen tietotuotemäärittely Esityksen sisältö: Mikä on paikkatietotuote? Mikä on paikkatietotuoteseloste? Kuka paikkatietotuotteita määrittelee? Mikä on paikkatietotuoteselosteen sisältö? Mitä
Yhteentoimivuusvälineistö
Yhteentoimivuusvälineistö Yhteinen tiedon hallinta (YTI) hanke V 1.0, 5.9.2017 Päivittyvä Miksi yhteentoimivuusvälineistöä tarvitaan? Ongelmana on kielen moniselitteisyys Tavallisessa kielenkäytössä emme
Suunnittelumallien käyttö ohjelmistosuunnittelussa
Suunnittelumallien käyttö ohjelmistosuunnittelussa Mika Rantakeisu Rovaniemen ammattikorkeakoulu Avoin ammattikorkeakoulu mika.rantakeisu@edu.ramk.fi Tiivistelmä Tämä on selvitys suunnittelumallien käytöstä
Tenttikysymykset. + 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ä
Arkkitehtuuripankki. Mallintamisen metamalli ja notaatiot
Arkkitehtuuripankki Mallintamisen metamalli ja notaatiot 21.2.2018 Sisältö Kuvaustapa (notaatio) ja standardit Mallityypit Metamalli Muuta Kuvaustavat ja hyödynnetyt standardit JHS179 template ArchiMate
Paikkatietojen tietotuotemäärittely
Paikkatietojen tietotuotemäärittely Esityksen sisältö: Mikä on paikkatietotietotuote? Mikä on paikkatietotuotemäärittely? Kuka paikkatietotuotteita määrittelee? Mikä on paikkatietotuotemäärittelyn sisältö?
Korkeakoulujen yhteentoimivuusmalli
Korkeakoulujen yhteentoimivuusmalli Tavoitteena korkeakoulujen opetus-, tutkimus- ja julkaisutietojärjestelmien yhteentoimivuus Miika Alonen Suvi Remes Nykytila Esim. Kirjastotoimi Opintopolku? Korkeakoulujen
Yhteentoimiva.suomi.fi - palvelukokonaisuuden ja työkalujen esittely
Yhteentoimiva.suomi.fi - palvelukokonaisuuden ja työkalujen esittely Petri Tenhunen 6.3.2019 Esityksen sisältö Lyhyt oppimäärä Yhteentoimivuus ja semanttinen yhteentoimivuus Yhteentoimivuusalusta Sanastot-työkalu
3. Käsiteanalyysi ja käsitekaavio
3. Käsiteanalyysi ja käsitekaavio lehtori Pasi Ranne Metropolia ammattikorkeakoulu E-mail: pasi.ranne@metropolia.fi sivu 1 Käsiteanalyysi Selvitetään mitä tietokantaan pitää tallentaa Lähtökohtana käyttäjien
Ohjelmistojen 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,
Kertaus: yleistys-erikoistus ja perintä
Kertaus: yleistys-erikoistus ja perintä Nauta, Lehmä ja Kuttu ovat Kotieläimiä, Kotieläimet Eläimiä Kotieläimillä (siis myös Naudoilla, Lehmillä ja Kutuilla) on Omistaja Kuttu ja Lehmä toteuttavat rajapinnan
Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet
..999 DO NOT PRINT THIS DOCUMENT DO NOT PRINT THIS DOCUMENT Yhteyden nimi Nimen lukusuunta pankkitili asiakas 0..0 Omistaja->..3
Valppaan asennus- ja käyttöohje
Versio Päiväys Muokkaaja Kuvaus 0.9 16.2.2006 Tuukka Laakso Korjattu versio 0.1 Antti Kettunen Alustava versio Sisällysluettelo 1 Johdanto...2 2 Valppaan asennus...3 2.1 Valppaan kääntäminen...3 2.2 Valmiiksi
Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet
DO NOT PRINT THIS DOCUMENT DO NOT PRINT THIS DOCUMENT Yhteyden nimi Nimen lukusuunta pankkitili 0..0 Omistaja->..3 asiakas
Palveluperustaiset arkkitehtuurityylit
Palveluperustaiset arkkitehtuurityylit Mukana palvelun tarjoajia ja palvelun käyttäjiä Perusajatuksena tyypillisesti tarjota johonkin resurssiin liittyviä palveluita 1 Asiakas-palvelin -arkkitehtuurit
Oliosuunnitteluesimerkki: 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ä
Sisä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
The OWL-S are not what they seem
The OWL-S are not what they seem...vai ovatko? Verkkopalveluiden koostamisen ontologia OWL-S Seminaariesitelmä 15.4.2013 Emilia Hjelm Internet on hankala Nykyinternet on dokumenttien verkko Asiat, joita
Kurssin aihepiiri: ohjelmistotuotannon alkeita
Kurssin aihepiiri: ohjelmistotuotannon alkeita [wikipedia]: Ohjelmistotuotanto on yhteisnimitys niille työnteon ja työnjohdon menetelmille, joita käytetään, kun tuotetaan tietokoneohjelmia sekä monista
Johtamisen haaste kokonaisarkkitehtuuri menestyksen mahdollistajako?
Johtamisen haaste kokonaisarkkitehtuuri menestyksen mahdollistajako? JÄRJESTÄJÄ SAVO Q AIKA 14.11.2018 Kokonaisarkkitehtuurin määrittelyä Tekijä(t) Armour, F. & Kaisler, S. 2017. Introduction to Enterprise
Sisä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.
Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit
Ohjelmiston testaus ja laatu Ohjelmistotekniikka elinkaarimallit Vesiputousmalli - 1 Esitutkimus Määrittely mikä on ongelma, onko valmista ratkaisua, kustannukset, reunaehdot millainen järjestelmä täyttää
812341A 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ää
Ohjelmistojen mallintaminen
Ohjelmistojen mallintaminen - Mallit - Ohjelmiston kuvaaminen malleilla 31.10.2008 Harri Laine 1 Malli: abstraktio jostain kohteesta Abstrahointi: asian ilmaiseminen tavalla, joka tuo esiin tietystä näkökulmasta
Interaktiivisten 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
Unified Modeling Language
Unified Modeling Language Confuse 25.11.2001 Tila Versio: 1.0 Vaihe: T1 Jakelu: Julkinen Luontipäivä: 15.11.2001 Antti Haapakoski Muutettu viimeksi: 25.11.2001 Antti Haapakoski Sisältö 1 Yleistä 1 2 Mallinnuksesta
Ohjelmistojen 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,
Ohjelmistojen mallintaminen Olioiden yhteistyö. 18.11.2008 Harri Laine 1
Ohjelmistojen mallintaminen Olioiden yhteistyö 18.11.2008 Harri Laine 1 Olioiden yhteistyö Oliokeskeisen ohjelmistonäkemyksen mukaan ohjelmiston palvelut tuotetaan olioiden yhteistyön tuloksena. Ohjelmisto
Tilakaaviot, sekvenssikaaviot (Haikala, Märijärvi ss , )
Tilakaaviot, sekvenssikaaviot (Haikala, Märijärvi ss. 121-133, 135 141) Jari Ojasti Nokia email : jari.ojasti@nokia.com puh : 040 5926 312 Sisältö Sekvenssikaaviot ja tilakaaviot osana UML:ia Sekvenssikaaviot
Opintojakso 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
Yhteentoimivuusalusta ja sen hyödyntäminen kuntien/maakuntien taloushallinnossa Petri Tenhunen, VRK
Yhteentoimivuusalusta ja sen hyödyntäminen kuntien/maakuntien taloushallinnossa Petri Tenhunen, VRK YTI tp4: XBRL taksonomian muodostaminen yhteentoimivuusalustalta Sisältö XBRL Taloustiedot sähköisessä
Tiedonsiirto- ja rajapintastandardit
Tiedonsiirto- ja rajapintastandardit Viitekehys Julkishallinnon perustietovarantojen rajapinnat (PERA) työryhmän tulokset valmiit syksyllä 2011 Määrittelee teknisen arkkitehtuuriratkaisun tietovarantojen
Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa k
1 Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa ko. toiminnallisuuden hyödyntämisen Web-palveluna.
Harjoitustehtävät ja ratkaisut viikolle 48
Harjoitustehtävät ja ratkaisut viikolle 48 1. Tehtävä on jatkoa aiemmalle tehtävälle viikolta 42, missä piti suunnitella älykodin arkkitehtuuri käyttäen vain ennalta annettua joukkoa ratkaisuja. Tämäkin
Enterprise SOA. Nyt. Systeemi-integraattorin näkökulma
Enterprise SOA. Nyt. Systeemi-integraattorin näkökulma 12.11.2007 Janne J. Korhonen 12.11.2007 Agenda 1. Prosessit ja palvelut, BPM ja SOA 2. BPM-projekteista yleensä 3. Prosessin elinkaarimalli 4. Kokemuksia
812347A 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
Dynaaminen analyysi II
Dynaaminen analyysi II Luento 7 Antti-Pekka Tuovinen 9 April 2013 1 Tavoitteet Black-box testitapausten suunnittelutekniikat II Tilamallien käyttö Syys-seurausverkot ja päätöstaulut Käyttötapaukset Yhteenveto
Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio
Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi Tarkentaa ja jäsentää vaatimusmäärittelyä, vastaa kysymykseen MITÄ järjestelmän tulisi tehdä. Suoritetaan seuraavia
Ohjelmistoarkkitehtuuri
Ohjelmistoarkkitehtuurien ylläpito Arkkitehtuurityylejä ja laatuvaatimuksia Arkkitehtuurin uudistaminen Arkkitehtuurin uudistamisen malleja Arkkitehtuurin arviointi TTY Ohjelmistotekniikka 1 Ohjelmistoarkkitehtuuri
ELM GROUP 04. Teemu Laakso Henrik Talarmo
ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................
Viestinvälitysarkkitehtuurit
Viestinvälitysarkkitehtuurit Lähtökohta: Järjestelmä koostuu keskenään kommunikoivista komponenteista, mahdollisesti hajautettuja Komponenttien palveluja ei tiedetä tarkasti etukäteen Komponentteja ja
4.12.2005. SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T
SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T SEPA: REFAKTOROINTI 2 (9) SEPA: REFAKTOROINTI 3 (9) VERSIOHISTORIA Version Date Author Description 0.1 2.12.2005 Erik Hakala Ensimmäinen
Ohjelmistoarkkitehtuurit 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?