Etapas del proceso de desarrollo de software

2/24
Recursos

El proceso de desarrollo tradicional tiene etapas muy marcadas, que tienen entradas, procesos y salidas que funcionan como entradas de la siguiente etapa.

Análisis de requerimientos: Todo nace de un disparador que nos crea la necesidad de crear un artefacto o un sistema. Necesitamos entender cuál es el problema que queremos resolver. Hay requerimientos de negocio, requerimientos funcionales, requerimientos no funcionales.

Diseño de la solución: Análisis profundo de los problemas para trabajar en conjunto y plantear posibles soluciones. El resultado de esto debe ser el detalle de la solución, a través de requerimientos, modelado, etc.

Desarrollo y evolución: Implementación de la solución, para garantizar que lo que se esta construyendo es lo que se espera. Al finalizar esta etapa tendremos un artefacto de software.

Despliegue: Aquí vamos a necesitar de infraestructura y de roles de operación para poder poner el artefacto a disponibilidad.

Mantenimiento y evolución: Desarrollo + despliegue + mantenimiento, en esta etapa estamos atentos a posible mejoras que se hacen al sistema. En esta etapa el software se mantiene hasta que el software ya deja de ser necesario.

Aportes 107

Preguntas 16

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Etapas clásicas de la arquitectura de software

Análisis

Entender que se construirá, cubrir los requerimientos de negocios, de usuarios, funcionales y no funcionales, dando como resultado una compresión muy clara a resolver.

Diseño de la solución

Propuesta a nivel diseño de solución, se puede trabajar en conjunto con un analista para plantear una posible solución, en modelo, documentación, la finalidad es un detalle de solución.

Desarrollo

La etapa en la que desarrollador se construye el Software, se debe contar con el set de requerimientos necesarios.

Despligue

La fase de operaciones, se requiere la infraestructura, roles de operación quienes se asegurarán de llevar el producto a producción(a disponibilidad para el usuario final)

Mantenimiento

Dependen nuevamente de regresar a las fases de desarrollo y despliegue, en esta etapa se está atento a la detención de errores o mejoras simples, hasta llegar al producto final.

  • ¿Qué es un requerimiento funcional?
    Son declaraciones de los servicios que proveerá el sistema, de la manera en que éste reaccionará a entradas particulares.

  • ¿Qué es un requerimiento no funcional?
    Son aquellos requerimientos que no se refieren directamente a las funciones específicas que entrega el sistema, sino a las propiedades emergentes de éste como la fiabilidad, la respuesta en el tiempo y la capacidad de almacenamiento.

por que se inicial defrente con el Ciclo de Desarrollo de Software Seguro ?

RESUMEN:
La arquitectura de software se encarga de las estructuras, modelos, comunicación entre módulos del sistema. Habla sobre como se da el proceso de desarrollo y como la arquitectura es crucial para este.

Etapas del proceso de desarrollo de software:

NOTA: Cabe aclarar que el profesor habla del módelo en cascada:

  1. Requisitos de usario. Explorar la necesidad
  1. Diseño de requisitos. Hablar el mismo lenguaje que el cliente para concretar objetivos.
  1. Desarrollo y evaluación. Desarrollo, test automatizados y planeación de User Test Aceptance
  1. Despliegue. Disponibilidad de la herramienta creada
  1. Mantenimiento y evolución. Oportunidad de mejoras hasta caducidad del software.

Sin embargo existen otros modélos de desarrollo como el modelo V, prototipos, espiral… una cantidad que variará con la década, la tecnología y nuestra forma de relacionarnos con ella.

Etapas del proceso de desarrollo de software

  • El proceso de desarrollo tradicional tiene etapas muy marcadas, que tienen entradas, procesos y salidas que funcionan como entradas de la siguiente etapa.
    • Análisis de requerimientos: Todo nace de un disparador que nos crea la necesidad de crear un artefacto o un sistema.
      • Necesitamos entender cuál es el problema que queremos resolver. Hay requerimientos de negocio, requerimientos funcionales, requerimientos no funcionales.
      • Al terminar esta etapa debemos tener una comprensión bastante clara del problema que vamos a resolver.
    • Diseño de la solución: Análisis profundo de los problemas para trabajar en conjunto y plantear posibles soluciones. El resultado de esto debe ser el detalle de la solución, a través de requerimientos, modelado (UML), documentació. Resuelve preguntas tales como:
      • ¿Cómo va el usuario a utilizar la aplicación?
      • ¿Como se va a implementar la aplicación en producción y como será esto administrado?
      • ¿Cuales son los atributos requeridos por la aplicación? (rendimiento, seguridad, concurrencia, internacionalización, configuración)
      • ¿Cómo se puede diseñar la aplicación para que sea mantenible y flexible con el paso del tiempo?
      • ¿Cuales son las tendencias a nivel de arquitectura que pueden afectar la aplicación actualmente o una vez que ha sido implantada?
      • ¿Cuáles son las partes fundamentales de la arquitectura que representan el riesgo más grande si se hacen mal?
        -¿Cuáles son los principales supuestos y como van a ser probados?
      • ¿Cuáles son las partes de la arquitectura que tienen más probabilidad de cambiar?
      • ¿Qué condiciones pueden llevar a que se tenga que refactorizar el diseño realizado?
      • ¿Porqué es esta la mejor opción de arquitectura?
      • ¿Qué medidas estamos tomando para mitigar los riesgos?
    • Desarrollo y evolución: Implementación de la solución, para garantizar que lo que se esta construyendo es lo que se espera. Al finalizar esta etapa tendremos un artefacto de software.
      • Es donde plasmamos en “código” las dos anteriores etapas, ademas de realizar test a dicho código
      • Debemos tener claros cuales son los criterios de aceptación de la solución, osea cual es el set de requerimientos necesario para construir esta solución y como hacemos para evaluarlos (TDD), el resultado de esta etapa es un artefacto de software.
      • Despliegue: Aquí vamos a necesitar de infraestructura y de roles de operación para poder poner el artefacto a disponibilidad.
        • Debemos implementar la solución (artefacto) que ya tenemos construida en productivo, AWS, GCP, Heroku, github-pages, hosting, play store, etc
    • Mantenimiento y evolución: Desarrollo + despliegue + mantenimiento, en esta etapa estamos atentos a posible mejoras que se hacen al sistema. En esta etapa el software se mantiene hasta que el software ya deja de ser necesario.

