Suunnitteluratkaisut ja niiden arviointi sulautetuissa järjestelmissä



Samankaltaiset tiedostot
Ohjelmistoarkkitehtuurit. Syksy 2010

Ohjelmistoarkkitehtuurit. Kevät

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

7 Sulautettujen järjestelmien suunnittelumallit. OhAr Marko Leppänen

Ohjelmistoarkkitehtuurit Kevät käytäntöjä

Esimerkki: Auton toiminnan monitorointijärjestelmä

Ohjelmistoarkkitehtuurit. Syksy 2008

Ohjelmistoarkkitehtuurit Kevät käytäntöjä

Ohjelmistoarkkitehtuurit kevät

Ohjelmistoarkkitehtuurit

7. Koneenohjausjärjestelmien suunnittelumallit. OhAr Veli-Pekka Eloranta

Ohjelmistoarkkitehtuurit. Syksy 2007

9. Ohjelmistoarkkitehtuurien arviointi

Ohjelmistoarkkitehtuurien arviointi

Ohjelmistoarkkitehtuurit. Kevät

Ohjelmistoarkkitehtuurit Kevät Johannes Koskinen Esimerkki: Auton toiminnan monitorointijärjestelmä

Kevät Ohjelmistoarkkitehtuurit 2014

Kevät 2016 Arkkitehtuurin arviointi, ATAM. Ohjelmistoarkkitehtuurit 2016

Käyttöliittymät II. Käyttöliittymät I Kertaus peruskurssilta. Keskeisin kälikurssilla opittu asia?

Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa

Tarjolla tänään: Sanastoa Koneenohjausjärjestelmien suunnittelumallit. Pattern Architecture Style. GoF. Design pattern

Ohjelmistoarkkitehtuurit Koneenohjausmaailmaa. Kevät 2016

9. Ohjelmistoarkkitehtuurien arviointi

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Koneenohjausjärjestelmien arkkitehtuurit. Sulautettu ohjelmointi Veli-Pekka Eloranta

Arkkitehtuuritietoisku. eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Collaborative & Co-Creative Design in the Semogen -projects

LYTH-CONS CONSISTENCY TRANSMITTER

ITK130 Ohjelmistojen luonne

Suunnittelumallit (design patterns)

1.3 Katsaus ohjelmistotuotannon kehittymiseen

Arkkitehtuuri- ja prosessimallit. Johannes Koskinen

1 Johdanto. Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1

C++11 seminaari, kevät Johannes Koskinen

Capacity Utilization

The CCR Model and Production Correspondence

Lab SBS3.FARM_Hyper-V - Navigating a SharePoint site

Travel Getting Around

Tietorakenteet ja algoritmit

Salasanan vaihto uuteen / How to change password

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

7. Ohjelmistoarkkitehtuurien arviointi


Efficiency change over time

Sisällysluettelo Table of contents

Operatioanalyysi 2011, Harjoitus 4, viikko 40

Ohar-ATAM pikaisesti. Ohjelmistoarkkitehtuurit 2009

Ohjelmistoarkkitehtuurit

Business Opening. Arvoisa Herra Presidentti Very formal, recipient has a special title that must be used in place of their name

7. Product-line architectures

Other approaches to restrict multipliers

LANSEERAUS LÄHESTYY AIKATAULU OMINAISUUDET. Sähköinen jäsenkortti. Yksinkertainen tapa lähettää viestejä jäsenille

Use of spatial data in the new production environment and in a data warehouse

1 Johdanto. Pieni motivointikalvo. 1.1 Mikä on ohjelmistoarkkitehtuuri?

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Perusoikeusbarometri. Panu Artemjeff Erityisasiantuntija

Alternative DEA Models

KONEISTUSKOKOONPANON TEKEMINEN NX10-YMPÄRISTÖSSÄ

7.4 Variability management

Returns to Scale II. S ysteemianalyysin. Laboratorio. Esitelmä 8 Timo Salminen. Teknillinen korkeakoulu

Ohjelmistoarkkitehtuurit, syksy

BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET.

Hankkeiden vaikuttavuus: Työkaluja hankesuunnittelun tueksi

Visualisoinnin aamu 16.4 Tiedon visualisointi. Ari Suominen Tuote- ja ratkaisupäällikkö Microsoft

.NET 2006 ja sen jälkeen

Stormwater filtration unit

Results on the new polydrug use questions in the Finnish TDI data

National Building Code of Finland, Part D1, Building Water Supply and Sewerage Systems, Regulations and guidelines 2007

Ohjelmistoarkkitehtuurit kevät

Green Growth Sessio - Millaisilla kansainvälistymismalleilla kasvumarkkinoille?

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

