Está en la página 1de 5

Software

Ir a la navegaci�nIr a la b�squeda
Software

Dentro de la categor�a de software de aplicaci�n est�n incluidos los procesadores


de texto como LibreOffice Writer (arriba) y los editores de gr�ficos rasterizados
como Krita (abajo).

Buscador de Programas en Ubuntu 13.10


Se conoce como software1? al soporte l�gico de un sistema inform�tico, que
comprende el conjunto de los componentes l�gicos necesarios que hacen posible la
realizaci�n de tareas espec�ficas, en contraposici�n a los componentes f�sicos que
son llamados hardware. La interacci�n entre el software y el hardware hace
operativo un ordenador (u otro dispositivo), es decir, el Software env�a
instrucciones que el Hardware ejecuta, haciendo posible su funcionamiento.

Los componentes l�gicos incluyen, entre muchos otros, las aplicaciones


inform�ticas, tales como el procesador de texto, que permite al usuario realizar
todas las tareas concernientes a la edici�n de textos; el llamado software de
sistema, tal como el sistema operativo, que b�sicamente permite al resto de los
programas funcionar adecuadamente, facilitando tambi�n la interacci�n entre los
componentes f�sicos y el resto de las aplicaciones, y proporcionando una interfaz
con el usuario.2?

El software en su gran mayor�a, est� escrito en lenguajes de programaci�n de alto


nivel, ya que son m�s f�ciles y eficientes para que los programadores los usen,
porque son m�s cercanos al Lenguaje natural respecto del lenguaje de m�quina.3? Los
lenguajes de alto nivel se traducen a lenguaje de m�quina utilizando un compilador
o un int�rprete, o bien una combinaci�n de ambos. El software tambi�n puede estar
escrito en lenguaje ensamblador , que es de bajo nivel y tiene una alta
correspondencia con las instrucciones de lenguaje m�quina; se traduce al lenguaje
de la m�quina utilizando un ensamblador.

El anglicismo software es el m�s ampliamente difundido al referirse a este


concepto, especialmente en la jerga t�cnica; en tanto que el t�rmino sin�nimo
�logicial�, derivado del t�rmino franc�s logiciel, es utilizado mayormente en
pa�ses y zonas de influencia francesa. Otro sin�nimo de uso limitado es
�programario� (en catal�n, programari). Su abreviatura es Sw.

