Ingegneria del Software
|
|
|
- Sabina Gambino
- 9 anni fa
- Просмотров:
Транскрипт
1 Ingegneria del Software Obiettivi della lezione: Definire cosa si intende per Ingegneria del Software Discutere i concetti di prodotto software e di processo software Spiegare il concetto di visibilità di processo Introdurre la nozione di responsabilità professionale Ingegneria del Software Le economie di tutti i paesi sviluppati dipendono dal software, e la maggior parte dei sistemi sono controllati da software L Ingegneria del Software ha a che fare con teorie, metodi e strumenti per progettare, costruire e mantenere sistemi software di grandi dimensioni Il software costa più dell hardware, e il mantenimento costa più dello sviluppo Obiettivo: sviluppo cost-effective del software
2 FAQ sull ingegneria del software Cos è il software? Quali sono gli attributi di un software di qualità? Cos è l ingegneria del software? Qual è la differenza tra ingegneria del software e informatica? Qual è la differenza tra ingegneria del software e ingegneria di sistema? Cosa si intende per processo di produzione del software? FAQ sull ingegneria del software Cos è un modello di processo di produzione software? Quali sono i costi nel processo di produzione software? Quali sono i metodi dell ingegneria del software? Quali sono le sfide che l ingegneria del software si trova ad affrontare?
3 Cos è un prodotto software? Qualcosa di più di un insieme di linee di codice Un insieme di programmi per computer Tutta la documentazione che descrive la struttura del sistema I dati di configurazione, che permettono di installarlo Il manuale utente Prodotti Software Prodotti Generici Sistemi stand-alone prodotti da un organizzazione di sviluppo e venduti sul mercato ad ogni cliente Prodotti Dedicati Sistemi che sono commissionati da un cliente specifico e sviluppati appositamente La maggior spesa di software riguarda sistemi generici, ma il maggior sforzo di sviluppo è su prodotti dedicati La differenza principale? Chi dà la specifica del prodotto (il produttore o il consumatore).
4 Attributi di un prodotto software Manutenibilità Capacità di evolvere in rapporto alla modifica di requisiti Affidabilità Correttezza Robustezza Verificabilità Sicurezza - Innoquità Efficienza (Produttività) Non deve sprecare risorse (memoria, tempo,...) Usabilità Deve avere interfaccia e documentazione appropriate Cosa l ingegneria del software? Software engineering è una disciplina che cerca di fornire le regole per il processo di produzione del software Un ingegnere del software dovrebbe: adottare un approccio sistematico e organizzato al proprio lavoro usare strumenti e tecniche appropriate, che dipendono dal problema che deve essere risolto, dai vincoli presenti e dalle risorse disponibili.
5 ingegneria del software e informatica L informatica è una scienza: il cuore sono i fondamenti teorici: linguaggi algoritmi complessità formalismi ecc. L ingegneria del software ha a che fare con aspetti più pratici : come pianificare e sviluppare la produzione di software di qualità. Ad un ingegnere del software le conoscenze di base dell informatica servono quanto la fisica ad un ingegnere elettrico ingegneria del software e ingegneria di sistema L ingegneria di sistema ha come oggetto tutti gli aspetti dello sviluppo di un sistema basato su computers, inclusi gli aspetti hardware, software e di processo. L ingegneria del software può essere vista come una parte dell ingegneria di sistema. Gli ingegneri del software collaborano alla specifica del sistema, alla progettazione architetturale all integrazione con le altre componenti.
6 Processo di produzione software Il processo di produzione software è un insieme di attività il cui fine complessivo è lo sviluppo di un prodotto software oppure la modifica di un prodotto software Attività richieste nel processo di sviluppo software Specifica Progettazione Implementazione Validazione Installazione Manutenzione Smaltimento
7 Caratteristiche del processo Comprensibilità Visibilità Supportabilità (CASE ) Accettabilità Robustezza Mantenibilità Rapidità Problemi nel processo di sviluppo del software Specifiche incomplete/incoerenti Mancanza di distinzione tra specifica, progettazione e implementazione Assenza di un sistema di validazione Il software non si consuma: la manutenzione non significa riparare alcune componenti rotte, ma modificare il prodotto rispetto a nuove esigenze
8 I costi di un prodotto software All incirca il 60% dei costi è legato allo sviluppo, il 40% sono costi per la verifica e validazione (testing). I costi variano a seconda del tipo di sistema che deve essere sviluppato e da requisiti quali la performance o l affidabilità del sistema. La distribuzione di costi nelle varie fasi del processo di produzione del software dipende dal modello di processo. Modelli di processo di produzione software Una rappresentazione semplificata del processo di produzione software a partire da una certa prospettiva Esempi di prospettiva da cui si può modellare il processo di produzione sw: Workflow - sequenza di attività Data-flow - flusso di informazione Role/action - chi fa cosa
9 Modelli di processo Modello a cascata Fasi distinte di specifica e di sviluppo Modello evolutivo Specifica e sviluppo interagiscono Modello trasformazionale Un sistema matematico è trasformato formalmente in una implementazione Sviluppo basato sul riutilizzo Il sistema è ottenuto combinando componenti esistenti Modello a cascata Definizione dei Requisiti Progettazione del Sistema e del Software Implementazione e testing delle singole unità Integrazione e testing di sistema Installazione e Manutenzione
10 Fasi del modello a cascata Analisi e definizione dei requisiti Progettazione del sistema e del software Implementazione e test delle singole unità Integrazione e test del sistema Installazione e mantenimento Il limite del modello a cascata è la difficoltà ad effettuare cambiamenti nel corso del processo Modello evolutivo Attività concorrenti Specifica Versione Iniziale Descrizione di massima Sviluppo Versioni Intermedie Validazione Versione Finale
11 Modello evolutivo Prototipazione di tipo evolutivo L obiettivo è lavorare con il cliente ed evolvere verso il sistema finale a partire da una specifica di massima. Lo sviluppo inizia con le parti del sistema che sono già ben specificate, aggiungendo via via nuove caratteristiche Prototipazione di tipo usa e getta L obiettivo è capire i requisiti del sistema. e quindi sviluppare una definizione migliore dei requisiti. Il prototipo sperimenta le parti del sistema che non sono ancora ben comprese Modello evolutivo Problemi Mancanza di visibilità del processo Sistemi spesso poco strutturati Possono essere richieste particolari capacità (ad esempio in linguaggi per prototyping rapido) Applicabilità Sistemi interattivi di piccola o meda dimensione Per parti di sistemi più grandi (es. interfaccia utente) Per sistemi a vita breve
12 Modello trasformazionale Basato sulla trasformazione di una specifica matematica in in programma eseguibile, attraverso trasformazioni che permettono di passare da una rappresentazione formale ad un altra. Le trasformazioni devono preservare la correttezza. Questo garantisce che il programma soddisfi la specifica. Modello trasformazionale Formal transformations T1 T2 T3 T4 Formal specification R1 R2 R3 Executable program P1 P2 P3 P4 Proofs of transformation correctness
13 Valutazione dei Rischi Obiettivo principale = minimizzare i rischi Rischio = misura di incertezza del risultato di un attività Meno informazione si ha, più alti sono i rischi Valutazione dei rischi nei modelli di processo del software Modello a cascata Alto rischio per sistemi nuovi, per problemi di specifica e di progettazione Basso rischio per sviluppo di problemi familiarità già acquisita Modello evolutivo, prototipazione Basso rischio per nuovi sistemi Alto rischio a causa della scarsa visibilità del processo Modello trasformazionale Alto rischio dovuto alla necessità di tecnologia avanzata e di elevate capacità da parte degli sviluppatori
14 Modello a spirale di Boehm determinazione obiettivi e vincoli valutazione alternative identificazione rischi pianificazione fase successiva 3 sviluppo e verifica Fasi del modello a spirale Determinazione degli obiettivi e dei vincoli Valutazione e riduzione dei rischi e valutazione delle alternative Progettazione e testing Pianificazione della fase successiva
15 Modello a spirale Determine objectives alternatives and constraints Plan next p has e REVIEW Requirements plan Life-cycle plan Development plan Integration and test plan Risk analysis Risk analysis Risk analysis Prototype 2 Risk analysis Prototy pe 1 Concept of Operation S/W requirements Requirement valid ation Design V&V Service Acceptance test Evaluate alternatives identify, resolve risks Prototype 3 Operational protoype Simulations, models, bench marks Product design Code Unit test Integr ation test Detailed design Develop, verify next-level product Esempio Obiettivi Migliorare la qualità del software in modo significativo Vincoli In tre anni Senza grandi investimenti senza un cambiamento radicale degli standard dell azienda Alternative Riutilizzare software certificato già esistente Introdurre specifiche e verifiche formali Investire in prodotti di testing e di validazione
16 Rischi Migliorare la qualità del software può aumentare eccessivamente i costi I nuovi metodi possono indurre il personale a licenziarsi Risoluzione dei rischi Studio della letteratura esistente Avvio di un progetto pilota Analisi delle componenti potenzialmente riutilizzabili Valutazione degli strumenti di supporto già esistenti Addestramento e rimotivazione del personale Risultati I miglioramenti sono difficili da quantificare per la scarsa esperienza nell utilizzo di metodi formali Gli strumenti di supporto disponibili sono insufficienti rispetto allo standard dei sistemi di sviluppo dell azienda Componenti software riusabili, ma scarso contributo degli strumenti di supporto alla riusabilità Pianificazione della fase successiva Finanziare una fase di studio di altri 18 mesi Studiare in maggior dettaglio le opzioni di riuso del software Sviluppare strumenti di supporto al riuso di software Esplorare uno schema di certificazione delle componenti
17 Vantaggi e limiti del modello a spirale Vantaggi Concentra l attenzione sulle possibilità di riuso Concentra l attenzione sull eliminazione di errori Pone al centro gli obiettivi Integra sviluppo e mantenimento Costituisce un framework di sviluppo hardware/software Limiti Per contratto di solito si specifica a priori il modello di processo e i deliverables Richiede esperienza nella valutazione dei rischi Richiede raffinamenti per un uso generale Visibilità del processo software C è bisogno di documentazione per valutare i progressi nel processo di sviluppo software Problemi La programmazione dei tempi di consegna dei deliverables può non combaciare con i tempi necessari per completare un attività La necessità di produrre documentazione vincola l iterazione del processo Il tempo necessario per approvare i documenti è significativo Il modello a cascata è ancora il modello basato su deliverables più usato
18 Documentazione del modello a cascata Activity Requirements analysis Requirements definition System specification Architectural design Interface design Detailed design Coding Unit testing Module testing Integration testing System testing Acceptance testing Output documents Feasibility study, Outline requirements Requirements document Functional specification, Acceptance test plan Draft user manual Architectural specification, System test plan Interface specification, Integration test plan Design specification, Unit test plan Program code Unit test report Module test report Integration test report, Final user manual System test report Final system plus documentation Visibilità dei modelli di processo Process model Waterfall model Evolutionary development Formal transformations Reuse-oriented development Spiral model Process visibility Good visibility, each activity produces some deliverable Poor visibility, uneconomic to produce documents during rapid iteration Good visibility, documents must be produced from each phase for the process to continue Moderate visibility, it may be artificial to produce documents describing reuse and reusable components. Good visibility, each segment and each ring of the spiral should produce some document.
19 Le sfide per l ingegneria del software Legacy systems Sistemi vecchi ma che non possono essere dismessi, ma che devono essere mantenuti e aggiornati Eterogeneità Sistemi distribuiti e dove c è garnde interdipendenza tra hardware e software Delivery Pressione perché la produzione software sia rapida Responsabilità Professionale Non limitarsi agli aspetti tecnici, ma guardare anche ai risvolti etici, sociali e alle responsabilità professionali: essere onesti non è solo rispettare le leggi. Confidenzialità Competenza Diritti di proprietà intellettuale Uso inappropriato dei computer Vedi ACM/IEEE Code of Ethics
20 Punti chiave L ingegneria del software si occupa di teorie, metodi e strumenti per sviluppare, produrre e mantenere prodotti software Prodotti software consistono in programmi e relativa documentazione. Gli attributi di un prodotto software Il processo software consiste nelle attività necessarie per sviluppare software Punti-chiave Il modello a cascata considera ogni attività del processo separatamente dalle altre Il modello evolutivo considera le attività del processo in modo concorrente Il modello a spirale è guidato dall analisi dei rischi Visibilità = derivables per ogni attività Produrre software implica responsabilità etiche, sociali e professionali
1. L Ingegneria del Software
1. L Ingegneria del Software Obiettivi della lezione: Definire cosa si intende per Ingegneria del Software Discutere i concetti di prodotto software e di processo software Spiegare il concetto di visibilità
Modulo 2. La produzione industriale del software Il ciclo di vita del software I modelli di sviluppo. La industrializzazione del software
Modulo 2 La produzione industriale del software Il ciclo di vita del software I modelli di sviluppo La industrializzazione del software Il software è divenuto un componente essenziale dei prodotti a maggior
Ingegneria del Software
Ingegneria del Software Introduzione e Concetti Fondamentali Porfirio Tramontana, 2009 Corso di Ingegneria del Software Slide 1 Riferimenti Ian Sommerville, Ingegneria del Software, Capitolo 1 Porfirio
Gestione dello sviluppo software Modelli Base
Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione GESTIONE DEI SISTEMI ICT Paolo Salvaneschi A4_1 V1.0 Gestione dello sviluppo software Modelli Base Il contenuto
3. Ciclo di Vita e Processi di Sviluppo
3. Ciclo di Vita e Processi di Sviluppo come posso procedere nello sviluppo? Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 3. Ciclo di Vita e Processi di
Processo parte III. Modello Code and fix. Modello a cascata. Modello a cascata (waterfall) Leggere Sez. 7.4 Ghezzi et al.
Modello Code and fix Processo parte III Leggere Sez. 7.4 Ghezzi et al. Modello iniziale Iterazione di due passi scrittura del codice correzione degli errori Problemi: dopo una serie di cambiamenti, la
Corso di Ingegneria del Software
Corso di Paolo Bottoni Lezione 2: Processo software Lucidi tradotti e adattati a partire dalla versione in inglese presente a http://iansommerville.com/software-engineering-book/slides/ Obiettivi Introdurre
Modelli di processo. Marina Zanella - Ingegneria del Software Processo 1
Modelli di processo Ciclo di vita di un prodotto sw = tutte le fasi che accompagnano tale prodotto dal concepimento dell idea dello stesso fino al suo ritiro Modello di processo = tentativo di organizzare
Corso di Ingegneria del Software. Modelli di produzione del software
Corso di Ingegneria del Software a.a. 2009/2010 Mario Vacca [email protected] 1. Concetti di base Sommario 2. 2.1 Modello a cascata 2.2 2.3 Modelli evolutivi 2.4 Comparazione dei modelli 2.5 Modelli
Corso di Ingegneria del Software. Modelli di produzione del software
Corso di Ingegneria del Software a.a. 2009/2010 Mario Vacca [email protected] 1. Concetti di base Sommario 2. 2.1 Modello a cascata 2.2 Modelli incrementali 2.3 2.4 Comparazione dei modelli 2.5
INTERAZIONE UOMO-MACCHINA
INTERAZIONE UOMO-MACCHINA Cicli di vita Barbara Rita Barricelli Stefano Valtolina Dipartimento di Informatica Università degli studi di Milano Per dubbi/domande 2 [email protected] Modelli di Cicli
INTERAZIONE UOMO-MACCHINA
INTERAZIONE UOMO-MACCHINA Cicli di vita Barbara Rita Barricelli Stefano Valtolina Dipartimento di Informatica Università degli studi di Milano Modelli di Cicli di vita 2 Mostrano come le attività sono
14. Verifica e Validazione
14. Verifica e Validazione Come assicurarsi che il software corrisponda alle necessità dell utente? Introdurremo i concetti di verifica e validazione Descriveremo le fasi del processo di testing Parleremo
Modelli di Processo. www.vincenzocalabro.it
Modelli di Processo Il Modello del Processo Il modello del processo stabilisce i principi di base su cui si fonda lo sviluppo del software (e a cui è dovuto il successo o l insuccesso) Non esiste un unico
Materiale didattico. Sommario
Diploma Universitario in Ingegneria Informatica Corso di Ingegneria del Software Docente: ing. Anna Rita Fasolino Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II
Modelli di Ciclo di Vita del Software (CVS)
Modelli di Ciclo di Vita del Software (CVS) Una morfologia dell organizzazione del lavoro nelle fabbriche del software: fasi della produzione, tipi di attività, collegamento ed interfacciamento, pianificazione,
PIANIFICAZIONE DI PROGETTO DI SISTEMI INFORMATIVI
PIANIFICAZIONE DI PROGETTO DI SISTEMI INFORMATIVI ATTIVITA CHE ESAMINEREMO: 1. ANALISI PRELIMINARE identificazione problema / opportunita analisi di utenti, fabbisogni, requisiti, obiettivi, ecc. DOCUMENTO
Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software. Processo software. Marina Mongiello. il processo
Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del Processo Sommario 1. Prodotto e processo 2. Ciclo di vita del 3. Modelli del processo di sviluppo 1. Modelli a processo prescrittivo 2.
Ingegneria del Software 2010
Ingegneria del Software 2010 Materiale, link utili, avvisi http://www.dmi.unict.it/~tramonta/se Forum su SDAI http://www.sdai.unict.it leggere gli avvisi partecipare alle discussioni fare domande Lezioni
IL PROCESSO di PROGETTAZIONE
IL PROCESSO di PROGETTAZIONE In questa lezione vedremo: Ruolo della modellazione nella comunicazione tipi di modello nel progetto I modelli del prodotto Interpretazione delle informazioni del progetto
Le aree dell informatica
Fondamenti di Informatica per la Sicurezza a.a. 2006/07 Le aree dell informatica Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università
UX-PM level 1: Adopting UX
UX-PM level 1: Adopting UX La certificazione UX-PM (UX-Project Manager) è un programma di formazione internazionale sulla User Experience (UX) per i prodotti e i servizi digitali. Il programma si articola
Ingegneria del Software 2014
Ingegneria del Software 2014 Materiale, link utili, avvisi http://www.dmi.unict.it/~tramonta/se Forum http://forum.informatica.unict.it leggere gli avvisi partecipare alle discussioni fare domande E. Tramontana
REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA
REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA SETTORE ECONOMICO PROFESSIONALE 1 Servizi di informatica Processo Sviluppo e gestione di prodotti e servizi informatici Sequenza di
Lezione 1 Ingegneria del Software II- Introduzione e Motivazione. Ingegneria del Software 2 Introduzione e Motivazioni 1
Lezione 1 Ingegneria del Software II- Introduzione e Motivazione Ingegneria del Software 2 Introduzione e Motivazioni 1 Riferimenti bibliografici I. Sommerville Ingegneria del Software 8a edizione Cap.1
Fondamenti VBA. Che cos è VBA
Fondamenti VBA Che cos è VBA VBA, Visual Basic for Application è un linguaggio di programmazione, inserito nelle applicazioni Office di Microsoft (Ms Word, Ms Excel, Ms PowerPoint, Visio). VBA è una implementazione
Ingegneria del Software L-A
Ingegneria del Software L-A Corso di Laurea Triennale in Ingegneria Informatica III anno A.A. 2009/2010 Docente: Giuseppe Bellavia Collaboratore: Gabriele Zannoni Premessa Una domanda fondamentale Che
ORGANIZZAZIONE Un modello organizzativo per l efficacia e l efficienza dello Studio
ORGANIZZAZIONE Un modello organizzativo per l efficacia e l efficienza dello Studio Alessandra Damiani Managing Partner Barbieri & Associati Dottori Commercialisti Consulente per l Organizzazione degli
Configuration Management secondo l ISO
SUPSI Project Management Forum Configuration Management secondo l ISO Alessandro Colasurdo [email protected] Lugano, 23 Giugno 2017 Alessandro Colasurdo Configuration Management secondo l
Ciclo di vita del software
Ciclo di vita del software Nel corso degli anni, nel passaggio dalla visione artigianale alla visione industriale del software, si è compreso che il processo andava formalizzato attraverso: un insieme
PROGETTARE SISTEMI INFORMATIVI. Fasi e relativi approcci
PROGETTARE SISTEMI INFORMATIVI Fasi e relativi approcci OBIETTIVI 1. Descrivere un approccio generale per pianificare e impostare il progetto di un S.I. 2. Identificare i passi fondamentali 3. Illustrare
ISTITUTO D ISTRUZIONE SUPERIORE G.CENA SEZIONE TECNICA ANNO SCOLASTICO 2018/2019 PROGRAMMAZIONE DISCIPLINARE DIPARTIMENTALE DI INFORMATICA DOCENTI
I.I.S. G. CENA ISTITUTO D ISTRUZIONE SUPERIORE G.CENA SEZIONE TECNICA ANNO SCOLASTICO 2018/2019 PROGRAMMAZIONE DISCIPLINARE DIPARTIMENTALE DI INFORMATICA DOCENTI Nespolo Donatella, Ravasenga Paola CLASSE
Ingegneria del Software (e Prova Finale) Luciano Baresi
Ingegneria del Software (e Prova Finale) Luciano Baresi [email protected] Organizzazione dei corsi Ingegneria del software (7 crediti) Lezioni: 42 ore Esercitazioni: 28 ore Prova finale (3 crediti)
Ingegneria del Software
Ingegneria del Software Settore dell Informatica che si occupa di sistemi sw - di dimensioni e complessità elevate - realizzati da squadre - disponibili in più versioni - di lunga durata - destinati a
L adozione di MATLAB e Simulink nei Corsi di Ingegneria al Politecnico di Milano. Maurizio Magarini MATLAB EXPO Milano, 4 novembre 2014
L adozione di MATLAB e Simulink nei Corsi di Ingegneria al Politecnico di Milano MATLAB EXPO Milano, 4 novembre 2014 Sommario Introduzione. Il ruolo dei laboratori informatici nella didattica, formazione
Introduzione al Calcolo Scientifico
Introduzione al Calcolo Scientifico Francesca Mazzia Dipartimento di Matematica Università di Bari Francesca Mazzia (Univ. Bari) Introduzione al Calcolo Scientifico 1 / 14 Calcolo Scientifico Insieme degli
TOMMASO BECCA AREA CORPORATE - DIGITAL TRANSFORMATION
TOMMASO BECCA AREA CORPORATE - DIGITAL TRANSFORMATION INDICE 01 IL GRUPPO CAMAC 02 STORIA 03 CAMAC SRL: ORGANIZZAZIONE 3.1 ORGANIZZAZIONE: area corporate 3.2 ORGANIZZAZIONE: area fashion 3.3 area fashion:
ITIL e PMBOK Service management and project management a confronto
ITIL e PMBOK Service management and project management a confronto PMBOK IV e ITIL v.3 Project and Service Management : progettare e gestire la qualità Giampaolo Rizzi COGITEK Socio Fondatore itsmf Italia
Gestione del ciclo di vita del software
Applicazione delle Direttive e delle norme tecniche vigenti per il processo di certificazione del software ad uso medico Gestione del ciclo di vita del software Ing. Pasquale Fedele Liquidweb S.r.l. Milano,
Ingegneria del Software
Università degli Studi di Napoli Federico II Ingegneria del Software a.a. 2013/14 Lezioni 18: Strumenti per la gestione di Progetti Software 1 Obiettivi della lezione Introdurre caratteristiche e problemi
Consulenza e Software, insieme per la certificazione ISO : presentazione di un caso reale
Consulenza e Software, insieme per la certificazione ISO 9001-2015: presentazione di un caso reale Workshop Pier Alberto Guidotti QualiWare Alberto Mari NCG Francesco Bassi Soluzioni Bologna, 6 settembre
Concetti di Base sulla Programmazione. Prof.Ing.S.Cavalieri
Concetti di Base sulla Programmazione Prof.Ing.S.Cavalieri 1 La Programmazione Dato un problema INFORMATICO, programmare significa: Definire i dati in ingresso e il risultato che si vuole raggiungere Definire
