Concetti di base di ingegneria del software



Documenti analoghi
Strumenti di modellazione. Gabriella Trucco

Progettaz. e sviluppo Data Base

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali

Cosa significa che il SW è non lineare? Piccoli cambiamenti nel codice portano a grandi cambiamenti di comportamento

Project Management. Modulo: Introduzione. prof. ing. Guido Guizzi

Automazione Industriale (scheduling+mms) scheduling+mms.

Modellazione dei dati in UML

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Principi dell ingegneria del software Relazioni fra

Database. Si ringrazia Marco Bertini per le slides

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi

Base di dati e sistemi informativi

SOFTWARE A SUPPORTO DELLA GESTIONE AMMINISTRATIVA DELLO SPORTELLO UNICO SPECIFICA DEI REQUISITI UTENTE

Specifiche dello sviluppo di un progetto software e indicazioni sulla documentazione e sulle modalità di esercizio delle prestazioni

12. Evoluzione del Software

11. Evoluzione del Software

Ciclo di vita del progetto

Organizzazione degli archivi

UML - Unified Modeling Language

Piano di gestione della qualità

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Lo sviluppo del software: usi e clausole commentate Aspetti Tecnici. Prof. Franco Sirovich Dipartimento di Informatica Università di Torino

PROJECT MANAGEMENT SERVIZI DI PROJECT MANAGEMENT DI ELEVATA PROFESSIONALITÀ

Le fattispecie di riuso

Soluzione dell esercizio del 2 Febbraio 2004

Modello Relazionale. Modello Relazionale. Relazioni - Prodotto Cartesiano. Relazione: tre accezioni. Es. Dati gli insiemi

Introduzione. Il software e l ingegneria del software. Marina Mongiello Ingegneria del software 1

Dalla progettazione concettuale alla modellazione di dominio

Raccolta dei Requisiti con i Casi D'uso. Corso di Ingegneria del Software Anno Accademico 2012/13

Programmi e Oggetti Software

Corso di Economia e Gestione delle Imprese

ARCHITETTURE DI SISTEMI INTEGRATI PER APPLICAZIONI SPECIFICHE. Design Flow

Gestione di progetti (software)

Corso di Valutazione Economica dei Progetti e dei Piani. Marta Berni AA

ING SW. Progetto di Ingegneria del Software. e-travel. Requisiti Utente. Specifiche Funzionali del Sistema

RIFERIMENTI ATTORI GLOSSARIO. ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova

Software Product Lines (SPL)

Lezione 4. Controllo di gestione. Il controllo direzionale

In legenda sono riportate le fasi R, P, C/T e I/SA come specificato nella norma ISO/IEC

Il controllo di qualità nei progetti informatici

Indice. Prefazione alla seconda edizione italiana XVII. Introduzione. Parte 1 Introduzione all UML e all UP 1

INGEGNERIA DEL SOFTWARE. Prof. Paolo Salvaneschi

I modelli normativi. I modelli per l eccellenza. I modelli di gestione per la qualità. ! I modelli normativi. ! I modelli per l eccellenza

7. Architetture Software

Specifiche Tecnico-Funzionali

Introduzione al processo di Marketing Management Cap. 1

Analisi dei requisiti e casi d uso

!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

Programmazione a Oggetti Modulo B

L organizzazione aziendale

Informatica Industriale Modello funzionale Casi d uso

Appendice III. Competenza e definizione della competenza

Sistemi Informativi e Sistemi ERP

COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING

IL MARKETING E QUELLA FUNZIONE D IMPRESA CHE:

4.1 Che cos è l ideazione

Sistemi di misurazione e valutazione delle performance

Applicazione: Sistema Informativo Integrato per il Controllo di Gestione

B.P.S. Business Process Server ALLEGATO C10

Scenario di Progettazione

Il modello di ottimizzazione SAM

I NUOVI MODELLI ORGANIZZATIVI E TECNOLOGICI A SUPPORTO DELL EFFICIENZA AZIENDALE

IL PROJECT MANAGEMENT

MODELLO RELAZIONALE. Introduzione

UML e (R)UP (an overview)

