Università degli Studi di Urbino Carlo Bo / Portale Web di Ateneo


INGEGNERIA DEL SOFTWARE
SOFTWARE ENGINEERING

Ingegneria del Software
Software Engineering

A.A. CFU
2012/2013 9
Docente Email Ricevimento studentesse e studenti
Edoardo Bontà su appuntamento

Assegnato al Corso di Studio

Giorno Orario Aula

Obiettivi Formativi

Il corso presenta le metodologie, le tecniche e gli strumenti fondamentali per la gestione delle varie fasi del processo di sviluppo di sistemi software complessi, con particolare riferimento al paradigma di progettazione e programmazione orientato agli oggetti.

English version: The objective of this course is to illustrate the main methodologies, techniques, and tools for complex software systems development process management, with particular emphasis on object oriented design and programming paradigm.

Programma

01. Fondamenti di ingegneria del software:
  01.01 Concetti di base dell'ingegneria del software.
  01.02 La qualità del software.
  01.03 Il processo di sviluppo software.

02. Analisi e progettazione ad oggetti:
  02.01 Il paradigma ad oggetti.
  02.02 Introduzione alla modellazione del software.
  02.03 Unified Process.

03. Unified modeling language (UML):
  03.01 Introduzione a UML.
  03.02 Diagrammi di struttura: classi, oggetti, package.
  03.03 Diagrammi di comportamento: casi d’uso.
  03.04 Analisi di robustezza e interazione fra entità.
  03.05 Diagrammi di interazione: comunicazione, sequenza.
  03.06 Macchine a stati, attività e altri diagrammi.

04. Design pattern:
  04.01 Introduzione ai design pattern.
  04.02 Pattern creazionali: Singleton, Factory.
  04.03 Pattern strutturali: Proxy.
  04.04 Pattern comportamentali: Observer, Visitor.

05. Metodi di ingegneria del software:
  05.01 Analisi dei requisiti.
  05.02 Principi di progettazione del software.
  05.03 Tecniche di collaudo del software.
  05.04 Metriche del software.

06. Gestione di progetti software:
  06.01 Pianificazione del progetto software.
  06.02 Stime di progetto.
  06.03 Analisi e gestione dei rischi.
  06.04 Pianificazione temporale.
  06.05 Gestione delle configurazioni software.
  06.06 La documentazione di progetto.
  06.07 Strumenti CASE.

07. Argomenti avanzati:
  07.01 I metodi formali.
  07.02 Ingegneria del software cleanroom.
  07.03 Reingegnerizzazione.

08. Attività di laboratorio (linguaggio C#):
  08.01 Concetti di base del linguaggio.
  08.02 Classi e oggetti.
  08.03 Ereditarietà.
  08.04 Polimorfismo, classi astratte e interfacce.
  08.05 Gestione delle eccezioni.
  08.06 Generics.

English version:

01. Software engineering fundamentals:
  01.01 Basic concepts of Software Engineering.
  01.02 Software quality.
  01.03 Software development process.


02. Object-oriented analysis and design:
  02.01 The object oriented paradigm.
  02.02 Introduction to software modeling.
  02.03 Unified Process.


03. Unified modeling language (UML):
  03.01 Introduction to UML.
  03.02 Structure diagrams: classes, objects, and packages.
  03.03 Behavior diagrams: use case.
  03.04 Robustness analysis and interactions among entities.
  03.05 Interaction diagrams: communication, sequence.
  03.06 State machine, activity, and other diagrams.


04. Design patterns:
  04.01 Introduction to design patterns.
  04.02 Creational patterns: Singleton, Factory.
  04.03 Structural patterns: Proxy.
  04.04 Behavioral patterns: Observer, Visitor.


05. Methods for software engineering:
  05.01 Requirements analysis.
  05.02 Principles of software design.
  05.03 Software testing techniques.
  05.04 Software metrics.


06. Software project management:
  06.01 Software project planning.
  06.02 Project estimation.
  06.03 Risk analysis and management.
  06.04 Project scheduling.
  06.05 Software configuration management.
  06.06 Project documentation.
  06.07 CASE tools.


07. Advanced topics:
  07.01 Formal methods.
  07.02 Cleanroom software engineering.
  07.03 Reengineering.


08. Laboratory activities (language C#):
  08.01 Basic concepts of the language.
  08.02 Classes and objects.
  08.03 Inheritance.
  08.04 Polymorphism, abstract classes and interfaces.
  08.05 Exception handling.
  08.06 Generics.

Eventuali Propedeuticità

Programmazione Procedurale e Logica, Algoritmi e Strutture Dati

Modalità Didattiche, Obblighi, Testi di Studio e Modalità di Accertamento

Modalità didattiche

Lezioni teoriche ed esercitazioni di laboratorio, sia in presenza che a distanza.

English version: Theory lectures and laboratory exercises, both face-to face and on-line.

Obblighi

Sebbene consigliata, la frequenza non è obbligatoria.

English version: Although recommended, course attendance is not mandatory.

Testi di studio

Pressman, "Software Engineering: A Practitioner.s Approach", McGraw-Hill, 2010.
(Pressman, "Principi di Ingegneria del Software", McGraw-Hill, 2008).

Fowler, "UML Distilled", Addison-Wesley, 2003.
(Fowler, "UML Distilled", Pearson Italia (Addison-Wesley), 2010).

Bochicchio et al., "C# 4 – Guida completa per lo sviluppatore", Hoepli, 2010.

Gamma, Helm, Johnson, Vlissides, "Design Patterns: Elements of Reusable Object-Oriented Software", Addison-Wesley, 1995.
(Gamma, Helm, Johnson, Vlissides, "Design Patterns: Elementi per il riuso di software ad oggetti", Pearson Italia (Addison-Wesley), 2002).

Modalità di
accertamento

Progetto individuale, prova scritta e prova orale.

English version: Individual project, written exam, and oral exam.

Disabilità e DSA

Le studentesse e gli studenti che hanno registrato la certificazione di disabilità o la certificazione di DSA presso l'Ufficio Inclusione e diritto allo studio, possono chiedere di utilizzare le mappe concettuali (per parole chiave) durante la prova di esame.

A tal fine, è necessario inviare le mappe, due settimane prima dell’appello di esame, alla o al docente del corso, che ne verificherà la coerenza con le indicazioni delle linee guida di ateneo e potrà chiederne la modifica.

Note

Il corso è erogato sia in presenza che a distanza nel Corso di Laurea di Informatica Applicata.

English version: The course is offered both face-to-face and on-line within the Laurea Degree Program in Applied Computer Science.

« torna indietro Ultimo aggiornamento: 18/10/2012


Il tuo feedback è importante

Raccontaci la tua esperienza e aiutaci a migliorare questa pagina.

Posta elettronica certificata

amministrazione@uniurb.legalmail.it

Social

Università degli Studi di Urbino Carlo Bo
Via Aurelio Saffi, 2 – 61029 Urbino PU – IT
Partita IVA 00448830414 – Codice Fiscale 82002850418
2024 © Tutti i diritti sono riservati

Top