Fondamenti di Informatica T2 Modulo 2. Corso di Laurea in Ingegneria Informatica Anno accademico 2014/2015. Ancora Phone Plan

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Fondamenti di Informatica T2 Modulo 2. Corso di Laurea in Ingegneria Informatica Anno accademico 2014/2015. Ancora Phone Plan"

Transcript

1 Università degli Studi di Bologna Scuola di Ingegneria e Architettura Fondamenti di Informatica T2 Modulo 2 Corso di Laurea in Ingegneria Informatica Anno accademico 2014/2015 Ancora Phone Plan Quanto fatto sui piani telefonici è bellissimo ma c è qualche problema 1. Il concetto di operatore non è sufficiente La tariffa da applicare alle chiamate all estero è dipendente dalla zona verso cui si chiama, non tanto dall operatore In generale, come trattare le chiamate la cui tariffa non dipende dall operatore? 2. Si tiene conto solamente del costo dell intervallo (scatto) all inizio della chiamata Se la chiamata si estende su due fasce tariffarie? 3. Non è possibile specificare opzioni tariffarie in aggiunta al piano Acquisto traffico flat Holiday Card chiamate verso tutti per un mese a costi ridotti 2

2 Ancora Phone Plan La soluzione è introdurre: 1. il concetto di Tariffa (Rate) che prenderà il posto dell operatore Il costo delle chiamate non è più direttamente dipendente dall operatore di destinazione La tariffa può dipendere da altre variabili non solo dall operatore di destinazione! 2. un algoritmo di calcolo più preciso 3. Il concetto di opzione tariffaria che va ad affiancarsi ai concetti esistenti per consentire di calcolare il costo di una chiamata in modo più flessibile Ho comprato un opzione con la quale posso chiamare gratis dalle 2 alle 3 del mattino. Ti chiamo per farti un saluto? Anche no! 3 Problema 1 Operatore/Tariffa Tariffa (Rate): non può essere 1:1 con l operatore di destinazione «sa» se può essere applicata ad un certo numero di telefono Alla tariffa si può chiedere se sia applicabile ad un certo numero di telefono è un entità caratterizzata da un nome e permette di: chiedere se la tariffa è applicabile ad un certo numero telefonico ottenere il costo per intervallo in un dato istante di tempo chiedere se la tariffa è valida 4

3 Tariffa (Rate) Definiamo subito l interfaccia pubblica dell oggetto Rate È una classe astratta? Ha metodi definiti? È un interfaccia? È un astrazione pura? Usiamo le Rate tramite la loro interfaccia pubblica: Notare che non si è ancora parlato nel dettagli di Rate concrete Le astrazioni vanno progettate con cura Un loro cambiamento può avere effetti devastanti sul progetto Devono essere le parti più stabili in assoluto 5 Classe Astratta o Interfaccia? Classe Astratta È un astrazione (non istanziabile) È solo parzialmente implementata Consente un buon disaccoppiamento Dipendere da un astrazione (anche se solo parziale) è meglio che dipendere da un entità concreta (completamente implementata quindi più instabile) Possibilità di realizzazioni diverse (v. PhonePlanAdapter) all interno di una gerarchia di ereditarietà Interfaccia È un astrazione pura (non istanziabile) Nessuna implementazione, solo dichiarazione Consente un ottimo disaccoppiamento Dipendere da un interfaccia significa non dipendere da alcuna implementazione specifica Possibilità di realizzazioni diverse eventualmente perpendicolari a gerarchie d ereditarietà e non si «brucia» l ereditarietà ma si «brucia» l ereditarietà 6

4 Classe Astratta o Interfaccia? Meglio un interfaccia! Lascia più libertà nelle fasi successive Eventualmente si realizzerà un apposito Adapter per fornire una prima implementazione in modo che non si debba ricominciare sempre da capo class plans «interface» Rate + getcostperinterval(current :LocalDateTime) : double + isapplicableto(destinationnumber :String) : boolean 7 Tariffa: progettazione Per definire una tariffa dipendente dal numero di class rates destinazione e dalla fascia oraria «interface» plans::rate + getcostperinterval(current :LocalDateTime) : double + isapplicableto(destinationnumber :String) : boolean Rate basato su fasce orarie BandsRate Band + BandsRate(name :String, bands :Band[]) + getbands() : Band[] + getcostperinterval(datetime :LocalDateTime) : double + isapplicableto(number :String) : boolean + sortbandsbystarttime(bands :Band[]) : void + Band(startTime :LocalTime, endtime :LocalTime, days :DayOfWeek[], costperinterval :double) -bands + getcombineddays() : DayOfWeek[] + getcostperinterval() : double + getendtime() : LocalTime + getstarttime() : LocalTime + isinband(datetime :LocalDateTime) : boolean DestinationOperatorBandRate OperatorDecoder + DestinationOperatorBandRate(name :String, bands :Band[], operatorname :String) + isapplicableto(destinationnumber :String) : boolean «use» + getnamefromnumber(destinationnumber :String) : String Simile al vecchio Operator Determina a quale operatore appartiene un certo numero 8

5 Problema 2 Calcolo Preciso Ferma restando la validità dell algoritmo precedente (impreciso) si pone il problema di permettere la presenza di algoritmi alternativi di calcolo Però, nel vecchio progetto è stata realizzata la classe Plan con tutti i dettagli del caso E ORA!? 9 Problema 2 Calcolo Preciso Il progetto non era poi così buono (sigh!) Che fine fa Plan? Come si possono avere diversi tipi di piani telefonici intercambiabili? Refactoring 10

