top of page

| TEMA 2 | MODELOS DEL PROCESO : Modelo Prescriptivo

I. INTRODUCCIÓN


Según mi apreciación, crear software, no es tan fácil ni tan complicado como se cree, tener conocimiento científico, es decir, saber programar, analizar código, diseñar el programa, entre otros aspectos; no aseguran que la realización sea un éxito y obviamente ser solamente organizado sin tener conocimiento científico tampoco hará que se llegue a una solución.


Lo expuesto en el párrafo anterior, es simple, crear un software sea este complejo o sencillo requiere de dos aspectos primordiales: el conocimiento y la organización a medida de que se van aplicando los conocimientos. El proceso del software es creado por la ingeniería de software, para que los desarrolladores ejecuten un conjunto de pasos que le ayuden a tener un resultado de gran calidad, que sea entregado a tiempo.


En el proceso del software, no trabaja solamente el desarrollador, si no, que también el cliente cumple papel importante ya que todos los pasos que se siguen, se dan en base a sus necesidades. Seguir un proceso es importante para controlar actividades en las que pueden surgir problemas, brindando agilidad a los procesos apropiados para el equipo de software y para el producto.


Obviamente no todos los pasos pueden ser aplicados a todo tipo de software, por ejemplo, en la realización de un software de inteligencia artificial, no se sigue el mismo proceso que se seguiría para una aplicación web, ya que los requerimientos son distintos, es por esto que la elección de los pasos a seguir debe ser cuidadosa, analizando cuál es el requerimiento que el software desea cubrir, para que éste tenga éxito.


II. OBJETIVO


El objetivo de ésta publicación es conocer acerca de los pasos que se deben seguir para una correcta realización de software.


III. MARCO TEORICO


Para construir un sistema es necesario realizar un conjunto de pasos a los cuales se les denomina "procesos del software", dichos pasos, son seguidos por ingenieros de software que adaptan los requerimientos de un cliente, al software, el cual es de suma importancia ya que brinda organización y agilita procesos.


Los pasos para realizar un software varían dependiendo del tipo de software que se realice, por ejemplo una aplicación web para organizar eventos no requiere los mismos pasos que una app móvil para organizar tareas de la universidad. (Canós, J ; Letelier, P; Penadés, M. s.f.).


Se puede decir que un proceso es un conjunto de actividades o pasos que se realizan para llegar a un fin, en el caso del proceso de software también llamado ciclo de vida de desarrollo del mismo, la finalidad es el producto final, es decir, el software.


Las actividades para el proceso de software son divididas en estructurales y sombrilla, y en el gráfico 3.1 son nombradas.

Gráfico 3. 1: Actividades del software.


La necesidad del análisis y diseño de sistemas es cada vez más grande, mediante ella se puede saber qué necesita un usuario común y se analizan los datos de entra y el flujo de los mismos, el programador necesita procesar esta información, almacenarla y producirla de una forma organizada que permita a un usuario común entenderla.


El proceso de análisis y diseño de sistemas es muy importante, ya que si no se hace un correcto análisis, el cliente queda insatisfecho con el software y no lo usará, por lo tanto este proceso debe ser tomado en cuenta a la hora de realizar un programa que cubra una necesidad, es por esto que la HCI (interacción humano- computadora) se ha vuelto cada vez más importante en los últimos años para los analistas de sistemas, al adoptar los principios de la HCI las necesidades de los usuarios humanos son tomadas en cuenta más que la necesidad o el requerimiento del software en sí. (Pressman, R. 2010).


En el gráfico 3.2 se resume el proceso de software de una manera más entendible.


Gráfico 3. 2: Procesos del software



3.1. MODELOS DEL PROCESO PRESCRIPTIVO


Los modelos del proceso prescriptivo fueron desarrollados para ordenar la situación en caso de que exista un gran problema en el proyecto, en este se definen un conjunto de actividades, acciones, tareas, hitos y demás trabajos que un equipo de software debe realizar para construir sistemas de alta calidad.


Cuando un sin número de procesos no es controlado, ni existe el orden, surgen situaciones caóticas que llevan a que un software no se realice de manera correcta por esto los modelos del proceso prescriptivo sirven como guía para el software.


Los modelos del proceso prescriptivo deben llevar siempre las 5 actividades principales en el desarrollo de software: la comunicación, planeación, modelado, construcción y despliegue, y los distintos tipos de modelos que existen son:


  • Modelo de la cascada

  • Modelos de proceso incremental

  • Modelos de proceso evolutivo

  • Modelos concurrentes


3.1.2. MODELO CASCADA


El modelo cascada es también llamado ciclo de vida clásico ya que fue uno de los primeros modelos para crear software, y es uno de los modelos más simples y conocidos.

Gráfico 3. 3: Modelo cascada


La forma en la que funciona el modelo cascada es muy simple, el resultado del software lo ve el cliente al final y es así que si hay algún error esto podría ser fatal.


Una de las cosas que provoca que se presenten errores en el modelo cascada, es que, el cliente no tiene siempre todo perfectamente claro en el comienzo del software, si no que van surgiendo ideas profundizadas con el transcurso del tiempo, lo que hará que estos requerimientos no explicados al inicio al programador, causen retrasos o fallas.


El modelo cascada no es muy eficiente también, debido a que si uno de los procesos se retrasa, los demás también lo harán, lo que ocasiona una pérdida de tiempo.


Funcionamiento:


Tal y como lo indica el gráfico 3.3, el primer paso son los requerimientos, para lo cual se necesita una reunión con el cliente, ya que es el o ella quien explica lo que necesita que sea capaz de resolver el software, por lo tanto se hace un compromiso en la parte incial del proyecto.


