Corso di Progettazione del Software

Documenti analoghi
Corso di Progettazione del Software

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

Progettazione del Software

Progettazione del Software

Progetto E versione del 12 marzo 2007

Progettazione del Software

Progettazione del Software

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

Progetto PI , passo A.1 versione del 16 marzo 2007

Corso di Progettazione del Software

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

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

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

Progetto PI , passo A.3 versione del 28 marzo 2007

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

Corso di Progettazione del Software

Progetto E versione del 12 marzo 2007

Progetto PI , passo P.1 versione del 11 marzo 2007

1 Catena di officine, versione 2

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

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

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

Progettazione del Software

Progettazione del Software

Progettazione del Software

Diagramma delle classi UML

Progettazione del Software

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

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

Progettazione del Software, Laurea in Ingegneria Gestionale Progettazione del Software Laurea in Ing. Gestionale

//UML-class-diagram.txt. entrambe Molo e PostoBarca hanno responsabilità su contiene. solo PostoBarca ha responsabilità su assegnato, e

Diagramma delle classi UML

Fasi del ciclo di vita del software (riassunto)

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

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

S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali. Alessandra Raffaetà

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

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

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

SAPIENZA Università di Roma, Facoltà di Ingegneria (sede di RIETI)

Esercizio 1 ESERCIZI DI PROGETTAZIONE CONCETTUALE DI BASI DI DATI. La base di dati di una università contiene informazioni

Proff. Toni Mancini & Monica Scannapieco Dipartimento di Informatica e Sistemistica Università di Roma La Sapienza

Fase di Analisi Class Diagram. Esercizi

Basi di Dati 1! Esercitazione 4. Matteo Picozzi!

Progetto PC versione del 11 luglio 2007

Numero di contratto di noleggio CodiceInterno Chiave primaria CodiceInternazionale Codice identificativo internazionale

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

Corso di Basi di Dati

Relazioni. Andrea Polini. Laboratorio di Ingegneria del Software Corso di Laurea in Informatica L-31 Università di Camerino

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

La fase di realizzazione

SAPIENZA Università di Roma, Facoltà di Ingegneria

Progettazione del Software

Proff. Toni Mancini & Monica Scannapieco Dipartimento di Informatica e Sistemistica Università di Roma La Sapienza

Insegnamento di Basi di Dati

Fase di Analisi Class Diagram. Esercizi

Progettazione Logica e Modello Realizzativo

2. Modellazione dei casi d uso

Traccia di soluzione dell esercizio dell 18/4/2007 Corsa Ciclistica

Esercizi su Modello Entità-Relazioni

Strutture dati. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05

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

Laboratorio di Basi di Dati

Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 11. A. Miola Dicembre 2007

Politecnico di Milano Ingegneria del Software a.a. 2008/09

Corso di Informatica

Laboratorio di Basi di Dati

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

BASE DI DATI. Esercizi Progettazione concettuale Progettazione logica. Informatica Umanistica Università di Pisa

Fondamenti di Informatica 2

Fondamenti di Informatica 2 Simulazione d esame dell 11 Dicembre 2009

Cardinalità degli attributi

Fondamenti di Informatica 2

4 M A.S. 2016/2017 PROGRAMMA SVOLTO E INDICAZIONI PER IL RECUPERO ESTIVO. Dei proff. SILENA CAMPANA e MONICA LUSSANA. docenti di Informatica.

Esercitazione 8. Corso di Tecniche di programmazione. Laurea in Ingegneria Informatica

Progettazione Concettuale e Modello di Progetto

A. Ferrari Object Oriented Design

Corso di Basi di Dati A.A. 2016/2017

PROGETTAZIONE CONCETTUALE

La fase di realizzazione. Realizzazione di una classe UML con soli attributi. Traduzione in Java del diagramma delle classi

Sistemi Informativi Aziendali. Programma del corso

Strutture lineari in Java

Progettazione del Software, Laurea in Ingegneria Gestionale Progettazione del Software Laurea in Ing. Gestionale

Problemi algoritmici e Complessità degli algoritmi

GESTIONE DEI REPARTI DI UN OSPEDALE

QL (Query Language) Alice Pavarani