Conceptos extraídos de:

Etapas de desarrollo de software: Flujo lineal donde cada etapa tienen procesos, una entrada y salida.

  • Análisis de requerimientos

  • Diseño de la solución

  • Desarrollo y evaluación

  • Despliegue

  • Mantenimiento y Evolución

  • Análisis de Requerimientos: Se inicia de un disparador; una idea, problema a resolver, alguna necesidad. Se entiende lo que se necesita desarrollar en base a requerimientos de negocios, de usuario y funcionales o no funcionales. Al finalizar la etapa se tiene una compresión clara del problema a resolver.

a) Disparador
b) Descubrimiento
c) Análisis y documentación

  • Diseño de la solución: Se tiene un análisis del problema y una propuesta de diseño a la solución del problema. En esta etapa el analista, arquitecto o equipo de desarrollo trabajan en conjunto para plantear cuales son las posibles soluciones a los problemas en diferentes alternativas como propuesta de valor: modelos, productos open source, documentación, frameworks.

a Comprensión del problema
b) Abstracción
c) Modelado

  • Desarrollo y evaluación: Los programadores desarrollan, implementan, evalúan, ejecutan tests para garantizar la solución de lo que se espera. Los criterios de aceptación de la solución necesitan un set de requerimientos necesarios para ser la conexión entre la etapa anterior y la de desarrollo y evaluación. Al finalizar esta etapa obtendremos un artefacto de software.

a) Solución detallada
b) Programación e integración
c) Automatización de pruebas

  • Despliegue: En esta etapa se necesita de la infraestructura, roles de operación para poder dárselo al usuario final. Un ejemplo puede ser una aplicación de WEB alojada en un servidor o una app móvil alojada en una app store.

a) Artefacto de Software
b) Infraestructura
c) Operaciones

  • Mantenimiento y Evolución: Se esta atento a la detección de errores y cualquier nueva funcionalidad a desarrollar para realizar cambios en la aplicación y volver a poner a disponibilidad del usuario. Es decir en esta etapa se mantiene el software hasta que se considere lo contrario.

a) Software disponible
b) Arreglos de errores
c) Nuevas funcionalidades
d) Sistema deprecado.

Las etapas de un desarrollo de software, suelen ser similares en casi todos los modelos, el mas conocido es el modelo cascada el cual cuenta con diferentes pasos que permiten que un desarrollo sea ágil y eficaz.

  • Requisitos: Aquí es donde se realiza el análisis de requerimientos, donde se determina cual es el problema que se quiere solucionar.

  • Diseño: En esta etapa del desarrollo se lleva a cabo una lluvia de ideas para así dar con una solución solida, en esta etapa el equipo de desarrollo se ayuda con herramientas UML, diseño de maquetas(mockups), o documentación escrita.Luego de eso, se procede a desarrollar la solución para así resolver el problema.

  • Implementacion: Luego de creada a la una solución solida. Se procede a implementar esta solución contando con equipos determinados para ellos. Como equipos de testing y de depuración.

  • Verificación: Una vez la solución haya sido pulida para a producción para así depurar errores en situaciones reales, en esta etapa el tiempo de respuesta debe ser inmediato debido a que el sistema se encuentra en producción y para que este no deje de trabajar se soluciona de manera rápida los bugs que pueda llegar a tener.

  • Mantenimiento: En esta etapa, el equipo de desarrollo esta al tanto de pequeñas mejoras al sistema ya implementado y en producción. Así como también de solucionar errores que puedan seguir surgiendo a lo largo de la vida del software.

Arquitectura de Software articulo de sofware Guru
https://sg.com.mx/revista/27/arquitectura-software

Arquitectura de software

Etapas de proceso desarrollo de software

El proceso de desarrollo de software tradicional funciona de una manera lineal y organizada lo que quiere decir que que para seguir con la siguiente etapa se debe primero terminar la otra.

