L'importanza sempre crescente del software A parità di hardware é il software che fa la differenza, dal SO alle applicazioni! (intelligenza, amichevolezza, qualità, ...) Nella storia dell'informatica si é partiti con il dare molta importanza all'hardware rispetto al software: oggi la situazione é del tutto opposta. Prima fase (anni `55-65) hardware dedicati (cioé esecuzione di una applicazione per macchina) sforzi tesi allo sviluppo dell'hardware assenza di metodologie di sviluppo software (tecniche empiriche ed artigianali, assenza di prospettive ingegneristiche) software sviluppato ed usato individualmente (niente documentazione) Seconda fase (anni `65-75): hardware multiprogrammati sistemi multiutente ed interazione uomo-macchina dispositivi di memoria on-line e prima generazione di DBMS (Data Base Management Systems) nascono il mercato dei pacchetti software (software packages) e le case produttrici di software (software houses) che producono e vendono anche migliaia di copie per programma dai programmi individuali (da migliaia a decine di migliaia di istruzioni) si passa a quelli "industriali" (con decine o centinaia di migliaia di istruzioni). la spesa per il software supera quella per l'hardware. Terza fase (anni `75 - 85) sistemi distribuiti (più elaboratori che comunicano fra loro) necessità di disporre di reti digitali globali e locali a bande sempre più larghe e necessità di produrre software di rete avvento e diffusione di microprocessori e Personal Computer le società di software producono decine ed anche centinaia di migliaia di una sola applicazione la spesa per il software supera quella per l'hardware. Quarta fase (anni '85 - ...): intensificazione della crisi del software dovuta al fatto che: 1) la potenzialità dell'hardware supera la capacità di costruire software adeguato 2) la domanda di software supera la capacità di produrne 3) i tempi e i costi di produzione superano ogni ragionevole previsione 4) il prodotto non risponde ai bisogni ed ai requisiti dell'utente 5) i costi di manutenzione sono proibitivi per l'incapacità di trovare gli errori prima di consegnare il software ai clienti 6)1'individuazione di limiti ed errori porta a correzioni o modifiche dell'intero progetto fattore costo modiche fase lavoro Definizione Sviluppo Manutenzione COSA E 'IL SOFTWARE ? IL SOFTWARE NON SI LOGORA LE COMPONENTI DEL SOFTWARE 1. insieme di APPLICAZIONI istruzioni e DI moduli che L'INGEGNERE forniscono certe prestazioni e VARIETA' COSA DEVE DI APPLICAZIONI SAPER FARE SOFTWARE DEFINIZIONI INGEGNERIA DEL VARIETA' DI SOFTWARE I un PROBLEMI NELLO SVILUPPO DEL Tasso di funzioni desiderate CATEGORIE DIdel PROGETTI Hardware LeDEL componenti software si distinguono in ai"eseguibili" (dalla INGEGNERIA SW? DELSOFTWARE SOFTWARE (cont.) (IdS) SOFTWARE 2. un insieme di strutture dati che consentono programmi di manipoguasto mortalità 1) Software die sistema macchina) "non eseguibili" . Le componenti non eseguibili sono lare le informazioni infantile configura l'hardware, gestisce 1'input e l'output, forme linguistiche che specificano software man ...mano più forma6) Software per Personal Computer 3.Funzioni: unDisciplina insieme di documenti che ildescrivono l'operatività e l'uso dei tecnologica e manageriale il cui scopo è la produzione e pro1. conoscere diversi approcci progettuali 1) L'IdS è statistica laProgrammatori scienza che fornisce gliche strumenti Esempi: sist. operativi, compilatori, editor, utilities, sw di comunicazione .... Categoria Durata Dimensioni lizzate sino ad essere direttamente traducibili in linguaggio macchina Funzioni: strumenti di produttività personale grammi. Nel 1980 una USA fece scoprire per i 2. Caratteristiche: saper comunicare con il committente senza tecnicismi il mantenimento sistematico di1'hw, prodotti che devonorisorse, es- strutture forte condivisione Banale 1 grafica, con 1-4 multiutenza, wks software 500 linee da un compilatore. Esempi: word processor, comunicazioni, basi dati, entertainment,... concettuali e interazione metodologici per permettere al sof- 3. sapersoftware:: tradurre richieste vaghe in specifiche tecniche e saper creare dei progetti C.A.S.E. Piccolo 1 1-6 mos 1k-2k dati complesse, ... Caratteristiche: amichevolezza, basso costo difetti sere sviluppati e modificati entro certi limiti stimati di tempo e di modelli tware di esistere in tutto il suo ciclo di vita. Medio 2-5 1-2 yrs 5k-50k iniziali il 47 % era stato pagato ma mai messo indalla visione UNA DEFINIZIONE 4. saper salire e scendere fra diversi livelli di astrazione: Grandecosti. S0k-100k 2) Software di tempo reale5-20 (courseware) 2-3 yrs 7) per l'insegnamento REQUISITI complessiva è dell'insieme SW come undi tutto alle singole parti,documenti dalla definizione commercio IlMolto software programmi, e grandeattivare 100-1000 yrsquasi nullo 1 M eventi e situazioni Funzioni: Misura, eanalizza, tempo Funzioni: gestire ilcontrolla processoindi4-5 apprendimento,... COMPONENTI DEL PRODOTTO SOFtWARE tecnica delle funzioni e delle prestazioni alla codifica dettagliata Estremamente grande 2000-5000 drill, test .. 5-10 1M- 1OM Esempi: sistemi di controllo Esempi: tutorial, simulazioni, ..inyrs il 29 % era stato messo commercio ma procedure operative mediante i quali iobsolescenza computer 5. saper gestire un gruppo di lavoro (doti di comunicativa e rapporto 2) L'IdS è la scienza che specifica, progetta, imCaratteristiche: alta tempi di risposta tra 1 msec ed 1 minuto primo interattività, alta efficienza comunicativa multimedialità,... -non Codiceusato sorgente. Tempo umano) PROGETTAZIONE SOFTWARE possono esser resi utili plementa e fa evolvere con economicità, certezza (non eseguibile) 3) Software per gestionale 8) l'Intelligenza Artificiale - Documenti: ... Funzioni: Funzioni: elabora informazioni aziendali rappresentazione ed uso della conoscenza (KBS), problem solving, ... - ilMA 20 SI % DETERIORA era stato abbandonato o rifatto dei tempi, efficienza ed eleganza il software, cioè i -Esempi: il 3sistemi % era stato usato dopo cambiamenti calcoli esperti e iprospetti finanziari, fatturazione, gestione magazzino, stipendi, Curva teorica software per diagnosi medica, laprocedure ricerca di guasti, ...informatiprogrammi, documenti e per leguasti TRADUTTORE QUALI CONOSCENZE DEVE TENDERE AD supporti alle Documenti .decisioni, ...) Curva reale guasti come software di specifica LE PECULIARITA' DEL SOFTWARE Caratteristiche: algoritmi non numerici 1' 1.5 % era stato usato così messo in che ed umane che rendono utili i computer. 9ua~ Caratteristiche: interattività ACQUISIRE L'INGEGNERE DEL SW?essere: di progetto commercio La natura deiSpecifiche problemi fondamentali risultò portabilità: buona manutenII -software é un prodotto che non assume zione:forma buona fisica, esso non si Complessità 4) Software ingegneristico e scientifico Principi di funzionamento lettura: buona 3) L'IdS èsi LING. la scienza che fabbrica' ma IN 'sviluppa' e si 'ingegnerizza'. Ciò comporta che: FORMA SORGENTE testing: facile Difficoltà di stabilire e di stabilizzare i degli requi1.-Funzioni: scienze gestionali cioè il così edetto "management" (stima aspetti elaborazioni matematiche grafiche livello di astrazione: buono e biso non si può valutarlo con immediatezza come, altri prodotti Piani di test (non eseguibile) buonaumane, decomprogettuali, pianificazione temporale eproduttività: delle risorse Esempi: simulazioni, CAD, siti gna farlo secondo altri...canoni posizione edinterattività assegnazione deidella compiti, controllo dell'avanzamento, a) sviluppa le ed i metodi che supportano Procedure di controllo qualità -Caratteristiche: Difficoltà di tecniche modificare - ...)Invisibilità le varie fasi sviluppo del sw. Rapporti suidello problemi software TRADUTTORE 2.- ingegneria dei sistemi (un software con centinaia o migliaia di moduli Mancanza di una disciplina con un suo appa5)Il Software di bordo (embedded) software é un complesso) prodotto che non si logora e non si guasta é un sistema b) studia il processo di sviluppo del sw al fine di Procedure la manutenzione rato teorico e per metodologico Controllo funzionam. prodotti industriali e di consumo velocità di esecuzione: max Più Funzioni: specificamente: portabilità: min controllo elettrodomestici, autoveicoli, ... quali i migliori approcci pernella Esempi: a capire parte ilManuali manifestarsi di difetti occulti, i guasti non crescono d'usosiano manutenzione: difficile lettura: difficile tempo Caratteristiche: risiedeMACCHINA in ROM, ha funzioni limitate FORMA IN LING. testing: difficile integrazione organica delle svariate attività Istruzioni per l'istallazione di astrazione: pro- nella PEZZI DI (eseguibile) RICAMBIO? ICs,livello riusabilità, ...)errori i guasti non sono causati(Sw da deterioramento ma damin duttività: pessima progettazione o nello sviluppo dello Ausili sviluppo del sw per l'addestramento c) produce strumenti ed ambienti sw per guidare Tasso di Punti di modifica Tempo J