Introduzione ai Sistemi Operativi

Slides:



Advertisements
Presentazioni simili
USABILITÁ Sembra banale, ma….
Advertisements

Interazione Uomo - Macchina
Introduzione ai Casi dUso (c) TECNET DATI (c) TECNET DATI Pag. 2 Dai requisiti ai casi duso obiettividefinire gli obiettivi –gli obiettivi del committente.
PROGETTAZIONE DI BASE DI DATI Metodologie e modelli.
Scomposizione funzionale
Procedure e funzioni A. Ferrari.
Le tecnologie informatiche per l'azienda
L’Informatica dal Problema alla Soluzione
I contenuti di questa presentazione sono stati realizzati a cura di M
Principi di Programmazione Object-Oriented
Acquisti OnLine Progetto
Principi di Programmazione Object-Oriented
Processo software il processo.
4 – Progettazione – Introduzione e Modello E-R
8. Progettazione del Software
1 9: Progettazione Architetturale Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,
1 14. Verifica e Validazione Come assicurarsi che il software corrisponda alle necessità dellutente? Introdurremo i concetti di verifica e validazione.
2. INGEGNERIA DI SISTEMA Il software è inutile a meno che non sia combinato con componenti hardware per formare un “sistema” Introdurremo il concetto di.
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Politecnico di Milano Algoritmi e Architetture per la Protezione dellInformazione Multichannel Adaptive Information Systems Paolo Maistri Dipartimento.
Autronica LEZIONE N° 4 AUTRONICA.
Analisi, rappresentazione e progettazione delle procedure
IL PATRIMONIO DI DATI - LE BASI DI DATI. Il patrimonio dei dati Il valore del patrimonio di dati: –Capacità di rispondere alle esigenze informative di.
Architettura Three Tier
Architetture e protocolli CCITTComunicazione: trasferimento di informazioni secondo convenzioni prestabilite La comunicazione richiede cooperazione.
1Milano, 3 Novembre 2004Assemblea Nazionale FISM WORKSHOP La certificazione dei requisiti di qualità per le Società Medico-Scientifiche Presentazione del.
Estensioni allarchitettura di Von Neumann Vito Perrone Corso di Informatica A per Gestionali.
Progettazione di una base di dati
Modello E-R Generalizzazioni
A.Natali DL Maggio1999 Oggetti Concetti fondamentali.
Introduzione alla modellazione di sistemi interattivi
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
La progettazione di un sistema informatico
L’ingegneria del software
Il processo di sviluppo del Sw: strategia make
Lo sviluppo del progetto informatico
Servizi Grid ed agenti mobili : un ambiente di sviluppo e delivering
Obiettivi di Design Rappresentano, in un prodotto software, le basi del successivo sviluppo del prodotto, perché, su di esse, si fondano le scelte prese.
1 AUTOMATIZZAIAUTOMATIZZAIAUTOMATIZZAIAUTOMATIZZAI S.I. SISTEMASISTEMA INFORMATIVO INFORMATIVO PROCESSOPROCESSO DECISIONALE DECISIONALE DECISIONEDECISIONE.
LE COMPONENTI DEL SISTEMA INFORMATIVO
LE COMPONENTI DEL SISTEMA INFORMATIVO
Design Goals Definiamo le fondamenta dello sviluppo del sistema.
Analisi dei Requisiti (Requirements Engineering) Seminario RE Università degli Studi di Padova, 12 Gennaio 2004.
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Programma del Corso.
Scelta di un modello di processo: esempio
Commenti alle Attività Generiche. Attività Generiche (Pressman) Principali: Comunicazioni; Pianificazione; Modellazione; Costruzione, Dispiegamento Collaterali:
Commenti all’esempio del treno Nell’esempio del treno si è iniziato dalle attività generiche e/o attività operative che tipicamente costituiscono i passi.
Esercitazioni di Ingegneria del Software con UML
Corso di Laurea in Ingegneria per l’Ambiente e il Territorio Informatica per l’Ambiente e il Territorio Docente: Giandomenico Spezzano Tutor: Alfredo Cuzzocrea.
1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,
Lezione 1 Panoramica sui paradigmi di programmazione
Diagramma delle Classi
Commenti all’esempio del treno Nell’esempio del treno si è iniziato dalle attività generiche e/o attività operative che tipicamente costituiscono i passi.
Analisi dei requisiti Il primo passo di “qualsiasi” processo di sviluppo è la definizione dei requisiti  Definizione del Business Model  Solitamente.
Dati e DBMS DBMS relazionali SQL Progettazione di un DBMS Normalizzazione Programma del Corso di Basi di Dati.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 4 - Progettazione del software Ernesto Damiani Università degli Studi.
Sistema operativo Il Sistema Operativo gestisce le risorse hw e sw del sistema di elaborazione Facilita l'interazione tra utente e sistema Esistono diversi.
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 4 -Progettazione del software Ernesto Damiani Università degli Studi.
Corso di Architetetture degli Elaboratori, A.A. 2004/ Architettura degli Elaboratori Elisa B.P. Tiezzi Orario ricevimento: Giovedì, ( Il materiale.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
Progettazione di basi di dati: metodologie e modelli
Per un nuovo orientamento nella progettazione dei linguaggi di programmazione Tesi di Laurea di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà.
PROGETTAZIONE DI BASE DI DATI Metodologie e modelli.
Progettazione concettuale di SI basati su Web B. Pernici.
INTRODUZIONE AI SISTEMI OPERATIVI. Introduzione Il software può essere diviso un due grandi classi: Il software può essere diviso un due grandi classi:
Le basi di dati.
UML Unified Modelling Language Linguaggio per la modellazione unificato.
Interazione Persona Computer prova di progetto Gruppo: IO Componenti: Carlo Solimando Sito analizzato:
Dal problema al programma – ciclo di sviluppo del software La scrittura del programma è solo una delle fasi del processo di sviluppo di un'applicazione.
Transcript della presentazione:

Introduzione ai Sistemi Operativi M. Ruta

La progettazione È applicata indipendentemente dal modello di processo software utilizzato. Parte dal punto in cui sono stati analizzati e modellati i requisiti del software È l’ultima azione di ingegneria del software che rientra nell’attività di modellazione, getta le basi per le attività di costruzione Generazione e collaudo del codice Introduzione M. Mongiello

Progettazione dell’architettura Modello progettuale Diagrammi di stato Diagrammi di sequenza Modelli dinamici Progettazione a livello dei componenti Testo dei casi d’uso Diagramma dei casi d’uso Diagramma di attività Modello analitico Progettazione dell’interfaccia Modelli comportamentali Modelli strutturali Progettazione dell’architettura Diagrammi di classi Progettazione dei dati e delle classi Modello progettuale Introduzione M. Mongiello

Dal modello analitico al modello progettuale Ogni elemento del modello analitico fornisce informazioni necessarie per produrre i modelli progettuali necessari per una specifica completa del progetto. Introduzione M. Mongiello

Il documento di progetto Progetto dei dati Progetto delle classi Progetto dell’architettura Progetto dell’interfaccia Progetto a livello dei componenti Introduzione M. Mongiello

Qualità della progettazione Attributi di qualità FURPS: Funzionalità: valutata controllando le capacità del programma, generalità delle funzioni e sicurezza del sistema globale Usabilità: valutata considerando i fattori umani, l’estetica generale, la coerenza e la documentazione Affidabilità: valutata misurando la frequenza e la gravità dei guasti, la precisione dei risultati di output, il tempo Mean time to failure (MMTF), la capacità di recuperare una situazione di guasto e la prevedibilità del programma Prestazioni: misurate in termini di velocità di elaborazione, tempo di risposta, consumo di risorse, produttività ed efficienza Supportabilità: combina l’estendibilità -capacità di estendere il programma- + la facilità di servizio + l’adattabilità = Facilità di manutenzione Con Collaudabilità Compatibilità Configurabilità – capacità di organizzare e controllare gli elementi della configurazione del software Facilità di installazione Facilità di individuazione dei problemi Introduzione M. Mongiello

Principi della progettazione (1/2) Astrazione: nel considerare una soluzione modulare a un problema si esprime la soluzione a grandi linee nel linguaggio del contesto del problema: astrazione elevata, si procede poi via via a livelli di astrazione inferiori adottando descrizioni più dettagliate Modularità: Myers 78.il software viene suddiviso in più componenti chiamati moduli che vengono integrati per soddisfare i requisiti del problema, la modularità rende più gestibile il problema Information hiding: Parnas 72. i moduli devono essere caratterizzati in base alle decisioni progettuali in modo tale che le informazioni (dati e algoritmi) risultino inaccessibili ad altri moduli che non necessitano di tali informazioni. Utile in fase di collaudo e manutenzione: un errore introdotto in fase di modifica si propagherà con minore probabilità alle altre parti del software Introduzione M. Mongiello

Principi della progettazione (2/2) Indipendenza funzionale: Proposta da Wirth 71 e Parnas 72. deriva dai precedenti tre principi. Si vuole progettare software in modo che ciascun modulo svolga una determinata sottofunzione dei requisiti e abbia un’interfaccia semplice, se considerata con le altre parti della struttura del programma Facilita manutenzione e collaudo, poiché sono limitati gli effetti secondari provocati da una modifica al progetto o al codice, si riduce la propagazione degli errori. È valutata mediante criteri qualitativi: Coesione: forza funzionale relativa di un modulo Accoppiamento : interdipendenza relativa fra moduli Raffinamento: stepwise refinement, strategia di progettazione top down (Wirth, 71). Un programma viene sviluppato raffinando successivamente i vari livelli di dettaglio procedurale. Un’istruzione o una astrazione procedurale viene progressivamente decomposta fino a raggiungere le istruzioni del linguaggio di programmazione. È un processo di elaborazione Astrazione e raffinamento sono concetti complementari Rifattorizzazione: Fowler 99. si tratta si tratta di un’attività progettuale introdotto per molti metodi agili È una tecnica di riorganizzazione che semplifica la progettazione o la programmazione di un componente senza modificare la sua funzione o il suo comportamento, migliorando la struttura interna. Esempio: esaminare il progetto alla ricerca di elementi ridondanti, non utilizzati algoritmi inefficienti, strutture dati mal realizzate o inappropriate Esempio individuare un componente con scarsa coesione. Introduzione M. Mongiello

Elementi progettuali Architettura: Modello: Architettura del software: fa riferimento alla struttura generale del software e alle modalità in cui tale struttura fornisce a un sistema un’integrità concettuale Può essere rappresentata utilizzando uno o più modelli: Modelli strutturali: Rappresentano l’architettura come una raccolta organizzata di componenti; hanno un elevato livello di astrazione allo scopo di individuare elementi progettuali ripetibili dell’architettura presenti in applicazioni simili. Modelli dinamici: Riguardano gli aspetti comportamentali dell’architettura del programma, indicando come la configurazione o la struttura del sistema possono cambiare in funzione degli eventi esterni Modello: È la descrizione che fornisce l’astrazione di una soluzione valida ad un problema ricorrente in un determinato contesto sulla base di determinati vincoli, fornisce pertanto una struttura progettuale valutando le forze che possono avere impatto sul modo in cui tale modello è applicato ed utilizzato. Lo scopo del modello progettuale è quello di fornire una descrizione mediante la quale stabilire se il modello: È applicabile al lavoro corrente Può essere riutilizzato Può fungere da guida per sviluppare un modello simile ma funzionalmente o strutturalmente differente. Introduzione M. Mongiello

Le classi progettuali ( ½) Il modello analitico definisce un insieme di classi analitiche. Ognuna descrive elementi del dominio del problema, evidenziando gli aspetti del problema visibili al cliente o all’utente. Il modello progettuale definisce un insieme di classi di progettazione che: Raffinano le classi analitiche fornendo i dettagli progettuali necessari all’implementazione Completano l’insieme di classi analitiche, mediante la definizione di un nuovo insieme che consentano di implementare l’infrastruttura software necessarie per supportare la sioluzione operativa individuata. Introduzione M. Mongiello

Le classi progettuali ( 2/2) Classi dell’interfaccia utente: Definiscono le astrazioni necessarie per le interazioni utente-macchina Classi del dominio operativo: Sono generalmente raffinamenti delle classi analitiche definite precedentemente: identificano metodi e attributi necessari per implementare gli elementi del dominio operativo Classi di sistema: Implementano le funzioni di gestione del software e di controllo che consentono al sistema di funzionare e di comunicare con l’ambiente di calcolo o con il mondo esterno Classi dei processi: Implementano le astrazioni operative di basso livello necessarie per gestire le classi del dominio operativo Classi persistenti: Rappresentano archivi di dati che persisteranno oltre l’esecuzione del software Introduzione M. Mongiello

Qualità delle classi progettuali Una classe progettuale deve essere: Completa e sufficiente: avere cioè un incapsulamento completo di tutti gli attributi e i metodi necessari alla classe stessa. Avere: Primitività: I metodi associati alla classe devono garantire l’esecuzione di un servizio per la classe, una volta che questo è implementato la classe non deve fornire nessun altro modo per ottenere lo stesso servizio. Elevata coesione: Una classe è coesa se ha responsabilità limitate e specifiche, con metodi e attributi appropriati per implementare tali responsabilità Basso Accoppiamento: È necessario che le classi collaborino tra loro, tuttavia la collaborazione deve essere mantenuta a un livello minimo: Se il modello è molto accoppiato tutte le classi collaborano con le altre, il sistema sarà difficile da implementare, collaudare, manutenere. Introduzione M. Mongiello

Dimensioni del modello progettuale Alta Diagrammi delle classi Package analitici Modelli CRC Diagrammi delle collaborazioni Diagrammi flusso dei dati Diagrammi flusso di controllo Descrizione elaborazione Diagrammi delle classi Package analitici Modelli CRC Diagrammi delle collaborazioni Diagrammi flusso dei dati Diagrammi flusso di controllo Descrizione elaborazione Diagrammi di stato Diagrammi di sequenze Modello analitico Casi d’uso – testi Diagrammi casi d’uso Diagrammi attività Diagrammi delle collaborazioni Diagrammi di stato Diagrammi sequenze Requisiti: Vincoli Interoperabilità Obiettivi e configurazione Astrazione Realizzazione delle classi progettuali Sottosistemi Diagrammi delle collaborazioni Diagrammi componenti Classi progettuali Diagrammi delle attività Diagrammi sequenze Realizzazione classi progettuali Sottosistemi Diagrammi collaborazioni Diagrammi componenti Classi progettuali Diagrammi delle attività Diagrammi sequenziali Progettazione interfaccia tecnica Progettazione interfaccia navigazione Progettazione interfaccia grafica (GUI) Modello progettuale Raffinati in : Raffinati in : Realizzazione delle classi progettuali Sottosistemi Diagrammi delle collaborazioni Diagrammi componenti Classi progettuali Diagrammi delle attività Diagrammi di sequenze Bassa Diagrammi di deployment Elementi dell’architettura Elementi dell’interfaccia Elementi a livello dei componenti Elementi a livello di dispiegamento Processo Introduzione M. Mongiello

Le dimensioni della progettazione Differenze tra modello analitico e modello progettuale: Gli elementi del modello progettuale usano più o meno gli stessi diagrammi UML impiegati nel modello analitico: I diagrammi del modello analitico vengono raffinati ed elaborati nell’ambito del progetto Vengono forniti maggiori dettagli implementativi e si pone definisce la struttura e lo stile dell’architettura Si definiscono i componenti che costituiscono l’architettura Si definisce l’interfaccia fra i componenti e l’ambiente esterno Gli elementi del modello lungo l’asse orizzontale non vengono sviluppati in maniera sequenziale. Generalmente si definisce per prima l’architettura per identificare l’insieme su cui si opererà La progettazione dell’architettura è seguita dalla progettazione dell’interfaccia e dalla progettazione dei componenti, che generalmente si svolgono in parallelo. Il modello di dispiegamento è generalmente completato al termine della realizzazione del progetto. Introduzione M. Mongiello

Elementi del modello progettuale Progettazione dei dati: Crea il modello dei dati e delle informazioni rappresentate ad un elevato livello di astrazione Progettazione dell’architettura: Fornisce una visione globale del sistema software che si sta progettando Progettazione dell‘interfaccia: Mostra l’ingresso e l’uscita delle informazioni nel sistema e le comunicazioni che si svolgono fra i componenti definiti dall’architettura Progettazione a livello dei componenti: Descrive tutti i dettagli di ciascun componente software Progettazione a livello di dispiegamento: Descrive in che modo la funzionalità del software e dei sottosistemi verrà allocata nell’ambiente di calcolo fisico che supporterà il software. Introduzione M. Mongiello

G. Myers, “ Composite Structured Design”, Van Nostrand, 1978. Fonti bibliografiche R. S. Pressman, “Principi di Ingegneria del software”, IV edizione, Mcgraw-Hill, 2004. G. Myers, “ Composite Structured Design”, Van Nostrand, 1978. D.L. Parnas, “ On criteria to be used in Decomposing systems into modules”,, CACM, vol.14, no.1 April 1972, pp-221-227. N. Wirth,” Program Development by stepwise refinement”, CACM, vol.14, no.1, 1971. M. Fowler et al. “ Refactoring: Improving the design of existing code”, Addison-wesley”, 2000. Introduzione M. Mongiello