A szoftver mint komplex rendszer A fejlesztési módszertanok általános céljai: Összetett problémák kezelhetővé tétele A fejlesztési és megtérülési jellemzők javítása
Kezelhetővé tétel: A probléma megoldása olyan úthálózat bejárását jelentse, amelynek minden csomópontjában egyszerű problémák állnak. A feladat egésze csoportmunkában is elvégezhető legyen – egymástól független részfeladatok A szoftver mint komplex rendszer
Fejlesztési és megtérülési jellemzők: Elemezhetőség Változtathatóság Tesztelhetőség Stabilitás Hordozhatóság Újrafelhasználhatóság A szoftver mint komplex rendszer
Újrafelhasználhatóság értelmezése: egy probléma megoldására kifejlesztett szoftver- komponens minden olyan más szoftver fejlesztése során, amelynek a probléma megoldása szintén feladatát képezi, változatlanul felhasználható legyen, illetve az utóbbi (a kompozíció szintű) szoftver legyen készen idegen fejlesztésű komponensek befogadására. A szoftver mint komplex rendszer
A fejlesztési és megtérülési minőségek előnyei: Költségcsökkentés (elemezhetőség, a változtathatóság, a tesztelhetőség, a stabilitás és az újrafelhasználhatóság minőségek) Egyszeri ráfordítás többszöri megtérülése (újrafelhasználhatóság) A szoftver mint komplex rendszer
Komplex probléma „megszelídítése”: Oszd meg és uralkodj!
Modularizálás A modul: Fekete doboz: az absztrakciónak, részletek elrejtésének eszköze; a környezet csak az interfészt látja A rendeltetése önmagában is megérthető, meghatározható Önállóan tervezhető, kivitelezhető, tesztelhető Belőlük a célrendszer felépíthető, a rendszer a modulok megfelelő együttműködésével produkálható A szoftver mint komplex rendszer
Igazán komplex rendszerek esetén többszintű, hierarchikus modularizációra van szükség. A szoftver mint komplex rendszer
A hierarchikus modularizáció eredménye: 1. A rendszer egészének tervezése, felépítése egyszerű, mert felső szinten kevés modult és kapcsolatot tartalmaz, s ezek fekete dobozként viselkednek. A modulok belseje könnyen cserélhető, csak az interfésznek nem szabad változnia. 2. Egy modul vagy ugyanezért tervezhető, kivitelezhető egyszerűen, vagy már elemi komponens, amely teljesen átlátható. 3. Nincs akadálya a csoportmunkának. A szoftver mint komplex rendszer
A modulokra bontás alapelve: a független problémák megoldásának elkülönítése. 1. A komponenseket úgy kell kijelölni, hogy adott probléma megoldásáért felelős szoftverelem mindig egyértelműen azonosítható legyen. Ha két probléma egymástól függetlenül is felmerülhet, vagy a követelményeik egymástól függetlenül megváltozhatnak, a megoldásuk nem lehet egyetlen építőelem feladata. A szoftver mint komplex rendszer
Egymástól független célok közt a fejlesztő ne létesítsen mesterséges függést azzal, hogy megoldásukat egyazon, nem bontható komponensre bízza!
Az elv alkalmazásának gyenge pontja: a problémák függetlenségének felismerése. Ajánlat (Yourdon, 1989): Tervezési szintekből és vetületekből álló sablon. Tervezési szintek: 1. fogalmi, logikai, fizikai szint 2. adat-, feldolgozás, felhasználói felület (esemény, környezet) szint A szoftver mint komplex rendszer
A szintek és vetületek megkülönböztetését indokolja: 1. Ha a rendszert más operációs rendszerre vagy más adatbázis-kezelő rendszer fölé kell áttenni, csak a fizikai szintű tervezést kell megismételni. 2. Egy adatszerkezetet az adatvetületben magában egyszer kell megtervezni, nem annyiszor, ahány funkció azt használja. A szoftver mint komplex rendszer