Életciklus modellek a rendszer és szoftverrendszer-fejlesztésben SDLC System Development Life Cycle Software Development Life Cycle
Mi az életciklus? A termék piacon való megjelenésétől a kivonásáig terjedő szakasz. 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében Zárvatermők életciklusa 2
Életciklus a (rendszer- és szoftver)fejlesztésben Fejlesztési életciklus: Egy olyan időintervallum, melynek kezdete a fejlesztési ötlet, a vége pedig a kifejlesztett termék használton kívül helyezése Jellemző fázisai: Koncepció Követelmények azonosítása, elemzése Tervezés Megvalósítás Ellenőrzés (tesztelés) Telepítés Üzemeltetés Leszerelés 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 3
Miért van szükség életciklus modellekre? Néhány szempont: Komplexitás kezelése Fázisokra osztás, mérföldkövek rögzítése Elosztott fejlesztés és integráció alapja Változások kezelése Követelmény módosulás, hibajavítás hatásainak kezelése Stb. Erősségek Irányíthatóság Óriás projektek felügyelete Részletezett lépések Mérhetőség Dokumentáltság Karbantarthatóság Stb. Gyengeségek Fejlesztési idő és költség nő Előre jól definiált rendszert igényel Merev Nehezen becsülhető Stb. 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 4
Az életciklushoz kapcsolódó fogalmak/szemléletek Lineáris T1 T2 T3 T4 T5 Jelmagyarázat Szekvenciális T5 A fejlesztés célja (termék) Elágazó T1 T2 T3 T6 T8 Tx Tevékenység T4 T7 A fejlesztési cél valamilyen szintű megvalósult állapota Evolúciós INKx: Inkrementum INK1 INK2 INK3 INK4 INK5 Ix: Iteráció Inkrementális Iteratív T2 I1 T3 T2 T3 T2 T3 T2 T3 T2 T3 I2 I3 I4 I5 T1 T4 T1 T4 T1 T4 T1 T4 T1 T4 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 5
Életciklus modellek Példák életciklus megközelítésekre, életciklus fejlődéstörténet 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 6
Do Until Done (DUD) Addig próbálkozunk a feladattal, amíg azt nem kapjuk, amit várunk SW fejlesztésben: addig javítjuk a programot, amíg azt nem csinálja amit szeretnénk Mi a probléma ezzel a folyamattal? Mikor vagyunk kész? (Done?) Követelmények teljesülésének értékelhetősége? Minőségi követelmények? Példa: hogyan írunk házi feladatot? 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 7
Vízesés-modell 1/3 szekvenciális Erősségek: Könnyű megérteni Keretet ad a kevésbé képzett fejlesztőknek A követelmények rögzülnek, és nem is változnak a fejlesztés során Szoros ellenőrzés: nem enged továbblépni, amíg egy fázis nem lezárt Ha jól alkalmazzuk, a hibák már valamely korai fázisban kiderülnek (javítás lehetséges és kevésbé költségigényes) A projekt menedzser számára könnyű a tervezés és a szereplők kiválasztása Ha valaki készen van az adott fázisban rá kiosztott munkával, másik projekten dolgozhat, míg a többiek is elérik a fázis lezárásához szükséges állapotot A mérföldkövei könnyen érthetőek Könnyű ellenőrizni a projekt aktuális állapotát Alkalmazás Jól érthető és kevésbé komplex projektek esetén 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 8
Vízesés-modell 2/3 szekvenciális Gyengeségek: Lineáris: nehézkes a visszalépés a felmerülő problémák esetén (javítási költségi magas, javítási idő hosszú) Integráció a folyamat végén robbanásszerű: a korábban fel nem fedezett hibák egy időben jelennek meg A megrendelő csak a folyamat végén láthatja a rendszert, menet közben nincs lehetősége véleményezni azt A minőség csak a folyamat utolsó fázisában mérhető Minden egyes fázis az előző fázis teljes befejezésére épít, ezzel jelentősen nő a kockázat A fejlesztés során a követelmények nem módosíthatók, hiszen már az életciklus elején rögzülnek Már a fejlesztés kezdetén ismernünk kell valamennyi követelményt, azok későbbi módosítására vagy bővítésére ugyanis nincs lehetőség () Elképzelhető, hogy bár a végtermék megfelel valamennyi specifikációnak, mégsem működik Dokumentumvezérelt 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 9
Vízesés-modell 3/3 szekvenciális Melyik az egyik legégetőbb probléma? Nehéz visszalépni a felmerülő problémák megoldásakor Hogyan oldjuk meg? Módosított vízesés modell 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 10
Módosított Vízesés-modell szekvenciális Mi az amit továbbra sem oldottunk meg igazán? A megrendelő csak a folyamat végén láthatja a rendszert, menet közben nincs lehetősége véleményezni azt A fejlesztés során a követelmények nem módosíthatók, hiszen már az életciklus elején rögzülnek Változékony környezet nem kezeli Elképzelhető, hogy bár a végtermék megfelel valamennyi specifikációnak, mégsem működik A minőség csak a folyamat utolsó fázisában mérhető Integráció a folyamat végén történik A minőség csak a folyamat végén mérhető 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 11
V-modell szekvenciális EN 50126:2001 A vízesés modellből származtatható > ebből következik, hogy annak erősségeit/gyengeségeit is örökölte De mégis mi az amivel többet ad? 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 12
V-modell szekvenciális Tervezés Ellenőrzés Információ-áramlás a tervezéstől az ellenőrzés felé! Tervezés: top-down megközelítés Ellenőrzés: bottom-up megközelítés Verifikáció: Jól tervezem-e a rendszert? Validáció: Jó rendszert készítettem-e? (részletesebben következő előadás) 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 13
V-modell > W modell szekvenciális User requirements Software requirements Architectural design Detailed design Coding Unit test Integration test System test Acceptance test VUser requirements Software requirements Architectural design Detailed design Acceptance test specification System test specification Integration test specification Unit test specification 2018.10.15. 14 Coding System test Integration test Unit test Acceptance test Unit test report Integration test report System test report Acceptance test report
V-modell > Y-modell szekvenciális Cél: idő- és költségmegtakarítás Esterel, DO-178B, Avionics Software, Safety Objectives (a) (b) (c) V-modell Kódgenerátor használata (nem fejlesztési eszközként) 15 % -20 % költségcsökkenés attól függően, hogy van-e változás a követelményrendszerben (LLR-ben) Az ellenőrzéseket el kell végezni Kódgenerátor használata (minősített fejlesztési eszközként) Ha a fordító által észlelt hibák kockázatáról meggyőződtünk, akkor garantálható a compiler alacsony szintű követelményeknek való megfelelése Az objektumkód előállításának költsége és a követelményeknek való megfelelés ellenőrzése közel nulla 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 15
V-modell > Y-modell szekvenciális A költségmegtakarítás elérheti a 60 %-ot Modell alapú fejlesztés Lásd később (önálló előadás) Majzik 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 16
V-modell > Y-modell szekvenciális VY System Development (external phase) Software Requirements Software Architect. and Design Software Component Design Software Component Implementation Software Maintenance Software Validation Software Integration Software Component Testing System Development (external phase) Software Requirements Software Architect. and Design Software Component Design Formal Requirements Integration Model Component Formal Models Automated Code Generation Software Maintenance Software Validation Model Checking Automated Integration 2018.10.15. 17
RAD - Rapid Application Development evolúciós Az ismert (de nem feltétlenül tökéletes ) követelményrendszer alapján egy gyors prototípus (mintadarab, első verzió) fejlesztése, majd ennek tökéletesítése a felhasználóval egyeztetve A prototípus általában a kritikus funkciókra irányul Cél: a tervbe vett rendszer főbb tulajdonságainak minél korábbi bemutatása 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 18
RAD - Rapid Application Development evolúciós 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 19
Spirál modell iteratív célok, alternatívák, korlátozások azonosítása alternatívák, kockázatok elemzése A spirál modell iteratív: újra és újra visszatér ugyanazokhoz a lépésekhez, és folyamatosan csiszolja a terveket, prototípusokat egészen addig, míg el nem ér egy, az igényeket maximálisan kielégítő termékhez. következési fázis tervezése fejlesztés, ellenőrzés 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 20
Spirál modell iteratív Do Check Plan Act 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 21
UP, RUP - Unified Process iteratív, inkrementális Fázisok (időben kötött) iterációkra osztva Mindegyik iteráció egy teljes (mini) fejlesztési ciklus 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 22
Agilis modell iteratív, inkrementális Származtatása: RUP, RAD 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 23
Cleanroom iteratív, inkrementális Alapelvei Formális specifikáció (matematikai modell) Statikus verifikáció: helyességbizonyítás Statisztikai minőségbiztosítás (tesztelés) Error rework: gyakran egészen a specifikációig kell visszanyúlni! 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 24
4G modell modell alapú Milyen a követelmény-rendszer? 1. Jól specifikált Hagyományos fejlesztés 2. Rosszul specifikált Prototípus alapú fejlesztés 3. Formalizálható Modell alapú fejlesztés Lehet iteratív 4GT. 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 25
SLC - Star Life Cycle modell Alapelve: a fejlesztéshez tartozó tevékenységek nem szükségszerűen egy előre meghatározott folyamat meghatározott fázishoz tartoznak Felhasználó központú Egy tevékenység lezárási feltétele: részletes értékelés (extensive evaluation) megléte Részletes értékelés tartalma: adatgyűjtés, módszerek, felhasználói interjúk, felhasználó megfigyelése használat közben stb. 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 26
Életciklus modellek a szabványokban Szabványok által ajánlott életciklus megközelítések 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 27
EN 61508-1:2010 általános ipari E/E/PE elemek biztonsági életciklusa Villamos és/vagy Elektronikus és/vagy programozható elektronikus Biztonsági vonatkozású funkciók megvalósítása Nem szerepel a modellben (összetettség csökkentése): Funkcionális biztonság kezelése Verifikáció Funkcionális biztonság értékelése 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 28
EN 61508-1 általános ipari A megvalósítási szakasza (rendszer) 2018.10.15. A megvalósítás szakasz (szoftver) Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 29
EN 61508-1:2010 általános ipari Kapcsolat a rendszer/hardver/szoftver között 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 30
EN 50126:2001 vasúti alkalmazások Koncepció Rendszermeghatározás és alkalmazási feltételek Kockázatelemzés Kockázatelemzés ismételt alkalmazása Rendszerkövetelmények Rendszerkövetelmények felosztása Tervezés és kivitelezés Gyártás Telepítés Rendszer-érvényesítés Rendszer-elfogadás Teljesítőképesség figyelemmel kísérése Üzemeltetés és karbantartás Átalakítás és módosítás Leszerelés és selejtezés Életciklus ismételt alkalmazása 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 31
EN 50126-1:2017 vasúti alkalmazások 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 32
EN 50128:2011 vasúti alkalmazások DESIGN AND TEST DOCUMENTATION VERIFICATION ACTIVITIES PHASE System Requirements Specification System Safety Requirements Specification System Architecture Description System Safety Plan and V&V Plan Software Requirements Specification Overall Software Test Specification Software Requirements Software Requirements Verification Software Architecture Specification Software Architecture Verification Software Architecture Software Design Specification Software Interfaces Spcification Software, Software/Hardware Integration Test Specification Software Design Software Design Verification Software Component Design Specification Software Component Test Specification Software Component Design Software Source Code and supporting documentation Software Component Design Verification Software Component Test Report Component Implementation and Testing Source Code Verification Software Integration Test Report Software/Hardware Integration Test Report Software Integration Overall Software Test Report Software Deployment Documents Software Validation Software Validation Software Deployment Software Maintenance Dosuments Software Maintenance 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 33
ISO 26262:2011 közúti járművek 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 34
DO-178B (DO-178C ős) repülőgép fedélzeti rszk. 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 35
DO-178C:2012 repülőgép fedélzeti rszk. Biztonsági SW Level A B C D E 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében Failure condition Catastrophic Hazardous Major Minor No Effect 36
Életciklus modellek a gyakorlatban Szabványok által ajánlott életciklus megközelítések, példák 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 37
Életciklus modellek a gyakorlatban 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 38
Életciklus modellek a gyakorlatban 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 39
Életciklus modellek a gyakorlatban 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 40
Életciklus modellek a gyakorlatban 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 41
Életciklus modellek a gyakorlatban MSZ EN 5012x család alapú (vasúti fejlesztés koncepció fázisában definiált) 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 42
Összefoglalás Életciklus fogalma Életciklus modellek Szekvenciális Evolúciós Inkrementális Iteratív Kombinált (pl. modell alapú) Életciklus modellek a gyakorlatban 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 43
Köszönöm a figyelmet! 2018.10.15. Korszerű módszerek a közlekedésautomatikai rendszerek fejlesztésében 44