Ignazio Catanzaro

Sviluppatore Software

C# .Net

Archivio Posts
Anno 2012

Anno 2011

Anno 2010
Sondaggio
Introdurre argomenti di software engineering in un blog può essere utile?

Si
No

Introduzione al software

Oggi presento una brevissima introduzione a software con i principali punti che, secondo il mio parere devono essere trattati a prescindere.

L’impatto del software sulla nostra società e cultura continua ad essere profondo. A mano a mano che cresce la sua importanza, la comunità software , tenta continuamente di sviluppare nuove tecnologie per semplificare, accelerare e rendere piu economico lo sviluppo di programmi di qualità

(Roger S. Pressman, Principi di ingegneria del Software)

La citazione sopra indicata concretizza, a mio parere, le reale problematiche che girano intorno al mondo software.

Il Software evolve ogni qual volta l’economia evolve ed ogni volta che l’economia evolve, i soggetti connessi all’evoluzione richiedono software sempre piu complesso e mirato a risolvere le nuove problematiche.

Pensate, è qualcosa di naturale, quasi di meccanico, piu gli anni passano piu i potenziali fruitori del software richiedono tecnologie avanzate, come per qualsiasi altro campo dell’economia mondiale.

Ma cos’è il software?

Molti di voi sicuramente staranno pensando ad un’insieme di istruzioni, un sistema in grado di risolvere determinate problematiche, strutture che trattano e manipolano dati in grado di dare informazioni, tutte queste definizioni in realtà sono corrette, ma per comprendere a pieno ciò che rappresenta il software dobbiamo prima capire che il software è un prodotto, logico ed immateriale che possiede proprietà diverse dai comuni prodotti nati dai diversi processi produttivi che colmano l’economia oggi.

Il software in particolare:

  1. Non si consuma, l’immaterialità del prodotto software elude i normali processi di usura di un prodotto rendendolo “materialmente” immune;
  2. Non si fabbrica, il software non si fabbrica ma si progetta, sviluppa, si crea;
  3. Viene prodotto in modo specifico, attualmente, quasi la totalità dei processi di produzione si sposta verso l’assemblaggio, ovvero mettere insieme componenti base per ottenere il prodotto finito, nel campo software questo non è ancora totalmente possibile in quanto la componentistica riusabile è ancora minima rispetto alla vastità dei domini che il software va a coprire.

Il software come lo conosciamo oggi puo essere suddiviso in sette macroaree che identificano ciascun prodotto per la sua natura :

  1. Software di sistema : insieme di programma al servizio di altri programmi (vedi compilatori, editor, gestori di file), in questa categoria rientrano anche tutti quei programmi in grado di interfacciarsi strettamente all’hardware, operazioni che hanno bisogno di una pianificazione dei tempi e che vengno utilizzati da piu utenti come per esempio i componenti di un sistema operativo, driver, sistemi per le telecomunicazioni etc…
  2. Software Applicativo : Software sviluppato per la risoluzione di determinate problematica, nella maggior parte legate a settori commerciali o tecnici;
  3. Software scientifico : Software utilizzato in ambiti scientifici ad alto contenuto di algoritmi di calcolo intensivo, il dominio di riferimento di questa tipologia spazia dalla vulcanologia ai robot.
  4. Software Embedded : Software che risiede in memorie di sola lettura e scritto per svolgere funzioni limitate all’hardware che lo ospita, vedi per esempio il software di controllo dei comandi di un frigorifero;
  5. Software di produttività : Software sviluppato per fornire determinate funzionalità ad una fascia di clienti ristretta (vedi un software per la gestione degli inventari) o ampia (vedi software di videoscrittura, grafica, multimediali etc…);
  6. Software Web : Ampia macro area contenente una vasta varietà di applicativi orientati al web.
  7. Software per l’intelligenza artificiale : Software che sviluppa sistemi costruiti sulla base di pesanti algoritmi non numerici al fine di risolvere problemi di altissima complessità, le aree inerenti a questa tipologia sono la robotica, le reti neurali, strategie di gioco etc…

Ora abbiamo un’idea generale su cosa sia il software, quindi possiamo capire che il software nasce quando si incontrano nuovi bisogni.

La prima cosa da fare quindi è capire i bisogni del cliente instaurando una comunicazione diretta e informale, dove il prodotto software, tranne in rari casi, non viene menzionato.

Questa è la miglior strada per far partire un progetto!

Prossimi articoli sui processi di sviluppo, scriverò articoli in grado di dare una panoramica generale dell’argomento, soffermandomi pero sui processi piu importanti.

Stay tuned!

giovedì, 01 apr 2010 Ore. 01.09

Calendario
novembre 2024
lmmgvsd
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678
Ora e Data
Statistiche
  • Views Home Page: 33.418
  • Views Posts: 46.187
  • Views Gallerie: 0
  • n° Posts: 24
  • n° Commenti: 12
Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003