Arkkitehtuurin dokumentointi O A

Samankaltaiset tiedostot
Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa

UML:n yleiskatsaus. UML:n osat:

Ohjelmistojen suunnittelu

Standardi IEC Ohjelmisto

7. Product-line architectures

Tietojärjestelmä uusiksi? Toimijaverkostot, niiden haasteet ja ratkaisut

Ohjelmistoarkkitehtuurit. Syksy 2008

.NET ajoympäristö. Juha Järvensivu 2007

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

7.4 Variability management

Integrointi. Ohjelmistotekniikka kevät 2003

Ohjelmistoarkkitehtuurit. Kevät

Hieman lisää malleista ja niiden hyödyntämisestä

2 Ohjelmistoarkkitehtuurien kuvaus

2 Description of Software Architectures

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

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

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

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

ECSEL - Electronic Components and Systems for European Leadership

SOA SIG SOA Tuotetoimittajan näkökulma

API:Hack Tournee 2014

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

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

Ohjelmiston toteutussuunnitelma

Arkkitehtuuripankki. Mallintamisen metamalli ja notaatiot

Paikkatiedon mallinnus Dokumentoinnin ymmärtäminen. Lassi Lehto

WP3 Decision Support Technologies

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Tietojärjestelmän osat

Suunnitteluvaihe prosessissa

Lyhyt johdatus ketterään testaukseen

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmistoarkkitehtuurit. Syksy 2010

RAIN RAKENTAMISEN INTEGRAATIOKYVYKKYYS

Enterprise Architecture TJTSE Yrityksen kokonaisarkkitehtuuri

Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä?

Projektityö

Teknologia-arkkitehtuurit. Valinta ja mallinnus

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

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

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

Toiminnot eli käyttäytyminen. Tieto eli rakenteelliset ominaisuudet

Other approaches to restrict multipliers

TietoEnator Pilot. Ari Hirvonen. TietoEnator Oyj. Senior Consultant, Ph. D. (Economics) presentation TietoEnator 2003 Page 1

Ohjelmistoarkkitehtuurit. Syksy 2007

Ohjelmistojen mallintaminen Ohjelmistoarkkitehtuuri Harri Laine 1

1 Introduction. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2006

Työkalut ohjelmistokehityksen tukena

TeliaSonera Identity and Access Management

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

Teollisuusautomaation standardit Osio 9

Collaborative & Co-Creative Design in the Semogen -projects

HSMT J2EE & EJB & SOAP &...

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

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

Automaatiojärjestelmän hankinnassa huomioitavat tietoturva-asiat

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

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistoarkkitehtuuriin vaikuttavia tekijöitä. Kari Suihkonen

Yrittäjäkasvatuksen polku - sivusto. Yksityiskohtainen suunnittelu Huhtikuu 2018

Ohjelmistotekniikan menetelmät, UML

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

SQL SERVER 2012 PARALLEL DATA WAREHOUSE APPLIANCE

DI Studion käyttökokemuksia. Kaisu Ikonen, Tilastokeskus

Kokonaisarkkitehtuurin omaksuminen: Mahdollisia ongelmakohtia ja tapoja päästä niiden yli

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

Millainen on viihtyisä kaupunki ja miten sitä mitataan?

Ohjelmistojen mallintaminen kertausta Harri Laine 1

HITSAUKSEN TUOTTAVUUSRATKAISUT

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

Projektin suunnittelu

ITK130 Ohjelmistojen luonne

Tietokantakurssit / TKTL

Pertti Pennanen DOKUMENTTI 1 (5) EDUPOLI ICTPro

TURVAVÄYLÄSEMINAARI. Erilaiset kenttäväylät ja niiden kehitys Jukka Hiltunen

T Software Architecture

Paikkatietorajapinnat IT arkkitehtuurin näkökulmasta

NAO- ja ENO-osaamisohjelmien loppuunsaattaminen ajatuksia ja visioita

Palveluperustaiset arkkitehtuurityylit

HYÖDYNNÄ SUBSCRIPTION-ETUSI

Olet vastuussa osaamisestasi

KONEAUTOMAATION LAATU JA TURVALLISUUS Marko Varpunen

Sisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1.

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

TYÖPOHJAT ALUSTAN VIESTINNÄN RAKENTAMISEKSI

Prosessien kehittäminen. Prosessien parantaminen. Eri mallien vertailua. Useita eri malleja. Mitä kehitetään?

Turvallisuusseminaari Silja-Line

TOIMINNALLINEN MÄÄRITTELY MS

HOJ J2EE & EJB & SOAP &...

Virtualisoi viisaasti paranna palvelua. Iikka Taanila Systems Architect IBM Systems and Technology Group

LUKU 5: SUUNNITTELU. Suunnitteluun liittyviä käsitteitä:

