1. El documento introduce conceptos clave de la ingeniería de software como procesos de software, modelos de procesos, y métodos. 2. Explica las diferencias entre ingeniería de software, ciencias de la computación e ingeniería de sistemas. 3. Discuten factores que contribuyen a la calidad del software como complejidad, cambios y deficiencias en el desarrollo.
Las imagenes usadas en esta presentación tiene un fin exclusivamente academico, si alguien considera que debo eliminarlas, por favor hagamelo saber. Gracias
Las imagenes usadas en esta presentación tiene un fin exclusivamente academico, si alguien considera que debo eliminarlas, por favor hagamelo saber. Gracias
Se publica una presentación acerca de los conceptos básicos iniciales y generales de la Ingeniería del Software, una vez que los lea, revise, podría realizar sus preguntas ante inquietudes que pudieran presentarse y sobre todo realizar aportes, es decir, incrementar archivos de material a fin o sus estudios realizados la respecto a fin de poder enriquecer el conociemiento de todos en esta asignatura
Bienvenidos.....
Se publica una presentación acerca de los conceptos básicos iniciales y generales de la Ingeniería del Software, una vez que los lea, revise, podría realizar sus preguntas ante inquietudes que pudieran presentarse y sobre todo realizar aportes, es decir, incrementar archivos de material a fin o sus estudios realizados la respecto a fin de poder enriquecer el conociemiento de todos en esta asignatura
Bienvenidos.....
Ingenieria de software -analizis literariodiegos08
El diseño de programas a partir de información binaria significó un paso sustantivo para la industria desarrolladora de software. Desde ese hallazgo, ocurrido en la década de los cincuenta, hasta hoy, el crecimiento de metodologías para su desarrollo ha subido notablemente en complejidad. Sin embargo, los circulos viciosos que acusa hoy la confección de programas informáticos, impiden conceptualizar el objeto a un nivel superior de abstracción, tal y como lo exige el avance tecnológico y los procesos de negocios. El siguiente artículo sondea el futuro de la ingeniería, a la luz de su propia evolución.
Que es IIngenieria del Software?, Que es IIngenieria del Software?, Que es IIngenieria del Software?, Que es IIngenieria del Software?, Que es IIngenieria del Software?, Que es IIngenieria del Software?, Que es IIngenieria del Software?, Que es IIngenieria del Software?, Que es IIngenieria del Software?, Que es IIngenieria del Software?,
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfsandradianelly
Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestr
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...JAVIER SOLIS NOYOLA
El Mtro. JAVIER SOLIS NOYOLA crea y desarrolla el “ROMPECABEZAS DE ECUACIONES DE 1ER. GRADO OLIMPIADA DE PARÍS 2024”. Esta actividad de aprendizaje propone retos de cálculo algebraico mediante ecuaciones de 1er. grado, y viso-espacialidad, lo cual dará la oportunidad de formar un rompecabezas. La intención didáctica de esta actividad de aprendizaje es, promover los pensamientos lógicos (convergente) y creativo (divergente o lateral), mediante modelos mentales de: atención, memoria, imaginación, percepción (Geométrica y conceptual), perspicacia, inferencia, viso-espacialidad. Esta actividad de aprendizaje es de enfoques lúdico y transversal, ya que integra diversas áreas del conocimiento, entre ellas: matemático, artístico, lenguaje, historia, y las neurociencias.
3. FAQ
1. Que es software?
2. Que es la Ingeniería de Software?
3. Cual es la diferencia entre Ingeniería de Software y Ciencias de la
Computación?
4. Cual es la diferencia entre Ingeniería de Software e Ingeniería de
Sistemas?
5. Que es un proceso de software?
6. Que es un modelo de proceso de software?
7. Que son los métodos de Ingeniería de Software?
4. Software (Pressman):
1. Instrucciones (programas de computadora) que cuando se
ejecutan proporcionan la función y el rendimiento
deseados.
2. Estructuras de datos que permiten a los programas
manipular adecuadamente la información.
3. Documentos que describen la construcción y uso de
programas
5. Características del Software (Pressman)
1. El software se desarrolla, no se fabrica
a. Los costes se centran en ingeniería, no en fabricación
b.Los proyectos software no se pueden gestionar como
procesos de fabricación
2. El software no se estropea: no es susceptible a males del
entorno.
3. El software se deteriora. Durante su vida sufre cambios
(mantenimiento), por lo que es posible de introducir nuevos
defectos
6. Los productos de software:
1. No cumplen con los requisitos del
usuario.
2. Son susceptible frecuentemente a
romperse.
3. Es caro.
4. Es difícil de modificar, depurar y mejorar.
5. A menudo es entregado tarde.
6. Tiene a utilizar recursos no óptimos.
La Crisis del Software
7.
8.
9. 1. Problemas cada vez más grandes,
2. La falta de una formación
adecuada en ingeniería de
software,
3. El aumento de la falta de
habilidades,
4. Baja productividad.
Factores que contribuyen a la Crisis del Software
10. Programas vs Productos de Software
Programas Productos de Software
Usualmente pequeños en tamaño Tamaño grande
El autor es su único usuario Gran número de usuarios
Un desarrollador Equipo de desarrolladores
Carece de interfaz de usuario
adecuada
Interfaz bien diseñada
Pérdida de la documentación Buena documentación / Manuales
de usuario
Desarrollo Ad hoc Desarrollo sistemático
12. Ingeniería de Software: Una actividad de
resolver problemas
Ingeniería de Software
Colección de técnicas, metodologías y herramientas para ayudar con la
producción de:
1. Un software de alta calidad
2. Con un presupuesto dado
3. Antes del plazo determinado
4. Mientras el cambio se produce
14. Ingeniería de Software: Una actividad de
resolver problemas
Ingeniería de Software
“IEEE Standard Glossary of Software Engineering Terminology” (Stad.
610.12-1990) ha desarrollado una definición más completa para ingeniería
del software:
“La aplicación de un enfoque sistemático, disciplinado y cuantificable para el
desarrollo, operación y mantenimiento del software”.
15. 1. Adquirir habilidades para desarrollar
programas grandes.
2. El crecimiento exponencial del nivel de
complejidad y dificultad con el tamaño.
3. El enfoque ad hoc se rompe cuando el
tamaño del software incrementa
Una espina de experiencia es mejor que todo
un desierto de advertencia.
¿Por qué estudiar Ingeniería de Software?
16. Ingeniería de Software: Una actividad de resolver
problemas
Para resolver un problema se usa:
1. Técnicas (métodos): Procedimientos formales para producir resultados
usando alguna notación bien definida (ej. técnicas de programación)
2. Metodologías (Proceso y Modelos): Colección de técnicas aplicadas a
través del desarrollo de software y unificado bajo un enfoque filosófico
(Iterativo, incremental, RAD, RUP, XP, etc.)
3. Herramientas: instrumentos o sistemas automatizados para llevar a cabo
una técnica
17. Ingeniería de Software: Una actividad de
resolver problemas
Capas de la Ingeniería de Software. Pressman
18. CIENCIA VS INGENIERÍA
Ciencias de la Computación:
Demuestra teoremas sobre algoritmos, diseños de
lenguajes, define los esquemas de representación del
conocimiento.
Tiene tiempo infinito ...
19. CIENCIA VS INGENIERÍA
Ciencias de la Computación:
• Supone que las técnicas, metodologías y herramientas se van a
desarrollar.
• Investigan en los diseños de cada una de estas componentes, y
demuestra teoremas que especifican que hacen lo que se pretende
hacer.
• También diseñan lenguajes que nos permiten expresar las técnicas.
Para hacer todo esto, un científico de la computación tiene a su disposición
una cantidad infinita de tiempo.
20. CIENCIA VS INGENIERÍA
Ingeniería de Software
Desarrolla una solución para un problema específico de aplicación para un
cliente. Utiliza computadores, lenguajes, herramientas, técnicas y métodos
Ingeniero de Software: Trabaja en múltiples dominios de aplicación, tiene
sólo 3 meses ...
... Mientras los cambios se producen en los requisitos y la tecnología
disponible
21. CIENCIA VS INGENIERÍA
Ingeniería de Software
1. La única duda para el ingeniero de software es: cómo estas herramientas,
técnicas y metodologías se pueden utilizar para resolver el problema en
cuestión.
2. Lo que tienen que preocuparse es cómo hacerlo bajo la presión del
tiempo de una fecha límite.
3. Además tienen que preocuparse por un presupuesto que podría limitar la
solución y, a menudo, el uso de herramientas.
4. Las buenas herramientas de ingeniería de software pueden costar muchos
dólares
23. INGENIERÍA DE SOFTWARE VS INGENIERÍA DE
SISTEMAS
Ingeniería de Sistemas
Se ocupa de todos los aspectos del desarrollo de sistemas basados en
computadores, incluyendo el hardware, software y la ingeniería de
procesos.
La Ingeniería de Software es parte de este proceso, en términos de
arquitectura, control, bases de datos en el sistema (Diseño, integración y
despliegue)
24.
25. CIENCIA VS INGENIERÍA
Modelado: Modelar los objetos es una
tarea difícil
El buen modelado de objetos implica el
dominio de conceptos complejos, la
terminología y las convenciones.
También requiere una experiencia
considerable y, a veces subjetiva en un
proceso fuertemente basado en la
experiencia.
26. CIENCIA VS INGENIERÍA
Modelado
Cuidado con la falsa creencia de que:
1. La tecnología puede sustituir a la
habilidad y,
2. Esa habilidad es un reemplazo para el
pensamiento.
27. CIENCIA VS INGENIERÍA
Modelado
Muchas organizaciones se sienten frustrados con la falta de calidad
de sus sistemas.
Sin embargo, la causa de este problema es a menudo la falsa
creencia de que una herramienta puede ser un sustituto para el
conocimiento y la experiencia en la comprensión y el uso de
técnicas de desarrollo.
28. CIENCIA VS INGENIERÍA
Tenga en cuenta
Ser capaz de utilizar una herramienta no significa que usted
entiende las técnicas subyacentes, y la comprensión de las
técnicas no significa que usted entiende el problema.
29. CIENCIA VS INGENIERÍA
Tenga en cuenta
En el análisis final, las organizaciones y los profesionales
deben reconocer que las metodologías, herramientas y
técnicas no representan los valores añadidos del proceso
de modelado de objetos.
30. CIENCIA VS INGENIERÍA
Tenga en cuenta
Por el contrario, el valor real que se agrega, es el
pensamiento y la idea de que sólo el analista puede
proporcionar.
32. Algunas deficiencias comunes en el desarrollo de software son:
1. Escasa o tardía validación con el cliente.
2. Inadecuada gestión de los requisitos.
3. No existe medición del proceso ni registro de datos históricos.
4. Estimaciones imprevistas de plazos y costos.
5. Excesiva e irracional presión en los plazos.
6. Escaso o deficiente control en el progreso del proceso de
desarrollo.
7. No se hace gestión de riesgos formalmente.
8. No se realiza un proceso formal de pruebas.
9. No se realizan revisiones técnicas formales e inspecciones de
código.
Factores que afectan la Calidad del Software
33. Factores que afectan la Calidad del Software
Complejidad
• El sistema es tan complejo que ningún programador puede entenderlo.
• La introducción de una solo corrección de error puede hacer que otro se genere
Cambios
• La "Entropía" de un sistema de software se incrementa con cada cambio: Cada cambio
implementado erosiona la estructura del sistema lo cual hace que el siguiente cambio
sea aún más costoso ("Segunda Ley de la Dinámica de Software").
• Conforme pasa el tiempo, el costo de implementar un cambio será demasiado alto, y
el sistema entonces no podrá soportar la tarea prevista.
34. Por que el software es tan complejo
El dominio del problema es difícil
El dominio del problema es a veces difícil, simplemente porque no somos
expertos en ello.
1. Es decir, puede que no sea un desafío intelectual, sino porque usted no es
un experto en ella, hay que aprenderlo.
2. Si unimos esto con el aprendizaje de varios dominios de problemas, y eso es
lo que usted tendrá que hacer como ingeniero de software, y el problema se
hace evidente.
35. Por que el software es tan complejo
El proceso de desarrollo es muy difícil de gestionar
Uno de los supuestos que los administradores han hecho en el pasado, es que el desarrollo
de software puede ser gestionado como un conjunto de pasos en forma lineal, por ejemplo:
Especificación de Requisitos, seguido de Diseño de Sistemas seguido de Ejecución seguido
de pruebas y de entrega.
En realidad esto no es tan fácil. Desarrollo de software no se sigue un proceso lineal. Es
altamente no lineal. Hay dependencias entre la forma en que se diseña un sistema y la
funcionalidad. Por otra parte, y eso hace que sea muy difícil, algunas de estas dependencias
no se pueden formular a menos que pruebe el diseño.
36. Por que el software es tan complejo
El software ofrece una flexibilidad extrema
Podemos cambiar casi todo lo que hemos diseñado en el
software.
Si bien es difícil de cambiar el diseño de una lavadora, es muy
fácil de cambiar el programa antes de ejecutarlo.
37. Por que el software es tan complejo
El software es un sistema discreto (formas particulares de codificación)
Cuando usted está sentado en un avión en un asiento de la
ventana, y oprime un botón para llamar a la azafata para tomar
una bebida, no espera que el sistema de un giro y usted termine
en la tierra.
38. Por que el software es tan complejo
El software es un sistema discreto (formas particulares de codificación)
Esto puede suceder con los sistemas digitales. Una de las razones:
1. Si bien se puede descomponer el sistema en subsistemas (Azafata,
Control de Vuelo), si usted no sigue las buenas reglas de diseño, que
podrían haber utilizado alguna variable global para cada uno de estos
subsistemas.
2. Una de estas variables utilizadas por el subsistema de control de vuelo
podrían haber sido sobrescritos por el módulo de Azafata.
39. El proceso de software
Propósito: producción eficaz y eficiente de un producto software
que reúna los requisitos del cliente.
Este proceso es intensamente intelectual, afectado por la
creatividad y juicio de las personas involucradas.
41. El proceso de software
El proceso de software no es único. No existe un proceso de
software universal que sea efectivo para todos los contextos de
proyectos de desarrollo.
Debido a esta diversidad, es difícil automatizar todo un proceso de
desarrollo de software.
42. El proceso de software
A pesar de la variedad de propuestas de proceso de software, existe un conjunto de
actividades fundamentales que se encuentran presentes en todos ellos:
1. Especificación de software: Se debe definir la funcionalidad y restricciones
operacionales que debe cumplir el software.
2. Diseño e Implementación: Se diseña y construye el software de acuerdo a la
especificación.
3. Validación: El software debe validarse, para asegurar que cumpla con lo que
quiere el cliente.
4. Evolución: El software debe evolucionar, para adaptarse a las necesidades del
cliente.
43. El proceso de software
Además de estas actividades fundamentales, Pressman menciona un
conjunto de “actividades protectoras”, que se aplican a lo largo de todo el
proceso del software. Ellas se señalan a continuación:
1. Seguimiento y control de proyecto de software.
2. Revisiones técnicas formales.
3. Garantía de calidad del software.
4. Gestión de configuración del software.
5. Preparación y producción de documentos.
6. Gestión de reutilización.
7. Mediciones.
8. Gestión de riesgos.
44. El proceso de software
Pressman caracteriza un proceso de desarrollo de software con los siguientes
elementos:
45. El proceso de software
Pressman caracteriza un proceso de desarrollo de software con los siguientes elementos:
1. Un marco común del proceso: actividades que son aplicables a todos los proyectos de
software, con independencia del tamaño o complejidad.
2. Un conjunto de tareas: colección de tareas de ingeniería del software, hitos de
proyectos, entregas y productos de trabajo del software, y puntos de garantía de
calidad, que permiten que las actividades del marco de trabajo se adapten a las
características del proyecto de software y los requisitos del equipo del proyecto.
3. Las actividades de protección, tales como garantía de calidad del software, gestión de
configuración del software y medición, abarcan el modelo del proceso. Las actividades
de protección son independientes de cualquier actividad del marco de trabajo y
aparecen durante todo el proceso.
46. Modelos de proceso software
Sommerville define el modelo de proceso de software como:
“Una representación simplificada de un proceso de software,
representada desde una perspectiva específica. Por su naturaleza los
modelos son simplificados, por lo tanto un modelo de procesos del software
es una abstracción de un proceso real.”
Los modelos genéricos no son descripciones definitivas de procesos de
software; sin embargo, son abstracciones útiles que pueden ser utilizadas
para explicar diferentes enfoques del desarrollo de software.
47. Modelos de proceso software
Algunos modelos son:
1. Codificar y corregir
2. Modelo en cascada
3. Desarrollo evolutivo
4. Desarrollo formal de sistemas
5. Desarrollo basado en reutilización
6. Desarrollo incremental
7. Desarrollo en espiral
48. Métodos de Ingeniería de software
Enfoques estructurados para el desarrollo de software que incluyen
modelos de sistema, notaciones, reglas, consejos de diseño y
orientación de procesos.
1. Descripción del Modelo
2. Reglas
3. Recomendaciones
4. Proceso de orientación
49. The evolution of the laws of software evolution
Software evolution deals with the process by which
programs are modified and adapted to their changing
environment.
Meir M. Lehman
50. Tipos de Software
Programas de tipo S ("determinable"):
1. Problema puede plantearse
formalmente y completamente.
2. Aceptación: Es el programa
correcto de acuerdo a sus
especificaciones?
3. Este software no evoluciona.
4. Un cambio a la especificación
define un nuevo problema, por lo
tanto, un nuevo programa
51. Tipos de Software
Programas de tipo P ("solución de
problemas")
1. Declaración imprecisa de un problema
del mundo real
2. Aceptación: Es el programa de una
solución aceptable al problema?
3. Este software es probable que evolucione
continuamente porque la solución no es
nunca perfecta, y se puede mejorar
debido a los cambios del mundo real y
por lo tanto los cambios de problemas
52. Tipos de Software
Programas de tipo E ("Embedded")
1. Un sistema que se convierte en
parte del mundo que modela
2. Aceptación: depende totalmente de
opinión y el juicio
3. Este software es inherentemente
evolutivo
4. Cambios en el software y en el
mundo se afectan entre sí
53. Actividades Extraclase
1. Lectura Leyes de la evolución del software (Lehman) – Control de Lectura
2. Lectura 2 Gestión de la Evaluación del Software - Archivos Legacy
3. Presentaciones Modelos de Procesos de Software (Conceptualización, Fases, Actividades, ventajas,
desventajas)
• Lineal Secuencial (Cascada)
• Construcción de Prototipos
• DRA
• Evolutivo: Incremental
• Evolutivo: Espiral
• XP
• Scrum
• FDD
• RUP
• MSF
• Lean Software Development
• kelly3085@hotmail.com