Introduzione al software engineering"



Похожие документы
Modelli di Processo.

Ingegneria del Software. Processi di Sviluppo

Ciclo di vita del progetto

Rational Unified Process Introduzione

UML e (R)UP (an overview)

Ciclo di vita del software

Concetti di base di ingegneria del software

Progettazione del Software. Emiliano Casalicchio. Dipartimento di Informatica e Sistemistica SAPIENZA Università di Roma Sede di Rieti

Ciclo di vita dimensionale

Ciclo di Vita Evolutivo

La gestione manageriale dei progetti

Il modello RAD 1. Rapid Application Development punta a un ciclo di sviluppo molto breve

PROJECT MANAGEMENT SERVIZI DI PROJECT MANAGEMENT DI ELEVATA PROFESSIONALITÀ

4.1 Che cos è l ideazione

INGEGNERIA DEL SOFTWARE. Prof. Paolo Salvaneschi

FORMAZIONE AVANZATA. Corso di introduzione al Project Management

Base di dati e sistemi informativi

IL MODELLO SCOR. Agenda. La Supply Chain Il Modello SCOR SCOR project roadmap. Prof. Giovanni Perrone Ing. Lorena Scarpulla. Engineering.

Strumenti di modellazione. Gabriella Trucco

Piano di gestione della qualità

IL PROCESSO DI FABBRICAZIONE (sviluppo nuovo prodotto)

Valorizzazione della professionalità di SW Quality Assurance

Osservatorio P 3 MO. Il PMO come strumento di diffusione ed enforcement della cultura di Project Management

SOA GOVERNANCE: WHAT DOES IT MEAN? Giorgio Marras

1- Corso di IT Strategy

Corso di Laurea Triennale in Ingegneria Informatica. Corso di Ingegneria del software A. A Marina Mongiello

Progettazione dei Sistemi di Produzione

UNI EN ISO 9001:2008 Sistemi di Gestione per la Qualità: requisiti e guida per l uso

La Certificazione ISO 9001:2008. Il Sistema di Gestione della Qualità

PIANIFICAZIONE DI PROGETTO DI SISTEMI INFORMATIVI

Università degli studi dell Aquila. Sistemi informativi aziendali 9 C.F.U.

Generazione Automatica di Asserzioni da Modelli di Specifica

Appendice III. Competenza e definizione della competenza

Università degli Studi di Salerno Ingegneria del Software: Tecniche Avanzate

ILSISTEMA INTEGRATO DI PRODUZIONE E MANUTENZIONE

MANUALE DELLA QUALITÀ Pag. 1 di 6

13. Ciclo di Vita e Processi di Sviluppo

Progettaz. e sviluppo Data Base

Project Management. Corso Sistemi Informativi Aziendali, Tecnologie dell Informazione applicate ai processi aziendali.

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

PASSAGGIO ALLA ISO 9000:2000 LA GESTIONE DELLE PICCOLE AZIENDE IN OTTICA VISION

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

TECNICO SUPERIORE PER L AUTOMAZIONE INDUSTRIALE

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Il Progetto e il Project Management

Processi principali per il completamento del progetto

COMUNICAZIONE PER IL MANAGEMENT D IMPRESA

WorkFLow (Gestione del flusso pratiche)

11. Evoluzione del Software

Metodologie Agili per lo sviluppo di applicazioni Internet Distribuite. Agile Group DIEE, Università di Cagliari

Quality gate. Sono eventi programmati regolarmente e condotti seguendo una procedura standard

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

Il controllo dei rischi operativi in concreto: profili di criticità e relazione con gli altri rischi aziendali

Sicurezza e Gestione delle Reti (di telecomunicazioni)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Il Building Information Modelling (BIM)

Software Embedded Integration Testing. Ing. Matteo Maglio Milano, 17 Febbraio 2011

Progettazione dei Sistemi Produttivi. Sergio Terzi

Ibpm è lo strumento per la gestione dei processi, dalla modellazione, all esecuzione, al monitoraggio.

PROGETTAZIONE MECCANICA DESIGN INDUSTRIALE OUTSOURCING RICERCA E SVILUPPO GRAFICA DOCUMENTAZIONE TECNICA STUDIO TECNICO

GARA COMUNITARIA A PROCEDURA RISTRETTA PER LA PROGETTAZIONE, REALIZZAZIONE ED ESERCIZIO DEL SISTEMA INFORMATIVO PREVIDENZIALE DELL ENPALS

2. Ciclo di Vita e Processi di Sviluppo

ISO 14001:2015 Le nuove prospettive dei Sistemi di Gestione ambientali. Roma 22/10/15 Bollate 05/11/15

Diventa fondamentale che si verifichi una vera e propria rivoluzione copernicana, al fine di porre al centro il cliente e la sua piena soddisfazione.

IS Governance. Francesco Clabot Consulenza di processo.

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Distinguere tra bisogni di cura standard e individualizzati. Valutazione delle esigenze e traduzione di queste in azioni adeguate

THEME Matrice di Competenza - Meccatronica

La gestione della qualità nelle aziende aerospaziali

Scrum. Caratteristiche, Punti di forza, Limiti. versione del tutorial: Pag. 1

Coordinamento e comunicazione

Il modello di ottimizzazione SAM

OFFERTA FORMATIVA INDIRIZZI DI STUDIO

REFERENZIAZIONI 2001) NUP

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

COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING

Approfondimento. Controllo Interno

LA GESTIONE DELLE INFORMAZIONI IN AZIENDA: LA FUNZIONE SISTEMI INFORMATIVI 173 7/001.0

Il ruolo del fornitore di macchine nella manutenzione preventiva e calibrazioni. Dott. Marco Bellentani

Design for X. Evoluzione del processo progettuale e progettazione integrata di prodotto. Contenuti. Processo di progettazione e sviluppo prodotto

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

ascoltare ispirare e motivare miglioramento problem solving Flex360 pianificare comunicare la vision organizzare

UML - Unified Modeling Language

Ottava Edizione. La Programmazione e Controllo della Produzione Prof. Sergio Cavalieri

Corso di Basi di Dati e Conoscenza

A cura di Giorgio Mezzasalma

14 giugno 2013 COMPETENZE E QUALIFICHE DELL INSTALLATORE DI SISTEMI DI SICUREZZA. Ing. Antonio Avolio Consigliere AIPS All right reserved

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

PROXYMA Contrà San Silvestro, Vicenza Tel Fax

Транскрипт:

Laurea in Ingegneria Informatica! SAPIENZA Università di Roma! (sede di Rieti)! Progettazione del Software! A.A.2009/10! E.Casalicchio! http://www.ce.uniroma2.it/courses/psw 1 Introduzione al software engineering" L1.2" # Software! # Contesto organizzativo" # L$ingegneria del software" # Qualità" # Modularizzazione " # Principi di base dell$orientazione agli oggetti" 2

Il software" Cos$è" # Il prodotto che professionisti costruiscono e supportano nel lungo termine." # Programmi che vengono eseguiti su computer di ogni dimensione e architettura" # Contenuti e documenti" Chi lo fa" # Software engineers" # Ogniuno lo puo$ utilizzare direttamente ed indirettamente" Perchè è importante" # Influenza gli aspetti della nostra vita" # È pervasivo nel commercio, nella cultura e nella vita di tutti i giorni" 3 Il software" Quali sono i passi" # Applicazione di un processo agile and adaptable che porti ad un risultato di high quality che soddisfi le esigenze dell$utente finale." # ossia applicazione di un software engineering approach " Qual$è il prodotto finale - per il sw engineer " # Programmi, contenuti (dati) e documentazione ossia il software" Qual$è il prodotto finale - per l$utente finale" # Le informazioni risultanti " 4

Il software" Possibile definizione di software" Il software è: " 1.# Istruzioni (programmi per computer) che quando eseguite forniscono le funzionalità, le proprietà/caratteristiche e le prestazioni prestabilite;" 2.# Strutture dati mediante le quali i programmi trattano adeguatamente le informazioni" 3.# Documenti che descrivono le operazioni e l$uso dei programmi" 5 Perchè è diverso da altri prodotti (I)" Il software si sviluppa o si struttura ma non si fabbrica nel senso tradizionale" # Diversi problemi di qualità " # Produzione di HW e SW sono basate su processi profondamente diversi" # I costi del SW si concetrano nell$ingegnerizzazione" 6

