Professional Documents
Culture Documents
Qu es el software?
Segn Pressman, R. 2010 El software de computadora es el producto que construyen los
programadores profesionales y al que despus le dan mantenimiento durante un largo tiempo.
Incluye programas que se ejecutan en una computadora de cualquier tamao y arquitectura,
contenido que se presenta a medida de que se ejecutan los programas de cmputo e informacin
descriptiva tanto en una copia dura como en formatos virtuales que engloban virtualmente a
cualesquiera medios electrnicos. El desarrollo de software est formado por un proceso, un
conjunto de mtodos (prcticas) y un arreglo de herramientas que permite a los profesionales
elaborar software de cmputo de alta calidad.
Ciclo de vida del software
El trmino ciclo de vida del software describe el desarrollo de software, desde la fase inicial
hasta la fase final. El ciclo de vida bsico de un software consta de los siguientes
procedimientos:
Modelo de la cascada
El modelo de la cascada, a veces llamado ciclo de vida clsico, sugiere un enfoque sistemtico
y secuencial para el desarrollo del software, que comienza con la especificacin de los
requerimientos por parte del cliente y avanza a travs de planeacin, modelado, construccin y
despliegue, para concluir con el apoyo del software terminado.
Este tipo de modelo es utilizado cuando los requerimientos para cierto problema se comprenden
bien: cuando el trabajo desde la comunicacin hasta el despliegue fluye en forma
razonablemente lineal. Esta situacin se encuentra en ocasiones cuando deben hacerse
adaptaciones o mejoras bien definidas a un sistema ya existente (por ejemplo, una adaptacin
para software de contabilidad que es obligatorio hacer debido a cambios en las regulaciones
gubernamentales). Tambin ocurre en cierto nmero limitado de nuevos esfuerzos de desarrollo,
pero slo cuando los requerimientos estn bien definidos y tienen una estabilidad razonable.
El modelo de la cascada es el paradigma ms antiguo de la ingeniera de software, es por esto
que en el momento de utilizarlo aparecen ciertos problemas que se detallan a continuacin.
Modelos concurrentes
El modelo de desarrollo concurrente, en ocasiones llamado ingeniera concurrente, permite que
un equipo de software represente elementos iterativos y concurrentes de cualquiera de los
modelos de proceso descritos en este captulo. Por ejemplo, la actividad de modelado definida
para el modelo espiral se logra por medio de invocar una o ms de las siguientes acciones de
software: hacer prototipos, anlisis y diseo.
Todas las actividades de ingeniera de software existen de manera concurrente, pero se hallan en
diferentes estados. Por ejemplo, la actividad de comunicacin (no se muestra en la figura)
termina su primera iteracin al principio de un proyecto y existe en el estado de cambios en
espera. La actividad de modelado (que exista en estado inactivo mientras conclua la
comunicacin inicial, ahora hace una transicin al estado en desarrollo. Sin embargo, si el
cliente indica que deben hacerse cambios en los requerimientos, la actividad de modelado pasa
del estado en desarrollo al de cambios en espera (Pacheco, I y Garca, J. 2008).
Los modelos de procesos prescriptivos se utilizan cuando los requerimientos se encuentran bien
definidos desde el inicio, es el caso del proceso cascada que se utiliza cuando los requerimientos
no cambian o para la mejora de un producto ya realizado donde los requerimientos ya fueron
definidos, el modelo incremental permite entregar software en cada incremento con nuevas
funcionalidades que fueran especificadas en los requerimientos, el proceso evolutivo por as
decirlo muestra cmo evoluciona a travs del tiempo y los modelos concurrentes permiten
realizar varios anlisis de los requerimientos al combinar varios procesos de desarrollo y
mantener las actividades en un estado (inactivo, en desarrollo, ejecutado, etc).
PROCESO PREVISIBLE
Adecuado para las situaciones en que la incertidumbre es baja: las variables de entrada
son conocidas y el producto final se puede estimar con gran precisin de acierto.
Caracterstica comn: alto coste de reconstruccin o reparacin de las fallas del producto
nal.
PROCESO EMPRICO
Dado que la divisin en factores es una divisin subjetiva, existen varias clasificaciones de los
factores de calidad. Veremos la de McCall, que los agrupa en tres perspectivas: operativa, de
mantenimiento y evolutiva.
Factores operativos de la calidad del software.
Los factores operativos son aquellos que afectan al uso del software:
Correccin: el software cumple las especificaciones
Fiabilidad: grado en el que el software es confiable, es decir, no tiene fallos
Eficiencia: necesidad de recursos software y hardware del producto
Seguridad: grado en el que puede controlarse el acceso al software y a los datos
Facilidad de uso: grado de esfuerzo necesario para utilizar el software
Factores de mantenimiento de la calidad del software.
Los factores de mantenimiento son aquellos que se aplican a la capacidad de modificacin del
software:
Flexibilidad: esfuerzo necesario para modificar un programa
Facilidad de prueba: esfuerzo requerido para realizar las pruebas de un programa
Facilidad de mantenimiento: esfuerzo requerido para localizar y reparar un error
Factores evolutivos
Los factores evolutivos son aquellos que indican si el software se puede trasladar con facilidad a
otra mquina o a otro producto de base (SO, SGBD, etc.), o incrementar sus prestaciones:
Portabilidad: facilidad para migrar el software de un entorno de operacin a otro
Capacidad de reutilizacin: grado en el que un programa o parte del mismo se puede
utilizar en otras aplicaciones.
Capacidad de interoperacin: esfuerzo necesario para que un software opere
conjuntamente con otros sistemas.