20-01-2012, 16:56
(Questo messaggio è stato modificato l'ultima volta il: 08-07-2013, 11:44 {2} da Mariano.)
L’ingegneria del software è una disciplina relativamente giovane, come del resto lo sono i temi legati alla scienza informatica. Questa vede i suoi albori durante la seconda guerra mondiale per soddisfare l’esigenza di automatizzare attività di natura bellica. Successivamente le prime applicazioni prevedono l’automazione delle procedure legate a calcoli di una certa complessità, è da qui che nasce il termine calcolatore elettronico in seguito divenuto elaboratore per la capacità della macchina ad eseguire una vera e propria elaborazione di dati non solo numerici. Inizialmente l’elaboratore è visto come un esecutore ripetitivo di operazioni difficilmente eseguibili manualmente in virtù della velocità e precisione richieste, pertanto vi si accostano matematici, fisici, ingegneri che dalla macchina pretendono una potenza di calcolo in grado di soddisfare la risoluzione di problemi inerenti le proprie applicazioni. Da questa fase che possiamo definire senz’altro pionieristica abbiamo estrapolato le seguenti peculiarità:
La situazione sopra descritta ha subito un’evoluzione rapidissima, principalmente grazie all’avvento di nuove aree produttive le cui applicazioni vengono demandate agli elaboratori, in particolare quelle di natura gestionale. Il vecchio calcolatore, nato ed inteso come semplice abaco diviene quindi una macchina utilizzata per creare, modificare e distribuire informazione. L’elaboratore diviene strumento in grado di accumulare e gestire un enorme patrimonio di conoscenze strategiche inerenti l’organizzazione che beneficia delle sue prestazioni, ed è tramite questo patrimonio che si prendono decisioni volte alla gestione del personale, della produzione e tutto ciò che riguarda la line produttiva dell’organizzazione. Con l’estensione esponenziale delle aree adibite all’impiego dell’elaboratore vengono chiaramente a mancare i presupposti su cui basava la situazione sopra esposta: in modo particolare si consuma la frattura tra gli sviluppatori di applicazioni e gli utenti finali. I destinatari dei programmi sono infatti persone di estrazione non tecnica, quindi dirigenti ed impiegati che non sono in grado di realizzare gli applicativi di cui necessitano per lo svolgimento del lavoro all’interno della catena produttiva. Inoltre la dimensione e criticità dal punto di vista progettuale impone che venga formata una professionalità mirata e specifica in grado di produrre ed aggiornare i programmi che gli utenti finali dovranno utilizzare. Accanto alle divisioni di sviluppo del software presenti all’interno delle grandi aziende ed alle società di servizi, cioè i centri EDP (Electronic Data Processing), nascono le società che producono programmi per il mercato, le cosiddette Software House. E’ molto importante adesso capire come si è evoluta la situazione rispetto a quella iniziale: nella prima prevalevano gli aspetti del lavoro individuale e creativo, pertanto il software inteso come arte, successivamente si passa ad una situazione operativa che prevede piccoli gruppi specializzati, quindi parleremo di software inteso come artigianato. E’ questo secondo periodo che dà il via alla diffusione del software in quantità e qualità, decretando in modo esponenziale complessità e criticità dei programmi, anche in seguito all’automazione di settori che fino ad allora erano praticamente sconosciuti.
Chi sviluppa software riflette pertanto sui temi cruciali quali la produttività del proprio modo di operare, con occhio attento alla qualità del prodotto realizzato. Sono infatti questi due fondamentali parametri che consentono una collocazione stabile all’interno del mercato. Da qui l’esigenza che la produzione del software divenga di tipo industriale, infatti l’attività di sviluppo e manutenzione coinvolge gruppi di lavoro aventi grandi dimensioni alfine di coordinare e pianificare la produzione. Per incrementare produttività e quantità il progettista di software deve essere supportato nel proprio lavoro da strumenti automatici che riducano drasticamente l’approccio manuale ed informale. La qualità dei prodotti particolarmente complessi deve poter essere certificata in modo convincente, lo sviluppo avvenire in base a delle linee guida definite in metodologie di comprovata efficacia: la produttività deve aderire a degli standard che rendano meno traumatico il continuo ricambio del personale. Ciò implica che lo sviluppo di nuovi applicativi deve basarsi anche sull’assemblaggio di componenti standard già presenti sul mercato!
La necessità dell’evoluzione sopra descritta, cioè il passaggio da arte, ad artigianato ed infine ad industria, venne concepita già negli anni 60, in modo particolare per trasformare la materia in disciplina ingegneristica. In una conferenza NATO organizzata a Garmisch, in Germania, per la prima volta si parlò di Ingegneria del software, presentando una disciplina basata su solidissime basi teoriche e metologiche che consentano progettazione, manutenzione ed aggiornamento di applicazioni in grado di fornire caratteristiche di qualità previste mediante utilizzo delle risorse disponibili. Possiamo affermare che la conferenza di Garmisch fornì più che altro una linea indicativa, certificando lo stadio assai rudimentale della disciplina, in modo particolare se rapportato ad altri settori dell’ingegneria che hanno alle spalle secoli di studi. Chiaramente l’evoluzione vertiginosa della materia ha fatto sì che l’ingegneria informatica emergesse nelle sue peculiarità, formando personale dalle competenze di altissimo livello.
- Gli strumenti di programmazione sono assai semplici, limitati ad un linguaggio che attualmente sarebbe definito di basso livello
- Chi sviluppa software è un tecnico che può contare su una preparazione rigorosa e formalizzata, in sintonia con le richieste dell’elaboratore
- Il ciclo vitale del programma sviluppato è cortissimo, una volta raggiunti gli obbiettivi prefissati può essere cancellato, poiché difficilmente verrà utilizzato altre volte, tanto meno da persone che non lo hanno sviluppato.
La situazione sopra descritta ha subito un’evoluzione rapidissima, principalmente grazie all’avvento di nuove aree produttive le cui applicazioni vengono demandate agli elaboratori, in particolare quelle di natura gestionale. Il vecchio calcolatore, nato ed inteso come semplice abaco diviene quindi una macchina utilizzata per creare, modificare e distribuire informazione. L’elaboratore diviene strumento in grado di accumulare e gestire un enorme patrimonio di conoscenze strategiche inerenti l’organizzazione che beneficia delle sue prestazioni, ed è tramite questo patrimonio che si prendono decisioni volte alla gestione del personale, della produzione e tutto ciò che riguarda la line produttiva dell’organizzazione. Con l’estensione esponenziale delle aree adibite all’impiego dell’elaboratore vengono chiaramente a mancare i presupposti su cui basava la situazione sopra esposta: in modo particolare si consuma la frattura tra gli sviluppatori di applicazioni e gli utenti finali. I destinatari dei programmi sono infatti persone di estrazione non tecnica, quindi dirigenti ed impiegati che non sono in grado di realizzare gli applicativi di cui necessitano per lo svolgimento del lavoro all’interno della catena produttiva. Inoltre la dimensione e criticità dal punto di vista progettuale impone che venga formata una professionalità mirata e specifica in grado di produrre ed aggiornare i programmi che gli utenti finali dovranno utilizzare. Accanto alle divisioni di sviluppo del software presenti all’interno delle grandi aziende ed alle società di servizi, cioè i centri EDP (Electronic Data Processing), nascono le società che producono programmi per il mercato, le cosiddette Software House. E’ molto importante adesso capire come si è evoluta la situazione rispetto a quella iniziale: nella prima prevalevano gli aspetti del lavoro individuale e creativo, pertanto il software inteso come arte, successivamente si passa ad una situazione operativa che prevede piccoli gruppi specializzati, quindi parleremo di software inteso come artigianato. E’ questo secondo periodo che dà il via alla diffusione del software in quantità e qualità, decretando in modo esponenziale complessità e criticità dei programmi, anche in seguito all’automazione di settori che fino ad allora erano praticamente sconosciuti.
Chi sviluppa software riflette pertanto sui temi cruciali quali la produttività del proprio modo di operare, con occhio attento alla qualità del prodotto realizzato. Sono infatti questi due fondamentali parametri che consentono una collocazione stabile all’interno del mercato. Da qui l’esigenza che la produzione del software divenga di tipo industriale, infatti l’attività di sviluppo e manutenzione coinvolge gruppi di lavoro aventi grandi dimensioni alfine di coordinare e pianificare la produzione. Per incrementare produttività e quantità il progettista di software deve essere supportato nel proprio lavoro da strumenti automatici che riducano drasticamente l’approccio manuale ed informale. La qualità dei prodotti particolarmente complessi deve poter essere certificata in modo convincente, lo sviluppo avvenire in base a delle linee guida definite in metodologie di comprovata efficacia: la produttività deve aderire a degli standard che rendano meno traumatico il continuo ricambio del personale. Ciò implica che lo sviluppo di nuovi applicativi deve basarsi anche sull’assemblaggio di componenti standard già presenti sul mercato!
La necessità dell’evoluzione sopra descritta, cioè il passaggio da arte, ad artigianato ed infine ad industria, venne concepita già negli anni 60, in modo particolare per trasformare la materia in disciplina ingegneristica. In una conferenza NATO organizzata a Garmisch, in Germania, per la prima volta si parlò di Ingegneria del software, presentando una disciplina basata su solidissime basi teoriche e metologiche che consentano progettazione, manutenzione ed aggiornamento di applicazioni in grado di fornire caratteristiche di qualità previste mediante utilizzo delle risorse disponibili. Possiamo affermare che la conferenza di Garmisch fornì più che altro una linea indicativa, certificando lo stadio assai rudimentale della disciplina, in modo particolare se rapportato ad altri settori dell’ingegneria che hanno alle spalle secoli di studi. Chiaramente l’evoluzione vertiginosa della materia ha fatto sì che l’ingegneria informatica emergesse nelle sue peculiarità, formando personale dalle competenze di altissimo livello.