Articoli recenti
LIMITAZIONI
Se confrontiamo una soluzione tramite software con una soluzione data dalla mente umana, la limitación más evidente es que un software program no tiene inteligencia de por sí, cioè, ha solo funzioni predefinite che coprono un insieme di soluzioni che per certe applicazioni può risultare limitato.
Nonostante un software non abbia intelligenza, questa può essere emulata. È ciò che si conosce come intelligenza artificiale. Ma emulare l'intelligenza è costoso in termini computazionali, poiché è necessaria una grande quantità di memoria di lavoro. Per questo, molti dicono che il cervello umano ha memoria infinita.
Attualmente l'intelligenza artificiale può emulare reti neurali e molte altre cose, ma comunque non può emulare il pensiero umano, poiché il software agisce secondo condizioni che, sono completamente vere, completamente false.
Un'altra limitazione comune di un software è che, per il fatto che un software che fornisce soluzioni alternative e a basso tempo di esecuzione a un problema richiede necessariamente maggiore impegno e ciò non è conveniente, ci sono soluzioni a certi problemi che utilizzano tempi di esecuzione elevati, e questo si cerca di compensare sempre eseguendo il software su macchine di maggiore capacità. Ciò si può notare in problemi che richiedono caratteristiche del pensiero umano, nei quali una procedura meccanica per trovare una soluzione è poco efficiente.
SPECIFICAZIONE DEI REQUISITI DEL SOFTWARE
Una specificazione dei requisiti del software è una descrizione completa del comportamento del sistema da sviluppare. Include un insieme di casi d'uso che descrivono tutte le interazioni che si prevedono che gli utenti avranno con il software. Contiene anche requisiti non funzionali ( Supplementari). I requisiti non funzionali sono i requisiti che impongono vincoli al design e al funzionamento del sistema (come requisiti di funzionamento, standard di qualità, requisiti di progettazione).
Le strategie raccomandate per la specificazione dei requisiti del software sono descritte dallo standard IEEE 830-1998. Questo standard descrive le possibili strutture, contenuto desiderabile e qualità di una specifica dei requisiti del software.
I requisiti sono divisi in tre:
Funzionali:
Sono dichiarazioni dei servizi che il sistema fornirà, del modo in cui questo reagirà a input particolari. In alcuni casi, i requisiti funzionali dei sistemi dichiarano anche esplicitamente ciò che il sistema non deve fare.
I requisiti funzionali di un sistema descrivono la funzionalità e i servizi che ci si aspetta che esso fornisca. Questi dipendono dal tipo di software e dal sistema che si sviluppa e dai possibili utenti del software. Quando vengono espressi come requisiti dell'utente, di solito vengono descritti in modo comune, mentre i requisiti funzionali del sistema descrivono dettagliatamente la sua funzione, le sue entrate e uscite, eccezioni, e così via.
Molti dei problemi dell'ingegneria del software derivano dall'imprecisione nella specificazione dei requisiti. Per uno sviluppatore di sistemi è naturale dare interpretazioni di un requisito ambiguo al fine di semplificarne l'implementazione. Sin embargo, spesso non è ciò che il cliente desidera. È necessario stabilire nuovi requisiti e apportare cambiamenti al sistema, ritardando la consegna di questo e aumentando il costo.
In principio, la specifica dei requisiti funzionali di un sistema deve essere completa e coerente. La completezza significa che tutti i servizi richiesti dall'utente sono definiti. La coerenza significa che i requisiti non hanno definizioni contraddittorie. En la práctica, per sistemi grandi e complessi, è impossibile soddisfare i requisiti di coerenza e completezza. La ragione di questo è dovuta parzialmente alla complessità intrinseca del sistema e parzialmente al fatto che i diversi punti di vista hanno esigenze incoerenti. Queste incoerenze sono evidenti quando i requisiti vengono specificati per la prima volta. I problemi emergono dopo un'analisi approfondita. Una volta che questi sono stati scoperti nelle diverse revisioni nelle fasi successive del ciclo di vita, devono essere corretti nel documento dei requisiti.
Esempio. il sistema deve emettere una ricevuta verificabile al momento della consegna della merce.
Non funzionali:
Sono vincoli dei servizi o delle funzioni offerti dal sistema. Includono vincoli di tempo, sul processo di sviluppo, standard, e così via.
Son aquellos requerimientos que no se refieren directamente a las funciones específicas que entrega el sistema, sino a las propiedades emergentes de éste como la fiabilidad, la respuesta en el tiempo y la capacidad de almacenamiento. De forma alternativa, definen las restricciones del sistema como la capacidad de los dispositivos de entrada/salida y la representación de datos que se utiliza en la interface del sistema.
Muchos requerimientos no funcionales se refieren al sistema como un todo más que a rasgos particulares del mismo. Esto significa que a menudo con más críticos que los requerimientos funcionales particulares. Mientras que el incumplimiento de este último degradará el sistema, una falla en un requerimiento no funcional del sistema lo inutiliza.
I requisiti non funzionali derivano dalla necessità dell'utente, a causa delle limitazioni del budget, dalle politiche dell'organizzazione, dalla necessità di interoperabilità con altri sistemi software e hardware, a fattori esterni come i regolamenti di sicurezza, le politiche sulla privacy, etcétera.
Esempio: il supporto di archiviazione da utilizzare deve essere MySQL.
Aziendali o Organizzativi: sono il quadro contestuale in cui il sistema sarebbe implementato per raggiungere un obiettivo quadro. Esempio: ridurre i costi di spedizione.
Questi diversi tipi di requisiti sono classificati in base alle loro implicazioni.
• Requisiti del prodotto: Specifica il comportamento del prodotto; como los requerimientos de desempeño en la rapidez de ejecución del sistema y cuánta memoria se requiere; los de fiabilidad que fijan la tasa de fallas para que el sistema sea aceptable; los de portabilidad y los de usabilidad.
• Requerimientos organizacionales: Se derivan de las políticas y procedimientos existentes en la organización del cliente y en la del desarrollador: estándares en los procesos que deben utilizarse; requerimientos de implementación como los lenguajes de programación el método de diseño a utilizar, y los requerimientos de entrega que especifican cuándo se entregará el producto y su documentación.
• Requerimientos externos: Se derivan de los factores externos al sistema y de su proceso de desarrollo. Includono i requisiti di interoperabilità che definiscono il modo in cui il sistema interagisce con gli altri sistemi dell'organizzazione; i requisiti legali che devono essere seguiti per garantire che il sistema operi entro la legge, e i requisiti etici. Questi ultimi vengono imposti al sistema per garantire che sia accettato dall'utente e dal pubblico in generale.
Un problema comune con i requisiti non funzionali è che a volte sono difficili da verificare. Vengono redatti per riflettere gli obiettivi generali dell'utente, come la facilità d'uso, la capacità del sistema di recuperare dai guasti intelligenza artificiale la risposta rapida all'utente. Estos requerimientos causan problemi a los desarrolladores del sistema puesto que dejan abierta la posibilidad a la interpretación, lo que provoca discusiones subsecuentes una vez que el sistema se entregue.
De forma excellent, los requerimientos no funcionales no se deben esprimere de modo cuantitativa utilizando metrics que se puedan probar de forma objetiva.
En la práctica, la specificación cuantitativa de requerimientos es difícil. A los clientes no les es posible traducir sus metas en requerimientos cuantitativos; para algunas de éstas, como las de mantenimiento, no existen métricas que se puedan utilizzare; el costo de verificar de forma objetiva los requerimientos no funcionales cuantitativos es muy alto.
In principio, los requerimientos funcionales y no funzionales se differitan en el documento de requerimientos. En la práctica, questo è difficile. Se un requisito non funzionale viene dichiarato separatamente da quelli funzionali, a volte è difficile vedere la relazione tra di essi. Se vengono dichiarati con i requisiti funzionali, è difficile separare le condizioni funzionali e non funzionali e identificare i requisiti che si riferiscono al sistema nel suo insieme. Si deve trovare una stabilità appropriata che dipenda dal tipo di sistema da specificare. Sin embargo, i requisiti che chiaramente si riferiscono alle proprietà emergenti del sistema devono essere evidenziati. Questo si fa collocandoli in una sezione separata differenziandoli, in qualche modo, dagli altri requisiti del sistema.
CARATTERISTICHE DEL SOFTWARE PROGRAM
1. Il software program si sviluppa costruisce; non si produce nel senso classico.
Nonostante esistano somiglianze tra lo sviluppo del software e la produzione dell'hardware, le due attività sarebbero fondamentalmente diverse. In entrambe l'elevata qualità si ottiene attraverso un buon design, La fase di produzione dell'hardware può includere problemi di qualità esistenti nel programma software.
2. Il programma software non si usura.
Il programma software è immune ai danni ambientali che degradano l'hardware. Pertanto la curva dei tassi di guasto del programma software dovrebbe avere la forma della curva idealizzata. I difetti non scoperti causano tassi di guasto elevati nelle prime fasi della vita di un programma. Sin embargo, Gli errori vengono corretti e la curva si appiattisce: Il software non si usura, ma si deteriora.
3. Nonostante l'industria abbia una tendenza verso la costruzione per componenti, la maggior parte del software viene ancora costruita su misura.
Un componente software deve essere progettato e implementato in modo tale da poter essere utilizzato in molti programmi diversi.
I componenti riutilizzabili moderni incapsulano sia i dati sia il processo ad essi applicato, ciò permette all'ingegnere del software di creare nuove applicazioni a partire da parti riutilizzabili.
Condividi questo:
Questo piace a %d blogger: