174 resultados para WWW programming
Resumo:
Väsytyskokeita on väsymisilmiön keksimisestä lähtien tehty pääasiallisesti vakioamplitudisella kuormituksella. Paremmin todellisuutta kuvaavaan testitilanteeseen päästään kuitenkin vain käyttämällä testattavan rakenteen reaalikuormitusta simuloivaa muuttuva-amplitudista kuormitusta. Tällaisen kuormituksen testaaminen käytännössä on kuitenkin huomattavasti vaikeampaa kuin perinteisen vakioamplitudisen kuormituksen, koska muuttuva-amplitudisen kuormituksen spektri on ensin kehitettävä jostain – joko käytännön mittausten kautta tai rakenteen käyttötilaa analysoimalla. Myöskään tiedossa olevan spektrin tuottaminen käytännön kokeissa ei ole aivan yksinkertaista. Tässä kandidaatintyössä pyrittiin ratkaisemaan näitä ongelmia suunnittelemalla ja toteuttamalla testiohjelmisto, joka pystyy sekä generoimaan että käytännössä toistamaan käyttäjän haluaman kuormitusspektrin laboratoriokokeissa. Jälkimmäistä varten oli olemassa ohjelma, jota haluttiin hyödyntää tässä työssä. Tehtävä jaettiin kolmeen osioon: kuormitusspektrien generoiminen, kuormitusspektrien yhdistäminen ja lopuksi spektrien toistaminen itse väsytyskokeessa. Kahdessa ensimmäisessä osiossa käytettiin ohjelmointiympäristönä Matlab-ohjelmaa; kolmannessa käytettiin pohjana olemassa olevaa väsytyskoeohjelmaa ja käytännön ohjelmointi suoritettiin näin ollen ANSI C –kielellä käyttäen kääntäjänä Microsoft Visual Studio 6.0:aa. Alkuperäinen väsytyskoeohjelma vaati useita merkittäviä muutoksia, ennen kuin se soveltui käytettäväksi tässä yhteydessä. Työssä on kuvattu periaatetasolla ohjelmien suunnittelu- ja toteuttamisvaiheet. Lisäksi työn on tarkoitus toimia yksinkertaisena käyttöohjeena ja opastuksena koko ohjelmiston käyttöön.
Resumo:
Tämän kandidaatintyön aiheena on web-sovelluksen käyttäjäautomaatio web-makrojen avulla. Työssä esitellään prototyyppitoteutus SaaS-sovellukseen kohdistetusta web-makrojärjestelmästä. Työn teoriaosa esittelee web-automaation ja web-ympäristön keskeisen teknologian. Ratkaisuosa pohjustaa ratkaisuun käytetyn lähestymistavan, esittelee työn prototyyppiratkaisun ja arvioi ratkaisun lopputulosta. Lopputuloksena havaitaan, että prototyyppiratkaisu onnistuu selvittämään makrotoiminnallisuuden toteuttamiseen liittyvät tekniset haasteet. Ratkaisun merkittävimmäksi tekniseksi haasteeksi arvioidaan selainyhteensopivuuden saavutus ja ylläpito. Ratkaisun hyödynnettävyys koko web-sovelluksen mittakaavassa todetaan kuitenkin heikoksi, koska sovelluksen liiketoimintalogiikka rajoittaa makroparadigman käyttöä.
Resumo:
Työssä suunnitellaan kierrosnopeusmittauksen toteutus vanhaan Ford -teollisuusdieseliin käyttäen moottorin alkuperäistä kierrosnopeusanturia. Anturi kunnostetaan vaihtamalla vanha, palanut käämi uuteen digitaaliseen järjestelmään soveltuvaan käämiin. Sen toimin-ta halutulla kierrosnopeusalueella varmistetaan mittauksin ja tämän perusteella suunnitel-laan kytkentä sen liittämiseksi kierrosnopeuden laskevaan mikrokontrolleriin. Kytkennän toimivuutta testataan simuloimalla ennen prototyypin rakentamista. Erilaisia vaihtoehtoja analogisen näytön toteuttamiseksi tutkitaan ja niistä valitaan yksi ve-nekäyttöön soveltuva, joka toteutetaan järjestelmän näyttöratkaisuksi. Järjestelmälle suunnitellaan piirilevy, jolle prototyyppi kasataan. Mikrokontrollerille koodataan C -ohjelmointikielellä ohjelma, joka laskee dieselmoottorin kierrosnopeuden anturipulssien perusteella ja ohjaa näyttöä.
Resumo:
Tämän tutkimuksen tavoitteena on selvittää opintojensa alussa olevien yliopisto-opiskelijoiden vaikeimpina pitämät käytännön ohjelmoinnin aihealueet sekä koostaa luentomoniste käytettäväksi seuraavalla alkavalla Käytännön ohjelmointi -kurssilla. Tutkimusmetodina käytettiin konstruktiivista tutkimusmetodia, jossa tavoitteen spesifioinnin jälkeen implementoitiin luentomoniste koostamalla määriteltyjen aihekokonaisuuksien lähdemateriaalia yhtenäiseksi, luettavaksi kokonaisuudeksi. Yliopistoissa ei yleisesti opeteta ohjelmistojen testausta ennen syventäviä ohjelmistotekniikan kursseja, mikä on kuitenkin puute työelämän kannalta. Tässä työssä esitetään perusteluja käytännönläheisten aihekokonaisuuksien painottamiselle ohjelmointikursseilla jo yliopisto-opintojen alkuvaiheessa. Työssä käsitellään Käytännön ohjelmointi -kurssin kurssipalautetta, missä havaittiin opiskelijoiden pitävän kurssin hankalimpina aihealueina linkitettyä listaa, osoittimia, dynaamista muistinhallintaa, tietorakenteita ja versionhallintaa. Työn avulla on pyritty kehittämään käytännön ohjelmoinnin yliopisto-opetusta Lappeenrannan teknillisessä yliopistossa luentomateriaalin avulla, jossa on muun muassa teoriaa, keskeisiä opiskelijoiden tarvitsemia komentoja, www-linkkejä sekä ohjelmoinnin tyyliopas.
Resumo:
The forthcoming media revolution of exchanging paper documents to digital media in construction engineering requires new tools to be developed. The basis of this bachelor’s thesis was to explore the preliminary possibilities of exporting imagery from a Building Information Modelling –software to a mobile phone on a construction yard. This was done by producing a Web Service which uses the design software’s Application Programming Interface to interact with a structures model in order to produce the requested imagery. While mobile phones were found lacking as client devices, because of limited processing power and small displays, the implementation showed that the Tekla Structures API can be used to automatically produce various types of imagery. Web Services can be used to transfer this data to the client. Before further development the needs of the contractor, benefits for the building master and inspector and the full potential of the BIM-software need to be mapped out with surveys.
Resumo:
Tulevaisuudessa sähköverkko kohtaa monia haasteita, kun sähköautot yleistyvät, vaatien suuren tehotarpeen. Uusiutuvan energiantuotannon epävarma huipputehon tuotanto ei välttämättä pysty kattamaan sähköautoista johtuvaa suurta tehopiikkiä, jos suuret määrät ajoneuvoista kytketään yhtä aikaa lataukseen. Jos sähköajoneuvot voidaan ladata ohjatusti, ei välttämättä tarvita lisäenergian tuotantoa kattamaan kasvanutta huipputehon tarvetta. Lisäksi sähköajoneuvojen akut toimivat koko sähköverkolle energiavarastoina, jollaista ei ole ennen ollut. Älykkäällä sähköverkolla voidaan ohjata sähköajoneuvon latausta, mikäli ajoneuvossa on ohjausjärjestelmä ja akkujen varaustilan mittaus. Tässä kandidaatin työssä ohjelmoidaan mittaus- ja ohjauskortti plug-in hybridiautoa varten, jossa on V2G-ominaisuus. Ohjainkortista toteutetaan toimintakuvaus, jonka mukaan se myös ohjelmoidaan. Ohjainkortti mittaa akkujen jännitettä ja virtaa, joista voidaan määrittää akkujen varaustilat. Ohjainkortti lähettää tiedot eteenpäin PC:lle, jolta ohjainkortti saa käskyn toimintatilasta. Mittaustietojen perusteella voidaan seurata mahdollisia vikatilanteita. Kandidaatintyön aikana ohjainkorttia ei ehditty asentamaan ajoneuvoon, mutta laboratoriotestien mukaan voidaan todeta, että ohjainkortti on ohjelmallisesti toimiva. Mittauksissa selvisi, että ohjainkortin mittaustulot eivät olleet tarpeeksi tarkkoja käyttökohteeseen. Todettiin, että ohjainkortti vaatii rakenteellisia muutoksia mittaustuloksien parantamista varten, ennen ohjainkortin käyttöönottoa, mutta kandidaatintyön tavoitteet saavutettiin.
Resumo:
Ketterien menetelmien käyttö on yleistymässä ohjelmistotuotannossa. Tämän vuoksi ketteriltä menetelmiltä vaaditaan hyvää laadunhallintaa. Ketteriä menetelmiä on olemassa useita erilaisia, mutta ne kaikki jakavat samanlaiset perusarvot ja periaatteet. Tässä työssä tutkitaan kolmea eri ketterää menetelmää: Scrum, eXtreme Programming (XP) sekä Dynamic Systems Development Method (DSDM). Jokaisesta menetelmästä selvitetään, miten niissä hoidetaan laadunhallinta. Työssä otetaan myös kantaa ketterien ja perinteisten menetelmien eroihin sekä siihen, millaisissa projekteissa ketteriä menetelmiä kannattaa käyttää.
Resumo:
Tämä taktiikan tutkimus keskittyy tietokoneavusteisen simuloinnin laskennallisiin menetelmiin, joita voidaan käyttää taktisen tason sotapeleissä. Työn tärkeimmät tuotokset ovat laskennalliset mallit todennäköisyyspohjaisen analyysin mahdollistaviin taktisen tason taistelusimulaattoreihin, joita voidaan käyttää vertailevaan analyysiin joukkue-prikaatitason tarkastelutilanteissa. Laskentamallit keskittyvät vaikuttamiseen. Mallit liittyvät vahingoittavan osuman todennäköisyyteen, jonka perusteella vaikutus joukossa on mallinnettu tilakoneina ja Markovin ketjuina. Edelleen näiden tulokset siirretään tapahtumapuuanalyysiin operaation onnistumisen todennäköisyyden osalta. Pienimmän laskentayksikön mallinnustaso on joukkue- tai ryhmätasolla, jotta laskenta-aika prikaatitason sotapelitarkasteluissa pysyisi riittävän lyhyenä samalla, kun tulokset ovat riittävän tarkkoja suomalaiseen maastoon. Joukkueiden mies- ja asejärjestelmävahvuudet ovat jakaumamuodossa, eivätkä yksittäisiä lukuja. Simuloinnin integroinnissa voidaan käyttää asejärjestelmäkohtaisia predictor corrector –parametreja, mikä mahdollistaa aika-askelta lyhytaikaisempien taistelukentän ilmiöiden mallintamisen. Asemallien pohjana ovat aiemmat tutkimukset ja kenttäkokeet, joista osa kuuluu tähän väitöstutkimukseen. Laskentamallien ohjelmoitavuus ja käytettävyys osana simulointityökalua on osoitettu tekijän johtaman tutkijaryhmän ohjelmoiman ”Sandis”- taistelusimulointiohjelmiston avulla, jota on kehitetty ja käytetty Puolustusvoimien Teknillisessä Tutkimuslaitoksessa. Sandikseen on ohjelmoitu karttakäyttöliittymä ja taistelun kulkua simuloivia laskennallisia malleja. Käyttäjä tai käyttäjäryhmä tekee taktiset päätökset ja syöttää nämä karttakäyttöliittymän avulla simulointiin, jonka tuloksena saadaan kunkin joukkuetason peliyksikön tappioiden jakauma, keskimääräisten tappioiden osalta kunkin asejärjestelmän aiheuttamat tappiot kuhunkin maaliin, ammuskulutus ja radioyhteydet ja niiden tila sekä haavoittuneiden evakuointi-tilanne joukkuetasolta evakuointisairaalaan asti. Tutkimuksen keskeisiä tuloksia (kontribuutio) ovat 1) uusi prikaatitason sotapelitilanteiden laskentamalli, jonka pienin yksikkö on joukkue tai ryhmä; 2) joukon murtumispisteen määritys tappioiden ja haavoittuneiden evakuointiin sitoutuvien taistelijoiden avulla; 3) todennäköisyyspohjaisen riskianalyysin käyttömahdollisuus vertailevassa tutkimuksessa sekä 4) kokeellisesti testatut tulen vaikutusmallit ja 5) toimivat integrointiratkaisut. Työ rajataan maavoimien taistelun joukkuetason todennäköisyysjakaumat luovaan laskentamalliin, kenttälääkinnän malliin ja epäsuoran tulen malliin integrointimenetelmineen sekä niiden antamien tulosten sovellettavuuteen. Ilmasta ja mereltä maahan -asevaikutusta voidaan tarkastella, mutta ei ilma- ja meritaistelua. Menetelmiä soveltavan Sandis -ohjelmiston malleja, käyttötapaa ja ohjelmistotekniikkaa kehitetään edelleen. Merkittäviä jatkotutkimuskohteita mallinnukseen osalta ovat muun muassa kaupunkitaistelu, vaunujen kaksintaistelu ja maaston vaikutus tykistön tuleen sekä materiaalikulutuksen arviointi.
Resumo:
Nykyisin yhä laajempia sovelluksia toteutetaan WWW-sovelluksina, joita myös vähän tietokoneita käyttäneiden pitäisi oppia käyttämään. Ohjelmiston oppimisen helppoutta mitataan opittavuudella, jota parantavat yksinkertaistaminen, graafinen suunnittelu, kuvakkeiden selkeys ja yleisesti käytettävät toimintatavat. Tässä työssä tarkastellaan HTML5:ttä ja kolmea WWW-sovellusta edellä mainittujen opittavuuden tekijöiden suhteen. HTML5:ssä on muutamia opittavuutta parantavia uusia ominaisuuksia, kuten tehokkaammat tietojensyöttötavat ja median toisto. Tutkituilla sivuilla opittavuuteen vaikuttavat tekijät olivat pääosin kunnossa. Hyvin toteutettuna laajakin WWW-sovellus on helposti opittava. HTML5 tuo yhtenäisyyttä ja häivyttää yhä enemmän WWW-sovellusten ja työpöytäsovellusten rajaa. Jatkossa sisällön visualisointia voisi kehittää opittavuuden parantamiseksi.
Resumo:
Tämä tutkielma kuuluu merkkijonoalgoritmiikan piiriin. Merkkijono S on merkkijonojen X[1..m] ja Y[1..n] yhteinen alijono, mikäli se voidaan muodostaa poistamalla X:stä 0..m ja Y:stä 0..n kappaletta merkkejä mielivaltaisista paikoista. Jos yksikään X:n ja Y:n yhteinen alijono ei ole S:ää pidempi, sanotaan, että S on X:n ja Y:n pisin yhteinen alijono (lyh. PYA). Tässä työssä keskitytään kahden merkkijonon PYAn ratkaisemiseen, mutta ongelma on yleistettävissä myös useammalle jonolle. PYA-ongelmalle on sovelluskohteita – paitsi tietojenkäsittelytieteen niin myös bioinformatiikan osa-alueilla. Tunnetuimpia niistä ovat tekstin ja kuvien tiivistäminen, tiedostojen versionhallinta, hahmontunnistus sekä DNA- ja proteiiniketjujen rakennetta vertaileva tutkimus. Ongelman ratkaisemisen tekee hankalaksi ratkaisualgoritmien riippuvuus syötejonojen useista eri parametreista. Näitä ovat syötejonojen pituuden lisäksi mm. syöttöaakkoston koko, syötteiden merkkijakauma, PYAn suhteellinen osuus lyhyemmän syötejonon pituudesta ja täsmäävien merkkiparien lukumäärä. Täten on vaikeaa kehittää algoritmia, joka toimisi tehokkaasti kaikille ongelman esiintymille. Tutkielman on määrä toimia yhtäältä käsikirjana, jossa esitellään ongelman peruskäsitteiden kuvauksen jälkeen jo aikaisemmin kehitettyjä tarkkoja PYAalgoritmeja. Niiden tarkastelu on ryhmitelty algoritmin toimintamallin mukaan joko rivi, korkeuskäyrä tai diagonaali kerrallaan sekä monisuuntaisesti prosessoiviin. Tarkkojen menetelmien lisäksi esitellään PYAn pituuden ylä- tai alarajan laskevia heuristisia menetelmiä, joiden laskemia tuloksia voidaan hyödyntää joko sellaisinaan tai ohjaamaan tarkan algoritmin suoritusta. Tämä osuus perustuu tutkimusryhmämme julkaisemiin artikkeleihin. Niissä käsitellään ensimmäistä kertaa heuristiikoilla tehostettuja tarkkoja menetelmiä. Toisaalta työ sisältää laajahkon empiirisen tutkimusosuuden, jonka tavoitteena on ollut tehostaa olemassa olevien tarkkojen algoritmien ajoaikaa ja muistinkäyttöä. Kyseiseen tavoitteeseen on pyritty ohjelmointiteknisesti esittelemällä algoritmien toimintamallia hyvin tukevia tietorakenteita ja rajoittamalla algoritmien suorittamaa tuloksetonta laskentaa parantamalla niiden kykyä havainnoida suorituksen aikana saavutettuja välituloksia ja hyödyntää niitä. Tutkielman johtopäätöksinä voidaan yleisesti todeta tarkkojen PYA-algoritmien heuristisen esiprosessoinnin lähes systemaattisesti pienentävän niiden suoritusaikaa ja erityisesti muistintarvetta. Lisäksi algoritmin käyttämällä tietorakenteella on ratkaiseva vaikutus laskennan tehokkuuteen: mitä paikallisempia haku- ja päivitysoperaatiot ovat, sitä tehokkaampaa algoritmin suorittama laskenta on.
Resumo:
Tässä diplomityössä määritellään biopolttoainetta käyttävän voimalaitoksen käytönaikainen tuotannon optimointimenetelmä. Määrittelytyö liittyy MW Powerin MultiPower CHP –voimalaitoskonseptin jatkokehitysprojektiin. Erilaisten olemassa olevien optimointitapojen joukosta valitaan tarkoitukseen sopiva, laitosmalliin ja kustannusfunktioon perustuva menetelmä, jonka tulokset viedään automaatiojärjestelmään PID-säätimien asetusarvojen muodossa. Prosessin mittaustulosten avulla lasketaan laitoksen energia- ja massataseet, joiden tuloksia käytetään seuraavan optimointihetken lähtötietoina. Optimoinnin kohdefunktio on kustannusfunktio, jonka termit ovat voimalaitoksen käytöstä aiheutuvia tuottoja ja kustannuksia. Prosessia optimoidaan säätimille annetut raja-arvot huomioiden niin, että kokonaiskate maksimoituu. Kun laitokselle kertyy käyttöikää ja historiadataa, voidaan prosessin optimointia nopeuttaa hakemalla tilastollisesti historiadatasta nykytilanteen olosuhteita vastaava hetki. Kyseisen historian hetken katetta verrataan kustannusfunktion optimoinnista saatuun katteeseen. Paremman katteen antavan menetelmän laskemat asetusarvot otetaan käyttöön prosessin ohjausta varten. Mikäli kustannusfunktion laskenta eikä historiadatan perusteella tehty haku anna paranevaa katetta, niiden laskemia asetusarvoja ei oteta käyttöön. Sen sijaan optimia aletaan hakea deterministisellä optimointialgoritmilla, joka hakee nykyhetken ympäristöstä paremman katteen antavia säätimien asetusarvoja. Säätöjärjestelmä on mahdollista toteuttaa myös tulevaisuutta ennustavana. Työn käytännön osuudessa voimalaitosmalli luodaan kahden eri mallinnusohjelman avulla, joista toisella kuvataan kattilan ja toisella voimalaitosprosessin toimintaa. Mallinnuksen tuloksena saatuja prosessiarvoja hyödynnetään lähtötietoina käyttökatteen laskennassa. Kate lasketaan kustannusfunktion perusteella. Tuotoista suurimmat liittyvät sähkön ja lämmön myyntiin sekä tuotantotukeen, ja suurimmat kustannukset liittyvät investoinnin takaisinmaksuun ja polttoaineen ostoon. Kustannusfunktiolle tehdään herkkyystarkastelu, jossa seurataan katteen muutosta prosessin teknisiä arvoja muutettaessa. Tuloksia vertaillaan referenssivoimalaitoksella suoritettujen verifiointimittausten tuloksiin, ja havaitaan, että tulokset eivät ole täysin yhteneviä. Erot johtuvat sekä mallinnuksen puutteista että mittausten lyhyehköistä tarkasteluajoista. Automatisoidun optimointijärjestelmän käytännön toteutusta alustetaan määrittelemällä käyttöön otettava optimointitapa, siihen liittyvät säätöpiirit ja tarvittavat lähtötiedot. Projektia tullaan jatkamaan järjestelmän ohjelmoinnilla, testauksella ja virityksellä todellisessa voimalaitosympäristössä ja myöhemmin ennustavan säädön toteuttamisella.
Resumo:
Ohjelmistotuotannon yleinen ongelma on se, että toimitusprojektien läpivientiajat pitkittyvät. Kilpailun kiristyessä ohjelmistoalalla on alettu kiinnittää erityistä huomiota projektien eri vaiheiden tehostamiseen. Process Vision Oy kehittää energiatietojärjestelmiä Suomen energia-alan yrityksille. Yrityksessä on kehitetty vuonna 2010 palvelumalli, jonka avulla pyritään nopeuttamaan toimitusprojektien eri vaiheita. Valtioneuvosto valmisteli vuonna 2009 tuntimittausasetuksen, joka määritti sääntöjä mittaustiedon hallintaan energia-alalla. Kyseisen asetuksen pohjalta Energiateollisuus julkaisi vuonna 2010 ohjeistuksen, joka selkeyttää asetuksen sisällön vaatimuksia jakeluverkonhaltijoille ja sähkön myyjille. Process Vision Oy on valmistellut ohjeistuksen pohjalta tuntimittauspaketin, joka sisältää ohjeistuksen mukaiset toiminnot GENERIS-järjestelmässä. Tässä diplomityössä määritellään Process Vision Oy:n palvelumallin mukaiset standardikomponentit tuntimittauspaketin toimitusprojekteja varten. Työn tavoitteena on kehittää mahdollisimman pitkälle tuotteistettu tuntimittauspaketin toimitus uusille ja vanhoille asiakkaille. Työn lopussa pohditaan miten hyvin palvelumalli soveltuu tuntimittauspaketin toimitusprojekteihin. Lisäksi työssä kartoitetaan yrityksessä käytössä olevien automatisointityökalujen kehitystarpeita. Työn tuloksena saatiin määriteltyä GENERIS-objektit ja konfiguraatiot, jotka toimitetaan tuntimittauspaketin mukana. Työn ohessa sisällytettiin yrityksen Suomen taseselvitysjärjestelmien asennusohjeeseen tuntimittauspaketin toiminnallisuuksien konfigurointi. Uusien vientimäärittelyjen avulla voidaan tuntimittauspaketin toiminnallisuudet toimittaa jatkossa tehokkaammin kuin aiemmin.
Resumo:
En option är ett finansiellt kontrakt som ger dess innehavare en rättighet (men medför ingen skyldighet) att sälja eller köpa någonting (till exempel en aktie) till eller från säljaren av optionen till ett visst pris vid en bestämd tidpunkt i framtiden. Den som säljer optionen binder sig till att gå med på denna framtida transaktion ifall optionsinnehavaren längre fram bestämmer sig för att inlösa optionen. Säljaren av optionen åtar sig alltså en risk av att den framtida transaktion som optionsinnehavaren kan tvinga honom att göra visar sig vara ofördelaktig för honom. Frågan om hur säljaren kan skydda sig mot denna risk leder till intressanta optimeringsproblem, där målet är att hitta en optimal skyddsstrategi under vissa givna villkor. Sådana optimeringsproblem har studerats mycket inom finansiell matematik. Avhandlingen "The knapsack problem approach in solving partial hedging problems of options" inför en ytterligare synpunkt till denna diskussion: I en relativt enkel (ändlig och komplett) marknadsmodell kan nämligen vissa partiella skyddsproblem beskrivas som så kallade kappsäcksproblem. De sistnämnda är välkända inom en gren av matematik som heter operationsanalys. I avhandlingen visas hur skyddsproblem som tidigare lösts på andra sätt kan alternativt lösas med hjälp av metoder som utvecklats för kappsäcksproblem. Förfarandet tillämpas även på helt nya skyddsproblem i samband med så kallade amerikanska optioner.
Resumo:
Object-oriented programming is a widely adopted paradigm for desktop software development. This paradigm partitions software into separate entities, objects, which consist of data and related procedures used to modify and inspect it. The paradigm has evolved during the last few decades to emphasize decoupling between object implementations, via means such as explicit interface inheritance and event-based implicit invocation. Inter-process communication (IPC) technologies allow applications to interact with each other. This enables making software distributed across multiple processes, resulting in a modular architecture with benefits in resource sharing, robustness, code reuse and security. The support for object-oriented programming concepts varies between IPC systems. This thesis is focused on the D-Bus system, which has recently gained a lot of users, but is still scantily researched. D-Bus has support for asynchronous remote procedure calls with return values and a content-based publish/subscribe event delivery mechanism. In this thesis, several patterns for method invocation in D-Bus and similar systems are compared. The patterns that simulate synchronous local calls are shown to be dangerous. Later, we present a state-caching proxy construct, which avoids the complexity of properly asynchronous calls for object inspection. The proxy and certain supplementary constructs are presented conceptually as generic object-oriented design patterns. The e ect of these patterns on non-functional qualities of software, such as complexity, performance and power consumption, is reasoned about based on the properties of the D-Bus system. The use of the patterns reduces complexity, but maintains the other qualities at a good level. Finally, we present currently existing means of specifying D-Bus object interfaces for the purposes of code and documentation generation. The interface description language used by the Telepathy modular IM/VoIP framework is found to be an useful extension of the basic D-Bus introspection format.
Resumo:
Memristive computing refers to the utilization of the memristor, the fourth fundamental passive circuit element, in computational tasks. The existence of the memristor was theoretically predicted in 1971 by Leon O. Chua, but experimentally validated only in 2008 by HP Labs. A memristor is essentially a nonvolatile nanoscale programmable resistor — indeed, memory resistor — whose resistance, or memristance to be precise, is changed by applying a voltage across, or current through, the device. Memristive computing is a new area of research, and many of its fundamental questions still remain open. For example, it is yet unclear which applications would benefit the most from the inherent nonlinear dynamics of memristors. In any case, these dynamics should be exploited to allow memristors to perform computation in a natural way instead of attempting to emulate existing technologies such as CMOS logic. Examples of such methods of computation presented in this thesis are memristive stateful logic operations, memristive multiplication based on the translinear principle, and the exploitation of nonlinear dynamics to construct chaotic memristive circuits. This thesis considers memristive computing at various levels of abstraction. The first part of the thesis analyses the physical properties and the current-voltage behaviour of a single device. The middle part presents memristor programming methods, and describes microcircuits for logic and analog operations. The final chapters discuss memristive computing in largescale applications. In particular, cellular neural networks, and associative memory architectures are proposed as applications that significantly benefit from memristive implementation. The work presents several new results on memristor modeling and programming, memristive logic, analog arithmetic operations on memristors, and applications of memristors. The main conclusion of this thesis is that memristive computing will be advantageous in large-scale, highly parallel mixed-mode processing architectures. This can be justified by the following two arguments. First, since processing can be performed directly within memristive memory architectures, the required circuitry, processing time, and possibly also power consumption can be reduced compared to a conventional CMOS implementation. Second, intrachip communication can be naturally implemented by a memristive crossbar structure.