SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica

Documenti analoghi
SOLUZIONE. Requisiti. Requisiti (cont.) Requisiti (cont.) Sapienza - Università di Roma Facoltà di Ingegneria

SOLUZIONE. Requisiti. Requisiti (cont.) Requisiti (cont.)

Progettazione del Software

Sapienza - Università di Roma Facoltà di Ingegneria dell Informazione Corso di Laurea in Ingegneria Informatica

Esercitazioni di Progettazione del Software. Esercitazione (Prova al calcolatore del 17 settembre 2010)

Obiettivi dell esercitazione. Requisiti (cont.) Requisiti. Università di Roma La Sapienza A.A Facoltà di Ingegneria Sede di Latina

SOLUZIONE. Requisiti. Requisiti (cont.) Requisiti (cont.) Università di Roma La Sapienza Facoltà di Ingegneria

Principi di Progettazione del Software a.a Introduzione al corso Prof. Luca Mainetti Università del Salento

Il diagramma delle classi è raffigurato in Figura 1, insieme alla descrizione della responsabilità sulle associazioni.

Principi di Progettazione del Software a.a " Introduzione al corso! Prof. Luca Mainetti! Università del Salento!

La fase di progetto e realizzazione. PROGETTAZIONE DEL SOFTWARE (Ing. Gestionale) Diagramma delle classi realizzativo

UML I diagrammi implementativi

Progetto PI , passo A.1 versione del 6 febbraio 2007

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi

SOMMARIO DIAGRAMMI DI ATTIVITÀ INGEGNERIA DEL SOFTWARE. Introduzione. Concetti base. Introduzione. Concetti base

SOMMARIO DIAGRAMMI DI ATTIVITÀ

Progetto E versione del 12 marzo 2007

SOMMARIO. DIAGRAMMI DI ATTIVITÀ INGEGNERIA DEL SOFTWARE Università degli Studi di Padova. Introduzione. Concetti base.

SOMMARIO DIAGRAMMI DI ATTIVITÀ INGEGNERIA DEL SOFTWARE. Introduzione. Concetti base. Introduzione. Concetti base

INFORMATICA PER LE SCIENZE UMANE a.a. 2016/2017

Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3

Le aree dell informatica

Informatica per le Scienze Umane. Introduzione al corso: programma dettagliato

Alcuni diagrammi. OCL (Object Constraint Language)

INFORMATICA PER LE SCIENZE UMANE a.a. 2015/2016

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Le aree dell informatica

Accordo di Programma Quadro in materia di e-government e Società dell Informazione nella Regione Puglia

I Diagrammi di Flusso OO

MODELLO e RAPPRESENTAZIONE

Informatica per le Scienze Umane. Introduzione al corso: programma

Fasi del ciclo di vita del software (riassunto) Progetto: generalità. Progetto e realizzazione (riassunto)

RELAZIONI E BASI DI DATI

UML. Il linguaggio UML e ArgoUML. Ingegneria dei sistemi software 2009/ /09/2009

Laboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring

Università degli Studi di Roma La Sapienza, Facoltà di Ingegneria. Corso di INGEGNERIA DEL SOFTWARE (Ing. Informatica, Nuovo Ordinamento)

Laurea triennale - Comunicazione&DAMS - UNICAL. Dr. Annamaria Bria 1

Università degli Studi di L Aquila Facoltà di Scienze M.F.N. Corso di Laurea in Informatica. Modulo di Laboratorio di Algoritmi e Strutture Dati

Insiemi Specifiche, rappresentazione e confronto tra realizzazioni alternative.

Progetto PI , passo A.1 versione del 10 aprile 2007

Tecniche di sviluppo di progetti. Lezione 4: Diagrammi UML

Calcolo combinatorio

Analisi e comparazione dei Framework OpenSwing e Google Web Toolkit per lo sviluppo di interfacce utente con paradigma MVC.

Algoritmi, Strutture Dati e Programmi. UD 1.d: Dati e Tipi di Dato

Metodologie e modelli di progetto

Sistemi informativi aziendali

Parte 6 Esercitazione sull accesso ai file

6) Descrivere con un diagramma a blocchi un algoritmo che legga da input due numeri ne calcoli il prodotto in termini di somme ripetute.

Linee di programmazione

Laurea triennale - Comunicazione&DAMS - UNICAL. Dr. Marco Manna 1

Introduzione al Corso. Corso di Progettazione degli Impianti Prof. Sergio Cavalieri, Ing. Stefano Ierace AA

Traccia delle soluzioni. Si consideri il seguente enunciato: Spett Ditta,

Il PROCESSO UNIFICATO

Corso di Ingegneria del Software. Modelli di produzione del software

Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3

Ingegneria del Software 4. Introduzione a UML. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Problema: calcolare il massimo tra K numeri

Verifiche delle proprietà del software e della loro corrispondenza alle specifiche formali

Corso di Ingegneria del Software. Activity Diagram

Costanti e Variabili

2. Modellazione dei casi d uso

Informazione e sua rappresentazione: codifica

Esercizio 1: soluzione

Fogli di Calcolo Elettronici

PRIMO MODULO. DURATA: 80 ore CONTENUTI

SOMMARIO DIAGRAMMI DELLE CLASSI E DEGLI OGGETTI INGEGNERIA DEL SOFTWARE. Introduzione. Proprietà e Operazioni. Proprietà e Operazioni

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016

Esercizio n.1 FONDAMENTI DI INFORMATICA 1. Esercizio n.2. Soluzione. LINGUAGGIO C Funzioni e gestione file: esercitazione

Politecnico di Milano. Progetto di Ingegneria del Software 2 MPH - Manage Project Homework

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre

Tecniche e strumenti per la validazione di codice Java: un esempio applicativo

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso Programmazione Java Standard

Ingegneria del Software II

Management Sanitario. Modulo di Ricerca Operativa

SOMMARIO DIAGRAMMI DEI PACKAGE

Progettazione del Software

INFORMATICA SANITARIA Domande ed Esercizi di Preparazione all Esame (Parti 8-17)

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Introduzione ad UML E.

Progetto PI , passo A.2 versione del 10 aprile 2007

Indice. Prefazione. 3 Oggetti e Java 53

Corso di. Fondamenti di Informatica T

Corso di Laurea Ingegneria Civile Elementi di Informatica. Esercizi. Carla Limongelli. Esercizi 1

Informazioni sull esame e Regole per lo svolgimento dei progetti

Basi di Dati Ingegneria Informatica e delle Telecomunicazioni

CORSO DI LAUREA IN SCIENZE DELLA FORMAZIONE PRIMARIA

CORSO DI LAUREA IN SCIENZE DELLA FORMAZIONE PRIMARIA

Microsoft Visio 2002 UML Sergio Colosio

Elementi di programmazione

3. Programmi e algoritmi

A Descrizione: ruota effetti opzionale con supporto/ optional effects wheel with support/ iprofile FLEX MODIFICHE. Codice assemblato:

La "macchina" da calcolo

Elementi di Informatica

Introduzione al Calcolo Scientifico

Programmazione con Java

Programmi e Oggetti Software

Sistemi di Elaborazione delle Informazioni 6 CFU

ISTITUTO ISTRUZIONE SUPERIORE "L. EINAUDI" - ALBA (CN) ANNO SCOLASTICO 2015/2016

ISTITUTO COMPRENSIVO LUCCA 2

Transcript:

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Esercitazioni di PROGETTAZIONE DEL SOFTWARE (Corso di Laurea in Ingegneria Informatica ed Automatica Corso di Laurea in Ingegneria dei Sistemi Informatici) A.A. 2010-11 Esercitazione: dall analisi alla realizzazione SOLUZIONE

