mercoledì 10 ottobre 2012

Software Reuse


Nella maggior parte delle discipline ingegneristiche del processo di sviluppo si basa sul riutilizzo dei componenti. Sistema di progettazione software in genere ritengono che tutti i componenti devono essere progettati appositamente per il sistema in fase di sviluppo. Non esiste una base comune oltre a librerie come le librerie di sistema di Windows di componenti software riutilizzabili. Usando diffuse e sistematiche richieste di riutilizzo di software per la progettazione del software più bassa e mantenere i costi insieme un miglioramento della qualità possono essere soddisfatte solo.

Componenti software non sono progettati per un sistema, ma sono provati e testati in una serie di ambienti diversi. Progettazione e implementazione di guasto vengono scoperti e rimossi in modo che componente riutilizzabile contiene pochi errori. È impossibile ottenere specifiche assoluta affidabilità ma componenti riutilizzabili possono avere una spiegazione associato qualità. Questo consente agli utenti di integrarli con fiducia nei loro sistemi.

Componente di riuso del software non si limita a indicare il riutilizzo del codice dell'applicazione. E 'possibile riutilizzare specifica e disegni. I vantaggi potenziali derivanti da riutilizzo di prodotti astratta del processo di sviluppo, come specifiche possono essere maggiore rispetto a quelli di riutilizzare componenti di codice.

Il riutilizzo del software può essere diviso in un numero di livelli:

1) Sistema di applicazione riutilizzare:

È possibile riutilizzare il sistema intero applicazione. Il problema principale è quello di garantire che il software è portatile. Dovrebbe funzionare su piattaforme diverse varietà.

2) Sub-sistema di riutilizzo:

E 'possibile riutilizzare principali sottosistemi di un'applicazione.

3) Modulo o oggetto di riutilizzo:

E 'possibile riutilizzare i componenti di un sistema che rappresenta un insieme di funzioni.

4) Funzione di riutilizzo:

E 'possibile riutilizzare componenti software che implementano una singola funzione come una funzione matematica.

Sistema di riutilizzo applicazione è ampiamente utilizzato in società di software per implementare i loro sistemi in una vasta gamma di macchine. Il riutilizzo delle funzioni è ampiamente usato in librerie standard di funzioni riutilizzabili come grafica e librerie matematiche. Sub-system e il riutilizzo del modulo sono meno utilizzabili.

Quattro aspetti di riuso del software sono:

1) lo sviluppo software con il riutilizzo:

Lo sviluppo del software con il riuso è un approccio che cerca di massimizzare il riutilizzo di componenti software già esistenti. Vantaggio di questo approccio è che i costi complessivi di sviluppo della software sono diminuiti. La riduzione dei costi è solo un beneficio potenziale di riuso del software. Riutilizzo sistematico nello sviluppo offre ulteriori vantaggi:

i) L'affidabilità del sistema è aumentata:

Con l'utilizzo di componenti riutilizzabili in sistemi di lavoro dovrebbe essere più affidabile di nuovi componenti. Questi componenti sono stati testati in diversi sistemi operativi ambiente e quindi sono stati esposti a condizioni operative realistiche.

ii) il rischio di processo complessivo è ridotto:

Se si utilizza una funzione che è già esistente, c'è meno incertezza nel costo di riutilizzare tale componente che nei costi di sviluppo. Per la gestione del progetto è fattore importante in quanto diminuisce l'incertezza di eliminazione del costo del progetto. Se i componenti relativamente grandi, come sub-steli vengono riutilizzati allora questo diventa vero.

iii) l'uso efficace può fatto di specialisti:

Specialisti di applicazioni che fanno lo stesso lavoro in materia di ambiente progetto diverso, invece questi specialisti in grado di sviluppare componenti riutilizzabili che incapsulano le loro conoscenze.

iv) le norme organizzative possono essere incarna in componenti riutilizzabili:

Possiamo riutilizzare alcuni standard come standard di interfaccia utente che può essere implementato come una serie di componenti standard.

v) i tempi di sviluppo del software può essere ridotto:

È necessario portare un sistema di mercato più presto possibile è più importante costi complessivi di sviluppo. Riutilizzo delle componenti software accelera la produzione del sistema perché sia ​​lo sviluppo e la convalida deve essere ridotto.

2) Sviluppo di software per il riutilizzo:

Riutilizzo dei componenti possono condurre ad operare diversi tipi di modifiche.

i) generalizzazione Nome: il nome del componente dovrebbe essere modificato in modo che siano neutrali piuttosto che un riflesso diretto di una certa entità specifica applicazione.

ii) generalizzazione Funzionamento: Questo comporta l'aggiunta di operazioni di un componente o rimozione funzionamento che sono specifici per un certo dominio applicazione.

iii) generalizzazione Eccezione: Questo consiste nel controllare ogni componente per vedere quali eccezioni che potrebbe gettare le eccezioni e tra queste nell'interfaccia componente.

3) riutilizzo Generator based:

Un modo alternativo per riutilizzare componente è la vista generatore. In questo approccio conoscenza riutilizzabile è confinata in un sistema generatore di programma che può essere programmato in un linguaggio dominio orientato.

Alto livello compliers lingua sono più diffuso 'generatore di programma', dove sono frammentati i componenti riutilizzabili di codice oggetto corrispondente al linguaggio di alto livello costruire. Gli elementi riutilizzati sono l'astrazione in relazione alle dichiarazioni del linguaggio di programmazione. Quando una notazione dominio specifico è utilizzato per descrivere l'applicazione, astrazione dominio più grande può essere riutilizzato.

Approcci astratti sono:

i) generatore di applicazioni per l'elaborazione dei dati aziendali:

ii) generatore di parser per l'elaborazione del linguaggio

iii) i generatori di codice in strumenti CASE

4) Sistema di applicazione riutilizzare:

Un caso particolare di riuso del software è il sistema di riutilizzo applicazione in cui viene riutilizzato un sistema di intera applicazione da una sua attuazione in un intervallo di diversi computer e sistemi operativi.

Nessun commento:

Posta un commento