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
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/)
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 )
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
(da http://www.zifa.com/) ENTERPRISE ARCHITECTURE - A FRAMEWORK DATA What FUNCTION How NETWORK Where PEOPLE Who When MOTIVATION Why TIME TM SCOPE (CONTEXTUAL) List of Things Important to the Business List of Processes the Business Performs List of Locations in which the Business Operates List of Organizations Important to the Business List of Events Significant to the Business List of Business Goals/Strat SCOPE (CONTEXTUAL) Planner 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 Planner ENTERPRISE MODEL (CONCEPTUAL) 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 ENTERPRISE MODEL (CONCEPTUAL) Owner 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 End = Business Objective Means = Business Strategy Owner SYSTEM MODEL (LOGICAL) e.g. Logical Data Model e.g. "Application Architecture" e.g. "Distributed System Architecture" e.g. Human Interface Architecture e.g. Processing Structure e.g., Business Rule Model SYSTEM MODEL (LOGICAL) Designer Ent = Data Entity Reln = Data Relationship 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 Designer TECHNOLOGY MODEL (PHYSICAL) 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 TECHNOLOGY CONSTRAINED MODEL (PHYSICAL) Builder DETAILED REPRESEN- TATIONS (OUT-OF- CONTEXT) Ent = Segment/Table/etc. Reln = Pointer/Key/etc. e.g. Data Definition Proc.= Computer Function I/O = Screen/Device Formats e.g. "Program" Node = Hardware/System Software Link = Line Specifications e.g. "Network Architecture" People = User Work = Screen Format e.g. Security Architecture Time = Execute Cycle = Component Cycle e.g. Timing Definition End = Condition Means = Action e.g. Rule Specification Builder DETAILED REPRESEN- TATIONS (OUT-OF CONTEXT) Sub- Contractor FUNCTIONING ENTERPRISE Ent = Field Reln = Address e.g. DATA Proc.= Language Stmt I/O = Control Block e.g. FUNCTION Node = Addresses Link = Protocols e.g. NETWORK People = Identity Work = Job e.g. ORGANIZATION Time = Interrupt Cycle = Machine Cycle e.g. SCHEDULE End = Sub-condition Means = Step e.g. STRATEGY Sub- Contractor 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
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
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.
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
Azioni Oggetti problema Schema di percorso: dal problema ai risultati Comprendere il problema ANALISI algoritmo PROGRAMMAZIONE software ELABORAZIONE risultati Elenco di istruzioni per ottenere la soluzione 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
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
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
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-2- 2004) 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à
Possibile scenario Cessione della titolarità licenza a titolo gratuito Fornitore Prodotto α PA1 Prodotto α PA2 Prodotto β PA3 Codice sorgente Codice oggetto Documentazione Titolarità Prodotto α Prodotto β Codice sorgente Codice oggetto Documentazione Possibilità di adattamento 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