6 Soluzione Problema 2 Una gerarchia di piani telefonici! PRIMA decidere quale interfaccia debba esporre il piano generico POI decidere cosa sia possibile implementare subito e cosa differire POI capire come, in questo nuovo contesto, si collochino Plan e le sue alternative Pattern Strategy! 11 Strategy Il pattern Strategy permette di definire una famiglia di algoritmi, incapsularli e renderli intercambiabili INCAPSULARLI (1) = sapere dove sono concettualmente contenuti = sapere dove "mettere le mani" per migliorarli, correggerli, etc RENDERLI INTERCAMBIABILI = poterli variare in modo indipendente dal contesto Si ottiene così un meccanismo di configurazione flessibile possibilità di scegliere al momento dell'uso un comportamento specifico fra quelli disponibili Questo concetto marchiatevelo a fuoco dove preferite purché sia un posto ben visibile... La gerarchia di Filter di MyMedia non sarà mica stato uno Strategy!? 12

7 Strategy: gli ingredienti di base Tre ingredienti di base: una classe Strategia (una classe astratta o anche una interfaccia) che dichiara la signature di riferimento per gli algoritmi concreti un insieme di classi concrete (o di implementazione) di Strategia, ognuna delle quali implementa un particolare algoritmo utilizzando la signature definita da Strategia una classe Contesto che configura un insieme di oggetti Strategia e le usa per eseguire l algoritmo concreto Potrebbe anche essere una interfaccia con le relative classi di implementazione 13 Interface PhonePlan class plans «interface» PhonePlan + getcallcost(call :PhoneCall) : double Non sa nulla di algoritmi, tariffe, operatori: dietro l interfaccia può esserci qualsiasi cosa! È caratterizzato da un nome Consente di: ottenere il costo di una chiamata date le sue caratteristiche: il numero chiamato e la data/ora di inizio e fine verificare la validità del piano ottenere il suo nome 14

8 PhonePlanAdapter Tipicamente, un piano telefonico coinvolge tariffe, scatti alla risposta, intervalli, PhonePlanAdapter è una classe astratta che implementa alcuni metodi dell interfaccia e che propone una realizzazione standard di PhonePlan prevedendo un calcolo basato su: Tariffe differenziate a seconda del numero chiamato (Rate) Eventuale scatto alla risposta Intervallo di tempo base PhonePlanAdapter implementa già la verifica di validità ma lascia astratto il metodo di calcolo del costo della chiamata 15 PhonePlanAdapter class plans «interface» PhonePlan + getcallcost(call :PhoneCall) : double Una qualsiasi delle Rate possibili PhonePlanAdapter + getcallcost(call :PhoneCall) : double + getintervalinmillis() : int # getratebydestination(destinationnumber :String) : Rate + getstartcallcost() : double # PhonePlanAdapter(name :String, intervalinmillis :int, startcallcost :double, rates :Rate[]) -rates «interface» Rate + getcostperinterval(current :LocalDateTime) : double + isapplicableto(destinationnumber :String) : boolean 16

9 e tutti gli altri Ora basta realizzare l algoritmo di calcolo del costo in opportune sottoclassi di PhonePlanAdapter class plans «interface» PhonePlan + getcallcost(call :PhoneCall) : double Nuovo algoritmo «preciso»: viene valutato e sommato al totale il costo di ogni singolo intervallo PhonePlanAdapter + getcallcost(call :PhoneCall) : double + getintervalinmillis() : int # getratebydestination(destinationnumber :String) : Rate + getstartcallcost() : double # PhonePlanAdapter(name :String, intervalinmillis :int, startcallcost :double, rates :Rate[]) Stesso algoritmo del vecchio Plan PrecisePlan + getcallcost(phonecall :PhoneCall) : double + PrecisePlan(name :String, interval :int, startcallcost :double, rates :Rate[]) SimplePlan + getcallcost(phonecall :PhoneCall) : double + SimplePlan(name :String, intervalinmillis :int, startcallcost :int, rates :Rate[]) 17 Problema 2 Ora la struttura è ok, ma l algoritmo!? Per far funzionare bene le cose occorre, in ogni istante di tariffazione della chiamata, chiedere alla tariffa applicata quale sia il costo corrente tenendo conto del fatto che gli istanti in cui viene effettuato il calcolo sono comunque determinati dalla durata dell intervallo definita nel piano 18

10 Algoritmo preciso PrecisePlan.getCallCost Input: inizio/fine chiamata, numero destinazione 1. Selezionare la tariffa mediante il numero destinazione 2. Impostare la data ora dell istante corrente con data/ora di inizio chiamata 3. Se l istante corrente precede la data/ora di fine chiamata a. Ottenere dalla tariffa il costo per intervallo nell istante corrente e sommare il valore ottenuto al costo totale della chiamata b. Incrementare l istante corrente della durata dell intervallo in modo da ottenere un nuovo istante corrente c. Ripartire da Sommare al costo totale della chiamata il valore dello scatto alla risposta 19 Un opzione: Problema 3 Opzioni è un entità che, sotto determinate condizioni (applicabilità dell opzione) può sostituirsi al piano tariffario in modo trasparente cambiandone il comportamento apparente. può avere uno stato che cambia in base all utilizzo Ad esempio, opzioni con traffico a scalare su un plafond acquistato 20

11 Opzioni Le opzioni possono essere le più varie L importante è definire un interfaccia pubblica che possa essere comune a tutte le opzioni possibili Chi usa le opzioni non deve conoscere i dettagli implementativi di ogni singola opzione Idealmente, l Opzione dovrebbe essere invisibile! 21 Riassumendo: Opzioni e PhonePlan Un opzione deve intercettare le chiamate di calcolo del costo al piano telefonico (PhonePlan) di base Se l opzione è applicabile, allora prende il controllo e decide cosa fare altrimenti delega il calcolo al piano telefonico di base. Come da normali pratiche commerciali, è possibile «montare» più opzioni. 22

12 Opzioni e PhonePlan: Design L opzione può essere un PhonePlan «speciale» getcallcost(mycall) Option + getcallcost(phonecall) PhonePlan + getcallcost(phonecall) Da «fuori» si vede solo un normale PhonePlan L opzione incapsula un PhonePlan e può decidere se calcolare il costo della telefonata: in autonomia in collaborazione con il PhonePlan interno per delega totale al PhonePlan interno 23 Calcolo in autonomia: Esempi YouAndMe: se il numero di telefono è «quello giusto», allora il costo è nullo Calcolo in collaborazione: Spendi la metà: dimezza il costo restituito dal PhonePlan interno Calcolo in autonomia o delega: 400 minuti di traffico flat al mese: se i minuti «non sono finiti» allora il costo è nullo (0), altrimenti delega al PhonePlan interno Il traffico flat si consuma! l opzione cambia stato durante l uso! 24