Modello di Controllo dell Accesso basato sui ruoli (RBAC)

Organizzazione e pianificazione delle attività di marketing

PROGETTAZIONE DI UN SITO WEB

Soluzione dell esercizio del 12 Febbraio 2004

La Metodologia adottata nel Corso

Il modello veneto di Bilancio Sociale Avis

Ciclo di vita dimensionale

Strumenti per la gestione della configurazione del software

Diagrammi di Interazione

Il sistema operativo TinyOS

IL SISTEMA INFORMATIVO

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Ingegneria del Software UML - Unified Modeling Language

ISO/IEC 2700:2013. Principali modifiche e piano di transizione alla nuova edizione. DNV Business Assurance. All rights reserved.

La norma ISO 9001:08 ha apportato modifiche alla normativa precedente in

Progettazione di Basi di Dati

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Ciclo di vita del software

Basi di dati. Concetti Introduttivi ESEMPIO. Fisica, Analisi, Informatica. Entità Relazioni Interrogazioni. Database 2

SOMMARIO. Sistemi Self-Adaptive Motivazioni Ciclo di vita della cellula Paradigma. Future Work

ISO 9001:2015 e ISO 14001:2015

Progettazione concettuale

Basi di Dati Relazionali

SCHEDA PRODOTTO PAG. 1 J O B T I M E W F. Variazioni mensili al cartellino presenze. Versione 6.1. JOBTIME Work Flow

Applicazione: SAI - Sistema di Audit Interno

Object Oriented Software Design

GESTIONE AVANZATA DEI MATERIALI

Progettazione della componente applicativa

SISTEMA INFORMATIVO INPDAP SERVIZI E PROGETTI PER L'INTEGRAZIONE DEL SISTEMA STANDARD DI PRODOTTO PIANO DI QUALITA' DI PROGETTO

Transcript:

Concetti di base di ingegneria del software [Dalle dispense del corso «Ingegneria del software» del prof. A. Furfaro (UNICAL)] Principali qualità del software Correttezza Affidabilità Robustezza Efficienza Usabilità Verificabilità Manutenibilità Riparabilità Evolvibilità Riusabilità Portabilità Comprensibilità Interoperabilità 1

Ingegneria del software L ingegneria del software si occupa della creazione di sistemi software complessi Tali sistemi rimangono in servizio per molti anni e durante la loro vita subiscono numerose modifiche per: eliminare difetti migliorare caratteristiche introdurre funzionalità eliminare caratteristiche obsolete adattarli ad operare in ambienti differenti Princìpi chiave dell ingegneria del software Rigore e formalità Separazione degli interessi Modularità Astrazione Anticipazione del cambiamento Generalità Incrementalità 2

Ciclo di vita del software Il software subisce uno sviluppo dall idea iniziale di un possibile prodotto fino all implementazione ed alla consegna al cliente (ed in seguito durante la manutenzione) Il ciclo di vita del software è costituito da varie fasi Nel modello tradizionale, detto a cascata (waterfall), ogni fase ha un inizio ed una fine ben definiti Ogni fase termina con la produzione di un artefatto che viene trasferito alla fase successiva Processo di sviluppo del software Cerca di organizzare il ciclo di vita del software: definendo le attività coinvolte nella produzione del software stabilendo un ordine nell'esecuzione delle attività ed individuando le relazioni tra di esse Obiettivi del processo di sviluppo del software: standardizzazione predicibilità produttività elevata qualità del prodotto capacita di pianificare il tempo ed i costi di produzione 3

Attività del processo di sviluppo Corrispondono ai diversi stadi del ciclo di vita Studio di fattibilità Acquisizione, analisi e specifica dei requisiti Definizione e progettazione dell'architettura software Produzione di codice e test dei moduli Integrazione e test del sistema Rilascio, installazione e manutenzione Scopi dell analisi dei requisiti Capire gli obiettivi del sistema Documentare i requisiti da soddisfare Specificare le qualità richieste in termini di: funzionalità prestazioni facilità d'uso portabilità... 4

Analisi dei requisiti Che cosa è necessario Comprendere l'interfaccia tra l'applicazione ed il mondo esterno Comprendere il dominio applicativo Individuare i principali stakeholder (coloro che hanno un interesse nel sistema e che saranno responsabili della sua accettazione) Capire cosa essi si aspettano: Stakeholder differenti hanno punti di vista differenti L'ingegnere del software deve cercare di integrarli e riconciliarli Principi cruciali Separazione degli interessi Astrazione Modularizzazione orizzontale: strutturare il sistema come collezione allo stesso livello di astrazione Progettazione Il risultato di questa attività è la produzione di un documento di specifica di progetto La forma del documento segue standard che possono includere l'uso di una notazione quale UML Documento di specifica di progetto Descrive il sistema in termini di componenti, delle loro interfacce e delle relazioni tra di esse Registra le decisioni significative e le relative motivazioni 5

Rilascio, installazione e manutenzione Il software viene rilasciato ai clienti in due fasi: L'installazione definisce l'architettura del sistema a tempo di esecuzione, ad esempio stabilendo l'allocazione dei vari componenti su i nodi di una rete aziendale La manutenzione è la fase più costosa (60% del totale) Modello a cascata 6

Modello a cascata Vantaggi Il processo di sviluppo è soggetto a disciplina, pianificazione e gestione Svantaggi Lineare, rigido, monolitico Assenza di feedback Assenza di parallelismo Unica data di consegna Introduzione di feedback Alcuni modelli a cascata consentono di introdurre del feedback in modo disciplinato Il feedback è limitato tra una fase e quella successiva Modelli incrementali Il progettista dovrebbe accettare il fatto che i fallimenti di una versione dell'applicazione comportino il bisogno di rifare parte dell'applicazione Secondo il principio «Do it twice» (Brooks, 1995), la prima versione di un prodotto viene vista come un test Tale idea è alla base dei modelli evolutivi o incrementali Un modello di processo evolutivo è un modello le cui fasi consistono in versioni incrementali di un prodotto software con una direzione evolutiva determinata dall'esperienza pratica (Boehm, 1988) 7

UML UML è una famiglia di notazioni grafiche Servono a supportare la descrizione ed il progetto di sistemi software Sono particolarmente adatte a sistemi realizzati con il paradigma orientato agli oggetti UML è uno standard relativamente aperto controllato dall'object Management Group (OMG) UML UML2 definisce 13 tipi di diagrammi La sintassi dei diagrammi non è molto rigida: si possono usare elementi di un tipo di diagramma all'interno di un altro Lo standard UML indica quali elementi sono tipicamente inclusi in determinati diagrammi 8

Diagrammi UML Casi d'uso Classi Sequenza Oggetti Package Deployment Macchine a stati Attività Comunicazione Struttura composita Componenti Interazione generale Temporizzazione Diagrammi dei casi d uso Uno scenario è una sequenza di passi che caratterizzano una particolare interazione tra utente e sistema Un caso d'uso è un insieme di scenari che hanno in comune lo scopo finale dell'utente Uno scenario è una possibile «esecuzione» (istanza) di un caso d'uso. Gli utenti sono rappresentati per mezzo del concetto di attore Un attore rappresenta un ruolo interpretato da un'entità esterna (un utente umano, un sistema esterno) nei confronti del sistema Un singolo attore può partecipare a più casi d'uso; un singolo caso d'uso può coinvolgere più attori 9

Diagrammi dei casi d uso Generalizzazioni tra casi d uso 10

Generalizzazione tra attori Estensioni tra casi d uso 11

Diagrammi delle classi Il diagramma delle classi è il diagramma UML più ampiamente utilizzato Si presta a rappresentare il maggior numero di concetti Descrive il tipo degli oggetti che fanno parte del sistema e le varie tipologie di relazioni tra di essi Mostra le proprietà e le operazioni (metodi) delle classi ed i vincoli tra gli oggetti istanze delle classi UML usa il termine caratteristica (feature) per indicare sia le proprietà che le operazioni di una classe Diagrammi delle classi 12

Proprietà/associazioni Proprietà/associazioni 13

Proprietà/associazioni Generalizzazione 14

Interfacce e classi astratte Associazioni ricorsive 15