Use Case Driven Object Modeling: ICONIX



Похожие документы
Use Case Driven Object Modeling: ICONIX

Soluzione dell esercizio del 2 Febbraio 2004

Strumenti di modellazione. Gabriella Trucco

Soluzione dell esercizio del 12 Febbraio 2004

ING SW. Progetto di Ingegneria del Software. e-travel. Requisiti Utente. Specifiche Funzionali del Sistema

Modellazione dei dati in UML

Una metodologia per la specifica di software basato su componenti

Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi

Manuale d uso per la raccolta: Sicurezza degli impianti di utenza a gas - Postcontatore

Programmi e Oggetti Software

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

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

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Piano di gestione della qualità

Traccia di soluzione dell esercizio del 25/1/2005

Progettaz. e sviluppo Data Base

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

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

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

UML - Unified Modeling Language

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

Concetti di base di ingegneria del software

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

Officina Meccanica. Analisi, progetto e sviluppo

La specifica del problema

Raggruppamenti Conti Movimenti

Esempio 1: CarMatch. Direzione centrale Sedi centrali per ogni paese Concessionarie locali di franchising UML 2

Object Oriented Programming

Progettazione della componente applicativa

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

IL MARKETING E QUELLA FUNZIONE D IMPRESA CHE:

UniRoma2 - Ingegneria del Software 1 1

Corso introduttivo all utilizzo di TQ Qualifica

CONTABILITÀ. Gestione Attività Multipunto. Release 5.20 Manuale Operativo

4.1 Che cos è l ideazione

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

5.3 TABELLE RECORD Inserire, eliminare record in una tabella Aggiungere record Eliminare record

«Gestione dei documenti e delle registrazioni» 1 SCOPO CAMPO DI APPLICAZIONE E GENERALITA RESPONSABILITA DEFINIZIONI...

Scenario di Progettazione

Sistemi Informativi I Caso di studio con applicazione di UML

Gestione del workflow

2. Simulazione discreta: approcci alla simulazione

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

Rational Unified Process Introduzione

Cup HiWeb. Integrazione dei servizi del CUP Marche in applicativi di terze parti

object oriented analysis

Preparazione di una immagine di Windows XP per la distribuzione

LINEA PROJECT MANAGEMENT

2 - Modifica Annulla ANNULLA TOPOGRAFICO ANNULLA TOPOGRAFICO MULTIPLO FIGURA 2.1

SOFTWARE. Aprendo il SW la prima schermata che appare è la seguente:

Esercitazione N7:Gioco dei 21 fiammiferi (impariamo java giocando)

Generazione Automatica di Asserzioni da Modelli di Specifica

Gestione dei documenti e delle registrazioni Rev. 00 del

Ciclo di vita dimensionale

Informatica Industriale Modello funzionale Casi d uso

GESTIONE DEI DOCUMENTI, DEI DATI E DELLE REGISTRAZIONI

Guida alla Gestione delle Prenotazioni nella nuova Area Proprietario

Mon Ami 3000 Produzione interna/esterna Gestione della produzione interna/esterna

SWIM v2 Design Document

Funzioni di Trasferimento Movimenti

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

PROGETTAZIONE DEL SOFTWARE

Guida all'installazione driver per DFUSB Rel.1.0 Febbraio 2011

Gestione Turni. Introduzione

SPC e distribuzione normale con Access

Istruzioni per l uso

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

Trasformazione dei Processi in Progetti DIB 1

2.0 Gli archivi. 2.1 Inserire gli archivi. 2.2 Archivio Clienti, Fornitori, Materiali, Noleggi ed Altri Costi. Impresa Edile Guida all uso

START Affidamenti diretti e Procedure concorrenziali semplificate. Istruzioni per i concorrenti Ver. 1.0

Progetto Istanze On Line

Diagrammi di Interazione

Esercitazione di Basi di Dati

Quality gate. Sono eventi programmati regolarmente e condotti seguendo una procedura standard

IDENTIFICAZIONE DEI BISOGNI DEL CLIENTE

Progettazione di Basi di Dati

Project Management. Modulo: Introduzione. prof. ing. Guido Guizzi

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

MODELLO RELAZIONALE. Introduzione

Guida all uso di Java Diagrammi ER

Integrazione InfiniteCRM - MailUp

In legenda sono riportate le fasi R, P, C/T e I/SA come specificato nella norma ISO/IEC

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

Il database management system Access

GALILEO. [OFR] - Progetto GALILEO - How to contabilità. How To Contabilità G.ALI.LE.O. How To Contabilità. pag. 1 di 23.

Che cos è un prototipo? Perchè creare prototipi?

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

Automazione della gestione degli ordini d acquisto di una società di autonoleggio

TECNICHE DI SIMULAZIONE

Транскрипт:

Use Case Driven Object Modeling: ICONIX Un esempio di specifica, analisi, progetto e sviluppo utilizzando ICONIX Ditta di Noleggio Dvd Un sistema per la gestione di una ditta di noleggio dvd che ha più punti di distribuzione Autore: Valeriano Sandrucci Università di Firenze Facoltà di Ingegneria Corso di Ingegneria del Software (Prof. Giacomo Bucci)

ICONIX ICONIX è una metodologia di sviluppo software In ICONIX (come pure in Unified Process (UP)) il processo è guidato dai casi d'uso UML ICONIX è un approccio più leggero di UP ICONIX (a differenza dell'extreme Programming (XP)) fornisce una documentazione sufficiente dei requisiti e dell'analisi e del progetto Non si ha il problema noto come Analysis Paralysis ICONIX è descritto nel libro: Use Case Driven Object Modeling with UML: Theory and Practice.

ICONIX ICONIX è un processo che permette di trasformare i casi d'uso in codice funzionante Prima di iniziare il processo ICONIX occorre avere disponibile l'analisi dei requisiti. Dalla specifica dei requisiti si identificano i casi d'uso, il modello di dominio ed il prototipo dell'interfaccia Modello di dominio, casi d'uso ed interfaccia vengono validati per mezzo della Robustness Analysis Utilizzando i diagrammi dei passi precedenti viene costruito un diagramma delle classi a livello di specifica ed i diagrammi di sequenza Deployment: vengono scritti i test necessari a verificare il buon funzionamento del sistema e viene scritto il codice.

ICONIX Il tratto caratteristico di ICONIX è il suo uso dell'analisi di robustezza, un metodo per colmare la distanza tra Analysis e Design L'analisi di robustezza riduce l'ambiguità nella descrizione dei casi d'uso assicurando che vengano scritti nel contesto del corrispondente modello di dominio L'analisi di robustezza rende i casi d'uso più facili da implementare e testare

Analisi dei Requisiti Analisi dei Requisiti (operazione preliminare al processo ICONIX)

Cosa sono i requisiti Con la parola requisito si intende una caratteristica od una proprietà che una data persona o cosa è tenuta a possedere Requisiti del prodotto software Un requistito è: Qualcosa che il prodotto deve fare Una caratteristica che deve possedere Un requisito esiste sia perché il prodotto stesso lo richiede, sia perché il committente vuole che esso sia parte del prodotto.

Cosa sono i requisiti Distinguiamo tra scopo del prodotto e suoi requisiti Scopo: obiettivo (finalità) che il prodotto si prefigge Requisiti: insieme delle caratteristiche che il prodotto deve possedere per soddisfare al proprio scopo di uso. Esempio: Un sistema per il controllo del traffico areo Scopo: il controllo del traffico aereo di una certa regione Requisiti: N minimo di aerei controllati nello stesso tempo Riconoscimento immediato di situazioni che possono portare a collisioni Robustezza rispetto ad attacchi di hacker (terroristi).

Requisiti funzionali Ciò che il sistema deve fare Costituiscono la ragione stessa per la quale il sistema viene costruito/impiegato Esempio: Il sistema deve consentire ad un generico utente dal proprio PC di vedere i movimenti sul suo CC Il sistema deve consentire di effettuare operazioni di deposito dagli sportelli abilitati all'operazione....

