Ohjelmistoarkkitehtuuri

Wikipediasta
Siirry navigaatioon Siirry hakuun
Yksinkertaistettu kaavio Wikimedian palvelinarkkitehtuurista.

Ohjelmistoarkkitehtuuri kuvaa ohjelmiston tai ohjelmistojärjestelmän rakennetta. Järjestelmän koon kasvaessa suunnitteluongelma ylittää algoritmien ja tietorakenteiden määrittelyn ja suurissa järjestelmissä kokonaisuuden suunnittelu ja määrittely esiintyy uutena ongelmana.[1]

Määritelmä[muokkaa | muokkaa wikitekstiä]

Määritelmiä arkkitehtuurille on esitetty useita.

Arkkitehtuuri on joukko rakenteita, joita tarvitaan järjestelmän ymmärtämiseksi, johon liittyy ohjelmistoelementtejä, niiden välisiä suhteita sekä molempien ominaispiirteitä.[2]

Arkkitehtuurin sanotaan olevan asiantuntijakehittäjillä oleva jaettu ymmärrys järjestelmästä.[3]

Arkkitehtuuri voidaan jakaa hierarkisesti osiin, jotka kommunikoivat rajapintojen välityksellä.[4] Osa voi olla luokka, komponentti tai alijärjestelmä.[4]

Arkkitehtuuri on kaavio sekä järjestelmästä että projektista, joka kehittää sitä ja määrittelee tehtävät suunnittelu- ja toteutusryhmille.[5]

Termistössä arkkitehtuuri vastaa useiden osapuolten (engl. stakeholder) intresseistä (engl. concerns).[6]

Standardit[muokkaa | muokkaa wikitekstiä]

Arkkitehtuurien kuvaamisesta on julkaistu standardit IEEE 1471-2000, ISO/IEC 42010:2007 ja ISO/IEC/IEEE 42010:2011, joka korvaa aikaisemmat.[7][8]

Arkkitehtuurityylejä[muokkaa | muokkaa wikitekstiä]

Yleisiä rakennetyylejä ovat:[9]

  • kerroksittainen rakenne
  • asiakas-palvelin-arkkitehtuuri
  • isäntä-orja -malli
  • putki-suodatin -malli
  • välittäjämalli (broker)
  • peer-to-peer -malli
  • tapahtumajono
  • MVC-malli
  • liitutaulumalli (blackboard)[10]
  • tulkkimalli

Katso myös[muokkaa | muokkaa wikitekstiä]

Lähteet[muokkaa | muokkaa wikitekstiä]

  1. David Garlan & Mary Shaw: An Introduction to Software Architecture (PDF) cs.cmu.edu. tammikuu 1994. Viitattu 4.3.2020. (englanniksi)
  2. What is your definition of software architecture? (PDF) resources.sei.cmu.edu. Viitattu 4.3.2020. (englanniksi)
  3. Martin Fowler: Software Architecture Guide martinfowler.com. 1.8.2019. Viitattu 4.3.2020. (englanniksi) 
  4. a b Haikala, Ilkka & Märijärvi, Jukka: Ohjelmistotuotanto, s. 409. Satku, 2000. ISBN 951-762-769-6.
  5. Software Architecture sei.cmu.edu. joulukuu 2017. Viitattu 4.3.2020. (englanniksi) 
  6. Rich Hilliard: The role of architecture frameworks: Lessons learned from ISO/IEC/IEEE 42010 (PDF) mit.edu. Viitattu 5.3.2020. (englanniksi)
  7. Systems and software engineering — Architecture description iso-architecture.org. Viitattu 4.3.2020. (englanniksi) 
  8. ISO/IEC/IEEE 42010:2011 Systems and software engineering — Architecture description iso.org. Viitattu 4.3.2020. (englanniksi)
  9. 10 Common Software Architectural Patterns in a nutshell towardsdatascience.com. Viitattu 4.3.2020. (englanniksi) 
  10. Blackboard Design Pattern: A Practical C# Example - Radar Defence System social.technet.microsoft.com. Viitattu 4.3.2020. (englanniksi)

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]