Modelos de
Desarrollo
de Software
Ing. Sistemas Computacionales.
Introducción a la
ingeniería de
Software
• La ingeniería del software es una disciplina
que aplica principios de ingeniería para el
diseño, desarrollo y mantenimiento de
sistemas de software.
• * Se trata de un enfoque sistemático y
disciplinado para la creación de software que
sea confiable, eficiente y que satisfaga las
necesidades de los usuarios.
Objetivos
 Crear programas informáticos que satisfagan las necesidades de la sociedad y
empresas.
 Guiar y coordinar el desarrollo de una programación difícil.
 Intervenir en el ciclo de vida de un producto.
 Estimar los costos y el plazo de ejecución de un proyecto.
 Durante la creación de la aplicación, liderar y dirigir a los programadores.
 Incluir procesos de calidad en las aplicaciones, como la medición de métricas
y medidas y la evaluación de la calidad del software.
Historia y evolución
Principios Básicos
Algunos de los principios básicos de la ingeniería de software son:
1. Enfoque sistemático: El desarrollo de software debe seguir un proceso
sistemático y bien definido que incluya diferentes etapas, como la definición de
requisitos, el diseño, la implementación, las pruebas y el mantenimiento.
2. Modularidad: El software debe dividirse en módulos independientes y bien
definidos que puedan ser desarrollados, probados y mantenidos de forma
individual.
3. Separación de intereses: El software debe diseñarse de manera que las
diferentes preocupaciones, como la lógica de negocio, la interfaz de usuario y la
gestión de datos, estén separadas entre sí.
4. Reutilización: Se debe aprovechar al máximo la posibilidad de reutilizar código
existente en lugar de desarrollar nuevo código desde cero.
5. Pruebas: El software debe probarse exhaustivamente para garantizar que
cumple con los requisitos establecidos y que funciona correctamente en
diferentes escenarios.
6. Documentación: Se debe documentar de forma clara y completa el proceso de
desarrollo del software, así como el código fuente y la arquitectura del sistema.
7. Gestión del proyecto: El desarrollo de software debe gestionarse de forma
eficiente mediante la planificación, la organización, la dirección y el control de los
recursos y las actividades del proyecto.
Estos son solo algunos de los principios básicos de la ingeniería de software
Ciclo de vida
El ciclo de vida del desarrollo del software es el proceso que se sigue para desarrollar un software
desde la etapa de planificación hasta el mantenimiento. A continuación, se presentan las
diferentes etapas del ciclo de vida del desarrollo del software:
Planificación: En esta etapa se definen los objetivos y requisitos del software, se
establece el alcance del proyecto y se elabora un plan de desarrollo.
Análisis: En esta etapa se recopila y analiza información sobre los
requisitos funcionales y no funcionales del software. Se identifican los
problemas a resolver y se definen las soluciones.
Diseño: En esta etapa se elabora el diseño detallado del software, se
definen la arquitectura, los componentes y las interfaces. Se crea un plan
de pruebas para verificar el funcionamiento del software.
Implementación: En esta etapa se desarrolla el software utilizando el
diseño elaborado. Se escriben y prueban los códigos, se integran los
componentes y se realiza la documentación necesaria.
Pruebas: En esta etapa se realizan pruebas exhaustivas para verificar que
el software funcione correctamente. Se identifican y corrigen los errores
encontrados durante las pruebas.
Despliegue: En esta etapa se instala y configura el software en el
entorno de producción. Se verifica que el software esté listo para su
uso y se realiza una implementación gradual o completa.
Mantenimiento: En esta etapa se realizan actividades de
mantenimiento para garantizar el correcto funcionamiento del
software a lo largo del tiempo. Se corrigen errores, se realizan
mejoras y se actualiza el software según sea necesario.
Requisitos de Software y Gestión de Requisitos
Definición de Requisitos de Software
Los requisitos de software son las
funcionalidades y características que debe tener
un sistema de software para satisfacer las
necesidades del cliente y los usuarios. Es
importante definir claramente estos requisitos
al comienzo de un proyecto de desarrollo de
software.
Gestión de Requisitos
La gestión de requisitos es el proceso de
identificar, documentar, verificar, validar y
controlar los requisitos de software a lo largo
del ciclo de vida del proyecto. Esto garantiza que
los requisitos se comprendan y cumplan
correctamente, lo que contribuye al éxito del
proyecto.
Metodologías de desarrollo de software
Waterfall
Es un enfoque secuencial y lineal para el
desarrollo de software. Se divide en etapas bien
definidas, como análisis de requisitos, diseño,
implementación, pruebas y mantenimiento.
Cada etapa se completa antes de pasar a la
siguiente, y los cambios son difíciles de realizar
una vez que se ha completado una etapa.
Agile
La metodología Agile es un enfoque iterativo
e incremental para el desarrollo de software.
Se basa en la colaboración entre equipos
multidisciplinarios y la entrega continua de
software funcional. Los requisitos y
soluciones evolucionan a través de la
colaboración entre equipos autoorganizados.
Scrum
Es un marco de trabajo ágil que se enfoca en la colaboración, la entrega de
valor y la adaptación continua. Las tareas se dividen en sprints, que son
iteraciones cortas de trabajo. Al final de cada sprint, se realiza una revisión y se
planifica el siguiente sprint.
CREDITS: This presentation template was created by Slidesgo,
and includes icons by Flaticon, and infographics & images by
Freepik
A continuación, se presentan algunos patrones de diseño comunes utilizados en
la ingeniería de software:
1. Patrón de diseño de fachada: Proporciona una interfaz simplificada para un
subsistema complejo.
2. Patrón de diseño de fábrica: Permite la creación de objetos sin especificar su
clase concreta.
3. Patrón de diseño de observador: Define una dependencia uno-a-muchos
entre objetos, de modo que cuando un objeto cambia de estado, todos sus
dependientes son notificados y actualizados.
4. Patrón de diseño de singleton: Garantiza que una clase solo tenga una
instancia y proporciona un punto de acceso global a esta instancia.
5. Patrón de diseño de estrategia: Permite definir una familia de algoritmos,
encapsular cada uno de ellos y hacerlos intercambiables.
Diseño de software y patrones de diseño
● El diseño de software es un proceso clave en la ingeniería de software que se centra en la
creación de una estructura y organización efectivas para un sistema de software. El diseño
de software implica tomar decisiones sobre la arquitectura, componentes, interfaces y
comportamiento del sistema.
● Los patrones de diseño son soluciones probadas y comunes a problemas de diseño
recurrentes en el desarrollo de software. Estos patrones proporcionan un enfoque
estándar y reutilizable para abordar problemas específicos y mejorar la calidad y
mantenibilidad del software.
Desarrollo de software orientado a objetos
Encapsulación: La encapsulación es un principio fundamental en el desarrollo de
software orientado a objetos. Consiste en ocultar los detalles internos de una
clase y proporcionar una interfaz para interactuar con ella. Esto permite lograr la
modularidad y la reutilización de código.
Herencia: La herencia es otro concepto clave en el desarrollo de software
orientado a objetos. Permite la creación de nuevas clases basadas en clases
existentes, heredando sus atributos y métodos. Esto facilita la reutilización de
código y la creación de jerarquías de clases.
Polimorfismo: El polimorfismo permite que un objeto pueda presentarse en
diferentes formas. Esto significa que un objeto puede ser tratado como un objeto
de su clase base o como un objeto de una de sus clases derivadas. El
polimorfismo facilita la flexibilidad y extensibilidad del código.
Prueba de software y técnicas de calidad
Importancia de la Calidad en el Desarrollo de Software
 La calidad en el desarrollo de software es fundamental para garantizar un producto confiable
