Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaZsófia Lukácsné Megváltozta több, mint 9 éve
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 http://jripples.sourceforge.net/jripples/manual/concepts/icconceptlocation.html http://jripples.sourceforge.net/jripples/manual/concepts/icconceptlocation.html http://jripples.sourceforge.net/ http://jripples.sourceforge.net/ Függőségek keresése JQuery http://jquery.cs.ubc.ca/index.htm http://jquery.cs.ubc.ca/index.htm http://jquery.cs.ubc.ca/documentation/examples.html#e3 http://jquery.cs.ubc.ca/documentation/examples.html#e3 FLAT3: Feature Location and Textual Tracing Tool http://www.cs.wm.edu/semeru/flat3/ http://www.cs.wm.edu/semeru/flat3/ Suade http://www.cs.mcgill.ca/~swevo/suade/ http://www.cs.mcgill.ca/~swevo/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 http://en.wikipedia.org/wiki/Program_slicing
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.