Use Case Driven Object Modeling: ICONIX Un esempio di specifica, analisi, progetto e sviluppo utilizzando ICONIX (applicazione web) 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)
Center System Analysis Center System Analysis
Center System
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
Center Domain Model
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
Architecture
Center System Design Center System Design
JSF JSF sta per Java Server Faces JSF è una specifica Esistono varie implementazioni MyFaces è l'implementazione fatta da Apache JSF è un framework per sviluppare applicazioni Web Esistono varie estensioni e componenti accessori Tomahawk Trinidad Facelets
JSF Application Components Un'applicazione JSF è fatta di vari componenti Librerie (es. MyFaces.jar) File di configurazione web.xml faces-config.xml Classi Java Pagine Web Altre risorse...
JSF Application Structure 1/2 Il codice di un'applicazione JSF è tipicamente strutturato in layers Presentation Layer: contiene la logica di presentazione Domain Layer: contiene la logica applicativa Mapping Layer: risolve il problema di Impedance Mismatch
JSF Application Structure 2/2 JSF è fatto in modo da favorire l'impiego del patter Model- View-Controller Model: JSF non pone nessun vincolo riguardo alla logica applicativa View: JSF mette a disposizione molti tag oltre quelli di HTML Controller: sono classi Java (in JSF sono riferite come Backing-Beans)
JSF Tipical Dependencies In un'applicazione JSF tipicamente accade che Le pagine fanno riferimento ad uno o più Backing-Bean I Backing-Bean possono far riferimento ai componenti delle pagine (ma non succede spesso) I Backing-Bean accedono al Modello di dominio
JSF Interaction 1/3 Interazione schematica tra l'utente dell'applicazione e JSF L'utente digita nella barra degli indirizzi del proprio browser un indirizzo di pagina (parte una richiesta HTTP) Il server web (es. Tomcat) riceve la richiesta ed interagisce con l'applicazione (la richiesta viene passata a JSF) JSF genera la pagina richiesta e la restituisce
JSF Interaction 2/3 Le interazioni di un'utente con una pagina sul proprio browser vengono trasformate in invocazioni di metodi sui Backing- Beans
JSF Interaction 3/3 Per semplificare i diagrammi si può supporre che l'utente interagisca direttamente con i Backing-Beans Questa semplificazione è comoda in fase di Design
Create New User
Center System