mail unicampaniaunicampania webcerca

    Massimo FICCO

    Insegnamento di INGEGNERIA DEL SOFTWARE

    Corso di laurea in INGEGNERIA ELETTRONICA E INFORMATICA

    SSD: ING-INF/05

    CFU: 6,00

    ORE PER UNITÀ DIDATTICA: 48,00

    Periodo di Erogazione: Primo Semestre

    Italiano

    Lingua di insegnamento

    ITALIANO

    Contenuti

    Il corso di Ingegneria del Software mira a fornire le metodologie e le tecniche di analisi, progettazione e verifica di sistemi software.

    Testi di riferimento

    Ian Sommervillie, “Ingrgnria del Software”,
    Decima edizione, Pearson.

    Obiettivi formativi

    Acquisire concetti, metodi e strumenti di analisi, modellazione, progettazione, e misura di prodotti, componenti e sistemi software.

    Prerequisiti

    Acquisiti concetti di programmazione ad Oggetti e algoritmi e strutture dati.

    Metodologie didattiche

    Lezioni frontali, esercitazioni assistite

    Metodi di valutazione

    L’esame consiste nella discussione di un elaborato e una prova orale finali.
    La prova orale mira all’accertamento delle competenze del candidato di tipo teorico e progettuale, e verte di norma sulla discussione dell’elaborato e sugli aspetti teorici degli argomenti trattati al corso.

    Altre informazioni

    -

    Programma del corso

    Il ciclo di vita del software: Modello a cascata; modello con retroazione. Modelli evolutivi. Modello trasformazionale.
    La specifica: Tipologie di applicazioni. Linguaggi di specifica informali, semi-formali, formali. I diagrammi Entità-Relazioni-Attributi (ERA). I diagrammi di flusso dei dati (DFD). Le reti di Petri (PN).
    Il linguaggio UML per la modellazione ad oggetti: Il linguaggio UML: diagrammi dei casi d’uso, scenari, delle classi, di sequenza, di stato, delle attività, dei componenti, ...
    Da UML a C++ e Java: Organizzazione della gerarchia, contenimento tra classi, realizzazione del contenimento lasco e stretto, contenimento ed ereditarietà, realizzazione dell’associazione, realizzazione dell’interazione tra gli oggetti.
    Convalida e verifica del software: Analisi statica. Analisi dinamica. Tipologie di test: white box, black box, strutturale, funzionale, di integrazione, di sistema, di accettazione, di regressione, α-test, β-test. Il debugging. Metriche del software. LOC, numero ciclomatico.
    Project Management e stima dei costi del software.

    English

    Teaching language

    Italian

    Contents

    The Software Engineering course aims to provide the methodologies and techniques for analysis, design and verification of software systems.

    Textbook and course materials

    Ian Sommervillie, “Software Engineering”,
    Decima edizione, Pearson.

    Course objectives

    Acquire concepts, methods and tools for analysis, modeling, design, and measurement of software products, components and systems.

    Prerequisites

    Acquired object programming concepts and algorithms and data structures.

    Teaching methods

    Lectures, assisted exercises

    Evaluation methods

    The exam consists in the discussion of a project and a final oral discussion.
    The oral exam aims at ascertaining the candidate's theoretical and design competences, and usually concerns the discussion of the project and the theoretical aspects of the topics covered in the course.

    Other information

    -

    Course Syllabus

    The software life cycle: Cascade model; Evolutional models; Transformational model.
    The specification: Types of applications. Informal, semi-formal, and formal specification languages. Entity-Relationship-Attribute diagrams (ERA). Data flow diagrams (DFD). Petri Nets (PN).
    The UML language for object modeling: The UML language: diagrams of use cases, scenarios, classes, sequence, status, activities, components, ...
    From UML to C ++ and Java: Organization of the hierarchy, containment between classes, implementation of loose and narrow containment, containment and inheritance, implementation of the association, realization of interaction between objects.
    Software validation and verification: Static analysis. Dynamic analysis. Testing: white box, black box, structural, functional, integration, system, acceptance, regression, α-test, β-test. Debugging. Software metrics.
    Project Management and software cost metrics.

    facebook logoinstagram buttonyoutube logotypelinkedin logotype