Análisis de requerimientos :en esta etapa todo nace a través de un disparador un idea un análisis de mercado un problema al cual se le quiere buscar solución.de esta forma tenemos una idea muy clara del problema que vamos a resolver.

Diseño de la solución : en esta se plantean y se detallan la diferentes soluciones sus requerimientos y documentación etc… al final de este pas0 se debe tener plateada la solución del problema

Desarrollo y evolución : en etapa desarrollamos el software lo que es la solución al problema.

Despliegue : aquí vamos a necesitar infraestructura y roles de operación para poder poner el artefacto a disponibilidad.por ejemplo en una app web necesitaremos una servidor en donde alojarla bases de datos etc… o pones un app móvil en play store.

mantenimiento y evolución : aquí seguimos dándole seguimiento al solución del problema resolviendo bugs agregando nuevas funcionales de ser necesario hasta que se acabe el tiempo de vida de la app.

Flujo de desarrollo de software:
- Análisis de requerimientos
○ Nace de un disparador
○ Descubrimiento
○ Análisis y documentación
○ Comprensión del problema
- Diseño de la solución
○ Análisis al problema
○ Abstracción
○ Modelado
○ Solución detallada
- Desarrollo
○ Programación e integración
○ Automatización de pruebas
○ Artefacto de software
- Despliegue
○ Infraestructura
○ Roles de operación
○ Software disponible
- Mantenimiento y evolución
○ Arreglo de errores
○ Nuevas funcionalidades
Sistema deprecado

-análisis de requerimientos:
en un principio todo nace de un disparador que es lo que inicia el proceso esto puede ser por ejemplo una idea, en esta primera parte es necesario descubrir que es lo que se va a construir y se levantan los requerimientos como son los de negocio, los funcionales y
los no funcionales, de usuario. es decir que el resultado aqui es tener una comprencion muy clara del problema que se busca resolver.

-diseño de la solución:
en la etapa de diseño se plantea una solución basada el los requerimientos del problema se propone como se le va a dar solución y que tecnologías y metodologías se usaran para
desarrollar el proyecto.

-desarrollo y evaluación:
en esta etapa se produce como tal el desarrollo del proyecto, se programa el sistema, se hacen pruebas o test con base en crear la solución a dichos requerimientos, que tengan un componente de alto valor; en este sentido esta muy relacionado con SCRUM.

-despliegue:
la etapa de despliegue consiste en poner en operación el sistema que se ha desarrollado y entran aspectos como la infraestructura y cualquier cosa que tenga que ver con el funcionamiento del sistema.

-mantenimiento y evolución:
ahora ya que el sistema esta implementado y funcionando se debe brindar un mantenimiento, es decir que todo funcione bien y si hay que desarrollar nuevas funcionalidades hasta pensar en escalabidad.

Sin animos de sonar como “grammar nazi”, la palabra “deprecado” no existe en español (eso es un calco del inglés). La palabra real es “obsoleto”

Ciclo de Desarrollo de Software
)





Muy interesante! Realmente solo sabía sobre la etapa de despliegue!

Mis apuntes 😃
Lo siento por lo desorganizado 😦

Trabajando metodologías Ágiles como Scrum , puedo decir que se realizan estos mismos 5 pasos, solo que iterativamente. Es decir, estos 5 pasos se repiten tantas veces como sprints existan en el proyecto. Por lo menos así se hace en mi compañía.

ETAPAS DEL PROCESO DE DESARROLLO DE SOFTWARE

Etapas del proceso:

Tradicionales:
*
Análisis de requerimiento
*
Diseño de la solución
*
Desarrollo y evaluación
*
Despliegue
*
Mantenimiento y evolución

ANÁLISIS DE REQUERIMIENTO: todo nace de una idea, algún problema a resolver.

Debemos de entender que es lo que se va a construir, ¿qué necesitamos hacer ? ¿cuál es el problema que queremos resolver?

Necesitamos los “requerimientos”

    requerimientos de negocio
    requerimientos del usuario, entre otros...

Todo esto nos da una comprensión muy clara de lo que tenemos que hacer.

DISEÑO DE LA SOLUCIÓN: Análisis profundo del
los problemas, diseñamos una propuesta de una solución.

planteamos las posibles soluciones del problemas.

nos da un detalle de una solución.

DESARROLLO Y EVOLUCIÓN:

Dónde el programador va a estar implementando, programando y evaluando.

Una conexión de esta con la anterior son los criterios de aceptación de la solución.

DESPLIEGUE:

ya teniendo nuestro artefacto de software " el sistema" , lo utilizaremos en despliegue para darselo al usuario final.

se necesita infraestructura y roles de operación.

MANTENIMIENTO Y EVOLUCIÓN:

Arreglos de errores, nuevas funcionalidades.

Esta etapa es en donde el software se va a mantener, hasta que su ciclo de vida se termine.

Estas etapas conectan a pasos el desarrollo de software.

No se nada mucho de la arquitectura en software pero se que aprendere con este curso

Hola,

adapte un poco el proceso a los términos con los que trabajamos en mi compañía

