Ohjelmistotekniikka - Luento 6 Jouni Lappalainen



Samankaltaiset tiedostot
Ohjelmistotekniikka - Luento 13

Integrointi. Ohjelmistotekniikka kevät 2003

Tapaustutkimus big data -analytiikkakoulutuksen suunnittelusta

HSMT J2EE & EJB & SOAP &...

HOJ J2EE & EJB & SOAP &...

Pohdiskelujen aiheita study group työskentelyyyn Luento 1:

Ohjelmistotekniikka - Luento 7 Jouni Lappalainen

Järjestelmäarkkitehtuuri (TK081702) SOA, Service-oriented architecture SOA,

Ohjelmistojen suunnittelu

7. Tuoterunkoarkkitehtuurit

GIS-arkkitehtuurit. Lassi Lehto,

Tiedonsiirto- ja rajapintastandardit

Sovellusarkkitehtuurit

Tietojärjestelmäarkkitehtuurit

SOA SIG SOA Tuotetoimittajan näkökulma

Järjestelmäarkkitehtuuri (TK081702)

Järjestelmäarkkitehtuuri (TK081702) Pilvipalvelut. Pilvipalvelut - lähtökohtia

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

arvostelija OSDA ja UDDI palveluhakemistoina.

Pilvilaskennan perusteet ja sanasto (ISO/IEC 17788) sekä jatkotyöstö. SFS SR-310 Pasi Mäkinen, Open Source Lead, Microsoft

10. Tuoterunkoarkkitehtuurit

in condition monitoring

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

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

Luento 8: XML-tuki ohjelmointikielissä & Web-palvelut

IoT-platformien vertailu ja valinta erilaisiin sovelluksiin / Jarkko Paavola

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri

Ohjelmistoarkkitehtuurit. Kevät 2014

Toimilohkojen turvallisuus tulevaisuudessa

9. Muunneltavuuden hallinta

Harjoitustehtävät: Ohjelmistotekniikka syksy 2015 (harjoitustyöraportin deadline ) Harjoitus 1:

Ohjelmistoarkkitehtuurit, syksy

Harri Kaukovuo Senior Sales Consultant Technology Sales Oracle Finland Oy

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

IBM Iptorin pilven reunalla

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A Kandidaatintyö ja seminaari

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Harjoitustehtävät: Ohjelmistotekniikka syksy 2018 (harjoitustyöraportin deadline ) Harjoitus 1:

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

Mitä muutoksia pilvipalvelut tulevat aikaansaamaan tietoteknisten ratkaisujen hankinta- ja toimitusmalleissa? Miten pilvipalvelut muokkaavat

Tietojärjestelmän osat

Pilvi mitä, miksi ja miten

Oulu D.C. kapasiteettipalveluita oululaiseen ekosysteemiin

TIEKE Verkottaja Service Tools for electronic data interchange utilizers. Heikki Laaksamo

Copyright Observis Oy All rights reserved. Observis Oy Ville Kanerva, CTO Heikki Isotalus, COO Datasta tietoa

7.4 Variability management

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Paikkatietorajapinnat IT arkkitehtuurin näkökulmasta

JHS 179 Kokonaisarkkitehtuurin suunnittelu ja kehittäminen Liite 9. Virtualisointi ja pilvipalvelut teknologia-arkkitehtuurin suunnittelussa

Harjoitustehtävät: Ohjelmistotekniikka kevät 2015 (harjoitustyöraportin deadline ) (Kalenteri-)Viikko 3:

Sisällys. Valtion tietotekniikan rajapintasuosituksia. XML:n rooleja sähköisen asioinnin tavoitearkkitehtuurissa. dbroker - asiointialusta

IoT-järjestelmän ja ulkovalaistuksen ohjauksen hankinta -markkinavuoropuhelutilaisuus

1 (5) VUOKRALISENSSIN KÄYTTÖÖNOTTO JA PILVIPISTEET AUTODESK ACCOUNTISSA. Milloin vuokra-aika alkaa?