Altri requisiti Requisiti non funzionali: proprietà (qualità) che il sistema deve possedere Il sistema deve essere portabile tra gli ambienti X,Y e Z Vincoli (Constraints): Requisiti di carattere generale che si applicano all'intero prodotto e sono definiti inizialmente prima che inizi l'effettiva raccolta dei requisiti Lo scopo del progetto è esso stesso un vincolo (ne determina i requisiti funzionali); gli utenti sono un vincolo (influenzano l'usabilità del prodotto)

Requisiti 1/3 Scopo Gestione dell'operazione di noleggio video Vincoli La ditta ha più punti di distribuzione sul territorio ognuno dei quali deve poter operare in modo indipendente dagli altri Gli utenti devono poter fruire di un servizio web nel quale trovare informazioni relative a tutti i punti di distribuzione

Requisiti 2/3 [R1] Il sistema deve consentire il noleggio di dvd da parte di un utente [R1.1] Ogni dvd si riferisce ad un solo film [R1.2] Ogni film ha un titolo una descrizione della trama ed un genere [R2] Il sistema deve permettere ad un utente autorizzato il caricamento e la rimozione di dvd nel punto di distribuzione

Requisiti 3/3 [R3] Il sistema deve permettere all'utente di lasciare un feedback relativamente ad un film che ha precedentemente noleggiato [R4] Il sistema deve permettere la prenotazione di dvd se disponibili

Analysis Inizia il processo ICONIX

Domain Model Domain Model

Domain Model Si vuole derivare il modello di dominio dall'elenco dei requisiti Il modello di dominio si rappresenta con un Class Diagram UML Il diagramma delle classi è volutamente semplice I dettagli verranno aggiunti successivamente Col modello di dominio si descrivono gli aspetti statici del sistema

Domain Model Nel diagramma delle classi: Non si specificano per adesso attributi e metodi delle classi Si adoperano solo le relazioni: Generalization (essere) Aggregation (avere)

Domain Model 1/3

Domain Model 2/3

Domain Model 3/3

Use Cases Use Cases

Use Cases Si vuole derivare il modello dei casi d'uso dall'elenco dei requisiti Il modello dei casi d'uso si rappresenta con un Use Cases Diagram UML Anche in questo caso è importante costruire una vista d'insieme e non perdersi nei dettagli Col modello dei casi d'uso si descrivono gli aspetti dinamici del sistema

Use Cases Nel costruire il diagramma dei casi d'uso Il committente potrebbe non comprendere le relazioni: include ed extends Sono più intuitive le relazioni: precedes ed invokes Nel costruire il diagramma dei casi d'uso conviene procedere per approssimazioni successive I casi d'uso devono riferirsi al modello di dominio

Actors

Use Cases Summary

Use Cases Summary

Distributor System

Distributor Use Cases 1/3

Distributor Use Cases 2/3

Distributor Use Cases 3/3

Distributor Domain Model

Center System

Center Use Cases 1/3

Center Use Cases 2/3

Center Use Cases 3/3

Center Domain Model

Use Cases Text & Mock-up Use Cases Text & Mock-up

Use Cases Text Il testo dei casi d'uso può essere rigorosamente formattato o meno (dressed use cases) Il testo dei casi d'uso deve essere non ambiguo e fare esplicito riferimento al modello di dominio ed alle interfacce usate

Use Cases Text Semplice template per i casi d'uso: UC: <nome del caso d'uso> Scope: <sistema/sottosistema cui si riferisce> Level: <livello di astrazione> Summary User goal Function Actor: <attore che inizia il caso d'uso> Basic Course: <interazione legata al caso positivo> Alternative Courses: <flussi alternativi>

Mock-up Sono prototipi dell'interfaccia Servono a capire come si presenterà il sistema una volta realizzato Sono estremamente facili da comprendere per il committente

Distributor Use Cases

UC: Search for Dvd UC: Search for Dvd Scope: Distributor System Level: User Goal Actor: Distributor User Basic Course: 1. Distributor User sulla maschera DvdSearch imposta filtri preme [Search] 2. Distributor System: 2.1 Estrae i Movie corrispondenti ai filtri 2.2 Estrae i Dvd disponibili corrispondenti ai Movie 2.3 Mostra DvdResults Alternative Corse: 2.1a Nessun Movie trovato: 2.1a.1 Distributor System mostra DialogMessage col messaggio "Nessun film trovato" 2.2a Nessun Dvd disponibile: 2.2a.1 Distributor System mostra DialogMessage col messaggio "Nessun Dvd disponibile" 2.1-2.2a Read error: 2.1-2.2a.1 Distributor System mostra DialogMessage col messaggio "Errore di sistema. Servizio non disponibile"

Mock-up DvdSearch DvdResults DialogMessage

UC: Get Dvd availability UC: Get Dvd availability Scope: Distributor System Level: User goal Actor: Center System Basic Course: 1. Center System chiama il metodo howmanydvdavailable di DistributorService per il distributore desiterato specificando id di Movie 2. Distributor System conteggia il numero di Dvd disponibili e restituisce AvailableDvd

Boundary Classes

Distributor Domain Model

Center Use Cases

UC: Create User UC: Create User Scope: Center System Level: User Goal Actor: Center Admin Basic Course: 1. Center Admin sulla maschera UserList preme [Create New User] 2. System mostra la maschera UserDetail vuota 3. Center Admin compila la maschera e preme [Save] 4. Center System: 4.1 Valida i dati 4.2 Salva il nuovo User 4.3 Mostra la maschera UserList aggiornata Alternative Courses: 3a. Center Admin preme [Cancel] 3a.1 Center System mostra la maschera UserList 4.1a Dati non validi: 4.1a.1 Center System mostra la maschera UserDetail con messaggio "Dati non validi" 4.2a Errore di salvataggio: 4.2a.1 Center System Mostra la maschera UserDetail col messaggio "Salvataggio non riuscito"

Mock up UserList UserDetail

UC: Notify Dvd unload UC: Notify Dvd unload Scope: Center System Level: User Goal Actor: Distributor System Basic Course: 1. Distributor System chiama il metodo unloaddvd di CenterService specificando id del distributore ed id del Dvd 2. Center System cancella il Dvd specificato e restituisce true (Boolean) Alternative Course: 2a Save Error: 2a.1 Center System restituisce false (Boolean)

CenterService Boundary

Center Domain Model

Robustness Analysis Robustness Analysis

Robustness Analysis L'analisi di robustezza è il tratto più caratteristico di ICONIX Per ogni caso d'uso si costruisce un diagramma di robustezza I diagrammi di robustezza devono essere costruiti con riferimento al modello di dominio ed all'interfaccia del sistema

Robustness Analysis Nei diagrammi di robustezza ci sono: Actor, Boundary, Controller, Entity Non tutte le relazioni sono ammissibili Sono ammissibili le relazioni tra: Actor Boundary Boundary Controller Controller Controller Controller Entity

UC: Search for Dvd 1/6 UC: Search for Dvd Scope: Distributor System Level: User Goal Actor: Distributor User Basic Course: 1. Distributor User sulla maschera DvdSearch imposta filtri preme [Search] 2. Distributor System: 2.1 Estrae i Movie corrispondenti ai filtri 2.2 Estrae i Dvd disponibili corrispondenti ai Movie 2.3 Mostra DvdResults Alternative Corse: 2.1a Nessun Movie trovato: 2.1a.1 Distributor System mostra DialogMessage col messaggio "Nessun film trovato" 2.2a Nessun Dvd disponibile: 2.2a.1 Distributor System mostra DialogMessage col messaggio "Nessun Dvd disponibile" 2.1-2.2a Read error: 2.1-2.2a.1 Distributor System mostra DialogMessage col messaggio "Errore di sistema. Servizio non disponibile"

UC: Search for Dvd 2/6 UC: Search for Dvd Scope: Distributor System Level: User Goal Actor: Distributor User Basic Course: 1. Distributor User sulla maschera DvdSearch imposta filtri preme [Search] 2. Distributor System: 2.1 Estrae i Movie corrispondenti ai filtri 2.2 Estrae i Dvd disponibili corrispondenti ai Movie 2.3 Mostra DvdResults Alternative Corse: 2.1a Nessun Movie trovato: 2.1a.1 Distributor System mostra DialogMessage col messaggio "Nessun film trovato" 2.2a Nessun Dvd disponibile: 2.2a.1 Distributor System mostra DialogMessage col messaggio "Nessun Dvd disponibile" 2.1-2.2a Read error: 2.1-2.2a.1 Distributor System mostra DialogMessage col messaggio "Errore di sistema. Servizio non disponibile"

UC: Search for Dvd 3/6 UC: Search for Dvd Scope: Distributor System Level: User Goal Actor: Distributor User Basic Course: 1. Distributor User sulla maschera DvdSearch imposta filtri preme [Search] 2. Distributor System: 2.1 Estrae i Movie corrispondenti ai filtri 2.2 Estrae i Dvd disponibili corrispondenti ai Movie 2.3 Mostra DvdResults Alternative Corse: 2.1a Nessun Movie trovato: 2.1a.1 Distributor System mostra DialogMessage col messaggio "Nessun film trovato" 2.2a Nessun Dvd disponibile: 2.2a.1 Distributor System mostra DialogMessage col messaggio "Nessun Dvd disponibile" 2.1-2.2a Read error: 2.1-2.2a.1 Distributor System mostra DialogMessage col messaggio "Errore di sistema. Servizio non disponibile"

UC: Search for Dvd 4/6 UC: Search for Dvd Scope: Distributor System Level: User Goal Actor: Distributor User Basic Course: 1. Distributor User sulla maschera DvdSearch imposta filtri preme [Search] 2. Distributor System: 2.1 Estrae i Movie corrispondenti ai filtri 2.2 Estrae i Dvd disponibili corrispondenti ai Movie 2.3 Mostra DvdResults Alternative Corse: 2.1a Nessun Movie trovato: 2.1a.1 Distributor System mostra DialogMessage col messaggio "Nessun film trovato" 2.2a Nessun Dvd disponibile: 2.2a.1 Distributor System mostra DialogMessage col messaggio "Nessun Dvd disponibile" 2.1-2.2a Read error: 2.1-2.2a.1 Distributor System mostra DialogMessage col messaggio "Errore di sistema. Servizio non disponibile"

UC: Search for Dvd 5/6 UC: Search for Dvd Scope: Distributor System Level: User Goal Actor: Distributor User Basic Course: 1. Distributor User sulla maschera DvdSearch imposta filtri preme [Search] 2. Distributor System: 2.1 Estrae i Movie corrispondenti ai filtri 2.2 Estrae i Dvd disponibili corrispondenti ai Movie 2.3 Mostra DvdResults Alternative Corse: 2.1a Nessun Movie trovato: 2.1a.1 Distributor System mostra DialogMessage col messaggio "Nessun film trovato" 2.2a Nessun Dvd disponibile: 2.2a.1 Distributor System mostra DialogMessage col messaggio "Nessun Dvd disponibile" 2.1-2.2a Read error: 2.1-2.2a.1 Distributor System mostra DialogMessage col messaggio "Errore di sistema. Servizio non disponibile"

UC: Search for Dvd 6/6

UC: Get Dvd availability UC: Get Dvd availability Scope: Distributor System Level: User goal Actor: Center System Basic Course: 1. Center System chiama il metodo howmanydvdavailable di DistributorService per il distributore desiterato specificando id di Movie 2. Distributor System conteggia il numero di Dvd disponibili e restituisce AvailableDvd

UC: Create User UC: Create User Scope: Center System Level: User Goal Actor: Center Admin Basic Course: 1. Center Admin sulla maschera UserList preme [Create New User] 2. System mostra la maschera UserDetail vuota 3. Center Admin compila la maschera e preme [Save] 4. Center System: 4.1 Valida i dati 4.2 Salva il nuovo User 4.3 Mostra la maschera UserList aggiornata Alternative Courses: 3a. Center Admin preme [Cancel] 3a.1 Center System mostra la maschera UserList 4.1a Dati non validi: 4.1a.1 Center System mostra la maschera UserDetail con messaggio "Dati non validi" 4.2a Errore di salvataggio: 4.2a.1 Center System Mostra la maschera UserDetail col messaggio "Salvataggio non riuscito"

UC: Create User

UC: Notify Dvd unload UC: Notify Dvd unload Scope: Center System Level: User Goal Actor: Distributor System Basic Course: 1. Distributor System chiama il metodo unloaddvd di CenterService specificando id del distributore ed id del Dvd 2. Center System cancella il Dvd specificato e restituisce UnloadSuccess Alternative Course: 2a Save Error: 2a.1 Center System restituisce UnloadFail

UC: Notify Dvd unload

Architecture

Design Design

UC: Search for Dvd

Distributor Application

Search for Dvd

Distributor Domain Model

Riassumendo ICONIX inizia dopo che sono stati raccolti i requisiti ICONIX si compone di due fasi principali Analysis e Design (per ora abbiamo visto solo Analysis) La Robustness Analysis completa la fase di Analysis ICONIX non specifica in che modo debbano essere trattati i requisiti non funzionali ed architetturali

Osservazioni L'analisi di robustezza completa la fase di analisi I diagrammi di robustezza permettono di verificare che casi d'uso, modello di dominio ed interfacce sono consistenti tra di loro I diagrammi di robustezza saranno la base per la successiva fase di Design

Osservazioni ICONIX sembra un metodo di sviluppo a cascata Ogni fase può essere applicata ad un sotto-problema in modo da rendere iterativo il metodo Esempio: scrivo il testo e disegno le interfacce solo per un sottoinsieme di casi d'uso La gestione delle fasi può essere fatta con UP Le iterazioni di ogni fase possono venire gestite con ICONIX