Ingegneria del Software A

Malgrado i suoi 5 crediti formativi, questa è una materia fondamentale per diventare ingegnere: al di là delle nozioni necessarie che si vanno acquisendo, si dovrebbe uscire da questa materia con idee piuttosto chiare su come si deve amministrare un progetto.
Non è indispensabile conoscere un codice piuttosto che un'altro, è indispensabile invece essere in grado di affrontare qualsiasi problematica di tipo informatico soffermandosi sulla progettualità, poi eventualmente si andrà a studiare il linguaggio di programmazione necessario.
È vero che al momento il linguaggio di programmazione maggiormente affrontato in questo corso è il Java, ma non necessariamente il progetto richiesto dovrà essere fatto con questo codice.
Ai fini dell'esame, per la parte teorica non si può evitare di studiare molto bene le trasparenze dello stesso prof. Poggi che trovate nella sua pagina personale nella versione più aggiornata e totalmente in inglese. Inserisco  invece-> qui <-, in un unico file compresso, le slide dell'anno accademico 2009/2010 che sono più complete e alcune sezioni sono in italiano: si troveranno le risposte alla maggior parte delle domande che si incontreranno all'esame. Eventualmente esiste una versione, sulla quale io stesso ho studiato, completamente in italiano, con qualche differenza in quanto è di qualche anno precedente: si tratta di trasparenze del prof. Bergenti: lascio -> qui <- in una cartella compressa sia le slide come gli esercizi ed gli esempi in Java dello stesso docente.
Per quanto riguarda i testi consigliati, non sono indispensabili, ma sono molto utili per approfondire gli argomenti trattati e che nelle trasparenze risultano, per forza di cose, piuttosto stringati. A ogni modo uno dei testi consigliati direttamente dal professore è 'Ian Sommerville. Ingegneria del software, 8/ed, Pearson Education, 2007' che, per chi come me non  ha dimestichezza con l'inglese, non è altro che la versione italiana del testo originale e di cui potete prelevare un'ottima trasposizione in power point.
Consiglio vivamente di studiare in maniera approfondita la parte riguardante l'UML e impratichirsi con i codici Java in quanto le domande relative hanno un peso maggiore rispetto a quelle prettamente teoriche.
Tornando all'esame, generalmente è composto da 7 o 8 domande di cui due, come appena detto, riguardano la composizione di un diagramma UML in base al testo indicato e della scrittura o interpretazione di un codice in Java: per la pratica di questi mi sono trovato molto bene con JCreator, uno strumento di sviluppo piuttosto efficiente e affidabile per i programmatori di ogni livello, dalla fase di apprendimento alla programmazione Java più specialistica; anche BlueJ, un ambiente integrato Java, è fatto appositamente per introdurre a questo linguaggio, ma poi è bene imparare a utilizzare Eclipse, che è una piattaforma completa e potente per la programmazione a oggetti in Java e permette anche una modellazione UML complessa.
Per finire sulla sezione teorica, lascio, 'con beneficio d'inventario', un efficace riassunto (originariamente di Davide Valeriani e da me ulteriormente ampliato) che gira per i corridoi di Ingegneria: pare che qualcuno abbia studiato solo su questo ottenendo un valido risultato .
Ovviamente questo compendio non può dare suggerimenti sufficienti per lo svolgimento delle parti riguardanti Java e UML.
 
Passando ora alla parte fondamentale del programma, il progetto software, può essere accoppiato alla prova pratica dell’esame di Reti di Calcolatori, all’Internato di Laboratorio e alla tesi.
Consiste generalmente nella valutazione di un pacchetto software, che consiste nella realizzazione di una semplice applicazione software e una relazione. Bisogna scegliere un'applicazione che usi in modo appropriato il pacchetto software, cioè che in qualche modo metta in luce le sue proprietà.

La relazione deve essere composta da:

  1. Descrizione pacchetto software
  2. Caratteristiche principali
  3. Requisiti
  4. Come si installa
  5. Come si usa
  6. Manuale applicazione software requisiti, per la sua eseguibilità, come si installa ed esegue
Si fa notare che questi pacchetti software, di cui è richiesta una valutazione, possono riguardare qualsiasi tipo di linguaggio e quindi non necessariamente Java, come verrebbe da pensare. Quello che conta è una relazione molto ben fatta e costruita coi canoni ambiti da un ingegnere.
Nel mio caso si è trattato di valutare il pacchetto drupal, con conseguente studio approfondito dei codici PHP. Lascio volentieri la mia relazione a disposizione di chi fosse interessato. Faccio notare, a tal proposito, che la stessa è stata valutata molto positivamente, tanto che il 21 della parte teorica di Ingegneria del Software è diventato un 26 e il misero 18 di Reti di Calcolatori si è trasformato in un 24!
Pertanto il 'peso' di questa parte è importante e sarebbe bene non 'tirare via' come spesso accade e come ha lamentato lo stesso professore.

Riporto ->qui<- anche il lavoro svolto da Davide Valeriani che ha sempre dato il suo valido contributo mettendo puntualmente a disposizione appunti e quant'altro potesse essere d'aiuto agli studenti.
Infine, ricordo il contributo di Maurizio Prazzoli, che per primo ha distribuito in questa pagina il suo ottimo progetto e i suoi appunti.

In conclusione, un discreto scritto, migliore del mio che soffriva la mancanza di allenamento con codici Java e UML, e un'ottima relazione, portata avanti con pazienza e dedicandovi parecchio tempo, possono condurre al raggiungimento del massimo dei voti.

Commenti

Relazione e progetto

Ho inserito la relazione e il progetto presentati all'esame di Ingegneria del Software: