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.
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