Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Samankaltaiset tiedostot
Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

<e.g. must, essential, conditional>

Monikielinen verkkokauppa

ONKI-projekti JUHTA KANSALLISKIRJASTO - Kirjastoverkkopalvelut

Projektisuunnitelma. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14 <JULKINEN>

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

Tekninen suunnitelma - StatbeatMOBILE

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

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Projektinhallintaa paikkatiedon avulla

Ohjelmiston toteutussuunnitelma

Hallintaliittymän käyttöohje

HTTP-välityspalvelimen käyttö tapahtumien keräämiseen

PATA WEB KÄYTTÖLIITTYMISTÄ

HumakPro-uudistuksia ja -parannuksia / kevät 2013:

Tekninen suunnitelma - StatbeatMOBILE

Hälyri-tietojärjestelmän järjestelmätestaussuunnitelma ja -raporttimalli

Loppuraportti. Ryhmä 14. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan. Innofactor Oy

Visma Liikkuvan työn ratkaisut VLS lisensointi. Ylläpitäjän opas

Solteq Tekso v.4.0. Versiopäivitysohje.

Seuraavat Windowsin käyttöjärjestelmäversiot tukevat Novell Filr -työpöytäsovellusta:

Päivitys Navigo Portalin versioon 5.1

Tekstieditorin käyttö ja kuvien käsittely

Visma Fivaldi -käsikirja Asiakaskohtaiset hinnat

Pikaopas. Ohjeiden etsiminen Hae ohjesisältöä napsauttamalla kysymysmerkkiä.

Skype for Business ohjelman asennus- ja käyttöohje Sisällys

UCOT-Sovellusprojekti. Asennusohje

Sisällys Word Wep App... 3 Excel Web App... 7 Powerpoint Web App OneNote Web App Excel Kysely Valmiin tiedoston tuonti Skydrive Pro

TermBase NET versio (Beta)

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

Projektisuunnitelma. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14 <JULKINEN>

Valppaan asennus- ja käyttöohje

Projektityö: Mobiiliajopäiväkirja. Mikko Suomalainen

UCOT-Sovellusprojekti. Testausraportti

Visma Fivaldi. Ohjeet Java web startin ja HTML5-työkalun aktivointiin

Hälyri-tietojärjestelmän järjestelmätestaussuunnitelma ja -raporttimalli

Skype for Business ohjelman asennus- ja käyttöohje Sisällys

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0

Visma Liikkuvan työn ratkaisut

ASENNUS JA KÄYTTÖOHJE

Ohjeet S-ryhmän tuotetietoportaaliin

OptimePortal ja OptimeEvent versioiden yhteenveto joulukuu

EASY PILVEN Myynnin opas - Storage IT

Sähköpostitilin käyttöönotto. Versio 2.0

Verkkolaskujen arkistointi

YKSA(2) ( Käyttäjän ohje

Lohtu-projekti. Testaussuunnitelma

Tuomiorekisterin ratkaisuhaun kehittäminen

Kani Pawnshop -ohjelmiston käyttö Rugged Tooling

TOIMINNALLINEN MÄÄRITTELY MS

Paikkatiedon infrastruktuurin hyödyntäminen

CTRL+F Android-sovellus

Visma Liikkuvan työn ratkaisut Päivitysohje. Pääkäyttäjän opas

Ohjelmistoprojektin vaiheet ja OMT++ -suunnittelumenetelmä

Pikaopas. The New Black. Kesäkuu Datscha Pikaopas The New Black ( ) 1 (14)

Tekso. 3.0 version päivitysohje

SmartShip Connect Lite lisäosa WooCommerce alustalle (c) Webbisivut.org

Taltioni teknisen alustan arviointi


Poikkeusinfo XML-rajapinnan kuvaus, rajapinnan versio 2 Seasam Group

Verkkopalvelut ja portaalitryhmän

Tulorekisteri: Varmenne Visma Fivaldi

1. Uuden Ilmon käytön eroavaisuudet vanhasta Ilmosta lyhyesti

Raporttiarkiston (RATKI) käyttöohjeet Ohjeet

Topfieldin sarjaporttipäivitystyökalun asennus(rs232)

Ohjelmistojen suunnittelu

Korkeakoulujen prosessipalvelin: mallintajan palvelinohje Versio 0.2

HALLINNON YHTEINEN VERKKOPALVELURATKAISU ,

CQRS, -ES, PACS, DICOM, WTF?

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

KIURU Tietotekniikan sovellusprojekti

2007 Nokia. Kaikki oikeudet pidätetään. Nokia, Nokia Connecting People ja Nseries ovat Nokia Oyj:n tavaramerkkejä tai rekisteröityjä tavaramerkkejä.

RATKI 1.0 Käyttäjän ohje

Octo käyttöohje 1. Sisältö

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014

Solteq Tekso v Versiopäivitysohje.

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

ORGANISAATION KIRJAUTUMINEN TURVASIRU.FI-PALVELUUN

Yhteentoimiva.suomi.fi - palvelukokonaisuuden ja työkalujen esittely

Suomi.fi-verkkopalvelu

Yhteistoimintakaavio (Esimerkki)

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmisto on selainpohjaisen käyttöliittymän tarjoava tietokantajärjestelmä merikotkien seurantaan WWF:n Merikotka-työryhmän tarpeisiin.

AS C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Tiedonsiirto helposti navetta-automaation ja tuotosseurannan välillä

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0

Käyttöohje. Ticket Inspector. Versio 1.0. Sportum Oy

UML:n yleiskatsaus. UML:n osat:

erasmartcard-kortinlukijaohjelmiston käyttöohje

Good Minton QA Raportti Iteraatio 1 Sulkapalloliiton Kilpailujärjestelmä

Larppa-laskutusohjelma v1.1 Ohje

Päivitysohje Opus Dental

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Vinkkejä musiikin tiedonhakuun OUTI-verkkokirjastossa

LoCCaM Riistakamerasovellus. Dimag Ky dimag.fi

RDA Toolkit. RDA-koulutuspäivä Martin Engberg KANSALLISKIRJASTO

CV-kannan käyttöohje 2017

Transkriptio:

Arkkitehtuurikuvaus Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy Ryhmä 14

Muutoshistoria Versio Pvm Päivittäjä Muutos 1.0 19.10.2007 Suanto 0.3 18.10.2007 Matti Eerola 0.2 17.10.2007 Matti Eerola 0.1 15.10.2007 Matti Eerola Esitetty iteraatiodemossa, muutettu versioksi 1.0 Katselmoinnissa löytyneiden virheiden korjauksia Poistin tietokannan jakamisen tuotehierakian mukaan. Olisi ollu teknisesti lähes mahdotonta. Lisää näkymiä ja muita parannuksia 0.02 8.10.2007 Matti Eerola Lisätty käyttötapauksia 0.01 5.10.2007 Matti Eerola Ensimmäinen versio

Sisällysluettelo 1. Johdanto...1 1.1 Järjestelmän kuvaus...1 2. Järjestelmän suurimmat vaatimukset...1 3. Skenaario...1 3.1 Kontekstidiagrammi...1 3.2 Editorin käyttötapaukset...2 3.2.1 Kehittäjä...2 3.2.2 Projektipäällikkö...4 3.2.3 Kääntäjä...5 4.1 Yhteensopivuus vanhan kielitermijärjestelmän kanssa...5 5. Arkkitehtuuriset näkymät...6 5.1 Fyysinen näkymä...6 5.4 Informaationäkymä...7

1. Johdanto Juha Kauppi on diplomityössään "Ohjelmistotuotelinjan monikielisyyden arkkitehtuuri ja hallinta" jo kuvaillut ja suunnitellut toteutettavaa järjestelmää. Siinä keskitytään enimmäkseen uudistetun tietomallin ominaisuuksiin ja termien hallintaan. Tämän arkkitehtuuridokumentin tarkoitus on taas kuvailla niitä arkkitehtuurisia ratkaisuja, joilla pyritään täyttämään ohjelmistolle asetetut erilaiset laadulliset vaatimukset. 1.1 Järjestelmän kuvaus Suunniteltava järjestelmä koostuu ohjelmistokomponentista ja kielitermieditorista. Ohjelmistokomponentti vastaa ohjelmistotuotelinjan monikielisyydestä. Editorilla voidaan hallita monikielisyyttä. 2. Järjestelmän suurimmat vaatimukset Järjestelmän vaatimuksia on käsitelty tarkemmin vaatimustenmäärittelydokumentissa. Arkkitehtuuria suunniteltaessa vaatimuksista on poimittu muutama järjestelmälle tärkein ominaisuus, jotka järjestelmän täytyy uuden tietorakenteen lisäksi toteuttaa. Niitä ovat suorituskyky, skaalautuvuus, editorin käytettävyys ja ylläpidettävyys. 3. Skenaario 3.1 Kontekstidiagrammi 1 / 7

Kielitermijärjestelmä on ohjelmistokomponentti, joka sijoittuu samaan sovellukseen kuin kohdejärjestelmä. Se tarjoaa kohdejärjestelmälle ohjelmallisen rajapinnan, jolla kohdejärjestelmä voi käsitellä kielitermejä. Suurin osa liikenteestä kohde- ja kielitermijärjestelmän välillä tulee olemaan kielitermien hakuja. Kielitermit ladataan pääasiassa yhteisestä termitetokannasta, joka sisältää kaikille yhteisiä termejä. Yhteisiä termejä on tuotehierarkian juuresta installaatiotasoon. Samaa termitietokantaa käyttävät kaikki järjestelmät, joten se muodostaa komponentin, josta kaikkien järjestelmien toiminta riippuu. Tietokanta voi tosin olla kokonainen tietokantaklusteri, joten sen aiheuttamaa riskiä voidaan pienentää tarvittaessa. On mahdollista tallentaa myös vain tiettyyn järjestelmään liittyviä termejä. Ne tallennetaan omaan tietokantaan, koska niitä ei tarvita missään muussa järjestelmässä. Vain tiettyyn järjestelmään liittyviä termejä ovat esimerkiksi organisaatiokohtaiset termit. Installaatiokohtaisessa eli paikallisessa termikannassa olevia sisältöjä ei voi käyttää uudelleen muissa installaatioissa tehtävissä käännöksissä. Hakujen tulokset täytyy tallentaa välimuistiin, koska suorituskyvyn täytyy olla hakujen osalta hyvä. Välimuistilla saadaan myös skaalautuvuutta, koska se vähentää liikennettä yhteisestä tietokannasta sovelluksiin. Välimuistiin ei voi kuitenkaan tallentaa kovin paljoa tietoa, eikä mielellään ainakaan sellaista tietoa, jota ei sovelluksessa tarvita. Palvelimella ajetaan usein monia sovelluksia, joissa kaikissa käytetään kielitermijärjestelmää. Tuhlaileva resurssienkäyttö kuluttaisi palvelimen resurssit nopeasti loppuun. Arkkitehtuuri tukee useampaa välimuistikerrosta, jotka voivat käyttää eri menetelmiä tiedontallentamiseen esimerkiksi muistia tai kovalevyä. Kovalevyn käyttäminen välimuistina voisi vähentää yhteisen termitietokannan kuormaa huomattavasti, koska tietoa voitaisiin tallettaa jopa päiviksi kovalevyn välimuistiin. Kielijärjestelmän ja käyttäjien välisenä rajapintana toimii editori, joka on web-pohjainen sovellus muun järjestelmän rinnalla. Sillä käyttäjät voivat hallinnoida kielitermejä. Editori ei käytä välimuistia, koska sen suorituskyky ei ole olennainen osa koko järjestelmän suorituskykyä. Editoria käsitellään enemmän käyttötapauksien yhteydessä. Lopullisessa tuotteessa käyttöliittymäsivuilta voi saada listauksia sivun termeistä ja päästä muokkaamaan niitä. 3.2 Editorin käyttötapaukset Editorin tulisi auttaa käyttäjää käyttämään uudelleen jo olemassa olevia sisältöjä. Siksi kehittäjänkin tapauksessa lähdetään liikkeelle etsimällä sanastosta jo olemassa olevia sisältöjä. Vasta sen jälkeen yhdistetään sisältö tunnisteeseen. Tunnisteen syöttäminen suoraan johonkin tekstikenttään ei saisi myöskään olla edellytys jonkin toiminnon tekemiseen. Yksi uuden järjestelmän tarkoitus on siirtää kääntämistä pois kehityksestä vastaavilta. Tunnisteen voi tietää vain kehittäjä eli pitäisi olla mahdollista löytää tunniste sisältöön ja metatietoihin perustuvan haun kautta. 3.2.1 Kehittäjä Luo kielitermi yhteen uuteen tunnisteeseen 2 / 7

Kehittäjä on tehnyt uuden kielitermipaikan ja luonut siihen uuden tunnisteen jollain oletussisällöllä. Kehittäjä tietää tunnisteen ja sen mikä sisältö juuritasolle pitäisi asettaa jollain tietyllä kielellä. Alkuehto: Tunniste on olemassa ja sillä on jokin oletussisältö. Tunnisteesta ei kuitenkaan ole yhtään linkkiä käsitteisiin. Perussekvenssi: 1. Kehittäjä hakee olemassa olevaa sisältöä valitulla kielellä 2. Sisältö löytyi ja editori näyttää tietoja liittyvistä tunnisteista ja käsitteistä 3. Sisältöön liittyy jo juuritason käsite. Kehittäjä liittää uuden tunnisteen kyseiseen käsitteen. Poikkeukset: Kohta 2: Jos sisältöä ei löytynytkään, kehittäjää pyydetään luomaan uusi sisältö haetulle kielelle Kohta 2: Löytyi useampi samanlainen sisältö. Näin voi ehkä käydä siirtymävaiheessa, koska vanhasta tietomallista tulee duplikaatteja. Oletuksena sisällöt yhdistetään. Kohta 3: Sisältöön ei liity juuritason käsitettä. Kehittäjän täytyy luoda uusi käsite eli luoda juuritasolla liitos uuden tunnisteen ja löytyneen sisällön välille. Loppuehto: Tunnisteesta on liitos käsitteeseen, josta on liitos haluttuun sisältöön. 3 / 7

Yhden kielitermin tarkentaminen jollekkin hierarkiatasolle Kehittäjä on saanut tehtäväksi muuttaa yksittäisen kielitermin jollekkin asiakkaalle hieman tarkemmaksi. Kehittäjä tietää siis tunnisteen ja tarkennetun sisällön. Alkuehto: Tunniste on olemassa ja sillä on juuritasolla käsite, johon liittyy erikielisiä sisältöjä. Perussekvenssi: 1. Kehittäjä hakee tarkennettua sisältöä valitulla kielellä 2. Sisältö löytyi ja editori näyttää tietoja liittyvistä tunnisteista ja käsitteistä 3. Mikään käsitteistä ei ole oikealla hierarkiatasolla. Kehittäjä luo uuden käsitteen ja liittä siihen metatiedot ja tunnisteen. Poikkeukset: Kohta 2: Jos sisältöä ei löytynytkään, käyttäjää pyydetään luomaan uusi sisältö haetulle kielelle Kohta 3: Sisältöön liittyy jo juuri sopiva käsite. Kehittäjä liittää olemassa olevan käsitteen tunnisteeseen. Loppuehto: Sama kuin alussa ja lisäksi tunnisteeseen liittyy nyt asiakaskohtainen käsite. 3.2.2 Projektipäällikkö Keskeisen termin tarkentaminen asiakkaalle Asiakas haluaa tarkentaa termiä, joka liittyy useaan muuhun termiin, ja ilmoittaa siitä projektipäällikölle. Esimerkiksi halutaan muuttaa "työntekijä" termiksi "myyjä". Kyseistä termiä on käytetty muissakin termeissä kuten esimerkiksi "Valitse työntekijä" ja "Työntekijä on lomalla". 4 / 7

Projektipäälliköllä ei ole aikaa kääntää kaikkia liittyviä termejä kerralla vaan hän joutuu jatkamaan hommaa myöhemmin. Sisältöjen syöttäminen uusille tunnisteille Tuotteeseen on tehty täysin uusi toiminnallisuus ja sen takia järjestelmässä on paljon tunnisteita, joissa on vain oletussisältö. Projektipäällikön täytyy syöttää tunnisteisiin liittyvät termit jollakin kielellä, jotta kääntäjä voi myöhemmin kääntää ne toiselle kielelle. 3.2.3 Kääntäjä Uuteen toiminnallisuuten liittyvien termien kääntäminen Tuotteeseen on tehty täysin uusi toiminnallisuus ja se pitää kääntää uudelle kielelle Sisältöön liittyvien aiempien käännösten tarkastelu Käyttötapaus liittyy yhteen kehittäjän käyttötapauksista. Kehittäjä on päättänyt tarkentaa erästä termiä tietylle asiakkaalle. Hän on luonut uuden käsitteen, joka liittyy tarkennettuun sisältöön. Käsitteeseen liittyy siis vain yks sisältö yhdellä kielellä ja kääntäjän pitäisi nyt kääntää se eri kielille. Koska sisältö oli jo järjestelmässä kun kehittäjä liitti siihen käsitteen, sille voi olla olemassa käännöksiä muiden käsitteiden kautta. Kääntäjä haluaa nähdä ne ja käyttää niitä mahdollisesti hyväksi kääntämisessä. 4. Arkkitehtuurisesti olennaiset oletukset ja rajoitteet 4.1 Yhteensopivuus vanhan kielitermijärjestelmän kanssa Uuden tietorakenteen pitää olla sellainen, että vanhat kielitermit voidaan siirtää uuteen kielitermijärjestelmään. Ohjelmistorajapintojen tulee toimia niin, ettei se vaadi laajoja muutoksia kohdejärjestelmän koodiin. Vanhat kielitermit sisältävät esimerkiksi tietyillä merkkijonoilla merkittyjä paikkoja, joihin tulostetaan dynaamista sisältöä kuten numeroita jne. Uuden kielitermijärjestelmän pitää säilyttää kyseiset merkkijonot, koska niiden muuttaminen vaatisi laajoja muutoksia kohdejärjestelmään. 5 / 7

5. Arkkitehtuuriset näkymät 5.1 Fyysinen näkymä Fyysisestä näkymästä voi nähdä, että kielitermijärjestelmää voidaan ajaa hyvin erilaisissa ympäristöissä. Suoritettavien palvelinohjelmistojen määrä palvelinta kohden vaihtelee paljon ja joskus ohjelmistoa suoritetaan palvelinklusterissa. Jotta kielitermijärjestelmä toimisi klusterissa, ohjelmiston tilaa ylläpitävien tietorakenteiden täytyy olla serialisoituvia. Kielitermit voivat olla jaettu useampaan tietokantaan ja järjestelmän tarvitsemien tietokantojen määrä voi vaihdella. Lisäksi on mahdollista, että ohjelmisto asennetaan palvelimelle, jolta ei saa olla tietokantayhteyksiä muihin koneisiin. Silloin tarvittavista kielitermeistä otetaan kopio ja ne sijoitetaan tietokantaan samalle palvelimelle kuin sovellus. 6 / 7

5.4 Informaationäkymä Editor Core Core.CacheHandler Core.Model Core.Data Editori käsittelee termejä suoraan Core.Model tietomallien avulla. Se ohittaa välimuistin, joten muutokset näkyvät muussa sovelluksessa vasta kun muutetun termin sisältö poistuu välimuistista. Muodostaa oman assemblyn. Se sisältää termien käsittelyyn tarvittavat toiminnot. Hallinnoi termien tallentamista välimuistiin. Vaikka tämän modulin avulla haetaankin yksittäisiä termejä, se käsittelee termejä paketteina, joista se lopultaa etsii haetun termin ja palauttaa sen sisällön. Termejä käsitellään paketteina, jotta niiden lataus tehostuisi. Tavoitteena on, että kaikille paketin termeille tulee käyttöä jossain vaiheessa. Sisältää parannetun tietomallin. Tieto on paketoitu olioihin, joiden avulla sitä voi helposti manipuloida jne. Hoitaa tiedon lataamisen ja päivittämisen tietokantaan. Luo tiedoista tietomallin mukaisia olioita. Tieto käsitellään lähinnä taulukkoina. 7 / 7