|
8039684 -
BASI DI DATI
(obiettivi)
Modelli, metodi e sistemi per la definizione, progettazione e realizzazione di sistemi software che gestiscano insiemi di dati di grandi dimensioni. Con riferimento alle linee guida riportate nel documento: “ACM/IEEE-CS- Computer Science Curricula 2013)” (www.acm.org/education/CS2013-final-report.pdf), il corso contribuisce a coprire le seguenti aree e relativi obiettivi: - CN. Computational Science: Dati, Informazione e Conoscenza; - IM. Information Management: Sistemi di Basi di Dati; Modelli dei Dati; Indici; Basi di Dati Relazionale; Linguaggi di Interrogazione; Elaborazione delle Transazioni; Progettazione Fisica
-
DE NITTO PERSONE' VITTORIA
( programma)
Sistemi di basi di dati: proprietà fondamentali – Progettazione di basi di dati: Progettazione concettuale Modello Entity - Relationship Progettazione logica modello relazionale algebra relazionale Normalizzazione SQL Progettazione fisica organizzazione fisica e gestione delle interrogazioni gestione delle transazioni
 Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di dati – Quarta edizione, McGraw-Hill, 2014
|
12
|
ING-INF/05
|
120
|
-
|
-
|
-
|
Attività formative caratterizzanti
|
ITA |
|
8039689 -
INGEGNERIA DEL SOFTWARE E PROGETTAZIONE WEB
(obiettivi)
OBIETTIVI FORMATIVI: L'insegnamento si propone di fornire le nozioni fondamentali di ingegneria del web e porgettazione web. Nello specifico, gli obiettivi formativi riguardano: • Studio delle techniche per ognuna delle seguenti fasi dello sviluppo del software: o Requisiti: funzionali, casi d’uso, storie utente, gestione dei cambiamenti. o Progettazione: Specifca e progettazione UML: class diagram, state diagram, sequence diagram, activity diagram. Prototipi di interfaccia. Design patterns. o Implementazione: Orientamento agli ogetti e analisi statica (e.g., SonarCloud). o Integrazione continua: Travis. o Issue tracking: JIRA e GitHub. o Version Control: SVN o Testing: test di unità (Junit) e di interfacce web (Selenium).
CONOSCENZA E CAPACITÀ DI COMPRENSIONE: Al termine del corso lo studente avrà acquisito i concetti fondamentali sullo sviluppo di sistemi software e progettazione web con particolare riguardo alle fasi di gestione dei requisiti, progettazione, implementazione e testing.
CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE: Al termine del corso lo studente avrà acquisito le metodologie per lo sviluppo di sistemi software e web.
AUTONOMIA DI GIUDIZIO: Al termine del corso lo studente sarà in grado di giudicare autonomamente sistemi software e web.
ABILITÀ COMUNICATIVE: Al termine del corso lo studente avrà acquisito padronanza della terminologia relativa allo sviluppo, progettazione e testing di sistemi software e web.
CAPACITÀ DI APPRENDIMENTO: Al termine del corso lo studente avrà acquisito la capacità di intraprendere in autonomia ulteriori approfondimenti su argomenti attinenti l’ingengeria del software, e di utilizzare le conoscenze e metodologie imparate per affrontare problemi nuovi.
-
FALESSI DAVIDE
( programma)
1 Specifica dei requisiti a. Introduzione, Scopo del documento, Visione del sistema sviluppato, Contesto di utilizzo, sustemi simili (pro e contro). b. Storie d'uso c. Requisiti funzionali d. Diagramma dei casi d'uso 2 Storyboards 3 Progettazione a. Class Diagram b. Design patterns c. Diagramma delle attività d. Diagramma della sequenza e. Diagramma degli stati 4Testing Casi di test e sui di test. 5Coding 4kloc di codice java Gestione delle eccezioni Configurazione di Git-Travis-SonarCloud
 nessuno
