Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Incremental change © 2013 Betyár Gábor Rendszerfejlesztés II. 3. Óra.

Hasonló előadás


Az előadások a következő témára: "Incremental change © 2013 Betyár Gábor Rendszerfejlesztés II. 3. Óra."— Előadás másolata:

1 Incremental change © 2013 Betyár Gábor Rendszerfejlesztés II. 3. Óra

2 Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Egy kis ismétlés… Szoftverevolúció: - új követelmények - meglévő követelmények változása - észlelt hibák - adaptáció Karbantartás típusai: - korrektív - adaptív - perfektív

3 Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Szoftver életciklus Hagyományos szemlélet: az átadásig tart a fejlesztés nagy része, ezután csak kisebb módosítások - karbantartási fázis (maintenance) Valóság sok esetben: az első üzembe helyezés egyre korábban történik és a funkciók jelentős része ezután kerül kifejlesztésre, jellemzőek a nagyobb átalakítások Változás alapú szemlélet:  Staged model – Vaclav Rajlich, Wayne State University

4 Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Staged model

5 Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Staged model - verziók

6 Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Incremental change A fejlesztés alapvető eleme egy meglévő rendszer módosítása Agilis módszerek, karbantartás, evolúciós, iteratív fejlesztés Initiation Concept Location Impact Analysis Prefactoring Actualization Change Propagation Postfactoring New Baseline TESTINGTESTING

7 Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Incremental change Módosítási igény (bug riport, funkció módosítás, új funkció) Concept location Impact analysis Refactoring + Tesztelés Új stabil állapot Initiation Concept Location Impact Analysis Prefactoring Actualization Change Propagation Postfactoring New Baseline TESTINGTESTING

8 Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Concept location Változtatás helyének beazonosítása Concept location  Ad-hoc Kézzel, véletlenszerűen azonosított kódrészek  „grep”-jellegű Gyakran a linuxos grep vagy hasonló program használatával hatékony keresés hajtható végre  Statikus módszerek A program statikus vizsgálata, pl. forráskód elemzésével  Dinamikus módszerek (futás közben vizsgálódunk)

9 Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Concept Location Eszközök JRipples    Függőségek keresése JQuery   FLAT3: Feature Location and Textual Tracing Tool  Suade  Stb, Google kulcsszavak:  Concept location, Program exploration, Software exploration Linux grep

10 Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Impact halmaz = kiindulási + becsült Hatásanalízis (impact analysis)

11 Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Hatásanalízis (impact analysis) Szoftver változtatás hatásának elemzése, tervkészítés a változtatások végrehajtására Folyamat  Cél, több lehetséges megoldás – legjobb kiválasztása  Concept location  módosítás helye  kiindulási impact halmaz (initial impact set, concept)  Hatásanalízis Változtatás erőforrásigénye Módosítandó programrészek, komponensek, dokumentációk - kiindulási impact halmaz bővítése  becsült impact halmaz Becsült impact halmaz (estimated impact set): kiindulási halmaz + kezdeti halmaz környezete, amire a kiindulási halmaz elemei hatással vannak Tesztelési költségek

12 Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Hatásanalízis (impact analysis) Concept location – egész program vizsgálata ≠ Hatásanalízis – a módosítandó komponensek környezetének vizsgálata A konkrét lokális módosítást követően a változtatások „továbbgörgetése” (change propagation) Rejtett függőségek – közvetett kapcsolat 2 programelem között (hidden dependency) Initiation Concept Location Impact Analysis Prefactoring Actualization Change Propagation Postfactoring New Baseline TESTINGTESTING

13 Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Hatásanalízis módszerek – függőségek felderítése Forráskód elemzése  Statikus  Dinamikus Verziókövető rendszer elemzése  X módosítás gyakran maga után vonta Y módosítását Hibakövető rendszer elemzése  X módosítás gyakran maga után vonta Y típusú hiba bejelentését Fórumok, levelezés (történeti adatbázisok) elemzése

14 Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Statikus hatásanalízis Forráskód elemzésén alapszik A program összes lehetséges futását vizsgálja Nagy mérető (gyakran a program egészét tartalmazó) hatáshalmazok – konzervatív Pl.: statikus programszeletelés Változtatási igény Forráskód vizsgálata Rendszer összes lehetséges viselkedése Hatáshalmaz Programelemek közötti függőségek vizsgálata

15 Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Dinamikus hatásanalízis Program futási információin alapszik (pl.: végrehajtási történet – végrehajtott eljárások) Program többször futtatható más inputokkal Az adott futásra pontosabb mint a statikus módszerek Pl.: dinamikus programszeletelés Változtatási igény Program futtatása Futásidejű információk gyűjtése Programelemek közötti futásidejű függőségek elemzése Hatáshalmaz

16 Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Programszeletelés (program slicing) Kritériumtól függő vagy kritériumra hatással lévő programrészek meghatározása, adat és vezérlés függőségek felderítése Kritérium  Statikus Programpont + változók részhalmaza  Dinamikus Input + utasítás konkrét előfordulása (szereplő változók) Hátrafelé irányuló (backward)  Kritérium függ Előrefelé irányuló (forward)  Kritérium hatással van Kiindulási impact halmaz elemeire programszeletek uniója


Letölteni ppt "Incremental change © 2013 Betyár Gábor Rendszerfejlesztés II. 3. Óra."

Hasonló előadás


Google Hirdetések