Perchè è diverso da altri prodotti (II)" Il software non si consuma (failure rate HW vs SW)" La maggior parte del software viene realizzato in modo specifico e non mediante assemblaggio di componenti:" # Per alcuni settori le cose stanno cambiando " # Si va sempre più verso il service computing" 7 Classificazione del software" Rispetto agli obiettivi" Rispetto al flusso di controllo" Rispetto agli elementi di interesse primario" 8

Classificazione del software! Rispetto agli obiettivi" System software" # Programmi scritti per servire altri programmi" # Compilers, editors, file manager, OS, drivers, networking, " Application software" # Risolvono specifiche esigenze di lavoro" # Business oriented (gestionali, dss, elab. dati, controllo di processo)" # Controllo di business function in tempo reale (e.g. point-of-sale transaction processing)" Engineering/scientific software" # Calcolo intensivo" # Real time e event-based systems" 9 Classificazione del software! Rispetto agli obiettivi" Embedded software" # Controllo di prodotti e sistemi per il consumatore" # Dai forni a microonde alle automobili ed impianti industriali" Product-line software" # Per aumentare la produttività aziendale " # Funzionalità di massa o di nicchia" Web applications" # Un nuovo approccio di concepire l$architettare e la fruizione di applicazioni di ogni genere " Ubiquitus computing, " # Software che sfrutta la proprietà di full-distributed computing, ossia il calcolo distribuito su ogni genere di dispositivo di elaborazione" 10

Classificazione del software! Rispetto al flusso di controllo! Sequenziali: un unico flusso di controllo governa l$evoluzione dell'applicazione" Concorrenti: le varie attività necessitano di sincronizzazione e comunicazione " Composte da varie attività sequenziali che possono (e devono) essere sincronizzate al fine di garantire la correttezza" " "! corsi di Sistemi Operativi" Dipendenti dal tempo: esistono vincoli temporali riguardanti sia la velocità di esecuzione delle attività sia la necessità di sincronizzare le attività stesse" 11 Classificazione delle applicazioni Rispetto agli elementi di interesse primario! Orientate alla realizzazione di funzioni: la complessità prevalente del sistema riguarda le funzioni da realizzare" Orientate alla gestione dei dati: l$aspetto prevalente è rappresentato dai dati che vengono memorizzati, ricercati, e modificati, e che costituiscono il patrimonio informativo di una organizzazione" "! corso di Basi di Dati" Orientate al controllo: la complessità prevalente del sistema riguarda il controllo delle attività che si sincronizzano e cooperano durante l'evoluzione del sistema" "! ad es. corsi di Sistemi Operativi" 12

Applicazioni di interesse per questo corso" Sequenziali" Orientate alla realizzazione di funzioni" "Sono le applicazioni più tradizionali, e vengono spesso adottate come riferimento per i metodi e le tecniche di base per la progettazione" 13 Esercizio" Considerare i seguenti contesti applicativi:" 1.# sistema di controllo di una centrale nucleare" 2.# sistema di prenotazione dei voli di un aeroporto" 3.# risolutore di sistemi di equazioni" 4.# sistema di gestione di una banca dati" 5.# sistema operativo di un elaboratore elettronico" Per ciascuno di essi, fareste ricorso ad applicazioni! sequenziali, concorrenti o dipendenti dal tempo?! 14

Introduzione al software engineering" L1.2" # Software" # Contesto organizzativo! # Il processo del software" # Qualità" # Modularizzazione " # Principi di base dell$orientazione agli oggetti" 15 Il contesto organizzativo" Attori nella progettazione del software:" # Committente" # Esperti del domino" # Analista" # Progettista " # Programmatore " # Utente finale" # Manutentore" 16

Esercizio" Il Comune di XYZ intende automatizzare la gestione delle informazioni relative alle contravvenzioni elevate sul suo territorio. " In particolare, intende dotare ogni vigile di un dispositivo palmare che gli consenta di comunicare al sistema informatico il veicolo a cui è stata comminata la contravvenzione, il luogo in cui è stata elevata e la natura dell$infrazione." Il sistema informatico provvederà a notificare, tramite posta ordinaria, la contravvenzione al cittadino interessato." Il Comune bandisce una gara per la realizzazione e manutenzione del sistema, che viene vinta dalla Ditta ABC." Quali sono gli attori coinvolti in questa applicazione SW?! 17 Soluzione esercizio" Committente: Comune di XYZ" Esperto del domino: funzionario del Comune, o altro professionista designato, esperto del Codice della Strada" Utenti finali: vigili" Progettista " Analista" Programmatore" Manutentore" Personale " della " ditta ABC" 18

Introduzione all$ingegneria del software" L1.2" # Software" # Contesto organizzativo" # Il processo del software! # Qualità" # Modularizzazione " # Principi di base dell$orientazione agli oggetti" 19 Cos$è" Una visione generica di processo" # una serie di passi predicibili, una road map che aiuta nel creare risultati di elevata qualità e nei tempi attesi. " # questa road map è il software process " Chi lo fa" # software engineers e managers (adattamento alle esigenze del progetto)" # committente (definizione, costruzione e testing)" Perchè è importante" # fornisce: stabilità, controllo, organizzazione" # agile solo attività, controlli e documentazione appropriate" Quali sono i passi" # dipendono dal progetto" Quale è il risultato finale" # programmi, documenti e dati" 20

Software engineering definizioni" [Bauer %69] L$utilizzo e l$applicazione di sound engineering principles per ottenere, in maniera economicamente vantaggiosa, software affidabile ed efficiente, eseguibile su macchine reali." [IEEE %93] (1) l$applicazione di un approccio sistematico, disciplinato e quantificabile per lo sviluppo, l$operazione e la manutenzione del software. (2) lo studio degli approcci in (1)." sistamaticità e disciplina sono concetti che devono beneficiare di adattabilità e agilità! 21 Il concetto di processo di sviluppo" -#tiene insieme i livelli tecnologici " -#consente lo sviluppo razionale del sw entro i tempi previsti" -#definisce un framework per fornire sw engineering technologies" Supporto automatizzato, in tutto o in parte, ai metodi e processo" tools! Process model! Methods! a quality focus! Fasi tecniche relative alla costruzione del sw:" requirement analysis,design modeling, program construction, testing, support." organizzazione dedicata alla qualità" 22

Il concetto di process framework " 0. Software process" 0.1. Process framework" 0.1.2 Umbrella activities" 0.1.2.1 Framework activity" "0.1.2.1.1 Software engineering action" "... "" "0.1.2.1.k Software engineering action" 0.1.2.2 Framework activity" "0.1.2.2.1 Software engineering action"..."..." 0.1.2.n Framework activity" Attività trasversali applicabili durante tutta la durata del processo" set di task che producono un sw engineering work product (e.g. design)" (small number) applicabili a tutti i proggetti software indipendentemente dalla loro dimensione e complessità" 23 Process framework generico" Applicabile alla maggior parte dei progetti ed utile per descrivere la maggior parte dei modelli di processo" Umbrella activities" # software project tracking and control" # Risk management" # Software quality assurance" # Formal technical reviews" # Measurement" # Software configuration management" # Reusability management" # Work product preparation and production" 24

Communication" Framework activities" # Comunicazione e collaborazione con il cliente" Planning" # Descrive le operazioni che devono essere svolte, i rischi, le risorse, i prodotti, la pianificazione" Modeling" # Creazione di modelli x la comprensione dei requisiti sw e progettuali" Construction" # Generazione codice e testing" Deployment" # Distribuzione del sw" Umbrella activities" # software project tracking and control" # Risk management" # Software quality assurance" # Formal technical reviews" # Measurement" # Software configuration management" # Reusability management" # Work product preparation and production" 25 Umbrella activities" Software project tracking and control" # individuare possibili fattori antagonisti " # agire per mantenere lo schedule" Risk management" # individuare ed analizzare rischi che possono avere effetti negativi sul prodotto finale e/o sulla sua qualità" Software quality assurance" # definisce e conduce attività per assicurare la qualità del prodotto" Formal technical reviews" # revisione dei work products per individuare e rimuovere errori prima di che essi vengano propagati sulla successiva action o activity" Umbrella activities" # software project tracking and control" # Risk management" # Software quality assurance" # Formal technical reviews" # Measurement" # Software configuration management" # Reusability management" # Work product preparation and production" 26

