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 鈥渃贸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 鈥済rammar nazi鈥, la palabra 鈥渄eprecado鈥 no existe en espa帽ol (eso es un calco del ingl茅s). La palabra real es 鈥渙bsoleto鈥

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 鈥渞equerimientos鈥

    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 鈥渄eprecar鈥, 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 鈥減lanos鈥) 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.