Corso di Progettazione del Software

Basi di Dati. Modello Concettuale

UNIVERSITÀ G. d ANNUNZIO Scuola di Dottorato, partecipazioni e brevetti

Insegnamento di Basi di Dati

Variabili e assegnazione

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 02/07/2015/ Foglio delle domande /VERSIONE 1 Matricola Cognome Nome

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

Fondamenti di Informatica 2

IL MODELLO ENTITY RELATIONSHIP. il modello ER 1

Alcuni diagrammi. OCL (Object Constraint Language)

Modularizzazione del software

Diagrammi di classe e sistemi orientati agli oggetti

LA PROGETTAZIONE CONCETTUALE

Transcript:

T. Mancini & M. Scannapieco E.P.2 Progetti universitari (SOLUZIONE) February 26, 2008 p. 1/21 Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Corso di Laurea in Ingegneria Gestionale Corso di Progettazione del Software Proff. Toni Mancini e Monica Scannapieco Dipartimento di Informatica e Sistemistica Università di Roma La Sapienza E.P.2 Progetti universitari (SOLUZIONE) versione del February 26, 2008

T. Mancini & M. Scannapieco E.P.2 Progetti universitari (SOLUZIONE) February 26, 2008 p. 2/21 Requisiti: Progetti universitari Si vuole progettare una applicazione che gestisce i progetti di un dipartimento universitario. Del progetto interessano il nome, la durata in anni (un intero) e l anno in cui il progetto è stato finanziato. I progetti di distinguono in progetti nazionali, finanziati da fondi italiani, e progetti europei, finanziati da fondi della Comunità Europea. Dei progetti italiani interessa il nome del fondo specifico di finanziamento (una stringa). Dei progetti europei, interessa un codice identificativo denominato codiceist (un intero). Inoltre i progetti europei sono soggetti a 2 o più review meeting. Dei review meeting interessano un codice identificativo (un intero), la data di inizio, la data di fine ed il luogo in cui il meeting si svolge. Si noti che ogni review meeting è relativo ad un unico progetto europeo. Ai progetti lavorano dei partecipanti, che sono caratterizzati dal nome, dal cognome e dal ruolo all interno del dipartimento (una stringa). Un partecipante può lavorare in diversi progetti (almeno uno), e un progetto ha tipicamente diversi partecipanti (almeno uno). Inoltre, è di interesse conoscere il numero di mesi uomo che ciascun partecipante impegna in ciascun progetto (un intero). Infine, ad un progetto possono essere associati degli eventi di disseminazione, ad esempio workshop, conferenze etc. Degli eventi di disseminazione interessano il nome, una descrizione (una stringa), il luogo e la data in cui l evento si svolge. Un evento è relativo ad un unico progetto.

T. Mancini & M. Scannapieco E.P.2 Progetti universitari (SOLUZIONE) February 26, 2008 p. 3/21 Requisiti: Progetti universitari (cont.) Il direttore del dipartimento, vuole poter effettuare alcune verifiche sui progetti. In particolare: dato un progetto, calcolare il numero totale dei mesi uomo di tutti i suoi partecipanti che rivestono il ruolo di ordinario ; dato un progetto, se è un progetto europeo, si vuole restituire una stringa che contiene la data del primo review meeting a cui il progetto è stato sottoposto; altrimenti, se il progetto è italiano, la stringa restituita deve essre la stringa nulla. dato un insieme di partecipanti I, si vuole conoscere l insieme dei progetti a cui partecipano tutti gli elementi di I. dato un progetto, si vuole conoscere, tra i suoi partecipanti, quelli che hanno l impegno massimale.

T. Mancini & M. Scannapieco E.P.2 Progetti universitari (SOLUZIONE) February 26, 2008 p. 4/21 Fase di Analisi

Diagramma degli use case T. Mancini & M. Scannapieco E.P.2 Progetti universitari (SOLUZIONE) February 26, 2008 p. 5/21

Diagramma delle classi T. Mancini & M. Scannapieco E.P.2 Progetti universitari (SOLUZIONE) February 26, 2008 p. 6/21

