ottobre Fonti [SSA] Chapter 19, The Development Viewpoint Luca Cabibbo Punto di vista dello Sviluppo Luca Cabibbo SwA

Documenti analoghi
UML I diagrammi implementativi

DIAGRAMMI DEI PACKAGE

ottobre Fonti [SSA] Chapter 15, Introduction to the Viewpoint Catalog [SSA] Appendix, Other Viewpoint Sets Luca Cabibbo

A. Ferrari sistemi informativi e sistemi informatici

Vincenzo Gervasi, Laura Semini Ingegneria del Software Dipartimento di Informatica Università di Pisa

Scenari e applicazione di scenari

Processi iterativi. Marina Zanella - Ingegneria del Software RUP 1

Introduzione al corso

Progettare per gli attributi di qualità

INGEGNERIA DEL SOFTWARE

Introduzione ai casi d uso

Introduzione. Sommario. Il software. Definizione di Ingegneria del software

Analisi e Progettazione del Software

ottobre Fonti [SSA] Chapter 3, Viewpoints and Views Description of Software Intensive-Systems Luca Cabibbo Punti di vista e viste

Capitolo 7. Ingegneria del Software. Mauro Giacomini Pearson Addison-Wesley. All rights reserved

Informazioni. ottobre Fonti. [SSA] Chapter 17, The Information Viewpoint. Luca Cabibbo. Punto di vista delle Informazioni.

Progettazione di dettaglio

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

MDD Tools in CSI Piemonte: industrializzazione dello sviluppo e progetto open source

Introduzione D B M G

Elena Baralis 2007 Politecnico di Torino 1

Introduzione. Contenuti da Cap. 1 Ghezzi et al.

Pratiche di XP [Beck] Extreme Programming (XP) Story Card. Gioco di pianificazione

Sistemi informativi D B M G. Introduzione. Introduzione alle basi di dati D B M G 2. Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1

Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS

Elena Baralis 2007 Politecnico di Torino 1

Luca Cabibbo A P S. Analisi e Progettazione del Software. Agile. 3.1 Metodi e atteggiamenti agili

2. Finalità generali previste dalle indicazioni nazionali

Allegato 1 Descrizione profili professionali

Ingegneria del Software 16. Progettazione dettaglio. Dipartimento di Informatica Università di Pisa A.A. 2014/15

UML. Il linguaggio UML e ArgoUML. Ingegneria dei sistemi software 2009/ /09/2009

software Progettazione software IS Corso di Ingegneria del Software 1 Contenuti Progettare prima di produrre Dall analisi alla progettazione

[POSA] Pattern-Oriented Software Architecture A System of Patterns

ISTITUTO ISTRUZIONE SUPERIORE

PRIMO MODULO. DURATA: 80 ore CONTENUTI

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

Il PROCESSO UNIFICATO

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo.

Luca Cabibbo. Persistenza di oggetti

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

Il Project Management nei progetti IT. La fase di Analisi. Ing. Giulio Destri. Università degli Studi di Parma Corso di Laurea in Informatica

Unified Modeling Language (UML)

I lucidi messi a disposizione sul sito del corso di Analisi e progettazione del software NON sostituiscono il libro di testo

Processi (di sviluppo del) software. Fase di Analisi dei Requisiti. Esempi di Feature e Requisiti. Progettazione ed implementazione

MATERIALI PER LA DISCUSSIONE

UML Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2012/13

PIANO DI STUDIO DELLA DISCIPLINA DISCIPLINA: Tecnologia e Progettazione di Sistemi Informatici e di Telecomunicazioni

Corso di Ingegneria del Software. Modelli di produzione del software

Introduzione...xv. Giorno 1 - Una panoramica sui concetti principali...1

Implementation diagram Component diagram - mostrano la struttura del codice Deployment diagram - mostrano la struttura del sistema run-time

In passato, occuparsi di informatica era sinonimo di programmare computer

2131 Specialisti in informatica 2132 Programmatori informatici Informatici e telematici Tecnici informatici

Laboratorio di Progettazione di Sistemi Software Progetto: UMLPatterns2Java

Software solido e usabile: come integrare ingegneria dell usabilità e del software

I PROCESSI DELL AREA SISTEMI INFORMATIVI

DESCRIZIONE PROFILI PROFESSIONALI

Laboratorio di Sistemi Software Progetto Pattern Generator Specifica iniziale

Modulo 16. Introduzione ai Design Patterns. Tutte le case assolvono alla medesima funzione: offrire uno spazio abitativo

Programmazione Orientata agli Oggetti in Linguaggio Java

Laboratorio di Progettazione di Sistemi Software Design Patterns

CORSO DI PROGRAMMAZIONE JAVA STANDARD + ENTERPRISE EDITION

La fase di Progettazione

PROGRAMMAZIONE DIDATTICA DI DIPARTIMENTO A.S. 2017/2018

Una metodologia per la specifica di software a componenti

1. UML 2 ed il Processo Unificato

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 11. Leggibilità. Aprile Leggibilita 1

Configurazione di riferimento di IP Office Server Edition IP Office 8.1

ARCHITECTING AND DESIGNING J2EE APPLICATIONS

Ingegneria del Software II

Ottenere qualità: stili, tattiche e prospettive architetturali

A mia moglie Ilaria ed ai miei familiari

Analisi e progettazione orientata agli oggetti

ACADEMY SVILUPPATORE JAVA

Corso di Ingegneria del Software

INTERAZIONE UOMO-MACCHINA

Ambienti di Sviluppo. Linguaggi compilati

ISTITUZIONE SCOLASTICA DI ISTRUZIONE TECNICA LYCÉE TECHNIQUE PROGRAMMAZIONE EDUCATIVA E DIDATTICA ANNUALE PER COMPETENZE A.S.

L uso delle tecnologie informatiche per il trattamento dell informazione e della comunicazione archivistica

Introduzione all Ingegneria del Software

Prefazione...IX. Ringraziamenti...XIII. Gli autori...xv. Capitolo 1 - Le tecnologie mobili: la nuova generazione di tecnologie dell informazione...

Elementi di Informatica LB Basi di Dati. Anno accademico 2007/2008 Prof. Stefano Contadini

Corso di Ingegneria del Software

Basi di dati. Base di dati

IS Corso di Ingegneria del Software 1

Un linguaggio per la rappresentazione formale di vincoli su scenari d'uso

OO design pattern. Design pattern: motivazioni

Cosa è un programma. Informatica di Base -- R.Gaeta 18

Programma didattico. Sviluppare Applicazioni Distribuite in ambiente. Spring MVC

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Introduzione ad UML E.

Viste e punti di vista architetturali

MATRICE TUNING competenze versus unità didattiche, Corso di Laurea Magistrale in Informatica (classe LM-18), Università degli Studi di Cagliari

Basi di dati. Elena Baralis Politecnico di Torino

ottobre Fonti [SSA] Chapter 20, The Deployment Viewpoint Luca Cabibbo Punto di vista del Deployment Luca Cabibbo SwA

Interfacce per End-User Debugging nel contesto Internet of Things

Introduzione a DevOps

Qualità del software e progettazione per le qualità

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

Transcript:

Luca Cabibbo Architetture Software Dispensa AS 19 ottobre 2008 1 -Fonti [SSA] Chapter 19, The Development Viewpoint 2

Obiettivi - Obiettivi e argomenti descrivere il punto di vista dello Sviluppo Argomenti punto di vista dello sviluppo interessi modelli problemi e insidie 3 * Il punto di vista dello Sviluppo descrive l architettura che sostiene il processo di sviluppo del software interessi organizzazione in moduli; elaborazione comune; standardizzazione del progetto; standardizzazione del testing; strumentazione; organizzazione del codice sorgente modelli modelli della struttura dei moduli; modelli di progetto comuni; modelli del codice parti interessate sviluppatori e verificatori applicabilità tutti i sistemi 4

