Ingegneria della Progettazione (Design Engineering)

Slides:



Advertisements
Presentazioni simili
Trieste, 26 novembre © 2005 – Renato Lukač Using OSS in Slovenian High Schools doc. dr. Renato Lukač LinuxDay Trieste.
Advertisements

Sfogliandomi… Viaggio tra me e me alla scoperta dellaltro… A travel between me and myself discovering the other…
Anno Diaconale f Federazione delle Chiese Evangeliche in Italia ufficio volontariato internazionale via firenze 38, roma tel. (+39) fax.
Preposizioni semplici e articolate
Centro Internazionale per gli Antiparassitari e la Prevenzione Sanitaria Azienda Ospedaliera Luigi Sacco - Milano WP4: Cumulative Assessment Group refinement.
L’esperienza di un valutatore nell’ambito del VII FP Valter Sergo
Logistica collaborativa per i distretti industriali.
Cache Memory Prof. G. Nicosia University of Catania
Teoria e Tecniche del Riconoscimento
Progettazione dettagliata delle Componenti
Interfacce Java.
1 Teaching Cloud Computing and Windows Azure in Academia Domenico Talia UNIVERSITA DELLA CALABRIA & ICAR-CNR Italy Faculty Days 2010.
A. Oppio, S. Mattia, A. Pandolfi, M. Ghellere ERES Conference 2010 Università Commerciale Luigi Bocconi Milan, june 2010 A Multidimensional and Participatory.
Relaunching eLene Who are we now and which are our interests.
Modalità di ricerca semantica nelle Biblioteche digitali Maria Teresa Biagetti DIPARTIMENTO DI SCIENZE DOCUMENTARIE LINGUISTICO-FILOLOGICHE E GEOGRAFICHE.
EBRCN General Meeting, Paris, 28-29/11/20021 WP4 Analysis of non-EBRCN databases and network services of interest to BRCs Current status Paolo Romano Questa.
DG Ricerca Ambientale e Sviluppo FIRMS' FUNDING SCHEMES AND ENVIRONMENTAL PURPOSES IN THE EU STRUCTURAL FUNDS (Monitoring of environmental firms funding.
1.E un algoritmo ricorsivo: Tutti le istanze di oggetti raggiungibili da un oggetto persistente diventano anchessi persistenti.
© and ® 2011 Vista Higher Learning, Inc.4B.1-1 Punto di partenza Italian uses two principal tenses to talk about events in the past: the passato prossimo.
Ratifica dei trattati internazionali - Italia
SOCIOLOGIA DEI PROCESSI CULTURALI E COMUNICATIVI Prof.ssa Donatella Padua A.A. 2011/12 A.A. 2011/12.
Lezione 4. Requirements [S2001, Cap. 5] [AC96, Cap. 1]
Unified Modeling Language class C {…} class B extends C {…} Esiste una notazione grafica per mostrare le relazioni di ereditarietà. Object StringC B Tutte.
C Consiglio Nazionale delle Ricerche - Pisa Iit Istituto per lInformatica e la Telematica Reasoning about Secure Interoperation using Soft Constraints.
Biometry to enhance smart card security (MOC using TOC protocol)
Costruzione di Interfacce Lezione 10 Dal Java al C++ parte 1
Ergo : what is the source of EU-English? Standard British English? Standard American English? Both!!!! See morphology (use of British.
LInnovazione di Prodotto. Lo sviluppo di nuovi prodotti e nuovi servizi: una vecchia sfida per le imprese innovative. [emilio bellini]
1. Conoscere luso delle collezioni in Java Comprendere le principali caratteristiche nelle varie classi di Collection disponibili Saper individuare quali.
Chapter 6 Master Production Scheduling
2000 Prentice Hall, Inc. All rights reserved. 1 Capitolo 3 - Functions Outline 3.1Introduction 3.2Program Components in C++ 3.3Math Library Functions 3.4Functions.
Laurea specialistica in Scienza e Ingegneria dei Materiali
Magnetochimica AA Marco Ruzzi Marina Brustolon
2000 Prentice Hall, Inc. All rights reserved. 1 Capitolo 6: Classi e astrazione dati 1.Introduzione 2.Definizione delle strutture 3.Accedere ai membri.
Introduzione Grid1 Introduzione ai Sistemi Grid. Introduzione Grid2 Generalità Un sistema Grid permette allutente di richiedere lesecuzione di un servizio.
1 laboratorio di calcolo II AA 2003/04 ottava settimana a cura di Domizia Orestano Dipartimento di Fisica Stanza tel. ( )
FONDAMENTI DI INFORMATICA III WfMC-1. FONDAMENTI DI INFORMATICA III WfMC-2 WFMC Cose WfMC Workflow Management Coalition (WfMC), Brussels, è unorganizzazione.
Players: 3 to 10, or teams. Aim of the game: find a name, starting with a specific letter, for each category. You need: internet connection laptop.
1 Attivita di ricerca Carlo Batini. 2 Aree Come costruire ed esprimere il contenuto informativo integrato di sistemi informativi complessi basati.
LHCf Status Report Measurement of Photons and Neutral Pions in the Very Forward Region of LHC Oscar Adriani INFN Sezione di Firenze - Dipartimento di Fisica.
Concord A tool for the analysis and concordances of the terminological constituents P. Plini, N. Mastidoro* * - Èulogos, Rome Institute for Atmospheric.
Scuola di Dottorato della Facoltà di Scienze MM. FF. NN., Università di Milano Bicocca ELEMENTI DI ORGANIZZAZIONE AZIENDALE Funzione finanza e controllo:
Ischia, giugno 2006Riunione Annuale GE 2006 Exploiting the Body Effect to Improve Analog CMOS Circuit Performances *P. Monsurrò, **S. Pennisi, *G.
© 2008 WS (WebScience srl) – All rights reserved WS Tech workshop Software Construction.
UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI ECONOMIA, GIURISPRUDENZA, INGEGNERIA, LETTERE E FILOSOFIA, SCIENZE POLITICHE. Corso di Laurea Interfacoltà in.
Guardate le seguenti due frasi:
Funzioni stringhe. chr Restituisce il carattere di un valore ascii dato. Per vedere lelenco dei codici ascii clicca QQQQ uuuu iiiiEsempio
Tutor: Elisa Turrini Mail:
Architettura software La scelta architetturale: MVA (Model – View – Adapter/Control) The view is completely decoupled from the model such that view and.
Enzo anselmo ferrari By: Orazio Nahar.
Quale Europa? Riscopriamo le radici europee per costruire unEuropa PIÙ vicina a noi ISTITUTO COMPRENSIVO MAZZINI CASTELFIDARDO PROGETTO COMENIUS 2010/2012.
UG40 Energy Saving & Twin Cool units Functioning and Adjustment
Ingegneria della Progettazione (Design Engineering) G. Berio.
Analysis and Development of Functions in REST Logic: Application to the «DataView» Web App UNIVERSITA’ DEGLI STUDI DI MODENA E REGGIO EMILIA DIPARTIMENTO.
Collection & Generics in Java
EMPOWERMENT OF VULNERABLE PEOPLE An integrated project.
PLURALI - with NOUNS PAY ATTENTION TO THE ENDING OF THE NOUN! “O” ---> “I” ex) il quaderno -> i quaderni “A” ---> “E” ex) la matita -> le matite “E” --->
COMENIUS REGIO Science for ActiVe citizEnship in Europe- SAVE EU Scientific learning paths to face future challenges durata di 2 anni 1° Modulo di
UITA Genève ottobre Comitè du Groupe Professionnel UITA Genève octobre 2003 Trade Union and Tour.
A PEACEFUL BRIDGE BETWEEN THE CULTURES TROUGH OLYMPICS OLYMPIC CREED: the most significant thing in the olympic games is not to win but to take part OLYMPIC.
Guida alla compilazione del Piano di Studi Curricula Sistemi per l’Automazione Automation Engineering.
Lezione n°27 Università degli Studi Roma Tre – Dipartimento di Ingegneria Corso di Teoria e Progetto di Ponti – A/A Dott. Ing. Fabrizio Paolacci.
Italian 1 -- Capitolo 2 -- Strutture
Quality Assurance in Career Guidance Services IAEVG 2009 Conference Jyväskylä, FI Leonardo Evangelista
Ratifica dei trattati internazionali - Italia Art. 87 Costituzione “Il Presidente della Repubblica…ratifica i trattati internazionali, previa, quando occorra,
Studente : Andrea Cassarà Classe: 5AII A.S. 2014/2015 Link Sito
BTEC Performing Arts Homework Task Due on Enrolment Day Weds 28th
The effects of leverage in financial markets Zhu Chenge, An Kenan, Yang Guang, Huang Jiping. Department of Physics, Fudan University, Shanghai, ,
Private and Public law lesson 3 International law and the relationships between the international legal order and domestic legal order.
Transcript della presentazione:

