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.
Mostra di più10 pagine
Visualizza gratis il Pdf completo
Registrati per accedere all’intero documento e trasformarlo con l’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.