13 Design dell Opzione È un piano telefonico: implementa l interfaccia PhonePlan Incapsula un piano telefonico: ha un riferimento ad un PhonePlan Incapsula un altra opzione ma è sempre essa stessa vista come un piano telefonico! Un opzione può incapsulare un altra opzione possibilità di creare una catena di opzioni che termina con un piano telefonico Opzione 1 Opzione 2 Phone Plan 25 Chain of Responsibility Si tratta di un altro pattern: altro problema noto, altra soluzione nota La richiesta di calcolo viene gestita dalla catena; ogni elemento può: Contribuire al calcolo Passare il controllo all elemento successivo per proseguire il calcolo Interrompere la catena e ritornare un risultato (all elemento precedente): non è detto che la richiesta arrivi sempre all ultimo elemento della catena. Chi sta fuori non vede la catena: fa una richiesta, ottiene una risposta Disaccoppiamento totale! Che spettacolo! 26

14 PhonePlanOption public abstract class PhonePlanOption implements PhonePlan { private String name; private PhonePlan next; protected PhonePlanOption(String name) { this.name = public String getname() { return public double getcallcost(phonecall call) { return public boolean isvalid() { return getnext()!= null && getnext().isvalid(); public PhonePlan getnext() { return this.next; public void setnext(phoneplan next) { this.next = next; Classe astratta! Non ha senso che sia concreta visto che serve solo come base per le opzioni. Nota: non ha metodi astratti. Comportamento di default 27 In public double getcallcost(phonecall call) { // eventuale pre-elaborazione dei parametri (call) // eventuale chiamata a next double result = getnext().getcallcost(call); // eventuale post-elaborazione del risultato return result; La pre-elaborazione è opzionale La chiamata a next è opzionale La post-elaborazione è opzionale è obbligatorio restituire qualcosa di sensato 28

15 Ordine delle Opzioni Poiché le opzioni sono concatenate, hanno un ordine predeterminato le prime sono quelle applicate per prime quindi possono essere considerate a priorità maggiore Ordinare diversamente le opzioni può dar luogo a risultati diversi In realtà si tratta di un problema puramente commerciale: basta creare la catena nel modo corretto 29 PhonePlanWithOptions Per comodità nella gestione «quotidiana» delle opzioni, la classe PhonePlanWithOptions (fornita nello Start Kit): Implementa PhonePlan Permette di aggiungere/eliminare opzioni Contiene un riferimento al PhonePlan effettivo Contiene un riferimento alla catena delle opzioni (che termina con il PhonePlan effettivo) 30

16 YouMeAndTheOther Opzioni Concrete Due numeri di telefono a costo costante per chiamata (configurabile) Nessuno scatto alla risposta FlatTime Mette a disposizione un certo numero di minuti prepagati (definibili all atto della costruzione) Intervallo di tariffazione a 1 minuto (pagamento anticipato) Nessuno scatto alla risposta Verificare il corretto funzionamento delle opzioni implementate (un test JUnit per ogni classe) prima di utilizzarle all interno di un piano 31 Opzioni class options plans::phoneplanoption + getcallcost(call :PhoneCall) : double + getnext() : PhonePlan # PhonePlanOption(name :String) + setnext(next :PhonePlan) : void FlatTime YouMeAndTheOther + FlatTime(flatPeriod :int) + getcallcost(call :PhoneCall) : double + getflatperiod() : int + getcallcost(call :PhoneCall) : double + getconstcost() : double + getdestnumber1() : String + getdestnumber2() : String + YouMeAndTheOther(destNumber1 :String, destnumber2 :String, constcost :double) 32

17 Diagramma UML Sono solo altre implementazioni della stessa interfaccia si aggiunge comportamento al sistema senza alterare quanto già esiste class plans PhonePlanOption + getcallcost(call :PhoneCall) : double + getnext() : PhonePlan # PhonePlanOption(name :String) + setnext(next :PhonePlan) : void -next -actualphoneplan «interface» PhonePlan + getcallcost(call :PhoneCall) : double «use» PhonePlanWithOptions + addoption(option :PhonePlanOption) : void + getcallcost(call :PhoneCall) : double + PhonePlanWithOptions(actualPhonePlan :PhonePlan) + removeoption(option :PhonePlanOption) : boolean + removeoptionbyname(optionname :String) : boolean 33 Note sul Testing Ricreare esattamente l ambiente di produzione può essere complicato o impossibile. Occorre trovare un modo per isolare i componenti dal loro ambiente reale. Ciò è possibile solo se dipendono da entità astratte! Prove sul «banco» Arrange: predisposizione dell ambiente di test Act: esecuzione delle azioni da testare Assert: verifica dello stato delle entità in gioco, verifica che le azioni sugli oggetti dipendenti siano state effettuate nel modo «giusto» 34

18 Note sul Testing Dopo aver realizzato PrecisePlan (sottoclasse di PhonePlanAdapter) come verificare che la classe si comporti «correttamente» con le tariffe (Rate) senza utilizzare tariffe vere? Posso definire nuove tariffe solo per il testing senza alterare il codice esistente? Sì, implementa una Rate FINTA! 35 Mock Objects Un mock object è un oggetto di test che simula in modo controllato il comportamento di un oggetto reale del sistema presenta la stessa interfaccia dell oggetto che simula risponde sempre in modo controllato e corretto agli input che riceve non ha algoritmi di calcolo al suo interno, ma fornisce una data risposta ad una data richiesta Vengono utilizzati per disaccoppiare i test di parti diverse del sistema: permettono di testare un determinato oggetto in modo isolato e senza risentire dell eventuale malfunzionamento di quegli oggetti che gli stanno intorno in ambiente di produzione. 36

19 MockRate public class MockRate implements Rate { public String getname() { return "MockRate"; public boolean isapplicableto(string destinationnumber) { return true; public double getcostperinterval(localdatetime current) { return 1; public boolean isvalid() { return true; 37 Il succo del discorso PrecisePlan è testato in modo indipendente delle opzioni concrete commerciali È stato inserito in un ambiente artificiale di cui la nuova MockRate fa parte È stato sollecitato per verificare le attese 38

20 Il succo del discorso L oggetto/componente argomento di test dovrebbe essere quanto più isolato possibile ed immerso in un ambiente artificiale noto Il funzionamento del componente non deve essere influenzato dagli oggetti collaboratori Se viene rilevato un problema, dov è il bug? 39 Il succo del discorso In termini di design, è necessario che una classe abbia quante meno dipendenze concrete possibile per massimizzare la riusabilità in generale l unità riusabile è composta dall oggetto più tutte le sue dipendenze concrete) per facilitare il testing l oggetto è completamente isolabile e può essere immerso in un ambiente completamente artificiale: gli oggetti concreti al contorno sono appositamente studiati solo per i test 40

21 Start Kit Rate e implementazioni varie oltre a tutto ciò che c era nella vecchia soluzione Rate, Band, BandsRate, DestinationOperatorBandsRate, OperatorDecoder, PhonePlanOption, PhonePlanWithOptions, MockRate, MockOption, MockPhonePlan GUARDATE COME SONO FATTI DENTRO!!! 41 Piani Telefonici (I) Prelevare la soluzione di Lab04 (PhonePlan) e realizzare: PhonePlan (interfaccia), PhonePlanAdapter, SimplePlan (refactoring vecchia soluzione) Adattare i test JUnit alla nuova situazione PrecisePlan (con algoritmo preciso per il calcolo del costo) Creare nuovi test Junit (usare MockRate!) 42

22 Piani Telefonici (II) Realizzare le opzioni FlatTime e YouMeAndTheOther Verificare il funzionamento delle opzioni realizzate mediante l ausilio di MockPhonePlan (nello Start Kit) che: Permette di impostare nome e costo (costante) per qualsiasi chiamata (il metodo getcallcost restituisce sempre lo stesso valore). Permette di sapere se e quante volte è stato invocato un certo metodo 43

Realizzazione di Phone Plan. Soluzione - SimpleTime. Realizzazione e testing! Soluzione - SimpleTime. Soluzione - SimpleTime

Realizzazione di Phone Plan. Soluzione - SimpleTime. Realizzazione e testing! Soluzione - SimpleTime. Soluzione - SimpleTime Università degli Studi di Bologna Facoltà di Ingegneria Fondamenti di Informatica T2 Modulo 2 Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009 Realizzazione di Phone Plan Fare riferimento

Dettagli

Progettazione : Design Pattern Creazionali

Progettazione : Design Pattern Creazionali Progettazione : Design Pattern Creazionali Alessandro Martinelli alessandro.martinelli@unipv.it 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali

Dettagli

Esercizi su. Funzioni

Esercizi su. Funzioni Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012 Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono

Dettagli

Esercizio 1: trading on-line

Esercizio 1: trading on-line Esercizio 1: trading on-line Si realizzi un programma Java che gestisca le operazioni base della gestione di un fondo per gli investimenti on-line Creazione del fondo (con indicazione della somma in inizialmente

Dettagli

Obiettivi dell esercitazione. Requisiti (cont.) Requisiti. Università di Roma La Sapienza A.A. 2008-2009. Facoltà di Ingegneria Sede di Latina

Obiettivi dell esercitazione. Requisiti (cont.) Requisiti. Università di Roma La Sapienza A.A. 2008-2009. Facoltà di Ingegneria Sede di Latina Università di Roma La Sapienza A.A. 2008-2009 Facoltà di Ingegneria Sede di Latina Laurea in Ingegneria Informatica ed Ingegneria dell Informazione Corso di PROGETTAZIONE DEL SOFTWARE Esercitazione sulla

Dettagli

Realizzazione di una classe con un associazione

Realizzazione di una classe con un associazione Realizzazione di una classe con un associazione Nel realizzare una classe che è coinvolta in un associazione, ci dobbiamo chiedere se la classe ha responsabilità sull associazione. Diciamo che una classe

Dettagli

La manutenzione come elemento di garanzia della sicurezza di macchine e impianti

La manutenzione come elemento di garanzia della sicurezza di macchine e impianti La manutenzione come elemento di garanzia della sicurezza di macchine e impianti Alessandro Mazzeranghi, Rossano Rossetti MECQ S.r.l. Quanto è importante la manutenzione negli ambienti di lavoro? E cosa

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI Un utilizzatore a valle di sostanze chimiche dovrebbe informare i propri fornitori riguardo al suo utilizzo delle sostanze (come tali o all

Dettagli

Traccia di soluzione dell esercizio del 25/1/2005

Traccia di soluzione dell esercizio del 25/1/2005 Traccia di soluzione dell esercizio del 25/1/2005 1 Casi d uso I casi d uso sono in Figura 1. Ci sono solo due attori: il Capo officina e il generico Meccanico. Figura 1: Diagramma dei casi d uso. 2 Modello

Dettagli

Programmazione a Oggetti Modulo B

Programmazione a Oggetti Modulo B Programmazione a Oggetti Modulo B Progetto Dott. Alessandro Roncato 4/10/2011 Progetto Da svolgere singolarmente Scadenza consegna: una settimana prima dello scritto; Valutazione in base a: Corretta compilazione

Dettagli

UML Diagrammi delle classi. UML Diagramma classi 1

UML Diagrammi delle classi. UML Diagramma classi 1 UML Diagrammi delle classi UML Diagramma classi 1 Diagramma delle classi Non è nei nostri obiettivi affrontare UML nel suo complesso Ci concentreremo sui diagrammi delle classi che ci forniscono un linguaggio

Dettagli

Soluzione dell esercizio del 12 Febbraio 2004

Soluzione dell esercizio del 12 Febbraio 2004 Soluzione dell esercizio del 12/2/2004 1 Soluzione dell esercizio del 12 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. 2. Modello concettuale

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere. UML e i Casi d USO I casi d uso specificano una sequenza di azioni che producono un risultato visibile agli attori del sistema. Essi nascono per fornire descrizioni delle capacità del sistema. I casi d

Dettagli

Modulo 4: Ereditarietà, interfacce e clonazione

Modulo 4: Ereditarietà, interfacce e clonazione Modulo 4: Ereditarietà, interfacce e clonazione Argomenti Trattati: Classi, Superclassi e Sottoclassi Ereditarietà Ereditarietà ed Attributi Privati Override super Ereditarietà e Costruttori Polimorfismo

Dettagli

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da Data una funzione reale f di variabile reale x, definita su un sottoinsieme proprio D f di R (con questo voglio dire che il dominio di f è un sottoinsieme di R che non coincide con tutto R), ci si chiede

Dettagli

Fasi del ciclo di vita del software (riassunto) Progetto: generalità. Progetto e realizzazione (riassunto)

Fasi del ciclo di vita del software (riassunto) Progetto: generalità. Progetto e realizzazione (riassunto) Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Sede di Latina Laurea in Ingegneria dell Informazione Fasi del ciclo di vita del software (riassunto) Corso di PROGETTAZIONE DEL SOFTWARE

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa E08 Soluzione Esercizi F. Gasparetti, C. Limongelli Marzo 2008 http://www.dia.uniroma3.it/~java/fondinf1/ Soluzione Esercizi

Dettagli

Cos è l ISC (Indicatore Sintetico del Conto Corrente) e cosa sono i Profili tipo d utilizzo

Cos è l ISC (Indicatore Sintetico del Conto Corrente) e cosa sono i Profili tipo d utilizzo Cos è l ISC (Indicatore Sintetico del Conto Corrente) e cosa sono i Profili tipo d utilizzo Come dice il nome, l ISC è un indicatore che riassume in un unica cifra il costo indicativo annuo di un conto

Dettagli

L ambizione dei design pattern (letteralmente schemi di programmazione) è quella di offrire soluzioni a problemi ricorrenti che facilitano lo

L ambizione dei design pattern (letteralmente schemi di programmazione) è quella di offrire soluzioni a problemi ricorrenti che facilitano lo Design Pattern L ambizione dei design pattern (letteralmente schemi di programmazione) è quella di offrire soluzioni a problemi ricorrenti che facilitano lo sviluppo dei programmi, il loro mantenimento,

Dettagli

Matematica in laboratorio

Matematica in laboratorio Unità 1 Attività guidate Attività 1 Foglio elettronico Divisibilità tra numeri naturali Costruisci un foglio di lavoro per determinare se a è divisibile per b, essendo a e b due numeri naturali, con a

Dettagli

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

Dettagli

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella. Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.net Prestazioni Si valutano in maniera diversa a seconda dell

Dettagli

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

Dettagli

Architettura MVC-2: i JavaBeans

Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta

Dettagli

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011 Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011 Testo Il database di un videonoleggio è costituito da due vettori paralleli.

Dettagli

CONTROLLO DI GESTIONE DELLO STUDIO

CONTROLLO DI GESTIONE DELLO STUDIO CONTROLLO DI GESTIONE DELLO STUDIO Con il controllo di gestione dello studio il commercialista può meglio controllare le attività svolte dai propri collaboratori dello studio nei confronti dei clienti

Dettagli

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Siti web centrati sui dati Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE 1/6 MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE Per prima cosa si ringrazia per aver scelto ImmobiPhone e per aver dato fiducia al suo autore. Il presente documento istruisce l'utilizzatore sull'uso del programma

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

Product Shipping Cost Guida d'installazione ed Utilizzo

Product Shipping Cost Guida d'installazione ed Utilizzo Guida d'installazione ed Utilizzo Installazione Per installare il modulo è sufficiente copiare la cartella app del pacchetto del modulo nella cartella principale dell'installazione di Magento dove è già

Dettagli

Object Oriented Programming

Object Oriented Programming OOP Object Oriented Programming Programmazione orientata agli oggetti La programmazione orientata agli oggetti (Object Oriented Programming) è un paradigma di programmazione Permette di raggruppare in

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti:

Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti: Javadoc Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti: /* commenti */ // commenti /** commenti documentazione */ Questi ultimi generano automaticamente

Dettagli

come nasce una ricerca

come nasce una ricerca PSICOLOGIA SOCIALE lez. 2 RICERCA SCIENTIFICA O SENSO COMUNE? Paola Magnano paola.magnano@unikore.it ricevimento: martedì ore 10-11 c/o Studio 16, piano -1 PSICOLOGIA SOCIALE COME SCIENZA EMPIRICA le sue

Dettagli

Concetto di Funzione e Procedura METODI in Java

Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile

Dettagli

Progetto PI.20050704, passo A.2 versione del 6 febbraio 2007

Progetto PI.20050704, passo A.2 versione del 6 febbraio 2007 Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Corso di Laurea in Ingegneria Gestionale Corso di Progettazione del Software Proff. Toni Mancini e Monica Scannapieco Progetto PI.20050704,

Dettagli

dall argomento argomento della malloc()

dall argomento argomento della malloc() Allocazione dinamica Quando? Tutte le volte in cui i dati possono crescere in modo non prevedibile staticamente a tempo di sviluppo Un array con dimensione i fissata a compile-time non è sufficiente È

Dettagli

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE SOMMARIO Coda (queue): Specifica: interfaccia. Implementazione: Strutture indicizzate (array): Array di dimensione variabile. Array circolari. Strutture collegate (nodi). Prestazioni. Strutture Software

Dettagli

Cap. 3. APERTURA NUOVO PROGETTO

Cap. 3. APERTURA NUOVO PROGETTO GUIDA ALL USO DI CSM.1 Cap. 3. APERTURA NUOVO PROGETTO 1 3.1 Inizio della procedura 3. PERCORSO: APERTURA NUOVO PROGETTO/CORSI Dopo essersi iscritti ed avere inserito i dati inerenti l Agenzia / Ente di

Dettagli

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0) PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0) (Da effettuare non prima del 01/01/2011) Le istruzioni si basano su un azienda che ha circa 1000 articoli, che utilizza l ultimo

Dettagli

Raggruppamenti Conti Movimenti

Raggruppamenti Conti Movimenti ESERCITAZIONE PIANO DEI CONTI Vogliamo creare un programma che ci permetta di gestire, in un DB, il Piano dei conti di un azienda. Nel corso della gestione d esercizio, si potranno registrare gli articoli

Dettagli

Supermarket Progetto di Programmazione Febbraio 2010

Supermarket Progetto di Programmazione Febbraio 2010 Supermarket Progetto di Programmazione Febbraio 2010 1 Supermercato Dovete realizzare un insieme di classi e interfacce che riguardano la gestione di un supermercato. nella Sezione 2 verranno descritte

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

Guida all uso di Java Diagrammi ER

Guida all uso di Java Diagrammi ER Guida all uso di Java Diagrammi ER Ver. 1.1 Alessandro Ballini 16/5/2004 Questa guida ha lo scopo di mostrare gli aspetti fondamentali dell utilizzo dell applicazione Java Diagrammi ER. Inizieremo con

Dettagli

Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi

Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi Università degli Studi di L Aquila Facoltà di Ingegneria Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi Prof. Gaetanino Paolone Dott. Ottavio Pascale a.a.2003-2004 Progetto Campo

Dettagli

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME) Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

LA MOLTIPLICAZIONE IN CLASSE SECONDA

LA MOLTIPLICAZIONE IN CLASSE SECONDA LA MOLTIPLICAZIONE IN CLASSE SECONDA Rossana Nencini, 2013 Le fasi del lavoro: 1. Proponiamo ai bambini una situazione reale di moltiplicazione: portiamo a scuola una scatola di biscotti (. ) e diamo la

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down

Dettagli

Informatica 3. LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1)

Informatica 3. LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1) Informatica 3 LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1) Modulo 1: Introduzione: oggetti e classi Modulo 2: Link e associazioni Modulo 3: Aggregazione Informatica 3 Lezione 7 -

Dettagli

Un modello è ragionevole quando contiene queste tre caratteristiche.

Un modello è ragionevole quando contiene queste tre caratteristiche. Testo Esercizio Si consideri un agenzia che opera come biglietteria ferroviaria, aerea e navale, accettando diversi modi di pagamento. Si identifichino le principali entità coinvolte illustrando le gerarchie

Dettagli

!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9

!#$%&&'()#*%+%+!#$',,'()#*%+ -)%*&'&'+'$.)+-$$%&&) !#$%&&'(%)'*+%,#-%#.'%&'#/0)-+#12+3,)4+56#7+#.')8'9 !"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&)!"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9 Slide 1 Paradigmi di Programmazione! Un linguaggio supporta uno stile di programmazione se

Dettagli

DESIGN PATTERNS Parte 6. State Proxy

DESIGN PATTERNS Parte 6. State Proxy DESIGN PATTERNS Parte 6 State Proxy STATE Il Design Pattern State nasce dall'esigenza di poter gestire gli stati di una classe senza dover usare dei costrutti come gli Enum e quindi delle switch. Prendiamo

Dettagli

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Funzioni di Esportazione Importazione 1 Indice AIRONE GESTIONE RIFIUTI... 1 FUNZIONI DI ESPORTAZIONE E IMPORTAZIONE... 1 INDICE...

Dettagli

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09 SISTEMI OPERATIVI Prof. Enrico Terrone A. S: 2008/09 Che cos è il sistema operativo Il sistema operativo (SO) è il software che gestisce e rende accessibili (sia ai programmatori e ai programmi, sia agli

Dettagli

13. Chain of Responsibility

13. Chain of Responsibility Chain of Responsibility 92 13. Chain of Responsibility (GoF pag. 223) 13.1. Descrizione Consente di separare il mittente di una richiesta dal destinario, in modo di consentire a più di un oggetto di gestire

Dettagli

Fondamenti di Informatica C Esercitazioni di Laboratorio / 3 http://polaris.ing.unimo.it/fic/laboratorio.html. Outline

Fondamenti di Informatica C Esercitazioni di Laboratorio / 3 http://polaris.ing.unimo.it/fic/laboratorio.html. Outline Fondamenti di Informatica C Esercitazioni di Laboratorio / 3 http://polaris.ing.unimo.it/fic/laboratorio.html Ing. Francesco De Mola demola.francesco@unimore.it DII, Modena Via Vignolese (lab. Dottorandi

Dettagli

Esercitazioni di Progettazione del Software. Esercitazione (Prova al calcolatore del 17 settembre 2010)

Esercitazioni di Progettazione del Software. Esercitazione (Prova al calcolatore del 17 settembre 2010) Sapienza - Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Corso di Laurea in Ingegneria Informatica ed Automatica, Ingegneria dei Sistemi Informatici Esercitazioni

Dettagli

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria ESAME DI STATO DI ABILITAZIONE ALL'ESERCIZIO DELLA PROFESSIONE DI INGEGNERE PRIMA PROVA SCRITTA DEL 22 giugno 2011 SETTORE DELL INFORMAZIONE Tema n. 1 Il candidato sviluppi un analisi critica e discuta

Dettagli

da 2 a 5 giocatori, dai 10 anni in su, durata 30 minuti

da 2 a 5 giocatori, dai 10 anni in su, durata 30 minuti da 2 a 5 giocatori, dai 10 anni in su, durata 30 minuti OBIETTIVO Il vincitore è colui che, dopo due round di gioco, delle sue 11 ordinazioni, ne ha consegnate il maggior numero. CONTENUTO DELLA SCATOLA

Dettagli

Creare una nuova spedizione personalizzata.

Creare una nuova spedizione personalizzata. Gestione spedizioni La piattaforma ecommerce compry.it offre una gestione estremamente potente dei costi di spedizione da applicare al cliente che effettua acquisti. Il sistema, oltre al classico calcolo

Dettagli

Programmazione a Oggetti Lezione 10. Ereditarieta

Programmazione a Oggetti Lezione 10. Ereditarieta Programmazione a Oggetti Lezione 10 Ereditarieta Sommario Come definire sottoclassi Costruttori Abstract Classes Final Ereditarietà: promemoria Strumento tipico dell OOP per riusare il codice e creare

Dettagli

Appunti sul galleggiamento

Appunti sul galleggiamento Appunti sul galleggiamento Prof.sa Enrica Giordano Corso di Didattica della fisica 1B a.a. 2006/7 Ad uso esclusivo degli studenti frequentanti, non diffondere senza l autorizzazione della professoressa

Dettagli

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

SPORTELLO UNICO DELLE ATTIVITÀ PRODUTTIVE MANUALE OPERATIVO FUNZIONI DI PAGAMENTO ONLINE. Versione 05

SPORTELLO UNICO DELLE ATTIVITÀ PRODUTTIVE MANUALE OPERATIVO FUNZIONI DI PAGAMENTO ONLINE. Versione 05 SPORTELLO UNICO DELLE ATTIVITÀ PRODUTTIVE MANUALE OPERATIVO FUNZIONI DI PAGAMENTO ONLINE Versione 05 Novembre 2015 1 Sommario Generalità... 3 Pagare con ICONTO... 7 Pagare con carta di credito... 10 Pagare

Dettagli

Gestione della memoria centrale

Gestione della memoria centrale Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti

Dettagli

Scheda operativa Versione rif. 13.01.3c00. Libro Inventari

Scheda operativa Versione rif. 13.01.3c00. Libro Inventari 1 Inventario... 2 Prepara tabelle Inventario... 2 Gestione Inventario... 3 Tabella esistente... 3 Nuova tabella... 4 Stampa Inventario... 8 Procedure collegate... 11 Anagrafiche Archivi ditta Progressivi

Dettagli

SCENARIO. Personas. 2010 ALICE Lucchin / BENITO Condemi de Felice. All rights reserved.

SCENARIO. Personas. 2010 ALICE Lucchin / BENITO Condemi de Felice. All rights reserved. SCENARIO Personas SCENARIO È una delle tecniche che aiuta il designer a far emergere le esigente dell utente e il contesto d uso. Gli scenari hanno un ambientazione, attori (personas) con degli obiettivi,

Dettagli

danilo.vaselli@opendotcom.it

danilo.vaselli@opendotcom.it Organizzazione dello studio e controllo di gestione -Introduzione - Gestione delle attività di Studio, Parcellazione e controllo della redditività del lavoro: criticità ed obiettivi di miglioramento. -

Dettagli

Matrice Excel Calcolo rata con DURATA DEL FINANZIAMENTO determinata dall'utente

Matrice Excel Calcolo rata con DURATA DEL FINANZIAMENTO determinata dall'utente Matrice Excel Calcolo rata con DURATA DEL FINANZIAMENTO determinata dall'utente L'acquisto di un immobile comporta un impegno finanziario notevole e non sempre è possibile disporre della somma di denaro

Dettagli

Matrice Excel Calcolo rata con TASSO DI INTERESSE determinato dall'utente

Matrice Excel Calcolo rata con TASSO DI INTERESSE determinato dall'utente Matrice Excel Calcolo rata con TASSO DI INTERESSE determinato dall'utente L'acquisto di un immobile comporta un impegno finanziario notevole e non sempre è possibile disporre della somma di denaro sufficiente

Dettagli

1. Definizione di budget e collocazione nel processo di programmazione e controllo

1. Definizione di budget e collocazione nel processo di programmazione e controllo 21 Capitolo II Il budget 1. Definizione di budget e collocazione nel processo di programmazione e controllo Il budget - e' un programma delle operazioni di gestione da compiere in un anno, finalizzato

Dettagli

PLIDA PARLARE. Livello. Progetto Lingua Italiana Dante Alighieri Certificazione di competenza in lingua italiana. giugno 2011

PLIDA PARLARE. Livello. Progetto Lingua Italiana Dante Alighieri Certificazione di competenza in lingua italiana. giugno 2011 PLIDA Progetto Lingua Italiana Dante Alighieri Certificazione di competenza in lingua italiana giugno 2011 PARLARE Livello MATERIALE PER L INTERVISTATORE PLIDA Progetto Lingua Italiana Dante Alighieri

Dettagli

Matrice Excel Calcolo rata con IMPORTO DEL FINANZIAMENTO determinato dall'utente

Matrice Excel Calcolo rata con IMPORTO DEL FINANZIAMENTO determinato dall'utente Matrice Excel Calcolo rata con IMPORTO DEL FINANZIAMENTO determinato dall'utente L'acquisto di un immobile comporta un impegno finanziario notevole e non sempre è possibile disporre della somma di denaro

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

Dettagli

UML Unified Modeling Language

UML Unified Modeling Language UML Unified Modeling Language Lezione 4-1 - UML Il diagramma delle classi Parte Seconda - 2 - Relazioni tra Classi&Oggetti I diagrammi delle classi mettono in evidenza i blocchi costitutivi del sistema

Dettagli

Editing e gestione delle views per il modulo Landing Page Espositore

Editing e gestione delle views per il modulo Landing Page Espositore Editing e gestione delle views per il modulo Landing Page Espositore Revisione 1.0 29 Marzo 2011 Editing e gestione delle views per il modulo Landing Page Espositori Per modificare il comportamento dei

Dettagli

ECCO COME FUNZIONA. Ti mostriamo ora come acquistare un volantino.

ECCO COME FUNZIONA. Ti mostriamo ora come acquistare un volantino. ECCO COME FUNZIONA Riteniamo importante che l esecuzione di un ordine online debba avvenire nel modo più rapido possibile. Al giorno d oggi si ha infatti molto altro da fare che rimanere seduti davanti

Dettagli

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Premessa Con l analisi di sensitività il perito valutatore elabora un range di valori invece di un dato

Dettagli

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1 PROGRAMMA GESTIONE TURNI MANUALE UTENTE INDICE 1 PREMESSA 3 2 COMANDI COMUNI 3 3 SEDI 3 4 FESTIVITÀ 4 5 PERIODI TURNI 4 6 COD. TURNI 6 7 TURNI SPORTIVI 9 8 COD. EQUIPAGGI 9 9 DISPONIBILITÀ 10 10 INDISPONIBILITÀ

Dettagli

IL CONTATORE ELETTRONICO:

IL CONTATORE ELETTRONICO: IL CONTATORE ELETTRONICO: COME UTILIZZARLO E I VANTAGGI 1 PREMESSA Il contatore elettronico è un sistema destinato a cambiare in termini di semplicità, trasparenza e rapidità il rapporto tra SIE srl e

Dettagli

Ingegneria del Software T

Ingegneria del Software T Home Finance 1 Requisiti del cliente 1 Si richiede di realizzare un sistema per la gestione della contabilità familiare. Il sistema consente la classificazione dei movimenti di denaro e la loro memorizzazione.

Dettagli

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti 13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

Introduzione ai tipi di dato astratti: applicazione alle liste

Introduzione ai tipi di dato astratti: applicazione alle liste Universitàdegli Studi di L Aquila Facoltàdi Scienze M.F.N. Corso di Laurea in Informatica Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2005/2006 Introduzione ai tipi di dato astratti: applicazione

Dettagli

I requisiti per la pensione di vecchiaia 41 REQUISITI PER LA PENSIONE DI VECCHIAIA NEL SISTEMA CONTRIBUTIVO EX L. 335/1995

I requisiti per la pensione di vecchiaia 41 REQUISITI PER LA PENSIONE DI VECCHIAIA NEL SISTEMA CONTRIBUTIVO EX L. 335/1995 Sistema di liquidazione Contributivo I requisiti per la pensione di vecchiaia 41 2. I REQUISITI PER LA PENSIONE DI VECCHIAIA CONTRIBU- TIVA DAL 1 GENNAIO 2008: IL REQUISITO ANAGRAFICO GENERALE (CD. SCALONE)

Dettagli

Gestione Risorse Umane Web

Gestione Risorse Umane Web La gestione delle risorse umane Gestione Risorse Umane Web Generazione attestati di partecipazione ai corsi di formazione (Versione V03) Premessa... 2 Configurazione del sistema... 3 Estrattore dati...

Dettagli

Interesse, sconto, ratei e risconti

Interesse, sconto, ratei e risconti 129 Interesse, sconto, ratei e risconti Capitolo 129 129.1 Interesse semplice....................................................... 129 129.1.1 Esercizio per il calcolo dell interesse semplice........................

Dettagli

Ai fini economici i costi di un impresa sono distinti principalmente in due gruppi: costi fissi e costi variabili. Vale ovviamente la relazione:

Ai fini economici i costi di un impresa sono distinti principalmente in due gruppi: costi fissi e costi variabili. Vale ovviamente la relazione: 1 Lastoriadiun impresa Il Signor Isacco, che ormai conosciamo per il suo consumo di caviale, decide di intraprendere l attività di produttore di caviale! (Vuole essere sicuro della qualità del caviale

Dettagli

DOCUMENTO DI SPECIFICA DEI REQUISITI SOFTWARE

DOCUMENTO DI SPECIFICA DEI REQUISITI SOFTWARE DOCUMENTO DI SPECIFICA DEI REQUISITI SOFTWARE Tabella dei contenuti 1. Introduzione 1.1 Propositi 1.2 Obiettivi 1.3 Definizioni, acronimi ed abbreviazioni 1.4 Riferimenti 1.5 Panoramica 2. Descrizione

Dettagli

Uso di base delle funzioni in Microsoft Excel

Uso di base delle funzioni in Microsoft Excel Uso di base delle funzioni in Microsoft Excel Le funzioni Una funzione è un operatore che applicato a uno o più argomenti (valori, siano essi numeri con virgola, numeri interi, stringhe di caratteri) restituisce

Dettagli

Introduzione al corso

Introduzione al corso Introduzione al corso Sistemi Informativi L-B Home Page del corso: http://www-db.deis.unibo.it/courses/sil-b/ Versione elettronica: introduzione.pdf Sistemi Informativi L-B Docente Prof. Paolo Ciaccia

Dettagli

Università per Stranieri di Siena Livello A1

Università per Stranieri di Siena Livello A1 Unità 20 Come scegliere il gestore telefonico CHIAVI In questa unità imparerai: a capire testi che danno informazioni sulla scelta del gestore telefonico parole relative alla scelta del gestore telefonico

Dettagli

IL MANAGER COACH: MODA O REQUISITO DI EFFICACIA. Nelle organizzazioni la gestione e lo sviluppo dei collaboratori hanno una importanza fondamentale.

IL MANAGER COACH: MODA O REQUISITO DI EFFICACIA. Nelle organizzazioni la gestione e lo sviluppo dei collaboratori hanno una importanza fondamentale. IL MANAGER COACH: MODA O REQUISITO DI EFFICACIA Nelle organizzazioni la gestione e lo sviluppo dei collaboratori hanno una importanza fondamentale. Gestione e sviluppo richiedono oggi comportamenti diversi

Dettagli

Università per Stranieri di Siena Livello A1

Università per Stranieri di Siena Livello A1 Unità 15 Telefono cellulare e scheda prepagata CHIAVI In questa unità imparerai: a comprendere testi che danno informazioni su come ricaricare il telefono cellulare con la scheda prepagata parole relative

Dettagli