Proceso unificado de desarrollo (RUP)

Nunca había escuchado anteriormente sobre este modelo de desarrollo así que me pareció algo bastante bueno conocer algo nuevo, para comenzar, este proceso se generó en 1998 por un grupo de desarrolladores entre ellos Ken Hartman, Barry Bohem y Philippe Kruchten.

Este proceso se parece bastante a algunos de los que se usan actualmente en la industria, considerando que se basa en un análisis de requerimientos por medio de casos de uso y a partir de estos comienza el desarrollo. Un punto bastante importante de el RUP es que la arquitectura del software es el principal punto que se toma en cuenta, esta se le presenta a los clientes por medio de iteraciones generadas gracias a los casos de uso.

Flujo de Trabajo del PUD https://www.ecured.cu/Proceso_unificado_de_desarrollo

Fases

https://www.ecured.cu/Proceso_unificado_de_desarrollo

Hay cuatro fases en el PUD primero se concibe el proyecto, aquí se define la visión, el objetivo y el alcance del proyecto también se genera el análisis de requerimientos y el modelo de negocios. La siguiente fase es la de elaboración en la cual se pretende finiquitar el análisis de requerimientos y definir la arquitectura del sistema. En tercer paso esta la construcción que se refiere a las iteraciones del proyecto en cuestión y finalmente el paso de transición que pretende dar a conocer el producto final al cliente.

En mi opinión este procesos es bastante interesante ya que promueve mucho los casos de uso y el análisis de requerimientos los cuales sonde suma importancia en nuestro ámbito algo que todos los que nos dedicamos al desarrollo de software deberíamos tener claro desde el primer momento que aceptamos un proyecto.

fuentes: https://www.ecured.cu/Proceso_unificado_de_desarrollo

Pueden ver mi trabajo en grupoargon.co

Baby la vida es un ciclo (Software Development Life Cycle)

A lo largo de mi vida me he dado cuenta que todo es un ciclo, que todo los sucesos que vivimos día a día tienen un comienzo y un fin; las relaciones, las películas, las semanas, es lógico que el software también tenga un inicio y un fin ¿no?

El SDLC (Software Development Life Cycle) es un proceso sistematizado en el cual podemos asegurarnos que el diseño, el desarrollo y la calidad de un producto de software tenga el mayor valor posible, en muchas de mis experiencias trabajando en proyectos escolares y de chamba me he dado cuenta que normalmente nos hacemos caso al SDLC y simplemente trabajamos de forma caótica hasta que conseguimos un resultado final, me imagino a las rondas de desarrollo algo así: tomamos un input, lo metemos a una caja, la agitamos y al final sale el producto que prometimos, quien sabe que sucedió en esa caja pero al final surgió el resultado deseado, pues, igual y normalmente esta practica de desarrollo caótico nos sirve muchas veces pero por otra parte saber cual va a ser el SDLC de nuestro proyecto, cimentar desde un principio cada uno de los pasos que se van a tomar durante el desarrollo del mismo pueden provocar que el proceso sea mucho más eficiente y además haya menos incertidumbre (no como si metiéramos todo en una caja y lo agitáramos).

Ahora bien ya que sabemos que es un SDLC es hora de ver algunos ejemplos:

Cascada (Waterfall model)

https://www.geeksforgeeks.org/software-engineering-classical-waterfall-model/

Es uno de los modelos principales de ingeniería en software pero también es muy poco realista consiste en que se debe de terminar el paso anterior para poder pasar al siguiente algo que casi nunca pasa en la vida real, normalmente al estar desarrollando volvemos a pasos anteriores para hacer mejoras en el proyecto.

Incremental (Incremental process model)

https://www.geeksforgeeks.org/software-engineering-incremental-process-model/

Desde mi punto de vista este es uno de los modelos mas realistas en cuanto a desarrollo de software se refiere, consiste en hacer mini “waterfalls” en varias versiones del software, conforme vamos avanzando se van tomando las versiones anteriores y se van mejorando para lograr un producto más completo.

Espiral (Spiral model)

https://www.geeksforgeeks.org/software-engineering-spiral-model/

Este modelo ayuda a interceptar y resolver los problemas que van apareciendo durante el desarrollo del producto ya que es un proceso iterativo y repetitivo donde pasas por cada uno de los puntos que se definen al comienzo del proyecto.

Agile

https://clarity.fm/ahmettok/expertise/building-agile-software-teams-and-switching-to-agile-software-development

Agile, agile, agile, desde mi punto de vista la mejor forma de desarrollar primero porque pones como prioridad la comunicación con el cliente, dos porque das demos continuas en las que el mismo cliente te retroalimenta y tres es la que esta más documentada y la que la mayoría de las empresas de software actuales están implementando. Agile FTW

Bueno, estos fueron 4 de mis modelos de SDLC favoritos y de los que he aplicado en mi vida y bueno volviendo a mi idea principal, normalmente vemos a los SDLC como algo que todos los equipos de desarrollo aplican al pie de la letra pero no realmente no creo que haya una forma perfecta de seguir un modelo es muy probable que termines mezclando tus dos favoritos o que te saltes pasos o regreses a pasos anteriores, aun así siempre es bueno tener un plano inicial para comenzar cualquier proyecto y ahí es donde estos modelos nos ayudan muchísimo.

Pueden ver mi trabajo en grupoargon.co

Design a site like this with WordPress.com
Get started