Program Slicing: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
→top: +O |
m Bot: numeri di pagina nei template citazione |
||
(3 versioni intermedie di 3 utenti non mostrate) | |||
Riga 2:
Nella [[Programmazione (informatica)|programmazione informatica]], '''il program slicing''' è il calcolo dell'insieme di istruzioni del programma, chiamato '''program slice''', che può influenzare i valori in un punto di interesse, denominato '''criterio di slicing''' . Lo slicing del programma può essere utilizzato nel [[Debugging|debug]] per individuare più facilmente la fonte degli errori. Altre applicazioni dello slicing includono [[Manutenzione (sviluppo software)|la manutenzione del software]], [[Ottimizzazione (informatica)|l'ottimizzazione]], l'analisi dei programmi e il controllo del flusso di informazioni .
Le tecniche di slicing hanno visto un rapido sviluppo sin dalla definizione originale di [[Mark Weiser]] . Inizialmente lo slicing era solo statico, cioè applicato al codice sorgente senza altre informazioni oltre al codice sorgente. [[Bogdan Korel]] e [[Janusz Laski]] hanno introdotto ''lo slicing dinamico'', che funziona su una specifica esecuzione del programma (per una data traccia di esecuzione).
== Slicing statico ==
Riga 14:
* slice (sum = sum + i + w, sum)
* slice (sum = sum + i +w, i)
* slice (sum = sum +i +w, w)
* {int sum=0}
Riga 43:
== Approccio allo slicing statico rapido in avanti ==
Un approccio di slicing molto veloce e scalabile, ma leggermente meno accurato, è estremamente utile per una serie di motivi. Gli sviluppatori disporranno di costi molto bassi e di mezzi pratici per stimare l'impatto di un cambiamento in pochi minuti invece che in giorni. Questo è molto importante per pianificare l'implementazione di nuove funzionalità e comprendere come un cambiamento è correlato ad altre parti del sistema. Fornirà inoltre un test poco costoso per determinare se è giustificata un'analisi completa e più costosa del sistema. Un approccio di slicing rapido aprirà nuove strade di ricerca nelle metriche e nell’estrazione di storie basate sullo slicing. Cioè, ora lo slicing può essere condotto su sistemi molto grandi e su intere cronologie di versioni in tempi molto pratici. Ciò apre la porta a una serie di esperimenti e indagini empiriche che in precedenza erano troppo costosi da intraprendere.
== Slicing dinamico ==
Riga 51:
== Note ==
* [[Manutenzione (sviluppo software)|Manutenzione del software]]▼
* [[Dipendenza dai dati]]▼
{{References}}
==
* [[Mark Weiser]]. "Program slicing". Proceedings of the 5th International Conference on Software Engineering, pages 439–449, [[IEEE Computer Society]] Press, March 1981.
* [[Mark
* [[Susan B. Horwitz|Susan Horwitz]], [[Thomas W. Reps|Thomas
* Frank
* David Binkley
* Andrea
* Mark Harman
* David Binkley
* Jens Krinke. "Program Slicing", In Handbook of Software Engineering and Knowledge Engineering, Volume 3: Recent Advances. [[World Scientific Publishing]], 2005
* Silva,
*
==Voci correlate==
▲* [[Mark Weiser|Marco Weiser]] . "Speciatura del programma". IEEE Transactions on Software Engineering, Volume 10, Numero 4, pagine 352 – 357, [[IEEE Computer Society]] Press, luglio 1984.
▲* [[Dipendenza dai dati]]
▲* Susan Horwitz, Thomas Reps e David Binkley, Affettamento interprocedurale mediante grafici di dipendenza, ACM Transactions on Programming Languages and Systems, volume 12, numero 1, pagine 26-60, gennaio 1990.
▲* Frank Suggerimento. "Un'indagine sulle tecniche di slicing dei programmi". Journal of Programming Languages, Volume 3, Numero 3, pagine 121–189, settembre 1995.
▲* David Binkley e Keith Brian Gallagher. "Speciatura del programma". Avanzamenti nei computer, volume 43, pagine 1–50, [[Academic Press]], 1996.
▲* Andrea di Lucia. "Program slicing: Methods and application", Workshop internazionale sull'analisi e la manipolazione del codice sorgente, pagine 142-149, 2001, [[IEEE Computer Society]] Press.
▲* Mark Harman e Robert Hierons. "Una panoramica del program slicing", Software Focus, volume 2, numero 3, pagine 85–92, gennaio 2001.
▲* David Binkley e Mark Harman. "Un'indagine sui risultati empirici sul program slicing", Advances in Computers, volume 62, pagine 105-178, [[Academic Press]], 2004.
▲* Silva, Giuseppe. "Un vocabolario di tecniche basate sul program slicing", ACM Computing Surveys, volume 44, numero 3, [[Association for Computing Machinery]], giugno 2012
▲* [http://www.users.miamioh.edu/alomarhw/ Alomari HW] et al. "srcSlice: affettamento statico in avanti molto efficiente e scalabile". [https://onlinelibrary.wiley.com/journal/20477481 Wiley Journal of Software: Evoluzione e processo] ( '''JSEP''' ), DOI: 10.1002/smr.1651, vol. 26, n. 11, pp. 931-961, 2014.
== Link esterni ==▼
* [http://pp.info.uni-karlsruhe.de/project.php?id=30 VALSOFT/Progetto Joana]
* [http://indus.projects.cis.ksu.edu/index.shtml Progetto Indus] (parte di Bandera Checker)
* [http://www.cs.wisc.edu/wpis/html/ Progetto di slicing del programma del Wisconsin]
[[Categoria:Debugging]]
|