appunti3s:ingegneria_del_software
no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
— | appunti3s:ingegneria_del_software [2020/06/08 22:19] (current) – created - external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Ingegneria del software ====== | ||
+ | (vedere appunti Monfardini unisi.it) | ||
+ | - processo = sequenza: principi (teorici) -> metodologia (tecniche) -> prodotti | ||
+ | - rigore, formalismo, sistematicità e leggi matematiche aiutano lo sviluppo delle soluzioni | ||
+ | - le specifiche del prodotto/ | ||
+ | - specifiche operazionali (flussodati) | ||
+ | - quali dati memorizzare | ||
+ | - quali operazioni fare | ||
+ | - specifiche descrittive (ER-relazioni) | ||
+ | - le specifiche possono essere fornite in modo confuso dall' | ||
+ | - la documentazione del processo aiuta la gestione del processo | ||
+ | - i responsabili dei processi aiutano a risolvere i problemi | ||
+ | - esempio: metodo //a cascata// diviso (nel tempo) in fasi e attività | ||
+ | - la modularità del software: un sistema è composto da parti collegate (ma sommando le parti non si riottiene il sistema) | ||
+ | - esempio di un giocatore di una squadra di calcio: giocare da soli non è la stessa cosa | ||
+ | - divide et impera per vincere la complessità | ||
+ | - coesione dei moduli (chiusi) e basso accoppiamento dei moduli (dipendenze) | ||
+ | - astrazione del sistema/ | ||
+ | - ottenere un modello astratto semplificato | ||
+ | - descriverlo in modo formale | ||
+ | - risolvere il modello non il problema reale | ||
+ | - prevedere lo sviluppo delle specifiche nel tempo (evoluzione sw) | ||
+ | - cercare di riutilizzare soluzioni esistenti | ||
+ | - fare un esempio: progetto di un sistema " | ||
+ | ====== Modelli di sviluppo del software (lifecycle) ====== | ||
+ | - a cascata | ||
+ | - incrementale | ||
+ | - microsoft | ||
+ | - open source | ||
+ | - metodologie | ||
+ | - processo unificato | ||
+ | - scrivi e correggi: è un modello che non so quanto mi costa e nemmeno quando finirà! :( | ||
+ | - metodo agile | ||
+ | |||
+ | ===== metodo di sviluppo agile ===== | ||
+ | nato per evitare i problemi relativi ai progetti troppo grandi e dispersivi | ||
+ | |||
+ | * è un processo di sviluppo del software | ||
+ | * è iterativo: si ripetono dei passaggi | ||
+ | * è incrementale: | ||
+ | * analisi -> progetto -> realizzazione -> test (ciclicamente) | ||
+ | |||
+ | - //analisi del problema// | ||
+ | * semplificare e definire il problema | ||
+ | * dividere in sotto-problemi | ||
+ | * definire gli obiettivi | ||
+ | - // | ||
+ | * individuare lo stile di programmazione più utile (fare un ponte di legno o di acciaio?) | ||
+ | * individuare il linguaggio che usa tale stile | ||
+ | * individuare l' | ||
+ | * individuare i mezzi (quanto tempo e quante persone?) | ||
+ | * definire gli obiettivi | ||
+ | - // | ||
+ | * ricercare soluzioni esistenti | ||
+ | * personalizzare tali soluzioni | ||
+ | * creare nuove soluzioni (generali e personalizzabili in futuro) | ||
+ | * mettere insieme le soluzioni parziali | ||
+ | - verifica | ||
+ | * non è l' | ||
+ | |||
+ | Sebbene le fasi dello sviluppo del software siano state numerate, non si deve credere che si tratti di un modello "a cascata" | ||
+ | |||
+ | ==== principi ==== | ||
+ | * dare molta importanza alle persone | ||
+ | * scrivere più software e meno documentazione (svantaggi? | ||
+ | * sensibilità ai cambiamenti delle specifiche (anche non documentati) | ||
+ | * riunioni in piedi | ||
+ | * gruppi di lavoro piccoli e autonomi nelle decisioni | ||
+ | * responsabilità di tutti |
appunti3s/ingegneria_del_software.txt · Last modified: 2020/06/08 22:19 by 127.0.0.1