ohjelmistoarkkitehtuurit kevät 2014 johdantoaohar/luennot_materiaali/ohar1_johdantoa.pdf · 1...

19
Ohjelmistoarkkitehtuurit Kevät 2014 Johdantoa Samuel Lahtinen (Johannes Koskinen) http://www.cs.tut.fi/~ohar/ 8.1.2014 1 Ohjelmistoarkkitehtuurit 2012-2013

Upload: others

Post on 13-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ohjelmistoarkkitehtuurit Kevät 2014 Johdantoaohar/luennot_materiaali/Ohar1_Johdantoa.pdf · 1 Johdanto 2 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Ohjelmistoarkkitehtuuri ja laatuvaatimukset

Ohjelmistoarkkitehtuurit

Kevät 2014

Johdantoa

Samuel Lahtinen

(Johannes Koskinen)

http://www.cs.tut.fi/~ohar/

8.1.2014 1 Ohjelmistoarkkitehtuurit 2012-2013

Page 2: Ohjelmistoarkkitehtuurit Kevät 2014 Johdantoaohar/luennot_materiaali/Ohar1_Johdantoa.pdf · 1 Johdanto 2 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Ohjelmistoarkkitehtuuri ja laatuvaatimukset

1 Johdanto

2

1.1 Mikä on ohjelmistoarkkitehtuuri?

1.2 Ohjelmistoarkkitehtuuri ja laatuvaatimukset

1.3 Katsaus ohjelmistotuotannon kehittymiseen

1.4 Miksi ohjelmistoarkkitehtuuri on tärkeä

1.5 Ohjelmistoarkkitehtuuri ja ohjelmistokehitysprosessi

1.6 Ohjelmistoarkkitehtuuri ja organisaatio

1.7 Ohjelmiston osittaminen

1.8 Toteutusalustan arkkitehtuuri

1.9 Yhteenvetoa

Ohjelmistoarkkitehtuurit 2013-2014

Page 3: Ohjelmistoarkkitehtuurit Kevät 2014 Johdantoaohar/luennot_materiaali/Ohar1_Johdantoa.pdf · 1 Johdanto 2 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Ohjelmistoarkkitehtuuri ja laatuvaatimukset

Arkkitehti?

3

http://www.codingthearchitecture.com

Ohjelmistoarkkitehtuurit 2013-2014

Page 4: Ohjelmistoarkkitehtuurit Kevät 2014 Johdantoaohar/luennot_materiaali/Ohar1_Johdantoa.pdf · 1 Johdanto 2 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Ohjelmistoarkkitehtuuri ja laatuvaatimukset

Onko tämä arkkitehtuuria?

•Ohjelmisto toteutetaan siten, että se käyttää

P2P-topologiaa

•Valitaan toteutusteknologiaksi QT

•Käytetään OpenSource-kirjastoa openssl

•Softa julkaistaan lisenssillä GPL

•Ohjelmisto toteutetaan käyttäen ketteriä

menetelmiä

•Ohjelmiston pitää olla valmis tammikuussa

2014

4 Ohjelmistoarkkitehtuurit 2013-2014

Page 5: Ohjelmistoarkkitehtuurit Kevät 2014 Johdantoaohar/luennot_materiaali/Ohar1_Johdantoa.pdf · 1 Johdanto 2 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Ohjelmistoarkkitehtuuri ja laatuvaatimukset

1.1 Mitä asioita liittyy

arkkitehtuuriin

(rakennuksien kanssa)?

5

Ketkä ovat kiinnostuneet, mitkä asiat kiinnostavat, millä tasolla?

Mitä eri tietoja halutaan välittää?

Kenelle tiedot halutaan esittää?

Ohjelmistoarkkitehtuurit 2013-2014

Page 6: Ohjelmistoarkkitehtuurit Kevät 2014 Johdantoaohar/luennot_materiaali/Ohar1_Johdantoa.pdf · 1 Johdanto 2 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Ohjelmistoarkkitehtuuri ja laatuvaatimukset

6 Ohjelmistoarkkitehtuurit 2013-2014

Page 7: Ohjelmistoarkkitehtuurit Kevät 2014 Johdantoaohar/luennot_materiaali/Ohar1_Johdantoa.pdf · 1 Johdanto 2 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Ohjelmistoarkkitehtuuri ja laatuvaatimukset

1.1 Mikä on

ohjelmistoarkkitehtuuri?

7

Mitä asioita ohjelmistoarkkitehtuuri sisältää?

- Miten toiminnallisuus on jaettu alijärjestelmien kesken?

- Miten alijärjestelmät kommunikoivat keskenään?

- Miksi näin on tehty?

Ohjelmistoarkkitehtuurit 2013-2014

Page 8: Ohjelmistoarkkitehtuurit Kevät 2014 Johdantoaohar/luennot_materiaali/Ohar1_Johdantoa.pdf · 1 Johdanto 2 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Ohjelmistoarkkitehtuuri ja laatuvaatimukset

Standardien määritelmät

8

Software architecture: The fundamental organization of a system

embodied in its components, their relationships to each other and to

the environment, and the principles guiding its design and evolution.

(IEEE Standard 1471-2000)

Software architecture: The fundamental conception of a system in its

environment embodied in elements, their relationships to each other

and to the environment, and the principles guiding its design and

evolution. (ISO/IEC 42010)

Ohjelmistoarkkitehtuurit 2013-2014

Page 9: Ohjelmistoarkkitehtuurit Kevät 2014 Johdantoaohar/luennot_materiaali/Ohar1_Johdantoa.pdf · 1 Johdanto 2 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Ohjelmistoarkkitehtuuri ja laatuvaatimukset

Arkkitehtuuri järjestelmän

kehitysperiaatteena

9

- tietyt kiinnitetyt perusratkaisut - tietyn teknologian käyttö(tapa) - tiettyjen tietorakenteiden käyttö(tapa) - tiettyjen suunnittelumallien käyttö(tapa) - käyttösuhteiden säännöt - poikkeusten käsittelysäännöt

Arkkitehtuuri =

järjestelmän

laki

"Architecture is the set of design

decisions about any system that keeps

its implementors and maintainers

from exercising needless creativity."