�ndice
1 Etimolog�a
2 Definici�n de software
3 Clasificaci�n del software
4 Proceso de creaci�n del software
4.1 Modelos de proceso o ciclo de vida
4.1.1 Modelo cascada
4.1.2 Modelos evolutivos
4.1.2.1 Modelo iterativo incremental
4.1.2.2 Modelo espiral
4.1.2.3 Modelo espiral Win & Win
4.2 Etapas en el desarrollo del software
4.2.1 Captura, an�lisis y especificaci�n de requisitos
4.2.1.1 Procesos, modelado y formas de elicitaci�n de requisitos
4.2.1.2 Clasificaci�n e identificaci�n de requisitos
4.2.2 Dise�o del sistema
4.2.3 Codificaci�n del software
4.2.4 Pruebas (unitarias y de integraci�n)
4.2.5 Instalaci�n y paso a producci�n
4.2.6 Mantenimiento
5 Car�cter evolutivo del software
6 Referencias
7 Bibliograf�a
7.1 Libros
7.2 Art�culos y revistas
8 V�ase tambi�n
8.1 Modelos de ciclo de vida
9 Enlaces externos
Etimolog�a
Software (pronunciaci�n AFI:['s?ftw???]) es una palabra proveniente del ingl�s, que
en espa�ol no posee una traducci�n adecuada al contexto, por lo cual se la utiliza
asiduamente sin traducir y as� fue admitida por la Real Academia Espa�ola (RAE).4?
Aunque puede no ser estrictamente lo mismo, suele sustituirse por expresiones tales
como programas (inform�ticos) o aplicaciones (inform�ticas) o soportes l�gicos.5?

Software es lo que se denomina producto en ingenier�a de software.6?

Definici�n de software
Existen varias definiciones similares aceptadas para software, pero probablemente
la m�s formal sea la siguiente:

Es el conjunto de los programas de c�mputo, procedimientos, reglas, documentaci�n y


datos asociados, que forman parte de las operaciones de un sistema de computaci�n.

Extra�do del est�ndar 729 del IEEE7?


Considerando esta definici�n, el concepto de software va m�s all� de los programas
de computaci�n en sus distintos estados: c�digo fuente, binario o ejecutable;
tambi�n su documentaci�n, los datos a procesar e incluso la informaci�n de usuario
forman parte del software: es decir, abarca todo lo intangible, todo lo �no f�sico�
relacionado.

El t�rmino software fue usado por primera vez en este sentido por John W. Tukey en
1957. En la ingenier�a de software y las ciencias de la computaci�n, el software es
toda la informaci�n procesada por los sistemas inform�ticos: programas y datos.

El concepto de leer diferentes secuencias de instrucciones (programa) desde la


memoria de un dispositivo para controlar los c�lculos fue introducido por Charles
Babbage como parte de su m�quina diferencial. La teor�a que forma la base de la
mayor parte del software moderno fue propuesta por Alan Turing en su ensayo de
1936, �Los n�meros computables�, con una aplicaci�n al problema de decisi�n.

Clasificaci�n del software


Si bien esta distinci�n es, en cierto modo, arbitraria, y a veces confusa, a los
fines pr�cticos se puede clasificar al software en tres tipos:

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


programador de los detalles del sistema inform�tico en particular que se use,
aisl�ndolo especialmente del procesamiento referido a las caracter�sticas 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 diagn�stico
Herramientas de correcci�n y optimizaci�n
Servidores
Utilidades
Software de programaci�n: Es el conjunto de herramientas que permiten al
programador desarrollar programas de inform�tica, usando diferentes alternativas y
lenguajes de programaci�n, de una manera pr�ctica. Incluyen en forma b�sica:
Editores de texto
Compiladores
Int�rpretes
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 m�ltiples comandos para compilar, interpretar, depurar, etc.
Habitualmente cuentan con una avanzada interfaz gr�fica de usuario (GUI).
Software de aplicaci�n: Es aquel que permite a los usuarios llevar a cabo una o
varias tareas espec�ficas, 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 automatizaci�n industrial
Aplicaciones ofim�ticas
Software educativo
Software empresarial
Bases de datos
Telecomunicaciones (por ejemplo Internet y toda su estructura l�gica)
Videojuegos
Software m�dico
Software de c�lculo num�rico y simb�lico.
Software de dise�o asistido (CAD)
Software de control num�rico (CAM)
Proceso de creaci�n del software
Art�culo principal: Proceso para el desarrollo de software
Se define como �proceso� al conjunto ordenado de pasos a seguir para llegar a la
soluci�n de un problema u obtenci�n de un producto, en este caso particular, para
lograr un producto software que resuelva un problema espec�fico.

El proceso de creaci�n de software puede llegar a ser muy complejo, dependiendo de


su porte, caracter�sticas y criticidad del mismo. Por ejemplo la creaci�n de un
sistema operativo es una tarea que requiere proyecto, gesti�n, numerosos recursos y
todo un equipo disciplinado de trabajo. En el otro extremo, si se trata de un
sencillo programa (por ejemplo, la resoluci�n de una ecuaci�n de segundo orden),
�ste puede ser realizado por un solo programador (incluso aficionado) f�cilmente.
Es as� que normalmente se dividen en tres categor�as seg�n su tama�o (l�neas de
c�digo) o costo: de �peque�o�, �mediano� y �gran porte�. Existen varias
metodolog�as para estimarlo, una de las m�s populares es el sistema COCOMO que
provee m�todos y un software (programa) que calcula y provee una aproximaci�n de
todos los costos de producci�n en un �proyecto software� (relaci�n horas/hombre,
costo monetario, cantidad de l�neas fuente de acuerdo a lenguaje usado, etc.).

Considerando los de gran porte, es necesario realizar complejas tareas, tanto


t�cnicas como de gerencia, una fuerte gesti�n y an�lisis diversos (entre otras
cosas), la complejidad de ello ha llevado a que desarrolle una ingenier�a
espec�fica para tratar su estudio y realizaci�n: es conocida como ingenier�a de
Software.

En tanto que en los de mediano porte, peque�os 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 tambi�n en algunos de peque�o porte,
seg�n su complejidad), se deben seguir ciertas etapas que son necesarias para la
construcci�n del software. Tales etapas, si bien deben existir, son flexibles en su
forma de aplicaci�n, de acuerdo a la metodolog�a 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 creaci�n del software de mediano y gran porte, ya que en caso
contrario lo m�s 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 l�der (si lo hay) del
equipo de desarrollo. Algunos de esos procesos son Programaci�n Extrema (en ingl�s
eXtreme Programming o XP), Proceso Unificado de Rational (en ingl�s 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�.8?

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.9?

Cuando un proyecto fracasa, rara vez es debido a fallas t�cnicas, la principal


causa de fallos y fracasos es la falta de aplicaci�n de una buena metodolog�a o
proceso de desarrollo. Entre otras, una fuerte tendencia, desde hace pocas d�cadas,
es mejorar las metodolog�as o procesos de desarrollo, o crear nuevas y concientizar
a los profesionales de la inform�tica a su utilizaci�n adecuada. Normalmente los
especialistas en el estudio y desarrollo de estas �reas (metodolog�as) y afines
(tales como modelos y hasta la gesti�n misma de los proyectos) son los ingenieros
en software, es su orientaci�n. Los especialistas en cualquier otra �rea de
desarrollo inform�tico (analista, programador, Lic. en inform�tica, ingeniero en
inform�tica, ingeniero de sistemas, etc.) normalmente aplican sus conocimientos
especializados pero utilizando modelos, paradigmas y procesos ya elaborados.

Es com�n para el desarrollo de software de mediano porte que los equipos humanos
involucrados apliquen �metodolog�as propias�, normalmente un h�brido de los
procesos anteriores y a veces con criterios propios.

El proceso de desarrollo puede involucrar numerosas y variadas tareas,8? desde lo


administrativo, pasando por lo t�cnico y hasta la gesti�n y el gerenciamiento.
Pero, casi rigurosamente, siempre se cumplen ciertas etapas m�nimas; las que se
pueden resumir como sigue:

Captura, elicitaci�n,10? especificaci�n y an�lisis de requisitos (ERS)


Dise�o
Codificaci�n
Pruebas (unitarias y de integraci�n)
Instalaci�n y paso a producci�n
Mantenimiento
En las anteriores etapas pueden variar ligeramente sus nombres, o ser m�s globales,
o contrariamente, ser m�s refinadas; por ejemplo indicar como una �nica fase (a los
fines documentales e interpretativos) de �an�lisis y dise�o�; o indicar como
�implementaci�n� lo que est� dicho como �codificaci�n�; pero en rigor, todas
existen e incluyen, b�sicamente, las mismas tareas espec�ficas.

En el apartado 4 del presente art�culo se brindan mayores detalles de cada una de


las etapas indicadas.
Modelos de proceso o ciclo de vida
Para cada una de las fases o etapas listadas en el �tem anterior, existen sub-
etapas (o tareas). El modelo de proceso o modelo de ciclo de vida utilizado para el
desarrollo, define el orden de las tareas o actividades involucradas,8? tambi�n
define la coordinaci�n entre ellas, y s