Cuando se pasa al paso 2, se necesita saber, en base a los requerimientos, qué se va a hacer y cómo, luego los siguientes pasos, de prueba y entrega es en donde las dos partes firman un acuerdo, y en caso de nuevas modificaciones o de que se haga el pedido de más módulos, esto tiene costos adicionales.


3.1.2. MODELOS DE PROCESO INCREMENTAL


En ciertas ocasiones los requerimientos de software están bien definidos sin embargo el alcance del esfuerzo de desarrollo imposibilita el progreso lineal, además suele suceder que se necesita un avance rápido de cierta parte del software, algo así como un módulo que pueda ser utilizado rápidamente por el cliente, y que después sea mejorado con los incrementos como lo indica el gráfico 3.4. (Gutierrez, D. 2011).


Gráfico 3. 4: Incrementos en el desarrollo del software.


Algunas características de este tipo de modelos son:

  • Tiene una secuencia lineal pero en forma escalonada mientras avanza el calendario de actividades.

  • El primer incremento es el producto fundamental con los requerimientos más básicos aunque sin muchas características.

  • Es útil cuando no se tiene mucho personal los primeros incrementos se realizan con pocas personas y en los siguientes con más personas.

Su forma de trabajo se explica en el siguiente gráfico.


Gráfico 3. 5: Forma de trabajo de los modelos del proceso incremental


3.1.3. MODELOS DE PROCESO EVOLUTIVO


Los sistemas complejos evolucionan lo cual hace q sea casi interminable un software perfecto, entonces se realiza una versión limitada con el conjunto de requerimientos básicos, este tipo de modelos logran que se llegue al objetivo desarrollando prototipos cada vez más evolucionados debido a que hay constante comunicación con el cliente.(Gutierrez, D. 2011).


Crear un prototipo significa aplicar los requerimientos principales para que se exponga al usuario y este apruebe o desapruebe el mismo, cuando son desechados, son en su mayoría creados para redefinir qué es lo que el usuario realmente desea, por lo tanto, esto es de gran utilidad para medianos o grandes sistemas.


Las desventajas de este tipo de modelos es que no siempre se sabe en donde acabará el sistema y los constantes cambios pueden afectar el orden del mismo, además a veces los prototipos no están documentados por lo que no se debe acerca de su funcionabilidad.


Los dos modelos más comunes del proceso evolutivo son explicados en el siguiente gráfico:

Gráfico 3. 6: Modelos del proceso evolutivo


3.1.4. MODELOS CONCURRENTES


El modelo concurrente fue creado por Davis Sitaram y también es conocido como ingeniería concurrente, estos modelos son muy aplicados para todo tipo de proyectos y proporcionan información exacta del estado de los procesos ya que se se representan como una serie de actividades técnicas importantes, tareas y estados asociados a ellas, lo cual permite que un equipo de trabajo pueda representar cualquiera de los modelos anteriores.


Estos modelos son excelentes para proyectos en los que se conforman grupos de trabajo independientes sin embargo si no se dan las condiciones señaladas no es aplicable, además, si no existen grupos de trabajo no se puede trabajar en este método.


El siguiente gráfico muestra la forma de trabajar de este tipo de modelos.


Gráfico 3. 7: Modelos concurrentes


3.1.4.1 ACTIVIDADES DEL MODELO CONCURRENTE


Las actividades se representan de manera semejante, acciones o tareas (por ejemplo, comunicación o construcción), cambian de estado de modo que cuando se ejecute la comunicacion los otros procesos esten en revisión, o en cambios de espera, o cualquiera de los estados posibles, esto puede ser entendido con el ejemplo del gráfico 3.8.


Gráfico 3. 8: Funcionamiento de los modelos concurrentes


IV. CONCLUSIÓN

Para realizar un software y que este cumpla con los requerimientos del cliente se necesita un proceso el cual conlleva la elección de ciertos modelos, este tipo de modelos son escogidos según el software que se desee hacer, los modelos del proceso prescriptivo son modelos simples pero que conllevan las actividades estructurales que todo equipo de software debe hacer: comunicación con el cliente, planeación de las actividades, modelado del sistema, construcción y finalmente el despliegue de la información que es la presentación y retroalimentación del software.


La diferencia de los modelos del proceso prescriptivo son muchas sin embargo concuerdan en muchas características, por ejemplo, todas requieren comunicación con el cliente, sin embargo cada uno de los modelos aplica las actividades a su modo, de esto depende la funcionabilidad del software que se cree.


Existen distintas clases de software por lo tanto existen distintos modos de realizarlo, por ejemplo un software muy pequeño y con requerimientos claros, no necesita de un modelo por prototipos, al contrario de un software más complejo, la elección del modelo es importante ya que asegura la calidad del producto final, es decir el software para los desarrolladores y el despliegue de la información a los clientes.

V. BIBLIOGRAFÍA

Canós, J ; Letelier, P; Penadés, M. s.f. Métodologías Ágiles en el Desarrollo de Software. (En línea). ES. Consultado, 19 de abril de 2015. Formato PDF. Disponible en: http://noqualityinside.com/nqi/nqifiles/XP_Agil.pdf


Gutierrez, D. 2011. Métodos de Desarrollo de Software. (En línea). VE. Consultado, 19 de abril de 2015. Formato PDF. Disponible en: http://www.codecompiling.net/files/slides/IS_clase_13_metodos_y_procesos.pdf


Pressman, R. 2010. Ingeniería de software: Un enfoque práctico. 7 ed. México. Mc Graw Hill. p 805.


Virrueta, A. 2010. Metodologías de desarrollo de software. ES. Consultado, 19 de abril de 2015. Formato PDF. Disponible en: http://www.monografias.com/trabajos-pdf4/metodologias-de-desarrollo-software/metodologias-de-desarrollo-software.pdf

bottom of page