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