La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Programmazione ad Oggetti per la Fisica

Presentazioni simili


Presentazione sul tema: "Programmazione ad Oggetti per la Fisica"— Transcript della presentazione:

1 Programmazione ad Oggetti per la Fisica
Laurea Magistrale in Fisica - Anno Accademico Prof. Giovanni Acampora

2 Obiettivi del Corso Fornire una conoscenza approfondita delle metodologie di progettazione e implementazione Object-Oriented per lo sviluppo di software; Fornire la conoscenza di un linguaggio di modellazione per sistemi Object-Oriented; Fornire la conoscenza di un linguaggio di programmazione Object-Oriented; Fornire una panoramica sulle possibili applicazioni scientifiche dei sistemi Object-Oriented;

3 Learning Outcomes Dopo aver seguito il corso e sostenuto l’esame, lo studente sarà in grado di: Progettare un sistema informatico utilizzando la metodologia OO; Implementare un sistema informatico utilizzando la metodologia OO; Analizzare e fornire un’analisi critica delle caretteristiche prestazionali e progettuali di un sistema informatico realizzato con tecniche OO. Applicare le metodologie di progettazione e implementazione OO a problemi scientifici.

4 Organizzazione del Corso
Titolare dell’insegnamento: Prof. Giovanni Acampora Durata del corso: Il corso prevede due lezioni settimanali, una lezione pratica e una lezione teorica; La lezione pratica comincerà le seconda settimana; La lezione del Lunedì sarà svolta in caso di necessità Modalità d’esame: Progetto Prof. Giovanni Acampora Studio: 2G16 (Dipartimento di Fisica “Ettore Pancini” Laboratorio: QUASAR (Quantum Computing and Smart Systems) – Edificio 8B, Piano -1 Telefono: Orario di Ricevimento:

5 Contenuti del Corso Object Oriented Analysis Object Oriented Design
Object Oriented Programming Notazione UML Linguaggio di Programmazione Python Programmazione Scientifica in Python Programmazione ad Oggetti in Python Introduzione al Machine Learning

6 Cerchiamo di capire di cosa stiamo parlando
Introduzione

7 Programma in C #include <stdio.h> main() { int i, numero = 1;
char[] squadra = “Napoli”; printf(“Hello World\n”); printf(“Valore di test: %d\n”, numero); printf(“Valore di squadra: %s”, squadra); if (test == 1) … ; else test = 20; for (i = 0; i < test; i++) … }

8 Paradigma di Programmazione Imperativo/Procedurale
Sequenza di istruzioni/comandi; Istruzioni raggruppate in moduli separati (le funzioni del C); Le istruzioni agiscono per modificare il valore di variabili; Le variabili rappresentano Ciascun modulo viene pensato per risolvere un particolare aspetto del problema;

9 Paradigma di Programmazione Imperativo/Procedurale
Metodologia di Analisi Top-Down Strutture di Controllo Sequenziali Condizionali Iterative

10 Gli oggetti Il mondo reale non è un’aggregazione di istruzioni e di dati; Oggetti tangibili/intangibili ci circondano e interagiscono tra loro; Gli oggetti che ci circondano sono caratterizzati da un proprio stato e da un proprio comportamento; Il comportamento di un oggetto ne modifica lo stato e gli consente l’interazione con altri oggetti.

11 Gli oggetti Un sistema nel paradigma orientato agli oggetti SISTEMA

12 (attributi di un oggetto)
Gli oggetti SISTEMA Insieme di entità Interagenti Oggetti Proprietà (attributi di un oggetto) azioni (metodi di un oggetto)

13 Gli oggetti Cambia la visione del problema e del modo con cui trattarlo… SISTEMA Algoritmo Sequenza Interazione

14 Gli oggetti

15 Object Oriented Analysis
Gli oggetti Object Oriented Analysis Object Oriented Design Object Oriented Programming Object Oriented Methodology

16 Object Oriented Analysis
Gli oggetti Object Oriented Analysis Nella progettazione orientata agli oggetti di sistemi complessi bisogna: Identificare gli oggetti componenti il sistema Per ciascun oggetto identificare: Metodi Proprietà Identificare il set di relazioni tra i diversi oggeti componenti il sistema What to do Si estraggono i cosiddetti requisiti del sistema

17 Object Oriented Design
Gli oggetti Object Oriented Design Nella progettazione orientata agli oggetti di sistemi complessi bisogna: Convertire i requisiti del sistema in una specifica implementiva Gli oggetti identificati nella prima fase vengono rappresentati in modo da essere implementati attraverso un linguaggio di programmazione (possibilmente OO) How to do

18 Object Oriented Programming
Gli oggetti Object Oriented Programming La specifica implementativa identificata al precedente step viene convertita in un programma scritto in un linguaggio di programmazione. Linguaggi Procedurali Linguaggi Object Oriented

19 Gli oggetti

20

21 Classi di oggetti Una classe è un costrutto di un linguaggio di programmazione usato come modello per creare oggetti. Il modello comprende attributi e metodi che saranno condivisi da tutti gli oggetti creati a partire dalla classe.

22 Diagramma delle classi
I diagrammi delle classi (class diagram) consentono di descrivere tipi di entità, con le loro caratteristiche e le eventuali relazioni fra questi tipi.

23 Diagramma degli oggetti
I diagrammi degli oggetti consentono di descrivere istanze di classi (oggetti) e relazioni: esso è un’istanza del diagramma delle classi.

24 Visibilità

25 Ereditarietà Classi nuove sono progettate sulla base di classi pre-esistenti Le nuove classi acquisiscono gli attributi e i comportamenti delle classi precedenti ed aggiungono caratteristiche nuove o raffinano caratteristiche pre-esistenti La classe precedente prende il nome di classe base e la classe che eredita prende il nome di classe derivata

26 Gerarchia di classi E’ possibile creare una classe che eredita a sua volta da una classe derivata Ripetendo questo procedimento si ottiene una gerarchia di classi

27 Gerarchia di classi Terminologia

28 Tipi di gerarchia Ereditarietà singola: la classe derivata eredita solo da una classe base Ereditarietà multipla: la classe derivata eredita da più classi base (anche fra di loro eterogenee)

29 Esempio

30 Tipi di gerarchia

31 Polimorfismo Overriding Polimorfismo Overloading
Indica la possibilità per i metodi di assumere forme diverse Overriding Polimorfismo Overloading

32 Overriding Indica la possibilità per i metodi di assumere forme diverse all’interno della gerarchia delle classi Un metodo nella classe base è ridefinito nella classe derivata Il comportamento definito nel metodo della classe base è mascherato dal comportamento del metodo ridefinito nella classe derivata.

33 Overloading Un metodo assume forme diverse nella stessa classe

34 Interazioni tra oggetti

35 Interazioni tra oggetti

36 Esempio

37 Metodologia di programmazione


Scaricare ppt "Programmazione ad Oggetti per la Fisica"

Presentazioni simili


Annunci Google