Il processo di sviluppo
del software
Dr. Dario Di Bella
OST S.r.l. Organizzazione Sistemi Tecnologie
Via T. Aspetti 157 - 35134 Padova
Tel.
049-609078
e-mail: [email protected]
web:
http://www.ost.it
 OST
Ingegneria del software
 Che
cos’è il software?
 Una
creazione artistica?
 Un prodotto industriale
 Alcuni
attributi del software
 pervasività
 immaterialità
 complessità
 La
crescita della domanda del software
 incremento
annuale (a livello mondiale) 12%
 incremento annuale del numero degli addetti 4%
 OST
Software come prodotto industriale
 Caratteristiche




Requisiti forniti da terze parti
Numero elevato di funzionalità
Sviluppo in team
Integrazione
Aree del Project Management
Scope
Communication
Cost
 Rischi




 OST
Instabilità dei requisiti
Dominio del problema
Tempi ridotti
Evoluzione tecnologica
Time
Human Resources
Modelli di processo
 Il
processo di sviluppo a “Cascata”
Analysis
Design
Development
Test
 OST
Modelli di processo
 Modello
 La
a cascata “ricorsivo” (B model - V model)
ricorsività è spesso imposta dagli eventi:
in particolare dall’instabilità dei requisiti
 dagli errori e dalle omissioni
 da una precisa scelta metodologica

Analysis
Design
Development
Test
 OST
Modelli di processo
 Il
processo di sviluppo a “Spirale”
Test
Analysis
Deploy
Unit
Requirements
Test
Subsystem
Requirement
Evaluation
Evaluation
Risk
Analysis
Proof of
Concept
First
Build
Second
Build
Development
Final
Build
 OST
System
Requirement
Business
Requirements
Conceptual
Design
Logical
Design
Physical
Design
Design
Final
Design
Modelli di processo
 Il processo di sviluppo “Extreme Programming”
(derivato da Rapid Prototyping [Rad])
 OST
Development
Analysis
Test
Design
Modelli di processo
 Il
processo di sviluppo “Problem Solving” (Controlled iteration)
Analysis
Analysis
Analysis
Design
Design
Analysis
Development
Design
Development
Design
Test
Development
Development
 OST
Test
Test
Test
Concept
Design
Execution
Release
Analysis
 Scoping:
modello degli attori
Acquirente
Sistema da realizzare
Agente
Database Amministrazione
Amministratore Sistema
Attore: persona o macchina che interagisce con il sistema da realizzare
 OST
Analysis
 Scoping:
diagramma degli use-case
Attore
Use case
Use case: sequenza di interazioni tra attore e sistema al fine di realizzare
un obiettivo funzionale (funzionalità)
Sistema da
realizzare
Attore 1
Attore 2
Use Case 1.1
Use Case 2.1
Use Case 1.2
Use Case 2.2
Use Case 2.3
 OST
Attore 3
Use Case 3.1
Design
 Architettura:
Organizzazione MVC (Model-View-Control)
Livello delle viste
 OST
Maschere
Interfacce
Forms
Dialogo con utente
Livello dei controlli
Moduli comunicazione viste-dati
Utilità di calcolo
Livello del modello dei dati
Moduli per il trasporto dei dati
Livello dei dati
Tabelle
File
Design
 Architettura:
Logical View
Pannello comandi
click
Attore
beginFunc
Carica dati
Dato
Maschera visualizzazione
requestData
getData
displayData
Diagramma di sequenza di un use-case
Viste
Controlli
Attore
Use case
Modelli di dati
Dati
 OST
Design
 Architettura:
Meccanismi chiave
Insieme di funzionalità del sistema non definite dagli use case.
Provengono da:


Requisiti di sistema
Esigenze implicite del sistema
Esempi






 OST
Meccanismo di identificazione
Stile dell’interfaccia grafica
Gestione della concorrenza
Multilinguaggio
Organizzazione della comunicazione
Gestione degli errori
Design
 Architettura:
