Szoftver születik Eötvös Konferencia Köllő Hanna
A szoftverfejlesztés… Nagy rendszerek fejlesztése Több ember, több hónap Senki nem látja át a teljes rendszert Mérnöki megközelítés Szisztematikus Fegyelmezett Mérhető Kulcs: szoftverarchitektúra
Életciklus Egyszerű modell Követelmények Tervezés Implementáció Tesztelés Bonyolult modell Inkrementális fejleszés… ciklus(ok) Menet közben irányt kell váltani
A szoftverarchitektúra helye az életciklusban Architektúra Tervezés Implementáció Tesztelés Megrendelő Követelmények
Az architektúra dokumentálása Minden szoftvernek van architektúrája Dokumentáció Felhasználói Fejlesztői ami az implementáció után készül ami az implementáció előtt készül (architektúra- dokumentáció, rendszerterv)
Az architektúra-dokumentáció célja A kommunikáció eszköze a szoftvert fejlesztő, karbantartó, megrendelő, felhasználó emberek közt A legmagasabb szintű tervezési döntések gyűjteménye Az implementáció vázának absztrakt forrása
Nézetek (modellek) Általában nem elég egy modell Mindenkit más érdekel Statikus, dinamikus modellek Példák: Használati diagram Folyamat-diagram Munkamegosztás-diagram
A tervező feladata A probléma megértése, modellezése A követelmények rendszerezése Korai döntések meghozatala Kompromisszumok A terv „eladása” A fejlesztő csapat irányítása
Nem-funkcionális követelmények Funkcionális követelmények Mit kell tudnia a programnak Nem-funkcionális követelmények Rendelkezésre állás Módosíthatóság Hatékonyság Biztonság Felhasználó-barát felület
Módszerek: rendelkezésre állás Hibafelismerési módszerek Életjel Ping/echo Hiba utánni automatikus felépülés Redundancia Elosztott koordinátor-választási algoritmusok Hiba-elkerülési módszerek Tranzakciókezelés
Módszerek: módosíthatóság Módosítások lokalizálása Szemantikus koherencia „Láncreakció” elkerülése Információ elrejtése Késleltetett kötés futás idejű kötés konfigurációs fájlok használata polimorfizmus
Célok Biztonsággal tudjunk nagy rendszereket készíteni Megfelelő funkcionalitás Megfelelő minőségben Megfelelő határidőre Újrafelhasználhatóság támogatása
Kutatási területek Komponens alapú szoftverfejlesztés Kicserélhető komponensek Szabványos kapcsolódási pontok Szoftver-családok Szoftver-változatok közös architektúrával Service Oriented Architecture Szoftver üzemeltetés helyett szoftver használat
Irodalom Hans van Vliet: Software Engineering: Principles and Practice, Wiley & Sons, 2008 Bass, Len; Clements, Paul; & Kazman, Rick. Software Architecture in Practice, Addison- Wesley, 2003 Fred Brooks, The Mythical Man-Month: Essays on Software Engineering, Addison- Wesley, 1995