Liite A Määritelmät 1 (6)

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä

Ohjelmistotuotanto, s

KANTAVIEN TERÄSRAKENTEIDEN OLETETTUUN PALONKEHITYKSEEN PERUSTUVA MITOITUS

Projektin tavoitteet

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen

Fujitsu SPICE Lite. Kimmo Vaikkola Fujitsu Finland Oy Laatu ja liiketoimintatavat. Copyright 2010 FUJITSU

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Transkriptio:

Yleisesti Arkkitehtuurin dokumentointi O A 2 0 0 6 Valitse näkymät Dokumentoi näkymät Dokumentoi näkymille yhteiset asiat Lähde: Bass ym. ja Clements ym. 1 2 Näkymä vs rakenne Näkymät Bass ym. : A view is a representation of a coherent set of architectural elements, as written by and read by system stakeholders. It consists of a representation of a set of elements and the relations among them. A structure is the set of elements itself, as they exist in software or hardware. For example, a module structure is the set of the system's modules and their organization. A module view is the representation of that structure, as documented by and used by some system stakeholders. These terms are often used interchangeably,... Moduulinäkymä kehityksenaikainen rakenne Komponentti ja kytkentä -näkymä ajonaikainen rakenne Varausnäkymä resurssirakenne 3 4

Moduulinäkymä Moduulinäkymä Mikä on moduulin ensisijainen toiminnallinen vastuu? elementtinä moduuli, eli toteutuksen yksikkö koodipohjainen, kehityksen aikainen Mitä muita ohjelmistoelementtejä moduuli saa käyttää? "toiminnallisen vastuun alueita" Mitä muita ohjelmistoja se käyttää? Mitkä ovat moduulien väliset yleistys- ja erikoistussuhteet? 5 6 Komponentti ja kytkentä -näkymä Komponentti ja kytkentä -näkymä ajonaikaiset komponentit (ensisijaiset laskennalliset yksiköt)... Mitkä ovat tärkeimmät jaetut tietovarastot? Mitkä järjestelmän osat on toisinnettu?... ja kytkennät (komponenttien välisetkommunikointivälineet) Mitkä ovat toiminnalliset pääkomponentit ja mikä on niiden välinen interaktio? Kuinka data kulkee järjestelmän läpi? Mitkä järjestelmän osat voivat toimia rinnan? Kuinka järjestelmän rakenne voi muuttua ajon aikana? 7 8

Varausnäkymä Varausnäkymä Ohjelmistoelementtien ja ulkopuolisen ympäristön, tai ympäristöjen, elementtien väliset suhteet. kehitysympäristö, ajoympäristö Millä prosessorilla kukin ohjelmistoelementti ajetaan? Missä tiedostossa, tai tiedostoissa, kukin elementti sijaitsee kehityksen, testauksen ja järjestelmän rakentamisen aikana? Kuinka elementit jaetaan kehitysryhmien kesken? 9 10 Moduulinäkymä Hajotusrakenne "...is a submodule of..." Hajotusrakenne (decomposition) Voivat olla annettuja standardeissa (jenkkilä) Käyttörakenne (uses) Kerrosrakenne (layered) Luokka-, yleistysrakenne (class, generalisation) Suunnittelun lähtöpisteitä: tarkennetaan, pilkotaan, kunnes ovat toteutuskelpoisia. Moduuleihin liittyy dokumentaatio, speksit, suunnitelmat, testit,... Auttavat kehitysprojektin organisoinnissa. (Mitä, ei miten.) 11 12

Käyttörakenne Kerrosrakenne "... uses..." Yksiköinä moduulit, tai tarvittaessa tarkemmin proseduurit Yksikön oikea toiminta vaatii toisen yksikön oikean version. Tähtäimessä järjestelmän laajennettavuus ja mahdollinen toiminnan alijoukkojen irrotettavuus. Kontrolloiduin käyttörakennemuoto. Kerros n käyttää vain kerroksen n-1 palveluita. Kerrokset abstraktioita (virtuaalikoneita), jotka piilottavat alemmat toteutuksen yksityiskohdat ylemmiltä kerroksilta. 13 14 Luokka-, yleistysraknne Komponentti ja kytkentä -näkymä "... inherits from...", "... is an instance of..." Samanlaisen käyttäytymisen tai vastuun ryhmittymät. Edellisten eroavaisuuksien parametrisointi. Rakenteet (Kommunikoivat) prosessit Samanaikaisuus (concurrenc[ye]) Jaettu data, tietovarasto (repository) Asiakas palvelin 15 16

