Corso di Ingegneria del Software a.a. 2009/2010 push0 g 0...

19
Corso di Ingegneria del Software a.a. 2009/2010 Modelli di produzione del software Corso di Ingegneria del Software a.a. 2009/2010 Modelli di produzione del software Mario Vacca [email protected]

Transcript of Corso di Ingegneria del Software a.a. 2009/2010 push0 g 0...

Corso di Ingegneria del Software a.a. 2009/2010 Modelli di produzione del software

Corso di Ingegneria del Softwarea.a. 2009/2010

Modelli di produzione del software

Mario Vacca

[email protected]

Corso di Ingegneria del Software a.a. 2009/2010 Modelli di produzione del software

Il modello a spirale

A risk driven model

Il modello a spirale, a differenza degli altri, tiene conto dei rischi.Il modello a spirale e guidato dai rischi - Il modello a cascata eguidato dalla documentazione.

Il rischio e un evento imprevisto che puo causare problemi o difficolta.Esempio: Stiamo usando un compilatore per un nuovo linguaggio. C’e ilrischio che il compilatore sia difettoso.I rischi sono conseguenza di informazioni insufficienti. Si risolvonoacquisendo maggiori informazioni per ridurre l’incertezza

Corso di Ingegneria del Software a.a. 2009/2010 Modelli di produzione del software

Il modello a spirale

A risk driven model

Il modello a spirale, a differenza degli altri, tiene conto dei rischi.Il modello a spirale e guidato dai rischi - Il modello a cascata eguidato dalla documentazione.

Il rischio e un evento imprevisto che puo causare problemi o difficolta.Esempio: Stiamo usando un compilatore per un nuovo linguaggio. C’e ilrischio che il compilatore sia difettoso.I rischi sono conseguenza di informazioni insufficienti. Si risolvonoacquisendo maggiori informazioni per ridurre l’incertezza

Corso di Ingegneria del Software a.a. 2009/2010 Modelli di produzione del software

Il modello a spirale

The top ten risks 1/2

I Personnel Shortfalls

Staffing with top talent; job matching; team-building; morale building;cross-training; pre-scheduling key people.

I Unrealistic Schedules and Budgets

Detailed, multi-source cost & schedule estimation; design to cost; incrementaldevelopment; software reuse; req. scrubbing.

I Developing the wrong software functions

Organizational analysis; mission analysis; operational concept formulation; usersurveys; prototyping; early users’ manuals.

I Developing the wrong user interface

Prototyping; scenarios; task analysis.

I Gold-plating

Requirements scrubbing; prototyping; cost-benefit analysis; design to cost

Barry W. Boehm: A Spiral Model of Software Development and Enhancement. IEEE Computer

21(5), (1988), pag. 70.

Corso di Ingegneria del Software a.a. 2009/2010 Modelli di produzione del software

Il modello a spirale

The top ten risks 2/2

I Continuing stream of requirements changes

High change threshold; information-hiding; incremental development (deferchanges to later increments).

I Shortfalls in externally-furnished components

Benchmarking; inspections; reference checking; compatibility analysis.

I Shortfalls in externally-performed tasks

Reference-checking; pre-award audits; award-fee contracts; competitive design orprototyping; team-building.

I Real-time performance shortfalls

Simulation; benchmarking; modeling; prototyping; instrumentation; tuning.

I Straining computer science capabilities

Technical analysis; cost-benefit analysis; prototyping; ref. checking.

Barry W. Boehm: A Spiral Model of Software Development and Enhancement. IEEE Computer

21(5), (1988), pag. 70.

Corso di Ingegneria del Software a.a. 2009/2010 Modelli di produzione del software

Modelli evolutiviIl modello a spirale - Esempio - (TRW-SPS)

Round 0: Feasibility study – Very Basic.I Objectives: Significantly increase software productivity.

I Constraints: Costs; within context of TRW culture.

I Alternatives:

Change in management (project organization, policy)

Change in personnel (incentives, training)

Change in technology (tools, workstations, method, reuse)

Change in facilities (offices, communication)

I Risks: May be no high-leverage improvements.

I Risk resolution: Internal surveys, cost models,literature search

I Risk resolution results: Some alternatives infeasible (single maxi-computersecurity); significant gains can result (double in 5 yers).

I Plan for next phase: 6 part-time for 6 months (12MM); more analysis; developoperations.

I Commitment: Fund next phase.

Corso di Ingegneria del Software a.a. 2009/2010 Modelli di produzione del software

Il modello a spirale

Esempio - (TRW-SPS)

Round 1: Concept of Operations – More detailI Objectives: Double software productivity in 5 years

I Constraints: $10,000 per person investment; preference for TRW products(LAN).

I Alternatives: Change in office, communication, terminals, tools, CPU.

I Risks: May miss high-leverage options, LAN price/performance, workstationcosts.

I Risk resolution: Extensive surveys, LAN benchmarking, workstation pricing.

I Risk resolution results: Operations concept: private offices, TRW LAN, privateterminals, VAX, defer OS/tools selection.

I Plan for next phase: Partition effort into SDE (Software DevelopmentEnvironment), facilities, and management; develop prototype SDE.

I Commitment Develop SDE, and use it. Form a representative steering group.

Corso di Ingegneria del Software a.a. 2009/2010 Modelli di produzione del software

Il modello a spirale

Esempio - (TRW-SPS)

Round 2: Top-level requirements spec. – More detail yetI Objectives: User-friendly system; integrated tools; project and personnel support.

I Constraints: Customer-deliverable SDE, reliability.

I Alternatives: Change in OS, host target, workstations.

I Risks: Mismatch needs and priorities, user-unfriendly system, Unix performance,workstation compatibility.

I Risk resolution: Survey of Unix-using organizations; workstation study.

I Risk resolution results: Use Unix based interfaces; use tools to support earlyphases.

I Plan for next phase: Tools: SREM (Software Requirements EngineeringMethodology), RTT (Requirements Traceability Tool), PDL (Ada ProgramDesign Language); front end: support tools; LAN: equipment, facilities.

I Commitment: Proceed with plans.

Corso di Ingegneria del Software a.a. 2009/2010 Modelli di produzione del software

Il modello a spirale

Vantaggi e risultati

I Realistico per sistemi software di grandi dimensioni

I Il software cresce di pari passo con il processo e quindi cliente esviluppatore possono meglio valutare i rischi e reagire

I Usa la prototipizzazione (ad ogni stadio) per minimizzare i rischi

I La strategia a passi del modello a cascata e integrata in un processoiterativo che la rendono piu realistica

I Esige la vautazione dei rischi tecnici ad ogni stadio del progetto

Corso di Ingegneria del Software a.a. 2009/2010 Modelli di produzione del software

Il modello a spirale

Il modello a spirale - Svantaggi

I Applicazione problematica se il budget e fisso(E necessario riconsiderare i costi ad ogni evoluzione della spirale)

I Richiede competenze per la valutazione dei rischi

Corso di Ingegneria del Software a.a. 2009/2010 Modelli di produzione del software

Comparazione dei modelli

Modelli di produzione del software

Sommario

1. Concetti di base

2. Modelli del ciclo vita del software

2.1 Modello a cascata2.2 Modelli incrementali2.3 Modelli evolutivi2.4 Comparazione dei modelli

2.5 Modelli agili

3. Il processo di produzione del software

4. Bibliografia

Corso di Ingegneria del Software a.a. 2009/2010 Modelli di produzione del software

Comparazione dei modelli

Comparazione dei modelli

I Modello a cascataRischioso per sviluppare sistemi su cui non si hanno buonecompetenze sul dominio applicativo e di business.Basso rischio per sviluppare sistemi su cui si hanno conoscenzepregresse sufficienti.