Miten pilvipalvelut sopivat teidän organisaationne tarpeisiin? Case-esimerkki: M-Files; verkkolevykaaoksesta tehokkaaseen tiedonhallintaan

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

Käytettävyys verkko-opetuksessa Jussi Mantere

Hajautettujen järjestelmien rakentaminen - Jini. Ohjelmistotuotantovälineet-seminaarin esitelmä

ohjelman arkkitehtuurista.

Mistä on kyse ja mitä hyötyä ne tuovat?

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

ALUEARKKITEHTUURI WEB PALVELUITA KÄYTTÄEN. Niilo Saranummi VTT Tietotekniikka

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Mennäänkö pilveen? Klo 08-10

Palveluperustaiset arkkitehtuurityylit

Pilvipalveluiden arvioinnin haasteet

Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa

Visma Nova Webservice Versio 1.1 /

Mitä käytettävyys on? Käytettävyys verkko-opetuksessa. Miksi käytettävyys on tärkeää? Mitä käytettävyys on? Nielsen: käytettävyysheuristiikat

Ohjelmistokehykset ohjelmistorunkoja uudelleenkäyttö olioperustaisista ohjelmistorunko

Hajauta yhdistäen ja yhdistä hajauttaen: Web Services

-Yhdistetty viestintä osana uutta tehokkuutta. Petri Palmén Järjestelmäarkkitehti

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari

Automaatio mahdollistaa Software as a Service - arkkitehtuurin

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin

Automaatiojärjestelmän hankinnassa huomioitavat tietoturva-asiat


Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Suunnitteluvaihe prosessissa

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

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

Tuoterunkoarkkitehtuurit. Ohjelmistoarkkitehtuurit kevät Uudelleenkäyttö. Johannes Koskinen.

11. Tuoterunkoarkkitehtuurit

Tutkittua tietoa. Tutkittua tietoa 1

TUTKI OMAT TIETOTURVA-AUKKOSI. ENNEN KUIN JOKU MUU TEKEE SEN PUOLESTASI. F-Secure Radar Ville Korhonen

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Rakenteisen oppimateriaalin tuottaminen verkossa esimerkki Rhaptos. Antti Auer Koordinaattori, HT Jyväskylän yliopisto Virtuaaliyliopistohanke

WEBINAARI CLOUD SOFTWARE SRA- esi;ely

Forrester: tietohallinnon prioriteetit

SOA:lle on useita, jonkin verran toisistaan poikkeavia määritelmiä. Alla niistä muutamia.

Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus

Käytettävyyslaatumallin rakentaminen web-sivustolle. Oulun yliopisto tietojenkäsittelytieteiden laitos pro gradu -suunnitelma Timo Laapotti 28.9.

Kuntarekry.fi KL-Kuntarekry Oy / Tuula Nurminen

KODAK EIM & RIM VIParchive Ratkaisut

Älysopimusten kehittäminen. Sopimus suuntautunut ohjelmointi

Luento 8. Ohjelmistokehykset Tuoteperheet CSM14101 Ohjelmistoarkkitehtuurit

11. Tuoterunkoarkkitehtuurit

Ohjelmistoarkkitehtuurit. Kevät

Tietojärjestelmien integroiminen hyödyntämällä palvelupohjaista arkkitehtuuria. CASE: Metropolia. Jaakko Rannila & Tuomas Orama 1

Ohjelmistoarkkitehtuurit

Transkriptio:

Ohjelmistotekniikka - Luento 6 Jouni Lappalainen Luku 10: Komponenttitason suunnittelu komponenttipohjainen ohjelmistotekniikka (CBSE) CORBA ja SOA pilvipalvelu tuoterunkoon perustuva ohjelmistokehitysprosessi Luku 11: Käyttöliittymän suunnittelu kultaiset säännöt käyttöliittymän suunnitteluprosessi käyttöliittymän suunnitteluperiaatteet 1

