Unit Testing. Giovanni Lagorio

Размер: px
Начинать показ со страницы:

Download "Unit Testing. Giovanni Lagorio [email protected]"

Транскрипт

1 Unit Testing Giovanni Lagorio

2 Licenza Questi lucidi sono rilasciati sotto la licenza Creative Commons Attribuzione-Non commerciale-non opere derivate 3.0 Unported. Per leggere una copia della licenza visita il sito web o spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. In due parole, possono essere liberamente usati, copiati e distribuiti purché: 1. Venga citata la fonte originale 2. Non vengano usati in ambito commerciale 3. Non vengano modificati in nessun modo

3 Definizione Uno unit test è un frammento di codice (tipicamente, un metodo) che invoca un altro frammento di codice e poi verifica se delle condizioni sono soddisfatte Se non lo sono, lo unit-test fallisce Una unità (unit) è un metodo o una funzione, spesso chiamata System Under Test (SUT) E molto importante che la unit sia piccola: quando un test fallisce è immediato sapere dov è il problema

4 Caratteristiche necessarie Automatico e ripetibile Deve bastare un click per testare tutto il sistema Si usano dei framework e test-runner Indipendente Non deve richiedere particolari configurazioni Veloce (non è un integration-test!) Da implementare Da eseguire Usabile da chiunque È documentazione in forma di codice

5 Test Driven Development Classicamente, prima si scrive il codice e poi lo si testa Nel TDD prima si scrivono gli unit-test, che ovviamente falliranno, poi si scriverà il codice per farli passare I test vengono poi usati per il regression testing e facilitano (=danno fiducia per) il refactoring Sistemato il codice (corretto e pulito), si ricomincia scrivendo nuovi test...

6 Refactoring E la modifica di un frammento di codice che non ne modifica la funzionalità Serve a ottenere codice più pulito, facile da leggere, modificare e debuggare Un esempio classico di refactoring è rinominare un metodo Gli IDE supportano sempre di più il refactoring Per VS, ReSharper potenzia questo e altri aspetti

7 Testing Framework Ne esistono tanti Useremo NUnit, Fa parte della famiglia xunit (JUnit per Java, CppUnit per C++ e così via) Free Ben documentato Supportato da ReSharper

8 Convenzioni Per ogni progetto Prj che vogliamo testare, creiamo una class library Prj.Tests Per ogni classe C (da testare), creiamo una classe corrispondente CTests in <Prj>.Tests Per ogni metodo m scriveremo tanti metodi: <m><scenario><comporamento atteso> Per esempio, Parse_ValidArgs_Returns10, Parse_NullArgs_ThrowsException,...

9 Poiché usiamo NUnit... Al progetto di test dobbiamo aggiungere il riferimento a nunit.framework (Add Reference.NET...) oltre, ovviamente, al progetto da testare Alle classi (di Test) l attributo [TestFixture] del namespace NUnit.Framework Ai metodi l attributo [Test]

10 ReShaper riconosce gli Unit Test Le icone colorate sul bordo indicano gli unit-test, che possono essere eseguiti da VS Per il momento non preoccupiamoci del corpo dei metodi...

11 Test Runner di ReSharper

12 Test runner di NUnit Se non vogliamo/possiamo usare ReSharper Procedimento analogo, lanciamo (il test runner di) NUnit, scegliamo la DLL e lanciamo i test...

13 Requisiti per usare un test runner Poiché il test runner deve poter invocare i test in modo totalmente automatico: Le classi e i metodi di test devono essere public Le classi di test devono avere un costruttore senza parametri ed essere annotate [TestFixture] I metodi di test devono essere void, senza parametri e annotati [Test] (vedremo in seguito che non è vero al 100%)

14 Struttura di un (metodo di) unit test 1. Creare e inizializzare gli oggetti coinvolti 2. Invocare il metodo da testare 3. Asserire che qualcosa sia come ci si aspetta Per esempio: [Test] public void Parse_ValidArgString42_Returns42AsInt() { } var returnvalue = new Parser().Parse("42"); Assert.That(returnValue, Is.EqualTo(42));

15 Stili di Assert Classico: Assert.AreEqual(returnValue, 42); invocando Is.../Are... di Assert A vincoli (da NUnit 2.4) discorsivo : Assert.That(returnValue, Is.EqualTo(42)); invocando sempre That e passare come secondo parametro un vincolo, tipicamente ottenuto invocando un metodo statico di Is