I Modello incrementale/prototipalePoco rischioso per sviluppare nuovi sistemi.Altamente rischioso se richiesto un forte controllo del processo (eantieconomico documentare eccessivamente le attivita svolte a causadella loro dinamicita).

Corso di Ingegneria del Software a.a. 2009/2010 Modelli di produzione del software

Comparazione dei modelli

Comparazione dei modelli

Quale processo di sviluppo seguire?

Il processo che si adotta dipende dal software che si sta realizzando

Corso di Ingegneria del Software a.a. 2009/2010 Modelli di produzione del software

Comparazione dei modelli

Comparazione dei modelliCome selezionare un modello

I Tolleranza del modello ai rischi del progetto.

I Livello di conoscenza del SLC da parte dei tecnici.

I Grado di stabilita dei requisiti e probabilita che ulteriori requisiti siaggiungano in corso d’opera.

I Budget e limiti di tempo, grado di flessibilita concesso allapianificazione.

I Compatibilita del modello con la organizzazione della societa.

I Disponibilita di tools a supporto del modello.

I Esperienze pregresse del management nel gestire il modelloorganizzativo.

I Considerare la frequenza dei change

I La frequenza delle richieste di modifica (ai requisiti, alle specifiche) euno dei driver da usare per scegliere quale modello di sviluppo usarein un progetto.

Corso di Ingegneria del Software a.a. 2009/2010 Modelli di produzione del software

Comparazione dei modelli

Comparazione dei modelli

Cascata

Incrementale

Prototipo

Spirale

RAD

Complessità del progetto

media

alta

media

alta

media

Comprensione dei requisiti

specifica

specifica/

vaga

vaga

vaga

specifica

Volatilità dei requisiti

bassa

bassa

alta

media

bassa

Tecnologia del prodotto

esistente

esistente/

nuova

nuova

nuova

nuova

Risk management

no

no

si

si

no

Schedule constraints

medi

alti

bassi/medi

medi

alti

Conoscenza del dominio del problema

alta

media/

alta

bassa

bassa

alta

Corso di Ingegneria del Software a.a. 2009/2010 Modelli di produzione del software

Comparazione dei modelli

Modelli di produzione del software

Sommario

1. Concetti di base

2. Modelli di produzione del software

2.1 Modello a cascata2.2 Modelli incrementali2.3 Modelli evolutivi2.4 Comparazione dei modelli2.5 Modelli agili

3. Il processo di produzione del software

4. Bibliografia

Corso di Ingegneria del Software a.a. 2009/2010 Modelli di produzione del software

Bibliografia

Modelli di produzione del software

Sommario

1. Concetti di base

2. Modelli del ciclo vita del software

2.1 Modello a cascata2.2 Modelli incrementali2.3 Modelli evolutivi2.4 Comparazione dei modelli2.5 Modelli agili

3. Bibliografia

Corso di Ingegneria del Software a.a. 2009/2010 Modelli di produzione del software

Bibliografia

Bibliografia

Riferimenti bibliografici - Generali

1. R. Pressman “Ingegneria del software” Mc Graw Hill Italia, 5aedizione, 2007, capitoli 3 (par. 3.3 e 3.4)

2. P. Jalote “A Concise Introduction to Software Engineering”Springer, 2008, capitolo 2.

Corso di Ingegneria del Software a.a. 2009/2010 Modelli di produzione del software

Bibliografia

Bibliografia

Riferimenti bibliografici - Specifici

1. Barry W. Boehm “A Spiral Model of Software Development andEnhancement” IEEE Computer 21(5), p. 61-72, 1988.

2. Barry W. Boehm, J. F. Elwell, A. B. Pyster, E. Don Stuckle, R. D.Williams: The TRW Software Productivity System. ICSE 1982:148-156

3. C. Larman, V. R. Basili “Iterative and Incremental Development: ABrief History.” IEEE Computer 36(6): 47-56, 2003.