Kurs: Softverski dizajn Materijali vezani uz ovu lekciju: - Test softverska arhitektura - Softverska arhitektura (PDF dokument) U ovoj lekciji obrađivaćemo:
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.
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:
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.
![]() 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.
|