|
Appunti informatica |
|
Visite: 1141 | Gradito: | [ Picolo appunti ] |
Leggi anche appunti:Funzione espoFUNZIONE ESPO Scopo: la funzione calcola ex, nel caso in cui x è negativo Il più semplice - computerIl più semplice La CPU si occupa di eseguire tutte le operazioni e i calcoli necessari Ringiovanire il softwareRingiovanire il software . Ridocumentazione: Consiste in una analisi statica |
Ringiovanire il software
. Ridocumentazione: Consiste in una analisi statica del codice sorgente (attraverso appositi strumenti) al fine di produrre la documentazione del sistema. Al fine di capire cosa fa il codice e come lo fa.
. Restructuring: Attività che trasforma il codice esistente in codice equivalente dal punto di vista funzionale, ma migliorato dal punto di vista della sua qualità.
Refactoring(object-oriented Restructuring): è un insieme di tecniche usabili per migliorare il codice ed il design di sistemi object-oriented. Il processo di cambiamento di un sistema software in modo tale da non alterare il comportamento esterno del codice, migliorando la sua struttura interna. Tali tecniche cercano di eliminare i cosiddetti Bad Smells dal codice.
. Reverse Engineering: Analisi del codice ed estrazione di informazioni relative alla sua struttura e funzionalità. È un'attività che consente di ottenere specifiche e informazioni sul design di un sistema a partire dal suo codice, attraverso processi di estrazione ed astrazione di informazioni.
. Reengineering: La reingegnerizzazione è un'attività di re-implementazione di un sistema software svolta per migliorare la manutenibilità di un software esistente.
Obiettivi del Reengineering: modulare il sistema, migliorare le performance, migrare verso altre piattaforme, introdurre una nuova tecnologia nel sistema.
Essa può comprendere: Reverse Engineering, Restructuring(o Refactoring, ex source code translation), Data reengineering (ex: upgrading data models).
Reverse Engineering
Fasi di Estrazione ed Astrazione:
. Estrazione(information extraction): Analisi del codice o di altri artefatti software, allo scopo di ottenere informazioni relative al sistema analizzato.
. Astrazione(view abstraction): Si esaminano le informazioni estratte e si cercano di astrarre diagrammi, o viste, ad un più alto livello di astrazione (es.: diagrammi di progetto, architetturali, del dominio dei dati).
Canfora e Di Penta hanno recentemente proposto un modello concettuale che sistematizza tutti i concetti chiave di un processo di reverse engineering. In cui si individuano:
. Core model: obbiettivi del reverse engineering(per cambiarlo, per capirlo) e altri concetti base.
. Artifacts: oggetti coinvolti del processo di reverse engineering. Esempi: specifiche, modello di analisi, modello di progetto, documentazione, codice sorgente, file di configurazione, dati del sistema, file eseguibili, tracie di esecuzione.
. Analyzers: strumenti/attività che analizzano gli artefatti del software per popolare la base di conoscenza(knowledge base). Tipologie:
- Static analysis: Analisi statica del codice sorgente o di altri artefatti. Risulta rapida ed economica. Inefficiente per catturare modelli comportamentali/dinamici. Intrinseca difficoltà crescenti con sistemi altamente dinamici.
- Dynamic analysis: Analisi del sistema in esecuzione basandosi si casi di test o scenari reali. Utile per ottenere modelli dinamici del sistema. La qualità dei modelli costruiti dipende dai dati utilizzati per l'esecuzione.
- Historical analysis: ha differenza dell'analisi dinamica e statica, si protone di ottenere informazioni su perché, come, quando un artefatto è cambiato.
. Views: rappresentazioni di alto livello costruite tramite interrogazioni alla base dati. Tipologie: Architectural View, Code View, Metric View, Historical View.
Appunti su: |
|