martes, 6 de septiembre de 2016

Ciclo de vida del software


Pressman[1] define el proceso del software como una estructura para las actividades, acciones y tareas que se requieren a fin de construir software de alta calidad.

Su ciclo de vida, entonces refiere desde que éste es planeado y no termina cuando sale al mercado o cuando sus clientes lo comienzan a utilizar, sino que continúa con la parte del mantenimiento que el desarrollador debe darle para que no llegue a ser obsoleto.



En el siguiente gráfico se describe dicho modelo en cascada, basado en las referencias de Somerville[2] y su texto Ingeniería de Software.



En la parte de la Planificación se indica que hay que:

  • ·         Describir el entorno
  • ·         Definir recursos humanos y costos
  • ·         Identificar necesidades
  • ·         Identificar restricciones de costo y tiempo
  • ·         Evaluar viabilidad y riesgos
  • ·         Asignar funciones al software, hardware y bases de datos
  • ·         Definir el sistema y crear el modelo de arquitectura


Además, se hace énfasis en que en el área del diseño, es la parte central de la Ingeniería de Software, se debe pensar en el usuario y crear una interfaz que le sea amigable a quien sea que vaya a ser el usuario final (al cual se tiene estudiado en la parte de la planeación), ya que el 50% del desarrollo del prototipo viene de parte del usuario.

Sin embargo, existen críticas hacia este modelo en cascada, ya que al ser muy lineal, y pese a que se analizan riesgos para prevenir errores o corregirlos conforme se vayan presentando, en las empresas no suele trabajarse de esa manera.

Además, dicho modelo requiere que el cliente desde un principio defina todas sus necesidades, y esta situación ya en estos tiempos suena utópica ya que los cambios se presentan muchas o en la mayoría de las veces, sobre la marcha. Aquí, tanto el equipo de desarrollo, como la empresa y el cliente deben desarrollar la paciencia.

Por otra parte se nos presenta también el modelo incremental en el cual se inicia entregando lo más básico y conforme los requerimientos vayan siendo mayores, se va mejorando el software, de manera que el resultado final resulta más detallado y acorde a las necesidades del cliente.

·      Se usa cuando no se dispone de personal suficiente para entregar un producto completo, sino por partes.
·         Incrementos planean riesgos técnicos.
·         Proporcionan funcionalidad con poco retraso.

Importancia

La importancia del software actual está implícita en nuestras actividades cotidianas, y en el ciclo de vida del mismo no se abarca la parte en la que éste muere. Como en el humano hay una parte donde se termina nuestra existencia, el software debe adaptarse a los nuevos modelos y nuevas tecnologías para seguir subsistiendo.

Un ejemplo de esto serían los antivirus[3]. En mayo de 2014, el vicepresidente de Symantec declaró prácticamente la muerte de éstos ya que detectan únicamente el 45% del malware existente. Dicho malware evoluciona mucho más rápido que los antivirus, por lo que empresas y usuarios están constantemente en peligro y dichas compañías no han podido hacer mucho o nada para evitar que los ordenadores se infecten.




[1] Roger S. Pressman. (2010). Ingeniería del Software. Un enfoque práctico. New York: Editorial McGraw Hill.
[2] Somerville, Ian (2011). Ingeniería de Software. México. Pearson Educación Pp 1-9
[3] Juan Ranchal. (2014). Symantec decreta la muerte del software antivirus. 2016, de Muy Computer Sitio web: http://www.muycomputer.com/2014/05/08/symantec-muerte-software-antivirus

No hay comentarios:

Publicar un comentario