Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A. 2008-2009. Class Discovery E.



Documenti analoghi
Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

Raccolta dei Requisiti con i Casi D'uso. Corso di Ingegneria del Software Anno Accademico 2012/13

UniRoma2 - Ingegneria del Software 1 1

La Progettazione Concettuale

Alessandra Raffaetà. Basi di Dati

Informatica Industriale Modello funzionale: Informazione Progettazione concettuale

object oriented analysis

SOMMARIO DIAGRAMMI DEI PACKAGE

Automazione Industriale (scheduling+mms) scheduling+mms.

Gli attributi di STUDENTE saranno: Matricola (chiave primaria), Cognome, Nome.

Corso di Laurea Triennale in Ingegneria Informatica. Corso di Ingegneria del software A. A Marina Mongiello

Modellazione di sistema

Fondamenti di Informatica. Docenti: Prof. Luisa Gargano Prof. Adele Rescigno BENVENUTI!

Università di Roma La Sapienza, Facoltà di Ingegneria

DESIGN PATTERN ESERCITAZIONE PREPARAZIONE ALL ESAME, PARTE II INGEGNERIA DEL SOFTWARE. La soluzione corretta è la c)

Progettare una basi di dati vuole dire progettare la struttura dei dati e le applicazioni

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Gestione del workflow

Architetture software

DFD DISPENSA DEL CORSO DI SISTEMI INFORMATIVI UNIVERSITÀ DEGLI STUDI DI VERONA FACOLTÀ DI MM.FF.NN LAUREA SPECIALISTICA IN INFORMATICA

Strumenti di modellazione. Gabriella Trucco

Informatica (Basi di Dati)

La Metodologia adottata nel Corso

Diagrammi di Interazione

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi

Traccia delle soluzioni

UNIVERSITÀ DEGLI STUDI DI BRESCIA Facoltà di Ingegneria

Progettazione di Basi di Dati

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

SOFTWARE PER LA RILEVAZIONE PRESENZE SUL WEB

SistemiInformatividiRete

Progettaz. e sviluppo Data Base

Politecnico di Bari Corso di Laurea Specialistica in Ingegneria Informatica A.A Casi di Studio. Traccia n 1

SISTEMI E RETI 4(2) 4(2) 4(2) caratteristiche funzionali

DATABASE. A cura di Massimiliano Buschi

Esercitazione di Basi di Dati

Organizzazione delle informazioni: Database

BASI DI DATI - : I modelli di database

Introduzione alla teoria dei database relazionali. Come progettare un database

Liceo Tecnologico. Indirizzo Elettrico Elettronico. Indicazioni nazionali per Piani di Studi Personalizzati

Ingegneria del Software T

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

Sistemi informativi secondo prospettive combinate

Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro

Soluzione dell esercizio del 2 Febbraio 2004

Stefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse

SOFTWARE A SUPPORTO DELLA GESTIONE AMMINISTRATIVA DELLO SPORTELLO UNICO SPECIFICA DEI REQUISITI UTENTE

Sistemi Informativi. Introduzione. Processi fisici. Tipologie di processi. Processi informativi. Processi aziendali

9. Architetture di Dominio

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

Cosa è un foglio elettronico

Base di dati e sistemi informativi

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Programmi e Oggetti Software

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria

7. Architetture Software

I database. Cosa sono e a cosa servono i Database

Una metodologia per la specifica di software basato su componenti

TECNICO SUPERIORE PER L INFORMATICA INDUSTRIALE

Automazione Industriale 4- Ingegneria del Software

Esempio ordini 08UMLEX1.1

IL SOFTWARE. Giada Agostinacchio Classe 2^ Beat ISIS G.Meroni Lissone Anno Scolastico 2007/2008

Specifiche tecniche e funzionali del Sistema Orchestra

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Brochure Internet. Versione The Keyrules Company s.r.l. Pagina 2 di 8

Sistema Informativo Geografico:

Modello di Controllo dell Accesso basato sui ruoli (RBAC)

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software.

Appendice III. Competenza e definizione della competenza

ALGEBRA DELLE PROPOSIZIONI

Progettazione esterna

Organizzazione degli archivi

Progettazione : Design Pattern Creazionali

TEORIA sulle BASI DI DATI

Il Modello Relazionale

Università Politecnica delle Marche. Progetto Didattico

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Guida Compilazione Piani di Studio on-line

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Programmazione Orientata agli Oggetti in Linguaggio Java

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche.

Database 1 biblioteca universitaria. Testo del quesito

Ipertesti e Internet. Ipertesto. Ipertesto. Prof.ssa E. Gentile. a.a

INFORMATICA PER LE APPLICAZIONI ECONOMICHE PROF.SSA BICE CAVALLO

Lezione 1. Introduzione e Modellazione Concettuale

Esercizio data base "Biblioteca"

(A) CONOSCENZA TERMINOLOGICA (B) CONOSCENZA E COMPETENZA (C) ESERCIZI DI COMPRENSIONE

uadro Soluzioni software per L archiviazione elettronica dei documenti Gestione Aziendale Fa quadrato attorno alla tua azienda

Progettazione di un Database

Informatica Industriale Modello funzionale Casi d uso

CASSA AUTOMATICA SelfCASH

Diagrammi di Flusso dei Dati

Transcript:

Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Class Discovery E. TINELLI

Contenuti Classi di analisi: definizione ed esempi Tecniche per la definizione delle classi di analisi Regole pratiche 2

