Este documento presenta una introducción a la ingeniería de software, incluyendo definiciones, conceptos básicos, ética, modelos de procesos y metodologías. Explica que la ingeniería de software es una disciplina que integra métodos para el desarrollo de software a través de enfoques como el ciclo de vida clásico, prototipado, desarrollo ágil y proceso unificado. También cubre principios éticos y responsabilidades profesionales para el desarrollo de software.
4. Introducción a la ingeniería de software | Ingeniería de software I 01
Introducción a la ingeniería de
software
Introducción a la Ingeniería
Ingeniería de Software
Identificar los elementos para
plantear y resolver problemas
mediante la Ingeniería de
Software
1.1 Conceptos básicos
1.2 Ética en la ingeniería de
software
1.3 Modelo del proceso de
software
1.4 Modelos evolutivos
1.5 Conceptos del desarrollo
software de calidad
(SQA/GCS)
6. Introducción a la ingeniería de software | Ingeniería de software I 01
Definición
La ingeniería de software es una disciplina que integra métodos, herramientas y procedimientos para el
desarrollo de software de computadora [1].
La ingeniería de software busca apoyar el desarrollo de software profesional, en lugar de la programación
individual. Incluye técnicas que apoyan la especificación, el diseño y la evolución del programa, ninguno
de los cuales son normalmente relevantes para el desarrollo de software personal. Con el objetivo de
ayudarlo a obtener una amplia visión de lo que trata la ingeniería de software [2].
[1] PRESSMAN, Roger S.. Ingeniería de Software : Un enfoque práctico. 7a edición. McGrawHill. España. 1993
[2] SOMMERVILLE, Ian. Ingeniería de Software. 9a edición. Addison-Wesley, México, 2011
7. Introducción a la ingeniería de software | Ingeniería de software I 01
Desarrollo del software
Desarrollo y mantenimiento
8. Introducción a la ingeniería de software | Ingeniería de software I 01
Definición
Este Código puede publicarse sin permiso, siempre que no se modifique de ninguna manera y lleva el
aviso de copyright. Copyright (c) 2018 por la Association for Computing Machinery on la traducción hecha
por Fabrizio Gagliardi, Anna Ortiz, Ulises Cortés, Amalia Hafner y Nelson Castillo.
https://www.acm.org/about-acm/code-of-ethics-in-spanish
9. Introducción a la ingeniería de software | Ingeniería de software I 01
El Código está diseñado para inspirar y guiar la conducta ética de todos los profesionales de la
Informática, incluyendo a los profesionales actuales y futuros, a los instructores, los estudiantes, las
personas influyentes y a cualquiera que utilice la tecnología informática para generar un impacto. Además,
el Código sirve como una base para corregir posibles infracciones. El Código incluye principios formulados
como declaraciones de responsabilidad, basados en la idea de que el bien público siempre es la primera
prioridad. Cada principio esta complementado con guías que proporcionan explicaciones para ayudar a
los profesionales de la Informática a comprenderlo y aplicarlo.
10. Ética en la ingeniería de software | Ingeniería de software I 01
PRINCIPIOS ÉTICOS GENERALES
• Contribuir a la sociedad y al bienestar humano, reconociendo que todas las personas son partes
interesadas en la Informática.
• Evitar el daño.
• Ser honesto y confiable.
• Ser justo y tomar medidas para no discriminar.
• Respetar el trabajo necesario para producir nuevas ideas, inventos, trabajos creativos y artefactos
informáticos.
• Respetar la privacidad.
• Respetar la confidencialidad.
11. Ética en la ingeniería de software | Ingeniería de software I 01
RESPONSABILIDADES
PROFESIONALES
• Esforzarse por lograr una alta calidad tanto en los procesos como en los productos del trabajo
profesional.
• Mantener altos estándares de competencia profesional, conducta y práctica ética.
• Conocer y respetar las reglas vigentes relacionadas con el trabajo profesional.
• Aceptar y proporcionar una revisión profesional adecuada.
• Realizar evaluaciones integrales y exhaustivas de los sistemas informáticos y de sus impactos,
incluyendo un análisis de los posibles riesgos.
• Trabajar solo en sus ámbitos de competencia.
• Fomentar la conciencia ciudadana sobre la Informática, las tecnologías relacionadas y sus
consecuencias.
• Acceder a los recursos informáticos y de comunicación sólo cuando esté autorizado, o cuando sea
necesario para proteger el bien público.
• Diseñar e implementar sistemas robustos, accesibles y seguros.
12. Ética en la ingeniería de software | Ingeniería de software I 01
PRINCIPIOS DE LIDERAZGO
PROFESIONAL
• Asegurar que el bien público sea la preocupación central en el trabajo profesional.
• Articular, fomentar la aceptación y evaluar el cumplimiento de las responsabilidades sociales por parte
de los miembros de la organización o grupo.
• Administrar el personal y los recursos para mejorar la calidad de la vida profesional.
• Articular, aplicar y apoyar políticas y procesos que reflejen los principios del Código.
• Crear oportunidades para que los miembros de la organización o el grupo crezcan como profesionales.
• Tener cuidado al modificar o retirar sistemas.
• Reconocer y cuidar los sistemas que se integran en la infraestructura de la sociedad.
13. Ética en la ingeniería de software | Ingeniería de software I 01
CUMPLIMIENTO DEL CÓDIGO
• Defender, promover y respetar los principios del Código.
• Tratar las violaciones del Código como inconsistentes con la afiliación a ACM.
14. Modelo del proceso de software | Ingeniería de software I 01
Actividades de la Ingeniería de
Software
15. Modelo del proceso de software | Ingeniería de software I 01
PARADIGMAS DE INGENIERÍA DEL
SOFTWARE
CICLO DE VIDA CLÁSICO
16. Modelo del proceso de software | Ingeniería de software I 01
PARADIGMAS DE INGENIERÍA DEL
SOFTWARE
Modelo de prototipo
Construir/revisar
la maqueta
El cliente
aprueba la
maqueta
Escuchar al
cliente
17. Modelo del proceso de software | Ingeniería de software I 01
PARADIGMAS DE INGENIERÍA DEL
SOFTWARE
Análisis
Requerimientos del software
Diseño
Codificación
Pruebas
Mantenimiento
Construir/revisar
la maqueta
El cliente
aprueba la
maqueta
Escuchar al
cliente
Modelo de construcción de prototipos
18. Modelo del proceso de software | Ingeniería de software I 01
PARADIGMAS DE INGENIERÍA DEL
SOFTWARE
Diseño Rápido de Aplicaciones
Modelado de gestión
Modelado de datos
Modelado de procesos
Generación de
aplicación
Pruebas y entrega
Modelado de
gestión
Modelado de datos
Modelado de
procesos
Generación de
aplicación
Pruebas y entrega
Modelado de
gestión
Modelado de datos
Modelado de
procesos
Generación de
aplicación
Pruebas y
entrega
Equipo 1 Equipo 2 Equipo 3
19. Modelo del proceso de software | Ingeniería de software I 01
PARADIGMAS DE INGENIERÍA DEL
SOFTWARE
Análisis Diseño Código Prueba
Análisis Diseño Código Prueba
Incremento 1
Incremento 2
Ingeniería de
Sistemas/información
Entrega del 1er.
Incremento
Modelo incremental
20. Modelo del proceso de software | Ingeniería de software I 01
PARADIGMAS DE INGENIERÍA DEL
SOFTWARE
PARADIGMA OO: PARADIGMA EVOLUTIVO INCREMENTAL
21. Modelo del proceso de software | Ingeniería de software I 01
PARADIGMAS DE INGENIERÍA DEL
SOFTWARE
PARADIGMA OO: PARADIGMA EVOLUTIVO EN PARALELO
22. Modelo del proceso de software | Ingeniería de software I 01
PARADIGMAS DE INGENIERÍA DEL
SOFTWARE
PROCESO UNIFICADO DE DESARROLLO
• Está dirigido por los casos de uso.
• Está centrado en la arquitectura
• Proceso iterativo e incremental.
• Hace hincapié en el uso de componentes, entendidos como código independiente y reutilizable.
• Utiliza herramientas.
23. Modelo del proceso de software | Ingeniería de software I 01
PARADIGMAS DE INGENIERÍA DEL
SOFTWARE
PROCESO UNIFICADO DE DESARROLLO
Imagen:
https://www.ecured.cu/Proceso_unificado_de_desarrollo#Principales_Elementos
24. Modelo del proceso de software | Ingeniería de software I 01
PARADIGMAS DE INGENIERÍA DEL
SOFTWARE
METODOLOGÍAS ÁGILES
• SCRUM
• eXtreme Programming
• XP vs. RUP
• AGILE RUP
25. Modelo del proceso de software | Ingeniería de software I 01
eXtreme Programming
• Desarrollo iterativo e incremental.
• Pruebas unitarias continuas, frecuentemente repetidas y automatizadas, incluyendo pruebas de
regresión.
• Programación en parejas
• Frecuente integración del equipo de programación con el cliente o usuario.
• Corrección de todos los errores antes de añadir nueva funcionalidad.
• Refactorización del código
• Propiedad del código compartida
• Simplicidad en el código
26. Modelo del proceso de software | Ingeniería de software I 01
SCRUM
Imagen: https://metodologiascrum.readthedocs.io/en/latest/Scrum.html#que-es-scrum
27. Título de la sección | Título de la presentación 01
Ligas de interés
•https://invidgroup.com/es/las-mejores-metodologias-de-desarrollo-de-software-en-
2019/
•https://dialnet.unirioja.es/descarga/articulo/6777227.pdf