Modelli di Processo di Sviluppo del Software
Transcript
Modelli di Processo di Sviluppo del Software
Modelli di Processo www.vincenzocalabro.it 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 modello del processo: infatti, il modello del processo dovrebbe essere scelto in funzione del (tipo di) software da sviluppare ovvero in funzione delle caratteristiche di ciò che si chiama progetto Quale posizione occupano nella Ingegneria del Software e come si presentano i modelli di processo ? 2 www.vincenzocalabro.it Modello del Processo Il modello di processo descrive l’idea di fondo alla base dello sviluppo di un determinato software in un determinato progetto Una metodologia segue un modello di processo, definendo in modo più preciso come le attività devono essere svolte, quali metodi e strumenti sono impiegati e cosa deve essere prodotto Il progetto indica anche i tempi ed i costi delle attività che devono essere svolti, la loro esatta sequenza temporale, con eventuali punti di controllo (milestones) e il personale (risorse) da impiegare Il modello di processo da un’idea della sequenza in cui certe attività generiche possono svolgersi Tali attività sono attività generiche e difficilmente standardizzabili nei loro dettagli Un modello di processo può leggersi attraverso diverse attività generiche a seconda di cosa si vuole mettere in evidenza 3 www.vincenzocalabro.it Posizione del Modello di Processo Tools (Strumenti) Practiche & Principi methods and methodologies (metodi e metodologie) process models (modelli di processo) a “quality” focus (obiettivo qualità) 4 www.vincenzocalabro.it L’obiettivo primario di ogni Modello di Processo: Alta Qualità Ricordare: Alta qualità (*) = rispetto dei tempi Perché? Meno rilavorazione! (*) Alta qualità nel rispetto di tempi e costi www.vincenzocalabro.it 5 progetto A Process Framework Process framework (struttura del processo) Umbrella Activities (attività ombrello) Framework activities (attività strutturali) work tasks (compiti) work products (prodotti) milestones & deliverables (pietre miliari e “deliverables”) quality assurance checkpoints (punti di valutazione della qualità) 6 www.vincenzocalabro.it Modello del Processo: Adattabilità Le attività strutturali possono essere applicate a qualunque progetto-software (di un certo tipo) MA I compiti (quanto e quali devono essere descritti) relativi alla singola attività varia: In funzione del tipo di progetto-software Le caratteristiche del progetto-software 7 www.vincenzocalabro.it Sviluppo e messa in esercizio ma né esercizio né manutazine Attività strutturali comuni a tutti i modelli di processo Communication (Comunicazioni) Planning (Pianificazione) Modeling (Modellazione) Analysis of requirements (Analisi dei requisiti) Design (Progettazione) Construction (Costruzione) Code generation (Generazione del codice) Testing (Collaudo) Deployment (Dispiegamento) Lo studio di fattibilità può essere o menowww.vincenzocalabro.it parte di tali attività 8 Attività ombrello comuni Software project management Formal technical reviews Software quality assurance Software configuration management Work product preparation and production Reusability management Measurement Risk management 9 www.vincenzocalabro.it Le caratteristiche dei modelli prescrittivi I modelli prescrittivi indicano cosa dovrebbe essere fatto per lo sviluppo del software Ma ciò può rivelarsi inappropriato poiché …i requisiti per loro natura possono modificarsi e le tecnologie evolvono (Modelli Agili) Ma la coordinazione è un obiettivo irrinunciabile dell’Ingegneria dei Software (Modelli Ibridi) 10 www.vincenzocalabro.it Il Modello a Cascata (Waterfall) Customer request Communicat ion proje c t init ia t ion re quire me nt gat he ring Planning estimating Modeling scheduling analysis Const ruct ion tracking design code t est Deployment de live ry s upport f e e dba c k 11 www.vincenzocalabro.it Il Modello Incrementale (Incremental Delivery) increment # n Co m m u n i c a t i o n Pla nni ng Modeling anal ys is desi gn Co n s t ru c t i o n c ode t es t De p l o y m e n t d e l i v e ry feedback delivery of nt h increment increment # 2 Co m m u n i c a t i o n Pla nni ng Modeling analy s is des ign Co n s t ru c t i o n c ode De p l o y m e n t t est d e l i v e ry feedback increment # 1 delivery of 2nd increment Co m m u n i c a t i o n Pl a nning M odeling anal ys is desi gn Co n s t ru c t i o n c ode De p l o y m e n t t est d e l i v e ry feedback delivery of 1st increment project calendar time software requirements can be well defined once or in several future runs! Priority-driven www.vincenzocalabro.it 12 RAD Model Team # n Mo d e lin g business modeling data modeling process modeling Co n st ru ct io n component reuse automatic code generation testing Team # 2 Communicat ion Modeling business modeling dat a modeling process modeling Planning Const ruct ion Team # 1 component reuse aut omat ic code generat ion t est ing Modeling Deployment int egrat ion delivery feedback business modeling dat a modeling process modeling Const ruct ion component reuse aut omat ic code generat ion t est ing 60 - 90 days 13 www.vincenzocalabro.it Modelli evolutivi: il Prototyping Q u i cQuick k p lan Co m m u n ic a t io n plan Communication M o Modeling d e lin g Q u i cdesign k d e sig n Quick De p lo ym e n t Deployment Ddelivery e liv e r y& & feedback Fe e d b a c k Co n s t r u c t io n Construction of of prototype p r o t o t yp e software requirements are subject to change, so multiple iterations are needed! www.vincenzocalabro.it 14 Ruolo dei prototipi nei modelli evolutivi Throw-away prototype (usa e getta, quick&dirty): orientato a determinare i requisiti di aspetti meno chiari del software da sviluppare Evolutionary prototype: orientato a realizzare i requisiti più chiari e stabili; anche in questo caso di può parlare di modello incrementale 15 www.vincenzocalabro.it Modelli evolutivi: The Spiral planning estimation scheduling risk analysis communication modeling analysis design start deployment delivery feedback construction code test Risks are the primary driver for iterations! www.vincenzocalabro.it 16 Una versione più dettagliata di Spiral Deter mine objecti ves, alternatives and constr aints Evaluate alternatives, identify, resolve risks Risk analysis Risk analysis Risk analysis REVIEW Requirements plan Life-cycle plan Plan next phase Operational protoype Prototype 3 Prototype 2 Risk analysis Prototype 1 Simulations, models, benchmar ks Concept of Oper ation S/W requirements Development plan Requirement validation Integration and test plan Design V&V Acceptance test Service www.vincenzocalabro.it Product design Detailed design Code Unit test Integration test Develop , verify next-level product 17 Modelli evolutivi: Concorrente none M o d e lin g a c t iv it y r ep r es ent s t he s t at e o f a s o f t w ar e eng ineer ing ac t iv it y o r t as k Under d e v e lo p m e n t A w a it in g changes U n d e r r e v ie w Under r e v is io n B a s e lin e d Done 18 www.vincenzocalabro.it Altri modelli di processo Component based development (CBSE)—il riuso di COTS e di altre componenti disponibili è l’obiettivo principale; l’integrazione e l’interoperabilità, oltre al riuso, costituiscono le principali strategie Formal methods—la specifica dei requisiti e la specifica del software e delle sue architetture sono basate su linguaggi formali, le trasformazioni e i raffinamenti costituiscono le principali strategie AOSD—suddivide il sofware da sviluppare in Aspetti per ciascuno dei quali si portano avanti la specifica dei requisiti e la successiva specifica del software Unified Process—a “use-case driven, architecturecentric, iterative and incremental” allineato con l’uso dello Unified Modeling Language (UML) 19 www.vincenzocalabro.it UP e Modelli Evolutivi Elab o r at io n Incep t io n inception inception co nst r uct io n Release t r ansit io n soft ware increment 20 p r o d uct io n www.vincenzocalabro.it Fasi in UP e attività generiche UP Phases Inception Elaboration Construction Transition Production Workflows Communication Analysis Design Implementation Test Support Iterations #1 #2 #n-1 #n 21 www.vincenzocalabro.it Grazie per l’attenzione www.vincenzocalabro.it