Ingegneria del software: dai requisiti all'architettura.
|
|
- Adriano Meli
- 8 anni fa
- Visualizzazioni
Transcript
1 Ingegneria del software: dai requisiti all'architettura
2 Bologna: Omid Ehsani Solution Lightcode S.r.l. (
3 Pisa: Lorenzo Barbieri Solution ObjectWay S.p.a. ( Co-fondatore del Gruppo Italiano Utenti Solution Architect (GUISA
4 Trento: Andrea Saltarello Solution Managed Designs S.r.l. ( Presidente dello User Group Italiano.NET (UGIdotNET Co-fondatore del Gruppo Italiano Utenti Solution Architect (GUISA
5 Agenda Solution Architecture Overview Principi di Analisi Modellare la soluzione: da UML ai Domain Specific Languages Break Domain Model e architetture layered Pranzo Progettare Data Access Layer User Interface Architecture Break Architetture real world Q&A
6 Solution Architecture Overview Andrea Saltarello Solution Managed Designs S.r.l. (
7 Cosa è l Architettura? Secondo la definizione ANSI/IEEE Std : L organizzazione basilare di un sistema, rappresentato dalle sue componenti, dalle relazioni che esistono tra di loro e con l ambiente circostante, e dai principi che governano la sua progettazione e evoluzione."
8 Architettura: cosa? L architettura di un sistema *è* definita durante la fase di progettazione. L architettura *non è* parte dell analisi: l analisi si concentra su cosa deve fare il sistema La progettazione si concentra su come esso debba farlo
9 L architetto: Architetto: le responsabilità Recepisce i requisiti funzionali (emersi durante l analisi) e quelli non funzionali (es: availability, scalabilità, security ) Effettua una analisi del rapporto costi/benefici per determinare il miglior modo di soddisfare i requisiti, eventualmente ricorrendo a componenti commerciali o comunque già sviluppati Suddivide i grandi sistemi in (layer di) sottosistemi individualmente assegnabili ad uno sviluppatore o ad un gruppo di lavoro Genera specifiche : sketch, modelli o prototipi per comunicare al gruppo di lavoro le modalità di realizzazione
10 Architettura: luoghi comuni Architetto!= Analista Architetto!= Project Manager Architettura!= Design Al limite Design Architettura Architetto : Developer
11 Principi di Analisi Lorenzo Barbieri Solution ObjectWay S.p.a. (
12 Requisito: una definizione 1. Condizione o capacità che occorre all utente per risolvere un problema o raggiungere un obiettivo 2. Condizione o capacità che deve essere raggiunta o posseduta dal sistema per soddisfare un contratto, standard, specifica o altro documento formale 3. La rappresentazione documentata di una condizione o capacità (1 o 2)
13 Requisiti: la teoria La norma ISO9126, pubblicata nella sua prima versione nel 1991, ha definito il modello dei requisiti qualitativi del software. Secondo tale modello i requisiti sono raggruppabili in 6 "caratteristiche" e in 21 "sottocaratteristiche, distinte fra caratteristiche esterne (orientate all utente) e caratteristiche interne (orientate allo sviluppo e manutenzione).
14 Requisiti: Caratteristiche Funzionalità Disponibilità Usabilità Efficienza Manutenibilità Portabilità Idoneità Maturità Comprensione Tempo Risposta Analizzabilità Adattabilità Accuratezza Tolleranza Apprendimento Utilizzo Risorse Modificabilità Installabilità Interoperabilità Recupero Utilizzabilità Stabilità Coesistenza Sicurezza Attrattiva Collaudabilità Sostituibilità Concordanza Funzionali Non Funzionali
15 Recepire i requisiti La mancanza di requisiti o la mancanza della loro gestione sono tra le cause principali del fallimento dei progetti Recepire i requisiti significa circoscrivere il problema Non sempre è semplice definire i confini di un sistema. Per chiarire meglio i confini può essere utile introdurre il concetto di Attore
16 Attori Un attore è un umano, una macchina o un altro sistema Un attore usa il sistema o è coinvolto durante l uso del sistema (ha una interazione diretta col sistema) Gli attori non sono parte del nostro sistema
17 Casi d uso: introduzione Storie di uso del sistema, user stories Ogni caso d uso è una collezione di scenari di uso Ogni caso d uso è scatenato da almeno un attore Ogni caso d uso descrive: tutti i possibili di modi (scenari) per ottenere un preciso valore o obiettivo per un particolare attore tutte le eccezioni che non permettono di ottenere il valore o l obiettivo Lo stile con cui è scritto varia dall informale/romanzato al formale/pseudocodice deve essere comprensibile al target (in questa fase lo stakeholder)
18 Casi d uso: utilità Rappresentazione grafica sintetica Identificare chi interagisce col sistema Identificare quali interfacce il sistema avrà e verso chi Accordarsi col cliente sulle macrofunzionalità (feature) Raggruppare le feature per attore (obiettivi di ciascun attore) Aiutare a verificare che non si stiano tralasciando feature
19 Requisiti Utente vs. Requisiti Software I Requisiti Utente che abbiamo visto fino ad adesso sono definiti dall utente (li scriviamo attraverso il processo di elicitazione) I Requisiti Software servono per descrivere in maniera completa il sistema. Un Requisito Software: descrive un comportamento del sistema soddisfa un bisogno dell utente, un vincolo, uno standard, etc...
20 Software Requirements Specifications Una SRS deve essere leggibile da: Stakeholder, committenti, etc... (è la base del contratto) Team di progetto (è la base dell analisi, dell architettura e del design) Team di test Team che prepara la documentazione In pratica tutti i soggetti coinvolti nel progetto
21 Specificare i requisiti funzionali tramite Use Case In questa fase gli Use Case saranno molto più dettagliati di quelli usati (opzionalmente) nella fase precedente. Uno use case: è un completo e significativo flusso di interazioni fra attori e sistema è iniziato da un attore che richiama una certa funzionalità del sistema, che reagisce per fornire qualcosa di valore all attore L insieme di tutti gli use case definisce tutti i modi possibili di usare il sistema
22 Cosa non deve contenere una SRS? Design - Come soddisfare i requisiti Test - Come sapere se i requisiti sono stati soddisfatti Piani di progetto Quando e come i requisiti saranno implementati
23 Architettura: esprimere il modello I modelli permettono di rappresentare formalmente un sistema. Tipicamente, è di grande aiuto avvalersi di un formalismo per la modellazione. Lo standard de iure (ma anche de facto) per la modellazione è UML (Unified Modeling Language)
24 Introduzione a Unified Modeling Language Riccardo Golia Solution Architect
25 Agenda Introduzione I tre approcci di UML Classificazione dei diagrammi Diagramma dei casi d uso Diagramma delle classi Diagramma di sequenza
26 Cosa è UML UML (Unified Modeling Language) è una famiglia di notazioni grafiche basate su meta-modello per la descrizione e la rappresentazione di un sistema software basato sul paradigma orientato agli oggetti (Object-Oriented). Notazione: insieme di elementi grafici aggregati a formare diversi diagrammi, ciascuno dedicato a descrivere un diverso aspetto del sistema software. Meta-modello: schema che definisce i concetti stessi di UML al fine di aumentarne il rigore formale per rendere possibile la trasformazione delle notazioni in codice sorgente e viceversa.
27 I tre approcci di UML UML introduce un livello di astrazione maggiore rispetto ai linguaggi di programmazione per agevolare la discussione sulle scelte di design. La sua adozione avviene tipicamente con uno dei seguenti approcci: UML come abbozzo (sketch) Documentazione, discussione e condivisione delle idee Basso rigore formale Selettività: focalizzazione solo su alcuni aspetti dell applicazione Bassa, se non nessuna dipendenza dal tool di modellazione UML come progetto (blueprint) Completezza Alto rigore formale Forward e reverse (round-trip) engineering Forte dipendenza dal tool di modellazione UML come linguaggio di programmazione Diagrammi compilabili No forward e reverse engineering Fortissima dipendenza dal tool di modellazione
28 UML come abbozzo
29 UML come progetto
30 UML come linguaggio
31 Classificazione dei diagrammi 1/2 Diagrammi strutturali: Diagramma delle classi Diagramma degli oggetti Diagramma di deployment Diagramma dei package Diagramma dei componenti Diagramma di struttura composita [*] [*] Novità di UML 2.0
32 Classificazione dei diagrammi 2/2 Diagrammi comportamentali: Diagramma dei casi d uso Diagramma di interazione: Diagramma di sequenza Diagramma di comunicazione Diagramma di interazione generale [*] Diagramma di temporizzazione [*] Diagramma di macchina a stati Diagramma delle attività [*] Novità di UML 2.0
33 Diagramma dei casi d uso 1/5 E un diagramma comportamentale. Serve per identificare i requisiti funzionali di un sistema tramite la descrizione delle interazioni del sistema stesso con le entità ad esso esterne. Uno scenario è una sequenza di passi che caratterizzano una particolare interazione col sistema. Ciascun caso d uso rappresenta un insieme di scenari che hanno tra loro in comune lo scopo finale dell interazione. I diagrammi dei casi d uso sono alla base della definizione delle caratteristiche funzionali di un sistema software.
34 Diagramma dei casi d uso 2/5 Sistema Parte dell applicazione che svolge una funzione specifica. Attore Rappresenta qualcosa o qualcuno che interagisce col sistema. Caso d uso Azione intrapresa da un attore nell ambito del sistema. Relazione Collega gli attori ai casi d uso, oppure attori e casi d uso tra loro stessi: relazione di associazione (tra attori e casi d uso) relazione di inclusione (tra casi d uso) relazione di estensione (tra casi d uso) relazione di generalizzazione (tra casi d uso e tra attori)
35 Diagramma dei casi d uso 3/5 Relazione di associazione Attore Relazione di inclusione Relazione di estensione Relazione di generalizzazione Casi d uso
36 Diagramma dei casi d uso 4/5 Relazione di inclusione: il caso d uso è esteso obbligatoriamente dal caso d uso a cui è collegato. Relazione di estensione: il caso d uso è esteso facoltativamente dal caso d uso che gli è collegato. Si noti il senso della freccia invertito.
37 Diagramma dei casi d uso 5/5 Compilazione di un ordine Per compilare un ordine, il cliente deve poter associare ad esso i suoi dati reperibili in funzione del codice cliente o del nominativo, e i dati del prodotto reperibili tramite il codice dell articolo, la descrizione o la categoria merceologica. Il sistema deve calcolare il prezzo del prodotto in funzione di eventuali sconti associati al cliente e verificare la disponibilità a magazzino dell articolo richiesto.
38 Diagramma delle classi 1/5 E il diagramma più conosciuto ed usato. E un diagramma strutturale, statico. Descrive la struttura delle classi che compongono il sistema software e identifica le relazioni statiche esistenti tra le classi stesse. Permette di individuare le dipendenze tra le classi.
39 Diagramma delle classi 2/5 Classi: Nome (fully-qualified: package::nome_classe) Attributi: visibilità nome : tipo molteplicità = default {proprietà} Operazioni: visibilità nome ([direzione nome : tipo = default]*) : tipo di ritorno {proprietà} Visibilità delle caratteristiche: + public, private, # protected, ~ package Caratteristiche statiche Associazioni semplici e associazioni bidirezionali Classi di associazione Molteplicità Generalizzazioni Aggregazione e composizione Dipendenze Note e vincoli Interfacce e classi astratte Classi parametriche Enumerazioni
40 Diagramma delle classi 3/5 Interfaccia Interfaccia Attributi Operazioni Nota Vincolo Generalizzazione Composizione Dipendenza Associazione Classe Molteplicità
41 Diagramma delle classi 4/5 Aggregazione Rappresenta la relazione fra un aggregato e le sue parti costitutive, dove ciascuna parte può esistere indipendentemente dall aggregato. Composizione Rappresenta la relazione fra un aggregato e le sue parti costitutive, dove ciascuna parte non può esistere senza la classe complessiva. Le parti per esistere necessitano della classe intera, la cui distruzione comporta a cascata la distruzione delle sue parti.
42 Classi astratte Caratteristiche statiche Diagramma delle classi 5/5 Classi parametriche Enumerazioni
43 Diagramma di sequenza 1/5 E un diagramma comportamentale, di interazione dinamica. E il diagramma di interazione più usato. Descrive la collaborazione di un insieme di oggetti che collettivamente hanno l onere di implementare un determinato comportamento. Documenta generalmente il comportamento di un singolo scenario. Include gli oggetti e i messaggi scambiati tra di essi durante l esecuzione di un caso d uso particolare.
44 Diagramma di sequenza 2/5 Partecipante Un oggetto attivo o una entità che partecipa allo scenario descritto dal diagramma di sequenza. Messaggio Sincrono (in genere una chiamata a funzione): l oggetto chiamante rimane in attesa che l esecuzione della funzione invocata sia terminata prima di procedere. Simbolo: Asincrono: non c è bisogno di aspettare la risposta per procedere nella computazione. Simbolo: Ritorno: rappresenta il valore ritornato in seguito all invocazione di una funzione. Simbolo:
45 Diagramma di sequenza 3/5 Found message Partecipanti Attivazione Linea di vita Messaggi sincroni Messaggio di ritorno
46 Diagramma di sequenza 4/5 Creazione di partecipanti Distruzione di partecipanti Chiamata interna
47 Diagramma di sequenza 5/5 Cicli e condizioni: loop: ciclo alt: condizione (if then else) opt: condizione (if then)
48 Sequenza vs Comunicazione
49 Introduzione ai Domain Specific Languages Omid Ehsani Solution Lightcode S.r.l. (
50 Da UML a DSL 1/3 UML è eccellente per abbozzare, progettare, comunicare, documentare E universalmente conosciuto Può descrivere molti aspetti del software Può essere utilizzato a vari livelli: dal più astratto al più dettagliato La tentazione di utilizzarlo per progettare sviluppare documentare in un solo colpo è molto forte... come il lato oscuro della forza!!! Ma...
51 Da UML a DSL 2/3... Ma gli innumerevoli tentativi di sviluppare con UML hanno lasciato sul campo molte vittime Mantenere i modelli aggiornati è estremamente oneroso Quando i modelli non rispecchiano più il codice non servono più a nulla! Tool costosi e spesso non integrati o all altezza delle aspettative Spesso invece che descrivere logiche complesse con i formalismi visuali si fa prima a scrivere codice!... E soprattutto UML descrive il dominio del problema in termini generici: Ampio raggio di utilizzo, ma non adatto ad automatismi
52 Da UML a DSL 3/3 I DSL (Domain Specific Language) invece hanno l obiettivo, e l ambizione, di trasformare i modelli nel prodotto finale Legati ad un dominio specifico e molto ristretto Basati su modelli, generalmente visuali Alto livello di astrazione Estremamente produttivi, facili da utilizzare Generano / Sono il prodotto finale
53 DSL: La tariffazione telefonica Call Record base rate: /s call length call store friend discount rate: /s calendar month friends calls other calls call length store bill billing period
54 Software Factories Un modello organizzativo per industrializzare lo sviluppo del software Linee di produzione Guida contestuale Frameworks, tools, assets MDD (Model Driven Development) => DSL
55 Object Oriented Design Andrea Saltarello Solution Managed Designs S.r.l. (
56 Object Oriented Design overview Come procedere? Secondo l autorevole Gangs of Four : You must find pertinent objects, factor them into classes at the right granularity, define class interfaces and inheritance hierarchies, and estabilish key relationships among them. In pratica, dobbiamo rielaborare il frutto dell analisi tenendo in considerazione le possibilità offerte dall orientamento all oggetto.
57 Diagramma dei casi d uso: un esempio Gestione vendite Internet Client Recupero Ordini Cliente Aggiungi Cliente Database Agente di televendita Rimuovi Cliente
58 OOD: dagli Use Case alle Classi La descrizione dei casi d uso è alla base del design delle classi Sostantivi = classi o attributi A user requests the orders for a customer by using a particular customer ID. The ID is validated by the database, and an error message is displayed if the customer does not exist. If the ID matches a customer, the customer s name, address, and date of birth are retrieved, in addition to any outstanding orders for the customer. Details about each order are retrieved, including the ID, the date, and the individual order items that make up an order. Verbi = operazioni (metodi) Esempi: ValidateCustomer, RetrieveOrders, RetrieveOrderItems
59 Object Oriented Design overview (Reloaded) Possiamo migliorare la struttura statica applicandovi dei design pattern
60 Design Patterns Defined "Each pattern describes a problem which occurs over and over again in our environment, and then describes the core solution to that problem, in such a way that you can use the solution a million times over, without ever doing it the same way twice. Christopher Alexander A Pattern Language, 1977
61 OOD: Design Patterns I pattern costituiscono soluzioni sperimentate a problemi concreti, utilizzabili in contesti applicativi differenti. Possiamo pensare ad un pattern come alla descrizione di un problema comune e di una soluzione generalmente applicabile, fattorizzati in maniera elegante....oppure ancora... Possiamo pensare ai pattern come ad un gergo evoluto per trasmettere idee e comprendere i problemi e le soluzioni in modo più efficiente.
62 Design Patterns unleashed Il Testo di riferimento è: Design Patterns: Elements of Reusable Object-Oriented Software di Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides Sono loro la Gang of Four... da cui [GoF]
63 Design Patterns applied I design pattern ci aiutano a risolvere problemi di tutti i giorni. Esempi: Ricordate VB6? La default instance si ottiene con Singleton Conoscete ADO.NET? La dipendenza dal provider si elimina con Factory Method
64 Design Patterns applied: Factory method Problema: Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses.
65 Design Patterns: il verbo? I pattern sono: Le Sacre Scritture? L A-Team? Oppure La Forza?
66 Dice il saggio Non dobbiamo pensare ai pattern come a dogmi, bensì come alle centurie di Nostradamus: vanno interpretati
67 Pattern vs. Idiomi Un pattern insiste sul paradigma, è un modello, un esempio generico Un idioma insiste sulla tecnologia, è una soluzione specifica ad un linguaggio Ad esempio: Observer vs. delegate/eventi Iterator vs. IEnumerator
68 Idiomatic Design Un design idiomatico rinuncia alla genericità della soluzione basata su pattern a favore di una implementazione basata sulle caratteristiche della tecnologia disponibile
69 Design idiomatico vs..net Classi o strutture? Strutture se il tipo è immutabile ed ha un footprint <= 16 bytes Classi se il footprint è > 16 bytes e/o avete bisogno di ereditarietà Non usare List nelle API pubbliche, preferendo: IList System.Collections.ObjectModel.Collection<T>
70 Application Modeling Andrea Saltarello Solution Managed Designs S.r.l. (
71 Agenda Overview dei pattern architetturali Transaction Script Table Module Active Record Domain Model Service Layer
72 Pattern Architetturali Esistono alcune blueprint utilizzabili per definire l architettura di base di una applicazione: sono pattern architetturali la cui grana è più grossa dei comuni design pattern
73 Transaction Script [P of EAA, 110] Organizes business logic by procedures where each procedure handles a single request from the presentation. Most business applications can be thought of as a series of transactions. A transaction may view some information as organized in a particular way, another will make changes to it. Each interaction between a client system and a server system contains a certain amount of logic. In some cases this can be as simple as displaying information in the database. In others it may involve many steps of validations and calculations. A Transaction Script organizes all this logic primarily as a single procedure, making calls directly to the database or through a thin database wrapper. Each transaction will have its own Transaction Script, although common subtasks can be broken into subprocedures.
74 Transaction Script In pratica In pratica: significa implementare una funzione per ogni operazione atomica Logica procedurale infilata dentro una applicazione basata su toolkit OO
75 Transaction Script : pro & contro Pro: Bassa difficoltà di implementazione Contro: Prono a duplicazione del codice
76 Table Module [P of EAA, 125] A Table Module organizes domain logic with one class per table in the data-base, and a single instance of a class contains the various procedures that will act on the data. The primary distinction with Domain Model (116) is that, if you have many orders, a Domain Model (116) will have one order object per order while a Table Module will have one object to handle all orders.
77 Table Module In pratica Le parole DataTable e incapsulamento vi suggeriscono qualcosa?
78 Table Module : Pro & Contro Pro: Built-in in ADO.NET, e ben supportato da Visual Studio (Typed Dataset) Un solo Table Module per differenti data source Contro: Non ha il concetto di identità degli oggetti Poco OO
79 Active Record [P of EAA, 160] An object that wraps a row in a database table or view, encapsulates the database access, and adds domain logic on that data. An object carries both data and behavior. Much of this data is persistent and needs to be stored in a database. Active Record uses the most obvious approach, putting data access logic in the domain object. This way all people know how to read and write their data to and from the database.
80 Active Record In pratica Una entità per ogni tabella Le entità hanno struttura analoga a quelle delle tabelle del database Le entità contengono la logica di persistenza Le entità contengono logica di dominio It's often hard to tell the difference between a Row Data Gateway and an Active Record. The crux of the matter is whether there's any domain logic present, if so you have an Active Record. A Row Data Gateway should contain only database access logic, and no domain logic. (cit.)
81 Active Record: Pro e Contro Pro: (Relativamente) Semplice da implementare Toolkit che lo supportano/supporteranno (Castle Project, LINQ to SQL) Contro: Fortemente accoppiato allo schema del database
82 Domain Model pattern [P of EAA, 116] An object model of the domain that incorporates both behavior and data. At its worst business logic can be very complex. Rules and logic describe many different cases and slants of behavior, and it's this complexity that objects were designed to work with. A Domain Model creates a web of interconnected objects, where each object represents some meaningful individual, whether as large as a corporation or as small as a single line on an order form.
83 Domain Model In pratica La modellazione object oriented pura e requisite driven della realtà trattata dal dominio del problema Le entità contengono both data and behaviour
84 Domain Model : Pro & Contro Pro: Manutenibilità e flessibilità notevoli Massimo sfruttamento del paradigma OO Contro: La gestione della persistenza può rivelarsi onerosa In assenza di logiche complesse l onere di implementazione non è giustificato
85 Persistenza del Domain Model Il Domain Model rappresenta lo schema dati della nostra applicazione, ma prima o poi dobbiamo fare i conti con la gestione della persistenza dei dati, tipicamente affidata ad un Mapper
86 Data Mapper [P of EAA, 165] A layer of Mappers (473) that moves data between objects and a database while keeping them independent of each other and the mapper itself. The Data Mapper is a layer of software that separates the in-memory objects from the database. Its responsibility is to transfer data between the two and also to isolate them from each other. With Data Mapper the in-memory objects needn't know even that there's a database present; they need no SQL interface code, and certainly no knowledge of the database schema. Since it's a form of Mapper, Data Mapper itself is even unknown to the domain layer.
87 Data Mapper In pratica Esistono delle classi CRUD sulla cui interfaccia appaiono le classi del Domain Model quali vettori dei dati, cioè: Accettano in ingresso istanze del Domain Model Restituiscono istanze del Domain Model
88 Domain Model anemici Un Domain Model è anemico quando viene privato (in parte) del proprio comportamento. Poiché può essere conveniente rendere Persistence Ignorant il Domain Model, ne consegue che l anemia non è una caratteristica on/off, bensì un indicatore
89 Service Layer [P of EAA, 133] Defines an application's boundary with a layer of services that establishes a set of available operations and coordinates the application's response in each operation. A Service Layer defines an application's boundary [Cockburn PloP] and its set of available operations from the perspective of interfacing client layers. It encapsulates the application's business logic, controlling transactions and coordinating responses in the implementation of its operations
90 Service Layer In pratica L approccio appena descritto è spesso definito SOA (Service Oriented Architecture) Quando implementiamo una SOA, i servizi fungono da Remote Facade [P of EAA, 388] verso la business logic da essi incapsulata, quindi: interfacce CRUDy non sono SOA gli oggetti veicolati sono dei semplici DTO Il servizio non implementa la business logic, bensì la usa (ad esempio, scriptando il Domain Model [P of EAA, 116])
91 Ricapitolando In ottica SOA, i servizi: non distribuiscono oggetti, bensì messaggi: il servizio ed il consumer concordano sul contratto da essi definito sono autonomi, e fungono da remote facade verso business logic ad essi locale Se dobbiamo distribuire oggetti,.net offre una *vera* tecnologia ORB: si chiama Remoting e può essere utilizzato anche con http
92 Architettura: un esempio Ipotizziamo una applicazione enterprise con i soliti requisiti: DB-independent (tecnologia e struttura) GUI-independent (almeno Win e Web)
93 Applicazioni Enterprise I più penseranno che siano le applicazioni che usano i computer che appaiono in Star Trek, ma secondo Fowler sono: Applicazioni che usano e consumano una considerevole mole di dati, applicandovi logiche complesse e variabili nel tempo (libera cit. da [P of EAA], N.d.T.)
94 Enterprise application design Per soddisfare i requisiti, optiamo per una architettura stratificata su 3 livelli: presentation, business, data Concentrare la logica applicativa nel business layer facilita l implementazione di GUI eterogenee Isolare l accesso ai dati in un DAL (Data Access Layer) permette di disaccoppiare la business logic dal DB
95 Responsabilità 3-layer Architecure Costruzione delle View Binding View/Entity Tiene solitamente lo stato dell applicazione Tiene la logica di flusso tra View
96 Responsabilità 3-layer Architecure Servizi Applicativi Regole di Business Gestione dello stato delle Entity
97 Responsabilità 3-layer Architecure Logica di Accesso al Database Richiamo di Stored Proc su DB Restituzione di DTO, DataReader, DataSet
98 Data Access Layer Andrea Saltarello Solution Managed Designs S.r.l. ( Giancarlo Sudano Solution ObjectWay S.p.a. (
99 Disegno di un DAL Requisiti del nostro DAL: Indipendenza dallo schema fisico Indipendenza dal DBMS Configurabile come plug-in
100 Business layer vs. Data layer La nostra applicazione disporrà di un DAL specifico per ogni DBMS supportato; definiremo quindi l API che sarà implementata da ogni DAL La business logic riceverà un riferimento al DAL corrente, che sarà creato da una factory Per assicurare l indipendenza dalla struttura del DB, il business layer e il DAL comunicheranno utilizzando esclusivamente istanze di business entities o DTO
101 Architettura del DAL Separiamo la definizione del DAL dalla sua implementazione mediante il pattern Separated Interface [P of EAA, 476] Il business layer riceverà un riferimento al DAL corrente, che sarà creato da una Abstract Factory [GoF, 87]
102 Separated Interface pattern [P of EAA, 476] Defines an interface in a separate package from its implementation. As you develop a system, you can improve the quality of its design by reducing the coupling between the system's parts. A good way to do this is to group the classes into packages and control the dependencies between them This way a client that needs the dependency to the interface can be completely unaware of the implementation. The Separated Interface provides a good plug point for Gateway
103 Abstract Factory pattern Creates an instance of several families of classes Provide an interface for creating families of related or dependent objects without specifying their concrete classes.
104 Unit of Work [P of EAA, 184] When you're pulling data in and out of a database, it's important to keep track of what you've changed. Similarly you have to insert new objects you create and remove any objects you delete. A Unit of Work keeps track of everything you do during a business transaction that can affect the database.
105 Template Method [GoF, 325] Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm's structure.
106 Query Object [P of EAA, 316] An object that represents a database query. A Query Object is an interpreter [GoF], that is, a structure of objects that can form itself into a SQL query. You can create this query by referring to classes and fields rather than tables and columns. In this way those who write the queries can do so independently of the database schema and changes to the schema can be localized in a single place.
107 Identity Map [GoF, 195] Ensures that each object gets loaded only once by keeping every loaded object in a map. Looks up objects using the map when referring to them
108 DAL: Advanced Features Poiché disaccoppiato dalla applicazione, il DAL può implementare varie strategie di ottimizzazione dell accesso ai dati, tra le quali: Lazy load Gestione del lock
109 Lazy Load pattern [P of EAA, 200] An object that doesn't contain all of the data you need but knows how to get it. For loading data from a database into memory it's handy to design things so that as you load an object of interest you also load the objects that are related to it. ( ) A Lazy Load interrupts this loading process for the moment, leaving a marker in the object structure so that if the data is needed it can be loaded only when it is used. As many people know, if you're lazy about doing things you'll win when it turns out you don't need to do them at all.
110 Optimistic Offline Lock [P of EAA, 416] Prevents conflicts between concurrent business transactions by detecting a conflict and rolling back the transaction. Data integrity is at risk once two sessions begin to work on the same records and lost updates are quite possible. Also, with one session editing data that another is reading an inconsistent read becomes likely. ( ) Optimistic Offline Lock solves this problem by validating that the changes about to be committed by one session don't conflict with the changes of another session.
111 Introduzione agli ORM Un Object Relational Mapper è un toolkit consistente in: Una API per eseguire operazioni CRUD Un linguaggio (o API) per la definizione di query operanti su classi e proprietà Una modalità di mapping di metadati (classi<->tabelle, proprietà<->colonne) Noi useremo NHibernate beta (3), porting del framework di persistenza Hibernate per Java
112 DAL: Object/Relational Mapping Se volessimo utilizzare ORM (es: NHibernate) potremmo usare il pattern Adapter [GoF, 139] per trasformarne l interfaccia in quella del DAL (Mapper / Table Data Gateway).
113 Adapter pattern [GoF, 87] Match interfaces of different classes Convert the interface of a class into another interface clients expect. Adapter lets classes work together that couldn't otherwise because of incompatible interfaces.
114 User Interface Architecture Corrado Cavalli Managed Designs S.r.l. (
115 Approccio alla user interface La UI è spesso snobbata E l architettura che conta Area meno nobile Ultima parte ad essere sviluppata Legata Visual Studio 2005 Mancanza di guidelines architetturali Design patterns vs UI?
116 Il problema Realizzare una UI la quale: Non vincoli il modello Possa essere sostituibile Rappresentazione grafica Tecnologia realizzativa (Win/Web/WPF, ) Supporti lo unit-testing
117 La soluzione Applicare i patterns alla UI! (no Transaction Script ) Abbandonare la modalità RAD di Visual Studio Usare VS come semplice designer Impoverire la UI Yes, more code
118 The patterns Model View Controller Model View Presenter Supervising Controller Passive View Presenter First
119 Actors Model Implementa le funzionalità di business E indipendente dal contesto di utilizzo View Implementa la logica di presentazione Rappresenta i dati esposti dal model Gestisce le interazioni con l utente Controller Implementa la logica di controllo Gestisce i comandi della View verso il model Può agire sulla view
120 MVC - Model View Controller Update state Set state Model Change view View Controller User action View e Controller conoscono Model Entrambi agiscono verso Model Model è indipendente da View e Controller
121 MVP - Supervising Controller Set state Model IView Update view View Presenter User action View è aggiornata via Databinding Nei casi complessi interviene il Presenter Le gestures sono delegate al Presenter
122 MVP Passive view Set state Model IView Update view View Presenter User action Solo Presenter conosce Model Solo Presenter agisce verso Model View è passiva (Passive View) Model è indipendente da Presenter
123 Presenter First IModel Set state Model IView Update view View Presenter User event Intercambiabilità di Model, View e Presenter Gli attori sono totalmente disaccoppiati
124 Vantaggi IView Presenter IModel Mock Object Mock Object Unit Testing tool Indipendenza della View Testing indipendente del Presenter
125 MVP Applied: Demo NSK Main Presenter Main Presenter Customers Presenter Customer Presenter Navigation Service Model
126 Bibliografia [GoF] Design Patterns: Elements of Reusable Object-Oriented Software, Erich gamma et al, Addison-Wesley [P of EAA] Pattern of Enterprise Application Architecture, Martin Fowler, Addison-Wesley [DDD] Domain Driven Design, Eric Evans, Addison-Wesley
127 Link: Active Record Pattern, Wikipedia: DomainSpecificLanguage, Bliki Martin Fowler: ml Domain-specific programming language, Wikipedia:
128 Link: GUISA: Wiki UGIdotNET: MSDN Architecture Center: rsemsdn/architetti/default.mspx
129 Credits Solution Architecture Overview: Andrea Saltarello [Managed Designs S.r.l.] Principi di Analisi: Lorenzo Barbieri [ObjectWay S.p.a.] Introduzione a UML Riccardo Golia Introduzione ai Domain Specific Languages Omid Ehsani [Lightcode S.r.l.] Domain Model e architetture layered Andrea Saltarello [Managed Designs S.r.l.] Progettare Data Access Layer Andrea Saltarello [Managed Designs S.r.l.] Giancarlo Sudano [ObjectWay S.p.a.] UI Architecture Corrado Cavalli [Managed Designs S.r.l.]
130 Q&A
Architettura del software: una introduzione
Architettura del software: una introduzione Andrea Saltarello Software Architect @ Managed Designs S.r.l. andrea.saltarello@manageddesigns.it http://blogs.ugidotnet.org/pape http://creativecommons.org/licenses/by-nc-nd/2.5/
DettagliConcetti di base di ingegneria del software
Concetti di base di ingegneria del software [Dalle dispense del corso «Ingegneria del software» del prof. A. Furfaro (UNICAL)] Principali qualità del software Correttezza Affidabilità Robustezza Efficienza
DettagliConsidera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali
Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Progettazione OO E. TINELLI Punto di Partenza Il modello di analisi E una rappresentazione minima del
DettagliSOA!= OO. Andrea Saltarello Software Architect @ Managed Designs S.r.l. andrea.saltarello@manageddesigns.it http://blogs.ugidotnet.
SOA!= OO Andrea Saltarello Software Architect @ Managed Designs S.r.l. andrea.saltarello@manageddesigns.it http://blogs.ugidotnet.org/pape http://creativecommons.org/licenses/by-nc-nd/2.5/ Chi sono Solution
DettagliIngegneria del Software. Introduzione ai pattern
Ingegneria del Software Introduzione ai pattern 1 Definizione di pattern [dal [dal vocabolario vocabolario Garzanti] Garzanti] Alcuni esempi: Pattern architetturale Pattern di circuito stampato Pattern
DettagliObject Oriented Programming
OOP Object Oriented Programming Programmazione orientata agli oggetti La programmazione orientata agli oggetti (Object Oriented Programming) è un paradigma di programmazione Permette di raggruppare in
DettagliUniversità degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi
Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Ingegneria del Software La fase di Analisi Giulio Destri Ing. del software: Analisi - 1 Scopo del modulo Definire
DettagliModellazione dei dati in UML
Corso di Basi di Dati e Sistemi Informativi Modellazione dei dati in UML Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine Introduzione UML (Unified Modeling Language):
DettagliStrumenti di modellazione. Gabriella Trucco
Strumenti di modellazione Gabriella Trucco Linguaggio di modellazione Linguaggio formale che può essere utilizzato per descrivere (modellare) un sistema Il concetto trova applicazione soprattutto nell
DettagliDesign Patterns. Sommario. Architettura a 3 Livelli Concetti Generali Presentazione Dominio Sorgente Dati DIB 1. Design Patterns DIB 2
DIB 1 Sommario Architettura a 3 Livelli Concetti Generali Presentazione Dominio Sorgente Dati DIB 2 Architettura a 3 Livelli DIB 3 Architettura a 3 Livelli Presentazione Gestione dell interazione degli
Dettagli!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9
!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&)!"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9 Slide 1 Paradigmi di Programmazione! Un linguaggio supporta uno stile di programmazione se
Dettagli7. Architetture Software
7. Architetture Software progettare la struttura Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 7. Architetture Software 1 / 20 Scopo della fase di design
DettagliAPI e socket per lo sviluppo di applicazioni Web Based
API e socket per lo sviluppo di applicazioni Web Based Cosa sono le API? Consideriamo il problema di un programmatore che voglia sviluppare un applicativo che faccia uso dei servizi messi a disposizione
DettagliIndice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi
Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)
DettagliOrganizzazione degli archivi
COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i
DettagliL ambizione dei design pattern (letteralmente schemi di programmazione) è quella di offrire soluzioni a problemi ricorrenti che facilitano lo
Design Pattern L ambizione dei design pattern (letteralmente schemi di programmazione) è quella di offrire soluzioni a problemi ricorrenti che facilitano lo sviluppo dei programmi, il loro mantenimento,
DettagliIl documento rappresenta una guida sintetica per descrivere sia la filosofia che il modulo software per l implementazione dei workflow in recuper@2.
Il documento rappresenta una guida sintetica per descrivere sia la filosofia che il modulo software per l implementazione dei workflow in recuper@2.0 ver 1.0 del 19/03/2013 Nettuno Solutions s.r.l. Viale
DettagliUML Component and Deployment diagram
UML Component and Deployment diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania I diagrammi UML Classificazione
DettagliUniRoma2 - Ingegneria del Software 1 1
Object Oriented Analysis - OOA La fase di OOA definisce, secondo un approccio ad oggetti, COSA un prodotto software deve fare (mentre la fase di OOD definisce, sempre secondo un approccio ad oggetti, COME
DettagliSequence Diagram e Collaboration Diagram
Sequence Diagram e Collaboration Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Sommario Interaction
DettagliProgettaz. e sviluppo Data Base
Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo
DettagliAutomazione Industriale 4- Ingegneria del Software
Automation Robotics and System CONTROL Università degli Studi di Modena e Reggio Emilia Automazione Industriale 4- Ingegneria del Software Cesare Fantuzzi (cesare.fantuzzi@unimore.it) Ingegneria Meccatronica
DettagliUML e (R)UP (an overview)
Lo sviluppo di sistemi OO UML e (R)UP (an overview) http://www.rational.com http://www.omg.org 1 Riassumento UML E un insieme di notazioni diagrammatiche che, utilizzate congiuntamente, consentono di descrivere/modellare
DettagliPROGRAMMA CORSO Analista Programmatore JAVA - ORACLE
PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE 1. JAVA 1.1 Introduzione a Java Introduzione Cosa è Java 1.2 Sintassi e programmazione strutturata variabili e metodi tipi di dati, array operatori
Dettagli12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,
DettagliDispensa di database Access
Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di
DettagliDDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione
SQL DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE SQL è più di un semplice linguaggio di interrogazione! Linguaggio di definizione dati (Data-definition language, DDL):! Crea/distrugge/modifica relazioni
DettagliPresentazione di Cedac Software
Agenda Presentazione di Cedac Software SOA ed ESB Analisi di un caso studio Esempi Q&A Presentazione di Cedac Software 1 2 Presentazione di Cedac Software S.r.l. Divisione Software Azienda nata nel 1994
DettagliSistemi informativi secondo prospettive combinate
Sistemi informativi secondo prospettive combinate direz acquisti direz produz. direz vendite processo acquisti produzione vendite INTEGRAZIONE TRA PROSPETTIVE Informazioni e attività sono condivise da
DettagliINGEGNERIA DEL SOFTWARE. Prof. Paolo Salvaneschi
Università di Bergamo Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica INGEGNERIA DEL SOFTWARE Prof. Paolo Salvaneschi 1 Obiettivi Scopi del corso: - Fornire gli elementi di base della disciplina,
DettagliProgettaz. e sviluppo Data Base
Progettaz. e sviluppo Data Base! Introduzione ai Database! Tipologie di DB (gerarchici, reticolari, relazionali, oodb) Introduzione ai database Cos è un Database Cos e un Data Base Management System (DBMS)
DettagliIl modello di ottimizzazione SAM
Il modello di ottimizzazione control, optimize, grow Il modello di ottimizzazione Il modello di ottimizzazione è allineato con il modello di ottimizzazione dell infrastruttura e fornisce un framework per
DettagliIntroduzione. Il software e l ingegneria del software. Marina Mongiello Ingegneria del software 1
Introduzione Il software e l ingegneria del software Marina Mongiello Ingegneria del software 1 Sommario Il software L ingegneria del software Fasi del ciclo di vita del software Pianificazione di sistema
DettagliScenario di Progettazione
Appunti del 3 Ottobre 2008 Prof. Mario Bochicchio SCENARIO DI PROGETTAZIONE Scenario di Progettazione Il Committente mette a disposizione delle risorse e propone dei documenti che solitamente rappresentano
DettagliCorso di Laurea Triennale in Ingegneria Informatica. Corso di Ingegneria del software A. A. 2004-2005. Marina Mongiello
Corso di Laurea Triennale in Ingegneria Informatica Corso di Ingegneria del A. A. 2004-2005 1 La progettazione È applicata indipendentemente dal modello di processo utilizzato. Parte dal punto in cui sono
DettagliDatabase. Si ringrazia Marco Bertini per le slides
Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida
DettagliProgrammazione Java Avanzata Spring - JDBC
Programmazione Java Avanzata Spring - JDBC Ing. Gianluca Caminiti Riferimenti Spring http://www.springsource.org/ (scaricate il reference) Beginning Spring 2 - From Novice to Professional. APress. 2008
DettagliGenerazione Automatica di Asserzioni da Modelli di Specifica
UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Generazione Automatica di Asserzioni da Modelli di Specifica Relatore:
DettagliProgetto. Struttura del documento di specifica dei requisiti, Casi d uso. manuel.comparetti@iet.unipi.it
Progetto Struttura del documento di specifica dei requisiti, Casi d uso manuel.comparetti@iet.unipi.it 1 Documenti da produrre Il progetto deve comprendere i seguenti documenti: Documento di specifica
DettagliI casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.
UML e i Casi d USO I casi d uso specificano una sequenza di azioni che producono un risultato visibile agli attori del sistema. Essi nascono per fornire descrizioni delle capacità del sistema. I casi d
DettagliSWIM v2 Design Document
PROGETTO DI INGEGNERIA DEL SOFTWARE 2 SWIM v2 DD Design Document Matteo Danelli Daniel Cantoni 22 Dicembre 2012 1 Indice Progettazione concettuale Modello ER Entità e relazioni nel dettaglio User Feedback
DettagliModellazione di sistema
Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Modellazione di sistema E. TINELLI Contenuti Approcci di analisi Linguaggi di specifica Modelli di
DettagliAddition X DataNet S.r.l. www.xdatanet.com www.xdatanet.com
Addition è un applicativo Web che sfrutta le potenzialità offerte da IBM Lotus Domino per gestire documenti e processi aziendali in modo collaborativo, integrato e sicuro. www.xdatanet.com Personalizzazione,
DettagliSoftware solido e usabile
La tecnica di analisi e progetto Domain-Driven Design Software solido e usabile Nel cuore della complessità del software Che cos è il Domain-Driven Design È un approccio alla costruzione di sistemi software
DettagliLuca Milan http://fewbit.com info@fewbit.com
Luca Milan http://fewbit.com info@fewbit.com At its worst business logic can be very complex. Rules and logic describe many different cases and slants of behavior, and it s this complexity that objects
DettagliUn approccio innovativo per il delivery di servizi in infrastrutture di nomadic computing
Un approccio innovativo per il delivery di servizi in infrastrutture di nomadic computing Relatore Prof. Ing. Stefano Russo Correlatore Ing. Domenico Cotroneo Candidato Armando Migliaccio matr. 41/2784
DettagliEsercitazioni di PROGETTAZIONE DEL SOFTWARE A.A. 2011-2012
Sapienza Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Corso di Laurea in Ingegneria Informatica ed Automatica Corso di Laurea in Ingegneria dei Sistemi Informatici
DettagliDomain- Driven Design Giovedì, 21 giugno 2012 Speaker: Manuel Scapolan
Domain- Dri ven Design Giovedì, 21 giugno 2012 Speaker: Manuel Scapolan Domain Driven Design E un insieme di principi che ci aiutano a non fallire nel processo di sviluppo di un software * * considerando
DettagliCORSO DI PROGRAMMAZIONE JAVA
CORSO DI PROGRAMMAZIONE JAVA Corso di Programmazione Java Standard Edition ( MODULO A) OBIETTIVI ll corso ha come obiettivo quello di introdurre la programmazione a oggetti (OOP) e di fornire solide basi
Dettaglidesign patterns e GRASP
design patterns e GRASP 1 design patterns una coppia / particolarmente importante a cui viene dato un nome vengono espressi in un formato molto rigido, ad es. nome descrizione sintetica della descrizione
DettagliBrochure Internet. Versione 2010.1 The Keyrules Company s.r.l. Pagina 2 di 8
Ogni organizzazione possiede un sistema di regole che la caratterizzano e che ne assicurano il funzionamento. Le regole sono l insieme coordinato delle norme che stabiliscono come deve o dovrebbe funzionare
DettagliEXPLOit Content Management Data Base per documenti SGML/XML
EXPLOit Content Management Data Base per documenti SGML/XML Introduzione L applicazione EXPLOit gestisce i contenuti dei documenti strutturati in SGML o XML, utilizzando il prodotto Adobe FrameMaker per
DettagliDESIGN PATTERN CREAZIONALI INGEGNERIA DEL SOFTWARE INTRODUZIONE SINGLETON. Scopo dei design pattern creazionali
DESIGN PATTERN CREAZIONALI DESIGN PATTERN CREAZIONALI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2013 2014 rcardin@math.unipd.it
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Design Pattern: Storia Parte b versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliBase di dati e sistemi informativi
Base di dati e sistemi informativi Una base di dati è un insieme organizzato di dati opportunamente strutturato per lo svolgimento di determinate attività La base di dati è un elemento fondamentale per
DettagliArchitettura MVC-2: i JavaBeans
Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con
DettagliGenLApp Generazione Lista di Applicazioni. Design Patterns. Classi Essenziali. Modellazione Dati. Progettazione della Linea di Prodotti
Progettazione della Linea di Prodotti GenLApp Generazione Lista di Applicazioni Progettazione della Linea di Prodotti Classi Essenziali Responsabilità sui 3 Livelli Architetturali Descrizione delle Responsabilità
DettagliObject Oriented Software Design
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Object Oriented Software Design Corso di Tecniche di Programmazione Laurea in Ingegneria Informatica (Canale di Ingegneria
Dettagli19. LA PROGRAMMAZIONE LATO SERVER
19. LA PROGRAMMAZIONE LATO SERVER Introduciamo uno pseudocodice lato server che chiameremo Pserv che utilizzeremo come al solito per introdurre le problematiche da affrontare, indipendentemente dagli specifici
DettagliAnalisi dei requisiti e casi d uso
Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello del sistema 4 2.1 Requisiti hardware........................ 4 2.2 Requisiti software.........................
DettagliDistributed Object Computing
Evoluzione Architetturale Distributed omputing entralizzata Monolitica anni 60-70 Reti locali di P anni 80 Reti lient Server anni 80-90 Internet The network is the computer Paolo Falcarin Sistemi Informativi
DettagliArchitettura del software: dai Casi d Uso al Modello
Architettura del software: dai Casi d Uso al Modello Lorenzo Barbieri Sono un Senior Trainer/Consultant in ObjectWay SpA (www.objectway.it), specializzato in architetture Microsoft.NET, Windows, SQL Server,
DettagliWorkFlow Management Systems
WorkFlow Management Systems Cosa è un? Automazione di un processo aziendale (business process) con: documenti, informazioni e compiti partecipanti insieme predefinito di regole obiettivo comune 2 Esempi
DettagliUna metodologia per la specifica di software basato su componenti
Luca Cabibbo Architetture Software Una metodologia per la specifica di software basato su componenti Dispensa ASW 445 ottobre 2014 La mappa non è il territorio. Douglas R. King 1 -Fonti [UML Components],
DettagliL o. Walter Ambu http://www.japsportal.org. japs: una soluzione agile (www.japsportal.org)
L o JAPS: una soluzione Agile Walter Ambu http://www.japsportal.org 1 Lo sviluppo del software Mercato fortemente competitivo ed in continua evoluzione (velocità di Internet) Clienti sempre più esigenti
DettagliSiti web centrati sui dati Architettura MVC-2: i JavaBeans
Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con
DettagliVolumi di riferimento
Simulazione seconda prova Esame di Stato Gestione di un centro agroalimentare all ingrosso Parte prima) Un nuovo centro agroalimentare all'ingrosso intende realizzare una base di dati per l'attività di
DettagliCorso: Sistemi di elaborazione delle informazioni 2. Anno Accademico: 2007/2008. Docente: Mauro Giacomini
Corso: Sistemi di elaborazione delle informazioni 2. Anno Accademico: 2007/2008. Docente: Mauro Giacomini Organizzazione no-profit per lo sviluppo di standard che fornisce linee guida per: lo scambio la
DettagliArchitettura SW Definizione e Notazioni
Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Stili Architetturali E. TINELLI Architettura SW Definizione e Notazioni Definizione ANSI/IEEE Std Std1471-2000
DettagliSoluzione dell esercizio del 2 Febbraio 2004
Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo
DettagliArchitetture software
Corso di Laurea Magistrale in Ingegneria Informatica Corso di Ingegneria del A. A. 2013-2014 Architettura software 1 Architetture software Sommario Definizioni 2 Architettura Definizione. L architettura
DettagliB.P.S. Business Process Server ALLEGATO C10
B.P.S. Business Process Server ALLEGATO C10 REGIONE BASILICATA DIPARTIMENTO PRESIDENZA DELLA GIUNTA REGIONALE UFFICIO SISTEMA INFORMATIVO REGIONALE E STATISTICA Via V. Verrastro, n. 4 85100 Potenza tel
DettagliOggetti Lezione 3. aspetti generali e definizione di classi I
Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione
DettagliUML - Unified Modeling Language
UML E CASI D USO UML - Unified Modeling Language Linguaggio stardardizzato per identificare e modellizzare le specifiche di un S.I. Coerente con il paradigma della programmazione ad oggetti Definito a
DettagliDiagrammi dei package
Diagrammi dei package Package Meccanismo di raggruppamento di più classi (riferito al momento della compilazione) in unità di livello più alto, al fine di dominare la complessità strutturale di un sistema
DettagliLa specifica del problema
2.9 (Caso di studio facoltativo) Pensare a oggetti: esame del problema Iniziamo ora a esaminare il nostro caso di studio di progettazione e implementazione orientate agli oggetti. Le sezioni Pensare a
DettagliCiclo di vita dimensionale
aprile 2012 1 Il ciclo di vita dimensionale Business Dimensional Lifecycle, chiamato anche Kimball Lifecycle descrive il framework complessivo che lega le diverse attività dello sviluppo di un sistema
DettagliIntroduzione ai Web Services Alberto Polzonetti
PROGRAMMAZIONE di RETE A.A. 2003-2004 Corso di laurea in INFORMATICA Introduzione ai Web Services alberto.polzonetti@unicam.it Introduzione al problema della comunicazione fra applicazioni 2 1 Il Problema
DettagliRational Unified Process Introduzione
Rational Unified Process Introduzione G.Raiss - A.Apolloni - 4 maggio 2001 1 Cosa è E un processo di sviluppo definito da Booch, Rumbaugh, Jacobson (autori dell Unified Modeling Language). Il RUP è un
DettagliProgettazione : Design Pattern Creazionali
Progettazione : Design Pattern Creazionali Alessandro Martinelli alessandro.martinelli@unipv.it 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali
DettagliLinguaggi e Paradigmi di Programmazione
Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una
Dettagli1. BASI DI DATI: GENERALITÀ
1. BASI DI DATI: GENERALITÀ BASE DI DATI (DATABASE, DB) Raccolta di informazioni o dati strutturati, correlati tra loro in modo da risultare fruibili in maniera ottimale. Una base di dati è usualmente
DettagliReplica di Active Directory. Orazio Battaglia
Orazio Battaglia Active Directory è una base di dati distribuita che modella il mondo reale della organizzazione. Definisce gli utenti, i computer le unità organizzative che costituiscono l organizzazione.
DettagliI database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:
Il modello relazionale I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: 1. forniscono sistemi semplici ed efficienti per rappresentare
DettagliIntroduzione al mondo della persistenza. Dott. Doria Mauro doriamauro@gmail.com
Hibernate Introduzione al mondo della persistenza Dott. Doria Mauro doriamauro@gmail.com La questione della persistenza Il modo dei database è complesso e le tecniche e le tecnologie sono molte. Per anni
DettagliCapitolo 13. Interrogare una base di dati
Capitolo 13 Interrogare una base di dati Il database fisico La ridondanza è una cosa molto, molto, molto brutta Non si devono mai replicare informazioni scrivendole in più posti diversi nel database Per
DettagliArchitetture Applicative
Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture
DettagliGuida all uso del web service SDMX
Guida all uso del web service SDMX Introduzione L obiettivo di questo documento è l illustrazione sintetica degli step che tecnicamente bisogna compiere affinché un generico client sia in grado di interagire
DettagliProcesso parte VII. Strumenti. Maggiore integrazione. Sviluppo tecnologico
Strumenti Processo parte VII Leggere Cap. 9 Ghezzi et al. Strumenti software che assistono gli ingegneri del software in tutte le fasi del progetto; in particolare progettazione codifica test Evoluzione
DettagliRiccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino
Integration Services Project SQL Server 2005 Integration Services Permette di gestire tutti i processi di ETL Basato sui progetti di Business Intelligence di tipo Integration services Project SQL Server
DettagliIngegneria del Software
Ingegneria del Software Processi di Sviluppo Agile Origini dello Sviluppo Agile Proposta di un gruppo di sviluppatori che rilevava una serie di criticità degli approcci convenzionali: Troppa rigidità dei
DettagliBasi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS
Basi di Basi di (Sistemi Informativi) Sono una delle applicazioni informatiche che hanno avuto il maggiore utilizzo in uffici, aziende, servizi (e oggi anche sul web) Avete già interagito (magari inconsapevolmente)
DettagliCorso di Amministrazione di Reti A.A. 2002/2003
Struttura di Active Directory Corso di Amministrazione di Reti A.A. 2002/2003 Materiale preparato utilizzando dove possibile materiale AIPA http://www.aipa.it/attivita[2/formazione[6/corsi[2/materiali/reti%20di%20calcolatori/welcome.htm
DettagliAutomazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it
Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione
DettagliProgrammazione a Oggetti Modulo B
Programmazione a Oggetti Modulo B Progetto Dott. Alessandro Roncato 4/10/2011 Progetto Da svolgere singolarmente Scadenza consegna: una settimana prima dello scritto; Valutazione in base a: Corretta compilazione
DettagliUna metodologia di progettazione di applicazioni web centrate sui dati
Una metodologia di progettazione di applicazioni web centrate sui dati A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 1 / 2 0 1 2 Progettazione logica di un sito web centrato sui dati Si
DettagliCandidato: Luca Russo Docente: Prof. Raffaele Montella. 27 Marzo 2013
e di e di Candidato: Luca Russo Docente: Corso di laurea in Informatica Applicata Facoltá di Scienze e Tecnologie Programmazione su Reti 27 Marzo 2013 Traccia d esame Sviluppare multitier con disaccoppiamento
DettagliBasi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL
Basi di dati Il Linguaggio SQL Data Definition Language (DDL) Data Definition Language: insieme di istruzioni utilizzate per modificare la struttura della base di dati Ne fanno parte le istruzioni di inserimento,
DettagliImplementazione di MVC. Gabriele Pellegrinetti
Implementazione di MVC Gabriele Pellegrinetti 2 Come implementare il pattern Model View Controller con le tecnologie JSP, ASP e XML Implementazione del pattern MVC in Java (JSP Model 2) SUN è stato il
DettagliLa Metodologia adottata nel Corso
La Metodologia adottata nel Corso 1 Mission Statement + Glossario + Lista Funzionalià 3 Descrizione 6 Funzionalità 2 Schema 4 Schema 5 concettuale Logico EA Relazionale Codice Transazioni In PL/SQL Schema
Dettagli