Rol de Arquitectura de software:
Etapas tradicionales:

  • Análisis de requerimientos: Problema a resolver, debemos entender el problema para poder proponer soluciones
  • Diseño de la solución: Se propone las posibles soluciones en modelos bien detallados
  • Desarrollo y evolución: el programador implementa la solución.
  • Despliegue: Se necesita de infraestructura para poder poner el producto al mercado
  • Etapa de mantenimiento y evolución: Atentos a detección de errores y nievas funcionalidades. está compuesto por Análisis, Diseño, Desarrollo, despliegue y mantenimiento.

Etapas del proceso de desarrollo de software.


El proceso de desarrollo tradicional tiene etapas muy marcadas, que tienen entradas, procesos y salidas que funcionan como entradas de la siguiente etapa.

Análisis de requerimientos: Todo nace de un disparador que nos crea la necesidad de crear un artefacto o un sistema. Necesitamos entender cuál es el problema que queremos resolver. Hay requerimientos de negocio, requerimientos funcionales, requerimientos no funcionales.

Diseño de la solución: Análisis profundo de los problemas para trabajar en conjunto y plantear posibles soluciones. El resultado de esto debe ser el detalle de la solución, a través de requerimientos, modelado, etc.

Desarrollo y evolución: Implementación de la solución, para garantizar que lo que se esta construyendo es lo que se espera. Al finalizar esta etapa tendremos un artefacto de software.

Despliegue: Aquí vamos a necesitar de infraestructura y de roles de operación para poder poner el artefacto a disponibilidad.

Mantenimiento y evolución: Desarrollo + despliegue + mantenimiento, en esta etapa estamos atentos a posible mejoras que se hacen al sistema. En esta etapa el software se mantiene hasta que el software ya deja de ser necesario.

Utilice este curso para poder guiarme en entregar un trabajo final del colegio y adivinen quien saco 10/10!!!
Chulada de curso, gracias!!!

Apuntes 🔰


Las etapas del proceso de desarrollo

Tradicionalmente siguen un flujo lineal. Toda etapa posee:

  • Una entrada
  • Un proceso
  • Una salida (que sirve de entrada para la siguiente etapa)

Análisis

Inicia de un disparador para la necesidad de crear un sistema.

Se deben descubrir los requerimientos.

El resultado es la comprensión del problema

Diseño

Análisis profundo. Se plantea las posibles soluciones. Modelos, documentación de diferentes alternativas.

El resultado es el detalle de la solución: a través de modelos, requerimientos, entre otros.

Desarrollo

Se programa, se ejecutan pruebas. Existen criterios de aceptación.

Termina con el artefacto.

Despliegue

Se necesita de infraestructura y de operaciones para lanzar el sistema.

Mantenimiento

Atentos a los errores y nuevas funcionalidades para cambiar el sistema. Se mantiene el sistema hasta que este no sea necesario.

El ciclo de vida termina en ese momento en que se desprecia el sistema.

algo importante para agregar que este modelo en cascada solo es util para sistemas pequeños que tengan bien definidos sus requerimeintos y no necesite grandes cambios.

Etapas de desarrollo

Cada etapa cierra con un concepto que conecta con otro

  1. Análisis de Requerimientos:

    Todo esto inicia con un disparador.

    • Disparador: Esto es una idea, un problema o una necesidad que se busque solucionar.

    Seguido de esto debemos descubrir entender y comprender lo que vamos a resolver.
    A medida que vamos adentrándonos en el análisis y documentación encontraremos que hay varios tipos de requerimientos, requerimientos e negocios, de usuario, funcionales y no funcionales.

  • Requerimientos funcionales: Servicios o cosas que tengan que ver directamente con la solución se desarrollara.

  • Requerimientos no funcionales: Es lo que no va directamente con la solución, como ejemplo fiabilidad, estabilidad del sistema, capacidad e >almacenamiento, tiempo de respuesta etc.

    • Descubrimiento
    • Análisis y documentación
  • Compresión del problema: Tener una comprensión muy clara de lo que se va a resolver.
  1. Diseño de la solución:

    Es un análisis profundo, abstrayendo nuestro problema, y modelar una propuesta de solución para el problema, en esta etapa pueden trabajar varios profesionales de diferentes areas para llegar a una Solución detallada, lo que se traduciría en un modelo,documentación, metodología, lenguaje, framework, etc.

    • Abstracción
    • Modelado
    El **problema** es que se hace demasiado diseño en esta etapa.
    
  • Solución detallada: Solución clara con procesos definidos, en programación esto seria con definidos
  1. Desarrollo y evaluación:

    Esta es la etapa de implementación, programación, evaluación y automatización de pruebas de la solución, para garantizar que estamos logrando con el objetivo.
    Es importante siempre tener en consideración son los criterios de aceptación, es decir cuales son los set requerimiento necesarios construir la solución y como evaluarla.
    Finalmente obtendremos un artefacto de software.

    • Programación e integración
    • Automatización de prueba
  • Artefacto de Software: es un producto tangible resultante del proceso de desarrollo de software.
  1. Despliegue:

    Utilizaremos el un artefacto de software para poder entregárselo al usuario final, para esto necesitaremos infraestructura y roles de operación, como por ejemplo: servidores, web servers, practicas, subir la app a la AppStore, etc.

    • Infraestructura
    • Operaciones
  • Software disponible: El software este disponible para el alcance el usuario final.
  1. Mantención y evolución:

    Esta etapa es encargada de buscar errores y darle mantención al software, agregando nuevas funcionalidades hasta que decidamos que el software ha cumplido con su ciclo de vida.
    • Arreglo de errores
    • Nuevas funcionalidades
  • Sistema deprecado: El ciclo de vida del software ha acabado.

