SlideShare una empresa de Scribd logo
Introducción a la Ingeniería de
Software
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?
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
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
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
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
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
Arte
Profesión / trabajo
Ingeniería
Experiencia
Esotérica Uso sistemático de la
experiencia pasada y Bases
Científicas
Tecnología
Tiempo
Uso no organizado
de la experiencia
Evolución de la Ingeniería en el Tiempo
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
Ingeniería de Software: Una actividad de
resolver problemas
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”.
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?
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
Ingeniería de Software: Una actividad de
resolver problemas
Capas de la Ingeniería de Software. Pressman
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 ...
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.
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
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
CIENCIAS VS INGENIERÍA
CUSTOMER
COMPUTER
SCIENCE
SOFTWARE
ENGINEERING
Theories
Computer
Functions
Problem
Tools and
Techniques to
Solve Problem
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)
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.
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.
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.
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.
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.
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.
CIENCIA VS INGENIERÍA
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
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.
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.
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.
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.
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.
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.
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.
El proceso de software
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.
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.
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.
El proceso de software
Pressman caracteriza un proceso de desarrollo de software con los siguientes
elementos:
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.
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.
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
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
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
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
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
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í
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

Más contenido relacionado

La actualidad más candente

Diapositivas guia 1 de software.melissa burgos
Diapositivas guia 1 de software.melissa burgosDiapositivas guia 1 de software.melissa burgos
Diapositivas guia 1 de software.melissa burgosMelissa Burgos
 
Tecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.softwareTecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.software
juankexmisiodj
 
Introducción a la Ingeniria del Software
Introducción a la Ingeniria del SoftwareIntroducción a la Ingeniria del Software
Introducción a la Ingeniria del Software
Edit Lopez Veloz
 
Introducción a la Ingeniería de Software:Qué es un Buen Sistema?
Introducción  a la Ingeniería de Software:Qué es un Buen Sistema?Introducción  a la Ingeniería de Software:Qué es un Buen Sistema?
Introducción a la Ingeniería de Software:Qué es un Buen Sistema?
Kudos S.A.S
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
michellchia11
 
Ingenieria del software
Ingenieria del software Ingenieria del software
Ingenieria del software
Ana Pau Lara
 
problemas del software
problemas del softwareproblemas del software
problemas del software
David Abisai Gomez
 
Diapositivas-Ing-SW-napa
Diapositivas-Ing-SW-napaDiapositivas-Ing-SW-napa
Diapositivas-Ing-SW-napa
Antonio Navarrete Prieto
 
software
softwaresoftware
software
alkosto
 
Conceptos
ConceptosConceptos
Conceptos
Sonia Elizabeth
 
Grupo# 5 problemas en el desarrollo de software
Grupo# 5 problemas en el desarrollo de softwareGrupo# 5 problemas en el desarrollo de software
Grupo# 5 problemas en el desarrollo de software
johan2105
 
Ingenieria de Software
Ingenieria de SoftwareIngenieria de Software
Ingenieria de Software
em3marquez
 
Programación extrema [XP]
Programación extrema [XP]Programación extrema [XP]
Programación extrema [XP]
Agustín
 
Programación Extrema - XP
Programación Extrema - XPProgramación Extrema - XP
Programación Extrema - XP
Natalia Herrera Rey
 
Tecnicas de ingenieria de software
Tecnicas de ingenieria de softwareTecnicas de ingenieria de software
Tecnicas de ingenieria de software'Jorge Martinez
 

La actualidad más candente (20)

Diapositivas guia 1 de software.melissa burgos
Diapositivas guia 1 de software.melissa burgosDiapositivas guia 1 de software.melissa burgos
Diapositivas guia 1 de software.melissa burgos
 
Tecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.softwareTecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.software
 
Introducción a la Ingeniria del Software
Introducción a la Ingeniria del SoftwareIntroducción a la Ingeniria del Software
Introducción a la Ingeniria del Software
 
Tema 02
Tema 02Tema 02
Tema 02
 
