Operatore Informatico Giuridico Informatica Giuridica A.A 2007/2008 I Semestre Sistemi informativi, sistemi informatici e software Lezione 1 prof. Monica Palmirani Sistema informativo e sistema informatico • Sistema informativo: l’insieme di persone, norme e regole, dispositivi tecnologici, processi aziendali che permettono all’azienda di disporre delle informazioni giuste al momento giusto • Sistema informatico: la parte del sistema informativo gestita tramite supporti informatici 1 Framework di Zachman • L’informatica si fonda su tre grandi pilastri: software, dati, rete • Nel modello di Zachman sono rappresentati questi pilastri nelle colonne e nelle righe i rispettivi attori che svolgono ruoli e azioni diverse su ogni colonna utilizzando prospettive, obiettivi, e strumenti diversi • Questa rappresentazione realizza la modellazione di un sistema informativo • Colonne - dati, processi e comunicazioni componenti di base di un sistema informativo • Righe - decisore , responsabile, progettista, costruttore, realizzatore e utilizzatore finale (da http://www.zifa.com/) 2 Linguaggi di modellazione • Ogni colonna ha i suoi strumenti di modellazione • Ogni riga raffina dall’alto verso il basso aggiungendo dettagli e granularità al modello • Esempi di alcuni modelli sono: – DFD – data flow diagram per i (3,processi) – E-R – Entità relazione per i dati (2, data) – UML – è un linguaggio di modellazione che premette la rappresentare ogni colonna e ogni riga. Metodo globale Interpretaizione del modello di Zachman • 1,2,3 appartengono al “cosa fare” e al governo dei flussi di decisioni, documentali, processi aziendali. Questi livelli sono il sistema informativo. • 4,5,6 appartengono al “come farlo” e appartengono ai sistemi informatici. • Gli strati 4,5,6 devono fornire l’infrastruttura per garantire l’ottenimento degli obiettivi definiti in 1,2,3 • Il sistema informatico è funzionale agli obiettivi del sistema informativo e non il contrario • In passato invece il sistema informatico modellava le decisioni strategiche (anni 80’) 3 Componenti dei sistemi informativi • Dati Analisi delle entità e delle relazioni, loro rappresentazione tabellare; costruzione di una struttura data base • Processi aziendali Decomposizione, flusso dei dati, struttura dei moduli, programmazione e codifica dei moduli • Reti di comunicazione Struttura di comunicazione e organizzativa Estensioni recenti Recentemente si sono aggiunte nuove colonne per la gestione per la gestione della conoscenza (persone) degli eventi (tempo), e delle componenti motivazionali (motivazioni) • Tempo • Persone • Motivazione 4 (da http://www.zifa.com/) ENTERPRISE ARCHITECTURE - A FRAMEWORK DATA SCOPE (CONTEXTUAL) Planner ENTERPRISE MODEL (CONCEPTUAL) Owner What List of Things Important to the Business FUNCTION How List of Processes the Business Performs NETWORK Where List of Locations in which the Business Operates PEOPLE Who List of Organizations Important to the Business TIME When List of Events Significant to the Business TM MOTIVATION Why List of Business Goals/Strat ENTITY = Class of Business Thing Function = Class of Business Process Node = Major Business Location People = Major Organizations Time = Major Business Event Ends/Means=Major Bus. Goal/ Critical Success Factor e.g. Semantic Model e.g. Business Process Model e.g. Logistics Network e.g. Work Flow Model e.g. Master Schedule e.g. Business Plan Ent = Business Entity Reln = Business Relationship Proc. = Business Process I/O = Business Resources Node = Business Location Link = Business Linkage People = Organization Unit Work = Work Product Time = Business Event Cycle = Business Cycle e.g. Logical Data Model e.g. "Application Architecture" e.g. "Distributed System Architecture" e.g. Human Interface Architecture SYSTEM MODEL (LOGICAL) e.g. Processing Structure Proc .= Application Function I/O = User Views Node = I/S Function (Processor, Storage, etc) Link = Line Characteristics People = Role Work = Deliverable Time = System Event Cycle = Processing Cycle End = Structural Assertion Means =Action Assertion e.g. Physical Data Model e.g. "System Design" e.g. "System Architecture" e.g. Presentation Architecture e.g. Control Structure e.g. Rule Design Builder Ent = Segment/Table/etc. Reln = Pointer/Key/etc. Proc.= Computer Function I/O = Screen/Device Formats Node = Hardware/System Software Link = Line Specifications e.g. "Program" e.g. "Network Architecture" People = User Work = Screen Format e.g. Security Architecture Cycle = Component Cycle e.g. Data Definition Ent = Field Reln = Address Proc.= Language Stmt I/O = Control Block Node = Addresses Link = Protocols SubContractor FUNCTIONING ENTERPRISE e.g. DATA e.g. FUNCTION e.g. NETWORK People = Identity Work = Job e.g. ORGANIZATION Time = Execute SYSTEM MODEL (LOGICAL) Designer TECHNOLOGY CONSTRAINED MODEL (PHYSICAL) Builder End = Condition Means = Action e.g. Timing Definition e.g. Rule Specification Time = Interrupt Cycle = Machine Cycle End = Sub-condition Means = Step e.g. SCHEDULE Owner End = Business Objective Means = Business Strategy Ent = Data Entity Reln = Data Relationship DETAILED REPRESENTATIONS (OUT-OFCONTEXT) Planner ENTERPRISE MODEL (CONCEPTUAL) e.g., Business Rule Model TECHNOLOGY MODEL (PHYSICAL) Designer SCOPE (CONTEXTUAL) e.g. STRATEGY DETAILED REPRESENTATIONS (OUT-OF CONTEXT) SubContractor FUNCTIONING ENTERPRISE Hardware e Software - prima definizione • Hardware: parte fisica del computer costituita da parti elettroniche e meccaniche • Firmware: insieme di microprogrammi registrati sulle memorie permanenti dei dispositivi elettronici, solitamente introdotti dal costruttore e cablati nell’hardware • Software: Insieme di programmi scritti in qualche linguaggio di programmazione eseguibili dal computer 5 Software - seconda definizione • “Istruzioni che eseguite da un computer svolgono una funzione prestabilita con prestazioni prestabilite - (programma) • strutture dati mediante le quali i programmi trattano adeguatamente le informazioni (schemi logici e fisici dei dati) • documenti che descrivono le operazioni e l’uso dei programmi - (documentazione tecnica e manuale utente)” [R.S. Pressman,Principi di Ingegneria del software, McGraw-Hill 2000] Tipologia del software • Software di base – software al servizio di altri software – sistema operativo: insieme di programmi che governano le funzioni e le risorse primarie del calcolatore – esecuzione di programmi – operazioni di ingresso/uscita – gestione di file – protezione – rilevazione errori • Software applicativo: dedicato ad uno scopo applicativo 6 Strati del software Utente Programmi applicativi Linguaggi e ambienti di programmazione Sistema operativo Firmware HARDWARE Tipologie di software • software real-time - software dedicato alla sorveglianza, all’analisi e all’elaborazione di eventi esterni (rilevamento di temperature di una piastra di acciaio durante la lavorazione) • software gestionale - elaborazione dei dati e dei processi aziendali - 70%-80% • software scientifico - astronomia, calcolo parallelo, etc. 7 Tipologie di software • software di Intelligenza Artificiale - basati su algoritmi non numerici - sistemi esperti, reti neruali, dimostratori di teoremi, etc. • software embedded - programmi residenti in prodotti industriali (lavatirici, forno, termostati ambientali, etc.) • software per PC - applicativi di office-automation (fogli elettronici, elaboratori di testi, etc.) • software basato su Internet - B2B, B2C, portali, etc. Categorie di software • Generici – prodotti software standardizzati venduti sul mercato – le specifiche vengono dettate dal mercato e dal produttore stesso • Dedicati – progetti ad hoc creati per un determinato cliente – le specifiche vengono dettate dal cliente • Prodotto vs. Progetto 8 Schema di percorso: dal problema ai risultati Azioni Oggetti problema Comprendere il problema ANALISI Elenco di istruzioni per ottenere la soluzione algoritmo PROGRAMMAZIONE software ELABORAZIONE risultati Tradurre la soluzione in un linguaggio comprensibile al calcolatore Algoritmo tradotto in un linguaggio eseguibile dal calcolatore Fase di esecuzione del programma da parte del computer Esempio – Problema - Prelevare contanti in banca – Analisi - si possono prelevare contanti in diversi modi:bancomat, mediante assegno, chiedendo un prestito, fare una rapina, etc. – Algoritmo - si decide per il bancomat, si descrivono i passi operativi e le istruzioni che attivano il bancomat – Elaborazione - esecuzione delle operazioni – Risultati - i contanti 9 Algoritmo - definizione intuitiva Elenco preciso di operazioni, comprensibile da un esecutore, che definisce una sequenza finita di passi i quali risolvono ogni problema di un dato tipo (classe di problemi). algoritmo deriva dal nome di un matematico arabo - alKhuwarizmi vissuto nel nono secolo d.c. Esempio: operazioni necessarie per compiere una telefonata, per prelevare denaro dal bancomat, per iscriversi ad un esame, etc. Esempio - bancomat macro operazioni 1. Estrazione della tessera bancomat 2. Inserimento della tessera nell’apposito macchinario 3. Scelta dell’operazione da eseguire 4. Inserimento del codice segreto 5. Conclusione operazione 6. Prelievo tessera 7. Prelievo contanti 10 Algoritmo - definizione rigorosa Sequenza ordinata finita di passi, ripetibili e non ambigui, che se eseguita con determinati dati in ingresso (input) produce in uscita(output) dei risultati ovvero la soluzione di una classe di problemi dati algoritmo risultati Soluzione ad una classe di problemi Caratteristiche dell’algoritmo • Un algoritmo si suppone sempre che comunichi con l’ambiente acquisendo dati e restituendo risultati • Le operazioni di cui è composto l’algoritmo si dicono istruzioni • Ogni istruzione opera su dei dati o prodotti dall’algoritmo stesso o acquisiti dall’esterno • L’algoritmo non è brevettabile e come idea astratta non è neppure tutelato dal diritto d’autore in quanto tutela la forma espressiva e non l’idea 11 Obblighi della PA in materia di sviluppo ed utilizzazione dei programmi informatici • Per la PA vi sono norme che OBBLIGANO le amministrazioni a richiedere ed ottenere la titolarità dei software “ad hoc” • ex. Art. 5, Direttiva del 19 dicembre 2003 “Sviluppo ed utilizzazione dei programmi informatici da parte delle pubbliche amministrazioni” (Gazzetta Ufficiale n. 31 del 7-22004) • e a rilasciare in “uso gratuito” tale software alle altre PA (ex. Art. 69, D.lgs. 82/2005) • Modello di business Æ Generico=Prodotto vs. ad hoc=Progetto Possibile scenario • la licenza d’uso può regolamentare i seguenti oggetti: – – – – – Codice eseguibile Codice sorgente – codice aperto Documentazione Se è a titolo oneroso o a titolo gratuito le “libertà” o i vincoli di utilizzo (es. numero di calcolatori su cui è possibile installare il software) – La titolarità non viene ceduta • con il contratto: è possibile cedere anche la titolarità o regolamentare la co-titolarità 12 Possibile scenario Cessione della titolarità Fornitore Prodotto β PA3 Prodotto α Codice sorgente Codice oggetto Documentazione Titolarità licenza a titolo gratuito PA1 Prodotto α PA2 Codice sorgente Codice oggetto Documentazione Possibilità di adattamento Prodotto α ≠ Prodotto β Adattamento Prodotto δ Il riuso nella PA – art. 69 d.lgs 82/2005 • Il riuso del software nella PA è stato introdotto per: A) razionalizzare la spesa pubblica in tema di servizi informatici B) incentivare il riuso piuttosto che duplicare gli acquisti C) rendere autonome le PA di poter modificare, integrare, aggiornare i software senza un legame vincolante con il fornitore 13