Corso di Ingegneria del Software
|
|
- Bonifacio Bertolini
- 5 anni fa
- Visualizzazioni
Transcript
1 Corso di Ingegneria del Software Paolo Bottoni Principi dell Ingegneria del Software Lucidi tradotti e adattati a partire dalla versione in inglese presente a
2 Obiettivi Mostrare principi base per metodi, tecniche, metodologie e strumenti Illustrare sette principi usabili in ogni fase sviluppo software Evidenziare modularità come principio fondamentale per progetto software 2
3 Applicazione Principi applicati a processo e prodotto Messi in pratica via metodi e tecniche organizzati in metodologie supportate da strumenti (tool) Tools Methodologies Methodologies Methods and techniques Principles 3
4 Principi Chiave Rigore e formalità Separation of concerns Modularità Astrazione Anticipazione del cambiamento Generalità Incrementalità 4
5 Rigore e formalità Software engineering attività creativa MA Deve essere esercitata sistematicamente Rigore è complemento a creatività aumenta fiducia in passi sviluppati Formalità è rigore al grado più alto processo guidato e valutato con leggi matematiche 5
6 Esempi: prodotto Analisi matematica (formale) correttezza programmi Derivazione sistematica (rigorosa) dati di test 6
7 Esempi: processo Documentazione rigorosa passi di sviluppo per gestione progetto valutazione tempestività (timeliness) 7
8 Studio di caso: compilatore Costruzione di compilatori è area con metodi di progetto sistematico (formali) es. BNF per descrizione formale sintassi linguaggio <type declaration> ::= <class declaration> <interface declaration> ; <class declaration> ::= <class modifiers>? class <identifier> <super>? <interfaces>? <class body> <class body> ::= { <class body declarations>? } 8
9 Studio di caso: Angry Birds Definizione matematica leggi fisiche in Box2D 9
10 Separation of concerns Metodo per controllare complessità Separare tematiche Concentrarsi su una tematica per volta Divide et impera Favorisce: parallelizazione sforzi separazione responsabilità 10
11 Esempi Processo Procedere una fase per volta (modello a cascata) Separa attività nel tempo Stabilire incremento (modelli incrementali o agili) Prodotto Indica su quali problemi concentrarsi Mantenere requisiti prodotto separati: Funzionalità Prestazioni Interfaccia utente e usabilità 11
12 Separation of concerns per compilatore Progettazione algoritmi allocazione ottimale registri vs Progettazione messaggi diagnostici runtime efficiency separata da user friendliness 12
13 Separation of concerns per Angry Birds Separazione fra Rappresentazione grafica Gestione interazione Calcolo effetti Gestione profili Separazione in Box2D Definizione forme Definizione collisioni 13
14 Modularità Sistema complesso diviso in parti più semplici moduli: sistema modulare Favorisce separation of concerns trattando modulo, possiamo ignorare dettagli altri moduli 14
15 Modularità per compilatore Processo decomposto in fasi Analisi lessicale Analisi sintattica (parsing) Generazione codice Fasi associate con moduli 15
16 Struttura modulare per compilatore Diagnostica lessicale Tabella dei simboli Codice sorgente Analisi lessicale Analisi sintattica Generazione del codice Codice oggetto Albero di analisi scatole = moduli frecce = interfacce Codice tokenizzato Diagnostica sintattica Diagnostica semantica 16
17 Iterazione del processo di decomposizione in moduli Modularizzazione generazione codice Tabella dei simboli Albero di analisi Generazione del codice Generazione codice intermedio Codice intermedio Generazione codice macchina Codice oggetto 17
18 Modularità per Angry Birds Moduli: gestori eventi gestori utenti gestori animazioni gestori partite e gestori livelli 18
19 Coesione e accoppiamento Ogni modulo altamente coeso Interpretabile come unità significativa Componenti modulo strettamente correlati Moduli a basso accoppiamento Moduli hanno bassa interazione con altri Possono essere compresi separatamente 19
20 Visione schematica Alto accoppiamento Basso accoppiamento 20
21 Astrazione Identificare aspetti importanti di fenomeno Ignorare dettagli Caso particolare di separation of concerns Astrazione da applicare dipende da scopo 21
22 Astrazione Ignora dettagli Esempio: equazioni per descrivere circuiti complessi permettono ragionamenti a progettista Equazioni approssimano descrizione e ignorano dettagli che producono effetti trascurabili Produce modelli Esempio: analisi requisiti porta a modello per applicazione Modello può essere descrizione formale o semiformale Ragionare su sistema tramite ragionamento su modello 22
23 Esempi Prodotto Semantica linguaggio data da macchina astratta: ignora dettagli macchine reali per implementazione Processo rappresentazione numeri meccanismi di indirizzamento Stima costi basata solo su fattori chiave Considera similarità con sistemi precedenti, ignorando differenze di dettaglio 23
24 Astrazione per compilatore Applicata in molti casi sintassi astratta trascura dettagli sintattici es. begin end vs. { } per blocchi di istruzioni codice macchina intermedio per portabilità es. Java Bytecode 24
25 Astrazione per Angry Birds Astrazione: forme astratte eventi astratti (caricamento, rilascio, impatto) 25
26 Anticipazione del cambiamento Capacità di supportare evoluzione software richiede anticipazione possibili cambiamenti futuri Base per evolvibilità del software Es.: ambiente gestione configurazioni per progetto 26
27 Anticipazione cambiamento per compilatore Considerare possibili cambiamenti di Linguaggi sorgente (comitati di standardizzazione) Processore bersaglio Dispositivi di I/O 27
28 Anticipazione cambiamento per Angry Birds Supporto al cambiamento Indipendenza da piattaforma Linee di prodotto Attività collegate 28
29 Generalità Problema x È caso particolare di problema generale y? È istanza di classe di problemi X? Soluzione del caso più generale riusabile Bilancio fra generalità e prestazioni/costi A volte più semplice risolvere caso generale 29
30 Generalità per compilatore Parametrizzare rispetto a macchina bersaglio codice intermedio Sviluppare strumenti per generazione di compilatori e non compilatore singolo 30
31 Generalità per Angry Birds Modello generale di gioco interattivo 31
32 Incrementalità Processo avanza a passi discreti (incrementi) Esempi (processo) Consegnare sottoinsiemi di sistema per feedback rapido Nuove caratteristiche aggiunte incrementalmente Trattare prima funzionalità, poi prestazioni Consegnare primo prototipo Sforzo incrementale per trasformare prototipo in prodotto 32
33 Incrementalità per compilatore Versione base per sottoinsieme linguaggio sorgente Sottoinsiemi progressivamente più grandi Consegnare con diagnostica/ottimizzazione limitate Aggiunta successiva 33
34 Incrementalità per Angry Birds Incrementalità nuove tipologie di attaccanti nuove tipologie di difensori nuove tipologie di materiale 34
35 Un insieme diverso di principi: Wasserman Astrazioni Notazioni e metodi per analisi e progetto Prototipazione di interfacce utente Architettura software Processo software Riuso Misura Strumenti e ambienti integrati 35
36 Take away Principi guidano scelte, scelte basate su principi Modularità chiave realizzativa, separation of concerns chiave metodologica Principi si applicano a processo e prodotto 36
Principi 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
DettagliIntroduzione. Sommario. Il software. Definizione di Ingegneria del software
Sommario Introduzione Leggere Cap. 1 Ghezzi et al. Definizione Nascita dell ingegneria del software Ruolo Relazione con altre discipline Introduzione 2 Il software Il software e` definito come: i programmi,
DettagliSommario Linguaggi, messaggi e comunicazione. Introduzione ai Linguaggi di Programmazione. Linguaggio. Messaggio
Sommario Linguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione 1 2 Linguaggio Messaggio Insieme di sequenze di simboli, le parole,
DettagliInformatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione
Informatica 3 LEZIONE 1: Introduzione Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di Informatica 3 Lezione 1- Modulo 1 Introduzione al corso Introduzione Corso di Informatica 3
DettagliSommario Linguaggi, messaggi e comunicazione. Introduzione ai Linguaggi di Programmazione. Linguaggio (1) Linguaggio (2)
Sommario Linguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione 1 2 Linguaggio (1) Linguaggio (2) Insieme di sequenze di simboli,
DettagliInformatica 3. Informatica 3. Lezione 1- Modulo 1. LEZIONE 1: Introduzione. Concetti di linguaggi di programmazione. Introduzione
Informatica 3 Informatica 3 LEZIONE 1: Introduzione Lezione 1- Modulo 1 Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di Introduzione al corso Politecnico di Milano - Prof. Sara Comai
DettagliLinguaggi, Traduttori e le Basi della Programmazione
Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi
DettagliLinguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione
Sommario Linguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione 1 2 Linguaggio (1) Linguaggio (2) Insieme di sequenze di simboli,
DettagliCorso di Ingegneria del Software
Corso di Paolo Bottoni Lezione 2: Processo software Lucidi tradotti e adattati a partire dalla versione in inglese presente a http://iansommerville.com/software-engineering-book/slides/ Obiettivi Introdurre
DettagliIn passato, occuparsi di informatica era sinonimo di programmare computer
Programmare =? In passato, occuparsi di informatica era sinonimo di programmare computer attività poco stimolante, atto finale di un processo dove le fasi creative - analisi e progetto - sono già avvenute
DettagliFasi di un Compilatore
Dipartimento di Matematica e Informatica Università di Camerino Un implementazione compilativa di un linguaggio di programmazione viene realizzata tramite un programma che prende il nome di compilatore
DettagliINTERAZIONE UOMO-MACCHINA
INTERAZIONE UOMO-MACCHINA Cicli di vita Barbara Rita Barricelli Stefano Valtolina Dipartimento di Informatica Università degli studi di Milano Per dubbi/domande 2 barricelli@di.unimi.it Modelli di Cicli
DettagliCorso di Ingegneria del Software. Modelli di produzione del software
Corso di Ingegneria del Software a.a. 2009/2010 Mario Vacca mario.vacca1@istruzione.it 1. Concetti di base Sommario 2. 2.1 Modello a cascata 2.2 Modelli incrementali 2.3 2.4 Comparazione dei modelli 2.5
DettagliCiclo di vita di un sistema informativo
Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi e le priorità di realizzazione. Raccolta e analisi dei requisiti individua proprietà
DettagliJava: un linguaggio per applicazioni di rete
Java: un linguaggio per applicazioni di rete Moreno Falaschi Dipartimento di Ingegneria dell Informazione e Scienze Matematiche Università di Siena March 3, 2014 1 Caratteristiche di Java (SUN) Linguaggio
DettagliProgramma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
Dettagli3. Ciclo di Vita e Processi di Sviluppo
3. Ciclo di Vita e Processi di Sviluppo come posso procedere nello sviluppo? Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 3. Ciclo di Vita e Processi di
DettagliINTERAZIONE UOMO-MACCHINA
INTERAZIONE UOMO-MACCHINA Cicli di vita Barbara Rita Barricelli Stefano Valtolina Dipartimento di Informatica Università degli studi di Milano Modelli di Cicli di vita 2 Mostrano come le attività sono
DettagliUML Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2012/13
UML Introduzione a UML Linguaggio di Modellazione Unificato Corso di Ingegneria del Software Anno Accademico 2012/13 1 Che cosa è UML? UML (Unified Modeling Language) è un linguaggio grafico per: specificare
DettagliTraduzione ed Interpretazione
Traduzione ed Interpretazione Queste sconosciute Siano L Linguaggio ad alto livello M L Macchina astratta di L M 0 Macchina ospite Implementazione interpretativa di L Implementazione compilativa di L Simulazione
DettagliTraduzione ed Interpretazione. Queste sconosciute
Traduzione ed Interpretazione Queste sconosciute Siano L Linguaggio ad alto livello M L M 0 Macchina astratta di L Macchina ospite Implementazione interpretativa di L Simulazione software di M L su M 0
DettagliProgrammazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica
Programmazione Dipartimento di Matematica Ing. Cristiano Gregnanin Corso di laurea in Matematica 29 febbraio 2016 1 / 28 Linguaggi 2 / 28 Linguaggi 3 / 28 Linguaggi di alto livello Si basano su una macchina
DettagliIl calcolatore. Architettura di un calcolatore (Hardware)
Il calcolatore Prima parlare della programmazione, e' bene fare una brevissima introduzione su come sono strutturati i calcolatori elettronici. I calcolatori elettronici sono stati progettati e costruiti
DettagliGestione dello sviluppo software Modelli Base
Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione GESTIONE DEI SISTEMI ICT Paolo Salvaneschi A4_1 V1.0 Gestione dello sviluppo software Modelli Base Il contenuto
DettagliPIANO DI STUDIO DELLA DISCIPLINA DISCIPLINA: Tecnologia e Progettazione di Sistemi Informatici e di Telecomunicazioni
Tel. 0331 635718 fax 0331 679586 info@isisfacchinetti.gov.it www.isisfacchinetti.gov.it ISIS C. Facchinetti Sede: via Azimonti, 5-21053 Castellanza PIANO DI STUDIO DELLA DISCIPLINA Rev. 1 del 3/11/16 PIANO
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 1 Introduzione G. Mecca M. Samela Università della Basilicata Elementi di Base >> Sommario Sommario Linguaggi di Programmazione Sintassi
DettagliUnità di apprendimento 6. Dal problema al programma
Unità di apprendimento 6 Dal problema al programma Unità di apprendimento 6 Lezione 1 Conosciamo gli algoritmi e i linguaggi In questa lezione impareremo: cos è un problema come affrontarlo come descrivere
Dettaglisoftware Progettazione software IS Corso di Ingegneria del Software 1 Contenuti Progettare prima di produrre Dall analisi alla progettazione
Contenuti Progettazione software 2001 Corso di Ingegneria del Software V. Ambriola, G.A. Cignoni C. Montangero, L. Semini La progettazione Approfondimento: viste multiple Dipartimento di Informatica, Università
DettagliAgent#: un linguaggio di programmazione per lo sviluppo di agenti su piattaforma.net
Agent#: un linguaggio di agenti su piattaforma.net A. Boccalatte, C. Vecchiola, M. Coccoli (speaker: Alberto Grosso) l.i.d.o. - DIST- Università di Genova Sommario Tecnologia ad Agenti Un linguaggio orientato
DettagliMacchine astratte, linguaggi, interpretazione, compilazione
Macchine astratte, linguaggi, interpretazione, compilazione 1 Macchine astratte una collezione di strutture dati ed algoritmi in grado di memorizzare ed eseguire programmi componenti della macchina astratta
DettagliINTRODUZIONE ALLA PROGETTAZIONE. Patrizio Dazzi a.a
INTRODUZIONE ALLA PROGETTAZIONE Patrizio Dazzi a.a. 2017-2018 COMUNICAZIONI Lezione odierna e successive Metodologia di progetto Progettazione concettuale Progettazione logica Fondamentali per il secondo
DettagliElementi di programmazione
Fondamenti di Informatica per la Sicurezza a.a. 2003/04 Elementi di programmazione Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari Università
DettagliCosa è un programma. Informatica di Base -- R.Gaeta 18
Cosa è un programma Il programma è la scatola nera che risolve il problema computazionale; Il programma è una sequenza di istruzioni che devono essere eseguite; Il programma è la traduzione per il computer
DettagliLINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione Fortran Cobol Basic Pascal Python C
DettagliInterpreti, compilatori e semantica operazionale
Interpreti, compilatori e semantica operazionale 1 Linguaggi di programmazione Come si comprendono le caratteristiche di un linguaggio di programmazione? Molte risposte diverse manuali, documentazione
DettagliLINGUAGGI DI ALTO LIVELLO
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione Lezione 4 Chiara Braghin braghin@dti.unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 6 Marzo 2007 Regole della grammatica di un linguaggio
DettagliLez. 5 La Programmazione. Prof. Salvatore CUOMO
Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente
Dettaglio Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori
Programma del corso o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori o Elementi di Programmazione Algoritmi e programmi o Algoritmo
DettagliDavide Cervi Classe : 3E I.T.E Agostino Bassi - Lodi
INTRODUZIONE AI LINGUAGGI DI PROGRAMMAZIONE Davide Cervi Classe : 3E I.T.E Agostino Bassi - Lodi I LINGUAGGI DI PRIMA GENERAZIONE rientrano in questa categoria i vari linguaggi macchina proprietari, decisamente
DettagliIntroduzione a Java A. FERRARI
Introduzione a Java A. FERRARI La nascita di Java 1991 - James Gosling lavora al Green Project (SUN) per studiare la convergenza tra dispositivi di elettronica di consumo e computer 1992 il Green Project
DettagliLinguaggi e Traduttori: Analisi sintattica
Linguaggi e Traduttori: Analisi sintattica Armando Tacchella Sistemi e Tecnologie per il Ragionamento Automatico (STAR-Lab) Dipartimento di Informatica Sistemistica e Telematica (DIST) Università di Genova
DettagliLez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1
Lez. 8 La Programmazione Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 Dott. Pasquale De Michele Dott. Raffaele Farina Dipartimento di Matematica e Applicazioni Università di Napoli
DettagliLinguaggi di programmazione e astrazione
Linguaggi di programmazione e astrazione i linguaggi di programmazione ad alto livello moderni sono il più potente strumento di astrazione messo a disposizione dei programmatori che possono, con un solo
DettagliCLASSE: 4 INF MATERIA: TPSIT DOCENTE: EPIS CARLO PROGRAMMAZIONE DIDATTICA
CLASSE: 4 INF MATERIA: TPSIT DOCENTE: EPIS CARLO PROGRAMMAZIONE DIDATTICA ASSE CULTURALE SCIENTIFICO TECNOLOGICO competenze chiave competenze base abilità conoscenze Ingegneria del software. Gestire progetti
DettagliLa fase di Progettazione
Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Ingegneria del Software La fase di Progettazione Giulio Destri Ing. del Sw: Progettazione - 1 Scopo del modulo
DettagliMATERIALI PER LA DISCUSSIONE
SETTORE TECNOLOGICO MATERIALI PER LA DISCUSSIONE ISTITUTO TECNICO INDIRIZZO ARTICOLAZIONE TELECOMUNICAZIONI INFORMATICA E TELECOMUNICAZIONI ESITI DI APPRENDIMENTO Regolamento, Art. 5 comma 1 Nota: Le Competenze,
DettagliIntroduzione alla programmazione
Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste
DettagliProgrammazione = decomposizione basata su astrazioni
Programmazione = decomposizione basata su astrazioni 1 Decomposizione in moduli necessaria quando si devono sviluppare programmi abbastanza grandi decomporre il problema in sotto-problemi i moduli che
DettagliTipi di Dati Astratti
Tipi di Dati Astratti April 19, 2017 Dati e Tipi di Dato Tipo di dato: concetto di alto livello Macchina fisica: unico tipo di dato sequenze di bit Macchine Astratte: tipi di dato più complessi Tipo di
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione Linguaggi di Programmazione Programmazione. Insieme delle attività e tecniche svolte per creare un programma (codice sorgente) da far eseguire ad un computer. Che lingua comprende
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione!paradigmi linguistici, costrutti!semantica!implementazione, strutture a tempo di esecuzione 1 Linguaggi di programmazione e astrazione! i linguaggi di programmazione ad alto
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Sottoprogrammi Parte 6 Metodologia di Sviluppo - b versione 2.3 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima
DettagliCorso di Linguaggi di Programmazione + Laboratorio
Corso di inguaggi di Programmazione + aboratorio Capitolo 1 - Introduzione Si ringrazia il Dott. Marco de Gemmis per la collaborazione nella predisposizione del materiale didattico Apprendimento di un
DettagliEsempio. Le istruzioni corrispondono a quelle di sopra, ma sono scritte in modo simbolico. E indipendente dalla machina
Il compilatore C Astrazione Linguaggio macchina implica la conoscenza dei metodi usati per la rappresentazione dell informazioni nella CPU Linguaggio Assembly è il linguaggio delle istruzioni che possono
DettagliFondamenti d Informatica: linguaggi formali. Barbara Re, Phd
Fondamenti d Informatica: linguaggi formali Barbara Re, Phd Agenda } Introdurremo } La nozione di linguaggio } Strumenti per definire un linguaggio } Espressioni Regolari 2 Linguaggio } Da un punto di
DettagliI linguaggi di programmazione
I linguaggi di programmazione sono stati introdotti per facilitare ai programmatori il compito di scrittura dei programmi Sono linguaggi simbolici, in continua evoluzione Sono definiti da un insieme di
DettagliProgrammazione C Massimo Callisto De Donato
Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE
DettagliMODELLO e RAPPRESENTAZIONE
MODELLO e RAPPRESENTAZIONE I calcolatori elaborano informazione e restituiscono nuova informazione: questa deve essere rappresentata in forma simbolica Esempio : Per poter gestire una biblioteca dobbiamo
DettagliCorso di Laurea Triennale in Ingegneria Informatica Ingegneria del software. Processo software. Marina Mongiello. il processo
Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del Processo Sommario 1. Prodotto e processo 2. Ciclo di vita del 3. Modelli del processo di sviluppo 1. Modelli a processo prescrittivo 2.
DettagliDesign dell usabilità HCI. Fabio Vitali 6 marzo 2000
Design dell usabilità Fabio Vitali 6 marzo 2000 Il Progetto è il generatore. Senza Progetto, c è mancanza di ordine e volontà. Il progetto contiene in se stesso l essenza della sensazione. Le Corbusier,
DettagliProgettazione software
Contenuti Progettazione software 2001-4 Corso di Ingegneria del Software V. Ambriola, G.A. Cignoni C. Montangero, L. Semini Con aggiornamenti di: T. Vardanega La progettazione Qualità della progettazione
DettagliSyllabus. Versione 1.0 novembre 2017 (Rev.2, gennaio 2018) Copyright AICA Associazione Italiana per l Informatica ed il Calcolo Automatico
Syllabus Versione 1.0 novembre 2017 (Rev.2, gennaio 2018) 1 Obiettivo Il Syllabus e4job è costituito dagli argomenti che consentono di: avere una profonda cultura del mondo digitale e del tumultuoso cambiamento
DettagliLinguaggi di alto livello, compilatori e interpreti
Linguaggi di alto livello, compilatori e interpreti Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Il punto della situazione STATO DATI
DettagliAlgoritmi e Linguaggi
Algoritmi e Linguaggi Programmi e linguaggi Un calcolatore è solo un esecutore rapidissimo di istruzioni Un programma è un insieme di istruzioni codificate in un opportuno linguaggio 2 / 21 Linguaggi e
DettagliLINGUAGGI DI ALTO LIVELLO
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic Ada
DettagliA. Ferrari. informatica. introduzione a Java. Alberto Ferrari Informatica
informatica introduzione a Java La nascita di Java 1991 - James Gosling lavora al Green Project (SUN) per studiare la convergenza tra dispositivi di elettronica di consumo e computer 1992 il Green Project
DettagliTECNICO SUPERIORE PER L AUTOMAZIONE INDUSTRIALE
UNITA CAPITALIZZABILI PER LA FIGURA PROFESSIONALE TECNICO SUPERIORE PER L AUTOMAZIONE INDUSTRIALE ISTRUZIONE E FORMAZIONE TECNICA SUPERIORE 73 74 ISTRUZIONE E FORMAZIONE TECNICA SUPERIORE UNITÀ CAPITALIZZABILE
DettagliIndice. Prefazione. 3 Oggetti e Java 53
Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware
DettagliElementi di programmazione
Fondamenti di Informatica per la Sicurezza a.a. 2008/09 Elementi di programmazione Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università
DettagliAnalisi e Progettazione del Software
Analisi e Progettazione del Software La Fase di Elaborazione: Introduzione versione 1.0 G. Mecca Università della Basilicata mecca@unibas.it La Fase di Elaborazione: Introduzione >> Sommario Sommario Il
DettagliFondamenti VBA. Che cos è VBA
Fondamenti VBA Che cos è VBA VBA, Visual Basic for Application è un linguaggio di programmazione, inserito nelle applicazioni Office di Microsoft (Ms Word, Ms Excel, Ms PowerPoint, Visio). VBA è una implementazione
DettagliDocente: Prof. Marco Patella Tutor: Stefano Pio Zingaro
Università di Bologna Facoltà di Ingegneria C.d.L. in Ing. Gestionale Fondamenti di Informatica T-1 (A-K) A.A. 2016/17 Docente: Prof. Marco Patella Tutor: Stefano Pio Zingaro 1 Obiettivi del corso Il corso
DettagliCorso di Ingegneria del Software. Modelli di produzione del software
Corso di Ingegneria del Software a.a. 2009/2010 Mario Vacca mario.vacca1@istruzione.it 1. Concetti di base Sommario 2. 2.1 Modello a cascata 2.2 Modelli incrementali 2.3 Modelli evolutivi 2.4 Modelli agili
DettagliAutomatic generation of test cases
Tecniche Automatiche per la Correttezza del Software 2016/2017 Automatic generation of test cases Prof. Salvatore La Torre Alessandro Sacco Overview Testing Manual Testing vs Automated Testing Generazione
DettagliMacchina Astratta: struttura e realizzazione.
Macchina Astratta: struttura e realizzazione. Sommario Macchina Astratta e l interprete di Macchina Hight e Low Level Languages Implementazione di un Linguaggio Macchina Intermedia Gerarchia di Macchine
DettagliDocente: Prof. Marco Patella Tutor: Vincenzo Lomonaco
Università di Bologna Facoltà di Ingegneria C.d.L. in Ing. Gestionale Fondamenti di Informatica T-1 (A-K) A.A. 2015/16 Docente: Prof. Marco Patella Tutor: Vincenzo Lomonaco 1 Obiettivi del corso Il corso
DettagliInformatica e Comunicazione Digitale Crediti formativi 9. No, ma la frequenza è fortemente consigliata Lingua di erogazione
Principali informazioni sull insegnamento Titolo insegnamento Linguaggi di Programmazione Corso di studio Informatica e Comunicazione Digitale Crediti formativi 9 Denominazione inglese Programming Languages
DettagliAlgoritmi, Strutture Dati e Programmi. UD 2.d: Linguaggi Procedurali
Algoritmi, Strutture Dati e Programmi : Linguaggi Procedurali Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno LINGUAGGI PROCEDURALI Curtin, cap. 12.3 1 Linguaggi di Programmazione
DettagliUML I diagrammi implementativi
Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - UML I diagrammi implementativi E. TINELLI I diagrammi implementativi In UML 2.x esistono 3 tipi di
DettagliLinguaggi di Programmazione dall assembler ai linguaggi di alto livello
Linguaggi di Programmazione dall assembler ai linguaggi di alto livello LINGUAGGIO MACCHINA 0 READ 8 READ 9 LOADA 8 3 LOADB 9 4 MUL 5 STOREA 8 6 WRITE 8 7 HALT 8 DATO INTERO 9 DATO INTERO Rappresentazione
DettagliSCD IS. Documentazione. Documentazione. Perché documentare... Valutazione quantitativa 1. Domande ricorrenti 1. Perché documentare
Perché documentare... Anno accademico 2014/15 Ingegneria del Software mod. A Tullio Vardanega, tullio.vardanega@math.unipd.it SCD IS Perché la gestione di progetto necessita di elementi di controllo e
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi
DettagliProgettazione del Software I (Ing.Informatica Nuovo Ord.) Canale A-L / A.A Marco Cadoli
Progettazione del Software I (Ing.Informatica Nuovo Ord.) Canale A-L / A.A. 2005-06 Marco Cadoli Università di Roma La Sapienza Dipartimento di Informatica e Sistemistica www.dis.uniroma1.it/~cadoli PRIMA
DettagliCorso di Linguaggi di Programmazione
Corso di Linguaggi di Programmazione Lezione 5 Chiara Braghin braghin@dti.unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 10 Marzo 2008 Struttura di un compilatore
DettagliTecniche di Programmazione 2009/10
Il processo software Tecniche di Programmazione Lez. 02 Università di Firenze a.a. 2009/10, I semestre 1/26 contenuti I processi aziendali Il processo e i cicli di vita del software ISO/IEC 12207: processi,
DettagliIl linguaggio di programmazione Python
Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani (liverani@mat.uniroma3.it)
DettagliIntroduzione al corso. Obiettivo del corso
Università della Calabria Corso di Laurea in Ingegneria Elettronica Programmazione Orientata agli Oggetti A.A. 2006/2007 Introduzione al corso Paolo Trunfio * * DEIS, Università della Calabria http://si.deis.unical.it/~trunfio
DettagliAgilità e robustezza nell'insegnamento della programmazione
GII/AICA settembre 2013 Sfide didattiche per l'informatica del 2020 Agilità e robustezza nell'insegnamento della programmazione Enrico Vicario Dipartimento di Ingegneria dell'informazione Laboratorio Scienza
DettagliOrganizzazione strutturata
Organizzazione strutturata Evoluzione storica a.a. 2002-03 L. Borrelli 1 Complessità dei Sistemi di Elaborazione Caratteristica dei Sistemi di Elaborazione: Complessità Per trattare sistemi complessi è
DettagliI Linguaggi di Programmazione
I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Introduzione versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima
Dettagli