Es interesante notar que este algoritmo se puede aplicar para llevar a cabo cualquier tipo de trabajo.

-Análisis de requerimientos: Siempre un problema es detonado por una necesidad, lo que nos lleva a generar un producto que la solucione. Esta etapa sirve para analizar el problema, buscar una solución y un listado de los requerimientos que necesitamos para satisfacer la necesidad.

-Diseño de la solución: Se busca que en conjunto con diferentes áreas de la organización se realicen propuestas de diseño de las posibles soluciones que cumplan los requerimientos listados.

-Desarrollo y evolución: En esta paso se trabajar en construir la solución. AL finalizar esta etapa tendremos un producto terminado.

-Despliegue: En esta parte necesitaremos la infraestructura para poner en línea nuestro producto.

-Mantenimiento y evolución: Aquí se va dando solución a problemas que salgan en el producto. Se busca implementar nuevos features que alarguen la vida del producto hasta que este ya no sea necesario.

No había escuchado el termino “deprecar”, pero quedó entendido. El desarrollo de software en su parte arquitectónica, requiere de una secuencia o flujo de pasos, los cuales se deben realizar uno a uno y dependen del inmediatamente anterior. Los pasos son: Identificar y entender el problema, plantear una solucion al problema, diseñar esa propuesta de solucion, poner en funcionamiento el diseño de la propuesta y finalmente solucionar algunos fallos que pueda presentar el software durante su uso.

Deprecado: "Desaprobar" es que algo no se aprueba, que se desaconseja su uso. "Obsoleto" es que ha quedado desfasado y se usa poco pero no tiene por qué estar mal.

Es vital seguir paso a paso las etapas del proceso de desarrollo, de alguna manera no aseguran el éxito de una aplicación pero si disminuye los riesgos de la misma. Ayuda a tener un orden para enfrentar nuevas soluciones. 😃

Yo quiero hacer una aplicacion web multiplataforma tipo Tableau:

Requerimientos:
1.-100 usuarios conectados al mismo tiempo como máximo
2.-Multiplataforma: hacer ediciones en la computadora y presentaciones en el celular, pantallas planas y proyectores.
3.- Que supere las limitaciones que ofrecen algunas extensiones de tableu, ofreciendo más facilidad de uso.

Wow, no tenia idea de que esto es lo que aplico todos los dias en mis labores. Al parecer la labor de un arquitecto de software, es muy relevante y implica retos. (Siempre lo habia visto desde mi rol de desarrollador, como un papel fácil de ejecutar).

App para el 911, tipo periscope

El usuario debe registrarse a la aplicación para poder usarla.
Esto busca limitar las llamadas de broma

La app deberá poder contar con transmisión de imagen en tiempo real, así como de proporcionar la ubicación en automático de quien realice la llamada.

la app busca proporcionar un mayor número de cámaras de vigilancia disponibles a las ya existentes.

la app debe ser capaz de alertan a personas en un radio a la redonda sobre la emergencia que está ocurriendo.
Ejemplo de un accidente automovilístico o explosión a las personas que esté a 2 km a la redonda

Si es un asalto o secuestro, que pueda avisar a las personas que estén a unos 200 metros a la redonda, así como Waze avisa que hay policías cerca. Todavía no adquiero las habilidades para hacer esto, pero es una idea que tengo desde hace mucho.

Las etapas tradicionales de Análisis, Diseño, Desarrollo, Despliegue y mantenimiento ofrecen un marco de referencia necesario en el proceso de desarrollo de software y el nivel de profundidad de cada una de estas etapas no solo dependen de los frameworks utilizados para su desarrollo (Scrum por ejemplo) sino también del alcance de la solución. Pensar en un desarrollo de soluciones ERP de misión crítica, de aplicación estándar para una o varias industrias obligará al arquitecto a definir un nivel mayor de especificación para cada una de estas etapas del desarrollo de software. En este escenario la aplicación de las metodologías ágiles tendrán su mayor protagonismo en el desarrollo de componentes específicos para las solución dentro de un marco de referencia mayor.

  • Análisis de requerimientos

    Nace de un disparador (una idea, un problema, etc)

    Entender que es lo que se va a construir

    Tipos de requerimientos:

    • De negocio
    • De usuario
    • Funcionales
    • No Funcionales.

    Resultado: Termina con una comprensión clara de que es lo que vamos a resolver

  • Diseño de la solución.

    Análisis profundo de los problemas

    Modelado de la propuesta de valor.

    Resultado: Propuesta de solución detallada al problema

  • Desarrollo y Evaluación

    Es la programación e integración de la solución

    Se automatizan las pruebas

    Importante: Criterios de aceptación de la solución.

    Resultado: Artefacto de software

  • Despliegue

    Darlo al usuario final

    Es necesario tener la infraestructura donde se monta el software

    Resultado: Software disponible

  • Mantenimiento y Evolución

    Arreglo de errores

    Agregarse nuevas funcionalidades

    Resultado: Sistema deprecado (cumple su vida util)

