Non esiste
una definizione di software che
metta d accordo tutti coloro che se
ne occupano, ma esistono una serie
di queste che sostanzialmente
possono essere coinvogliate in:
"Il
software è una serie di programmi
per elaboratori che, eseguono le
istruzioni per svolgere una funzione
prestabilita con prestazioni
prestabilite".
Il software
è un elemento logico immateriale.
La qualità del software dipende
dall alta qualità della
progettazione. Dopo che è stato
costruito e inizia a lavorare il
software deve essere valutato in
funzione dei difetti che vengono
fuori col tempo, per cui con il
software è difficile se non
impossibile parlare di prodotto
finito, anche per il fatto che va
continuamente aggiornato in rapporto
sia all hardware che alle esigenze
di che usa lo stesso software. Un
concetto che è importante
comprendere con il software è
quello della riusabilità (in
funzione di questo l esempio ci
viene anche delle grandi aziende di
produzione di software), a proposito
di questo nel 1987 Peter Freeman
sostiene:
"Il
riuso è un'attività, no è un
oggetto. Ed è un'attività talmente
comune che i dizionari spesso non la
riportano neppure; si assume che un
lettore percepisce sia in grado di
desumere che "riusare"
significa "usare di
nuovo". Abbiamo una certa
familiarità con il riciclo e con la
massima "fare doppia
fatica". Nel campo della
creazione di sistemi con un
componente software, il riuso è
semplicemente una procedura che
produce (o aiuta a produrre) un
sistema riusando qualcosa di
estratto da un lavoro precedente. I
punti critici sono "che
cosa", si riusa e
"come" si deve procedere
per riusare".
Il riuso del
software non si limmita soltanto al
codice sorgente, e Capers Jones(1994)
definisce 10 manufatti software per
il riuso del software:
Piani di
progetto Stime dei costi
Architettura
Modelli e specifiche dei requisiti
Modelli
progettuali Codice sorgente
Documentazione
tecnica e per l'utente Interfacce
uomo-macchina
Dati Casi
di prova
Un
componente software dovrebbe essere
disegnato e implementato in modo da
poter essere riutilizzato in
programmi diversi. Le interfacce del
software di oggi sono costituite di
componenti che generano delle
finestre grafiche (introdotte per la
prima volta dalla Apple), menu a
tendina e altri meccanismi che
sperimentiamo ogni giorno, le
strutture dei dati e le funzioni
necessarie per la costruzione delle
interfacce sono contenute nelle
apposite librerie di componenti di
serie. Questi componenti sono
costruiti attraverso i vari
linguaggi di programmazione (vedere
anche la sezione programmazione
della Newsoftline a questo
proposito), i qual hanno un
vocabolario limitato, una sintassi
ben definita. Questi linguaggi si
dividono in tre livelli. Il livello
più basso rispecchia il corredo di
istruzioni dell'hardware, a livello
intermedio si trovano dei linguaggi
quali C e Smalltalk, vengono
impiegati per costruire una
descrizione procedurale di un
programma, a livello più alto il
linguaggio si serve di icone e altri
simboli per rappresentare i
requisiti della soluzione ricercata.
I linguaggi di programmazione sono
tanti ma quelli più utilizzati più
di frequente e dal maggior numero di
programmatori o sviluppatori sono
pochi e ben definiti. Esistono vari
tipi di software e livelli di
applicazioni potenziali, questi
sono:
Software
di sistema
Software
real-time
Software
gestionale
Software
scientifico e per l'ingegneria
Software
embedded
Software
per i personal computer
Software
per l'intelligenza artificiale