Soveltuvat lait ja pohdiskelun aiheita 1. COTS perustainen ohjelmistokehitys ei poista kehitysprosessin riskejä / hyp_no 7, Basili - Boehm 2001 Sinha & Jain paperissa tutkittiin komponenttien ja luokkien (olioiden) uudelleenkäytön helppoutta kumpi uudelleenkäyttö (komponenttien/luokkien) oli helpompaa? mitä komponenttien mustalaatikko (black-box) uudelleenkäyttö tarkoittaa? Li et al. esittävät 10 faktaa, jotka liittyvät OTS (off-the-self) perustaisen kehittämisen teollisiin käytänteisiin. Esittele niistä viisi tarkemmin, eli esittele myös perustelut näille viidelle faktalle. Mitä tarkoittavat pilvilaskenta-arkkitehtuurin kolme tasoa; SaaS, PaaS ja IaaS (Yau & An mukaan)? Miten ohjelmistokehitys tapahtuu palvelupohjaisessa ohjelmistotekniikassa (SOSE) (Yau & An mukaan)? Mitä haasteita Yau & An ovat havainneet ohjelmistokehityksessä, kun käytetään palvelupohjaista ohjelmistotekniikkaa (SOSE)? 2

Komponenttipohjainen kehitys Komponentti on itsenäinen ohjelmistoyksikkö, jota yhdessä muiden komponenttien kanssa voidaan käyttää ohjelmiston rakentamisessa Jos uudelleenkäyttö on mahdollista ohjelmistoprojektissa, seuraavia kysymyksiä tulisi kysyä: Onko vaatimuksiin sopivia valmiita (commercial off-theshelf (COTS)) komponentteja saatavilla? Onko vaatimuksiin sopivia itse kehitettyjä komponentteja saatavilla? Ovatko saatavilla olevien komponenttien rajapinnat sopivia järjestelmän arkkitehtuuriin?

Komponentin ominaisuudet Yhdistettävä rajapinnat noudattavat julkista rajapintamäärittelyä Itsenäinen toimitetaan itsenäisenä, ilman tarvetta käyttää muita komponentteja Toimitettava pystyy toimimaan yksin alustalla, joka on komponenttimallin mukainen Dokumentoitu riittävä kuvaus, jotta käyttäjät pystyvät päättelemään, sopiiko komponentti heidän tarpeeseen Standardoitu noudattaa jotain standardoitua komponenttimallia» Sommerville 2004 Riippuvuudet komponentti voi riippua palveluista, joita se olettaa saavansa muilta komponenteilta vaadittujen rajapintojen kautta Käyttöönotto komponentti voidaan ottaa käyttöön lähdekoodisena (käännösaikana) tai käännettynä binäärimuodossa (linkkausaikana) Koko komponentin tulisi olla yhden henkilön hallittavissa Standardointi esimerkkinä Sunin EJBkomponenttistandardi» Koskimies, Mikkonen 2005 4

CBSE (component based software engineering) prosessit Toimialan tuntijat Suunnittelijat, Toteuttajat, Ylläpitäjät, Markkina-analysoijat CBSE uudelleenkäytön tuella (CBSE for Reuse) CBSE uudelleenkäytöllä (CBSE with Reuse) Määrittelijät, Suunnittelijat, Integroijat, Ylläpitäjät Komponentin sertifiointi Komponentin hallinta Komponentti kirjasto Komponentin hankinta Kirjaston hoitaja Ulkoinen lähde Kirjaston hoitaja, Tuottajat, Välittäjät Sommerville 2011 5

CBSE uudelleenkäytön tuella (CBSE for Reuse) Miten uudelleenkäyttöä voidaan edistää Poistetaan sovelluskohtaiset metodit (operaatiot) Muutetaan nimet helpommin ymmärrettäviksi Lisätään metodeja, jotta saadaan toiminnot kattavammiksi Tehdään poikkeusten käsittely yhdenmukaiseksi kaikille metodeille Lisätään konfigurointi rajapinta, jotta komponentti saadaan sovitettua helpommin käyttöön eri tilanteissa Uudelleenkäytön ja käytettävyyden ristiriita Komponentin uudelleenkäytön vahvistaminen tekee komponentista mutkikkaamman ja vaikeuttaa sen ymmärtämistä Mistä komponentteja Vanhoista (legacy) järjestelmistä, lisätään kääre (wrapper), jonka avulla komponentin saa helpommin käyttöön Sommerville 2011 6

