30
INGEGNERIA DEL SOFTWARE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione A1_2 V3.1 Ingegneria del Software Le 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 - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

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

Page 2: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

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

Page 3: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

Le origini – anni 50-70

• anni ’50

• Programmazione individuale (non strutturata)

• Il programmatore è l’utente

A1 - Ing Software Paolo Salvaneschi 3

• linguaggio assembler

Page 4: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

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

Page 5: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

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

Page 6: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

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

Page 7: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

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)

Page 8: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

Le origini – anni 50-70

A1 - Ing Software Paolo Salvaneschi 8

Un sistema della seconda generazione per applicazioni scientifiche: l’IBM 7090 (circa 1960)

Page 9: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

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)

Page 10: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

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

Page 11: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

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.

Page 12: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

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)

Page 13: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

Le origini - Produzione artigiana e Ingegneria

A1 - Ing Software Paolo Salvaneschi 13

Valle Camonicaedificio contadinocostruito nel 1910

Page 14: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

Le origini - Produzione artigiana e Ingegneria

A1 - Ing Software Paolo Salvaneschi 14

Il centro di Toronto

Page 15: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

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

Page 16: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

Ingegneria

• Processo di progettazione e costruzione– Studio del contesto

– Specifica

A1 - Ing Software Paolo Salvaneschi 16

– Specifica

– Idea progettuale

– Progetto esecutivo

– Realizzazione

Page 17: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

Ingegneria

• Costruzione– Elementi costruttivi

– Prefabbricati

A1 - Ing Software Paolo Salvaneschi 17

– Prefabbricati

– Norme di qualità e controlli

Page 18: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

Ingegneria

• Studio del comportamento della struttura mediante modelli prima di costruire

A1 - Ing Software Paolo Salvaneschi 18

Page 19: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

Ingegneria

A1 - Ing Software Paolo Salvaneschi 19

La ristrutturazione delReichstag

Page 20: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

Ingegneria

A1 - Ing Software Paolo Salvaneschi 20

La casa degli ippopotami allo zoo di Berlino

Page 21: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

Ingegneria

A1 - Ing Software Paolo Salvaneschi 21

La casa degli ippopotami allo zoo di Berlino

Page 22: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

Idea

Idea

Progetto(modello)

Ingegneria

A1 - Ing Software Paolo Salvaneschi 22

Prodotto Analisi

Prodotto

Artigiano Ingegnere

Page 23: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

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

Page 24: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

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

Page 25: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

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)

Page 26: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

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

Page 27: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

• 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

Page 28: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

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

Page 29: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

Produrre software

A1 - Ing Software Paolo Salvaneschi 29

Page 30: Ingegneria del Software - software_V31.pdf · INGEGNERIA DEL SOFTAW RE Paolo Salvaneschi Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione

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