Riassunti VERIFICATO

Ingegneria del software

Università degli studi di Bologna informatica per il management 2018
Nessun voto ancora
Condividi: WhatsApp Telegram
Anteprima pagina 1 — Ingegneria del software Anteprima pagina 2 — Ingegneria del software Anteprima pagina 3 — Ingegneria del software Anteprima pagina 4 — Ingegneria del software

Stai vedendo l'anteprima delle prime pagine. Sblocca tutte le pagine con l'abbonamento.

Di cosa parla

  • Introduzione all'Ingegneria del Software:
    Definisce l'astrazione come formulazione di concetti generalizzati e il modello come rappresentazione semplificata della realtà. Introduce i modelli di processo software (Cascata, Spirale, Unified Process) per pianificare e gestire progetti, ottimizzando costi, tempi e risorse.
  • UML (Unified Modeling Language):
    Linguaggio di modellazione object-oriented, strutturato in 4 livelli (M0-M3). Descrive classificatori (classi, casi d'uso), relazioni (associazione, generalizzazione, dipendenza, realizzazione) e comportamenti (interazioni, state machine). Illustra i principali diagrammi UML:
    • Diagramma delle Classi: Rappresenta oggetti con attributi, operazioni, relazioni (generalizzazione, aggregazione, composizione).
    • Diagramma delle Attività: Modella il flusso di controllo e di oggetti tramite azioni, nodi di controllo (iniziali, finali, decisione, merge, fork, join) e partizioni.
    • Diagramma di Interazione (Sequenza e Comunicazione): Visualizza lo scambio di messaggi tra lifeline nel tempo, distinguendo chiamate sincrone/asincrone, risposte, creazione/distruzione di oggetti e frammenti.
    • Diagramma di Macchina di Stato: Descrive il comportamento discreto basato su eventi tramite stati (semplici, composti, pseudo-stati) e transizioni.
  • Qualità del Software e Principi Object Oriented:
    Analizza qualità esterne (correttezza, usabilità) e interne (manutenibilità, flessibilità). Introduce concetti come rigidità, fragilità, immobilità, viscosità, complessità e opacità. Presenta i principi SOLID (Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, Dependency Inversion) e i pattern GRASP (Creator, Information Expert, Low Coupling, Controller, High Cohesion, Polymorphism, Pure Fabrication, Indirection, Protected Variations) per l'assegnazione di responsabilità.
  • Design Patterns (Gang of Four):
    Categorizzati in Creazionali (Abstract Factory, Builder, Factory Method, Prototype, Singleton), Strutturali (Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy) e Comportamentali (Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor), ciascuno con lo scopo di risolvere problemi di design comuni.
  • Modern Patterns:
    Include Null Object, Type Object, Extension Object e Dependency Injection.
  • Agile Software Development:
    Contrasta i processi tradizionali, focalizzandosi su brevi iterazioni e software funzionante. Descrive il Manifesto Agile, pratiche come Test-Driven Design e Pair Programming, e framework come Scrum (con ruoli, sprint, artefatti) e Kanban (con visualizzazione del flusso, limiti WIP).

Registrati e scarica subito 3 appunti gratis.

Altri appunti di INGEGNERIA DEL SOFTWARE [cod. 66858]

Condividi questi appunti

WhatsApp Telegram