Capitolo 2 Processi software 2.1 Modelli dei processi software 2.2 Attività di processo2.3 Far fronte ai cambiamenti 2.4 Miglioramento dei processi Punti chiave Esercizi Ulteriori letture
Ingegneria Del Software Sommerville 8 Ita
Capitolo 3 Sviluppo agile del software 3.1 Metodi agili 3.2 Tecniche di sviluppo agile3.3 Gestione agile della progettazione 3.4 Scalabilità dei metodi agiliPunti chiave Esercizi Ulteriori letture
Capitolo 4 Ingegneria dei requisiti4.1 Requisiti funzionali e non funzionali 4.2 Processi di ingegneria dei requisiti4.3 Deduzione dei requisiti 4.4 Specifica dei requisiti 4.5 Convalida dei requisiti 4.6 Modifica dei requisiti Punti chiave Esercizi Ulteriori letture
Capitolo 8 Test del software 8.1 Test di sviluppo 8.2 Sviluppo guidato da test 8.3 Test della release 8.4 Test degli utenti Punti chiave Esercizi Ulteriori letture
Capitolo 15 Riutilizzo del software15.1 Panoramica sul riutilizzo 15.2 Framework applicativi15.3 Linee di prodotti software 15.4 Riutilizzo dei sistemi applicativiPunti chiave Esercizi Ulteriori letture
Capitolo 17 Ingegneria del software distribuito 17.1 Sistemi distribuiti 17.2 Calcolo client-server 17.3 Schemi architetturali per sistemi distribuiti 17.4 Software come servizio Punti chiave EserciziUlteriori letture
Capitolo 18 Ingegneria del software orientato ai servizi 18.1 Architettura orientata ai servizi 18.2 Servizi RESTful 18.3 Ingegneria dei servizi 18.4 Composizione dei servizi Punti chiave EserciziUlteriori letture
Capitolo 20 Pianificazione della progettazione 20.1 Prezzo del software 20.2 Sviluppo guidato da piani 20.3 Tempistica dei progetti 20.4 Pianificazione agile 20.5 Tecniche di stima 20.6 Modelli di costi COCOMOPunti chiaveEsercizi Ulteriori letture
Capitolo 21 Gestione della qualità 21.1 Qualità del software 21.2 Standard del software 21.3 Revisioni e ispezioni 21.4 Gestione della qualità e sviluppo agile 21.5 Misure del software Punti chiave Esercizi Ulteriori letture
Fondamenti di ingegneria del software - Processo di produzione del software- Metodologie per lo sviluppo del software- Processi di ingegneria dei requisiti- Progettazione di sistemi software- Implementazione, test e manutenzione del softwareSviluppo di sistemi orientati agli oggetti- UML- Analisi dei sistemi orientata agli oggetti- Progettazione e implementazione di sistemi orientati agli oggetti- Design patternStrumenti per lo sviluppo di sistemi softwareIl Linguaggio Java- Proprietà generali- Eccezioni- Input/output- Collezioni di oggetti- Interfacce grafiche- Programmazione funzionale- Programmazione riflessiva e concorrente
Il corso si basa su lezioni teoriche ed esercitazioni in laboratorio. In particolare le attività di laboratorio, saranno dedicate allo sviluppo di alcuni sistemi software utilizzando il linguaggio Java e gli strumenti presentati durante il corso. In queste attività, gli studenti opereranno individualmente, chiaramente sotto la guida e con il supporto del docente del corso e senza precludere positive interazioni tra gli studenti.
Sono previste una prova scritta, con domande a risposta aperta, relative alla parte teorica del corso, ed alcuni esercizi di progettazione, e un progetto software per valutare le capacità pratiche dello studente. Il progetto software sarà valutato per la qualità del sistema realizzato e delle documentazione allegata. Normalmente la prova scritta e il progetto hanno lo stesso peso nel voto finale. Sono previste due prove in itinere con domande a risposta aperta relative alla parte teorica del corso ed alcuni esercizi di progettazione. Il superamento di entrambe le prove in itinere permette di evitare la prova scritta.
Rational Unified Process (RUP) is a software development process for object-oriented models. It is also known as the Unified Process Model. It is created by Rational corporation and is designed and documented using UML (Unified Modeling Language). This process is included in IBM Rational Method Composer (RMC) product. IBM (International Business Machine Corporation) allows us to customize, design, and personalize the unified process. RUP is proposed by Ivar Jacobson, Grady Bootch, and James Rambaugh. Some characteristics of RUP include use-case driven, Iterative (repetition of the process), and Incremental (increase in value) by nature, delivered online using web technology, can be customized or tailored in modular and electronic form, etc. RUP reduces unexpected development costs and prevents wastage of resources.
L'insegnamento permette agli studenti di acquisireconoscenze e competenze sui principi e metodidell'Ingegneria del Software, in particolare per quantoriguarda l'analisi dei requisiti, la progettazione ed ilcollaudo di un sistema software. Tali conoscenzedovranno permettere allo studente di acquisire unachiara consapevolezza del più ampio contestomultidisciplinare dell'ingegneria informatica edell'automazione, e in particolare degli aspettipropriamente connessi alla progettazione eproduzione di sistemi software.
Al fine di affrontare tematiche progettuali avanzate,anche di notevole complessità, e curare l'innovazionee lo sviluppo di nuovi prodotti software attraversol'applicazione delle conoscenze, lo studente dovràsaper applicare correttamente modelli e metodologieper la ingegnerizzazione del software. Tale capacitàsi estrinsecherà attraverso una serie di abilitàprofessionalizzanti, quali: 1. la capacità di analizzarecorrettamente i requisiti funzionali e non funzionali diun sistema; 2. la capacità di progettare un softwareusabile e manutenibile; 3. la capacità di collaudareun software.
La progettazione di un software, compito che verràsvolto in gruppi e che porterà alla stesura di unarelazione e alla sua discussione, contribuirà amigliorare sia il grado di autonomia di giudizio ingenerale, sia la capacità comunicativa, sia lacapacità di inserirsi proficuamente in un team, sia lacapacità di apprendimento in autonomia e di trarreconclusioni, dello studente.
The course enables students to acquire knowledgeand skills about software engineering principles andmethods, especially requirement analysis, designand testing of a software system. This knowledge willallow the student to gain a clear understanding of thebroader multidisciplinary context represented by thecomputing and automation engineering, in particularof the aspects specifically related to design anddevelopment of software systems.
In order to deal with advanced and complex designissues and with innovation and development of newsoftware systems, the student must be able toproperly apply software engineering models andmethodologies. This ability will be expressed througha number of professional skills, such as: 1. analyzingfunctional and non-functional system requirements;2. designing usable and maintainable softwares; 3.testing a software.
Working in team to software develpment and writingthe related report will improve the independence ofjudgment in general, the communication ability (alsostemming from teamwork), and the ability toautonomously learn and draw conclusions of thestudent.
La valutazione dell'apprendimento è suddivisa in due parti: 1) prova orale individuale - discussione su due argomenti trattati nel corso. 2) progetto di gruppo - un gruppo di quattro o cinque studenti deve progettare un software concordato con il docente e fare una presentazione del lavoro svolto. Il gruppo può scegliere un progetto che sia valido anche per il corso di Sicurezza Informatica.
1) Prova orale individuale - lo studente deve dimostrare di aver ben compreso i metodi e le tecniche da usare nell'ingegneria del software. 2) Progetto di gruppo: il gruppo deve dimostrare di essere in grado di applicare tali metodi e tecniche alla realizzazione di un sistema software e di saper redigere una relazione tecnica.
1) Prova orale - per ogni argomento viene assegnato un punteggio compreso tra zero e dieci. Il voto finale della parte orale è dato dalla media.2) Progetto di gruppo - viene valutata la completezza e correttezza della relazione (fino a 20 punti), la qualità del software prodotto (fino a 20 punti), e della presentazione (fino a 20 punti). Il voto finale assegnato al progetto è dato dalla media. Inoltre può essere assegnato un ulteriore punto in base all'autonomia dimostrata dal gruppo.
The learning evaluation consists of two parts:1) individual oral exam - a discussion about two topics from the syllabus;2) group project - a group of 4 or 5 students must design a software agreed with the teacher and present the results. The group can choose a project that is also valid for the course: "Cyber Security"
1) Individual oral exam - students must know what are methods and techniques to be used in software engineering.2) Group project - the group must be able to apply such methods and techniques to the development of a software and to produce a final project report.
1) Individual oral exam: each one of the topics assigns a score up to 10. The final mark for the oral exam is the average score.2) Group project - the review process takes into account the completeness and correctness of the final report (up to 20 marks), the software quality (up to 20 marks), and the presentation (up to 20 marks). The final mark for the group project is the average score. Up to 1 bonus mark is assigned according to group autonomy.
Conoscenza e capacità di comprensione: lo studente conoscerà i fondamenti dell'ingegneria del software come scienza che studia strumenti e metodologie per la pianificazione dello sviluppo, realizzazione e valutazione di applicazioni software complesse.Gli obiettivi di apprendimento attesi riguarderanno la conoscenza e la comprensione dei seguenti argomenti: 2ff7e9595c
Comentarios