EUCIP livello core B - Area di Realizzazione Sistemi Informativi (Build) Acquisition, Development and Implementation of Information Systems

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "EUCIP livello core B - Area di Realizzazione Sistemi Informativi (Build) Acquisition, Development and Implementation of Information Systems"

Transcript

1 The true test of character is not how much we know how to do, but how we behave when we don t know what to do. John W. Holt, Jr. EUCIP livello core B - Area di Realizzazione Sistemi Informativi (Build) 1 Acquisition, Development and Implementation of Information Systems

2 2

3 BUILD: Categorie B.1 Systems Development Process and Methods B.2 Data Management and Databases B.3 Programming B.4 User Interface and Web Design 3

4 B.1 System Development Process and Methods B.1.1 Software in Data Processing Systems B Describe a data processing system as a combination of hardware, firmware, operating system software, application software, system configuration data and user-defined data. B Recognise and list examples of system software. B Recognise and list examples of application software. 4

5 B - BUILD/ B.1 System Development Process and Methods / B.1.1 Application software and system software Data Processing System User Application Data System Configuration Data 5 Firmware

6 B - BUILD/ B.1 System Development Process and Methods / B.1.1 Application software and system software software applicativo e di sistema Business Software ERP Office Workflow Entertainment & Games DataBase Management System Educational Multimedia Publishing Social (was Communication) 6 Device drivers Operating systems Grafical User Interface

7 B - BUILD/ B.1 System Development Process and Methods / B.1.1 Application software and system software ERP Enterprise Resource Planning 7

8 Publishing 8

9 Publishing & Ebook During Jeff Bezos' presentation of the new Kindles, he flashed the slide below which shows the phenomenal growth of Amazon's Kindle ebook sales I n comparison to physical book sales 9

10 Multimedia Tinyshark 8 Tracks Bambuser

