Post on 22-Jul-2020
transcript
INGEGNERIA DEL SOFTWARE
Paolo Salvaneschi
Università di BergamoDip. di Ingegneria gestionale, dell'informazione e della produzione
A1_2 V3.1
Ingegneria del SoftwareLe origini dell’Ingegneria del Software
Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale e per supporto a lezioni universitarie.Ogni altro uso è riservato, e deve essere preventivamente autorizzato dall’ autore.
Sono graditi commenti o suggerimenti per il miglioramento del materiale
INDICE
• Le origini dell’Ingegneria del Software– Anni 50-70
– Definizioni
– Produzione artigiana e ingegneria
A1 - Ing Software Paolo Salvaneschi 2
– Produzione artigiana e ingegneria
– Ingegneria e software
Le origini – anni 50-70
• anni ’50
• Programmazione individuale (non strutturata)
• Il programmatore è l’utente
A1 - Ing Software Paolo Salvaneschi 3
• linguaggio assembler
Colossus design started in March 1943. By December 1943 all the various circuits were working and the 1,500 valve Mark 1 Colossus was dismantled, shipped up to Bletchley Park, and assembled in F Block over Christmas 1943. The Mark 1 was operational in January 1944 and successful on its first test against a real enciphered message tape.
Le origini – anni 50-70
A1 - Ing Software Paolo Salvaneschi 4
The ENIAC design started in 1943 at the University of Pennsylvania and it was constructed between 1944 and fall 1945. It was originally built to calculate firing tables for the Ballistics Research Laboratory, but was also used for more calculations related to nuclear weapons. Its existence was formally announced in 1946.
Le origini – anni 50-70
A1 - Ing Software Paolo Salvaneschi 5
Le origini – anni 50-70
A1 - Ing Software Paolo Salvaneschi 6
Un sistema della prima generazione: l’IBM 701 (circa 1952):ne furono prodotti 19
Le origini – anni 50-70
• anni ’60
• linguaggi di alto livello, algoritmi, strutture dati
• programmazione strutturata
• programmazione professionale (l’utente è diverso
A1 - Ing Software Paolo Salvaneschi 7
• programmazione professionale (l’utente è diverso dal programmatore)
Le origini – anni 50-70
A1 - Ing Software Paolo Salvaneschi 8
Un sistema della seconda generazione per applicazioni scientifiche: l’IBM 7090 (circa 1960)
tape drives
Le origini – anni 50-70
A1 - Ing Software Paolo Salvaneschi 9
the CPU
a bank of 2311 disk drives:
50 million bytes of information on-line
IBM/360 general purpose (dal 1964)(applicazioni scientifiche e commerciali)
Le origini – anni 50-70
• anni ‘70
• Primi grandi progetti e fallimenti
• Riflessione sul ruolo della programmazione
• Nascita dei concetti base dell’Ingegneria del
A1 - Ing Software Paolo Salvaneschi 10
• Nascita dei concetti base dell’Ingegneria del Software
• Programmazione in grande e ciclo di vita
Le origini - definizioni
• 1968 NATO Workshop. Garmisch
• Ingegneria del software: applicazione pratica di conoscenze scientifiche alla progettazione e costruzione dei programmi per calcolatori e della
A1 - Ing Software Paolo Salvaneschi 11
costruzione dei programmi per calcolatori e della documentazione associata richiesta per svilupparli, esercirli e mantenerli.
Le origini - definizioni
• L’approccio sistematico allo sviluppo, all’operatività, alla manutenzione ed al ritiro del software
• (Glossario IEEE)
A1 - Ing Software Paolo Salvaneschi 12
• La disciplina tecnologica e gestionale per la produzione sistematica e la manutenzione di prodotti software sviluppati e modificati con tempi e costi preventivati
• (R. Fairley , 1985)
Le origini - Produzione artigiana e Ingegneria
A1 - Ing Software Paolo Salvaneschi 13
Valle Camonicaedificio contadinocostruito nel 1910
Le origini - Produzione artigiana e Ingegneria
A1 - Ing Software Paolo Salvaneschi 14
Il centro di Toronto
Le origini - Produzione artigiana e Ingegneria
• Produzione Artigiana
• La costruzione delle case contadine in Valcamonica nei primi decenni del 900
A1 - Ing Software Paolo Salvaneschi 15
• Ingegneria
• I grattacieli in acciaio e vetro di Toronto
Ingegneria
• Processo di progettazione e costruzione– Studio del contesto
– Specifica
A1 - Ing Software Paolo Salvaneschi 16
– Specifica
– Idea progettuale
– Progetto esecutivo
– Realizzazione
Ingegneria
• Costruzione– Elementi costruttivi
– Prefabbricati
A1 - Ing Software Paolo Salvaneschi 17
– Prefabbricati
– Norme di qualità e controlli
Ingegneria
• Studio del comportamento della struttura mediante modelli prima di costruire
A1 - Ing Software Paolo Salvaneschi 18
Ingegneria
A1 - Ing Software Paolo Salvaneschi 19
La ristrutturazione delReichstag
Ingegneria
A1 - Ing Software Paolo Salvaneschi 20
La casa degli ippopotami allo zoo di Berlino
Ingegneria
A1 - Ing Software Paolo Salvaneschi 21
La casa degli ippopotami allo zoo di Berlino
Idea
Idea
Progetto(modello)
Ingegneria
A1 - Ing Software Paolo Salvaneschi 22
Prodotto Analisi
Prodotto
Artigiano Ingegnere
Produrre software
Il prodotto software deve contenere le seguenti funzionalita’:gestione interattiva dei dati anagrafici dei clienti (crea, cancella, leggi……
I dati del sistema sono:Anagrafica clienti….
ANALISI DEL PROBLEMAE SPECIFICA
PROGETTO
A1 - Ing Software Paolo Salvaneschi 23
Begin
readif <….>
then jhjhelse jkjh
end if
end
CODICE
Produrre una successione di modelli,l’ ultimo dei qualie’ eseguibile da un computer
Apertura del data base del cliente
Cliente tipo D
Raccolta manuale dati di consumo
Installazione apparati
Emissione fattura e report su risparmio
offerta accettata
dati consumo scadenza meseapparati installati
info per installazione apparati
apparati
Produrre software
A1 - Ing Software Paolo Salvaneschi 24
modifica data base del cliente
Cliente tipo C
Raccolta automatica dati di consumo
Emissione fattura e report su risparmio
dati consumo scadenza mese
fattura e report risp
fattura e report risp
Cura del cliente
info da / per cliente
Monitoraggio e manutenzione
info manutenzione apparati
modifica dati anagrafici e/o profilo
riesecuzione parziale del
DATASET_ALTTITLE
ID: Long IntegerALT_TITLE: Text(50)LANGUAGE: Text(50)
DATASET_CONTACT_ROLE
ID: Long IntegerNAME: Text(50)
DATASET_DETAIL
ID: Long IntegerDETAIL_KEYWORD: Long Integer
DATASET_DISTRIBFORM
DATASET_DISTRIBINFO
ID: Long IntegerRESTRICTION: Text(50)ONLINE_ACCESS: Text(50)ORDER: Text(50)SUPPORT: Text(50)COMMENT: Text(50)LANGUAGE: Long Integer
DATASET_DISTRIBMEDIA
ID: Long IntegerMEDIA: Text(50)
DATASET_IDENT
DATASET_ID: Long Integer
TITLE: Text(50)ABBREVIATED_TITLE: Text(50)STATUS: Text(50)URL: Text(50)
DATASET_ORGANISATION_ROLE
ID: Long IntegerORGA_ID: Long IntegerORGA_ROLE: Long Integer
DATASET_QUALITY
ID: Long IntegerSOURCE_QUALITY: Text(50)POSITIONAL_ACCURACY: Text(50)THEMATIC_ACCURACY: Text(50)TEMPORAL_ACCURACY: Text(50)CONSTRUCTION_SCALE: Long IntegerLANGUAGE: Long Integer
DATASET_RELATION
ID_1: Long IntegerID_2: Long IntegerRELATION_TYPE: Long Integer
DATASET_USAGE
ID: Long IntegerUSAGE: Text(50)MIN_SCALE: Long IntegerMAX_SCALE: Long IntegerCOMMENT_EN: Text(50)COMMENT_ORIG: Text(50)
DICTIONARY
DICT_ID: Long Integer
TYPE: Text(50)EN: Text(50)DE: Text(50)ES: Text(50)FR: Text(50)NL: Text(50)DK: Text(50)IT: Text(50)PT: Text(50)FI: Text(50)NO: Text(50)SE: Text(50)GR: Text(50)
ORGANIZATION
ORGA_ID: Long Integer
NAME: Text(50)SHORT_NAME: Text(50)INPUT_NAME: Text(50)STREET: Text(50)STREET_NUMBER: Long IntegerPOSTAL_BOX: Text(50)TOWN: Text(200)REGION: Text(50)POSTAL_CODE: Long IntegerCOUNTRY: Text(50)FACSIMILE_NUMBER: Long IntegerTELEPHONE_NUMBER: Long IntegerEMAIL: Text(50)TELEX_NUMBER: Long IntegerURL: Text(50)
Produrre software
A1 - Ing Software Paolo Salvaneschi 25
ATTRIBUTE_DESCRIPTION
DATASET_ID: Long IntegerOBJECT_ID: Long IntegerATTRIBUTE_ID: Long IntegerVALUE: Text(50)DESCRIPTION_EN: Text(50)DESCRIPTION_ORIG: Text(50)
DATASET_ADMINAREA
ID: Long IntegerAREA: Long IntegerAREA_ID: Long IntegerCOVERAGE: Long Integer
DATASET_CAT
ID: Long IntegerCATEGORY: Text(50)
NAME: Text(50)EMAIL: Text(50)ORGA_ID: Long IntegerORGA_ROLE: Long Integer
DATASET_DISTRIB
ID: Long Integer
COPYRIGHT_OWNER: Long IntegerPRICE: CurrencyUNIT: Long Integer
ID: Long IntegerFORMAT: Long Integer
DATASET_DOCREF
ID: Long IntegerDOCUMENT: Text(50)
DATASET_EXTENT
ID: Long Integer
DATE: Date/TimeSTATUS: Long IntegerX_MIN: Long IntegerX_MAX: Long IntegerY_MIN: Long IntegerY_MAX: Long IntegerFROM_DATE: Date/TimeTO_DATE: Date/TimeREFERENCE_SYSTEM: Long Integer
URL: Text(50)DOMAIN: Text(50)ENTRY_DATE: Date/TimeCHECK_DATE: Date/TimeUPDATE_DATE: Date/TimeREVIEW_DATE: Date/TimeORIGINAL_LANGUAGE: Text(50)
DATASET_OVERVIEW
ID: Long IntegerABSTRACT: Text(50)PURPOSE: Text(200)LANGUAGE: Text(50)
OBJECT_ATTRIBUTE
DATASET_ID: Long IntegerOBJECT_ID: Long IntegerATTRIBUTE_ID: Long Integer
NAME: Text(50)DEF_EN: Text(50)DEF_ORIG: Text(50)CODE: Long IntegerDOMAIN: Long IntegerTEMP_ACC_EN: Text(50)THEM_ACC_EN: Text(50)TEMP_ACC_ORIG: Text(50)THEM_ACC_ORIG: Text(50)
OBJECT_INFOLAYER
DATASET_ID: Long IntegerOBJECT_ID: Long Integer
NAME: Text(50)DEF_EN: Text(50)DEF_ORIG: Text(50)TYPECODE: Long IntegerOCCURENCES: Long IntegerPOS_ACC_EN: Text(50)THEM_ACC_EN: Text(50)POS_ACC_ORIG: Text(50)THEM_ACC_ORIG: Text(50)URL: Text(50)GEO_PRIM: Long IntegerBUSINESS_TABLE: Text(50)
Sistemaraccolta daticonsuntivi
I
SISTEMA CENTRALE DI GESTIONE
Livello di Acquisizione Dati
I
Livello di Gestione
Dati grezzicontat.
DatigrezziApp
Sistemaraccolta datiistantanei
LAN
Acquisizione e
Preelaborazione
Banca
DatiElab
1
DatigrezziApp
DatiElab
2
Dati grezziConta
Banca
Archivio
storic
Produrre software
A1 - Ing Software Paolo Salvaneschi 26
Utenti Remoti
Interfacce del sistema di gestione
Livello di Distribuzione Informazioni
Fax / Intenet mailInternet Web
Posta ordinariaDatiCom
Sistema contabile
Billing Elaborazioni
statistiche
Comunicazioni con
utenti remoti
Monitoraggio
Banca dati
tecnica
Gestione banca dati
eElaborazioni
Associate
Gestione di sistema
OutSis Con
OutBill
OutGest
OutEl Stat
Out com
Out Mon
Banca dati
contabile
storic
• Processi produttivi
• Organizzazione dei gruppi di progetto
• Tecniche di progettazione
Produrre software
A1 - Ing Software Paolo Salvaneschi 27
• Tecniche di progettazione
• Tecniche di controllo
• Tecniche di gestione
1. BT = A Base dei Tempi
Cod. Test
MA
Descrizione
TPBT0001
1 L'UEPB deve gestire correttamente la funzione di orologio in modo da conteggiare i
seguenti dati temporali: secondi, minuti, ore, giorni, settimana. Modalità di esecuzione del test:
TPBT0002
1 L'UEPB deve gestire correttamente il cambio di tutti i mesi dell’ anno Modalità di esecuzione del test:
TPBT0003
1 L'UEPB deve gestire correttamente il ciclo quadriennale bisestile ed il cambio del mese al giorno 28/2 – 29/2 di un anno bisestile.
DIAGRAMMA 2Intensita' di test per Area funzionale
242526
Produrre software
A1 - Ing Software Paolo Salvaneschi 28
3 cambio del mese al giorno 28/2 – 29/2 di un anno bisestile. Modalità di esecuzione del test:
TPBT0004
1 L'UEPB deve gestire correttamente l’ inizio e la fine dell’ ora legale sulla base del relativo messaggio di programmazione
Modalità di esecuzione del test:
TPBT0005
1 In assenza di programmazione dell’ ora legale (condizione di default) l' UEPB deve gestire correttamente l’ inizio e la fine dell’ ora legale attuando la normativa europea che prevede l’inizio nell’ultima domenica di marzo e la fine nell’ultima domenica di ottobre.
Modalità di esecuzione del test:
0123456789
101112131415161718192021222324
A B C D E F G H I L M N O P
Area
Inte
nsita
'
Intensità test
Intensità media
Produrre software
A1 - Ing Software Paolo Salvaneschi 29
Ingegneria e software
• La metafora “hard” dell’ingegneria esaurisce il problema del software?
A1 - Ing Software Paolo Salvaneschi 30
• Software - modelli - conoscenza
• Software - sistema socio tecnico