Jussi Klemola 3D- KEITTIÖSUUNNITTELUOHJELMAN KÄYTTÖÖNOTTO

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

Voice Over LTE (VoLTE) By Miikka Poikselkä;Harri Holma;Jukka Hongisto

Choose Finland-Helsinki Valitse Finland-Helsinki

Enterprise Architecture TJTSE Yrityksen kokonaisarkkitehtuuri

Nuku hyvin, pieni susi -????????????,?????????????????. Kaksikielinen satukirja (suomi - venäjä) ( (Finnish Edition)

Arkkitehti?

Gap-filling methods for CH 4 data

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

IBM Iptorin pilven reunalla

Hotel Pikku-Syöte: accommodation options and booking

UX NÄKÖKULMA - KONECRANES

Social and Regional Economic Impacts of Use of Bioenergy and Energy Wood Harvesting in Suomussalmi

TIE Ohjelmistojen suunnittelu

Paikkatiedon semanttinen mallinnus, integrointi ja julkaiseminen Case Suomalainen ajallinen paikkaontologia SAPO

Ohjelmistoarkkitehtuurit Kevät 2016 Suunnittelumallit

HITSAUKSEN TUOTTAVUUSRATKAISUT

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Liikenteen hankeaihioita

21~--~--~r--1~~--~--~~r--1~

Infrastruktuurin asemoituminen kansalliseen ja kansainväliseen kenttään Outi Ala-Honkola Tiedeasiantuntija

BLOCKCHAINS AND ODR: SMART CONTRACTS AS AN ALTERNATIVE TO ENFORCEMENT

TIETEEN PÄIVÄT OULUSSA

Työelämäyhteydet uudistuvassa korkeakoulutuksessa seminaari Sessio 3. Kirsti Keltikangas, Aalto-yliopiston Sähkötekniikan korkeakoulu

Arkkitehtuurin arviointi

2_1----~--~r--1.~--~--~--,.~~

Automaatiojärjestelmän hankinnassa huomioitavat tietoturva-asiat

Toimilohkojen turvallisuus tulevaisuudessa

Transkriptio:

1 Suunnitteluratkaisut ja niiden arviointi sulautetuissa järjestelmissä Kai Koskimies Tampereen teknillinen yliopisto

Taustaa: Sulake projekti 2008-2009 2 Osallistujat Areva T&D John Deere Kone Sandvik TTY Tavoitteet Ohjelmistoarkkitehtuurin arviointimenetelmien soveltaminen koneenrakennusteollisuudessa (ATAM) Hyvien suunnitteluratkaisujen kerääminen ja dokumentointi koneenohjausjärjestelmistä

3 Ohjelmistojen laatuominaisuudet Ajoaikaiset laatuominaisuudet Suorituskyky Tilankäyttö Luotettavuus Saatavuus Tietoturvallisuus Opittavuus Käytettävyys Kehitys- ja evoluutioaikaiset laatuominaisuudet: Muunneltavuus Siirrettävyys Ylläpidettävyys Uudelleenkäytettävyys Laatustandardit: esim. ISO 9126

4 Ohjelmistoarkkitehtuuri ja laatuvaatimukset Ohjelmistoarkkitehtuuri on tapa toteuttaa ohjelmiston laatuvaatimukset Ohjelmistoarkkitehtuuri määrää miten hyvin (useimmat) laatuvaatimukset toteutuvat Ohjelmistoarkkitehtuuri arvioidaan (yleensä) vasten laatuvaatimuksia

5 Mitä on ohjelmistoarkkitehtuurien arviointi?? Vaatimusten tarkennus Skenaariot Analyysi Laatuvaatimukset Ohjelmistoarkkitehtuuri Arkkitehtuuriratkaisut Ratkaisujen identifiointi

6 Skenaariot Arkkitehtuurin testitapaus : konkreettinen tilanne ohjelmiston käytön tai evoluution aikana, jossa ohjelmiston tietty laatuvaatimus tulee esiin. Esimerkki:

Sulake prosessin tietovuo 7 Koodin laaturaportti 4 Suunnittelumallien dokumentointi 50 Suunnittelumallit Kohdejärjestelmä Koodianalyysi Suunnittelumallikieli Teollisuus Vaatimusdokumentit Piilotieto vaatimuksista Kyselyt Laatuvaatimusten tarkennus Skenaariot Priorisointi Valitut skenaariot Arkkitehtuurianalyysi Tutkimusteemat Arviointi raportit 10 Tutkimusyhteisö Laatustandardit Arkkitehtuuridokumentointi Piilotieto arkkitehtuurista Yritys

Perusongelma skenaariopohjaisessa arkkitehtuurin arvioinnissa 8 Miten löydetään kattavat skenaariot mahdollisimman tehokkaasti? Vaatimusten tarkennus Skenaariot Analyysi Laatuvaatimukset Ohjelmistoarkkitehtuuri Arkkitehtuuriratkaisut Ratkaisujen identifiointi Analogia: testitapausten löytäminen Skenaariot edellyttävät luovuutta ja tietoa Skenaarioille ei ole ilmeisiä kattavuusmääritelmiä Skenaarioiden ajaminen on kallista

Idea: johdetaan yleisiä skenaarioita koneenohjaukseen domain-mallin avulla 9 Node Yleinen skenaario Control functionality Intelligent sensor Log feed Boom movement Harvesteri skenaario Cabin door sensor Pressure sensor Porauskone skenaario

Arviointiraportti: skenaariokohtaiset analyysit 10 Tyypillisesti 10-15 priorisoitua skenaariota Skenaarioon liittyvät arkkitehtuuriratkaisut luokitellaan riskittömiksi tai riskeiksi Arkkitehdin selvitys skenaarion hoitumisesta kirjataan

11 Esimerkki koneenohjauksen suunnittelumallista VARIABLE MANAGER Context A distributed embedded control system with several autonomous units. The units must share common state information about the system as a whole. ISOLATE FUNCTIONALITIES has been applied. The architect needs to abstract source and location of the information. There is a need to access all the data providers independently. Problem How can you efficiently share system state in the distributed machine control system? Forces Accuracy: Data is volatile. Efficiency: Message traffic should be minimized. Scalability: System must be scalable in terms of its units. Extendability: It should be easy to add new units accessing the state. Adaptability: It should be easy to change the way state is implemented. Adaptability: It should be easy to change the location of origin of the state information. Usability: It should be easy to find the desired state value.

12 Esimerkki jatkuu Solution The architect adds a common variable manager module to every node that contains the shared state variables needed by the node. The local value of the remote variable can be updated when a changed value is noticed on the bus. The values of the variables are sent and updated using different strategies: by-request, periodically, as a side-effect for example when another variable is updated. A value can have an associated status or age. If SANDBOX pattern is applied to the system, variable manager can be implemented on the sandbox node. Then it can contain the shared state of the whole system. Node notifychange register LocalVarTable Bus VarManager getvalue setvalue valuechange Component

Suunnittelumallikieli (Pattern language) 13 Suunnittelumalleilla pyritään kattamaan tärkeimmät yleiset koneenohjausjärjestelmien suunnitteluratkaisut Useita ennestään dokumentoimattomia malleja, monet löytyvät myös muista lähteistä Suunnittelumallien kuvauksia on työstetty kansainvälisissä workshopeissa (PLoP)

14 Koodin laaturaportit Tutkimusalihankintana Szegedin yliopistosta (Unkari) Raportissa yhteenveto erilaisista metriikoista (riippuvuudet, kompleksisuus, koodin kopiointi) Pahat hajut ja yleiset koodausvirheet Analyysissä käytetään Columbus-työkalua

Haasteet arkkitehtuurien arvioinnissa 15 Hyödyllisten skenaarioiden tehokas löytäminen Skenaarioiden kattavuusongelma Arkkitehtuuriarvioinnin integroiminen osaksi ohjelmistokehitysprosessia Kevyt, lean, inkrementaalinen arkkitehtuurin suunnittelu, dokumentointi ja arviointi Arkkitehtuuriarvioinnin tulosten arviointi

Yhteenvetoa 16 Ohjelmistoarkkitehtuurien arvioinnilla saavutetaan etuja: Suunnittelun testaus : vahvistaa hyvät ratkaisut, kiinnittää huomion kyseenalaisiin ratkaisuihin Tarjoaa luontevan kommunikointitilaisuuden eri osapuolten välille Tarjoaa tilaisuuden kerätä yrityksen ohjelmistoihin kätkeytyvää tietotaitoa Kerätty suunnittelumallien kokoelma tiivistää olennaisen osan koneenohjausjärjestelmien suunnittelutietoudesta Ohjelmistoarkkitehtuurien arviointimenetelmiä tulisi kehittää kattavammiksi, luotettavammiksi, ja kevyemmiksi

Linkkejä 17 R.S. Hanmer: Patterns for Fault Tolerant Software. Wiley 2007. Clements P., Kazman R., Klein M.: Evaluating Software Architectures. Addison- Wesley 2002. Eloranta V-P., Hartikainen V-M., Leppänen M., Reijonen V., Haikala I., Koskimies K. and Mikkonen T.: Patterns for Distributed Embedded Control System Software Architecture, Tampere University of Technology, Department of Software Systems, Report 2, 2009. http://practise.cs.tut.fi/project.php?project=sulake

Kiitos! 18