Utisci korisnika

Veoma sam zahvalna na Vašem brzom odgovoru i želela bih da Vam se zahvalim na pažnji koju ste pokazali. Radica Nedelčev - Beograd

Pre svega želim da vam se zahvalim na veoma brzom i profesionalnom pristupu. Jovan Knežević - Hong Kong


Kompletna lista utisaka

Testiranje online

Arhitektura računara

Za one koji žele da znaju više.

Windows OS

Ovo bi svakako trebalo da probate.

Odnosi s javnošću

Koliko znate PR?

Pogledajte još neke od testova

Newsletter

Ukoliko želite da Vas redovno obaveštavamo o novostima sa Link eLearning sajta prijavite se na našu newsletter listu.

Ime:

Prezime:

Email:


Anketa

Arhiva anketa

BAZA ZNANJA


Kurs: Softverski dizajn

Modul: Uvod u softverski dizajn

Autor: Test Instruktor

Naziv jedinice: Softverska arhitektura


Materijali vezani uz ovu lekciju:

- Test softverska arhitektura
- Softverska arhitektura (PDF dokument)



U ovoj lekciji obrađivaćemo:

  • Pojam softverske arhitekture
  • Jezike za opis arhitekture
  • Poglede softverske arhitekture
  • Notacije za opis arhitekture

 

Softverska arhitektura računarskog sistema ili programa je struktura, koja obuhvata softverske komponente, spoljašnje vidljive osobine ovih komponenti i relacije između njih. Termin se takođe odnosi i na dokumentaciju softverske arhitekture sistema. Dokumentovanje softverske arhitekture olakšava komunikaciju između svih učesnika u razvoju i omogućava ponovno korišćenje komponenti dizajna i šablona izmedju projekata[1].

Disciplina softverske arhitekture se fokusira na ideji smanjenja kompleksnosti kroz apstrakciju i razdvajanja interesa. Danas još uvek ne postoji precizna definicija softverske arhitekture. Postoji više desetina klasičnih i modernih tumačenja i definicija i više stotina definicija od strane IT zajednice[2]. Jednu interesantnu definiciju dao je Eoin Woods: Softverska arhitektura je skup odluka o dizajnu koje, ako se ne donesu korektno, mogu dovesti do neuspeha projekta.

Slika 1.


Prvobitni koncepti softverske arhitekture postavljeni su u radovima Edsgera Dijkstre 1968 god. i Davida Parnasa 1970 god. Ovi naučnici u svojim istraživanjima podvlače značaj strukture softverskog sistema i suštinsku važnost dobijanja ispravne strukture[3].

Istraživanja na ovom polju dobijaju na značaju sredinom 1990 god. sa fokusiranjem na arhitekturalne stilove, jezike za opis arhitekture, arhitekturalnu dokumentaciju i formalne metode[4]

Jezici za opis arhitekture (Architecture description languages (ADLs))

Jezici za opis arhitekture se koriste za opis Softverske Arhitekture. Nekoliko različitih jezika je razvijeno od strane različitih organizacija:

  • AADL (SAE standard),
  • Wright (razvijen od Carnegie Mellon),
  • Acme (razvijen od Carnegie Mellon),
  • xADL (razvijen od UCI),
  • Darwin (razvijen od Imperial College London),
  • DAOP-ADL (razvijen od University of Málaga).

 

Uobičajeni elementi za jezik su komponenta, konektor i konfiguracija.

  

Pogledi softverske arhitekture

Softverska arhitektura je uobičajeno organizovana preko pogleda (eng. Views), što je analogno različitim vrstama nacrta i šema koje se prave u arhitekturi. Prema standardu ANSI/IEEE 1471-2000, pogledi su instance gledišta (eng. Viewpoints), gde gledišta postoje da opišu arhitekturu iz ugla zainteresovanih strana i njihovih interesa.

Neki od mogućih pogleda, ili gledišta prema standardu ANSI/IEEE 1471-2000 su:

  • Funkcionalni/logički pogled
  • Kod/modul pogled
  • Razvojni/strukturalni pogled
  • Konkurentni/Procesni/Thread pogled
  • Fizički/implementacioni pogled
  • Korisnički/povratni pogled
  • Pogled podataka

 

Slika 2. Primer gledišta dizajna[5]

Nekoliko jezika za opis softverske arhitekture je osmišljeno, ali nije postignut konsenzus koji skup simbola i sistem pogleda treba da se usvoji. UML je uspostavljen kao standard za modelovanje sistema, posebno softverskih sistema, što se odnosi i na poglede softverske arhitekture. Sa druge strane, postoje mišljenja da efikasan razvoj softvera zavisi i od jedinstvenih ograničenja svakog problema, pa je stoga univerzalna notacija osuđena na neuspeh, jer svaka pruža notacione pristrasnosti koja vodi do njene neupotrebljivosti za određene skupove zadataka. U nastavku kursa će biti dati detaljniji opisi jezika i pogleda koje pružaju.

Reference:

1. Bass, Len; Paul Clements, Rick Kazman. Software Architecture In Practice, Second Edition. Addison-Wesley, 2003.
2. SEI (2006). "How do you define Software Architecture?". http://www.sei.cmu.edu/architecture/definitions.html, Visited 2008-08-12.
3. SEI (2006). "Origins of Software Architecture Study". http://www.sei.cmu.edu/architecture/roots.html Visited 2008-08-12.
4. Garlan & Shaw (1994). "An Introduction to Software Architecture"
5. David Budgen, Software design, Addison Wesley, 2003


Smatrate da je ova lekcija korisna?  Preporučite je. Broj preporuka:2