Measurement" Umbrella activities" # raccoglie misure sul processo, sul progetto e sui prodotti" # misure utili per garantire che i requisiti siano soddisfatti" Software configuration management" # gestisce eventuali cambiamenti (nel processo) in corso d$opera" Reusability management" # definisce criteri per ottenere work product riutilizzabili" # inizia meccanismi per realizzare componenti riutilizzabili" Work product preparation and production" # attività per creare i work product documentali (modelli, documenti, log, form, list)" Umbrella activities" # software project tracking and control" # Risk management" # Software quality assurance" # Formal technical reviews" # Measurement" # Software configuration management" # Reusability management" # Work product preparation and production" 27 Software engineering actions" Communication" Planning" Modeling" Construction" Deployment" Studio di fattibilità e raccolta dei requisiti" Analisi dei requisiti" Progettazione e realizzazione" Verifica" Manutenzione" Ciclo di vita del software" 28

Software engineering tasks" 1.# Studio di fattibilità e raccolta dei requisiti" # valutare costi e benefici" # pianificare le attività e le risorse del progetto" # individuare l'ambiente di programmazione (hardware/software)" # raccogliere i requisiti" 2.# Analisi dei requisiti" # si occupa del cosa l$applicazione dovrà realizzare" # descrivere il dominio dell$applicazione e specificare le funzioni delle varie componenti: lo schema concettuale" 3.# Progetto e realizzazione" # si occupa del come l$applicazione dovrà realizzare le sue funzioni" # definire l'architettura del programma" # scegliere le strutture di rappresentazione " # scrivere il codice del programma e produrre la documentazione" 29 Ciclo di vita del software" 1.# Studio di fattibilità" 2.# Analisi dei requisiti" 3.# Progetto e realizzazione" 4.# Verifica" # Il programma svolge correttamente, completamente, efficientemente il compito per cui è stato sviluppato?" 5.# Manutenzione" # Controllo del programma durante l'esercizio" # Correzione e aggiornamento del programma" " " " "" 30

Personal Software Process (PSP)" Recommends five framework activities:" # Planning" # High-level design" # High-level design review" # Development" # Postmortem" stresses the need for each software engineer to identify errors early and as important, to understand the types of errors! These courseware materials are to be used in conjunction with Software Engineering: A Practitioner s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 31 Team Software Process (TSP)" Each project is launched using a script that defines the tasks to be accomplished" Teams are self-directed" Measurement is encouraged" Measures are analyzed with the intent of improving the team process" These courseware materials are to be used in conjunction with Software Engineering: A Practitioner s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 32

The Primary Goal of Any Software Process: High Quality" Remember:" High quality = project timeliness" Why?" Less rework!" These courseware materials are to be used in conjunction with Software Engineering: A Practitioner s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 33 Come organizzare, ossia quale deve essere la sequenza con cui vengono eseguite le framework activities, sw engineerig actions and tasks"?" 34

(prescriptive) Process models" Cos$è" # definiscono un set di attività, azioni, task, milestone e work product necessari a produrre high quality software" # Definisco la sequenza con cui vengono svolte le framework activities e le software engineering actions" Chi lo fa" # software engineers e managers (adattamento alle esigenze del progetto)" # committente" Perchè è importante" # fornisce: stabilità, controllo, organizzazione" # modelli prescrittivi sono rigorosi...ma vanno sempre adattati" Quali sono i passi" # un insieme di attività organizzate un un process flow che può essere lineare, incrementale, evolutivo" Quale è il risultato" # programmi, documenti e dati" 35 Modelli di processo Prescrittivi" Lineari" # the waterfall model" # the incremental model & RAD model" Evolutivi" # the prototype model" # the spiral model" The unified process" Ci dicono come vengono organizzate le fasi del processo/ciclo di vita " 36

The Waterfall Model" Communication project initiation requirement gathering Planning estimating scheduling tracking Modeling analysis design Construction code test Deployment delivery support feedback These courseware materials are to be used in conjunction with Software Engineering: A Practitioner s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 37 The Incremental Model" increment # n Co m m u n i c a t i o n P l a n n i n g M o d e l i n g analysis design Co n s t ru c t i o n code test De p l o y m e n t d e l i v e ry fe e d b a c k increment # 2 delivery of nth increment Co m m u n i c a t i o n P l a n n i n g increment # 1 M o d e l i n g analysis design Co n s t ru c t i o n code test De p l o y m e n t d e l i v e ry fe e d b a c k delivery of 2nd increment Co m m u n i c a t i o n P l a n n i n g M o d e l i n g analysis design Co n s t ru c t i o n code test De p l o y m e n t d e l i v e ry fe e d b a c k delivery of 1st increment project calendar time These courseware materials are to be used in conjunction with Software Engineering: A Practitioner s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 38