Komponentti ja kytkentä -näkymä Prosessirakenne "... runs / may run concurrently with...", "... excludes...", "... precedes..." Ortogonaalisia moduulinäkymälle Kuinka komponentit ja kytkennät liitetään toisiinsa? Prosessit ja säikeet ja kuinka ne kytkeytyvät toisiinsa kommunikoinnin, synkronoinnin avulla. Suorituskyvyn ja saavutettavuuden arvioinnin apuväline. 17 18 Samanaikaisuusrakenne Jaetun datan rakenne Loogiset säikeet, eli toimintasekvenssit, jotka voidaan sijoittaa erillisiin (ohjelman, järjestelmän, kielen) säikeisiin kehityksen myöhemmässä vaiheessa. Mitkä elementit luo, mitkä käyttää, mitkä käsittelee ja mitkä ylläpitää dataa? Vertaa esim. tietovarasto-arkkitehtuurimalli. Rinnakkaisuuden ja resurssivarausten suunnitteluun. Datan integriteetin ja ohjelmiston suorituskyvyn arviointiin. 19 20

Asiakas palvelinrakenne Varausnäkymä "... communicates with...", "... depends on..." Elementtien roolit. Sijoitusrakenne (deployment) Kytkentöjen protokollat ja viestit. Toteutusrakenne Vastuunjaon, fyysisen hajautuksen ja kuormantasauksen arviointiin. Työnjako 21 22 Sijoitusrakenne Toteutusrakenne Kuinka ohjelmisto sijoittuu laskenta- ja viestintälaitteistoon. Elementtejä ohjelmiston osat(usein prosessinäkymästä), laitteiston osat (prosessorit) ja kommunikointiväylät. Kuinka ohjelmiston elementit (usein moduulit) sijoittuvat kehitys-, integrointi- ja konfiguraationhallinaympäristöjen (tiedosto) rakenteisiin "... allocated to...", "... migrates to..." datan eheys, suorituskyky, saatavuus, tietoturva Kehitystoiminnan ohjaus, ohjelmiston rakennusprosessi (build process). 23 24

Työnjako 4+1 Looginen moduulinäkymä Moduulien kehityksen ja integroinnin jako kehitysryhmille. Prosessi komponentti ja kytkentä -näkymä Kehitys varausnäkymä Fyysinen varausnäkymä 25 26 Näkymien dokumentointi Osalliset ja näkymien valinta Table 1: Stakeholders and the Architecture Documentation They Might Find Most Useful Module Views C&C Views Allocation Views Osalliset Näkymien valinta Näkymän dokumentointi Yhteiset asiat Decomposition Uses Class Stakeholder Project Manager s s s d Member of Development Team d d d d d s s Testers and Integrators d d s s s Maintainers d d d d d s s Product Line Application Builder d s o s s s Customer s o End User s s Analyst d d s d s s Infrastructure Support s s s s d New Stakeholder x x x x x x x Current and Future Architect d d d d d d s Key: d = detailed information, s = some details, o = overview information, x=anything Source: Adapted from Clements 2003, p. 301. Layer Various Deployment Implementation 27 28

Näkymän dokumentointi 2. Elementtiluettelo 1.Primääri kuvaus: UML, laatikot ja viivat,... 2.Elementtiluettelo Elementit ja niiden ominaisuudet 3.Kontekstidiagrammi 4.Mukauttamisopas 5.Arkkitehtuurin taustatiedot 6.Termistö Suhteet ja niiden ominaisuudet Elementtien rajapinnat Elementtien käytös 7.Muuta tarvittavaa tietoa 29 30 Elementtien rajapinnat Elementtien rajapinnat Rajapintojen identiteetit (eli nimeäminen) Tarjotut resurssit Mahdollisten poikkeuksien luettelo syntaksi, semantiikka, käyttörajoitukset Esittely ja määrittely muualla CORBA IDL, UML,.h Kehittäjien tekemien tietotyyppien määrittelyt Yleinen poikkeuskäsittely soveltuvasti tässä selitettynä määritelmä tai viittaus siihen, käyttö 31 32

Elementtien rajapinnat Elementtien rajapinnat Mukautuvuus ja konfiguroitavuus Laatuattribuuttien näkyvyys Muiden elementtien tarjoamien resurssien tarve Tarkoitus ja suunnittelun motivaatiot Käyttöopas syntaksi, semantiikka, käyttörajoitukset 33 34 5. Arkkitehtuurin taustatiedot Näkymille yhteiset asiat Miten dokumentaatio on järjestetty? näkymäluettelo, näkymämalli Miksi arkkitehtuuri tehty ja/tai valittu? Tulosten analysointi Oletukset Mikä arkkitehtuuri on? yleiskuva, tarkoitus, näkymien väliset suhteet, elementtilista ja -hakemisto, projektisanasto Miksi valittu arkkitehtuuri? Miksi ei? konteksti, ulkoiset rajoitteet, perustelu karkeapiirteisille korkean tason päätöksille 35 36