Ingegneria della Progettazione (Design Engineering) G. Berio

Design and its Objectives the software design must implement all of the explicit requirements contained in the analysis model, and it must accommodate all of the implicit requirements desired by the customer. the software design must be a readable, understandable guide for those who generate code and for those who test and subsequently support the software. the software design should provide a complete picture of the software, addressing the data, functional, and behavioral domains from an implementation perspective. From Pressman

Punto di Partenza per la Progettazione La specifica dei requisiti (funzionali) (cioè il modello analitico) cioè una rappresentazione orientata alla progettazione del software (e che può essere formale, semiformale o informale) In generale, la specifica dei requisiti da cui si parte è semiformale (cioè una combinazione di modelli/diagrammi e testo in linguaggio naturale): D’altra parte ciò che non è stato fatto in termini di modelli/diagrammi durante l’ingegneria dei requisiti dovrebbe essere fatto ora ma senza l’apporto diretto del committente (assumendo quindi che i requisiti rappresentati dal modello analitico sono sufficientemente precisi) I requisiti non funzionali (se esistono)

Cosa guida la progettazione (“all the implicit requirements”): la qualità del software La qualità del software è tipicamente indicata attraverso la valutazione di un insieme di attributi di qualità Buona parte di tali attributi potrebbero essere già parte di requisiti non funzionali (e in tal caso si tratterebbe di requisiti) Tuttavia, tali attributi sono sempre presenti, indipendentemente dai requisiti non funzionali e dovrebbero essere sempre parte degli obiettivi di progettazione del software