(D'Souza & Wills)

Ohjelmistoarkkitehtuurit 2013-2014

Page 10: Ohjelmistoarkkitehtuurit Kevät 2014 Johdantoaohar/luennot_materiaali/Ohar1_Johdantoa.pdf · 1 Johdanto 2 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Ohjelmistoarkkitehtuuri ja laatuvaatimukset

Boehmin määritelmä: yhteys

vaatimuksiin

•A software system architecture comprises a collection of software and system

components, connections, and constraints

a collection of system requirements

a rationale which demonstrates that the

components, connections, and constraints

define a system that, if implemented, would

satisfy the collection of system requirements

10 Ohjelmistoarkkitehtuurit 2013-2014

Page 11: Ohjelmistoarkkitehtuurit Kevät 2014 Johdantoaohar/luennot_materiaali/Ohar1_Johdantoa.pdf · 1 Johdanto 2 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Ohjelmistoarkkitehtuuri ja laatuvaatimukset

Arkkitehtuuritietämys

(Kruchten & co.)

•Architectural Knowledge = Design

Decisions+Design

11 Ohjelmistoarkkitehtuurit 2013-2014

Page 12: Ohjelmistoarkkitehtuurit Kevät 2014 Johdantoaohar/luennot_materiaali/Ohar1_Johdantoa.pdf · 1 Johdanto 2 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Ohjelmistoarkkitehtuuri ja laatuvaatimukset

Bass & Clements

The software architecture of a program or

computing system is the structure or structures

of the system, which comprise software

elements, the externally visible properties of

those elements, and the relationships among

them.

(Software architecture in Practise -kirjaa)

12 Ohjelmistoarkkitehtuurit 2013-2014

Page 13: Ohjelmistoarkkitehtuurit Kevät 2014 Johdantoaohar/luennot_materiaali/Ohar1_Johdantoa.pdf · 1 Johdanto 2 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Ohjelmistoarkkitehtuuri ja laatuvaatimukset

…toisaalta…

13

… Even though every system has an architecture, it does not

necessarily follow that the architecture is known to any one.

… This reveals the difference between the architecture and

the representation of that architecture. Unfortunately, an

architecture can exist independently of its description or

specification, which raises the importance of architecture

documentation and architecture reconstruction.

(Bass & Clements)

Ohjelmistoarkkitehtuurit 2013-2014

Page 14: Ohjelmistoarkkitehtuurit Kevät 2014 Johdantoaohar/luennot_materiaali/Ohar1_Johdantoa.pdf · 1 Johdanto 2 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Ohjelmistoarkkitehtuuri ja laatuvaatimukset

Kaksi eri arkkitehtuurikäsitystä

16

Suunniteltu arkkitehtuuri Suunnittelijan tahdonilmaus, järjestelmälle määritelty, spesifikaatio

Olemassa olevan järjestelmän arkkitehtuuri Järjestelmän ominaisuus, järjestelmän määrittelemä

Ongelmia: •Vain ideaalisessa maailmassa nämä ovat

sama asia

•Yleensä ei tarkenneta kummasta

puhutaan

•Suunniteltua arkkitehtuuria ei ole

välttämättä dokumentoitu

•Toteutuksen arkkitehtuuri vaikeasti

nähtävissä/määriteltävissä

Ohjelmistoarkkitehtuurit 2013-2014

Page 15: Ohjelmistoarkkitehtuurit Kevät 2014 Johdantoaohar/luennot_materiaali/Ohar1_Johdantoa.pdf · 1 Johdanto 2 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Ohjelmistoarkkitehtuuri ja laatuvaatimukset

Architect

Mitkä asiat vaikuttavat arkkitehdin päätökseen?

Requirements: “The system should have

response time under 1 s when

there is 10000 users logged in the service.

Resources: “I have two Scrum teams”

Experience: “I have had bad

experiences using Struts”

Personal preference: “I prefer to use

open source components

over commercial ones”

Business goals: “Company should take technology X

in use within two years.”

Time-to-market: “Product should be released

next week,

I just do this quick-n-dirty solution”

..and many other concerns.

17 Ohjelmistoarkkitehtuurit 2013-2014

Page 16: Ohjelmistoarkkitehtuurit Kevät 2014 Johdantoaohar/luennot_materiaali/Ohar1_Johdantoa.pdf · 1 Johdanto 2 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Ohjelmistoarkkitehtuuri ja laatuvaatimukset

Ohjelmistoarkkitehtuuri ja

laatuvaatimukset

•Ohjelmiston arkkitehtuuri määräytyy pääasiassa sen laatuvaatimusten,

ei toiminnallisten vaatimusten perusteella

•Arkkitehtuuri on tapa ottaa huomioon järjestelmän laatuvaatimukset

ohjelmistokehitysprosessissa

•Tässä laadulla ei viitata virheettömyyteen vaan siihen millä laadulla

järjestelmä tekee loogiset toimintonsa

•Esimerkiksi Ohjelmiston vasteaika on normaalilla kuormalla 5 ms.

Järjestelmän pitää olla toimintavalmis 3 minuutissa

käynnistämisestä.

19 Ohjelmistoarkkitehtuurit 2013-2014

Page 17: Ohjelmistoarkkitehtuurit Kevät 2014 Johdantoaohar/luennot_materiaali/Ohar1_Johdantoa.pdf · 1 Johdanto 2 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Ohjelmistoarkkitehtuuri ja laatuvaatimukset

Laatuvaatimukset

•Mikä tahansa järjestelmä voidaan toiminnallisuuden puolesta toteuttaa

millä tahansa ”arkkitehtuurilla”, joka koostuu toisiinsa liittyvistä

komponenteista (ts., toiminnallisuus voidaan sijoitella miten hyvänsä

järjestelmän osiin, jos mikään osa ei ole irrallinen muusta

järjestelmästä). Pelkän loogisen toiminnallisuuden kannalta

arkkitehtuuri ei ole kovin merkittävä.

20

Toiminta

A

Toiminta

B

A tarvitsee B:tä? Kuinka usein? Millainen yhteys? => Suorituskyky

Ohjelmistoarkkitehtuurit 2013-2014

Page 18: Ohjelmistoarkkitehtuurit Kevät 2014 Johdantoaohar/luennot_materiaali/Ohar1_Johdantoa.pdf · 1 Johdanto 2 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Ohjelmistoarkkitehtuuri ja laatuvaatimukset

Yhteenvetoa •Opittiin ohjelmistoarkkitehtuurin käsitteestä jotain

•Törmättiin käsitteeseen ohjelmistoarkkitehti ja saatiin esimakua

kaverin tehtävistä ja tehtäviin vaikuttavista asioista

21 Ohjelmistoarkkitehtuurit 2013-2014

Page 19: Ohjelmistoarkkitehtuurit Kevät 2014 Johdantoaohar/luennot_materiaali/Ohar1_Johdantoa.pdf · 1 Johdanto 2 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Ohjelmistoarkkitehtuuri ja laatuvaatimukset

Kysyttävää?