Ingegneria del Software - Unibg software_V22.pdf · Ingegneria del Software Le origini...
Transcript of Ingegneria del Software - Unibg software_V22.pdf · Ingegneria del Software Le origini...
A1_2 V2.2
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
INGEGNERIA DEL SOFTWARE
Paolo Salvaneschi
Università di BergamoFacoltà di Ingegneria
A1 - Ing Software Paolo Salvaneschi 2
INDICE
• Le origini dell’Ingegneria del Software– Anni 50-70– Definizioni– Produzione artigiana e ingegneria– Ingegneria e software
A1 - Ing Software Paolo Salvaneschi 3
Le origini – anni 50-70
• anni ’50• Programmazione individuale (non strutturata) • Il programmatore è l’utente• linguaggio assembler
A1 - Ing Software Paolo Salvaneschi 4
Colossus design started in March 1943. By December 1943 all the various circuits wereworking and the 1,500 valve Mark 1 Colossus was dismantled, shipped up to BletchleyPark, 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 5
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 6
Un sistema della prima generazione: l’IBM 701 (circa 1952):ne furono prodotti 19
Le origini – anni 50-70
A1 - Ing Software Paolo Salvaneschi 7
Le origini – anni 50-70
• anni ’60• linguaggi di alto livello, algoritmi, strutture dati• programmazione strutturata• programmazione professionale (l’utente è diverso
dal programmatore)
A1 - Ing Software Paolo Salvaneschi 8
Un sistema della seconda generazione per applicazioni scientifiche: l’IBM 7090 (circa 1960)
Le origini – anni 50-70
A1 - Ing Software Paolo Salvaneschi 9
tape drives
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
A1 - Ing Software Paolo Salvaneschi 10
Le origini – anni 50-70
• anni ‘70• Primi grandi progetti e fallimenti• Riflessione sul ruolo della programmazione• Nascita dei concetti base dell’Ingegneria del
Software• Programmazione in grande e ciclo di vita
A1 - Ing Software Paolo Salvaneschi 11
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 documentazione associata richiesta per svilupparli, esercirli e mantenerli.
A1 - Ing Software Paolo Salvaneschi 12
Le origini - definizioni
• L’approccio sistematico allo sviluppo, all’operatività, alla manutenzione ed al ritiro del software
• (Glossario IEEE)
• 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)
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
A1 - Ing Software Paolo Salvaneschi 15
Le origini - Produzione artigiana e Ingegneria
• Produzione Artigiana • La costruzione delle case contadine in
Valcamonica nei primi decenni del 900• Ingegneria• I grattacieli in acciaio e vetro di Toronto
A1 - Ing Software Paolo Salvaneschi 16
Ingegneria
• Processo di progettazione e costruzione– Studio del contesto– Specifica– Idea progettuale– Progetto esecutivo– Realizzazione
A1 - Ing Software Paolo Salvaneschi 17
Ingegneria
• Costruzione– Elementi costruttivi– Prefabbricati– Norme di qualità e controlli
A1 - Ing Software Paolo Salvaneschi 18
Ingegneria
• Studio del comportamento della struttura mediante modelli prima di costruire
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
Ingegneria
A1 - Ing Software Paolo Salvaneschi 22
Idea
Prodotto
Idea
Progetto(modello)
Analisi
Prodotto
Artigiano Ingegnere
Ingegneria
A1 - Ing Software Paolo Salvaneschi 23
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….
Begin
readif <….>
then jhjhelse jkjh
end if
end
ANALISI DEL PROBLEMAE SPECIFICA
PROGETTO
CODICE
Produrre una successione di modelli,l’ ultimo dei qualie’ eseguibile da un computer
A1 - Ing Software Paolo Salvaneschi 24
Apertura del data base del cliente
Cliente tipo D
Raccolta manuale dati di consumo
Installazione apparati
Emissione fattura e report su risparmio
modifica data base del cliente
offerta accettata
dati consumo
Cliente tipo C
scadenza meseapparati installati
info per installazione apparati
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
apparati
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_ALTTITLE
ID: Long IntegerALT_TITLE: Text(50)LANGUAGE: Text(50)
DATASET_CAT
ID: Long IntegerCATEGORY: Text(50)
DATASET_CONTACT_ROLE
ID: Long IntegerNAME: Text(50)EMAIL: Text(50)ORGA_ID: Long IntegerORGA_ROLE: Long Integer
DATASET_DETAIL
ID: Long IntegerDETAIL_KEYWORD: Long Integer
DATASET_DISTRIBID: Long Integer
COPYRIGHT_OWNER: Long IntegerPRICE: CurrencyUNIT: Long Integer
DATASET_DISTRIBFORM
ID: Long IntegerFORMAT: Long Integer
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_DOCREF
ID: Long IntegerDOCUMENT: Text(50)
DATASET_EXTENTID: 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
DATASET_IDENTDATASET_ID: Long Integer
TITLE: Text(50)ABBREVIATED_TITLE: Text(50)STATUS: Text(50)URL: Text(50)DOMAIN: Text(50)ENTRY_DATE: Date/TimeCHECK_DATE: Date/TimeUPDATE_DATE: Date/TimeREVIEW_DATE: Date/TimeORIGINAL_LANGUAGE: Text(50)
DATASET_ORGANISATION_ROLE
ID: Long IntegerORGA_ID: Long IntegerORGA_ROLE: Long Integer
DATASET_OVERVIEW
ID: Long IntegerABSTRACT: Text(50)PURPOSE: Text(200)LANGUAGE: Text(50)
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)
DICTIONARYDICT_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)
OBJECT_ATTRIBUTEDATASET_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_INFOLAYERDATASET_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)
ORGANIZATIONORGA_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 26
Sistemaraccolta daticonsuntivi
I
Utenti Remoti
SISTEMA CENTRALE DI GESTIONE
Livello di Acquisizione Dati
Interfacce del sistema di gestione
I
Livello di Gestione
Livello di Distribuzione Informazioni
Fax / Intenet mailInternet Web
Posta ordinaria
Dati grezzicontat.
DatigrezziApp
DatiCom
Sistemaraccolta datiistantanei
LAN
Sistema contabile
Acquisizione e
Preelaborazione
Billing Elaborazioni
statistiche
Comunicazioni con
utenti remoti
Monitoraggio
Banca dati
tecnica
Gestione banca dati
eElaborazioni
Associate
Gestione di sistema
DatiElab
1
DatigrezziApp
DatiElab
2
OutSis Con
OutBill
OutGest
OutEl Stat
Out com
Dati grezziConta
Out Mon
Banca dati
contabile
Archivio
storic
Produrre software
A1 - Ing Software Paolo Salvaneschi 27
• Processi produttivi• Organizzazione dei gruppi di progetto• Tecniche di progettazione• Tecniche di controllo• Tecniche di gestione
Produrre software
A1 - Ing Software Paolo Salvaneschi 28
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. 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:
DIAGRAMMA 2Intensita' di test per Area funzionale
0123456789
1011121314151617181920212223242526
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
Produrre software
A1 - Ing Software Paolo Salvaneschi 30
Ingegneria e software
• La metafora “hard” dell’ingegneria esaurisce il problema del software?
• Software - modelli - conoscenza• Software - sistema socio tecnico