Esplora E-book
Categorie
Esplora Audiolibri
Categorie
Esplora Riviste
Categorie
Esplora Documenti
Categorie
Riferimenti bibliografici
I. Sommerville Ingegneria del Software 8a edizione Cap.1 R. Pressman- Principi di Ingegneria del Software- 4 edizione- Cap. 1, 2, 3 F.P. Brooks, No Silver Bullet: Essence and Accidents of Software Engineering, 2003. Reperibile allindirizzo: http://www.lips.utexas.edu/ee382c15005/Readings/Readings1/05-Broo87.pdf
Sommario
1. Concetti di base sul Software ed Ingegneria del Software 2. Il Ciclo di Vita del Software e le sue attivit fondamentali 3. Panoramica sui Modelli di Processo Software fondamentali
10
11
12
13
14
15
16
18
Specification
Design
Development
Specification
System testing
100
Specification
Development
ems 30 400
System development
System evolution
19
25
50
75
100
Specification
Development
System testing
20
10
21
22
11
Consegna
Fiducia
12
25
13
No Silver Bullet
Brooks in un articolo storico del 1987 afferma che non esiste (e non potr mai esistere) alcun Silver Bullet (pallottola dargento) che possa risolvere tutti i problemi dellIngegneria del Software. I problemi derivano da quelle che Brooks definisce Difficolt Essenziali ed Accidentali nel software
28
14
Essential difficulties
Complexity: il software deve modellare e controllare problemi complessi Conformity: la complessit del software deriva dalla sua necessit di sottostare ad un insieme di regole/ interfacce poco chiare, perch dettate da persone diverse (piuttosto che da un elegante modello fisico e matematico). Changeability: i requisiti del software variano molto velocemente, gi al tempo stesso di sviluppo Invisibility: il software invisibile e non visualizzabile: ci rende difficile mantenerne una vista complessiva
http://www.lips.utexas.edu/ee382c -15005/Readings/Readings1/05-Broo87.pdf
30
15
Speranze passate
Linguaggi di programmazione di moderna concezione (es. Ada) Programmazione object oriented Intelligenza artificiale e sistemi esperti Generatori di codice Programmazione grafica Tecniche di testing Ambienti di sviluppo integrati
http://www.lips.utexas.edu/ee382c -15005/Readings/Readings1/05-Broo87.pdf
31
http://www.lips.utexas.edu/ee382c -15005/Readings/Readings1/05-Broo87.pdf
32
16
33
34
17
Standard IEEE 610.12-1990 Software Development Cycle : (1) The period of time that begins
with the decision to develop a software product and ends when the product is delivered. This cycle typically includes a requirements phase, design phase, implementation phase, test phase, and sometimes, installation and checkout phase. Contrast with Software Life Cycle. Notes: The phases listed above may overlap or be performed iteratively, depending upon the software development approach used. (2) This term is sometimes used to mean a longer period of time, either the period that ends when the software is no longer being enhanced by the developer, or the entire software life cycle
35
Software Life Cycle: a framework containing the processes, activities,and tasks in the development, operation and maintenance of a software product, spanning the life of the system from the definition of its requirements to the termination of its use
36
18
Processo Software:
Un insieme strutturato di attivit necessarie per lo sviluppo di un sistema software.
Specifica; Progettazione (o Design); Validazione; Evoluzione
37
38
19
40
20
41
42
21
Progettazione ed Implementazione
Processo che converte la specifica del sistema in un sistema eseguibile. Progettazione Software
Progettare una struttura software che realizza le specifiche; Tradurre la struttura in un codice eseguibile; Progettazione ed implementazione sono attivit strettamente correlate, non necessariamente sequenziali, ma che possono intrecciarsi.
Implementazione
43
Progetto dellArchitettura Specifica Astratta Progetto dellInterfaccia Progetto dei Componenti Progetto delle strutture dati Progetto degli algoritmi
44
22
Il processo di progettazione
Requirements specifica tion Design activities Ar chitectural design Abstract specifica tion Interface design Component design Data structure design Algorithm design
System architecture
Component specification
Design products
45
Metodi Strutturati
Approcci sistematici per produrre il progetto del software. Il progetto in genere documentato da un insieme di modelli grafici. Possibili modelli Object model; Sequence model; State transition model; Structural model; Data-flow model.
46
23
Programmazione e debugging
Traduzione del progetto in un programma eseguibile e rimozione degli errori contenuti nel codice. Programmare unattivit personale - non si pu definire nessun processo generico. I Programmatori eseguono anche qualche forma di testing per trovare i difetti nel codice e rimuoverli nellambito del processo di debugging.
47
Verifica: Are we making the right product? Validazione: Are we making the product right?
Comprende i processi di controllo, come le ispezioni e le revisioni (ad ogni stadio del processo), ed il testing. Il testing di sistema richiede lesecuzione del sistema con test cases derivati dai dati reali che saranno elaborati dal sistema.
48
24
Il processo di testing
Uni t testing Module testing Sub-system t esting System testing Acceptance testing
Component testing
User testing
49
25
System design
Detailed design
Service
Acceptance test
51
52
26
Modify systems
Existing systems
New system
53
54
27
Il Waterfall model
R equirements definition System and software design Implementa tion and unit testing Integ r ation and system testing Oper a tionand maintenance
55
Il Waterfall model
Fasi del Waterfall Model
Analisi e definizione dei Requisiti Progettazione del sistema e del software Implementazione e Testing di unit Integrazione e testing di sistema Operativit e manutenzione
Vantaggi del modello la fasi da seguire sono ben definite gli output di ciascuna fase precisamente individuati
56
28
Il nuovo sistema software diventa installabile solo quando totalmente completato In alcuni casi invece auspicabile sviluppare prima una parte del sistema e poi completarlo (utente finale= mercato)
57
Il modello a cascata si usa per lo pi quando fa parte di un progetto pi vasto di ingegneria dei sistemi.
58
29
Sviluppo Evolutivo
Basato sullidea di produrre una versione iniziale del software, esporla agli utenti e perfezionarla attraverso varie versioni. Due modelli fondamentali: Sviluppo Esplorativo Lobiettivo di lavorare col cliente per esaminare i requisiti iniziali e farli evolvere fino al sistema finale. Dovrebbe partire da pochi requisiti ben compresi e aggiungere nuove caratteristiche proposte dal cliente. Prototipo Usa e Getta Lobiettivo di comprendere i requisiti del sistema. Si parte da requisiti poco chiari e si realizzano prototipi per esplorare i requisiti e chiarirli.
Ingegneria del Software 2 Introduzione e Richiami 59
Specifica tion
Outline description
Development
V alida tion
Final version
60
30
Sviluppo evolutivo
Problemi
Mancanza di visibilit del processo ( anti-economico documentare ogni versione del sistema); I sistemi diventano spesso mal strutturati (per i continui cambiamenti); Richiedono particolari skills (es. Uso di linguaggi di prototipazione rapida) A sistemi interattivi di piccole e medie dimensioni (<500.000 LOC); Per sviluppare alcune parti di sistemi di grandi dimensioni (per es. linterfaccia utente); Per sistemi destinati a vita breve.
Applicabilit
31
Due tipi di Approccio Prototipale: Modelli con Sistema Pilota (fattibilit) Modelli con Prototipazione (requisiti)
63
64
32
65
Modello Prototipale
2 tipi di prototipazione: mock-ups: produzione completa dellinterfaccia utente. Consente di definire con completezza e senza ambiguit i requisiti (si pu, gi in questa fase, definire il manuale di utente) breadboards: implementazione di sottoinsiemi di funzionalit critiche del SS, non nel senso della fattibilit ma in quello dei vincoli pesanti che sono posti nel funzionamento del SS (carichi elevati, tempo di risposta, ...), senza le interfacce utente. Produce feedbacks su come implementare la funzionalit (in pratica si cerca di conoscere prima di garantire).
Ingegneria del Software 2 Introduzione e Richiami 66
33
Requirements specification
Component analysis
Requirements modification
System validation
68
34
35
System incomplete
71
inc rem e nt # n
Co m m un i c a t i o n Pl a n ni ng M o de l i n g anal y s i s des i gn Co n s t c ode t es t ru c ti o n De p l o y m e n t d el i ve r y f e ed b ac k
in cr em en t # 2
C o m m u ni ca t i on Pl a n ni ng M o d el i n g anal y s i s des i gn
de li ve r y o f nt h in cr e m en t
Co n s t r u c t i o n c ode t es t
D e pl o y m e nt d e l i v er y f e e d ba c k
in c rem en t # 1
C om m u ni c a t i o n Pl a n ni n g M o de l i n g a nal ys i s d es i gn
d el ive r y o f 2 nd in cr em e n t
Co n s t r u c t c ode t es t
i o n D ep l o ym en t d e l i ve r y f e e db a c k
d eli ve r y o f 1 st in cre m e n t
p ro je ct c alen d a r t im e
72
36
73
74
37
Extreme programming
Extreme Programming
Un esempio di approccio allo sviluppo basato su sviluppo e consegna di piccolissimi incrementi di funzionalit. Si basa su un continuo miglioramento del codice, sul coinvolgimento dellutente nel processo di sviluppo, e sulla programmazione a coppie.
75
38
Pr ototype 3
Product design
Requir ement v alidation Design V&V Acceptance test Unit test Integ ra tion test
Service
78
39
79
80
40
81
Inception Avvio
Elaboration
Elaborazione
Construction Costruzione
Transition Transizione
82
41
83
84
42
Workflows statici
Workfl ow Business modelling Requi rements Analysis and design Impl ementation Description T he business processes are modelled using bu siness u se cases . Actors who interact with the system are identified and use cases are developed to model the sy stem requirements. A design model is created and do cumented u sing architectural mode ls, componen t models, object models and sequence models. T he components in the sy stem are implemented and structured into implementation sub- sy stems. Automatic code generation from d esign mode ls helps accelerate this process. T esting is an iterative process that is carried ou t in conjunction with implementation. Sy stem testing follows the completion of the implementation. A product release is created, distributed to users and installed in their workp lace. T hi s supporting work f low managed changes to th e sy stem (see Chapt er 29). T hi s supporting work f low manages the system development (s ee Chapt er 5). T hi s workflow is concerned with making appropriate software tools available to the software development team.
86
Test
43
Workflow e Fasi
Tutti i workflow del RUP possono essere eseguiti in qualunque iterazione del processo. Ovviamente nelle prime iterazioni gli sforzi si concentreranno sui workflow di modellazione e dei requisiti, nelle successive sulla implementazione e sul test.
87
Workflows Requirements
Analysis Design
88
44
45
46