APPUNTI DI INGEGNERIA DEL SOFTWARE - PDF\nAPPUNTI DI INGEGNERIA DEL SOFTWARE\nDownload "APPUNTI DI INGEGNERIA DEL SOFTWARE"\n1 APPUNTI DI INGEGNERIA DEL SOFTWARE tratti dagli appunti del prof. Montangero, prof. Ambriola, prof. Cignoni e prof.ssa Semini Università di Pisa - A.A. 2003/2004 Realizzato da: Fabrizio Ciacchi - - fabrizio.ciacchi.it Documento realizzato con OpenOffice e AbiWord Documento rilasciato sotto licenza FDL "Non si può cambiare il tempo con i programmatori" Frederick Brooks, manager del progetto OS/360\n2 LEZIONE 0 - PRESENTAZIONE DEL CORSO Il compito dell'ingegneria del software è sostanzialmente quello di studiare le varie fasi di progettazione, sviluppo e mantenimento del software, fornendo delle analisi che ne possano assicurare la qualità. Generalmente gli obiettivi di un corso di Ingegneria del Software sono: Inquadrare il contesto di riferimento; Identificare i problemi della produzione di software; Comprendere gli strumenti concettuali; Presentare soluzioni e metodi; Attenersi a standard di riferimento. I temi trattati all'interno del corso stesso saranno, quindi: Il processo software; Controllo della qualità; Processi di supporto; Analisi e progettazione; Verifiche e prove I testi consigliati per il corso sono: Lucidi (scaricabili sul sito di informatica dell'università di Pisa); Syllabus (un'estratto di testi americani, tradotti e riassunti in questi appunti, disponibili a richiesta dal professore); Testi di consultazione: V. Ambriola. G.A. Cignoni, "Laboratorio di programmazione", Jackson Libri, 1996; C. Ghezzi, "Ingegneria del software", Mondadori informatica, 1991; G.A. Cignoni, P. De Risi, "Il test e la qualità del software", Il sole 24 ore, 1998.\n3 LEZIONE 1 - L'INGEGNERIA DEL SOFTWARE INTRODUZIONE Che cos'è l'ingegneria del software? a questa domanda è difficile rispondere fornendo una sola definizione. Innanzitutto guardiamo gli argomenti trattati dalla materia, facendo una rapida carrellata dei temi principali di ingegneria del software. L'ingegneria del software nasce e viene incontro alla produzione industriale organizzata di software, permettendo di produrre in grande, di assicurare la qualità dei prodotti e di garantire l'efficienza della produzione. I software commerciali, come sappiamo, possono essere suddivisi in quattro categorie: Sistemi software su commessa; Pacchetti software; Componenti software; Servizi su sistemi e dati. Facendo una rapida carrellata possiamo vedere come la produzione di software sia notevolmente cresciuta negli ultimi 50 anni, basti pensare ai progetti spaziali della NASA, la sonda Mercury (1962) aveva un software di un milione di LoC (Line of Code, Linee di Codice, unità di misura poco indicativa della qualità ma sicuramente importante per capire l'entità di un software), il software dell'apollo (1969) aveva circa 11 milioni di LoC, quello dello Shuttle (1981) era di 37 milioni, mentre quello del telescopio Hubble superava gli 80 milioni; oppure possiamo prendere come esempio la spesa dello stato italiano per la P.A., circa 2,56 miliardi di euro nel Ma l'industria del software non è solo rose e fiori, anzi ci sono dei problemi da non sottovalutare, come i ritardi dei progetti (dovuti a difficoltà nelle fasi iniziali, cambi di piattaforma e difetti nel prodotto finale) e i fallimenti (a volte clamorosi come spiegato più avanti) dovuti ad obsolescenza prematura, incapacità di raggiungere gli obiettivi o l'esaurimento di fondi. Per porre rimedio a tutto questo l'ingegneria del software cerca di studiare metodi per controllare il software ed il suo processo di produzione IL SOFTWARE: PROCESSO E PRODOTTO ("Ingegneria del Software", Ghezzi, Capitolo 1) Parlando dell'informatica e del software in generale, bisogna considerare che si tratta comunque di una famiglia di discipline (tra cui l'ingegneria del software) relativamente giovani; l'utilizzo del computer aumentò durante la seconda guerra mondiale per la sua straordinaria potenza di calcolo e di automazione di attività difficilmente eseguibili manualmente. Infatti i primi utilizzatori sono essenzialmente fisici, matematici, ingegneri, ecc. che utilizzano il computer per eseguire complessi calcoli matematici, fisici, ecc. La caratteristiche più importanti di questa fase pioneristica sono: si utilizzano linguaggi di programmazione a basso livello (strumenti semplici); chi sviluppa software è un tecnico che si esprime in modo rigoroso e formalizzato; l'applicazione sviluppata non ha necessità di sopravvivere a lungo. Questa situazione è andata modificandosi e grazie all'avvento dei "programmi gestionali" il computer ha potuto permettere la gestione, non più di soli numeri, ma anche di informazioni che vengono utilizzate in modo strategico per basare delle scelte economiche, gestionali, ecc. Grazie a questo sviluppo aumenta il diviario tra chi produce software (programmatore) e chi lo utilizza (utente), in quanto l'utente non ha ne' il tempo ne' la voglia di imparare ad utilizzare gli strumenti di programmazione. Analogamente la complessità e la criticità delle applicazioni cresce notevolmente ed è per questo che accanto agli EDP (Electronic Data Processing) interni delle aziende, nascono le software house. Si passa così dalla fase iniziale, individuale e creativa (software come arte) ad una fase caratterizzata da piccoli gruppi di esperti (softare come artigianato) che producono software professionale. Ed è proprio dopo questo passaggio che aumenta la quantità di software prodotto ed innesca riflessioni su come aumentare la produttività dello sviluppo e la qualità finale del prodotto. Si passa così gradualmente alla produzione di software come industria, intendendo un processo di sviluppo che coinvolge molte persone su progetti di grosse dimensioni e che deve essere pianificato ed automatizzato il più possibile. Si pone quindi il problema di poter certificare la qualità dei prodotti, soprattutto se essi sono critici e complessi, attraverso uno sviluppo con metodologie efficaci e che aderisca a standard di produzione che rendano possibile lo scambio di personale. Questa evoluzione (arte -> artigianto -> industria) venne concepità già nella seconda metà degli anni '60, ed infatti ad una conferenza NATO organizzata a Garmisch (Germania) nell'ottobre del 1968 venne coniato il\n4 termine "ingegneria del software" proprio per testimoniare l'esigenza che la produzione di software diventasse una disciplina ingegneristica e quindi basata su solide basi teoriche e metodoliche che permettessero la progettazione, produzione e manutenzione di applicazioni che fornissero le caratteristiche di qualità previste mediante l'uso delle risorse previste. Ma si trattava più di una via di evoluzione piuttosto che dell'individuazione di una prassi da seguire, questo perchè, contrariamente alle altre discipline ingegneristiche, che hanno decenni o secoli di basi teoriche e di metodologie empiriche consolidate, lo stato stesso della disciplina era molto rudimentale, ed anche oggi, sebbene si inizino a delineare i limiti di questa disciplina, siamo ancora in una fase iniziale di tale processo LA DIMENSIONE ECONOMICA Non dobbiamo sottovalutare la dimensione economica della produzione di software, dagni anni '50 ad oggi il numero di persone coinvolte (e la corrispondente quantità di denare investito in tale area) non ha cessato di crescere nei paesi industrializzati. La questione però, posta al microscopio, rivela che ci sono dei problemi che non sono da sottovalutare. Innanzitutto i ritardi dei progetti che generano la domanda nascosta o inevasa (in inglese backlog), ritardi variabili tra i due ed i quattro anni. Il perchè di questi ritardi fa capo a due problemi (legati tra loro): La carenza di personale specializzato, dovuta anche alle strutture formative che non sono in grado di preparare adeguatamente il numero necessario di specialisti del settore; la necessità di adibire una notevole quantità di addetti alla manutenzione del software esistente. Questi due problemi sono strettamente collegati, in quanto per molte aziende il successo (o la continuazione stessa) dell'attività è strettamente legato alla propria struttura informatica, e spesso si fa ricorso a persone poco preparate o adirittura inadeguate (nda: incompetenti). E come il proverbiale cane che si morde la coda, questo genera l'immissione di cattivo software sul mercato (cattivi programmatori sono la causa di cattivo software) che necessita di notevoli sforzi di manutenzione. Purtroppo l'industria del software non ha saputo reagire adeguatamente. Mentre in altri settori la produzione è diventata per lo più automatizzata (si pensi, ad esempio, all'hardware), nel software questo non accade, anche perchè la fase di progettazione di un software è brain intensive (ad alta intensità di cervello) e, quindi, difficilmente meccanizzabile. Può risultare interessante domandarsi quale possa essere la produttività media delle persone nello sviluppo del software. La difficoltà di rispondere a questa domanda non fa altro che confermare che ci sono aspetti dell'ingegneria del software che ancora non conosciamo in maniera scientifica, e per i quali non esiste una teoria interpretativa universalmente accettata. Un modo semplicistico di valutazione può essere calcolare le linee di codice prodotte (line of code, LoC) per giorno da una data persona. L'esperienza mosta che ci si assesta ad un valore di qualche decina (10-30), valore che può diventare un decimo nel passaggio da software di tipo sequenziale tradizionale a software critico, concorrente e in tempo reale LA DIMENSIONE SOCIALE Analizzando lo sviluppo dell'hardware e del software degli ultimi 30 anni sembra che quest'ultimo sia andato lentamente. In realtà è lo sviluppo dell'hardware che è andato incredibilmente veloce, basti pensare che ha guadagnato 6 ordini di grandezza nel rapporto prestazioni/costo. Il software è cresciuto notevolmente ma si scontra con la sua complessità intrinseca e cioè con il fatto che "a parità di dimensione, la complessità di capire, descrivere, progettare un frammento di software è di gran lunga superiore a quella corrispondente per qualunque altro prodotto. Programmi di grande complessità non sono ottenuti per giustapposizione di parti identiche o simili, o ben isolate tra di loro, come in gran parte dei progetti industriali; al contrario, raramente si ravvisa una qualche regolarità nella struttura di un programma". A queste difficoltà intrinseche si aggiungono difficoltà dovute ad approcci inadeguati, scarsamente basati su fondamenti metodologicamente rigorosi, che rendono l'affidabilità del software bassa rispetto alle esigenze delle applicazioni. Queste ultime, per contro, tendono a diventare sempre più complesse e critiche. Basti pensare ad applicazioni del software che ledono la vita reale, come software per la gestione economica, per il controllo degli aerei, per i sistemi di monitoraggio di pazienti o sistemi per le applicazioni militari. Queste considerazioni rendono evidente, da un lato, la necessità di formare ingegneri del software che siano in grado di progettare applicazioni sofisticate sfruttado al meglio il bagaglio di conoscenze teoriche e metodologiche che si sono sviluppate nel corso degli ultimi anni. Ma va fatto notare che l'ingegnere del software pone questa professionalità al servizio della propria coscienza civile, secondo la quale il problema della qualità delle applicazioni va sempre messo in primo piano. Bisogna sempre procedere con metodologia e professionalità senza farsi prendere dai facili (e fasulli) entusiasmi secondo i quali il software può facilmente risolvere in modo magico qualsiasi problema. Bisogna, inoltre, avere molta umiltà nell'affrontare problemi la cui complessità va al di là dei limiti imposti dalla tecnologia e se possono generare rischi di qualche genere, questi devono essere presi in serio esame e devono essere effettivamente controllati a posteriori. E' molto importante pensare all'episodio di D.L. Parnas, uno dei massimi esperti di ingegneria del software, che ha motivato pubblicamente le proprie dimissioni dalla commissione del progetto "star wars" (lo scudo spaziale\n5 voluto da Reagan) dichiarando che le tecnologie non sono in grado (e non lo saranno in un futuro prossimo) di affrontare le problematiche di enorme complessità e criticità di applicazioni simile a quelle del programma guerre stellari : CONFERENZA DI GARMISH Ecco un estratto della conferenza di Garmish del 1968, conferenza nella quale venne coniato il termine "Ingegneria del software" a - BACKGROUND OF CONFERENCE Nel 1967 il comitato scientifico della NATO iniziò a concentrarsi molto sullo sviluppo del software e pensò di formare un istituto internazionale informatico. Nell'autunno del 1967 venne stabilito un gruppo di studio sulle discipline informatiche che doveva ricoprire tutti i campi dell'informatica ed elaborare suggerimenti per il comitato scientifico. Il gruppo di studio si concentrò su quelle aree che necessitavano di supporto nazionale od internazionale, in particolare pose la sua attenzione sullo sviluppo del software, infatti propose l'organizzazione di una conferenza che avesse come tema "l'ingegneria del software". La frase "ingegneria del software" fu scelta deliberatamente in modo provocatorio, per sottointendere il bisogno, nello sviluppo del software, di metodologie pratiche e teoriche comuni in altri settori dell'ingegneria. Fu suggerito che 50 tra i massimi esperti di discipline concernenti lo sviluppo del software fossero invitati per presiedere in modo attivo alla conferenza, concentrandosi su tre aspetti fondamentali: Design (???) di Software, Produzione di Software e Servizi del Software. Vennero scelti dei leader per ogni settore e fu scelto Il Dr. Arnth-Jensen, della Divisione affari scientifici della NATO, per presiedere all'organizzazione della conferenza. Nel Marzo del 1968 si incontrarono a Brussels i leader di ogni gruppo ed il gruppo di studio per i dettagli finali della conferenza. La conferenza fu pensata per studiare i problemi dell'ingegneria del software e per discutere sulle possibili tecniche, metodi e sviluppo che avrebbero potuto porre una soluzione. Si sperò di poter identificare le necessità presenti, quelle a breve termine e quelle a lungo termine per aiutare sia i produttori che gli utenti b - SOFTWARE ENGINEERING AND SOCIETY Adesso presentiamo un breve estratto con le frasi più importanti della conferenza. LA PERCENTUALE DI CRESCITA DEL SOFTWARE D'Agapeyeff: Nel 1958 un comune produttore di computer europeo aveva meno di 50 programmatori, oggi ne ha circa ; di quanti ne avrà bisogno nel 1978? LA CRESCITA VISTA CON PREOCCUPAZIONE David: Le fasi di ricerca, sviluppo e produzione di software, spesso sono unite in un processo unico. Separare queste componenti ed avere un approccio di lavoro a step ci permette di lavorare con meno rischi e maggiori successi. Ma ci sono buoni motivi per credere che lo sviluppo di software che include concetti nuovi implichi rischi non solo incalcolati, ma anche incalcolabili. MA L'INDUSTRIA DEL SOFTWARE HA ANCHE I SUOI SUCCESSI Buxton: Il 99% dei computer lavora con una tollerabilità soddisfacente. Ci sono migliaia di rispettabili installazioni Fortran-oriented che usano differenti macchina, e molte buone applicazioni di data-processing lavorano senza problemi. COMUNQUE CI SONO AREE VISTE CON PARTICOLARE SCETTICISMO David and Fraser: Particolarmente allarmante sembra essere l'indesiderata fallibilità del software di grandi dimensioni, considerando che un malfunzionamento in sistemi hardware-software avanzati può fare la differenza tra la vita e la morte. SONO TUTTI D'ACCORDO CHE L'INGEGNERIA DEL SOFTWARE E' AGLI STATI INIZIALI Graham: Oggi si tende ad andare avanti per anni, con tremendi investimenti per vedere sistemi, di cui non si capisce perchè siano stati cominciati, che non lavorano come promesso. Noi costruiamo sistemi, così come i fratelli Wright costruivano aeroplani; costruiamo le cose principali, lasciamo che vadano, le facciamo rompere (crashare) e ricominciamo da capo. OVVIAMENTE OGNI CAMPO HA I SUOI PROBLEMI DI CRESCITA Oillette: Siamo nell'analoga situazione dell'industria degli aircraft, che ha i nostri stessi problemi nel produrre sistemi in modo sistematico e seguendo determinate specifiche. Noi forse abbiamo\n6 maggiori esempi di grandi sistemi fatti male rispetto a quelli fatti bene, ma siamo un'industria giovane e stiamo imparando come fare meglio. IL PROBLEMA PIU' GRANDE E' LA PRESSIONE A PRODURRE SOFTWARE SEMPRE PIU' GRANDE E COMPLESSO Buxton: Ci sono pressioni estremamente forti sui produttori, sia da parte degli utenti sia da parte di altri produttori. Alcune di queste pressioni, che contribuiscono ai nostri problemi, sono chiare. Ad esempio, l'incremento del traffico aereo in Europa influisce sul fatto che ci sono pressioni per la creazione di un sistema di controllo automatizzato. E PER FINIRE... Gill: E' molto importante che tutti i responsabili per grandi progetti che coinvolgono l'uso del computer devono prestare attenzione al fatto che l'uso del software per scopi poco lontani da quelli che lo stato attuale della tecnologia ci consente, permette di tollerare i rischi coinvolti DICHIARAZIONE DI D.L. PARNAS Tratto dal New York Times, 7/12/85, pagina A6 (traduzione); in merito all'sdi (STRATEGIC DEFENSE INITIATIVE) conosciuto anche come "Star Wars" (o Guerre Stellari in italiano): "Washington, 11 luglio - Uno scienziato informatico si è dimesso da una commissione di difesa antimissilistica, sostenendo che non sarà possibile programmare in modo sicuro un sistema di computer per la gestione di una battaglia o di assumere che funzioneranno quando saranno soggetti all'attacco di missili nucleari. Lo scienziato, David L. Parnas, un professore dell'università di Victoria (Columbia inglese) che è consigliere dell'ufficio di Ricerca Navale di Wasghinton, è stato uno dei nove scienziati richiesti dall'uffici di Iniziative di Difesa Strategiche per creare, al costo di 1000$ al giorno, un sistema informatico in supporto alla gestione della battaglia. Il professor Parnas ha detto in una lettera di licenziamento e 17 memorandum allegati che non sarà mai possibile testare in modo realistico la grande quantità di computer che dovrebbero collegare e controllare un sistema di sensori, armi antimissilistiche, dispositivi di guida e supporto, e stazioni di gestione della battaglia. Inoltre, dice Parnas, non sarebbe possibile seguire le pratiche ortodosse di scrittura dei programmi nei quali errori e bug vengono scovati ed eliminati nell'uso giornaliero prolungato. - Io Credo - sostiene Parnas - che sia nostro dovere, come scienziati ed ingegneri, rispondere che non abbiamo magie tecnologiche che permettano di fare ciò. Il presidente (Reagan) ed il pubblico lo deve sapere -. Nei suoi memorandum, il professore espone in maniera dettagliata i suoi dubbi. Egli intuisce che programmi su larga scala diventano affidabili solo attraverso modifiche basate su un uso realistico. Egli marca come non realistica l'idea che computer, intelligenza artificiale o simulazioni matematiche possano risolvere il problema. Altri scienziati hanno espresso i propri dubbi sul fatto che possano essere scritti programmi su larga scala esenti da errori. Herbert Lin, un ricercatore al MIT, ha detto che la lezione più semplice è che - nessun programma lavora correttamente la prima volta -." DEFINIZIONI DI "INGEGNERIA DEL SOFTWARE" - Definizione dell'ieee: L'approccio sistematico allo sviluppo, all'operatività, alla manutenzione ed al ritiro del software. E' un approccio di tipo sistematico da cui si evince che il software è un prodotto con il suo ciclo vitale. - Definizione di Fairley: La disciplina tecnologica e gestionale per la produzione sistematica e la manutenzione di prodotti software sviluppati e modificati con tempi e costri preventivati. Con questa definizione si introduce il concetto di tipo gestionale (costi, tempi, risorse) e del controllo della qualità (costi e risultati definiti). Volendo cercare una definzione unica, potremmo dire che l'ingegneria del software è un corpus di teorie, metodi e strumenti (di tipo sia tecnologico sia organizzativi) che consentano di produrre applicazioni con le desiderate\n7 caratteristiche di qualità. Il suo obiettivo è quello di mettere in grado lo specialista di software di affrontare la complessità dei grossi progetti gestendo in modo produttivo le risorse, specie quelle umane, e sviluppando prodotti che rispiecchiano le caratteristiche desiderate di qualità entro i vincoli economici e di tempo specificati. Ne deriva che l'ingegneria del software comprende un insieme di contenuti di tipo teorico di base, un insieme di metodi rigorosi che trvano giustificazione nelle basi teoriche, un insieme di tecnologie concrete da impiegare nei processi produttivi, il tutto cementato da una sensibilità pratica di tipo empirico che sia in grado di calare teorie, metodi e strumenti in un atteggiamento progettuale capace di calibrare l'approccio in funzione del problema specifico da risolvere TEMI DI INGEGNERIA DEL SOFTWARE REALIZZAZIONE DI SISTEMI SOFTWARE STRATEGIE DI ANALISI E PROGETTAZIONE Tecniche per la comprensione e la soluzione di un problema; Top-down, bottom-up, progettazione modulare, OO. LINGUAGGI DI SPECIFICA E PROGETTAZIONE Strumenti formali per la definizione di sistemi software; Reti di Petri, Z, OMT, UML. AMBIENTI DI SVILUPPO Strumenti per analisi, progettazione e realizzazione; Strumenti tradizionali, CASE, CAST e RAD. PROCESSO SOFTWARE ORGANIZZAZIONE E GESTIONE DEI PROGETTI Metodi di composizione dei gruppi di lavoro; Strumenti di pianificazione, analisi, controllo. CICLI DI VITA DEL SOFTWARE Definizione e correlazione delle attività; Modelli ideali di processo di sviluppo. MODELLI DEL PROCESSO DI SVILUPPO Norme per la definizione delle attività; Strumenti per la definizione dei processi. QUALITA' DEL SOFTWARE METODI DI VERIFICA E CONTROLLO Metodi di verifica, criteri di progettazione delle prove; Controllo della qualità, valutazione del processo di sviluppo. MODELLI DI QUALITA' Definizione di caratteristiche della qualità; Valutazione dei prodotti. METRICHE DI SOFTWARE Unità di misura, scale di riferimento, strumenti; Indicatori di qualità CASI DI STUDIO Presentiamo qui di seguito alcuni casi di studio su clamorosi fallimenti di noti progetti software: LONDON AMBULANCE SERVICE Era stato creato un sistema automatizzato per gestire il servizio delle ambulanze che derivava dall'unificazione di 3 servizi diversi; doveva esserci l'ottimizzazione dei percorsi, la guida vocale degli autisti, la gestione delle chiamate, i backup, la localizzazione in tempo reale delle ambulanze, lo stato dei pazienti e molto altro. Il software purtroppo era progettato male, con errori, senza sistemi di controllo in caso di errori, con l'impossibilità di fare i backup, la mancata preparazione del personale, la mancata conoscenza (da parte dei progettisti) del problema; ed è costato, non solo vite umane, ma anche 11 milioni di euro; l'ultima versione è stata abbandonata dopo soli 3 giorni. Si può dire che questo è uno dei disastri più "eclatanti"\n8 nella storia del software e che va preso come esempio su "come non progettare un software". AEROPORTO DI DENVER Fonte CNET.com : "Il nuovissimo Denver International Airport doveva essere all'avanguardia, con il suo complesso sistema computerizzato di smistamento dei bagagli e ottomila chilometri di cavi in fibra ottica. Ahimé, dei difetti nel sistema di smistamento finirono per tritare alcune valigie e far schiantare contro i muri i carrelli automatici. L'aeroporto fu costretto ad aprire 16 mesi dopo la data prevista, con uno sforamento di 3,2 miliardi di dollari rispetto ai preventivi... e con un sistema di smistamento bagagli quasi interamente manuale." Il sistema doveva essere completamente automatizzato, con 35 Km di rete, 4000 carrelli, 5000 "occhi" e 56 lettori. Investimento di 193 milioni di $; le perdite sono state stimate in circa 1 milione di $ al giorni (costi + mancati guadagni). ARIANE 5 Il 4 giugno 1996 viene lanciato per la prima volta il vettore Ariane 5, punta di diamante del programma spaziale europeo. Dopo 39 secondi di volo interviene il sistema di autodistruzione, trasformando l'ariane 5 e il suo carico pagante (quattro satelliti scientifici non assicurati) in quello che è stato definito "il più costoso fuoco d'artificio della storia". Non ci sono vittime, dato che il missile non ha equipaggio e i frammenti dell'esplosione cadono in una zona disabitata della Guiana francese, ma i danni economici sono ingentissimi (1 miliardo di euro). Il disastro avviene perché un programma del sistema di navigazione tenta di mettere un numero a 64 bit in uno spazio a 16 bit. Il sistema, progettato per l'ariane 4 e riciclato perché dimostratosi affidabile, tenta infatti di convertire la velocità laterale del missile dal formato a 64 bit al formato a 16 bit. Tuttavia l'ariane 5 vola molto più velocemente dell'ariane 4, per cui il valore della velocità laterale è più elevato di quanto possa essere gestito dalla routine di conversione, che a differenza di molte altre routine di conversione a bordo è priva dei normali controlli che evitano problemi di gestione. Risultato: overflow, spegnimento del sistema di guida, e trasferimento del controllo al secondo sistema di guida, che però essendo progettato allo stesso modo è andato in tilt nella medesima maniera pochi millisecondi prima. Privo di guida, il vettore si autodistrugge. Ironia della sorte, la funzione di conversione difettosa che causa lo spegnimento del sistema di guida non ha alcuna utilità pratica una volta che l'ariane è partito: serve soltanto per allineare il vettore con le coordinate celesti (l'ariane ha un sistema di navigazione inerziale). Ma i progettisti avevano deciso di lasciarla attiva per i primi 40 secondi di volo in modo da facilitare il riavvio del sistema se si verificava una breve interruzione nel conto alla rovescia. Da un articolo del Sole 24 Ore: "Appena nove secondi dopo il decollo, le due centrali inerziali già non riuscivano ad avere un allineamento corretto. Al 37 secondo le due centrali si dichiaravano contemporaneamente in situazione d'errore irrecuperabile e lanciavano una procedura di reset (...) realizzabile fino a 40 secondi dal via. (...) veniva assunta come base di riferimento la posizione istantanea del vettore, non coincidente con la posizione verticale sulla base di lancio, e il calcolatore ordinava una brusca correzione di rotta, portando a fine corsa gli ugelli sia dei booster che del motore criogenico. L'improvviso aumento degli sforzi aerodinamici portava a instabilità strutturale ("buckling") e il vettore si rompeva poco al di sotto dell'ogiva. Subito dopo si sono attivati i sistemi automatici di autodistruzione". Fonti: Ariane 5: errore nel software, Claudio Borgonovi, Sole 24 Ore, luglio 1996; A Bug and a Crash, James Gleick, PATRIOT Un errore nel sistema di guida, molto probabilmente sul controllo delle traiettorie, ha fatto si che un missile patriot abbia colpito una caserma americana. Si pensa che l'errore non sia tanto nel software, ma proprio progettuale, cioè che mancasse proprio il controllo della traiettoria. THERAC 25 Estratto (tradotto) dal The Boston Globe, 20 Giugno 1986: "Una serie di emissioni accidentali spropositate di radiazioni da macchine identiche per la terapia del cancro, in Texas ed in Georgia, hanno ucciso una persona ed hanno lasciato altre due persone con grandi bruciature e paralisi parziale, secondo quanto riferito dagli investigatori federali. Evidentemente causate da un errore nel programma che controlla i dispositivi, le emissioni (ignorate fino ad adesso) si crede che siano il peggior incidente medico conosciuto fino ad oggi. I malfunzionamenti si sono presentati uno lo scorso anno e due a Marzo ed Aprile di quest'anno in due\n9 degli acceleratori lineari di fattura Canadese, venduti con il nome di Therac 25." MARS CLIMATE ORBITER & MARS POLAR LANDER Tratto da La Repubblica del 28 Marzo 2000: "Il giudizio non è inatteso, visto che le ultime due spedizioni verso Marte si sono concluse con un disastro totale. Alla fine di settembre, il satellite Mars Climate Orbiter si è incendiato nell'atmosfera marziana per colpa di un assurda confusione tra metri e pollici. E nemmeno tre mesi dopo, in dicembre, la sonda Polar Lander è scomparsa per sempre pochi secondi dopo aver iniziato la discesa verso la superficie di Marte. Una perdita complessiva di quasi 300 milioni di dollari, ma soprattutto un crollo di credibilità, che ha immediatamente scatenato le accuse nei confronti dell'intera gestione del programma. Noto, e sbandierato, con lo slogan "cheaper, faster, better", economico, veloce e migliore, il programma potrebbe rivelarsi il più gigantesco boomerang della storia della Nasa dai tempi dell'esplosione del Challenger, nel 1986". MARS SPIRIT (27 gennaio 2004) Secondo quanto dichiarato al link il rover mars spirit sarebbe andato in crash per colpa di una variante dell'errore "fixed lenght buffer". Sembra che spirit abbia cercato di riavviarsi circa sessanta volte; come dice la legge di Woodhead: "Più lontano sei dal tuo server, più facilmente andrà in crash". La prossima volta mandiamo su anche un sistemista ;) IL ROBOT KILLER: Riassunto La storia del Robot Killer è una storia inventata per far vedere come la non osservanza di regole etiche nello sviluppo del software possa uccidere una persona. Il racconto è formato da sette articoli di quotidiano, un articolo di giornale ed una intervista. Riassumendo la vicenda: Il Robot Robbie CX30 prodotto dalla Silicon Techtronics uccide un operatore, a causa di oscillazioni improvvise. Da questo momento inizia una sorta di indagine, non solo da parte delle forze dell'ordine, ma anche dai giornali che raccontano la vicenda e dall'università di Silicon Valley. Si viene a sapere che (in ordine sparso): JANE ANDERSON viene lincenziata dopo essersi opposta all'uso del modello a cascata per la costruzione del Robot. RANDY SAMUELS, il programmatore del codice che controllava il robot Robbie CX30, non aveva implementato nel robot le adeguate equazioni fisiche, aveva rubato del codice e non lo aveva adeguatamente testato. CINDY YARDLEY aveva falsificato i test del software per coprire il lavoro dei propri colleghi. MAX WORTHINGTON, un capo della Silicon Techtronics, aveva monitorato le comunicazioni dei propri dipendenti. SAM REYNOLDS, progettista in data processing, era stato messo a capo del progetto del Robbie CX30. MICHAEL WATERSON, presidente e CEO della Silicon Techtronics, aveva messo SAM REYNOLDS a capo del progetto. Si può vedere da questi pochi punti che tutta una serie di pressioni economiche, politche, personali e la non osservanza dei diritti di privacy, copyright ed usabilità abbiano portato alla morte di una persona. A nostro avviso ogni personaggio risulta coinvolto nell'uccisione dell'uomo e sono tutti egualmente responsabili.\n10 LEZIONE 2 - IL CICLO DI VITA DEL SOFTWARE INTRODUZIONE Bisogna capire innanzitutto che un software ha un proprio ciclo di vita che consiste nella concezione (l'idea), lo sviluppo (la programmazione), la gestione (correzione errori, supporto ai clienti) ed il ritiro (smettere il supporto, fare una nuova versione) del software. La modellazione di un ciclo di vita del software passa attraverso l'identificazione delle attività (lo sviluppo di modelli generici e quindi indipendenti dal prodotto; la decomposizione e l'uso della terminologia adatta per descrivere il problema) e l'organizzazione delle attività (che vanno ordinate e per le quali vanno stabiliti dei criteri per terminare un'attività e passare alla successiva). E' importante porsi degli obiettivi e dei limiti ai quali il modello del ciclo di vita deve adeguarsi per fare un passo verso il processo definito. Innanzitutto bisogna porsi come obiettivo il controllo della qualità, che definisce il processo produttivo, identifica le attività, gli obiettivi e le dipendenze, e viene usato cie strumento di pianificazione e gestione dei progetti. Il ciclo di vita di un software non è un metodo di sviluppo software (è infatti indipendente dalla piattaforma) e non è nemmeno un insieme di indicazioni e strumenti (non spiega come e con cosa operare). Il primo modello conosciuto è il CODE&FIX (tradotto Programma e Correggi, va bene per aziende piccole) che possiamo definire un non-modello, in quanto le attività non sono nè identificate nè organizzate, ed i progetti sono non-gestiti (o gestiti male). I modelli conosciuti sono quello a cascata, quello incrementale, quello evolutivo e quello a spirale. Il documento principale per capire i cicli di vita del software è l'iso/iec MODELLI DEL CICLO DI VITA DEL SOFTWARE Ci sono diversi modelli del ciclo di vita del software. Comunque ce ne sono tre fondamentali e sono: A cascata (Waterfall); Modelli iterativi; - Incrementale (Incremental); - Evolutivo (Evolutionary); Ognuno di questi cicli di vita può essere usato così com'è, oppure possono essere combinati per creare un modello ibrido. E' Attraverso il modello scelto che i processi, le attività ed i task dell'iso/iec sono collegati, e le loro relazioni di precedenza sono definite. Cercheremo di spiegare i tre principali modelli del ciclo di vita del software con i loro rischi ed i loro benefici. I rischi ed i benefici devono essere presi in seria considerazione quando si sceglie un modello del ciclo di vita per un progetto A CASCATA (WATERFALL) Il metodo a cascata è essenzialmente un metodo in cui si eseguono i passaggi uno alla volta, ed una sola volta, che sono: Determinare i bisogni dell'utente (di solito colui che paga); Definire i requisiti;\n11 Disegnare il sistema; Fabbricare il sistema; Fase di test; Fase di correzione; Consegna od uso. In questo approccio ogni parte del software viene sviluppata, le attività ed i compiti nel processo di sviluppo sono usualmente eseguiti in serie. Comunque possono essere sviluppate parzialmente in parrallelo quando attività sequenziali collidono. Quando diverse parti del software sono sviluppate concorrentemente, le attività ed i compiti nel processo di sviluppo possono essere eseguite in parallelo rispetto a tutte le entità del software. Il processo di Manutenzione e quello Operativo sono sviluppati dopo il processo di sviluppo. I processi di Acquisizione, Approvvigionamento, Supporto ed Organizzativo sono eseguiti in parallelo con il processo di sviluppo. RISCHI I requisiti possono non essere compresi correttamente; Sistema troppo grande per svilupparlo tutto in una volta; Cambiamento rapido delle tecnologie; Cambiamento rapido dei requisiti; Risorse/Staff/Fondi limitati nell'immediato; Un prodotto intermedio non è utilizzabile. VANTAGGI Tutte le capacità del sistema vengono fuori tutte in una volta; E' necessario far fuori un vecchio sistema tutto in una volta. Definito nel 1970 da Royce, questo modello è composto dalla successione di fasi sequenziali, in cui risulta impossibile tornare indietro; nel caso ci fossero errori nello studio dei requisiti si riparte da capo. Ogni fase viene caratterizzata dalla produzione di documenti che concretizzano la fase e che sono necessari per la fase successiva, non a caso questo modello viene considerato "document driven". Ogni fase risulta descritta in termini di attività e prodotti intermedi, contenuti e struttura dei documenti, responsabilità e ruoli coinvolti, e scadenza di consegna dei documenti; in questo modo si instaurano dipendenze causali e temporali e si ha la possibilità di identificare le attività per ogni fase. Purtroppo però questo modello manca di flessibilità, perchè non solo è impossibile tornare indietro (e quindi modificare qualche requisito), ma genera molta manutenzione, è burocratico e poco realistico; esistono quindi delle varianti di questo modello, che sono la cascata con prototipazione e con ritorni. APPROFONDIMENTO: I MODELLI ITERATIVI I modelli iterativi sono caratterizzati dalla possibilità di adattarsi ai cambiamenti, come i cambiamenti di soluzioni e tecnologie, o i cambiamenti dei requisiti del committente. In linea generale si decompone la realizzazione del sistema e si ritarda la realizzazione delle componenti critiche, facendo si che le iterazioni siano pianificate INCREMENTALE (INCREMENTAL) Il modello incrementale, anche chiamato "miglioramento del prodotto pianificato", comincia con una serie di\n12 requisiti dati e si sviluppa in una sequenza di passi (o, tradotto dall'inglese, costruzioni). Il primo passo incorpora una parte dei requisiti, il passo successivo aggiunge un'altra parte dei requisiti, e così via, fino a quando il sistema è completo. Ad ogni passo i processi, le attività ed i compiti necessari vengono eseguiti; ad esempio l'analisi dei requisiti e l'analisi architettonica viene fatta una volta sola, mentre il disegno in dettaglio del software, la scrittura ed il test del codice, i test di integrazione e qualifica del software vengono eseguiti ad ogni passo. Con questo approccio, come viene sviluppato un passo, le attività ed i compiti nel processo di sviluppo sono seriali o parzialmente paralleli. Quando passi consecutivi vengono sviluppati con una parziale concorrenza di attività e compiti nel processo di sviluppo, possono operare in parallelo. Le attività ed i compiti nel processo di sviluppo sono ripetuti nella medesima sequenza in tutti i passi. I processi di Mantenimento ed Operativi possono operare in parallelo con il processo di Sviluppo. I processi di Acquisizione, Approvvigionamento, Supporto ed Organizzativo sono usualmente operativi in parallelo al processo di Sviluppo. RISCHI I requisiti possono non essere compresi correttamente; Si preferiscono le capacità tutte in una volta; (???) Cambiamento rapido delle tecnologie; Cambiamento rapido dei requisiti; Risorse limitate a lungo termine. VANTAGGI Un prodotto intermedio è utilizzabile; Si necessita di capacità immediate. (???) Il sistema è partizionato naturalmente in incrementi; Le risorse possono essere incrementali. E' da far notare che, con questo metodo, c'è l'accettazione DI VERSIONI PARZIALI, prima di passare al passo successivo dello sviluppo EVOLUTIVO (EVOLUTIONARY) Anche Il modello evolutivo sviluppa il sistema in una serie di passi, ma differisce dal modello incrementale nel sapere che i requisiti non sono tutti compresi e non possono essere definiti inizialmente. In questo approccio, i requisiti sono parzialmente definiti in modo grezzo, quindi vengono raffinati in ognuno dei passi successivi. In questo approccio, quando ogni passo è sviluppato, le attività ed i compiti nel processo di sviluppo possono operare in serie o in parallelo. Le attività ed i compiti del processo di sviluppo usualmente operano ripetutamente nella stessa sequenza per tutti i passi. I processi di Manutenzione ed Operativi possono operare in parallelo con il processo di Sviluppo. I processi di Acquisizione, Approvvigionamento, Supporto ed Organizzativo usualmente operano in parallelo con il processo di Sviluppo. RISCHI Si preferiscono le capacità tutte in una volta; (???)\n13 Risorse limitate a lungo termine. VANTAGGI Si necessita di capacità immediate. (???) Un prodotto intermedio è utilizzabile; Il sistema è partizionato naturalmente in incrementi; Le risorse possono essere incrementali; Si necessita dei pareri dell'utente per capire tutti i requisiti; Il monitoraggio dei cambiamenti di tecnologia è facilitato A SPIRALE (SPIRAL) Il modello a spirale venne proposto nel 1988 da Boehm, infatti prevede quattro attività principali: Definizione degli obiettivi; Requisiti, identificazione dei rischi, piano di gestione; Analisi dei rischi; Studio di conseguenze e alternative, prototipi e simulazioni; Sviluppo e validazione Realizzazione del prodotto; Pianificazione; Decisione circa il proseguimento, pianificazione del ciclo. E' più un protomodello, un modello astratto che deve essere specializzato. Infatti con questo modello vengono evidenziati gli aspetti gestionali, attraverso una pianificazione delle fasi e l'analisi dei rischi (modello risk driven). Evidenzia i ruoli di committente e fornitore, il committente deve, ad esempio, dare definizione degli obiettivi, e indicazioni sulla pianificazione; il fornitore deve intervenire nello sviluppo e la validazione; entrambi devono valutare i rischi reali. Si può dire che questo modello cerca di studiare, attraverso l'analisi dei rischi, quale sia, volta volta, la soluzione migliore, studiando soluzioni sempre nuove e che possano diminuire in maniera concreta e reale i rischi a cui si va incontro. Naturalmente questo proto-modello scade nei modeli già studiati (waterfall, incremental, evolutionary) quando ci sono determinate condizioni. E' altresì vero che anche questo modello soffre di problemi legati alla sua natura intrinseca, primo su tutti il fatto che va bene per progetti interni a grandi aziende, ma difficilmente si adatta a realtà di produzione di software commerciale o a piccole entità (che in molti casi non avrebbe il tempo di rispettare tutti i passi e di investire tutte le risorse richieste) CICLI DI VITA IN ISO/IEC Qui di seguito presentiamo tre grafici per i cicli di vita come vengono rappresentati dallo standard ISO/IEC ; lo standard è necessario come strumento di modellazione che permetta di definire processi di sviluppo aziendali e permetta di adattarli e specializzarli per progetti particolari. Si possono quindi modellare i cicli di vita\n14 classici (cascata, incrementale, evolutivo) utilizzando come componenti le attività dell' ISO/IEC 12207, e facendo in modo che i risultati di un'attività vengano usati come ingressi per la successiva UNIFIED PROCESS Questo modello è stato proposto nel 1999 da Grady Booch, Ivar Jacobson e James Roumbaugh. Lo Unified Process è un modello risk driven (come il modello a spirale), è iterativo (come l'incrementale), in quanto gli obiettivi sono piccoli e le scadenze sono chiare e, ad ogni iterazione, c'è rilascio del software; è agile (light), in quanto tutti gli elaborati sono opzionali, ed è adattativo (adptive), in quanto i requisiti ed il progetto sono continuamente raffinati. Il modello Unified Process è diviso in settori, fasi ed iterazioni. I settori sono: modello business; requisiti; progettazione; implementazione; test; deployment; gestione configurazioni e cambiamenti; gestione del progetto; ambiente. Per ogni settore abbiamo la divisione in "fasi", che sono: Avvio (Inception) - In cui bisogna capire se il progetto è realizzabile con i vincoli di budget e di tempo e se esistono soluzioni alternative (make or buy). Si identificano i rischi e si sviluppa un eventuale prototipo; Elaborazione (Elaboration) - In cui bisogna ridurre al minimo i rischi di insuccesso; si fa l'analisi dei requisiti, l'analisi dei rischi, si sviluppa un'architettura base e si fa un piano per la fase di costruzione; Costruzione (Construction) - In questa fase si stabilizza il progetto (analisi) e l'architettura (disegno), si fa l'implementazione e il testing; Transizione (Transition) - In questa fase si mette in produzione il software (per la distribuzione presso il cliente), si fa il beta testing, si aggiustano le prestazioni, si crea documentazione aggiuntiva, si fa attività di formazione del personale, si creano tool per la migrazione dati da vecchi sistemi, si crea un kit per la vendita.\n15 Ogni fase è divisa in iterazioni. Ciascuna iterazione ha degli obiettivi (ridimensionabili) e una scadenza inderogabile (timeboxed iterations). Le iterazioni sono brevi, circa 2 settimane. Alla fine di ciascuna iterazione si fa il punto della situazione e si programmano i compiti e la durata dell'iterazione successiva. Lo strumento di supporto per lo Unified Process è il development case, un documento che mostra tutti gli elaborati e la loro evoluzione nel tempo EXTREME PROGRAMMING La metodologia extreme Programming (XP) è nata con il Manifesto di Snowbird (Utah), nel febbraio L'eXtreme Programming è una metodologia estremamente sensibile agli "aspetti sociali", come la comunicazione, il lavoro di gruppo, la soddisfazione personale, le relazioni interpersonali, qualità del lavoro, l'ambiente di lavoro. E' un modello risk driven, è agile, in quanto non bisogna produrre nessun documento, ed è relativamente semplice da imparare, ci sono infatti 4 valori, 5 principi e 12 pratiche da imparare. E' adatto a progetti con meno di 50 persone, e presuppone un forte coinvolgimento con il cliente. VALORI Comunicazione - Discussioni libere tra tutte le persone coinvolte (programmatori, manager, utenti, clienti ecc.); Semplicità - Tutto ciò che non serve ora non si fa; Feedback - Per tutto ciò che si fa ci deve essere un feedback di correttezza e qualità; Coraggio -... di fare la cosa che è chiaramente migliore anche se richiede molta fatica. PRINCIPI Feedback rapido - Se il feedback non è rapido non serve; Soluzioni semplici - Inutile perdere tempo per cose che forse non servono; Cambiamenti incrementali - Niente stravolgimenti nell'architettura e nel codice. Grandi cambiamenti si fanno a piccolli passi (refactoring); Adottare il cambiamento - XP rende i cambiamenti poco onerosi e poco rischiosi quindi non si deve avere paura di cambiare l'architettura e il codice; Lavoro di qualità - Fare i test e molto altro; leggere "Lo Zen e l'arte della manutenzione della motocicletta".\n16 PRATICHE Planning game - Per ciascuna iterazione (breve) si pianificano i task; Small releases - Ciascuna iterazione da luogo ad un rilascio; Simple design - Architettura senza inutili fronzoli; Test-first programming - Procedure di testing automatico. Prima si scrive il codice di test e poi si sviluppa; Continuous integration - Si fa un'operazione di integrazione del software continua; Refactoring - Metodologia per cambiare il codice in maniera incrementale; Pair programming - Bisogna sempre seguire i passi dei requisiti, analisi, progetto, sviluppo, debugging e test; Collective ownership - Tutti gli sviluppatori possono modificare qualsiasi parte del codice; 40-hour week - Niente straordinari; On-site customer - L'utente/cliente deve essere consultato di frequente; Methaphor - Sviluppare un linguaggio comune con gli utenti/clienti; Coding standard - Poichè il codice deve essere modificato da tutti, deve essere comprensibile a tutti. Nella metodologia XP, si hanno una serie di passi principali: Pianificazione flessibile (coinvolge utenti e programmatori); Rilasci frequenti (due/quattro settimane); Utilizzo di metafore condivise; Progetti semplici (comprensibili a tutti e refactoring); Verifica (testing di unità e sistema); Programmazione a coppie (con un singolo terminale); Collettivizzazione del codice (accesso libero a tutti, sapere comune). APPROFONDIMENTO: REFACTORING (tratto dagli appunti del prof. Crescenzi, Università di Roma, Il refactoring è il processo di modificare un sistema software senza alterarne il comportamento esterno pur migliorandone la struttura, è anche un modo disciplinato di ripulire il codice esistente minimizzando le possibilità di introdurre nuovi bugs. Alcune scuole di pensiero (come XP) hanno rivalutato la concezione secondo la quale il codice va scritto dopo la fase di progettazione, anticipandone, di fatto, la scrittura; inoltre il refactoring può intervenire quando l'integrità del sistema, e la qualità del codice, svanisce a causa di modifiche progressive. Talvolta un sistema degenera al punto che ogni modifica diventa proibitiva, il refactoring è una tecnica per fronteggiare questo scadimento del codice rispetto ai requisiti, attuali e futuri. Il processo di refactoring è composto da passi minimali di modifica del codice, ma ciascuna modifica è talmente semplice da risultare agevole e prova di inconvenienti (non deve introdurre nuovi bug); l'effetto cumulativo di piccole modifiche può migliorare drasticamente il progetto. Con il termine Refactoring si identifica: Il singolo passo di ristrutturazione del codice per migliorarne la qualità senza alterarne il comportamento osservabile; Il processo di ristrutturazione del codice, cumulando tanti piccoli passi di ristrutturazione senza alterare il comportamento osservabile. In definitiva l'obiettivo del refactoring è quello di rendere il codice più semplice da "maneggiare" e da comprendere. Perchè? Per migliorare la progettazione del software, contrastando il "Software Decay" (decadimento del software), che si presenta quando gli obiettivi di breve termine contrastano con quelli di medio-lungo termine; Per rendere il codice più comprensibile, pensando allo sviluppatore futuro del codice (soprattutto se quello sei sempre te); Per trovare e correggere bugs;\n17 Per programmare velocemente e con qualità. Come? Un prerequisito fondamentale è la disponibilità di solidi test che minimizzino la probabilità di introdurre bugs, consentano di "misurare" l'affidabilità del codice e contrastino la "paura" di fare cambiamenti; Risulta fondamentale mantenere il controllo del codice che non deve mai allontanarsi troppo dal funzionare; Per ogni singolo passo si costruiscono i test per il risultato del refactoring, si ristruttura il codice, e si eseguono test e si fanno correzioni fino a ripristinare il completo funzionamento del codice; Il codice deve tornare a funzionare dopo ogni singolo passo di refactoring. Quando? Continuamente, con piccole sessioni unicamente dedicate al refactoring; In genere l'esigenza del refactoring scaturisce quando si vuole fare qualcos'altro (aggiungere una funzionalità, correggere un bug), ed una sessione di refactoring aiuta in tal senso. E' da notare che il target dei refactoring spesso sono Design Pattern.\n18 LEZIONE 3 - ANALISI DEI REQUISITI INTRODUZIONE Per lo sviluppo di un software bisogna fare un'attività di analisi, e quindi Studiare e definire il problema da risolvere Per identificare il prodotto da commissionare; Per capire cosa deve essere realizzato; Per definire completamente gli accordi committente/fornitore. Valutare le implicazioni economiche e sulla qualità del prodotto La soddisfazione del committente è relativa ai requisiti; I requisiti possono essere sia espliciti che impliciti. Secono lo Standish Group, in un documento del 1995 (disponibile in formato HTML, QUI), le dieci maggiori cause di abbandono di un processo software sono: 1. Requisiti incompleti; 2. Scarso coinvolgimento degli utenti; 3. Mancanza di risorse; 4. Attese irrealistiche; 5. Mancanza di supporto esecutivo; 6. Modifiche a specifiche e requisiti; 7. Mancanza di Pianificazione; 8. Non c'era più bisogno; 9. Mancanza di Gestione IT; 10.Ignoranza tecnologica. Per evitare questi problemi è quindi importante comprendere il "dominio", studiando il prodotto e il suo campo di applicazione, infatti solo conoscendo bene il problema si può risolverlo. Bisogna quindi acquisire le competenze tramite la documentazione esistente, la conduzione di interviste e tramite lo studio di soluzioni esistenti L'ANALISI TRADIZIONALE Per fare questo l'analisi tradizionale opera con i seguenti passi: Studio di fattibilità; Analisi dei requisiti - Basata sull'uso del linguaggi naturale (dominio, glossario, requisiti); Specifica - Basata sull'uso di linguaggi formali o semi-formali (funzioni, profilo operazionale); Progettazione Top-Down e Realizzazione L'ANALISI MODERNA L'analisi moderna, quella basata su linguaggi object oriented, consiste dei seguenti passi: Studio di fattibilità; Analisi OO - Basata su formalismi grafici (dominio, glossario, requisiti). Collegata alla progettazione tramite l'identificazione delle classi; Progettazione OO - Utilizzo di componenti prefabbricati o realizzazione di componenti riusabili; Programmazione ad oggetti STUDIO DI FATTIBILITA' Lo studio di fattibilità cerca di identificare i rischi, costi e benefici di una realizzazione; lo studio di fattibilità viene fatto per capire le prospettive del committente e del fornitore, ed è uno studio basato su dati eterogenei e spesso incerti, che però portano alla definizione e valutazione di possibili scenari. Grazie allo studio di fattibilità si valuta e si decide se procedere o meno allo sviluppo del software, il costo di tale studio deve essere stabilito e non deve essere fatta alcuna attività di ricerca. Obiettivi dello studio di fattibilità Fattibilità tecnica e organizzativa Soluzioni algoritmiche e architettoniche; Hardware per il supporto a tempo di esecuzione;\n19 Strumenti per la realizzazione. Individuazione dei rischi Complessità e incertezza. Analisi di costi e benefici Confronto tra il mercato attuale e quello futuro; Costo della produzione e redditività dell'investimento Scadenze temporali Uno dei punti essenziali dello studio di fattibilità è l'esame delle alternative, come la alternative architettoniche (sistema centralizzato o distribuito), o sulle modalità di realizzazione ("make or buy", avvio, esercizio e manutenzione del sistema, e la formazione e assistenza agli utenti) ANALISI DEI REQUISITI Definizione di requisito 1. Una condizione o capacità necessaria a un utente per risolvere un problema; 2. Una condizione (capacità) che deve essere soddisfatta (posseduta) da un sistema per soddisfare un contratto. Categorie dei requisiti Requisiti funzionali Tradizionalmente i requisiti a cui è stato dato maggior valore; Il prodotto è visto come un'insieme di funzionalità; Quando necessario devono essere espressi formalmente. Caratteristiche di qualità Una visione più ampia e moderna; Efficienza, affidabilità, usabilità...; Modelli per la qualità del software; Norme per identificare le caratteristiche di qualità. Glossario Definizione dei termini chiave del dominio Proprietà di chiusura (tutti); Proprietà di sinteticità (e soli); Verificato e approvato dal committente. Interviste e glossario Strumento per la conduzione di interviste; Interviste per verificare il glossario ACQUISIZIONE Interviste Strutturate Non strutturate Questionari scritti Scelte multiple,... Osservazione dei futuri utenti al lavoro Studio di documenti Produzione di prototipi Evolutivi Usa e gett Proprietà del documento dei requisiti Completo Ben organizzato Privo di inconsitenze Privo di ambiguità\n20 Privo di ridondanze Privo di imprecisioni terminologiche Privo di dettagli tecnici VALIDAZIONE Eseguita su un documento già organizzato Walktrough Ispezione Lettura "strutturata" dei documenti Esempio: tecnica del lemmario Efficacia provata sperimentalmente (60% dei problemi) Matrice delle dipendenze NEGOZIAZIONE Modifiche alla lista di requisiti, divisione in classi Requisiti obbligatori Irrinunciabili per il cliente Requisiti desiderabili Non necessari, ma utili Requisiti opzionali Relativamente utili, oppure contrattabili in seguito GESTIONE Identificazione, classificazione Identificatore unico (DB. forniscono utili funzionalità) Numero sequenziale basato sulla struttura del documento (2.4.7) Coppia <CATEGORIA, NUMERO> Gestione di cambiamenti Valutazione della fattibilità tecnica e impatto sul resto del progetto Tracciabilità Requisiti vs. elementi specifica vs. componenti del sistema Strumenti CASE SEMINARIO: LA MISSIONE GPL Visualizza il caso di studio della missione GPL (formato PDF) - QUI


OUTLET Arredamento GATTO CUCINE Prezzi e Sconti a CERNUSCO SUL NAVIGLIO\nOutlet Arredamento > OUTLET Arredamento GATTO CUCINE Prezzi e Sconti a CERNUSCO SUL NAVIGLIO\nOutlet Arredamento Gatto-cucine a Cernusco sul Naviglio\nGli arredi delle migliori aziende che ti presentiamo nelle esposizioni del territorio sanno arricchire una casa di ogni genere unendo praticit� e design. I rivenditori pi� forniti della provincia di Milano ti attendono per proporti le varie proposte Gatto-cucine in offerta di cui disponiamo nel nostro outlet.\nIl comune � ubicato in provincia di Milano ed � una delle cittadine pi� belle nella regione Lombardia: in una superficie urbana di circa 13,221 conta 40001�residenti.\nIn questo rinomato comune italiano, il grado di sviluppo urbano � particolarmente alto rispetto alle restanti zone della regione Lombardia, difatti si registra un tasso di densit� demografica pari a 2529,01 abitanti/kmq.\nNegozi di arredi Gatto-cucine a Cernusco sul Naviglio\nL�inizio dell'autunno porta peculiari spunti creativi per rinnovare casa: vieni a vedere dal vivo le nostre occasioni d'autunno! Trova nel nostro sito le composizioni del rinomato marchio che fanno per te e in seguito visita i rivenditori della zona: i nostri store manager del settore arredamento ti aspettano per farti vedere tutta la qualit� firmata Gatto-cucine.\nL'ubicazione del comune in una zona pianeggiante ne fa un centro raggiungibile senza incovenienti e ben servito. Un clima mite e ottime infrastrutture lo caratterizzano. Si trova a un'altitudine media di 134 mt.\nArredamento Gatto-cucine a prezzi scontati nelle esposizioni di Cernusco sul Naviglio\nSe quello che stai cercando � prezzi pi� vantaggiosi per progettare casa con i prodotti del brand, ricorda che nel nostro sito esistono svariate offerte Gatto-cucine a prezzi scontati. Se l'articolo che ti piace � venduto da un negozio vicino a dove ti trovi, avrai la possibilit� di vederlo di persona. Cogli al volo le nuove fresche temperature per visitare il comune!


Casa>le piante spray per insetti uccidono i semi di erba\n12 piante che colorano il giardino e tengono lontani gli ...- le piante spray per insetti uccidono i semi di erba ,La lavanda si utilizza da secoli per donare un profumo piacevole alla casa e ai cassetti. Tanto quanto le persone amano l’odore di lavanda, le zanzare, le mosche e gli altri insetti indesiderati ...Pokon Spray per la cura delle piante contro gli insetti ...Un liquido biologico per aumentare la resistenza agli insetti fogliari. Lo spray per la cura delle piante contro gli insetti fogliari di Pokon contiene estratti di erbe che hanno un potere riparatore naturale. Aumenta la resistenza delle piante ai fastidiosi afidi, cocciniglie …\nGravi infestazioni di insetti derubano erba di nutrienti e alla fine uccidono piante colpite . Ci sono vari modi per sradicare insetti prato nocivi , compresi i pesticidi botanici , controlli chimici , saponi insetticidi e prodotti naturali , compresi i controlli biologici e organici .\nOsservatorio sulla Casa | Come eliminare le formiche dall ...\nUno dei primi problemi che possono portare è la scomparsa dei semi. Infatti, le formiche sono abili “ladre” di sementi, poiché al primo sentore di un seme parte la fila di formiche pronte per afferrarlo e portarlo nel loro formicaio. Un’altra seccatura che possono riservare questi insetti sono i pidocchi delle piante, chiamati “afidi ...\nAttrezzi da giardinaggio e articoli per la casa ...\n29. olio, 30. colla, 31. spray per insetti / spray per insetti 32. scarafaggio. STRUMENTI DI GIARDINAGGIO E AZIONI. A falciare il prato B vegetali vegetali C fiori delle piante D annaffiare i fiori E rastrellare le foglie F tagliare la siepe G potare i cespugli H erba Rasaerba 1, tanica gas 2, tagliabordi 3 Pala 4, semi vegetali 5, zappa 6\nC'è anche un certo numero di piante profumate dolci, belle che contengono potenti proprietà repellenti per le zanzare. Includendo queste 11 piante nel tuo giardino, puoi rinunciare ai prodotti chimici che respingono le zanzare e goderti uno spazio esterno molto più rilassante senza paura di …\nCome Riconoscere Una Pianta Di Cannabis Malata - Come ...\nAnche sistemare le piante al di sopra del livello del suolo può aiutare a mantenere la temperatura più stabile aumentando la resistenza drammaticamente, permettendo di combattere le malattie. Un'altra soluzione per il prossimo anno è di oscurare le piante presto per …\nGravi infestazioni di insetti rapinare erba delle sostanze nutrienti e alla fine uccidono le piante colpite. Ci sono vari modi per sradicare insetti nocivi del prato inglese, tra cui pesticidi botanici, controlli chimici, saponi insetticidi e prodotti naturali, compresi controlli biologici e organici.\nErba ornamentale ingiallita – Motivi per cui l’erba ...\nLe erbe ornamentali sono piante affascinanti e versatili che aggiungono colore e consistenza al giardino tutto l’anno, di solito con pochissima attenzione da parte tua. Sebbene sia raro, anche queste piante super resistenti possono sviluppare alcuni problemi e l’ingiallimento dell’erba ornamentale è un segno sicuro che qualcosa non va.\n- dopo 24 ore di ammollo, versare nuovamente il succo in un flacone spray, diluire con acqua pulita nelle proporzioni rappresentative del 60% di acqua e del 40% di tabacco - spruzzare solo le foglie e gli steli della pianta. Soluzione 2. piante per il controllo degli insetti\nOltre agli insetti, l'olio di neem è anche noto per proteggere le piante da funghi, marciume radicale, macchie nere e muffa fuligginosa. L'OLIO DI NEEM SOFFOCA GLI INSETTI. Un modo con cui l'olio di neem agisce contro gli insetti è opprimendoli e soffocandoli fisicamente.\nInsetti mangiatori di erbe infestanti le coltivazioni ...\nLe singole specie di piante variano come il numero di specie di insetti che si nutrono di esse. Ciò avviene poiché le piante si difendono, contro gli insetti che si nutrono di esse, con barriere fisiche, come le spine, o sostanze chimiche tossiche per l'insetto. Le piante del genere Asclepias sono un buon esempio. Esse hanno peli sulle foglie ...\nLe piante sono solo in grado di spaventare i parassiti, quindi, il metodo di lotta contro le tarme delle persone viene usato meglio per la prevenzione. Per rafforzare l'efficacia del metodo, è necessario escludere la possibilità di comparsa di falene in un appartamento - per conservare i vestiti per lo stoccaggio solo con pulito, se possibile ...\nRimedi naturali contro i parassiti di orti e giardini: una ...\nSono tanti gli insetti e i parassiti che possono infestare il vostro orto da balcone, le piante decorative sul terrazzo o il giardino. Per non ricorrere agli antiparassitari di sintesi e ai pesticidi, che inquinano l’ambiente, tendono a distruggere tutte le microscopiche forme di vita, nocive e non, e possono avere effetti collaterali sulla salubrità delle piante, potete utilizzare molti ...\npre：principi attivi in 420 detergentenext：deodoranti in gel oli essenziali sfusi\nelenco articoli per la pulizia della casa az\ndeodorante per ambienti traduzione italiana google translate\nevans everfresh wc pulitore scheda dati di sicurezza sds healthstream\ndistributori di pulizia in canada winnipeg manitoba\ndeodorante per la pancia di gelatina di acquisto all'ingrosso\nspray per insetti per piante da interno per moscerini\ncome rendere lo spray antizanzare per cortile sicuro per gli animali domestici\nmiglior rapporto sui consumatori di detergenti per pavimenti in piastrelle\nazienda di attrezzature per la pulizia di impianti\nfornitore di spray per insetti per il community college del programma di igiene dentale\nrepellente per zanzare con deet in india che uccide le erbacce


Brasile: in venti minuti tutto può cambiare. | Cosmopolitaly.net\nCosmopolitaly.net > Archivio > World - America del Sud > Brasile: in venti minuti tutto può cambiare.\ndal Brasile, Bruno Granata\nUna popolare trasmissione brasiliana di “news” ripete ossessivamente durante tutta la giornata che “em veinte minutos tudo pode mudar” e sembra una sintesi giornalistica quasi premonitoria degli avvenimenti delle ultime settimane.\nL’ondata di manifestazioni di protesta, cominciata contro il rincaro dei trasporti con la sigla “Passe Livre” che ha acceso la miccia chiedendo un trasporto pubblico gratuito e di qualità, si è estesa a macchia d’olio con “Copa Pra Quem”, che ha denunciato gli sprechi del Mondiale e sostenuto gli indios sloggiati dalla zona del Maracaná per la costruzione di un parcheggio, e si è rapidamente trasformata in una gigantesca manifestazione contro il governo.\nIn poco più di un mese, la Presidente Dilma Rousseff, – che sembrava avere già in tasca la riconferma alle elezioni dell’ottobre 2014 – ha visto precipitare il proprio indice di popolarità: il vento dei disordini ha bruscamente rimesso in discussione tale possibilità, aprendo un capitolo interessante ed inedito nelle abitudini del Brasile la cui storia non contempla alcun Simon Bolivar, rivolte di piazza o “libertadores”.\nIl Governo ha ammesso immediatamente di non essere riuscito a capire le ragioni delle manifestazioni che non sono state organizzate come accade normalmente da partiti politici o sindacati. Le nuove dimostrazioni sono state definite come “estremamente complesse”, specialmente per il fatto che sono avvenute in diverse città della federazione brasiliana e con mobilitazioni indotte dall’avvento delle rete sociali, dalla volontà di partecipazione che cresce su internet per poi riversarsi nelle strade.\nSecondo le statistiche dell’istituto “Datafolha”, l’ottanta per cento dei manifestanti non aderisce ad alcun partito politico e possiede un livello scolastico di tipo superiore, il 53 per cento ha meno di 25 anni ed il 71 per cento ha partecipato per la prima volta ad una manifestazione.\nEppure dieci anni di governo della sinistra hanno ridotto considerevolmente le disuguaglianze mentre quaranta milioni di persone sono uscite da una condizione di miseria “strutturale” e sono entrate a far parte di una nuova classe media: cosa sta succedendo?\nNonostante l’enorme crescita degli ultimi anni, che lo collocano insieme al gruppo Brics tra i protagonisti dell’economia mondiale, il gigante sudamericano é ancora tra i dodici Paesi del mondo nei quali la distribuzione della ricchezza risulta più iniqua. Le infrastrutture sono vetuste, gli aeroporti saturi, le linee telefoniche arcaiche, l’elettricità spesso precaria e con continui black-out.\nMentre le classi egemoni continuano a godere di paradisi sconosciuti alla grande maggioranza della popolazione, i trasporti, le opere di infrastruttura, i servizi pubblici in generale, sono spesso nelle mani di società private taglieggiate dai politici. Gli ospedali che operano nel SUS (Sistema Unico de Saude, il servizio sanitario statale gratuito) sono dei lazzaretti, le abitazioni sono precarie e vengono spesso sgomberate e demolite per costruire stadi faraonici e shopping mall lussuosi in mano alla speculazione ed ai corrotti. Il nuovo stadio di Brasilia, per esempio, costerà oltre un miliardo di reais (350 milioni di euro circa) e potrà accogliere 70.000 spettatori a fronte di una presenza media di meno di mille persone a partita. Chi ci andrà una volta spenti i riflettori del Mundial? Quanti si sono arricchiti illecitamente a discapito degli investimenti produttivi?\nE’ probabile che la maggior parte dei leaders della protesta non appartenga al gruppo di coloro che devono il proprio status alle misure economiche dei due governi Lula, ma ciò che colpisce è l’adesione massiccia alle manifestazioni, quasi come se la maggioranza dei brasiliani avesse deciso di ripudiare il modello di Paese disegnato dai partiti e dalle corporazioni imprenditoriali e sindacali per reclamare, in modo ancora molto confuso, un nuovo percorso.\nL’euforia sembra essere svanita di colpo e la straordinaria crescita brasiliana, alimentata dal “vento di poppa” che soffiava dalla Cina e dai centri finanziari europei e nordamericani (sottoposti da anni a tassi d’interesse molto bassi) ha smesso di produrre i risultati previsti.\nSembra quasi che il governo brasiliano sia paradossalmente vittima del proprio successo: la nuova classe media si scopre avida di dare libero sfogo alla propria fame di consumo, repressa per decenni, e comincia ad esigere scuole, sanità, servizi e un lavoro degno per tutti.\nIl fenomeno riguarda in realtà quasi tutta la regione sudamericana e rimette in discussione il mito dei paesi emergenti che, ricchi di soja, minerali, petrolio e di molte altre risorse naturali, potrebbero rapidamente scalzare la supremazia economica dei paesi tecnologicamente avanzati.\nUno sviluppo autentico e strutturale avrebbe sicuramente bisogno di molto di più che un’abbondanza di “commodities”. L’effetto positivo derivante dall’inclusione di milioni di persone nella forza lavoro sembra essersi esaurito, l’inflazione aumenta e la domanda di beni di consumo da parte di queste fasce della popolazione non può più, da sola, sostenere la crescita.\nDire che é tutta colpa del “capitalismo” o del “neoliberalismo” non è di grande aiuto. Anche se in Brasile, come del resto in Europa, molti manifestanti sventolano bandiere rosse, falce e martello o ritratti del Che Guevara, non sembra che molti credano davvero, come negli anni settanta, di poter realizzare una società più giusta con uno schema socialista o comunista. La mancanza di alternative radicalmente diverse rende tuttavia il panorama ancora più tenebroso.\nIn Europa, si sta smantellando il modello di welfare istituzionale che si era affermato tra mille difficoltà dopo la Seconda Guerra Mondiale e non tanto per motivi “ideologici” ma soprattutto per l’invecchiamento della società e la brutale perdita di competitività determinata dall’emergere di nuove e poderose realtà economiche..\nIn vari paesi dell’America latina, (Venezuela, Brasile, Argentina soprattutto) si é sviluppato invece un modello di assistenzialismo sempre più difficile da sostenere (ma dal quale è praticamente impossibile prescindere) che, se da un lato ha permesso nell’ultimo decennio di combattere la povertà, di ridurre le disuguaglianze e la disoccupazione, induce ed accompagna un alto grado di populismo e di corruzione.\nE’ questo il punto cruciale: l’indignazione cresce più velocemente proprio tra quei settori della classe media che, nonostante il netto miglioramento delle condizioni di vita, appaiono sempre meno disposti a tollerare gli abusi. Il populismo funziona molto meglio nelle società in cui la maggioranza della popolazione é costituita da poveri “strutturali” con un livello educativo molto basso. Quando la società comincia invece a prendere coscienza dello schema spesso discrezionale e demagogico di distribuzione delle risorse, il sistema non garantisce più i risultati e consenso.\nMolti analisti hanno voluto trovare dei parallelismi tra l’improvvisa protesta brasiliana e ciò che succede in Turchia, Egitto, Spagna o in altri paesi nei quali moltitudini di giovani, convocati attraverso le ormai onnipresenti reti sociali, si ribellano contro lo status quo.\nIn verità, anche se i motivi della protesta sono molto differenti – l’islamizzazione prepotente in Turchía e nei paesi arabi, la crisi e la disoccupazione soprattutto giovanile in Europa – è possibile riconoscere un “fil rouge” che unisce a livello planetario un gran numero di giovani della classe media: si sentono “truffati” dalle generazioni precedenti e ripudiano il destino mediocre che sembra essere stato loro assegnato in un mondo molto diverso da quello che gli avevano promesso. Si tratta in buona sostanza dello scontro tra aspettative legittime e ragionevoli (non necessariamente economiche) con una realtà incapace di realizzarle. La globalizzazione e l’immediatezza della comunicazione hanno presto fatto della “normalità” alla quale molti giovani aspirano un’illusione che esiste solo nelle “enclaves” più prospere e libere di un ristretto numero di paesi ricchi. L’esplosiva espansione dell’educazione universitaria o parauniversitaria, ancorché spesso improvvisata e di livello discutibile, ha creato una nuova classe di “diplomati” che in alcuni paesi rappresentano senz’altro la generazione più istruita della storia e che aspira naturalmente a godere della posizione privilegiata dei laureati del passato, quando solo una sparuta minoranza frequentava l’università.\nLa improvvisa “rivoluzione” brasiliana che era riuscita a lanciare segnali, inediti e concreti, di cambiamento sembra per il momento rientrata: le masse di giovani che avevano occupato il Paese, dalle grandi metropoli alle città di provincia, sono ritornate in silenzio alla routine normalizzatrice delle reti sociali, che pure erano state decisive nell´organizzare la rabbia, l´entusiasmo e la rivolta delle scorse settimane. Ma ne risentiremo parlare presto.


Varese tocca il fondo. Ora è senza più scelta | VareseSport\nHome Pallacanestro Varese Varese tocca il fondo. Ora è senza più scelta\nVarese tocca il fondo. Ora è senza più scelta\n4 Gennaio 2017, 09:15\nQuando si tocca il fondo ci sono due possibilità: scavare o risalire. La Openjobmetis a Cremona ha prodotto l’ennesima nota dolente della sua stagione, non riuscendo a controbattere alla maggiore voglia di vincere di una Vanoli che, in caso di sconfitta, si sarebbe trovata con l’acqua alla gola. Ora Varese non ha più scelta: deve guardarsi alle spalle e difendersi dall’attacco dell’ultima in classifica per non sprofondare. La situazione attuale non lascia altre possibilità e le ambizioni di inizio stagione, per ora, sono da cancellare e dimenticare.\nLa sconfitta esterna nel derby lombardo è facile da analizzare perché è uguale a molte altre che i biancorossi hanno subito in campionato e in coppa. Varese non ha saputo trovare le energie necessarie e l’attacco, dopo trenta minuti accettabili, ha ricominciato ad essere tristemente improduttivo nel periodo decisivo.\nMaynor non è stato in grado di imprimere la sua impronta sul match, Kangur si è tirato fuori dalla partita con una serie di falli evitabili e Dominique Johnson è incappato nella prima gara sotto la doppia cifra da quando è arrivato a Varese.\nI biancorossi devono imparare proprio dalla loro prossima avversaria: Torino, pur avendo vissuto una serata storta in casa contro Brescia, ci ha provato fino alla fine. Washington e Wright sono arrivati per primi su ogni pallone, dando vita a un parziale che ha quasi rimesso la Fiat in gara negli ultimi due minuti di gara. Poi la vittoria, per la squadra di Frank Vitucci, non è arrivata, ma l’atteggiamento del finale di partita ha dimostrato che i piemontesi sono vivi e combattivi. L’esatto opposto di una Openjobmetis che, un’altra volta, ha sì reagito alla spallata di Cremona nel terzo quarto, ma poi si è chiamata fuori dalla contesa quando i biancoazzurri hanno creato un altro parziale a metà quarto periodo.\nArticolo precedenteA1F – Buon Compleanno a Michela Cobianchi\nArticolo successivoSerie D – Varesina a Legnano per cambiare passo


In a Bottle Magazine News levissima premiata per le buone prassi di responsabilità sociale\nMILANO – Un costante impegno per la salvaguardia dell’ambiente e lo sviluppo sostenibile; progetti concreti nella logica della CSR e in sinergia con la comunità locale; un’attenzione particolare ai propri dipendenti e collaboratori; trasparenza nell’organizzazione aziendale ed etica d’impresa. È questo l’alfabeto della sostenibilità che da sempre utilizza Levissima, marchio di acqua minerale del Gruppo Sanpellegrino, che lo scorso 17 febbraio è stata premiata dalla Regione Lombardia in occasione della “Giornata delle buone prassi lombarde di Responsabilità Sociale”.\n“L’acqua minerale Levissima compie un percorso virtuoso fin da quando sgorga dalla sua fonte purissima in Alta Valtellina – afferma Stefano Marini, Business Unit Director del Gruppo Sanpellegrino – Da una parte, infatti, la nostra azienda dimostra una forte attenzione all’utilizzo responsabile delle risorse, all’ambiente d’origine e al legame con il territorio e la sua popolazione; dall’altra, c’è un impegno costante nello studio di tecnologie all’avanguardia e di progetti concreti a sostegno di tematiche come il riciclo o il risparmio energetico. Il riconoscimento ricevuto dalla Regione Lombardia ci conferma che stiamo lavorando nella giusta direzione e riconosce la capacità dei nostri marchi, tra cui Levissima, fiore all’occhiello nell’ambito della sostenibilità, di conferire concretezza ai valori in cui crediamo e di cui siamo portavoce”.\nSi chiama “Levissima snow recycling – Io faccio la differenza”, la campagna di sensibilizzazione ad alta quota


Il Decalogo del Perfetto Maratoneta - Running Center Club Torino\nTorino – Ormai correte con la massima dedizione da settimane. Pian piano, avete migliorato i tempi ed allungato le distanze. Siete stati attenti a non trascurare i giorni di recupero ed avete calibrato la vostra alimentazione in modo quasi maniacale. Che altro potete fare per affrontare il grande giorno?\nMolto. La lunga e tediosa distanza da coprire in una Maratona è troppo grande per essere affrontata con qualche tecnica di base. Occorrono strategie più sofisticate o, se preferite, dei veri e propri segreti del mestiere. Per aiutarvi a realizzare il vostro sogno, sia essa la vostra prima o centesima Maratona, ho elaborato dopo 42 anni di esperienza diretta e indiretta in ordine di importanza 10 consigli che più meritano la vostra attenzione. Eccovi le strategie che il vostro coach Donato considera in assoluto più importanti per qualsiasi maratoneta. Fate che siano le fondamenta della vostra preparazione.\nAllenamento, allenamento ed ancora allenamento. Non è certo possibile allenarsi per la Maratona con la stessa frequenza con cui ci si prepara, ad esempio, ai 10mila metri. E’ comunque possibile fare bene i propri “compiti a casa”. Assicuratevi di pianificare una corsa lunga lenta ogni 15 giorni a piramide nei tre o quattro mesi che precedono la maratona.\nStudiate il percorso della Maratona di Torino. Se possibile, parlate con chi vi ha partecipato. Recatevi sul posto e percorrete la rotta in auto, almeno una volta, metro per metro, fissando nella mente i vari punti di riferimento in modo da poterli ricordare prima di iniziare la gara.\nBevete il più possibile. Consiglio di bere dai 150 a 350 cc di fluidi ogni 15-20 minuti, durante la Maratona. La corsa può indubbiamente essere difficoltosa, quindi allenatevi a bere durante le corse su lunghe distanze. E’ possibile, infatti, allenare il corpo ad assorbire più fluidi (e quindi a compiere prestazioni migliori) aumentando gradualmente il consumo di acqua durante l’allenamento.\nDimezzate gli impegni. Certo, prima della gara vi allenerete meno, ma non è solo a questo che mi riferisco. Lasciate stare i lavori in garage o in cantina, e non mettere i libri in ordine alfabetico. Rilassatevi e concentratevi solo su ciò che conta, rimpiazzando l’allenamento pesante col…..riposo pesante.\nGareggiate con le scarpe che usate per allenarvi. Il corpo impara ciò che gli si insegna, né più né meno. Questo vale per le scarpette che portate di solito. Non cercate di trarre vantaggio da un paio di scarpe nuove. Potete provare con un paio di scarpe molto leggere, ma solo se le avete già usate diverse volte nelle corse lunghe.\nEvitate lo shock delle novità. Nel giorno della Maratona è meglio essere, per così dire e sotto certi aspetti, in “stallo”. Nel senso che le novità vanno evitate del tutto, e non solo per quanto riguarda le scarpe, ma anche per le calze ed i calzoncini che portate di solito nelle corse più lunghe. Vuol dire anche mangiare e bere allo stesso modo. Avete presente il detto “chi non risica non rosica”? Beh, non è stato ideato per la Maratona. Meglio il classico “chi lascia la strada vecchia per la nuova….\nCorrete a lungo, ma non troppo a lungo. Potete anche fare delle corse da due ore e mezza, con gran gioia del vostro cuore e … profonda costernazione delle vostre gambe, ma non correte mai per più di tre ore o 32 chilometri, anche se pensate di completare la Maratona in 4h. e 22. Intorno alla terza ora le prestazioni tendono a diminuire, ed ogni chilometro in più è sprecato.\nMangiate prima di correre…..Assumete almeno 500 calorie, se non proprio una colazione completa, un’ora prima della partenza. Non importa cosa mangiate (yogurt, barrette energetiche, uova sode o prosciutto, l’importante è che abbiate già mangiato gli stessi cibi delle vostre corse lunghe di allenamento, in modo da sapere già quello che il vostro stomaco può contenere senza problemi. Il pasto prima della Maratona vi eviterà un’improvviso calo di zuccheri.\nSpuntini in corsa. Le corse lunghe rappresentano un’ottima opportunità per fare pratica di rifornimento “in volo”. Portatevi dietro qualcosa di leggero, barrette energetiche, gelatine, ecc, ma senza esagerare. Se il vostro stomaco risponde bene, senza crampi, fate esattamente lo stesso in gara.\nTrovate il ritmo gara, poi rallentate. Sapete bene come ci si sente a correre ad un certo passo, ma sappiate che quando sareta circondati da migliaia di scarpette che battono contro il suolo le vostre sensazioni saranno differenti. L’adrealina che avrete in corpo il giorno della Maratona vi farà sembrare tutto molto più facile, il che può farvi rischiare l’affaticamento precoce. Sforzatevi, quindi, di trattenervi fino allo scadere del ventesimo chilometro. Ricordate: ogni minuto perso all’inizio della Maratona può essere un minuto guadagnato in prossimità del traguardo.\nDal Breviario del Perfetto Podista\nLa Festa del Cross promuove il percorso della MandriaBravi i Crossisti del Running Center Club Torino1° CROSS X L'UGIOttima organizzazione e tanta pioggia alla seconda edizione del Cross per l’UGILa stagione di Cross del Piemonte inizia con la seconda edizione del Cross per l'UGI\nRcct presente alla Mezza e alla Dieci che ValeRunning Center Club Torino protagonista alla Turin Half MarathonAppleRun per Tredici del Running Center Club TorinoL’Autunno podistico del Running Center Club Torino si apre con la Mezza che ValeBravi i Crossisti del Running Center Club Torino\nQuasi tutto pronto per la trasferta di Mauritius 2014Trasferta a Ferrara con il Running Center Club Torino24° stage di allenamento podistico a TorinoVacanza e podismo con lo Stage in Molise dal 20 al 25 Agosto20esimo Stage e Vacanza di Corsa a Pineto degli Abruzzi\nIl Running Center Club Torino festeggia i suoi primi trent’anni a Tonengo di MazzéTrentadue Anni per il Running Center Club TorinoInizia il trentaquattresimo anno di Attività Podistica per il Running Center Club TorinoTriplo Festeggiamento per il Running Center Club Torino dopo la Mezza di TorinoIl Running Center Club Torino riparte per la sua 33esima stagione\nBuon test per il Running Center Club Torino alla "Corri a San Matteo"Bravi comunque i Podisti del Rcct presenti alla partenza della Maratona Città di TorinoEsordi e buoni risultati per il Running Center Club Torino alla "Mezza di Varenne"Rcct presente alla Mezza e alla Dieci che ValePer il ventinovesimo anno Rcct presente alla Maratona di Torino\nIl Challenge di Footgolf Piemonte arriva in CittàFootgolf&Run inizia il terzo anno di attivitàStage podistico e rurale a Mezzana della TerraEntra nel vivo la stagione di Footgolf&RunEcco il programma di allenamento delle festività natalizie per il Running Center Club Torino


Mercato Inter, bilancio di fine sessione | VAVEL.com\nMercato Inter, bilancio di fine sessione\nBen undici nuovi acquisti per i nerazzurri, che consegnano a Mancini una squadra competitiva. Ora sta al tecnico trovare la quadratura per tornare in Champions League.\nEra il 31 maggio quando Roberto Mancini, a margine dell'ultima di campionato a San Siro contro l'Empoli, diceva: "Nel mercato estivo servono 8-9 acquisti". Si è andati molto oltre, dato che di nuovi ne sono arrivati ben 11. Praticamente una squadra intera. Che il Mancio fosse abile a farsi comprare i giocatori lo si sapeva già, ma la sua attitudine a chiamare lui stesso i nuovi acquisti e convincerli della bontà del progetto, è una caratteristica che abbiamo imparato a conoscere in questa estate. Ed è proprio dal progetto del tecnico che bisogna partire. Tanti acquisti, pressoché tutti di livello, ma soprattutto profili adatti all'idea di Inter che ha in mente Mancini. E questo è già un enorme vantaggio, in quanto dimostra idee chiare. Siamo ben distanti dalle sessioni confusionarie degli ultimi anni. Bisogna tornare alla stagione 2009/2010, guarda caso conclusa poi con il Triplete, per trovare una serie di acquisti funzionali al 4-2-3-1 di Josè Mourinho. Arrivarono Milito, Thiago Motta, Lucio, Eto'o e Sneijder.\nACQUISTI - La nuova Inter di Mancini, invece, non poteva prescindere da un'urgenza: rinnovare e rinforzare il reparto arretrato, e così è stato: con Murillo bloccato già a gennaio, e poi esploso in Copa America con la sua Colombia, è arrivato l'esperto Miranda dall'Atletico Madrid, vera e propria colonna portante della squadra che il Cholo Simeone ha portato sul tetto di Spagna e ad un passo da quello europeo. Anche le corsie laterali sono state rinnovate, con gli acquisti di Montoya dal Barcellona e di Telles dal Galatasaray. Il vero e proprio colpo di mercato, quello in grado di far sognare i tifosi e di restituire entusiasmo è, senza dubbio, quello di Geoffrey Kondogbia a centrocampo. Non solo per la caratura del giocatore, ma anche e soprattutto per come si è conclusa la trattativa, con il sorpasso in extremis sui cugini del Milan e con l'importante cifra sborsata - nella maggior parte dei casi i tifosi sono poco economisti e sono ben felici di vedere la propria società che non ha timore ad investire. Accanto a lui, poi, ecco arrivato Felipe Melo, richiesto esplicitamente da Mancini per dettare i tempi a centrocampo ed aggiungere altra personalità in un settore nevralgico. E per concludere l'attacco, anch'esso rinnovato grazie agli arrivi di Jovetic, Perisic - dopo una telenovela durata quasi tre mesi - e Ljajic proprio allo scadere, oltre al ritorno di Biabiany e all'acquisto del giovane Manaj.\nCESSIONI - Per far fronte a tutti questi arrivi, però, sarebbe stata necessaria qualche partenza in grado di portare denaro fresco. La più dolorosa è senza dubbio quella di Kovacic al Real Madrid, a fronte comunque di una cifra importante. Hanno destato qualche malumore, tuttavia, anche le partenze di Shaqiri allo Stoke City - bocciato dopo appena sei mesi - e di Hernanes alla rivale di sempre, quella bianconera, sempre nell'ultimo giorno di mercato, non hanno lasciato indifferenti. Diversamente da altre occasioni - si veda il caso Guarin - questa volta però i tifosi non sono sono scesi in piazza, né hanno manifestato apertamente i loro malumori, questo perché consapevoli del chiaro e preciso lavoro da parte della società, intenzionata seriamente a rinforzare l'organico e disposta anche ad investire nonostante il fair play finanziario. Oltre ai tre già citati, comunque, sono usciti anche molti giocatori ormai ai margini del progetto, tra i quali Andreolli, Taider, Scheotto e Kuzmanovic.\nFATTORE AUSILIO - Un grande applauso, di certo, va fatto al Direttore sportivo Piero Ausilio, rivelatosi un grande operatore di mercato. Il lavoro in simbiosi con Mancini ha infatti permesso, come già detto, di prendere giocatori funzionali al progetto tattico, e la formula dei "pagherò" messa in atto per gli acquisti più onerosi dà la possibilità di alleggerire momentaneamente il bilancio. Anche l'ultimo giorno di mercato, di solito il più frenetico, ha messo in luce le grandi capacità del Ds nerazzurro. Saltato Eder, infatti, l'alternativa Ljajic era già pronta. In generale, durante tutto il corso del mercato, la società ha dimostrato di saper lavorare su più tavoli e di tenersi diverse porte aperte, per evitare di rimanere spiazzati dall'andamento delle trattative, si veda anche il caso Salah-Jovetic. Ricapitolando, Inter protagonista sul mercato e pienamente promossa.\nLA NUOVA INTER - Ora però sono il tecnico e la squadra a dover fare la loro parte. Mancini ha a disposizione un organico di alto livello e dispone di almeno due giocatori per ruolo. Potrà cominciare ora a sperimentare nuove soluzioni tattiche più congeniali alle caratteristiche dei singoli a disposizione. Con il 4-3-3, infatti, Melo si piazzerebbe da centrale, con ai lati due mezzale fisiche come Kondogbia e Medel o Brozovic. Tra i tre davanti, Icardi avrebbe il compito di finalizzare, sostenuto da due esterni di grande qualità come Perisic - in grado di giocare sia a destra che sinistra - e Jovetic. Nel caso in cui, invece, Mancini decidesse di optare per il più offensivo 4-2-3-1, in mediana troverebbero posto Kondogbia - abituato a giocare a due anche nel Monaco e uno tra Melo e Medel. A Jovetic, arretrato a sostegno di Icardi, spetterebbe il compito di inventare ed aprire le difese avversarie, sostenuto ai lati da Perisic e Lijajic.\nQuesti i venticinque giocatori che andranno a comporre la rosa da consegnare in Figc:\nPORTIERI - Handanovic, Carrizo, Berni\nDIFENSORI - Miranda, Murillo, Ranocchia, Vidic, Juan Jesus, Santon, Montoya, Dodò, Telles, D'Ambrosio, Nagatomo\nCENTROCAMPISTI - Kondogbia, Medel, Melo, Brozovic, Guarin\nATTACCANTI - Icardi, Palacio, Perisic, Jovetic, Ljiaic, Biabiany


Diventa volontaria/o al Sereno Regis\nIn più di 30 anni di attività, il Centro Studi Sereno Regis ha conosciuto molte volontarie e molti volontari che sono diventati la forza motrice della Associazione. Ognuno di loro ha contribuito a divulgare il nostro messaggio e i frutti del duro lavoro fatto ma, soprattutto, ognuno ha portato la propria esperienza, unica, originale e indispensabile. Se vuoi donarci un po’ del tuo tempo e della tua esperienza non esitare a contattarci.\nEcco alcune domande per conoscerci meglio e per… aiutarti ad aiutarci!\nQuale è la tua attuale occupazione? *\nSe hai già delle competenze specifiche, per quali delle seguenti attività pensi di poter collaborare? (puoi indicare più risposte) *\nQuali sono gli ambiti di tuo interesse? *\nQuanto tempo puoi indicare a queste attività? (puoi indicare più risposte) *\nmezza giornata (al mattino)\nmezza giornata (al pomeriggio)\nDove preferisci svolgere le tue attività? (puoi indicare più risposte) *\nPerché vuoi diventare volontaria/o al Sereno Regis? *\nQuali sono le tue aspettative? *\nIscrizione alla Newsletter del Centro Studi Sereno Regis *\nIl Centro Studi Sereno Regis OdV comunica le sue iniziative anche tramite newsletter. Iscriviti alla Newsletter per essere sempre informato. Anche se rispondi "SI" riceverai una e-mail per confermare la tua iscrizione alla lista. Puoi consultare la nostra dichiarazione sulla tutela dei dati su https://www.serenoregis.org\nIl Centro Studi Sereno Regis utilizzerà le informazioni fornite su questo modulo per entrare in contatto con te. Tratteremo le tue informazioni con rispetto senza cederle ad altri e conserveremo i tuoi dati fino alla revoca del consenso. Per ulteriori informazioni sulle nostre pratiche sulla privacy, puoi visitare il nostro sito Web all'indirizzo http://serenoregis.org/privacy/. Cliccando qui sotto, accetti che possiamo elaborare le tue informazioni in conformità con il General Data Protection Regulation UE 2016/679. *


Di Pietro attacca Napolitano: "Troppi silenzi, il silenzio è mafioso" - OndAzzurra.com\nÈ il sequestro di uno striscione che riporta le parole "Napolitano dorme, l’Italia insorge", durante la manifestazione organizzata a piazza Farnese a Roma dall'Associazione nazionale vittime di mafia contro la sospensione decisa dal Csm del procuratore Apicella, l'occasione per il nuovo affondo di Antonio Di Pietro sul presidente della Repubblica Giorgio Napolitano.\nÈ il sequestro di uno striscione che riporta le parole “Napolitano dorme, l’Italia insorge”, durante la manifestazione organizzata a piazza Farnese a Roma dall’Associazione nazionale vittime di mafia contro la sospensione decisa dal Csm del procuratore Apicella, l’occasione per il nuovo affondo di Antonio Di Pietro sul presidente della Repubblica Giorgio Napolitano. Il leader dell’Italia dei Valori si rivolge al capo dello Stato dicendo: «Vogliono farci ancora una volta lo scherzetto di piazza Navona. Ma in una civile piazza c’è il diritto a manifestare. Presidente Napolitano, possiamo permetterci di accogliere in questa piazza chi non è d’accordo con alcuni suoi silenzi?». Ma Di Pietro va oltre e al giudizio della piazza associa il suo: «A Lei – prosegue – che dovrebbe essere arbitro, possiamo dire che a volte il suo giudizio ci appare poco da arbitro e poco da terzo?». L’ex pm precisa che la critica viene fatta «rispettosamente», ma poi aggiunge: «Il silenzio uccide, il silenzio è un comportamento mafioso».\nUN MIGLIAIO IN PIAZZA – Teatro del duro attacco di Di Pietro al Colle è la manifestazione sulla giustizia organizzata da Sonia Alfano. Un migliaio di persone circa ha risposto all’appello dell’Associazione nazionale vittime di mafia, dell’Italia dei valori e di una serie di organizzazioni e di personalità e si è radunato in piazza Farnese a Roma per manifestare a difesa della democrazia e della «legalità costituzionale». Al centro della protesta, la sospensione decisa dal Csm del procuratore capo di Salerno Luigi Apicella, secondo un volantino diffuso dai promotori, segnale di «grave ingerenza del potere politico nei confronti dell’autonomia della magistratura». Tra i protagonisti della giornata, che si alternano sul palco allestito di fronte al palazzo dell’Ambasciata francese, Salvatore Borsellino, Beppe Grillo, Marco Travaglio e il leader dell’Italia dei valori Antonio Di Pietro. «Punire dei magistrati per aver tentato di fare rispettare la legge a politici, magistrati e imprenditori corrotti rientra in una logica dittatoriale alla quale noi come familiari degli uomini e delle donne morti in difesa della democrazia abbiamo il dovere di ribellarci» ha scritto il presidente dell’Associazione Familiari Vittime di Mafia Sonia Alfano su Facebook.\nGRILLO – «Questo governo è stato messo lì per accordi precisi con la mafia», ha detto Grillo prima di unirsi agli altri oratori. «Ogni anno 9 miliardi di euro dell’Unione europea spariscono nelle mani della camorra e della mafia», ha detto ancora, «siamo noi che li finanziamo». Mentre «Provenzano e Totò Riina sono in galera, i mandanti sono in parlamento», ha aggiunto. Quanto al Pd ha poi commentato, «se fosse stato morale avrebbe abbracciato il primo V-day, ma la morale lì non c’è mai stata». Grillo comunque non ha perso la speranza: «aspettiamo la catastrofe con ottimismo», ha assicurato, «siamo i perdenti sorridenti».


Scuola ragazza asiatica ha perso una scommessa con il suo insegnante Video porno italiani - Sessojimo\nQui potete trovare sul Sessojimo Scuola ragazza asiatica ha perso una scommessa con il suo insegnante e un sacco di anale porno gratis. dilettante Porno Cornea e ogni Sessojimo video porno gratis su cui si pu� accedere tutto il giorno. Scegli tra le categorie come film porno porno di tua scelta semplice. porno italiani e video porno di orologi online, tutto gratuito e libero tutto il giorno. Ti piace il porno e film porno gratuiti, poi guardare al nostro passato.\n3733 views10 votes\nDesirae Anal Sex Video Cazzo Ginger Audition Sex Video Hard Svenuto teen brunette abusato Bedtime Stories Video Sex Teenager tra parentesi prende an Bella gallo nero Primi Soffiato video incredibile pomp pendejas maduras viola inculata di una donna scopate domestiche xhamster video lesbic sesso con una ninfoman video trombata da neri xvideos moglie vecc pompini al centro mass incculata fighe pelose trentenni pono gratuito zizzoni porche youjizzporn italian napoletane troie nude vacanza porno cornuti Persy figa trafitto ottiene inchiodato porni bompino porno fra minoreni porn piu dor video pompiniculo video ragazze sex party young porno mobile rovaporno.com free video


Forti dolori defecatori e pregressa ragade anale - 22.04.2013 | MEDICITALIA.it\nForti dolori defecatori e pregressa ragade anale\nA seguito di un intervento per endometriosi al setto retto vaginale (con ablazione del nodulo dalla parte vaginale che all'epoca, 2 anni fa, non aveva infiltrato il retto senza quindi necessaria resezione dello stesso) mi sono ritrovata (anche a causa delle molte dissenterie acquose che hanno seguito l'intervento) ad avere una dolorosa ragade anale che si è risolta spontaneamente nel giro di qualche mese. La cosa strana però è stata la continua presenza di materiale fecale di consistenza molle che mi ritrovo a livello anale dopo la defecazione (come se fosse muco o materiale diarroico) anche dopo accurata pulizia con carta igienica e che prima dell'intervento non era mai presente. La cosa che mi ha fatto molto preoccupare e che mi porta a scrivere è che oggi, durante la defecazione (feci normali, abbastanza molli ma a forma di palline) ho avvertito un dolore fortissimo nella parete rettale, come un coltello che si infilava nel muscolo e che dava origine a spasmi rettali forti non in zona anale ma piu in alto all'interno, una cosa mai provata prima e la sensazione di dover continuamente espellere materiale. Il mio terrore è che il nodulo possa essere ricresciuto e che stia invadendo il retto ma prima di procedere a RMN vorrei sapere se è il caso di effettuare visita proctologica per escludere altre problematiche.\nCertamente una visita proctologica può essere utile alche per valutare pappatoria ente la situazione del setto retto vaginale. In alternativa potrebbe richiedere una visita ginecologica con ecografia TV.\nGrazie gentile dott. Rossi, l'eco tsvg l'ho eseguita due mesi fa e non erano visibili noduli rettovaginali.\nA suo avviso i sintomi descritti sono compatibili con una fistola o qualcosa del genere?\nDifficile,ma solo la visita potrà chiarire il disturbo.\nSensazione di umidità anale Sanguinamento anale ignoto\nPolipo fibromatoso canale anale Escrescenza anale\nDisturbi dopo rapporto anale Inspessimento