WBS
Architettura
Meccanismi
chiave
Viste
Controlli
Concorrenza
Multilingua
Package 1
Use Case 1
Vista 1
Use Case 2
Vista 1
Tabella 1
Package 2
Package 3
Tabella N
Vista 2
Vista N
 OST
Dati
Test
 Livelli




di testing
User Test
System Test
Integration Test
Beta Test
 System
Attore
test
Use case
{ Scenari }
Scenario:possibile implementazione di un use-case
 OST
Test
 Gestione
delle release
Nuove
Funzionalità
System Test
Bug Fixing
Integration
Test
Nuova
Release
Segnalazioni
Utente
 Regressione

Quando durante la correzione di un errore si introducono nuovi errori
Moduli
corretti
Logical View
 OST
Integration
Test
Elenco
moduli
dipendenti
Regression
Test
Nuova
Release
Gestione delle modifiche
 Un prodotto software è il tipo prodotto più soggetto alle richieste
di modifica
Motivazioni:




Immaterialità del software
Scarsa conoscenza del dominio del problema
Finché non vedo non credo, non so
Nuove idee fornite proprio dalla soluzione software
Trattamento delle richieste di modifica




 OST
Metodo preventivo: ottenere il maggior numero di agreement sul prodotto durante la fase
iniziale di analisi
Valutare sia il costo di realizzazione che il costo di impatto sul già fatto durante le
successive fasi
Valutare l’impatto sui tempi di progetto e sulle risorse di progetto
Durante la fase di sviluppo, rinviare ad un altro progetto di realizzazione tutte le richieste
di modifica che hanno impatto sull’architettura
Documentazione del software
Tipi di documentazione
 Documentazione di analisi
Destinata al committente e all’architetto software
Utilizzare strumenti e notazioni con forte impatto visivo e significato chiaro anche per un
non esperto del software
Deve descrivere lo scope di progetto chiaramente e completamente
Base degli accordi contrattuali
 Documentazione
di design e realizzazione
Destinata al team di progetto
Utilizzare strumenti e notazioni tecniche precise e non ambigue
Riferire sempre i documenti di analisi
Documentare il più possibile
Automatizzare
Divulgare la documentazione
 OST
Motivi di insuccesso
Principali motivi di insuccesso di un progetto software:
 Scarsa conoscenza del dominio del problema
 Accordi contrattuali non chiari
 Analisi non eseguita
 Completare l’analisi prima di iniziare
 Tempi di realizzazione eccessivamente ridotti
 Non attenta valutazione dei tempi e dei sovraccarichi sulle risorse
 Scarsa comunicazione nel team di progetto
 Inadeguatezza tecnologica
 Isteresi tecnologica
 Documentazione insufficiente
 Impossibilità di assicurare la manutenzione del prodotto realizzato
 Inadeguatezza del prodotto al dominio del problema
 OST
Strumenti
 Microsoft
Project
 UML based (Rational Rose)
 Soluzione OST:
 Pianificazione
e schedulazione
 Gestione risorse di progetto
 Gestione margini a partire dai
rischi di progetto
 Comunicazione tra gli
stakeholder
 Gestione documenti e workflow
Disponibilità in OST per tesi e stage post laurea su:
 Project Management
 Process Management
 Documentation Management
 Strumenti software per il Project Management e per il Documentation Management
 OST
Bibliografia
Software Engineer:
 M.R. Cantor, “Object-Oriented Project Management with UML”, Wiley Computer
Publishing, 1998
Extreme Programming:
 http://www.extremeprogramming.org
 K. Beck, “Extreme Programming Explained: Embrace Change”, Addison-Wesley, 1999
OO e UML:
 G. Booch, “Object-Oriented Analysis and Design”, Addison-Wesley, 1994
 M. Fowler, K. Scott, “UML Distilled, Second Edition”, Addison-Wesley, 2000
Modello MVC:
 http://ootips.org/mvc-pattern.html
 E. Gamma et al., “Design Patterns”, Addison-Wesley, 1995
 F. Bushmann, “Pattern Oriented Software Architecture”, Wiley Computer Publishing, 1996
 OST
Scarica

Document