Documento da Università su Progetto per la realizzazione di un software. Il Pdf, di Informatica e destinato all'Università, illustra i principi fondamentali dello sviluppo software, le metodologie e i modelli utilizzati, con un focus sul modello a cascata e la metodologia Agile, in particolare Scrum.
See more10 Pages
Unlock the full PDF for free
Sign up to get full access to the document and start transforming it with AI.
Ecco il documento riformattato per una migliore leggibilità: Progetto per la realizzazione di un software Il documento tratta i principi fondamentali dello sviluppo software, descrivendo metodologie, modelli e figure professionali coinvolte nel processo.
La realizzazione di un software è un processo complesso che richiede metodologie specifiche per ridurre il rischio di errori. L'ingegneria del software fornisce strumenti per rappresentare, prevedere, programmare e gestire un progetto informatico.
Un progetto software include: · Persone (professionisti coinvolti nel processo). · Attività (fasi di sviluppo, test e rilascio). · Oggetti (codice, documentazione, strumenti di sviluppo). · Piani e decisioni (gestione delle risorse, tempistiche e costi).
Il progetto viene gestito attraverso modelli, che consentono di: · Definire in modo chiaro il sistema da sviluppare. . Semplificare la gestione del progetto. · Prevedere il comportamento del sistema.
Nello sviluppo di un software complesso sono coinvolte diverse figure professionali:
Esistono diversi modelli per gestire il ciclo di sviluppo di un software.
Segue una sequenza lineare di fasi:
Vantaggi del modello Waterfall: v Requisiti ben definiti e documentati. v Rilevazione anticipata di potenziali errori. v Pianificazione e monitoraggio chiari.
Svantaggi del modello Waterfall: X Tempo lungo tra l'analisi e il rilascio del software. X Difficoltà nel gestire modifiche ai requisiti in corso d'opera. < Il cliente vede il risultato solo alla fine dello sviluppo.
L'Agile è un approccio iterativo che prevede cicli di sviluppo brevi e continui miglioramenti basati sul feedback del cliente.
Principi fondamentali: . Sviluppo incrementale. . Collaborazione attiva tra team e cliente. . Risposta rapida ai cambiamenti.
User Stories: I requisiti vengono raccolti attraverso User Stories, ovvero brevi descrizioni delle esigenze dell'utente, esemplificate come: "Come <ruolo>, voglio <funzionalità> per <scopo>."
Scrum suddivide il lavoro in Sprint (cicli di sviluppo di 1-4 settimane).
Ruoli nel team Scrum: . Product Owner . Definisce le priorità del Product Backlog (lista delle funzionalità da sviluppare). · Massimizza il valore del software.
. Development Team · Autonomo e multidisciplinare. · Sviluppa e migliora il prodotto in base agli Sprint.
. Scrum Master · Facilita il team, rimuovendo ostacoli e assicurando l'adozione delle pratiche Scrum.
Ciclo di uno Sprint:
Definition of Done & Acceptance Criteria: . Acceptance Criteria: Condizioni minime per considerare una funzione accettata dal cliente. · Definition of Done (DoD): Standard di completamento per ogni attività (es. test superati, codice revisionato).
Quando scegliere Waterfall? V Progetti con requisiti ben definiti e stabili. Software critici che necessitano di documentazione dettagliata. Quando scegliere Agile? V Progetti con requisiti in evoluzione. V Necessità di rilasci frequenti e feedback continuo.
Gli errori nel software possono derivare da diverse fasi: · Analisi errata dei requisiti -> Porta a progettazione sbagliata. · Errori di progettazione -> Scelte tecniche errate che impattano il software. · Errori di implementazione -> Bug nel codice.
Correzione dei difetti: · Identificare il difetto il prima possibile per ridurre l'impatto sui costi. · Test continui per intercettare errori prima del rilascio. · Aggiornamenti e manutenzione per migliorare il software nel tempo.
Non esiste un modello di sviluppo software universalmente migliore. La scelta tra Waterfall e Agile dipende dalle caratteristiche del progetto.
L'Agile è preferito in ambienti dinamici con requisiti in evoluzione, mentre il Waterfall è indicato per progetti più strutturati con necessità di documentazione e controllo rigorosi.
Il Business Plan è un documento fondamentale per la pianificazione e la comunicazione dell'azienda con investitori e stakeholder. È uno strumento dinamico che aiuta a pianificare, misurare e comunicare il valore dell'impresa.
A. Executive Summary Sintesi dell'intero documento, con: · Attività e missione dell'azienda. · Modello di business (come genera ricavi). · Prodotti e servizi offerti. · Team e struttura aziendale. · Obiettivi e strategie.
B. Descrizione dell'Azienda · Forma giuridica (Srl, SpA, ditta individuale, ecc.). · Settore di appartenenza e posizione sul mercato. · Composizione del team e ruoli chiave. · Visione e missione aziendale (obiettivi di breve e lungo termine).
C. Prodotti e Servizi · Descrizione dettagliata dell'offerta. · Punti di forza e vantaggi competitivi. · Brevetti, tecnologie e innovazioni. . Target di mercato.
D. Analisi di Mercato · Scenario economico e trend del settore. · Segmentazione del mercato. · Concorrenti e posizionamento aziendale.
E. Struttura Organizzativa · Profili chiave dell'azienda e loro competenze. · Esperienza e responsabilità del team. · Struttura gerarchica e operativa.
F. Strategia di Marketing e Vendita . Posizionamento del brand e identità aziendale. · Canali di vendita e promozione (distribuzione e marketing). · Strategie di acquisizione clienti (attrazione e fidelizzazione).
G. Piano Operativo · Logistica e produzione. · Processi operativi e fornitori. · Strutture e risorse necessarie.
H. Piano Finanziario · Fabbisogno finanziario per il funzionamento. · Proiezioni di ricavi e costi. · ROI (Return on Investment) e sostenibilità finanziaria.
1. CAGR (Compound Annual Growth Rate) Misura la crescita media annuale di un'azienda: · Utile per confrontare la crescita con concorrenti e settore. · Aiuta a stimare proiezioni future e valutare investimenti.
2. ROI (Return on Investment) Misura la redditività di un investimento: · Valuta l'efficacia degli investimenti aziendali. · Utile per confrontare il rendimento di progetti diversi.
Il Project Manager è responsabile della pianificazione delle risorse, che possono essere suddivise in due categorie principali: . Risorse umane: includono il personale impiegato nel progetto, considerando qualifica, disponibilità di tempo e costo. · Risorse materiali: comprendono beni fisici utilizzati nel progetto, indicati con nome, quantità e costo unitario. Tutte le risorse si traducono in costi e valori economici di impiego.
Le risorse possono essere classificate ulteriormente in: · Risorse a disponibilità limitata, che hanno un utilizzo vincolato nel tempo e la cui allocazione giornaliera viene indicata in percentuale (100% piena disponibilità, meno del 100% disponibilità parziale, oltre il 100% lavoro straordinario). · Risorse a disponibilità illimitata, che possono essere utilizzate senza limite e sono descritte da un costo unitario.
In base ai vincoli di tempo e risorse, si distinguono due tipi di situazioni: · Time Limited: il progetto deve rispettare una scadenza fissa. · Resource Limited: il progetto deve essere completato nel minor tempo possibile rispettando i vincoli imposti dalle risorse.
Un aumento delle risorse può accelerare o ritardare il progetto a seconda della gestione.
Il livellamento delle risorse si applica per bilanciare l'uso delle risorse disponibili, evitando problemi di: · Sovraccarico, quando una risorsa è assegnata oltre la sua capacità. · Sottoutilizzo, quando una risorsa è impiegata in modo inefficiente, generando costi superflui.
Esistono due metodi principali per il livellamento delle risorse:
1. Approccio euristico . Rialloca le attività nel tempo per evitare sovraccarichi. . Sposta temporalmente attività meno prioritarie. · Analizza l'impiego delle risorse una per una, riequilibrando il carico di lavoro. · Utilizza strumenti software per ottimizzare la distribuzione delle attività.
2. Approccio matematico o di ottimizzazione · Utilizza algoritmi di ricerca operativa per trovare la soluzione migliore. · Ottimizza obiettivi come il minore tempo totale di progetto o il minor utilizzo di risorse.
Il livellamento segue un processo che prevede:
1. Analisi delle assegnazioni, per verificare il carico di lavoro di ciascuna risorsa. 2. Identificazione delle risorse sovraccaricate, come nel caso di un dipendente assegnato al 200% in un determinato periodo. 3. Riorganizzazione delle attività, assegnando priorità in base a: · Attività critiche, che influenzano direttamente la fine del progetto. · Attività con più dipendenze da altre fasi del progetto. · Attività con maggiore impatto sulla data di fine del progetto. 4. Applicazione di criteri di ordinamento, che definiscono la sequenza delle attività. Alcuni dei criteri usati possono essere: · Data di inizio più vicina. · Data di fine più lontana. · Durata dell'attività, dando priorità a quelle più brevi o più lunghe. · Numero di attività critiche successive o attività che influenzano maggiormente la data di fine progetto. 5. Divisione delle attività ("attività spezzata"), per evitare sovraccarichi. In alcuni casi, un'attività può iniziare regolarmente e poi essere interrotta temporaneamente per far spazio a un'attività più prioritaria, riprendendo successivamente. 6. Rivalutazione dell'impatto sui tempi di progetto, poiché il livellamento può modificare il programma delle attività future.
Se il livellamento non è possibile o conveniente, si possono adottare altre soluzioni, tra cui: · Straordinari, aumentando temporaneamente l'orario di lavoro. · Aumento delle unità, aggiungendo personale o attrezzature. · Outsourcing, delegando alcune attività a fornitori esterni.
L'allocazione delle risorse avviene assegnando le attività ai membri del team o ai materiali disponibili. Un diagramma di Gantt viene utilizzato per visualizzare la distribuzione delle risorse nel tempo.