y funcional.
 Las técnicas de prueba de software son esenciales para identificar y corregir errores y
garantizar que el software cumpla con los requisitos y expectativas del usuario final.
La gestión de configuración y el control de versiones son cruciales para garantizar
la integridad y la calidad del software. Estas prácticas ayudan a evitar conflictos en
el código fuente, facilitan la colaboración entre los miembros del equipo, permiten
realizar un seguimiento de los cambios realizados y brindan la capacidad de
revertir a versiones anteriores en caso de problemas.
La gestión de configuración y el control de versiones son herramientas esenciales
en el desarrollo de software. Estas prácticas ayudan a los equipos de desarrollo a
mantener un registro organizado de los cambios, controlar las diferentes
versiones del software y garantizar la integridad y la calidad del producto final.
Gestión de configuración y control de versiones
Conclusión
La ingeniería de software es una disciplina que nos permite
construir software de forma eficiente, confiable y que satisfaga las
necesidades de los usuarios. Se basa en la aplicación de teoría,
conocimiento y práctica para el desarrollo de software a lo largo de
todo su ciclo de vida, desde la concepción hasta la operación
BIBLIOGRAFIA
• Cevallos, K. (2015, abril 15). Introducción a la Ingeniería del software.
INGENIERÍA DEL SOFTWARE.
https://ingsotfwarekarlacevallos.wordpress.com/2015/04/15/hola-mundo/
• Leighton, L. (2013). No title. 1–1.
• Tema: Foros. (s/f). Edu.uy. Recuperado el 16 de febrero de 2024, de
https://eva.fing.edu.uy/course/view.php?id=613
• (S/f-a). Edu.mx. Recuperado el 16 de febrero de 2024, de
https://www.uacm.edu.mx/Portals/0/OfertaAcademica/CCyT/Programas/CB/2/
Intro_Inga_Software.pdf
• (S/f-b). Edu.ar. Recuperado el 16 de febrero de 2024, de
https://cs.uns.edu.ar/~saj/iis18/downloads/Clases/Clase%203%20-
%20U2.Ingenieria%20de%20SW.pdf

