Marco Montanari




GENERAZIONE AUTOMATICA DI CODICE
   ORIENTATO AGLI OGGETTI TRAMITE
                   PIANIFICAZIONE
Vogliamo permettere ad un utente non esperto di

    programmazione di realizzare una applicazione che
    rispecchi le s...
GENERAZIONE AUTOMATICA DI CODICE
   ORIENTATO AGLI OGGETTI TRAMITE
                   PIANIFICAZIONE
Creare uno strumento di sviluppo che si occupi

    direttamente di generare il codice, lasciando all’utente
    solo l’o...
GENERAZIONE AUTOMATICA DI CODICE
   ORIENTATO AGLI OGGETTI TRAMITE
                   PIANIFICAZIONE
Generazione di codice:

    ◦ Per shell
    ◦ Per semplici applicazioni procedurali
    Analisi dei framework

    ◦ Sol...
Cambia l’approccio

    ◦ Partendo dalle stesse premesse(generazione automatica di
      codice
    ◦ L’aggiunta di un li...
GENERAZIONE AUTOMATICA DI CODICE
   ORIENTATO AGLI OGGETTI TRAMITE
                   PIANIFICAZIONE
Relazioni




GENERAZIONE AUTOMATICA DI CODICE
   ORIENTATO AGLI OGGETTI TRAMITE
                   PIANIFICAZIONE
Relazioni




GENERAZIONE AUTOMATICA DI CODICE
   ORIENTATO AGLI OGGETTI TRAMITE
                   PIANIFICAZIONE
Relazioni




GENERAZIONE AUTOMATICA DI CODICE
   ORIENTATO AGLI OGGETTI TRAMITE
                   PIANIFICAZIONE
Relazioni




GENERAZIONE AUTOMATICA DI CODICE
   ORIENTATO AGLI OGGETTI TRAMITE
                   PIANIFICAZIONE
Come è fatta un’applicazione?

    ◦ Boundary: interfacce disponibili verso l’esterno
    ◦ Control: parte operativa dell...
Come è fatta un’applicazione?

    ◦ Boundary: interfacce disponibili verso l’esterno
    ◦ Control: parte operativa dell...
Come è fatta un’applicazione?

    ◦ Boundary: interfacce disponibili verso l’esterno
    ◦ Control: parte operativa dell...
Come è fatta un’applicazione?

    ◦ Boundary: interfacce disponibili verso l’esterno
    ◦ Control: parte operativa dell...
Rappresentare cosa deve essere possibile fare con le

    entità descritte nel dominio
    UML offre un diagramma molto s...
Fornisce
  
      ◦   Attore (entità attiva)
      ◦   Caso (operazione o insieme di operazioni)
      ◦   Relazioni tra ...
A partire dal modello UML semplificato, è possibile

    definire un linguaggio (OOGLang):
       Domain: webpages

     ...
La rappresentazione semplificata nella struttura ma

    aumentata di semantica nelle operazioni permette di
    trasform...
Dalla definizione del dominio abbiamo ottenuto

    l’Entity
    Dall’introspezione e dalla creazione delle interfacce

...
IUtente

                                                       Link   Sylesheet


Utente
                                ...
GENERAZIONE AUTOMATICA DI CODICE
   ORIENTATO AGLI OGGETTI TRAMITE
                   PIANIFICAZIONE
La Pianificazione è essenzialmente un problema di

    ricerca. (Hendler, Tate, & Drummod, 1990)

    In A.I. è un proble...
Diventa quindi fondamentale il problema della

    conoscenza.
    Diversi sistemi di pianificazione hanno rappresentato ...
Le operazioni dipendono dall’ambiente nel quale si va

    ad operare.
    Dipendono quindi dal framework di sviluppo ad ...
E’ esperienza di ogni sviluppatore che utilizzi linguaggi

    ad oggetti, che la conoscenza di questo modello di
    pro...
UML (di nuovo) offre un diagramma specifico per la

    modellazione di oggetti:
    ◦ Diagramma delle classi

    Questo...
Utilizzando il meta-modello UML è possibile descrivere

    il modello ad oggetti tramite un insieme di relazioni
    str...
class sample_class


                «interface»
                  IUtente
    +   ViewLinks(webpage) : List<Link>




   ...
Con la diffusione della programmazione ad oggetti, la

    frequente esposizione a problemi simili ha portato alla
    ge...
I pattern creazionali cambiano il ciclo di vita degli

    oggetti
    ◦ Il costruttore non si trova (a volte) nel tipo d...
Un modo per rappresentare relazioni fra entità è RDF



                                                  Oggetto
       ...
Un modo per rappresentare relazioni fra entità è RDF



                                                     Oggetto
    ...
Oggetto
                                                                                           Oggetto
               ...
Il modello UML permette di esprimere relazioni fra tipi

    di dato
    ◦ Diventa possibile rappresentare tutto il frame...
IsAbstract
                                                                                  Prototype
class UC


        ...
Possiamo quindi aggiungere le operazioni di creazione

    degli elementi partecipanti a pattern creazionali
    class UC...
Quindi, riassumendo

                obj ect Comunication analy...



                                                   ...
Un paio di numeri:



    ◦ 800.000 operazioni

    ◦ 1.250.000 relazioni

    ◦ 1.500 pattern creazionali




          ...
Ora con le operazioni disponibili è possibile pianificare

    ◦ Pianificazione ad ordinamento Parziale
       Permette ...
public class WebsiteManager
 {
   List<Link> GetLinks(Website website) {
      return new List<Link>(website.Links);
   }
...
public class WebsiteManager
                             public class WebsiteManager WebsiteManager
                      ...
Applicazione di matematica



    Dobbiamo convertire una stringa in numero:

    ◦ Numero legato alla vita di una perso...
Applicazione di matematica



    Dobbiamo convertire una stringa in numero:

    ◦ Numero legato alla vita di una perso...
Applicazione di matematica



    Dobbiamo convertire una stringa in numero:

    ◦ Numero legato alla vita di una perso...
Applicazione di matematica



    Dobbiamo convertire una stringa in numero:

    ◦ Numero legato alla vita di una perso...
Poter sapere quale operazione ha senso è quindi un

    problema centrale
    ◦ Sapere quale strada percorrere generalmen...
Il problema:

    ◦ L’accesso ai sistemi di versioning è lungo e molto oneroso
    ◦ L’analisi del codice implica valutaz...
Una volta effettuata la pianificazione è possibile

    perendere direttamente il risultato e tramite parser
    trasform...
E’ possibile analizzare un framework complesso senza

    conoscere il codice sorgente
    La mancanza di Euristiche fa a...
Java   Euristiche                         Nuovi
                                        metodi di
                        ...
Upcoming SlideShare
Loading in …5
×

Generazione Automatica Di Codice Orientato Agli Oggetti Tramite

1,377 views

Published on

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,377
On SlideShare
0
From Embeds
0
Number of Embeds
39
Actions
Shares
0
Downloads
0
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Generazione Automatica Di Codice Orientato Agli Oggetti Tramite

  1. 1. Marco Montanari GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  2. 2. Vogliamo permettere ad un utente non esperto di  programmazione di realizzare una applicazione che rispecchi le sue necessità. GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  3. 3. GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  4. 4. Creare uno strumento di sviluppo che si occupi  direttamente di generare il codice, lasciando all’utente solo l’onere di spiegare quali sono i suoi requisiti. GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  5. 5. GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  6. 6. Generazione di codice:  ◦ Per shell ◦ Per semplici applicazioni procedurali Analisi dei framework  ◦ Solo analisi di API ◦ Analisi di codice sorgente ◦ Analisi di errori nel codice GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  7. 7. Cambia l’approccio  ◦ Partendo dalle stesse premesse(generazione automatica di codice ◦ L’aggiunta di un linguaggio per descrivere i requisiti ◦ L’aggiunta di una analisi approfondita della programmazione ad oggetti GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  8. 8. GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  9. 9. Relazioni GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  10. 10. Relazioni GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  11. 11. Relazioni GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  12. 12. Relazioni GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  13. 13. Come è fatta un’applicazione?  ◦ Boundary: interfacce disponibili verso l’esterno ◦ Control: parte operativa dell’applicazione ◦ Entity: parte strutturale dell’applicazione GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  14. 14. Come è fatta un’applicazione?  ◦ Boundary: interfacce disponibili verso l’esterno ◦ Control: parte operativa dell’applicazione ◦ Entity: parte strutturale dell’applicazione GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  15. 15. Come è fatta un’applicazione?  ◦ Boundary: interfacce disponibili verso l’esterno ◦ Control: parte operativa dell’applicazione ◦ Entity: parte strutturale dell’applicazione GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  16. 16. Come è fatta un’applicazione?  ◦ Boundary: interfacce disponibili verso l’esterno ◦ Control: parte operativa dell’applicazione ◦ Entity: parte strutturale dell’applicazione GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  17. 17. Rappresentare cosa deve essere possibile fare con le  entità descritte nel dominio UML offre un diagramma molto semplice e poco  sfruttato: ◦ Casi d’Uso GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  18. 18. Fornisce  ◦ Attore (entità attiva) ◦ Caso (operazione o insieme di operazioni) ◦ Relazioni tra casi (inclusione, estensione) ◦ Scenari (rappresentazioni pratiche e verbali di casi) Vogliamo una applicazione uc sample Che elenchi i link in una pagina web v iew Links on Webpage Utente GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  19. 19. A partire dal modello UML semplificato, è possibile  definire un linguaggio (OOGLang): Domain: webpages Actor Utente : view links on Webpage End actor uc sample v iew Links on Webpage Utente GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  20. 20. La rappresentazione semplificata nella struttura ma  aumentata di semantica nelle operazioni permette di trasformare come semplice passaggio logico il caso d’uso in interfaccia class sample_class Domain: webpages «interface» Actor Utente IUtente : view links on page + ViewLinks(webpage) : List<Link> End actor GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  21. 21. Dalla definizione del dominio abbiamo ottenuto  l’Entity Dall’introspezione e dalla creazione delle interfacce  dichiarate nel linguaggio appena definito abbiamo la struttura di base del boundary e alcune relazioni logiche tra elementi del contol. GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  22. 22. IUtente Link Sylesheet Utente webpage GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  23. 23. GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  24. 24. La Pianificazione è essenzialmente un problema di  ricerca. (Hendler, Tate, & Drummod, 1990) In A.I. è un problema di ricerca in un numero illimitato  di stati ◦ Diventano fondamentali le operazioni GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  25. 25. Diventa quindi fondamentale il problema della  conoscenza. Diversi sistemi di pianificazione hanno rappresentato in  modo diverso le stesse informazioni: GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  26. 26. Le operazioni dipendono dall’ambiente nel quale si va  ad operare. Dipendono quindi dal framework di sviluppo ad oggetti  scelto per creare l’applicazione. Diventa quindi fondamentale poter andare ad  analizzare il framework per conoscere le operazioni possibili GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  27. 27. E’ esperienza di ogni sviluppatore che utilizzi linguaggi  ad oggetti, che la conoscenza di questo modello di programmazione si basi sostanzialmente su tre tipi di conoscenza: ◦ Il modello ad oggetti come concetto teorico ◦ Il framework come insieme di librerie di operazioni ◦ Il framework come insieme di tipi di dato e trasformazioni GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  28. 28. UML (di nuovo) offre un diagramma specifico per la  modellazione di oggetti: ◦ Diagramma delle classi Questo diagramma, come tutti gli altri definiti nel  modello UML, è descritto tramite un meta-modello GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  29. 29. Utilizzando il meta-modello UML è possibile descrivere  il modello ad oggetti tramite un insieme di relazioni strutturali. ◦ Generalizzazione e realizzazione ◦ Aggregazione e composizione ◦ Uso ◦ Riferimento Inoltre ogni entità contiene ulteriori elementi quali  ◦ Operazioni ◦ Campi GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  30. 30. class sample_class «interface» IUtente + ViewLinks(webpage) : List<Link> GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  31. 31. Con la diffusione della programmazione ad oggetti, la  frequente esposizione a problemi simili ha portato alla generazione di famiglie di soluzioni modulari I pattern sono suddivisi in 3 famiglie  ◦ Strutturali ◦ Creazionali ◦ Comportamentali GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  32. 32. I pattern creazionali cambiano il ciclo di vita degli  oggetti ◦ Il costruttore non si trova (a volte) nel tipo di dato ma in altre strutture dati Come riconoscere i pattern per creare operazioni  specializzate nella creazione degli oggetti? GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  33. 33. Un modo per rappresentare relazioni fra entità è RDF  Oggetto Relazione Soggetto GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  34. 34. Un modo per rappresentare relazioni fra entità è RDF  Oggetto Relazione Soggetto Oggetto Oggetto Oggetto Oggetto GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  35. 35. Oggetto Oggetto Relazione Soggetto Oggetto Oggetto Relazione Soggetto Oggetto Un modo per rappresentare relazioni fra entità è RDF  o Oggetto Relazione Soggetto Oggetto Oggetto Oggetto Oggetto Relazione to Oggetto Oggetto Relazione Oggetto Oggetto Oggetto Oggetto GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE Oggetto PIANIFICAZIONE
  36. 36. Il modello UML permette di esprimere relazioni fra tipi  di dato ◦ Diventa possibile rappresentare tutto il framework come enorme grafo di relazioni ontologiche GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  37. 37. IsAbstract Prototype class UC Client Prototype -prototype + Operation() + Clone() p= prototype->Clone() Clone HasParent ConcretePrototype1 ConcretePrototype2 + Clone() + Clone() return copy of return copy of self self ConcretePrototype1 ConcretePrototype2 GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  38. 38. Possiamo quindi aggiungere le operazioni di creazione  degli elementi partecipanti a pattern creazionali class UC Singleton - singletonData - uniqueInstance + GetSingletonData() + Instance() return uniqueInstance + SingletonOperation() GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  39. 39. Quindi, riassumendo  obj ect Comunication analy... UmlStore RDFStore Framework Analysis PatternSearch OperationStore Planner GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  40. 40. Un paio di numeri:  ◦ 800.000 operazioni ◦ 1.250.000 relazioni ◦ 1.500 pattern creazionali GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  41. 41. Ora con le operazioni disponibili è possibile pianificare  ◦ Pianificazione ad ordinamento Parziale  Permette di evitare Anomalia di Sussman  Elimina la linearizzazione dall’ordinamento parziale ◦ Pianificazione Parallela  Distribuisce il carico di lavoro  Implica una distribuzione dello stato Tempi: 1.5 - 2.5 giorni di calcoli  GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  42. 42. public class WebsiteManager { List<Link> GetLinks(Website website) { return new List<Link>(website.Links); } } GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  43. 43. public class WebsiteManager public class WebsiteManager WebsiteManager public class { public class public class WebsiteManager WebsiteManager { { List<Link> GetLinks(Website website) { { { public class WebsiteManager public class WebsiteManager List<Link> GetLinks(Website website) { List<Link> GetLinks(Website website) { return new GetLinks(Website website) { List<Link> List<Link>(website.Links); List<Link> GetLinks(Website website) { { { public class WebsiteManager return new List<Link>(website.Links); return new List<Link>(website.Links); public class WebsiteManager } GetLinks(Website website)GetLinks(Website website) { List<Link> } return new List<Link>(website.Links); return new List<Link>(website.Links); List<Link> { { } public }class WebsiteManager { } } List<Link> GetLinks(Website website) { }return new List<Link>(website.StyleSheets); return new List<Link>(website.Links); } { } List<Link> GetLinks(Website website) { } return newclass WebsiteManager } } List<Link>(website.Links); public List<Link> new List<Link>(website.Links); class WebsiteManager return GetLinks(Website website)public }{ } } public class WebsiteManager { } return new List<Link>(website.Links); { } List<Link> {GetLinks(Website website) {WebsiteManager } } public class WebsiteManager List<Link> GetLinks(Website website) { public class List<Link> GetLinks(Website website) { return new List<Link>(website.Links); } {{ return new List<Link>(website.Links); return new List<Link>(website.Links); } List<Link> GetLinks(Website website) {{ } List<Link> GetLinks(Website website) } } } return new List<Link>(); return new List<Link>(website.Links); } }} }} GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  44. 44. Applicazione di matematica  Dobbiamo convertire una stringa in numero:  ◦ Numero legato alla vita di una persona? (quindi gestibile tramite convertitore per client di posta?) ◦ Numero legato a database? ◦ Numero legato a matematica? (Quindi da convertire con cura) GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  45. 45. Applicazione di matematica  Dobbiamo convertire una stringa in numero:  ◦ Numero legato alla vita di una persona? (quindi gestibile tramite convertitore per client di posta?) ◦ Numero legato a database? ◦ Numero legato a matematica? (Quindi da convertire con cura) GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  46. 46. Applicazione di matematica  Dobbiamo convertire una stringa in numero:  ◦ Numero legato alla vita di una persona? (quindi gestibile tramite convertitore per client di posta?) ◦ Numero legato a database? ◦ Numero legato a matematica? (Quindi da convertire con cura) GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  47. 47. Applicazione di matematica  Dobbiamo convertire una stringa in numero:  ◦ Numero legato alla vita di una persona? (quindi gestibile tramite convertitore per client di posta?) ◦ Numero legato a database? ◦ Numero legato a matematica? (Quindi da convertire con cura e Con la libreria adatta) GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  48. 48. Poter sapere quale operazione ha senso è quindi un  problema centrale ◦ Sapere quale strada percorrere generalmente aiuta Google Code Search, Koders  ◦ Forniscono ricerca di codice in progetti open-source ◦ Manca una API Google Code, SourceForge  ◦ Forniscono supporto ai progetti (quindi classificazione) ◦ Forniscono spazio per versioning GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  49. 49. Il problema:  ◦ L’accesso ai sistemi di versioning è lungo e molto oneroso ◦ L’analisi del codice implica valutazioni complesse anche da un punto di vista concettuale: diversi team hanno diversi stili di codifica ◦ E’ necessario un periodo di “allineamento” ontologico tra i diversi sistemi di gestione dei vari progetti. Vantaggi  ◦ L’accesso a sistemi di versioning permette di considerare anche i bug e quindi valutare sia in positivo che in negativo le operazioni all’interno del framework GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  50. 50. Una volta effettuata la pianificazione è possibile  perendere direttamente il risultato e tramite parser trasformarlo in codice del linguaggio desiderato o in un eseguibile. GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  51. 51. E’ possibile analizzare un framework complesso senza  conoscere il codice sorgente La mancanza di Euristiche fa aumentare in modo  spropositato i tempi di esecuzione della pianificazione con un numero molto alto di operazioni GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE
  52. 52. Java Euristiche Nuovi metodi di analisi del codice GENERAZIONE AUTOMATICA DI CODICE ORIENTATO AGLI OGGETTI TRAMITE PIANIFICAZIONE

×