11 Social Instant Messaging: ICQ, MSN Messenger,Yahoo! Messenger Internet Forums Wiki ( dalla parola Hawaiana [viti] che significa veloce. Ward Cunningham, the developer of the first wiki software (1995), WikiWikiWeb, originally described it as "the simplest online database that could possibly work. Blogs (contrazione di Web Logs): Wordpress, Drupal. Weebly Social Network Services: Facebook, Google+, Twitter, Linkedin, Foursquare Social Bookmarking: Del.icio.us Virtual Worlds: Second Life, MMOG (Massively Multiplayer Online Games)

12 Operating System Tux Windows XP Windows Vista Windows 7 Windows 8 Mac OS X GNU Linux Distribuzioni: Debian Fedora Knoppix Mandriva Red Hat Slackware SuSE Ubuntu

13 Sistemi Operativi Smartphone & Tablet

14 Sistemi Operativi Smartphone

15 Applicazioni Android

16 La mutazione In video la lunga lezione che Alessandro Baricco ha tenuto al cinema Anteo di Milano su i barbari e la mutazione (7 parti) "Il timore di essere sopraffatti e distrutti da orde barbariche è vecchio come la storia della civiltà. Immagini di desertificazione, di giardini saccheggiati da nomadi e di palazzi in sfacelo nei quali pascolano le greggi sono ricorrenti nella letteratura della decadenza dall'antichità fino ai giorni nostri". Wolfgang Schivelbush - La cultura dei vinti 16

17 Chi è? "Eleganza, purezza e misura, che erano i principi della nostra arte, si sono gradualmente arresi al nuovo stile, frivolo e affettato, che questi tempi, dal talento superficiale, hanno adottato. Cervelli che, per educazione e abitudine, non riescono a pensare a qualcosa d'altro che i vestiti, la moda, il gossip, la lettura di romanzi e la dissipazione morale, fanno fatica a provare i piaceri, più elaborati e meno febbrili, della scienza e dell'arte. Xxxxxxxx scrive per quei cervelli, e in questo pare che abbia un certo successo, se devo credere agli elogi che, da ogni parte, sento fiorire per questo suo ultimo lavoro". The Quarterly Musical Magazine and Review 17

18 Multitasking & Virtual Memory Multitasking Virtual Memory

19 Device Driver Insieme di procedure, che permette ad un sistema operativo di pilotare un dispositivo hardware. Il driver permette al sistema operativo di utilizzare l'hardware senza sapere come esso funzioni, ma dialogandoci attraverso un interfaccia standard che astrae dalla implemenrtazione dell'hardware e che ne considera solo il funzionamento logico. In questo modo hardware diverso costruito da produttori diversi può essere utilizzato in modo intercambiabile. Ne consegue che un driver è specifico sia dal punto di vista dell'hardware che pilota, sia dal punto di vista del sistema operativo per cui è scritto. Il driver è scritto solitamente dal produttore del dispositivo hardware, dato che è richiesta un'approfondita conoscenza dell'hardware.

20 B.1 System Development Process and Methods B.1.2. Systems Development Life Cycles B Describe the typical phases of systems development B Compare the various classical models of systems development life cycle B Describe the life-cycle of a system B Outline specifications for requirements and design 20

21 B - BUILD / B.1 SD Process and Methods/ B.1.2 System Development principles and methodologies Fasi del Ciclo di vita del software 21

22 B - BUILD / B.1 SD Process and Methods/ B.1.2 System Development principles and methodologies Fasi del Ciclo di vita del software 22

23 PRACTICE Happiness nel Ciclo di vita del software 23

24 B - BUILD / B.1 SD Process and Methods/ B.1.2 System Development principles and methodologies Modelli per lo sviluppo software - WATERFALL Ogni fase è concatenata in sequenza alla successiva, a cui trasmette le informazioni necessarie per la prosecuzione delle attività. Per ogni passaggio viene effettuata una revisione ed approvazione (design review), che serve da presupposto per il passaggio all attività seguente. E un modello solido e robusto, ma limitato da una struttura poco flessibile. Richiede che tutti i requisiti siano ben definiti all inizio, perchè rivedere le esigenze nelle fasi successive o correggere gli errori ha un costo molto elevato. 24

25 B - BUILD / B.1 SD Process and Methods/ B.1.2 System Development principles and methodologies Modelli per lo sviluppo software - PROTOTYPING Spesso un cliente definisce un insieme generale di obiettivi per il software, ma non fornisce un livello dettagliato di requisiti Esempio: Interfaccia Utente In questi casi il Modello Prototipale può essere la soluzione migliore 25

26 B - BUILD / B.1 SD Process and Methods/ B.1.2 System Development principles and methodologies Modelli per lo sviluppo software - PROTOTYPING 26

27 B - BUILD / B.1 SD Process and Methods/ B.1.2 System Development principles and methodologies Modelli per lo sviluppo software - PROTOTYPING L obiettivo principale di un prototipo è l identificazione di requisiti software. Il prototipo può essere di tipo evolutivo, oppure usa e getta (throw away). Limiti del modello evolutivo (Qualità, Efficienza) E importante definire le regole del gioco 27

28 B - BUILD / B.1 System Development Process and Methods/ B.1.2 System Development principles and methodologies Modelli per lo sviluppo software - INCREMENTAL Questo modello combina elementi del modello Waterfall con la filosofia iterativa del modello Prototipale. Ogni ciclo Waterfall produce un Incremento rilasciabile del software Focus sul rilascio di un prodotto utilizzabile Questo modello si applica perfettamente nei progetti in cui: Alcune funzionalità di base sono richieste in anticipo. I requisiti sono definiti, ma è possibile ritardare la loro realizzazione. Non è possibile (vincoli di risorse/del rischio) rilasciare tutte le funzionalità allo stesso tempo. Dati i requisiti è complesso disegnare fin dall'inizio la funzionalità. 28

29 B - BUILD / B.1 System Development Process and Methods/ B.1.5 System Implementation Data Migration 29

30 B - BUILD / B.1 System Development Process and Methods/ B.1.5 System Implementation End User Training 30

31 B.1 System Development Process and Methods B.1.3. System Development Tools B Outline the use of tools at different stages of systems development B Outline the strengths development environments and weaknesses of different B Outline the use of simple development tools for editing 31 software

32 B - BUILD / B.1 System Development Process and Methods/ B.1.3 System Development Tools Strumenti per lo sviluppo di sistemi I CASE sono strumenti che applicano i principi dell ingegneria del software sia all analisi che allo sviluppo e con lo scopo di automatizzare la produzione dei sistemi. Esistono stumenti che supportano il reverse-engineering, che permettono di ricostruire a ritroso il percorso effettuato in fase di sviluppo. Upper-CASE Supportano le fasi iniziali del processo (analisi dei requisiti e progettazione) Lower-CASE supportano le fasi finali (programmazione, debugging, testing) 32

33 B - BUILD / B.1 System Development Process and Methods/ B.1.3 System Development Tools Strumenti per lo sviluppo di sistemi CVS Concurrent Versioning System or VCS Version Control System 33

34 B.1 System Development Process and Methods B.1.4. System Testing and Deployment B Describe the different types of testing and review applied during the system development B Describe the main issues in the system implementation phase B Outline the strengths and weaknesses of different implementation approaches B List the typical components of system user manuals and technical reference documents. 34

35 B - BUILD / B.1 System Development Process and Methods/ B.1.4 Software and SystemTesting Testing e collaudo dei sistemi software Definizione di VERIFICA secondo IEEE (Institute of Electrical and Electronics Engineers) L insieme delle attività di revisione, ispezione, collaudo, prova formale, indagine che definisce e attesta come gli oggetti, i processi, i servizi e i documenti siano conformi ai requisiti specificati 35

36 B - BUILD / B.1 System Development Process and Methods/ B.1.4 Software and SystemTesting Testing e collaudo dei sistemi software GESTIONE DELLA RINTRACCIABILITA PROVE FORMALI verificare da un punto di vista logico-matematico la correttezza del software Esempio: Realizzazione di protocolli di comunicazione, Sistemi di cifratura e sicurezza COLLAUDO definisce delle condizioni operative e verifica il sistema usando un ampio numero di input, confrontando i risultati effettivi con quelli attesi e valutandone la corrispondenza o o o Test che controllano l AFFIDABILITA : Volume test: massimo carico di lavoro previsto dalle specifiche Stress test: carico di lavoro eccezionale, non previsto dalle specifiche Test che controllano l EFFICIENZA: Performance test: verifica che i tempi di risposta siano compatibili con i requisiti Storage use test: valuta la quantità di memoria necessaria Test che controllano la PORTABILITA : Configuration test: verifica che il prodotto sia supportato su qualsiasi piattaforma Compatibility test: compatibilità con prodotti/altre applicazioni con cui deve operare 36

37 B - BUILD / B.1 System Development Process and Methods/ B.1.4 Software and SystemTesting Testing e collaudo dei sistemi software V - MODEL 37

38 B - BUILD / B.1 System Development Process and Methods/ B.1.4 Software and SystemTesting Testing e collaudo dei sistemi software Black-Box testing (Copertura Logica): In questo caso non conosciamo come è fatto il modulo che vogliamo testare. Il nostro focus sarà sul comportamento input-output che sarà definito dalle specifiche. Il test può essere effettuato da una terza persona che non ha sviluppato il modulo e può essere automatizzato. White-Box testing (Copertura Topologica): La conoscenze approfondita del modulo permette di testare con un maggior livello di dettaglio. I dati di input possono essere scelti in modo che ogni istruzione sia eseguita almeno una volta. Più difficile da implementare ma è in grado di rilevare un maggiore numero di errori. 38

39 B - BUILD / B.1 SD Process and Methods/ B.1.2 System Development principles and methodologies Modelli per lo sviluppo software - Documenti Studio di fattibilità Requisiti Specifiche Funzionali Disegno Architetturale Specifiche di Progettazione Specifiche di Test Specifiche d Integrazione Report di Test Report d Integrazione Manuale d Installazione 39 Codice Codice dei Test Manuale Utente

40 B - BUILD / B.1 SD Process and Methods/ B.1.2 System Development principles and methodologies Requirements Process - Libri Mastering the Requirements Process (3rd Edition) To listen well is as powerful a means of communication and influence as to talk well. John Marshall, Chief Justice of the United States 40

41 B - BUILD / B.1 SD Process and Methods/ B.1.2 System Development principles and methodologies Modelli per lo sviluppo software - Libri 41

42 B - BUILD / B.1 SD Process and Methods/ B.1.2 System Development principles and methodologies Modelli per lo sviluppo software - Libri 42

43 B - BUILD / B.1 SD Process and Methods/ B.1.2 System Development principles and methodologies Modelli per lo sviluppo software Casi d uso 43

44 B - BUILD / B.1 SD Process and Methods/ B.1.2 System Development principles and methodologies DFD Data Flow Diagram 44

45 B.1 System Development Process and Methods B.1.5. System Control and Safety B Distinguish between development, test and production environments B Recognise risks related to system failures B Describe the day-to-day security routines in a distributed system 45

46 B - BUILD / B.1 System Development Process and Methods/ B.1.5 System control and safety Sicurezza Secondo le norme ISO la sicurezza è definita come l insieme degli sforzi dedicati ad assicurare la protezione dei dati e delle risorse di sistema in termini di integrità, riservatezza e disponibilità INTEGRITA - Integrity prevenire la modifica inopportuna di dati o funzionalità del sistema RISERVATEZZA - Confidentiality è stata definita da International Organization for Standardization (ISO) in ISO come: "ensuring that information is accessible only to those authorized to have access DISPONIBILITA - Availability il tempo in cui un sistema è disponibile ad operare in uno stato affidabile 46

47 B - BUILD / B.1 System Development Process and Methods/ B.1.5 System control and safety RAID Redundant Array of Independent Disk 47

48 B - BUILD / B.1 System Development Process and Methods/ B.1.5 System control and safety Cluster Architecture 48

49 B - BUILD / B.1 System Development Process and Methods/ B.1.5 System control and safety Architettura DMZ DeMilitarized Zone 49

50 B - BUILD / B.1 System Development Process and Methods/ B.1.5 System control and safety Availaibility Indici di misura MTBF Mean Time Between Failures MTTR MeanTime To Repair MTBF Availaibility (%) MTBF + 50 MTTR

51 B - BUILD / B.1 System Development Process and Methods/ B.1.5 System control and safety Sicurezza Altri concetti di sicurezza: IDENTIFICAZIONE AUTENTICAZIONE L autenticazione tramite password viene definita debole perchè: La password ha generalmente una lunghezza limitata La password può essere scoperta facilmente La password viaggia spesso in chiaro sulla rete di comunicazione Algoritmi di hash che consentono di non far viaggiare in chiaro i dati Autenticazione con riconoscimento biometrico: Riconoscimento delle impronte digitali (fingermarks) Scansione della retina (retina scan) NON RIPUDIO Consente di associare il dato a colui che lo ha sottoscritto 51

52 B - BUILD / B.1 System Development Process and Methods/ B.1.5 System control and safety Crittografia Simmetrica 52

53 B - BUILD / B.1 System Development Process and Methods/ B.1.5 System control and safety Crittografia Asimmetrica 53

54 B - BUILD / B.1 System Development Process and Methods/ B.1.5 System control and safety Firma Digitale 54

55 B - BUILD / B.1 System Development Process and Methods/ B.1.5 System control and safety Firma Digitale 55

56 B - BUILD / B.1 System Development Process and Methods/ B.1.5 System control and safety Security Policy - Scopo Con la rapida evoluzione dell ICT, i sistemi informatici hanno assunto importanza centrale nell assetto organizzativo e funzionale delle imprese e delle istituzioni. La diffusione delle tecnologie fondate sul paradigma della Rete poi, ha favorito il ridisegno dei confini organizzativi dell impresa, sempre più aperta e connessa con altri soggetti e sistemi informatici. In questo contesto, l adozione di efficaci politiche di sicurezza informatica ha rilevanza cruciale, in quanto da essa possono dipendere le stesse sorti dell impresa/istituzione. Si tratta di un compito non facile, in ragione soprattutto dei continui cambiamenti delle tecnologie e dell elevato impegno operativo, organizzativo e finanziario richiesto a tutti i livelli della struttura aziendale. 56

57 B - BUILD / B.1 System Development Process and Methods/ B.1.5 System control and safety Security Policy Principi Generali Le misure di sicurezza devono essere conformi ai requisiti di business aziendali, nonché alle normative vigenti. La sicurezza riguarda tutti e la consapevolezza individuale gioca un ruolo fondamentale nel conseguimento degli obiettivi di sicurezza prefissati. Le misure di sicurezza devono essere efficaci e comprensibili e bilanciate rispetto ai relativi costi. La sicurezza richiede una combinazione di misure tecniche e organizzative. È necessario che la sicurezza sia pianificata e integrata nelle attività di sviluppo dalle fasi iniziali. Le autorizzazioni devono essere basate sul principio del "need-to-know" correlato al business aziendale.. La sicurezza deve essere continuamente monitorata. 57 Fonte: OCSE, Guidelines for the Security of Information Systems;

58 B.1 System Development Process and Methods B.1.6. Trends in Systems Development B Describe standard and innovative approaches B Understand the impact of current technical architecture developments B Describe the complexity of modern system of systems 58

59 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement Tendenze evolutive nello sviluppo dei sistemi La necessità di standardizzare i processi software nasce dall esigenza di assicurarne la qualità in base a determinati parametri di riferimento Enti specializzati nella regolamentazione del processo di produzione software: ISO (International Organization of Standardization) IEEE (Institute of Electrical and Electronics Engineers) SEI (Software Engineering Institute) ANSI (American National Standard Institute) CEN (Comité Europée de Normalisation) UNI (Ente Nazionale Italiano di Unificazione) 59

60 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement ISO

61 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement ISO 9000 ISO 9000 identifica una serie di norme e linee guida sviluppate dall ISO, che propongono un sistema di gestione per la qualità, pensato per tenere sotto controllo i processi aziendali indirizzandoli alla soddisfazione del cliente. Le ISO 9000 attualmente (dall'anno 2000 in avanti) sono suddivise in: ISO 9000 descrive terminologia e principi essenziali dei sistemi di gestione qualità e della loro organizzazione ISO 9001 per la definizione dei requisiti dei sistemi qualità ISO 9004 è la linea guida per il miglioramento delle prestazioni delle organizzazioni 61

62 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement CMM - Capability Maturity Model Il modello CMM del Software Engineering Institute, valuta il grado di maturità dell approccio alla qualità. Consente di classificare le aziende in base all effettivo approccio alla qualità da esse attuato. 62

63 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement Software Estimation described in Steve McConnell s book Rapid Development 63

64 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement Function Points 64

65 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement Capers Jones 65

66 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement Capers Jones 66

67 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement Capers Jones 67

68 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement Capers Jones 68

69 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement Capers Jones - libri 69

70 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement Metodologie Agili You never change things by fighting the existing reality. To change something, build a new model that makes the existing model obsolete. RICHARD BUCKMINSTER FULLER Le metodologie agili nascono alla fine degli anni 90 con l avvento dei sw per il web. Keypoint: I requisiti cambiano Esempi: Spesso il cliente, soprattutto all inizio di un progetto, non sa quel che vuole Spesso un cliente non sa esprimere quel che vuole (es. non conosce la terminologia) Spesso un cliente ha dei motivi per non esprimersi compiutamente Il cliente cambia semplicemente opinione E stato necessario definire una metodologia di sviluppo software che prendesse in considerazione cambiamenti frequenti nei requisiti. Le metodologie agili non sono predittive, non cercano di prevedere come evolverà il sistema software, bensì sono adattive, ossia cercano di capire le pratiche migliori per meglio adattarsi all evoluzione dei requisiti utente. 70

71 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement Metodologie Agili Nell ingegneria del software, per metodologia agile (o leggera) o metodo agile si intende una particolare metodologia di sviluppo del software che coinvolge quanto più possibile il cliente e che ha come fine quello di ridurre il rischio di fallimento nello sviluppo software. Gran parte dei metodi agili tenta di ridurre il rischio di fallimento sviluppando il sw in finestre di tempo limitate chiamate iterazioni. Una iterazione è un piccolo progetto a sé stante che si compone di: Analisi dei requisiti Planning Implementazione e Testing Documentazione Gli scopi sono: permettere al cliente di seguire lo sviluppo e dargli la possibilità di testare dare agli sviluppatori la possibilità di risolvere i bug e gli errori riscontrati dai clienti iterazione dopo iterazione si giungerà al prodotto finale che il cliente desidera extreme Programming (XP),SCRUM,Feature Driven Development, Dynamic Systems Development Method (DSDM),Crystal 71

72 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement Metodologie Agili 72

73 PRACTICE Metodologie Agili 73

74 PRACTICE Estimation: the Agile viewpoint 74

75 PRACTICE Metodologie Agili 75

76 PRACTICE Metodologie Agili It is not the strongest of the species that survive, nor the most intelligent, but the one most responsive to change. CHARLES DARWIN 76

77 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement Three-Tier Application 77

78 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement SOA Service Oriented Architecture 78

79 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement SOA Service Oriented Architecture Per il chief information officer (CIO), SOA riduce il lifetime cost dell application portfolio, massimizza il return on investment (ROI) sia delle applicazioni e delle risorse tecnologiche, e riduce i tempi per il rilascio di soluzioni al business.. Per il business executive, SOA è un insieme di servizi che può essere reso disponibile a clienti, partners, e altre parti dell organizzazione. Le capacità di Business, le funzioni, e la logica di business può essere combinata e ricombinata per soddisfare le necessità del business oggi e domani. Le applicazioni servono il business perchè sono composte di servizi che possono essere velocemente modificata e redeployed in nuovi contesti di business Permettendo al business di rispondere rapidamente alle necessita dei clienti, alle opportunità di business, e alle condizioni di mercato. Per il business analyst, SOA è un modo per unlocking the value, perchè i processi di business non sono più locked negli application silos. Le applicazioni non si comportano più come inibitori al cambiamento delle necessità di business. 79

80 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement SOA Service Oriented Architecture. Per il chief architect o enterprise architect, SOA è un modo per creare applicazioni dinamiche, alltamente configurabili e collaborative costruite per il cambiamento. SOA riduce la complessità e la rigidità IT contrastando la graduale entropia che rende le applicazioni fragili e difficili da modificare. SOA riduce costi e tempi perchè riduce la complessità rendendo più facile la modifica e il test delle applicazioni quando sono strutturate per usare I servizi. Per l IT architect, SOA è una soluzione architetturale per integrare diversi sistemi fornendo uno stile architetturale che promuove il loose coupling e il riuso. Per il developer, SOA is è un modello o paradigma di programmazione dove i web services e i contracts diventano la progettazione dominante per l interoperabilità. Un web service usa il Web Service Description Language (WSDL) o una specifica equivalente per descrivere il servizio. I Web services abilitano le organizzazioni a comunicare, usando messaggi, senza una conoscenza intima dei diversi sistemi. 80

81 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement SOA Service Oriented Architecture 81

82 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement SOA Service Oriented Architecture Delivering on the promises of SOA improved business agility maximized ROI, q reduced IT complexity and rigidity q reduced costs q reduced lead times q reduced risk q new opportunities to deliver value q increased participation in value networks q incremental implementation q q Richiede una visione olistica della SOA. Se limitiamo la visione della SOA ad un singolo stakeholder (e.g., IT architect, developer, o business analyst) i benefici non verranno maturati perchè la SOA diventerà semplicemente l ennesimo elemento di una lunga lista di tecnologie sopravvalutate piuttosto di essere un nuovo approccio per costruire soluzioni flessibili di business. 82

83 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement SOA Service Oriented Architecture Un servizio in SOA è una logical, self-contained business function. I servizi in SOA hanno I seguenti attributi: Stateless: I servizi SOA non ricordano l ultima cosa che è gli è stata richiesta di fare nè si prendono cura di quale sarà la prossima. I servizi non sono dipendenti dal contesto o dallo stato di altri servizi. Il World Wide Web fornisce un eccelente esempio, dove ogni richiesta dell utente di una pagina web non influenza in nessun modo la richiesta successiva. Discoverable: Un servizio deve essere discoverable dai potenziali utilizzatori del servizio.dopo tutto, se non si conosce l esistenza di un servizio probabilmente questi non verrà mai usato. I servizi vengono pubblicati ed esposti dai service providers nelle SOA service directory, da dove vengono discovered and invoked dai service consumers. Self-describing: L interfaccia del servizio SOA descrive, espone, e fornisce un entry point al servizio. L interfaccia contiene tutte le informazioni di cui un service consumer ha bisogno per rilevare e connettersi al servizio, senza che consumer comprenda (o veda) i dettagli tecnici di implementazione. 83

84 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement SOA Service Oriented Architecture Composable: I servizi SOA sono, per natura, compositi. Possono essere composti di altri servizi che a loro volta possono essere combinati con altri servizi creando nuove soluzioni di business. Loose coupling: Loose coupling permette di separare le problematiche (concerns) relative alle features delle applicazioni in parti indipendenti fornendo un meccanismo per cui un servizio invoca un altro servizio senza essere strettamente legato a quest ultimo. La separation of concerns si ottiene stabilendo confini logici o fisici che delineano un insieme di responsabilità. Per esempio, un account service ha le features open account, authorization, e audit che delineano le responsabilità e tre di verse aree di responsabilità. Governed by policy: Services are built by contract. Le relazioni tra servizi sono governate da policies e service-level agreements (SLAs), che promuovono la process consistency e riducono la complessità. Independent location, language, and protocol: I servizi sono disegnati per essere location transparent and protocol/platform independent (in termini generali accessibili da ogni utente autorizzato, su ogni piattaforma, da ogni luogo). 84

85 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement SOA Service Oriented Architecture Inoltre I servizi di una SOA hanno tipicamente le seguenti caratteristiche: Coarse-grained: I servizi sono tipicamente funzioni di business coarse-grained (a grana grossa). La granularità è un requisito di ricchezza funzionale di un servizio (più un servizio è coarse-grained più sono ricche le funzionalità che offre). I servizi Coarse-grained riducono la complessità per i system developers limitando gli step necessari a soddisfare una data funzione di business. Asynchronous: La comunicazione asincrona non è richiesta per un servizio SOA, ma aumenta la scalabilità di un sistema attraverso un comportamento asincrono e tecniche basate sui messaggi. La latenza di rete non predicibile e gli alti costi di comunicazione possono rallentare I tempi di risposta in un SOA environment a causa della natura distribuita dei servizi. Il comportamento asincrono e il messaging permettono a un servizio di inoltrare una richiesta e continuare l elaborazione fino a quando il service provider ritornerà una risposta. 85

86 B.2 Data Management and Databases B.2.1 Data and Transactions B Outline the importance of durable data recording for transaction processing and reporting systems B Describe how atomicity, consistency, isolation and durability help to guarantee secure database transactions B Outline design and maintenance issues for multi-user systems 86

87 B - BUILD / B.2 Data Management and Databases/B.2.1 Data and Transactions Dato e Informazione Definiamo il dato come unita` elementare (grezza) di informazione Informazione e` l elaborazione dei dati per rispondere a esigenze specifiche Un dato è ciò che è immediatamente presente alla conoscenza. Una sua elaborazione può portare alla conoscenza di una informazione Dati: 03/04/ /03/2008 4/3/ Informazione: in diverse forme e rappresentazioni queste stringhe di caratteri possono per esempio corrispondere a una data. 87

88 B - BUILD / B.2 Data Management and Databases/B.2.1 Data and Transactions Database Database un insieme di informazioni catalogate e organizzate DBMS acronimo di Data Base Management System è il software che permette di creare e gestire un database 88

89 B - BUILD / B.2 Data Management and Databases/B.2.1 Data and Transactions Transazione TRANSAZIONE è un insieme di operazioni sul database che deve essere eseguita in maniera atomica o tutto o niente Una transazione deve essere ACID Atomicity : atomicità, la transazione è indivisibile nella sua esecuzione e la sua esecuzione deve essere o totale o nulla, non sono ammesse esecuzioni intermedie (COMMIT-ROLLBACK); Consistency : coerenza, quando inizia una transazione il database si trova in uno stato coerente e quando la transazione termina il database deve essere in uno stato coerente, ovvero non deve violare eventuali vincoli di integrità, quindi non devono verificarsi contraddizioni (inconsistency) tra i dati archiviati nel DB Isolation: isolamento, ogni transazione deve essere eseguita in modo isolato e indipendente dalle altre, l'eventuale fallimento di una transazione non deve interferire con altre transazioni in esecuzione (DEADLOCK) Durability: persistenza, dopo un commit work, i cambiamenti apportati non dovranno essere più persi. 89

90 B - BUILD / B.2 Data Management and Databases/B.2.1 Data and Transactions Database RIDONDANZA E COERENZA Esempio: Data di nascita ed Età INTEGRITA FISICA: Esempio anomalia HW del dispositivo di memoria di massa LOGICA: Esempio: gestione di una Fattura in un sistema di contabilità INTEGRITA REFERENZIALE La dipendenza funzionale di un informazione da un altra viene gestita da un DBMS tramite l Integrità Referenziale, che permette di creare associazione tra i dati ed impedire errori nelle operazioni di inserimento, cancellazione e modifica di questi dati. 90

91 B.2 Data Management and Data Base B.2.2 Database Structure B Distinguish between a file management system and a database management system (DBMS) B Describe the components of a database system, such as data files, data dictionary, indexes, statistical data B Outline the business areas where a DBMS is used B Outline the components of a DBMS B Describe the different roles of a database administrator 91

92 B - BUILD / B.2 Data Management and Databases/B.2.1 Data and Transactions Database relazionale Il concetto di database relazionale viene introdotto nel 1970 da E.F. Codd nel libro "A relational Model if Data for Large Shared Data Banks" con lo scopo di rappresentare situazioni reali tramite uno schema concettuale di un database in modo indipendente dalla modalità di memorizzazione dei dati nella memoria di un computer. L'idea innovativa fu di rappresentare le informazioni non come inserite in un'unica grossa entità ma piuttosto di organizzarle in strutture, chiamate relazioni o tabelle. Queste tabelle o relazioni sono definite dalle colonne di cui sono composte e contengono tutte le n-uple o righe dello stesso tipo. Le colonne rappresentano i campi o proprietà dei dati che la tabella contiene. Ogni riga può essere vista come un record o un array e raggruppa i valori che i campi assumono per il particolare oggetto che viene cosi descritto. Le colonne hanno una tipologia e possono contenere al massimo un valore. 92

93 B - BUILD / B.2 Data Management and Databases/B.2.1 Data and Information Database relazionale 93

94 B - BUILD / B.2 Data Management and Databases/B.2.3 Files and Databases File Management System LIMITI Funzioni per Condivisione dati: LOCK su parti di file Funzioni per Integrità Funzioni per Gestionie di Relazioni PATHNAME: /Directory/Sub-Directory/File 94

95 B.2 Data Management and Data Base B.2.3 Data Modeling B Define data abstraction and describe the difference between physical level, conceptual (logical) level, view (user) level B Distinguish between different groups of data models B Describe the principles of record-based logical models B Describe the principles of object-based logical models 95

96 B - BUILD / B.2 Data Management and Databases/B.2.2 Data Modelling Modello Entity-Relationship Il modello si basa su tre elementi principali: entità: classi di oggetti con proprietà comuni relazione: legame logico tra due o più entità attributi: proprietà elementari di un entità Esempio: se dobbiamo creare un database di libri, avremo l entità libro, con attributi come anno di pubblicazione,editore, autore ma avremo anche l entità autore, con attributi anno di nascita e biografia. Queste due entità sono legate Dalla relazione autore ha scritto libri (ogni autore ha scritto più libri) 96

97 B - BUILD / B.2 Data Management and Databases/B.2.2 Data Modelling Modello Entity-Relationship 97

98 B - BUILD / B.2 Data Management and Databases/B.2.2 Data Modelling Modello Entity-Relationship La cardinalità quantifica le relazioni tra le entità. 98

99 B - BUILD / B.2 Data Management and Databases/B.2.3 Files and Databases Metodi di accesso ai dati Serial Sequential 99

100 B - BUILD / B.2 Data Management and Databases/B.2.3 Files and Databases Metodi di accesso ai dati Indexed Sequential 100

101 B - BUILD / B.2 Data Management and Databases/B.2.3 Files and Databases Metodi di accesso ai dati Pila (Stack,Heap) Coda (Queue) 101

102 B - BUILD / B.2 Data Management and Databases/B.2.3 Files and Databases Metodi di accesso ai dati Hash 102

103 B - BUILD / B.2 Data Management and Databases/B.2.3 Files and Databases Metodi di accesso ai dati Binary Tree (b-tree) 103

104 B - BUILD / B.2 Data Management and Databases/B.2.3 Files and Databases Metodi di accesso ai dati Binary Search (ricerca dicotomica) 104

105 B.2 Data Management and Data Base B.2.4 The Relational Model B Outline the benefits of a relational model, such as non-redundancy, flexibility, scalability B Describe important relational model terms, such as relation, key, primary key, alternate key, foreign key, referential integrity B Explain through simple examples the process of normalisation for 1st, 2nd, 3rd normal form 105

106 B - BUILD / B.2 Data Management and Databases/B.2.6 The relational model Relational Model COLUMNS (ATTRIBUTES) TABLES ROWS (TUPLES) 106

107 B - BUILD / B.2 Data Management and Databases/B.2.2 Data Modelling Database: modello a tre livelli View level View View 2 View N Logical level La struttura del database che descrive i dati e le loro relazioni Physical level La modalità con cui i dati sono memorizzati nel sistema

108 B - BUILD / B.2 Data Management and Databases/B.2.6 The relational model Prima forma normale 1NF Prima Forma Normale Definizione: Si dice che una base dati è in 1NF (prima forma normale) se vale la seguente relazione per ogni relazione contenuta nella base dati: una relazione è in 1NF se e solo se: non presenta gruppi di attributi che si ripetono (ossia ciascun attributo è definito su un dominio con valori atomici) esiste una chiave primaria (esiste un insieme di attributi, che identifica univocamente ogni tupla della relazione) 108

109 B - BUILD / B.2 Data Management and Databases/B.2.6 The relational model Prima forma normale 1NF Il seguente esempio viola la 1NF, perché pur esistendo una chiave primaria ({Matricola,Materia}), l'attributo Voto non è definito su un dominio con valori atomici: Matricola Studente Materia Voto Pietro Basi di Dati 1 sem, B ; 2 sem, F Pietro Basi di Dati 1 sem, A ; 2 sem, A Sara Basi di Dati 1 sem, B ; 2 sem, A È necessario ristrutturare la relazione come segue Matricola Studente Materia Semestre Voto Pietro Basi di Dati 1 B Pietro Basi di Dati 2 F Pietro Basi di Dati 1 A Pietro Basi di Dati 2 A Sara Basi di Dati 1 B Sara Basi di Dati 2 A 109

110 B - BUILD / B.2 Data Management and Databases/B.2.6 The relational model Prima forma normale 1NF Il seguente esempio viola la 1NF, perché pur non presentando gruppi di attributi che si ripetono, manca una chiave primaria, rendendo impossibile distinguere studentesse e studenti con lo stesso nome: Studente Materia Semestre Voto Pietro Basi di Dati 1 A Pietro Basi di Dati 2 A Pietro Basi di Dati 1 A Pietro Basi di Dati 2 A Sara Basi di Dati 1 B Sara Basi di Dati 2 A 110 È necessario ristrutturare la relazione come segue Matricola Studente Materia Semestre Voto nnnn-nnn Pietro Basi di Dati 1 A... Pietro Basi di Dati 2 A... Pietro Basi di Dati 1 A... Pietro Basi di Dati 2 A... Sara Basi di Dati 1 B... Sara Basi di Dati 2 A

111 B - BUILD / B.2 Data Management and Databases/B.2.6 The relational model Seconda forma normale 2NF una tabella si dice in 2FN se è in 1FN e inoltre non vi sono attributi che dipendono parzialmente dalla chiave. Consideriamo come esempio la tabella Persone: Nome, Cognome, Luogo Nascita, Regione di Nascita La chiave della tabella è data da (Nome, Cognome, Luogo Nascita). La tabella è certo in 1FN, non essendovi attributi multipli. Ma la regione di nascita dipende solo dal luogo di nascita e non da nome e cognome. Vi è quindi una dipendenza parziale dalla chiave e la tabella non è in 2FN. Vi è dunque anche una dipendenza transitiva dalla chiave. L'unico rimedio è quindi quello classico: spezzare la tabella in più tabelle. In questo caso occorrerebbero tre tabelle: Tabella Persone con campi (Codice, Nome, Cognome, Codice_LuogoNascita); 3.Tabella Luoghi con campi (Codice, Nome, Codice_Regione); 5.Tabella Regioni con campi (Codice, Nome, Stato)

112 B - BUILD / B.2 Data Management and Databases/B.2.6 The relational model Terza forma normale 3NF Uno schema relazionale è nella terza forma normale se soddisfa la 2NF e, inoltre, tutti gli attributi non chiave sono indipendenti fra loro e dipendono solo dalla chiave primaria. Ad esempio: se in una tabella sono presenti i campi Quantità,Prezzo Vendita Prezzo Totale, dobbiamo eliminare l attributo Prezzo Totale, perché può essere calcolato da Quantità e Prezzo Vendita secondo la relazione: PrezzoTotale = Quantità * Prezzo Vendita. 112

113 B.2 Data Management and Data Base B.2.5 Query Languages B Distinguish between procedural and non-procedural query languages B Describe the fundamental operations of the relational algebra B Describe the components of a SQL language: DDL, DML, DCL B Understand SQL DDL commands, such as create, drop, alter table B Understand SQL DCL commands, such as grant, revoke 113

114 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports Operazioni relazionali Selezione: una selezione opera su una sola tabella e produce come risultato un sottoinsieme delle sue tuple, che conservano inalterate i loro attributi. il risultato di una selezione è costituito da una tabella con lo stesso numero di colonne e un numero minore (o tutt al più uguale) di righe. La scelta delle tuple da inserire nel risultato è dettata dalle condizioni prescelte. 114

115 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports Operazioni relazionali Proiezione: una proiezione opera su una sola tabella, producendo come risultato una sua sottotabella formata dalle stesse tuple ma con un sottinsieme degli attributi originari. In genere quindi la proiezione di una tabella ha lo stesso numero di righe ma un numero minore (o tutt al più uguale) di colonne. Anche in questo caso la scelta delle colonne da inserire nel risultato è dettata da condizioni prescelte. 115

116 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports Operazioni relazionali Join: opera su due tabelle producendone una nuova le cui tuple risultano dalla combinazione di una tupla della prima e di una tupla dell altra, secondo regole stabilite dall operazione in svolgimento. In questo caso perciò le colonne della nuova tabella saranno composte da quelle della prima e da quelle della seconda, mentre le righe saranno in numero variabile,in quanto gli abbinamenti dipenderanno dalle condizioni stabilite dal join; In un join senza condizioni ogni tupla della prima tabella è abbinata a ogni tupla dell altra. Più frequente è il join corrispondente a una relazione fra le due tabelle, in cui vengono abbinate le tuple che si corrispondono nella relazione. Inner Join Equi-Join Natural Join 116

117 B - BUILD / B.2 Data Management and Databases/B.2.4 Databases Management Systems SQL (DDL,DCL,DML) SQL (Structured Query Language) è un Linguaggio per database progettato per leggere, modificare e gestire dati memorizzati in un sistema basato sul modello relazionale, per creare e modificare schemi di database, per creare e gestire strumenti di controllo ed accesso ai dati. Il Data Definition Language (DDL) è un linguaggio che permette di creare, modificare o eliminare gli oggetti in un database. L'utente deve avere i permessi necessari per agire sulla struttura del database e questi permessi vengono assegnati tramite il Data Control Language (DCL). Data Manipulation Language (DML) è una linguaggio che consente di leggere, inserire, modificare o eliminare i dati in un database. I comandi DML esprimono azioni da effettuare sui dati identificate dalla parola iniziale dell'istruzione, che quasi sempre è un verbo. I verbi utilizzati sono SELECT ricerca, INSERT l'inserimento, UPDATE l'aggiornamento e DELETE cancellazione. 117

118 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports SQL Language DDL (Data Definition Language) Create Drop Alter Creare, cancellare, modificare tabelle. 118

119 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports SQL Language Per creare una tabella: CREATE TABLE tname (colname coltype [not null], ); Name Description tname Name of the table to be created colname Column Name coltype Data Type of the column not null If the column can or nor have value NULL Coltype: Type Description integer 32 bit number smallint 16 bit number float 64 bit floating number smfloat 32 bit floaing number char(n) Nchar string varchar(n) Varialbe length string, max n chars Date Date 119

120 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports SQL Language Per cancellare una tabella ed il suo contenuto. DROP TABLE tname Name tname Description Name of the table to delete Per modificare la struttura di una tabella. ALTER TABLE tname MODIFY ( colnname coltype [not null], Name Description tname Name of the table to be modified Colname Column Name Coltype Column Data Type Not null Sf the column can or nor have value NULL 120 );

121 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports SQL Language Per modificare la struttura di una tabella. ALTER TABLE tname ADD ( colnname coltype [not null], ); Permette di aggiungere colonne ad una tabella: non è possibile se la tabella contiene dati e si vuole aggiungere una colonna che non permette valori null. Name Description tname Name of the table to be modified Colname Column Name Coltype Column Data Type Not null Sf the column can or nor have value NULL Per modificare la struttura di una tabella. ALTER TABLE tname DELETE (colnname, ); Permette di rimuovere colonne. Name Description tname Name of the table to be modified Colname Column Name 121

122 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports SQL Language Per creare un indice. CREATE [unique] INDEX idxname ON tname (colname, ) Name Description Unique If included, it means that the index is unique Idxname Index name to be created Tname Table name, the index has to be created on Colname Column name, the index has to be created on Non è possibile creare un indice unico in una tabella con dati che non sono compatibili con il nuovo indice unico. Per rimuovere un indice DROP INDEX idxname Name Idxname 122 Description Index name to be deleted

123 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports SQL Language DCL (Data Control Language) Sicurezza: Grant Revoke Assegna o revoca privilegi. 123

124 B.2 Data Management and Data Base B.2.6 SQL Queries B Understand basic SQL DML commands, such as insert, delete, update, select B Understand SQL clauses, such as where, order by, group by B Outline the use of views and special SQL commands, such as commit, rollback 124

125 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports SQL Language DML (Data Manipulation Language) Select Insert Delete Update Selezionare, inserire, cancellare, modificare righe. Transazioni: Commit Roll-back 125

126 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports SQL Language Order by permette di ordinare i dati selezionati Group by permette di raggruppare i dati selezionati Where è applicata come prima operazione, può essere seguita da Order by e Group by. Per ultima è applicata la clausola Having 126

127 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports SQL Language Per inserire dati in una tabella. INSERT INTO tname (colname, ) VALUES (colval,...); Nome tname colname colval Significato Table name, the data has to be inserted in Column Name Data to be inserted into colname Per cancellare righe di una tabella Questa operazione introduce la clausola where, che abilita la selezione di un numero ridotto di righe. DELETE FROM tname [WHERE colname condition {colval colname}][oprel..]; Name Description tname Colname Table name, data has to be erased from Column name Condition Comparison operation Colval Values to be compared with the content of column colname Oprel Operation of Relation 127

128 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports SQL Language Condition Description = Condition is true if both terms at its sides are equal!= > >= <= < Condition is true if the two terms at its sides are different Relational Operator and or not 128 Condition is true if the two terms at its sides respect the inequalities Description Expression is true if left term and right term are both true. Expression is true if left term is true or right term is true. Negate the condition that follows.

129 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports SQL Language Per modificare i valori in una tabella. UPDATE tname SET(colname = valcol, ) [WHERE colname condition {colval colname} [oprel..]]; Name Description tname Table name, the update has to be performed on colname Column name valcol New value for the column condition Comparison operation colval Values to be compared with the content of column colname oprel Relational operator Permette l aggiornamento contemporaneo di un insieme di righe in un insieme di colonne. 129

130 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports SQL Language Per selezionare informazioni SELECT (colname, ) FROM tname [WHERE [GROUP BY (colname, )] [ORDER BY(colname, )] [having ] [INTO [temp] table tname]; Description Name tnme Table name, the data has to be retrieved from colname Column name where Where clause as seen for delete and update having Where clause, but evaluated on partial results 130

131 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports SQL Language Per creare una User View. Una User View appare come una tabella ma, è il risultato di una operazione di select. CREATE VIEW vname AS select ; Description Name vname View name to be created select Select command that explain how to retrieve data Per rimuovere una User View DROP VIEW vname; Name vname 131 Description View name to be deleted

132 B.2 Data Management and Data Base B.2.7 Database Administration and Security B Describe the most important database administration procedures B Describe the security and integrity problems covered by the acronym CIA (Confidentiality, Integrity, Availability) B Outline examples of different security policies, such as human security, physical security, operating system security, database security B Describe recovery schemes based on different types of failure, such as logical errors, system errors, system crash, disk failure 132

133 B - BUILD / B.2 Data Management and Databases/B.2.8 Database administration Database administration Le Database management operations sono svolte dal Database administrator (DBA) che ha in carico: La gestione della configurazione del DB La gestione del DB schema usandi i comandi DDL Configurare le User Access Policies 133

134 B - BUILD / B.2 Data Management and Databases/B.2.7 Security and integrity of data Security and Integrity of Data 3 proprietà principali: CONFIDENTIALITY solo chi è autorizzato può accedere ai dati INTEGRITY si riferisce alla validità dei dati Può essere compromessa da: q q Software bugs,virus,malfunzionamenti hardware come Crash dei dischi Errori umani nell enter dei dati Ci sono molti modi per minimizzare le minacce all integrità: q q q Regolari operazioni di Backup Controllare l accesso ai dati tramite meccanismi di sicurezza Progettare interfacce che prevengono l input di dati non validi AVALAIBILITY dati sono disponibili se richiesti 134

135 B.2 Data Management and Data Base B.2.8 Data Warehousing and Data Mining B Describe the concept and components of a Data Warehousing system B Define the concept of data mining B Recognise the principle uses of Data Warehousing systems 135

136 B - BUILD / B.2 Data Management and Databases/B.2.5 Data Warehousing e Data Mining Data Warehousing 136

137 B - BUILD / B.2 Data Management and Databases/B.2.5 Data Warehousing e Data Mining Data Warehousing & Data Mart & Data Mining Il Datawarehouse è il luogo di consolidamento dell'insieme dei dati aziendali. Il creatore del concetto di DataWareHouse, Bill Inmon, lo definisce come segue: raccolta di dati tematici, integrati, non volatili e storici per la presa di decisioni Il termine Data Mart (letteralmente deposito di dati) designa un sotto-insieme del data warehouse che contiene i data del data warehouse per un particolare settore aziendale (dipartimento, direzione, servizio, gamma prodotto, ecc.). Si parla quindi ad esempio di Data Mart Marketing, Data Mart Commerciale Il Data Mining ha per oggetto l'estrazione di un sapere o di una conoscenza a partire da grandi quantità di dati e l'utilizzazione industriale o operativa di questo sapere. Oggi il Data Mining (letteralmente: estrazione di dati) ha una duplice valenza: Estrazione, con tecniche analitiche all'avanguardia, di informazione implicita, nascosta, da dati già strutturati, per renderla disponibile e direttamente utilizzabile Esplorazione ed analisi, su grandi quantità di dati allo scopo di scoprire pattern (schemi) significativi. Questo tipo di attività è cruciale in molti ambiti della ricerca scientifica, ma anche in altri settori. E utilizzata per risolvere problematiche diverse tra loro, che vanno dalla gestione delle relazioni con i clienti (CRM), all individuazione di comportamenti fraudolenti per finire all'ottimizzazione di siti web. 137

138 B - BUILD / B.2 Data Management and Databases/B.2.5 Data Warehousing e Data Mining ETL Extract, Transform, Load (ETL) si riferisce al processo estrazione, trasformazione e caricamento dei dati in un sistema di sintesi (Data Darehouse, Data Dart). I dati vengono estratti da sistemi sorgenti quali database transazionali (OLTP), comuni file di testo o da altri sistemi informatici (ad esempio, sistemi ERP o CRM). Subiscono quindi un processo di trasformazione, che consiste nel: Selezionare solo quelli che sono di interesse per il sistema Normalizzare i dati (per esempio eliminando i duplicati) Tradurre dati codificati Derivare nuovi dati calcolati Eseguire accoppiamenti (join) tra dati recuperati da differenti tabelle Raggruppare i dati Tale trasformazione ha lo scopo di consolidare i dati (cioè rendere omogenei dati provenienti da sorgenti diverse) in modo che siano aderenti alla logica di business. Vengono infine caricati nelle tabelle del sistema di sintesi (load). Occorre prestare attenzione alla granularità delle informazioni da memorizzare nella struttura. Queste infatti, non solo devono essere aggregate in modo da non avere un dettaglio eccessivo ma devono anche mantenere una granularità che consenta di effettuare le necessarie analisi sui dati 138

139 B - BUILD / B.2 Data Management and Databases/B.2.5 Data Warehousing e Data Mining Data Warehousing 139

140 B - BUILD / B.2 Data Management and Databases/B.2.5 Data Warehousing e Data Mining OLAP OLAP, acronimo che sta per l'espressione On-Line Analytical Processing, designa un insieme di tecniche software per l'analisi interattiva e veloce di grandi quantità di dati, che è possibile esaminare in modalità piuttosto complesse. Questa è la componente tecnologica base del data warehouse, serve alle aziende per analizzare i risultati delle vendite, l'andamento dei costi di acquisto merci, al marketing per misurare il successo di una campagna pubblicitaria, etc. 140

141 B - BUILD / B.2 Data Management and Databases/B.2.5 Data Warehousing e Data Mining Dashboard 141

142 B - BUILD / B.2 Data Management and Databases/B.2.5 Data Warehousing e Data Mining OLAP warehouse time product 142

143 B - BUILD / B.2 Data Management and Databases/B.2.5 Data Warehousing e Data Mining ROLL-UP & DRILL DOWN Roll-up Al l Roll-up Roll-up Sto re Time 143 Product Al l Time Product All Al All l All Drill-Down Time Drill-Down Drill-Down

144 B - BUILD / B.2 Data Management and Databases/B.2.5 Data Warehousing e Data Mining SLICE St o re SLICE Product St o re Product 144 Time (quarters) Time(semesters)

145 B.3 Programming B.3.1 Software design methods and techniques B Outline the main features of different program design methods B Describe the use of abstraction as a technique for problem-solving and software design B Outline the specific needs of legacy systems B Distinguish between open source and proprietary software development. B Outline the different licensing requirements 145

146 B - BUILD / B.3 Programming / B.3.1 Software design methods and techniques Alcuni termini o o o o o o o o o Modificability Intellegibility Reusability Top Down Bottom up Divide and Conquer Cohesion (coesione) Decoupling (disaccoppiamento) Legacy Systems 146

147 B - BUILD / B.3 Programming / B.3.1 Software design methods and techniques Programmazione Strutturata Le idee chiave della programmazione strutturata si possono ricondurre alla critica della struttura di controllo del salto incondizionato (o goto, "vai a"), che rappresentava, negli anni '60, lo strumento fondamentale per la definizione di algoritmi complessi nel software. In un celebre articolo del 1968, Goto statement considered harmful, Edsger Dijkstra discusse approfonditamente gli effetti deleteri del goto sulla qualità del software, e in particolare sulla sua leggibilità e modificabilità (il cosiddetto problema dello spaghetti code). Un'altra celebre pubblicazione che risultò fondamentale all'affermarsi della programmazione strutturata fu Flow Diagrams, Turing Machines, and Languages with Only Two Formation Rules, in cui Corrado Böhm e Giuseppe Jacopini dimostrarono il loro celebre teorema. Secondo tale teorema, qualsiasi programma scritto usando il goto poteva essere riscritto senza, a patto di avere a disposizione altri tre tipi di strutture di controllo: sequenza, ripetizione e alternativa. 147

148 B - BUILD / B.3 Programming / B.3.1 Software design methods and techniques Programmazione Strutturata Le strutture di controllo ammesse dai linguaggi strutturati, e le regole sintattiche e semantiche del loro uso, possono variare nei dettagli specifici; tuttavia, devono essere rispettati un insieme di requisiti fondamentali: completezza. Un linguaggio strutturato deve fornire la sequenza, almeno una struttura di tipo alternativa, e almeno una struttura di tipo iterativa; singolo punto di ingresso e di uscita. Idealmente, ogni struttura di controllo, completa delle istruzioni controllate, deve poter essere considerata come una singola macro-istruzione dal punto di vista del controllo complessivo, con un ben identificato punto di ingresso e un ben identificato punto di uscita. componibilità. Ogni struttura di controllo può avere fra le sue istruzioni controllate, ricorsivamente, altre strutture di controllo (senza limiti). 148

149 B - BUILD / B.3 Programming / B.3.1 Software design methods and techniques Programmazione Strutturata 149

150 B - BUILD / B.3 Programming / B.3.1 Software design methods and techniques Programmazione Object-Oriented La programmazione orientata agli oggetti (OOP, Object Oriented Programming) è un paradigma di programmazione, che prevede di raggruppare in un'unica entità (la classe) sia le strutture dati che le procedure che operano su di esse, creando per l'appunto un "oggetto" software dotato di proprietà (dati) e metodi (procedure) che operano sui dati dell'oggetto stesso. Oggetto = auto Le cose che un auto può fare sono: Andare, Fermarsi, Girare a destra, Girare a sinistra Noi sappiamo che l auto fa queste cose, ma non conosciamo come vengono fatte, cioè non sappiamo come vengono implementate. Un auto può avere le seguenti caratteristiche o attributi: Colore, Velocità max, Dimensioni, Tipo di carburante Come questi attributi sono memorizzati o definiti è irrilevante. 150

151 B.3 Programming B.3.2 Data Structures and Algorithms B Describe structured and unstructured data types B Evaluate the fit between typical search and sort algorithms and the different data structures. 151

152 B - BUILD / B.3 Programming / B.3.2 Data structures and algorithms Data structures and algorithms Linked List Bi-directional Linked List Binary search tree: V = visit, L = left, R = right Pre-order (VLR) traversal: F, B, A, D, C, E, G, I, H In-order (LVR) traversal: A, B, C, D, E, F, G, H, I Post-order (LRV) traversal: A, C, E, D, B, H, I, G, F Level-order traversal: F, B, G, A, D, I, C, E, H 152

153 B.3 Programming B.3.3 Programming Languages B Distinguish between and describe the merits of the main types of programming languages B Describe the use of procedures and functions, and distinguish between call by value and call by reference B Define the term syntax and outline its importance in programming languages. B Distinguish between compilation and interpretation 153

154 B - BUILD / B.3 Programming / B.3.3 Type of programming languages Linguaggi di programmazione: generazioni Prima Generazione 1GL: linguaggio macchina Seconda Generazione 2GL: Assembler Terza Generazione 3GL: FORTRAN : FORmula TRANslator COBOL: Common uso scientifico Business Oriented Language business BASIC: Beginners All-purpose Symbolic Instruction Code PASCAL: Didattico Quarta Generazione 4GL: 154 SQL: non procedurale

155 B - BUILD / B.3 Programming / B.3.3 Type of programming languages Compilatore Esempio di fasi di compilazione (C language) q Pre-processor: esamina le direttive di compilazione q Compiler: controlla la correttezza del codice e genera codice Assembler q Optimizer: ottimizza il codice Assembler per ottimizzare le performance q Assembler: traduce l Assembler in codice oggetto q Linking: link di librerie e generazione eseguibile 155

156 B - BUILD / B.3 Programming / B.3.3 Type of programming languages Interprete 156

157 B - BUILD / B.3 Programming / B.3.3 Type of programming languages Java Virtual Machine 157

158 B.3 Programming B.3.4 Object-Oriented programming B Describe the main concepts of object-oriented design B Describe the concept of object-oriented programming B Describe the concept of a class, object, instance, method and their relationship in object-oriented programming B Describe the concepts of abstraction and encapsulation B Describe how polymorphism contributes to efficient software design through the development of reusable components 158

159 B - BUILD / B.3 Programming / B.3.1 Software design methods and techniques Object Oriented 159

160 B - BUILD / B.3 Programming / B.3.1 Software design methods and techniques Object Oriented 160

161 B - BUILD / B.3 Programming / B.3.1 Software design methods and techniques Programmazione OO - Encapsulation Un oggetto è una istanza di una classe. Un oggetto occupa memoria, la sua classe definisce come sono organizzati i dati in questa memoria. Ogni oggetto possiede tutti gli attributi definiti nella classe, ed essi hanno un valore, che può mutare durante l'esecuzione del programma. Il paradigma OOP suggerisce un principio noto come information hiding che indica che si debba accedere agli attributi dell'istanza solo tramite metodi invocati su quello stesso oggetto. L'incapsulamento è la proprietà per cui un oggetto contiene ("incapsula") al suo interno gli attributi (dati) e i metodi (procedure) che accedono ai dati stessi. Lo scopo principale dell'incapsulamento è appunto dare accesso ai dati incapsulati solo attraverso i metodi definiti, nell'interfaccia, come accessibili dall'esterno. Gestito in maniera intelligente, l'incapsulamento permette di vedere l'oggetto come una black-box, cioè una scatola nera di cui, attraverso l'interfaccia, è noto cosa fa e come interagisce con l'esterno ma non come lo fa. I vantaggi principali portati dall'incapsulamento sono: robustezza, indipendenza e l'estrema riusabilità degli oggetti creati. 161

162 B - BUILD / B.3 Programming / B.3.1 Software design methods and techniques Programmazione OO - Ereditarietà L'OOP prevede un meccanismo molto importante, l'ereditarietà, che permette di derivare nuove classi a partire da classi già definite. L'ereditarietà permette di aggiungere membri ad una classe, e di modificare il comportamento dei metodi, in modo da adattarli alla nuova struttura della classe. Da una stessa classe è possibile costruire diverse classi derivate. Da una classe derivata è possibile derivarne una ulteriore con lo stesso meccanismo. Sintatticamente, una classe può essere definita come derivata da un'altra classe esistente. In molti linguaggi la classe derivata, o sottoclasse, eredita tutti i metodi e gli attributi della classe "genitrice", e può aggiungere membri alla classe, sia attributi che metodi, e/o ridefinire il codice di alcuni metodi. L'ereditarietà può essere usata come meccanismo per gestire l'evoluzione ed il riuso del software: il codice disponibile definisce delle classi, se sono necessarie modifiche, vengono definite delle sottoclassi che adattano la classe esistente alle nuove esigenze. 162

163 B - BUILD / B.3 Programming / B.3.1 Software design methods and techniques Programmazione OO - Polimorfismo La possibilità che le classi derivate implementino in modo differente i metodi e le proprietà dei propri antenati rende possibile che gli oggetti appartenenti a delle sottoclassi di una stessa classe rispondano diversamente alle stesse istruzioni. Ad esempio in una gerarchia in cui le classi "Cane" e "Gatto" discendono dalla SuperClasse "Animale potremmo avere il metodo mangia() che restituisce la stringa "osso" se eseguito sulla classe "Cane" e "pesce" se eseguito sulla classe "Gatto". I metodi che vengono ridefiniti in una sottoclasse sono detti polimorfi, in quanto lo stesso metodo si comporta diversamente a seconda del tipo di oggetto su cui è invocato 163

164 B.3 Programming B.3.5 Elementary Constructs B Interpret and evaluate input/output instructions B Interpret and evaluate control statements B Interpret and evaluate arithmetic and logical operations 164

165 B - BUILD / B.3 Programming / B.3.4 Introduction ti programming concepts Elementi di programmazione Le istruzioni che compongono un linguaggio procedurale sono: q Dichiarative q Operazioni Aritmetico-Logiche; q Istruzioni di controllo q Istruzioni di I/O. Le dichiarative assegnano ad un nome simbolico un tipo dato ed eventualmente un valore di inizializzazione. E possibile dichiarare vettori o matrici. 165 char alfa; int beta=1; float gamma; char delta[21]; int epsilon [10]; float fi[20];

166 B - BUILD / B.3 Programming / B.3.4 Introduction ti programming concepts Elementi di programmazione Operazioni aritmetiche + Somma - Sottrazione * Moltiplicazione / Divisione Istruzioni logiche 166

167 B - BUILD / B.3 Programming / B.3.4 Introduction ti programming concepts Elementi di programmazione Condizioni: v1 operator v2 Operator ==!= The condition is true when two values are different > The condition is true when v1 is greater than v2 < The condition is true when v1 is lower than v2 <= The condition is true when v1 is equal or lower than v2 The condition is true when v1 is equal or greater than v2 >= 167 The condition is true when the two values are equals

168 B - BUILD / B.3 Programming / B.3.4 Introduction ti programming concepts Elementi di programmazione if (a>3) 168 { b = 5; } false-instruction] else true-instruction [else { c = 6; } if (condition)

169 B - BUILD / B.3 Programming / B.3.4 Introduction ti programming concepts Elementi di programmazione j = j+1; } j+1; { k[j] = int j, k[10]; j=0; while (j<10) while (condition) instructions 169

170 B - BUILD / B.3 Programming / B.3.4 Introduction ti programming concepts Elementi di programmazione j=0; do { k[j]=j+1; j = j+1; } while (j<10); do instructions while (condition) int j, k[10]; 170

171 B - BUILD / B.3 Programming / B.3.4 Introduction ti programming concepts Elementi di programmazione } k[j]=j+1; { for (j=0; j<10; j = j+1) instructions for (start; condition; increase) int j, k[10]; 171

172 B - BUILD / B.3 Programming / B.3.4 Introduction ti programming concepts Elementi di programmazione Printf ( message, var1 [, var2 ]); message String to be written var1 Variable to be written var2 Variable to be written standard output (stdout) 172

173 B - BUILD / B.3 Programming / B.3.4 Introduction ti programming concepts Elementi di programmazione Readf (var1 [, var2 ]); var1 Variable to be read var2 Variable to be read standard input (stdin) 173

174 B.3 Programming B.3.6 Testing B Define basic testing concepts, such as error, fault, failure B Describe the different purposes and scope of unit testing, system testing, acceptance testing B Distinguish between static and dynamic test methodologies 174

175 175 Il termine Errore (Bug) è usato per indicare un anomalia In realta è la causa di un anomalia. Errori nell interpretazione delle specifiche q Errori nella fase concettuale q q q Errori dovuti alla mancanza di conoscenza del linguaggio o degli strumenti Errori di distrazione Testing B - BUILD / B.3 Programming / B.3.5 Testing

176 176 Test di regressione: Nel software capita spesso che l'introduzione di una nuove funzionalità in un vecchio prodotto comprometta la qualità di funzionalità preesistenti. Pertanto, per assicurarsi la qualità del prodotto bisognerebbe ripetere l'intero collaudo ad ogni modifica. Il collaudo di funzionalità preesistenti e già collaudate, eseguito per assicurare che modifiche al prodotto non ne abbiano compromesso la qualità si chiama "collaudo di regressione" (in inglese, "regression testing"), in quanto si vuole verificare se la qualità fosse regredita. Se erano stati predisposti dei collaudi automatizzati, il collaudo di regressione ha normalmente un basso costo, in quanto si tratta solo di lanciare le procedure di collaudo esistenti, eventualmente ritoccate. Un completo collaudo di regressione manuale sarebbe invece enormemente costoso, e per tale motivo normalmente il collaudo di regressione manuale è più sbrigativo del collaudo originale Testing B - BUILD / B.3 Programming / B.3.5 Testing

177 177 I moduli possono essere testati in un enviroment simulato che tipicamente consiste di: Stub moduli, che sono invocati dal dal modulo da testare e che generano l output previsto. Driver moduli che usano il modulo testato e che devono simulare il comportamento del chiamante. I moduli possono essere integrati con: Il metodo Non incremental (big bang test): Il metodo Incremental method (incremental test) Testing B - BUILD / B.3 Programming / B.3.5 Testing

178 B.3 Programming B.3.7 Documentation and Maintenance B Describe the common documentation for software development and delivery B Describe the value of well-structured and documented code B Outline how to document changes in software and program documentation B Describe methods to attain quality in program maintenance, such as code inspections, rules for comments in the code, technical reference documents 178

179 B - BUILD / B.3 Programming / B.3.6 Documentation UML In ingegneria del software, UML (Unified Modeling Language, "linguaggio di modellazione unificato") è un linguaggio di modellazione e specifica basato sul paradigma object-oriented. Il nucleo del linguaggio fu definito nel 1996 da Grady Booch, Jim Rambaugh e Ivar Jacobson (detti "i tre amigos") sotto l'egida dello OMG, che tuttora gestisce lo standard di UML. UML svolge un'importantissima funzione di lingua franca nella comunità della progettazione e programmazione a oggetti. 179

180 B - BUILD / B.3 Programming / B.3.6 Documentation UML Di per sé, UML è solo un linguaggio di modellazione, e non definisce alcuna specifica metodologia per la creazione di modelli (o alcun processo software). UML può quindi essere utilizzato nel contesto di diversi approcci metodologici. UML consente di costruire modelli object-oriented per rappresentare domini di diverso genere. Nel contesto dell'ingegneria del software, viene usato soprattutto per descrivere il dominio applicativo di un sistema software e/o il comportamento e la struttura del sistema stesso. Il modello è strutturato secondo un insieme di viste che rappresentano diversi aspetti della cosa modellata (funzionamento, struttura, comportamento, e così via), sia a scopo di analisi che di progetto, mantenendo la tracciabilità dei concetti impiegati nelle diverse viste. 180

181 B - BUILD / B.3 Programming / B.3.6 Documentation UML 181

182 182 Changing of a software product executed, after the release, in order to correct the malfunctions, enhancing performance or adapt it to the changed using context (Definition adopted by the IEEE) Nasce la necessità di avere un modello del processo di Maintenance per monitorare i cambiamenti del software durante il suo ciclo di vita. q q La legge dei continui cambiamenti: un sistema deve necessariamente cambiare ed evolvere continuamente e mantenere intatto il proprio livello di utilità, dato i costanti cambiamenti dell environment in cui il sistema opera. Legge della complessità crescente: la struttura di un sistema che evolve tende a diventare più complessa e bisogna investire delle risorse per preservare la semantica e semplificare la struttura. Maintenance B - BUILD / B.3 Programming / B.3.7 Maintenance

183 B - BUILD / B.3 Programming / B.3.7 Maintenance Maintenance Software Maintenance Activities Maintenance can be defined as four activities: Corrective Maintenance A process that includes diagnosis and correction of errors. Adaptive Maintenance Activity that modifies software to properly interface with a changing environment (hardware and software). Perfective Maintenance Activity for adding new capabilities, modifying existing functions and making general enhancements. This accounts for the majority of all effort expended on maintenance. Preventive Maintenance Activity which changes software to improve future maintainability or reliability or to provide a better basis for future enhancements. Still relatively rare. Distribution of maintenance activities (based on a study of 487 software development organizations): Perfective: 50% Adaptive: 25% Corrective: 21% Others (Including Preventive): 4% 183

184 B - BUILD / B.3 Programming / B.3.7 Maintenance Configuration Management ll Configuration Management ha lo scopo di controllare e gestire le attività che portano alla produzione di software. Questa attività si appoggia sempre su un data base dove sono memorizzati gli oggetti sottoposti a controllo di configurazione (i configuration items). Nell'ambito del configuration management vengono gestiti gli input/output direttamente o indirettamente legati alla costruzione di un prodotto software. Si tratta quindi non solo di archiviare in modo controllato le varie versioni del codice sorgente sviluppato, ma anche le altre entità create nel corso delle diverse fasi dello sviluppo. Ogni elemento oggetto delle attività di gestione della configurazione viene normalmente chiamato configuration item. Una delle funzioni svolte da un sistema di controllo della configurazione è quella di correlare tra loro i vari oggetti archiviati relativamente ad un prodotto software, mantenendo allo stesso tempo traccia delle varie versioni degli oggetti e della loro applicabilità. Perché tutti i configuration items possano essere adeguatamente gestiti è necessario che siano definite le possibili tipologie e le operazioni che su di essi possono essere compiute, compresi i ruoli dei vari attori dello sviluppo del software. Tutto ciò viene tipicamente definito all'inizio del processo di sviluppo del software. 184

185 B - BUILD / B.3 Programming / B.3.7 Maintenance Configuration Management La gestione della configurazione può essere applicata a qualunque categoria di documenti o di "artefatti" che svolga un ruolo nel processo software. Alcuni esempi di configuration item ("elementi di configurazione") sono: q q q q q q q q q q q q q 185 Specifiche dei requisiti Specifiche funzionali Project plan Quality plan Manuale utente Specifiche di progetto Codice sorgente Test Case Manuali di installazione e gestione del prodotto Programmi eseguibili Schemi dei database Documenti relativi alla manutenzione del prodotto Standard e procedure adottate

186 B.3 Programming B.3.8 Programming Examples B Interpret small program segments constructed from a given hypothesis B Identify errors or weaknesses in the code and modify it to meet requirements 186

187 187 main() { int j; for (j=1; j<=10; j=j+1) { printf(j); } } main() { printf( hello world! ); } Programming examples B - BUILD / B.3 Programming / B.3.8 Programming examples

188 188 main() { int j; int num[10]; for (j=0; j<=10; j=j+1) { num[j]=j+1; } for (j=9; j>=0; j=j-1){ printf(num[j]); } } Programming examples B - BUILD / B.3 Programming / B.3.8 Programming examples

189 189 main() { float pi= ; float ray, area; printf( insert the value of ray ); readf(ray); area = pi * ray * ray; printf ( the ray is :, ray); printf ( the area is:, area) } Programming examples B - BUILD / B.3 Programming / B.3.8 Programming examples

190 190 main() { float base, height, area; printf( insert the area and base value: ); readf(area, base); if (base == 0 ) { printf( base = 0, impossible calculation ); return; } height = area /base; printf ( the height is :, height); } Programming examples B - BUILD / B.3 Programming / B.3.8 Programming examples

191 191 main() { int j; char name[]= abcdefghijklmnopqrstuvwxyz char a; for (j=0; j<13; j=j+1) { a = name[j]; name[j] = name [25-j]; name[25-j] = a; } printf(name); } Programming examples B - BUILD / B.3 Programming / B.3.8 Programming examples

192 B.4 User Interface and Web Design B.4.1 Human-Computer Interaction: Guidelines and Standards B Define basic concepts of communication theory B Understand how communication applies to human beings B Define the concept of a User Interface B Outline the various technologies that communicate information to human senses B List models for testing the effectiveness of a user interface 192

193 B.4 User Interface and Web Design B.4.2 Graphics Design B Outline the concepts of graphics and animation (bitmap and vector), digital audio and video B Describe the benefits of using drawings, pictures, colours, animation B Use common tools for simple picture manipulation in terms of size, shape, colours, contrast, transparency 193

194 B - BUILD / B.4 User Interface and Web Design/ B.4.2 Graphic design Graphical Design Text Font 194

195 B - BUILD / B.4 User Interface and Web Design/ B.4.2 Graphic design Graphical Design Text Font 195

196 B - BUILD / B.4 User Interface and Web Design/ B.4.2 Graphic design Graphical Design Text Font 196

197 B - BUILD / B.4 User Interface and Web Design/ B.4.2 Graphic design Graphical Design Colours 197

198 B - BUILD / B.4 User Interface and Web Design/ B.4.2 Graphic design Graphical Design Colours 198

199 B - BUILD / B.4 User Interface and Web Design/ B.4.2 Graphic design Graphical Design Dpi DPI: Dot Per Inch, punti per pollice. Una delle unità di misura della risoluzione. Con il DPI si esprime la quantità di punti stampati o visualizzati su una linea lunga un pollice (2,54 cm). Nota: per un'immagine fotografica visualizzata su monitor, 72 dpi sono accettabili, mentre per una buona stampa sono necessari almeno 300 dpi 199

200 B - BUILD / B.4 User Interface and Web Design/ B.4.2 Graphic design Graphical Design Immagini Si distinguono generalmente due grandi categorie di immagini : immagini bitmap (dette anche immagini raster): si tratta di immagini pixelizzate, cioè un insieme di punti (pixel) contenuti in una tabella, ciascuno di questi punti ha uno o più valori che ne descrivono il colore. immagini vettoriali: le immagini vettoriali sono delle rappresentazioni di entità geometriche come un cerchio, un rettangolo o un segmento. Questi sono rappresentati da formule matematiche (un rettangolo è definito da due punti, un cerchio da un centro e un raggio, una curva da più punti e un'equazione). Sarà il processore ad essere incaricato di "tradurre" queste forme in informazioni interpretabili dalla scheda grafica. 200

201 B - BUILD / B.4 User Interface and Web Design/ B.4.2 Graphic design Graphical Design Immagini l formato GIF (Graphic Interchange Format) fu diffuso negli anni Ottanta come metodo efficiente di trasmissione delle immagini su reti di dati. All'inizio degli anni Novanta i progettisti originali del web lo adottarono per l'efficienza che offriva. Oggi la stragrande maggioranza delle immagini sul web è in questo formato ed è supportato da tutti i browser web. Il formato GIF usa una forma di compressione LZW che mantiene inalterata la qualità dell'immagine, ovvero riduce le dimensioni del file senza pregiudicare la qualità grafica dell'immagine. La profondità dei colori delle immagini GIF è di 8 bit, che consente di usare una tavolozza di 256 colori. Meno colori si usano e maggiori saranno le possibilità di compressione, ovvero minori saranno le dimensioni del file. 201

202 B - BUILD / B.4 User Interface and Web Design/ B.4.2 Graphic design Graphical Design Immagini JPEG è Un formato grafico utilizzato di frequente sul Web per ridurre le dimensioni dei file grafici è lo schema di compressione JPEG (Joint Photographic Expert Group). A differenza delle immagini GIF, le immagini JPEG sono policrome (24 bit, o 16,8 milioni di colori). Questo tipo di immagini ha generato un altissimo interesse tra fotografi, artisti, progettisti grafici, specialisti della composizione di immagini La compressione JPEG utilizza una sofisticata tecnica matematica, chiamata trasformazione discreta del coseno, per produrre una scala scorrevole di compressione delle immagini. È possibile scegliere il grado di compressione che si desidera applicare a un'immagine in formato JPEG, ma in questo modo si determina anche la qualità dell'immagine. JPEG può raggiungere rapporti di compressione incredibili, riducendo le immagini di circa 100 volte rispetto ai file originali; l'algoritmo JPEG scarta alcuni dati durante la compressione dell'immagine e per questo motivo la tecnica di compressione è definita a perdita. Sta a voi quindi sperimentare l'impostazione più adatta per creare un file dall'aspetto accettabile. Quando create immagini JPEG ricordate sempre di salvare una copia dell'immagine originale. Dopo aver convertito un'immagine in formato JPEG, non è più possibile recuperare la qualità dell'immagine originale. 202

203 B - BUILD / B.4 User Interface and Web Design/ B.4.2 Graphic design Graphical Design Immagini Il Tagged Image File Format detto anche TIFF è un formato immagine. Le specifiche del formato TIFF permettono una notevole flessibilità. Il TIFF è largamente utilizzato per lo scambio di immagini raster fra stampanti e scanner perché permette di specificare numerose indicazioni aggiuntive come le informazioni sulla calibratura del colore. Il TIFF quindi è utilizzato per far comunicare più macchine all'interno dello stesso studio fotografico o di editing che hanno la stessa calibratura. Sono possibili anche diversi formati di compressione tra cui l'lzw. Un file TIFF può contenere immagini divise su più "pagine : ad esempio, si possono inserire in un unico file tutte le pagine che compongono un fax. 203

204 B.4 User Interface and Web Design B.4.3 Web and Hypermedia: Possibilities and Limitations B Describe the history behind the Internet and the World Wide Web B Define hypertext and hypermedia B Outline the common components used in web pages, such as top bar, side bar, site map, contact, search feature, help, last updated, navigation icons B Describe the use and value of internal and external websites in a company B Outline some of the challenges in maintaining a business website 204

205 B.4 User Interface and Web Design B.4.4 Web Design requirements and methods B Recognise the needs of the target group for whom a web page has been designed B Outline the risks of having too many messages on one page B Outline the problems associated with a poor mix of colours B Describe guidelines for developing user-friendly websites B Describe general quality criteria for web text B Explain the need for easy navigation on a website B Outline the tools for the development of a website B Outline the use and purpose of structure diagrams for website design B Describe the major methods used for navigation B Describe some project approaches to web design and common techniques 205

206 B.4 User Interface and Web Design B.4.5 Designing Web Pages B Outline the concept of a markup language and describe the main features of HTML B Use basic HTML commands and interpret layout commands B Outline basic graphic principles for normal written text, such as font size, percentage white space B Outline the basic elements of XML B Describe the concept of style sheets, such as Cascading Style Sheets (CSS) and Extensible Stylesheet Language (XSL) 206

207 B - BUILD / B.4 User Interface and Web Design/ B.4.2 Graphic design HTML L'HTML è il linguaggio con cui potete indicare come i vari elementi vanno disposti in una pagina Web. Un documento html non è nient'altro infatti che un file di testo con delle indicazioni sul colore delle scritte, sulla posizione delle immagini all'interno della pagina, su come far scorrere il testo, e altre cose di questo genere. Il Browser svolge principalmente due compiti: scarica i vari files che si trovano su un computer remoto (il server) e che fanno riferimento a un certo indirizzo legge i documenti scritti in html, e visualizza la pagina in accordo con i comandi descritti; inoltre i vari files associati a quel documento (ad esempio le immagini, o i filmati in flash) vengono disposti secondo le indicazioni del codice html 207

208 B - BUILD / B.4 User Interface and Web Design/ B.4.2 Graphic design Browser 208

209 B - BUILD / B.4 User Interface and Web Design/ B.4.2 Graphic design Browser 209

210 B - BUILD / B.4 User Interface and Web Design/ B.4.2 Graphic design Browser 210

Lezione V. Aula Multimediale - sabato 29/03/2008

Lezione V. Aula Multimediale - sabato 29/03/2008 Lezione V Aula Multimediale - sabato 29/03/2008 LAB utilizzo di MS Access Definire gli archivi utilizzando le regole di derivazione e descrivere le caratteristiche di ciascun archivio ASSOCIAZIONE (1:1)

Dettagli

DBMS (Data Base Management System)

DBMS (Data Base Management System) Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire

Dettagli

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL Basi di dati Il Linguaggio SQL Data Definition Language (DDL) Data Definition Language: insieme di istruzioni utilizzate per modificare la struttura della base di dati Ne fanno parte le istruzioni di inserimento,

Dettagli

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. (Structured Query Language) : Il linguaggio è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. prima versione IBM alla fine degli anni '70 per un prototipo di ricerca (System

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

PROGRAMMA DI CLASSE 5AI

PROGRAMMA DI CLASSE 5AI Istituto di Istruzione Superiore Euganeo Istituto tecnico del settore tecnologico Istituto professionale del settore servizi socio-sanitari Istituto professionale del settore industria e artigianato PROGRAMMA

Dettagli

1. BASI DI DATI: GENERALITÀ

1. BASI DI DATI: GENERALITÀ 1. BASI DI DATI: GENERALITÀ BASE DI DATI (DATABASE, DB) Raccolta di informazioni o dati strutturati, correlati tra loro in modo da risultare fruibili in maniera ottimale. Una base di dati è usualmente

Dettagli

Progettazione di Basi di Dati

Progettazione di Basi di Dati Progettazione di Basi di Dati Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan Entità-Relazione Progettazione Logica 2 E il modo attraverso il quale i dati sono rappresentati : fa riferimento al modello

Dettagli

Data Warehousing (DW)

Data Warehousing (DW) Data Warehousing (DW) Il Data Warehousing è un processo per estrarre e integrare dati storici da sistemi transazionali (OLTP) diversi e disomogenei, e da usare come supporto al sistema di decisione aziendale

Dettagli

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Telerilevamento 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

Dettagli

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione SQL DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE SQL è più di un semplice linguaggio di interrogazione! Linguaggio di definizione dati (Data-definition language, DDL):! Crea/distrugge/modifica relazioni

Dettagli

Introduzione al data base

Introduzione al data base Introduzione al data base L Informatica è quella disciplina che si occupa del trattamento automatico dei dati con l ausilio del computer. Trattare i dati significa: raccoglierli, elaborarli e conservarli

Dettagli

Ciclo di vita dimensionale

Ciclo di vita dimensionale aprile 2012 1 Il ciclo di vita dimensionale Business Dimensional Lifecycle, chiamato anche Kimball Lifecycle descrive il framework complessivo che lega le diverse attività dello sviluppo di un sistema

Dettagli

Sistemi informativi secondo prospettive combinate

Sistemi informativi secondo prospettive combinate Sistemi informativi secondo prospettive combinate direz acquisti direz produz. direz vendite processo acquisti produzione vendite INTEGRAZIONE TRA PROSPETTIVE Informazioni e attività sono condivise da

Dettagli

Dispensa di database Access

Dispensa di database Access Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

ISTITUTO TECNICO ECONOMICO MOSSOTTI

ISTITUTO 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

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Introduzione ai Database! Tipologie di DB (gerarchici, reticolari, relazionali, oodb) Introduzione ai database Cos è un Database Cos e un Data Base Management System (DBMS)

Dettagli

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: Il modello relazionale I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: 1. forniscono sistemi semplici ed efficienti per rappresentare

Dettagli

Informatica per le discipline umanistiche 2 lezione 10

Informatica per le discipline umanistiche 2 lezione 10 Informatica per le discipline umanistiche 2 lezione 10 Parte III: il computer come strumento per l interazione e la comunicazione Si è parlato di identità Parte III: il computer come strumento per l interazione

Dettagli

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati Azioni Select e join non consentono di modificare il contenuto del DB Azioni desiderate Inserzione di nuovi dati Aggiornamento di dati Cancellazione di dati Aggiunta di un record insert into utenti(nome,tel,codice_u)

Dettagli

BASI DI DATI - : I modelli di database

BASI DI DATI - : I modelli di database BASI DI DATI - : I modelli di database DAL 1960 ci si e' orientati verso 3 direzioni: 1 MODELLO GERARCHICO Se i dati si presentano naturalmente in una struttura ad albero (ES. File System) Limiti: rigidità

Dettagli

TEORIA sulle BASI DI DATI

TEORIA sulle BASI DI DATI TEORIA sulle BASI DI DATI A cura del Prof. Enea Ferri Cos è un DATA BASE E un insieme di archivi legati tra loro da relazioni. Vengono memorizzati su memorie di massa come un unico insieme, e possono essere

Dettagli

DATABASE RELAZIONALI

DATABASE RELAZIONALI 1 di 54 UNIVERSITA DEGLI STUDI DI NAPOLI FEDERICO II DIPARTIMENTO DI DISCIPLINE STORICHE ETTORE LEPORE DATABASE RELAZIONALI Dott. Simone Sammartino Istituto per l Ambiente l Marino Costiero I.A.M.C. C.N.R.

Dettagli

Le Basi di Dati. Le Basi di Dati

Le Basi di Dati. Le Basi di Dati Le Basi di Dati 20/05/02 Prof. Carlo Blundo 1 Le Basi di Dati Le Base di Dati (database) sono un insieme di tabelle di dati strutturate in maniera da favorire la ricerca di informazioni specializzate per

Dettagli

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone BASI DI DATI per la gestione dell informazione Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone Libro di Testo 22 Chianese, Moscato, Picariello e Sansone BASI DI DATI per la Gestione dell

Dettagli

Volumi di riferimento

Volumi di riferimento Simulazione seconda prova Esame di Stato Gestione di un centro agroalimentare all ingrosso Parte prima) Un nuovo centro agroalimentare all'ingrosso intende realizzare una base di dati per l'attività di

Dettagli

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati Corso di Access Modulo L2A (Access) 1.1 Concetti di base 1 Prerequisiti Utilizzo elementare del computer Concetti fondamentali di basi di dati 2 1 Introduzione Un ambiente DBMS è un applicazione che consente

Dettagli

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

Dettagli

Politica per la Sicurezza

Politica per la Sicurezza Codice CODIN-ISO27001-POL-01-B Tipo Politica Progetto Certificazione ISO 27001 Cliente CODIN S.p.A. Autore Direttore Tecnico Data 14 ottobre 2014 Revisione Resp. SGSI Approvazione Direttore Generale Stato

Dettagli

Capitolo 13. Interrogare una base di dati

Capitolo 13. Interrogare una base di dati Capitolo 13 Interrogare una base di dati Il database fisico La ridondanza è una cosa molto, molto, molto brutta Non si devono mai replicare informazioni scrivendole in più posti diversi nel database Per

Dettagli

Gestione delle tabelle

Gestione delle tabelle Linguaggio SQL: fondamenti Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati 2 Creazione di una tabella (1/3) Si utilizza

Dettagli

Introduzione all Architettura del DBMS

Introduzione all Architettura del DBMS Introduzione all Architettura del DBMS Data Base Management System (DBMS) Un DBMS è uno strumento per la creazione e la gestione efficiente di grandi quantità di dati che consente di conservarli in modo

Dettagli

I Sistemi Informativi

I Sistemi Informativi I Sistemi Informativi Definizione Un Sistema Informativo è un mezzo per acquisire, organizzare, correlare, elaborare e distribuire le informazioni che riguardano una realtà che si desidera descrivere e

Dettagli

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. INFORMATICA Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. APPLICAZIONI WEB L architettura di riferimento è quella ampiamente diffusa ed

Dettagli

Software per Helpdesk

Software per Helpdesk Software per Helpdesk Padova - maggio 2010 Antonio Dalvit - www.antoniodalvit.com Cosa è un helpdesk? Un help desk è un servizio che fornisce informazioni e assistenza ad utenti che hanno problemi nella

Dettagli

Archivi e Basi di Dati

Archivi e Basi di Dati Archivi e Basi di Dati A B C File Programma 1 Programma 2 A B C File modificati Programma 1 DBMS DB Programma 2 Informatica Generale (CdL in E&C), A.A. 2000-2001 55 Problemi nella gestione di archivi separati

Dettagli

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report Facoltà di Lingue e Letterature Straniere Le QUERY 2 Che cos è una Query? Una Query rappresenta uno strumento per interrogare un database.

Dettagli

Lezione 1. Introduzione e Modellazione Concettuale

Lezione 1. Introduzione e Modellazione Concettuale Lezione 1 Introduzione e Modellazione Concettuale 1 Tipi di Database ed Applicazioni Database Numerici e Testuali Database Multimediali Geographic Information Systems (GIS) Data Warehouses Real-time and

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

Sistemi Informativi e Basi di Dati

Sistemi Informativi e Basi di Dati Sistemi Informativi e Basi di Dati Laurea Specialistica in Tecnologie di Analisi degli Impatti Ecotossicologici Docente: Francesco Geri Dipartimento di Scienze Ambientali G. Sarfatti Via P.A. Mattioli

Dettagli

Introduzione al corso

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

Dettagli

Brochure Internet. Versione 2010.1 The Keyrules Company s.r.l. Pagina 2 di 8

Brochure Internet. Versione 2010.1 The Keyrules Company s.r.l. Pagina 2 di 8 Ogni organizzazione possiede un sistema di regole che la caratterizzano e che ne assicurano il funzionamento. Le regole sono l insieme coordinato delle norme che stabiliscono come deve o dovrebbe funzionare

Dettagli

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico Introduzione alle basi di dati Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS Gestione delle

Dettagli

Definizione di domini

Definizione di domini Definizione di domini Come nei linguaggi ad alto livello (es. C) è possibile definire nuovi domini (tipi di dati) a partire da quelli predefiniti, anche se il costruttore è più limitato. create domain

Dettagli

Access. P a r t e p r i m a

Access. P a r t e p r i m a Access P a r t e p r i m a 1 Esempio di gestione di database con MS Access 2 Cosa è Access? Access e un DBMS che permette di progettare e utilizzare DB relazionali Un DB Access e basato sui concetti di

Dettagli

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015 BASE DI DATI: introduzione Informatica 5BSA Febbraio 2015 Di cosa parleremo? Base di dati relazionali, modelli e linguaggi: verranno presentate le caratteristiche fondamentali della basi di dati. In particolare

Dettagli

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni Introduzione Ai Data Bases Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni I Limiti Degli Archivi E Il Loro Superamento Le tecniche di gestione delle basi di dati nascono

Dettagli

PROGRAMMAZIONE MODULARE DI INFORMATICA CLASSE QUINTA - INDIRIZZO MERCURIO SEZIONE TECNICO

PROGRAMMAZIONE MODULARE DI INFORMATICA CLASSE QUINTA - INDIRIZZO MERCURIO SEZIONE TECNICO PROGRAMMAZIONE MODULARE DI INFORMATICA CLASSE QUINTA - INDIRIZZO MERCURIO SEZIONE TECNICO Modulo 1: IL LINGUAGGIO HTML Formato degli oggetti utilizzati nel Web Elementi del linguaggio HTML: tag, e attributi

Dettagli

SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione

SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione SISTEMI INFORMATIVI AVANZATI -2010/2011 1 Introduzione In queste dispense, dopo aver riportato una sintesi del concetto di Dipendenza Funzionale e di Normalizzazione estratti dal libro Progetto di Basi

Dettagli

Corso Sistemi Informativi Avanzati. Programma 30 set 2015. Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.

Corso Sistemi Informativi Avanzati. Programma 30 set 2015. Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende. Programma 30 set 205 Installazione Macchina Virtuale Introduzione alla BI nelle Aziende Introduzione SQL Macchina Virtuale È un emulazione di un computer su un altro computer Stesso punto di partenza per

Dettagli

Corso di Basi di Dati e Conoscenza

Corso di Basi di Dati e Conoscenza Corso di Basi di Dati e Conoscenza Gestione dei Dati e della Conoscenza Primo Emicorso - Basi di Dati Roberto Basili a.a. 2012/13 1 Obbiettivi Formativi Scenario Le grandi quantità di dati accumulate nelle

Dettagli

Introduzione ai database relazionali

Introduzione ai database relazionali Introduzione ai database relazionali Tabelle Un database (DB) è costituito da un insieme di file che memorizzano dati opportunamente organizzati Nei database relazionale tale organizzazione è costituita

Dettagli

Informatica Generale Andrea Corradini. 19 - Sistemi di Gestione delle Basi di Dati

Informatica Generale Andrea Corradini. 19 - Sistemi di Gestione delle Basi di Dati Informatica Generale Andrea Corradini 19 - Sistemi di Gestione delle Basi di Dati Sommario Concetti base di Basi di Dati Il modello relazionale Relazioni e operazioni su relazioni Il linguaggio SQL Integrità

Dettagli

Basi di Dati e Microsoft Access

Basi di Dati e Microsoft Access Basi di Dati e Microsoft Access Lun: 16-18 e Mer: 14-17 Alessandro Padovani padoale@email.it Database: definizione Un database (DB) è una collezione di informazioni organizzata in gruppi, che consentono

Dettagli

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014 Archivi e database Prof. Michele Batocchi A.S. 2013/2014 Introduzione L esigenza di archiviare (conservare documenti, immagini, ricordi, ecc.) è un attività senza tempo che è insita nell animo umano Primi

Dettagli

Corso di Informatica

Corso 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

Dettagli

Operazioni sui database

Operazioni sui database Operazioni sui database Le operazioni nel modello relazionale sono essenzialmente di due tipi: Operazioni di modifica della base di dati (update) Interrogazioni della base di dati per il recupero delle

Dettagli

Base di dati e sistemi informativi

Base di dati e sistemi informativi Base di dati e sistemi informativi Una base di dati è un insieme organizzato di dati opportunamente strutturato per lo svolgimento di determinate attività La base di dati è un elemento fondamentale per

Dettagli

Tecnologia di un Database Server (centralizzato) Introduzione generale

Tecnologia di un Database Server (centralizzato) Introduzione generale Introduzione Basi di Dati / Complementi di Basi di Dati 1 Tecnologia di un Database Server (centralizzato) Introduzione generale Angelo Montanari Dipartimento di Matematica e Informatica Università di

Dettagli

Organizzazione delle informazioni: Database

Organizzazione delle informazioni: Database Organizzazione delle informazioni: Database Laboratorio Informatico di base A.A. 2013/2014 Dipartimento di Scienze Aziendali e Giuridiche Università della Calabria Dott. Pierluigi Muoio (pierluigi.muoio@unical.it)

Dettagli

Riepilogo delle modifiche di PA-DSS dalla versione 2.0 alla 3.0

Riepilogo delle modifiche di PA-DSS dalla versione 2.0 alla 3.0 Settore delle carte di pagamento (PCI) Standard di protezione dei dati per le applicazioni di pagamento () Riepilogo delle modifiche di dalla versione 2.0 alla 3.0 Novembre 2013 Introduzione Il presente

Dettagli

Dispensa di Informatica I.1

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

Dettagli

La Metodologia adottata nel Corso

La Metodologia adottata nel Corso La Metodologia adottata nel Corso 1 Mission Statement + Glossario + Lista Funzionalià 3 Descrizione 6 Funzionalità 2 Schema 4 Schema 5 concettuale Logico EA Relazionale Codice Transazioni In PL/SQL Schema

Dettagli

Facoltà di Farmacia - Corso di Informatica

Facoltà di Farmacia - Corso di Informatica Basi di dati Riferimenti: Curtin cap. 8 Versione: 13/03/2007 1 Basi di dati (Database, DB) Una delle applicazioni informatiche più utilizzate, ma meno conosciute dai non informatici Avete già interagito

Dettagli

Corso: Sistemi di elaborazione delle informazioni 2. Anno Accademico: 2007/2008. Docente: Mauro Giacomini

Corso: Sistemi di elaborazione delle informazioni 2. Anno Accademico: 2007/2008. Docente: Mauro Giacomini Corso: Sistemi di elaborazione delle informazioni 2. Anno Accademico: 2007/2008. Docente: Mauro Giacomini Organizzazione no-profit per lo sviluppo di standard che fornisce linee guida per: lo scambio la

Dettagli

Per capire meglio l ambito di applicazione di un DWhouse consideriamo la piramide di Anthony, L. Direzionale. L. Manageriale. L.

Per capire meglio l ambito di applicazione di un DWhouse consideriamo la piramide di Anthony, L. Direzionale. L. Manageriale. L. DATA WAREHOUSE Un Dataware House può essere definito come una base di dati di database. In molte aziende ad esempio ci potrebbero essere molti DB, per effettuare ricerche di diverso tipo, in funzione del

Dettagli

L architettura di un DBMS

L architettura di un DBMS L architettura di un DBMS sources: Lucidi del corso di Lucidi del corso di Laboratorio di Basi di dati e sistemi informativi, Montesi, Magnani, Corso di laurea in Informatica per il management, Scienze

Dettagli

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica. Progettazione logica Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica. La progettazione logica è basata su un particolare modello logico dei

Dettagli

Al giorno d oggi, i sistemi per la gestione di database

Al giorno d oggi, i sistemi per la gestione di database Introduzione Al giorno d oggi, i sistemi per la gestione di database implementano un linguaggio standard chiamato SQL (Structured Query Language). Fra le altre cose, il linguaggio SQL consente di prelevare,

Dettagli

PROCEDURA OPERATIVA PER LA GESTIONE DELLO SVILUPPO DEL SOFTWARE BM-33T

PROCEDURA OPERATIVA PER LA GESTIONE DELLO SVILUPPO DEL SOFTWARE BM-33T Proc. 23 Pag. 1 di 8 PROCEDURA OPERATIVA PER LA GESTIONE DELLO SVILUPPO DEL SOFTWARE BM-33T 1. SCOPO... 2 2. APPLICABILITÀ... 2 3. DOCUMENTI DI RIFERIMENTO... 2 3.1. Norme e leggi di riferimento... 2 3.2.

Dettagli

Transazioni - Parte 1

Transazioni - Parte 1 Basi di dati II Lezione 3 09/10/2008 Caputo Domenico Cosimo, Francesco Pichierri Transazioni - Parte 1 Le transazioni hanno a che fare con la programmabilità delle basi di dati. Prima di trattarle è necessaria

Dettagli

Concetti di base di ingegneria del software

Concetti 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

Dettagli

Anno Scolastico: 2014/2015. Indirizzo: Sistemi informativi aziendali. Classe quarta AS. Disciplina: Informatica. prof.

Anno Scolastico: 2014/2015. Indirizzo: Sistemi informativi aziendali. Classe quarta AS. Disciplina: Informatica. prof. Anno Scolastico: 2014/2015 Indirizzo: Sistemi informativi aziendali Classe quarta AS Disciplina: Informatica prof. Competenze disciplinari: Secondo biennio 1. Identificare e applicare le metodologie e

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo

Dettagli

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Il 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

Dettagli

Lorenzo Braidi. Database design. Libro_datadesign.indb 1 23-11-2004 10:06:17

Lorenzo Braidi. Database design. Libro_datadesign.indb 1 23-11-2004 10:06:17 Lorenzo Braidi Database design Libro_datadesign.indb 1 23-11-2004 10:06:17 Sommario Introduzione...XI Capitolo 1 Le basi di dati relazionali... 1 Le basi di dati... 1 Un po di storia... 2 I database gerarchici...

Dettagli

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Ambiente Access La Guida di Access Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Guida in linea Guida rapida Assistente di Office indicazioni

Dettagli

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari: SQL SQL (pronunciato anche come l inglese sequel: acronimo di Structured Query Language (linguaggio di interrogazione strutturato Linguaggio completo che presenta anche proprietà di: DDL (Data Definition

Dettagli

Gestione del workflow

Gestione del workflow Gestione del workflow Stefania Marrara Corso di Tecnologie dei Sistemi Informativi 2004/2005 Progettazione di un Sistema Informativo Analisi dei processi Per progettare un sistema informativo è necessario

Dettagli

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei Introduzione Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei. ESEMPI DI INSIEMI DI DATI DA ORGANIZZARE ED USARE IN MANIERA EFFICIENTE Introduzione Più utenti con

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI 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

Dettagli

BASE DI DATI: sicurezza. Informatica febbraio 2015 5ASA

BASE DI DATI: sicurezza. Informatica febbraio 2015 5ASA BASE DI DATI: sicurezza Informatica febbraio 2015 5ASA Argomenti Privatezza o riservatezza Vincoli di integrità logica della base di dati intrarelazionali interrelazionali Principio generale sulla sicurezza

Dettagli

Corso di Informatica (Basi di Dati)

Corso di Informatica (Basi di Dati) Corso di Informatica (Basi di Dati) Lezione 1 (12 dicembre 2008) Introduzione alle Basi di Dati Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati 1, Prof. Carlo Batini,

Dettagli

GERARCHIE RICORSIVE - SQL SERVER 2008

GERARCHIE RICORSIVE - SQL SERVER 2008 GERARCHIE RICORSIVE - SQL SERVER 2008 DISPENSE http://dbgroup.unimo.it/sia/gerarchiericorsive/ L obiettivo è quello di realizzare la tabella di navigazione tramite una query ricorsiva utilizzando SQL SERVER

Dettagli

MANUALE DELLA QUALITÀ Pag. 1 di 6

MANUALE DELLA QUALITÀ Pag. 1 di 6 MANUALE DELLA QUALITÀ Pag. 1 di 6 INDICE GESTIONE DELLE RISORSE Messa a disposizione delle risorse Competenza, consapevolezza, addestramento Infrastrutture Ambiente di lavoro MANUALE DELLA QUALITÀ Pag.

Dettagli

Sistemi di gestione delle basi di dati. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Sistemi di gestione delle basi di dati. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma Sistemi di gestione delle basi di dati 1 Cos è un DBMS? Una collezione integrata molto grande di dati Modella organizzazioni del mondo reale Entità (ad esempio studenti, corsi) Relazioni (ad esempio, Madonna

Dettagli

SQL Server 2005. Introduzione all uso di SQL Server e utilizzo delle opzioni Olap. Dutto Riccardo - SQL Server 2005.

SQL Server 2005. Introduzione all uso di SQL Server e utilizzo delle opzioni Olap. Dutto Riccardo - SQL Server 2005. SQL Server 2005 Introduzione all uso di SQL Server e utilizzo delle opzioni Olap SQL Server 2005 SQL Server Management Studio Gestione dei server OLAP e OLTP Gestione Utenti Creazione e gestione DB SQL

Dettagli

Ciclo di vita del software

Ciclo di vita del software Ciclo di vita del software Nel corso degli anni, nel passaggio dalla visione artigianale alla visione industriale del software, si è compreso che il processo andava formalizzato attraverso: un insieme

Dettagli

Linguaggio SQL: fondamenti D B M G. Gestione delle tabelle

Linguaggio SQL: fondamenti D B M G. Gestione delle tabelle Linguaggio SQL: fondamenti Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati 2 2007 Politecnico di Torino 1 Creazione

Dettagli

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

Dettagli

www.happybusinessapplication.net

www.happybusinessapplication.net www.astudio.it Cosa è HBA Project HBA Project è una Web Business Application gratuita che può essere installata sul proprio dominio come una «personal cloud», alla quale avrà accesso solo l utente che

Dettagli

MODELLO RELAZIONALE. Introduzione

MODELLO RELAZIONALE. Introduzione MODELLO RELAZIONALE Introduzione E' stato proposto agli inizi degli anni 70 da Codd finalizzato alla realizzazione dell indipendenza dei dati, unisce concetti derivati dalla teoria degli insiemi (relazioni)

Dettagli

ITI M. FARADAY Programmazione modulare a.s. 2014-2015

ITI M. FARADAY Programmazione modulare a.s. 2014-2015 Indirizzo: INFORMATICA E TELECOMUNICAZIONI Disciplina: Informatica Docente:Maria Teresa Niro Classe: Quinta B Ore settimanali previste: 6 (3 ore Teoria - 3 ore Laboratorio) ITI M. FARADAY Programmazione

Dettagli

Corso sul linguaggio SQL

Corso sul linguaggio SQL Corso sul linguaggio SQL Modulo L2B (SQL) 2.1 Comandi sui database 1 Prerequisiti Introduzione ai DB Linguaggi per database Tipi fondamentali di dati 2 1 Introduzione In questa Unità introduciamo il linguaggio

Dettagli

Quality gate. Sono eventi programmati regolarmente e condotti seguendo una procedura standard

Quality gate. Sono eventi programmati regolarmente e condotti seguendo una procedura standard Quality gate Nei punti chiave del processo di sviluppo del software, viene integrato un insieme di quality gate per monitorare la qualità del prodotto intermedio prima che quest ultimo possa passare al

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1 IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

REFERENZIAZIONI 2001) NUP

REFERENZIAZIONI 2001) NUP Agenzia del Lavoro Provincia Autonoma di Trento PROFILO FORMATIVO Profilo professionale e percorso formativo DENOMINAZIONE FIGURA PROFESSIONALE - TECNICO INFORMATICO PROGRAMMATORE SOFTWARE E APPLICAZIONI

Dettagli

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

LA GESTIONE DELLE VISITE CLIENTI VIA WEB LA GESTIONE DELLE VISITE CLIENTI VIA WEB L applicazione realizzata ha lo scopo di consentire agli agenti l inserimento via web dei dati relativi alle visite effettuate alla clientela. I requisiti informatici

Dettagli

Sviluppata da: Lo Russo - Porcelli Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL.

Sviluppata da: Lo Russo - Porcelli Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL. Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL. 2ELHWWLYL GD UDJJLXQJHUH SHU JOL VWXGHQWL alla fine dell esercitazione gli studenti dovranno essere in grado di: 1. utilizzare

Dettagli