Introducción a la Ingeniería de Software:Qué es un Buen Sistema?
Introducción  a la Ingeniería de Software:Qué es un Buen Sistema?Introducción  a la Ingeniería de Software:Qué es un Buen Sistema?
Introducción a la Ingeniería de Software:Qué es un Buen Sistema?
 
Software de ingenieria
Software de ingenieriaSoftware de ingenieria
Software de ingenieria
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Ingenieria De Software
Ingenieria De SoftwareIngenieria De Software
Ingenieria De Software
 
Ingenieria del software
Ingenieria del software Ingenieria del software
Ingenieria del software
 
problemas del software
problemas del softwareproblemas del software
problemas del software
 
Diapositivas-Ing-SW-napa
Diapositivas-Ing-SW-napaDiapositivas-Ing-SW-napa
Diapositivas-Ing-SW-napa
 
software
softwaresoftware
software
 
Conceptos
ConceptosConceptos
Conceptos
 
Grupo# 5 problemas en el desarrollo de software
Grupo# 5 problemas en el desarrollo de softwareGrupo# 5 problemas en el desarrollo de software
Grupo# 5 problemas en el desarrollo de software
 
Introducción a la ingeniería del software
Introducción a la ingeniería del softwareIntroducción a la ingeniería del software
Introducción a la ingeniería del software
 
Ingenieria de Software
Ingenieria de SoftwareIngenieria de Software
Ingenieria de Software
 
Programación extrema [XP]
Programación extrema [XP]Programación extrema [XP]
Programación extrema [XP]
 
Programación Extrema - XP
Programación Extrema - XPProgramación Extrema - XP
Programación Extrema - XP
 
Presentación2
Presentación2Presentación2
Presentación2
 
Tecnicas de ingenieria de software
Tecnicas de ingenieria de softwareTecnicas de ingenieria de software
Tecnicas de ingenieria de software
 

Similar a introducción ingeniería de software

02 Mitos de la ingeniería de software
02 Mitos de la ingeniería de software02 Mitos de la ingeniería de software
02 Mitos de la ingeniería de software
Juan Manuel Gonzalez Calleros
 
Trabajo diapositiva modulo 3 de jhonatan
Trabajo diapositiva modulo 3 de jhonatanTrabajo diapositiva modulo 3 de jhonatan
Trabajo diapositiva modulo 3 de jhonatan
jhonatanalex
 
Ingenieria de software -analizis literario
Ingenieria de software -analizis literarioIngenieria de software -analizis literario
Ingenieria de software -analizis literario
diegos08
 
Presentación Sesión 1 Ingeniería del Software.pptx
Presentación Sesión 1 Ingeniería del Software.pptxPresentación Sesión 1 Ingeniería del Software.pptx
Presentación Sesión 1 Ingeniería del Software.pptx
AderMogollonLuna
 
ing. de software
ing. de softwareing. de software
ing. de software
ellizabp_22
 
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrolloFundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
José Antonio Sandoval Acosta
 
Curso ingeniería de software parte i
Curso ingeniería de software parte iCurso ingeniería de software parte i
Curso ingeniería de software parte iparafernalico
 
Que es Ingenieria del Software?,
Que es Ingenieria del Software?,Que es Ingenieria del Software?,
Que es Ingenieria del Software?,
Robert Rodriguez
 
UNIDAD_I.ppt
UNIDAD_I.pptUNIDAD_I.ppt
UNIDAD_I.ppt
GermnAurelioOrtizBal
 
CarenBelmont_IngenieriaDeSoftware_TrabajoPractico_N°1.pdf
CarenBelmont_IngenieriaDeSoftware_TrabajoPractico_N°1.pdfCarenBelmont_IngenieriaDeSoftware_TrabajoPractico_N°1.pdf
CarenBelmont_IngenieriaDeSoftware_TrabajoPractico_N°1.pdf
ssuser7ccf16
 
Unidad 1 ing de software
Unidad 1 ing de softwareUnidad 1 ing de software
Unidad 1 ing de softwareMary Carmen
 
ingenieria de software
ingenieria de softwareingenieria de software
ingenieria de software
Rosa Virginia Ortega Loaiza
 
IngSoftCap01-Introduccion.pdf
IngSoftCap01-Introduccion.pdfIngSoftCap01-Introduccion.pdf
IngSoftCap01-Introduccion.pdf
cristian265023
 
SeccióN De TéCnicas De IngenieríA De Software(2007)
SeccióN De TéCnicas  De IngenieríA De Software(2007)SeccióN De TéCnicas  De IngenieríA De Software(2007)
SeccióN De TéCnicas De IngenieríA De Software(2007)
denny osael lopez medina
 
Investigación de modelos
Investigación de modelos Investigación de modelos
Investigación de modelos
bren1995
 
Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...
Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...
Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...
Osver Fernandez V
 
Plan
PlanPlan
Plan
liss2014
 
El Proceso De Desarrollo De Software
El Proceso De Desarrollo De SoftwareEl Proceso De Desarrollo De Software
El Proceso De Desarrollo De Software
ahias arosemena
 
Proceso de desarrollo de sofware
Proceso de desarrollo de sofwareProceso de desarrollo de sofware
Proceso de desarrollo de sofware
McDonald's
 

Similar a introducción ingeniería de software (20)

02 Mitos de la ingeniería de software
02 Mitos de la ingeniería de software02 Mitos de la ingeniería de software
02 Mitos de la ingeniería de software
 
Trabajo diapositiva modulo 3 de jhonatan
Trabajo diapositiva modulo 3 de jhonatanTrabajo diapositiva modulo 3 de jhonatan
Trabajo diapositiva modulo 3 de jhonatan
 
Ingenieria de software -analizis literario
Ingenieria de software -analizis literarioIngenieria de software -analizis literario
Ingenieria de software -analizis literario
 
Presentación Sesión 1 Ingeniería del Software.pptx
Presentación Sesión 1 Ingeniería del Software.pptxPresentación Sesión 1 Ingeniería del Software.pptx
Presentación Sesión 1 Ingeniería del Software.pptx
 
ing. de software
ing. de softwareing. de software
ing. de software
 
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrolloFundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
 
Curso ingeniería de software parte i
Curso ingeniería de software parte iCurso ingeniería de software parte i
Curso ingeniería de software parte i
 
Que es Ingenieria del Software?,
Que es Ingenieria del Software?,Que es Ingenieria del Software?,
Que es Ingenieria del Software?,
 
UNIDAD_I.ppt
UNIDAD_I.pptUNIDAD_I.ppt
UNIDAD_I.ppt
 
CarenBelmont_IngenieriaDeSoftware_TrabajoPractico_N°1.pdf
CarenBelmont_IngenieriaDeSoftware_TrabajoPractico_N°1.pdfCarenBelmont_IngenieriaDeSoftware_TrabajoPractico_N°1.pdf
CarenBelmont_IngenieriaDeSoftware_TrabajoPractico_N°1.pdf
 
Unidad 1 ing de software
Unidad 1 ing de softwareUnidad 1 ing de software
Unidad 1 ing de software
 
ingenieria de software
ingenieria de softwareingenieria de software
ingenieria de software
 
IngSoftCap01-Introduccion.pdf
IngSoftCap01-Introduccion.pdfIngSoftCap01-Introduccion.pdf
IngSoftCap01-Introduccion.pdf
 
Trabajo de desarrollo desoftware
Trabajo de desarrollo desoftwareTrabajo de desarrollo desoftware
Trabajo de desarrollo desoftware
 
SeccióN De TéCnicas De IngenieríA De Software(2007)
SeccióN De TéCnicas  De IngenieríA De Software(2007)SeccióN De TéCnicas  De IngenieríA De Software(2007)
SeccióN De TéCnicas De IngenieríA De Software(2007)
 
Investigación de modelos
Investigación de modelos Investigación de modelos
Investigación de modelos
 
Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...
Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...
Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...
 
Plan
PlanPlan
Plan
 
El Proceso De Desarrollo De Software
El Proceso De Desarrollo De SoftwareEl Proceso De Desarrollo De Software
El Proceso De Desarrollo De Software
 
Proceso de desarrollo de sofware
Proceso de desarrollo de sofwareProceso de desarrollo de sofware
Proceso de desarrollo de sofware
 

