Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Ingegneria del software A.
|
|
- Serafina Danieli
- 8 anni fa
- Visualizzazioni
Transcript
1 Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Ingegneria del software A Introduzione Michele Tomaiuolo
2 Ingegneria del software L ingegneria del software tratta della realizzazione di sistemi software di dimensioni e complessità tali da richiedere uno o più team di persone La nascita e lo sviluppo sono una conseguenza diretta dell aumento di complessità del software 2
3 Alcune possibili definizioni L ingegneria del software è l approccio sistematico allo sviluppo, all operatività, alla manutenzione ed al ritiro del software L ingegneria del software è la disciplina tecnologica e manageriale che riguarda la produzione sistematica e la manutenzione dei prodotti software che vengono sviluppati e modificati entro tempi e costi preventivati L ingegneria del software è un corpus di teorie, metodi e strumenti, sia di tipo tecnologico che organizzativo, che consentono di produrre applicazioni con le desiderate caratteristiche di qualità 3
4 Software e ingegneria classica Creatività e metodo Il software è un prodotto dell ingegno e non di un processo industriale Prodotto e processo L ingegneria classica (civile, meccanica) progetta il prodotto e anche il processo industriale L ingegneria del software (spesso) progetta solo il prodotto e non utilizza un processo industriale formalizzato 4
5 Cenni storici (1/3) L ingegneria del software nasce con la conferenza NATO del 1968 Nuovi punti di vista Software crisis Software reuse Software engineering 5
6 Cenni storici (2/3) Anni 1990, sviluppo delle tecnologie orientate agli oggetti Programmazione orientata agli oggetti UML (Unified Modeling Language) Design pattern 6
7 Cenni storici (3/3) Da metà anni 1990, nuove prospettive Web, e-commerce Interoperabilità Open source Java Linguaggio orientato agli oggetti Multi-piattaforma Web-oriented Ben accettato dalla comunità dell open source 7
8 Storia dei linguaggi Inizi Sistema GUI Internet Assembly Linguaggio macchina ALGOL COBOL LISP BASIC FORTRAN Prolog Simula C Pascal Smalltalk C++ ADA C# PHP Javascript Java
9 Ingegneria del software Outline Qualità del software Fasi di sviluppo del software Requisiti Analisi Progettazione Implementazione Testing Modello a cascata e modelli iterativi Gestione dei progetti Approccio orientato agli oggetti Dai casi d uso ai modelli strutturali e comportamentali Architetture software Design Pattern 9
10 extreme Programming Seminario della prof. Turci Fallimento di progetti software Metodologie agili extreme Programming 10
11 Cos è Java Insieme di tecnologie Linguaggio orientato agli oggetti che migliora il C++ Strumenti sia a compile-time che a run-time Lancio ufficiale nel 1995 Piattaforma sviluppata da Sun Microsystems Open source dal , iniziativa OpenJDK Svincolare software da hardware e sistema operativo Sistemi web-oriented Inizialmente lato client, oggi principalmente lato server (Mosaic creato nel 1993) Sistemi embedded (Green group) Recentemente, sistemi mobili (telefoni cellulari, PDA) 11
12 Java è un insieme di tecnologie Problema distribuzione su web: programmi strettamente legati ad una piattaforma Piattaforma: combinazione di hardware e software di sistema Byte code Un compilatore Java (javac) non produce codice eseguibile da una particolare piattaforma, come farebbe un compilatore C A differenza del linguaggio macchina, il byte code Java resta uguale per tutte le piattaforme Macchina virtuale (VM) La VM (java) trasforma il byte code in codice nativo Tutti questi pezzi sono denominati assieme come Java Compilatore, byte code, macchina virtuale, librerie, linguaggio ecc. 12
13 Ciclo di vita di un applicazione Java 13
14 Java è semplice Java ha una sintassi simile al C... Ma non è una estensione del C, come il C++ Un compilatore Java non accetta codice C Modifiche sostanziali per convertire un programma da C a Java Java è semplice: facile da capire e scrivere (senza errori) Codice C medio, al rilascio, ha un bug ogni 55 righe di codice Java ha sintassi minima - No syntactic sugar (es. operatori) Ma più funzionalità del C, grazie all ampia libreria di classi Allocazione e deallocazione automatica della memoria Niente chiamate a malloc(), free() e distruttori Metà dei bug in C e C++ sono legati alla gestione della memoria (allocazione e deallocazione) Riferimenti controllati Niente algebra dei puntatori e accessi arbitrari alla memoria 14
15 Java è orientato agli oggetti Programmazione orientata agli oggetti Origini negli anni 1960 Simula Ma diffusione negli anni 1990 GUI moderne Programma: collezione di oggetti Campi e metodi, scambio di messaggi, classi ed ereditarietà Astrazione, programmi più semplici e facili da leggere Migliore riuso del codice Sviluppo e rilascio più veloce Codice modulare, più affidabile e manutenibile Java è completamente orientato agli oggetti A differenza di Smalltalk ha tipi primitivi C++ è ibrido, eredita dal C la scarsa leggibilità Possibilità di produrre codice offuscato 15
16 Java è indipendente dalla piattaforma Java è cross-platform Non solo codice sorgente come C ma anche bytecode Portare programmi Java su una nuova piattaforma 1. Portare la macchina virtuale ( interprete ) 2. Portare parte delle librerie (AWT, I/O, rete ) Compilatore e gran parte delle librerie sono scritte in Java Eliminazione di costrutti non specificati o dipendenti dalla piattaforma Interi sempre a 32 bit Virgola mobile secondo lo standard IEEE
17 Java è sicuro Verfica del byte code e sandbox Esecuzione sicura di codice scaricato da fonti non fidate Le applet non possono accedere al disco o alla rete Verifica preventiva sul byte code dell applet, controlli a run time Al più, una applet può bloccare la VM, ma non l intero sistema No puntatori I programmi Java non possono accedere arbitrariamente alla memoria Java ha controllo dei tipi forte Si può convertire un int in long, un byte in short Ma non un int in boolean Controllo su riferimenti e cast tra classi Gestione delle eccezioni per errori attesi o inattesi 17
18 Java ha buone prestazioni Il byte code Java può essere compilato al volo (just-intime) per ottenere prestazioni simili a codice nativo Esistono compilatori Java (es. gcj) che generano codice nativo per una particolare piattaforma (no VM) Non si possono limare le prestazioni operando a basso livello come in C, ma si possono ottenere risultati adeguati per molti ambiti Grossi programmi scritti in Java Eclipse (IDE), Limewire (file sharing), HotJava (browser), jedit (text editor), JBoss (application server), Tomcat (web server), Xerces (parser XML), the Xalan (processore XSLT), javac (compilatore) 18
19 Java è multi-threaded Un programma Java può avere diversi thread di esecuzione paralleli Reazioni rapide all input dell utente o alle richieste dei client Difficile portare Java su architetture (es. Windows 3.1) che non supportano il preemptive multi-threading Fonte di bug difficili da trovare (corse, deadlock ) Problema inerente alla programmazione parallela Java fornisce una API molto semplice per gestire thread Monitor per accesso concorrente alle risorse 19
20 Java ha collegamenti dinamici Java non ha una fase di link esplicita Il compilatore Genera un file di byte code (.class) per ogni classe del programma Risolve le dipendenze e compila tutte le classi necessarie Il programma può caricare classi a runtime Per esempio, un browser può caricare alcune applet Le classi necessarie sono cercate e caricate dinamicamente CLASSPATH, ClassLoader 20
21 Java libera la memoria automaticamente Garbage collection: la raccolta della spazzatura di Java Non c è bisogno di allocare o deallocare la memoria esplicitamente La memoria è allocata quando necessario Viene liberata quando non più utilizzata Oggetti sempre in heap Costruttori utili per l inizializzazione L algoritmo usato per la garbage collection è diverso sulle varie VM Idea di base: conteggio dei riferimenti, ma cicli Generational garbage collection per oggetti creati di recente Mark & sweep per gli oggetti più duraturi 21
22 OOP e Java Outline Oggetti e classi Incapsulamento e composizione Ereditarietà e polimorfismo Diagrammi UML Introduzione a Java Collezioni e tipi generici Input/output Interfacce utente Swing Architettura MVC Eccezioni e asserzioni Programmazione multi-threaded 22
23 Esercitazioni Laboratorio di informatica di base Linguaggio Java Librerie fondamentali Interfacce grafiche e Swing Eccezioni, thread, Enfasi su Analisi e progettazione, modelli UML Riuso del software, ereditarietà e composizione Design-by-contract, eccezioni, asserzioni Testing Architetture Design pattern 23
24 Esame 1. Prova scritta Domande aperte di teoria a. A fine lezioni, oppure b. Appelli successivi 2. Prova al PC (in laboratorio) Sviluppo di una applicazione Java a. A fine lezioni, oppure b. Appelli successivi 3. La partecipazione attiva alle esercitazioni Costituisce titolo di merito 24
25 Software Java SE, JDK 6 (77 MB) Notepad++ (o Notepad, o qualsiasi editor di testo) Eclipse IDE for Java Developers (85 MB) Omondo JUnit Ant 25
26 Materiale on-line Slide del corso Java Documentazione API e tools, tutorial, convenzioni sul codice Eckel Thinking in Java Thinking in Patterns (with Java) 26
27 Testi consigliati Sommerville (Prentice-Hall, 2006) Software Engineering Pressman (McGraw-Hill, 2004) Software Engineering: A Practitioner's Approach Damiani, Madravio (Pearson Education, 2003) UML Pratico Gamma et al. (Pearson Education, 2002) Design Patterns Kruchten (Pearson Education, 2000) Rational Unified Process 27
28 Come potete contattarmi? Ufficio: Palazzina 1 Sede Scientifica Ingegneria Viale G. Usberti 181/A Tel: Fax: tomamic@ce.unipr.it Web: 28
Programmazione ad Oggetti. Java Parte I
Programmazione ad Oggetti Java Parte I Overview Caratteristiche generali 1 Caratteristiche generali Un moderno linguaggio orientato agli oggetti Pensato per lo sviluppo di applicazioni che devono essere
DettagliCorso di Informatica
Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio
DettagliInformatica. Prof. A. Longheu. Introduzione a Java
Informatica Prof. A. Longheu Introduzione a Java 1 Code-Name Green Nome del progetto Sun con l obiettivo di fornire intelligent consumer-electronic devices. Il risultato fu Oak Un linguaggio basato su
DettagliAppunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione
Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione Marco Liverani (liverani@mat.uniroma3.it)
DettagliApproccio stratificato
Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia
DettagliAmbienti di Sviluppo
Ambienti di Sviluppo Insieme omogeneo di strumenti adatti allo sviluppo di progetti software. Editor; Compilatori e/o interpreti; Strumenti di test; Applicazioni che permettono di editare / disegnare il
DettagliFONDAMENTI di INFORMATICA L. Mezzalira
FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software
DettagliPROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE
PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE Relatore: prof. Michele Moro Laureando: Marco Beggio Corso di laurea in Ingegneria Informatica Anno Accademico 2006-2007
DettagliIngegneria del Software T
Ingegneria del Software T Corso di Laurea Triennale in Ingegneria Informatica III anno A.A. 2012/2013 Premessa Una domanda fondamentale Che cosa significa scrivere del buon software? Ingegneria del Software
DettagliINGEGNERIA DEL SOFTWARE. Prof. Paolo Salvaneschi
Università di Bergamo Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica INGEGNERIA DEL SOFTWARE Prof. Paolo Salvaneschi 1 Obiettivi Scopi del corso: - Fornire gli elementi di base della disciplina,
DettagliOggetti Lezione 3. aspetti generali e definizione di classi I
Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione
DettagliCorso di INFORMATICA 2 (Matematica e Applicazioni)
Università di Camerino Scuola di Scienze e Tecnologie Sezione di Matematica Corso di INFORMATICA 2 (Matematica e Applicazioni) Anno Accademico 2014/15 3 Anno Primo Semestre Docenti: Paolo Gaspari Roberto
DettagliINFORMATICA 1 L. Mezzalira
INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello
DettagliStrumenti per la programmazione
Editing del programma Il programma deve essere memorizzato in uno o più files di testo editing codice sorgente 25 Traduzione del programma Compilazione: è la traduzione effettuata da un compilatore Un
DettagliIstituto Universitario Navale Facoltà di Ingegneria Corso di Laurea in Ingegneria delle Telecomunicazioni
Istituto Universitario Navale Facoltà di Ingegneria Corso di Laurea in Ingegneria delle Telecomunicazioni Fondamenti di Informatica Modulo 1 Programma dell'a.a. 2003/2004 Luigi Romano Dipartimento di Informatica
DettagliTecnologie dei Linguaggi di Programmazione
Tecnologie dei Linguaggi di Programmazione a.a. 2013/2014 romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Goal Object Oriented Programming (OOP) Conoscere il paradigma di programmazione
DettagliStrumenti di modellazione. Gabriella Trucco
Strumenti di modellazione Gabriella Trucco Linguaggio di modellazione Linguaggio formale che può essere utilizzato per descrivere (modellare) un sistema Il concetto trova applicazione soprattutto nell
DettagliProgrammazione in Java Parte I: Fondamenti
Programmazione in Java Parte I: Fondamenti Lezione 1 Dott. Marco Faella Riferimenti Testi consigliati: Progettazione del software e design pattern in Java di C.S. Horstmann Apogeo Gli esempi di codice
DettagliISTITUTO TECNICO ECONOMICO MOSSOTTI
CLASSE III INDIRIZZO S.I.A. UdA n. 1 Titolo: conoscenze di base Conoscenza delle caratteristiche dell informatica e degli strumenti utilizzati Informatica e sistemi di elaborazione Conoscenza delle caratteristiche
DettagliArchitetture Applicative
Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Conclusioni Parte b versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima
DettagliGenerazione Automatica di Asserzioni da Modelli di Specifica
UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Generazione Automatica di Asserzioni da Modelli di Specifica Relatore:
DettagliIntroduzione alle tecnologie informatiche. Strumenti mentali per il futuro
Introduzione alle tecnologie informatiche Strumenti mentali per il futuro Panoramica Affronteremo i seguenti argomenti. I vari tipi di computer e il loro uso Il funzionamento dei computer Il futuro delle
DettagliObject Oriented Software Design
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Object Oriented Software Design Corso di Tecniche di Programmazione Laurea in Ingegneria Informatica (Canale di Ingegneria
DettagliProgramma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione
Programma del Corso Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Normalizzazione (I prova scritta) (II prova scritta) Interazione fra linguaggi di programmazione e basi di dati Cenni
DettagliFondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Installazione SOFTWARE JDK ECLIPSE 03/03/2011 2 ALGORITMI E PROGRAMMI PROBLEMA ALGORITMO PROGRAMMA metodo risolutivo linguaggio di
DettagliCon il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.
Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell
DettagliPanoramica: che cosa è necessario
Scheda 02 L installazione dell SDK G IOVANNI PULITI Panoramica: che cosa è necessario Per poter lavorare con applicazioni Java o crearne di nuove, il programmatore deve disporre di un ambiente di sviluppo
DettagliIntroduzione al linguaggio Java
Introduzione al linguaggio Java Alessandro Martinelli alessandro.martinelli@unipv.it 28 Settembre 2011 Introduzione al linguaggio Java Generalità del Linguaggio Java e Portabilità Java e Robustezza Java
DettagliIl software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi
Il Software Il software impiegato su un computer si distingue in: Software di sistema Sistema Operativo Compilatori per produrre programmi Software applicativo Elaborazione testi Fogli elettronici Basi
DettagliCOS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle
DettagliProff. Fabio Ciao e Raffaele Bortone
ISTITUTO D ISTRUZIONE SUPERIORE FERRARIS BRUNELLESCHI - EMPOLI Materia: INFORMATICA PROGRAMMAZIONE ANNUALE A.S. 2014/2015 Classe IV C Informatica Proff. Fabio Ciao e Raffaele Bortone Libro di testo: Cloud
DettagliSoftware di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche
Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica
DettagliIntroduzione. Il software e l ingegneria del software. Marina Mongiello Ingegneria del software 1
Introduzione Il software e l ingegneria del software Marina Mongiello Ingegneria del software 1 Sommario Il software L ingegneria del software Fasi del ciclo di vita del software Pianificazione di sistema
DettagliEVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO
EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO Linguaggi di programmazione classificati in base alle loro caratteristiche fondamentali. Linguaggio macchina, binario e fortemente legato all architettura. Linguaggi
DettagliProgrammazione in Java e gestione della grafica (I modulo) Lezione 1: Presentazione corso
Programmazione in Java e gestione della grafica (I modulo) Lezione 1: Presentazione corso Informazioni generali Docente: Prof.ssa Dora Giammarresi: giammarr@mat.uniroma2.it Tutor:??? Informazioni generali
DettagliIntroduzione alla Progettazione per Componenti
Introduzione alla Progettazione per Componenti Alessandro Martinelli 6 ottobre 2014 Obiettivo del Corso Il Progetto Software Reale Il Componente Software La Programmazione Ad Oggetti Fondamenti di Informatica
DettagliDefinizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base
Sistema operativo Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Architettura a strati di un calcolatore
DettagliFondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi
Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009 Prof. Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via B. Castiglione 59-00142 Roma Docente Raffaele Nicolussi rnicolussi@fub.it Lezioni
DettagliCorso di Informatica
Corso di Informatica Modulo T2 1 Sistema software 1 Prerequisiti Utilizzo elementare di un computer Significato elementare di programma e dati Sistema operativo 2 1 Introduzione In questa Unità studiamo
DettagliIl sistema operativo TinyOS
tesi di laurea Anno Accademico 2005/2006 relatore Ch.mo prof. Domenico Cotroneo candidato Giovanni Chierchia Matr. 534 / 804 ::. Obiettivi del lavoro di tesi Studio del sistema operativo TinyOS Studio
DettagliSistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL
STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione
Dettagli!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/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
DettagliCorso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP
Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Accademia Futuro info@accademiafuturo.it Programma Generale del Corso Analista Programmatore Web PHP Tematiche Trattate
DettagliIntroduzione al Calcolo Scientifico
Introduzione al Calcolo Scientifico Corso di Calcolo Numerico, a.a. 2010/2011 Francesca Mazzia Dipartimento di Matematica Università di Bari Francesca Mazzia (Univ. Bari) Introduzione al Calcolo Scientifico
DettagliLinguaggi di programmazione
Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di un programma, cioè di una sequenza di istruzioni descritte nel linguaggio interpretabile dal calcolatore
DettagliInstallazione del JDK 6
Sommario Installazione del JDK 6 Anton Soppelsa Dipartimento di Ingegneria Elettrica http://www.die.unipd.it 15 Ottobre 2007 Sommario Sommario 1 Editor di testo Perché serve un editor di testo Editor per
DettagliLinguaggi. Corso di Laurea in Ingegneria delle Telecomunicazioni A.A. 2010-2011
Linguaggi Corso di Laurea in Ingegneria delle Telecomunicazioni A.A. 2010-2011 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it - lezione 00 - Informazioni generali
DettagliPrincipi dell ingegneria del software Relazioni fra
Sommario Principi dell ingegneria del software Leggere Cap. 3 Ghezzi et al. Principi dell ingegneria del software Relazioni fra Principi Metodi e tecniche Metodologie Strumenti Descrizione dei principi
DettagliDispensa di Informatica I.1
IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.
DettagliIntroduzione. Informatica B. Daniele Loiacono
Introduzione Informatica B Perchè studiare l informatica? Perchè ha a che fare con quasi tutto quello con cui abbiamo a che fare ogni giorno Perché è uno strumento fondamentale per progettare l innovazione
DettagliConcetti di base di ingegneria del software
Concetti di base di ingegneria del software [Dalle dispense del corso «Ingegneria del software» del prof. A. Furfaro (UNICAL)] Principali qualità del software Correttezza Affidabilità Robustezza Efficienza
DettagliNascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti
Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del
DettagliAnno Scolastico: 2014/2015. Indirizzo: Sistemi informativi aziendali. Classe: terza. Disciplina: Informatica. prof. Silvia Tondo
Istituto Tecnico Internazionale Economico E. Tosi Anno Scolastico: 2014/2015 Indirizzo: Sistemi informativi aziendali Classe: terza Disciplina: Informatica prof. Silvia Tondo Competenze disciplinari: 1.
DettagliCorso App modulo Android. Antonio Gallo info@laboratoriolibero.com
Corso App modulo Android Antonio Gallo info@laboratoriolibero.com Strumentazione: PC + smartphone Android + cavo micro USB per connessione Framework Phonegap SDK di Android JDK (Java) Eclipse (opzionale)
DettagliCorso di Laurea Magistrale in Ingegneria Informatica. Ingegneria del Software II (IS2)
Corso di Laurea Magistrale in Ingegneria Informatica Ingegneria del Software II (IS2) a.a. 2010/12 Ingegneria del Software 2 - Introduzione 1 Docente Prof.ssa Anna Rita Fasolino Dipartimento di Informatica
DettagliObject 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
DettagliSISTEMI E RETI 4(2) 4(2) 4(2) caratteristiche funzionali
CL AS SE INFORMATICA 6(3) 6(4) - 6(4) SISTEMI E RETI 4(2) 4(2) 4(2) TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI COMPETENZE 3 Essere in grado di sviluppare semplici applicazioni
DettagliMacchine Virtuali. Docente: Fabio Tordini Email: tordini@di.unito.it
Macchine Virtuali Docente: Fabio Tordini Email: tordini@di.unito.it Macchine Virtuali macchine virtuali e virtualizzazione introduzione architettura utilizzi VirtualBox installazione e panoramica (interattivo)
DettagliIngegneria del Software. Introduzione ai pattern
Ingegneria del Software Introduzione ai pattern 1 Definizione di pattern [dal [dal vocabolario vocabolario Garzanti] Garzanti] Alcuni esempi: Pattern architetturale Pattern di circuito stampato Pattern
DettagliACQUISIZIONE DATI DI PRODUZIONE SISTEMA PDA
PRIMA FASE UTENTE: Ufficio tecnico MODULO: Stesura ciclo di Lavorazione ACQUISIZIONE DATI DI PRODUZIONE SISTEMA PDA NC S.r.l. www.n-c.it 0362-931294 sales@n-c.it Il Pacchetto PDA è il nuovo prodotto NC,
DettagliElementi di UML (7): Diagrammi dei componenti e di deployment
Elementi di UML (7): Diagrammi dei componenti e di deployment Università degli Studi di Bologna Facoltà di Scienze MM. FF. NN. Corso di Laurea in Scienze di Internet Anno Accademico 2004-2005 Laboratorio
DettagliINGEGNERIA DEL SOFTWARE
INGEGNERIA DEL SOFTWARE A.A. 2014 2015 Pasquale Ardimento, Nicola Boffoli, Danilo Caivano, Giuseppe Visaggio Sommario ð Il Piano del Corso ð Svolgimento degli Esami ð Bibliografia ð Materiale didattico
DettagliCorso di Informatica
Corso di Informatica Modulo T1 B2 Significato e proprietà della OOP 1 Prerequisiti Concetto ed elementi della comunicazione Allocazione e deallocazione della memoria Compilazione di un programma Spazio
DettagliFondamenti di Informatica T-1
Fondamenti di Informatica T-1 Facoltà di Ingegneria Univ. di Bologna Ing. Gestionale (L-Z) Prof. Wilma Penzo 1 Informazioni generali Docente Prof. Wilma Penzo DEIS E-mail: wilma.penzo@unibo.it Tel.: 051-20-93560
DettagliCorso di Informatica
Corso di Informatica Modulo T1 4-Panoramica delle generazioni 1 Prerequisiti Monoprogrammazione e multiprogrammazione Multielaborazione Linguaggio macchina Linguaggi di programmazione e compilatori Struttura
DettagliUniversità degli studi Roma Tre Dipartimento di informatica ed automazione. Tesi di laurea
Università degli studi Roma Tre Dipartimento di informatica ed automazione Tesi di laurea Reingegnerizzazione ed estensione di uno strumento per la generazione di siti Web Relatore Prof. P.Atzeni Università
DettagliArchitetture software. Virtualizzazione
Sistemi Distribuiti Architetture software 1 Virtualizzazione 2 1 Virtualizzazione (motivazioni) Sullo stesso elaboratore possono essere eseguiti indipendentemente d t e simultaneamente t sistemi i operativi
DettagliI 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
DettagliLinguaggi e Paradigmi di Programmazione
Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una
Dettagli11. Evoluzione del Software
11. Evoluzione del Software Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 11. Evoluzione del Software 1 / 21 Evoluzione del Software - generalità Cosa,
DettagliDBMS e Linguaggi di programmazione nell'era di Internet
DBMS e Linguaggi di programmazione nell'era di Internet Crippa Francesco fcrippa@tiscalinet.it Crippa Francesco (GPL) 1 Programma del corso DBMS nati per il WEB: MySQL Postgres Il cuore del WWW, il web
DettagliAppunti di Informatica www.mimmocorrado.it 1
Installare Java Il programma può essere scaricato dal seguente indirizzo: http://www.java.com/it/download/windows_ie.jsp?locale=it&host=www.java.com Per installare la JDK è necessario: 1. scaricare il
DettagliLinguaggi dinamici. Giacomo Cabri giacomo.cabri@unimore.it Riccardo Martoglia riccardo.martoglia@unimore.it
Linguaggi dinamici Giacomo Cabri giacomo.cabri@unimore.it Riccardo Martoglia riccardo.martoglia@unimore.it Home page del corso https://www.agentgroup.unimore.it/didattica/ld/ 1 LINGUAGGI DINAMICI PARTE
DettagliMODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it
MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo
Dettagliintroduzione al corso di ingegneria del software
introduzione al corso di ingegneria del software a.a. 2003-2004 contatti con i docenti Maurizio Pizzonia pizzonia@dia.uniroma3.it orario ricevimento: mercoledì 17:30 (presentarsi entro le 18:00) Valter
DettagliIntroduzione al Calcolo Scientifico
Introduzione al Calcolo Scientifico Corso di Calcolo Numerico, a.a. 2008/2009 Francesca Mazzia Dipartimento di Matematica Università di Bari Francesca Mazzia (Univ. Bari) Introduzione al Calcolo Scientifico
DettagliCorso di PHP. Prerequisiti. 1 - Introduzione
Corso di PHP 1 - Introduzione 1 Prerequisiti Conoscenza HTML Principi di programmazione web Saper progettare un algoritmo Saper usare un sistema operativo Compilazione, link, esecuzione di programmi Conoscere
DettagliIntroduzione al sistema operativo Il file system: file, directory,...
,OVRIWZDUHGLVLVWHPD cosa vedremo: Introduzione al sistema operativo Il file system: file, directory,...... 223,OVRIWZDUHLQWURGX]LRQH L hardware da solo non è sufficiente per il funzionamento dell elaboratore
DettagliTesi di Laurea Automazione del testing delle Interfacce utente di applicazioni WEB:
Tesi di Laurea Automazione del testing delle Interfacce utente di applicazioni WEB: un caso di studio Anno accademico 2009 / 2010 Relatore Ch.mo prof. Porfirio Tramontana Correlatore Ch.mo Ing. Domenico
DettagliArchitettura di un sistema operativo
Architettura di un sistema operativo Dipartimento di Informatica Università di Verona, Italy Struttura di un S.O. Sistemi monolitici Sistemi a struttura semplice Sistemi a livelli Virtual Machine Sistemi
DettagliUniversità degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso
Obiettivi formativi Introdurre i principi del funzionamento di un elaboratore e della programmazione. Presentare gli approcci elementari alla soluzione di problemi (algoritmi)e al progetto di strutture
DettagliIntroduzione alla Virtualizzazione
Introduzione alla Virtualizzazione Dott. Luca Tasquier E-mail: luca.tasquier@unina2.it Virtualizzazione - 1 La virtualizzazione è una tecnologia software che sta cambiando il metodo d utilizzo delle risorse
DettagliCorso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)
Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Introduzione a Java: primo programma, installazione dell ambiente di sviluppo, compilazione ed esecuzione 1 Introduzione Java è un linguaggio
DettagliLinguaggi dinamici. Giacomo Cabri giacomo.cabri@unimore.it Mauro Andreolini mauro.andreolini@unimore.it
Giacomo Cabri giacomo.cabri@unimore.it Mauro Andreolini mauro.andreolini@unimore.it Home page del corso https://www.agentgroup.unimore.it/didattica/ld/ 1 LINGUAGGI DINAMICI PARTE 1 INTRODUZIONE 2 Parte
DettagliI lucidi messi a disposizione sul sito del corso di Analisi e progettazione del software NON sostituiscono il libro di testo
Luca Cabibbo Analisi e Progettazione del Software Capitolo 3 marzo 2015 Poche cose sono più difficili da sopportare di un buon esempio. Mark Twain 1 *** AVVERTENZA *** I lucidi messi a disposizione sul
DettagliDatabase e reti. Piero Gallo Pasquale Sirsi
Database e reti Piero Gallo Pasquale Sirsi Approcci per l interfacciamento Il nostro obiettivo è, ora, quello di individuare i possibili approcci per integrare una base di dati gestita da un in un ambiente
DettagliTelematica II 17. Esercitazione/Laboratorio 6
Multitasking e Multithreading Telematica II 17. Esercitazione/Laboratorio 6 Multitasking si riferisce all abilità di un computer di eseguire processi (jobs) multipli in maniera concorrente si ricorda che
DettagliFondamenti di Informatica Ingegneria Clinica Lezione 19/10/2009. Prof. Raffaele Nicolussi
Fondamenti di Informatica Ingegneria Clinica Lezione 19/10/2009 Prof. Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via B. Castiglione 59-00142 Roma Docente Raffaele Nicolussi rnicolussi@fub.it Lezioni
DettagliProgrammi e Oggetti Software
Corso di Laurea Ingegneria Civile Elementi di Informatica Programmi e Oggetti Software Settembre 2006 Programmi e Oggetti Software 1 Contenuti Cosa è un programma Cosa significa programmare Il punto di
DettagliArchitetture Informatiche. Dal Mainframe al Personal Computer
Architetture Informatiche Dal Mainframe al Personal Computer Architetture Le architetture informatiche definiscono le modalità secondo le quali sono collegati tra di loro i diversi sistemi ( livello fisico
DettagliMac 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
DettagliEsercitazioni di PROGETTAZIONE DEL SOFTWARE A.A. 2011-2012
Sapienza Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Corso di Laurea in Ingegneria Informatica ed Automatica Corso di Laurea in Ingegneria dei Sistemi Informatici
Dettaglidall 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 È
DettagliTelerilevamento e GIS Prof. Ing. Giuseppe Mussumeci
Corso di Laurea Magistrale in Ingegneria per l Ambiente e il Territorio A.A. 2014-2015 Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Strutture di dati: DB e DBMS DATO E INFORMAZIONE Dato: insieme
DettagliCiclo di vita del software: strumenti e procedure per migliorarne la sicurezza. Roberto Ugolini roberto.ugolini@postecom.it
Ciclo di vita del software: strumenti e procedure per migliorarne la sicurezza Roberto Ugolini 1 Il processo di sviluppo sicuro del codice (1/2) Il processo di sviluppo sicuro del codice () è composto
DettagliAgent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica
Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Linguaggi di Programmazione Michele Tomaiuolo Linguaggi macchina I
DettagliIntroduzione ai linguaggi di programmazione
Università degli Studi di Milano Laurea Specialistica in Genomica Funzionale e Bioinformatica Corso di Linguaggi di Programmazione per la Bioinformatica Introduzione ai linguaggi di programmazione Giorgio
Dettagli12 - 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,
DettagliSoftware. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)
INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042) Gli elaboratori utilizzano memoria per Dati da elaborare Istruzioni eseguite dall elaboratore software differenti risoluzione problemi differenti Algoritmo
Dettagli