The RAD Model" Team # n Mo d e lin g business modeling data modeling process modeling Com munication Team # 2 Mo d el i ng business modeling data modeling process modeling Co n st ru ct io n component reuse automatic code generation testing P lan n in g Team # 1 M ode lin g business modeling data modeling process modeling Co nstructi o n component reuse automatic code generation testing De ploym e n t integration delivery feedback Con stru ction component reuse automatic code generation testing 60-90 days These courseware materials are to be used in conjunction with Software Engineering: A Practitioner s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 39 Evolutionary Models: Prototyping" Com munication Q u ick p lan Mo d e lin g Quick desig n Deployment De live ry & Fe e dback Con stru ction of prototype These courseware materials are to be used in conjunction with Software Engineering: A Practitioner s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 40

Evolutionary Models: The Spiral" communication planning estimation scheduling risk analysis start modeling analysis design deployment delivery feedback construction code test These courseware materials are to be used in conjunction with Software Engineering: A Practitioner s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 41 Still Other Process Models" Component based development" # the process to apply when reuse is a development objective" Formal methods" # emphasizes the mathematical specification of requirements" AOSD" # provides a process and methodological approach for defining, specifying, designing, and constructing aspects" Unified Process" # a use-case driven, architecture-centric, iterative and incremental software process closely aligned with the Unified Modeling Language (UML)" These courseware materials are to be used in conjunction with Software Engineering: A Practitioner s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 42

The Unified Process (UP)! Riconosce l$importanza della comunicazione con il cliente e dell$adozione di metodi lineari per descrivere il punto di vista del cliente nei confronti del sistema (es. use case)" Pone l$accento sul ruolo dell$architettura del software:" # Comprensibilità" # Adattabilità a successive modifiche" # Riuso" Suggerisce un flusso iterativo e incrementale, con un andamento evolutivo fondamentale per le moderne attività di sviluppo software" I methods su cui si basa il UP sono UML e OOP! tools! UML, OOP,! The unified process! a quality focus! 43 The Unified Process (UP)" Elabor elaboration" ation inception" Incep tion inception" constr uction Release software increment tr ansition prod uction These courseware materials are to be used in conjunction with Software Engineering: A Practitioner s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 44

Le fasi del processo unificato" Si passa da una fase all$altra solo se lo stato di avanzamento è sufficiente e l$analisi dei rischi è soddisfacente." Inception (Comunication and planning)! # Use case" # Architettura grezza " # Identificazione di risorse, rischi, schedule " Elaboration (Comunicazione, pianificazione e modellazione)! # Espanzione use case, architettura" # Realizzazione di 5 viste distinte: use case, modello analitico, modello di progettazione, modello implementativo e modello di deployment" # (optional) prototipo eseguibile" Construction! Transition! # Distribuzione versione beta," # Monitoraggio" # Preparazione supporto (manuali)" 45 UP Phases" Workflows UP Phases Inception Elaboration Construction Transition Production Requirements Analysis Design Implementation Test Support Iterations #1 #2 #n-1 #n These courseware materials are to be used in conjunction with Software Engineering: A Practitioner s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 46

UP Work Products" Inception phase Vision document Initial use-case model Initial project glossary Initial business case Initial risk assessment. Project plan, phases and iterations. Business model, if necessary. One or more prototypes Inceptio n Elaboration phase Use-case model Supplementary requirements including non-functional Analysis model Software architecture Description. Executable architectural prototype. Preliminary design model Revised risk list Project plan including iteration plan adapted workflows milestones technical work products Preliminary user manual Construction phase Design model Software components Integrated software increment Test plan and procedure Test cases Support documentation user manuals installation manuals description of current increment Transition phase Delivered software increment Beta test reports General user feedback These courseware materials are to be used in conjunction with Software Engineering: A Practitioner s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 47