Qualità del software: guida e monitoraggio del progetto Gli attributi di qualità del software (es. correttezza) sono utili per guidare il progetto ma, in seguito, una volta costruito il software, per valutare (metriche) se ciò che è stato fatto in fase di progettazione ha effettivamente prodotto un software di qualità desiderata (quality assessment) Ciò significa che, durante la progettazione, è possibile usare una valutazione previsionale (metriche) della qualità del software (quality forecasting) che verrà prodotto: tale valutazione non è fatta tipicamente sul software (che non è ancora disponibile) ma su modelli/diagrammi

Qualità del processo (nella progettazione) Ovviamente, una parte importante è anche la definizione della qualità del processo, di cui si è parlato in generale La qualità del processo è tendenzialmente legata alla valutazione della capacità di produrre del software (di qualità)

Tipici attributi di qualità del software Correttezza, affidabilità, robustezza, safety Prestazioni Usabilità Verificabilità (Testabilità) Manutenibilità (Riparabilità) Evolvibilità (Scalabilità) Riusabilità Portabilità Comprensibilità Interoperabilità La scelta di quali attributi privilegiare e quanto dipende dai costi e tempi finali ma talvolta è obbligata Attenzione alla loro tipicità: possono essere diversi a seconda della metodologia usata! Ad esempio Pressman usa i FURPS

Principi di Progettazione: cioè come si fa a progettare per la qualità (software) architecting—indicates the overall structure and behavior of the software patterns (best practices)—”conveys the essence” of proven design solutions functional independence—single-minded function (high cohesion) and low coupling refactoring—a reorganization technique that simplifies the design abstraction—data, procedure, control modularity—compartmentalization of data and function hiding—controlled interfaces refinement—elaboration of detail for all abstractions Elaborated from Pressman

Overview of Design Engineering Organisation Increment and tranformation guidelines/rules Requirement engineering Quality attributes Design engineering Architectural views (stakeholders) Design principles Detailed comp. design Architecture design Component design Architectural patterns Architectural styles Design patterns FI,R,A,M,H

Tipici compiti di Progettazione Progettare un’architettura, usando uno stile architetturale (usando, il più possibile, passaggi o incrementi sistematici, dal modello analitico) Completare l’architettura, usando alcuni pattern architetturali Analizzare l’architettura, relativamente alla valutazione previsionale della qualità del software Progettare in dettaglio le singole componenti dell’architettura, usando pattern di progettazione e, in generali, i principi di progettazione

(Software) Architecture “The overall structure of the software and the ways in which that structure provides conceptual integrity for a system.” Structural and behavior properties. This aspect of the architectural design representation defines the modules of a system (e.g., components, objects, filters) and the manner in which those modules are packaged and interact with one another. For example, objects are packaged to encapsulate both data and the processing that manipulates the data and interact via the invocation of methods Extra-functional properties. The architectural design description should address how the design architecture achieves requirements for performance, capacity, reliability, security, adaptability, and other characteristics. Families of related systems. The architectural design should draw upon repeatable patterns that are commonly encountered in the design of families of similar systems. In essence, the design should have the ability to reuse architectural building blocks. Replaced by term component From Pressman