-
DE ANGELIS GUGLIELMO
( programma)
Computational Science (CN). CN/Interactive Visualization - Use of APIs for developing user interfaces using standard input components such as menus, sliders, and buttons. Graphics and Visualization (GV). GV/Fundamental Concepts - Media applications including user interfaces - Use of standard APIs for the construction of UIs and display of standard media formats (see CN) Platform-Based Development (PBD). PBD/Web Platforms - Web programming languages (HTML5, Java Script, CSS) - Web platform constraints. Programming Languages (PL). PL/Object-Oriented Programming - Object-oriented design o Decomposition into objects carrying state and having behavior o Class-hierarchy design for modeling - Definition of classes: fields, methods, and constructors - Subclasses, inheritance, and method overriding - Dynamic dispatch: definition of method-call - Subtyping o Subtype polymorphism; implicit upcasts in typed languages o Notion of behavioral replacement: subtypes acting lik! e supertypes o Relationship between subtyping and inheritance - Object-oriented idioms for encapsulation o Privacy and visibility of class members o Interfaces revealing only method signatures o Abstract base classes - Using collection classes, iterators, and other common library components - PL/Event-Driven and Reactive Programming - Events and event handlers - Canonical uses such as GUIs, servers - Using a reactive framework o Defining event handlers/listeners - Externally-generated events and program-generated events - Separation of model, view, and controller. PL/Basic Type Systems - A type as a set of values together with a set of operations o From Primitive types (e.g., numbers, Booleans) to Compound types built from other types (e.g., records, unions, arrays, lists, functions, references) - Association of types to variables, arguments, results, and fields - Type safety and errors caused by using values inconsistently given their intended types - Goals and limitati! ons of static typing - Generic types (parametric polymorphism) - Complementary benefits of static and dynamic typing PL/Language Translation and Execution - Interpretation vs. compilation to native code vs. compilation to portable intermediate representation - Language translation pipeline: parsing, optional type-checking, translation, linking, execution o Execution as native code or within a virtual machine o Alternatives like dynamic loading and dynamic (or -just-in-time -) code generation - Run-time representation of core language constructs such as objects (method tables) - Run-time layout of memory: call-stack, heap, static data o Implementing loops, recursion, and tail calls - Memory management o Manual memory management: allocating, de-allocating, and reusing heap memory o Automated memory management: garbage collection as an automated technique using the notion of reachability.PL/Runtime Systems - Dynamic memory management approaches and techniques - Data layout for objects and activation records - Other common features of virtual mach! ines, such as class loading, threads, and security. PL/Advanced Programming Constructs - Control Abstractions: Exception Handling - Object-oriented abstractions: Multiple inheritance - Meta-classing. PL/Concurrency and Parallelism - Constructs for thread-shared variables and shared-memory synchronization - Models for passing messages between sequential processes - Thread states and state diagrams - Structures (ready list, i/o blocked list, condition blocked list, and so forth) - The role of locks, monitors, read-writers, and so forth. PL/Type Systems - Type checking - Static overloading. Software Development Fundamentals (SDF). SDF/Development Methods - Program comprehension - Program correctness o Types of errors (syntax, logic, run-time) o The concept of a specification o Defensive programming (exception handling) o Code reviews o Testing fundamentals - Structural and behavioral models of software designs - Design patterns - Software architecture concepts and standard ar! chitectures (e.g. client-server, n-layer, pipes-and-filters). SE/Software Construction - Coding practices: techniques, idioms/patterns, mechanisms for building quality programs o Using exception handling mechanisms. SE/Software Verification and Validation - Verification and validation concepts - Inspections, reviews, audits - Testing o Unit, integration, validation, and system testing o Black-box and white-box testing techniques o Regression testing and test automation - Defect tracking
 - Jim Arlow, Ile Neustadt: UML2 e Unified Process, Analisi e progettazione, McGraw-Hill, 2007. - Cay S. Horstmann and Gary Cornell Core Java Volume I--Fundamentals | Core Java, Volume II--Advanced Features, Prentice-Hall, 2012. - Trasparenze delle lezioni distribuite via ispw@lists.uniroma2.it e una piattaforma online
|
12
|
ING-INF/05
|
120
|
-
|
-
|
-
|
Attività formative caratterizzanti
|
ITA |