### Preguntas (Copiar en documento colaborativo)
#### Grupo
> Mario Pérez, Edvin Freyer Ortega y Aramis Sarmiento Díaz
#### 1. Ingeniería del software ¿Por qué surge? ¿En qué consiste? Características más importantes

> R:
>Edvin Freyer Ortega: El concepto de ingeniería del software surgió por primera vez, en el 1968, hubo una conferencia en Garmisch (Alemania), el tema a tratar en esta conferencia, era como resolver los problemas del nuevo software, ha esto se le acuñó el término "La crisis del software", este termino se usó desde finales de 1960 hasta mediados de 1980.
>
>Tras la aparición de un nuevo hardware basado en circuitos integrados, comenzaron a desarrollarse sistemas y aplicaciones mucho más complejos, la mayoría de proyectos no se terminaban a tiempo, por eso los presupuestos terminaban siendo más altos de lo que inicialmente había sido pactado.
>
>Algunos de estos proyectos eran tan críticos (sistemas de control de aeropuertos, equipos para medicina, etc) que sus implicaciones iban más allá de las pérdidas millonarias, el mantenimiento también era muy costoso, ya que tenía que haber siempre un usuario experto.
>
>A partir de aquí se llegó a la conclusión de que el software de la época no era suficiente y que no crecía a la misma velocidad que el hardware, aquí es donde se empezó a invertir más en esta disciplina para que cada vez hubieran más expertos y pudieran lidiar con la creciente complejidad de los nuevos sistemas.
>
>La ingeniería de software es una especialidad que tiene como objetivo principal, el desarrollo costeable de sistemas de software confiables que funcionen de modo eficiente y comprende todos los aspectos de la producción del software, también se le llama así a la producción de software.
>
>El software presenta 3 elementos que lo caracterizan:
>
> - Los programas y/o algoritmos.
> - Las estructuras de datos.
> - Los documentos.
>
>Fuentes: [Blog: histinf.blogs.upv.es - Ingenieria de software](https://histinf.blogs.upv.es/2010/12/28/ingenieria-del-software/)
>[Blog: micarrerauniversitaria.com - Ingeniería de software](https://micarrerauniversitaria.com/c-ingenieria/ingenieria-de-software/)
>Mario Pérez: La ingeniería de software es una especialidad que consiste en sistemas, instrumentos y técnicas que se emplean en el desarrollo de los programas informáticos. La ingeniería de software, también, incorpora el análisis precedente de la situación, el boceto del proyecto, el desarrollo del software, el ensayo necesario para comprobar su funcionamiento correcto y poner en funcionamiento el sistema. El término Ingeniería del Software, surge cuando se lleva a cabo dos conferencias estructuradas por la OTAN en los años en 1967 y 1968 y es para mediados de los 70, cuando los sistemas informáticos incrementaron la dificultad y dan pie a la creación de las redes de ordenadores. El software presenta 3 elementos que lo caracterizan:
>
> - Los programas y/o algoritmos.
> - Las estructuras de datos.
> - Los documentos.
>
>Fuentes: [Blog: micarrerauniversitaria.com - Ingeniería de software ](https://micarrerauniversitaria.com/c-ingenieria/ingenieria-de-software/)
>Aramis Sarmiento Díaz: El término ingeniería del software apareció por primera vez en la década de 1950 y principios de los años 1960. Los programadores siempre habían sabido sobre ingenieros civiles, eléctricos y de ordenadores y debatían qué podría significar la ingeniería para el software.El Comité de ciencia de la OTAN patrocinó dos conferencias sobre ingeniería del software en 1968 (Garmisch, Alemania y en 1969)
>
>
>Entre los objetivos de la ingeniería de software están:
>
>Mejorar el diseño de aplicaciones o software de tal modo que se adapten de mejor manera a las necesidades de las organizaciones o finalidades para las cuales fueron creadas.
>
>Promover mayor calidad al desarrollar aplicaciones complejas.
>
>Brindar mayor exactitud en los costos de proyectos y tiempo de desarrollo de los mismos.
>
>Aumentar la eficiencia de los sistemas al introducir procesos que permitan medir mediante normas específicas, la calidad del software desarrollado, buscando siempre la mejor calidad posible según las necesidades y resultados que se quieren generar.
>
>Una mejor organización de equipos de trabajo, en el área de desarrollo y mantenimiento de software.
>
>Detectar a través de pruebas, posibles mejoras para un mejor funcionamiento del software desarrollado.
>Fuentes: [Blog: timetoast.com - Origen e historia de la ingenieria de software](https://www.timetoast.com/timelines/origen-e-historia-de-la-ing-de-software)
>[Wiki: wikipedia.org - Ingeniería de software](https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software#Metodolog%C3%ADa)
##### PUESTA EN COMÚN
>La ingeniería de software es una especialidad que consiste en sistemas, instrumentos y técnicas que se emplean en el desarrollo de los programas informáticos. La ingeniería de software, también, incorpora el análisis precedente de la situación, el boceto del proyecto, el desarrollo del software, el ensayo necesario para comprobar su funcionamiento correcto y poner en funcionamiento el sistema. El término Ingeniería del Software, surge cuando se lleva a cabo dos conferencias estructuradas por la OTAN en los años en 1967 y 1968 y es para mediados de los 70, cuando los sistemas informáticos incrementaron la dificultad y dan pie a la creación de las redes de ordenadores. El software presenta 3 elementos que lo caracterizan:
>
> - Los programas y/o algoritmos.
> - Las estructuras de datos.
> - Los documentos.
>
>Fuentes: [Blog: micarrerauniversitaria.com - Ingeniería de software ](https://micarrerauniversitaria.com/c-ingenieria/ingenieria-de-software/)
#### 2. Tareas del desarrollo de software
El proceso de desarrollo de software es el que tiene lugar desde que se concibe una idea hasta que el programa está implementado en el ordenador y funcionando.
Se han planteado distontos modelos o metodologías a la hora de llevar a cabo el desarrollo del software, cada una con sus peculiaridades, pero la mayoría coincide en llevar a cabo una serie de tareas o actividades que son las siguientes:
* Requisitos
* Análisis
* Diseño
* Codficación
* Pruebas
* Documentación
* Explotación
* Mantenimiento.
Investiga y describe en que consiste cada una de ellas

> R:
>Edvin Freyer Ortega:
>
>* Requisitos: Se extraen los requisitos del producto de software que se va a desarrollar para plasmarlos en el documento ERS (Especificación de Requerimientos del Sistema).
>* Análisis: Se analizan los requisitos y se empieza a pensar como plasmarlo en un diseño que es el siguiente paso.
>* Diseño: El programador o los programadores van a determinar cómo funcionará de forma general. Es el momento de hacer consideraciones sobre la red, el hardware, los casos de uso, etc. La arquitectura representa la primera decisión de diseño sobre el sistema y es uno de los puntos más importantes en el proceso de desarrollo.
>* Codficación: Se realizan los distintos procesos y estructuras que se han definido para el sistema. La complejidad y la duración de esta etapa no es exacta, ya que viene directamente ligada a los lenguajes de programación que se utilizan.
>* Pruebas: Sirven para detectar las disconformidades de los trabajadores, los clientes y los errores. Es el momento de comprobar que el software funciona correctamente, y para ello se pueden realizar las pruebas de cada módulo por separado y después de forma integral.
>* Documentación: En el proceso de desarrollo tiene mucha importancia la documentación transparente del código de fuente del programa.
>* Explotación: En esta fase ya está todo listo para su uso, ya sea uso general o para una empresa específica.
>* Mantenimiento: Siempre tiene que haber uno o varios programadores que tienen que estar siempre alerta de futuros fallos, futuras actualizaciones etc... Es decir manteniendo el fuen funcionamiento del programa.
>
>Fuentes: [Blog: occamagenciadigital.com - Conoce las fases de un proyecto de desarrollo de software](https://www.occamagenciadigital.com/blog/conoce-las-fases-de-un-proyecto-de-desarrollo-de-software)
>Mario Pérez:
>- Requisitos: Se extraen los requisitos del software que se va a crear y son plasmaos en el documento ERS.
>- Análisis: En la etapa de análisis se intenta descubrir qué es lo que realmente se necesita y se llega a una comprensión adecuada de los requerimientos del sistema, es decir, las características que el sistema debe poseer.
>- Diseño: En esta fase se estudian posibles opciones de implementación para el software que hay que construir, así como decidir la estructura general del mismo.
>- Codificación: En esta fase hay que elegir las herramientas adecuadas, un entorno de desarrollo que facilite el trabajo y un lenguaje de programación apropiado para el tipo de software a construir. Esta elección dependerá tanto de las decisiones de diseño tomadas como del entorno en el que el software deba funcionar.
>- Pruebas: Consiste en verificar que el software ejecute apropiadamente las labores indicadas en la especificación.
>- Documentación: Todo lo que se relaciona a la documentación del desarrollo del software y de la administración del proyecto, pasando por modelaciones (UML), diagramas, pruebas, manuales de usuario, manuales técnicos, etc; todo con el propósito de realizar correcciones con regularidad, utilidad, mantenimiento futuro y ampliaciones al sistema.
>- Explotación: En esta fase ya está todo preparado para que el software sea expuesto al mercado.
>- Mantenimiento: Conservar y realizar mejoras en el software para afrontar fallas encontradas y nuevos requisitos.
>Fuentes: [Blog: micarrerauniversitaria.com - Ingeniería de software](https://micarrerauniversitaria.com/c-ingenieria/ingenieria-de-software/),
>[Blog: intelequia.com - Ciclo de la vida del software](https://intelequia.com/blog/post/2083/ciclo-de-vida-del-software-todo-lo-que-necesitas-saber).
>Aramis Sarmiento Díaz:
>- Requisitos: Se debe identificar sobre qué se está trabajando, es decir, el tema principal que motiva el inicio del estudio y creación del nuevo software o modificación de uno ya existente. A su vez identificar los recursos que se tienen, en esto entra el conocer los recursos humanos y materiales que participan en el desarrollo de las actividades. Es importante entender el contexto del negocio para identificar adecuadamente los requisitos.
>
>Se tiene que tener dominio de la información de un problema, lo cual incluye los datos fuera del software (usuarios finales, otros sistemas o dispositivos externos), los datos que salen del sistema (por la interfaz de usuario, interfaces de red, reportes, gráficas y otros medios) y los almacenamientos de datos que recaban y organizan objetos persistentes de datos (por ejemplo, aquellos que se conservan de manera permanente).
>
>También hay que ver los puntos críticos, lo que significa tener de una manera clara los aspectos que entorpecen y limitan el buen funcionamiento de los procedimientos actuales, los problemas más comunes y relevantes que se presentan, los motivos que crean insatisfacción y aquellos que deben ser cubiertos a plenitud.
>
>Hay que definir las funciones que realizará el software ya que estas ayudan al usuario final y al funcionamiento del mismo programa.
>
>Se tiene que tener en cuenta cómo será el comportamiento del software ante situaciones inesperadas como lo son por ejemplo una gran cantidad de usuarios usando el software o una gran cantidad de datos entre otros.
>- Análisis:Durante la fase de análisis, el cliente plantea las necesidades que se presenta e intenta explicar lo que debería hacer el software o producto final para satisfacer dicha necesidad mientras que el desarrollador actúa como interrogador, como la persona que resuelve problemas. Con este análisis, el ingeniero de sistemas puede elegir la función que debe realizar el software y establecer o indicar cuál es la interfaz más adecuada para el mismo.
>
>
>Finalidades del análisis de requisitos:
>
>- Brindar al usuario todo lo necesario para que pueda trabajar en conjunto con el software desarrollado obteniendo los mejores resultados posibles.
>- Tener un control más completo en la etapa creación del software, en cuanto a tiempo de desarrollo y costos.
>Utilización de métodos más eficientes que permitan el mejor aprovechamiento del software según sea la finalidad de uso del mismo.
>- Aumentar la calidad del software desarrollado al disminuir los riesgos de mal funcionamiento.
>
>Diseño: Es el proceso creativo de transformación del problema en una solución. Una vez que se analizan y especifican los requisitos, el diseño es la siguiente actividad técnica a realizar. Es independiente del modelo de procesos que se use. El diseño se centra en 4 áreas importantes:
>- Datos
>- Arquitecturas
>- Interfaces
>- Componentes
>El diseño es la etapa, en la que se fomenta la calidad. Sin diseño se corre riesgo de construir un sistema inestable, y difícil de probar.
>- Codificación: Durante esta etapa se realizan las tareas que comúnmente se conocen como programación; que consiste, esencialmente, en llevar a código fuente, en el lenguaje de programación elegido, todo lo diseñado en la fase anterior. Esta tarea la realiza el programador, siguiendo por completo los lineamientos impuestos en el diseño y en consideración siempre a los requisitos funcionales y no funcionales (ERS) especificados en la primera etapa.
>ERS:Especificación de requisitos de software
>- Pruebas:
Las pruebas de software son un conjunto de técnicas que nos permiten asegurar la calidad del producto que estamos desarrollando en sus diferentes etapas del ciclo de vida.
Aunque tienen un coste de desarrollo y mantenimiento extra, son especialmente útiles para facilitar la calidad del software a medio y largo plazo.
El tipo y cantidad de pruebas tiene que ser acorde al producto que estamos desarrollando: no es lo mismo un producto grande que una aplicación web para anotar tareas.
Todo software debería tener algún tipo de prueba para asegurar su calidad independientemente del tamaño del mismo o del número de personas involucradas en su desarrollo.
>- Documentación: Es todo lo concerniente a la documentación del propio desarrollo del software y de la gestión del proyecto, pasando por modelaciones (UML), diagramas de casos de uso, pruebas, manuales de usuario, manuales técnicos, etc; todo con el propósito de eventuales correcciones, usabilidad, mantenimiento futuro y ampliaciones al sistema.
>
>- Explotación:Incluye la operación del producto software en su entorno final y el soporte operativo alos clientes
>
>- Mantenimiento:Incluye la modificación de un sistema o producto software después de la entrega para:
>- Corregir los fallos (correctivo)
>- Mejorar el rendimiento u otros atributos (de mejora)
>- Adaptarlo a un entorno modificado (adaptativo).
>
>Fuentes:[Blog: 4teosite.wordpress.com - Codificación del software](https://4tesosite.wordpress.com/codificacion-del-software/)
>[Campus de cursos online:www.campusmvp.es/ - Pruebas de software](https://www.campusmvp.es/recursos/post/que-son-las-pruebas-de-software.aspx)
>[Repositorio de github: gist.github.com/brunocascio - Diseño](https://gist.github.com/brunocascio/5e89fafa7fd86bdd1a715d2f6f0432d1)
[Blog: techlandia.com - La importancia de la documentación de software](https://techlandia.com/importancia-documentacion-software-sobre_538552/)
[Enciclopedia en línea: es.wikipedia.org - Ingeniería de software](https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software#Etapas_del_proceso)
##### PUESTA EN COMÚN
>- Requisitos: Se debe identificar sobre qué se está trabajando, es decir, el tema principal que motiva el inicio del estudio y creación del nuevo software o modificación de uno ya existente. A su vez identificar los recursos que se tienen, en esto entra el conocer los recursos humanos y materiales que participan en el desarrollo de las actividades. Es importante entender el contexto del negocio para identificar adecuadamente los requisitos.
>
>Se tiene que tener dominio de la información de un problema, lo cual incluye los datos fuera del software (usuarios finales, otros sistemas o dispositivos externos), los datos que salen del sistema (por la interfaz de usuario, interfaces de red, reportes, gráficas y otros medios) y los almacenamientos de datos que recaban y organizan objetos persistentes de datos (por ejemplo, aquellos que se conservan de manera permanente).
>
>También hay que ver los puntos críticos, lo que significa tener de una manera clara los aspectos que entorpecen y limitan el buen funcionamiento de los procedimientos actuales, los problemas más comunes y relevantes que se presentan, los motivos que crean insatisfacción y aquellos que deben ser cubiertos a plenitud.
>
>Hay que definir las funciones que realizará el software ya que estas ayudan al usuario final y al funcionamiento del mismo programa.
>
>Se tiene que tener en cuenta cómo será el comportamiento del software ante situaciones inesperadas como lo son por ejemplo una gran cantidad de usuarios usando el software o una gran cantidad de datos entre otros.
>- Análisis:Durante la fase de análisis, el cliente plantea las necesidades que se presenta e intenta explicar lo que debería hacer el software o producto final para satisfacer dicha necesidad mientras que el desarrollador actúa como interrogador, como la persona que resuelve problemas. Con este análisis, el ingeniero de sistemas puede elegir la función que debe realizar el software y establecer o indicar cuál es la interfaz más adecuada para el mismo.
>
>
>Finalidades del análisis de requisitos:
>
>- Brindar al usuario todo lo necesario para que pueda trabajar en conjunto con el software desarrollado obteniendo los mejores resultados posibles.
>- Tener un control más completo en la etapa creación del software, en cuanto a tiempo de desarrollo y costos.
>Utilización de métodos más eficientes que permitan el mejor aprovechamiento del software según sea la finalidad de uso del mismo.
>- Aumentar la calidad del software desarrollado al disminuir los riesgos de mal funcionamiento.
>
>Diseño: Es el proceso creativo de transformación del problema en una solución. Una vez que se analizan y especifican los requisitos, el diseño es la siguiente actividad técnica a realizar. Es independiente del modelo de procesos que se use. El diseño se centra en 4 áreas importantes:
>- Datos
>- Arquitecturas
>- Interfaces
>- Componentes
>El diseño es la etapa, en la que se fomenta la calidad. Sin diseño se corre riesgo de construir un sistema inestable, y difícil de probar.
>- Codificación: Durante esta etapa se realizan las tareas que comúnmente se conocen como programación; que consiste, esencialmente, en llevar a código fuente, en el lenguaje de programación elegido, todo lo diseñado en la fase anterior. Esta tarea la realiza el programador, siguiendo por completo los lineamientos impuestos en el diseño y en consideración siempre a los requisitos funcionales y no funcionales (ERS) especificados en la primera etapa.
>ERS:Especificación de requisitos de software
>- Pruebas:
Las pruebas de software son un conjunto de técnicas que nos permiten asegurar la calidad del producto que estamos desarrollando en sus diferentes etapas del ciclo de vida.
Aunque tienen un coste de desarrollo y mantenimiento extra, son especialmente útiles para facilitar la calidad del software a medio y largo plazo.
El tipo y cantidad de pruebas tiene que ser acorde al producto que estamos desarrollando: no es lo mismo un producto grande que una aplicación web para anotar tareas.
Todo software debería tener algún tipo de prueba para asegurar su calidad independientemente del tamaño del mismo o del número de personas involucradas en su desarrollo.
>- Documentación: Es todo lo concerniente a la documentación del propio desarrollo del software y de la gestión del proyecto, pasando por modelaciones (UML), diagramas de casos de uso, pruebas, manuales de usuario, manuales técnicos, etc; todo con el propósito de eventuales correcciones, usabilidad, mantenimiento futuro y ampliaciones al sistema.
>
>- Explotación:Incluye la operación del producto software en su entorno final y el soporte operativo alos clientes
>
>- Mantenimiento:Incluye la modificación de un sistema o producto software después de la entrega para:
>- Corregir los fallos (correctivo)
>- Mejorar el rendimiento u otros atributos (de mejora)
>- Adaptarlo a un entorno modificado (adaptativo).
>
>Fuentes:[Blog: 4teosite.wordpress.com - Codificación del software](https://4tesosite.wordpress.com/codificacion-del-software/)
>[Campus de cursos online:www.campusmvp.es/ - Pruebas de software](https://www.campusmvp.es/recursos/post/que-son-las-pruebas-de-software.aspx)
>[Repositorio de github: gist.github.com/brunocascio - Diseño](https://gist.github.com/brunocascio/5e89fafa7fd86bdd1a715d2f6f0432d1)
[Blog: techlandia.com - La importancia de la documentación de software](https://techlandia.com/importancia-documentacion-software-sobre_538552/)
[Enciclopedia en línea: es.wikipedia.org - Ingeniería de software](https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software#Etapas_del_proceso)
#### 3. Personas implicadas
En el desarrollo de software intervienen diferentes personas, cada una desempeñando uno o varios roles. Los roles más importantes son los que se incluyen a continuación. Describe cada uno de ellos:
* Clientes
* Analistas
* Desarrolladores
* Usuarios

> R:
>
>Edvin Freyer Ortega:
>
>* Clientes: Es quien tiene una idea de un proyecto, o actúa como mandante de una empresa, su trabajo es conseguir un equipo de expertos que pueda llevar a cabo el proyecto pensado, para que todo salga bien, debe decirle sus necesidades con claridad al analista, y darle ideas de como quiere todo.
>* Analistas: Es quien lleva la fase de análisis en un proyecto, debe quedar mediante reuniones con el cliente para escuchar sus necesidades, él analista debe entender que quiere el cliente, porque luego tiene que llevar al equipo el conocimiento necesario para el entendimiento y ejección del software, debe pasar de un lenguaje que domine el cliente a un lenguaje que domine el equipo.
>* Desarrolladores: Su función es llevar la idea del cliente que le ha hecho llegar el analista, a código para implementarlo, debe estudiar en que sistemas puede desarrollarlo, hablar con el resto del equipo de programadores, y todo con la menor cantidad de código posible y lo más eficientemente posible,
>* Usuarios: son las personas que están operando con el software final.
>
>Fuentes: [Blog: slideshare.net - Roles desarrollo del software](https://es.slideshare.net/SebastianRamrez2/roles-desarrollo-del-software)
>
>Mario Pérez:
>- Clientes: Es la persona que tiene la idea y los recursos necesarios para llevarla a cabo junto a profesionales.
>- Analistas: Los analistas de sistemas informáticos adaptan y diseñan sistemas de información para ayudar a las empresas trabajar de forma más rápida y eficiente.
>- Desarrolladores: Los desarrolladores llevan a cabo la idea del cliente, comunicada por el analista.
>- Usuarios: Son las personas que usan este software, ya sea de uso libre o cerrado.
>
>Fuentes: [Blog: educaweb.com - Analista sistemas informáticos](https://www.educaweb.com/profesion/analista-sistemas-informaticos-362)
>
>Aramis:
>- Clientes: Es quien tiene la idea del proyecto y para llevarla a cabo necesita a los profesionales.
>- Analistas: Es el responsable de cumplir con las necesidades comerciales del cliente. Esto significa que tienen en cuenta los objetivos comerciales del cliente y lo ayudan a definir metas claras. Luego, ellos toman estos objetivos y los convierten en soluciones de software viables. Están involucrados en el proyecto desde el inicio, y conectan las necesidades del cliente con las realidades del proyecto. Además, llevan a cabo análisis del mercado, evalúan a la competencia y definen a la audiencia meta. También crean soluciones de documentación y prueban soluciones.
>- Desarrolladores: Son los que crean el proyecto final al programar en un rango de distintos lenguajes de programación. Dependiendo del nivel de experiencia, los equipos pueden contar con desarrolladores senior, medios y junior. En los proyectos más grandes, quizás existan distintos niveles de experiencia en los equipos de desarrollo de software. Los programadores junior apoyan al resto del equipo al ayudar con las tareas más fáciles para darles más tiempo a los desarrolladores senior para que aborden las programaciones más difíciles.
>- Usuarios: Son las personas que utilizan el software.
>
> Fuente: [Blog: projectcor.com - Roles fundamentales en un equipo de desarrollo](https://projectcor.com/es/blog/roles-fundamentales-en-un-equipo-de-desarrollo-de-software/)
##### PUESTA EN COMÚN
>* Clientes: Es quien tiene una idea de un proyecto, o actúa como mandante de una empresa, su trabajo es conseguir un equipo de expertos que pueda llevar a cabo el proyecto pensado, para que todo salga bien, debe decirle sus necesidades con claridad al analista, y darle ideas de como quiere todo.
>* Analistas: Es quien lleva la fase de análisis en un proyecto, debe quedar mediante reuniones con el cliente para escuchar sus necesidades, él analista debe entender que quiere el cliente, porque luego tiene que llevar al equipo el conocimiento necesario para el entendimiento y ejección del software, debe pasar de un lenguaje que domine el cliente a un lenguaje que domine el equipo.
>* Desarrolladores: Su función es llevar la idea del cliente que le ha hecho llegar el analista, a código para implementarlo, debe estudiar en que sistemas puede desarrollarlo, hablar con el resto del equipo de programadores, y todo con la menor cantidad de código posible y lo más eficientemente posible,
>* Usuarios: son las personas que están operando con el software final.
>
>Fuentes: [Blog: slideshare.net - Roles desarrollo del software](https://es.slideshare.net/SebastianRamrez2/roles-desarrollo-del-software)
#### 4. Ciclo de vida del software
De forma genérica, en qué cosiste el ciclo de vida del software:

> R:
>
>Edvin Freyer Ortega:
>
>Es un programa para definir las distintas fases intermedias que se requieren para validar el desarrollo de la aplicación, es decir, para garantizar que el software cumpla los requisitos para la aplicación y verificación de los procedimientos de desarrollo: se asegura de que los métodos utilizados son apropiados.
>
>La razón por la que se crean estos programas, es porque rectificar errores en el futuro puede llegar a ser muy costoso. El ciclo de vida permite que los errores se detecten lo antes posible y, por lo tanto, permite a los desarrolladores concentrarse en la calidad del software, en los plazos de implementación y en los costos asociados.
>
>Fuentes: [Blog: ccm.net - Ciclo de vida del software](https://es.ccm.net/contents/223-ciclo-de-vida-del-software#ciclo-de-vida-del-software)
>
>Mario: El ciclo de vida del desarrollo del software contempla las fases necesarias para validar el desarrollo del software y así garantizar que este cumpla los requisitos para la aplicación y verificación de los procedimientos de desarrollo, asegurándose de que los métodos usados son apropiados.
>Fuente: [Blog: intelequia.com - Ciclo de vida del software](https://intelequia.com/blog/post/2083/ciclo-de-vida-del-software-todo-lo-que-necesitas-saber)
>
>Aramis: Es el conjunto de fases por las que pasa el sistema que se está desarrollando desde que nace la idea inicial hasta que el software es retirado o remplazado (muere). También se denomina a veces paradigma.
>
>Entre las funciones que debe tener un ciclo de vida se pueden destacar:
>
>• Determinar el orden de las fases del proceso de software.
• Establecer los criterios de transición para pasar de una fase a la siguiente.
• Definir las entradas y salidas de cada fase.
• Describir los estados por los que pasa el producto.
• Describir las actividades a realizar para transformar el producto.
• Definir un esquema que sirve como base para planificar, organizar, coordinar, desarrollar…
>
>Fuente: [Blog: efectodigital.online- Ciclo de vida del software](https://www.efectodigital.online/single-post/2018/04/23/ciclo-de-vida-de-desarrollo-de-software)
##### PUESTA EN COMÚN
>Es el conjunto de fases por las que pasa el sistema que se está desarrollando desde que nace la idea inicial hasta que el software es retirado o remplazado (muere). También se denomina a veces paradigma.
>
>Entre las funciones que debe tener un ciclo de vida se pueden destacar:
>
>• Determinar el orden de las fases del proceso de software.
• Establecer los criterios de transición para pasar de una fase a la siguiente.
• Definir las entradas y salidas de cada fase.
• Describir los estados por los que pasa el producto.
• Describir las actividades a realizar para transformar el producto.
• Definir un esquema que sirve como base para planificar, organizar, coordinar, desarrollar…
>
>Fuente: [Blog: efectodigital.online- Ciclo de vida del software](https://www.efectodigital.online/single-post/2018/04/23/ciclo-de-vida-de-desarrollo-de-software)