Procesos del Software - Informe Resumen

in #spanish5 years ago

.

Historia

El proceso de software surgió dentro del marco de la metodología de desarrollo del software, el cual emergió en los 60´s, se fundamentó como el inicio de ciclo de vida del desarrollo de un sistema, que buscó que el desarrollo fuese estructurada, metódica y deliberada dentro de su etapa del ciclo de vida aplicando estos desarrollos en negocios de gran escala; 70´s tenemos presente la programación estructurada manteniéndose la metodología de desarrollo de sistemas; 80´s análisis de información metodológica estructurada y con método de diseño: 90´s la programación es orientada a objetos con rápido desarrollo de aplicaciones, procesos unificados racionales, programación extrema, desarrollo dinámico de sistemas, Scrum; 2000´s Proceso unificado ágil y entrega ágil disciplinada; 2010´s marco ágil escalado, Scrum de gran escala, todo esta ha ayudado a la calidad y al proceso del software gracias a estos desarrollos se ha establecido en código abierto.

.

Concepto

Los procesos del software se basan en poder dividir los trabajos del desarrollo del software dependiendo de las actividades que definan la elaboración de un producto de software, dividiéndose en varias elementos como las gestiones del producto, proyecto y del diseño logrando desarrollar el software desde 0 en cualquier lenguaje de programación, de manera de que la metodología aplicada se lleve a cabo a través de entregas concretas, adicional a esto nos ayuda a definir las actividades métodos y herramientas necesarias para definir y obtener el software de calidad ya que con esto ayudamos a incrementar la productividad al momento de desarrollar el software, claro esto depende también de la perspectiva con la que se desea ejecutar en las diferentes facetas de resultados, roles, tiempos de ejecución, herramientas de apoyo y procesos para llegar al punto ideal dentro del desarrollo del software..

.

Su desarrollo se basa en construir productos de software mejorando aquellos que están vigentes, a través de estructuras de organizaciones, políticas, reglas, procedimientos, componentes de software y demás que logran adecuar las herramientas usadas permitiendo definir, desarrollar, complementar y lograr producir un software que lo haga capaz de integrarse dentro de su ambiente, dentro de esto tenemos 4 actividades fundamentales como son:

1) la especificación del software en esta definimos el sistema funcional del software con sus limitantes de operación determinando la productividad del mismo

2) Desarrollo del software es la parte donde creamos, diseñamos, programamos todo en conjunto de acuerdo al tipo de software a desarrollar

3) Validación del Software una vez realizado el software se presenta, se valida y se verifica de acuerdo a lo solicitado

4) Evolución del Software una vez presentado, se modifica y se adapta de acuerdo a lo requerido por el cliente.

Adicional a esto cada proceso debe ir de acuerdo a su descripción :

1) Actividad: definimos las acciones llevadas a cabo durante el desarrollo del software.

2) Productos: aquí mostramos los resultados adquiridos durante la actividad del proceso, es decir la arquitectura del software.

3) Roles: en esta reflejamos la actividad o intervención llevada a cabo bien sea por personas o herramientas.

4) Precondiciones y poscondiciones: es lo que declaramos antes y después de realizado el producto.

5) Producto o Artefacto: se definen como entradas y salidas de las actividades como documentos, planes reportes entre otros.

6) Disciplina: como la integración de las actividades relacionadas al conocimiento aportado por decir el análisis y el diseño al momento de establecer la estructuración del desarrollo del software.

Luego de todos estos pasos vamos a los diferentes tipos de modelos de cada proceso de software, de los cuales tenemos los siguientes:

1) Modelos Genéricos: abarcando los procesos relacionados al desarrollo del software - CMM modelo de madurez de capacidades o estándares de facto.

2) CMMI - modelo integrado.

3) ISO/IEC 15504 o el marco para evaluación de procesos de software en vías de ser estándar con reporte técnico; estos tipo de modelos nos dicen que debemos hacer como usar las referencias al momento de definir los procesos en una organización que nos sirva para una auto-evaluación, como medio para evaluar y verificar que tan bien o mal esta dicho proceso dentro de la organización.

Adicional de este modelo tenemos los Modelos específicos enfocados en la ingeniería del software como son:

1) UP proceso de desarrollo.

2) RUP proceso de desarrollo.

3) PSP enfocado en individuos.