T. Mancini & M. Scannapieco E.P.2 Progetti universitari (SOLUZIONE) February 26, 2008 p. 7/21 Specifica degli use case InizioSpecificaUseCase ControlloProgetti TotaleMesiUomoOrdinari (prj: Progetto): intero 0 pre: nessuna post: Detto prj.impegno l insieme dei link di tipo Impegno in cui prj è coinvolto, sia IO prj.impegno definito come: IO = {l prj.impegno l.partecipante.ruolo = ordinario }. result è pari a Σ l IO (l.mesiuomo). PrimoReviewMeeting pre: nessuna (prj: Progetto): Stringa post: Se prj è di classe Europeo, result è pari alla stringa contenente la valutazione dell espressione min (l.reviewmeeting.datainizio), l prj.relativo dove l operazione di calcolo del minimo fa riferimento all ordinamento totale < tra date determinato dall operazione Data.prima(Data) presente nella specifica del tipo di dato Data (cf. slides fase di Analisi). Altrimenti, result è pari alla stringa vuota.

T. Mancini & M. Scannapieco E.P.2 Progetti universitari (SOLUZIONE) February 26, 2008 p. 8/21 Specifica degli use case (cont.) FineSpecifica (I: Insieme(Partecipante)): Insieme(Progetto) pre: nessuna ProgettiComuni post: result è pari all insieme \ part I {prj part, prj part.impegno} dove part.impegno è pari all insieme dei link di tipo Impegno in cui part è coinvolto. (prj : Progetto): Insieme(Partecipante) pre: nessuna PartecipantiAdImpegnoMassimale post: result è pari all insieme contenente tutti e soli gli oggetti part di classe Partecipante tali che: Esiste un link di tipo Impegno tra part e prj con valore per l attributo MesiUomo pari ad m; Non esiste un link di tipo Impegno tra prj ed un oggetto part part con valore dell attributo MesiUomo maggiore di m.

T. Mancini & M. Scannapieco E.P.2 Progetti universitari (SOLUZIONE) February 26, 2008 p. 9/21 Fase di Progetto

T. Mancini & M. Scannapieco E.P.2 Progetti universitari (SOLUZIONE) February 26, 2008 p. 10/21 Corrispondenza tra tipi UML e tipi Java Tipo UML Tipo Java Note Stringa String intero int intero > 0 int Verifica ammissibilita sul lato server Data Data Disponibile, usiamo vers. senza side-effect Insieme(... ) HashSet<... > Implementa l interf. Set Disponibile

T. Mancini & M. Scannapieco E.P.2 Progetti universitari (SOLUZIONE) February 26, 2008 p. 11/21 Gerarchie is-a e spec. classi Ristrutturazione gerarchie is-a: la classe Progetto è abstract. Specifica realizzativa delle classi: non ci sono classi con operazioni.

T. Mancini & M. Scannapieco E.P.2 Progetti universitari (SOLUZIONE) February 26, 2008 p. 12/21 Specifica realizzativa dello use-case SpecificaRealizzativaUseCase ControlloProgetti +TotaleMesiUomoOrdinari(prj: Progetto): int pre: nessuna algoritmo: result = 0; per ogni link l in prj.impegno { se l.partecipante.ruolo = ordinario allora result += l.mesiuomo } ritorna result;

T. Mancini & M. Scannapieco E.P.2 Progetti universitari (SOLUZIONE) February 26, 2008 p. 13/21 pecifica realizzativa dello use-case (cont.) +PrimoReviewMeeting(prj: Progetto) : String pre: nessuna; algoritmo: se prj non e di classe Europeo, allora ritorna ""; altrimenti: sia L = prj.relativo (ovvero l insieme di link relativo che coinvolgono prj); sia primol = un elemento arbitrario di L; sia result = primol.reviewmeeting; per ogni altro l in L { se l.reviewmeeting.datainizio.prima(result.datainizio) allor result = l.reviewmeeting; } } ritorna result.datainizio convertito a String;