Componente Consideriamo componente come un’astrazione architetturale Un componente può essere: Una procedura Una classe Un tipo/interfaccia Un tipo di dato astratto Un valore (oggetto)! Un processo Un intero e non qualificato codice software Una combinazione dei precedenti Etc. Un componente può contenere altri componenti; in generale, un componente ha relazioni con altri componenti I componenti possono essere raggruppati usando come “package” (nella maggior parte dei casi) Esistono notazioni specifiche (più formali) indicate come ADL Ma storicamente si è sempre parlato di moduli!!

Componente in UML “… a modular, deployable, and replaceable part of a software that encapsulates implementation and exposes a set of interfaces.”

From Pressman What is the "right" number of components for a specific software design? component development cost cost of software component integration cost optimal number number of components of components From Pressman

Why Architecture? From Pressman The architecture is not the operational software. Rather, it is a representation that enables a software engineer to: (1) analyze the effectiveness of the design in meeting its stated requirements, (2) consider architectural alternatives at a stage when making design changes is still relatively easy, and (3) reduce the risks associated with the construction of the software. From Pressman

Why is Architecture Important? Representations of software architecture are an enabler for communication between all parties (stakeholders) interested in the development. The architecture highlights early design decisions that will have a profound impact on all software engineering work that follows and, as important, on the ultimate success of the system as an operational entity. Architecture “constitutes a relatively small, intellectually understandable model of how the software is structured and how its components (or modules) work together” [BAS03]. From Pressman

Customer: involved participants Stakeholders in (Software) Architectures (Architectural Views) Customer: delegates Customer: involved participants 1.Schedule and budget estimation. 2.Feasibility and risk assessment. 3.Requirements traceability. 4.Progress tracking 1. Consistency with req. and usage scenarios. 2. Future req. growth accommodation. 3. Performance, reliability, interoperability. Softw. Arch. Architect Developer 1. Requirement traceability. 2. Support of Trade-off-Analysis. 3. Completeness. 4. Consistency. 1.Sufficient detail for component design. 2.Reference for selecting and assembling components. 3.Maintain interoperability with existing software. Guidance on software modification, architecture evolution and interoperability Maintainer

Stili e pattern architetturali Pattern di progettazione

Architectural Styles others Data-centered architectures Each style describes a system category that encompasses: (1) a set of component types (e.g., a database, computational modules) that perform a function required by a system, (2) a set of connectors that enable “communication, coordination and cooperation” among components, (3) constraints that define how components can be integrated to form the software, and (4) semantic models that enable a designer to understand the overall properties of a software by analyzing the known properties of its constituents. Data-centered architectures Data flow architectures Call and return architectures Object-oriented architectures Layered architectures others Not unique!! Elaborated from Pressman

Data-Centered Architecture From Pressman

Data Flow Architecture From Pressman

Usual Call and Return Architecture From Pressman

Layered Architecture From Pressman

Architectural Patterns Concurrency — Software must handle multiple tasks in a manner that simulates parallelism task scheduler pattern Persistence —Data persists if it survives past the execution of the component that created it. Two patterns are common: a database management system pattern that applies the storage and retrieval capability of a DBMS to the Software an application level persistence pattern that builds persistence features into the Software Distribution (and replication) — the manner in which components communicate with one another in a distributed environment A broker acts as a ‘middle-man’ between the client component and a server component. From Pressman

Design Patterns The best designers in any field have an uncanny ability to see patterns that characterize a problem and corresponding patterns that can be combined to create a solution A description of a design pattern may also consider a set of design forces. Design forces describe non-functional requirements – quality attributes - (e.g., ease of maintainability, portability) associated the software for which the pattern is to be applied. The pattern characteristics indicate the attributes of the design that may be adjusted to enable the pattern to accommodate a variety of problems. From Pressman

Typical OO design patterns Adapter Factory Observer Cache Failure They may be represented as class diagrams and sequence diagrams, associated with the problem description

Esempio di pattern OO (Observer) Problema: comunicare la variazioni di stato di un oggetto a tutti gli oggetti interessati

Esempio di pattern OO (Adapter) Problema: adattare diverse interfacce di componenti che, tuttavia, hanno qualche similarità. Si potrebbe applicare nel caso del treno, quando si deve calcolare l’IVA su tratte internazionali (anche se attualmente sulle tratte internazionali si evita l’applicazione dell’IVA) oppure per costruire un software indipendente dal paese d’utilizzo

Esempio di pattern OO (Adapter) Si può applicare anche per software pre-esistenti!