Vista dello sviluppo La vista dello sviluppo descrive la struttura e l organizzazione del codice, la gestione delle dipendenze, la gestione delle configurazioni, e l uso di linee guida e politiche comuni nel progetto per fornire un approccio omogeneo all implementazione e alla verifica del software Rilevanza la vista dello sviluppo costituisce il punto di partenza per il lavoro successivo di progettazione, implementazione e test i moduli sono solitamente l unità di base del lavoro di sviluppo e rilascio 5 * Interessi (1) Organizzazione in moduli l organizzazione del codice in moduli strutturati aiuta a comprendere meglio il codice e le dipendenze tra i suoi elementi ragionando sulle dipendenze è possibile capire quanto un sistema è comprensibile, costruibile, modificabile Elaborazione comune opportuno separare aspetti comuni nel codice, e garantirne una gestione uniforme ad es., logging e parametri di configurazione evita ripetizioni e inconsistenze 6

Interessi (2) Standardizzazione del progetto l uso di standard e di convenzioni migliora la comprensibilità e la modificabilità del codice, riducendo il tempo di sviluppo ad es., uso di design pattern, convenzioni per l avvio e l arresto di moduli/processi Standardizzazione del testing quali approcci, tecnologie e convenzioni seguire per le diverse attività di verifica del software test unitari, di integrazione, di carico, usabilità,... 7 Interessi (3) Strumentazione per strumentazione si intende la pratica di aggiungere codice speciale ad es., logging per favorire il debugging e la profilazione questo codice deve per poter essere successivamente disattivato e/o eliminato Organizzazione del codice sorgente organizzazione del codice (sorgente ed eseguibile) nel file system o in un CVS convenzioni di codifica un organizzazione omogenea favorisce le attività legate all implementazione 8

* Modelli Modelli per la vista dello sviluppo modelli per la struttura dei moduli ad es., diagrammi dei package di UML modelli di progetto comuni descrivono come gestire l elaborazione comune ad es., logging, internazionalizzazione, strumentazione, avvio e arresto di operazioni, sicurezza, transazioni,... approcci di progetto standard ad es., design pattern per il collegamento tra i diversi elementi del progetto software comune ad es., librerie, framework, middleware modelli per l organizzazione del codice ad es., struttura del file system o del CVS 9 Esempio- diagramma dei package di UML 10

Esempio progettazione di package Alcune linee guida vedi [Applicare UML e i pattern] package per responsabilità funzionalmente coese package per una famiglia di interfacce funzionalmente correlate nessun ciclo nei package esistono tecniche di partizionamento/accorpamento di package per ridurre l accoppiamento complessivo riduci le dipendenze verso package non stabili i package più responsabili hanno l interfaccia più stabile separa tipi indipendenti usa factory per ridurre le dipendenze tra package concreti Per approfondimenti R.C. Martin, Agile Software Development 11 * Problemi e insidie Troppo dettaglio bisogna concentrarsi su aspetti architetturalmente significativi AD sovrappesantita i dettagli importanti vanno forse riportati separatamente in un appendice dell AD Focalizzazione non uniforme con il rischio di concentrarsi su aspetti semplici tralasciando magari quelli più complessi come l avvio e l arresto dei moduli 12

Problemi e insidie (2) Mancanza di attenzione allo sviluppatore lo sviluppatore è la parte interessata più importante per questa vista che va rivolta a lui Mancanza di precisione descrizioni imprecise possono essere ignorate o travisate dagli sviluppatori Problemi con l ambiente utilizzato le tecnologie cambiano rapidamente alcune indicazioni valide per un progetto potrebbero non essere le più opportune in un progetto successivo 13