¿Cuando se recomienda que la solución sea opensource? y ¿Cuando se recomienda utilizar frameworks?

¡¡Extraordinario!! Todo un gran proceso.

Etapas de desarrollo de Software

Análisis de Requerimientos: Etapa en la que se entiende y analiza el problema a resolver los requerimientos de

  • negocio
  • usuario
  • funcionales
  • no funcionales

Se analiza y se documento

Diseño de solución: Se platea una solución para una propuesta de valor, con documentación y modelado…

Desarrollo y Evaluación: se programa la solución,

Despliegue: Alojar servicio, (ejemplo… aplicaciones en Appstore)

Mantenimiento y Evolución: detección de errores y nuevas funcionalidades

Etapas en el desarrollo tradicional, todas dependen de la anterior

  1. Análisis de requerimientos: Disparador, idea, descubrimiento, análisis y documentación, comprensión del problema.
  2. Diseño de la solución: Analisis profundo del problema, propuesta de solución, modelo, frameworks, solución detallada.
  3. Desarrollo y Evaluación: Programando, probando (test) automatizados, criterios de aceptación de la solucion. Artefacto de software
  4. Despliegue: Infraestructura, roles de operación, operaciones, para ponerlo a disponibilidad de cliente. Software Disponible
  5. Mantenimiento y Evolución: Compuesta por desarrollo y despliegue, atentos a errores, nuevas funcionalidades hasta que el sistema ya no se vaya a usar es decir sea un software DEPRECADO

🌠

Importante entender todos los procesos que tiene desarrollar software de calidad.

Tradicionales

Estaban bien marcadas para seguir un flujo lineal donde cada etapa tiene una entrada y una salida que servía para la etapa siguiente.

Análisis de requerimientos

Todo nace de un disparador, una idea, un problema a resolver, tenemos que entender que es lo que se va a construir.

Hay diferentes tipos de requerimientos, como los Funcionales o No Funcionales, el objetivo es tener una comprensión muy clara del problema que vamos a comprender.
También implica la documentación del problema y requisitos

Diseño de la solución

Tenemos un análisis profundo del problema y una propuesta de diseño de la solución del problema, el equipo trabaja en conjunto para plantear cuales son las posibles soluciones del problema bajandolas a un modelo, documentación, frameworks.

En una metodología tradicional trata de encontrar cuales son los problemas que serán dificiles de resolver

Desarrollo y Evaluación

En esta etapa es donde el programador ejecuta la solución mediante el código, también automatiza las pruebas.

Criterios de aceptación de la solución: cual es el set de requerimientos necesarios para llegar a la solución y como los evaluamos.

Al finalizar tendremos un artefacto de software

Despliegue

El artefacto llega al despliegue para darselo al usuario final, necesitaremos de infraestructura y de roles de operación para poner.

Si es web incluimos toda la infraestructura que requerimos para que funcione.

Mantenimiento y evolución

Una vez que el software este disponible entramos a la etapa del mantenimiento, estamos atento a los arreglos de errores y nuevas funcionalidades.

Esto seguirá hasta que digamos que el software ya no es necesario

Al ver la estructura del proceso desarrollo se evidencia que no se contempla una planeación y se descartan las pruebas. Muchos proyectos fracasan porque a éstas dos grandes etapas no se les da la importancia que requieren, se consideran implícitos en el proceso y no se contemplan estos tiempos.

1. Analisis de Requerimientos

En esta etapa necesitamos hacer descubrimientos de estos requerimientos, existen diferentes tipos como: De negocio, De Usuario, 	Funcionales y No Funcionales.

El resultado de esta etapa deberia ser una compresion muy clara de lo que se va a construir.

2. Diseño de la Solución

Se plantean las posibles soluciones del problema a nivel del diseño, modelado , requerimientos, documentación, etc. Esta etapa es muy importante por que va a intentar encontrar los problemas que luego, cuando se este desarrollando, van a ser dificiles de resolver.

3. Desarrollo y Evaluación

Esta es la etapa en la que se implementa la solucion. Algo importante a recalcar son los criterios de aceptación de la solucion que se plantean en la etapa anterior. Estos nos sirven para saber como evaluar que la implementación fue la correcta.

4. Despliegue

Se implementa el desarrollo en la infrastructura correspondiente a su tipo. El resultado es la solucion final ya implementada y disponible para el usuario final.

5. Mantenimiento y Evolución

Esta compuesta por desarrollo y despliegue ya que se esta atento a la detección de errores y cualquier funcionalidad extra que se requiera, para poder cambiar el software y ponerlo a dispocición del usuario. Cuando el software deja de ser necesario se dice que el sistema esta deprecado.

La metodología para el desarrollo de software es un modo sistemático de realizar, gestionar y administrar un proyecto para llevarlo a cabo con grandes posibilidades de éxito. Esta sistematización indica cómo se divide un proyecto en módulos más pequeños para normalizar cómo se administra el mismo.