Más de Carlos Anibal Riascos Hurtado

Lluvia de ideas
Lluvia  de ideasLluvia  de ideas
Prototipo en papel
Prototipo en papelPrototipo en papel
Prototipo en papel
Carlos Anibal Riascos Hurtado
 
Explorar para investigar primera sesion
Explorar para investigar primera sesionExplorar para investigar primera sesion
Explorar para investigar primera sesion
Carlos Anibal Riascos Hurtado
 
Sistemas de informacion gerencial
Sistemas de informacion gerencialSistemas de informacion gerencial
Sistemas de informacion gerencial
Carlos Anibal Riascos Hurtado
 
Ingeniería de requisitos
Ingeniería de requisitosIngeniería de requisitos
Ingeniería de requisitos
Carlos Anibal Riascos Hurtado
 
Cuerta sesion investigacion ciencia y tecnologia
Cuerta sesion investigacion ciencia y tecnologiaCuerta sesion investigacion ciencia y tecnologia
Cuerta sesion investigacion ciencia y tecnologia
Carlos Anibal Riascos Hurtado
 
Segunda sesion ciencia-investigacion-metodo
Segunda sesion ciencia-investigacion-metodoSegunda sesion ciencia-investigacion-metodo
Segunda sesion ciencia-investigacion-metodo
Carlos Anibal Riascos Hurtado
 
Conducta de entrada 2016
Conducta de entrada 2016Conducta de entrada 2016
Conducta de entrada 2016
Carlos Anibal Riascos Hurtado
 
Tecnologia e informatica 2016
Tecnologia e informatica   2016Tecnologia e informatica   2016
Tecnologia e informatica 2016
Carlos Anibal Riascos Hurtado
 
Librerias java
Librerias javaLibrerias java
Guia del trabajo con excepciones
Guia del trabajo con excepcionesGuia del trabajo con excepciones
Guia del trabajo con excepciones
Carlos Anibal Riascos Hurtado
 
Multitarea e hilos en java con ejemplos
Multitarea e hilos en java con ejemplosMultitarea e hilos en java con ejemplos
Multitarea e hilos en java con ejemplos
Carlos Anibal Riascos Hurtado
 
Hilos – threads en java
Hilos – threads   en javaHilos – threads   en java
Hilos – threads en java
Carlos Anibal Riascos Hurtado
 
Guia funciones estadisticas
Guia funciones estadisticasGuia funciones estadisticas
Guia funciones estadisticas
Carlos Anibal Riascos Hurtado
 
Proyecto final de semestre
Proyecto final de semestreProyecto final de semestre
Proyecto final de semestre
Carlos Anibal Riascos Hurtado
 
Menejo de eventos en java introduccion
Menejo de eventos en java introduccionMenejo de eventos en java introduccion
Menejo de eventos en java introduccion
Carlos Anibal Riascos Hurtado
 
Primer taller del segundo parcial sistemas aplicados
Primer taller del segundo parcial sistemas aplicadosPrimer taller del segundo parcial sistemas aplicados
Primer taller del segundo parcial sistemas aplicados
Carlos Anibal Riascos Hurtado
 
Public class implmusiempres implements musica
Public class implmusiempres implements musicaPublic class implmusiempres implements musica
Public class implmusiempres implements musica
Carlos Anibal Riascos Hurtado
 
Interfaces en java
Interfaces en javaInterfaces en java
Interfaces en java
Carlos Anibal Riascos Hurtado
 

Más de Carlos Anibal Riascos Hurtado (20)

Lluvia de ideas
Lluvia  de ideasLluvia  de ideas
Lluvia de ideas
 
Prototipo en papel
Prototipo en papelPrototipo en papel
Prototipo en papel
 
Explorar para investigar primera sesion
Explorar para investigar primera sesionExplorar para investigar primera sesion
Explorar para investigar primera sesion
 
Sistemas de informacion gerencial
Sistemas de informacion gerencialSistemas de informacion gerencial
Sistemas de informacion gerencial
 
Ingeniería de requisitos
Ingeniería de requisitosIngeniería de requisitos
Ingeniería de requisitos
 
Cuerta sesion investigacion ciencia y tecnologia
Cuerta sesion investigacion ciencia y tecnologiaCuerta sesion investigacion ciencia y tecnologia
Cuerta sesion investigacion ciencia y tecnologia
 
Segunda sesion ciencia-investigacion-metodo
Segunda sesion ciencia-investigacion-metodoSegunda sesion ciencia-investigacion-metodo
Segunda sesion ciencia-investigacion-metodo
 
Conducta de entrada 2016
Conducta de entrada 2016Conducta de entrada 2016
Conducta de entrada 2016
 
Tecnologia e informatica 2016
Tecnologia e informatica   2016Tecnologia e informatica   2016
Tecnologia e informatica 2016
 
Librerias java
Librerias javaLibrerias java
Librerias java
 
Guia del trabajo con excepciones
Guia del trabajo con excepcionesGuia del trabajo con excepciones
Guia del trabajo con excepciones
 
Excepciones en java
Excepciones en javaExcepciones en java
Excepciones en java
 
Multitarea e hilos en java con ejemplos
Multitarea e hilos en java con ejemplosMultitarea e hilos en java con ejemplos
Multitarea e hilos en java con ejemplos
 
Hilos – threads en java
Hilos – threads   en javaHilos – threads   en java
Hilos – threads en java
 
Guia funciones estadisticas
Guia funciones estadisticasGuia funciones estadisticas
Guia funciones estadisticas
 
Proyecto final de semestre
Proyecto final de semestreProyecto final de semestre
Proyecto final de semestre
 
Menejo de eventos en java introduccion
Menejo de eventos en java introduccionMenejo de eventos en java introduccion
Menejo de eventos en java introduccion
 
Primer taller del segundo parcial sistemas aplicados
Primer taller del segundo parcial sistemas aplicadosPrimer taller del segundo parcial sistemas aplicados
Primer taller del segundo parcial sistemas aplicados
 
Public class implmusiempres implements musica
Public class implmusiempres implements musicaPublic class implmusiempres implements musica
Public class implmusiempres implements musica
 
Interfaces en java
Interfaces en javaInterfaces en java
Interfaces en java
 

Último

Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
HuallpaSamaniegoSeba
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Demetrio Ccesa Rayme
 
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdfFORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
El Fortí
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
YasneidyGonzalez
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
YasneidyGonzalez
 
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdfHABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
DIANADIAZSILVA1
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
MauricioSnchez83
 
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdfTexto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
ClaudiaAlcondeViadez
 
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
UNIDAD DE APRENDIZAJE DEL MES  Junio 2024UNIDAD DE APRENDIZAJE DEL MES  Junio 2024
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
EdwardYumbato1
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
Alejandrogarciapanta
 
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfUn libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
sandradianelly
 
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docxENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
SandraPiza2
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
20minutos
 
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
FelixCamachoGuzman
 
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Monseespinoza6
 
Junio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividadesJunio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividades
cintiat3400
 
Fase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcionalFase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcional
YasneidyGonzalez
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
SandraBenitez52
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
JAVIER SOLIS NOYOLA
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
auxsoporte
 

Último (20)

Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
 
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdfFORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
 
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdfHABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
 
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdfTexto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
 
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
UNIDAD DE APRENDIZAJE DEL MES  Junio 2024UNIDAD DE APRENDIZAJE DEL MES  Junio 2024
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
 
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfUn libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
 
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docxENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
 
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
 
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
 
Junio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividadesJunio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividades
 
Fase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcionalFase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcional
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
 

introducción ingeniería de software

  • 1.
  • 2. Introducción a la Ingeniería de Software
  • 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
  • 11. Arte Profesión / trabajo Ingeniería Experiencia Esotérica Uso sistemático de la experiencia pasada y Bases Científicas Tecnología Tiempo Uso no organizado de la experiencia Evolución de la Ingeniería en el Tiempo
  • 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
  • 13. Ingeniería de Software: Una actividad de resolver problemas
  • 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.
  • 40. El proceso de software
  • 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