3. Codice C++ e diagramma UML
Si consideri il seguente codice in C++:
class C {private: int x; int y;public: C() {x=0;y=0;}; void stampa();};class B {private: C c1;};class A {public: void metodo1(B b1); void metodo2();};void A::metodo2(){ C* p=new C(); p->stampa();}
Costruire il class diagram UML relativo a questo esempio, identificando le dipendenze fra le classi;
Valutare e classificare i tipi di accoppiamento esistenti tra le classi di questo esempio.
4. Manutenzione del sistema di immatricolazione
Si consideri un sistema software per gestire le immatricolazioni degli studenti ad uno dei corsi di laurea offerti da un dato Ateneo. Si supponga di dover modificare tale sistema per consentire agli studenti l'immatricolazione a due nuovi corsi di laurea attivati a partire dal prossimo anno accademico. Il sistema, nella sua versione attuale, non è in grado di consentire tali immatricolazioni in quanto non risulta configurabile.
- A quale classe di manutenzione appartiene la precedente richiesta di modifica?
- Supponendo di dover modificare questo sistema per consentirne l'uso anche in vista di future modifiche all'insieme dei corsi di laurea offerti dall'ateneo, descrivere una possibile tecnica decisionale per individuare il tipo di manutenzione più adatta per questo sistema.
5. Test black box della funzione di spendibilità
Si desidera testare con l'approccio black box una funzione che calcola un indice di “spendibilità” nel mondo del lavoro di una persona sulla base di alcuni parametri.
La funzione riceve in input l'età della persona (che deve essere compresa fra 18 e 60 anni, estremi inclusi), il titolo di studio (che può assumere i valori di Licenza Media e Licenza Superiore) ed il voto di conseguimento del titolo, e restituisce come età un numero reale compreso fra 1 e 100. Dall'analisi delle specifiche del problema si deducono i seguenti vincoli: se si tratta di titolo di Licenza media il voto può assumere i valori Sufficiente, Distinto ed Ottimo, se il titolo è di Licenza superiore, il voto viene invece assunto nell'intervallo fra 50 e 100.
Progettare la classi di equivalenza valide e non valide per questa funzione, tenendo anche presenti i vincoli riportati.
Progettare un insieme di casi di test in grado di coprire tutte le classi di equivalenza progettate.
-
Ingegneria del software - Esercitazione
-
Ingegneria del software - Esercizio
-
Ingegneria del software - Eseritazione
-
Ingegneria del software - Esercizi