domingo, 12 de abril de 2015

2) Modelos del Proceso de Software

Introducción

Quién hace qué, cuándo y cómo lo hace para alcanzar cierto objetivo es lo que un proceso define. En general, el éxito de las empresas u organizaciones depende en gran medida de la definición y seguimiento adecuado de sus procesos. En el caso de una empresa que se dedica al desarrollo de software, se requieren procesos especializados que abarquen desde la creación hasta la administración de un sistema de software.
Un modelo de proceso de software define cómo resolver la problemática del desarrollo de sistemas de software. Para desarrollar software se requiere resolver ciertas fases de un proceso que se conocen en su conjunto como el ciclo de vida del desarrollo de software. Un modelo de proceso debe considerar una variedad de aspectos, como el conjunto de personas, estructuras organizacionales, reglas, políticas, actividades, componentes de software, metodologías y herramientas utilizadas.
 

Desarrollo

Modelo de Cascada
Es el enfoque metodológico que ordena rigurosamente las etapas del ciclo de vida del software, de forma tal que el inicio de cada etapa debe esperar a la finalización de la inmediatamente anterior. De esta forma, cualquier error de diseño detectado en la etapa de prueba conduce necesariamente al rediseño y nueva programación del código afectado, aumentando los costos del desarrollo.
Análisis del sistema: Debido a que el software es siempre parte de un sistema mayor el trabajo comienza estableciendo los requisitos de todos los elementos del sistema y luego asignando algún subconjunto de estos requisitos al software. 
 
Desarrollo Evolutivo
Este modelo es efectivo en proyectos pequeños o medianos con poco tiempo para su desarrollo y sin generar documentación para cada versión. Para proyectos largos es mejor combinar lo mejor del modelo de cascada y evolutivo: se puede hacer un prototipo global del sistema y posteriormente reimplementarlo con un acercamiento más estructurado. Los subsistemas con requisitos bien definidos y estables se pueden programar utilizando cascada y la interfaz de usuario se puede especificar utilizando un enfoque exploratorio.
 
Ingeniería de Software Basada en Componentes
En general, el desarrollo de software basado en componentes puede verse como una extensión natural de la programación orienta a objetos dentro del ámbito de los sistemas abiertos y distribuidos. Este paradigma se basa en el uso de los componentes software como entidades básicas del modelo, entendiendo por componente “una unidad de composición de aplicaciones software que posee un conjunto de requisitos, y que ha de poder ser desarrollado, adquirido, incorporado al sistema y compuesto con otros componentes, de forma independiente en tiempo y espacio”.
 
A continuación presento un mapa conceptual sobre el proceso de software así como un cuestionario contestado de evaluación.
 

Conclusión

Creo que la diversidad de los proyectos que se desarrollan ha sido el principal factor en la creación de distintos métodos de desarrollo de software. Por eso es importante conocer los métodos existentes para así saber cuál utilizar a la hora de desarrollar algún software, eligiendo o creando el que mejor se adapte a las características y necesidades únicas del proyecto; de esta manera garantizaremos nuestra mejor respuesta al problema de desarrollo planteado.

Referencias

  • Esteller Víctor, Procesos de desarrollo de software y materiales educativos compuratizados, Revista de Tecnología de Informática, Venezuela, 2012.
  • Metodologías y procesos de análisis de software, Capítulo 2, UNAM.
  • Bertoa Manuel F., Troya José M., Vallecillo Antonio; Aspectos de Calidad en el Desarrollo de Software Basado en Componentes; Departamento de Lenguajes y Ciencias de la Computación; Universidad de Málaga.
  • Weitzenfeld Ridel, Ingeniería de software: el proceso para el desarrollo de software, ITAM, 2007.

No hay comentarios.: