CleanroomSim
Progetto per il corso di Programmazione ad Oggetti (BSc Informatica, A.A. 2023/24) dell'Università di Padova.
Specifiche di progetto
Introduzione
L’obiettivo del progetto è sviluppare una simulazione di sensori, ad esempio
sensori che rilevano temperatura, umidità, presenza di polveri sottili o altri
fenomeni, utilizzando il linguaggio di programmazione C++ e il framework Qt
per creare un’interfaccia grafica utente. In questa simulazione, gli utenti finali
dell’applicazione devono essere in grado di definire nuovi sensori, modificare e
cancellare quelli esistenti, oltre ad avviare una simulazione. Si incoraggia l’uso di
design pattern appropriati, benché non sia obbligatorio. Il progetto potrà essere
sviluppato da un singolo studente e dovrà richiedere approssimativamente 50 ore di lavoro complessivo.
Vincoli
Il progetto deve obbligatoriamente soddisfare i seguenti vincoli:
- essere un lavoro originale dello studente
- essere interamente scritto in C++
- prevedere un’interfaccia grafica realizzata in Qt
- compilare senza errori sulla macchina virtuale fornita (sono tollerati,
sebbene generalmente penalizzati, i warning durante la compilazione)
- realizzare i principi di incapsulamento e information hiding della
buona programmazione ad oggetti
- mantenere una separazione netta tra il modello logico e l’interfaccia
grafica
- eseguire in maniera efficiente e robusta, senza errori a runtime
- utilizzare il polimorfismo in maniera non banale
- implementare una gerarchia di classi per i sensori con almeno tre classi
concrete
- consentire la creazione, la ricerca, la modifica e la cancellazione dei
sensori, tali operazioni devono essere fruibili tramite interfaccia grafica
- realizzare la persistenza dei dati dei sensori
- consentire, tramite l’interfaccia grafica, il salvataggio e il caricamento
di un file di sensori (come descritto al punto precedente) attraverso
opportune finestre di dialogo: non è consentito l’utilizzo di percorsi di file
di sensori cablati nel codice sorgente
- consentire, tramite interfaccia grafica, di avviare una simulazione per
un sensore selezionato, simulando un certo numero di raccolte di dati; i
dati dovranno essere quindi mostrati in maniera opportuna, ad esempio
tramite QtCharts
- essere corredato di una relazione in formato pdf, in lingua italiana o
inglese
Criteri di valutazione
Il progetto viene valutato sulla base dei vincoli obbligatori e delle funzionalità
implementate. Più precisamente, se uno o più vincoli obbligatori non
risultano soddisfatti il progetto verrà considerato insufficiente. Viceversa, se tutti i
vincoli obbligatori sono soddisfatti il progetto è considerato (almeno)
sufficiente e la valutazione aumenterà in base alla qualità delle funzionalità
sviluppate e, in misura minore, in base alla qualità della relazione.
Una funzionalità viene valutata positivamente in base alla sua pertinenza al
tema, all’utilità, all’usabilità, alla complessità e alla qualità del codice attraverso
cui è implementata. Funzionalità più semplici o generiche migliorano la valutazione, sebbene
non tanto quanto idee più complesse o articolate.
Valutazione
Lode
Vincoli obbligatori
Orientamento ad oggetti
- Incapsulamento
- Modularità (modello logico e la GUI sono separati)
- Estensibilità ed evolvibilità, polimorfismo
- Efficienza e robustezza
Funzionalità
- Complessivamente molto curato, funzionalità ben implementate
e descritte nella relazione
GUI
- Visualizza i diversi tipi di dato in maniera opportuna
- Usabile e intuitiva
- Robusta, gestisce ridimensionamento
- Utilizza icone
- Utilizza immagini
- Utilizza stili
Relazione
Suggerimenti non collegati alla valutazione
Nessuno.