Introducción a la ingenieria de Software

  • 1.
    Modelos de Desarrollo de Software Ing.Sistemas Computacionales.
  • 2.
    Introducción a la ingenieríade Software • La ingeniería del software es una disciplina que aplica principios de ingeniería para el diseño, desarrollo y mantenimiento de sistemas de software. • * Se trata de un enfoque sistemático y disciplinado para la creación de software que sea confiable, eficiente y que satisfaga las necesidades de los usuarios.
  • 3.
    Objetivos  Crear programasinformáticos que satisfagan las necesidades de la sociedad y empresas.  Guiar y coordinar el desarrollo de una programación difícil.  Intervenir en el ciclo de vida de un producto.  Estimar los costos y el plazo de ejecución de un proyecto.  Durante la creación de la aplicación, liderar y dirigir a los programadores.  Incluir procesos de calidad en las aplicaciones, como la medición de métricas y medidas y la evaluación de la calidad del software.
  • 4.
  • 5.
    Principios Básicos Algunos delos principios básicos de la ingeniería de software son: 1. Enfoque sistemático: El desarrollo de software debe seguir un proceso sistemático y bien definido que incluya diferentes etapas, como la definición de requisitos, el diseño, la implementación, las pruebas y el mantenimiento. 2. Modularidad: El software debe dividirse en módulos independientes y bien definidos que puedan ser desarrollados, probados y mantenidos de forma individual. 3. Separación de intereses: El software debe diseñarse de manera que las diferentes preocupaciones, como la lógica de negocio, la interfaz de usuario y la gestión de datos, estén separadas entre sí.
  • 6.
    4. Reutilización: Sedebe aprovechar al máximo la posibilidad de reutilizar código existente en lugar de desarrollar nuevo código desde cero. 5. Pruebas: El software debe probarse exhaustivamente para garantizar que cumple con los requisitos establecidos y que funciona correctamente en diferentes escenarios. 6. Documentación: Se debe documentar de forma clara y completa el proceso de desarrollo del software, así como el código fuente y la arquitectura del sistema. 7. Gestión del proyecto: El desarrollo de software debe gestionarse de forma eficiente mediante la planificación, la organización, la dirección y el control de los recursos y las actividades del proyecto. Estos son solo algunos de los principios básicos de la ingeniería de software
  • 7.
    Ciclo de vida Elciclo de vida del desarrollo del software es el proceso que se sigue para desarrollar un software desde la etapa de planificación hasta el mantenimiento. A continuación, se presentan las diferentes etapas del ciclo de vida del desarrollo del software: Planificación: En esta etapa se definen los objetivos y requisitos del software, se establece el alcance del proyecto y se elabora un plan de desarrollo.
  • 8.
    Análisis: En estaetapa se recopila y analiza información sobre los requisitos funcionales y no funcionales del software. Se identifican los problemas a resolver y se definen las soluciones. Diseño: En esta etapa se elabora el diseño detallado del software, se definen la arquitectura, los componentes y las interfaces. Se crea un plan de pruebas para verificar el funcionamiento del software. Implementación: En esta etapa se desarrolla el software utilizando el diseño elaborado. Se escriben y prueban los códigos, se integran los componentes y se realiza la documentación necesaria. Pruebas: En esta etapa se realizan pruebas exhaustivas para verificar que el software funcione correctamente. Se identifican y corrigen los errores encontrados durante las pruebas.
  • 9.
    Despliegue: En estaetapa se instala y configura el software en el entorno de producción. Se verifica que el software esté listo para su uso y se realiza una implementación gradual o completa. Mantenimiento: En esta etapa se realizan actividades de mantenimiento para garantizar el correcto funcionamiento del software a lo largo del tiempo. Se corrigen errores, se realizan mejoras y se actualiza el software según sea necesario.
  • 10.
    Requisitos de Softwarey Gestión de Requisitos Definición de Requisitos de Software Los requisitos de software son las funcionalidades y características que debe tener un sistema de software para satisfacer las necesidades del cliente y los usuarios. Es importante definir claramente estos requisitos al comienzo de un proyecto de desarrollo de software. Gestión de Requisitos La gestión de requisitos es el proceso de identificar, documentar, verificar, validar y controlar los requisitos de software a lo largo del ciclo de vida del proyecto. Esto garantiza que los requisitos se comprendan y cumplan correctamente, lo que contribuye al éxito del proyecto.
  • 11.
    Metodologías de desarrollode software Waterfall Es un enfoque secuencial y lineal para el desarrollo de software. Se divide en etapas bien definidas, como análisis de requisitos, diseño, implementación, pruebas y mantenimiento. Cada etapa se completa antes de pasar a la siguiente, y los cambios son difíciles de realizar una vez que se ha completado una etapa. Agile La metodología Agile es un enfoque iterativo e incremental para el desarrollo de software. Se basa en la colaboración entre equipos multidisciplinarios y la entrega continua de software funcional. Los requisitos y soluciones evolucionan a través de la colaboración entre equipos autoorganizados. Scrum Es un marco de trabajo ágil que se enfoca en la colaboración, la entrega de valor y la adaptación continua. Las tareas se dividen en sprints, que son iteraciones cortas de trabajo. Al final de cada sprint, se realiza una revisión y se planifica el siguiente sprint.
  • 12.
    CREDITS: This presentationtemplate was created by Slidesgo, and includes icons by Flaticon, and infographics & images by Freepik A continuación, se presentan algunos patrones de diseño comunes utilizados en la ingeniería de software: 1. Patrón de diseño de fachada: Proporciona una interfaz simplificada para un subsistema complejo. 2. Patrón de diseño de fábrica: Permite la creación de objetos sin especificar su clase concreta. 3. Patrón de diseño de observador: Define una dependencia uno-a-muchos entre objetos, de modo que cuando un objeto cambia de estado, todos sus dependientes son notificados y actualizados. 4. Patrón de diseño de singleton: Garantiza que una clase solo tenga una instancia y proporciona un punto de acceso global a esta instancia. 5. Patrón de diseño de estrategia: Permite definir una familia de algoritmos, encapsular cada uno de ellos y hacerlos intercambiables.
  • 13.
    Diseño de softwarey patrones de diseño ● El diseño de software es un proceso clave en la ingeniería de software que se centra en la creación de una estructura y organización efectivas para un sistema de software. El diseño de software implica tomar decisiones sobre la arquitectura, componentes, interfaces y comportamiento del sistema. ● Los patrones de diseño son soluciones probadas y comunes a problemas de diseño recurrentes en el desarrollo de software. Estos patrones proporcionan un enfoque estándar y reutilizable para abordar problemas específicos y mejorar la calidad y mantenibilidad del software.
  • 14.
    Desarrollo de softwareorientado a objetos Encapsulación: La encapsulación es un principio fundamental en el desarrollo de software orientado a objetos. Consiste en ocultar los detalles internos de una clase y proporcionar una interfaz para interactuar con ella. Esto permite lograr la modularidad y la reutilización de código. Herencia: La herencia es otro concepto clave en el desarrollo de software orientado a objetos. Permite la creación de nuevas clases basadas en clases existentes, heredando sus atributos y métodos. Esto facilita la reutilización de código y la creación de jerarquías de clases. Polimorfismo: El polimorfismo permite que un objeto pueda presentarse en diferentes formas. Esto significa que un objeto puede ser tratado como un objeto de su clase base o como un objeto de una de sus clases derivadas. El polimorfismo facilita la flexibilidad y extensibilidad del código.
  • 15.
    Prueba de softwarey técnicas de calidad Importancia de la Calidad en el Desarrollo de Software  La calidad en el desarrollo de software es fundamental para garantizar un producto confiable y funcional.  Las técnicas de prueba de software son esenciales para identificar y corregir errores y garantizar que el software cumpla con los requisitos y expectativas del usuario final.
  • 16.
    La gestión deconfiguración y el control de versiones son cruciales para garantizar la integridad y la calidad del software. Estas prácticas ayudan a evitar conflictos en el código fuente, facilitan la colaboración entre los miembros del equipo, permiten realizar un seguimiento de los cambios realizados y brindan la capacidad de revertir a versiones anteriores en caso de problemas. La gestión de configuración y el control de versiones son herramientas esenciales en el desarrollo de software. Estas prácticas ayudan a los equipos de desarrollo a mantener un registro organizado de los cambios, controlar las diferentes versiones del software y garantizar la integridad y la calidad del producto final. Gestión de configuración y control de versiones
  • 17.
    Conclusión La ingeniería desoftware es una disciplina que nos permite construir software de forma eficiente, confiable y que satisfaga las necesidades de los usuarios. Se basa en la aplicación de teoría, conocimiento y práctica para el desarrollo de software a lo largo de todo su ciclo de vida, desde la concepción hasta la operación
  • 18.
    BIBLIOGRAFIA • Cevallos, K.(2015, abril 15). Introducción a la Ingeniería del software. INGENIERÍA DEL SOFTWARE. https://ingsotfwarekarlacevallos.wordpress.com/2015/04/15/hola-mundo/ • Leighton, L. (2013). No title. 1–1. • Tema: Foros. (s/f). Edu.uy. Recuperado el 16 de febrero de 2024, de https://eva.fing.edu.uy/course/view.php?id=613 • (S/f-a). Edu.mx. Recuperado el 16 de febrero de 2024, de https://www.uacm.edu.mx/Portals/0/OfertaAcademica/CCyT/Programas/CB/2/ Intro_Inga_Software.pdf • (S/f-b). Edu.ar. Recuperado el 16 de febrero de 2024, de https://cs.uns.edu.ar/~saj/iis18/downloads/Clases/Clase%203%20- %20U2.Ingenieria%20de%20SW.pdf