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.
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.
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:
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.
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.
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, 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.
Hey, my name is Diego i’m a software engineering student at Tec de Monterrey Campus Guadalajara I love programming, crossfit, music and food! In this blog i’ll be uploading some content related to my analysis and modeling of software systems class, come ride with me! 🙂