16 Classe Assert Tutti i metodi di assert hanno un parametro opzionale (in realtà, una versione in overload: i parametri opzionali arriveranno con C# 4) per specificare un messaggio di errore Per esempio, Assert.That(returnValue, Is.EqualTo(43), "wrong answer!"); Assert.AreEqual(returnValue, 43, "wrong answer!");

17 Quante chiamate ad Assert? Una per test: la prima che fallisce (solleva un eccezione e) impedisce l esecuzione delle altre Il seguente non è un test ma sono (dovrebbero essere) tre: [Test] public void Parse_ValidArgString_ReturnsInts() { Assert.That(_parser.Parse("42"), Is.EqualTo(42)); Assert.That(_parser.Parse("1"), Is.EqualTo(1)); Assert.That(_parser.Parse("0"), Is.EqualTo(0)); } Nota: non mischiare mai l esecuzione del test e le asserzioni, qui l ho fatto solo per farlo stare nella slide

18 Test parametrici Permettono di generare diversi test usando un solo metodo, per esempio: [TestCase("42", 42)] [TestCase("0", 0)] [TestCase("1", 1)] public void Parse_ValidArg(string a, int r) { Assert.That(_parser.Parse(a), Is.EqualTo(r)); } I test vengono generati a load-time da NUnit Purtroppo, non (ancora?) supportati da ReSharper

19 Test parametrici L attributo [TestCase] identifica un metodo come test e gli fornisce i valori dei parametri E anche possibile specificare i valori sui singoli parametri (attributi [Random], [Range] e [Values]) e combinarli in vari modi (attributi [Combinatorial], che è il default, e [Sequential]. E` in alfa [Pairwise]) [Test] public void MyTest([Values(1,2,3)] int x, [Random(-1.0, 1.0, 5)] double d) { // eseguito 15 volte, per ogni x (1,2,3) // cinque valori casuali fra -1 e 1 }

20 Ovvio workaround per ReSharper private void Parse_ValidArg(string s, int expectedvalue) { int retvalue = this._parser.parse(s); Assert.That(retValue, Is.EqualTo(expectedValue)); } [Test] public void Parse_ValidArg42AsString_Returns42AsInt() { this.parse_validarg("42", 42); } [Test] public void Parse_ValidArg0AsString_Returns0AsInt() { this.parse_validarg("0", 0); } [Test] public void Parse_ValidArg1AsString_Returns1AsInt() { this.parse_validarg("1", 1); }

21 Se ci aspettiamo un eccezione? Annotiamo il metodo con [ExpectedException] Per esempio, [Test] [ExpectedException(typeof(ArgumentNullException))] public void Parse_NullArg_ThrowsArgumentNullException() { new Parser().Parse(null); } Attenzione: il match è esatto (se viene sollevata una sottoclasse di quella specificata, il test fallisce)

22 Workaround per quando ci aspettiamo un eccezione o una sua sottoclasse: [Test] public void Parse_NullArg_ThrowsArgumentNullException() { try { new Parser().Parse(null); Assert.Fail("Expecting ArgumentNullException"); } catch (ArgumentNullException) {} }

23 SetUp e TearDown Poiché ogni test deve essere indipendente e l ordine di esecuzione non deve influenzarne l esito, ogni test deve allocare e rilasciare risorse Le parti comuni (a tutti i test) possono essere inserite in metodi di SetUp/TearDown I metodi annotati con [SetUp] vengono eseguiti prima di ogni test I metodi annotati con [TearDown] vengono eseguiti dopo ogni test Per esempio...

24 Esempio SetUp/TearDown private Parser _parser; [SetUp] public void Init() { _parser = new Parser(); } [TearDown] public void CleanUp() { _parser = null; } [Test] public void Parse_ValidArgString42_Returns42AsInt() { var returnvalue = _parser.parse("42"); Assert.That(returnValue, Is.EqualTo(42)); } //...

25 Altro su SetUp/TearDown In caso di ereditarietà (della classe di Test): Gli attributi di Setup/TearDown vengono ereditati I metodi SetUp/TearDown della classe base vengono invocati prima di quelli della derivata (che, chiaramente, non devono invocare quelli base) [SetUpTestFixture] e [TearDownTestFixture] permettono di annotare metodi che vengono eseguiti prima dell esecuzione del primo test (risp. dopo l esecuzione dell ultimo)

26 Annotazione [Ignore] L annotazione [Ignore] indica una class o dei test da ignorare. Per esempio, [Ignore("Incomplete test")][test] public void Foo() {}

27 Categorie E possibile associare delle categorie ai test, tramite l annotazione [Category] In questo modo diventa possibile eseguire solo i test di alcune categorie

28 Come testare le classi internal? Poiché le classi di test sono in un assembly diverso da quello delle classi testate, dobbiamo ricorrere a un attributo in AssemblyInfo.cs: [assembly:internalsvisibleto("tap_unittesting.tests")]

29 Unit Testing nel mondo reale... Assert Unit Test SUT

30 Stub e Mock Assert Stub Unit Test SUT Mock Ok

31 Stub e Mock Stub e Mock sono oggetti che, durante il testing, sostituiscono gli oggetti veri (le dipendenze del SUT) facendo il minimo indispensabile I mock registrano le interazioni per una successiva verifica (quante volte è stato chiamato il metodo m?) Usiamo: gli stub per testare lo stato finale (per esempio, la proprietà counter è maggiore di zero? ) i mock per testare le interazioni fra oggetti (per esempio, il metodo chiama Close sul parametro di tipo IConnection? )

32 Stub vs Mock Concetti simili (e spesso confusi) poiché mock stub che registra le interazioni La differenza fondamentale è che uno stub non può far fallire un test, un mock sì Assert su valore di ritorno o stato SUT Stub Assert su aspettative del Mock object Mock Unit Test SUT Stub Unit Test SUT Stub Stub Stub

33 Cosa usare? Stub o Mock? Spesso usati assieme Un mock, tanti stub (se servono tanti mock il test sta probabilmente facendo troppo) Preferire gli stub, ovvero la verifica state-based (invece di interaction-based), quando possibile in questo modo i test dipendono molto meno dall implementazione

34 Mock framework Scrivere a mano stub e mock è facile, ma noioso e una grossa perdita di tempo I mock framework sono librerie che permettono di creare mock/stub (dinamici) con pochissime linee di codice Ne esistono diversi, il più famoso per.net è probabilmente RhinoMocks Noi useremo Moq:

35 Come testare Bulk Sender? Lo state-based testing è piuttosto difficile: come verificare che una mail è davvero stata spedita? E, come già detto, ma siamo sicuri di volerle spedire durante il testing?!?

36 Rivediamo il codice public class Bulk Sender { private readonly I Sender _ sender; private readonly string _footer; public Bulk Sender(I Sender sender, string footer) { this._ sender = sender; this._footer = footer; } } public void Send (List<string> addresses, string body) { if (addresses == null) throw new ArgumentNullException("addresses"); if (body == null) throw new ArgumentNullException("body"); foreach (var a in addresses) { if (!this._ sender.send (a, body + this._footer)) throw new Exception("Cannot send "); } }

37 Testiamo Bulk Sender... [TestFixture] public class Bulk SenderTests { [Test] [ExpectedException(typeof(Exception))] public void Send _When SenderFails_ThrowsException() { var mock = new Mock<I Sender>(); var bulk = new Bulk Sender(mock.Object, string.empty); var addresses = new List<string> { "[email protected]" }; bulk.send (addresses, string.empty); } } [Test] public void Send _PassingThreeAddresses_SendsSuccessfully() { var mock = new Mock<I Sender>(); var bulk = new Bulk Sender(mock.Object, string.empty); mock.setup(es => es.send (it.isany<string>(), It.IsAny<string>())).Returns(true); var addresses = new List<string> { "[email protected]", "[email protected]", "[email protected]" }; bulk.send (addresses, string.empty); mock.verify(es => es.send (it.isany<string>(), It.IsAny<string>()), Times.Exactly(3)); mock.verify(es => es.send ("[email protected]", It.IsAny<string>()), Times.Once()); // vale il discorso fatto per Assert: le due Verify dovrebbero stare // in due test separati }

38 Attenzione! var mock = new Mock<I Sender>(); Quello che Moq chiama Mock è un mockbuilder, il vero stub/mock (che si passa alla classe da testare) è contenuto nella proprietà Object del Mock var bulk = new Bulk Sender(mock.Object,...

39 Setup e Verify Setup indica al mock cosa rispondere Altrimenti risponde false per bool, 0 per int, ecc A meno che venga costruito con MockBehavior.Strict Verify verifica che le invocazioni/accessi a proprietà/ecc siano avvenute Entrambe usano le per descrivere lo scenario; nei parametri di tipo T: Un valore di tipo T rappresenta se stesso It.IsAny<T>() rappresenta qualsiasi valore It.Is<T>(predicato) rappresenta i valori che rispettano il predicato; esempio: It.Is<string>(s => s.length > 3) Inoltre: It.IsInRange e It.IsRegex

40 Returns e Throws Returns specifica il valore di ritorno, per esempio: mock.setup(...).returns(true); Throws specifica l eccezione da sollevare, per esempio: mock.setup(...).throws<exception>(); mock.setup(...).throws(new Exception("bla bla"));

41 Verifica di proprietà Non ha molto senso, ma consideriamo come esempio: public interface I Sender { bool Send (string to, string body); string Subject { get; set; } } Se vogliamo verificare che la proprietà Subject venga letta o scritta possiamo usare

42 Verificare che una proprietà venga......letta mock.verifyget(es=>es.subject);...scritta mock.verifyset(es=>es.subject);...scritta con un certo valore mock.verifyset(es=>es.subject = "test");...scritta con un valore che rispetta un predicato mock.verifyset(es=>es.subject = It.Is<string>(s=>s.Length>0));

43 Settare il valore letto mock.setup(foo => foo.name).returns("bar"); // auto-mocking hierarchies (a.k.a. recursive mocks) mock.setup(foo =>foo.bar.baz.name).returns("baz"); // verify the setter mock.verifyset(foo => foo.name = "foo");

44 Implementare più interfacce Se il mock deve implementare più interfacce, basta usare il metodo As: var mock = new Mock<I Sender>(); // mock.setup... (per il tipo I Sender) var mockasifoo = mock.as<ifoo>(); // mockasifoo.setup... (per il tipo IFoo) Debug.Assert(mock.Object==mockAsIFoo.Object);

45 Callback Se vogliamo eseguire del codice quando qualcosa accade (per esempio, l invocazione di un metodo) possiamo usare una callback: int counter = 0; mock.setup(es => es.send (/*...*/)).returns(true).callback(() => ++counter); Nota: la della callback può anche ricevere gli argomenti dell invocazione corrispondente

46 Lazy evaluation sul Returns // returning different values on each invocation var mock = new Mock<IFoo>(); var calls = 0; mock.setup(foo => foo.bar("ping")).returns(() => calls).callback(() => calls++); // returns 0 on first invocation, 1 on the next, Console.WriteLine(mock.Object.Bar("ping"));

47 Altro Eventi... li gestisce, ma ne riparliamo dopo che avremo visto cosa sono gli eventi

Test di unità con JUnit4

Test di unità con JUnit4 Test di unità con JUnit4 Richiamo sul test di unità Il test d unità è una metodologia che permette di verificare il corretto funzionamento di singole unità di codice in determinate condizioni. Nel caso

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 3 - Variabili Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di

Подробнее

Inizializzazione, Assegnamento e Distruzione di Classi

Inizializzazione, Assegnamento e Distruzione di Classi Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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,

Подробнее

10 - Programmare con gli Array

10 - Programmare con gli Array 10 - Programmare con gli Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Подробнее

Sviluppo software guidato dal testing. metodologie e strumenti

Sviluppo software guidato dal testing. metodologie e strumenti Sviluppo software guidato dal testing metodologie e strumenti Sommario Testing, software a oggetti Metodologie di sviluppo Test-Driven Development Customer Test-Driven Development Strumenti Open-Source:

Подробнее

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

Подробнее

Componenti in.net, Dependency Injection e Software testabile. Giovanni Lagorio [email protected]

Componenti in.net, Dependency Injection e Software testabile. Giovanni Lagorio lagorio@disi.unige.it Componenti in.net, Dependency Injection e Software testabile Giovanni Lagorio [email protected] Licenza Questi lucidi sono rilasciati sotto la licenza Creative Commons Attribuzione-Non commerciale-non

Подробнее

MANUALE PARCELLA FACILE PLUS INDICE

MANUALE PARCELLA FACILE PLUS INDICE MANUALE PARCELLA FACILE PLUS INDICE Gestione Archivi 2 Configurazioni iniziali 3 Anagrafiche 4 Creazione prestazioni e distinta base 7 Documenti 9 Agenda lavori 12 Statistiche 13 GESTIONE ARCHIVI Nella

Подробнее

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.

Подробнее

Progettazione : Design Pattern Creazionali

Progettazione : Design Pattern Creazionali Progettazione : Design Pattern Creazionali Alessandro Martinelli [email protected] 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali

Подробнее

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Design Pattern: Storia Parte b versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Подробнее

Esempi di algoritmi. Lezione III

Esempi di algoritmi. Lezione III Esempi di algoritmi Lezione III Scopo della lezione Implementare da zero algoritmi di media complessità. Verificare la correttezza di un algoritmo eseguendolo a mano. Imparare a valutare le prestazioni

Подробнее

INSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014)

INSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014) INSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014) Se la Suite risulta già stata installata e quindi sono già presenti le configurazioni di seguito indicate, si prega di andare direttamente alla fine

Подробнее

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...

Подробнее

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à

Подробнее

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

Подробнее

Convertitori numerici in Excel

Convertitori numerici in Excel ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA Convertitori numerici in Excel Prof. G. Ciaschetti Come attività di laboratorio, vogliamo realizzare dei convertitori numerici con Microsoft Excel

Подробнее

IL MIO PRIMO SITO: NEWS

IL MIO PRIMO SITO: NEWS Pagina 1 IL MIO PRIMO SITO: NEWS Sommario IL MIO PRIMO SITO: NEWS...1 Introduzione...2 I Contenitori...2 Creo un Contenitore...3 I Tracciati...4 Creo le Notizie...6 Inserisco il Testo...6 Inserisco un

Подробнее

Informatica per la comunicazione" - lezione 13 -

Informatica per la comunicazione - lezione 13 - Informatica per la comunicazione" - lezione 13 - Funzionamento di una password" 1: l utente tramite il suo browser richiede l accesso a una pagina del server; 2: il server richiede il nome utente e la

Подробнее

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/

Подробнее

Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress

Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress Copyright Andrea Giavara wppratico.com Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress 1. Il pannello amministrativo 2. I dati importanti 3. Creare il database - Cpanel - Plesk

Подробнее

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

Подробнее

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

Подробнее

Introduzione a Dev-C++

Introduzione a Dev-C++ Introduzione a Dev-C++ Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Note: Dev-C++ richiede Windows 95/98/NT/2000/XP

Подробнее

La progettazione dell interfaccia HCI. Fabio Vitali

La progettazione dell interfaccia HCI. Fabio Vitali La progettazione dell interfaccia La progettazione Alla base della progettazione di buone interfacce c è il prestito intelligente. E molto meglio scegliere le buone idee di altra gente piuttosto che ideare

Подробнее

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Подробнее

Tricks & Tips. [Access] Tutorial - ActiveX - Controllo Tree View. - Michele de Nittis - Versione: 1 Data Versione: venerdì 30 agosto 2002

Tricks & Tips. [Access] Tutorial - ActiveX - Controllo Tree View. - Michele de Nittis - Versione: 1 Data Versione: venerdì 30 agosto 2002 Tricks & Tips [Access] - Michele de Nittis - Tutorial - ActiveX - Controllo Tree View Versione: 1 Data Versione: venerdì 30 agosto 2002 1 SOMMARIO PREMESSA...3 INSERIMENTO DEL CONTROLLO...3 AGGIUNTA DELLE

Подробнее

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

Подробнее

Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass

Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass 0_Iniziare con GRASS Avvio di Grass e creazione della cartella del Database di GRASS Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass

Подробнее

Visual Basic.NET La Gestione degli Errori di Federico BARBATI

Visual Basic.NET La Gestione degli Errori di Federico BARBATI Generalità Visual Basic.NET La Gestione degli Errori di Federico BARBATI La gestione degli errori, è una parte fondamentale di un codice ben progettato. Fino ad oggi, gli errori nelle applicazioni scritte

Подробнее

Integrazione InfiniteCRM - MailUp

Integrazione InfiniteCRM - MailUp Integrazione InfiniteCRM - MailUp La funzionalità della gestione delle campagne marketing di icrm è stata arricchita con la spedizione di email attraverso l integrazione con la piattaforma MailUp. Creando

Подробнее

Settaggio impostazioni tema. Cliccando nuovamente su aspetto e poi su personalizza si avrà modo di configurare la struttura dinamica della template.

Settaggio impostazioni tema. Cliccando nuovamente su aspetto e poi su personalizza si avrà modo di configurare la struttura dinamica della template. I TEMI PREDEFINITI (TEMPLATE) Scelta del tema I temi predefiniti di wordpress sono la base di un sito che usa un utente che per ragioni pratiche o per incapacità non può creare un sito usando solo codice

Подробнее

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

Подробнее

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à

Подробнее

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Ruoli e Responsabilità: Introduzione versione 2.3 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Подробнее

Office 2007 Lezione 02. Le operazioni più

Office 2007 Lezione 02. Le operazioni più Le operazioni più comuni Le operazioni più comuni Personalizzare l interfaccia Creare un nuovo file Ieri ci siamo occupati di descrivere l interfaccia del nuovo Office, ma non abbiamo ancora spiegato come

Подробнее

PowerPoint. Guida introduttiva

PowerPoint. Guida introduttiva PowerPoint Guida introduttiva Informativa Questa guida nasce con l intento di spiegare in modo chiaro e preciso come usare il software Microsoft PowerPoint. In questa guida saranno tralasciati tutti quei

Подробнее

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

Подробнее

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per

Подробнее

FPf per Windows 3.1. Guida all uso

FPf per Windows 3.1. Guida all uso FPf per Windows 3.1 Guida all uso 3 Configurazione di una rete locale Versione 1.0 del 18/05/2004 Guida 03 ver 02.doc Pagina 1 Scenario di riferimento In figura è mostrata una possibile soluzione di rete

Подробнее

Tale attività non è descritta in questa dispensa

Tale attività non è descritta in questa dispensa Fondamenti di informatica Oggetti e Java ottobre 2014 1 Nota preliminare L installazione e l uso di Eclipse richiede di aver preliminarmente installato Java SE SDK Tale attività non è descritta in questa

Подробнее

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

Подробнее

Il web server Apache Lezione n. 3. Introduzione

Il web server Apache Lezione n. 3. Introduzione Procurarsi ed installare il web server Apache Introduzione In questa lezione cominciamo a fare un po di pratica facendo una serie di operazioni preliminari, necessarie per iniziare a lavorare. In particolar

Подробнее

costruttori e distruttori

costruttori e distruttori costruttori e distruttori Costruttore E un metodo che ha lo stesso nome della classe a cui appartiene: serve per inizializzare un oggetto all atto della sua creazione Ce ne possono essere uno, più di uno,

Подробнее

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

Подробнее

Appunti di Interazione Uomo Macchina Principi di progettazione per il web I wireframe

Appunti di Interazione Uomo Macchina Principi di progettazione per il web I wireframe Appunti di Interazione Uomo Macchina Principi di progettazione per il web I wireframe Luca Pulina 1 Introduzione Nell ambito della progettazione di siti web, i wireframe sono un insieme di documenti che

Подробнее

Parola chiave extends

Parola chiave extends Il Linguaggio Java Ereditarietà Ereditarietà L'ereditarietà permette di creare nuove classi sulla base di classi esistenti In particolare, permette di riusare il codice (metodi e campi); aggiungere nuovi

Подробнее

ShellExcel. Una domanda contiene i riferimenti (#A, #B, #C) alle celle che contengono i dati numerici del

ShellExcel. Una domanda contiene i riferimenti (#A, #B, #C) alle celle che contengono i dati numerici del Progetto Software to Fit - ShellExcel Pagina 1 Manuale d'uso ShellExcel ShellExcel è una interfaccia per disabili che permette ad un alunno con difficoltà di apprendimento di esercitarsi ripetitivamente

Подробнее

Registri RMI. Massimo Merro Univ. Verona Programmazione di Rete 90 / 247

Registri RMI. Massimo Merro Univ. Verona Programmazione di Rete 90 / 247 Registri RMI Per poter interagire con un server remoto, un client deve essere in possesso di una sua referenza remota (ovvero un oggetto stub). Un servizio di Naming è una risorsa centralizzata che può

Подробнее

Mac Application Manager 1.3 (SOLO PER TIGER)

Mac Application Manager 1.3 (SOLO PER TIGER) Mac Application Manager 1.3 (SOLO PER TIGER) MacApplicationManager ha lo scopo di raccogliere in maniera centralizzata le informazioni piu salienti dei nostri Mac in rete e di associare a ciascun Mac i

Подробнее

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

Подробнее

Java: Compilatore e Interprete

Java: Compilatore e Interprete Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT

Подробнее

Concetti Base Eccezioni Eccezioni e Metodi Gerarchia di Eccezioni. Java: Eccezioni. Damiano Macedonio

Concetti Base Eccezioni Eccezioni e Metodi Gerarchia di Eccezioni. Java: Eccezioni. Damiano Macedonio Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica lezione del 30 maggio 2014 Introduzione Un programma diviso in sezioni distinte Un approccio alla

Подробнее

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

Подробнее

http://www.programmiamo.altervista.org/c/oop/o...

http://www.programmiamo.altervista.org/c/oop/o... PROGRAMMIAMO Programma per la gestione di un conto corrente C++ - Costruttore e distruttore C++ Home Contatti Supponiamo ora di voler scrivere un programma a menu per la gestione di un conto corrente bancario.

Подробнее

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

Подробнее

I/O su Socket TCP: read()

I/O su Socket TCP: read() I/O su Socket TCP: read() I socket TCP, una volta che la connessione TCP sia stata instaurata, sono accedibili come se fossero dei file, mediante un descrittore di file (un intero) ottenuto tramite una

Подробнее

IL MIO PRIMO SITO NEWS USANDO GLI SCHEDARI

IL MIO PRIMO SITO NEWS USANDO GLI SCHEDARI Pagina 1 UN SISTEMA DI NEWS Sommario UN SISTEMA DI NEWS...1 Introduzione...2 Scelgo l'area su cui operare...3 Un minimo di teoria...3 Creo le Pagine...4 Definizione dello Schedario Novità...6 Compilo la

Подробнее

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche.

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche. Testo Esercizio Un negozio di musica vende anche libri e riviste musicali. Si intende automatizzare l intero processo, dall approvvigionamento alla vendita. Si analizzino i requisiti e se ne rappresentino

Подробнее

Visibilità dei Membri di una Classe

Visibilità dei Membri di una Classe Visibilità dei Membri di una Classe Lezione 10 Ogni classe definisce un proprio scope racchiude il codice contenuto nella definizione della classe e di tutti i suoi membri ogni metodo della classe definisce

Подробнее

Joomla! 2.5:Utenti e permessi - Il wiki di Joomla.it

Joomla! 2.5:Utenti e permessi - Il wiki di Joomla.it Pagina 1 di 6 Joomla! 2.5:Utenti e permessi Da Il wiki di Joomla.it. Traduzione (http://cocoate.com/it/j25it/utenti) dal libro Joomla! 2.5 - Beginner's Guide (http://cocoate.com/j25/users-permissions)

Подробнее

Guida Rapida all uso del License Manager di ROCKEY4Smart (V. 1.0.10.724)

Guida Rapida all uso del License Manager di ROCKEY4Smart (V. 1.0.10.724) Guida Rapida all uso del License Manager di ROCKEY4Smart (V. 1.0.10.724) Procedo con un esempio: voglio proteggere una applicazione (nell esempio Blocco Note di Windows: notepad.exe) per distribuirla con

Подробнее

risulta (x) = 1 se x < 0.

risulta (x) = 1 se x < 0. Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente

Подробнее

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

Подробнее

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

Подробнее

www.filoweb.it STAMPA UNIONE DI WORD

www.filoweb.it STAMPA UNIONE DI WORD STAMPA UNIONE DI WORD Molte volte abbiamo bisogno di stampare più volte lo stesso documento cambiando solo alcuni dati. Potremmo farlo manualmente e perdere un sacco di tempo, oppure possiamo ricorrere

Подробнее

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

Подробнее

Oltre il diritto d autore: Creative Commons. Formazione Volontari SCN 2010 Mediateca Centro Linguistico di Ateneo - febbraio 2010

Oltre il diritto d autore: Creative Commons. Formazione Volontari SCN 2010 Mediateca Centro Linguistico di Ateneo - febbraio 2010 Oltre il diritto d autore: Creative Commons Formazione Volontari SCN 2010 Mediateca Centro Linguistico di Ateneo - febbraio 2010 cosa faremo oggi introduzione alle Creative Commons Licenses che cos è Creative

Подробнее

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 È

Подробнее

Come modificare la propria Home Page e gli elementi correlati

Come modificare la propria Home Page e gli elementi correlati Come modificare la propria Home Page e gli elementi correlati Versione del documento: 3.0 Ultimo aggiornamento: 2006-09-15 Riferimento: webmaster ([email protected]) La modifica delle informazioni

Подробнее

file:///c:/formazione/photoshop-webmaster-uffici/doc/guida-winzip.htm Guida a Winzip

file:///c:/formazione/photoshop-webmaster-uffici/doc/guida-winzip.htm Guida a Winzip Guida a Winzip Winzip è uno dei programmi più famosi per comprimere file rendendoli meno pesanti (in termini di Byte) e quindi proprio per questa sua caratteristica è uno dei programmi più usati su internet

Подробнее

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

Подробнее

RIFERIMENTI ATTORI GLOSSARIO. ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova

RIFERIMENTI ATTORI GLOSSARIO. ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova RIFERIMENTI ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2014 2015 I riferimenti devono essere precisi

Подробнее

Introduzione. Java. Composizione. Esempio -- composizione. G. Prencipe [email protected]. È qualcosa che abbiamo già visto varie volte

Introduzione. Java. Composizione. Esempio -- composizione. G. Prencipe prencipe@di.unipi.it. È qualcosa che abbiamo già visto varie volte Java riutilizzo delle classi G. Prencipe [email protected] Introduzione Una delle caratteristiche fondamentali in Java è il riutilizzo del codice Ci sono due modi per ottenerlo Creare oggetti di classi

Подробнее

MANUALE UTENTE Fiscali Free

MANUALE UTENTE Fiscali Free MANUALE UTENTE Fiscali Free Le informazioni contenute in questa pubblicazione sono soggette a modifiche da parte della ComputerNetRimini. Il software descritto in questa pubblicazione viene rilasciato

Подробнее

Mobilità di Codice. Massimo Merro Programmazione di Rete 128 / 144

Mobilità di Codice. Massimo Merro Programmazione di Rete 128 / 144 Mobilità di Codice Abbiamo già visto come un dato host possa trasmettere un oggetto (serializzabile) ad un altro host. Quest ultimo potrà eseguire l oggetto pur non possedendo il bytecode della classe

Подробнее

Main System Monitor Keyboard

Main System Monitor Keyboard Composite 57 8. Composite (Gof pag. 163) 8.1. Descrizione Consente la costruzione di gerarchie di oggetti composti. Gli oggetti composti possono essere conformati da oggetti singoli, oppure da altri oggetti

Подробнее

Introduzione JDBC interfaccia java.sql driver caricare i driver

Introduzione JDBC interfaccia java.sql driver caricare i driver J D B C DISPENSE Introduzione JDBC (Java Database Connectivity) è un interfaccia completamente Java utilizzata per eseguire istruzioni SQL sui database. L'API JDBC si trova nel pacchetto java.sql; contiene

Подробнее

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

Подробнее

Corso Eclipse. Prerequisiti. 1 Introduzione

Corso Eclipse. Prerequisiti. 1 Introduzione Corso Eclipse 1 Introduzione 1 Prerequisiti Uso elementare del pc Esecuzione ricerche su Internet Esecuzione download Conoscenza elementare della programmazione 2 1 Cos è Eclipse Eclipse è un IDE (Integrated

Подробнее

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...

Подробнее

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. *+33(GLWRU GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. Il programma si basa su un architettura di tasti funzionali presenti

Подробнее

Entrare nel sistema. Clicca su Entra per entrare nel sistema. PAGINA 1

Entrare nel sistema. Clicca su Entra per entrare nel sistema. PAGINA 1 Entrare nel sistema Clicca su Entra per entrare nel sistema. PAGINA 1 Entrare nel sistema Compare il box di login in cui inserire il nome utente e la password fornite tramite posta elettronica. PAGINA

Подробнее

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 PAG. 2 DI 38 INDICE 1. PREMESSA 3 2. SCARICO DEL SOFTWARE 4 2.1 AMBIENTE WINDOWS 5 2.2 AMBIENTE MACINTOSH 6 2.3 AMBIENTE

Подробнее