Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Help Problema Programmazione

    Salve a tutti,
    avrei un problema per la realizzazione di un programma in java. Piu che altro nel capire la struttura del programma stesso.
    Posto qui sotto il testo:



    Realizzare un programma Java che implementi una semplice macchina a stati per
    rappresentare la storia della navigazione di una applicazione web.
    Il programma deve essere organizzato in due parti: parte statica e parte dinamica.
    1. PARTE STATICA
    La parte statica descrive il funzionamento della macchina a stati, in termini di quali sono i
    possibili stati, i possibili eventi, e le regole di cambio di stato. In particolare, la macchina a
    stati deve avere le seguenti caratteristiche:
    - Descrivere tutte le pagine (PAGE) dell’applicazione: ogni pagina corrisponde a una
    pagina del sito web, contenente una serie di elementi di pagina (es., campi, link,
    bottoni).
    - descrivere tutti i possibili stati del sistema (STATE): ogni stato corrisponde a una
    specifica situazione in cui si trova la sessione di navigazione dell’utente. Ogni pagina
    può avere più stati associati. Ogni stato è descritto da: URL della pagina, valori attesi in
    input (ad esempio, campi delle form nella pagina);
    - supportare diversi tipi di eventi (EVENT): click dell’utente su un link o bottone,
    immissione dati in un field, passaggio del focus ad un altro field, tasto destro
    dell’utente, ecc. Gli eventi vengono usati all’interno delle regole (vedere sotto);
    - supportare le regole di cambio di stato o transizione (TRANSITION): le regole
    definiscono come la macchina si sposta da uno stato all’altro. Una regola, sempre
    associata ad un certo stato, è definita da: stato corrente, oggetto della pagina, evento,
    stato prossimo, azioni. Ad esempio, data la regola: “Stato1”, “Link2”, “Click”, “Stato2”,
    “AzioniXYZ”, il significato è: Se l’applicazione è in Stato1 e l’utente effettua un Click su
    Link2, l’applicazione passa a Stato2, svolgendo le azioni AzioniXYZ (vedere sotto).
    - registrazione azioni (ACTION): nel passaggio da uno stato all’altro, il sistema può
    svolgere una serie di azioni (ad esempio, “inviare una email”, “salvare dati nel
    database”, ecc.). Di ogni azione è nota l’operazione diretta (execute) e l’operazione
    inversa (cancel). Esse si configurano come metodi astratti e polimorfici definiti su un
    parametro generico Object, da implementare opportunamente per ciascuna azione
    concreta.
    Specificare un modello a oggetti che descriva queste caratteristiche, utilizzando le regole di
    buona programmazione OO. Prevedere getter e setter per i vari attributi, garantendo anche la
    gestione eccezioni.
    2. PARTE DINAMICA
    La parte dinamica svolge il ruolo di “registratore” dell’avanzamento del sistema, attraverso un
    meccanismo di logging dell’evoluzione, che tiene traccia delle azioni dell’utente e degli stati in
    cui viene a trovarsi il sistema. Per svolgere i passaggi di stato, la parte dinamica sfrutta le
    informazioni della parte statica. E’ necessario supportare:
    - diverse sessioni di navigazione (SESSION): una sessione consiste in una sequenza
    di transizioni scatenate da uno specifico utente. Di ogni transizione si registra anche
    l’istante di scatenamento. Ogni sessione è completamente indipendente dalle altre.
    Quando un nuovo utente arriva sul sito, si crea una nuova sessione, che viene posta in
    uno stato iniziale (corrispondente all’apertura dell’home page). Di ogni sessione deve
    essere sempre noto lo stato corrente;
    - avanzamento di stato (DO): si passa da uno stato all’altro in seguito a un evento
    dell’utente. A fronte di un evento, essendo noto lo stato corrente, si va a verificare nei
    dati della parte statica se la coppia (StatoCorrente, Evento) esiste. Se esiste, si passa
    allo stato successivo previsto. Se non esiste, si rimane nello stato corrente;


    Ringrazio anticipamente per qualsiasi aiuto..
    Ciao

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304

    Moderazione

    Consiglio una rilettura del regolamento di quest'area:

    1) Il titolo della discussione non è conforme
    2) Postare il testo dell'esercizio aiuta a capire il contesto, ma va sempre specificato quale parte dell'esercizio risulta incompresa
    3) E' sempre buona norma postare il codice sviluppato e indicare gli eventuali errori/malfunzionamenti sul codice


    Così com'è posto il quesito, quindi, è di impossibile interpretazione.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.