Así, una metodología para el desarrollo de software son los procesos a seguir sistemáticamente para idear, implementar y mantener un producto de software desde que surge la necesidad del producto hasta que se cumple el objetivo por el cual fue creado.

Planificación : Es necesario hacer ciertas tareas que influirán decisivamente en el éxito del desarrollo. Algunas de las tareas de esta fase incluyen actividades como el alcance del proyecto, un estudio de viabilidad, análisis de los riesgos, estimación del costos del proyecto, así como, la asignación de recursos a las diferentes etapas del proyecto.

Análisis : Es importantísimo indagar sobre qué es exactamente lo que tiene que hacer el software, aquí la relevancia del análisis en el ciclo de vida del software planteará qué se necesita y se llega a una comprensión clara de los requerimientos del sistema (las características que el sistema tendrá).

Diseño: Aquí se evalúan todas las posibles opciones de implementación para el software que hay que desarrollar, así como decidir la estructura general del mismo. Esta es una etapa compleja y su proceso debe realizarse de manera iterativa (obteniendo feedback del cliente/usuario).

Implementación: En esta fase se seleccionarán las herramientas necesarias, un entorno de desarrollo que facilite el trabajo y un lenguaje de programación apropiado para el tipo de software a desarrollar. Aquí cobran relevancia las decisiones de diseño tomadas como del entorno en el que el software deba funcionar.

Pruebas: Aquí se busca detectar todas las fallas en las etapas anteriores para corregirlas. Evidentemente es importante cubrir esta etapa antes de que el usuario final detecte estos errores.

Implementación o despliegue: En esta etapa, se deberá integrar el software ya en producción, por lo que se debe planificar el entorno teniendo en cuenta las dependencias existentes entre los diferentes componentes del mismo así como los externos.

Uso y mantenimiento: Esta es una de las etapas más importantes del ciclo de vida de desarrollo de software. Su mantenimiento incluye tres puntos importantes:

-Suprimir los defectos detectados durante su vida útil también llamado: Mantenimiento correctivo
-Adaptarlo a nuevas necesidades
-Adicionar nuevos requerimientos

Buenos datos

Las diferentes etapas de un desarrollo de software, suelen ser similares en casi todos los modelos, el mas conocido es el modelo cascada. Pero no aseguran el éxito de una aplicación pero si disminuye los riesgos en el software.

Etapas del proceso del desarrollo de software.

Etapas de desarrollo bajo una perspectiva tradicional

Análisis de requerimientos

Diseño de de la solución

Desarrollo y evolución

Despliegue

Mantenimiento y evolución

buena explicación del proceso guido, de muy fácil comprensión.

Yo intento utilizar otros métodos de desarrollo como el Design Thinking para trabajar en proyectos, ya que logra hacer evolucionar continuamente el desarrollo y aumenta la funcionalidad de la solución. Es muy importante saber los procesos y como mejorarlos.

Etapas del proceso de desarrollo de software: Análisis de requerimientos, diseño de solución, desarrollo y evaluación. despliegue y mantenimiento y evolución

Análisis de requerimientos: Nace o se descubre la idea, necesidad o problema, un análisis y documentación del mismo, terminando en la comprensión del problema

Diseño de la solución: Abstracción y modelado para plantear las posibles alternativas (frameworks) terminando en una solución detallada

Desarrollo y Evaluación: Programación e integración de la solución, automatización de pruebas terminando en un Artefacto de software

Despliegue: Se pone a disponibilidad el artefacto de software, requiriendo infraestructura y operaciones terminando en un software disponible

Mantenimiento y evolución: Atentos a la detección de errores, nuevas funcionalidades

Etapas del proceso de desarrollo de software: Análisis de requerimientos, Diseño de la Solución, Desarrollo y Evaluación, Despliegue y Mantenimiento y Evolución

Análisis de requerimientos: Todo nace de un disparador (idea, problema, oportunidad), donde descubrimos y analizamos lo que requiere de negocio, de usuarios, funcionales y no funcionales; terminando en una comprensión muy clara de lo que vamos a resolver.

Vamos a Darle.!!

A trabajar!.. dijo el mister increible

ETAPAS DEL PROCESO DE DESARROLLO DE SOFTWARE

Es importante reconocer las etapas t sabe que es lo que se tiene que trabajar en cada una para no hacer trabajo extra

Stages of the software development process

Totalmente interesante entender y tomar en cuenta las etapas del desarrollo de software tradicional.

desarrollo y evolucion

Perfectamente explicado!

gracias

Muy bien!

Creo que el mayor defecto del método tradicional se encuentra en la etapa del diseño de la solución . Ya que como dice Woda, no recibes un feedback para mejorar. Es decir, ya invertiste tiempo y dinero y quizás ese prototipo no sea el más adecuado.

Siempre es bueno tener este flujo lineal en mente!

Al analizar segmentar un proyecto de software en cada paso, nos ayuda a poder ver todas las posibilidades de nuestro software. Muy buenos videos para aprender. Me han servido de mucho.

los documentos de diseño (nuestros “planos”) deben hacer referencia a:

Como entrada tenemos el análisis del problema, dividido en tres partes: requerimientos funcionales, mundo del problema y requerimientos no funcionales.

La salida es el diseño del programa, que incluye la interfaz de usuario, la arquitectura y el diseño de las clases.

Analisis de requerimientos:
-Nace de un disparador, el cual vendría a ser un problema que queremos resolver con ayuda del software.
-Existen requerimientos de negocios, de usuarios, funcionales y no funcionales.
-Conlleva a una mejor comprensión del problema a resolver.
Diseño de la solucion:
-Es un análisis profundo de los problemas o requerimientos y como se solucionaria cada uno de ellos.
-Lo mejor es realizar un diseño no tan especifico, pues especificar demasiado no hace más que limitar a los desarrolladores a la hora de produccion del software.
Desarrollo y evaluacion:
-Es el desarrollo del software persé, es decir la progamación.
-Para garantizar un buen producto o artefacto de software se deben de realizar pruebas de test automatizadas.
-El buen desarrollo de los requerimientos hace más efectiva el desarrollo de esta etapa.
Despliegue:
-Una vez listo el artefacto de software, se tiene que hacer uso de él, esta etapa es el despliegue.
-Por ejemplo si el software es una Web, se tendría que usar unos servidores.
Mantenimiento y evolucion:
-Dado que casí nunca el desarrollo de cierto software no es perfecto, se tiene que hacer un mantenimiento a este con finalidad de busqueda de errores que se nos hayan pasado.
-Además puede que el usuario necesite nuevas funcionalidades, por lo que se las tendría que agregar para que así el software evolucione.
-El ciclo de vida del software termina cuando se considera que este software ya no es necesario, o en otras palabras esta deprecado

Haciendo el símil con el antiguo arte y técnica de proyectar, diseñar y construir edificios, esta claro que el arquitecto, aunque podría, no sería nada productivo que el solo se tomara la tarea de:
Visitar a su cliente y levantar los requerimientos, ose preguntarle cómo quiere que sea ese edificio, casa, apartamento, centro comercial, puente, muro etc.
Y luego colocarse realizar la lista de los materiales, mirar si el terreno cumple con las condiciones legales y sísmicos para la construcción, colocarse los guantes y ponerse a preparar la mezcla, pegar ladrillos, paredes y todos estos pormenores que se necesitan para realizar una obra, sería una locura verdad?
Es por eso por lo que la arquitectura de software, engloba una técnica para llevar a cabo la construcción de piezas o edificaciones de software de manera profesional, si bien es necesario saber como se pega un ladrillo no es tarea fundamental de un arquitecto, es un tema con mucha tela por cortar.

Excelente clase muchas gracias.

Similar al proceso de DevOps:

Tengo la percepción de que este curso va a ser muy bueno…

El modelo presentado en este video se llama modelo de cascada o asi se conoce y pues aunque lo mejor no es hacerlo asi porque no se obtiene feedback tan rapido porque cada proceso puede durar semanas, meses o mas.
Por eso lo mejor es usar una metodología agil

El proceso descrito corresponde a proyectos tipo cascada donde los requerimientos son conocidos y el alcance puede ser definido previamente. En la actualidad muchos proyectos no cumplen esta premisa, por lo que deben ser resueltos bajo metodologia Agil.

<h3>Etapas del proceso de desarrollo de Software</h3> <h4>Análisis de requerimientos</h4>

Todo nace de un análisis o idea que responde a una necesidad específica. Aparecen una serie de requerimentos de diversa índole como son:

  • Requerimentos de negocio
  • Requerimentos funcionales
  • Requerimentos de infraestructura

Supone la comprensión del problema a resolver.

<h4>Diseño de la solución</h4>

Tras haber recogido la idea y sus requisitos, tenemos el diseño de la solución que se va a implementar.

Se obtiene una solución detallada tras el análisis a través del modelado y la abstracción.

<h4>Desarrollo y evolución</h4>

Desarrollo e implementación de la solución elegida.
Son muy importantes los criterios de aceptación.

Tiene como resultado un arterfacto de software, que será lo que entreguemos al despliegue.

<h4>Despliegue</h4>

Se desplegará el artefacto sobre una infraestructura.

<h4>Mantenimiento y evolución</h4>

El artefacto entra en soporte y mantenimiento.

ETAPAS DEL PROCESO DE DESARROLLO DE SOFTWARE:
Disparador->Análisis de Requerimientos: RF y RNF–>comprensión muy clara del problema que vamos a resolver
->Diseño de la solución: Plantear soluciones bajándolos a modelos, documentación, productos open source o frameworks–>Solucion detallada->Desarrollo y evaluacion->Artefacto de software->Despliegue->Software disponible->Mantenimiento y evolucion->Sistema deprecado

En este video se explica el modelo en cascada expuesto por primera vez en el año de 1970 por Winstone W. Royce en 1970 y revisado por Barry Boehm en 1980 e Ian Sommerville en 1985, este modelo plantea el desarrollo de software basado en fases (Requisitos, Diseño, Desarrollo, Despliegue, Mantenimiento), lo malo de este modelo es que no se comienza una etapa hasta haber finalizado la anterior, lo cual es costo en términos de tiempo y dinero.