4) TSP enfocados en equipos.

Modelos de los procesos del software

!

.

Modelo de cascada (Waterfall)

Es el inicio del proceso de especificación, planificación, modelado, construcción, desarrollo, validación y evolución en etapas separadas como requerimientos, diseño de software, implementación pruebas del software culminado, dividiéndose en varias etapas::

1) Análisis y definición de requerimientos: aqui es donde definimos los servicios restricciones y metas del sistema.

2) Diseño del Sistema y del software: en esta es donde establecemos el proceso de diseño de sistemas estableciendo una arquitectura de sistema global identificando las abstracciones del sistema de software.

3) Implementación y prueba de unidad: en esta realizamos el conjunto de programas donde la prueba de unidad se verifica para que cada una cumpla con su especificación.

4) Integración y prueba de sistema: aqui es donde los programas individuales se integran y se prueban como sistema completo asegurando que cumpla el requerimiento del software luego se libera el sistema.

5) Operación y mantenimiento: en esta se instala el sistema poniéndose en práctica el producto final, en el mantenimiento se corrigen los errores no detectados en el ciclo de vida mejorando la implementación del sistema de acuerdo a los nuevos requerimientos.

.

Modelo del desarrollo incremental o evolutivo

Dentro de este modelo incremental se aplica la descomposición de una serie de implementaciones de manera de desarrollar diferentes versiones hasta lograr la funcionalidad de acuerdo a los requisitos del software en donde se refleja la forma de resolver problemas a través de pasos que permitan una solución para un sistema adecuado, este sistema lo hace más económico y fácil al momento de realizar los cambios del software dependiendo de lo que requiera el sistema en base a la prioridad que este requiera siguiéndose por un mini-modelo con sus fases de diseño, codificación y pruebas. Esto ayuda a reducir los costos en cuanto a los análisis y documentaciones diferentes al modelo cascada, es más fácil verificar la implementación del trabajo de desarrollo, haciendo que sea rápida la entrega e implementación del software lo cual ayuda a ganar el valor del software.

.

Modelo del desarrollo en espiral de Boehm

Este proceso del software está dirigido por los riesgos que cada ciclo representa dentro de una fase del proceso con más factibilidad donde los requerimientos y el diseño se combina para tolerar los riesgos los cuales se van construir en las diferentes fases de la espiral, estos son aplicados en proyectos grandes, largos caros y complejos.

Este se compone de 4 ciclos:

1) Planificación donde determinamos los objetivos y alcance de cada ciclo el cual ira creciendo en el tamaño del software y su funcionalidad.

2) Análisis de Riesgo se evalúan todos los riesgos que puedan afectar el proyecto dependiendo del estado y grado de su avance diseñándose los prototipos que serán validados durante el ciclo.

3) Implementación en esta desarrollamos y validamos el software de acuerdo a la relación, condición y análisis de riesgos.

4) Evaluación se evalúan las demás espirales analizando en detalle los riesgos detectados con anterioridad los que ya tuvieron solución y con esto se evalúa para determinar el avance del proyecto.

.

Modelo de Scrum

Este modelo desarrolla y propone la técnica del desarrollo incremental a través de sprints y no se enfoca tanto en la planificación sino que se maneja a través de un listado de característica con las que el producto es abordado durante los sprints de trabajo, basándose en mantener los equipos de trabajo bien organizados para que se maximice la comunicación usando un proceso de flexibilidad que permiten asegurar la máxima calidad del producto, sus principios se dividen en:

1) Mantener el equipo organizado garantizando la comunicación.

2) Se divide el trabajo en bloques poco acoplados.

3) fases del patrón de desarrollo donde el documento se escribe para establecerse de forma priorizada

4) la documentación se puede actualizar en cualquier punto de desarrollo; estos duran entre 1 - 4 semanas, se dividen en serie de tareas previamente identificad, se eligen tareas que motiven al logro mas rápido eficaz y de calidad.

.

Modelo de RUP

Funciona a través de los arreglos que hace dentro de la variedad de procesos que se usan de una manera tradicional como lo hace el método de la cascada o el proceso que se va adaptando a su entorno, por mencionar sus fases tenemos:

1) Incepción: el cual nos permite especificar los objetivo presentes en el proyecto de acuerdo a las necesidades requeridas estableciendo limites, condiciones, criterios que ayuden a orientar la funcionalidad del software.