CBSE uudelleenkäytöllä (CBSE with Reuse) Hahmottele järjestelmän vaatimukset Tunnista ehdokaskomponentit Sovita vaatimukset löydettyjen komponenttien mukaisiksi Arkkitehtuurin suunnittelu Yrityksillä on monesti jo valittu alusta esim..net Tunnista ehdokaskomponentit Integroidaan komponentit, käytetään liimakoodia Komponentin koostaminen Sommerville 2011 7

Tunnista ehdokaskomponentit Komponentin etsintä Komponentin valinta Komponentin validointi Luotettavilta toimittajilta, omista varastoista, koodikirjastoista (Sourceforce, Google Code) Voidaan tarvita useampia komponentteja/vaatimus, mikä komponenttijoukko parhaiten kattaa vaatimukset Testaus voi olla haastavaa, jos komponentin määrittely ei ole riittävän tarkka Sommerville 2011 8

CORBA (Common Request Broker Architecture) CORBA:n ideana on oliopohjaisuus ja neutraalin rajapintamäärittelyn (IDL, Interface Definition Language) käyttö Rungon määrittely (skeleton) Kaikki tarjottu palvelu noudattaa rajapinnaltaan IDL määrityksiä ja se voi olla toteutettuna esim. C, C++, Smalltalk tai Java kielillä DII (dynamic invocation interface) Interface repository Rajapinta CORBA ORB Stub (edustaja) (etäoliokutsujen staattinen muodostus) CORBA: n tarjoaman väylän kautta oliot voivat hakea tarvitsemansa palvelun Toteutus Koodi CORBA ORB CORBA tukee hajautettujen olioiden (komponenttien) käsittelyä asiakas/palvelin ympäristössä CORBA standardin mukaisia ORB toteutuksia > 10 Implementation repository 9

Palvelupohjainen arkkitehtuuri (SOA) löysästi kytkeytynyt arkkitehtuuri kolme protokollaa (XML pohjaisia) SOAP (Simple Object Access Protocol) kieli ja protokolla, jonka avulla rakenteellista tietoa siirretään WSDL (Web Services Description Language) kieli, jonka avulla SOAP protokollalla tarjotun palvelun rajapinta (pyyntö- ja vastausmuoto) voidaan määritellä UDDI (Universal Description, Discovery and Integration) standardoitu tapa julkaista ja etsiä eri palvelujen metadataa WSDL Palvelua pyytävä Palvelun välittäjä (broker) SOAP UDDI WSDL Palvelun tuottaja Palvelu Web palvelujen arkkitehtuuri 10

SOAP SOAP on kieliriippumaton Käyttää XML (Extensible Markup Language) kieltä kuvauskielenä rakennettaessa viestipakettia, joka tyypillisesti siirretään verkon yli HTTP protokollaa käyttäen. SOAP viestin peruosa on kantaelementti <SOAP:Envelope> joka sisältää vaihtoehtoisen otsikkoelementin <SOAP:Header> Oikeuksien tarkistamista Tapahtumien hallintatietoa ja pakollisen runkoelementin <SOAP:Body> <SOAP-ENV:Body> <mfindpart xmlns:m the-method-uri > <PartNo>12345 </PartNo> <GroupID>7 </GroupID> </mfindpart> </SOAP-ENV:Body> Envelope Header Extended information Body Method element Embedded element Other independent elements 11

Tuoterunkoon perustuva ohjelmistokehitysprosessi Alustakehitysprosessi (domain engineering) Vaatimusmäärittely Sovellusalueen käsitemalli Muunneltavuusvaatimukset Alustan suunnittelu Tuoterunkoarkkitehtuuri Alustan toteutus Yhteiset vaatimukset Toteutusympäristö Alusta Tuotekehitysprosessi (application engineering) Vaatimusmäärittely Tuotevaatimukset Tuotteen toteutus Tuote Tuotekohtainen koodi Koskimies&Mikkonen 2005 12

Tuoterunko ja yksittäinen tuote Komponentteja valinnainen Alusta Tuoterunko vaihtoehtoinen, mahdollisesti tuotekohtainen Alusta vaihtoehtoinen, ei tuotekohtainen Alusta Tuote Koskimies&Mikkonen 2005 13

Pilvipalvelu (pilvilaskenta, cloud computing) NIST (The US National Institute of Standards and Technology) määrittelee Cloud computing is a model for enabling convenient, on demand network access to a shared pool of configurable computing resources (e.g. networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. Kolme peruspiirrettä palvelujen laajuus voidaan säätää tarpeen mukaan kustannukset muodostuvat käytön mukaan ja laatu sovitaan SLA (service level agreement) sopimuksella palvelujen laatu (esim. varmuus ja suorituskyky) riippuu pitkälti Internetin palveluasteesta ja resurssien hallinnasta 14

Pilvipalvelu (pilvilaskenta, cloud computing) Pilvipalvelujen käyttämä verkko voi olla jotain neljästä pilvityypistä: Yksityinen pilvipalvelu, (Private cloud) Yrityksen oma tai vuokrattu palvelu, jolloin resurssit ovat ainoastaan yrityksen omassa käytössä (muodostaa oman suljetun verkon) Yhteisön omaan käyttöön tarkoitettu pilvipalvelu (Community cloud) Resurssit jaettuja ainoastaan määritellyn yhteisön käyttöön. Julkinen pilvipalvelu (Public cloud) Julkinen pilvi, avoin, lähes rajoittamattomat resurssit ja käyttäjät. Infrastruktuuri sijaitsee jaetuilla palvelimilla muiden samaa pilvipalveluntarjoajaa käyttävien asiakkaiden kanssa Yhdistelmä pilvipalvelu (Hybrid cloud) 15

Tunnetuimmat pilvipalvelun palvelutyypit IaaS - Infrastructure as a Service, IT infrastruktuuri, verkko, laitteistot ja sovellukset hankitaan pilvipalveluna, esim. Amazonin Elastic Compute Cloud (EC2), Eucalyptus, Openstack, OpenNebula. PaaS - Platform as a Service alustapalvelu, jonka päälle asiakas voi rakentaa sovelluksia, esim. Googlen AppEngine, Microsoftin Azure, Force.com, Rackspace. SaaS - Software as a Service sovellus tai sovelluksia hankitaan pilvipalveluna, esim. Facebook, Gmail, OfficeLive. tunnetaan myös seuraavat palvelut TaaS - Testing as a Service testausta hankitaan pilvipalveluna. HaaS Human as a Service crowdsourcing työvoimaa (esim. testaajia) hankitaan pilvipalveluna. 16

Yhdistävät ja erottavat piirteet Yhteiset piirteet Tuote 3 Toiminnallisuus, joka on kaikissa tuotteissa samassa muodossa Tuote 1 Tuote 2 Eroavat piirteet Sama käsitteellinen toiminnallisuus, jossa on pieniä tuotekohtaisia eroja Toiminnallisuus esiintyy kahdessa tai useammassa tuotteessa (mutta ei kaikissa) Tuotekohtainen toiminnallisuus Koskimies&Mikkonen 2005 17

11. Käyttöliittymän suunnittelu Helppo oppia? Helppo käyttää? Helppo ymmärtää? 18

Käyttöliittymän suunnittelu Tyypillisiä suunnitteluvirheitä! yhdenmukaisuuden puute liikaa muistamista ei ohjausta/apua ei poistumistietä outo kieli (tietokonetermit) ei oikopolkuja ei riittävää palautetta vaikea dialogi vaikeat virheilmoitukset 19

Kultaiset säännöt / Mandel 1997 Käyttäjä ohjaa (place the user in control) joustavat vuorovaikutustavat käyttäjä voi keskeyttää halutessaan ei teknisiä järjestelmätason ilmoituksia Vähennä muistikuormaa ei tarvetta muistaa komentoja, vaihtoehdot esille loogiset oikopolkukomennot Pidä käyttöliittymät yhdenmukaisina samat sanat, tilanteet tai toimenpiteet tarkoittavat aina samaa asiaa useissa ikkunoissa esiintyvät osaset pitäisi sijoitella kaikissa ikkunoissa samoihin paikkoihin 20

Käyttöliittymän suunnitteluprosessi Kuinka hyvin kaikki toiminnalliset vaatimukset on toteutettu? Kuinka helppokäyttöinen ja helppo oppia? Kuinka tyytyväinen käyttäjä on, miten palvelee käyttäjää työssä Käyttöliittymän validointi Käyttäjän, tehtävän ja ympäristön analyysi Mikä ongelma, mitä tehtäviä, miten tehtävät riippuvat toisistaan? Miten käyttäjä haluaa käyttää järjestelmää? Toteutus Käyttöliittymän suunnittelu Määrittele käyttöliittymän oliot ja toiminnot (operaatiot). Mallinna tapahtumat, jotka aiheuttavat tilan muutokset käyttöliittymässä. Kuvaa miten käyttöliittymän eri tilat näkyvät käyttäjälle. 21

Käyttöliittymän suunnittelun periaatteet / Tognozzi 2001 Ennakointi sovelluksen tulisi ennakoida käyttäjän tarpeita esim. tulostimen valmistajan sivulla on driver infon lisäksi linkki, mistä eri käyttöjärjestelmien driver voidaan ladata Kommunikointi käyttäjää tulisi informoida aktivoiduista toiminnoista Yhdenmukaisuus toimintojen ja esitystavan tulisi olla yhtenäinen läpi sovelluksen Kontrolloitu itsenäisyys käyttäjän navigointia sovelluksessa tulisi tukea, mutta tarvittaessa voidaan myös rajata käyttöä käyttäjätunnuksen ja salasanan avulla Tehokkuus sovelluksen käyttöliittymä tulisi suunnitella sellaiseksi, että tavoitteena on käyttäjän tehokkuuden paraneminen, ei suunnittelijan 22

Käyttöliittymän suunnittelun periaatteet / Tognozzi 2001 Joustavuus käyttöliittymän tulisi tukea sekä sovellusta tuntevia, että satunnaisia käyttäjiä ( eiku kokeilua) Fokus käyttöliittymän tulisi estää käyttäjää eksymästä Fittin laki kohteen löytämiseen kuluva aika on etäisyyden ja kohteen koon funktio /Fitt 1954 Käyttöliittymäoliot suunnaton määrä käyttöliittymäolioita löytyy kirjastoista, käytä niitä Odotusajan minimointi sovelluksen tulisi käyttää multitasking ominaisuutta ja suorittaa raskaita tehtäviä taustalla 23

Käyttöliittymän suunnittelun periaatteet / Tognozzi 2001 Opittavuus sovelluksen oppimiseen kuluva aika pitäisi minimoida Metaforat tuttujen periaatteiden (ja nimien) käyttö helpottaa oppimista Varmista tulosten säilyvyys varmista täytettävän lomakkeen talletus Luettavuus esitettävän tiedon tulisi olla helppolukuista Tilatiedon jäljitys tilatietoa tulisi tallettaa, jotta siihen voidaan palata Näkyvä (visible) navigointi the illusion that users are in the same place, with the work brought to them (käyttäjä valitsee toiminnot käyttöliittymässä esitellyistä) 24

Soveltuvat lait ja pohdiskelun aiheita 1. COTS perustainen ohjelmistokehitys ei poista kehitysprosessin riskejä / hyp_no 7, Basili - Boehm 2001 COTS (Commercial Off-The-Shelf) perustaista ohjelmistokehitystä on tehty aina. Nykyisinkin lähes kaikissa järjestelmissä on osa koottu valmiista komponenteista/ pakkauksista. COTS pakkausten käyttö lyhentää ohjelmistokehitysaikaa ja pienentää kehitysprosessin riskejä, mutta ongelmia voivat aiheuttaa esim. komponenttien tietoturvaratkaisut toimittajan tuen epävarmuus 25

Soveltuvat lait ja pohdiskelun aiheita Sinha & Jain paperissa tutkittiin komponenttien ja luokkien (olioiden) uudelleenkäytön helppoutta kumpi uudelleenkäyttö (komponenttien/luokkien) oli helpompaa? mitä komponenttien mustalaatikko (black-box) uudelleenkäyttö tarkoittaa? Li et al. esittävät 10 faktaa, jotka liittyvät OTS (off-the-self) perustaisen kehittämisen teollisiin käytänteisiin. Esittele niistä viisi tarkemmin, eli esittele myös perustelut näille viidelle faktalle. Mitä tarkoittavat pilvilaskenta-arkkitehtuurin kolme tasoa; SaaS, PaaS ja IaaS (Yau & An mukaan)? Miten ohjelmistokehitys tapahtuu palvelupohjaisessa ohjelmistotekniikassa (SOSE) (Yau & An mukaan)? Mitä haasteita Yau & An ovat havainneet ohjelmistokehityksessä, kun käytetään palvelupohjaista ohjelmistotekniikkaa (SOSE)? 26

Soveltuvat lait ja pohdiskelun aiheita Aiheeseen liittyvää luettavaa: Sinha A., and Jain H., Ease of Reuse: An Empirical Comparison of Components and Objects, IEEE Software, vol 30, no 5, 2013, pp. 70-75 Li J., Conradi R., and Slyngstad O., Bunse C., Torchiano M. and Morisio M., Development with Off-the-Shelf Components: 10 Facts, IEEE Software, vol 26, no 2, 2009, pp. 80-87 Yau S.S., An H.G., Software Engineering Meets Services and Cloud Computing, Computer, vol 44, no 10, 2011, pp. 47-53 27

Harjoitustehtävät: Viikko 5 1. Kirjoita toiminnalliset (järjestelmä)vaatimukset, joissa tarkennetaan käyttäjävaatimuksia ja otetaan huomioon toteutusympäristön aiheuttamat rajoitukset (jokaisesta vaatimuksesta yksilöllinen tunniste, kuvaus, rajoitukset ja liitäntä käyttäjävaatimuksiin). Voit käyttää samaa dokumenttipohjaa, kuin käyttäjävaatimuksissa. 2. Kirjoita ei-toiminnalliset (laatu)vaatimukset, joissa kiinnitetään tuotteen käytettävyyteen, tehokkuus, tilan tarpeeseen, luotettavuuteen, siirrettävyyteen ja turvallisuuteen liittyvät tavoitteet (jokaisesta vaatimuksesta yksilöllinen tunniste, liitäntä laatutekijään ja kuvaus). Voit käyttää samaa dokumenttipohjaa, kuin käyttäjävaatimuksissa. 3. Tee käyttäjävaatimusten ja toiminnallisten vaatimusten jäljitettävyysmatriisi. 28

Harjoitustehtävät: Viikko 5 4. Tee jokin tehtävistä a d. Sinun pitäisi rakentaa jokin seuraavista järjestelmistä a. Verkkopohjainen kurssille ilmoittautumisjärjestelmä yliopiston tarpeisiin. b. Web-perustainen tilausten käsittelyjärjestelmä tietokonekaupalle. c. Yksinkertainen laskutusjärjestelmä pienelle yritykselle. d. Internet-pohjainen keittokirja, joka on rakennettu osaksi sähköhellaa. Valitse näistä yksi ja kuvaa se luokkakaaviolla. Kaavoissa tulisi näkyä tieto-oliot, yhteydet ja tärkeimmät attribuutit. 29