Guida degli insegnamenti

Syllabus

Partially translatedTradotto parzialmente
[W002166] - INGEGNERIA DEL SOFTWARE E PROGRAMMAZIONESOFTWARE ENGINEERING AND PROGRAMMING
LUISIANA SABBATINI
Lingua di erogazione: ITALIANOLessons taught in: ITALIAN
Laurea - [IT16] INGEGNERIA ELETTRONICA E DELLE TECNOLOGIE DIGITALI First Cycle Degree (3 years) - [IT16] ELECTRONIC AND DIGITAL TECHNOLOGIES ENGINEERING
Dipartimento: [040040] Dipartimento Ingegneria dell'InformazioneDepartment: [040040] Dipartimento Ingegneria dell'Informazione
Anno di corsoDegree programme year : 2 - Secondo Semestre
Anno offertaAcademic year: 2023-2024
Anno regolamentoAnno regolamento: 2022-2023
Obbligatorio
Crediti: 9
Ore di lezioneTeaching hours: 72
TipologiaType: B - Caratterizzante
Settore disciplinareAcademic discipline: ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

LINGUA INSEGNAMENTO LANGUAGE

Italiano

Italian


MODALITÀ DI SVOLGIMENTO DEL CORSO DEVELOPMENT OF THE COURSE

72 ore lezione

72 hours of lesson


RISULTATI DI APPRENDIMENTO ATTESI LEARNING OUTCOMES
Conoscenze e comprensione.

L’insegnamento ha la finalità di far comprendere allo studente le varie fasi del ciclo di vita del software; a tal fine verranno prese in considerazione le principali metodologie di produzione del software, sia di tipo plan-based che agili. Successivamente si procederà allo studio approfondito dei diagrammi UML e del loro utilizzo durante le varie fasi del ciclo di vita del software, con particolare enfasi sull’analisi dei requisiti e la progettazione.


Capacità di applicare conoscenze e comprensione.

Lo studente sarà in grado di lavorare in team con altri colleghi al fine di simulare la gestione di un progetto software in tutte le sue fasi. L’argomento di ogni progetto potrà essere scelto dal team. Il progetto consentirà di mettere in pratica tutte le nozioni acquisite durante il corso in merito al ciclo di vita del software, alle tecniche per l’analisi dei requisiti e per la progettazione guidata da UML, ai pattern e alla validazione e collaudo del software.


Competenze trasversali.

l corso è fortemente basato sulla realizzazione di progetti in gruppo e sul brainstorming. Questo favorisce lo sviluppo di varie competenze trasversali, quali la capacità di lavorare in gruppo, la gestione dei conflitti, la comunicazione efficace, la capacità di ascolto e di sintesi di idee differenti. La necessità, per ciascun gruppo, di individuare un contesto applicativo reale su cui simulare la realizzazione di un progetto, assieme alla presenza delle sessioni di brainstorming, favorirà, la capacità, da parte degli studenti, di confrontarsi con scenari molto stimolanti, consentendo loro di sperimentare in anticipo un modus operandi tipico del mondo del lavoro.


Knowledge and Understanding.

The course aims at allowing students understand the various phases of the software development life cycle; to this end, the main software production methodologies will be considered, both plan-based and agile. Moreover, an in-depth study of UML diagrams and their use during the various phases of the software life cycle, with particular emphasis on requirements analysis, design and object oriented programming.


Capacity to apply Knowledge and Understanding.

The student will be able to work in a team with other colleagues in order to simulate the management of a software project in all its phases. The topic of each project can be chosen by the team. The project will allow you to put into practice all the knowledge acquired during the course regarding the software life cycle, techniques for requirements analysis and UML-driven design, patterns and software validation and testing.


Transversal Skills.

The course is strongly based on the creation of group projects and on brainstorming. This encourages the development of various transversal skills, such as the ability to work in a team, conflict management, effective communication, the ability to listen and synthesize different ideas. The need, for each group, to identify a real application context in which to simulate the implementation of a project, together with the presence of brainstorming sessions, will favor the students' ability to deal with very stimulating scenarios, allowing them to experiment in advance with a modus operandi typical of the world of work.



PROGRAMMA PROGRAM

Introduzione alla programmazione ad oggetti (concetti di classe, incapsulamento, ereditarietà e polimorfismo)
Introduzione ad UML
Alcuni diagrammi UML:
Diagramma delle classi
Diagramma dei casi d’uso
Diagramma di sequenza
Diagramma delle attività
Diagramma delle macchine a stati
Pianificazione e realizzazione di un progetto con metodologie “plan-based”
Studio di fattibilità
Specifica e analisi dei requisiti
Progettazione dei casi d’uso
Progettazione dell’architettura
Progettazione dei flussi
Progettazione dei mockup
Esecuzione di un progetto
Testing di un sistema software
Manutenzione di un sistema software
Metodologie Agili e Scrum
Programmazione in Python
Installazione di Python e di un suo IDE
Operazione di input/output
Operazioni aritmetiche ed espressioni,
Variabili e operatore di assegnamento,
le funzioni predefinite,
i tipi di dato,
la funzione input(),
la sequenza, la selezione, blocchi di codice e indentazione,
istruzione if . elif . else,
operatori relazionali o di confronto, operatori logici e il tipo di dato bool,
il ciclo for, il ciclo while,
operazioni matematiche in Python,
definizione di funzioni in Python,
tipi di dato semplici e composti,
le liste, le tuple, i set, i file.

Introduction to object-oriented programming (class concepts, encapsulation, inheritance and polymorphism).
Introduction to UML; Some UML diagrams (Class diagram, Use case diagram, Sequence diagram, Activity diagram, State machine diagram).
Planning and implementation of a project with "plan-based" methodologies; Feasibility study; Requirements specification and analysis; Use case design; Architectural design; Flow design; Mockup design; Running a project; Testing a software system; Maintenance of a software system; Agile and Scrum methodologies.
Programming in Python; Installation of Python and its IDE; Input/output operation; Arithmetic operations and expressions; Variables and assignment operator; the predefined functions; the data types; the input() function; sequence, selection, code blocks and indentation; if statement. elif . else; relational or comparison operators, logical operators and the bool data type; the for loop, the while loop; mathematical operations in Python; defining functions in Python; simple and compound data types; lists, tuples, sets, files.


Scheda insegnamento erogato nell’A.A. 2023-2024
Le informazioni contenute nella presente scheda assumono carattere definitivo solo a partire dall'A.A. di effettiva erogazione dell'insegnamento.
Academic year 2023-2024

 


Università Politecnica delle Marche
P.zza Roma 22, 60121 Ancona
Tel (+39) 071.220.1, Fax (+39) 071.220.2324
P.I. 00382520427