Le classi di analisi (1/2) Rappresentano un astrazione ben definita nel dominio del problema e dovrebbero corrispondere a concetti concreti del dominio del sistema (cliente, prodotto, ordine, ecc.) Articolo_Biblioteca Numero di catalogo Data di acquisto Prezzo Attributi Tipo Stato Numero di copie Una classe di analisi non deve essere originata da considerazioni di progettazione Acquista() Cataloga() Disponi() Presta() Ritorna() Operazioni 3

Le classi di analisi (2/2) Attributi descrivono una classe ed il suo significato nel dominio del problema Operazioni definiscono il comportamento di un oggetto e si distingue tra: operazioni che manipolano i dati; operazioni di calcolo; operazioni che richiedono lo stato di un oggetto; operazioni che monitorano un oggetto per verificare un evento. Associazione un modo per rappresentare le proprietà di una classe N.B. Le proprietà rappresentano le caratteristiche strutturali di una classe definite mediante due notazioni molto diverse: attributi e associazioni. Quale scegliere? In generale si usano gli attributi per gli oggetti valore (date, valori booleani, stringhe di caratteri, ecc.) e le associazioni per le classi più significative o quando possono essere definiti più elementi di quel tipo. 4

Esempio 1 Boolean 1 preparato * Ordine NOrdine Ordine NOrdine Associazione * dataordine consegna() chiudi() Equivalente a dataordine preparato dataconsegna consegna() chiudi() 0 1 dataconsegna Data 5

Esempio 2 6

Tecniche per la definizione delle classi di analisi Analisi nome/verbo Analisi Class-Responsibility-Collaborator Analisi use case driven gli scenari sono stati descritti e numerati portano alla definizione degli oggetti, delle responsabilità di ogni oggetto e di come gli oggetti collaborano tra loro Analisi Common Class Pattern linee guida che considerano la classificazione degli oggetti (es. concetti, eventi, persone, processi organizzativi, luoghi, ecc.) Approccio ibrido combina gli approcci precedenti (es. studio del dominio del problema, applicazione delle linee guida del Common Class Pattern, aggiunta di classi con l analisi nome/verbo, verifica delle classi con l analisi usecase driven, analisi CRC per la fase di analisi e negoziazione) 7

Analisi nome/verbo Analizzando direttamente il linguaggio del problema (i testi) si individuano i nomi o le frasi nominali (classi o attributi) e i verbi (responsabilità/operazioni di una classe) Problemi: Sinonimia e omonimia Classi nascoste Potenziali fonti di informazione: Specifiche dei requisiti Casi d uso Glossario Documentazione varia (dominio, architettura, ecc.) Classificazione delle classi: Irrelevant Class, Relevant Class, Fuzzy Class 8

Analisi nome/verbo - Esempio Requisiti relativi ad un sistema che gestisce le Iscrizioni all Università: Ogni corso di laurea ha corsi obbligatori e corsi facoltativi Ogni corso ha un numero di crediti e può appartenere a diversi corsi di laurea Ogni corso di laurea specifica il minimo numero di crediti per laurearsi Gli studenti possono combinare dei corsi offerti dalla facoltà in modo da definire un programma di studio individuale Bisogna individuare nomi, frasi nominali, verbi e predicati verbali Classi Rilevanti: Corso, Laurea, Studente, Corsi offerti Classi Fuzzy: Corsi obbligatori, Corsi facoltativi, Programma di studio 9

Analisi CRC Raccolta di schede che rappresentano le classi suddivise in 3 parti: nome della classe (e descrizione), le responsabilità ed i collaboratori Responsabilità: sono gli attributi e le operazioni rilevanti per la classe Collaboratori: le classi che sono necessarie per completare una responsabilità della classe in oggetto (richiesta di informazioni o richiesta di azione) Una possibile classificazione delle classi: Classi per entità rappresentano in genere elementi che possono essere memorizzati in un database Classi di confine vengono utilizzate per definire l interfaccia con cui l utente finale interagisce Classi di controllo considerate di solito in fase di progettazione gestiscono la creazione/aggiornamento di oggetti entità, la comunicazione tra insiemi di oggetti, la convalida dei dati scambiati, ecc. 10

Una buona classe di analisi ha La massima coesione interna La minima interdipendenza con altre classi Esempio: sistema di commercio elettronico La classe CarrelloSpesa avrà responsabilità del tipo: Aggiungi un prodotto al carrello Rimuovi un prodotto dal carrello Insieme coeso di responsabilità Mostra i prodotti del carrello Alla classe CarrelloSpesa posso aggiungere responsabilità quali: Verifica la carta di credito Accetta il pagamento Stampa una ricevuta?? 11

Regole pratiche Evitare di avere classi troppo piccole o classi troppo complesse (considerare tra le 3 e le 5 responsabilità per classe) se l intelligenza del sistema viene distribuita più uniformemente sulle varie classi si migliora la coesione del sistema e si facilita la manutenzione Le responsabilità di una classe devono esibire lo stesso livello di astrazione Per identificare i collaboratori si possono esaminare 3 relazioni: fa parte di, è a conoscenza di, dipende da ; Incapsulazione: le informazioni ed il relativo comportamento dovrebbero risiedere nella stessa classe Nessuna classe può essere isolata Evitare i functoid Evitare gli alberi di ereditarietà profondi Una classe con un unico attributo può essere utile per la progettazione ma è probabilmente meglio rappresentata come attributo in fase di analisi 12