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.