Read Aloud the Text Content
This audio was created by Woord's Text to Speech service by content creators from all around the world.
Text Content or SSML code:
Introduzione all'ingegneria del software Che cosa è l'ingegneria del software? L'ingegneria del software è un'attività di modellazione. I modelli sono vincolati dal budget e dalle scadenze. Insieme di metodi automatizzati per sviluppare sistematicamente software di qualità che soddisfi le esigenze dei clienti pur soddisfacendo i vincoli esistenti. I problemi comuni da evitare sono: • Il software finale non soddisfa le esigenze del cliente. • Difficile da estendere e migliorare: se si desidera per aggiungere funzionalità in seguito è impossibile • Cattiva documentazione • Cattiva qualità • Più tempo e costi del previsto L'ingegneria del software è un'attività di problem solving. Le soluzioni si trovano spesso per tentativi ed errori, valutando empiricamente le alternative. L' acquisizione della conoscenza non è lineare. L' aggiunta di un nuovo pezzo di informazioni può invalidare tutta la prima conoscenza che abbiamo acquisito in un sistema. MODELLAZIONE La modellazione è una pratica importante in qualsiasi scienza. La modellazione ci consente di visualizzare e comprendere sistemi migliori che sono troppo complessi, costosi o grandi per essere sperimentati in prima persona. È anche aiuta noi ad individuare mancanti parti in un fenomeno e valutare le diverse soluzioni e sulle off. Un modello è un'astrazione descrive un sistema o un sottosistema, in cui un sistema è definito come una organizzata insieme di comunicanti parti. E è importante per distinguere tra i modelli e viste. Le viste rappresentano un aspetto specifico di un modello. Si è anche importante il concetto di notazione, che è l'insieme di grafici o testuali regole per raffigurante modelli e viste. Ci sono due principali tipi di modelli: • Campo di applicazione: esso rappresenta la vera situazione -World nel quale il sistema verrà eseguito. • Dominio Soluzione: essa rappresenta il sistema e le tecnologie utilizzate per costruire esso. I metodi orientati agli oggetti combinano il dominio dell'applicazione e la modellazione del dominio della soluzione in uno solo. Il dominio dell'applicazione è modellato come un insieme di oggetti e relazioni. Quindi il sistema è costruito sul modello che rappresenta i concetti del mondo reale. Lo sviluppo del sistema si concentra su tre diversi modelli di sistema: • Il modello funzionale, rappresentato in UML con diagrammi dei casi d’uso, descrive la funzionalità del sistema dal punto di vista dell'utente (quali sono le funzioni del sistema?) • Il modello a oggetti, rappresentato in UML con diagrammi di classe, descrive la struttura del sistema in termini di oggetti, attributi, associazioni e operazioni (qual è la struttura del sistema?). • La dinamica del modello, rappresentata in UML con interazione diagrammi, macchine a stati diagrammi e attività diagrammi, descrive l’interno comportamento del sistema (come fa il sistema reagisce per esterni eventi?). Modello di sistema: funzionale + oggetto + modelli dinamici. Complessità Come trattare con la complessità? Astrazione e decomposizione. L'astrazione ci permette di ignorare dettagli inutili. Si tratta di un pensiero processo in cui le idee sono distanziati da oggetti. La decomposizione è divisa in due tecniche principali: • Scomposizione funzionale: il sistema è scomposto in funzionalità. Si sottolinea l’ordinamento delle operazioni. • Object orientata di decomposizione: il sistema è decomposto in classi. Ogni classe è una delle entità principali Concetti di ingegneria del software I partecipanti sono le persone che sono coinvolte nel progetto. Un insieme di responsabilità viene indicato come ruolo. Un ruolo è associato a una serie di attività. PRODOTTI DA LAVORO È un artefatto che viene prodotta durante l’evoluzione, come un documento o di una parte di software per altri sviluppatori o per il cliente. Un prodotto di lavoro per il consumo interno è chiamato prodotto di lavoro interno. Il prodotto di lavoro che deve essere consegnato a un cliente è chiamato deliverable. Prodotto da lavoro genere Descrizione Specifica consegnabile Descrive il sistema dal punto di vista dell'utente. Viene utilizzato come documento contrattuale tra il progetto e il cliente. Manuale operativo consegnabile Viene utilizzato dallo stakeholder per apprendere come utilizzare il software. Rapporto sullo stato Prodotto di lavoro interno Un rapporto sullo stato descrive in un dato momento l'attività che è stata completata e l'attività ancora in corso. Manuale di prova Prodotto word interno Vengono prodotti piani di test per i tester FONDAMENTO LOGICO L'assunzione fatta su un sistema cambia nel tempo. Progettazione e implementazione difetti scoperti durante il test o di usabilità problemi scoperti durante utente testare il cambiamento la soluzione al problema. I cambiamenti possono anche essere causati dalla nuova tecnologia. Questo cambia spesso consente la formulazione di nuove funzionali e non funzionali richieste. La logica è spesso non esplicita. Lo sviluppatore prende molte decisioni in base alla propria esperienza e al proprio istinto. Per fare un cambiamento in una decisione comunque è necessaria per affrontare la logica di ogni scelta. Attività di sviluppo dell'ingegneria del software Le attività di sviluppo includono: • Elicitazione dei requisiti: lo scopo del sistema è definito. Il risultato di questa attività è una descrizione in termini di attori e casi d' uso. Gli attori rappresentano entità esterne che interagiscono con il sistema. • Analisi: produzione di un modello del sistema che sia corretto, completo, coerente e inequivocabile. Modello di oggetti, statico e dinamico sistema modello viene prodotta in questa fase. • Progettazione del sistema: vengono progettati gli obiettivi del progetto e il sistema viene scomposto in sottosistemi più piccoli che possono essere realizzati dalle singole squadre. In questa fase anche gli sviluppatori selezionano le strategie per costruire il sistema. Diversamente da analisi, progettazione di sistemi offerte con un più raffinato del modello che è non è negli interessi del cliente • Oggetto disegno: durante oggetto sviluppatori disegno definire oggetti che colmano il divario tra l’analisi del modello e la piattaforma definito durante il sistema desing. Questo include precisamente descrivere oggetti e sottosistemi interfacce, selezionando off-the- shelf componenti, ristrutturazione l’oggetto modello per conseguire gli obiettivi di progettazione come ad esempio estensibilità o comprensibilità, e ottimizzando l’oggetto modello per le prestazioni. • Implementazione: gli sviluppatori traducono il modello di dominio della soluzione in codice sorgente. • Test: il sistema viene testato. Gestione dello sviluppo del software Le attività di gestione si concentrano sulla pianificazione del progetto, sul monitoraggio del suo stato, sul monitoraggio delle modifiche e sul coordinamento delle risorse in modo tale che un prodotto di alta qualità venga consegnato nei tempi e nei limiti del budget. Le attività di gestione includono: • Comunicazione: attività più critica e dispendiosa in termini di tempo nell'ingegneria del software. Il più efficace strumento per affrontare con comunicazione problemi e convenzioni. • Rationale Management: è la giustificazione delle decisioni. La logica è l’informazione più importante di cui gli sviluppatori hanno bisogno quando cambiano il sistema. Se un criterio cambia, gli sviluppatori possono rivalutare tutte le decisioni che dipendono da questo criterio. • Software di configurazione di gestione: Il software di configurazione gestione è il processo che i monitor ei controlli cambiamenti nei prodotti di lavoro. La gestione della configurazione consente agli sviluppatori di tenere traccia delle modifiche. Il sistema è rappresentato da una serie di elementi di configurazione che vengono modificati in modo indipendente. • Gestione del progetto: include le attività di supervisione che garantiscono la consegna di un sistema di alta qualità nei tempi e nei limiti del budget. • Ciclo di vita del software: il processo di sviluppo del software può anche essere visto come un sistema complesso con input, output, attività e risorse. Un modello generale del processo di sviluppo del software è chiamato ciclo di vita del software. Modellazione con UML L'obiettivo di UML è di fornire uno standard notazione che può essere utilizzato da tutti orientati agli oggetti metodi e per selezionare e integrare i migliori elementi di precursori notazioni. Lo sviluppo del sistema si concentra su tre diversi modelli di sistema: • Il modello funzionale, rappresentato in UML con diagrammi dei casi d’uso, descrive la funzionalità del sistema dal punto di vista dell'utente (quali sono le funzioni del sistema?) • Il modello a oggetti, rappresentato in UML con diagrammi di classe, descrive la struttura del sistema in termini di oggetti, attributi, associazioni e operazioni (qual è la struttura del sistema?). • La dinamica del modello, rappresentata in UML con interazione diagrammi, macchine a stati diagrammi e attività diagrammi, descrive l’interno comportamento del sistema (come fa il sistema reagisce per esterni eventi?). Modello di sistema: funzionale + oggetto + modelli dinamici.