Вы находитесь на странице: 1из 3

Existen varias definiciones similares aceptadas para software, pero probablemente la ms

formal sea la siguiente:


Es el conjunto de los programas de cmputo, procedimientos, reglas, documentacin y datos
asociados, que forman parte de las operaciones de un sistema de computacin.
Extrado del estndar 729 del IEEE5

Considerando esta definicin, el concepto de software va ms all de los programas de


computacin en sus distintos estados: cdigo fuente, binario o ejecutable; tambin su
documentacin, los datos a procesar e incluso la informacin de usuario forman parte del
software: es decir, abarca todo lo intangible, todo lo no fsico relacionado.
El trmino software fue usado por primera vez en este sentido por John W.
Tukey en 1957. En la ingeniera de software y las ciencias de la computacin, el software
es toda la informacin procesada por los sistemas informticos: programas y datos.
El concepto de leer diferentes secuencias de instrucciones (programa) desde
la memoria de un dispositivo para controlar los clculos fue introducido por Charles
Babbage como parte de su mquina diferencial. La teora que forma la base de la mayor
parte del software moderno fue propuesta por Alan Turing en su ensayo de 1936, Los
nmeros computables, con una aplicacin al problema de decisin.

Clasificacin del software


Si bien esta distincin es, en cierto modo, arbitraria, y a veces confusa, a los fines
prcticos se puede clasificar al software en tres grandes tipos:

Software de sistema: Su objetivo es desvincular adecuadamente al usuario y al


programador de los detalles del sistema informtico en particular que se use,
aislndolo especialmente del procesamiento referido a las caractersticas internas de:
memoria, discos, puertos y dispositivos de comunicaciones, impresoras, pantallas,
teclados, etc. El software de sistema le procura al usuario y programador
adecuadas interfaces de alto nivel, controladores, herramientas y utilidades de apoyo
que permiten el mantenimiento del sistema global. Incluye entre otros:

Sistemas operativos

Controladores de dispositivos

Herramientas de diagnstico

Herramientas de Correccin y Optimizacin

Servidores

Utilidades

Software de programacin: Es el conjunto de herramientas que permiten


al programador desarrollar programas informticos, usando diferentes alternativas
y lenguajes de programacin, de una manera prctica. Incluyen bsicamente:

Editores de texto

Compiladores

Intrpretes

Enlazadores

Depuradores

Entornos de Desarrollo Integrados (IDE): Agrupan las anteriores herramientas,


usualmente en un entorno visual, de forma tal que el programador no necesite
introducir mltiples comandos para compilar, interpretar, depurar, etc.
Habitualmente cuentan con una avanzada interfaz grfica de usuario (GUI).

Software de aplicacin: Es aquel que permite a los usuarios llevar a cabo una o
varias tareas especficas, en cualquier campo de actividad susceptible de ser
automatizado o asistido, con especial nfasis en los negocios. Incluye entre muchos
otros:

Aplicaciones para Control de sistemas y automatizacin industrial

Aplicaciones ofimticas

Software educativo

Software empresarial

Bases de datos

Telecomunicaciones (por ejemplo Internet y toda su estructura lgica)

Videojuegos

Software mdico

Software de clculo numrico y simblico.

Software de diseo asistido (CAD)

Software de control numrico (CAM)

Proceso de creacin del software


Artculo principal: Proceso para el desarrollo de software

Se define como proceso al conjunto ordenado de pasos a seguir para llegar a la solucin
de un problema u obtencin de un producto, en este caso particular, para lograr un
producto software que resuelva un problema especfico.
El proceso de creacin de software puede llegar a ser muy complejo, dependiendo de su
porte, caractersticas y criticidad del mismo. Por ejemplo la creacin de un sistema
operativo es una tarea que requiere proyecto, gestin, numerosos recursos y todo un
equipo disciplinado de trabajo. En el otro extremo, si se trata de un sencillo programa (por
ejemplo, la resolucin de una ecuacin de segundo orden), ste puede ser realizado por
un solo programador (incluso aficionado) fcilmente. Es as que normalmente se dividen
en tres categoras segn su tamao (lneas de cdigo) o costo:

de pequeo, mediano y gran porte. Existen varias metodologas para estimarlo,


una de las ms populares es el sistema COCOMO que provee mtodos y un software
(programa) que calcula y provee una aproximacin de todos los costos de produccin en
un proyecto software (relacin horas/hombre, costo monetario, cantidad de lneas fuente
de acuerdo a lenguaje usado, etc.).
Considerando los de gran porte, es necesario realizar complejas tareas, tanto tcnicas
como de gerencia, una fuerte gestin y anlisis diversos (entre otras cosas), la complejidad
de ello ha llevado a que desarrolle una ingeniera especfica para tratar su estudio y
realizacin: es conocida como Ingeniera de Software.
En tanto que en los de mediano porte, pequeos equipos de trabajo (incluso un
avezado analista-programador solitario) pueden realizar la tarea. Aunque, siempre en
casos de mediano y gran porte (y a veces tambin en algunos de pequeo porte, segn su
complejidad), se deben seguir ciertas etapas que son necesarias para la construccin del
software. Tales etapas, si bien deben existir, son flexibles en su forma de aplicacin, de
acuerdo a la metodologa o proceso de desarrollo escogido y utilizado por el equipo de
desarrollo o por el analista-programador solitario (si fuere el caso).
Los procesos de desarrollo de software poseen reglas preestablecidas, y deben ser
aplicados en la creacin del software de mediano y gran porte, ya que en caso contrario lo
ms seguro es que el proyecto no logre concluir o termine sin cumplir los objetivos
previstos, y con variedad de fallos inaceptables (fracasan, en pocas palabras). Entre tales
procesos los hay giles o livianos (ejemplo XP), pesados y lentos (ejemplo RUP), y
variantes intermedias. Normalmente se aplican de acuerdo al tipo y porte del software a
desarrollar, a criterio del lder (si lo hay) del equipo de desarrollo. Algunos de esos
procesos son Programacin Extrema (en ingls eXtreme Programming o XP),Proceso
Unificado de Rational (en ingls Rational Unified Process o RUP), Feature Driven
Development (FDD), etc.
Cualquiera sea el proceso utilizado y aplicado al desarrollo del software (RUP, FDD, XP,
etc), y casi independientemente de l, siempre se debe aplicar un modelo de ciclo de
vida.6
Se estima que, del total de proyectos software grandes emprendidos, un 28% fracasan, un
46% caen en severas modificaciones que lo retrasan y un 26% son totalmente exitosos.

Вам также может понравиться