Szoftverrendszerek fejlesztése Dr. Csonka Béla György egyetemi adjunktus www.softeam.hu/sze SOFTEAM projekt 9001Kft
Bevezetés Szoftvertervezés Szoftverkrízis – szoftvertervezés Mérnöki tudományág Cél: szoftverrendszerek költséghatékony fejlesztése Szoftverkrízis – szoftvertervezés Megbízhatatlanok Nehezen karbantarthatók Gyengén kivitelezettek Komplex rendszerek előállításának mai problémái Minőség Költség Határidő
Szoftver Szoftverrendszer Szoftvertermékek Program, dokumentáció, Felhasználói WEB - információszolgáltatás konfigurációs adatok Szoftvertermékek Általános termékek Rendelésre készített termékek
Szoftvertervezés Mérnöki tudományág Elmélet, eszköz, módszer Megoldás ott, ahol ez hiányzik Megszorítások Szervezeti Pénzügyi Minőségbéli A szoftvertermékek minden aspektusa Technikai folyamatok Projekt menedzselés Szoftvert támogató eszközök Elméletek Módszerek
Számítógép-tudomány «» szoftvertervezés Számítógépek, szoftverek alapjául szolgáló Elméletek Módszerek Szoftvertervezés Szoftver előállításának gyakorlati problémái A számítógép-tudomány elméletei segítik a szoftvertervezést?
AD-HOC ötletek SELECT DISTINCT Tanulo.Tnev AS Tnev, Tanulo.VIB1 AS VIB1, Tanulo.KategoriaID AS KategoriaID, Oktszlafej.Oszlaszam AS Oszlaszam, Tanokt.Oktbef AS Oktbef, Tanulo.KepzformaID AS KepzformaID, Oktszlafej.OktatoID AS OktatoID, Oktszlaelem.OktszlaelemID AS OktszlaelemID, Oktato.OktatoID AS OktatoID_Ok, (Oktato.OktatoID-Oktszlafej.OktatoID) as igaz FROM Oktall INNER JOIN Oktato ON Oktall.OktallID = Oktato.OktallID, Oktato INNER JOIN Tanokt ON Oktato.OktatoID = Tanokt.OktatoID, Tanulo INNER JOIN Tanokt ON Tanulo.TanuloID = Tanokt.TanuloID, Tanulo LEFT OUTER JOIN Oktszlaelem ON Tanulo.TanuloID = Oktszlaelem.TanuloID, Oktszlafej INNER JOIN Oktszlaelem ON Oktszlafej.OktszlafejID = Oktszlaelem.OktszlafejID WHERE Oktall.Oktvall = 1
Szoftvertervezés «» Rendszertervezés Hardverfejlesztés Eljárásmódok tervezése Folyamatok tervezése Rendszertelepítés Szoftvertervezés
Szoftverfolyamat Szoftverspecifikáció Szoftverfejlesztés Működés Működési megszorítások Szoftverfejlesztés Elkészíteni a szoftvert Szoftvervalidáció Biztosítani, az készült el, amit megrendeltek Szoftverrevolúció Fejleszteni a megrendelő igényi szerint
A szoftverfolyamat modellje Munkafolyamat modell Tevékenységek folyamatbeli Adatfolyamat vagy tevékenység modell Szerepkör/cselekvés modell Általános modellek Vízesés modell Evolúciós fejlesztés Formális transzformációk Rendszer összeállítása újrafelhasználható komponensekből
A szoftvertervezés költsége I. A fejlesztési költségek eloszlása Alkalmazott folyamat Milyen típusú szoftvert fejlesztünk Legnagyobb költség: Rendszerintegráció és tesztelés
Szoftvertervezési módszerek A szoftverfejlesztés strukturált megközelítése Jó minőségű szoftverek Költséghatékony előállítása Határidőre DeMarco, Jackson, UML
Módszerkomponensek Rendszermodell leírásai Szabályok Ajánlások Folyamatirányítás
CASE A szoftverfolyamat tevékenységeinek támogatása Követelményelemzés Rendszermodellezés Nyomkövetés Tesztelés Case eszközök szintjei Magas szintű Elemzést és tervezés segítő (folyamatirányítás: tanács a következő lépésre) Alacsonyszintű Implementáció, tesztelés
A jó szoftver tulajdonságai Karbantarthatóság Üzembiztonság Hatékonyság Használhatóság
A szoftvertervezés kihívásai Meglévő rendszerek kihívása A heterogenitás kihívása A szállítás kihívása
Szakmai és etikai felelősség Bizalmasság Hozzáértés Szellemei tulajdonjogok Számítógépes visszaélés