T. Mancini & M. Scannapieco E.P.2 Progetti universitari (SOLUZIONE) February 26, 2008 p. 14/21 pecifica realizzativa dello use-case (cont.) +ProgettiComuni(P: Set<Partecipante>): Set<Progetto> pre: nessuna algoritmo: sia primop = un elemento arbitrario di P; sia result = insieme vuoto di progetti; per ogni l in primop.impegno { result = result U l.progetto; } // result ora e l insieme di tutti i progetti di primop per ogni altro p in P (diverso da primop) { sia prj_p = insieme vuoto di classe Progetto per ogni l in p.impegno { prj_p = prj_p U l.progetto; } // prj_p e l ins. di tutti i progetti di p per ogni prj in result { se prj non appartiene a prj_p { result = result - { prj } } // tolgo da result i progetti che non impegnano p } } ritorna result;

T. Mancini & M. Scannapieco E.P.2 Progetti universitari (SOLUZIONE) February 26, 2008 p. 15/21 pecifica realizzativa dello use-case (cont.) +PartecipantiAdImpegnoMassimale(prj : Progetto): Set<Partecipante> pre: nessuna algoritmo: sia result = insieme vuoto di oggetti di classe Partecipante; sia MesiUomoMax = 0; per ogni l in prj.impegno { se l.mesiuomo = MesiUomoMax allora result = result U {l.partecipante}; altrimenti se l.mesiuomo > MesiUomoMax allora { svuota result; result = result U {l.partecipante}; MesiUomoMax = l.mesiuomo; } altrimenti (l.mesiuomo < MesiUomoMax) non fare nulla; FineSpecifica

T. Mancini & M. Scannapieco E.P.2 Progetti universitari (SOLUZIONE) February 26, 2008 p. 16/21 Gestione propr. locali e glob. d. classi Classe Partecipante Classe Evento Classe Progetto Nome,Cognome: immutabili, noti alla nascita Ruolo: mutabile, noto alla nascita Impegno: mutabile, non noto alla nascita Tipologia,Nome: immutabili, noti alla nascita Luogo,Data: mutabili, noti alla nascita associato: immutabile, noto alla nascita Nome, AnnoFinanziamento: immutabili, noti alla nascita Durata: mutabile, noto alla lascita Impegno: mutabile, non noto alla nascita Classe Nazionale Classe Europeo FondiFinanziamento: mutabile, noto alla nascita CodiceIST: immutabile, noto alla nascita relativo: mutabile, non noto alla nascita

T. Mancini & M. Scannapieco E.P.2 Progetti universitari (SOLUZIONE) February 26, 2008 p. 17/21 Gest. propr. locali e glob. d. classi (cont.) Classe ReviewMeeting id: immutabile, noto alla nascita DataInizio,Luogo,DataFine: mutabili, noti alla nascita relativo: immutabile, noto alla nascita Associazione Impegno MesiUomo: mutabile, noto alla nascita Nota: E sufficiente esplicitare queste decisioni nel diagramma realizzativo delle classi!

T. Mancini & M. Scannapieco E.P.2 Progetti universitari (SOLUZIONE) February 26, 2008 p. 18/21 Vincoli sull evoluz. d. propr. mutabili Il valore delle proprietà mutabili può variare arbitrariamente, tranne che per le seguenti: Associazione Relativo: i link non possono essere eliminati.

T. Mancini & M. Scannapieco E.P.2 Progetti universitari (SOLUZIONE) February 26, 2008 p. 19/21 Progetto dei diagrammi degli stati Non sono stati definiti diagrammi degli stati in fase di Analisi.

T. Mancini & M. Scannapieco E.P.2 Progetti universitari (SOLUZIONE) February 26, 2008 p. 20/21 Responsabilità sulle associazioni Dai requisiti, dalla specifica delle operazioni di classi e di use case, e delle molteplicità nel diagramma delle classi emerge che: Associazione Classe Ha resp? Motivo impegno Partecipante SI vincolo 1..*, u.c. op. 3 Progetto SI vincolo 1..*, u.c. op. 1 & 4 associato Evento SI vincolo 1..1 Progetto NO relativo ReviewMeeting SI vincolo 1..1 Europeo SI vincolo 2..*, u.c. op. 2

Diagramma delle classi realizzativo T. Mancini & M. Scannapieco E.P.2 Progetti universitari (SOLUZIONE) February 26, 2008 p. 21/21