2) Elaboración: en esta se analiza el problema definiendo un plan de proyecto que permita una arquitectura sólida que con un plan estable y que a su vez la herramienta de soporte automatizado permita determinar los riesgos que se plantearon anteriormente.

3) Construcción: aquí se aplica el desarrollo, integración y verificación del producto en la aplicación, esta fase permite crearse de forma rápida bajo diferentes versiones de prueba.

4) Transición: es el producto final y listo para ser presentado, se verifican los errores aplicando los rasgos del producto, presentándose en forma de prueba beta, piloto aparte de dar entrega de la documentación, ya que la misma se transfiere a el usuario pasando del desarrollo a la producción.

.

Ventajas de los Procesos del Software

• Nos permite promover el reuso, repetición y consistencia de los proyectos estandarizando los esfuerzos aplicados para su desarrollo.
• Brinda la oportunidad de aplicar mejoras dentro de las prácticas de la industria.
• Permite ampliar las herramientas aplicadas al momento de soportar un proceso establecido.
• Ayuda a establecer una base para tener una mayor consistencia y mejoras futuras.
• Ayuda a mejorar los esfuerzos de mantenimiento y soporte
• Ayuda a definir los cambios y liberaciones de aquellos sistemas de software ya existentes.
• Permite definir y lograr las transiciones del software y como estas se ejecutan en los esfuerzos de operación y
soporte.

Conclusión

Los procesos del software forman parte de ese proceso donde se quiere lograr la meta y el objetivo que buscan ofrecerse dentro del campo de ingenieria del software logrando asi mostrar un desarrollo completo adaptable a cualquier sistema y donde esos modelos logren establecer una mejor comunicación que permita llevar el proyecto en desarrollo a cabalidad obteniendo asi un software de calidad.

Acotación

El presente escrito es mi humilde opinión con respecto al tema, decidí escribir sobre el mismo, porque me parece realmente interesante y quería compartirlo con la comunidad de steemit, de manera que, pueda generar algún tipo de debate o buenos comentarios que fortalezcan la información que compartí textualmente.

Próximamente estaré subiendo post de contenido sobre la materia que estoy viendo en la universidad acerca de Ingeniería del Software

Agradecimientos también a la Comunidad de @rutablockchain por ayudar e impulsarme a crear contenidos de este tipo, totalmente agradecida con su ayuda.

Referencias

Proceso de Software
Proceso del Desarrollo del Software
Modelo Cascada
Desarrollo Incremental
Desarrollo Incremental y Espiral
Modelos de Procesos del Desarrollo
Libro Ian Sommerville - Ingenieria Del Software (9na. Edición
Libro Ingenieria del Software 7ma. Ed. - Ian Sommerville

Sort:  

¡Felicitaciones!


Has sido votado por @entropia

Estás participando para optar a la mención especial que se efectuará el domingo 1 de marzo del 2020 a las 8:00 pm (hora de Venezuela), gracias a la cual el autor del artículo seleccionado recibirá la cantidad de 1 STEEM transferida a su cuenta.

¡También has recibido 1 ENTROKEN! El token del PROYECTO ENTROPÍA impulsado por la plataforma Steem-Engine.


Te participamos que puedes invertir en el PROYECTO ENTROPÍA mediante tu delegación de Steem Power y así comenzar a recibir ganancias de forma semanal transferidas automáticamente a tu monedero todos los lunes. Entra aquí para más información sobre cómo invertir en ENTROPÍA.

Contáctanos en Discord.

Apoya al trail de @Entropia y así podrás ganar recompensas de curación de forma automática. Entra aquí para más información sobre nuestro trail.

Puedes consultar el reporte diario de curación visitando @entropia.

Atentamente

El equipo de curación del PROYECTO ENTROPÍA



This post has been voted on by the SteemSTEM curation team and voting trail. It is elligible for support from @curie and @minnowbooster.

If you appreciate the work we are doing, then consider supporting our witness @stem.witness. Additional witness support to the curie witness would be appreciated as well.

For additional information please join us on the SteemSTEM discord and to get to know the rest of the community!

Please consider using the steemstem.io app and/or including @steemstem in the list of beneficiaries of this post. This could yield a stronger support from SteemSTEM.

Congratulations @natalimcr27! You received a personal award!

Happy Steem Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!