Requisiti L applicazione da progettare riguarda la gestione di costruzioni per bambini. Sono di interesse le scatole di montaggio, ciascuna caratterizzata da una descrizione testuale e dai tipi di mattoncini che essa contiene (almeno uno) con le rispettive quantità. Alcune scatole sono speciali e sono caratterizzate da un livello di difficoltà (un intero). Tali scatole speciali contengono almeno un tipo di mattoncini elettrificati (per esempio motorini elettrici, dispositivi luminosi, ecc.). I tipi di mattoncini sono caratterizzati dalle dimensioni (rappresentate da una stringa) e dal colore (una stringa). I tipi di mattoncini elettrificati sono inoltre caratterizzati da una specifica elettrica (una stringa). Oltre alle scatole di montaggio sono di interesse le costruzioni realizzabili con i mattoncini. Ogni costruzione è caratterizzata dalle istruzioni di montaggio (una stringa) e dai tipi di mattoncini richiesti, con le rispettive quantità. Alcune costruzioni sono speciali in quanto servono a illustrare un fenomeno elettrico, queste sono caratterizzate da una descrizione testuale del fenomeno (una stringa) e contengono esattamente un tipo di mattoncini elettrificati (in quantità arbitraria). SAPIENZA Università di Roma. Esercitazioni di Prog. del Software. 2

Requisiti (cont.) Il fruitore della applicazione è interessato ad effettuare diverse operazioni, in particolare: data una scatola di montaggio s ed una costruzione c, verificare se s contiene tutti i tipi di mattoncini richiesti per c in quantità sufficienti; dato un tipo di mattoncino elettrificato me, restituire l insieme C delle costruzioni in cui me è richiesto. SAPIENZA Università di Roma. Esercitazioni di Prog. del Software. 3

Requisiti (cont.) Domanda 1. Basandosi sui requisiti riportati sopra, effettuare la fase di analisi producendo lo schema concettuale in UML per l applicazione e motivando, qualora ce ne fosse bisogno, le scelte effettuate. Domanda 2. Effettuare la fase di progetto, illustrando i prodotti rilevanti di tale fase e motivando, qualora ce ne fosse bisogno, le scelte effettuate. Domanda 3. Effettuare la fase di realizzazione, producendo un programma Java e motivando, qualora ce ne fosse bisogno, le scelte effettuate. SAPIENZA Università di Roma. Esercitazioni di Prog. del Software. 4

Fase di analisi SAPIENZA Università di Roma. Esercitazioni di Prog. del Software. 5

Diagramma delle classi SAPIENZA Università di Roma. Esercitazioni di Prog. del Software. 6

Fase di progetto SAPIENZA Università di Roma. Esercitazioni di Prog. del Software. 7

Responsabilità sulle associazioni La seguente tabella delle responsabilità si evince da: 1. i requisiti, 2. la specifica degli algoritmi per le operazioni di classe e use-case, 3. i vincoli di molteplicità nel diagramma delle classi. Associazione Classe ha resp. contiene ScatolaMontaggio SÌ 2,3 TipoMattoncini NO contienespeciale ScatolaSpeciale SÌ 3 TipoMattonciniElettrificati NO richiede Costruzione SÌ 2,3 TipoMattoncini SÌ 2 richiedespeciale CostruzioneSpeciale SÌ 3 TipoMattonciniElettrificati NO SAPIENZA Università di Roma. Esercitazioni di Prog. del Software. 8

Strutture di dati Abbiamo la necessità di rappresentare collezioni omogenee di oggetti, a causa: dei vincoli di molteplicità 0..* delle associazioni, delle variabili necessarie per vari algoritmi. Per fare ciò, utilizzeremo le classi del collection framework di Java: HashSet. Set, SAPIENZA Università di Roma. Esercitazioni di Prog. del Software. 9

Tabelle di gestione delle proprietà di classi UML Riassumiamo le nostre scelte differenti da quelle di default mediante la tabella delle proprietà immutabili e la tabella delle assunzioni sulla nascita. Classe UML ScatolaMontaggio ScatolaSpeciale TipoMattoncini TipoMattonciniElettrificati Costruzione CostruzioneSpeciale Proprietà immutabile descrizione difficolta dimensioni colore specificaelettrica istruzioni fenomeno Proprietà Classe UML nota alla nascita non nota alla nascita CostruzioneSpeciale richiedespeciale SAPIENZA Università di Roma. Esercitazioni di Prog. del Software. 10

Altre considerazioni Sequenza di nascita degli oggetti: Non dobbiamo assumere una particolare sequenza di nascita degli oggetti. Valori alla nascita: Non sembra ragionevole assumere che per qualche proprietà esistano valori di default validi per tutti gli oggetti. SAPIENZA Università di Roma. Esercitazioni di Prog. del Software. 11